sela-core 1.0.7 → 1.0.9

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 (146) hide show
  1. package/README.md +27 -17
  2. package/dist/cli/ErrorHandler.d.ts +1 -1
  3. package/dist/cli/ErrorHandler.js +14 -14
  4. package/dist/cli/commands/bulk.d.ts +1 -1
  5. package/dist/cli/commands/bulk.d.ts.map +1 -1
  6. package/dist/cli/commands/bulk.js +51 -33
  7. package/dist/cli/commands/init.d.ts +1 -1
  8. package/dist/cli/commands/init.d.ts.map +1 -1
  9. package/dist/cli/commands/init.js +26 -18
  10. package/dist/cli/commands/merge.d.ts +13 -0
  11. package/dist/cli/commands/merge.d.ts.map +1 -0
  12. package/dist/cli/commands/merge.js +119 -0
  13. package/dist/cli/commands/showReport.d.ts +1 -1
  14. package/dist/cli/commands/showReport.d.ts.map +1 -1
  15. package/dist/cli/commands/showReport.js +12 -10
  16. package/dist/cli/commands/status.d.ts +1 -1
  17. package/dist/cli/commands/status.d.ts.map +1 -1
  18. package/dist/cli/commands/status.js +8 -8
  19. package/dist/cli/commands/sync.d.ts +1 -1
  20. package/dist/cli/commands/sync.d.ts.map +1 -1
  21. package/dist/cli/commands/sync.js +38 -30
  22. package/dist/cli/index.js +12 -9
  23. package/dist/cli/ui/DnaTable.d.ts +1 -1
  24. package/dist/cli/ui/DnaTable.d.ts.map +1 -1
  25. package/dist/cli/ui/DnaTable.js +23 -16
  26. package/dist/cli/ui/RefactorWizard.d.ts +3 -3
  27. package/dist/cli/ui/RefactorWizard.d.ts.map +1 -1
  28. package/dist/cli/ui/RefactorWizard.js +108 -82
  29. package/dist/config/ConfigLoader.d.ts +2 -2
  30. package/dist/config/ConfigLoader.d.ts.map +1 -1
  31. package/dist/config/ConfigLoader.js +15 -15
  32. package/dist/config/DryRunGuard.d.ts +1 -1
  33. package/dist/config/DryRunGuard.js +7 -7
  34. package/dist/config/SelaConfig.d.ts +13 -17
  35. package/dist/config/SelaConfig.d.ts.map +1 -1
  36. package/dist/config/SelaConfig.js +32 -26
  37. package/dist/engine/HealingRegistry.d.ts +1 -1
  38. package/dist/engine/HealingRegistry.js +3 -3
  39. package/dist/engine/SelaEngine.d.ts +1 -1
  40. package/dist/engine/SelaEngine.d.ts.map +1 -1
  41. package/dist/engine/SelaEngine.js +117 -51
  42. package/dist/errors/SelaError.d.ts +8 -1
  43. package/dist/errors/SelaError.d.ts.map +1 -1
  44. package/dist/errors/SelaError.js +14 -7
  45. package/dist/fixtures/expectProxy.d.ts +2 -2
  46. package/dist/fixtures/expectProxy.js +16 -16
  47. package/dist/fixtures/index.d.ts +18 -2
  48. package/dist/fixtures/index.d.ts.map +1 -1
  49. package/dist/fixtures/index.js +47 -27
  50. package/dist/fixtures/moduleExpect.js +7 -7
  51. package/dist/fixtures/proxyTag.d.ts +1 -1
  52. package/dist/fixtures/proxyTag.js +4 -4
  53. package/dist/index.d.ts +8 -8
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +4 -4
  56. package/dist/reporter/SelaReporter.d.ts +45 -12
  57. package/dist/reporter/SelaReporter.d.ts.map +1 -1
  58. package/dist/reporter/SelaReporter.js +139 -39
  59. package/dist/services/ASTSourceUpdater.d.ts +48 -3
  60. package/dist/services/ASTSourceUpdater.d.ts.map +1 -1
  61. package/dist/services/ASTSourceUpdater.js +283 -105
  62. package/dist/services/AnchorResolver.d.ts +157 -0
  63. package/dist/services/AnchorResolver.d.ts.map +1 -0
  64. package/dist/services/AnchorResolver.js +289 -0
  65. package/dist/services/ArgumentTypeAnalyzer.js +7 -7
  66. package/dist/services/BlastRadiusAnalyzer.d.ts.map +1 -1
  67. package/dist/services/BlastRadiusAnalyzer.js +5 -2
  68. package/dist/services/ChainValidator.js +22 -22
  69. package/dist/services/CrossFileHealer.js +7 -7
  70. package/dist/services/DecisionEngine.d.ts +51 -0
  71. package/dist/services/DecisionEngine.d.ts.map +1 -0
  72. package/dist/services/DecisionEngine.js +260 -0
  73. package/dist/services/DefinitionTracer.d.ts +1 -1
  74. package/dist/services/DefinitionTracer.d.ts.map +1 -1
  75. package/dist/services/DefinitionTracer.js +28 -13
  76. package/dist/services/DnaEditorService.d.ts +2 -2
  77. package/dist/services/DnaEditorService.d.ts.map +1 -1
  78. package/dist/services/DnaEditorService.js +81 -62
  79. package/dist/services/DnaIndexService.d.ts +1 -1
  80. package/dist/services/DnaIndexService.d.ts.map +1 -1
  81. package/dist/services/DnaIndexService.js +14 -14
  82. package/dist/services/HealReportService.d.ts +31 -55
  83. package/dist/services/HealReportService.d.ts.map +1 -1
  84. package/dist/services/HealReportService.js +864 -1240
  85. package/dist/services/HealingAdvisory.d.ts +9 -1
  86. package/dist/services/HealingAdvisory.d.ts.map +1 -1
  87. package/dist/services/HealingAdvisory.js +9 -1
  88. package/dist/services/HealingCacheService.d.ts +8 -8
  89. package/dist/services/HealingCacheService.d.ts.map +1 -1
  90. package/dist/services/HealingCacheService.js +24 -24
  91. package/dist/services/HealthReportService.d.ts +1 -1
  92. package/dist/services/HealthReportService.d.ts.map +1 -1
  93. package/dist/services/HealthReportService.js +25 -25
  94. package/dist/services/InitializerUpdater.d.ts.map +1 -1
  95. package/dist/services/InitializerUpdater.js +12 -2
  96. package/dist/services/IntentAuditor.d.ts.map +1 -1
  97. package/dist/services/IntentAuditor.js +32 -21
  98. package/dist/services/InteractiveReview.d.ts +8 -17
  99. package/dist/services/InteractiveReview.d.ts.map +1 -1
  100. package/dist/services/InteractiveReview.js +34 -124
  101. package/dist/services/LLMService.d.ts +1 -1
  102. package/dist/services/LLMService.js +16 -16
  103. package/dist/services/MutationApplier.d.ts +55 -0
  104. package/dist/services/MutationApplier.d.ts.map +1 -0
  105. package/dist/services/MutationApplier.js +322 -0
  106. package/dist/services/PRAutomationService.d.ts +2 -2
  107. package/dist/services/PRAutomationService.d.ts.map +1 -1
  108. package/dist/services/PRAutomationService.js +43 -39
  109. package/dist/services/PendingPromptLedger.d.ts +9 -2
  110. package/dist/services/PendingPromptLedger.d.ts.map +1 -1
  111. package/dist/services/PendingPromptLedger.js +31 -6
  112. package/dist/services/ReportGenerator.d.ts +116 -30
  113. package/dist/services/ReportGenerator.d.ts.map +1 -1
  114. package/dist/services/ReportGenerator.js +149 -62
  115. package/dist/services/ReportMergeService.d.ts +95 -0
  116. package/dist/services/ReportMergeService.d.ts.map +1 -0
  117. package/dist/services/ReportMergeService.js +0 -0
  118. package/dist/services/SafetyGuard.d.ts +4 -7
  119. package/dist/services/SafetyGuard.d.ts.map +1 -1
  120. package/dist/services/SafetyGuard.js +29 -106
  121. package/dist/services/SelectorSanitizer.d.ts +52 -0
  122. package/dist/services/SelectorSanitizer.d.ts.map +1 -0
  123. package/dist/services/SelectorSanitizer.js +318 -0
  124. package/dist/services/SnapshotService.js +6 -6
  125. package/dist/services/SourceLinkService.d.ts +2 -2
  126. package/dist/services/SourceLinkService.d.ts.map +1 -1
  127. package/dist/services/SourceLinkService.js +31 -22
  128. package/dist/services/SourceUpdater.d.ts +1 -1
  129. package/dist/services/SourceUpdater.d.ts.map +1 -1
  130. package/dist/services/SourceUpdater.js +44 -26
  131. package/dist/services/TemplateDiffService.d.ts.map +1 -1
  132. package/dist/services/TemplateDiffService.js +18 -15
  133. package/dist/services/TraceBackEngine.d.ts +67 -0
  134. package/dist/services/TraceBackEngine.d.ts.map +1 -0
  135. package/dist/services/TraceBackEngine.js +672 -0
  136. package/dist/services/WorkspaceSnapshotService.d.ts +6 -6
  137. package/dist/services/WorkspaceSnapshotService.d.ts.map +1 -1
  138. package/dist/services/WorkspaceSnapshotService.js +10 -12
  139. package/dist/types/index.d.ts +1 -1
  140. package/dist/utils/DOMUtils.d.ts +18 -2
  141. package/dist/utils/DOMUtils.d.ts.map +1 -1
  142. package/dist/utils/DOMUtils.js +335 -49
  143. package/dist/utils/IsolatedDiff.d.ts +2 -2
  144. package/dist/utils/IsolatedDiff.d.ts.map +1 -1
  145. package/dist/utils/IsolatedDiff.js +13 -10
  146. package/package.json +2 -2
@@ -2,7 +2,7 @@
2
2
  // src/utils/IsolatedDiff.ts
3
3
  //
4
4
  // Pure-JS unified-diff generator. No external `diff` package, no shell-out to
5
- // `git diff` the result is guaranteed to be a function ONLY of the two
5
+ // `git diff` - the result is guaranteed to be a function ONLY of the two
6
6
  // in-memory buffers passed in, never of any global working-tree state.
7
7
  //
8
8
  // This is the foundation of the Clean-Room Architecture: the HTML report
@@ -47,7 +47,7 @@ function generateUnifiedDiff(before, after, opts = {}) {
47
47
  return out.join("\n") + "\n";
48
48
  }
49
49
  // ────────────────────────────────────────────────────────────────────
50
- // LINE SPLITTER preserves trailing newline / CRLF so we can emit the
50
+ // LINE SPLITTER - preserves trailing newline / CRLF so we can emit the
51
51
  // canonical `` marker when needed.
52
52
  // ────────────────────────────────────────────────────────────────────
53
53
  function splitKeepEol(text) {
@@ -200,7 +200,7 @@ function groupHunks(ops, ctx) {
200
200
  // Anchor on the corresponding `b` position. For pure-deletions at
201
201
  // the top of file `op.a === 0` ⇒ newStart should be 0 (special
202
202
  // header form `+0,0`). For mid-file deletions use the running b
203
- // cursor derive it from prior ops.
203
+ // cursor - derive it from prior ops.
204
204
  newStartIdx = computeBAnchor(ops, k);
205
205
  }
206
206
  const line = ctx.a[op.a];
@@ -296,7 +296,7 @@ function extractChangeBlocks(before, after) {
296
296
  }
297
297
  let anchorBefore = null;
298
298
  if (oldLines.length === 0) {
299
- // Pure addition find preceding unchanged anchor line.
299
+ // Pure addition - find preceding unchanged anchor line.
300
300
  for (let k = start - 1; k >= 0; k--) {
301
301
  const op = ops[k];
302
302
  if (op.kind === "eq") {
@@ -318,7 +318,7 @@ function extractChangeBlocks(before, after) {
318
318
  /**
319
319
  * Replay a list of change blocks against a fresh base buffer (typically
320
320
  * the file's `HEAD` blob). Each block is applied via UNIQUE substring
321
- * replacement when the old block is missing or ambiguous in the base,
321
+ * replacement - when the old block is missing or ambiguous in the base,
322
322
  * we fail loudly rather than silently mutating the wrong spot.
323
323
  */
324
324
  function applyChangeBlocks(base, blocks) {
@@ -328,7 +328,7 @@ function applyChangeBlocks(base, blocks) {
328
328
  // Pure addition.
329
329
  if (block.anchorBefore === null) {
330
330
  if (working.length === 0) {
331
- // Empty file prepend.
331
+ // Empty file - prepend.
332
332
  working = block.newBlock + working;
333
333
  continue;
334
334
  }
@@ -351,25 +351,28 @@ function applyChangeBlocks(base, blocks) {
351
351
  };
352
352
  }
353
353
  const insertAt = idx + block.anchorBefore.length;
354
- working = working.slice(0, insertAt) + block.newBlock + working.slice(insertAt);
354
+ working =
355
+ working.slice(0, insertAt) + block.newBlock + working.slice(insertAt);
355
356
  continue;
356
357
  }
357
358
  const idx = working.indexOf(block.oldBlock);
358
359
  if (idx === -1) {
359
360
  return {
360
361
  ok: false,
361
- reason: `block not found in clean base developer's dirty state likely overlaps Sela's mutation site: "${snippet(block.oldBlock)}"`,
362
+ reason: `block not found in clean base - developer's dirty state likely overlaps Sela's mutation site: "${snippet(block.oldBlock)}"`,
362
363
  };
363
364
  }
364
365
  const lastIdx = working.lastIndexOf(block.oldBlock);
365
366
  if (idx !== lastIdx) {
366
367
  return {
367
368
  ok: false,
368
- reason: `block matches multiple locations in clean base refusing to guess: "${snippet(block.oldBlock)}"`,
369
+ reason: `block matches multiple locations in clean base - refusing to guess: "${snippet(block.oldBlock)}"`,
369
370
  };
370
371
  }
371
372
  working =
372
- working.slice(0, idx) + block.newBlock + working.slice(idx + block.oldBlock.length);
373
+ working.slice(0, idx) +
374
+ block.newBlock +
375
+ working.slice(idx + block.oldBlock.length);
373
376
  }
374
377
  return { ok: true, result: working };
375
378
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sela-core",
3
- "version": "1.0.7",
4
- "description": "AI self-healing Playwright wrapper drop-in replacement for @playwright/test",
3
+ "version": "1.0.9",
4
+ "description": "AI self-healing Playwright wrapper - drop-in replacement for @playwright/test",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {