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.
- package/README.md +27 -17
- package/dist/cli/ErrorHandler.d.ts +1 -1
- package/dist/cli/ErrorHandler.js +14 -14
- package/dist/cli/commands/bulk.d.ts +1 -1
- package/dist/cli/commands/bulk.d.ts.map +1 -1
- package/dist/cli/commands/bulk.js +51 -33
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +26 -18
- package/dist/cli/commands/merge.d.ts +13 -0
- package/dist/cli/commands/merge.d.ts.map +1 -0
- package/dist/cli/commands/merge.js +119 -0
- package/dist/cli/commands/showReport.d.ts +1 -1
- package/dist/cli/commands/showReport.d.ts.map +1 -1
- package/dist/cli/commands/showReport.js +12 -10
- package/dist/cli/commands/status.d.ts +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +8 -8
- package/dist/cli/commands/sync.d.ts +1 -1
- package/dist/cli/commands/sync.d.ts.map +1 -1
- package/dist/cli/commands/sync.js +38 -30
- package/dist/cli/index.js +12 -9
- package/dist/cli/ui/DnaTable.d.ts +1 -1
- package/dist/cli/ui/DnaTable.d.ts.map +1 -1
- package/dist/cli/ui/DnaTable.js +23 -16
- package/dist/cli/ui/RefactorWizard.d.ts +3 -3
- package/dist/cli/ui/RefactorWizard.d.ts.map +1 -1
- package/dist/cli/ui/RefactorWizard.js +108 -82
- package/dist/config/ConfigLoader.d.ts +2 -2
- package/dist/config/ConfigLoader.d.ts.map +1 -1
- package/dist/config/ConfigLoader.js +15 -15
- package/dist/config/DryRunGuard.d.ts +1 -1
- package/dist/config/DryRunGuard.js +7 -7
- package/dist/config/SelaConfig.d.ts +13 -17
- package/dist/config/SelaConfig.d.ts.map +1 -1
- package/dist/config/SelaConfig.js +32 -26
- package/dist/engine/HealingRegistry.d.ts +1 -1
- package/dist/engine/HealingRegistry.js +3 -3
- package/dist/engine/SelaEngine.d.ts +1 -1
- package/dist/engine/SelaEngine.d.ts.map +1 -1
- package/dist/engine/SelaEngine.js +117 -51
- package/dist/errors/SelaError.d.ts +8 -1
- package/dist/errors/SelaError.d.ts.map +1 -1
- package/dist/errors/SelaError.js +14 -7
- package/dist/fixtures/expectProxy.d.ts +2 -2
- package/dist/fixtures/expectProxy.js +16 -16
- package/dist/fixtures/index.d.ts +18 -2
- package/dist/fixtures/index.d.ts.map +1 -1
- package/dist/fixtures/index.js +47 -27
- package/dist/fixtures/moduleExpect.js +7 -7
- package/dist/fixtures/proxyTag.d.ts +1 -1
- package/dist/fixtures/proxyTag.js +4 -4
- package/dist/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/reporter/SelaReporter.d.ts +45 -12
- package/dist/reporter/SelaReporter.d.ts.map +1 -1
- package/dist/reporter/SelaReporter.js +139 -39
- package/dist/services/ASTSourceUpdater.d.ts +48 -3
- package/dist/services/ASTSourceUpdater.d.ts.map +1 -1
- package/dist/services/ASTSourceUpdater.js +283 -105
- package/dist/services/AnchorResolver.d.ts +157 -0
- package/dist/services/AnchorResolver.d.ts.map +1 -0
- package/dist/services/AnchorResolver.js +289 -0
- package/dist/services/ArgumentTypeAnalyzer.js +7 -7
- package/dist/services/BlastRadiusAnalyzer.d.ts.map +1 -1
- package/dist/services/BlastRadiusAnalyzer.js +5 -2
- package/dist/services/ChainValidator.js +22 -22
- package/dist/services/CrossFileHealer.js +7 -7
- package/dist/services/DecisionEngine.d.ts +51 -0
- package/dist/services/DecisionEngine.d.ts.map +1 -0
- package/dist/services/DecisionEngine.js +260 -0
- package/dist/services/DefinitionTracer.d.ts +1 -1
- package/dist/services/DefinitionTracer.d.ts.map +1 -1
- package/dist/services/DefinitionTracer.js +28 -13
- package/dist/services/DnaEditorService.d.ts +2 -2
- package/dist/services/DnaEditorService.d.ts.map +1 -1
- package/dist/services/DnaEditorService.js +81 -62
- package/dist/services/DnaIndexService.d.ts +1 -1
- package/dist/services/DnaIndexService.d.ts.map +1 -1
- package/dist/services/DnaIndexService.js +14 -14
- package/dist/services/HealReportService.d.ts +31 -55
- package/dist/services/HealReportService.d.ts.map +1 -1
- package/dist/services/HealReportService.js +864 -1240
- package/dist/services/HealingAdvisory.d.ts +9 -1
- package/dist/services/HealingAdvisory.d.ts.map +1 -1
- package/dist/services/HealingAdvisory.js +9 -1
- package/dist/services/HealingCacheService.d.ts +8 -8
- package/dist/services/HealingCacheService.d.ts.map +1 -1
- package/dist/services/HealingCacheService.js +24 -24
- package/dist/services/HealthReportService.d.ts +1 -1
- package/dist/services/HealthReportService.d.ts.map +1 -1
- package/dist/services/HealthReportService.js +25 -25
- package/dist/services/InitializerUpdater.d.ts.map +1 -1
- package/dist/services/InitializerUpdater.js +12 -2
- package/dist/services/IntentAuditor.d.ts.map +1 -1
- package/dist/services/IntentAuditor.js +32 -21
- package/dist/services/InteractiveReview.d.ts +8 -17
- package/dist/services/InteractiveReview.d.ts.map +1 -1
- package/dist/services/InteractiveReview.js +34 -124
- package/dist/services/LLMService.d.ts +1 -1
- package/dist/services/LLMService.js +16 -16
- package/dist/services/MutationApplier.d.ts +55 -0
- package/dist/services/MutationApplier.d.ts.map +1 -0
- package/dist/services/MutationApplier.js +322 -0
- package/dist/services/PRAutomationService.d.ts +2 -2
- package/dist/services/PRAutomationService.d.ts.map +1 -1
- package/dist/services/PRAutomationService.js +43 -39
- package/dist/services/PendingPromptLedger.d.ts +9 -2
- package/dist/services/PendingPromptLedger.d.ts.map +1 -1
- package/dist/services/PendingPromptLedger.js +31 -6
- package/dist/services/ReportGenerator.d.ts +116 -30
- package/dist/services/ReportGenerator.d.ts.map +1 -1
- package/dist/services/ReportGenerator.js +149 -62
- package/dist/services/ReportMergeService.d.ts +95 -0
- package/dist/services/ReportMergeService.d.ts.map +1 -0
- package/dist/services/ReportMergeService.js +0 -0
- package/dist/services/SafetyGuard.d.ts +4 -7
- package/dist/services/SafetyGuard.d.ts.map +1 -1
- package/dist/services/SafetyGuard.js +29 -106
- package/dist/services/SelectorSanitizer.d.ts +52 -0
- package/dist/services/SelectorSanitizer.d.ts.map +1 -0
- package/dist/services/SelectorSanitizer.js +318 -0
- package/dist/services/SnapshotService.js +6 -6
- package/dist/services/SourceLinkService.d.ts +2 -2
- package/dist/services/SourceLinkService.d.ts.map +1 -1
- package/dist/services/SourceLinkService.js +31 -22
- package/dist/services/SourceUpdater.d.ts +1 -1
- package/dist/services/SourceUpdater.d.ts.map +1 -1
- package/dist/services/SourceUpdater.js +44 -26
- package/dist/services/TemplateDiffService.d.ts.map +1 -1
- package/dist/services/TemplateDiffService.js +18 -15
- package/dist/services/TraceBackEngine.d.ts +67 -0
- package/dist/services/TraceBackEngine.d.ts.map +1 -0
- package/dist/services/TraceBackEngine.js +672 -0
- package/dist/services/WorkspaceSnapshotService.d.ts +6 -6
- package/dist/services/WorkspaceSnapshotService.d.ts.map +1 -1
- package/dist/services/WorkspaceSnapshotService.js +10 -12
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/DOMUtils.d.ts +18 -2
- package/dist/utils/DOMUtils.d.ts.map +1 -1
- package/dist/utils/DOMUtils.js +335 -49
- package/dist/utils/IsolatedDiff.d.ts +2 -2
- package/dist/utils/IsolatedDiff.d.ts.map +1 -1
- package/dist/utils/IsolatedDiff.js +13 -10
- 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`
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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) +
|
|
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.
|
|
4
|
-
"description": "AI self-healing Playwright wrapper
|
|
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": {
|