yaaw-se 0.1.2 → 0.2.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 (48) hide show
  1. package/README.md +2 -1
  2. package/dist/cli/commands/install.d.ts +7 -0
  3. package/dist/cli/commands/install.js +50 -1
  4. package/dist/cli/commands/install.js.map +1 -1
  5. package/dist/cli/commands/status.d.ts +13 -0
  6. package/dist/cli/commands/status.js +2 -0
  7. package/dist/cli/commands/status.js.map +1 -1
  8. package/dist/cli/main.js +8 -1
  9. package/dist/cli/main.js.map +1 -1
  10. package/dist/installer/manifest.js +8 -3
  11. package/dist/installer/manifest.js.map +1 -1
  12. package/dist/installer/plan.js +129 -3
  13. package/dist/installer/plan.js.map +1 -1
  14. package/dist/installer/status.d.ts +13 -0
  15. package/dist/installer/status.js +65 -0
  16. package/dist/installer/status.js.map +1 -1
  17. package/dist/installer/toml-managed.d.ts +7 -0
  18. package/dist/installer/toml-managed.js +192 -0
  19. package/dist/installer/toml-managed.js.map +1 -0
  20. package/dist/installer/transaction.js +26 -0
  21. package/dist/installer/transaction.js.map +1 -1
  22. package/dist/installer/types.d.ts +27 -0
  23. package/dist/integrations/codex-runtime.d.ts +25 -0
  24. package/dist/integrations/codex-runtime.js +85 -0
  25. package/dist/integrations/codex-runtime.js.map +1 -0
  26. package/dist/integrations/codex.d.ts +2 -1
  27. package/dist/integrations/codex.js +125 -3
  28. package/dist/integrations/codex.js.map +1 -1
  29. package/dist/integrations/types.d.ts +4 -0
  30. package/dist/payload/bootstrap/codex.md +3 -1
  31. package/dist/payload/integrations/codex/yaaw-runtime.md +66 -0
  32. package/dist/payload/payload-files.json +29 -19
  33. package/dist/payload/payload.json +1 -1
  34. package/dist/payload/yaaw-core/system/core/context-loading.md +11 -0
  35. package/dist/payload/yaaw-core/system/core/dispatch-execution.md +37 -0
  36. package/dist/payload/yaaw-core/system/core/io-contract.md +6 -1
  37. package/dist/payload/yaaw-core/system/core/recovery.md +3 -0
  38. package/dist/payload/yaaw-core/system/registries/execution-policy.json +164 -33
  39. package/dist/payload/yaaw-core/system/roles/orchestrator.md +5 -2
  40. package/dist/payload/yaaw-core/system/rules/review-independence.md +2 -0
  41. package/dist/payload/yaaw-core/system/workflows/orchestration/dispatch.md +9 -4
  42. package/dist/payload/yaaw-core/system/workflows/orchestration/route.md +5 -3
  43. package/dist/tui/configure-codex.d.ts +2 -0
  44. package/dist/tui/configure-codex.js +82 -0
  45. package/dist/tui/configure-codex.js.map +1 -0
  46. package/dist/tui/result.js +9 -1
  47. package/dist/tui/result.js.map +1 -1
  48. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { join } from "node:path";
3
3
  import { assertRelativeManifestPath } from "./boundary.js";
4
4
  import { sha256Bytes } from "./hashing.js";
5
5
  import { extractManagedSection, managedSectionHash } from "./managed-sections.js";
6
+ import { readTomlManagedValue, semanticConfigHash, validateManagedToml } from "./toml-managed.js";
6
7
  import { readManifest } from "./manifest.js";
7
8
  async function exists(path) {
8
9
  try {
@@ -33,6 +34,7 @@ export async function inspectStatus(projectRoot) {
33
34
  projectMemory: await exists(join(projectRoot, ".yaaw-core", "project")),
34
35
  managedFiles: emptyCounts(),
35
36
  managedSections: emptyCounts(),
37
+ managedConfigKeys: emptyCounts(),
36
38
  healthy: false,
37
39
  issues: [`invalid installation manifest: ${error.message}`]
38
40
  };
@@ -89,6 +91,32 @@ export async function inspectStatus(projectRoot) {
89
91
  issues.push(`unsafe/invalid manifest section path ${rel}: ${error.message}`);
90
92
  }
91
93
  }
94
+ const managedConfigKeys = emptyCounts();
95
+ for (const [rel, keys] of Object.entries(manifest.managedConfigKeys ?? {})) {
96
+ try {
97
+ const path = await assertRelativeManifestPath(projectRoot, rel);
98
+ const text = (await exists(path)) ? await readFile(path, "utf8") : "";
99
+ validateManagedToml(text);
100
+ for (const [key, record] of Object.entries(keys)) {
101
+ const current = readTomlManagedValue(text, key);
102
+ if (current === undefined) {
103
+ managedConfigKeys.missing += 1;
104
+ issues.push(`missing managed config key: ${rel}#${key}`);
105
+ }
106
+ else if (semanticConfigHash(current) !== record.sha256) {
107
+ managedConfigKeys.modified += 1;
108
+ issues.push(`modified managed config key: ${rel}#${key}`);
109
+ }
110
+ else if (record.localOverride)
111
+ managedConfigKeys.localOverrides += 1;
112
+ else
113
+ managedConfigKeys.healthy += 1;
114
+ }
115
+ }
116
+ catch (error) {
117
+ issues.push(`unsafe/invalid managed config ${rel}: ${error.message}`);
118
+ }
119
+ }
92
120
  const projectMemory = await exists(join(projectRoot, ".yaaw-core", "project"));
93
121
  if (!projectMemory)
94
122
  issues.push("durable project memory directory is missing");
@@ -105,6 +133,7 @@ export async function inspectStatus(projectRoot) {
105
133
  projectMemory,
106
134
  managedFiles,
107
135
  managedSections,
136
+ managedConfigKeys,
108
137
  healthy: issues.length === 0,
109
138
  issues
110
139
  };
@@ -127,6 +156,7 @@ export async function doctor(projectRoot) {
127
156
  checks.push({ name: "manifest", ok: true });
128
157
  checks.push({ name: "managed-files", ok: status.managedFiles.modified === 0 && status.managedFiles.missing === 0 });
129
158
  checks.push({ name: "managed-sections", ok: status.managedSections.modified === 0 && status.managedSections.missing === 0 });
159
+ checks.push({ name: "managed-config-keys", ok: status.managedConfigKeys.modified === 0 && status.managedConfigKeys.missing === 0 });
130
160
  checks.push({ name: "project-memory", ok: status.projectMemory });
131
161
  checks.push({ name: "system-root", ok: await exists(join(projectRoot, ".yaaw-core", "system")) });
132
162
  const manifest = await readManifest(projectRoot);
@@ -144,6 +174,41 @@ export async function doctor(projectRoot) {
144
174
  catch {
145
175
  checks.push({ name: "path-registry", ok: false, detail: "missing or invalid paths registry" });
146
176
  }
177
+ if (manifest?.integrations?.codex) {
178
+ let codexConfig = "";
179
+ let configOk = false;
180
+ try {
181
+ codexConfig = await readFile(join(projectRoot, ".codex", "config.toml"), "utf8");
182
+ validateManagedToml(codexConfig);
183
+ configOk = true;
184
+ }
185
+ catch { }
186
+ checks.push({ name: "codex-config-syntax", ok: configOk });
187
+ checks.push({ name: "codex-runtime-adapter", ok: await exists(join(projectRoot, ".codex", "yaaw-runtime.md")) });
188
+ const roleFiles = ["yaaw-prd.toml", "yaaw-planner.toml", "yaaw-implementer.toml", "yaaw-reviewer.toml"];
189
+ checks.push({ name: "codex-role-files", ok: (await Promise.all(roleFiles.map(name => exists(join(projectRoot, ".codex", "agents", name))))).every(Boolean) });
190
+ const declarations = [
191
+ ["yaaw_prd", "yaaw-prd.toml"],
192
+ ["yaaw_planner", "yaaw-planner.toml"],
193
+ ["yaaw_implementer", "yaaw-implementer.toml"],
194
+ ["yaaw_reviewer", "yaaw-reviewer.toml"]
195
+ ];
196
+ checks.push({
197
+ name: "codex-role-declarations",
198
+ ok: configOk && declarations.every(([role, file]) => readTomlManagedValue(codexConfig, `agents.${role}.config_file`) === `agents/${file}`)
199
+ });
200
+ const codexOwned = manifest.managedConfigKeys?.[".codex/config.toml"] ?? {};
201
+ checks.push({
202
+ name: "codex-managed-config-ownership",
203
+ ok: declarations.every(([role]) => Boolean(codexOwned[`agents.${role}.description`]) && Boolean(codexOwned[`agents.${role}.config_file`]))
204
+ });
205
+ let bootstrap = "";
206
+ try {
207
+ bootstrap = await readFile(join(projectRoot, "AGENTS.md"), "utf8");
208
+ }
209
+ catch { }
210
+ checks.push({ name: "codex-bootstrap-runtime-reference", ok: bootstrap.includes(".codex/yaaw-runtime.md") });
211
+ }
147
212
  return {
148
213
  ...status,
149
214
  healthy: status.healthy && checks.every(c => c.ok),
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/installer/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/installer/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { ManagedConfigEntry } from "./types.js";
2
+ export type TomlScalar = string | number | boolean;
3
+ export declare function semanticConfigHash(value: TomlScalar): string;
4
+ export declare function readTomlManagedValue(text: string, semanticKey: string): TomlScalar | undefined;
5
+ export declare function updateTomlManagedKeys(text: string, entries: ManagedConfigEntry[]): string;
6
+ export declare function removeTomlManagedKeys(text: string, semanticKeys: string[]): string;
7
+ export declare function validateManagedToml(text: string): void;
@@ -0,0 +1,192 @@
1
+ import { createHash } from "node:crypto";
2
+ function newlineOf(text) {
3
+ return text.includes("\r\n") ? "\r\n" : "\n";
4
+ }
5
+ function splitPath(value) {
6
+ return value.split(".").map(x => x.trim()).filter(Boolean);
7
+ }
8
+ function stripInlineComment(value) {
9
+ let quote = null;
10
+ let escaped = false;
11
+ for (let i = 0; i < value.length; i += 1) {
12
+ const ch = value[i];
13
+ if (quote === '"') {
14
+ if (escaped)
15
+ escaped = false;
16
+ else if (ch === "\\")
17
+ escaped = true;
18
+ else if (ch === '"')
19
+ quote = null;
20
+ }
21
+ else if (quote === "'") {
22
+ if (ch === "'")
23
+ quote = null;
24
+ }
25
+ else if (ch === '"' || ch === "'")
26
+ quote = ch;
27
+ else if (ch === "#")
28
+ return value.slice(0, i).trimEnd();
29
+ }
30
+ return value.trimEnd();
31
+ }
32
+ function parseString(raw) {
33
+ if (raw.startsWith('"') && raw.endsWith('"')) {
34
+ try {
35
+ return JSON.parse(raw);
36
+ }
37
+ catch {
38
+ throw new Error(`Invalid TOML string: ${raw}`);
39
+ }
40
+ }
41
+ if (raw.startsWith("'") && raw.endsWith("'"))
42
+ return raw.slice(1, -1);
43
+ return null;
44
+ }
45
+ function parseScalar(rawInput) {
46
+ const raw = stripInlineComment(rawInput).trim();
47
+ const stringValue = parseString(raw);
48
+ if (stringValue !== null)
49
+ return stringValue;
50
+ if (raw === "true")
51
+ return true;
52
+ if (raw === "false")
53
+ return false;
54
+ if (/^[+-]?\d+$/.test(raw))
55
+ return Number(raw);
56
+ return undefined;
57
+ }
58
+ function parseAssignments(text) {
59
+ const lines = text.split(/\r?\n/);
60
+ let table = "";
61
+ const parsed = [];
62
+ const seen = new Set();
63
+ for (let i = 0; i < lines.length; i += 1) {
64
+ const trimmed = lines[i].trim();
65
+ if (!trimmed || trimmed.startsWith("#"))
66
+ continue;
67
+ const header = trimmed.match(/^\[([^\[\]]+)\]\s*(?:#.*)?$/);
68
+ if (header) {
69
+ table = header[1].trim();
70
+ continue;
71
+ }
72
+ if (/^\[\[.*\]\]/.test(trimmed)) {
73
+ table = "";
74
+ continue;
75
+ }
76
+ const assignment = lines[i].match(/^\s*([A-Za-z0-9_-]+)\s*=\s*(.+)$/);
77
+ if (!assignment)
78
+ continue;
79
+ const value = parseScalar(assignment[2]);
80
+ if (value === undefined)
81
+ continue;
82
+ const semanticKey = table ? `${table}.${assignment[1]}` : assignment[1];
83
+ if (seen.has(semanticKey))
84
+ throw new Error(`Duplicate TOML key: ${semanticKey}`);
85
+ seen.add(semanticKey);
86
+ parsed.push({ semanticKey, localKey: assignment[1], table, line: i, value });
87
+ }
88
+ return parsed;
89
+ }
90
+ function assertNoObviousSyntaxDamage(text) {
91
+ for (const line of text.split(/\r?\n/)) {
92
+ const trimmed = line.trim();
93
+ if (!trimmed || trimmed.startsWith("#"))
94
+ continue;
95
+ if (/^[{}]\s*$/.test(trimmed) || /^\{[^=]*$/.test(trimmed)) {
96
+ throw new Error("Invalid TOML syntax near unmanaged content");
97
+ }
98
+ }
99
+ }
100
+ export function semanticConfigHash(value) {
101
+ return createHash("sha256").update(JSON.stringify(value)).digest("hex");
102
+ }
103
+ export function readTomlManagedValue(text, semanticKey) {
104
+ assertNoObviousSyntaxDamage(text);
105
+ return parseAssignments(text).find(x => x.semanticKey === semanticKey)?.value;
106
+ }
107
+ function encodeScalar(value) {
108
+ if (typeof value === "string")
109
+ return JSON.stringify(value);
110
+ return String(value);
111
+ }
112
+ function setOne(text, entry) {
113
+ assertNoObviousSyntaxDamage(text);
114
+ const nl = newlineOf(text);
115
+ const lines = text.split(/\r?\n/);
116
+ const parsed = parseAssignments(text);
117
+ const current = parsed.find(x => x.semanticKey === entry.key);
118
+ const parts = splitPath(entry.key);
119
+ const localKey = parts.at(-1);
120
+ const table = parts.slice(0, -1).join(".");
121
+ const rendered = `${localKey} = ${encodeScalar(entry.value)}`;
122
+ if (current) {
123
+ lines[current.line] = rendered;
124
+ return lines.join(nl);
125
+ }
126
+ if (!table) {
127
+ const firstHeader = lines.findIndex(line => /^\s*\[/.test(line));
128
+ const index = firstHeader === -1 ? Math.max(0, lines.length - (lines.at(-1) === "" ? 1 : 0)) : firstHeader;
129
+ lines.splice(index, 0, rendered);
130
+ return lines.join(nl);
131
+ }
132
+ const headerPattern = new RegExp(`^\\s*\\[${table.replace(/[.*+?^$\{\}()|[\]\\]/g, "\\$&")}\\]\\s*(?:#.*)?$`);
133
+ const headerIndex = lines.findIndex(line => headerPattern.test(line));
134
+ if (headerIndex !== -1) {
135
+ let insertAt = headerIndex + 1;
136
+ while (insertAt < lines.length && !/^\s*\[/.test(lines[insertAt]))
137
+ insertAt += 1;
138
+ while (insertAt > headerIndex + 1 && lines[insertAt - 1].trim() === "")
139
+ insertAt -= 1;
140
+ lines.splice(insertAt, 0, rendered);
141
+ return lines.join(nl);
142
+ }
143
+ let output = lines.join(nl).replace(/(?:\r?\n)*$/, "");
144
+ if (output)
145
+ output += nl + nl;
146
+ output += `[${table}]${nl}${rendered}${nl}`;
147
+ return output;
148
+ }
149
+ export function updateTomlManagedKeys(text, entries) {
150
+ let output = text;
151
+ for (const entry of entries)
152
+ output = setOne(output, entry);
153
+ return output;
154
+ }
155
+ function removeOne(text, semanticKey) {
156
+ const nl = newlineOf(text);
157
+ const lines = text.split(/\r?\n/);
158
+ const current = parseAssignments(text).find(x => x.semanticKey === semanticKey);
159
+ if (!current)
160
+ return text;
161
+ lines.splice(current.line, 1);
162
+ const parts = splitPath(semanticKey);
163
+ const table = parts.slice(0, -1).join(".");
164
+ if (table.startsWith("agents.yaaw_")) {
165
+ const headerPattern = new RegExp(`^\\s*\\[${table.replace(/[.*+?^$\{\}()|[\]\\]/g, "\\$&")}\\]\\s*(?:#.*)?$`);
166
+ const headerIndex = lines.findIndex(line => headerPattern.test(line));
167
+ if (headerIndex !== -1) {
168
+ let end = headerIndex + 1;
169
+ while (end < lines.length && !/^\s*\[/.test(lines[end]))
170
+ end += 1;
171
+ const body = lines.slice(headerIndex + 1, end).filter(line => line.trim() && !line.trim().startsWith("#"));
172
+ if (body.length === 0) {
173
+ lines.splice(headerIndex, end - headerIndex);
174
+ while (headerIndex < lines.length - 1 && lines[headerIndex]?.trim() === "" && lines[headerIndex + 1]?.trim() === "") {
175
+ lines.splice(headerIndex, 1);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ return lines.join(nl);
181
+ }
182
+ export function removeTomlManagedKeys(text, semanticKeys) {
183
+ let output = text;
184
+ for (const key of semanticKeys)
185
+ output = removeOne(output, key);
186
+ return output;
187
+ }
188
+ export function validateManagedToml(text) {
189
+ assertNoObviousSyntaxDamage(text);
190
+ parseAssignments(text);
191
+ }
192
+ //# sourceMappingURL=toml-managed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml-managed.js","sourceRoot":"","sources":["../../src/installer/toml-managed.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { dirname, relative, resolve } from "node:path";
3
3
  import { assertSafeDestination } from "./boundary.js";
4
4
  import { atomicWrite } from "./filesystem.js";
5
5
  import { removeManagedSection, renderManagedSection } from "./managed-sections.js";
6
+ import { removeTomlManagedKeys, updateTomlManagedKeys, validateManagedToml } from "./toml-managed.js";
6
7
  async function exists(path) {
7
8
  try {
8
9
  await lstat(path);
@@ -56,6 +57,8 @@ export async function preflightPlan(plan) {
56
57
  "write-managed-file",
57
58
  "copy-managed-file",
58
59
  "update-managed-section",
60
+ "update-managed-config-keys",
61
+ "remove-managed-config-keys",
59
62
  "remove-managed-file",
60
63
  "remove-managed-section",
61
64
  "remove-empty-dir"
@@ -123,6 +126,29 @@ export async function executePlan(plan, options = {}) {
123
126
  if (updated !== original)
124
127
  await mutateFile(op.path, async () => atomicWrite(op.path, updated));
125
128
  }
129
+ else if (op.type === "update-managed-config-keys") {
130
+ const original = (await exists(op.path)) ? await readFile(op.path, "utf8") : "";
131
+ validateManagedToml(original);
132
+ const updated = updateTomlManagedKeys(original, op.entries);
133
+ validateManagedToml(updated);
134
+ if (updated !== original)
135
+ await mutateFile(op.path, async () => atomicWrite(op.path, updated));
136
+ }
137
+ else if (op.type === "remove-managed-config-keys") {
138
+ if (await exists(op.path)) {
139
+ const original = await readFile(op.path, "utf8");
140
+ validateManagedToml(original);
141
+ const updated = removeTomlManagedKeys(original, op.keys);
142
+ validateManagedToml(updated);
143
+ if (updated !== original)
144
+ await mutateFile(op.path, async () => {
145
+ if (updated.trim().length === 0)
146
+ await unlink(op.path);
147
+ else
148
+ await atomicWrite(op.path, updated);
149
+ });
150
+ }
151
+ }
126
152
  else if (op.type === "remove-managed-section") {
127
153
  if (await exists(op.path)) {
128
154
  const original = await readFile(op.path, "utf8");
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/installer/transaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/installer/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAWtG,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,KAAK,CAAC;IAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,WAAmB,EAAE,WAAwB;IAC1F,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,OAAO;YAAE,MAAM;QAC5B,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAClC,MAAM,qBAAqB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,OAA4B;IAC/D,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO;IAC9B,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,QAAyB;IACpE,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7E,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACvE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;QACnC,oBAAoB;QACpB,mBAAmB;QACnB,wBAAwB;QACxB,4BAA4B;QAC5B,4BAA4B;QAC5B,qBAAqB;QACrB,wBAAwB;QACxB,kBAAkB;KACnB,CAAC,CAAC;IACH,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YACjB,MAAM,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5J,MAAM,IAAI,KAAK,CAAC,qEAAqE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7G,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAiB,EAAE,OAAO,GAAmB,EAAE;IAC/E,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAErE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,MAA2B,EAAE,EAAE;QACrE,MAAM,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACpD,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACtE,MAAM,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC7B,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;gBAAE,SAAS;YACrC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC7B,MAAM,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;oBAChE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,+BAA+B,EAAE,CAAC;gBACvD,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;oBAC7B,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBAClD,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC7C,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gBACzE,IAAI,OAAO,KAAK,QAAQ;oBAAE,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gBAC9B,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;gBAC5D,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,OAAO,KAAK,QAAQ;oBAAE,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;gBACpD,IAAI,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACjD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBAC9B,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;oBACzD,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBAC7B,IAAI,OAAO,KAAK,QAAQ;wBAAE,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;4BAC7D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;gCAAE,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;gCAClD,MAAM,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBAC3C,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,wBAAwB,EAAE,CAAC;gBAChD,IAAI,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACjD,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;oBAC7D,IAAI,OAAO,KAAK,QAAQ;wBAAE,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;4BAC7D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gCAAE,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;;gCAC3C,MAAM,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;wBAC3C,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAC7C,IAAI,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,MAAM,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACH,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACrB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;wBACzB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;oBAChF,CAAC;oBAAC,OAAO,KAAU,EAAE,CAAC;wBACpB,IAAI,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;4BAAE,MAAM,KAAK,CAAC;oBAClE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,KAAK,IAAI,CAAC,CAAC;YACX,IAAI,OAAO,CAAC,mBAAmB,IAAI,KAAK,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBACxE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,cAAc;YAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAE3D,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAClE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC;gBAC5E,MAAM,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,YAAa,EAAE,OAAO,CAAC,eAAgB,CAAC,CAAC,CAAC;YACnH,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,KAAM,CAAC,CAAC;;oBACtD,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACzD,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACpC,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -2,6 +2,11 @@ import type { IntegrationId } from "../integrations/types.js";
2
2
  export type InstallAction = "fresh" | "quick-update" | "modify" | "repair" | "uninstall";
3
3
  export type InstallMode = "interactive" | "headless";
4
4
  export type ConflictPolicy = "fail" | "keep" | "replace" | "backup-replace";
5
+ export type ManagedConfigScalar = string | number | boolean;
6
+ export interface ManagedConfigEntry {
7
+ key: string;
8
+ value: ManagedConfigScalar;
9
+ }
5
10
  export interface InstallContext {
6
11
  packageVersion: string;
7
12
  payloadRoot: string;
@@ -10,6 +15,7 @@ export interface InstallContext {
10
15
  mode: InstallMode;
11
16
  selectedIntegrations: IntegrationId[];
12
17
  selectedSkills: string[];
18
+ integrationSettings: Partial<Record<IntegrationId, unknown>>;
13
19
  action: InstallAction;
14
20
  dryRun: boolean;
15
21
  forceManaged: boolean;
@@ -39,6 +45,18 @@ export type InstallOperation = {
39
45
  sectionId: string;
40
46
  content: string;
41
47
  owner: string;
48
+ } | {
49
+ type: "update-managed-config-keys";
50
+ path: string;
51
+ format: "toml";
52
+ entries: ManagedConfigEntry[];
53
+ owner: string;
54
+ } | {
55
+ type: "remove-managed-config-keys";
56
+ path: string;
57
+ format: "toml";
58
+ keys: string[];
59
+ owner: string;
42
60
  } | {
43
61
  type: "remove-managed-file";
44
62
  path: string;
@@ -77,6 +95,13 @@ export interface ManagedSectionRecord {
77
95
  packageSha256?: string;
78
96
  localOverride?: boolean;
79
97
  }
98
+ export interface ManagedConfigKeyRecord {
99
+ owner: string;
100
+ sha256: string;
101
+ value: ManagedConfigScalar;
102
+ packageSha256?: string;
103
+ localOverride?: boolean;
104
+ }
80
105
  export interface InstallationManifest {
81
106
  schema: "yaaw.installation/v2";
82
107
  yaawVersion: string;
@@ -92,8 +117,10 @@ export interface InstallationManifest {
92
117
  adapterVersion: number;
93
118
  skillsRoot: string;
94
119
  bootstrap: string;
120
+ runtime?: unknown;
95
121
  }>;
96
122
  skills: string[];
97
123
  managedFiles: Record<string, ManagedFileRecord>;
98
124
  managedSections: Record<string, Record<string, ManagedSectionRecord>>;
125
+ managedConfigKeys: Record<string, Record<string, ManagedConfigKeyRecord>>;
99
126
  }
@@ -0,0 +1,25 @@
1
+ export type CodexRuntimeMode = "auto" | "isolated-required" | "inline";
2
+ export type CodexWebSearchMode = "disabled" | "cached" | "indexed" | "live";
3
+ export type CodexRuntimeScalar = string | number | boolean;
4
+ export interface CodexModelSettings {
5
+ model: string | null;
6
+ reasoning: string | null;
7
+ }
8
+ export interface CodexRuntimeSettings {
9
+ mode: CodexRuntimeMode;
10
+ orchestrator: CodexModelSettings;
11
+ defaultWorker: CodexModelSettings;
12
+ roles: {
13
+ prd: CodexModelSettings;
14
+ planner: CodexModelSettings;
15
+ implementer: CodexModelSettings;
16
+ reviewer: CodexModelSettings;
17
+ };
18
+ maxConcurrentThreads: number | null;
19
+ sandboxMode: string | null;
20
+ approvalPolicy: string | null;
21
+ webSearch: CodexWebSearchMode | null;
22
+ }
23
+ export declare function defaultCodexRuntimeSettings(): CodexRuntimeSettings;
24
+ export declare function normalizeCodexRuntimeSettings(value: any, fallback?: CodexRuntimeSettings): CodexRuntimeSettings;
25
+ export declare function parseCodexInstallConfig(value: any): CodexRuntimeSettings;
@@ -0,0 +1,85 @@
1
+ const inheritedModel = () => ({ model: null, reasoning: null });
2
+ export function defaultCodexRuntimeSettings() {
3
+ return {
4
+ mode: "auto",
5
+ orchestrator: inheritedModel(),
6
+ defaultWorker: inheritedModel(),
7
+ roles: {
8
+ prd: inheritedModel(),
9
+ planner: inheritedModel(),
10
+ implementer: inheritedModel(),
11
+ reviewer: inheritedModel()
12
+ },
13
+ maxConcurrentThreads: null,
14
+ sandboxMode: null,
15
+ approvalPolicy: null,
16
+ webSearch: null
17
+ };
18
+ }
19
+ function nullableString(value, label) {
20
+ if (value === undefined || value === null || value === "inherit")
21
+ return null;
22
+ if (typeof value !== "string" || !value.trim())
23
+ throw new Error(`Invalid Codex ${label}`);
24
+ return value.trim();
25
+ }
26
+ function modelSettings(value, fallback, label) {
27
+ const source = value ?? {};
28
+ return {
29
+ model: source.model === undefined ? fallback.model : nullableString(source.model, `${label} model`),
30
+ reasoning: source.reasoning === undefined ? fallback.reasoning : nullableString(source.reasoning, `${label} reasoning`)
31
+ };
32
+ }
33
+ export function normalizeCodexRuntimeSettings(value, fallback = defaultCodexRuntimeSettings()) {
34
+ const source = value ?? {};
35
+ const mode = source.mode ?? source.runtime ?? fallback.mode;
36
+ if (!["auto", "isolated-required", "inline"].includes(mode)) {
37
+ throw new Error(`Invalid Codex runtime mode: ${String(mode)}`);
38
+ }
39
+ const maxRaw = source.maxConcurrentThreads ?? source.maxConcurrentAgents ?? fallback.maxConcurrentThreads;
40
+ const maxConcurrentThreads = maxRaw === undefined || maxRaw === null || maxRaw === "inherit"
41
+ ? null
42
+ : Number(maxRaw);
43
+ if (maxConcurrentThreads !== null && (!Number.isInteger(maxConcurrentThreads) || maxConcurrentThreads < 1)) {
44
+ throw new Error("Codex max concurrent threads must be a positive integer or inherit");
45
+ }
46
+ const webRaw = source.webSearch ?? fallback.webSearch;
47
+ const webSearch = webRaw === undefined || webRaw === null || webRaw === "inherit" ? null : webRaw;
48
+ if (webSearch !== null && !["disabled", "cached", "indexed", "live"].includes(webSearch)) {
49
+ throw new Error(`Invalid Codex web search mode: ${String(webSearch)}`);
50
+ }
51
+ return {
52
+ mode,
53
+ orchestrator: modelSettings(source.orchestrator, fallback.orchestrator, "orchestrator"),
54
+ defaultWorker: modelSettings(source.defaultWorker, fallback.defaultWorker, "default worker"),
55
+ roles: {
56
+ prd: modelSettings(source.roles?.prd, fallback.roles.prd, "PRD"),
57
+ planner: modelSettings(source.roles?.planner, fallback.roles.planner, "Planner"),
58
+ implementer: modelSettings(source.roles?.implementer, fallback.roles.implementer, "Implementer"),
59
+ reviewer: modelSettings(source.roles?.reviewer, fallback.roles.reviewer, "Reviewer")
60
+ },
61
+ maxConcurrentThreads,
62
+ sandboxMode: source.sandboxMode === undefined ? fallback.sandboxMode : nullableString(source.sandboxMode, "sandbox mode"),
63
+ approvalPolicy: source.approvalPolicy === undefined ? fallback.approvalPolicy : nullableString(source.approvalPolicy, "approval policy"),
64
+ webSearch
65
+ };
66
+ }
67
+ export function parseCodexInstallConfig(value) {
68
+ if (!value || value.schema !== "yaaw.codex-install/v1") {
69
+ throw new Error("Codex config file must use schema yaaw.codex-install/v1");
70
+ }
71
+ const forbidden = /(?:api.?key|token|secret|password|cookie|credential)/i;
72
+ const inspect = (node, path = "") => {
73
+ if (!node || typeof node !== "object")
74
+ return;
75
+ for (const [key, child] of Object.entries(node)) {
76
+ const next = path ? `${path}.${key}` : key;
77
+ if (forbidden.test(key))
78
+ throw new Error(`Codex installer configuration must not contain credentials: ${next}`);
79
+ inspect(child, next);
80
+ }
81
+ };
82
+ inspect(value);
83
+ return normalizeCodexRuntimeSettings(value);
84
+ }
85
+ //# sourceMappingURL=codex-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-runtime.js","sourceRoot":"","sources":["../../src/integrations/codex-runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
- export declare const codexAdapter: import("./types.js").IntegrationAdapter;
1
+ import type { IntegrationAdapter } from "./types.js";
2
+ export declare const codexAdapter: IntegrationAdapter;