scene-capability-engine 3.6.39 → 3.6.44

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 (45) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/bin/scene-capability-engine.js +42 -2
  3. package/docs/developer-guide.md +1 -1
  4. package/docs/releases/README.md +5 -0
  5. package/docs/releases/v3.6.40.md +19 -0
  6. package/docs/releases/v3.6.41.md +20 -0
  7. package/docs/releases/v3.6.42.md +19 -0
  8. package/docs/releases/v3.6.43.md +17 -0
  9. package/docs/releases/v3.6.44.md +17 -0
  10. package/docs/spec-collaboration-guide.md +1 -1
  11. package/docs/zh/releases/README.md +5 -0
  12. package/docs/zh/releases/v3.6.40.md +19 -0
  13. package/docs/zh/releases/v3.6.41.md +20 -0
  14. package/docs/zh/releases/v3.6.42.md +19 -0
  15. package/docs/zh/releases/v3.6.43.md +17 -0
  16. package/docs/zh/releases/v3.6.44.md +17 -0
  17. package/lib/adoption/adoption-logger.js +1 -1
  18. package/lib/adoption/adoption-strategy.js +29 -29
  19. package/lib/adoption/detection-engine.js +16 -13
  20. package/lib/adoption/smart-orchestrator.js +3 -3
  21. package/lib/adoption/strategy-selector.js +19 -15
  22. package/lib/adoption/template-sync.js +3 -3
  23. package/lib/auto/autonomous-engine.js +5 -5
  24. package/lib/auto/handoff-release-gate-history-loaders-service.js +24 -4
  25. package/lib/auto/handoff-run-service.js +37 -0
  26. package/lib/backup/backup-system.js +10 -10
  27. package/lib/collab/collab-manager.js +8 -5
  28. package/lib/collab/dependency-manager.js +1 -1
  29. package/lib/commands/adopt.js +2 -2
  30. package/lib/commands/auto.js +239 -97
  31. package/lib/commands/collab.js +10 -4
  32. package/lib/commands/status.js +3 -3
  33. package/lib/commands/studio.js +8 -0
  34. package/lib/repo/config-manager.js +2 -2
  35. package/lib/spec/bootstrap/context-collector.js +5 -4
  36. package/lib/spec-gate/rules/default-rules.js +8 -8
  37. package/lib/upgrade/migration-engine.js +5 -5
  38. package/lib/upgrade/migrations/1.0.0-to-1.1.0.js +3 -3
  39. package/lib/utils/tool-detector.js +4 -4
  40. package/lib/utils/validation.js +6 -6
  41. package/lib/workspace/multi/workspace-context-resolver.js +3 -3
  42. package/lib/workspace/multi/workspace-registry.js +3 -3
  43. package/lib/workspace/multi/workspace-state-manager.js +3 -3
  44. package/lib/workspace/spec-delivery-audit.js +553 -0
  45. package/package.json +1 -1
@@ -300,10 +300,10 @@ class MigrationEngine {
300
300
 
301
301
  try {
302
302
  // Check if .sce/ directory exists
303
- const kiroPath = path.join(projectPath, '.sce');
304
- const kiroExists = await pathExists(kiroPath);
303
+ const scePath = path.join(projectPath, '.sce');
304
+ const sceExists = await pathExists(scePath);
305
305
 
306
- if (!kiroExists) {
306
+ if (!sceExists) {
307
307
  errors.push('.sce/ directory not found');
308
308
  return { success: false, errors, warnings };
309
309
  }
@@ -320,7 +320,7 @@ class MigrationEngine {
320
320
  const requiredDirs = ['specs', 'steering', 'tools', 'backups'];
321
321
 
322
322
  for (const dir of requiredDirs) {
323
- const dirPath = path.join(kiroPath, dir);
323
+ const dirPath = path.join(scePath, dir);
324
324
  const exists = await pathExists(dirPath);
325
325
 
326
326
  if (!exists) {
@@ -337,7 +337,7 @@ class MigrationEngine {
337
337
  ];
338
338
 
339
339
  for (const file of requiredSteeringFiles) {
340
- const filePath = path.join(kiroPath, file);
340
+ const filePath = path.join(scePath, file);
341
341
  const exists = await pathExists(filePath);
342
342
 
343
343
  if (!exists) {
@@ -26,10 +26,10 @@ module.exports = {
26
26
  const changes = [];
27
27
 
28
28
  try {
29
- const kiroPath = path.join(projectPath, '.sce');
29
+ const scePath = path.join(projectPath, '.sce');
30
30
 
31
31
  // 1. Ensure backups/ directory exists
32
- const backupsPath = path.join(kiroPath, 'backups');
32
+ const backupsPath = path.join(scePath, 'backups');
33
33
  const backupsExists = await pathExists(backupsPath);
34
34
 
35
35
  if (!backupsExists) {
@@ -39,7 +39,7 @@ module.exports = {
39
39
 
40
40
  // 2. Ensure version.json has correct structure
41
41
  // (This is handled by VersionManager, but we verify it here)
42
- const versionPath = path.join(kiroPath, 'version.json');
42
+ const versionPath = path.join(scePath, 'version.json');
43
43
  const versionExists = await pathExists(versionPath);
44
44
 
45
45
  if (versionExists) {
@@ -64,21 +64,21 @@ async function detectKiroIDE(projectPath) {
64
64
  let confidence = 'low';
65
65
 
66
66
  // Check for .sce directory
67
- const kiroDir = path.join(projectPath, '.sce');
68
- if (await fs.pathExists(kiroDir)) {
67
+ const sceDir = path.join(projectPath, '.sce');
68
+ if (await fs.pathExists(sceDir)) {
69
69
  indicators.push('.sce directory exists');
70
70
  detected = true;
71
71
  confidence = 'medium';
72
72
  }
73
73
 
74
74
  // Check for SCE-specific files
75
- const kiroFiles = [
75
+ const sceFiles = [
76
76
  '.sce/steering',
77
77
  '.sce/specs',
78
78
  '.sce/tools'
79
79
  ];
80
80
 
81
- for (const file of kiroFiles) {
81
+ for (const file of sceFiles) {
82
82
  const filePath = path.join(projectPath, file);
83
83
  if (await fs.pathExists(filePath)) {
84
84
  indicators.push(`${file} exists`);
@@ -21,11 +21,11 @@ async function validateProjectStructure(projectPath) {
21
21
  const warnings = [];
22
22
 
23
23
  try {
24
- const kiroPath = path.join(projectPath, '.sce');
24
+ const scePath = path.join(projectPath, '.sce');
25
25
 
26
26
  // Check if .sce/ directory exists
27
- const kiroExists = await pathExists(kiroPath);
28
- if (!kiroExists) {
27
+ const sceExists = await pathExists(scePath);
28
+ if (!sceExists) {
29
29
  errors.push('.sce/ directory not found');
30
30
  return { success: false, errors, warnings };
31
31
  }
@@ -39,7 +39,7 @@ async function validateProjectStructure(projectPath) {
39
39
  ];
40
40
 
41
41
  for (const dir of requiredDirs) {
42
- const dirPath = path.join(kiroPath, dir.path);
42
+ const dirPath = path.join(scePath, dir.path);
43
43
  const exists = await pathExists(dirPath);
44
44
 
45
45
  if (!exists) {
@@ -60,7 +60,7 @@ async function validateProjectStructure(projectPath) {
60
60
  ];
61
61
 
62
62
  for (const file of requiredSteeringFiles) {
63
- const filePath = path.join(kiroPath, file.path);
63
+ const filePath = path.join(scePath, file.path);
64
64
  const exists = await pathExists(filePath);
65
65
 
66
66
  if (!exists) {
@@ -78,7 +78,7 @@ async function validateProjectStructure(projectPath) {
78
78
  ];
79
79
 
80
80
  for (const file of requiredToolFiles) {
81
- const filePath = path.join(kiroPath, file.path);
81
+ const filePath = path.join(scePath, file.path);
82
82
  const exists = await pathExists(filePath);
83
83
 
84
84
  if (!exists) {
@@ -94,14 +94,14 @@ class WorkspaceContextResolver {
94
94
  */
95
95
  async isValidSceDirectory(dirPath) {
96
96
  try {
97
- const kiroPath = path.join(dirPath, '.sce');
98
- const exists = await fs.pathExists(kiroPath);
97
+ const scePath = path.join(dirPath, '.sce');
98
+ const exists = await fs.pathExists(scePath);
99
99
 
100
100
  if (!exists) {
101
101
  return false;
102
102
  }
103
103
 
104
- const stats = await fs.stat(kiroPath);
104
+ const stats = await fs.stat(scePath);
105
105
  return stats.isDirectory();
106
106
  } catch (error) {
107
107
  return false;
@@ -84,10 +84,10 @@ class WorkspaceRegistry {
84
84
  }
85
85
 
86
86
  // Check if .sce directory exists
87
- const kiroPath = path.join(workspacePath, '.sce');
88
- const kiroExists = await fs.pathExists(kiroPath);
87
+ const scePath = path.join(workspacePath, '.sce');
88
+ const sceExists = await fs.pathExists(scePath);
89
89
 
90
- return kiroExists;
90
+ return sceExists;
91
91
  } catch (error) {
92
92
  return false;
93
93
  }
@@ -192,9 +192,9 @@ class WorkspaceStateManager {
192
192
  }
193
193
 
194
194
  // Validate path (check for .sce directory)
195
- const kiroPath = path.join(workspacePath, '.sce');
196
- const kiroExists = await fs.pathExists(kiroPath);
197
- if (!kiroExists) {
195
+ const scePath = path.join(workspacePath, '.sce');
196
+ const sceExists = await fs.pathExists(scePath);
197
+ if (!sceExists) {
198
198
  throw new Error(`Path "${workspacePath}" is not a valid sce project directory. ` +
199
199
  `Ensure it exists and contains a .sce/ directory.`);
200
200
  }