specweave 3.0.15 → 3.0.17

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 (155) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/README.md +12 -1
  3. package/bin/specweave.js +25 -7
  4. package/dist/plugins/specweave/lib/integrations/github/github-client-v2.js +2 -2
  5. package/dist/plugins/specweave/lib/integrations/github/github-client-v2.js.map +1 -1
  6. package/dist/src/cli/commands/auto-status.d.ts +0 -10
  7. package/dist/src/cli/commands/auto-status.d.ts.map +1 -1
  8. package/dist/src/cli/commands/auto-status.js +3 -2
  9. package/dist/src/cli/commands/auto-status.js.map +1 -1
  10. package/dist/src/cli/commands/auto.d.ts +0 -17
  11. package/dist/src/cli/commands/auto.d.ts.map +1 -1
  12. package/dist/src/cli/commands/auto.js +8 -14
  13. package/dist/src/cli/commands/auto.js.map +1 -1
  14. package/dist/src/cli/commands/get.d.ts +4 -0
  15. package/dist/src/cli/commands/get.d.ts.map +1 -1
  16. package/dist/src/cli/commands/get.js +15 -33
  17. package/dist/src/cli/commands/get.js.map +1 -1
  18. package/dist/src/cli/commands/qa.js +2 -2
  19. package/dist/src/cli/commands/qa.js.map +1 -1
  20. package/dist/src/cli/commands/save.js +1 -1
  21. package/dist/src/cli/commands/save.js.map +1 -1
  22. package/dist/src/cli/commands/sync-progress.d.ts +0 -10
  23. package/dist/src/cli/commands/sync-progress.d.ts.map +1 -1
  24. package/dist/src/cli/commands/sync-progress.js +21 -27
  25. package/dist/src/cli/commands/sync-progress.js.map +1 -1
  26. package/dist/src/cli/commands/task.js +1 -1
  27. package/dist/src/cli/commands/task.js.map +1 -1
  28. package/dist/src/cli/commands/update.js +1 -1
  29. package/dist/src/cli/commands/update.js.map +1 -1
  30. package/dist/src/cli/helpers/get/register-repo.d.ts +1 -11
  31. package/dist/src/cli/helpers/get/register-repo.d.ts.map +1 -1
  32. package/dist/src/cli/helpers/get/register-repo.js +6 -85
  33. package/dist/src/cli/helpers/get/register-repo.js.map +1 -1
  34. package/dist/src/cli/helpers/get/source-parser.d.ts +1 -1
  35. package/dist/src/cli/helpers/get/source-parser.d.ts.map +1 -1
  36. package/dist/src/cli/helpers/get/source-parser.js +4 -4
  37. package/dist/src/cli/helpers/get/source-parser.js.map +1 -1
  38. package/dist/src/cli/helpers/init/path-utils.d.ts +1 -1
  39. package/dist/src/cli/helpers/init/path-utils.d.ts.map +1 -1
  40. package/dist/src/cli/helpers/init/path-utils.js +44 -2
  41. package/dist/src/cli/helpers/init/path-utils.js.map +1 -1
  42. package/dist/src/cli/helpers/init/types.d.ts +1 -0
  43. package/dist/src/cli/helpers/init/types.d.ts.map +1 -1
  44. package/dist/src/core/ac-test-validator-cli.js +1 -1
  45. package/dist/src/core/ac-test-validator-cli.js.map +1 -1
  46. package/dist/src/core/config/types.d.ts +3 -1
  47. package/dist/src/core/config/types.d.ts.map +1 -1
  48. package/dist/src/core/config/types.js.map +1 -1
  49. package/dist/src/core/doctor/checkers/increments-checker.js +2 -2
  50. package/dist/src/core/doctor/checkers/increments-checker.js.map +1 -1
  51. package/dist/src/core/hooks/handlers/hook-router.d.ts.map +1 -1
  52. package/dist/src/core/hooks/handlers/hook-router.js +5 -7
  53. package/dist/src/core/hooks/handlers/hook-router.js.map +1 -1
  54. package/dist/src/core/hooks/handlers/stop.d.ts.map +1 -1
  55. package/dist/src/core/hooks/handlers/stop.js +17 -14
  56. package/dist/src/core/hooks/handlers/stop.js.map +1 -1
  57. package/dist/src/core/hooks/handlers/utils.d.ts.map +1 -1
  58. package/dist/src/core/hooks/handlers/utils.js +7 -15
  59. package/dist/src/core/hooks/handlers/utils.js.map +1 -1
  60. package/dist/src/core/increment/duplicate-detector.d.ts +0 -8
  61. package/dist/src/core/increment/duplicate-detector.d.ts.map +1 -1
  62. package/dist/src/core/increment/duplicate-detector.js +29 -13
  63. package/dist/src/core/increment/duplicate-detector.js.map +1 -1
  64. package/dist/src/core/increment/increment-archiver.d.ts +0 -6
  65. package/dist/src/core/increment/increment-archiver.d.ts.map +1 -1
  66. package/dist/src/core/increment/increment-archiver.js +12 -7
  67. package/dist/src/core/increment/increment-archiver.js.map +1 -1
  68. package/dist/src/core/increment/increment-utils.d.ts +6 -6
  69. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  70. package/dist/src/core/increment/increment-utils.js +26 -27
  71. package/dist/src/core/increment/increment-utils.js.map +1 -1
  72. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  73. package/dist/src/core/increment/metadata-manager.js +20 -7
  74. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  75. package/dist/src/core/increment/number-reservation.d.ts +16 -0
  76. package/dist/src/core/increment/number-reservation.d.ts.map +1 -0
  77. package/dist/src/core/increment/number-reservation.js +125 -0
  78. package/dist/src/core/increment/number-reservation.js.map +1 -0
  79. package/dist/src/core/increment/template-creator.d.ts.map +1 -1
  80. package/dist/src/core/increment/template-creator.js +11 -43
  81. package/dist/src/core/increment/template-creator.js.map +1 -1
  82. package/dist/src/core/living-docs/feature-archiver.js +3 -3
  83. package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
  84. package/dist/src/core/living-docs/feature-consistency-validator.js +1 -1
  85. package/dist/src/core/living-docs/feature-consistency-validator.js.map +1 -1
  86. package/dist/src/core/living-docs/feature-id-manager.js +2 -2
  87. package/dist/src/core/living-docs/feature-id-manager.js.map +1 -1
  88. package/dist/src/core/living-docs/hierarchy-mapper.js +3 -3
  89. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  90. package/dist/src/core/living-docs/living-docs-sync.js +1 -1
  91. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  92. package/dist/src/core/qa/qa-runner.d.ts +0 -6
  93. package/dist/src/core/qa/qa-runner.d.ts.map +1 -1
  94. package/dist/src/core/qa/qa-runner.js +8 -10
  95. package/dist/src/core/qa/qa-runner.js.map +1 -1
  96. package/dist/src/core/session/handoff-all.d.ts +2 -2
  97. package/dist/src/core/session/handoff-all.d.ts.map +1 -1
  98. package/dist/src/core/session/handoff-all.js +5 -3
  99. package/dist/src/core/session/handoff-all.js.map +1 -1
  100. package/dist/src/core/session/handoff-list.d.ts +0 -19
  101. package/dist/src/core/session/handoff-list.d.ts.map +1 -1
  102. package/dist/src/core/session/handoff-list.js +7 -4
  103. package/dist/src/core/session/handoff-list.js.map +1 -1
  104. package/dist/src/core/session/handoff-remote.d.ts +0 -19
  105. package/dist/src/core/session/handoff-remote.d.ts.map +1 -1
  106. package/dist/src/core/session/handoff-remote.js +3 -3
  107. package/dist/src/core/session/handoff-remote.js.map +1 -1
  108. package/dist/src/core/session/nested-repos.d.ts.map +1 -1
  109. package/dist/src/core/session/nested-repos.js +7 -1
  110. package/dist/src/core/session/nested-repos.js.map +1 -1
  111. package/dist/src/core/specs/spec-metadata-manager.js +1 -1
  112. package/dist/src/core/specs/spec-metadata-manager.js.map +1 -1
  113. package/dist/src/core/specs/spec-parser.js +1 -1
  114. package/dist/src/core/specs/spec-parser.js.map +1 -1
  115. package/dist/src/core/tasks/resolve-increment.d.ts.map +1 -1
  116. package/dist/src/core/tasks/resolve-increment.js +3 -2
  117. package/dist/src/core/tasks/resolve-increment.js.map +1 -1
  118. package/dist/src/core/types/increment-metadata.d.ts +2 -0
  119. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  120. package/dist/src/core/types/increment-metadata.js.map +1 -1
  121. package/dist/src/core/workspace/adoption.d.ts +21 -0
  122. package/dist/src/core/workspace/adoption.d.ts.map +1 -0
  123. package/dist/src/core/workspace/adoption.js +187 -0
  124. package/dist/src/core/workspace/adoption.js.map +1 -0
  125. package/dist/src/core/workspace/context.d.ts +21 -0
  126. package/dist/src/core/workspace/context.d.ts.map +1 -0
  127. package/dist/src/core/workspace/context.js +105 -0
  128. package/dist/src/core/workspace/context.js.map +1 -0
  129. package/dist/src/importers/item-converter.js +1 -1
  130. package/dist/src/importers/item-converter.js.map +1 -1
  131. package/dist/src/sync/github-reconciler.js +2 -2
  132. package/dist/src/sync/github-reconciler.js.map +1 -1
  133. package/dist/src/utils/external-tool-drift-detector.js +1 -1
  134. package/dist/src/utils/external-tool-drift-detector.js.map +1 -1
  135. package/dist/src/utils/feature-id-collision.js +1 -1
  136. package/dist/src/utils/feature-id-collision.js.map +1 -1
  137. package/dist/src/utils/find-project-root.d.ts.map +1 -1
  138. package/dist/src/utils/find-project-root.js +16 -36
  139. package/dist/src/utils/find-project-root.js.map +1 -1
  140. package/dist/src/utils/increment-id-validator.d.ts +27 -67
  141. package/dist/src/utils/increment-id-validator.d.ts.map +1 -1
  142. package/dist/src/utils/increment-id-validator.js +57 -106
  143. package/dist/src/utils/increment-id-validator.js.map +1 -1
  144. package/dist/src/utils/resolve-increment-id.d.ts +0 -22
  145. package/dist/src/utils/resolve-increment-id.d.ts.map +1 -1
  146. package/dist/src/utils/resolve-increment-id.js +17 -41
  147. package/dist/src/utils/resolve-increment-id.js.map +1 -1
  148. package/package.json +2 -1
  149. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  150. package/plugins/specweave/lib/integrations/github/github-client-v2.js +2 -2
  151. package/plugins/specweave/lib/integrations/github/github-client-v2.ts +2 -2
  152. package/src/core/schemas/specweave-config.schema.json +1130 -0
  153. package/src/core/schemas/sync.schema.json +687 -0
  154. package/src/core/schemas/workspace.schema.json +209 -0
  155. package/src/templates/git-hooks/pre-commit.template +4 -4
@@ -15,6 +15,7 @@ import * as fs from 'fs';
15
15
  import * as path from 'path';
16
16
  import { resolveIncrementId } from '../../utils/resolve-increment-id.js';
17
17
  import { loadTaskBoard } from './task-board.js';
18
+ import { parseIncrementId, compareIncrementIds } from '../../utils/increment-id-validator.js';
18
19
  export class IncrementResolutionError extends Error {
19
20
  constructor(message, candidates = []) {
20
21
  super(message);
@@ -40,7 +41,7 @@ function listIncrementIdsWithStatus(projectRoot, statuses) {
40
41
  return [];
41
42
  const ids = [];
42
43
  for (const entry of fs.readdirSync(dir)) {
43
- if (!/^\d{4}/.test(entry))
44
+ if (!parseIncrementId(entry, { allowLegacy: true }))
44
45
  continue;
45
46
  const meta = path.join(dir, entry, 'metadata.json');
46
47
  if (!fs.existsSync(meta))
@@ -54,7 +55,7 @@ function listIncrementIdsWithStatus(projectRoot, statuses) {
54
55
  // unreadable metadata → not a candidate
55
56
  }
56
57
  }
57
- return ids.sort();
58
+ return ids.sort(compareIncrementIds);
58
59
  }
59
60
  /** Ids of increments whose metadata.json says `active` (read-only scan). */
60
61
  export function listActiveIncrementIds(projectRoot) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-increment.js","sourceRoot":"","sources":["../../../../src/core/tasks/resolve-increment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve-increment.js","sourceRoot":"","sources":["../../../../src/core/tasks/resolve-increment.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,8 @@ export declare enum IncrementType {
68
68
  export interface IncrementMetadata {
69
69
  /** Increment ID (e.g., "0007-smart-increment-discipline") */
70
70
  id: string;
71
+ /** Immutable identity for new increments. Legacy metadata may omit it. */
72
+ readonly uuid?: string;
71
73
  /** Current status */
72
74
  status: IncrementStatus;
73
75
  /** Increment type */
@@ -1 +1 @@
1
- {"version":3,"file":"increment-metadata.d.ts","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;GAYG;AACH,oBAAY,eAAe;IACzB;;;;;OAKG;IACH,OAAO,YAAY;IAEnB,4EAA4E;IAC5E,MAAM,WAAW;IAEjB,gEAAgE;IAChE,OAAO,YAAY;IAEnB,0EAA0E;IAC1E,MAAM,WAAW;IAEjB;;;;;OAKG;IACH,gBAAgB,qBAAqB;IAErC,gEAAgE;IAChE,SAAS,cAAc;IAEvB,4DAA4D;IAC5D,SAAS,cAAc;CACxB;AAED;;;GAGG;AACH,oBAAY,aAAa;IACvB,oDAAoD;IACpD,MAAM,WAAW;IAEjB,qDAAqD;IACrD,OAAO,YAAY;IAEnB,oEAAoE;IACpE,GAAG,QAAQ;IAEX,yDAAyD;IACzD,cAAc,mBAAmB;IAEjC,yCAAyC;IACzC,QAAQ,aAAa;IAErB,6DAA6D;IAC7D,UAAU,eAAe;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IAEX,qBAAqB;IACrB,MAAM,EAAE,eAAe,CAAC;IAExB,qBAAqB;IACrB,IAAI,EAAE,aAAa,CAAC;IAEpB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IAErB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEpD,qFAAqF;IACrF,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,gFAAgF;IAChF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAuB7D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAwBvF;AAED;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,eAAe,EAAE,eAAe,EAAE,CAoCxE,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,eAAe,EACrB,EAAE,EAAE,eAAe,GAClB,eAAe,EAAE,GAAG,IAAI,CAwB1B;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAC/B,kDAAkD;;IAGlD,kDAAkD;;IAGlD,oDAAoD;;CAErD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,aAAqC,GAAG,iBAAiB,CAUhH;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO,CAGrF;AASD;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAU5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAGtE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAAe,EAGjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAErE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,IAAI,CAQnF;AAMD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IAEX,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IAEd,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IAEX,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IAEf,yBAAyB;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,WAAW,CAAC;CAC1C;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAE9B,+CAA+C;IAC/C,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAExC,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,gFAAgF;IAChF,YAAY,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,KAAK,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,2DAA2D;IAC3D,IAAI,EAAE,cAAc,GAAG,aAAa,GAAG,YAAY,CAAC;IAEpD,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,aAAa,EAAE,MAAM,CAAC;IAEtB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAEpC,6BAA6B;IAC7B,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAE7B,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC;IAEZ,6DAA6D;IAC7D,aAAa,EAAE,MAAM,CAAC;IAEtB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,IAAI,CAAC,EAAE,aAAa,CAAC;QACrB,GAAG,CAAC,EAAE,aAAa,CAAC;KACrB,CAAC;CACH;AAMD;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,wBAAwB,GACxB,eAAe,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;IAEpC;;OAEG;IACH,WAAW,EAAE,oBAAoB,CAAC;IAElC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,yCAAyC;IACzC,KAAK,EAAE,OAAO,CAAC;IAEf,sCAAsC;IACtC,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,gCAAgC;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,qBAAqB,CAAC;IAErC,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IAEjB,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK;IACpB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"increment-metadata.d.ts","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"increment-metadata.js","sourceRoot":"","sources":["../../../../src/core/types/increment-metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,eA+BX;AA/BD,WAAY,eAAe;IACzB;;;;;OAKG;IACH,sCAAmB,CAAA;IAEnB,4EAA4E;IAC5E,oCAAiB,CAAA;IAEjB,gEAAgE;IAChE,sCAAmB,CAAA;IAEnB,0EAA0E;IAC1E,oCAAiB,CAAA;IAEjB;;;;;OAKG;IACH,wDAAqC,CAAA;IAErC,gEAAgE;IAChE,0CAAuB,CAAA;IAEvB,4DAA4D;IAC5D,0CAAuB,CAAA;AACzB,CAAC,EA/BW,eAAe,KAAf,eAAe,QA+B1B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,aAkBX;AAlBD,WAAY,aAAa;IACvB,oDAAoD;IACpD,kCAAiB,CAAA;IAEjB,qDAAqD;IACrD,oCAAmB,CAAA;IAEnB,oEAAoE;IACpE,4BAAW,CAAA;IAEX,yDAAyD;IACzD,kDAAiC,CAAA;IAEjC,yCAAyC;IACzC,sCAAqB,CAAA;IAErB,6DAA6D;IAC7D,0CAAyB,CAAA;AAC3B,CAAC,EAlBW,aAAa,KAAb,aAAa,QAkBxB;AAkFD;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,QAAQ,EAAE,eAAe,CAAC,OAAO;IACjC,GAAG,EAAE,eAAe,CAAC,OAAO;IAC5B,IAAI,EAAE,eAAe,CAAC,OAAO;IAC7B,UAAU,EAAE,eAAe,CAAC,SAAS;IACrC,SAAS,EAAE,eAAe,CAAC,SAAS;IACpC,QAAQ,EAAE,eAAe,CAAC,SAAS;IACnC,IAAI,EAAE,eAAe,CAAC,SAAS;IAC/B,MAAM,EAAE,eAAe,CAAC,SAAS;IACjC,QAAQ,EAAE,eAAe,CAAC,SAAS;IACnC,QAAQ,EAAE,eAAe,CAAC,SAAS;IACnC,WAAW,EAAE,eAAe,CAAC,MAAM;IACnC,aAAa,EAAE,eAAe,CAAC,MAAM;IACrC,aAAa,EAAE,eAAe,CAAC,MAAM;IACrC,OAAO,EAAE,eAAe,CAAC,MAAM;IAC/B,kBAAkB,EAAE,eAAe,CAAC,gBAAgB;IACpD,mBAAmB,EAAE,eAAe,CAAC,gBAAgB;IACrD,WAAW,EAAE,eAAe,CAAC,gBAAgB;IAC7C,WAAW,EAAE,eAAe,CAAC,gBAAgB;IAC7C,MAAM,EAAE,eAAe,CAAC,gBAAgB;IACxC,OAAO,EAAE,eAAe,CAAC,MAAM;IAC/B,SAAS,EAAE,eAAe,CAAC,MAAM;IACjC,OAAO,EAAE,eAAe,CAAC,MAAM;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC,OAAO,CAAC;AAW/D;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAA4B;IAC9D,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,IAAI,CAAC,MAAM,IAAK,MAAM,CAAC,MAAM,CAAC,eAAe,CAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7E,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,6EAA6E;IAC7E,4EAA4E;IAC5E,wEAAwE;IACxE,gCAAgC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtD,MAAM,YAAY,GAAoB,MAAM,CAAC;IAE7C,MAAM,QAAQ,GAA4B,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC3E,IAAI,YAAY,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;QAC/C,6EAA6E;QAC7E,qEAAqE;QACrE,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,SAAS,EAAE,CAAC,CAAC,CAAC,gCAAgC,MAAM,GAAG,CAAC;QAC9G,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW;YAAE,QAAQ,CAAC,WAAW,GAAI,GAAG,CAAC,YAAuB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7G,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,MAAM,kBAAkB,YAAY,GAAG,EAAE,CAAC;AACtG,CAAC;AAuBD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA+C;IAC3E,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,eAAe,CAAC,MAAM,EAAM,kCAAkC;QAC9D,eAAe,CAAC,OAAO,EAAK,mCAAmC;QAC/D,eAAe,CAAC,SAAS,CAAG,kBAAkB;KAC/C;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,eAAe,CAAC,OAAO;QACvB,eAAe,CAAC,MAAM;QACtB,eAAe,CAAC,gBAAgB,EAAE,mCAAmC;QACrE,eAAe,CAAC,SAAS;QACzB,8EAA8E;KAC/E;IACD,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE;QACzB,eAAe,CAAC,OAAO,EAAI,kBAAkB;QAC7C,eAAe,CAAC,MAAM;QACtB,eAAe,CAAC,SAAS;KAC1B;IACD,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE;QACxB,eAAe,CAAC,MAAM;QACtB,eAAe,CAAC,gBAAgB,EAAE,6BAA6B;QAC/D,eAAe,CAAC,SAAS;KAC1B;IACD,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE;QAClC,eAAe,CAAC,SAAS,EAAG,+CAA+C;QAC3E,eAAe,CAAC,MAAM,EAAM,6BAA6B;QACzD,eAAe,CAAC,SAAS,CAAG,iCAAiC;KAC9D;IACD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3B,8DAA8D;QAC9D,eAAe,CAAC,MAAM,EAAM,mBAAmB;QAC/C,eAAe,CAAC,SAAS,CAAG,wBAAwB;KACrD;IACD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;QAC3B,eAAe,CAAC,MAAM,CAAE,kCAAkC;KAC3D;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAqB,EACrB,EAAmB;IAEnB,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAgE;QACzE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;KAC3B,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC/B,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE1D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChC,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,IAAI,KAAK,EAAE;gBAAE,OAAO,OAAO,CAAC;YAEhC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,kDAAkD;IAClD,MAAM,EAAE,CAAC;IAET,kDAAkD;IAClD,MAAM,EAAE,EAAE;IAEV,oDAAoD;IACpD,UAAU,EAAE,EAAE;CACf,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAU,EAAE,OAAsB,aAAa,CAAC,OAAO;IAC3F,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO;QACL,EAAE;QACF,MAAM,EAAE,eAAe,CAAC,OAAO,EAAG,gDAAgD;QAClF,IAAI;QACJ,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,GAAG;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAqB,EAAE,EAAmB;IAC1E,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,QAA2B;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACpE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;QAC/C,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC;IACnE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,OAAO,QAAQ,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU;QAC/C,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,oBAAoB,CAAC,UAAU,CAAC;AACvE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,eAAe,CAAC,MAAM;IACtB,eAAe,CAAC,gBAAgB;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAqB,EAAE,EAAmB;IAC3E,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QACjC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAI,MAAM,EAAE,KAAK;YACxC,0BAA0B,IAAI,KAAK,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type RegisteredRepository } from './context.js';
2
+ export interface AdoptionOptions {
3
+ prefix?: string;
4
+ role?: string;
5
+ dryRun?: boolean;
6
+ expectedFingerprint?: string;
7
+ }
8
+ export interface AdoptionPreview {
9
+ workspaceRoot: string;
10
+ sourcePath: string;
11
+ action: 'register' | 'already-registered';
12
+ repository: RegisteredRepository;
13
+ childPlanningRoot: string | null;
14
+ fingerprint: string;
15
+ }
16
+ /** Strip credentials and transport details, retaining host and full owner/repository namespace. */
17
+ export declare function normalizeRemote(value: string): string | undefined;
18
+ export declare function previewAdoption(workspaceRoot: string, source: string, options?: AdoptionOptions): AdoptionPreview;
19
+ /** Exclusive writers plus atomic replacement prevent partially written configs and lost registrations. */
20
+ export declare function adoptRepository(workspaceRoot: string, source: string, options?: AdoptionOptions): Promise<AdoptionPreview>;
21
+ //# sourceMappingURL=adoption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../../../src/core/workspace/adoption.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsC,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE7F,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AACD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,GAAG,oBAAoB,CAAC;IAC1C,UAAU,EAAE,oBAAoB,CAAC;IACjC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,mGAAmG;AACnG,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAYjE;AAsCD,wBAAgB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,eAAe,CAqCrH;AAED,0GAA0G;AAC1G,wBAAsB,eAAe,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4CpI"}
@@ -0,0 +1,187 @@
1
+ /** Adopt existing checkouts by registering them; never initialize, copy or move their contents. */
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ import { devNull } from 'node:os';
5
+ import { execFileSync } from 'node:child_process';
6
+ import { createHash, randomUUID } from 'node:crypto';
7
+ import { canonicalPath, readWorkspaceConfig } from './context.js';
8
+ const digest = (value) => createHash('sha256').update(value).digest('hex');
9
+ /** Strip credentials and transport details, retaining host and full owner/repository namespace. */
10
+ export function normalizeRemote(value) {
11
+ let url;
12
+ try {
13
+ const scp = value.match(/^(?:[^@/]+@)?([^:/]+):([^/].*)$/);
14
+ url = new URL(scp && !value.includes('://') ? `ssh://${scp[1]}/${scp[2]}` : value);
15
+ }
16
+ catch {
17
+ return undefined;
18
+ }
19
+ if (!['https:', 'http:', 'ssh:', 'git:'].includes(url.protocol) || !url.hostname)
20
+ return undefined;
21
+ let remotePath = url.pathname.replace(/^\/+|\/+$/g, '').replace(/\.git$/i, '');
22
+ if (!remotePath || remotePath.includes('..') || /[\s\\]/.test(remotePath))
23
+ return undefined;
24
+ if ((url.protocol === 'ssh:' && url.port === '22') || (url.protocol === 'git:' && url.port === '9418'))
25
+ url.port = '';
26
+ if (url.hostname.toLowerCase() === 'github.com')
27
+ remotePath = remotePath.toLowerCase();
28
+ return `${url.host.toLowerCase()}/${remotePath}`;
29
+ }
30
+ function inspectCheckout(source) {
31
+ let root;
32
+ try {
33
+ root = canonicalPath(source);
34
+ }
35
+ catch {
36
+ throw new Error(`Repository does not exist: ${source}`);
37
+ }
38
+ if (!fs.statSync(root).isDirectory() || !fs.existsSync(path.join(root, '.git'))) {
39
+ throw new Error(`Not a Git checkout root: ${root}`);
40
+ }
41
+ // The selected checkout, not Git state inherited from an enclosing hook or
42
+ // another repo, owns both the root check and the observed remote identity.
43
+ const env = { ...process.env };
44
+ for (const key of Object.keys(env))
45
+ if (key.startsWith('GIT_'))
46
+ delete env[key];
47
+ Object.assign(env, { GIT_OPTIONAL_LOCKS: '0', GIT_TERMINAL_PROMPT: '0', GIT_CONFIG_NOSYSTEM: '1', GIT_CONFIG_GLOBAL: devNull });
48
+ const git = (args) => execFileSync('git', args, {
49
+ cwd: root, encoding: 'utf8', timeout: 5000, stdio: ['ignore', 'pipe', 'pipe'],
50
+ env,
51
+ }).trim();
52
+ try {
53
+ if (canonicalPath(git(['rev-parse', '--show-toplevel'])) !== root)
54
+ throw new Error('Not checkout root');
55
+ }
56
+ catch {
57
+ throw new Error(`Not a valid Git checkout root: ${root}`);
58
+ }
59
+ let identity;
60
+ try {
61
+ identity = normalizeRemote(git(['config', '--local', '--get', 'remote.origin.url']));
62
+ }
63
+ catch { /* Local-only checkout. */ }
64
+ return { root, identity };
65
+ }
66
+ function storedIdentity(repo) {
67
+ if (repo.identity)
68
+ return repo.identity;
69
+ const github = repo.sync?.github;
70
+ return github?.owner && github.repo ? normalizeRemote(`https://github.com/${github.owner}/${github.repo}`)
71
+ : typeof repo.githubUrl === 'string' ? normalizeRemote(repo.githubUrl) : undefined;
72
+ }
73
+ function configAt(root) {
74
+ const raw = fs.readFileSync(path.join(root, '.specweave', 'config.json'), 'utf8');
75
+ const config = readWorkspaceConfig(root);
76
+ return { config, raw, repos: config.workspace?.repos ?? config.umbrella?.childRepos ?? [] };
77
+ }
78
+ export function previewAdoption(workspaceRoot, source, options = {}) {
79
+ const root = canonicalPath(workspaceRoot);
80
+ const { raw, repos } = configAt(root);
81
+ const checkout = inspectCheckout(source);
82
+ const matches = repos.filter(repo => {
83
+ try {
84
+ return canonicalPath(path.resolve(root, repo.path)) === checkout.root;
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ });
90
+ if (matches.length > 1)
91
+ throw new Error(`Multiple workspace entries refer to ${checkout.root}; resolve duplicate entries first`);
92
+ const existing = matches[0];
93
+ if (existing && storedIdentity(existing) && storedIdentity(existing) !== checkout.identity) {
94
+ throw new Error(`Repository origin changed for '${existing.id}'; update its workspace identity explicitly`);
95
+ }
96
+ const remoteParts = checkout.identity?.split('/') ?? [];
97
+ const name = remoteParts[remoteParts.length - 1] ?? path.basename(checkout.root);
98
+ const owner = remoteParts.length > 2 ? remoteParts.slice(1, -1).join('-') : '';
99
+ const slug = `${owner ? `${owner}-` : ''}${name}`.toLowerCase().replace(/[^a-z0-9-]+/g, '-').replace(/^-+|-+$/g, '') || 'repo';
100
+ const suffix = digest(`${checkout.identity ?? ''}\n${checkout.root}`).slice(0, 12);
101
+ let id = slug.length <= 64 ? slug : `${slug.slice(0, 51)}-${suffix}`;
102
+ if (repos.some(repo => repo.id === id))
103
+ id = `${slug.slice(0, 51)}-${suffix}`;
104
+ if (!existing && repos.some(repo => repo.id === id))
105
+ throw new Error(`Repository id collision: ${id}`);
106
+ const prefix = options.prefix ?? (name.replace(/[^a-z0-9]/gi, '').slice(0, 3).toUpperCase() || 'REP');
107
+ if (!prefix || prefix.length > 10)
108
+ throw new Error('Repository prefix must contain 1 to 10 characters');
109
+ if (options.role && !['frontend', 'backend', 'mobile', 'infra', 'shared', 'other'].includes(options.role)) {
110
+ throw new Error('Invalid repository role');
111
+ }
112
+ const entry = existing ?? {
113
+ id, path: path.relative(root, checkout.root).split(path.sep).join('/') || '.', name, prefix,
114
+ ...(options.role ? { role: options.role } : {}),
115
+ ...(checkout.identity ? { identity: checkout.identity } : {}),
116
+ ...(remoteParts[0] === 'github.com' && remoteParts.length === 3
117
+ ? { sync: { github: { owner: remoteParts[1], repo: remoteParts[2] } } } : {}),
118
+ };
119
+ return {
120
+ workspaceRoot: root, sourcePath: checkout.root, action: existing ? 'already-registered' : 'register', repository: entry,
121
+ childPlanningRoot: checkout.root !== root && fs.existsSync(path.join(checkout.root, '.specweave', 'config.json')) ? checkout.root : null,
122
+ fingerprint: digest(`${raw}\n${checkout.root}\n${checkout.identity ?? ''}\n${JSON.stringify(entry)}`),
123
+ };
124
+ }
125
+ /** Exclusive writers plus atomic replacement prevent partially written configs and lost registrations. */
126
+ export async function adoptRepository(workspaceRoot, source, options = {}) {
127
+ if (options.dryRun)
128
+ return previewAdoption(workspaceRoot, source, options);
129
+ const root = canonicalPath(workspaceRoot);
130
+ readWorkspaceConfig(root); // fail before creating a lock in an invalid workspace
131
+ const file = path.join(root, '.specweave', 'config.json');
132
+ const lock = `${file}.adoption.lock`;
133
+ const token = randomUUID();
134
+ const deadline = Date.now() + 10000;
135
+ let fd;
136
+ for (;;) {
137
+ try {
138
+ fd = fs.openSync(lock, 'wx', 0o600);
139
+ break;
140
+ }
141
+ catch (error) {
142
+ if (error.code !== 'EEXIST')
143
+ throw error;
144
+ if (Date.now() >= deadline)
145
+ throw new Error(`Workspace registration is locked: ${lock}. Check its owner process before removing a leftover lock.`);
146
+ await new Promise(resolve => setTimeout(resolve, 20));
147
+ }
148
+ }
149
+ const temporary = `${file}.${token}.tmp`;
150
+ try {
151
+ fs.writeFileSync(fd, JSON.stringify({ pid: process.pid, token }));
152
+ fs.closeSync(fd);
153
+ fd = undefined;
154
+ const preview = previewAdoption(root, source, options);
155
+ if (options.expectedFingerprint && preview.fingerprint !== options.expectedFingerprint) {
156
+ throw new Error('Workspace or repository changed since preview. Preview again before applying.');
157
+ }
158
+ if (preview.action === 'already-registered')
159
+ return preview;
160
+ const { raw, config, repos } = configAt(root);
161
+ const next = { ...config, workspace: {
162
+ ...(config.workspace ?? { name: config.umbrella?.projectName ?? config.project?.name ?? path.basename(root) }),
163
+ repos: [...repos, preview.repository],
164
+ } };
165
+ const output = fs.openSync(temporary, 'wx', fs.statSync(file).mode & 0o777);
166
+ try {
167
+ fs.writeFileSync(output, JSON.stringify(next, null, 2) + '\n');
168
+ fs.fsyncSync(output);
169
+ }
170
+ finally {
171
+ fs.closeSync(output);
172
+ }
173
+ // Detect non-cooperating writers and origin/path changes before replacing the config.
174
+ if (fs.readFileSync(file, 'utf8') !== raw || previewAdoption(root, source, options).fingerprint !== preview.fingerprint) {
175
+ throw new Error('Workspace or repository changed during registration. Retry after reviewing a fresh preview.');
176
+ }
177
+ fs.renameSync(temporary, file);
178
+ return preview;
179
+ }
180
+ finally {
181
+ if (fd !== undefined)
182
+ fs.closeSync(fd);
183
+ fs.rmSync(temporary, { force: true });
184
+ fs.rmSync(lock, { force: true });
185
+ }
186
+ }
187
+ //# sourceMappingURL=adoption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../../../src/core/workspace/adoption.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface RegisteredRepository {
2
+ id: string;
3
+ path: string;
4
+ prefix?: string;
5
+ identity?: string;
6
+ [key: string]: unknown;
7
+ }
8
+ export declare function canonicalPath(value: string): string;
9
+ export declare function isWithin(root: string, candidate: string): boolean;
10
+ export declare function readWorkspaceConfig(root: string): Record<string, any>;
11
+ /** Only visits explicitly registered paths. Missing checkouts stay registered but are not scanned. */
12
+ export declare function registeredRepositories(root: string): Array<RegisteredRepository & {
13
+ absolutePath: string;
14
+ }>;
15
+ /** Explicit selection never falls back when invalid, and inherited context must match membership. */
16
+ export declare function explicitWorkspaceRoot(startDir: string, selected?: string | undefined, requireMembership?: boolean): string | null;
17
+ /** Config membership replaces the directory convention, which remains a legacy fallback. */
18
+ export declare function isWorkspaceRoot(root: string): boolean;
19
+ /** Old umbrella flags predate explicit inventories and imply nested membership. */
20
+ export declare function hasLegacyWorkspaceLayout(root: string): boolean;
21
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/core/workspace/context.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGjE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAerE;AAED,sGAAsG;AACtG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,oBAAoB,GAAG;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAU3G;AAED,qGAAqG;AACrG,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,qBAAkC,EAChG,iBAAiB,UAAO,GAAG,MAAM,GAAG,IAAI,CAczC;AAED,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMrD;AAED,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM9D"}
@@ -0,0 +1,105 @@
1
+ /** Filesystem-only workspace context. No Git, network, recursive scan or config migration. */
2
+ import * as fs from 'node:fs';
3
+ import * as path from 'node:path';
4
+ export function canonicalPath(value) {
5
+ return fs.realpathSync.native(path.resolve(value));
6
+ }
7
+ export function isWithin(root, candidate) {
8
+ const relative = path.relative(root, candidate);
9
+ return relative === '' || (!relative.startsWith(`..${path.sep}`) && relative !== '..' && !path.isAbsolute(relative));
10
+ }
11
+ export function readWorkspaceConfig(root) {
12
+ const file = path.join(root, '.specweave', 'config.json');
13
+ let config;
14
+ try {
15
+ config = JSON.parse(fs.readFileSync(file, 'utf8'));
16
+ }
17
+ catch {
18
+ throw new Error(`Cannot read workspace config: ${file}`);
19
+ }
20
+ if (!config || typeof config !== 'object' || Array.isArray(config))
21
+ throw new Error(`Invalid workspace config: ${file}`);
22
+ if (config.workspace !== undefined && (!config.workspace || typeof config.workspace !== 'object'
23
+ || !Array.isArray(config.workspace.repos)))
24
+ throw new Error(`Invalid workspace.repos in ${file}`);
25
+ const repos = config.workspace?.repos ?? config.umbrella?.childRepos ?? [];
26
+ if (!Array.isArray(repos) || repos.some((repo) => !repo || typeof repo.id !== 'string'
27
+ || typeof repo.path !== 'string' || !repo.path.trim()))
28
+ throw new Error(`Invalid repository paths in ${file}`);
29
+ return config;
30
+ }
31
+ /** Only visits explicitly registered paths. Missing checkouts stay registered but are not scanned. */
32
+ export function registeredRepositories(root) {
33
+ const config = readWorkspaceConfig(root);
34
+ const repos = config.workspace?.repos ?? config.umbrella?.childRepos ?? [];
35
+ return repos.flatMap(repo => {
36
+ try {
37
+ const absolutePath = canonicalPath(path.resolve(root, repo.path));
38
+ if (!fs.statSync(absolutePath).isDirectory())
39
+ return [];
40
+ return [{ ...repo, absolutePath }];
41
+ }
42
+ catch {
43
+ return [];
44
+ }
45
+ });
46
+ }
47
+ /** Explicit selection never falls back when invalid, and inherited context must match membership. */
48
+ export function explicitWorkspaceRoot(startDir, selected = process.env.SPECWEAVE_WORKSPACE, requireMembership = true) {
49
+ if (selected === undefined)
50
+ return null;
51
+ if (!selected.trim())
52
+ throw new Error('SPECWEAVE_WORKSPACE must name a workspace directory');
53
+ let root;
54
+ try {
55
+ root = canonicalPath(selected);
56
+ }
57
+ catch {
58
+ throw new Error(`Workspace does not exist: ${selected}`);
59
+ }
60
+ readWorkspaceConfig(root);
61
+ if (requireMembership) {
62
+ let start;
63
+ try {
64
+ start = canonicalPath(startDir);
65
+ }
66
+ catch {
67
+ throw new Error(`Working directory does not exist: ${startDir}`);
68
+ }
69
+ if (!isWithin(root, start) && !registeredRepositories(root).some(repo => isWithin(repo.absolutePath, start))) {
70
+ throw new Error(`Working directory is not a member of workspace ${root}: ${start}`);
71
+ }
72
+ }
73
+ return root;
74
+ }
75
+ /** Config membership replaces the directory convention, which remains a legacy fallback. */
76
+ export function isWorkspaceRoot(root) {
77
+ try {
78
+ const config = readWorkspaceConfig(root);
79
+ if (config.workspace?.repos.length > 0 || config.umbrella?.enabled || config.repository?.umbrellaRepo)
80
+ return true;
81
+ }
82
+ catch { /* Legacy malformed config may still have the conventional directory marker. */ }
83
+ try {
84
+ return fs.statSync(path.join(root, 'repositories')).isDirectory();
85
+ }
86
+ catch {
87
+ return false;
88
+ }
89
+ }
90
+ /** Old umbrella flags predate explicit inventories and imply nested membership. */
91
+ export function hasLegacyWorkspaceLayout(root) {
92
+ try {
93
+ const config = readWorkspaceConfig(root);
94
+ if (config.umbrella?.enabled || config.repository?.umbrellaRepo)
95
+ return true;
96
+ }
97
+ catch { /* Keep conventional directory compatibility. */ }
98
+ try {
99
+ return fs.statSync(path.join(root, 'repositories')).isDirectory();
100
+ }
101
+ catch {
102
+ return false;
103
+ }
104
+ }
105
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/core/workspace/context.ts"],"names":[],"mappings":"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"}
@@ -1276,7 +1276,7 @@ ${isOrphanGroup ? `- **Type**: Orphan (no parent Epic)` : ''}
1276
1276
  const items = fs.readdirSync(incrementsDir);
1277
1277
  const incrementDirs = items.filter(item => {
1278
1278
  const fullPath = path.join(incrementsDir, item);
1279
- return fs.statSync(fullPath).isDirectory() && /^\d{3,4}E?-/.test(item);
1279
+ return fs.statSync(fullPath).isDirectory() && /^\d{3,}E?-/.test(item);
1280
1280
  });
1281
1281
  if (incrementDirs.length > 0) {
1282
1282
  throw new Error(`VALIDATION FAILED: Increments were auto-created during import. ` +