@ai-outfitter/outfitter 1.5.0 → 1.7.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/README.md +11 -2
- package/code/pi-extension/src/outfitter-extension.js +9 -1
- package/dist/agents/AgentLaunch.d.ts +2 -2
- package/dist/agents/AgentLaunch.js +4 -3
- package/dist/agents/AgentLaunch.js.map +1 -1
- package/dist/agents/ClaudeStatePersistence.d.ts +18 -0
- package/dist/agents/ClaudeStatePersistence.js +225 -0
- package/dist/agents/ClaudeStatePersistence.js.map +1 -0
- package/dist/cli/OutfitterCli.js +1 -1
- package/dist/cli/OutfitterCli.js.map +1 -1
- package/dist/cli/commands/DumpCommand.d.ts +1 -0
- package/dist/cli/commands/DumpCommand.js +11 -1
- package/dist/cli/commands/DumpCommand.js.map +1 -1
- package/dist/cli/commands/ListCommand.d.ts +2 -0
- package/dist/cli/commands/ListCommand.js +15 -4
- package/dist/cli/commands/ListCommand.js.map +1 -1
- package/dist/cli/commands/RunAgentCommand.js +85 -17
- package/dist/cli/commands/RunAgentCommand.js.map +1 -1
- package/dist/cli/commands/SyncCommand.d.ts +8 -3
- package/dist/cli/commands/SyncCommand.js +126 -21
- package/dist/cli/commands/SyncCommand.js.map +1 -1
- package/dist/cli/commands/ValidateCommand.js +1 -1
- package/dist/cli/commands/ValidateCommand.js.map +1 -1
- package/dist/projection/CodexMcp.d.ts +11 -0
- package/dist/projection/CodexMcp.js +143 -0
- package/dist/projection/CodexMcp.js.map +1 -0
- package/dist/projection/Materialize.d.ts +3 -1
- package/dist/projection/Materialize.js +7 -3
- package/dist/projection/Materialize.js.map +1 -1
- package/dist/projection/ProjectHarness.js +66 -29
- package/dist/projection/ProjectHarness.js.map +1 -1
- package/dist/projection/Projection.d.ts +2 -0
- package/dist/resolver/AmbiguityWarnings.d.ts +7 -0
- package/dist/resolver/AmbiguityWarnings.js +86 -0
- package/dist/resolver/AmbiguityWarnings.js.map +1 -0
- package/dist/resolver/Layer.d.ts +8 -2
- package/dist/resolver/Layer.js +48 -8
- package/dist/resolver/Layer.js.map +1 -1
- package/dist/resolver/ResolverContext.d.ts +3 -1
- package/dist/resolver/ResolverContext.js +11 -2
- package/dist/resolver/ResolverContext.js.map +1 -1
- package/dist/resolver/ResolverValidation.d.ts +12 -1
- package/dist/resolver/ResolverValidation.js +30 -20
- package/dist/resolver/ResolverValidation.js.map +1 -1
- package/dist/schemas/settings.schema.json +1 -1
- package/dist/schemas/system-extension-hook.schema.json +38 -0
- package/dist/settings/Settings.d.ts +1 -1
- package/dist/settings/Settings.js +1 -1
- package/dist/settings/Settings.js.map +1 -1
- package/dist/settings/SettingsLoader.js.map +1 -1
- package/dist/setup/DefaultCatalog.d.ts +18 -0
- package/dist/setup/DefaultCatalog.js +74 -13
- package/dist/setup/DefaultCatalog.js.map +1 -1
- package/dist/sources/SourceCache.d.ts +20 -0
- package/dist/sources/SourceCache.js +31 -1
- package/dist/sources/SourceCache.js.map +1 -1
- package/dist/sources/TransitiveSources.d.ts +45 -0
- package/dist/sources/TransitiveSources.js +179 -0
- package/dist/sources/TransitiveSources.js.map +1 -0
- package/dist/system/SystemExtensionHook.d.ts +34 -0
- package/dist/system/SystemExtensionHook.js +190 -0
- package/dist/system/SystemExtensionHook.js.map +1 -0
- package/dist/validation/SchemaValidator.d.ts +1 -1
- package/dist/validation/SchemaValidator.js +2 -0
- package/dist/validation/SchemaValidator.js.map +1 -1
- package/docs/architecture/state_writeback_strategy.md +15 -3
- package/docs/documentation/README.md +14 -1
- package/docs/documentation/catalogs.md +61 -2
- package/docs/documentation/cli.md +2 -1
- package/docs/documentation/concepts.md +2 -2
- package/docs/documentation/hooks.md +33 -0
- package/docs/documentation/in-cluster.md +2 -0
- package/docs/documentation/migration.md +1 -1
- package/docs/documentation/personas.md +1 -1
- package/docs/documentation/settings.md +1 -1
- package/docs/documentation/state.md +27 -0
- package/docs/documentation/support-matrix.md +34 -23
- package/docs/documentation/usecases/org-onboarding-sdlc-report.md +143 -0
- package/docs/documentation/usecases/persona-reviews.md +1 -1
- package/docs/philosophy.md +20 -0
- package/package.json +1 -1
- package/src/schemas/settings.schema.json +1 -1
- package/src/schemas/system-extension-hook.schema.json +38 -0
|
@@ -4,15 +4,18 @@ import { tmpdir } from 'node:os';
|
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { Option } from 'commander';
|
|
6
6
|
import { launchThroughSpawn, spawnLauncher } from '../../agents/AgentLaunch.js';
|
|
7
|
+
import { persistClaudeCredentials, persistClaudeSessions, seedClaudeCredentials, seedClaudeSessions, } from '../../agents/ClaudeStatePersistence.js';
|
|
7
8
|
import { persistPiCredentials, resolvePiUserAgentDirectory, seedPiCredentials, } from '../../agents/PiCredentialPersistence.js';
|
|
8
9
|
import { resolvePiSessionDirectory } from '../../agents/PiSessionDirectory.js';
|
|
9
10
|
import { compose } from '../../composer/Composer.js';
|
|
10
11
|
import { ensurePiExtensions } from '../../extensions/PiExtensionCache.js';
|
|
11
12
|
import { resolveOutfitterCacheDir } from '../../paths/OutfitterCache.js';
|
|
12
13
|
import { projectComposition } from '../../projection/ProjectHarness.js';
|
|
14
|
+
import { strictAmbiguityFailureMessage } from '../../resolver/AmbiguityWarnings.js';
|
|
13
15
|
import { findResource } from '../../resolver/Resource.js';
|
|
14
16
|
import { resolveEffectiveSet } from '../../resolver/ResolverContext.js';
|
|
15
17
|
import { HARNESSES } from '../../settings/Settings.js';
|
|
18
|
+
import { attachSystemExtensionHooks } from '../../system/SystemExtensionHook.js';
|
|
16
19
|
import { readOutfitterVersion } from '../../version/OutfitterVersion.js';
|
|
17
20
|
import { attachPiRuntimeExtension } from './PiRuntimeLaunch.js';
|
|
18
21
|
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
@@ -31,7 +34,7 @@ const resolveAgentSlug = (settingsDefault, requested) => {
|
|
|
31
34
|
const resolveHarness = (settingsDefault, requested) => {
|
|
32
35
|
const harness = requested ?? settingsDefault ?? 'pi';
|
|
33
36
|
if (!HARNESSES.includes(harness)) {
|
|
34
|
-
throw new Error(`Unknown harness '${harness}'. Use --harness
|
|
37
|
+
throw new Error(`Unknown harness '${harness}'. Use --harness <${HARNESSES.join('|')}>.`);
|
|
35
38
|
}
|
|
36
39
|
return harness;
|
|
37
40
|
};
|
|
@@ -40,17 +43,63 @@ const assertNoSettingsIssues = (issues) => {
|
|
|
40
43
|
throw new Error(`Cannot run with invalid settings: ${issues.map((issue) => issue.message).join('; ')}`);
|
|
41
44
|
}
|
|
42
45
|
};
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
46
|
-
const
|
|
46
|
+
// Pi and Claude both read credentials — and Claude its session history — from their ephemeral
|
|
47
|
+
// projection root. Seed the durable state before launch and persist changes in a finally block so
|
|
48
|
+
// login and session changes survive both a normal exit and a failed launcher.
|
|
49
|
+
const launchWithStatePersistence = async (input, harness, rootDirectory, launch, lateMessages) => {
|
|
50
|
+
// Persist warnings surface after launch, and writeLine alone can be a dropped sink (setup's
|
|
51
|
+
// auto-launch passes none), so they also go into lateMessages to reach the returned result.
|
|
52
|
+
const warn = (message) => {
|
|
53
|
+
lateMessages.push(message);
|
|
54
|
+
try {
|
|
55
|
+
input.writeLine?.(message);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// The returned late-message channel is authoritative; output sinks must never mask launch.
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
const attempt = (label, action) => {
|
|
62
|
+
try {
|
|
63
|
+
action();
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
warn(`Warning: failed to ${label}: ${String(error)}`);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
47
69
|
const piUserAgentDirectory = harness === 'pi' ? resolvePiUserAgentDirectory(input.homeDirectory) : undefined;
|
|
70
|
+
let seededClaudeCredentialsHash;
|
|
71
|
+
let seededClaudeSessionHashes = new Map();
|
|
48
72
|
if (piUserAgentDirectory !== undefined)
|
|
49
73
|
seedPiCredentials(rootDirectory, piUserAgentDirectory);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
74
|
+
if (harness === 'claude') {
|
|
75
|
+
seededClaudeCredentialsHash = seedClaudeCredentials(rootDirectory, input.homeDirectory, input.projectDirectory);
|
|
76
|
+
attempt('seed Claude session history', () => {
|
|
77
|
+
const seed = seedClaudeSessions(rootDirectory, input.homeDirectory, input.projectDirectory);
|
|
78
|
+
seededClaudeSessionHashes = seed.hashes;
|
|
79
|
+
if (seed.warning !== undefined)
|
|
80
|
+
warn(seed.warning);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
try {
|
|
84
|
+
return await input.launcher(launch);
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
if (piUserAgentDirectory !== undefined) {
|
|
88
|
+
attempt('persist Pi credentials', () => persistPiCredentials(rootDirectory, piUserAgentDirectory));
|
|
89
|
+
}
|
|
90
|
+
if (harness === 'claude') {
|
|
91
|
+
attempt('persist Claude credentials', () => {
|
|
92
|
+
const conflictWarning = persistClaudeCredentials(rootDirectory, input.homeDirectory, seededClaudeCredentialsHash);
|
|
93
|
+
if (conflictWarning !== undefined)
|
|
94
|
+
warn(conflictWarning);
|
|
95
|
+
});
|
|
96
|
+
attempt('persist Claude session history', () => {
|
|
97
|
+
const warning = persistClaudeSessions(rootDirectory, input.homeDirectory, seededClaudeSessionHashes);
|
|
98
|
+
if (warning !== undefined)
|
|
99
|
+
warn(warning);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}
|
|
54
103
|
};
|
|
55
104
|
// pi writes sessions inside PI_CODING_AGENT_DIR — the projection root Outfitter deletes after the
|
|
56
105
|
// run — so resolve pi's durable per-project store instead and let `--continue` outlive the run. An
|
|
@@ -76,6 +125,7 @@ const assertReadableAppendPrompts = (paths) => {
|
|
|
76
125
|
throw new Error(`--append-prompt: not a readable file: ${unreadable.join(', ')}`);
|
|
77
126
|
}
|
|
78
127
|
};
|
|
128
|
+
const shouldRunSetup = (input, resolved) => input.agent === undefined && resolved.settings.defaultAgent === undefined && input.setup !== undefined;
|
|
79
129
|
export const executeRunAgentCommand = async (input) => {
|
|
80
130
|
// Flush messages to the terminal (before launch); they are also returned so callers can inspect them.
|
|
81
131
|
const emit = (messages) => {
|
|
@@ -85,10 +135,9 @@ export const executeRunAgentCommand = async (input) => {
|
|
|
85
135
|
let resolved = resolveEffectiveSet(input);
|
|
86
136
|
assertNoSettingsIssues(resolved.settingsIssues);
|
|
87
137
|
assertReadableAppendPrompts(input.appendPromptPaths);
|
|
88
|
-
emit(resolved.warnings.map((warning) => `warning: ${warning}`));
|
|
89
138
|
// First run: nothing selected and no default configured — onboard, then resolve again.
|
|
90
139
|
const setupMessages = [];
|
|
91
|
-
if (input
|
|
140
|
+
if (shouldRunSetup(input, resolved)) {
|
|
92
141
|
const setupResult = await input.setup({
|
|
93
142
|
homeDirectory: input.homeDirectory,
|
|
94
143
|
projectDirectory: input.projectDirectory,
|
|
@@ -99,12 +148,22 @@ export const executeRunAgentCommand = async (input) => {
|
|
|
99
148
|
assertNoSettingsIssues(resolved.settingsIssues);
|
|
100
149
|
}
|
|
101
150
|
}
|
|
151
|
+
// Warnings from the FINAL resolved state (after any onboarding), folded into every returned message
|
|
152
|
+
// array after the setup notices — so a dependency that best-effort bootstrap could not fetch
|
|
153
|
+
// surfaces its actionable `outfitter sync` guidance to both the terminal and programmatic callers,
|
|
154
|
+
// not just a generic unknown-skill warning at composition (OFTR-004.6.10).
|
|
155
|
+
const resolutionWarnings = resolved.warnings.map((warning) => `warning: ${warning}`);
|
|
156
|
+
if (input.strict === true && resolved.ambiguityWarnings.length > 0) {
|
|
157
|
+
const messages = [...setupMessages, ...resolutionWarnings, strictAmbiguityFailureMessage];
|
|
158
|
+
emit(messages);
|
|
159
|
+
return { exitCode: 1, messages };
|
|
160
|
+
}
|
|
102
161
|
const { set, settings } = resolved;
|
|
103
162
|
const agentSlug = resolveAgentSlug(settings.defaultAgent, input.agent);
|
|
104
163
|
const harness = resolveHarness(settings.defaultHarness, input.harness);
|
|
105
164
|
const composed = compose(set, agentSlug, { projectDirectory: input.projectDirectory });
|
|
106
165
|
if (composed.plan === undefined) {
|
|
107
|
-
const messages = [...setupMessages, ...composed.warnings, ...composed.errors];
|
|
166
|
+
const messages = [...setupMessages, ...resolutionWarnings, ...composed.warnings, ...composed.errors];
|
|
108
167
|
emit(messages);
|
|
109
168
|
return { exitCode: 1, messages };
|
|
110
169
|
}
|
|
@@ -130,19 +189,22 @@ export const executeRunAgentCommand = async (input) => {
|
|
|
130
189
|
const warnings = [
|
|
131
190
|
...composed.plan.warnings,
|
|
132
191
|
...projection.unsupported.map((element) => `harness '${harness}' cannot project loadout element '${element}'.`),
|
|
192
|
+
...projection.warnings,
|
|
133
193
|
...extensions.warnings,
|
|
134
194
|
];
|
|
135
195
|
if (input.strict === true && warnings.length > 0) {
|
|
136
196
|
const messages = [
|
|
137
197
|
...setupMessages,
|
|
198
|
+
...resolutionWarnings,
|
|
138
199
|
...warnings,
|
|
139
200
|
'Strict mode: composition warnings and unsupported elements are fatal.',
|
|
140
201
|
];
|
|
141
202
|
emit(messages);
|
|
142
203
|
return { exitCode: 1, messages };
|
|
143
204
|
}
|
|
144
|
-
// Emit setup notices and warnings before launch so they precede
|
|
145
|
-
|
|
205
|
+
// Emit setup notices, resolution warnings, and composition warnings before launch so they precede
|
|
206
|
+
// the pi session on the terminal (and are returned to programmatic callers).
|
|
207
|
+
const messages = [...setupMessages, ...resolutionWarnings, ...warnings];
|
|
146
208
|
emit(messages);
|
|
147
209
|
// Attach the Outfitter runtime UI and sign-in extension to interactive pi sessions.
|
|
148
210
|
const launch = attachPiRuntimeExtension(projection.launch, {
|
|
@@ -150,8 +212,14 @@ export const executeRunAgentCommand = async (input) => {
|
|
|
150
212
|
profile: { id: agentSlug, label: composed.plan.identity.label },
|
|
151
213
|
rootDirectory,
|
|
152
214
|
});
|
|
153
|
-
|
|
154
|
-
|
|
215
|
+
// System hooks attach last, after projection and after the runtime extension,
|
|
216
|
+
// so an organization's collector applies to every launch — including
|
|
217
|
+
// `--mode rpc`, which fleet agents run — and cannot trip strict mode.
|
|
218
|
+
const systemHooks = attachSystemExtensionHooks(launch);
|
|
219
|
+
messages.push(...systemHooks.warnings);
|
|
220
|
+
emit(systemHooks.warnings);
|
|
221
|
+
const exitCode = await launchWithStatePersistence(input, harness, rootDirectory, systemHooks.launch, messages);
|
|
222
|
+
return { launchPlan: systemHooks.launch, exitCode, messages };
|
|
155
223
|
}
|
|
156
224
|
finally {
|
|
157
225
|
if (input.retainProjection !== true) {
|
|
@@ -173,7 +241,7 @@ export const createRunAgentCommand = (dependencies = {}) => ({
|
|
|
173
241
|
.argument('[agent]', 'Agent slug to run (default: settings default_agent).')
|
|
174
242
|
.argument('[args...]', 'Arguments passed through to the harness after --.')
|
|
175
243
|
.addOption(new Option('--harness <harness>', 'Harness to launch.').choices([...HARNESSES]))
|
|
176
|
-
.option('--strict', 'Treat composition warnings and unsupported loadout elements as fatal.')
|
|
244
|
+
.option('--strict', 'Treat ambiguity, composition warnings, and unsupported loadout elements as fatal.')
|
|
177
245
|
.option('--append-prompt <path>', 'Append a Markdown document to the system prompt. Repeatable; applied in the order given.', (value, previous = []) => [...previous, value])
|
|
178
246
|
.allowUnknownOption(true)
|
|
179
247
|
.action(async (agent, passThroughArgs, options) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunAgentCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/RunAgentCommand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RunAgentCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/RunAgentCommand.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAW,MAAM,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgD7C,8GAA8G;AAC9G,mGAAmG;AACnG,MAAM,sBAAsB,GAAgB,KAAK,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,EAAE,CACxF,QAAQ,CAAC,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAChD,oBAAoB;AAEpB,MAAM,gBAAgB,GAAG,CAAC,eAAmC,EAAE,SAA6B,EAAU,EAAE;IACtG,MAAM,IAAI,GAAG,SAAS,IAAI,eAAe,CAAC;IAE1C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACjH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,eAAoC,EAAE,SAA6B,EAAW,EAAE;IACtG,MAAM,OAAO,GAAG,SAAS,IAAI,eAAe,IAAI,IAAI,CAAC;IAErD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAkB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,qBAAqB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO,OAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,MAA+C,EAAQ,EAAE;IACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC,CAAC;AAEF,8FAA8F;AAC9F,kGAAkG;AAClG,8EAA8E;AAC9E,MAAM,0BAA0B,GAAG,KAAK,EACtC,KAAoB,EACpB,OAAgB,EAChB,aAAqB,EACrB,MAAuB,EACvB,YAAsB,EACL,EAAE;IACnB,4FAA4F;IAC5F,4FAA4F;IAC5F,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC;YACH,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,2FAA2F;QAC7F,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAkB,EAAQ,EAAE;QAC1D,IAAI,CAAC;YACH,MAAM,EAAE,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,sBAAsB,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7G,IAAI,2BAA+C,CAAC;IACpD,IAAI,yBAAyB,GAAgC,IAAI,GAAG,EAAE,CAAC;IACvE,IAAI,oBAAoB,KAAK,SAAS;QAAE,iBAAiB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAC/F,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,2BAA2B,GAAG,qBAAqB,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChH,OAAO,CAAC,6BAA6B,EAAE,GAAG,EAAE;YAC1C,MAAM,IAAI,GAAG,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC5F,yBAAyB,GAAG,IAAI,CAAC,MAAM,CAAC;YACxC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;gBAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,OAAO,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACzC,MAAM,eAAe,GAAG,wBAAwB,CAC9C,aAAa,EACb,KAAK,CAAC,aAAa,EACnB,2BAA2B,CAC5B,CAAC;gBACF,IAAI,eAAe,KAAK,SAAS;oBAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,gCAAgC,EAAE,GAAG,EAAE;gBAC7C,MAAM,OAAO,GAAG,qBAAqB,CAAC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,yBAAyB,CAAC,CAAC;gBACrG,IAAI,OAAO,KAAK,SAAS;oBAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,kGAAkG;AAClG,mGAAmG;AACnG,8FAA8F;AAC9F,MAAM,uBAAuB,GAAG,CAAC,KAAoB,EAAE,OAAgB,EAAsB,EAAE,CAC7F,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAErH,6FAA6F;AAC7F,MAAM,mBAAmB,GAAG,KAAK,EAC/B,KAAoB,EACpB,OAAgB,EAChB,cAAiC,EACwD,EAAE;IAC3F,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5D,OAAO,kBAAkB,CAAC,cAAc,EAAE;QACxC,aAAa,EAAE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,EAAE,eAAe,CAAC;QAChG,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM;QAC5E,KAAK,EAAE,KAAK,CAAC,uBAAuB;KACrC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAC9B,IAAqD,EACrD,aAA2D,EACxC,EAAE,CACrB,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;AAElH,kGAAkG;AAClG,+FAA+F;AAC/F,sDAAsD;AACtD,MAAM,2BAA2B,GAAG,CAAC,KAAoC,EAAQ,EAAE;IACjF,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;IAEhH,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,yCAAyC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CACrB,KAAoB,EACpB,QAAgD,EACkC,EAAE,CACpF,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;AAEzG,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,KAAoB,EAA2B,EAAE;IAC5F,sGAAsG;IACtG,MAAM,IAAI,GAAG,CAAC,QAA2B,EAAQ,EAAE;QACjD,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,KAAK,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAI,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC1C,sBAAsB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAChD,2BAA2B,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAErD,uFAAuF;IACvF,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC;YACpC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;SACzC,CAAC,CAAC;QAEH,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;YAC5C,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACtC,sBAAsB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,oGAAoG;IACpG,6FAA6F;IAC7F,mGAAmG;IACnG,2EAA2E;IAC3E,MAAM,kBAAkB,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAErF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;QAC1F,IAAI,CAAC,QAAQ,CAAC,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IACnC,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvF,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED,6FAA6F;IAC7F,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/F,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAE,CAAC;IAC7D,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAEpF,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,SAAS,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;IAExF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE;YACnD,OAAO;YACP,aAAa;YACb,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,gBAAgB,EAAE,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC;YACzD,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YAC1C,iBAAiB,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YACrE,+FAA+F;YAC/F,+BAA+B,EAAE,qBAAqB;SACvD,CAAC,CAAC;QAEH,6FAA6F;QAC7F,iEAAiE;QACjE,MAAM,QAAQ,GAAG;YACf,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ;YACzB,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,OAAO,qCAAqC,OAAO,IAAI,CAAC;YAC/G,GAAG,UAAU,CAAC,QAAQ;YACtB,GAAG,UAAU,CAAC,QAAQ;SACvB,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG;gBACf,GAAG,aAAa;gBAChB,GAAG,kBAAkB;gBACrB,GAAG,QAAQ;gBACX,uEAAuE;aACxE,CAAC;YACF,IAAI,CAAC,QAAQ,CAAC,CAAC;YACf,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;QACnC,CAAC;QAED,kGAAkG;QAClG,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,kBAAkB,EAAE,GAAG,QAAQ,CAAC,CAAC;QACxE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEf,oFAAoF;QACpF,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,MAAM,EAAE;YACzD,gBAAgB,EAAE,oBAAoB,EAAE;YACxC,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;YAC/D,aAAa;SACd,CAAC,CAAC;QACH,8EAA8E;QAC9E,qEAAqE;QACrE,sEAAsE;QACtE,MAAM,WAAW,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAE/G,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChE,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;YACpC,MAAM,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,wFAAwF;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,oGAAoG;AACpG,MAAM,eAAe,GAAyB,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,eAAqC,EAAE,EAAiB,EAAE,CAAC,CAAC;IAChG,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,gEAAgE;IAC7E,QAAQ,CAAC,OAAgB;QACvB,OAAO;aACJ,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;aACnC,WAAW,CAAC,gEAAgE,CAAC;aAC7E,QAAQ,CAAC,SAAS,EAAE,sDAAsD,CAAC;aAC3E,QAAQ,CAAC,WAAW,EAAE,mDAAmD,CAAC;aAC1E,SAAS,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;aAC1F,MAAM,CAAC,UAAU,EAAE,mFAAmF,CAAC;aACvG,MAAM,CACL,wBAAwB,EACxB,0FAA0F,EAC1F,CAAC,KAAa,EAAE,WAA8B,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAC1E;aACA,kBAAkB,CAAC,IAAI,CAAC;aACxB,MAAM,CACL,KAAK,EACH,KAAyB,EACzB,eAAkC,EAClC,OAAiF,EACjF,EAAE;YACF,wGAAwG;YACxG,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;YAChF,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,IAAI,eAAe,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;gBAC1C,aAAa;gBACb,gBAAgB;gBAChB,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,eAAe;gBACf,iBAAiB,EAAE,OAAO,CAAC,YAAY;gBACvC,QAAQ;gBACR,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,sBAAsB;gBACnD,2EAA2E;gBAC3E,6FAA6F;gBAC7F,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK;aACnD,CAAC,CAAC;YAEH,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QACrC,CAAC,CACF,CAAC;IACN,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { syncRemoteRepositoryAtomically } from '../../sources/GitRepository.js';
|
|
1
2
|
import { type GitHubRepositoryVisibilityClassifier, type PrivateCatalogPrompt, type PrivateCatalogSourceGate } from '../../sources/PrivateCatalogGate.js';
|
|
2
3
|
import type { CommandObject } from './CommandObject.js';
|
|
3
4
|
export type SyncStatus = 'updated' | 'unchanged' | 'skipped' | 'failed';
|
|
4
|
-
export type SyncSourceKind = 'remote_settings' | 'source';
|
|
5
|
+
export type SyncSourceKind = 'remote_settings' | 'source' | 'transitive';
|
|
5
6
|
export interface SyncSourceResult {
|
|
6
7
|
readonly kind: SyncSourceKind;
|
|
7
8
|
readonly uri: string;
|
|
@@ -17,7 +18,10 @@ export interface SyncCommandResult {
|
|
|
17
18
|
export interface SyncCommandInput {
|
|
18
19
|
readonly homeDirectory: string;
|
|
19
20
|
readonly projectDirectory: string;
|
|
21
|
+
readonly strict?: boolean;
|
|
20
22
|
}
|
|
23
|
+
/** Fetches one repository into the cache. Injectable so tests exercise the closure hermetically. */
|
|
24
|
+
export type RepositorySync = typeof syncRemoteRepositoryAtomically;
|
|
21
25
|
export interface SyncCommandDependencies {
|
|
22
26
|
readonly homeDirectory?: string;
|
|
23
27
|
readonly projectDirectory?: string;
|
|
@@ -25,7 +29,8 @@ export interface SyncCommandDependencies {
|
|
|
25
29
|
readonly prompt?: PrivateCatalogPrompt;
|
|
26
30
|
readonly privateCatalogGate?: PrivateCatalogSourceGate;
|
|
27
31
|
readonly writeLine?: (message: string) => void;
|
|
32
|
+
readonly syncRepository?: RepositorySync;
|
|
28
33
|
}
|
|
29
|
-
/** Validates
|
|
30
|
-
export declare const executeSyncCommand: (input: SyncCommandInput, dependencies?: Pick<SyncCommandDependencies, "classifier" | "prompt" | "privateCatalogGate">) => SyncCommandResult;
|
|
34
|
+
/** Validates settings, syncs remote settings, reloads, syncs remote sources, then their closure. */
|
|
35
|
+
export declare const executeSyncCommand: (input: SyncCommandInput, dependencies?: Pick<SyncCommandDependencies, "classifier" | "prompt" | "privateCatalogGate" | "syncRepository">) => SyncCommandResult;
|
|
31
36
|
export declare const createSyncCommand: (dependencies?: SyncCommandDependencies) => CommandObject;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
// Implements deterministic remote-settings-first source synchronization.
|
|
2
2
|
import { existsSync } from 'node:fs';
|
|
3
3
|
import { Command } from 'commander';
|
|
4
|
+
import { strictAmbiguityFailureMessage } from '../../resolver/AmbiguityWarnings.js';
|
|
4
5
|
import { remoteSourceLayer } from '../../resolver/Layer.js';
|
|
5
6
|
import { resolveResources } from '../../resolver/Resolver.js';
|
|
7
|
+
import { resolveEffectiveSet } from '../../resolver/ResolverContext.js';
|
|
6
8
|
import { validateEffectiveSet } from '../../resolver/ResolverValidation.js';
|
|
7
9
|
import { createSettingsLoadPlan, discoverSettingsLoadPlan, formatSettingsIssue, loadSettings, loadSettingsFiles, loadSettingsWithCachedRemoteSettings, resolveRemoteSettingsPath, } from '../../settings/SettingsLoader.js';
|
|
8
|
-
import { syncRemoteRepositoryAtomically } from '../../sources/GitRepository.js';
|
|
10
|
+
import { syncRemoteRepositoryAtomically, tryReadCleanHead } from '../../sources/GitRepository.js';
|
|
9
11
|
import { createEnterprisePrivateCatalogGate, } from '../../sources/PrivateCatalogGate.js';
|
|
10
|
-
import { createRemoteRepositoryCachePath, formatRemoteSourceDisplay, isRemoteSource, redactEmbeddedSourceCredentials, } from '../../sources/SourceCache.js';
|
|
12
|
+
import { createRemoteRepositoryCachePath, encodeRemoteSourceSelection, formatRemoteSourceDisplay, isRemoteSource, redactEmbeddedSourceCredentials, resolveSourcePayloadRoot, } from '../../sources/SourceCache.js';
|
|
13
|
+
import { readDeclaredRemoteSources } from '../../sources/TransitiveSources.js';
|
|
11
14
|
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
12
15
|
const formatSettingsIssues = (heading, issues) => [
|
|
13
16
|
heading,
|
|
@@ -36,7 +39,10 @@ const validateSourceCheckout = (repositoryPath, source) => {
|
|
|
36
39
|
if (!existsSync(layer.root)) {
|
|
37
40
|
throw new Error(`Configured source path '${source.path}' was not found in the fetched repository.`);
|
|
38
41
|
}
|
|
39
|
-
|
|
42
|
+
// A source is validated in isolation here, so an unresolved loadout slug is deferred (a warning,
|
|
43
|
+
// not a failure): a catalog may reference a skill supplied by a catalog it declares as a transitive
|
|
44
|
+
// dependency (OFTR-004.6), and loadout wholeness is validated against the merged tree at resolution.
|
|
45
|
+
const findings = validateEffectiveSet(resolveResources([layer]), undefined, { deferLoadoutResolution: true });
|
|
40
46
|
const errors = findings.filter((finding) => finding.severity === 'error');
|
|
41
47
|
if (errors.length > 0) {
|
|
42
48
|
throw new Error(`Fetched source is invalid: ${errors.map((finding) => `${finding.resource} ${finding.message}`).join('; ')}`);
|
|
@@ -46,41 +52,103 @@ const validateSourceCheckout = (repositoryPath, source) => {
|
|
|
46
52
|
/** Runs the private-catalog gate over one phase's sources, then fetches everything it allowed. */
|
|
47
53
|
const syncPhase = (input) => {
|
|
48
54
|
const gated = input.gate.filter(input.sources, input.cacheDirectory);
|
|
55
|
+
// Pair each source with its own result so a later step reads the checkout by identity, never by a
|
|
56
|
+
// display string (which omits a `uri:` source's ref and would collide across refs).
|
|
49
57
|
const synced = gated.allowedSources.map((source) => {
|
|
50
58
|
const cachePath = createRemoteRepositoryCachePath(input.homeDirectory, source, input.cacheDirectory);
|
|
51
59
|
const uri = formatRemoteSourceDisplay(source);
|
|
52
60
|
try {
|
|
53
|
-
const result =
|
|
61
|
+
const result = input.syncRepository({
|
|
54
62
|
cachePath,
|
|
55
63
|
source,
|
|
56
64
|
validate: (repositoryPath) => input.validate(repositoryPath, source),
|
|
57
65
|
});
|
|
58
66
|
return {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
source,
|
|
68
|
+
result: {
|
|
69
|
+
kind: input.kind,
|
|
70
|
+
uri,
|
|
71
|
+
cachePath,
|
|
72
|
+
status: result.status,
|
|
73
|
+
message: result.warnings === 0 ? undefined : `validated with ${result.warnings} warning(s)`,
|
|
74
|
+
},
|
|
64
75
|
};
|
|
65
76
|
}
|
|
66
77
|
catch (error) {
|
|
67
78
|
return {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
79
|
+
source,
|
|
80
|
+
result: {
|
|
81
|
+
kind: input.kind,
|
|
82
|
+
uri,
|
|
83
|
+
cachePath,
|
|
84
|
+
status: 'failed',
|
|
85
|
+
message: redactEmbeddedSourceCredentials(formatCaughtError(error)),
|
|
86
|
+
},
|
|
73
87
|
};
|
|
74
88
|
}
|
|
75
89
|
});
|
|
76
90
|
return {
|
|
77
91
|
allowedSources: gated.allowedSources,
|
|
78
92
|
messages: gated.messages,
|
|
79
|
-
results: [
|
|
93
|
+
results: [
|
|
94
|
+
...gated.skippedResults.map((result) => ({ ...result, kind: input.kind })),
|
|
95
|
+
...synced.map((s) => s.result),
|
|
96
|
+
],
|
|
97
|
+
// A source is traversable when its checkout is readable on disk *now* — not only when this run
|
|
98
|
+
// refreshed it. A failed refresh leaves the prior valid cache in place (atomic sync) and
|
|
99
|
+
// resolution keeps using it, so its declared dependencies must still be discovered; a failed
|
|
100
|
+
// first fetch leaves no checkout, so it is correctly excluded.
|
|
101
|
+
readableSources: synced.filter((s) => tryReadCleanHead(s.result.cachePath) !== undefined).map((s) => s.source),
|
|
80
102
|
};
|
|
81
103
|
};
|
|
82
|
-
|
|
83
|
-
|
|
104
|
+
/** Fetches sources declared by synced catalogs until no new sources remain (OFTR-004.6.7). */
|
|
105
|
+
const syncTransitiveClosure = (input) => {
|
|
106
|
+
const messages = [];
|
|
107
|
+
const results = [];
|
|
108
|
+
const visited = new Set(input.directRemoteSources.map(encodeRemoteSourceSelection));
|
|
109
|
+
let frontier = input.sourcePhase.readableSources;
|
|
110
|
+
while (frontier.length > 0) {
|
|
111
|
+
const discovered = [];
|
|
112
|
+
for (const parent of frontier) {
|
|
113
|
+
const checkoutRoot = createRemoteRepositoryCachePath(input.homeDirectory, parent, input.cacheDirectory);
|
|
114
|
+
// An absolute or escaping `path:` on a directly configured source throws here; skip it rather
|
|
115
|
+
// than crash sync (transitive sources are path-less and never reach this).
|
|
116
|
+
let payloadRoot;
|
|
117
|
+
try {
|
|
118
|
+
payloadRoot = resolveSourcePayloadRoot(checkoutRoot, parent);
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
const declared = readDeclaredRemoteSources(payloadRoot, checkoutRoot, formatRemoteSourceDisplay(parent));
|
|
124
|
+
messages.push(...declared.warnings.map((warning) => `warning: ${warning}`));
|
|
125
|
+
for (const entry of declared.sources) {
|
|
126
|
+
const key = encodeRemoteSourceSelection(entry.source);
|
|
127
|
+
if (visited.has(key))
|
|
128
|
+
continue;
|
|
129
|
+
visited.add(key);
|
|
130
|
+
discovered.push(entry.source);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (discovered.length === 0)
|
|
134
|
+
break;
|
|
135
|
+
const phase = syncPhase({
|
|
136
|
+
kind: 'transitive',
|
|
137
|
+
sources: discovered,
|
|
138
|
+
homeDirectory: input.homeDirectory,
|
|
139
|
+
cacheDirectory: input.cacheDirectory,
|
|
140
|
+
gate: input.gate,
|
|
141
|
+
syncRepository: input.syncRepository,
|
|
142
|
+
validate: validateSourceCheckout,
|
|
143
|
+
});
|
|
144
|
+
messages.push(...phase.messages, ...phase.results.map(formatResult));
|
|
145
|
+
results.push(...phase.results);
|
|
146
|
+
frontier = phase.readableSources;
|
|
147
|
+
}
|
|
148
|
+
return { messages, results };
|
|
149
|
+
};
|
|
150
|
+
const finishSync = (mergedIssues, remoteSettingsPhase, sourcePhase, transitiveClosure) => {
|
|
151
|
+
const results = [...remoteSettingsPhase.results, ...sourcePhase.results, ...transitiveClosure.results];
|
|
84
152
|
const settingsMessages = mergedIssues.length === 0
|
|
85
153
|
? []
|
|
86
154
|
: formatSettingsIssues('Merged settings contain errors after remote-settings synchronization.', mergedIssues);
|
|
@@ -90,6 +158,7 @@ const finishSync = (mergedIssues, remoteSettingsPhase, sourcePhase) => {
|
|
|
90
158
|
...settingsMessages,
|
|
91
159
|
...sourcePhase.messages,
|
|
92
160
|
...sourcePhase.results.map(formatResult),
|
|
161
|
+
...transitiveClosure.messages,
|
|
93
162
|
];
|
|
94
163
|
if (results.length === 0 && mergedIssues.length === 0) {
|
|
95
164
|
messages.push('No remote sources are configured.');
|
|
@@ -100,7 +169,7 @@ const finishSync = (mergedIssues, remoteSettingsPhase, sourcePhase) => {
|
|
|
100
169
|
results,
|
|
101
170
|
};
|
|
102
171
|
};
|
|
103
|
-
/** Validates
|
|
172
|
+
/** Validates settings, syncs remote settings, reloads, syncs remote sources, then their closure. */
|
|
104
173
|
export const executeSyncCommand = (input, dependencies = {}) => {
|
|
105
174
|
const local = loadSettings(discoverSettingsLoadPlan(input));
|
|
106
175
|
if (local.issues.length > 0) {
|
|
@@ -116,27 +185,61 @@ export const executeSyncCommand = (input, dependencies = {}) => {
|
|
|
116
185
|
classifier: dependencies.classifier,
|
|
117
186
|
prompt: dependencies.prompt,
|
|
118
187
|
});
|
|
188
|
+
const syncRepository = dependencies.syncRepository ?? syncRemoteRepositoryAtomically;
|
|
119
189
|
const remoteSettingsPhase = syncPhase({
|
|
120
190
|
kind: 'remote_settings',
|
|
191
|
+
// Non-null is safe: `emptySettings()` (Settings.ts) always defaults `remoteSettings` to `[]`.
|
|
121
192
|
sources: local.settings.remoteSettings,
|
|
122
193
|
homeDirectory: input.homeDirectory,
|
|
123
194
|
cacheDirectory: local.settings.cacheDirectory,
|
|
124
195
|
gate,
|
|
196
|
+
syncRepository,
|
|
125
197
|
validate: validateRemoteSettingsCheckout,
|
|
126
198
|
});
|
|
127
199
|
const merged = loadSettingsWithCachedRemoteSettings(input, {
|
|
128
200
|
remoteSettingsReferences: remoteSettingsPhase.allowedSources,
|
|
129
201
|
localSettings: local,
|
|
130
202
|
});
|
|
203
|
+
// Non-null is safe: `emptySettings()` (Settings.ts) always defaults `sources` to `[]`. Deduplicate
|
|
204
|
+
// exact-duplicate configured sources so an identical entry listed twice is fetched once, not twice
|
|
205
|
+
// (OFTR-004.6.6); distinct subpaths of one repo+ref stay distinct (path-aware key).
|
|
206
|
+
const seenSources = new Set();
|
|
207
|
+
const directRemoteSources = merged.settings.sources.filter(isRemoteSource).filter((source) => {
|
|
208
|
+
const key = encodeRemoteSourceSelection(source);
|
|
209
|
+
if (seenSources.has(key))
|
|
210
|
+
return false;
|
|
211
|
+
seenSources.add(key);
|
|
212
|
+
return true;
|
|
213
|
+
});
|
|
131
214
|
const sourcePhase = syncPhase({
|
|
132
215
|
kind: 'source',
|
|
133
|
-
sources:
|
|
216
|
+
sources: directRemoteSources,
|
|
134
217
|
homeDirectory: input.homeDirectory,
|
|
135
218
|
cacheDirectory: merged.settings.cacheDirectory,
|
|
136
219
|
gate,
|
|
220
|
+
syncRepository,
|
|
137
221
|
validate: validateSourceCheckout,
|
|
138
222
|
});
|
|
139
|
-
|
|
223
|
+
const transitiveClosure = syncTransitiveClosure({
|
|
224
|
+
homeDirectory: input.homeDirectory,
|
|
225
|
+
cacheDirectory: merged.settings.cacheDirectory,
|
|
226
|
+
gate,
|
|
227
|
+
syncRepository,
|
|
228
|
+
directRemoteSources,
|
|
229
|
+
sourcePhase,
|
|
230
|
+
});
|
|
231
|
+
const result = finishSync(merged.issues, remoteSettingsPhase, sourcePhase, transitiveClosure);
|
|
232
|
+
const ambiguityWarnings = resolveEffectiveSet(input).ambiguityWarnings;
|
|
233
|
+
const strictFailure = input.strict === true && ambiguityWarnings.length > 0;
|
|
234
|
+
return {
|
|
235
|
+
...result,
|
|
236
|
+
exitCode: strictFailure ? 1 : result.exitCode,
|
|
237
|
+
messages: [
|
|
238
|
+
...result.messages,
|
|
239
|
+
...ambiguityWarnings.map((warning) => `warning: ${warning}`),
|
|
240
|
+
...(strictFailure ? [`failed: ${strictAmbiguityFailureMessage}`] : []),
|
|
241
|
+
],
|
|
242
|
+
};
|
|
140
243
|
};
|
|
141
244
|
export const createSyncCommand = (dependencies = {}) => ({
|
|
142
245
|
name: 'sync',
|
|
@@ -144,10 +247,12 @@ export const createSyncCommand = (dependencies = {}) => ({
|
|
|
144
247
|
register(program) {
|
|
145
248
|
program.addCommand(new Command('sync')
|
|
146
249
|
.description('Synchronize configured remote settings and sources into the local cache.')
|
|
147
|
-
.
|
|
250
|
+
.option('--strict', 'Treat ambiguous source resolution as fatal.')
|
|
251
|
+
.action((options) => {
|
|
148
252
|
const result = executeSyncCommand({
|
|
149
253
|
homeDirectory: resolveHomeDirectory(dependencies.homeDirectory),
|
|
150
254
|
projectDirectory: resolveProjectDirectory(dependencies.projectDirectory),
|
|
255
|
+
strict: options.strict,
|
|
151
256
|
}, dependencies);
|
|
152
257
|
for (const message of result.messages) {
|
|
153
258
|
/* v8 ignore next -- console fallback is direct CLI behavior; tests inject a writer. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SyncCommand.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,oCAAoC,EACpC,yBAAyB,GAC1B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"SyncCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SyncCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,7 @@ export const createValidateCommand = (dependencies = {}) => ({
|
|
|
31
31
|
register(program) {
|
|
32
32
|
program.addCommand(new Command('validate')
|
|
33
33
|
.description('Validate the resolved .agents tree: schemas, loadout slugs, and shadowing.')
|
|
34
|
-
.option('--strict', 'Treat warnings
|
|
34
|
+
.option('--strict', 'Treat warnings, including ambiguous source resolution, as failures.')
|
|
35
35
|
.option('--json', 'Emit findings as JSON.')
|
|
36
36
|
.action((options) => {
|
|
37
37
|
/* v8 ignore next 2 -- process defaults are exercised by the CLI entrypoint, not unit tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface CodexMcpProjection {
|
|
2
|
+
readonly args: readonly string[];
|
|
3
|
+
readonly warnings: readonly string[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Codex CLI `-c` values are TOML, not JSON. HTTP header values written as `${ENV_NAME}` are
|
|
7
|
+
* translated to `env_http_headers`, and `Authorization: Bearer ${ENV_NAME}` becomes
|
|
8
|
+
* `bearer_token_env_var`, so the secret itself stays out of argv. Other values must use Codex's
|
|
9
|
+
* literal `http_headers` because the protocol definition contains no environment reference.
|
|
10
|
+
*/
|
|
11
|
+
export declare const projectCodexMcpServers: (selectedIds: readonly string[], servers: Readonly<Record<string, unknown>>) => CodexMcpProjection;
|