@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
|
@@ -1,16 +1,11 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
2
|
import { buildCommandContext } from '../../../app/command-context.js';
|
|
3
|
-
import { withScopeOption } from '../../shared/scope-option.js';
|
|
4
3
|
import { readGlobalOptions } from '../../shared/shared.utils.js';
|
|
5
4
|
import { DEFAULT_SYNC_CONFIG, loadSyncConfig, saveSyncConfig, } from '../../../config/index.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { cursorAdapter } from '../../../providers/cursor/index.js';
|
|
11
|
-
import { geminiAdapter } from '../../../providers/gemini/index.js';
|
|
12
|
-
import { Command } from 'commander';
|
|
13
|
-
const PROJECT_SCOPE_ONLY_MESSAGE = 'oat providers set only supports project scope. Remove --scope or pass --scope project.';
|
|
5
|
+
import { getUserSyncConfigPath, resolveUserSyncConfig, updateUserSyncConfig, } from '../../../config/user-sync-config.js';
|
|
6
|
+
import { resolveProjectRoot, resolveScopeRoot } from '../../../fs/paths.js';
|
|
7
|
+
import { getProviderRegistrations, resolveProviderScopeContext, } from '../../../providers/shared/index.js';
|
|
8
|
+
import { Command, Option } from 'commander';
|
|
14
9
|
function parseCsvList(raw) {
|
|
15
10
|
if (!raw) {
|
|
16
11
|
return [];
|
|
@@ -31,21 +26,18 @@ function createDependencies() {
|
|
|
31
26
|
if (scope === 'project') {
|
|
32
27
|
return resolveProjectRoot(context.cwd);
|
|
33
28
|
}
|
|
34
|
-
|
|
29
|
+
return resolveScopeRoot(scope, context.cwd, context.home);
|
|
35
30
|
},
|
|
36
31
|
getAdapters() {
|
|
37
|
-
return
|
|
38
|
-
claudeAdapter,
|
|
39
|
-
cursorAdapter,
|
|
40
|
-
codexAdapter,
|
|
41
|
-
copilotAdapter,
|
|
42
|
-
geminiAdapter,
|
|
43
|
-
];
|
|
32
|
+
return getProviderRegistrations().map(({ adapter }) => adapter);
|
|
44
33
|
},
|
|
45
34
|
async loadSyncConfig(configPath) {
|
|
46
35
|
return loadSyncConfig(configPath, DEFAULT_SYNC_CONFIG);
|
|
47
36
|
},
|
|
48
37
|
saveSyncConfig,
|
|
38
|
+
resolveProviderScopeContext,
|
|
39
|
+
resolveUserSyncConfig,
|
|
40
|
+
updateUserSyncConfig,
|
|
49
41
|
};
|
|
50
42
|
}
|
|
51
43
|
function buildUpdatedConfig(config, enabledProviders, disabledProviders) {
|
|
@@ -71,8 +63,8 @@ function buildUpdatedConfig(config, enabledProviders, disabledProviders) {
|
|
|
71
63
|
}
|
|
72
64
|
async function runProvidersSetCommand(context, options, dependencies) {
|
|
73
65
|
try {
|
|
74
|
-
if (context.scope
|
|
75
|
-
throw new Error(
|
|
66
|
+
if (context.scope === 'all') {
|
|
67
|
+
throw new Error('oat providers set requires one concrete scope. Pass --scope project or --scope user.');
|
|
76
68
|
}
|
|
77
69
|
const enabledProviders = parseCsvList(options.enabled);
|
|
78
70
|
const disabledProviders = parseCsvList(options.disabled);
|
|
@@ -83,22 +75,36 @@ async function runProvidersSetCommand(context, options, dependencies) {
|
|
|
83
75
|
if (overlap.length > 0) {
|
|
84
76
|
throw new Error(`Providers cannot be both enabled and disabled: ${overlap.join(', ')}`);
|
|
85
77
|
}
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
78
|
+
const scope = context.scope;
|
|
79
|
+
const scopeRoot = await dependencies.resolveScopeRoot(scope, context);
|
|
80
|
+
const userConfigDir = join(scopeRoot, '.oat');
|
|
81
|
+
const configPath = scope === 'user'
|
|
82
|
+
? getUserSyncConfigPath(userConfigDir)
|
|
83
|
+
: join(scopeRoot, '.oat', 'sync', 'config.json');
|
|
84
|
+
const config = scope === 'user' && dependencies.resolveUserSyncConfig
|
|
85
|
+
? await dependencies.resolveUserSyncConfig(userConfigDir)
|
|
86
|
+
: await dependencies.loadSyncConfig(configPath);
|
|
87
|
+
const providerContext = dependencies.resolveProviderScopeContext
|
|
88
|
+
? await dependencies.resolveProviderScopeContext({
|
|
89
|
+
scope,
|
|
90
|
+
scopeRoot,
|
|
91
|
+
config,
|
|
92
|
+
})
|
|
93
|
+
: undefined;
|
|
94
|
+
const knownProviders = providerContext
|
|
95
|
+
? providerContext.registrations.map(({ adapter }) => adapter.name)
|
|
96
|
+
: dependencies.getAdapters().map((adapter) => adapter.name);
|
|
89
97
|
const unknown = [...enabledProviders, ...disabledProviders].filter((provider) => !knownProviders.includes(provider));
|
|
90
98
|
if (unknown.length > 0) {
|
|
91
99
|
throw new Error(`Unknown providers: ${[...new Set(unknown)].join(', ')}. Known providers: ${knownProviders.join(', ')}`);
|
|
92
100
|
}
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const updated = buildUpdatedConfig(config, enabledProviders, disabledProviders);
|
|
97
|
-
const saved = await dependencies.saveSyncConfig(configPath, updated);
|
|
101
|
+
const saved = scope === 'user' && dependencies.updateUserSyncConfig
|
|
102
|
+
? await dependencies.updateUserSyncConfig(userConfigDir, (current) => buildUpdatedConfig(current, enabledProviders, disabledProviders))
|
|
103
|
+
: await dependencies.saveSyncConfig(configPath, buildUpdatedConfig(config, enabledProviders, disabledProviders));
|
|
98
104
|
if (context.json) {
|
|
99
105
|
context.logger.json({
|
|
100
106
|
status: 'ok',
|
|
101
|
-
scope
|
|
107
|
+
scope,
|
|
102
108
|
configPath,
|
|
103
109
|
enabled: enabledProviders,
|
|
104
110
|
disabled: disabledProviders,
|
|
@@ -128,11 +134,15 @@ export function createProvidersSetCommand(overrides = {}) {
|
|
|
128
134
|
...createDependencies(),
|
|
129
135
|
...overrides,
|
|
130
136
|
};
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
137
|
+
if (overrides.resolveProviderScopeContext === undefined &&
|
|
138
|
+
overrides.getAdapters !== undefined) {
|
|
139
|
+
dependencies.resolveProviderScopeContext = undefined;
|
|
140
|
+
}
|
|
141
|
+
return new Command('set')
|
|
142
|
+
.description("Enable or disable providers in the selected scope's sync config (project by default)")
|
|
143
|
+
.addOption(new Option('--scope <scope>', 'Sync config scope: project or user')
|
|
144
|
+
.choices(['project', 'user'])
|
|
145
|
+
.default('project'))
|
|
136
146
|
.option('--enabled <providers>', 'Comma-separated providers to enable')
|
|
137
147
|
.option('--disabled <providers>', 'Comma-separated providers to disable')
|
|
138
148
|
.action(async (options, command) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-skill.d.ts","sourceRoot":"","sources":["../../../../src/commands/remove/skill/remove-skill.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EACL,iBAAiB,EAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"remove-skill.d.ts","sourceRoot":"","sources":["../../../../src/commands/remove/skill/remove-skill.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EACL,iBAAiB,EAElB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAGvB,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,aAAa,EAInB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,KAAK,yBAAyB,EAG9B,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+BpC,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,KAC1C,cAAc,CAAC;IACpB,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E,cAAc,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5D,WAAW,EAAE,MAAM,eAAe,EAAE,CAAC;IACrC,sBAAsB,EAAE,CACtB,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,KACf,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACxC,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,WAAW,EAAE,CAAC;IAC3E,kBAAkB,EAAE,CAClB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,KAAK,KACT,cAAc,EAAE,CAAC;IACtB,iCAAiC,EAAE,CACjC,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,wBAAgB,oCAAoC,IAAI,uBAAuB,CA0C9E;AA2OD,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,uBAAuB,GACpC,OAAO,CAAC,OAAO,CAAC,CAsDlB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC/C,OAAO,CAwCT"}
|
|
@@ -89,6 +89,12 @@ async function buildScopePlan(scope, scopeRoot, skillName, dependencies) {
|
|
|
89
89
|
const managedProviderViews = [];
|
|
90
90
|
const unmanagedProviderViews = [];
|
|
91
91
|
const manifestProvidersToRemove = new Set();
|
|
92
|
+
for (const entry of manifest.entries) {
|
|
93
|
+
if (entry.canonicalPath === canonicalRelativePath &&
|
|
94
|
+
entry.strategy === 'collection') {
|
|
95
|
+
manifestProvidersToRemove.add(entry.provider);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
92
98
|
for (const adapter of activeAdapters) {
|
|
93
99
|
const syncMappings = dependencies
|
|
94
100
|
.getSyncMappings(adapter, scope)
|
|
@@ -101,6 +107,11 @@ async function buildScopePlan(scope, scopeRoot, skillName, dependencies) {
|
|
|
101
107
|
const providerPathExists = await dependencies.pathExists(absolutePath);
|
|
102
108
|
if (hasManifestEntry) {
|
|
103
109
|
manifestProvidersToRemove.add(adapter.name);
|
|
110
|
+
const manifestEntry = manifest.entries.find((entry) => entry.canonicalPath === canonicalRelativePath &&
|
|
111
|
+
entry.provider === adapter.name);
|
|
112
|
+
if (manifestEntry?.strategy === 'collection') {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
104
115
|
managedProviderViews.push({
|
|
105
116
|
provider: adapter.name,
|
|
106
117
|
absolutePath,
|
|
@@ -1,18 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
action: 'created' | 'updated' | 'no-change';
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* Insert or replace a managed section in AGENTS.md.
|
|
6
|
-
*
|
|
7
|
-
* - If AGENTS.md doesn't exist, creates it with the section.
|
|
8
|
-
* - If the section markers exist, replaces the content between them.
|
|
9
|
-
* - If AGENTS.md exists but the section markers don't, appends.
|
|
10
|
-
*/
|
|
11
|
-
export declare function upsertAgentsMdSection(repoRoot: string, key: string, body: string): Promise<UpsertSectionResult>;
|
|
1
|
+
import { lstat, readFile, readlink, realpath, writeFile } from 'node:fs/promises';
|
|
12
2
|
/**
|
|
13
|
-
*
|
|
3
|
+
* Plans repository AGENTS.md guidance without replacing existing paths.
|
|
14
4
|
*
|
|
15
|
-
*
|
|
5
|
+
* An absent root file may be created with one exclusive write. Existing files
|
|
6
|
+
* and contained symlinks are read only: matching content returns no-change and
|
|
7
|
+
* every required change is returned as a copy-pasteable manual patch.
|
|
16
8
|
*/
|
|
17
|
-
export
|
|
9
|
+
export interface AgentsMdFileSystem {
|
|
10
|
+
lstat: typeof lstat;
|
|
11
|
+
readFile: typeof readFile;
|
|
12
|
+
readlink: typeof readlink;
|
|
13
|
+
realpath: typeof realpath;
|
|
14
|
+
writeFile: typeof writeFile;
|
|
15
|
+
}
|
|
16
|
+
export interface AgentsMdMutationOptions {
|
|
17
|
+
fileSystem?: AgentsMdFileSystem;
|
|
18
|
+
removeSectionKeys?: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
export interface AgentsMdManualPatch {
|
|
21
|
+
target: string;
|
|
22
|
+
managedBlock: string;
|
|
23
|
+
legacyBlockAction: 'preserve' | 'remove-manually';
|
|
24
|
+
instructions: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
export interface AgentsMdBlocked {
|
|
27
|
+
code: 'blocked';
|
|
28
|
+
target: string;
|
|
29
|
+
reason: string;
|
|
30
|
+
action: string;
|
|
31
|
+
}
|
|
32
|
+
export interface UpsertSectionResult {
|
|
33
|
+
action: 'created' | 'no-change' | 'manual-required' | 'blocked';
|
|
34
|
+
manualPatch?: AgentsMdManualPatch;
|
|
35
|
+
blocked?: AgentsMdBlocked;
|
|
36
|
+
}
|
|
37
|
+
export interface AgentsMdSectionInput {
|
|
38
|
+
key: string;
|
|
39
|
+
body: string;
|
|
40
|
+
}
|
|
41
|
+
export declare function formatAgentsMdMutationFailure(error: unknown): string;
|
|
42
|
+
export declare function formatAgentsMdGuidanceResult(result: UpsertSectionResult): readonly string[];
|
|
43
|
+
export declare function upsertAgentsMdSections(repoRoot: string, sections: readonly AgentsMdSectionInput[], options?: Pick<AgentsMdMutationOptions, 'fileSystem'>): Promise<Record<string, UpsertSectionResult>>;
|
|
44
|
+
export declare function upsertAgentsMdSection(repoRoot: string, key: string, body: string, options?: AgentsMdMutationOptions): Promise<UpsertSectionResult>;
|
|
45
|
+
export declare function removeAgentsMdSection(repoRoot: string, key: string, options?: Pick<AgentsMdMutationOptions, 'fileSystem'>): Promise<boolean | 'manual-required' | 'blocked'>;
|
|
18
46
|
//# sourceMappingURL=agents-md.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/agents-md.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../../src/commands/shared/agents-md.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACV,MAAM,kBAAkB,CAAC;AAG1B;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,QAAQ,EAAE,OAAO,QAAQ,CAAC;IAC1B,SAAS,EAAE,OAAO,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAgCD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,UAAU,GAAG,iBAAiB,CAAC;IAClD,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAChE,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAmTD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGpE;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,GAC1B,SAAS,MAAM,EAAE,CAoBnB;AA4ID,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,SAAS,oBAAoB,EAAE,EACzC,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAM,GACxD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAS9C;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CAS9B;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAM,GACxD,OAAO,CAAC,OAAO,GAAG,iBAAiB,GAAG,SAAS,CAAC,CAYlD"}
|