@ai-outfitter/outfitter 1.0.3 → 1.1.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/code/enterprise/cli/privateCatalogGate.cjs +3 -3
- package/dist/cli/OutfitterCli.js +2 -0
- package/dist/cli/OutfitterCli.js.map +1 -1
- package/dist/cli/commands/DumpCommand.js +8 -3
- package/dist/cli/commands/DumpCommand.js.map +1 -1
- package/dist/cli/commands/ListCommand.js +4 -3
- package/dist/cli/commands/ListCommand.js.map +1 -1
- package/dist/cli/commands/PiRuntimeLaunch.js +3 -16
- package/dist/cli/commands/PiRuntimeLaunch.js.map +1 -1
- package/dist/cli/commands/RunAgentCommand.js +1 -0
- package/dist/cli/commands/RunAgentCommand.js.map +1 -1
- package/dist/cli/commands/SetupCommand.d.ts +1 -1
- package/dist/cli/commands/SetupCommand.js +6 -13
- package/dist/cli/commands/SetupCommand.js.map +1 -1
- package/dist/cli/commands/SyncCommand.d.ts +31 -0
- package/dist/cli/commands/SyncCommand.js +162 -0
- package/dist/cli/commands/SyncCommand.js.map +1 -0
- package/dist/cli/commands/ValidateCommand.js +4 -2
- package/dist/cli/commands/ValidateCommand.js.map +1 -1
- package/dist/paths/RepositoryAssets.d.ts +4 -0
- package/dist/paths/RepositoryAssets.js +26 -0
- package/dist/paths/RepositoryAssets.js.map +1 -0
- package/dist/resolver/Layer.d.ts +17 -1
- package/dist/resolver/Layer.js +23 -15
- package/dist/resolver/Layer.js.map +1 -1
- package/dist/resolver/ResolverContext.d.ts +2 -0
- package/dist/resolver/ResolverContext.js +7 -2
- package/dist/resolver/ResolverContext.js.map +1 -1
- package/dist/settings/SettingsLoader.d.ts +12 -3
- package/dist/settings/SettingsLoader.js +25 -11
- package/dist/settings/SettingsLoader.js.map +1 -1
- package/dist/setup/DefaultCatalog.d.ts +2 -1
- package/dist/setup/DefaultCatalog.js +25 -50
- package/dist/setup/DefaultCatalog.js.map +1 -1
- package/dist/sources/GitRepository.d.ts +28 -0
- package/dist/sources/GitRepository.js +139 -0
- package/dist/sources/GitRepository.js.map +1 -0
- package/dist/sources/PrivateCatalogGate.d.ts +27 -0
- package/dist/sources/PrivateCatalogGate.js +23 -0
- package/dist/sources/PrivateCatalogGate.js.map +1 -0
- package/dist/sources/SourceCache.d.ts +11 -1
- package/dist/sources/SourceCache.js +11 -2
- package/dist/sources/SourceCache.js.map +1 -1
- package/docs/documentation/catalogs.md +10 -2
- package/docs/documentation/cli.md +11 -3
- package/docs/documentation/settings.md +4 -2
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const { spawnSync } = require('node:child_process');
|
|
2
|
-
const {
|
|
2
|
+
const { join } = require('node:path');
|
|
3
3
|
|
|
4
4
|
const {
|
|
5
5
|
formatPrivateCatalogCliPrompt,
|
|
@@ -10,7 +10,7 @@ const {
|
|
|
10
10
|
const { enablePrivateProfileCatalogs, isPrivateProfileCatalogsEnabled } = require('./privateCatalogSettings.cjs');
|
|
11
11
|
|
|
12
12
|
const createPrivateCatalogGate = ({ homeDirectory, classifier, prompt }) => {
|
|
13
|
-
const settingsPath = join(homeDirectory, '.
|
|
13
|
+
const settingsPath = join(homeDirectory, '.agents', 'settings.yml');
|
|
14
14
|
|
|
15
15
|
return {
|
|
16
16
|
classifier,
|
|
@@ -50,7 +50,7 @@ const gatePrivateCatalogSources = (sources, gate, helpers) => {
|
|
|
50
50
|
}
|
|
51
51
|
skippedResults.push({
|
|
52
52
|
uri: helpers.formatDisplayUri(source),
|
|
53
|
-
cachePath: helpers.
|
|
53
|
+
cachePath: helpers.resolveCachePath(source),
|
|
54
54
|
status: 'skipped',
|
|
55
55
|
message: formatPrivateCatalogSkipResultMessage(repository),
|
|
56
56
|
});
|
package/dist/cli/OutfitterCli.js
CHANGED
|
@@ -5,10 +5,12 @@ import { createDumpCommand } from './commands/DumpCommand.js';
|
|
|
5
5
|
import { createListCommand } from './commands/ListCommand.js';
|
|
6
6
|
import { createRunAgentCommand } from './commands/RunAgentCommand.js';
|
|
7
7
|
import { createSetupCommand } from './commands/SetupCommand.js';
|
|
8
|
+
import { createSyncCommand } from './commands/SyncCommand.js';
|
|
8
9
|
import { createValidateCommand } from './commands/ValidateCommand.js';
|
|
9
10
|
export const createDefaultCommands = () => [
|
|
10
11
|
createRunAgentCommand(),
|
|
11
12
|
createSetupCommand(),
|
|
13
|
+
createSyncCommand(),
|
|
12
14
|
createListCommand(),
|
|
13
15
|
createValidateCommand(),
|
|
14
16
|
createDumpCommand(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OutfitterCli.js","sourceRoot":"","sources":["../../src/cli/OutfitterCli.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAoB,EAAE,CAAC;IAC1D,qBAAqB,EAAE;IACvB,kBAAkB,EAAE;IACpB,iBAAiB,EAAE;IACnB,qBAAqB,EAAE;IACvB,iBAAiB,EAAE;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAqC,qBAAqB,EAAE,EAAW,EAAE;IAC9G,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,uFAAuF,CAAC;SACpG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"OutfitterCli.js","sourceRoot":"","sources":["../../src/cli/OutfitterCli.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAoB,EAAE,CAAC;IAC1D,qBAAqB,EAAE;IACvB,kBAAkB,EAAE;IACpB,iBAAiB,EAAE;IACnB,iBAAiB,EAAE;IACnB,qBAAqB,EAAE;IACvB,iBAAiB,EAAE;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,WAAqC,qBAAqB,EAAE,EAAW,EAAE;IAC9G,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,uFAAuF,CAAC;SACpG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC"}
|
|
@@ -13,16 +13,21 @@ const resolveAgentSlug = (settings, requested) => {
|
|
|
13
13
|
return settings.defaultAgent;
|
|
14
14
|
};
|
|
15
15
|
export const executeDumpCommand = (input) => {
|
|
16
|
-
const { set, settings, settingsIssues } = resolveEffectiveSet(input);
|
|
16
|
+
const { set, settings, settingsIssues, warnings } = resolveEffectiveSet(input);
|
|
17
17
|
if (settingsIssues.length > 0) {
|
|
18
18
|
throw new Error(`Cannot dump with invalid settings: ${settingsIssues.map((issue) => issue.message).join('; ')}`);
|
|
19
19
|
}
|
|
20
|
+
const syncWarnings = warnings.map((warning) => `warning: ${warning}`);
|
|
20
21
|
const agentSlug = resolveAgentSlug(settings, input.agent);
|
|
21
22
|
const result = dumpAgent(set, agentSlug, input.out);
|
|
22
23
|
const ok = result.errors.length === 0;
|
|
23
24
|
const messages = ok
|
|
24
|
-
? [
|
|
25
|
-
|
|
25
|
+
? [
|
|
26
|
+
...syncWarnings,
|
|
27
|
+
`Dumped '${agentSlug}' to ${input.out} (${result.writtenPaths.length} files).`,
|
|
28
|
+
...result.warnings,
|
|
29
|
+
]
|
|
30
|
+
: [...syncWarnings, ...result.errors, ...result.warnings];
|
|
26
31
|
return { writtenPaths: result.writtenPaths, messages, ok };
|
|
27
32
|
};
|
|
28
33
|
export const createDumpCommand = (dependencies = {}) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DumpCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DumpCommand.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAqBrF,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAE,SAA6B,EAAU,EAAE;IACrF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAgB,EAAqB,EAAE;IACxE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DumpCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/DumpCommand.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAEtF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAqBrF,MAAM,gBAAgB,GAAG,CAAC,QAAkB,EAAE,SAA6B,EAAU,EAAE;IACrF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,QAAQ,CAAC,YAAY,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAgB,EAAqB,EAAE;IACxE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAE/E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,sCAAsC,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAEtE,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,EAAE;QACjB,CAAC,CAAC;YACE,GAAG,YAAY;YACf,WAAW,SAAS,QAAQ,KAAK,CAAC,GAAG,KAAK,MAAM,CAAC,YAAY,CAAC,MAAM,UAAU;YAC9E,GAAG,MAAM,CAAC,QAAQ;SACnB;QACH,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,eAAwC,EAAE,EAAiB,EAAE,CAAC,CAAC;IAC/F,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,8DAA8D;IAC3E,QAAQ,CAAC,OAAgB;QACvB,OAAO,CAAC,UAAU,CAChB,IAAI,OAAO,CAAC,MAAM,CAAC;aAChB,WAAW,CAAC,8DAA8D,CAAC;aAC3E,MAAM,CAAC,cAAc,EAAE,uDAAuD,CAAC;aAC/E,MAAM,CAAC,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;aAC9D,MAAM,CAAC,CAAC,OAAwC,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC;gBAChC,+FAA+F;gBAC/F,aAAa,EAAE,oBAAoB,CAAC,YAAY,CAAC,aAAa,CAAC;gBAC/D,gBAAgB,EAAE,uBAAuB,CAAC,YAAY,CAAC,gBAAgB,CAAC;gBACxE,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;YAEH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,uFAAuF;gBACvF,CAAC,YAAY,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { agentLocalKinds, compareSlugs, findResource, listAgentResources, listResources, resourceKinds, } from '../../resolver/Resource.js';
|
|
4
4
|
import { resolveEffectiveSet } from '../../resolver/ResolverContext.js';
|
|
5
|
+
import { formatSettingsIssue } from '../../settings/SettingsLoader.js';
|
|
5
6
|
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
6
7
|
const kindByPlural = new Map([
|
|
7
8
|
['agents', 'agent'],
|
|
@@ -26,12 +27,12 @@ const resolveKindFilter = (kind) => {
|
|
|
26
27
|
return [resolved];
|
|
27
28
|
};
|
|
28
29
|
export const executeListCommand = (input) => {
|
|
29
|
-
const { set, settingsIssues } = resolveEffectiveSet(input);
|
|
30
|
+
const { set, settingsIssues, warnings } = resolveEffectiveSet(input);
|
|
30
31
|
if (settingsIssues.length > 0) {
|
|
31
|
-
const detail = settingsIssues.map(
|
|
32
|
+
const detail = settingsIssues.map(formatSettingsIssue).join('; ');
|
|
32
33
|
throw new Error(`Cannot list resources with invalid settings: ${detail}`);
|
|
33
34
|
}
|
|
34
|
-
const messages =
|
|
35
|
+
const messages = warnings.map((warning) => `warning: ${warning}`);
|
|
35
36
|
if (input.agent !== undefined && findResource(set, 'agent', input.agent) === undefined) {
|
|
36
37
|
throw new Error(`Unknown agent '${input.agent}'. Run 'outfitter list agents' to see resolvable agents.`);
|
|
37
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ListCommand.ts"],"names":[],"mappings":"AAAA,oEAAoE;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,aAAa,GACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"ListCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ListCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// the Outfitter + pi header, active-profile status, and "connect a model provider" sign-in prompt.
|
|
3
3
|
// Non-interactive pi launches (--print, --export, --mode json|print|rpc, …) are left untouched so
|
|
4
4
|
// scripted runs never prompt, and non-pi harnesses pass through unchanged.
|
|
5
|
-
import {
|
|
5
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
|
-
import {
|
|
7
|
+
import { findRepositoryCodeAsset } from '../../paths/RepositoryAssets.js';
|
|
8
8
|
const nonInteractivePiLaunchFlags = new Set(['--print', '-p', '--export', '--list-models']);
|
|
9
9
|
const nonInteractivePiModes = new Set(['json', 'print', 'rpc']);
|
|
10
10
|
const runtimeExtensionAsset = 'pi-extension/src/outfitter-runtime-extension.js';
|
|
@@ -17,22 +17,9 @@ export const isNonInteractivePiLaunch = (args) => args.some((arg, index) => {
|
|
|
17
17
|
return nonInteractivePiModes.has(arg.slice('--mode='.length));
|
|
18
18
|
return false;
|
|
19
19
|
});
|
|
20
|
-
// Resolves the runtime extension in either the repository layout (code/<asset>) or the packaged npm
|
|
21
|
-
// layout (code/cli/code/<asset>), mirroring SetupCommand's asset resolver.
|
|
22
|
-
const resolveRuntimeExtensionPath = () => {
|
|
23
|
-
const sourcePath = fileURLToPath(new URL(`../../../../${runtimeExtensionAsset}`, import.meta.url));
|
|
24
|
-
const packagePath = fileURLToPath(new URL(`../../../code/${runtimeExtensionAsset}`, import.meta.url));
|
|
25
|
-
/* v8 ignore else -- packaged layout is exercised by the npm package smoke test. */
|
|
26
|
-
if (existsSync(sourcePath))
|
|
27
|
-
return sourcePath;
|
|
28
|
-
/* v8 ignore next 2 -- packaged layout is covered by the package smoke test. */
|
|
29
|
-
if (existsSync(packagePath))
|
|
30
|
-
return packagePath;
|
|
31
|
-
return undefined;
|
|
32
|
-
};
|
|
33
20
|
/** Stamps per-run identity metadata into the runtime extension source. */
|
|
34
21
|
export const createPiRuntimeExtensionContent = (input) => {
|
|
35
|
-
const extensionPath =
|
|
22
|
+
const extensionPath = findRepositoryCodeAsset(runtimeExtensionAsset);
|
|
36
23
|
/* v8 ignore next -- defensive: the runtime extension ships with the package, so it resolves in practice. */
|
|
37
24
|
if (extensionPath === undefined)
|
|
38
25
|
throw new Error('Outfitter runtime extension was not found.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PiRuntimeLaunch.js","sourceRoot":"","sources":["../../../src/cli/commands/PiRuntimeLaunch.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,2EAA2E;AAC3E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PiRuntimeLaunch.js","sourceRoot":"","sources":["../../../src/cli/commands/PiRuntimeLaunch.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,mGAAmG;AACnG,kGAAkG;AAClG,2EAA2E;AAC3E,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAG1E,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;AAC5F,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAEhE,MAAM,qBAAqB,GAAG,iDAAiD,CAAC;AAahF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAuB,EAAW,EAAE,CAC3E,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;IACvB,IAAI,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CAAC;AAEL,0EAA0E;AAC1E,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,KAAqD,EAAU,EAAE;IAC/G,MAAM,aAAa,GAAG,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IACrE,4GAA4G;IAC5G,IAAI,aAAa,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAE/F,OAAO,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC;SACvC,OAAO,CAAC,iCAAiC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;SAClF,OAAO,CAAC,wCAAwC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC;AACrG,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAqB,EAAE,KAA8B,EAAmB,EAAE;IACjH,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACnE,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,gCAAgC,CAAC,CAAC;IACjF,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,aAAa,CAAC,aAAa,EAAE,+BAA+B,CAAC,KAAK,CAAC,CAAC,CAAC;IAErE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACzE,CAAC,CAAC"}
|
|
@@ -69,6 +69,7 @@ export const executeRunAgentCommand = async (input) => {
|
|
|
69
69
|
};
|
|
70
70
|
let resolved = resolveEffectiveSet(input);
|
|
71
71
|
assertNoSettingsIssues(resolved.settingsIssues);
|
|
72
|
+
emit(resolved.warnings.map((warning) => `warning: ${warning}`));
|
|
72
73
|
// First run: nothing selected and no default configured — onboard, then resolve again.
|
|
73
74
|
const setupMessages = [];
|
|
74
75
|
if (input.agent === undefined && resolved.settings.defaultAgent === undefined && input.setup !== undefined) {
|
|
@@ -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":"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"}
|
|
@@ -5,7 +5,7 @@ export type SetupProcessLauncher = (plan: AgentLaunchPlan) => Promise<number>;
|
|
|
5
5
|
export interface SetupCommandDependencies {
|
|
6
6
|
readonly homeDirectory?: string;
|
|
7
7
|
readonly projectDirectory?: string;
|
|
8
|
-
readonly defaultCatalogBootstrap?: (homeDirectory: string) => string;
|
|
8
|
+
readonly defaultCatalogBootstrap?: (homeDirectory: string, cacheDirectory?: string) => string;
|
|
9
9
|
readonly setupSourceUri?: string;
|
|
10
10
|
readonly interactive?: boolean;
|
|
11
11
|
readonly launcher?: SetupProcessLauncher;
|
|
@@ -3,25 +3,15 @@
|
|
|
3
3
|
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
|
|
4
4
|
import { tmpdir } from 'node:os';
|
|
5
5
|
import { join, resolve } from 'node:path';
|
|
6
|
-
import { fileURLToPath } from 'node:url';
|
|
7
6
|
import { Command } from 'commander';
|
|
8
7
|
import { launchThroughSpawn, spawnLauncher } from '../../agents/AgentLaunch.js';
|
|
8
|
+
import { readRepositoryCodeAsset } from '../../paths/RepositoryAssets.js';
|
|
9
9
|
import { HARNESSES } from '../../settings/Settings.js';
|
|
10
|
+
import { discoverSettingsLoadPlan, loadSettings } from '../../settings/SettingsLoader.js';
|
|
10
11
|
import { applySetupSelection, discoverSetupAgentChoices } from '../../setup/Setup.js';
|
|
11
12
|
import { bootstrapDefaultCatalog } from '../../setup/DefaultCatalog.js';
|
|
12
13
|
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
13
14
|
import { executeRunAgentCommand } from './RunAgentCommand.js';
|
|
14
|
-
const readRepositoryCodeAsset = (relativePath) => {
|
|
15
|
-
const sourcePath = fileURLToPath(new URL(`../../../../${relativePath}`, import.meta.url));
|
|
16
|
-
const packagePath = fileURLToPath(new URL(`../../../code/${relativePath}`, import.meta.url));
|
|
17
|
-
/* v8 ignore else -- packaged layout is exercised by the npm package smoke test. */
|
|
18
|
-
if (existsSync(sourcePath))
|
|
19
|
-
return readFileSync(sourcePath, 'utf8');
|
|
20
|
-
/* v8 ignore next 3 -- packaged layout is covered by the package smoke test. */
|
|
21
|
-
if (existsSync(packagePath))
|
|
22
|
-
return readFileSync(packagePath, 'utf8');
|
|
23
|
-
throw new Error(`Outfitter support file '${relativePath}' was not found.`);
|
|
24
|
-
};
|
|
25
15
|
export const createPiSetupExtensionContent = (input) => {
|
|
26
16
|
const values = {
|
|
27
17
|
OUTFITTER_HOME: input.homeDirectory,
|
|
@@ -133,8 +123,11 @@ export const runSetup = async (dependencies = {}) => {
|
|
|
133
123
|
return undefined;
|
|
134
124
|
const homeDirectory = resolveHomeDirectory(dependencies.homeDirectory);
|
|
135
125
|
const projectDirectory = resolve(resolveProjectDirectory(dependencies.projectDirectory));
|
|
126
|
+
const localSettings = loadSettings(discoverSettingsLoadPlan({ homeDirectory, projectDirectory }));
|
|
127
|
+
const bootstrap = dependencies.defaultCatalogBootstrap ??
|
|
128
|
+
((home, cacheDirectory) => bootstrapDefaultCatalog(home, cacheDirectory).root);
|
|
136
129
|
const defaultCatalogRoot = dependencies.setupSourceUri === undefined
|
|
137
|
-
? (
|
|
130
|
+
? bootstrap(homeDirectory, localSettings.settings.cacheDirectory)
|
|
138
131
|
: undefined;
|
|
139
132
|
const availableAgents = discoverSetupAgentChoices({ defaultCatalogRoot });
|
|
140
133
|
const setupDirectory = mkdtempSync(join(tmpdir(), 'outfitter-setup-'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SetupCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SetupCommand.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,mEAAmE;AACnE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"SetupCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SetupCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type GitHubRepositoryVisibilityClassifier, type PrivateCatalogPrompt, type PrivateCatalogSourceGate } from '../../sources/PrivateCatalogGate.js';
|
|
2
|
+
import type { CommandObject } from './CommandObject.js';
|
|
3
|
+
export type SyncStatus = 'updated' | 'unchanged' | 'skipped' | 'failed';
|
|
4
|
+
export type SyncSourceKind = 'remote_settings' | 'source';
|
|
5
|
+
export interface SyncSourceResult {
|
|
6
|
+
readonly kind: SyncSourceKind;
|
|
7
|
+
readonly uri: string;
|
|
8
|
+
readonly cachePath: string;
|
|
9
|
+
readonly status: SyncStatus;
|
|
10
|
+
readonly message?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SyncCommandResult {
|
|
13
|
+
readonly exitCode: number;
|
|
14
|
+
readonly messages: readonly string[];
|
|
15
|
+
readonly results: readonly SyncSourceResult[];
|
|
16
|
+
}
|
|
17
|
+
export interface SyncCommandInput {
|
|
18
|
+
readonly homeDirectory: string;
|
|
19
|
+
readonly projectDirectory: string;
|
|
20
|
+
}
|
|
21
|
+
export interface SyncCommandDependencies {
|
|
22
|
+
readonly homeDirectory?: string;
|
|
23
|
+
readonly projectDirectory?: string;
|
|
24
|
+
readonly classifier?: GitHubRepositoryVisibilityClassifier;
|
|
25
|
+
readonly prompt?: PrivateCatalogPrompt;
|
|
26
|
+
readonly privateCatalogGate?: PrivateCatalogSourceGate;
|
|
27
|
+
readonly writeLine?: (message: string) => void;
|
|
28
|
+
}
|
|
29
|
+
/** Validates local settings, syncs remote settings, reloads, then syncs resulting remote sources. */
|
|
30
|
+
export declare const executeSyncCommand: (input: SyncCommandInput, dependencies?: Pick<SyncCommandDependencies, "classifier" | "prompt" | "privateCatalogGate">) => SyncCommandResult;
|
|
31
|
+
export declare const createSyncCommand: (dependencies?: SyncCommandDependencies) => CommandObject;
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// Implements deterministic remote-settings-first source synchronization.
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { remoteSourceLayer } from '../../resolver/Layer.js';
|
|
5
|
+
import { resolveResources } from '../../resolver/Resolver.js';
|
|
6
|
+
import { validateEffectiveSet } from '../../resolver/ResolverValidation.js';
|
|
7
|
+
import { createSettingsLoadPlan, discoverSettingsLoadPlan, formatSettingsIssue, loadSettings, loadSettingsFiles, loadSettingsWithCachedRemoteSettings, resolveRemoteSettingsPath, } from '../../settings/SettingsLoader.js';
|
|
8
|
+
import { syncRemoteRepositoryAtomically } from '../../sources/GitRepository.js';
|
|
9
|
+
import { createEnterprisePrivateCatalogGate, } from '../../sources/PrivateCatalogGate.js';
|
|
10
|
+
import { createRemoteRepositoryCachePath, formatRemoteSourceDisplay, isRemoteSource, redactEmbeddedSourceCredentials, } from '../../sources/SourceCache.js';
|
|
11
|
+
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
12
|
+
const formatSettingsIssues = (heading, issues) => [
|
|
13
|
+
heading,
|
|
14
|
+
...issues.map((issue) => `failed: ${formatSettingsIssue(issue)}`),
|
|
15
|
+
];
|
|
16
|
+
const formatResult = (result) => `${result.status}: ${result.kind} ${result.uri} -> ${result.cachePath}${result.message === undefined ? '' : ` (${result.message})`}`;
|
|
17
|
+
const formatCaughtError = (error) => {
|
|
18
|
+
/* v8 ignore else -- repository synchronization throws Error instances. */
|
|
19
|
+
if (error instanceof Error)
|
|
20
|
+
return error.message;
|
|
21
|
+
return String(error);
|
|
22
|
+
};
|
|
23
|
+
const validateRemoteSettingsCheckout = (repositoryPath, source) => {
|
|
24
|
+
const settingsPath = resolveRemoteSettingsPath(repositoryPath, source.path);
|
|
25
|
+
if (!existsSync(settingsPath)) {
|
|
26
|
+
throw new Error(`Remote settings file '${source.path}' was not found in the fetched repository.`);
|
|
27
|
+
}
|
|
28
|
+
const loaded = loadSettingsFiles(createSettingsLoadPlan([{ scope: 'remote', path: settingsPath }]));
|
|
29
|
+
if (loaded.issues.length > 0) {
|
|
30
|
+
throw new Error(`Fetched remote settings are invalid: ${loaded.issues.map(formatSettingsIssue).join('; ')}`);
|
|
31
|
+
}
|
|
32
|
+
return 0;
|
|
33
|
+
};
|
|
34
|
+
const validateSourceCheckout = (repositoryPath, source) => {
|
|
35
|
+
const layer = remoteSourceLayer(repositoryPath, source);
|
|
36
|
+
if (!existsSync(layer.root)) {
|
|
37
|
+
throw new Error(`Configured source path '${source.path}' was not found in the fetched repository.`);
|
|
38
|
+
}
|
|
39
|
+
const findings = validateEffectiveSet(resolveResources([layer]));
|
|
40
|
+
const errors = findings.filter((finding) => finding.severity === 'error');
|
|
41
|
+
if (errors.length > 0) {
|
|
42
|
+
throw new Error(`Fetched source is invalid: ${errors.map((finding) => `${finding.resource} ${finding.message}`).join('; ')}`);
|
|
43
|
+
}
|
|
44
|
+
return findings.length;
|
|
45
|
+
};
|
|
46
|
+
/** Runs the private-catalog gate over one phase's sources, then fetches everything it allowed. */
|
|
47
|
+
const syncPhase = (input) => {
|
|
48
|
+
const gated = input.gate.filter(input.sources, input.cacheDirectory);
|
|
49
|
+
const synced = gated.allowedSources.map((source) => {
|
|
50
|
+
const cachePath = createRemoteRepositoryCachePath(input.homeDirectory, source, input.cacheDirectory);
|
|
51
|
+
const uri = formatRemoteSourceDisplay(source);
|
|
52
|
+
try {
|
|
53
|
+
const result = syncRemoteRepositoryAtomically({
|
|
54
|
+
cachePath,
|
|
55
|
+
source,
|
|
56
|
+
validate: (repositoryPath) => input.validate(repositoryPath, source),
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
kind: input.kind,
|
|
60
|
+
uri,
|
|
61
|
+
cachePath,
|
|
62
|
+
status: result.status,
|
|
63
|
+
message: result.warnings === 0 ? undefined : `validated with ${result.warnings} warning(s)`,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
return {
|
|
68
|
+
kind: input.kind,
|
|
69
|
+
uri,
|
|
70
|
+
cachePath,
|
|
71
|
+
status: 'failed',
|
|
72
|
+
message: redactEmbeddedSourceCredentials(formatCaughtError(error)),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
return {
|
|
77
|
+
allowedSources: gated.allowedSources,
|
|
78
|
+
messages: gated.messages,
|
|
79
|
+
results: [...gated.skippedResults.map((result) => ({ ...result, kind: input.kind })), ...synced],
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
const finishSync = (mergedIssues, remoteSettingsPhase, sourcePhase) => {
|
|
83
|
+
const results = [...remoteSettingsPhase.results, ...sourcePhase.results];
|
|
84
|
+
const settingsMessages = mergedIssues.length === 0
|
|
85
|
+
? []
|
|
86
|
+
: formatSettingsIssues('Merged settings contain errors after remote-settings synchronization.', mergedIssues);
|
|
87
|
+
const messages = [
|
|
88
|
+
...remoteSettingsPhase.messages,
|
|
89
|
+
...remoteSettingsPhase.results.map(formatResult),
|
|
90
|
+
...settingsMessages,
|
|
91
|
+
...sourcePhase.messages,
|
|
92
|
+
...sourcePhase.results.map(formatResult),
|
|
93
|
+
];
|
|
94
|
+
if (results.length === 0 && mergedIssues.length === 0) {
|
|
95
|
+
messages.push('No remote sources are configured.');
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
exitCode: mergedIssues.length > 0 || results.some((result) => result.status === 'failed') ? 1 : 0,
|
|
99
|
+
messages,
|
|
100
|
+
results,
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
/** Validates local settings, syncs remote settings, reloads, then syncs resulting remote sources. */
|
|
104
|
+
export const executeSyncCommand = (input, dependencies = {}) => {
|
|
105
|
+
const local = loadSettings(discoverSettingsLoadPlan(input));
|
|
106
|
+
if (local.issues.length > 0) {
|
|
107
|
+
return {
|
|
108
|
+
exitCode: 1,
|
|
109
|
+
messages: formatSettingsIssues('Local settings are invalid; no sources were synchronized.', local.issues),
|
|
110
|
+
results: [],
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const gate = dependencies.privateCatalogGate ??
|
|
114
|
+
createEnterprisePrivateCatalogGate({
|
|
115
|
+
homeDirectory: input.homeDirectory,
|
|
116
|
+
classifier: dependencies.classifier,
|
|
117
|
+
prompt: dependencies.prompt,
|
|
118
|
+
});
|
|
119
|
+
const remoteSettingsPhase = syncPhase({
|
|
120
|
+
kind: 'remote_settings',
|
|
121
|
+
sources: local.settings.remoteSettings,
|
|
122
|
+
homeDirectory: input.homeDirectory,
|
|
123
|
+
cacheDirectory: local.settings.cacheDirectory,
|
|
124
|
+
gate,
|
|
125
|
+
validate: validateRemoteSettingsCheckout,
|
|
126
|
+
});
|
|
127
|
+
const merged = loadSettingsWithCachedRemoteSettings(input, {
|
|
128
|
+
remoteSettingsReferences: remoteSettingsPhase.allowedSources,
|
|
129
|
+
localSettings: local,
|
|
130
|
+
});
|
|
131
|
+
const sourcePhase = syncPhase({
|
|
132
|
+
kind: 'source',
|
|
133
|
+
sources: merged.settings.sources.filter(isRemoteSource),
|
|
134
|
+
homeDirectory: input.homeDirectory,
|
|
135
|
+
cacheDirectory: merged.settings.cacheDirectory,
|
|
136
|
+
gate,
|
|
137
|
+
validate: validateSourceCheckout,
|
|
138
|
+
});
|
|
139
|
+
return finishSync(merged.issues, remoteSettingsPhase, sourcePhase);
|
|
140
|
+
};
|
|
141
|
+
export const createSyncCommand = (dependencies = {}) => ({
|
|
142
|
+
name: 'sync',
|
|
143
|
+
description: 'Synchronize configured remote settings and sources into the local cache.',
|
|
144
|
+
register(program) {
|
|
145
|
+
program.addCommand(new Command('sync')
|
|
146
|
+
.description('Synchronize configured remote settings and sources into the local cache.')
|
|
147
|
+
.action(() => {
|
|
148
|
+
const result = executeSyncCommand({
|
|
149
|
+
homeDirectory: resolveHomeDirectory(dependencies.homeDirectory),
|
|
150
|
+
projectDirectory: resolveProjectDirectory(dependencies.projectDirectory),
|
|
151
|
+
}, dependencies);
|
|
152
|
+
for (const message of result.messages) {
|
|
153
|
+
/* v8 ignore next -- console fallback is direct CLI behavior; tests inject a writer. */
|
|
154
|
+
(dependencies.writeLine ?? console.log)(message);
|
|
155
|
+
}
|
|
156
|
+
/* v8 ignore next -- process exit wiring is covered by CLI smoke behavior. */
|
|
157
|
+
if (result.exitCode !== 0)
|
|
158
|
+
process.exitCode = result.exitCode;
|
|
159
|
+
}));
|
|
160
|
+
},
|
|
161
|
+
});
|
|
162
|
+
//# sourceMappingURL=SyncCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/SyncCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { resolveEffectiveSet } from '../../resolver/ResolverContext.js';
|
|
4
4
|
import { validateEffectiveSet } from '../../resolver/ResolverValidation.js';
|
|
5
|
+
import { formatSettingsIssue } from '../../settings/SettingsLoader.js';
|
|
5
6
|
import { resolveHomeDirectory, resolveProjectDirectory } from './ProcessDefaults.js';
|
|
6
7
|
const settingsFindings = (messages) => messages.map((message) => ({ severity: 'error', resource: 'settings', message }));
|
|
7
8
|
export const executeValidateCommand = (input) => {
|
|
8
|
-
const { set, settingsIssues } = resolveEffectiveSet(input);
|
|
9
|
+
const { set, settingsIssues, warnings } = resolveEffectiveSet(input);
|
|
9
10
|
const findings = [
|
|
10
|
-
...settingsFindings(settingsIssues.map(
|
|
11
|
+
...settingsFindings(settingsIssues.map(formatSettingsIssue)),
|
|
12
|
+
...warnings.map((message) => ({ severity: 'warning', resource: 'settings', message })),
|
|
11
13
|
...validateEffectiveSet(set),
|
|
12
14
|
];
|
|
13
15
|
const hasErrors = findings.some((finding) => finding.severity === 'error');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"AAAA,qFAAqF;AAErF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"ValidateCommand.js","sourceRoot":"","sources":["../../../src/cli/commands/ValidateCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Resolves a `code/`-relative asset path, or undefined when neither layout provides it. */
|
|
2
|
+
export declare const findRepositoryCodeAsset: (relativePath: string) => string | undefined;
|
|
3
|
+
export declare const resolveRepositoryCodeAsset: (relativePath: string) => string;
|
|
4
|
+
export declare const readRepositoryCodeAsset: (relativePath: string) => string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// Resolves support files shipped from the repository's `code/` tree. They live at `code/<asset>` in
|
|
2
|
+
// the repository layout and at `code/cli/code/<asset>` in the packaged npm layout; both relative
|
|
3
|
+
// depths are encoded here only, so a packaging change is a one-file edit.
|
|
4
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import { fileURLToPath } from 'node:url';
|
|
6
|
+
/** Resolves a `code/`-relative asset path, or undefined when neither layout provides it. */
|
|
7
|
+
export const findRepositoryCodeAsset = (relativePath) => {
|
|
8
|
+
const sourcePath = fileURLToPath(new URL(`../../../${relativePath}`, import.meta.url));
|
|
9
|
+
const packagePath = fileURLToPath(new URL(`../../code/${relativePath}`, import.meta.url));
|
|
10
|
+
/* v8 ignore else -- packaged layout is exercised by the npm package smoke test. */
|
|
11
|
+
if (existsSync(sourcePath))
|
|
12
|
+
return sourcePath;
|
|
13
|
+
/* v8 ignore next 3 -- packaged layout is covered by the package smoke test. */
|
|
14
|
+
if (existsSync(packagePath))
|
|
15
|
+
return packagePath;
|
|
16
|
+
return undefined;
|
|
17
|
+
};
|
|
18
|
+
export const resolveRepositoryCodeAsset = (relativePath) => {
|
|
19
|
+
const path = findRepositoryCodeAsset(relativePath);
|
|
20
|
+
/* v8 ignore next -- support files ship with the package, so they always resolve in practice. */
|
|
21
|
+
if (path === undefined)
|
|
22
|
+
throw new Error(`Outfitter support file '${relativePath}' was not found.`);
|
|
23
|
+
return path;
|
|
24
|
+
};
|
|
25
|
+
export const readRepositoryCodeAsset = (relativePath) => readFileSync(resolveRepositoryCodeAsset(relativePath), 'utf8');
|
|
26
|
+
//# sourceMappingURL=RepositoryAssets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepositoryAssets.js","sourceRoot":"","sources":["../../src/paths/RepositoryAssets.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,iGAAiG;AACjG,0EAA0E;AAC1E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAsB,EAAE;IAClF,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,YAAY,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,cAAc,YAAY,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1F,mFAAmF;IACnF,IAAI,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAC9C,+EAA+E;IAC/E,IAAI,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,YAAoB,EAAU,EAAE;IACzE,MAAM,IAAI,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACnD,gGAAgG;IAChG,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,kBAAkB,CAAC,CAAC;IACnG,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAoB,EAAU,EAAE,CACtE,YAAY,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC"}
|