tanmi-dock 1.0.4 → 1.0.5

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 (47) hide show
  1. package/dist/commands/check.d.ts +30 -4
  2. package/dist/commands/check.d.ts.map +1 -1
  3. package/dist/commands/check.js +453 -84
  4. package/dist/commands/check.js.map +1 -1
  5. package/dist/commands/link.d.ts.map +1 -1
  6. package/dist/commands/link.js +109 -35
  7. package/dist/commands/link.js.map +1 -1
  8. package/dist/commands/status.d.ts.map +1 -1
  9. package/dist/commands/status.js +9 -3
  10. package/dist/commands/status.js.map +1 -1
  11. package/dist/commands/unlink.d.ts.map +1 -1
  12. package/dist/commands/unlink.js +9 -0
  13. package/dist/commands/unlink.js.map +1 -1
  14. package/dist/core/config.d.ts.map +1 -1
  15. package/dist/core/config.js +4 -3
  16. package/dist/core/config.js.map +1 -1
  17. package/dist/core/space/calibration-executor.d.ts +2 -1
  18. package/dist/core/space/calibration-executor.d.ts.map +1 -1
  19. package/dist/core/space/calibration-executor.js +2 -0
  20. package/dist/core/space/calibration-executor.js.map +1 -1
  21. package/dist/core/space/inventory.d.ts +2 -1
  22. package/dist/core/space/inventory.d.ts.map +1 -1
  23. package/dist/core/space/inventory.js +23 -0
  24. package/dist/core/space/inventory.js.map +1 -1
  25. package/dist/core/space/service.d.ts +2 -2
  26. package/dist/core/space/service.d.ts.map +1 -1
  27. package/dist/core/space/service.js +2 -2
  28. package/dist/core/space/service.js.map +1 -1
  29. package/dist/core/space/types.d.ts +7 -0
  30. package/dist/core/space/types.d.ts.map +1 -1
  31. package/dist/core/space/types.js.map +1 -1
  32. package/dist/core/store-write-protection.d.ts +30 -0
  33. package/dist/core/store-write-protection.d.ts.map +1 -0
  34. package/dist/core/store-write-protection.js +320 -0
  35. package/dist/core/store-write-protection.js.map +1 -0
  36. package/dist/core/transaction.d.ts +12 -3
  37. package/dist/core/transaction.d.ts.map +1 -1
  38. package/dist/core/transaction.js +160 -16
  39. package/dist/core/transaction.js.map +1 -1
  40. package/dist/utils/fs-utils.d.ts.map +1 -1
  41. package/dist/utils/fs-utils.js +46 -9
  42. package/dist/utils/fs-utils.js.map +1 -1
  43. package/dist/utils/logger.d.ts +6 -0
  44. package/dist/utils/logger.d.ts.map +1 -1
  45. package/dist/utils/logger.js +43 -3
  46. package/dist/utils/logger.js.map +1 -1
  47. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/core/space/service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,eAAe,MAAM,gBAAgB,CAAC;AAElD,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM;IAGpC,aAAa,CACX,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,EACtC,OAAO,CAAC,EAAE,aAAa,EAAE,GACxB,OAAO,CAAC,kBAAkB,CAAC;IAI9B,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,gBAAgB,EAAE;IAIhE,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ9E,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB;IAIvF,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB;IAIlE,qBAAqB,IAAI,eAAe;IAIxC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,oBAAoB;IAIxE,yBAAyB,IAAI,mBAAmB;CAGjD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAKhE;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/core/space/service.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,eAAe,MAAM,gBAAgB,CAAC;AAElD,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,MAAM;IAGpC,aAAa,CACX,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,EACtC,OAAO,CAAC,EAAE,aAAa,EAAE,EACzB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,GACrD,OAAO,CAAC,kBAAkB,CAAC;IAI9B,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,gBAAgB,EAAE;IAIhE,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ9E,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,kBAAkB;IAIvF,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB;IAIlE,qBAAqB,IAAI,eAAe;IAIxC,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,oBAAoB;IAIxE,yBAAyB,IAAI,mBAAmB;CAGjD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,CAKhE;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,wBAAwB,CAAC"}
@@ -12,8 +12,8 @@ export class SpaceService {
12
12
  this.registry = registry;
13
13
  this.storePath = storePath;
14
14
  }
15
- buildSnapshot(mode, targets) {
16
- return buildStoreSpaceSnapshot(this.registry, this.storePath, { mode, targets });
15
+ buildSnapshot(mode, targets, onProgress) {
16
+ return buildStoreSpaceSnapshot(this.registry, this.storePath, { mode, targets, onProgress });
17
17
  }
18
18
  getCleanupCandidates(snapshot) {
19
19
  return buildCleanupCandidates(snapshot);
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/core/space/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAahE,MAAM,OAAO,YAAY;IAEJ;IACA;IAFnB,YACmB,QAAyB,EACzB,SAAiB;QADjB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAQ;IACjC,CAAC;IAEJ,aAAa,CACX,IAAsC,EACtC,OAAyB;QAEzB,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,oBAAoB,CAAC,QAA4B;QAC/C,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,UAAU,EACV,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CACpD,CAAC;QACF,OAAO,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,QAA4B,EAAE,WAAmB;QAChE,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB,CAAC,QAA4B;QAC3C,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,QAA4B;QAC/C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7C,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/core/space/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAchE,MAAM,OAAO,YAAY;IAEJ;IACA;IAFnB,YACmB,QAAyB,EACzB,SAAiB;QADjB,aAAQ,GAAR,QAAQ,CAAiB;QACzB,cAAS,GAAT,SAAS,CAAQ;IACjC,CAAC;IAEJ,aAAa,CACX,IAAsC,EACtC,OAAyB,EACzB,UAAsD;QAEtD,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,oBAAoB,CAAC,QAA4B;QAC/C,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QACrD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CACvC,UAAU,EACV,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CACpD,CAAC;QACF,OAAO,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,gBAAgB,CAAC,QAA4B,EAAE,WAAmB;QAChE,OAAO,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB,CAAC,QAA4B;QAC3C,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,QAA4B;QAC/C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7C,OAAO,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EACL,iCAAiC,EACjC,gCAAgC,GACjC,MAAM,wBAAwB,CAAC"}
@@ -76,6 +76,13 @@ export interface StoreSpaceSnapshot {
76
76
  physicalPath: string;
77
77
  }>;
78
78
  }
79
+ /** Store 快照扫描进度。命令层可据此展示进度,空间模块不直接操作终端。 */
80
+ export interface SpaceSnapshotProgress {
81
+ phase: 'inspect-commits' | 'measure-store' | 'completed';
82
+ completedCommits: number;
83
+ totalCommits: number;
84
+ current?: StoreCommitId;
85
+ }
79
86
  export interface ProjectSpaceReport {
80
87
  projectHash: string;
81
88
  total: SpaceAmount;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/space/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/space/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;AAC5E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AACjF,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;AACnD,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,CAAC;AAEjF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,aAAa,GAAG,oBAAoB,GAAG,eAAe,CAAC;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,sBAAsB,CAAC;IACxC,iBAAiB,EAAE,wBAAwB,EAAE,CAAC;IAC9C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,cAAc,CAAC;AAEnB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,EAAE,EAAE,aAAa,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,WAAW,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,gBAAgB,EAAE,KAAK,CAAC;QACtB,IAAI,EAAE,UAAU,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,iBAAiB,GAAG,eAAe,GAAG,WAAW,CAAC;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,aAAa,EAAE,UAAU,GAAG,QAAQ,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,CAAC;IAClB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,wBAAwB,EAAE,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC5B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,oCAAoC;IACpC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,CAAC;IAClB,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,CAAC;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,WAAW,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,mBAAmB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,eAAe,EAAE,WAAW,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,aAAa,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,WAAW,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,aAAa,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3C,QAAQ,EAAE,WAAW,CAAC;IACtB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,iBAAiB,GACzB,iBAAiB,GACjB,yBAAyB,GACzB,0BAA0B,CAAC;AAE/B,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,aAAa,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,sBAAsB,CAAC;IACxC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,YAAY,EAAE;QACZ,OAAO,EAAE,6BAA6B,EAAE,CAAC;QACzC,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,OAAO,EAAE;QACP,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC;QACrB,sBAAsB,EAAE,MAAM,CAAC;QAC/B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,oBAAoB,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,aAAa,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,YAAY,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CAWb"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/space/types.ts"],"names":[],"mappings":"AAmSA,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,KAAiB,EACjB,OAAqB,EACrB,MAAe;IAEf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,KAAK;QACL,OAAO;QACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/space/types.ts"],"names":[],"mappings":"AA2SA,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,KAAiB,EACjB,OAAqB,EACrB,MAAe;IAEf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,KAAK;QACL,OAAO;QACP,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;QACtB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { Transaction } from './transaction.js';
2
+ export interface PrepareWritableDirectoriesOptions {
3
+ projectRoot: string;
4
+ storePath: string;
5
+ reason: string;
6
+ transaction: Transaction;
7
+ dryRun?: boolean;
8
+ }
9
+ export interface WritablePreparationResult {
10
+ requestedPath: string;
11
+ status: 'safe' | 'materialized' | 'planned';
12
+ materializedPaths: string[];
13
+ }
14
+ /**
15
+ * 判断 General 项目目录是否为 TanmiDock 从指定 Store _shared 创建的项目副本。
16
+ * 该标记让后续 link 保留 action 生成内容,而不是重新替换为 Store 链接。
17
+ */
18
+ export declare function isMaterializedStoreDirectory(directoryPath: string, expectedSourcePath: string): Promise<boolean>;
19
+ /** 移除项目副本标记,使 unlink 后的普通目录不再被 link 当作受管副本。 */
20
+ export declare function removeMaterializationMarker(directoryPath: string): Promise<boolean>;
21
+ /**
22
+ * 将项目中指向 Store _shared 根目录或其子目录的链接转换为项目物理目录。
23
+ * 目录转换纳入 link 事务,失败或进程中断后可以恢复原链接。
24
+ */
25
+ export declare function prepareWritableDirectory(requestedPath: string, options: PrepareWritableDirectoriesOptions): Promise<WritablePreparationResult>;
26
+ /**
27
+ * 在底层文件操作前验证目标及其最近存在祖先均位于 Store 外。
28
+ */
29
+ export declare function assertPathOutsideStore(targetPath: string, storePath: string, operation: string): Promise<void>;
30
+ //# sourceMappingURL=store-write-protection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-write-protection.d.ts","sourceRoot":"","sources":["../../src/core/store-write-protection.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUpD,MAAM,WAAW,iCAAiC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAqFD;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC,CAmBlB;AAED,+CAA+C;AAC/C,wBAAsB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzF;AAkJD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,yBAAyB,CAAC,CAuEpC;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -0,0 +1,320 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { copyDir } from '../utils/fs-utils.js';
4
+ import { debug, error, info } from '../utils/logger.js';
5
+ const MATERIALIZATION_MARKER = '.tanmi-dock-materialized.json';
6
+ function isPathInsideOrEqual(root, target) {
7
+ const resolvedRoot = path.resolve(root);
8
+ const resolvedTarget = path.resolve(target);
9
+ const comparableRoot = process.platform === 'win32' ? resolvedRoot.toLowerCase() : resolvedRoot;
10
+ const comparableTarget = process.platform === 'win32' ? resolvedTarget.toLowerCase() : resolvedTarget;
11
+ const relative = path.relative(comparableRoot, comparableTarget);
12
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
13
+ }
14
+ async function pathExists(targetPath) {
15
+ try {
16
+ await fs.lstat(targetPath);
17
+ return true;
18
+ }
19
+ catch (err) {
20
+ if (err.code === 'ENOENT')
21
+ return false;
22
+ throw err;
23
+ }
24
+ }
25
+ async function findNearestExistingPath(targetPath) {
26
+ let current = path.resolve(targetPath);
27
+ while (true) {
28
+ if (await pathExists(current))
29
+ return current;
30
+ const parent = path.dirname(current);
31
+ if (parent === current)
32
+ return null;
33
+ current = parent;
34
+ }
35
+ }
36
+ async function resolveStorePath(storePath) {
37
+ try {
38
+ return await fs.realpath(storePath);
39
+ }
40
+ catch (err) {
41
+ if (err.code === 'ENOENT')
42
+ return path.resolve(storePath);
43
+ throw err;
44
+ }
45
+ }
46
+ async function resolveThroughExistingAncestor(targetPath) {
47
+ const resolvedTarget = path.resolve(targetPath);
48
+ const existingPath = await findNearestExistingPath(resolvedTarget);
49
+ if (!existingPath)
50
+ return resolvedTarget;
51
+ try {
52
+ const realExistingPath = await fs.realpath(existingPath);
53
+ const remaining = path.relative(existingPath, resolvedTarget);
54
+ return path.resolve(realExistingPath, remaining);
55
+ }
56
+ catch (err) {
57
+ if (err.code === 'ENOENT')
58
+ return resolvedTarget;
59
+ throw err;
60
+ }
61
+ }
62
+ async function resolveSymbolicLinkTarget(linkPath) {
63
+ try {
64
+ return await fs.realpath(linkPath);
65
+ }
66
+ catch (err) {
67
+ if (err.code !== 'ENOENT')
68
+ throw err;
69
+ const linkTarget = await fs.readlink(linkPath);
70
+ return path.resolve(path.dirname(linkPath), linkTarget);
71
+ }
72
+ }
73
+ function isSharedMaterializationSource(storePath, targetPath) {
74
+ const resolvedStorePath = path.resolve(storePath);
75
+ const resolvedTargetPath = path.resolve(targetPath);
76
+ const comparableStorePath = process.platform === 'win32' ? resolvedStorePath.toLowerCase() : resolvedStorePath;
77
+ const comparableTargetPath = process.platform === 'win32' ? resolvedTargetPath.toLowerCase() : resolvedTargetPath;
78
+ const relative = path.relative(comparableStorePath, comparableTargetPath);
79
+ if (relative.startsWith('..') || path.isAbsolute(relative))
80
+ return false;
81
+ const parts = relative.split(path.sep).filter(Boolean);
82
+ return parts.length >= 3 && parts[2].toLowerCase() === '_shared';
83
+ }
84
+ function isSharedRoot(storePath, targetPath) {
85
+ const relative = path.relative(path.resolve(storePath), path.resolve(targetPath));
86
+ if (relative.startsWith('..') || path.isAbsolute(relative))
87
+ return false;
88
+ const parts = relative.split(path.sep).filter(Boolean);
89
+ return parts.length === 3 && parts[2].toLowerCase() === '_shared';
90
+ }
91
+ /**
92
+ * 判断 General 项目目录是否为 TanmiDock 从指定 Store _shared 创建的项目副本。
93
+ * 该标记让后续 link 保留 action 生成内容,而不是重新替换为 Store 链接。
94
+ */
95
+ export async function isMaterializedStoreDirectory(directoryPath, expectedSourcePath) {
96
+ try {
97
+ const markerContent = await fs.readFile(path.join(directoryPath, MATERIALIZATION_MARKER), 'utf-8');
98
+ const marker = JSON.parse(markerContent);
99
+ if (marker.version !== 1 || marker.kind !== 'store-shared-root')
100
+ return false;
101
+ const [recordedSource, expectedSource] = await Promise.all([
102
+ resolveStorePath(marker.sourcePath),
103
+ resolveStorePath(expectedSourcePath),
104
+ ]);
105
+ return (isPathInsideOrEqual(recordedSource, expectedSource) &&
106
+ isPathInsideOrEqual(expectedSource, recordedSource));
107
+ }
108
+ catch {
109
+ return false;
110
+ }
111
+ }
112
+ /** 移除项目副本标记,使 unlink 后的普通目录不再被 link 当作受管副本。 */
113
+ export async function removeMaterializationMarker(directoryPath) {
114
+ const markerPath = path.join(directoryPath, MATERIALIZATION_MARKER);
115
+ try {
116
+ await fs.unlink(markerPath);
117
+ debug(`[store-write-guard] 项目副本标记已移除: directory=${directoryPath}, marker=${markerPath}`);
118
+ return true;
119
+ }
120
+ catch (err) {
121
+ if (err.code === 'ENOENT')
122
+ return false;
123
+ throw err;
124
+ }
125
+ }
126
+ async function findStoreBackedLink(requestedPath, projectRoot, resolvedStorePath) {
127
+ const resolvedProjectRoot = path.resolve(projectRoot);
128
+ const resolvedRequestedPath = path.resolve(requestedPath);
129
+ if (!isPathInsideOrEqual(resolvedProjectRoot, resolvedRequestedPath))
130
+ return null;
131
+ const relative = path.relative(resolvedProjectRoot, resolvedRequestedPath);
132
+ const segments = relative === '' ? [] : relative.split(path.sep).filter(Boolean);
133
+ let current = resolvedProjectRoot;
134
+ for (const segment of segments) {
135
+ current = path.join(current, segment);
136
+ let stat;
137
+ try {
138
+ stat = await fs.lstat(current);
139
+ }
140
+ catch (err) {
141
+ if (err.code === 'ENOENT')
142
+ return null;
143
+ throw err;
144
+ }
145
+ if (!stat.isSymbolicLink())
146
+ continue;
147
+ let sourcePath;
148
+ try {
149
+ sourcePath = await resolveSymbolicLinkTarget(current);
150
+ }
151
+ catch (err) {
152
+ if (err.code === 'ENOENT')
153
+ continue;
154
+ throw err;
155
+ }
156
+ if (isPathInsideOrEqual(resolvedStorePath, sourcePath)) {
157
+ return { linkPath: current, sourcePath };
158
+ }
159
+ }
160
+ return null;
161
+ }
162
+ async function materializeStoreLink(linkPath, sourcePath, reason, transaction, markSharedRoot) {
163
+ const parentDir = path.dirname(linkPath);
164
+ const baseName = path.basename(linkPath);
165
+ const artifactPrefix = `.${baseName}.tanmi-dock-${transaction.id}`;
166
+ const tempPath = path.join(parentDir, `${artifactPrefix}-materializing`);
167
+ const backupPath = path.join(parentDir, `${artifactPrefix}-link-backup`);
168
+ const startedAt = Date.now();
169
+ if ((await pathExists(tempPath)) || (await pathExists(backupPath))) {
170
+ throw new Error(`事务专属目录已经存在,拒绝覆盖: ${artifactPrefix}`);
171
+ }
172
+ const operationIndex = await transaction.recordOperation({
173
+ type: 'materialize',
174
+ target: linkPath,
175
+ source: sourcePath,
176
+ backup: backupPath,
177
+ temp: tempPath,
178
+ });
179
+ debug(`[store-write-guard] 物化事务记录完成: transaction=${transaction.id}, operation=${operationIndex}, reason=${reason}, link=${linkPath}, source=${sourcePath}, temp=${tempPath}, backup=${backupPath}, state=prepared`);
180
+ info(`正在创建嵌套 action 项目副本: ${linkPath}`);
181
+ try {
182
+ await copyDir(sourcePath, tempPath, { preserveSymlinks: true });
183
+ if (markSharedRoot) {
184
+ const marker = {
185
+ version: 1,
186
+ kind: 'store-shared-root',
187
+ sourcePath,
188
+ };
189
+ await fs.writeFile(path.join(tempPath, MATERIALIZATION_MARKER), JSON.stringify(marker, null, 2), 'utf-8');
190
+ debug(`[store-write-guard] General 项目副本标记完成: transaction=${transaction.id}, operation=${operationIndex}, target=${tempPath}, source=${sourcePath}`);
191
+ }
192
+ debug(`[store-write-guard] 物化复制完成: transaction=${transaction.id}, operation=${operationIndex}, source=${sourcePath}, temp=${tempPath}, state=copied`);
193
+ const currentStat = await fs.lstat(linkPath);
194
+ const currentSource = await resolveSymbolicLinkTarget(linkPath);
195
+ const comparableCurrentSource = process.platform === 'win32'
196
+ ? path.resolve(currentSource).toLowerCase()
197
+ : path.resolve(currentSource);
198
+ const comparableSourcePath = process.platform === 'win32'
199
+ ? path.resolve(sourcePath).toLowerCase()
200
+ : path.resolve(sourcePath);
201
+ if (!currentStat.isSymbolicLink() || comparableCurrentSource !== comparableSourcePath) {
202
+ throw new Error(`共享链接在复制期间发生变化: ${linkPath}`);
203
+ }
204
+ await fs.rename(linkPath, backupPath);
205
+ debug(`[store-write-guard] 原链接已备份: transaction=${transaction.id}, operation=${operationIndex}, link=${linkPath}, backup=${backupPath}, state=link-backed-up`);
206
+ await fs.rename(tempPath, linkPath);
207
+ await transaction.markCompleted(operationIndex);
208
+ debug(`[store-write-guard] 物化完成: transaction=${transaction.id}, operation=${operationIndex}, link=${linkPath}, state=project-copy, durationMs=${Date.now() - startedAt}`);
209
+ info(`嵌套 action 使用项目副本: ${linkPath}`);
210
+ }
211
+ catch (err) {
212
+ const recoveryErrors = [];
213
+ try {
214
+ const targetExists = await pathExists(linkPath);
215
+ const backupExists = await pathExists(backupPath);
216
+ if (!targetExists && backupExists) {
217
+ await fs.rename(backupPath, linkPath);
218
+ debug(`[store-write-guard] 物化异常恢复完成: transaction=${transaction.id}, operation=${operationIndex}, link=${linkPath}, state=source-link-restored`);
219
+ }
220
+ }
221
+ catch (recoveryErr) {
222
+ recoveryErrors.push(`恢复原链接失败: ${recoveryErr.message}`);
223
+ }
224
+ try {
225
+ await fs.rm(tempPath, { recursive: true, force: true });
226
+ debug(`[store-write-guard] 物化异常临时目录清理完成: transaction=${transaction.id}, operation=${operationIndex}, temp=${tempPath}`);
227
+ }
228
+ catch (cleanupErr) {
229
+ recoveryErrors.push(`清理临时目录失败: ${cleanupErr.message}`);
230
+ }
231
+ error(`[store-write-guard] 物化失败: transaction=${transaction.id}, operation=${operationIndex}, reason=${reason}, link=${linkPath}, source=${sourcePath}, message=${err.message}, recovery=${recoveryErrors.join(' | ') || 'completed'}`);
232
+ if (recoveryErrors.length > 0) {
233
+ throw new Error(`${err.message}; ${recoveryErrors.join('; ')}`);
234
+ }
235
+ throw err;
236
+ }
237
+ }
238
+ /**
239
+ * 将项目中指向 Store _shared 根目录或其子目录的链接转换为项目物理目录。
240
+ * 目录转换纳入 link 事务,失败或进程中断后可以恢复原链接。
241
+ */
242
+ export async function prepareWritableDirectory(requestedPath, options) {
243
+ const requested = path.resolve(requestedPath);
244
+ const projectRoot = path.resolve(options.projectRoot);
245
+ const resolvedStorePath = await resolveStorePath(options.storePath);
246
+ const resolvedProjectRoot = await resolveThroughExistingAncestor(projectRoot);
247
+ const materializedPaths = [];
248
+ debug(`[store-write-guard] 检查开始: reason=${options.reason}, requested=${requested}, projectRoot=${projectRoot}, store=${resolvedStorePath}`);
249
+ const resolvedRequestedPath = await resolveThroughExistingAncestor(requested);
250
+ const requestedInsideProject = isPathInsideOrEqual(projectRoot, requested) ||
251
+ isPathInsideOrEqual(resolvedProjectRoot, resolvedRequestedPath);
252
+ if (!requestedInsideProject && isPathInsideOrEqual(resolvedStorePath, resolvedRequestedPath)) {
253
+ const message = `拒绝直接写入 Store: reason=${options.reason}, target=${requested}`;
254
+ error(`[store-write-guard] ${message}`);
255
+ throw new Error(message);
256
+ }
257
+ if (options.dryRun) {
258
+ const storeBackedLink = await findStoreBackedLink(requested, projectRoot, resolvedStorePath);
259
+ if (storeBackedLink) {
260
+ if (!isSharedMaterializationSource(resolvedStorePath, resolvedRequestedPath)) {
261
+ const message = `拒绝物化非共享子目录链接: reason=${options.reason}, link=${storeBackedLink.linkPath}, source=${storeBackedLink.sourcePath}`;
262
+ error(`[store-write-guard] ${message}`);
263
+ throw new Error(message);
264
+ }
265
+ debug(`[store-write-guard] 预演检测到共享链接: reason=${options.reason}, link=${storeBackedLink.linkPath}, source=${storeBackedLink.sourcePath}, requested=${requested}`);
266
+ return {
267
+ requestedPath: requested,
268
+ status: 'planned',
269
+ materializedPaths: [storeBackedLink.linkPath],
270
+ };
271
+ }
272
+ debug(`[store-write-guard] 预演检查完成: reason=${options.reason}, requested=${requested}, status=safe`);
273
+ return { requestedPath: requested, status: 'safe', materializedPaths: [] };
274
+ }
275
+ while (true) {
276
+ const storeBackedLink = await findStoreBackedLink(requested, projectRoot, resolvedStorePath);
277
+ if (!storeBackedLink)
278
+ break;
279
+ if (!isSharedMaterializationSource(resolvedStorePath, storeBackedLink.sourcePath)) {
280
+ const message = `拒绝物化非共享子目录链接: reason=${options.reason}, link=${storeBackedLink.linkPath}, source=${storeBackedLink.sourcePath}`;
281
+ error(`[store-write-guard] ${message}`);
282
+ throw new Error(message);
283
+ }
284
+ debug(`[store-write-guard] 检测到共享链接: reason=${options.reason}, link=${storeBackedLink.linkPath}, source=${storeBackedLink.sourcePath}`);
285
+ await materializeStoreLink(storeBackedLink.linkPath, storeBackedLink.sourcePath, options.reason, options.transaction, isSharedRoot(resolvedStorePath, storeBackedLink.sourcePath));
286
+ materializedPaths.push(storeBackedLink.linkPath);
287
+ }
288
+ await assertPathOutsideStore(requested, options.storePath, options.reason);
289
+ const status = materializedPaths.length > 0 ? 'materialized' : 'safe';
290
+ debug(`[store-write-guard] 检查完成: reason=${options.reason}, requested=${requested}, status=${status}, materialized=${materializedPaths.join(',') || 'none'}`);
291
+ return { requestedPath: requested, status, materializedPaths };
292
+ }
293
+ /**
294
+ * 在底层文件操作前验证目标及其最近存在祖先均位于 Store 外。
295
+ */
296
+ export async function assertPathOutsideStore(targetPath, storePath, operation) {
297
+ const resolvedStorePath = await resolveStorePath(storePath);
298
+ const existingPath = await findNearestExistingPath(targetPath);
299
+ if (!existingPath)
300
+ return;
301
+ let realExistingPath;
302
+ try {
303
+ realExistingPath = await fs.realpath(existingPath);
304
+ }
305
+ catch (err) {
306
+ if (err.code !== 'ENOENT')
307
+ throw err;
308
+ const stat = await fs.lstat(existingPath);
309
+ realExistingPath = stat.isSymbolicLink()
310
+ ? await resolveSymbolicLinkTarget(existingPath)
311
+ : path.resolve(existingPath);
312
+ }
313
+ if (isPathInsideOrEqual(resolvedStorePath, realExistingPath)) {
314
+ const message = `拒绝通过 action 修改 Store: operation=${operation}, target=${path.resolve(targetPath)}, resolvedAncestor=${realExistingPath}`;
315
+ error(`[store-write-guard] ${message}`);
316
+ throw new Error(message);
317
+ }
318
+ debug(`[store-write-guard] 底层检查通过: operation=${operation}, target=${path.resolve(targetPath)}, resolvedAncestor=${realExistingPath}`);
319
+ }
320
+ //# sourceMappingURL=store-write-protection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store-write-protection.js","sourceRoot":"","sources":["../../src/core/store-write-protection.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * 操作类型
3
3
  */
4
- export type OperationType = 'link' | 'unlink' | 'move' | 'absorb' | 'replace' | 'download';
4
+ export type OperationType = 'link' | 'unlink' | 'move' | 'absorb' | 'replace' | 'download' | 'materialize';
5
5
  export interface Operation {
6
6
  type: OperationType;
7
7
  target: string;
8
8
  source?: string;
9
9
  backup?: string;
10
+ temp?: string;
11
+ targetExisted?: boolean;
10
12
  completed: boolean;
11
13
  }
12
14
  /**
@@ -25,6 +27,7 @@ export interface TransactionLog {
25
27
  export declare class Transaction {
26
28
  private log;
27
29
  private logPath;
30
+ private saveQueue;
28
31
  readonly id: string;
29
32
  /**
30
33
  * 创建新事务实例(需调用 begin() 开始)
@@ -54,17 +57,18 @@ export declare class Transaction {
54
57
  * 获取所有未完成事务
55
58
  */
56
59
  static getPendingTransactions(): Promise<TransactionLog[]>;
60
+ private static readStoredLogs;
57
61
  /**
58
62
  * 记录操作(执行前调用)
59
63
  */
60
- recordOperation(op: Omit<Operation, 'completed'>): Promise<void>;
64
+ recordOperation(op: Omit<Operation, 'completed'>): Promise<number>;
61
65
  /**
62
66
  * 简化的操作记录方法
63
67
  * @param type 操作类型
64
68
  * @param target 目标路径
65
69
  * @param source 来源路径(可选)
66
70
  */
67
- recordOp(type: OperationType, target: string, source?: string): void;
71
+ recordOp(type: OperationType, target: string, source?: string): Promise<void>;
68
72
  /**
69
73
  * 标记操作完成
70
74
  */
@@ -77,6 +81,11 @@ export declare class Transaction {
77
81
  * 提交事务(删除日志)
78
82
  */
79
83
  commit(): Promise<void>;
84
+ /**
85
+ * 清理已经提交事务遗留的物化备份。此阶段只删除事务专属产物,
86
+ * 不再回滚项目目录,因此进程中断后可以安全重试。
87
+ */
88
+ private finalizeCommitted;
80
89
  /**
81
90
  * 回滚事务
82
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3F,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;CAChD;AAuBD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;gBACS,WAAW,EAAE,MAAM;IAa/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAQtB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;WACU,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM7D;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAQvD;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAW7D;;OAEG;WACU,sBAAsB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAyBhE;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtE;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAIpE;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAS7B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IA8BnC;;OAEG;YACW,iBAAiB;IAiE/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,SAAS,IAAI,cAAc,CAAC,QAAQ,CAAC;IAIrC;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/core/transaction.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,aAAa,CAAC;AAElB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,YAAY,CAAC;CAChD;AAqCD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAgB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;gBACS,WAAW,EAAE,MAAM;IAc/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAStB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;WACU,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM7D;;OAEG;WACU,WAAW,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAsBvD;;OAEG;WACU,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAW7D;;OAEG;WACU,sBAAsB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;mBAK3C,cAAc;IAuBnC;;OAEG;IACG,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxE;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAenF;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7B;;;OAGG;YACW,iBAAiB;IA8B/B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAsCnC;;OAEG;YACW,iBAAiB;IAmH/B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB3B;;OAEG;IACH,KAAK,IAAI,MAAM;IAIf;;OAEG;IACH,SAAS,IAAI,cAAc,CAAC,QAAQ,CAAC;IAIrC;;OAEG;IACH,cAAc,IAAI,MAAM;CAGzB;AAED,eAAe,WAAW,CAAC"}