skill-flow 1.0.2 → 1.0.4

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.
Files changed (57) hide show
  1. package/README.md +62 -23
  2. package/README.zh.md +63 -25
  3. package/dist/cli.js +13 -39
  4. package/dist/cli.js.map +1 -1
  5. package/dist/domain/types.d.ts +12 -1
  6. package/dist/services/doctor-service.js +1 -1
  7. package/dist/services/doctor-service.js.map +1 -1
  8. package/dist/services/skill-flow.d.ts +16 -13
  9. package/dist/services/skill-flow.js +158 -5
  10. package/dist/services/skill-flow.js.map +1 -1
  11. package/dist/services/source-service.d.ts +11 -1
  12. package/dist/services/source-service.js +60 -18
  13. package/dist/services/source-service.js.map +1 -1
  14. package/dist/services/workflow-service.d.ts +2 -2
  15. package/dist/services/workflow-service.js +17 -4
  16. package/dist/services/workflow-service.js.map +1 -1
  17. package/dist/services/workspace-bootstrap-service.d.ts +25 -0
  18. package/dist/services/workspace-bootstrap-service.js +148 -0
  19. package/dist/services/workspace-bootstrap-service.js.map +1 -0
  20. package/dist/state/store.js +1 -0
  21. package/dist/state/store.js.map +1 -1
  22. package/dist/tests/skill-flow.test.js +1458 -0
  23. package/dist/tests/skill-flow.test.js.map +1 -1
  24. package/dist/tui/config-app.d.ts +3 -0
  25. package/dist/tui/config-app.js +61 -1
  26. package/dist/tui/config-app.js.map +1 -1
  27. package/dist/tui/find-app.d.ts +1 -1
  28. package/dist/tui/find-app.js +36 -4
  29. package/dist/tui/find-app.js.map +1 -1
  30. package/dist/utils/format.js +1 -1
  31. package/dist/utils/format.js.map +1 -1
  32. package/dist/utils/naming.d.ts +1 -0
  33. package/dist/utils/naming.js +7 -1
  34. package/dist/utils/naming.js.map +1 -1
  35. package/dist/utils/source-id.js +4 -0
  36. package/dist/utils/source-id.js.map +1 -1
  37. package/package.json +10 -1
  38. package/.gstack/browse-network.log +0 -1
  39. package/.gstack/browse.json +0 -7
  40. package/.gstack/qa-reports/base-branch.txt +0 -1
  41. package/.gstack/qa-reports/qa-report-skill-flow-cli-2026-03-22.md +0 -159
  42. package/.gstack/qa-reports/qa-report-skill-manager-2026-03-22.md +0 -60
  43. package/docs/DESIGN.md +0 -407
  44. package/docs/PRD/PRD-1.0.0.md +0 -1862
  45. package/docs/PRD/renew/PRD-0.0.0.md +0 -26
  46. package/docs/PRD/renew/PRD-0.0.1.md +0 -408
  47. package/docs/PRD/renew/PRD-0.0.2.md +0 -705
  48. package/docs/PRD/renew/PRD-0.0.3.md +0 -740
  49. package/docs/PRD/renew/PRD-0.0.4.md +0 -1494
  50. package/docs/README.md +0 -242
  51. package/docs/plan/PLAN_v1.0.0.md +0 -663
  52. package/docs/plan/PLAN_v1.0.1.md +0 -845
  53. package/docs/refrences/README.md +0 -9
  54. package/docs/refrences/agent-skill-paths.md +0 -274
  55. package/docs/refrences/config-state-reconciliation.md +0 -199
  56. package/docs/refrences/naming-dedupe-warning-rules.md +0 -482
  57. package/img/img-1.jpg +0 -0
@@ -1,4 +1,5 @@
1
1
  import fs from "node:fs/promises";
2
+ import path from "node:path";
2
3
  import { createChannelAdapters } from "../adapters/channel-adapters.js";
3
4
  import { StateStore } from "../state/store.js";
4
5
  import { ensureDir, hashDirectory, pathExists, readJsonFile, removePath, writeJsonFile } from "../utils/fs.js";
@@ -14,6 +15,7 @@ import { DoctorService } from "./doctor-service.js";
14
15
  import { InventoryService } from "./inventory-service.js";
15
16
  import { SourceService } from "./source-service.js";
16
17
  import { WorkflowService } from "./workflow-service.js";
18
+ import { WorkspaceBootstrapService, } from "./workspace-bootstrap-service.js";
17
19
  export class SkillFlowApp {
18
20
  store = new StateStore();
19
21
  inventoryService = new InventoryService();
@@ -22,8 +24,10 @@ export class SkillFlowApp {
22
24
  applier = new DeploymentApplier();
23
25
  doctorService = new DoctorService();
24
26
  workflowService = new WorkflowService();
27
+ workspaceBootstrapService = new WorkspaceBootstrapService(this.store);
25
28
  async addSource(locator, options) {
26
- const result = await this.sourceService.addSource(locator, options);
29
+ const addOptions = options ?? {};
30
+ const result = await this.sourceService.addSource(locator, addOptions);
27
31
  if (!result.ok) {
28
32
  return result;
29
33
  }
@@ -34,12 +38,29 @@ export class SkillFlowApp {
34
38
  if (!source) {
35
39
  return result;
36
40
  }
41
+ source.selectionMode =
42
+ addOptions.selectionMode ??
43
+ (source.requestedPath ? "partial" : "all");
44
+ const enabledTargets = addOptions.enabledTargets ??
45
+ await this.getAvailableTargets();
37
46
  manifest.bindings[source.id] = this.bindingFromDraft({
38
- enabledTargets: await this.getAvailableTargets(),
47
+ enabledTargets,
39
48
  selectedLeafIds: this.selectLeafIdsForRequestedPath(lockFile.leafInventory.filter((leaf) => leaf.sourceId === source.id), source.requestedPath),
40
49
  });
41
50
  await this.store.writeManifest(manifest);
42
- return result;
51
+ if (addOptions.project === false) {
52
+ return result;
53
+ }
54
+ const plan = await this.planForAffectedSources(manifest, lockFile, source.id);
55
+ if (!plan.ok) {
56
+ return fail(plan.errors, [...result.warnings, ...plan.warnings]);
57
+ }
58
+ const applied = await this.applier.applyPlan(lockFile, plan.data.actions);
59
+ await this.store.writeLock(lockFile);
60
+ if (!applied.ok) {
61
+ return fail(applied.errors, [...result.warnings, ...plan.warnings, ...applied.warnings]);
62
+ }
63
+ return ok(result.data, [...result.warnings, ...plan.warnings, ...applied.warnings]);
43
64
  }
44
65
  async findSkills(query) {
45
66
  await this.store.init();
@@ -157,6 +178,95 @@ export class SkillFlowApp {
157
178
  summaries: this.workflowService.getSummaries(manifest, lockFile),
158
179
  });
159
180
  }
181
+ async bootstrapWorkspaceState(onEvent) {
182
+ onEvent?.({
183
+ phase: "detect-targets",
184
+ level: "info",
185
+ message: "Detecting available agent targets...",
186
+ });
187
+ const availableTargets = await this.getAvailableTargets();
188
+ await this.store.init();
189
+ let manifest = await this.store.readManifest();
190
+ let lockFile = await this.store.readLock();
191
+ const detected = await this.workspaceBootstrapService.detectUnmanagedExternalSkills(manifest, lockFile, onEvent);
192
+ const importedSourceIds = [];
193
+ if (detected.length > 0) {
194
+ onEvent?.({
195
+ phase: "import-unmanaged-skills",
196
+ level: "info",
197
+ message: `Importing ${detected.length} unmanaged skill${detected.length === 1 ? "" : "s"} into skill-flow...`,
198
+ });
199
+ }
200
+ for (const item of detected) {
201
+ const imported = await this.addSource(item.path, {
202
+ enabledTargets: item.importedFromTargets,
203
+ selectionMode: "all",
204
+ project: false,
205
+ sourceIdOverride: item.sourceId,
206
+ displayNameOverride: item.displayName,
207
+ importedFromTargets: item.importedFromTargets,
208
+ importMode: "bootstrap-detected",
209
+ ...(item.originLocator ? { originLocator: item.originLocator } : {}),
210
+ ...(item.originRequestedPath ? { originRequestedPath: item.originRequestedPath } : {}),
211
+ ...(item.originBranch ? { originBranch: item.originBranch } : {}),
212
+ });
213
+ if (!imported.ok) {
214
+ return fail(imported.errors, imported.warnings);
215
+ }
216
+ importedSourceIds.push(imported.data.manifest.id);
217
+ onEvent?.({
218
+ phase: "import-unmanaged-skills",
219
+ level: "success",
220
+ message: `Imported ${imported.data.manifest.displayName}.`,
221
+ });
222
+ }
223
+ onEvent?.({
224
+ phase: "refresh-sources",
225
+ level: "info",
226
+ message: "Refreshing managed inventory...",
227
+ });
228
+ const reconciled = await this.sourceService.reconcileInventory(undefined, { force: true });
229
+ if (!reconciled.ok) {
230
+ return fail(reconciled.errors, reconciled.warnings);
231
+ }
232
+ manifest = await this.store.readManifest();
233
+ lockFile = await this.store.readLock();
234
+ onEvent?.({
235
+ phase: "normalize-bindings",
236
+ level: "info",
237
+ message: "Normalizing config state...",
238
+ });
239
+ await this.persistNormalizedBindings(manifest, lockFile);
240
+ onEvent?.({
241
+ phase: "audit-projections",
242
+ level: "info",
243
+ message: "Auditing current projections...",
244
+ });
245
+ const audit = await this.doctorService.run(manifest, lockFile);
246
+ if (!audit.ok) {
247
+ return fail(audit.errors, audit.warnings);
248
+ }
249
+ onEvent?.({
250
+ phase: "build-summaries",
251
+ level: "info",
252
+ message: "Building config summaries...",
253
+ });
254
+ const summaries = this.workflowService.getSummaries(manifest, lockFile, audit.data);
255
+ onEvent?.({
256
+ phase: "done",
257
+ level: "success",
258
+ message: "Config bootstrap complete.",
259
+ });
260
+ return ok({
261
+ availableTargets,
262
+ manifest,
263
+ lockFile,
264
+ summaries,
265
+ initialDrafts: this.buildInitialDrafts(summaries),
266
+ audit: audit.data,
267
+ importedSourceIds,
268
+ });
269
+ }
160
270
  async getAvailableTargets() {
161
271
  const adapters = createChannelAdapters();
162
272
  const availableTargets = [];
@@ -220,6 +330,7 @@ export class SkillFlowApp {
220
330
  }
221
331
  const manifest = await this.store.readManifest();
222
332
  const lockFile = await this.store.readLock();
333
+ this.applySelectionModeForUpdatedSources(manifest, lockFile, updated.data.updated);
223
334
  await this.persistNormalizedBindings(manifest, lockFile);
224
335
  const activeSourceIds = manifest.sources
225
336
  .map((source) => source.id)
@@ -339,6 +450,14 @@ export class SkillFlowApp {
339
450
  }
340
451
  prepareManifestForDraft(manifest, lockFile, sourceId, draft) {
341
452
  manifest.bindings[sourceId] = this.bindingFromDraft(draft);
453
+ const source = manifest.sources.find((item) => item.id === sourceId);
454
+ if (source) {
455
+ const sourceLeafCount = lockFile.leafInventory.filter((leaf) => leaf.sourceId === sourceId).length;
456
+ source.selectionMode =
457
+ draft.selectedLeafIds.length >= sourceLeafCount && sourceLeafCount > 0
458
+ ? "all"
459
+ : "partial";
460
+ }
342
461
  const conflictingLeafIds = this.findExactDuplicateLeafSelections(manifest, lockFile, sourceId, draft.enabledTargets);
343
462
  const normalizedDraft = {
344
463
  enabledTargets: [...draft.enabledTargets],
@@ -347,7 +466,7 @@ export class SkillFlowApp {
347
466
  manifest.bindings[sourceId] = this.bindingFromDraft(normalizedDraft);
348
467
  const warnings = [...conflictingLeafIds].map((leafId) => ({
349
468
  code: "DUPLICATE_LEAF_SELECTION_SKIPPED",
350
- message: `${lockFile.leafInventory.find((leaf) => leaf.id === leafId)?.linkName ?? leafId} skipped because an identical skill is already selected in another workflow group.`,
469
+ message: `${lockFile.leafInventory.find((leaf) => leaf.id === leafId)?.linkName ?? leafId} skipped because an identical skill is already selected in another skills group.`,
351
470
  }));
352
471
  return {
353
472
  manifest,
@@ -605,11 +724,45 @@ export class SkillFlowApp {
605
724
  return candidate.locator;
606
725
  }
607
726
  formatSourceLabel(locator, displayName) {
727
+ if (locator.startsWith("clawhub:")) {
728
+ return `${displayName}@clawhub`;
729
+ }
730
+ if (path.isAbsolute(locator)) {
731
+ return `${displayName}@local`;
732
+ }
608
733
  const repo = parseGitHubRepo(locator);
609
734
  if (!repo) {
610
735
  return displayName;
611
736
  }
612
- return `${displayName}(@${repo.owner})`;
737
+ return `${displayName}@${repo.owner}`;
738
+ }
739
+ buildInitialDrafts(summaries) {
740
+ return Object.fromEntries(summaries.map((summary) => {
741
+ const enabledTargets = Object.entries(summary.bindings.targets)
742
+ .filter(([, value]) => value?.enabled)
743
+ .map(([target]) => target);
744
+ const selectedLeafIds = [...new Set(enabledTargets.flatMap((target) => summary.bindings.targets[target]?.leafIds ?? []))];
745
+ return [summary.source.id, { enabledTargets, selectedLeafIds }];
746
+ }));
747
+ }
748
+ applySelectionModeForUpdatedSources(manifest, lockFile, updates) {
749
+ for (const update of updates) {
750
+ if (!update.changed || update.addedLeafIds.length === 0) {
751
+ continue;
752
+ }
753
+ const source = manifest.sources.find((item) => item.id === update.sourceId);
754
+ const binding = manifest.bindings[update.sourceId];
755
+ if (!source || !binding || source.selectionMode !== "all") {
756
+ continue;
757
+ }
758
+ for (const targetBinding of Object.values(binding.targets)) {
759
+ if (!targetBinding?.enabled) {
760
+ continue;
761
+ }
762
+ const merged = new Set([...targetBinding.leafIds, ...update.addedLeafIds]);
763
+ targetBinding.leafIds = [...merged].filter((leafId) => lockFile.leafInventory.some((leaf) => leaf.id === leafId && leaf.sourceId === update.sourceId));
764
+ }
765
+ }
613
766
  }
614
767
  }
615
768
  //# sourceMappingURL=skill-flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-flow.js","sourceRoot":"","sources":["../../src/services/skill-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-flow.js","sourceRoot":"","sources":["../../src/services/skill-flow.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Result, SourceLockRecord, SourceManifestRecord } from "../domain/types.js";
1
+ import type { DeploymentTargetName, Result, SourceLockRecord, SourceManifestRecord } from "../domain/types.js";
2
2
  import { StateStore } from "../state/store.js";
3
3
  import { InventoryService } from "./inventory-service.js";
4
4
  export type SourceSnapshot = {
@@ -9,6 +9,16 @@ export type SourceSnapshot = {
9
9
  };
10
10
  export type AddSourceOptions = {
11
11
  path?: string;
12
+ enabledTargets?: DeploymentTargetName[];
13
+ selectionMode?: "all" | "partial";
14
+ project?: boolean;
15
+ sourceIdOverride?: string;
16
+ displayNameOverride?: string;
17
+ originLocator?: string;
18
+ originRequestedPath?: string;
19
+ originBranch?: string;
20
+ importedFromTargets?: DeploymentTargetName[];
21
+ importMode?: "explicit-add" | "bootstrap-detected";
12
22
  };
13
23
  export declare class SourceService {
14
24
  private readonly store;
@@ -20,7 +20,7 @@ export class SourceService {
20
20
  if (manifest.sources.some((source) => source.id === resolved.sourceId)) {
21
21
  return fail({
22
22
  code: "SOURCE_EXISTS",
23
- message: `Workflow group '${formatGroupLabel({ id: resolved.sourceId, locator: resolved.locator, displayName: resolved.displayName })}' is already registered with id '${resolved.sourceId}'.`,
23
+ message: `Skills group '${formatGroupLabel({ id: resolved.sourceId, locator: resolved.locator, displayName: resolved.displayName })}' is already registered with id '${resolved.sourceId}'.`,
24
24
  });
25
25
  }
26
26
  const checkoutPath = this.store.getSourceCheckoutPath(resolved.kind, resolved.sourceId);
@@ -31,11 +31,15 @@ export class SourceService {
31
31
  catch (error) {
32
32
  await removePath(checkoutPath);
33
33
  return fail({
34
- code: resolved.kind === "git" ? "GIT_CLONE_FAILED" : "CLAWHUB_FETCH_FAILED",
34
+ code: resolved.kind === "git"
35
+ ? "GIT_CLONE_FAILED"
36
+ : resolved.kind === "local"
37
+ ? "LOCAL_IMPORT_FAILED"
38
+ : "CLAWHUB_FETCH_FAILED",
35
39
  message: `Unable to fetch source '${resolved.locator}': ${String(error)}`,
36
40
  });
37
41
  }
38
- const snapshot = await this.buildSnapshot(resolved.kind, resolved.sourceId, resolved.locator, resolved.displayName, checkoutPath, resolved.requestedPath);
42
+ const snapshot = await this.buildSnapshot(resolved.kind, resolved.sourceId, resolved.locator, resolved.displayName, checkoutPath, resolved.requestedPath, options);
39
43
  if (!snapshot.ok) {
40
44
  await removePath(checkoutPath);
41
45
  return fail(snapshot.errors, snapshot.warnings);
@@ -67,7 +71,7 @@ export class SourceService {
67
71
  if (!source || !currentLock) {
68
72
  return fail({
69
73
  code: "SOURCE_NOT_FOUND",
70
- message: `Workflow group id '${sourceId}' is not registered.`,
74
+ message: `Skills group id '${sourceId}' is not registered.`,
71
75
  });
72
76
  }
73
77
  let changed;
@@ -76,8 +80,12 @@ export class SourceService {
76
80
  }
77
81
  catch (error) {
78
82
  return fail({
79
- code: source.kind === "git" ? "GIT_UPDATE_FAILED" : "CLAWHUB_UPDATE_FAILED",
80
- message: `Unable to update workflow group id '${sourceId}': ${String(error)}`,
83
+ code: source.kind === "git"
84
+ ? "GIT_UPDATE_FAILED"
85
+ : source.kind === "local"
86
+ ? "LOCAL_UPDATE_FAILED"
87
+ : "CLAWHUB_UPDATE_FAILED",
88
+ message: `Unable to update skills group id '${sourceId}': ${String(error)}`,
81
89
  });
82
90
  }
83
91
  if (!changed) {
@@ -90,7 +98,7 @@ export class SourceService {
90
98
  });
91
99
  continue;
92
100
  }
93
- const snapshot = await this.buildSnapshot(source.kind, source.id, source.locator, source.displayName, currentLock.checkoutPath, source.requestedPath, { allowEmptyLeafs: true });
101
+ const snapshot = await this.buildSnapshot(source.kind, source.id, source.locator, source.displayName, currentLock.checkoutPath, source.requestedPath, {}, { allowEmptyLeafs: true });
94
102
  if (!snapshot.ok) {
95
103
  return fail(snapshot.errors, snapshot.warnings);
96
104
  }
@@ -126,7 +134,7 @@ export class SourceService {
126
134
  if (!currentSource || !currentLock) {
127
135
  return fail({
128
136
  code: "SOURCE_NOT_FOUND",
129
- message: `Workflow group id '${sourceId}' is not registered.`,
137
+ message: `Skills group id '${sourceId}' is not registered.`,
130
138
  });
131
139
  }
132
140
  manifest.sources = manifest.sources.filter((source) => source.id !== sourceId);
@@ -163,7 +171,7 @@ export class SourceService {
163
171
  !this.needsInventoryReconcile(sourceId, sourceLeafs, sourceDeployments)) {
164
172
  continue;
165
173
  }
166
- const snapshot = await this.buildSnapshot(source.kind, source.id, source.locator, source.displayName, currentLock.checkoutPath, source.requestedPath, { allowEmptyLeafs: true });
174
+ const snapshot = await this.buildSnapshot(source.kind, source.id, source.locator, source.displayName, currentLock.checkoutPath, source.requestedPath, {}, { allowEmptyLeafs: true });
167
175
  if (!snapshot.ok) {
168
176
  return fail(snapshot.errors, snapshot.warnings);
169
177
  }
@@ -206,7 +214,7 @@ export class SourceService {
206
214
  const hasLegacyTargetNames = sourceDeployments.some((deployment) => path.basename(deployment.targetPath).startsWith(`${sourceId}--`));
207
215
  return hasGeneratedLeafs || hasLegacyTargetNames;
208
216
  }
209
- async buildSnapshot(kind, sourceId, locator, displayName, checkoutPath, requestedPathOrOptions = undefined, maybeOptions = {}) {
217
+ async buildSnapshot(kind, sourceId, locator, displayName, checkoutPath, requestedPathOrOptions = undefined, addOptions = {}, maybeOptions = {}) {
210
218
  const requestedPath = typeof requestedPathOrOptions === "string" ? requestedPathOrOptions : undefined;
211
219
  const options = typeof requestedPathOrOptions === "string"
212
220
  ? maybeOptions
@@ -240,6 +248,11 @@ export class SourceService {
240
248
  displayName,
241
249
  addedAt: new Date().toISOString(),
242
250
  ...(requestedPath ? { requestedPath } : {}),
251
+ ...(addOptions.selectionMode ? { selectionMode: addOptions.selectionMode } : {}),
252
+ ...(addOptions.originLocator ? { originLocator: addOptions.originLocator } : {}),
253
+ ...(addOptions.originRequestedPath
254
+ ? { originRequestedPath: addOptions.originRequestedPath }
255
+ : {}),
243
256
  },
244
257
  lock: {
245
258
  id: sourceId,
@@ -251,6 +264,11 @@ export class SourceService {
251
264
  leafIds: scanned.leafs.map((leaf) => leaf.id),
252
265
  invalidLeafs: scanned.invalidLeafs,
253
266
  ...sourceMetadata,
267
+ ...(addOptions.originBranch ? { originBranch: addOptions.originBranch } : {}),
268
+ ...(addOptions.importedFromTargets
269
+ ? { importedFromTargets: addOptions.importedFromTargets }
270
+ : {}),
271
+ ...(addOptions.importMode ? { importMode: addOptions.importMode } : {}),
254
272
  ...(kind === "clawhub"
255
273
  ? {
256
274
  versionMode: locator.includes("@") ? "pinned" : "floating",
@@ -282,14 +300,25 @@ export class SourceService {
282
300
  }
283
301
  async resolveSource(locator, options) {
284
302
  const trimmed = locator.trim();
303
+ const resolvedPath = path.resolve(trimmed);
304
+ if (await pathExists(resolvedPath)) {
305
+ return {
306
+ kind: "local",
307
+ locator: resolvedPath,
308
+ localPath: resolvedPath,
309
+ displayName: options.displayNameOverride ?? deriveDisplayName(resolvedPath),
310
+ sourceId: options.sourceIdOverride ?? deriveSourceId(resolvedPath),
311
+ ...(options.path ? { requestedPath: options.path } : {}),
312
+ };
313
+ }
285
314
  const treeLocator = this.parseGitHubTreeLocator(trimmed);
286
315
  if (treeLocator) {
287
316
  return {
288
317
  kind: "git",
289
318
  locator: treeLocator.repoLocator,
290
319
  gitLocator: await this.normalizeLocator(treeLocator.repoLocator),
291
- displayName: deriveDisplayName(treeLocator.repoLocator),
292
- sourceId: deriveSourceId(treeLocator.repoLocator),
320
+ displayName: options.displayNameOverride ?? deriveDisplayName(treeLocator.repoLocator),
321
+ sourceId: options.sourceIdOverride ?? deriveSourceId(treeLocator.repoLocator),
293
322
  ...(options.path ?? treeLocator.requestedPath
294
323
  ? { requestedPath: options.path ?? treeLocator.requestedPath }
295
324
  : {}),
@@ -306,8 +335,8 @@ export class SourceService {
306
335
  ? {
307
336
  kind: "clawhub",
308
337
  locator: trimmed,
309
- displayName: deriveDisplayName(trimmed),
310
- sourceId: deriveSourceId(trimmed),
338
+ displayName: options.displayNameOverride ?? deriveDisplayName(trimmed),
339
+ sourceId: options.sourceIdOverride ?? deriveSourceId(trimmed),
311
340
  ...(options.path ? { requestedPath: options.path } : {}),
312
341
  clawhubSlug: slug,
313
342
  requestedVersion: version,
@@ -316,8 +345,8 @@ export class SourceService {
316
345
  : {
317
346
  kind: "clawhub",
318
347
  locator: trimmed,
319
- displayName: deriveDisplayName(trimmed),
320
- sourceId: deriveSourceId(trimmed),
348
+ displayName: options.displayNameOverride ?? deriveDisplayName(trimmed),
349
+ sourceId: options.sourceIdOverride ?? deriveSourceId(trimmed),
321
350
  ...(options.path ? { requestedPath: options.path } : {}),
322
351
  clawhubSlug: slug,
323
352
  versionMode: "floating",
@@ -327,8 +356,8 @@ export class SourceService {
327
356
  kind: "git",
328
357
  locator,
329
358
  gitLocator: await this.normalizeLocator(locator),
330
- displayName: deriveDisplayName(locator),
331
- sourceId: deriveSourceId(locator),
359
+ displayName: options.displayNameOverride ?? deriveDisplayName(locator),
360
+ sourceId: options.sourceIdOverride ?? deriveSourceId(locator),
332
361
  ...(options.path ? { requestedPath: options.path } : {}),
333
362
  };
334
363
  }
@@ -366,6 +395,10 @@ export class SourceService {
366
395
  leaf.relativePath.startsWith(`${normalizedPath}/`));
367
396
  }
368
397
  async fetchSource(source, checkoutPath) {
398
+ if (source.kind === "local") {
399
+ await copyDirectory(source.localPath, checkoutPath);
400
+ return;
401
+ }
369
402
  if (source.kind === "git") {
370
403
  await git(["clone", "--depth", "1", source.gitLocator, checkoutPath]);
371
404
  return;
@@ -382,6 +415,10 @@ export class SourceService {
382
415
  }
383
416
  }
384
417
  async updateSource(source, currentLock) {
418
+ if (source.kind === "local") {
419
+ const contentHash = await hashDirectory(currentLock.checkoutPath);
420
+ return contentHash !== currentLock.contentHash;
421
+ }
385
422
  if (source.kind === "git") {
386
423
  await git(["pull", "--ff-only"], { cwd: currentLock.checkoutPath });
387
424
  const latestCommitSha = await git(["rev-parse", "HEAD"], {
@@ -408,6 +445,11 @@ export class SourceService {
408
445
  return false;
409
446
  }
410
447
  async readSourceSnapshot(kind, checkoutPath) {
448
+ if (kind === "local") {
449
+ return {
450
+ contentHash: await hashDirectory(checkoutPath),
451
+ };
452
+ }
411
453
  if (kind === "git") {
412
454
  return {
413
455
  commitSha: await git(["rev-parse", "HEAD"], { cwd: checkoutPath }),