@deepwhale/edit-engine 1.0.11 → 1.0.12
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/package.json +1 -1
- package/dist/engines/hashline/index.d.ts +0 -29
- package/dist/engines/hashline/index.d.ts.map +0 -1
- package/dist/engines/hashline/index.js +0 -156
- package/dist/engines/hashline/index.js.map +0 -1
- package/dist/engines/hashline/snapshots.d.ts +0 -16
- package/dist/engines/hashline/snapshots.d.ts.map +0 -1
- package/dist/engines/hashline/snapshots.js +0 -30
- package/dist/engines/hashline/snapshots.js.map +0 -1
- package/dist/engines/unified-diff/index.d.ts +0 -18
- package/dist/engines/unified-diff/index.d.ts.map +0 -1
- package/dist/engines/unified-diff/index.js +0 -27
- package/dist/engines/unified-diff/index.js.map +0 -1
- package/dist/index.d.ts +0 -17
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -16
- package/dist/index.js.map +0 -1
- package/dist/registry.d.ts +0 -7
- package/dist/registry.d.ts.map +0 -1
- package/dist/registry.js +0 -19
- package/dist/registry.js.map +0 -1
- package/dist/types.d.ts +0 -97
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -8
- package/dist/types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HashlineEngine — v1.0 default edit engine
|
|
3
|
-
*
|
|
4
|
-
* 协议(oh-my-pi 借鉴 + Hermes 实战校准):
|
|
5
|
-
*
|
|
6
|
-
* @@ <line> <3hex-hash> @@
|
|
7
|
-
* <new-line-content-1>
|
|
8
|
-
* <new-line-content-2>
|
|
9
|
-
* @@ <line> <3hex-hash> @@
|
|
10
|
-
* <new-line-content>
|
|
11
|
-
* @@ <line> <3hex-hash> @@
|
|
12
|
-
* <new-line-content>
|
|
13
|
-
*
|
|
14
|
-
* 锚定规则:
|
|
15
|
-
* - 第一个 @@ = start anchor(指向**待替换的旧块起始行**)
|
|
16
|
-
* - 后续 @@ = 块内 mid-anchor(每 ~10 行一个,校验漂移)
|
|
17
|
-
* - 最后一个 @@ = end anchor
|
|
18
|
-
* - 行号从 1 开始
|
|
19
|
-
*
|
|
20
|
-
* Sprint 0.1 范围:parser + apply + snapshots。不含 Recovery 3-way / block 语法(Sprint 1)。
|
|
21
|
-
*/
|
|
22
|
-
import type { ApplyResult, EditEngine, EditIntent, FileContent } from '../../types.js';
|
|
23
|
-
export declare class HashlineEngine implements EditEngine {
|
|
24
|
-
readonly name = "hashline";
|
|
25
|
-
format(intent: EditIntent): string;
|
|
26
|
-
apply(target: FileContent, patch: string): ApplyResult;
|
|
27
|
-
private applyWithHashes;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/hashline/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAcvF,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,CAAC,IAAI,cAAc;IAE3B,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBlC,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAStD,OAAO,CAAC,eAAe;CAqDxB"}
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HashlineEngine — v1.0 default edit engine
|
|
3
|
-
*
|
|
4
|
-
* 协议(oh-my-pi 借鉴 + Hermes 实战校准):
|
|
5
|
-
*
|
|
6
|
-
* @@ <line> <3hex-hash> @@
|
|
7
|
-
* <new-line-content-1>
|
|
8
|
-
* <new-line-content-2>
|
|
9
|
-
* @@ <line> <3hex-hash> @@
|
|
10
|
-
* <new-line-content>
|
|
11
|
-
* @@ <line> <3hex-hash> @@
|
|
12
|
-
* <new-line-content>
|
|
13
|
-
*
|
|
14
|
-
* 锚定规则:
|
|
15
|
-
* - 第一个 @@ = start anchor(指向**待替换的旧块起始行**)
|
|
16
|
-
* - 后续 @@ = 块内 mid-anchor(每 ~10 行一个,校验漂移)
|
|
17
|
-
* - 最后一个 @@ = end anchor
|
|
18
|
-
* - 行号从 1 开始
|
|
19
|
-
*
|
|
20
|
-
* Sprint 0.1 范围:parser + apply + snapshots。不含 Recovery 3-way / block 语法(Sprint 1)。
|
|
21
|
-
*/
|
|
22
|
-
import { computeLineHashes, findAnchor } from './snapshots.js';
|
|
23
|
-
const ANCHOR_RE = /^@@\s+(\d+)\s+([0-9a-f]{3})\s+@@\s*$/;
|
|
24
|
-
export class HashlineEngine {
|
|
25
|
-
name = 'hashline';
|
|
26
|
-
format(intent) {
|
|
27
|
-
if (intent.anchor.kind !== 'line-hash') {
|
|
28
|
-
throw new Error(`HashlineEngine requires anchor kind=line-hash, got: ${intent.anchor.kind}`);
|
|
29
|
-
}
|
|
30
|
-
const startLine = intent.anchor.line;
|
|
31
|
-
const startHash = intent.anchor.hash;
|
|
32
|
-
const newLines = intent.newText.split('\n');
|
|
33
|
-
// Sprint 0.1 协议(简化版):
|
|
34
|
-
// @@ <line> <hash> @@
|
|
35
|
-
// <new-line-1>
|
|
36
|
-
// <new-line-2>
|
|
37
|
-
// ...
|
|
38
|
-
// mid-anchor(每 ~10 行一个校验点)挪到 Sprint 1,因为本版 parseBlocks
|
|
39
|
-
// 把任何相邻 @@ 配对成 start+end,会把首 block 的 lines 吃成空数组。
|
|
40
|
-
// end-anchor 同样隐式化:下一个 @@ 即 block 边界,patch 末尾的最后一个
|
|
41
|
-
// block 持有余下所有非 @@ 行。
|
|
42
|
-
return [`@@ ${startLine} ${startHash} @@`, ...newLines].join('\n');
|
|
43
|
-
}
|
|
44
|
-
apply(target, patch) {
|
|
45
|
-
if (!target.lineHashes) {
|
|
46
|
-
// 自动补 lineHashes
|
|
47
|
-
const computed = computeLineHashes(target.text);
|
|
48
|
-
return this.applyWithHashes({ ...target, lineHashes: computed }, patch);
|
|
49
|
-
}
|
|
50
|
-
return this.applyWithHashes(target, patch);
|
|
51
|
-
}
|
|
52
|
-
applyWithHashes(target, patch) {
|
|
53
|
-
const blocks = parseBlocks(patch);
|
|
54
|
-
if (blocks.length === 0) {
|
|
55
|
-
return {
|
|
56
|
-
ok: false,
|
|
57
|
-
error: { kind: 'parse-failed', position: 0, message: 'No valid @@ blocks found' },
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
const targetLines = target.text.split('\n');
|
|
61
|
-
// 校验 start anchor
|
|
62
|
-
const first = blocks[0];
|
|
63
|
-
const startAnchor = findAnchor(target, first.startLine, first.startHash);
|
|
64
|
-
if (!startAnchor) {
|
|
65
|
-
const actual = target.lineHashes?.[first.startLine - 1] ?? '?';
|
|
66
|
-
return {
|
|
67
|
-
ok: false,
|
|
68
|
-
error: {
|
|
69
|
-
kind: 'anchor-mismatch',
|
|
70
|
-
expected: first.startHash,
|
|
71
|
-
actual,
|
|
72
|
-
line: first.startLine,
|
|
73
|
-
},
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
// 找到要替换的旧块范围
|
|
77
|
-
const oldTextRange = locateOldText(targetLines, first);
|
|
78
|
-
if (!oldTextRange) {
|
|
79
|
-
return {
|
|
80
|
-
ok: false,
|
|
81
|
-
error: {
|
|
82
|
-
kind: 'text-not-found',
|
|
83
|
-
hint: `Cannot locate text at line ${first.startLine} for hash ${first.startHash}`,
|
|
84
|
-
},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
// 拼装新内容
|
|
88
|
-
const newLines = [];
|
|
89
|
-
for (let i = 0; i < oldTextRange.start; i++) {
|
|
90
|
-
newLines.push(targetLines[i]);
|
|
91
|
-
}
|
|
92
|
-
for (const block of blocks) {
|
|
93
|
-
newLines.push(...block.lines);
|
|
94
|
-
}
|
|
95
|
-
for (let i = oldTextRange.end; i < targetLines.length; i++) {
|
|
96
|
-
newLines.push(targetLines[i]);
|
|
97
|
-
}
|
|
98
|
-
return { ok: true, newText: newLines.join('\n'), engine: this.name };
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
function parseBlocks(patch) {
|
|
102
|
-
const lines = patch.split('\n');
|
|
103
|
-
const blocks = [];
|
|
104
|
-
let current = null;
|
|
105
|
-
for (let i = 0; i < lines.length; i++) {
|
|
106
|
-
const line = lines[i];
|
|
107
|
-
const m = ANCHOR_RE.exec(line);
|
|
108
|
-
if (m) {
|
|
109
|
-
const ln = Number.parseInt(m[1], 10);
|
|
110
|
-
const hs = m[2];
|
|
111
|
-
if (current !== null) {
|
|
112
|
-
// 任何相邻 @@ 都闭合当前 block(end 隐式 = 下一个 anchor)
|
|
113
|
-
// Sprint 1 会改成显式 end-anchor + mid-anchor 校验
|
|
114
|
-
current.endLine = ln;
|
|
115
|
-
current.endHash = hs;
|
|
116
|
-
blocks.push(current);
|
|
117
|
-
}
|
|
118
|
-
current = {
|
|
119
|
-
startLine: ln,
|
|
120
|
-
startHash: hs,
|
|
121
|
-
endLine: 0,
|
|
122
|
-
endHash: '',
|
|
123
|
-
midAnchors: [],
|
|
124
|
-
lines: [],
|
|
125
|
-
};
|
|
126
|
-
continue;
|
|
127
|
-
}
|
|
128
|
-
if (current) {
|
|
129
|
-
current.lines.push(line);
|
|
130
|
-
}
|
|
131
|
-
// 非 @@ 行 + 无 current block = patch 开头/结尾的杂项,忽略
|
|
132
|
-
}
|
|
133
|
-
// 兜底:Sprint 0.2 简化版接受"无显式 end-anchor 的末尾 block"。
|
|
134
|
-
// 协议:end 隐式 = 下一个 @@ 或 patch 末尾。
|
|
135
|
-
// Sprint 1 会改成"end-anchor 缺失则报错"以检测 patch 截断。
|
|
136
|
-
if (current !== null) {
|
|
137
|
-
blocks.push(current);
|
|
138
|
-
}
|
|
139
|
-
return blocks;
|
|
140
|
-
}
|
|
141
|
-
function locateOldText(targetLines, block) {
|
|
142
|
-
// 简化策略:从 block.startLine 往后找连续 N 行匹配
|
|
143
|
-
// Sprint 0.1 假设 oldText 已经由 intent 提供;这里从 block.lines 推断
|
|
144
|
-
// Sprint 1 完整版会改用 intent.oldText 显式提供
|
|
145
|
-
// 兜底:用 mid-anchor 校验
|
|
146
|
-
if (block.midAnchors.length > 0) {
|
|
147
|
-
// Sprint 1 才有
|
|
148
|
-
}
|
|
149
|
-
// 简单:start 替换 1 行(block.lines 长度)
|
|
150
|
-
const start = block.startLine - 1;
|
|
151
|
-
const end = start + 1;
|
|
152
|
-
if (end > targetLines.length)
|
|
153
|
-
return null;
|
|
154
|
-
return { start, end };
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/hashline/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 3-hex TAG 快照系统 — hashline 协议核心
|
|
3
|
-
*
|
|
4
|
-
* 设计:
|
|
5
|
-
* - 每行计算 FNV-1a 32-bit hash,取低 12-bit → 3-hex 字符
|
|
6
|
-
* - 短 hash 优点:模型生成容错率高
|
|
7
|
-
* - 短 hash 代价:~4096 分之一碰撞概率(1 万行项目平均 2-3 次碰撞)
|
|
8
|
-
* - 缓解:Sprint 1 加 mid-anchor 校验,把碰撞概率降到 10^-12 量级
|
|
9
|
-
*/
|
|
10
|
-
export declare function computeLineHashes(text: string): string[];
|
|
11
|
-
export declare function hashLine(text: string): string;
|
|
12
|
-
export declare function findAnchor(file: {
|
|
13
|
-
text: string;
|
|
14
|
-
lineHashes?: ReadonlyArray<string>;
|
|
15
|
-
}, line: number, hash: string): boolean;
|
|
16
|
-
//# sourceMappingURL=snapshots.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../../src/engines/hashline/snapshots.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGxD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,EAC1D,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAKT"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 3-hex TAG 快照系统 — hashline 协议核心
|
|
3
|
-
*
|
|
4
|
-
* 设计:
|
|
5
|
-
* - 每行计算 FNV-1a 32-bit hash,取低 12-bit → 3-hex 字符
|
|
6
|
-
* - 短 hash 优点:模型生成容错率高
|
|
7
|
-
* - 短 hash 代价:~4096 分之一碰撞概率(1 万行项目平均 2-3 次碰撞)
|
|
8
|
-
* - 缓解:Sprint 1 加 mid-anchor 校验,把碰撞概率降到 10^-12 量级
|
|
9
|
-
*/
|
|
10
|
-
export function computeLineHashes(text) {
|
|
11
|
-
const lines = text.split('\n');
|
|
12
|
-
return lines.map(hashLine);
|
|
13
|
-
}
|
|
14
|
-
export function hashLine(text) {
|
|
15
|
-
let h = 0x811c9dc5;
|
|
16
|
-
for (let i = 0; i < text.length; i++) {
|
|
17
|
-
h ^= text.charCodeAt(i);
|
|
18
|
-
h = Math.imul(h, 0x01000193);
|
|
19
|
-
}
|
|
20
|
-
return ((h >>> 0) & 0xfff).toString(16).padStart(3, '0');
|
|
21
|
-
}
|
|
22
|
-
export function findAnchor(file, line, hash) {
|
|
23
|
-
if (line < 1)
|
|
24
|
-
return false;
|
|
25
|
-
const hashes = file.lineHashes ?? computeLineHashes(file.text);
|
|
26
|
-
if (line > hashes.length)
|
|
27
|
-
return false;
|
|
28
|
-
return hashes[line - 1] === hash;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=snapshots.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../../src/engines/hashline/snapshots.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAA0D,EAC1D,IAAY,EACZ,IAAY;IAEZ,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACvC,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC;AACnC,CAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* UnifiedDiffEngine — v1.0 stub
|
|
3
|
-
*
|
|
4
|
-
* 占位实现,**throw "not implemented"**。
|
|
5
|
-
* 存在意义:
|
|
6
|
-
* 1. 验证 EditEngine 抽象可承载多实现
|
|
7
|
-
* 2. 未来切换时 0 改 LLM prompt 之外代码
|
|
8
|
-
* 3. Sprint 0.1 单测能 mock 2 个 engine
|
|
9
|
-
*
|
|
10
|
-
* v1.0.x 启用(如果 hashline 出现真瓶颈);v2.0 之前不动。
|
|
11
|
-
*/
|
|
12
|
-
import type { ApplyResult, EditEngine, EditIntent, FileContent } from '../../types.js';
|
|
13
|
-
export declare class UnifiedDiffEngine implements EditEngine {
|
|
14
|
-
readonly name = "unified-diff";
|
|
15
|
-
format(_intent: EditIntent): string;
|
|
16
|
-
apply(_target: FileContent, _patch: string): ApplyResult;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/unified-diff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvF,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,CAAC,IAAI,kBAAkB;IAE/B,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAInC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW;CAUzD"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* UnifiedDiffEngine — v1.0 stub
|
|
3
|
-
*
|
|
4
|
-
* 占位实现,**throw "not implemented"**。
|
|
5
|
-
* 存在意义:
|
|
6
|
-
* 1. 验证 EditEngine 抽象可承载多实现
|
|
7
|
-
* 2. 未来切换时 0 改 LLM prompt 之外代码
|
|
8
|
-
* 3. Sprint 0.1 单测能 mock 2 个 engine
|
|
9
|
-
*
|
|
10
|
-
* v1.0.x 启用(如果 hashline 出现真瓶颈);v2.0 之前不动。
|
|
11
|
-
*/
|
|
12
|
-
export class UnifiedDiffEngine {
|
|
13
|
-
name = 'unified-diff';
|
|
14
|
-
format(_intent) {
|
|
15
|
-
throw new Error('UnifiedDiffEngine.format: not implemented (v1.0 stub)');
|
|
16
|
-
}
|
|
17
|
-
apply(_target, _patch) {
|
|
18
|
-
return {
|
|
19
|
-
ok: false,
|
|
20
|
-
error: {
|
|
21
|
-
kind: 'unsupported',
|
|
22
|
-
reason: 'UnifiedDiffEngine.apply: not implemented in v1.0. Use HashlineEngine or set ENGINE=hashline explicitly.',
|
|
23
|
-
},
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/unified-diff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,cAAc,CAAC;IAE/B,MAAM,CAAC,OAAmB;QACxB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAoB,EAAE,MAAc;QACxC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,aAAa;gBACnB,MAAM,EACJ,yGAAyG;aAC5G;SACF,CAAC;IACJ,CAAC;CACF"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deepwhale/edit-engine — 可插拔的编辑原语抽象
|
|
3
|
-
*
|
|
4
|
-
* Sprint 0.1 落地:
|
|
5
|
-
* - EditEngine interface(arch §2.3.2)
|
|
6
|
-
* - HashlineEngine(v1.0 default,3-hex TAG 锚定)
|
|
7
|
-
* - UnifiedDiffEngine stub(throw "not implemented",v1.0 占位)
|
|
8
|
-
*
|
|
9
|
-
* 关键设计:hashline 是 Editing Primitive,不是核心卖点。
|
|
10
|
-
* 未来可换 unified diff / AST patch —— edit_file tool 只依赖 EditEngine 接口。
|
|
11
|
-
*/
|
|
12
|
-
export type { EditEngine, EditIntent, ApplyResult, ApplyError, FileContent, EditAnchor, } from './types.js';
|
|
13
|
-
export { HashlineEngine } from './engines/hashline/index.js';
|
|
14
|
-
export { hashLine, computeLineHashes, findAnchor } from './engines/hashline/snapshots.js';
|
|
15
|
-
export { UnifiedDiffEngine } from './engines/unified-diff/index.js';
|
|
16
|
-
export { createDefaultEngine, createEngine } from './registry.js';
|
|
17
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,YAAY,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @deepwhale/edit-engine — 可插拔的编辑原语抽象
|
|
3
|
-
*
|
|
4
|
-
* Sprint 0.1 落地:
|
|
5
|
-
* - EditEngine interface(arch §2.3.2)
|
|
6
|
-
* - HashlineEngine(v1.0 default,3-hex TAG 锚定)
|
|
7
|
-
* - UnifiedDiffEngine stub(throw "not implemented",v1.0 占位)
|
|
8
|
-
*
|
|
9
|
-
* 关键设计:hashline 是 Editing Primitive,不是核心卖点。
|
|
10
|
-
* 未来可换 unified diff / AST patch —— edit_file tool 只依赖 EditEngine 接口。
|
|
11
|
-
*/
|
|
12
|
-
export { HashlineEngine } from './engines/hashline/index.js';
|
|
13
|
-
export { hashLine, computeLineHashes, findAnchor } from './engines/hashline/snapshots.js';
|
|
14
|
-
export { UnifiedDiffEngine } from './engines/unified-diff/index.js';
|
|
15
|
-
export { createDefaultEngine, createEngine } from './registry.js';
|
|
16
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/registry.d.ts
DELETED
package/dist/registry.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,wBAAgB,mBAAmB,IAAI,UAAU,CAEhD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CASrD"}
|
package/dist/registry.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Engine 注册表 — 单一入口创建 engine,避免散落。
|
|
3
|
-
*/
|
|
4
|
-
import { HashlineEngine } from './engines/hashline/index.js';
|
|
5
|
-
import { UnifiedDiffEngine } from './engines/unified-diff/index.js';
|
|
6
|
-
export function createDefaultEngine() {
|
|
7
|
-
return new HashlineEngine();
|
|
8
|
-
}
|
|
9
|
-
export function createEngine(name) {
|
|
10
|
-
switch (name) {
|
|
11
|
-
case 'hashline':
|
|
12
|
-
return new HashlineEngine();
|
|
13
|
-
case 'unified-diff':
|
|
14
|
-
return new UnifiedDiffEngine();
|
|
15
|
-
default:
|
|
16
|
-
throw new Error(`Unknown edit engine: ${name}. Supported: hashline, unified-diff`);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=registry.js.map
|
package/dist/registry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGpE,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,IAAI,cAAc,EAAE,CAAC;QAC9B,KAAK,cAAc;YACjB,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC;YACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,qCAAqC,CAAC,CAAC;IACvF,CAAC;AACH,CAAC"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EditEngine 抽象(arch §2.3.2)
|
|
3
|
-
*
|
|
4
|
-
* 设计原则:hashline 是 Editing Primitive,不是核心卖点。
|
|
5
|
-
* edit_file tool 只能依赖 EditEngine 接口,**不能直接 import hashline 包**。
|
|
6
|
-
*/
|
|
7
|
-
/** 文件内容抽象 — 抽象 IO,未来可接 git tree / virtual fs */
|
|
8
|
-
export interface FileContent {
|
|
9
|
-
readonly path: string;
|
|
10
|
-
readonly text: string;
|
|
11
|
-
/** 行级 hash(v1.0 = 3-hex 短 hash,未来可换 8-char 强 hash) */
|
|
12
|
-
readonly lineHashes?: ReadonlyArray<string>;
|
|
13
|
-
}
|
|
14
|
-
export type EditAnchor =
|
|
15
|
-
/** hashline: 锚定到具体行 + hash 校验(默认) */
|
|
16
|
-
{
|
|
17
|
-
kind: 'line-hash';
|
|
18
|
-
line: number;
|
|
19
|
-
hash: string;
|
|
20
|
-
}
|
|
21
|
-
/** unified-diff: 锚定到 [start, end) 行范围 */
|
|
22
|
-
| {
|
|
23
|
-
kind: 'line-range';
|
|
24
|
-
start: number;
|
|
25
|
-
end: number;
|
|
26
|
-
}
|
|
27
|
-
/** AST patch: 锚定到 node id(v2.0 候选,未实现) */
|
|
28
|
-
| {
|
|
29
|
-
kind: 'ast-node';
|
|
30
|
-
nodeId: string;
|
|
31
|
-
}
|
|
32
|
-
/** search-and-replace: 锚定到唯一文本(v1.0 备选) */
|
|
33
|
-
| {
|
|
34
|
-
kind: 'text-match';
|
|
35
|
-
text: string;
|
|
36
|
-
occurrence: number;
|
|
37
|
-
};
|
|
38
|
-
/**
|
|
39
|
-
* 模型的"修改意图" — 引擎负责把它转成可应用的 patch 文本。
|
|
40
|
-
*/
|
|
41
|
-
export interface EditIntent {
|
|
42
|
-
readonly file: string;
|
|
43
|
-
readonly anchor: EditAnchor;
|
|
44
|
-
readonly oldText: string;
|
|
45
|
-
readonly newText: string;
|
|
46
|
-
}
|
|
47
|
-
export type ApplyError = {
|
|
48
|
-
kind: 'anchor-mismatch';
|
|
49
|
-
expected: string;
|
|
50
|
-
actual: string;
|
|
51
|
-
line: number;
|
|
52
|
-
} | {
|
|
53
|
-
kind: 'text-not-found';
|
|
54
|
-
hint: string;
|
|
55
|
-
} | {
|
|
56
|
-
kind: 'ambiguous-match';
|
|
57
|
-
occurrences: number;
|
|
58
|
-
} | {
|
|
59
|
-
kind: 'unsupported';
|
|
60
|
-
reason: string;
|
|
61
|
-
} | {
|
|
62
|
-
kind: 'parse-failed';
|
|
63
|
-
position: number;
|
|
64
|
-
message: string;
|
|
65
|
-
} | {
|
|
66
|
-
kind: 'io-error';
|
|
67
|
-
path: string;
|
|
68
|
-
message: string;
|
|
69
|
-
};
|
|
70
|
-
export type ApplyResult = {
|
|
71
|
-
ok: true;
|
|
72
|
-
newText: string;
|
|
73
|
-
engine: string;
|
|
74
|
-
} | {
|
|
75
|
-
ok: false;
|
|
76
|
-
error: ApplyError;
|
|
77
|
-
};
|
|
78
|
-
/**
|
|
79
|
-
* EditEngine interface — 任何 patch 格式必须实现这两个方法。
|
|
80
|
-
*
|
|
81
|
-
* v1.0 实现:HashlineEngine(default)、UnifiedDiffEngine(stub)。
|
|
82
|
-
* v2.0+ 候选:AstPatchEngine、SearchReplaceEngine。
|
|
83
|
-
*/
|
|
84
|
-
export interface EditEngine {
|
|
85
|
-
readonly name: string;
|
|
86
|
-
/**
|
|
87
|
-
* 把 EditIntent 序列化成 patch 文本(用于 LLM 输出 / 调试 / 日志)。
|
|
88
|
-
*/
|
|
89
|
-
format(intent: EditIntent): string;
|
|
90
|
-
/**
|
|
91
|
-
* 把 patch 文本应用到目标文件。
|
|
92
|
-
* - 成功:返回 ok:true + 新内容
|
|
93
|
-
* - 失败:返回 ok:false + ApplyError(含 recovery 建议)
|
|
94
|
-
*/
|
|
95
|
-
apply(target: FileContent, patch: string): ApplyResult;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,UAAU;AACpB,qCAAqC;AACnC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AACnD,yCAAyC;GACvC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AACpD,0CAA0C;GACxC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACtC,2CAA2C;GACzC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,CAAC;AAErC;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC;IAEnC;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC;CACxD"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|