@open-agent-toolkit/cli 0.2.51 → 0.2.53
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/bundle-metadata.json +1 -1
- package/assets/docs/cli-utilities/bootstrap.md +6 -2
- package/assets/docs/cli-utilities/tool-packs.md +87 -33
- package/assets/docs/provider-sync/commands.md +30 -2
- package/assets/docs/provider-sync/config.md +19 -0
- package/assets/docs/provider-sync/manifest-and-drift.md +37 -0
- package/assets/docs/provider-sync/providers.md +69 -2
- package/assets/docs/provider-sync/scope-and-surface.md +44 -0
- package/assets/docs/reference/cli-reference.md +1 -0
- package/assets/docs/reference/oat-directory-structure.md +11 -4
- package/assets/docs/workflows/projects/evidence-layers.md +110 -1
- package/assets/docs/workflows/projects/implementation-execution.md +13 -0
- package/assets/docs/workflows/projects/orchestration-model.md +18 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-dispatch-subagents/SKILL.md +57 -1
- package/assets/skills/oat-dispatch-subagents/references/record-schema.md +77 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +1 -1
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +24 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +11 -0
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-plan-writing/SKILL.md +12 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +1 -1
- package/assets/skills/oat-project-review-provide/SKILL.md +12 -1
- package/assets/skills/oat-project-review-provide-remote/SKILL.md +12 -1
- package/dist/agents/canonical/index.d.ts +2 -0
- package/dist/agents/canonical/index.d.ts.map +1 -1
- package/dist/agents/canonical/index.js +1 -0
- package/dist/agents/canonical/resolve.d.ts +45 -0
- package/dist/agents/canonical/resolve.d.ts.map +1 -0
- package/dist/agents/canonical/resolve.js +175 -0
- package/dist/commands/decision/agents-guidance.d.ts +2 -2
- package/dist/commands/decision/agents-guidance.d.ts.map +1 -1
- package/dist/commands/decision/agents-guidance.js +1 -4
- package/dist/commands/decision/index.d.ts.map +1 -1
- package/dist/commands/decision/index.js +25 -6
- package/dist/commands/docs/init/index.d.ts +7 -1
- package/dist/commands/docs/init/index.d.ts.map +1 -1
- package/dist/commands/docs/init/index.js +53 -20
- package/dist/commands/doctor/index.d.ts +8 -2
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +157 -46
- package/dist/commands/init/index.d.ts +8 -3
- package/dist/commands/init/index.d.ts.map +1 -1
- package/dist/commands/init/index.js +66 -28
- package/dist/commands/init/tools/index.d.ts +12 -12
- package/dist/commands/init/tools/index.d.ts.map +1 -1
- package/dist/commands/init/tools/index.js +430 -99
- package/dist/commands/init/tools/install-state.d.ts +2 -0
- package/dist/commands/init/tools/install-state.d.ts.map +1 -1
- package/dist/commands/init/tools/install-state.js +11 -0
- package/dist/commands/init/tools/project-guidance.d.ts +49 -0
- package/dist/commands/init/tools/project-guidance.d.ts.map +1 -0
- package/dist/commands/init/tools/project-guidance.js +144 -0
- package/dist/commands/init/tools/workflows/index.d.ts +7 -0
- package/dist/commands/init/tools/workflows/index.d.ts.map +1 -1
- package/dist/commands/init/tools/workflows/index.js +160 -7
- package/dist/commands/pjm/index.d.ts.map +1 -1
- package/dist/commands/pjm/index.js +28 -3
- package/dist/commands/pjm/init.d.ts +5 -0
- package/dist/commands/pjm/init.d.ts.map +1 -1
- package/dist/commands/pjm/init.js +19 -3
- package/dist/commands/project/dispatch/index.d.ts +10 -0
- package/dist/commands/project/dispatch/index.d.ts.map +1 -0
- package/dist/commands/project/dispatch/index.js +137 -0
- package/dist/commands/project/dispatch/record.d.ts +91 -0
- package/dist/commands/project/dispatch/record.d.ts.map +1 -0
- package/dist/commands/project/dispatch/record.js +402 -0
- package/dist/commands/project/index.d.ts.map +1 -1
- package/dist/commands/project/index.js +2 -0
- package/dist/commands/providers/inspect/inspect.d.ts +8 -1
- package/dist/commands/providers/inspect/inspect.d.ts.map +1 -1
- package/dist/commands/providers/inspect/inspect.js +146 -26
- package/dist/commands/providers/list/list.d.ts +8 -1
- package/dist/commands/providers/list/list.d.ts.map +1 -1
- package/dist/commands/providers/list/list.js +139 -23
- package/dist/commands/providers/providers.types.d.ts +25 -1
- package/dist/commands/providers/providers.types.d.ts.map +1 -1
- package/dist/commands/providers/set/index.d.ts +9 -1
- package/dist/commands/providers/set/index.d.ts.map +1 -1
- package/dist/commands/providers/set/index.js +43 -33
- package/dist/commands/remove/skill/remove-skill.d.ts.map +1 -1
- package/dist/commands/remove/skill/remove-skill.js +11 -0
- package/dist/commands/shared/agents-md.d.ts +42 -14
- package/dist/commands/shared/agents-md.d.ts.map +1 -1
- package/dist/commands/shared/agents-md.js +364 -70
- package/dist/commands/status/index.d.ts +8 -3
- package/dist/commands/status/index.d.ts.map +1 -1
- package/dist/commands/status/index.js +149 -37
- package/dist/commands/sync/apply.d.ts.map +1 -1
- package/dist/commands/sync/apply.js +220 -29
- package/dist/commands/sync/dry-run.d.ts.map +1 -1
- package/dist/commands/sync/dry-run.js +30 -6
- package/dist/commands/sync/index.d.ts +17 -2
- package/dist/commands/sync/index.d.ts.map +1 -1
- package/dist/commands/sync/index.js +108 -43
- package/dist/commands/sync/sync.types.d.ts +39 -2
- package/dist/commands/sync/sync.types.d.ts.map +1 -1
- package/dist/commands/sync/sync.utils.d.ts +5 -1
- package/dist/commands/sync/sync.utils.d.ts.map +1 -1
- package/dist/commands/sync/sync.utils.js +73 -0
- package/dist/commands/tools/info/info-tool.d.ts +2 -0
- package/dist/commands/tools/info/info-tool.d.ts.map +1 -1
- package/dist/commands/tools/info/info-tool.js +34 -12
- package/dist/commands/tools/install/index.d.ts.map +1 -1
- package/dist/commands/tools/install/index.js +19 -3
- package/dist/commands/tools/list/list-tools.d.ts +2 -0
- package/dist/commands/tools/list/list-tools.d.ts.map +1 -1
- package/dist/commands/tools/list/list-tools.js +36 -7
- package/dist/commands/tools/remove/index.d.ts.map +1 -1
- package/dist/commands/tools/remove/index.js +150 -21
- package/dist/commands/tools/remove/remove-tools.d.ts +20 -0
- package/dist/commands/tools/remove/remove-tools.d.ts.map +1 -1
- package/dist/commands/tools/remove/remove-tools.js +122 -1
- package/dist/commands/tools/shared/format-pack-inventory.d.ts +19 -0
- package/dist/commands/tools/shared/format-pack-inventory.d.ts.map +1 -1
- package/dist/commands/tools/shared/format-pack-inventory.js +109 -0
- package/dist/commands/tools/shared/pack-evidence.d.ts +66 -0
- package/dist/commands/tools/shared/pack-evidence.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-evidence.js +132 -0
- package/dist/commands/tools/shared/pack-inventory.d.ts +1 -0
- package/dist/commands/tools/shared/pack-inventory.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-lifecycle-outcome.d.ts +44 -0
- package/dist/commands/tools/shared/pack-lifecycle-outcome.d.ts.map +1 -0
- package/dist/commands/tools/shared/pack-lifecycle-outcome.js +91 -0
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +74 -4
- package/dist/commands/tools/update/update-tools.d.ts +5 -0
- package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
- package/dist/commands/tools/update/update-tools.js +64 -2
- package/dist/config/oat-config.d.ts +5 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +17 -5
- package/dist/config/user-sync-config.d.ts +1 -0
- package/dist/config/user-sync-config.d.ts.map +1 -1
- package/dist/config/user-sync-config.js +8 -0
- package/dist/drift/detector.d.ts +2 -2
- package/dist/drift/detector.d.ts.map +1 -1
- package/dist/drift/detector.js +18 -0
- package/dist/drift/strays.d.ts.map +1 -1
- package/dist/drift/strays.js +5 -0
- package/dist/engine/collection-sync.d.ts +14 -0
- package/dist/engine/collection-sync.d.ts.map +1 -0
- package/dist/engine/collection-sync.js +282 -0
- package/dist/engine/compute-plan.d.ts +8 -1
- package/dist/engine/compute-plan.d.ts.map +1 -1
- package/dist/engine/compute-plan.js +303 -12
- package/dist/engine/engine.types.d.ts +61 -0
- package/dist/engine/engine.types.d.ts.map +1 -1
- package/dist/engine/execute-plan.d.ts +22 -2
- package/dist/engine/execute-plan.d.ts.map +1 -1
- package/dist/engine/execute-plan.js +459 -27
- package/dist/engine/index.d.ts +1 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +1 -1
- package/dist/engine/provider-path-safety.d.ts +1 -0
- package/dist/engine/provider-path-safety.d.ts.map +1 -1
- package/dist/engine/provider-path-safety.js +15 -0
- package/dist/engine/scanner.d.ts +9 -2
- package/dist/engine/scanner.d.ts.map +1 -1
- package/dist/engine/scanner.js +58 -4
- package/dist/fs/io.d.ts +67 -0
- package/dist/fs/io.d.ts.map +1 -1
- package/dist/fs/io.js +536 -3
- package/dist/manifest/index.d.ts +2 -2
- package/dist/manifest/index.d.ts.map +1 -1
- package/dist/manifest/index.js +1 -1
- package/dist/manifest/manager.d.ts +2 -2
- package/dist/manifest/manager.d.ts.map +1 -1
- package/dist/manifest/manager.js +20 -3
- package/dist/manifest/manifest.types.d.ts +704 -13
- package/dist/manifest/manifest.types.d.ts.map +1 -1
- package/dist/manifest/manifest.types.js +131 -15
- package/dist/providers/codex/codec/sync-extension.d.ts +1 -1
- package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
- package/dist/providers/codex/codec/sync-extension.js +48 -17
- package/dist/providers/cursor/codec/sync-extension.d.ts +1 -1
- package/dist/providers/cursor/codec/sync-extension.d.ts.map +1 -1
- package/dist/providers/cursor/codec/sync-extension.js +52 -23
- package/dist/providers/identity/absolute-paths.d.ts +68 -0
- package/dist/providers/identity/absolute-paths.d.ts.map +1 -0
- package/dist/providers/identity/absolute-paths.js +144 -0
- package/dist/providers/identity/claude-runtime-observation.d.ts +105 -0
- package/dist/providers/identity/claude-runtime-observation.d.ts.map +1 -0
- package/dist/providers/identity/claude-runtime-observation.fixtures.d.ts +40 -0
- package/dist/providers/identity/claude-runtime-observation.fixtures.d.ts.map +1 -0
- package/dist/providers/identity/claude-runtime-observation.fixtures.js +146 -0
- package/dist/providers/identity/claude-runtime-observation.js +229 -0
- package/dist/providers/identity/codex-runtime-observation.d.ts +75 -0
- package/dist/providers/identity/codex-runtime-observation.d.ts.map +1 -0
- package/dist/providers/identity/codex-runtime-observation.fixtures.d.ts +37 -0
- package/dist/providers/identity/codex-runtime-observation.fixtures.d.ts.map +1 -0
- package/dist/providers/identity/codex-runtime-observation.fixtures.js +539 -0
- package/dist/providers/identity/codex-runtime-observation.js +255 -0
- package/dist/providers/identity/generic-dispatch-record.d.ts +313 -0
- package/dist/providers/identity/generic-dispatch-record.d.ts.map +1 -0
- package/dist/providers/identity/generic-dispatch-record.js +539 -0
- package/dist/providers/identity/oat-dispatch-record.d.ts +1964 -0
- package/dist/providers/identity/oat-dispatch-record.d.ts.map +1 -0
- package/dist/providers/identity/oat-dispatch-record.js +691 -0
- package/dist/providers/identity/runtime-observation.d.ts +100 -0
- package/dist/providers/identity/runtime-observation.d.ts.map +1 -0
- package/dist/providers/identity/runtime-observation.js +169 -0
- package/dist/providers/shared/index.d.ts +2 -0
- package/dist/providers/shared/index.d.ts.map +1 -1
- package/dist/providers/shared/index.js +1 -0
- package/dist/providers/shared/materialization-extension.d.ts +12 -0
- package/dist/providers/shared/materialization-extension.d.ts.map +1 -1
- package/dist/providers/shared/registry.d.ts +69 -0
- package/dist/providers/shared/registry.d.ts.map +1 -0
- package/dist/providers/shared/registry.js +252 -0
- package/dist/providers/shared/restart-adviser.d.ts +26 -0
- package/dist/providers/shared/restart-adviser.d.ts.map +1 -0
- package/dist/providers/shared/restart-adviser.js +96 -0
- package/dist/shared/types.d.ts +4 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -17,35 +17,25 @@ import { DEFAULT_SYNC_CONFIG, loadSyncConfig, saveSyncConfig, } from '../../conf
|
|
|
17
17
|
import { detectDefaultBranch, readOatConfig, resolveLocalPaths, writeOatConfig, } from '../../config/oat-config.js';
|
|
18
18
|
import { resolveUserSyncConfig } from '../../config/user-sync-config.js';
|
|
19
19
|
import { detectStrays, filterKnownStrays, } from '../../drift/index.js';
|
|
20
|
-
import { configureLocalHooksPath, getHookInstallInfo, installHook, isHookInstalled, scanBundledManagedAgents, scanCanonical, uninstallHook, } from '../../engine/index.js';
|
|
20
|
+
import { configureLocalHooksPath, getHookInstallInfo, installHook, isHookInstalled, mergeUserScopeMaterializationEntries, scanBundledManagedAgents, scanCanonical, uninstallHook, } from '../../engine/index.js';
|
|
21
21
|
import { dirExists, fileExists } from '../../fs/io.js';
|
|
22
22
|
import { resolveProjectRoot, resolveScopeRoot } from '../../fs/paths.js';
|
|
23
23
|
import { normalizeToPosixPath } from '../../fs/paths.js';
|
|
24
24
|
import { createEmptyManifest, loadManifest, saveManifest, } from '../../manifest/manager.js';
|
|
25
|
-
import { claudeAdapter } from '../../providers/claude/index.js';
|
|
26
|
-
import { codexAdapter } from '../../providers/codex/index.js';
|
|
27
25
|
import { applyCodexProjectExtensionPlan, computeCodexProjectExtensionPlan, } from '../../providers/codex/codec/sync-extension.js';
|
|
28
|
-
import { copilotAdapter } from '../../providers/copilot/index.js';
|
|
29
|
-
import { cursorAdapter } from '../../providers/cursor/index.js';
|
|
30
26
|
import { applyCursorProjectExtensionPlan, computeCursorProjectExtensionPlan, } from '../../providers/cursor/codec/sync-extension.js';
|
|
31
|
-
import {
|
|
32
|
-
import { getActiveAdapters, getConfigAwareAdapters, } from '../../providers/shared/index.js';
|
|
27
|
+
import { getActiveAdapters, getConfigAwareAdapters, getProviderRegistrations, recomputeProviderScopeContext, resolveProviderScopeContext, } from '../../providers/shared/index.js';
|
|
33
28
|
import { getAdoptionSources } from '../../providers/shared/adapter.utils.js';
|
|
34
29
|
import { Command } from 'commander';
|
|
35
30
|
import { detectExistingDocs, } from './detect-docs.js';
|
|
36
31
|
import { createInitToolsCommand, runInitToolsWithDefaults, } from './tools/index.js';
|
|
32
|
+
import { commandProjectGuidanceChoice, withProjectGuidanceOptions, } from './tools/project-guidance.js';
|
|
37
33
|
const ADOPT_REMEDIATION = 'Run "oat init" interactively to adopt stray entries.';
|
|
38
34
|
const HOOK_PROMPT = 'Install optional pre-commit hook for drift warnings?';
|
|
39
35
|
const HOOK_CONFIGURE_PROMPT = (hooksPath) => `Configure Git hooks to use ${hooksPath} before installing the OAT hook?`;
|
|
40
36
|
const HOOK_GUIDANCE = 'Run "oat init --hook" to install optional pre-commit hook.';
|
|
41
37
|
function getDefaultAdapters() {
|
|
42
|
-
return
|
|
43
|
-
claudeAdapter,
|
|
44
|
-
cursorAdapter,
|
|
45
|
-
codexAdapter,
|
|
46
|
-
copilotAdapter,
|
|
47
|
-
geminiAdapter,
|
|
48
|
-
];
|
|
38
|
+
return getProviderRegistrations().map(({ adapter }) => adapter);
|
|
49
39
|
}
|
|
50
40
|
async function ensureCanonicalDirectories(scopeRoot, scope) {
|
|
51
41
|
await mkdir(join(scopeRoot, '.agents', 'skills'), { recursive: true });
|
|
@@ -60,7 +50,7 @@ async function collectStraysDefault(scopeRoot, scope, manifest, canonicalEntries
|
|
|
60
50
|
const candidates = [];
|
|
61
51
|
const hasMaterializationAdapter = adaptersToScan.some((adapter) => adapter.name === 'codex' || adapter.name === 'cursor');
|
|
62
52
|
const materializationCanonicalEntries = scope === 'user' && hasMaterializationAdapter
|
|
63
|
-
?
|
|
53
|
+
? mergeUserScopeMaterializationEntries(canonicalEntries, await scanBundledManagedAgents())
|
|
64
54
|
: canonicalEntries;
|
|
65
55
|
const codexExtensionPlan = adaptersToScan.some((adapter) => adapter.name === 'codex')
|
|
66
56
|
? await computeCodexProjectExtensionPlan(scopeRoot, materializationCanonicalEntries, undefined, { userConfigDir })
|
|
@@ -165,6 +155,7 @@ function createDependencies() {
|
|
|
165
155
|
resolveUserSyncConfig,
|
|
166
156
|
saveSyncConfig,
|
|
167
157
|
getConfigAwareAdapters,
|
|
158
|
+
resolveProviderScopeContext,
|
|
168
159
|
applyOatCoreGitignore,
|
|
169
160
|
applyOatCoreGitattributes,
|
|
170
161
|
dirExists,
|
|
@@ -335,13 +326,26 @@ async function promptForManualDocsConfig(projectRoot, context, dependencies, pro
|
|
|
335
326
|
context.logger.info('Docs root must be repo-relative or inside the repository.');
|
|
336
327
|
}
|
|
337
328
|
}
|
|
338
|
-
async function runGuidedSetupImpl(context, dependencies) {
|
|
329
|
+
async function runGuidedSetupImpl(context, dependencies, explicitProjectGuidance) {
|
|
339
330
|
const projectRoot = await dependencies.resolveScopeRoot('project', context);
|
|
340
331
|
const adapters = dependencies.getAdapters();
|
|
341
332
|
const configPath = join(projectRoot, '.oat', 'sync', 'config.json');
|
|
342
333
|
const syncConfig = await dependencies.loadSyncConfig(configPath);
|
|
343
|
-
const
|
|
344
|
-
|
|
334
|
+
const providerContext = dependencies.resolveProviderScopeContext
|
|
335
|
+
? await dependencies.resolveProviderScopeContext({
|
|
336
|
+
scope: 'project',
|
|
337
|
+
scopeRoot: projectRoot,
|
|
338
|
+
config: syncConfig,
|
|
339
|
+
})
|
|
340
|
+
: undefined;
|
|
341
|
+
const resolution = providerContext
|
|
342
|
+
? undefined
|
|
343
|
+
: await dependencies.getConfigAwareAdapters(adapters, projectRoot, syncConfig);
|
|
344
|
+
const activeProviderNames = providerContext
|
|
345
|
+
? providerContext.registrations
|
|
346
|
+
.filter(({ adapter }) => providerContext.activeProviders.includes(adapter.name))
|
|
347
|
+
.map(({ adapter }) => adapter.displayName)
|
|
348
|
+
: resolution.activeAdapters.map((adapter) => adapter.displayName);
|
|
345
349
|
context.logger.info('[1/5] Tool packs…');
|
|
346
350
|
// Defer the per-pack scope gate to the tools flow: `gate` asks the customize
|
|
347
351
|
// prompt after pack selection (and only when a user-eligible pack is
|
|
@@ -350,7 +354,9 @@ async function runGuidedSetupImpl(context, dependencies) {
|
|
|
350
354
|
? 'gate'
|
|
351
355
|
: 'defaults';
|
|
352
356
|
const guidedContext = { ...context, scopeSelection };
|
|
353
|
-
const installedPacks =
|
|
357
|
+
const installedPacks = explicitProjectGuidance === undefined
|
|
358
|
+
? await dependencies.runToolPacks(guidedContext)
|
|
359
|
+
: await dependencies.runToolPacks(guidedContext, explicitProjectGuidance);
|
|
354
360
|
const installedPackSet = new Set(installedPacks);
|
|
355
361
|
context.logger.info('[2/5] Local paths (gitignored artifacts)…');
|
|
356
362
|
const config = await dependencies.readOatConfig(projectRoot);
|
|
@@ -455,7 +461,7 @@ async function runGuidedSetupImpl(context, dependencies) {
|
|
|
455
461
|
context.logger.info(' - Run `oat local status` to verify gitignore state');
|
|
456
462
|
context.logger.info(' - Start a project: `oat-project-quick-start` or `oat-project-new`');
|
|
457
463
|
}
|
|
458
|
-
async function runInitCommand(context, dependencies, hookFlag, setupFlag) {
|
|
464
|
+
async function runInitCommand(context, dependencies, hookFlag, setupFlag, explicitProjectGuidance) {
|
|
459
465
|
const scopes = resolveConcreteScopes(context.scope);
|
|
460
466
|
let projectRoot = null;
|
|
461
467
|
let oatDirExistedBefore = true;
|
|
@@ -471,9 +477,23 @@ async function runInitCommand(context, dependencies, hookFlag, setupFlag) {
|
|
|
471
477
|
if (scope === 'project') {
|
|
472
478
|
projectRoot = scopeRoot;
|
|
473
479
|
oatDirExistedBefore = await dependencies.dirExists(join(scopeRoot, '.oat'));
|
|
474
|
-
|
|
480
|
+
let providerContext = dependencies.resolveProviderScopeContext
|
|
481
|
+
? await dependencies.resolveProviderScopeContext({
|
|
482
|
+
scope,
|
|
483
|
+
scopeRoot,
|
|
484
|
+
config: syncConfig,
|
|
485
|
+
})
|
|
486
|
+
: undefined;
|
|
487
|
+
const adapters = providerContext
|
|
488
|
+
? providerContext.registrations.map(({ adapter }) => adapter)
|
|
489
|
+
: dependencies.getAdapters();
|
|
475
490
|
let config = syncConfig;
|
|
476
|
-
let resolution =
|
|
491
|
+
let resolution = providerContext
|
|
492
|
+
? undefined
|
|
493
|
+
: await dependencies.getConfigAwareAdapters(adapters, scopeRoot, config);
|
|
494
|
+
let activeAdapters = providerContext
|
|
495
|
+
? adapters.filter(({ name }) => providerContext.activeProviders.includes(name))
|
|
496
|
+
: resolution.activeAdapters;
|
|
477
497
|
if (!context.interactive && !context.json) {
|
|
478
498
|
context.logger.info(PROVIDER_CONFIG_REMEDIATION);
|
|
479
499
|
}
|
|
@@ -483,7 +503,7 @@ async function runInitCommand(context, dependencies, hookFlag, setupFlag) {
|
|
|
483
503
|
value: adapter.name,
|
|
484
504
|
description: adapter.displayName,
|
|
485
505
|
checked: config.providers[adapter.name]?.enabled === true ||
|
|
486
|
-
|
|
506
|
+
activeAdapters.some((active) => active.name === adapter.name),
|
|
487
507
|
}));
|
|
488
508
|
const selectedProviders = await dependencies.selectProvidersWithAbort('Select supported project providers', providerChoices, { interactive: context.interactive });
|
|
489
509
|
if (selectedProviders !== null) {
|
|
@@ -501,9 +521,17 @@ async function runInitCommand(context, dependencies, hookFlag, setupFlag) {
|
|
|
501
521
|
});
|
|
502
522
|
syncConfig = config;
|
|
503
523
|
}
|
|
504
|
-
|
|
524
|
+
providerContext = providerContext
|
|
525
|
+
? recomputeProviderScopeContext(providerContext, config)
|
|
526
|
+
: undefined;
|
|
527
|
+
resolution = providerContext
|
|
528
|
+
? undefined
|
|
529
|
+
: await dependencies.getConfigAwareAdapters(adapters, scopeRoot, config);
|
|
530
|
+
activeAdapters = providerContext
|
|
531
|
+
? adapters.filter(({ name }) => providerContext.activeProviders.includes(name))
|
|
532
|
+
: resolution.activeAdapters;
|
|
505
533
|
}
|
|
506
|
-
activeAdaptersForStrays =
|
|
534
|
+
activeAdaptersForStrays = activeAdapters;
|
|
507
535
|
}
|
|
508
536
|
await dependencies.ensureCanonicalDirs(scopeRoot, scope);
|
|
509
537
|
if (scope === 'project') {
|
|
@@ -673,7 +701,12 @@ async function runInitCommand(context, dependencies, hookFlag, setupFlag) {
|
|
|
673
701
|
shouldRunSetup = await dependencies.confirmAction('Would you like to run guided setup?', { interactive: context.interactive });
|
|
674
702
|
}
|
|
675
703
|
if (shouldRunSetup) {
|
|
676
|
-
|
|
704
|
+
if (explicitProjectGuidance === undefined) {
|
|
705
|
+
await dependencies.runGuidedSetup(context, dependencies);
|
|
706
|
+
}
|
|
707
|
+
else {
|
|
708
|
+
await dependencies.runGuidedSetup(context, dependencies, explicitProjectGuidance);
|
|
709
|
+
}
|
|
677
710
|
}
|
|
678
711
|
}
|
|
679
712
|
}
|
|
@@ -682,7 +715,12 @@ export function createInitCommand(overrides = {}) {
|
|
|
682
715
|
...createDependencies(),
|
|
683
716
|
...overrides,
|
|
684
717
|
};
|
|
685
|
-
|
|
718
|
+
if (overrides.resolveProviderScopeContext === undefined &&
|
|
719
|
+
(overrides.getAdapters !== undefined ||
|
|
720
|
+
overrides.getConfigAwareAdapters !== undefined)) {
|
|
721
|
+
dependencies.resolveProviderScopeContext = undefined;
|
|
722
|
+
}
|
|
723
|
+
return withProjectGuidanceOptions(withScopeOption(new Command('init')))
|
|
686
724
|
.description('Initialize canonical directories, manifest, and tool packs')
|
|
687
725
|
.option('--hook', 'Install optional pre-commit hook')
|
|
688
726
|
.option('--no-hook', 'Skip optional pre-commit hook install')
|
|
@@ -691,6 +729,6 @@ export function createInitCommand(overrides = {}) {
|
|
|
691
729
|
.action(async (_options, command) => {
|
|
692
730
|
const options = readGlobalOptions(command);
|
|
693
731
|
const context = dependencies.buildCommandContext(options);
|
|
694
|
-
await runInitCommand(context, dependencies, options.hook, options.setup);
|
|
732
|
+
await runInitCommand(context, dependencies, options.hook, options.setup, commandProjectGuidanceChoice(command));
|
|
695
733
|
});
|
|
696
734
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type CommandContext, type GlobalOptions } from '../../../app/command-context.js';
|
|
2
|
-
import { type UpsertSectionResult } from '../../shared/agents-md.js';
|
|
2
|
+
import { type AgentsMdMutationOptions, type UpsertSectionResult } from '../../shared/agents-md.js';
|
|
3
3
|
import { type MultiSelectChoice, type PromptContext, type SelectChoice } from '../../shared/shared.prompts.js';
|
|
4
|
+
import type { AutoSyncResult } from '../../tools/shared/auto-sync.js';
|
|
4
5
|
import { type InventoryPackInput, type PackInventory } from '../../tools/shared/pack-inventory.js';
|
|
5
6
|
import { type PackLifecycleRequest, type PackLifecycleResult } from '../../tools/shared/pack-lifecycle.js';
|
|
6
7
|
import type { ScanToolsOptions } from '../../tools/shared/scan-tools.js';
|
|
@@ -12,12 +13,12 @@ import { type InstallBrainstormOptions, type InstallBrainstormResult } from './b
|
|
|
12
13
|
import { type InstallCoreOptions, type InstallCoreResult } from './core/install-core.js';
|
|
13
14
|
import { type InstallDocsOptions, type InstallDocsResult } from './docs/install-docs.js';
|
|
14
15
|
import { type InstallIdeasOptions, type InstallIdeasResult } from './ideas/install-ideas.js';
|
|
16
|
+
import { type PlanProjectGuidanceInput, planProjectGuidance } from './project-guidance.js';
|
|
15
17
|
import { type InstallProjectManagementOptions, type InstallProjectManagementResult } from './project-management/install-project-management.js';
|
|
16
18
|
import { type InstallResearchOptions, type InstallResearchResult } from './research/install-research.js';
|
|
17
19
|
import { type InstallUtilityOptions, type InstallUtilityResult } from './utility/install-utility.js';
|
|
18
20
|
import { type InstallWorkflowsOptions, type InstallWorkflowsResult } from './workflows/install-workflows.js';
|
|
19
21
|
type InstallScope = 'project' | 'user';
|
|
20
|
-
type PackInstallTarget = InstallScope | 'both';
|
|
21
22
|
export type ToolPack = 'core' | 'ideas' | 'docs' | 'workflows' | 'utility' | 'project-management' | 'research' | 'brainstorm';
|
|
22
23
|
export interface InitToolsDependencies {
|
|
23
24
|
buildCommandContext: (options: GlobalOptions) => CommandContext;
|
|
@@ -27,6 +28,8 @@ export interface InitToolsDependencies {
|
|
|
27
28
|
scanTools: (options: ScanToolsOptions) => Promise<ToolInfo[]>;
|
|
28
29
|
selectManyWithAbort: <T extends string>(message: string, choices: MultiSelectChoice<T>[], ctx: PromptContext) => Promise<T[] | null>;
|
|
29
30
|
selectWithAbort: <T extends string>(message: string, choices: SelectChoice<T>[], ctx: PromptContext) => Promise<T | null>;
|
|
31
|
+
confirmAction: PlanProjectGuidanceInput['confirmAction'];
|
|
32
|
+
planProjectGuidance: typeof planProjectGuidance;
|
|
30
33
|
installCore: (options: InstallCoreOptions) => Promise<InstallCoreResult>;
|
|
31
34
|
installDocs: (options: InstallDocsOptions) => Promise<InstallDocsResult>;
|
|
32
35
|
installIdeas: (options: InstallIdeasOptions) => Promise<InstallIdeasResult>;
|
|
@@ -50,17 +53,18 @@ export interface InitToolsDependencies {
|
|
|
50
53
|
readOatConfig: (repoRoot: string) => Promise<OatConfig>;
|
|
51
54
|
writeOatConfig: (repoRoot: string, config: OatConfig) => Promise<void>;
|
|
52
55
|
resolveLocalPaths: (config: OatConfig) => string[];
|
|
53
|
-
upsertAgentsMdSection: (repoRoot: string, key: string, body: string) => Promise<UpsertSectionResult>;
|
|
54
|
-
removeAgentsMdSection: (repoRoot: string, key: string) => Promise<boolean>;
|
|
56
|
+
upsertAgentsMdSection: (repoRoot: string, key: string, body: string, options?: AgentsMdMutationOptions) => Promise<UpsertSectionResult>;
|
|
55
57
|
reconcilePacks?: (requests: readonly PackLifecycleRequest[], options?: {
|
|
56
58
|
dryRun?: boolean;
|
|
57
59
|
}) => Promise<PackLifecycleResult[]>;
|
|
58
60
|
inventoryPack?: (input: InventoryPackInput) => Promise<PackInventory>;
|
|
61
|
+
syncAfterInstall?: (scopes: ConcreteScope[], context: CommandContext, installedCanonicalPaths: string[]) => Promise<AutoSyncResult>;
|
|
59
62
|
}
|
|
60
63
|
interface InitToolsRunMetadata {
|
|
61
64
|
affectedScopes: ConcreteScope[];
|
|
62
65
|
appliedScopes: ConcreteScope[];
|
|
63
66
|
adoptedPacks: ToolPack[];
|
|
67
|
+
syncHandled: boolean;
|
|
64
68
|
}
|
|
65
69
|
interface PackScopeChange {
|
|
66
70
|
pack: ToolPack;
|
|
@@ -73,13 +77,9 @@ interface PackScopeChange {
|
|
|
73
77
|
*/
|
|
74
78
|
export declare function formatReconcileSummary(adds: PackScopeChange[], removes: PackScopeChange[]): string;
|
|
75
79
|
export declare function consumeInitToolsRunMetadata(): InitToolsRunMetadata | null;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
export declare function buildToolPacksSectionBody(packs: PackScopeInfo[]): string;
|
|
81
|
-
export declare function runInitTools(context: CommandContext, dependencies: InitToolsDependencies): Promise<ToolPack[]>;
|
|
82
|
-
export declare function runInitToolsWithDefaults(context: CommandContext): Promise<ToolPack[]>;
|
|
80
|
+
export declare function wasInstallSyncHandled(command: Command): boolean;
|
|
81
|
+
export { buildToolPacksSectionBody } from './project-guidance.js';
|
|
82
|
+
export declare function runInitTools(context: CommandContext, dependencies: InitToolsDependencies, explicitProjectGuidance?: boolean): Promise<ToolPack[]>;
|
|
83
|
+
export declare function runInitToolsWithDefaults(context: CommandContext, explicitProjectGuidance?: boolean): Promise<ToolPack[]>;
|
|
83
84
|
export declare function createInitToolsCommand(overrides?: Partial<InitToolsDependencies>): Command;
|
|
84
|
-
export {};
|
|
85
85
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EACL,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"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"}
|