agent-switchboard 0.3.11 → 0.4.1
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/dist/agents/claude-code.d.ts +2 -0
- package/dist/agents/claude-code.js +5 -5
- package/dist/agents/claude-code.js.map +1 -1
- package/dist/agents/codex.d.ts +6 -0
- package/dist/agents/codex.js +65 -2
- package/dist/agents/codex.js.map +1 -1
- package/dist/agents/cursor.d.ts +2 -0
- package/dist/agents/cursor.js +5 -3
- package/dist/agents/cursor.js.map +1 -1
- package/dist/agents/gemini.d.ts +2 -0
- package/dist/agents/gemini.js +23 -3
- package/dist/agents/gemini.js.map +1 -1
- package/dist/agents/json-utils.d.ts +5 -0
- package/dist/agents/json-utils.js +21 -0
- package/dist/agents/json-utils.js.map +1 -1
- package/dist/agents/opencode.d.ts +2 -0
- package/dist/agents/opencode.js +14 -6
- package/dist/agents/opencode.js.map +1 -1
- package/dist/agents/trae.d.ts +2 -0
- package/dist/agents/trae.js +5 -3
- package/dist/agents/trae.js.map +1 -1
- package/dist/commands/distribution.d.ts +2 -2
- package/dist/commands/distribution.js +4 -1
- package/dist/commands/distribution.js.map +1 -1
- package/dist/config/schemas.d.ts +683 -0
- package/dist/config/schemas.js +33 -0
- package/dist/config/schemas.js.map +1 -1
- package/dist/library/distribute-bundle.d.ts +13 -1
- package/dist/library/distribute-bundle.js +117 -36
- package/dist/library/distribute-bundle.js.map +1 -1
- package/dist/library/distribute.d.ts +16 -1
- package/dist/library/distribute.js +107 -34
- package/dist/library/distribute.js.map +1 -1
- package/dist/manifest/store.d.ts +53 -0
- package/dist/manifest/store.js +183 -0
- package/dist/manifest/store.js.map +1 -0
- package/dist/manifest/types.d.ts +52 -0
- package/dist/manifest/types.js +9 -0
- package/dist/manifest/types.js.map +1 -0
- package/dist/mcp/distribution.d.ts +5 -0
- package/dist/mcp/distribution.js +34 -1
- package/dist/mcp/distribution.js.map +1 -1
- package/dist/rules/block-merge.d.ts +24 -0
- package/dist/rules/block-merge.js +68 -0
- package/dist/rules/block-merge.js.map +1 -0
- package/dist/rules/distribution.d.ts +7 -0
- package/dist/rules/distribution.js +94 -8
- package/dist/rules/distribution.js.map +1 -1
- package/dist/skills/distribution.d.ts +5 -1
- package/dist/skills/distribution.js +9 -0
- package/dist/skills/distribution.js.map +1 -1
- package/dist/subagents/distribution.d.ts +2 -2
- package/dist/subagents/distribution.js +4 -1
- package/dist/subagents/distribution.js.map +1 -1
- package/dist/sync/command.js +58 -14
- package/dist/sync/command.js.map +1 -1
- package/dist/targets/builtin/claude-code.js +3 -1
- package/dist/targets/builtin/claude-code.js.map +1 -1
- package/dist/targets/builtin/codex.js +3 -1
- package/dist/targets/builtin/codex.js.map +1 -1
- package/dist/targets/builtin/cursor.js +3 -1
- package/dist/targets/builtin/cursor.js.map +1 -1
- package/dist/targets/builtin/gemini.js +1 -1
- package/dist/targets/builtin/gemini.js.map +1 -1
- package/dist/targets/builtin/opencode.js +1 -1
- package/dist/targets/builtin/opencode.js.map +1 -1
- package/dist/targets/builtin/trae.js +3 -1
- package/dist/targets/builtin/trae.js.map +1 -1
- package/dist/targets/types.d.ts +8 -1
- package/dist/targets/types.js.map +1 -1
- package/dist/util/cli.d.ts +1 -1
- package/package.json +1 -1
package/dist/config/schemas.js
CHANGED
|
@@ -121,15 +121,48 @@ export const rulesSectionSchema = rulesSectionBaseSchema
|
|
|
121
121
|
* Controls how skills/commands/agents are distributed to application targets.
|
|
122
122
|
* - use_agents_dir: When true, skills are distributed to 2 targets (claude-code + agents).
|
|
123
123
|
* When false (default), skills use the legacy 4-target mode for backward compatibility.
|
|
124
|
+
* - project: Controls project-level distribution behavior.
|
|
125
|
+
* - mode: "managed" (default) = only manage ASB-owned content, preserve project-native.
|
|
126
|
+
* "exclusive" = ASB owns entire target area (current global behavior).
|
|
127
|
+
* "none" = skip project distribution.
|
|
128
|
+
* - collision: What to do when target path exists but isn't ASB-owned.
|
|
129
|
+
* - drift: What to do when ASB-owned content was manually edited.
|
|
130
|
+
* - rules.placement: Where to insert ASB rules block in shared files.
|
|
124
131
|
*/
|
|
132
|
+
const projectRulesDistributionBaseSchema = z
|
|
133
|
+
.object({
|
|
134
|
+
placement: z.enum(['prepend', 'append']).optional(),
|
|
135
|
+
})
|
|
136
|
+
.passthrough();
|
|
137
|
+
const projectDistributionBaseSchema = z
|
|
138
|
+
.object({
|
|
139
|
+
mode: z.enum(['managed', 'exclusive', 'none']).optional(),
|
|
140
|
+
collision: z.enum(['warn-skip', 'error', 'takeover']).optional(),
|
|
141
|
+
rules: projectRulesDistributionBaseSchema.optional(),
|
|
142
|
+
})
|
|
143
|
+
.passthrough();
|
|
144
|
+
const projectDistributionFullSchema = projectDistributionBaseSchema
|
|
145
|
+
.extend({
|
|
146
|
+
mode: z.enum(['managed', 'exclusive', 'none']).default('managed'),
|
|
147
|
+
collision: z.enum(['warn-skip', 'error', 'takeover']).default('warn-skip'),
|
|
148
|
+
rules: projectRulesDistributionBaseSchema
|
|
149
|
+
.extend({
|
|
150
|
+
placement: z.enum(['prepend', 'append']).default('prepend'),
|
|
151
|
+
})
|
|
152
|
+
.passthrough()
|
|
153
|
+
.default({ placement: 'prepend' }),
|
|
154
|
+
})
|
|
155
|
+
.passthrough();
|
|
125
156
|
const distributionSectionBaseSchema = z
|
|
126
157
|
.object({
|
|
127
158
|
use_agents_dir: z.boolean().optional(),
|
|
159
|
+
project: projectDistributionBaseSchema.optional(),
|
|
128
160
|
})
|
|
129
161
|
.passthrough();
|
|
130
162
|
export const distributionSectionSchema = distributionSectionBaseSchema
|
|
131
163
|
.extend({
|
|
132
164
|
use_agents_dir: z.boolean().default(false),
|
|
165
|
+
project: projectDistributionFullSchema.default({}),
|
|
133
166
|
})
|
|
134
167
|
.passthrough();
|
|
135
168
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/config/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ConfigScope } from '../config/scope.js';
|
|
2
|
+
import type { ProjectDistributionManifest } from '../manifest/types.js';
|
|
3
|
+
import type { CollisionPolicy, ProjectMode } from './distribute.js';
|
|
2
4
|
import { type LibrarySection } from './state.js';
|
|
3
|
-
export type BundleDistributionStatus = 'written' | 'skipped' | 'error' | 'deleted';
|
|
5
|
+
export type BundleDistributionStatus = 'written' | 'skipped' | 'error' | 'deleted' | 'conflict';
|
|
4
6
|
export interface BundleDistributionResult<Platform extends string> {
|
|
5
7
|
platform: Platform;
|
|
6
8
|
/** Target directory path */
|
|
@@ -24,6 +26,10 @@ export interface BundleCleanupConfig<Platform extends string> {
|
|
|
24
26
|
/** Return true to skip orphan cleanup for a directory (e.g. host-app reserved dirs) */
|
|
25
27
|
isReservedDir?: (id: string, platform: Platform) => boolean;
|
|
26
28
|
}
|
|
29
|
+
/** @deprecated Use ProjectMode from distribute.ts */
|
|
30
|
+
export type BundleProjectMode = ProjectMode;
|
|
31
|
+
/** @deprecated Use CollisionPolicy from distribute.ts */
|
|
32
|
+
export type BundleCollisionPolicy = CollisionPolicy;
|
|
27
33
|
export interface DistributeBundleOptions<TEntry, Platform extends string> {
|
|
28
34
|
section: LibrarySection;
|
|
29
35
|
selected: TEntry[];
|
|
@@ -42,6 +48,12 @@ export interface DistributeBundleOptions<TEntry, Platform extends string> {
|
|
|
42
48
|
* Used for per-agent configuration where each platform may have different active items.
|
|
43
49
|
*/
|
|
44
50
|
filterSelected?: (platform: Platform, selected: TEntry[]) => TEntry[];
|
|
51
|
+
/** Project distribution manifest for managed cleanup (project scope only) */
|
|
52
|
+
manifest?: ProjectDistributionManifest;
|
|
53
|
+
/** Project distribution mode (only used when scope.project is set) */
|
|
54
|
+
projectMode?: BundleProjectMode;
|
|
55
|
+
/** Collision policy for managed mode */
|
|
56
|
+
collision?: BundleCollisionPolicy;
|
|
45
57
|
}
|
|
46
58
|
export interface DistributeBundleOutcome<Platform extends string> {
|
|
47
59
|
results: BundleDistributionResult<Platform>[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
+
import { computeLibraryCleanupSet, getLibraryEntry, recordLibraryEntry, removeLibraryEntry, } from '../manifest/store.js';
|
|
4
5
|
import { ensureParentDir, rmDirRecursive } from './fs.js';
|
|
5
6
|
import { loadLibraryAgentSync, updateLibraryAgentSync } from './state.js';
|
|
6
7
|
/**
|
|
@@ -11,6 +12,14 @@ export function distributeBundle(opts) {
|
|
|
11
12
|
const agentSync = loadLibraryAgentSync(opts.section);
|
|
12
13
|
const results = [];
|
|
13
14
|
const timestamp = new Date().toISOString();
|
|
15
|
+
const collision = opts.collision ?? 'warn-skip';
|
|
16
|
+
// Safe cast: managed mode guard ensures section is never 'hooks' (hooks don't use manifest)
|
|
17
|
+
const manifestSection = opts.section;
|
|
18
|
+
// Extract managed context with proper narrowing (avoids non-null assertions throughout)
|
|
19
|
+
const managedProjectRoot = opts.scope?.project;
|
|
20
|
+
const manifest = managedProjectRoot && (opts.projectMode ?? 'exclusive') === 'managed'
|
|
21
|
+
? opts.manifest
|
|
22
|
+
: undefined;
|
|
14
23
|
for (const platform of opts.platforms) {
|
|
15
24
|
const platformHash = createHash('sha256');
|
|
16
25
|
// Apply per-platform filter if provided
|
|
@@ -20,6 +29,25 @@ export function distributeBundle(opts) {
|
|
|
20
29
|
for (const entry of platformSelected) {
|
|
21
30
|
const targetDir = opts.resolveTargetDir(platform, entry);
|
|
22
31
|
const files = opts.listFiles(entry);
|
|
32
|
+
const entryId = opts.getId(entry);
|
|
33
|
+
// Conflict detection in managed mode: check if target dir exists but isn't owned
|
|
34
|
+
if (manifest && fs.existsSync(targetDir)) {
|
|
35
|
+
const manifestEntry = getLibraryEntry(manifest, manifestSection, entryId, platform);
|
|
36
|
+
if (!manifestEntry && collision !== 'takeover') {
|
|
37
|
+
// Foreign directory exists at target path - skip
|
|
38
|
+
results.push({
|
|
39
|
+
platform,
|
|
40
|
+
targetDir,
|
|
41
|
+
status: 'conflict',
|
|
42
|
+
reason: 'foreign directory exists',
|
|
43
|
+
entryId,
|
|
44
|
+
});
|
|
45
|
+
// Intentionally not included in aggregate hash: content was not
|
|
46
|
+
// written, so it should not affect sync-state comparison.
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
// 'takeover' or manifestEntry exists: fall through to overwrite
|
|
50
|
+
}
|
|
23
51
|
let filesWritten = 0;
|
|
24
52
|
let filesSkipped = 0;
|
|
25
53
|
let hadError = false;
|
|
@@ -66,7 +94,6 @@ export function distributeBundle(opts) {
|
|
|
66
94
|
const expectedFiles = new Set(files.map((f) => f.relativePath));
|
|
67
95
|
cleanStaleFiles(targetDir, '', expectedFiles);
|
|
68
96
|
}
|
|
69
|
-
const entryId = opts.getId(entry);
|
|
70
97
|
if (hadError) {
|
|
71
98
|
results.push({
|
|
72
99
|
platform,
|
|
@@ -95,6 +122,27 @@ export function distributeBundle(opts) {
|
|
|
95
122
|
filesSkipped,
|
|
96
123
|
});
|
|
97
124
|
}
|
|
125
|
+
// Record in manifest after successful write or skip
|
|
126
|
+
if (manifest && managedProjectRoot) {
|
|
127
|
+
const lastResult = results[results.length - 1];
|
|
128
|
+
if (lastResult.status === 'written' || lastResult.status === 'skipped') {
|
|
129
|
+
const contentHash = createHash('sha256');
|
|
130
|
+
for (const file of files) {
|
|
131
|
+
try {
|
|
132
|
+
contentHash.update(fs.readFileSync(file.sourcePath));
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// Ignore
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
recordLibraryEntry(manifest, manifestSection, entryId, {
|
|
139
|
+
relativePath: path.relative(path.resolve(managedProjectRoot), targetDir),
|
|
140
|
+
targetId: platform,
|
|
141
|
+
hash: contentHash.digest('hex'),
|
|
142
|
+
updatedAt: timestamp,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
98
146
|
}
|
|
99
147
|
// Update sync state
|
|
100
148
|
const aggregateHash = platformHash.digest('hex');
|
|
@@ -106,46 +154,79 @@ export function distributeBundle(opts) {
|
|
|
106
154
|
[platform]: { hash: aggregateHash, updatedAt: timestamp },
|
|
107
155
|
}));
|
|
108
156
|
}
|
|
109
|
-
// Cleanup orphan directories
|
|
157
|
+
// Cleanup orphan directories
|
|
110
158
|
if (opts.cleanup) {
|
|
111
159
|
const activeIds = new Set(platformSelected.map(opts.getId));
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (opts.cleanup.isReservedDir?.(id, platform))
|
|
121
|
-
continue;
|
|
122
|
-
if (!activeIds.has(id)) {
|
|
123
|
-
const dirPath = path.join(parentDir, id);
|
|
124
|
-
try {
|
|
125
|
-
rmDirRecursive(dirPath);
|
|
126
|
-
results.push({
|
|
127
|
-
platform,
|
|
128
|
-
targetDir: dirPath,
|
|
129
|
-
status: 'deleted',
|
|
130
|
-
reason: 'orphan',
|
|
131
|
-
entryId: id,
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
catch (error) {
|
|
135
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
136
|
-
results.push({
|
|
137
|
-
platform,
|
|
138
|
-
targetDir: dirPath,
|
|
139
|
-
status: 'error',
|
|
140
|
-
error: `Failed to delete orphan: ${msg}`,
|
|
141
|
-
entryId: id,
|
|
142
|
-
});
|
|
143
|
-
}
|
|
160
|
+
if (manifest && managedProjectRoot) {
|
|
161
|
+
// Manifest-driven cleanup: only delete entries previously owned by ASB
|
|
162
|
+
const toRemove = computeLibraryCleanupSet(manifest, manifestSection, activeIds, platform);
|
|
163
|
+
for (const item of toRemove) {
|
|
164
|
+
const entryPath = path.join(path.resolve(managedProjectRoot), item.entry.relativePath);
|
|
165
|
+
try {
|
|
166
|
+
if (fs.existsSync(entryPath)) {
|
|
167
|
+
rmDirRecursive(entryPath);
|
|
144
168
|
}
|
|
169
|
+
results.push({
|
|
170
|
+
platform,
|
|
171
|
+
targetDir: entryPath,
|
|
172
|
+
status: 'deleted',
|
|
173
|
+
reason: 'orphan',
|
|
174
|
+
entryId: item.id,
|
|
175
|
+
});
|
|
176
|
+
removeLibraryEntry(manifest, manifestSection, item.id, platform);
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
180
|
+
results.push({
|
|
181
|
+
platform,
|
|
182
|
+
targetDir: entryPath,
|
|
183
|
+
status: 'error',
|
|
184
|
+
error: `Failed to delete orphan: ${msg}`,
|
|
185
|
+
entryId: item.id,
|
|
186
|
+
});
|
|
145
187
|
}
|
|
146
188
|
}
|
|
147
|
-
|
|
148
|
-
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Exclusive mode: scan directory for orphans (existing behavior)
|
|
192
|
+
const parentDir = opts.cleanup.resolveParentDir(platform);
|
|
193
|
+
if (fs.existsSync(parentDir)) {
|
|
194
|
+
try {
|
|
195
|
+
const dirEntries = fs.readdirSync(parentDir, { withFileTypes: true });
|
|
196
|
+
for (const dirEntry of dirEntries) {
|
|
197
|
+
if (!dirEntry.isDirectory())
|
|
198
|
+
continue;
|
|
199
|
+
const id = dirEntry.name;
|
|
200
|
+
if (opts.cleanup.isReservedDir?.(id, platform))
|
|
201
|
+
continue;
|
|
202
|
+
if (!activeIds.has(id)) {
|
|
203
|
+
const dirPath = path.join(parentDir, id);
|
|
204
|
+
try {
|
|
205
|
+
rmDirRecursive(dirPath);
|
|
206
|
+
results.push({
|
|
207
|
+
platform,
|
|
208
|
+
targetDir: dirPath,
|
|
209
|
+
status: 'deleted',
|
|
210
|
+
reason: 'orphan',
|
|
211
|
+
entryId: id,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
216
|
+
results.push({
|
|
217
|
+
platform,
|
|
218
|
+
targetDir: dirPath,
|
|
219
|
+
status: 'error',
|
|
220
|
+
error: `Failed to delete orphan: ${msg}`,
|
|
221
|
+
entryId: id,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
// Ignore errors reading directory
|
|
229
|
+
}
|
|
149
230
|
}
|
|
150
231
|
}
|
|
151
232
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribute-bundle.js","sourceRoot":"","sources":["../../src/library/distribute-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAuB,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"distribute-bundle.js","sourceRoot":"","sources":["../../src/library/distribute-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConfigScope } from '../config/scope.js';
|
|
2
|
+
import type { ProjectDistributionManifest } from '../manifest/types.js';
|
|
2
3
|
import { type LibrarySection } from './state.js';
|
|
3
|
-
export type DistributionStatus = 'written' | 'skipped' | 'error' | 'deleted';
|
|
4
|
+
export type DistributionStatus = 'written' | 'skipped' | 'error' | 'deleted' | 'conflict';
|
|
4
5
|
export interface DistributionResult<Platform extends string> {
|
|
5
6
|
platform: Platform;
|
|
6
7
|
filePath: string;
|
|
@@ -15,6 +16,14 @@ export interface CleanupConfig<Platform extends string> {
|
|
|
15
16
|
/** Extract entry ID from filename (without extension) */
|
|
16
17
|
extractId: (filename: string) => string | null;
|
|
17
18
|
}
|
|
19
|
+
export type ProjectMode = 'managed' | 'exclusive' | 'none';
|
|
20
|
+
export type CollisionPolicy = 'warn-skip' | 'error' | 'takeover';
|
|
21
|
+
/** Options for managed project-level distribution (commands, agents, skills) */
|
|
22
|
+
export interface LibraryManagedOptions {
|
|
23
|
+
manifest?: ProjectDistributionManifest;
|
|
24
|
+
projectMode?: ProjectMode;
|
|
25
|
+
collision?: CollisionPolicy;
|
|
26
|
+
}
|
|
18
27
|
export interface DistributeOptions<TEntry, Platform extends string> {
|
|
19
28
|
section: LibrarySection;
|
|
20
29
|
selected: TEntry[];
|
|
@@ -31,6 +40,12 @@ export interface DistributeOptions<TEntry, Platform extends string> {
|
|
|
31
40
|
* Used for per-agent configuration where each platform may have different active items.
|
|
32
41
|
*/
|
|
33
42
|
filterSelected?: (platform: Platform, selected: TEntry[]) => TEntry[];
|
|
43
|
+
/** Project distribution manifest for managed cleanup (project scope only) */
|
|
44
|
+
manifest?: ProjectDistributionManifest;
|
|
45
|
+
/** Project distribution mode (only used when scope.project is set) */
|
|
46
|
+
projectMode?: ProjectMode;
|
|
47
|
+
/** Collision policy for managed mode */
|
|
48
|
+
collision?: CollisionPolicy;
|
|
34
49
|
}
|
|
35
50
|
export interface DistributeOutcome<Platform extends string> {
|
|
36
51
|
results: DistributionResult<Platform>[];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createHash } from 'node:crypto';
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
+
import { computeLibraryCleanupSet, getLibraryEntry, recordLibraryEntry, removeLibraryEntry, } from '../manifest/store.js';
|
|
4
5
|
import { ensureParentDir } from './fs.js';
|
|
5
6
|
import { loadLibraryAgentSync, updateLibraryAgentSync } from './state.js';
|
|
6
7
|
/**
|
|
@@ -11,6 +12,14 @@ export function distributeLibrary(opts) {
|
|
|
11
12
|
const agentSync = loadLibraryAgentSync(opts.section);
|
|
12
13
|
const results = [];
|
|
13
14
|
const timestamp = new Date().toISOString();
|
|
15
|
+
const collision = opts.collision ?? 'warn-skip';
|
|
16
|
+
// Safe cast: managed mode guard ensures section is never 'hooks' (hooks don't use manifest)
|
|
17
|
+
const manifestSection = opts.section;
|
|
18
|
+
// Extract managed context with proper narrowing (avoids non-null assertions throughout)
|
|
19
|
+
const managedProjectRoot = opts.scope?.project;
|
|
20
|
+
const manifest = managedProjectRoot && (opts.projectMode ?? 'exclusive') === 'managed'
|
|
21
|
+
? opts.manifest
|
|
22
|
+
: undefined;
|
|
14
23
|
for (const platform of opts.platforms) {
|
|
15
24
|
const hash = createHash('sha256');
|
|
16
25
|
const writtenOrSkipped = [];
|
|
@@ -21,6 +30,7 @@ export function distributeLibrary(opts) {
|
|
|
21
30
|
for (const entry of platformSelected) {
|
|
22
31
|
const filePath = opts.resolveFilePath(platform, entry);
|
|
23
32
|
const content = opts.render(platform, entry);
|
|
33
|
+
const entryId = opts.getId?.(entry);
|
|
24
34
|
ensureParentDir(filePath);
|
|
25
35
|
let existing = null;
|
|
26
36
|
try {
|
|
@@ -30,6 +40,24 @@ export function distributeLibrary(opts) {
|
|
|
30
40
|
catch {
|
|
31
41
|
existing = null;
|
|
32
42
|
}
|
|
43
|
+
// Conflict detection in managed mode
|
|
44
|
+
if (manifest && existing !== null && entryId) {
|
|
45
|
+
const manifestEntry = getLibraryEntry(manifest, manifestSection, entryId, platform);
|
|
46
|
+
if (!manifestEntry && collision !== 'takeover') {
|
|
47
|
+
// Foreign file exists at target path - skip (warn-skip and error both skip)
|
|
48
|
+
writtenOrSkipped.push({
|
|
49
|
+
platform,
|
|
50
|
+
filePath,
|
|
51
|
+
status: 'conflict',
|
|
52
|
+
reason: 'foreign file exists',
|
|
53
|
+
entryId,
|
|
54
|
+
});
|
|
55
|
+
// Intentionally not included in aggregate hash: content was not
|
|
56
|
+
// written, so it should not affect sync-state comparison.
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// 'takeover' or manifestEntry exists: fall through to overwrite
|
|
60
|
+
}
|
|
33
61
|
const same = existing !== null && existing === content;
|
|
34
62
|
if (same) {
|
|
35
63
|
writtenOrSkipped.push({ platform, filePath, status: 'skipped', reason: 'up-to-date' });
|
|
@@ -49,6 +77,18 @@ export function distributeLibrary(opts) {
|
|
|
49
77
|
writtenOrSkipped.push({ platform, filePath, status: 'error', error: msg });
|
|
50
78
|
}
|
|
51
79
|
}
|
|
80
|
+
// Record in manifest after successful write or skip (up-to-date)
|
|
81
|
+
if (manifest && managedProjectRoot && entryId) {
|
|
82
|
+
const lastResult = writtenOrSkipped[writtenOrSkipped.length - 1];
|
|
83
|
+
if (lastResult.status === 'written' || lastResult.status === 'skipped') {
|
|
84
|
+
recordLibraryEntry(manifest, manifestSection, entryId, {
|
|
85
|
+
relativePath: path.relative(path.resolve(managedProjectRoot), filePath),
|
|
86
|
+
targetId: platform,
|
|
87
|
+
hash: createHash('sha256').update(content).digest('hex'),
|
|
88
|
+
updatedAt: timestamp,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
52
92
|
hash.update(`\n# ${filePath}\n`);
|
|
53
93
|
hash.update(content);
|
|
54
94
|
}
|
|
@@ -62,45 +102,78 @@ export function distributeLibrary(opts) {
|
|
|
62
102
|
}));
|
|
63
103
|
}
|
|
64
104
|
results.push(...writtenOrSkipped);
|
|
65
|
-
// Cleanup orphan files
|
|
105
|
+
// Cleanup orphan files
|
|
66
106
|
if (opts.cleanup && opts.getId) {
|
|
67
107
|
const activeIds = new Set(platformSelected.map(opts.getId));
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
continue;
|
|
77
|
-
const id = opts.cleanup.extractId(file);
|
|
78
|
-
if (id !== null && !activeIds.has(id)) {
|
|
79
|
-
try {
|
|
80
|
-
fs.unlinkSync(filePath);
|
|
81
|
-
results.push({
|
|
82
|
-
platform,
|
|
83
|
-
filePath,
|
|
84
|
-
status: 'deleted',
|
|
85
|
-
reason: 'orphan',
|
|
86
|
-
entryId: id,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
|
-
const msg = error instanceof Error ? error.message : String(error);
|
|
91
|
-
results.push({
|
|
92
|
-
platform,
|
|
93
|
-
filePath,
|
|
94
|
-
status: 'error',
|
|
95
|
-
error: `Failed to delete orphan: ${msg}`,
|
|
96
|
-
entryId: id,
|
|
97
|
-
});
|
|
98
|
-
}
|
|
108
|
+
if (manifest && managedProjectRoot) {
|
|
109
|
+
// Manifest-driven cleanup: only delete entries previously owned by ASB
|
|
110
|
+
const toRemove = computeLibraryCleanupSet(manifest, manifestSection, activeIds, platform);
|
|
111
|
+
for (const item of toRemove) {
|
|
112
|
+
const entryPath = path.join(path.resolve(managedProjectRoot), item.entry.relativePath);
|
|
113
|
+
try {
|
|
114
|
+
if (fs.existsSync(entryPath)) {
|
|
115
|
+
fs.unlinkSync(entryPath);
|
|
99
116
|
}
|
|
117
|
+
results.push({
|
|
118
|
+
platform,
|
|
119
|
+
filePath: entryPath,
|
|
120
|
+
status: 'deleted',
|
|
121
|
+
reason: 'orphan',
|
|
122
|
+
entryId: item.id,
|
|
123
|
+
});
|
|
124
|
+
removeLibraryEntry(manifest, manifestSection, item.id, platform);
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
128
|
+
results.push({
|
|
129
|
+
platform,
|
|
130
|
+
filePath: entryPath,
|
|
131
|
+
status: 'error',
|
|
132
|
+
error: `Failed to delete orphan: ${msg}`,
|
|
133
|
+
entryId: item.id,
|
|
134
|
+
});
|
|
100
135
|
}
|
|
101
136
|
}
|
|
102
|
-
|
|
103
|
-
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
// Exclusive mode: scan directory for orphans (existing behavior)
|
|
140
|
+
const targetDir = opts.cleanup.resolveTargetDir(platform);
|
|
141
|
+
if (fs.existsSync(targetDir)) {
|
|
142
|
+
try {
|
|
143
|
+
const files = fs.readdirSync(targetDir);
|
|
144
|
+
for (const file of files) {
|
|
145
|
+
const filePath = path.join(targetDir, file);
|
|
146
|
+
// Skip directories
|
|
147
|
+
if (fs.statSync(filePath).isDirectory())
|
|
148
|
+
continue;
|
|
149
|
+
const id = opts.cleanup.extractId(file);
|
|
150
|
+
if (id !== null && !activeIds.has(id)) {
|
|
151
|
+
try {
|
|
152
|
+
fs.unlinkSync(filePath);
|
|
153
|
+
results.push({
|
|
154
|
+
platform,
|
|
155
|
+
filePath,
|
|
156
|
+
status: 'deleted',
|
|
157
|
+
reason: 'orphan',
|
|
158
|
+
entryId: id,
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
163
|
+
results.push({
|
|
164
|
+
platform,
|
|
165
|
+
filePath,
|
|
166
|
+
status: 'error',
|
|
167
|
+
error: `Failed to delete orphan: ${msg}`,
|
|
168
|
+
entryId: id,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
// Ignore errors reading directory
|
|
176
|
+
}
|
|
104
177
|
}
|
|
105
178
|
}
|
|
106
179
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distribute.js","sourceRoot":"","sources":["../../src/library/distribute.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAuB,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"distribute.js","sourceRoot":"","sources":["../../src/library/distribute.ts"],"names":[],"mappings":"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"}
|