@open-agent-toolkit/cli 0.1.43 → 0.1.46
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/assets/agents/oat-reviewer.md +2 -2
- package/assets/config/dispatch-matrix-recommendation.json +23 -0
- package/assets/docs/cli-utilities/config-and-local-state.md +7 -0
- package/assets/docs/cli-utilities/configuration.md +104 -25
- package/assets/docs/cli-utilities/workflow-gates.md +79 -16
- package/assets/docs/contributing/code.md +10 -4
- package/assets/docs/contributing/hooks-and-safety.md +23 -0
- package/assets/docs/provider-sync/config.md +5 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +6 -1
- package/assets/docs/provider-sync/providers.md +6 -3
- package/assets/docs/provider-sync/scope-and-surface.md +2 -1
- package/assets/docs/reference/oat-directory-structure.md +2 -2
- package/assets/docs/workflows/projects/dispatch-ceiling.md +110 -27
- package/assets/docs/workflows/projects/implementation-execution.md +20 -13
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-implement/SKILL.md +155 -58
- package/assets/skills/oat-project-plan/SKILL.md +22 -3
- package/assets/skills/oat-project-quick-start/SKILL.md +54 -23
- package/assets/templates/state.md +5 -0
- package/dist/commands/config/index.d.ts +6 -0
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +429 -20
- package/dist/commands/doctor/index.d.ts +6 -1
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +209 -19
- package/dist/commands/gate/index.d.ts +39 -2
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +343 -30
- package/dist/commands/internal/cursor-current-target.d.ts +37 -0
- package/dist/commands/internal/cursor-current-target.d.ts.map +1 -0
- package/dist/commands/internal/cursor-current-target.js +228 -0
- package/dist/commands/internal/index.d.ts.map +1 -1
- package/dist/commands/internal/index.js +2 -0
- package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
- package/dist/commands/project/dispatch-ceiling/index.js +487 -17
- package/dist/commands/providers/codex/index.d.ts +4 -0
- package/dist/commands/providers/codex/index.d.ts.map +1 -0
- package/dist/commands/providers/codex/index.js +7 -0
- package/dist/commands/providers/codex/materialize.d.ts +5 -0
- package/dist/commands/providers/codex/materialize.d.ts.map +1 -0
- package/dist/commands/providers/codex/materialize.js +152 -0
- package/dist/commands/providers/index.d.ts +2 -2
- package/dist/commands/providers/index.d.ts.map +1 -1
- package/dist/commands/providers/index.js +4 -2
- package/dist/commands/providers/providers.types.d.ts +23 -0
- package/dist/commands/providers/providers.types.d.ts.map +1 -1
- package/dist/commands/shared/codex-strays.d.ts.map +1 -1
- package/dist/commands/shared/codex-strays.js +11 -1
- package/dist/commands/status/index.d.ts +4 -1
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +1 -1
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +1 -1
- package/dist/commands/sync/sync.types.d.ts +4 -1
- package/dist/commands/sync/sync.types.d.ts.map +1 -1
- package/dist/config/dispatch-ceiling-preset.d.ts +4 -0
- package/dist/config/dispatch-ceiling-preset.d.ts.map +1 -1
- package/dist/config/dispatch-ceiling-preset.js +3 -0
- package/dist/config/dispatch-policy-options.d.ts +20 -0
- package/dist/config/dispatch-policy-options.d.ts.map +1 -0
- package/dist/config/dispatch-policy-options.js +96 -0
- package/dist/config/oat-config.d.ts +21 -5
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +118 -10
- package/dist/config/resolve.js +12 -0
- package/dist/manifest/manifest.types.d.ts +12 -12
- package/dist/providers/ceiling/registry.d.ts +7 -5
- package/dist/providers/ceiling/registry.d.ts.map +1 -1
- package/dist/providers/ceiling/registry.js +32 -5
- package/dist/providers/codex/codec/config-merge.d.ts +6 -0
- package/dist/providers/codex/codec/config-merge.d.ts.map +1 -1
- package/dist/providers/codex/codec/config-merge.js +7 -0
- package/dist/providers/codex/codec/materialize.d.ts +16 -0
- package/dist/providers/codex/codec/materialize.d.ts.map +1 -0
- package/dist/providers/codex/codec/materialize.js +57 -0
- package/dist/providers/codex/codec/shared.d.ts +1 -0
- package/dist/providers/codex/codec/shared.d.ts.map +1 -1
- package/dist/providers/codex/codec/shared.js +9 -1
- package/dist/providers/codex/codec/sync-extension.d.ts +7 -1
- package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
- package/dist/providers/codex/codec/sync-extension.js +183 -46
- package/dist/providers/identity/availability.d.ts +45 -0
- package/dist/providers/identity/availability.d.ts.map +1 -0
- package/dist/providers/identity/availability.js +353 -0
- package/dist/providers/identity/family.d.ts +13 -0
- package/dist/providers/identity/family.d.ts.map +1 -0
- package/dist/providers/identity/family.js +32 -0
- package/dist/providers/identity/provenance.d.ts +21 -0
- package/dist/providers/identity/provenance.d.ts.map +1 -0
- package/dist/providers/identity/provenance.js +65 -0
- package/dist/providers/identity/stamp.d.ts +35 -0
- package/dist/providers/identity/stamp.d.ts.map +1 -0
- package/dist/providers/identity/stamp.js +171 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/providers/codex/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,2BAA2B,CACzC,SAAS,GAAE,0BAA+B,GACzC,OAAO,CAIT"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createCodexMaterializeCommand } from './materialize.js';
|
|
3
|
+
export function createProvidersCodexCommand(overrides = {}) {
|
|
4
|
+
return new Command('codex')
|
|
5
|
+
.description('Codex provider utilities')
|
|
6
|
+
.addCommand(createCodexMaterializeCommand(overrides.materialize));
|
|
7
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CodexMaterializeResult, ProvidersCodexMaterializeDependencies } from '../../providers/providers.types.js';
|
|
2
|
+
import { Command } from 'commander';
|
|
3
|
+
export declare function formatCodexMaterializeResult(result: CodexMaterializeResult): string;
|
|
4
|
+
export declare function createCodexMaterializeCommand(overrides?: Partial<ProvidersCodexMaterializeDependencies>): Command;
|
|
5
|
+
//# sourceMappingURL=materialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"materialize.d.ts","sourceRoot":"","sources":["../../../../src/commands/providers/codex/materialize.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EACtB,qCAAqC,EACtC,MAAM,qCAAqC,CAAC;AAS7C,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAsD5C,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,sBAAsB,GAC7B,MAAM,CAaR;AAwGD,wBAAgB,6BAA6B,CAC3C,SAAS,GAAE,OAAO,CAAC,qCAAqC,CAAM,GAC7D,OAAO,CAoCT"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, isAbsolute, join, resolve } from 'node:path';
|
|
3
|
+
import { parseCanonicalAgentFile } from '../../../agents/canonical/index.js';
|
|
4
|
+
import { buildCommandContext } from '../../../app/command-context.js';
|
|
5
|
+
import { readGlobalOptions } from '../../shared/shared.utils.js';
|
|
6
|
+
import { CliError } from '../../../errors/index.js';
|
|
7
|
+
import { ensureDir, fileExists } from '../../../fs/io.js';
|
|
8
|
+
import { resolveProjectRoot, resolveScopeRoot } from '../../../fs/paths.js';
|
|
9
|
+
import { mergeCodexConfigForRole } from '../../../providers/codex/codec/config-merge.js';
|
|
10
|
+
import { materializeCodexRole } from '../../../providers/codex/codec/materialize.js';
|
|
11
|
+
import { Command, Option } from 'commander';
|
|
12
|
+
function createDependencies() {
|
|
13
|
+
return {
|
|
14
|
+
buildCommandContext,
|
|
15
|
+
async resolveScopeRoot(scope, context) {
|
|
16
|
+
if (scope === 'project') {
|
|
17
|
+
return resolveProjectRoot(context.cwd);
|
|
18
|
+
}
|
|
19
|
+
return resolveScopeRoot(scope, context.cwd, context.home);
|
|
20
|
+
},
|
|
21
|
+
parseCanonicalAgentFile,
|
|
22
|
+
materializeCodexRole,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function requireOption(value, optionName) {
|
|
26
|
+
const normalized = value?.trim() ?? '';
|
|
27
|
+
if (!normalized) {
|
|
28
|
+
throw new CliError(`Missing required ${optionName}. Pass ${optionName} <value>.`);
|
|
29
|
+
}
|
|
30
|
+
return normalized;
|
|
31
|
+
}
|
|
32
|
+
function resolveAgentPath(agentName, options, scopeRoot) {
|
|
33
|
+
if (options.agentPath) {
|
|
34
|
+
return isAbsolute(options.agentPath)
|
|
35
|
+
? options.agentPath
|
|
36
|
+
: resolve(scopeRoot, options.agentPath);
|
|
37
|
+
}
|
|
38
|
+
const fileName = agentName.endsWith('.md') ? agentName : `${agentName}.md`;
|
|
39
|
+
return join(scopeRoot, '.agents', 'agents', fileName);
|
|
40
|
+
}
|
|
41
|
+
export function formatCodexMaterializeResult(result) {
|
|
42
|
+
return [
|
|
43
|
+
result.dryRun
|
|
44
|
+
? 'Codex materialization preview'
|
|
45
|
+
: 'Codex materialization complete',
|
|
46
|
+
`Scope: ${result.scope}`,
|
|
47
|
+
`Agent: ${result.agentPath}`,
|
|
48
|
+
`Role: ${result.roleName}`,
|
|
49
|
+
`Role file: ${result.rolePath}`,
|
|
50
|
+
`Config file: ${result.configPath}`,
|
|
51
|
+
'TOML preview:',
|
|
52
|
+
result.tomlPreview.trimEnd(),
|
|
53
|
+
].join('\n');
|
|
54
|
+
}
|
|
55
|
+
async function buildCodexMaterializePlan(agentName, options, context, dependencies) {
|
|
56
|
+
const model = requireOption(options.model, '--model');
|
|
57
|
+
const effort = requireOption(options.effort, '--effort');
|
|
58
|
+
const scope = options.scope;
|
|
59
|
+
const scopeRoot = await dependencies.resolveScopeRoot(scope, context);
|
|
60
|
+
const agentPath = resolveAgentPath(agentName, options, scopeRoot);
|
|
61
|
+
const agent = await dependencies.parseCanonicalAgentFile(agentPath);
|
|
62
|
+
const role = dependencies.materializeCodexRole({
|
|
63
|
+
agent,
|
|
64
|
+
model,
|
|
65
|
+
effort,
|
|
66
|
+
roleName: options.roleName,
|
|
67
|
+
});
|
|
68
|
+
const rolePath = join(scopeRoot, '.codex', role.configFile);
|
|
69
|
+
const configPath = join(scopeRoot, '.codex', 'config.toml');
|
|
70
|
+
return {
|
|
71
|
+
role,
|
|
72
|
+
result: {
|
|
73
|
+
status: context.dryRun ? 'preview' : 'written',
|
|
74
|
+
dryRun: context.dryRun,
|
|
75
|
+
scope,
|
|
76
|
+
agentPath,
|
|
77
|
+
roleName: role.roleName,
|
|
78
|
+
rolePath,
|
|
79
|
+
configPath,
|
|
80
|
+
configFile: role.configFile,
|
|
81
|
+
tomlPreview: role.content,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
async function readOptionalFile(filePath) {
|
|
86
|
+
if (!(await fileExists(filePath))) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return readFile(filePath, 'utf8');
|
|
90
|
+
}
|
|
91
|
+
async function applyCodexMaterializePlan({ result, role, }) {
|
|
92
|
+
await ensureDir(dirname(result.rolePath));
|
|
93
|
+
await writeFile(result.rolePath, role.content, 'utf8');
|
|
94
|
+
const existingConfig = await readOptionalFile(result.configPath);
|
|
95
|
+
const mergedConfig = mergeCodexConfigForRole({
|
|
96
|
+
existingContent: existingConfig,
|
|
97
|
+
role: {
|
|
98
|
+
roleName: role.roleName,
|
|
99
|
+
description: role.description,
|
|
100
|
+
configFile: role.configFile,
|
|
101
|
+
},
|
|
102
|
+
});
|
|
103
|
+
await ensureDir(dirname(result.configPath));
|
|
104
|
+
await writeFile(result.configPath, mergedConfig.mergedContent, 'utf8');
|
|
105
|
+
}
|
|
106
|
+
async function runCodexMaterializeCommand(agentName, options, context, dependencies) {
|
|
107
|
+
try {
|
|
108
|
+
const plan = await buildCodexMaterializePlan(agentName, options, context, dependencies);
|
|
109
|
+
if (!context.dryRun) {
|
|
110
|
+
await applyCodexMaterializePlan(plan);
|
|
111
|
+
}
|
|
112
|
+
const { result } = plan;
|
|
113
|
+
if (context.json) {
|
|
114
|
+
context.logger.json(result);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
context.logger.info(formatCodexMaterializeResult(result));
|
|
118
|
+
}
|
|
119
|
+
process.exitCode = 0;
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
123
|
+
if (context.json) {
|
|
124
|
+
context.logger.json({ status: 'error', message });
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
context.logger.error(message);
|
|
128
|
+
}
|
|
129
|
+
process.exitCode = error instanceof CliError ? error.exitCode : 1;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
export function createCodexMaterializeCommand(overrides = {}) {
|
|
133
|
+
const dependencies = {
|
|
134
|
+
...createDependencies(),
|
|
135
|
+
...overrides,
|
|
136
|
+
};
|
|
137
|
+
return new Command('materialize')
|
|
138
|
+
.description('Materialize a canonical agent as a Codex role')
|
|
139
|
+
.argument('<agent-name>', 'Canonical agent name')
|
|
140
|
+
.addOption(new Option('--scope <scope>', 'Materialization scope')
|
|
141
|
+
.choices(['project', 'user'])
|
|
142
|
+
.default('project'))
|
|
143
|
+
.option('--model <model>', 'Codex model ID')
|
|
144
|
+
.option('--effort <effort>', 'Codex reasoning effort')
|
|
145
|
+
.option('--role-name <role>', 'Override generated Codex role name')
|
|
146
|
+
.option('--agent-path <path>', 'Path to canonical agent markdown')
|
|
147
|
+
.option('--dry-run', 'Preview files without writing')
|
|
148
|
+
.action(async (agentName, options, command) => {
|
|
149
|
+
const context = dependencies.buildCommandContext(readGlobalOptions(command));
|
|
150
|
+
await runCodexMaterializeCommand(agentName, options, context, dependencies);
|
|
151
|
+
});
|
|
152
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import type { ProvidersInspectDependencies, ProvidersListDependencies, ProvidersSetDependencies } from './providers.types.js';
|
|
3
|
-
export declare function createProvidersCommand(listOverrides?: Partial<ProvidersListDependencies>, inspectOverrides?: Partial<ProvidersInspectDependencies>, setOverrides?: Partial<ProvidersSetDependencies
|
|
2
|
+
import type { ProvidersCodexDependencies, ProvidersInspectDependencies, ProvidersListDependencies, ProvidersSetDependencies } from './providers.types.js';
|
|
3
|
+
export declare function createProvidersCommand(listOverrides?: Partial<ProvidersListDependencies>, inspectOverrides?: Partial<ProvidersInspectDependencies>, setOverrides?: Partial<ProvidersSetDependencies>, codexOverrides?: ProvidersCodexDependencies): Command;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAG3B,wBAAgB,sBAAsB,CACpC,aAAa,GAAE,OAAO,CAAC,yBAAyB,CAAM,EACtD,gBAAgB,GAAE,OAAO,CAAC,4BAA4B,CAAM,EAC5D,YAAY,GAAE,OAAO,CAAC,wBAAwB,CAAM,EACpD,cAAc,GAAE,0BAA+B,GAC9C,OAAO,CAOT"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import { createProvidersCodexCommand } from './codex/index.js';
|
|
2
3
|
import { createProvidersInspectCommand } from './inspect/inspect.js';
|
|
3
4
|
import { createProvidersListCommand } from './list/list.js';
|
|
4
5
|
import { createProvidersSetCommand } from './set/index.js';
|
|
5
|
-
export function createProvidersCommand(listOverrides = {}, inspectOverrides = {}, setOverrides = {}) {
|
|
6
|
+
export function createProvidersCommand(listOverrides = {}, inspectOverrides = {}, setOverrides = {}, codexOverrides = {}) {
|
|
6
7
|
return new Command('providers')
|
|
7
8
|
.description('Inspect provider capabilities and paths')
|
|
8
9
|
.addCommand(createProvidersListCommand(listOverrides))
|
|
9
10
|
.addCommand(createProvidersInspectCommand(inspectOverrides))
|
|
10
|
-
.addCommand(createProvidersSetCommand(setOverrides))
|
|
11
|
+
.addCommand(createProvidersSetCommand(setOverrides))
|
|
12
|
+
.addCommand(createProvidersCodexCommand(codexOverrides));
|
|
11
13
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import type { parseCanonicalAgentFile } from '../../agents/canonical/index.js';
|
|
1
2
|
import type { CommandContext, GlobalOptions } from '../../app/command-context.js';
|
|
2
3
|
import type { SyncConfig } from '../../config/index.js';
|
|
3
4
|
import type { CopyTransform, DriftReport } from '../../drift/index.js';
|
|
4
5
|
import type { Manifest } from '../../manifest/index.js';
|
|
6
|
+
import type { CodexRoleExport } from '../../providers/codex/codec/export-to-codex.js';
|
|
7
|
+
import type { CodexMaterializeRoleOptions } from '../../providers/codex/codec/materialize.js';
|
|
5
8
|
import type { PathMapping, ProviderAdapter } from '../../providers/shared/index.js';
|
|
6
9
|
import type { ConcreteScope, ContentType, Scope, SyncStrategy } from '../../shared/types.js';
|
|
7
10
|
export interface ProviderListSummary {
|
|
@@ -60,4 +63,24 @@ export interface ProvidersSetDependencies {
|
|
|
60
63
|
loadSyncConfig: (configPath: string) => Promise<SyncConfig>;
|
|
61
64
|
saveSyncConfig: (configPath: string, config: SyncConfig) => Promise<SyncConfig>;
|
|
62
65
|
}
|
|
66
|
+
export interface CodexMaterializeResult {
|
|
67
|
+
status: 'preview' | 'written';
|
|
68
|
+
dryRun: boolean;
|
|
69
|
+
scope: ConcreteScope;
|
|
70
|
+
agentPath: string;
|
|
71
|
+
roleName: string;
|
|
72
|
+
rolePath: string;
|
|
73
|
+
configPath: string;
|
|
74
|
+
configFile: string;
|
|
75
|
+
tomlPreview: string;
|
|
76
|
+
}
|
|
77
|
+
export interface ProvidersCodexMaterializeDependencies {
|
|
78
|
+
buildCommandContext: (options: GlobalOptions) => CommandContext;
|
|
79
|
+
resolveScopeRoot: (scope: ConcreteScope, context: CommandContext) => Promise<string>;
|
|
80
|
+
parseCanonicalAgentFile: typeof parseCanonicalAgentFile;
|
|
81
|
+
materializeCodexRole: (options: CodexMaterializeRoleOptions) => CodexRoleExport;
|
|
82
|
+
}
|
|
83
|
+
export interface ProvidersCodexDependencies {
|
|
84
|
+
materialize?: Partial<ProvidersCodexMaterializeDependencies>;
|
|
85
|
+
}
|
|
63
86
|
//# sourceMappingURL=providers.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.types.d.ts","sourceRoot":"","sources":["../../../src/commands/providers/providers.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.types.d.ts","sourceRoot":"","sources":["../../../src/commands/providers/providers.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,KAAK,EACL,YAAY,EACb,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,YAAY,CAAC;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,WAAW,EAAE,MAAM,eAAe,EAAE,CAAC;IACrC,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;IAC3E,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,WAAW,EAAE,CACX,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,aAAa,KAC1B,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,2BAA2B;IAC1C,KAAK,EAAE,aAAa,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,YAAY,CAAC;IAC9B,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,2BAA2B,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,4BAA4B;IAC3C,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,WAAW,EAAE,MAAM,eAAe,EAAE,CAAC;IACrC,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;IAC3E,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,WAAW,EAAE,CACX,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,aAAa,KAC1B,OAAO,CAAC,WAAW,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,WAAW,EAAE,MAAM,eAAe,EAAE,CAAC;IACrC,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,cAAc,EAAE,CACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,UAAU,KACf,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qCAAqC;IACpD,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,oBAAoB,EAAE,CACpB,OAAO,EAAE,2BAA2B,KACjC,eAAe,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,qCAAqC,CAAC,CAAC;CAC9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-strays.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/codex-strays.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-strays.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/codex-strays.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/C,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,cAAc,EAAE,KAC/B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjC,kBAAkB,EAAE,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC;CACvB;AAgJD,wBAAsB,qBAAqB,CACzC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,cAAc,EAAE,EAClC,gBAAgB,GAAE,GAAG,CAAC,MAAM,CAAa,GACxC,OAAO,CAAC,cAAc,EAAE,CAAC,CAuB3B;AAED,wBAAsB,4BAA4B,CAAC,EACjD,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,kBAAkB,GACnB,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import TOML from '@iarna/toml';
|
|
4
|
+
import { isOatManagedCodexRoleFile } from '../../providers/codex/codec/shared.js';
|
|
4
5
|
function canonicalRoleNames(canonicalEntries) {
|
|
5
6
|
return new Set(canonicalEntries
|
|
6
7
|
.filter((entry) => entry.type === 'agent' && entry.isFile)
|
|
@@ -60,6 +61,10 @@ async function detectFromConfig(scopeRoot, existingCanonicalRoles, managedRoleNa
|
|
|
60
61
|
if (!(await fileExists(absoluteRolePath))) {
|
|
61
62
|
continue;
|
|
62
63
|
}
|
|
64
|
+
const roleContent = await readFile(absoluteRolePath, 'utf8');
|
|
65
|
+
if (isOatManagedCodexRoleFile(roleContent, roleName)) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
63
68
|
strays.push({
|
|
64
69
|
roleName,
|
|
65
70
|
providerPath,
|
|
@@ -92,9 +97,14 @@ async function detectFromAgentsDirectory(scopeRoot, existingCanonicalRoles, mana
|
|
|
92
97
|
managedRoleNames.has(roleName)) {
|
|
93
98
|
continue;
|
|
94
99
|
}
|
|
100
|
+
const providerPath = `.codex/agents/${entry.name}`;
|
|
101
|
+
const roleContent = await readFile(join(scopeRoot, providerPath), 'utf8');
|
|
102
|
+
if (isOatManagedCodexRoleFile(roleContent, roleName)) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
95
105
|
strays.push({
|
|
96
106
|
roleName,
|
|
97
|
-
providerPath
|
|
107
|
+
providerPath,
|
|
98
108
|
});
|
|
99
109
|
}
|
|
100
110
|
return strays;
|
|
@@ -24,7 +24,10 @@ interface StatusDependencies {
|
|
|
24
24
|
detectDrift: (entry: Manifest['entries'][number], scopeRoot: string, copyTransform?: CopyTransform) => Promise<DriftReport>;
|
|
25
25
|
detectStrays: (provider: string, providerDir: string, manifest: Manifest, canonicalEntries: CanonicalEntry[], mapping?: Pick<PathMapping, 'contentType' | 'providerExtension'>) => Promise<DriftReport[]>;
|
|
26
26
|
detectCodexRoleStrays: (scopeRoot: string, canonicalEntries: CanonicalEntry[], managedRoleNames?: Set<string>) => Promise<CodexRoleStray[]>;
|
|
27
|
-
computeCodexProjectExtensionPlan: (scopeRoot: string, canonicalEntries: CanonicalEntry[]
|
|
27
|
+
computeCodexProjectExtensionPlan: (scopeRoot: string, canonicalEntries: CanonicalEntry[], allowedCanonicalPaths?: string[], options?: {
|
|
28
|
+
userConfigDir?: string;
|
|
29
|
+
env?: NodeJS.ProcessEnv;
|
|
30
|
+
}) => Promise<CodexExtensionPlan>;
|
|
28
31
|
applyCodexProjectExtensionPlan: (scopeRoot: string, plan: CodexExtensionPlan) => Promise<unknown>;
|
|
29
32
|
selectManyWithAbort: <T extends string>(message: string, choices: MultiSelectChoice<T>[], ctx: PromptContext) => Promise<T[] | null>;
|
|
30
33
|
confirmAction: (message: string, ctx: PromptContext) => Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/status/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,cAAc,EAIpB,MAAM,eAAe,CAAC;AAMvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,uCAAuC,CAAC;AAI/C,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,KAAK,EACX,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,UAAU,kBAAkB;IAC1B,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,aAAa,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,aAAa,KACjB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,eAAe,EAAE,CAAC;IACrC,iBAAiB,EAAE,CACjB,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAChC,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;IAC3E,WAAW,EAAE,CACX,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAClC,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,aAAa,KAC1B,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B,YAAY,EAAE,CACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,cAAc,EAAE,EAClC,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,mBAAmB,CAAC,KAC7D,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,qBAAqB,EAAE,CACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,cAAc,EAAE,EAClC,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,KAC3B,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAC/B,gCAAgC,EAAE,CAChC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/status/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -194,7 +194,7 @@ async function collectScopeReports(scope, context, dependencies) {
|
|
|
194
194
|
}
|
|
195
195
|
if (scope === 'project' &&
|
|
196
196
|
activeAdapters.some((adapter) => adapter.name === 'codex')) {
|
|
197
|
-
const codexExtensionPlan = await dependencies.computeCodexProjectExtensionPlan(scopeRoot, canonicalEntries);
|
|
197
|
+
const codexExtensionPlan = await dependencies.computeCodexProjectExtensionPlan(scopeRoot, canonicalEntries, undefined, { userConfigDir: join(context.home, '.oat') });
|
|
198
198
|
for (const operation of codexExtensionPlan.operations) {
|
|
199
199
|
if (operation.action === 'skip') {
|
|
200
200
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,KAAK,EAEV,uBAAuB,EAExB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/index.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,KAAK,EAEV,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAqTtB,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC/C,OAAO,CA6BT"}
|
|
@@ -169,7 +169,7 @@ async function computePlans(context, dependencies, allowedCanonicalPaths) {
|
|
|
169
169
|
let codexExtension;
|
|
170
170
|
const activeAdapterNames = resolved.activeAdapters.map((adapter) => adapter.name);
|
|
171
171
|
if (scope === 'project' && activeAdapterNames.includes('codex')) {
|
|
172
|
-
codexExtensionPlan = await dependencies.computeCodexProjectExtensionPlan(scopeRoot, canonical, allowedCanonicalPaths);
|
|
172
|
+
codexExtensionPlan = await dependencies.computeCodexProjectExtensionPlan(scopeRoot, canonical, allowedCanonicalPaths, { userConfigDir: join(context.home, '.oat') });
|
|
173
173
|
codexExtension = {
|
|
174
174
|
operations: dependencies.toCodexExtensionOperations(codexExtensionPlan),
|
|
175
175
|
managedRoles: codexExtensionPlan.managedRoles,
|
|
@@ -73,7 +73,10 @@ export interface SyncCommandDependencies {
|
|
|
73
73
|
allowedCanonicalPaths?: string[];
|
|
74
74
|
}) => Promise<SyncPlan>;
|
|
75
75
|
executeSyncPlan: (plan: SyncPlan, manifest: Manifest, manifestPath: string) => Promise<SyncResult>;
|
|
76
|
-
computeCodexProjectExtensionPlan: (scopeRoot: string, canonicalEntries: CanonicalEntry[], allowedCanonicalPaths?: string[]
|
|
76
|
+
computeCodexProjectExtensionPlan: (scopeRoot: string, canonicalEntries: CanonicalEntry[], allowedCanonicalPaths?: string[], options?: {
|
|
77
|
+
userConfigDir?: string;
|
|
78
|
+
env?: NodeJS.ProcessEnv;
|
|
79
|
+
}) => Promise<CodexExtensionPlan>;
|
|
77
80
|
toCodexExtensionOperations: (plan: CodexExtensionPlan) => CodexExtensionOperation[];
|
|
78
81
|
applyCodexProjectExtensionPlan: (scopeRoot: string, plan: CodexExtensionPlan) => Promise<CodexExtensionApplyResult>;
|
|
79
82
|
formatSyncPlan: (plan: SyncPlan, applied: boolean) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.types.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sync.types.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/sync.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -82,6 +82,10 @@ export declare function compileDispatchCeilingPreset(preset: WorkflowDispatchCei
|
|
|
82
82
|
* Advanced selections do not set a preset so the persisted shape omits it.
|
|
83
83
|
*/
|
|
84
84
|
export declare function compileAdvancedDispatchCeiling(providers: WorkflowDispatchCeiling['providers'] & object): AdvancedCompileResult;
|
|
85
|
+
export declare function dispatchPolicyProviderTargets(policy: CappedManagedDispatchPolicy): {
|
|
86
|
+
codex: WorkflowCodexDispatchCeiling;
|
|
87
|
+
claude: DispatchPolicyClaudeValue;
|
|
88
|
+
};
|
|
85
89
|
/**
|
|
86
90
|
* Compile the managed dispatch-policy ladder into concrete provider caps.
|
|
87
91
|
* `uncapped` is intentionally explicit but has no provider caps.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatch-ceiling-preset.d.ts","sourceRoot":"","sources":["../../src/config/dispatch-ceiling-preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAEtB;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAOpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,GAAG,OAAO,CAAC;AAChF,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,6BAA6B,EAC7B,UAAU,CACX,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;CAQnC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B,CAAC;QACpC,MAAM,EAAE,6BAA6B,CAAC;KACvC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;CAC1D;AAED,MAAM,MAAM,2BAA2B,GACnC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,2BAA2B,CAAC;IACpC,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B,CAAC;QACpC,MAAM,EAAE,yBAAyB,CAAC;KACnC,CAAC;CACH,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEN;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,6BAA6B,GACpC,mBAAmB,CAKrB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,GACvD,qBAAqB,CAEvB;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,6BAA6B,GACpC,2BAA2B,CAU7B"}
|
|
1
|
+
{"version":3,"file":"dispatch-ceiling-preset.d.ts","sourceRoot":"","sources":["../../src/config/dispatch-ceiling-preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,6BAA6B,EAC9B,MAAM,cAAc,CAAC;AAEtB;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAOpC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,6BAA6B,GAAG,OAAO,CAAC;AAChF,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,6BAA6B,EAC7B,UAAU,CACX,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;CAQnC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,6BAA6B,CAAC;IACtC,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B,CAAC;QACpC,MAAM,EAAE,6BAA6B,CAAC;KACvC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;CAC1D;AAED,MAAM,MAAM,2BAA2B,GACnC;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,2BAA2B,CAAC;IACpC,SAAS,EAAE;QACT,KAAK,EAAE,4BAA4B,CAAC;QACpC,MAAM,EAAE,yBAAyB,CAAC;KACnC,CAAC;CACH,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEN;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,6BAA6B,GACpC,mBAAmB,CAKrB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,uBAAuB,CAAC,WAAW,CAAC,GAAG,MAAM,GACvD,qBAAqB,CAEvB;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,2BAA2B,GAClC;IACD,KAAK,EAAE,4BAA4B,CAAC;IACpC,MAAM,EAAE,yBAAyB,CAAC;CACnC,CAEA;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,6BAA6B,GACpC,2BAA2B,CAU7B"}
|
|
@@ -36,6 +36,9 @@ export function compileDispatchCeilingPreset(preset) {
|
|
|
36
36
|
export function compileAdvancedDispatchCeiling(providers) {
|
|
37
37
|
return { providers };
|
|
38
38
|
}
|
|
39
|
+
export function dispatchPolicyProviderTargets(policy) {
|
|
40
|
+
return { ...DISPATCH_POLICY_PRESETS[policy] };
|
|
41
|
+
}
|
|
39
42
|
/**
|
|
40
43
|
* Compile the managed dispatch-policy ladder into concrete provider caps.
|
|
41
44
|
* `uncapped` is intentionally explicit but has no provider caps.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type WorkflowManagedDispatchPolicy } from './oat-config.js';
|
|
2
|
+
export type DispatchPolicyChoiceKind = 'managed-capped' | 'managed-uncapped' | 'inherit' | 'unresolved';
|
|
3
|
+
export interface DispatchPolicyChoice {
|
|
4
|
+
value: string;
|
|
5
|
+
label: string;
|
|
6
|
+
kind: DispatchPolicyChoiceKind;
|
|
7
|
+
runtimePolicy: boolean;
|
|
8
|
+
description: string;
|
|
9
|
+
policy?: WorkflowManagedDispatchPolicy;
|
|
10
|
+
providers?: {
|
|
11
|
+
codex: string;
|
|
12
|
+
claude: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare function getDispatchPolicyChoices(): DispatchPolicyChoice[];
|
|
16
|
+
export declare function managedDispatchPolicyValueList(separator?: string): string;
|
|
17
|
+
export declare function dispatchPolicyModeDescription(): string;
|
|
18
|
+
export declare function dispatchPolicyPolicyDescription(): string;
|
|
19
|
+
export declare function renderDispatchPolicyChoicesMarkdown(choices?: DispatchPolicyChoice[]): string;
|
|
20
|
+
//# sourceMappingURL=dispatch-policy-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatch-policy-options.d.ts","sourceRoot":"","sources":["../../src/config/dispatch-policy-options.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAChC,gBAAgB,GAChB,kBAAkB,GAClB,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,wBAAwB,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,6BAA6B,CAAC;IACvC,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAqDD,wBAAgB,wBAAwB,IAAI,oBAAoB,EAAE,CAoBjE;AAED,wBAAgB,8BAA8B,CAAC,SAAS,SAAQ,GAAG,MAAM,CAExE;AAED,wBAAgB,6BAA6B,IAAI,MAAM,CAOtD;AAED,wBAAgB,+BAA+B,IAAI,MAAM,CASxD;AAYD,wBAAgB,mCAAmC,CACjD,OAAO,yBAA6B,GACnC,MAAM,CASR"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { dispatchPolicyProviderTargets, } from './dispatch-ceiling-preset.js';
|
|
2
|
+
import { VALID_MANAGED_DISPATCH_POLICIES, } from './oat-config.js';
|
|
3
|
+
const MANAGED_POLICY_DESCRIPTIONS = {
|
|
4
|
+
economy: 'Managed capped policy for lower-cost implementation and review dispatch.',
|
|
5
|
+
balanced: 'Managed capped policy for normal implementation and review dispatch.',
|
|
6
|
+
high: 'Managed capped policy for broad or higher-risk implementation and review dispatch.',
|
|
7
|
+
frontier: 'Managed capped policy for highest-tier implementation and review dispatch.',
|
|
8
|
+
uncapped: 'OAT still manages dispatch selection, but stores no maximum cap. The implementer can choose the preferred model/effort for the task. This is not host default behavior.',
|
|
9
|
+
};
|
|
10
|
+
const MANAGED_POLICY_LABELS = {
|
|
11
|
+
economy: 'Economy',
|
|
12
|
+
balanced: 'Balanced',
|
|
13
|
+
high: 'High',
|
|
14
|
+
frontier: 'Frontier',
|
|
15
|
+
uncapped: 'Uncapped',
|
|
16
|
+
};
|
|
17
|
+
function isCappedManagedPolicy(policy) {
|
|
18
|
+
return policy !== 'uncapped';
|
|
19
|
+
}
|
|
20
|
+
function managedChoice(policy) {
|
|
21
|
+
if (isCappedManagedPolicy(policy)) {
|
|
22
|
+
return {
|
|
23
|
+
value: policy,
|
|
24
|
+
label: MANAGED_POLICY_LABELS[policy],
|
|
25
|
+
kind: 'managed-capped',
|
|
26
|
+
runtimePolicy: true,
|
|
27
|
+
description: MANAGED_POLICY_DESCRIPTIONS[policy],
|
|
28
|
+
policy,
|
|
29
|
+
providers: dispatchPolicyProviderTargets(policy),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
value: policy,
|
|
34
|
+
label: MANAGED_POLICY_LABELS[policy],
|
|
35
|
+
kind: 'managed-uncapped',
|
|
36
|
+
runtimePolicy: true,
|
|
37
|
+
description: MANAGED_POLICY_DESCRIPTIONS[policy],
|
|
38
|
+
policy,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function getDispatchPolicyChoices() {
|
|
42
|
+
return [
|
|
43
|
+
...VALID_MANAGED_DISPATCH_POLICIES.map(managedChoice),
|
|
44
|
+
{
|
|
45
|
+
value: 'inherit',
|
|
46
|
+
label: 'Inherit Host Defaults',
|
|
47
|
+
kind: 'inherit',
|
|
48
|
+
runtimePolicy: true,
|
|
49
|
+
description: 'OAT does not choose model or effort. Subagents use the current host/provider default behavior, such as parent session model, base Codex role defaults, or provider config.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
value: 'leave-unresolved',
|
|
53
|
+
label: 'Leave Unresolved',
|
|
54
|
+
kind: 'unresolved',
|
|
55
|
+
runtimePolicy: false,
|
|
56
|
+
description: 'Planning records no policy as a planning/preflight deferral. Implementation preflight must block until a policy is configured or explicitly selected.',
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
export function managedDispatchPolicyValueList(separator = ' | ') {
|
|
61
|
+
return VALID_MANAGED_DISPATCH_POLICIES.join(separator);
|
|
62
|
+
}
|
|
63
|
+
export function dispatchPolicyModeDescription() {
|
|
64
|
+
return [
|
|
65
|
+
'Dispatch policy mode.',
|
|
66
|
+
'"managed" means OAT selects model/effort from workflow.dispatchPolicy.policy.',
|
|
67
|
+
'"inherit" leaves dispatch controls to host/provider defaults.',
|
|
68
|
+
'Resolution: local > shared > user > default.',
|
|
69
|
+
].join(' ');
|
|
70
|
+
}
|
|
71
|
+
export function dispatchPolicyPolicyDescription() {
|
|
72
|
+
return [
|
|
73
|
+
'Managed dispatch policy.',
|
|
74
|
+
'economy, balanced, high, and frontier are capped managed policies.',
|
|
75
|
+
'uncapped keeps OAT-managed preferred selection without provider caps.',
|
|
76
|
+
'inherit leaves dispatch controls to host/provider defaults through workflow.dispatchPolicy.mode.',
|
|
77
|
+
'Setting this key writes workflow.dispatchPolicy.mode=managed.',
|
|
78
|
+
'Resolution: local > shared > user > default.',
|
|
79
|
+
].join(' ');
|
|
80
|
+
}
|
|
81
|
+
function providerSummary(choice) {
|
|
82
|
+
return choice.providers
|
|
83
|
+
? `Codex: ${choice.providers.codex}; Claude: ${choice.providers.claude}`
|
|
84
|
+
: choice.kind === 'managed-uncapped'
|
|
85
|
+
? 'No stored maximum cap'
|
|
86
|
+
: choice.kind === 'inherit'
|
|
87
|
+
? 'Host/provider defaults'
|
|
88
|
+
: 'No runtime policy';
|
|
89
|
+
}
|
|
90
|
+
export function renderDispatchPolicyChoicesMarkdown(choices = getDispatchPolicyChoices()) {
|
|
91
|
+
return [
|
|
92
|
+
'Set the dispatch policy - how OAT should choose subagent model/effort controls.',
|
|
93
|
+
'',
|
|
94
|
+
...choices.map((choice, index) => `${index + 1}. ${choice.label} - ${providerSummary(choice)}. ${choice.description}`),
|
|
95
|
+
].join('\n');
|
|
96
|
+
}
|
|
@@ -25,14 +25,26 @@ export type WorkflowClaudeDispatchCeiling = 'haiku' | 'sonnet' | 'opus' | 'fable
|
|
|
25
25
|
export type WorkflowDispatchCeilingPreset = 'balanced' | 'maximum' | 'cost-conscious';
|
|
26
26
|
export type WorkflowDispatchPolicyMode = 'managed' | 'inherit';
|
|
27
27
|
export type WorkflowManagedDispatchPolicy = 'economy' | 'balanced' | 'high' | 'frontier' | 'uncapped';
|
|
28
|
+
export type WorkflowDispatchMatrixTier = Exclude<WorkflowManagedDispatchPolicy, 'uncapped'>;
|
|
29
|
+
export interface WorkflowDispatchRouteTarget {
|
|
30
|
+
harness?: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
effort?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface DispatchRouteTargetValidation {
|
|
35
|
+
valid: boolean;
|
|
36
|
+
reason?: string;
|
|
37
|
+
}
|
|
38
|
+
export type WorkflowDispatchRouteEntry = string | WorkflowDispatchRouteTarget;
|
|
39
|
+
export type WorkflowDispatchRoute = WorkflowDispatchRouteEntry[];
|
|
40
|
+
export type WorkflowDispatchMatrixCell = string | WorkflowDispatchRoute;
|
|
41
|
+
export type WorkflowDispatchProviderValue = string | Partial<Record<WorkflowDispatchMatrixTier, WorkflowDispatchMatrixCell>>;
|
|
28
42
|
export type GateOnFailure = 'block' | 'prompt' | 'warn';
|
|
29
|
-
export type GateAvoid = 'same-runtime' | 'none';
|
|
43
|
+
export type GateAvoid = 'same-family' | 'same-runtime' | 'none';
|
|
30
44
|
export interface WorkflowDispatchCeiling {
|
|
31
45
|
preset?: WorkflowDispatchCeilingPreset;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
claude?: WorkflowClaudeDispatchCeiling;
|
|
35
|
-
};
|
|
46
|
+
recommendationVersion?: string;
|
|
47
|
+
providers?: Record<string, WorkflowDispatchProviderValue>;
|
|
36
48
|
}
|
|
37
49
|
export interface WorkflowDispatchPolicy {
|
|
38
50
|
mode: WorkflowDispatchPolicyMode;
|
|
@@ -51,6 +63,7 @@ export interface GateConfig {
|
|
|
51
63
|
export interface ExecTarget {
|
|
52
64
|
runtime: string;
|
|
53
65
|
baseCommand: string[];
|
|
66
|
+
models?: string[];
|
|
54
67
|
hostDetectionCommand?: string[];
|
|
55
68
|
availabilityCommand?: string[];
|
|
56
69
|
priority: number;
|
|
@@ -79,7 +92,10 @@ export declare const VALID_CLAUDE_DISPATCH_CEILINGS: readonly WorkflowClaudeDisp
|
|
|
79
92
|
export declare const VALID_DISPATCH_CEILING_PRESETS: readonly WorkflowDispatchCeilingPreset[];
|
|
80
93
|
export declare const VALID_DISPATCH_POLICY_MODES: readonly WorkflowDispatchPolicyMode[];
|
|
81
94
|
export declare const VALID_MANAGED_DISPATCH_POLICIES: readonly WorkflowManagedDispatchPolicy[];
|
|
95
|
+
export declare const VALID_DISPATCH_MATRIX_TIERS: readonly WorkflowDispatchMatrixTier[];
|
|
82
96
|
export declare const BUILTIN_EXEC_TARGETS: Readonly<Record<string, ExecTarget>>;
|
|
97
|
+
export declare function isCodexMaterializedRouteTarget(provider: string, target: WorkflowDispatchRouteTarget): boolean;
|
|
98
|
+
export declare function validateDispatchRouteTarget(provider: string, target: WorkflowDispatchRouteTarget): DispatchRouteTargetValidation;
|
|
83
99
|
export type OatToolsConfig = Partial<Record<'core' | 'ideas' | 'docs' | 'workflows' | 'utility' | 'project-management' | 'research' | 'brainstorm', boolean>>;
|
|
84
100
|
export interface OatConfig {
|
|
85
101
|
version: number;
|