@oh-my-pi/pi-coding-agent 13.3.1 → 13.3.3
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/CHANGELOG.md +9 -0
- package/package.json +7 -7
- package/src/cursor.ts +1 -1
- package/src/modes/components/tool-execution.ts +3 -2
- package/src/modes/theme/defaults/dark-poimandres.json +138 -0
- package/src/modes/theme/defaults/index.ts +4 -0
- package/src/modes/theme/defaults/light-poimandres.json +138 -0
- package/src/patch/diff.ts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [13.3.3] - 2026-02-26
|
|
6
|
+
### Added
|
|
7
|
+
|
|
8
|
+
- Support for `move` parameter in `computeHashlineDiff` to enable file move operations alongside content edits
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Modified no-op detection logic to allow move-only operations when file content remains unchanged
|
|
13
|
+
|
|
5
14
|
## [13.3.1] - 2026-02-26
|
|
6
15
|
|
|
7
16
|
### Added
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@oh-my-pi/pi-coding-agent",
|
|
4
|
-
"version": "13.3.
|
|
4
|
+
"version": "13.3.3",
|
|
5
5
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
6
6
|
"homepage": "https://github.com/can1357/oh-my-pi",
|
|
7
7
|
"author": "Can Boluk",
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@mozilla/readability": "^0.6",
|
|
44
|
-
"@oh-my-pi/omp-stats": "13.3.
|
|
45
|
-
"@oh-my-pi/pi-agent-core": "13.3.
|
|
46
|
-
"@oh-my-pi/pi-ai": "13.3.
|
|
47
|
-
"@oh-my-pi/pi-natives": "13.3.
|
|
48
|
-
"@oh-my-pi/pi-tui": "13.3.
|
|
49
|
-
"@oh-my-pi/pi-utils": "13.3.
|
|
44
|
+
"@oh-my-pi/omp-stats": "13.3.3",
|
|
45
|
+
"@oh-my-pi/pi-agent-core": "13.3.3",
|
|
46
|
+
"@oh-my-pi/pi-ai": "13.3.3",
|
|
47
|
+
"@oh-my-pi/pi-natives": "13.3.3",
|
|
48
|
+
"@oh-my-pi/pi-tui": "13.3.3",
|
|
49
|
+
"@oh-my-pi/pi-utils": "13.3.3",
|
|
50
50
|
"@sinclair/typebox": "^0.34",
|
|
51
51
|
"@xterm/headless": "^6.0",
|
|
52
52
|
"ajv": "^8.18",
|
package/src/cursor.ts
CHANGED
|
@@ -198,7 +198,7 @@ export class CursorExecHandlers implements ICursorExecHandlers {
|
|
|
198
198
|
const timeoutSeconds = args.timeout && args.timeout > 0 ? args.timeout : undefined;
|
|
199
199
|
const toolResultMessage = await executeTool(this.options, "bash", toolCallId, {
|
|
200
200
|
command: args.command,
|
|
201
|
-
|
|
201
|
+
cwd: args.workingDirectory || undefined,
|
|
202
202
|
timeout: timeoutSeconds,
|
|
203
203
|
});
|
|
204
204
|
return toolResultMessage;
|
|
@@ -204,12 +204,13 @@ export class ToolExecutionComponent extends Container {
|
|
|
204
204
|
return;
|
|
205
205
|
}
|
|
206
206
|
const edits = this.#args?.edits;
|
|
207
|
+
const move = this.#args?.move;
|
|
207
208
|
if (path && Array.isArray(edits)) {
|
|
208
|
-
const argsKey = JSON.stringify({ path, edits });
|
|
209
|
+
const argsKey = JSON.stringify({ path, edits, move });
|
|
209
210
|
if (this.#editDiffArgsKey === argsKey) return;
|
|
210
211
|
this.#editDiffArgsKey = argsKey;
|
|
211
212
|
|
|
212
|
-
computeHashlineDiff({ path, edits }, this.#cwd).then(result => {
|
|
213
|
+
computeHashlineDiff({ path, edits, move }, this.#cwd).then(result => {
|
|
213
214
|
if (this.#editDiffArgsKey === argsKey) {
|
|
214
215
|
this.#editDiffPreview = result;
|
|
215
216
|
this.#updateDisplay();
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dark-poimandres",
|
|
3
|
+
"vars": {
|
|
4
|
+
"poimandresBg": "#1b1e28",
|
|
5
|
+
"poimandresFocus": "#303340",
|
|
6
|
+
"poimandresGray": "#a6accd",
|
|
7
|
+
"poimandresDarkerGray": "#767c9d",
|
|
8
|
+
"poimandresBluishGray": "#506477",
|
|
9
|
+
"poimandresOffWhite": "#e4f0fb",
|
|
10
|
+
"poimandresBrightMint": "#5DE4c7",
|
|
11
|
+
"poimandresStrongTurquoise": "#00CED1",
|
|
12
|
+
"poimandresLowerMint": "#5fb3a1",
|
|
13
|
+
"poimandresLightBlue": "#ADD7FF",
|
|
14
|
+
"poimandresLowerBlue": "#89ddff",
|
|
15
|
+
"poimandresDesaturatedGreen": "#7AC6B6",
|
|
16
|
+
"poimandresHotRed": "#d0679d",
|
|
17
|
+
"poimandresPink": "#f087bd",
|
|
18
|
+
"poimandresBrightYellow": "#fffac2",
|
|
19
|
+
"poimandresBluishGrayBrighter": "#7390AA",
|
|
20
|
+
"poimandresSelection": "#717cb425",
|
|
21
|
+
"poimandresWhite": "#ffffff",
|
|
22
|
+
"poimandresBlack": "#000000",
|
|
23
|
+
"poimandresBg256": 235,
|
|
24
|
+
"poimandresFocus256": 238,
|
|
25
|
+
"poimandresGray256": 109,
|
|
26
|
+
"poimandresDarkerGray256": 103,
|
|
27
|
+
"poimandresBluishGray256": 66,
|
|
28
|
+
"poimandresBrightMint256": 86,
|
|
29
|
+
"poimandresStrongTurquoise256": 44,
|
|
30
|
+
"poimandresLowerMint256": 79,
|
|
31
|
+
"poimandresLightBlue256": 153,
|
|
32
|
+
"poimandresLowerBlue256": 117,
|
|
33
|
+
"poimandresDesaturatedGreen256": 79,
|
|
34
|
+
"poimandresHotRed256": 169,
|
|
35
|
+
"poimandresPink256": 211,
|
|
36
|
+
"poimandresBrightYellow256": 229,
|
|
37
|
+
"poimandresBluishGrayBrighter256": 110,
|
|
38
|
+
"poimandresSubtleBg": "#1b1e28",
|
|
39
|
+
"poimandresMediumBg": "#23273a",
|
|
40
|
+
"poimandresBrightBg": "#303340"
|
|
41
|
+
},
|
|
42
|
+
"colors": {
|
|
43
|
+
"accent": "poimandresStrongTurquoise",
|
|
44
|
+
"border": "poimandresBluishGray",
|
|
45
|
+
"borderAccent": "poimandresDarkerGray",
|
|
46
|
+
"borderMuted": "poimandresBluishGray",
|
|
47
|
+
"success": "poimandresStrongTurquoise",
|
|
48
|
+
"error": "poimandresHotRed",
|
|
49
|
+
"warning": "poimandresBrightYellow",
|
|
50
|
+
"muted": "poimandresDarkerGray",
|
|
51
|
+
"dim": "poimandresBluishGray",
|
|
52
|
+
"text": "poimandresGray",
|
|
53
|
+
"thinkingText": "poimandresDarkerGray",
|
|
54
|
+
"selectedBg": "poimandresSelection",
|
|
55
|
+
"userMessageBg": "poimandresFocus",
|
|
56
|
+
"userMessageText": "poimandresWhite",
|
|
57
|
+
"customMessageBg": "poimandresFocus",
|
|
58
|
+
"customMessageText": "poimandresWhite",
|
|
59
|
+
"customMessageLabel": "poimandresStrongTurquoise",
|
|
60
|
+
"toolPendingBg": "poimandresFocus",
|
|
61
|
+
"toolSuccessBg": "poimandresMediumBg",
|
|
62
|
+
"toolErrorBg": "poimandresFocus",
|
|
63
|
+
"toolTitle": "poimandresBrightMint",
|
|
64
|
+
"toolOutput": "poimandresDarkerGray",
|
|
65
|
+
"mdHeading": "poimandresBrightMint",
|
|
66
|
+
"mdLink": "poimandresDesaturatedGreen",
|
|
67
|
+
"mdLinkUrl": "poimandresStrongTurquoise",
|
|
68
|
+
"mdCode": "poimandresStrongTurquoise",
|
|
69
|
+
"mdCodeBlock": "poimandresGray",
|
|
70
|
+
"mdCodeBlockBorder": "poimandresBluishGray",
|
|
71
|
+
"mdQuote": "poimandresDarkerGray",
|
|
72
|
+
"mdQuoteBorder": "poimandresBluishGray",
|
|
73
|
+
"mdHr": "poimandresDarkerGray",
|
|
74
|
+
"mdListBullet": "poimandresBrightMint",
|
|
75
|
+
"toolDiffAdded": "poimandresStrongTurquoise",
|
|
76
|
+
"toolDiffRemoved": "poimandresHotRed",
|
|
77
|
+
"toolDiffContext": "poimandresDarkerGray",
|
|
78
|
+
"syntaxComment": "poimandresDarkerGray",
|
|
79
|
+
"syntaxKeyword": "poimandresDesaturatedGreen",
|
|
80
|
+
"syntaxFunction": "poimandresBrightMint",
|
|
81
|
+
"syntaxVariable": "poimandresStrongTurquoise",
|
|
82
|
+
"syntaxString": "poimandresStrongTurquoise",
|
|
83
|
+
"syntaxNumber": "poimandresPink",
|
|
84
|
+
"syntaxType": "poimandresStrongTurquoise",
|
|
85
|
+
"syntaxOperator": "poimandresDesaturatedGreen",
|
|
86
|
+
"syntaxPunctuation": "poimandresGray",
|
|
87
|
+
"thinkingOff": "poimandresBluishGray",
|
|
88
|
+
"thinkingMinimal": "poimandresDarkerGray",
|
|
89
|
+
"thinkingLow": "poimandresBrightMint",
|
|
90
|
+
"thinkingMedium": "poimandresStrongTurquoise",
|
|
91
|
+
"thinkingHigh": "poimandresPink",
|
|
92
|
+
"thinkingXhigh": "poimandresHotRed",
|
|
93
|
+
"bashMode": "poimandresDesaturatedGreen",
|
|
94
|
+
"pythonMode": "poimandresStrongTurquoise",
|
|
95
|
+
"statusLineBg": "poimandresFocus",
|
|
96
|
+
"statusLineSep": 66,
|
|
97
|
+
"statusLineModel": "poimandresBrightMint",
|
|
98
|
+
"statusLinePath": "poimandresGray",
|
|
99
|
+
"statusLineGitClean": "poimandresStrongTurquoise",
|
|
100
|
+
"statusLineGitDirty": "poimandresHotRed",
|
|
101
|
+
"statusLineContext": "poimandresDarkerGray",
|
|
102
|
+
"statusLineSpend": "poimandresLowerMint",
|
|
103
|
+
"statusLineStaged": 44,
|
|
104
|
+
"statusLineDirty": 169,
|
|
105
|
+
"statusLineUntracked": 229,
|
|
106
|
+
"statusLineOutput": "poimandresLowerBlue",
|
|
107
|
+
"statusLineCost": "poimandresPink",
|
|
108
|
+
"statusLineSubagents": "poimandresDesaturatedGreen"
|
|
109
|
+
},
|
|
110
|
+
"export": {
|
|
111
|
+
"pageBg": "poimandresBg",
|
|
112
|
+
"cardBg": "poimandresFocus",
|
|
113
|
+
"infoBg": "poimandresFocus"
|
|
114
|
+
},
|
|
115
|
+
"symbols": {
|
|
116
|
+
"preset": "nerd",
|
|
117
|
+
"overrides": {
|
|
118
|
+
"status.success": "●",
|
|
119
|
+
"status.error": "✖",
|
|
120
|
+
"status.warning": "◆",
|
|
121
|
+
"status.info": "○",
|
|
122
|
+
"status.pending": "◌",
|
|
123
|
+
"nav.cursor": "▸",
|
|
124
|
+
"nav.selected": "▴",
|
|
125
|
+
"thinking.minimal": "◌",
|
|
126
|
+
"thinking.low": "◍",
|
|
127
|
+
"thinking.medium": "◎",
|
|
128
|
+
"thinking.high": "◉",
|
|
129
|
+
"thinking.xhigh": "●",
|
|
130
|
+
"icon.model": "◇",
|
|
131
|
+
"icon.plan": "◈",
|
|
132
|
+
"icon.folder": "▸",
|
|
133
|
+
"icon.pi": "π",
|
|
134
|
+
"format.bullet": "◦",
|
|
135
|
+
"md.bullet": "◦"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -27,6 +27,7 @@ import dark_nebula from "./dark-nebula.json" with { type: "json" };
|
|
|
27
27
|
import dark_nord from "./dark-nord.json" with { type: "json" };
|
|
28
28
|
import dark_ocean from "./dark-ocean.json" with { type: "json" };
|
|
29
29
|
import dark_one from "./dark-one.json" with { type: "json" };
|
|
30
|
+
import dark_poimandres from "./dark-poimandres.json" with { type: "json" };
|
|
30
31
|
import dark_rainforest from "./dark-rainforest.json" with { type: "json" };
|
|
31
32
|
import dark_reef from "./dark-reef.json" with { type: "json" };
|
|
32
33
|
import dark_retro from "./dark-retro.json" with { type: "json" };
|
|
@@ -73,6 +74,7 @@ import light_one from "./light-one.json" with { type: "json" };
|
|
|
73
74
|
import light_opal from "./light-opal.json" with { type: "json" };
|
|
74
75
|
import light_orchard from "./light-orchard.json" with { type: "json" };
|
|
75
76
|
import light_paper from "./light-paper.json" with { type: "json" };
|
|
77
|
+
import light_poimandres from "./light-poimandres.json" with { type: "json" };
|
|
76
78
|
import light_prism from "./light-prism.json" with { type: "json" };
|
|
77
79
|
import light_retro from "./light-retro.json" with { type: "json" };
|
|
78
80
|
import light_sand from "./light-sand.json" with { type: "json" };
|
|
@@ -125,6 +127,7 @@ export const defaultThemes = {
|
|
|
125
127
|
"dark-nord": dark_nord,
|
|
126
128
|
"dark-ocean": dark_ocean,
|
|
127
129
|
"dark-one": dark_one,
|
|
130
|
+
"dark-poimandres": dark_poimandres,
|
|
128
131
|
"dark-rainforest": dark_rainforest,
|
|
129
132
|
"dark-reef": dark_reef,
|
|
130
133
|
"dark-retro": dark_retro,
|
|
@@ -171,6 +174,7 @@ export const defaultThemes = {
|
|
|
171
174
|
"light-opal": light_opal,
|
|
172
175
|
"light-orchard": light_orchard,
|
|
173
176
|
"light-paper": light_paper,
|
|
177
|
+
"light-poimandres": light_poimandres,
|
|
174
178
|
"light-prism": light_prism,
|
|
175
179
|
"light-retro": light_retro,
|
|
176
180
|
"light-sand": light_sand,
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "light-poimandres",
|
|
3
|
+
"vars": {
|
|
4
|
+
"poimandresBg": "#e4f0fb",
|
|
5
|
+
"poimandresFocus": "#303340",
|
|
6
|
+
"poimandresGray": "#a6accd",
|
|
7
|
+
"poimandresDarkerGray": "#767c9d",
|
|
8
|
+
"poimandresBluishGray": "#506477",
|
|
9
|
+
"poimandresOffWhite": "#e4f0fb",
|
|
10
|
+
"poimandresBrightMint": "#5DE4c7",
|
|
11
|
+
"poimandresStrongTurquoise": "#00CED1",
|
|
12
|
+
"poimandresLowerMint": "#5fb3a1",
|
|
13
|
+
"poimandresLightBlue": "#ADD7FF",
|
|
14
|
+
"poimandresLowerBlue": "#89ddff",
|
|
15
|
+
"poimandresDesaturatedGreen": "#7AC6B6",
|
|
16
|
+
"poimandresHotRed": "#d0679d",
|
|
17
|
+
"poimandresPink": "#f087bd",
|
|
18
|
+
"poimandresBrightYellow": "#fffac2",
|
|
19
|
+
"poimandresBluishGrayBrighter": "#7390AA",
|
|
20
|
+
"poimandresSelection": "#717cb425",
|
|
21
|
+
"poimandresWhite": "#ffffff",
|
|
22
|
+
"poimandresBlack": "#000000",
|
|
23
|
+
"poimandresBg256": 235,
|
|
24
|
+
"poimandresFocus256": 238,
|
|
25
|
+
"poimandresGray256": 109,
|
|
26
|
+
"poimandresDarkerGray256": 103,
|
|
27
|
+
"poimandresBluishGray256": 66,
|
|
28
|
+
"poimandresBrightMint256": 86,
|
|
29
|
+
"poimandresStrongTurquoise256": 44,
|
|
30
|
+
"poimandresLowerMint256": 79,
|
|
31
|
+
"poimandresLightBlue256": 153,
|
|
32
|
+
"poimandresLowerBlue256": 117,
|
|
33
|
+
"poimandresDesaturatedGreen256": 79,
|
|
34
|
+
"poimandresHotRed256": 169,
|
|
35
|
+
"poimandresPink256": 211,
|
|
36
|
+
"poimandresBrightYellow256": 229,
|
|
37
|
+
"poimandresBluishGrayBrighter256": 110,
|
|
38
|
+
"poimandresSubtleBg": "#e4f0fb",
|
|
39
|
+
"poimandresMediumBg": "#d0d7e5",
|
|
40
|
+
"poimandresBrightBg": "#7390AA"
|
|
41
|
+
},
|
|
42
|
+
"colors": {
|
|
43
|
+
"accent": "poimandresStrongTurquoise",
|
|
44
|
+
"border": "poimandresDarkerGray",
|
|
45
|
+
"borderAccent": "poimandresBluishGray",
|
|
46
|
+
"borderMuted": "poimandresDarkerGray",
|
|
47
|
+
"success": "poimandresStrongTurquoise",
|
|
48
|
+
"error": "poimandresHotRed",
|
|
49
|
+
"warning": "poimandresBrightYellow",
|
|
50
|
+
"muted": "poimandresBluishGray",
|
|
51
|
+
"dim": "poimandresDarkerGray",
|
|
52
|
+
"text": "poimandresBluishGray",
|
|
53
|
+
"thinkingText": "poimandresBluishGray",
|
|
54
|
+
"selectedBg": "poimandresSelection",
|
|
55
|
+
"userMessageBg": "poimandresBluishGrayBrighter",
|
|
56
|
+
"userMessageText": "poimandresWhite",
|
|
57
|
+
"customMessageBg": "poimandresGray",
|
|
58
|
+
"customMessageText": "poimandresWhite",
|
|
59
|
+
"customMessageLabel": "poimandresStrongTurquoise",
|
|
60
|
+
"toolPendingBg": "poimandresBluishGrayBrighter",
|
|
61
|
+
"toolSuccessBg": "poimandresBluishGrayBrighter",
|
|
62
|
+
"toolErrorBg": "poimandresBluishGrayBrighter",
|
|
63
|
+
"toolTitle": "poimandresBrightMint",
|
|
64
|
+
"toolOutput": "poimandresBluishGray",
|
|
65
|
+
"mdHeading": "poimandresBrightMint",
|
|
66
|
+
"mdLink": "poimandresDesaturatedGreen",
|
|
67
|
+
"mdLinkUrl": "poimandresStrongTurquoise",
|
|
68
|
+
"mdCode": "poimandresStrongTurquoise",
|
|
69
|
+
"mdCodeBlock": "poimandresBluishGray",
|
|
70
|
+
"mdCodeBlockBorder": "poimandresGray",
|
|
71
|
+
"mdQuote": "poimandresDarkerGray",
|
|
72
|
+
"mdQuoteBorder": "poimandresBluishGray",
|
|
73
|
+
"mdHr": "poimandresDarkerGray",
|
|
74
|
+
"mdListBullet": "poimandresBrightMint",
|
|
75
|
+
"toolDiffAdded": "poimandresStrongTurquoise",
|
|
76
|
+
"toolDiffRemoved": "poimandresHotRed",
|
|
77
|
+
"toolDiffContext": "poimandresDarkerGray",
|
|
78
|
+
"syntaxComment": "poimandresDarkerGray",
|
|
79
|
+
"syntaxKeyword": "poimandresDesaturatedGreen",
|
|
80
|
+
"syntaxFunction": "poimandresBrightMint",
|
|
81
|
+
"syntaxVariable": "poimandresStrongTurquoise",
|
|
82
|
+
"syntaxString": "poimandresStrongTurquoise",
|
|
83
|
+
"syntaxNumber": "poimandresPink",
|
|
84
|
+
"syntaxType": "poimandresStrongTurquoise",
|
|
85
|
+
"syntaxOperator": "poimandresDesaturatedGreen",
|
|
86
|
+
"syntaxPunctuation": "poimandresBluishGray",
|
|
87
|
+
"thinkingOff": "poimandresDarkerGray",
|
|
88
|
+
"thinkingMinimal": "poimandresBluishGray",
|
|
89
|
+
"thinkingLow": "poimandresBrightMint",
|
|
90
|
+
"thinkingMedium": "poimandresStrongTurquoise",
|
|
91
|
+
"thinkingHigh": "poimandresPink",
|
|
92
|
+
"thinkingXhigh": "poimandresHotRed",
|
|
93
|
+
"bashMode": "poimandresDesaturatedGreen",
|
|
94
|
+
"pythonMode": "poimandresStrongTurquoise",
|
|
95
|
+
"statusLineBg": "poimandresBluishGrayBrighter",
|
|
96
|
+
"statusLineSep": 103,
|
|
97
|
+
"statusLineModel": "poimandresBrightMint",
|
|
98
|
+
"statusLinePath": "poimandresBluishGray",
|
|
99
|
+
"statusLineGitClean": "poimandresStrongTurquoise",
|
|
100
|
+
"statusLineGitDirty": "poimandresHotRed",
|
|
101
|
+
"statusLineContext": "poimandresBluishGray",
|
|
102
|
+
"statusLineSpend": "poimandresLowerMint",
|
|
103
|
+
"statusLineStaged": 44,
|
|
104
|
+
"statusLineDirty": 169,
|
|
105
|
+
"statusLineUntracked": 229,
|
|
106
|
+
"statusLineOutput": "poimandresLowerBlue",
|
|
107
|
+
"statusLineCost": "poimandresPink",
|
|
108
|
+
"statusLineSubagents": "poimandresDesaturatedGreen"
|
|
109
|
+
},
|
|
110
|
+
"export": {
|
|
111
|
+
"pageBg": "poimandresOffWhite",
|
|
112
|
+
"cardBg": "poimandresBluishGrayBrighter",
|
|
113
|
+
"infoBg": "poimandresFocus"
|
|
114
|
+
},
|
|
115
|
+
"symbols": {
|
|
116
|
+
"preset": "nerd",
|
|
117
|
+
"overrides": {
|
|
118
|
+
"status.success": "●",
|
|
119
|
+
"status.error": "✖",
|
|
120
|
+
"status.warning": "◆",
|
|
121
|
+
"status.info": "○",
|
|
122
|
+
"status.pending": "◌",
|
|
123
|
+
"nav.cursor": "▸",
|
|
124
|
+
"nav.selected": "▴",
|
|
125
|
+
"thinking.minimal": "◌",
|
|
126
|
+
"thinking.low": "◍",
|
|
127
|
+
"thinking.medium": "◎",
|
|
128
|
+
"thinking.high": "◉",
|
|
129
|
+
"thinking.xhigh": "●",
|
|
130
|
+
"icon.model": "◇",
|
|
131
|
+
"icon.plan": "◈",
|
|
132
|
+
"icon.folder": "▸",
|
|
133
|
+
"icon.pi": "π",
|
|
134
|
+
"format.bullet": "◦",
|
|
135
|
+
"md.bullet": "◦"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
package/src/patch/diff.ts
CHANGED
|
@@ -386,10 +386,10 @@ export async function computePatchDiff(
|
|
|
386
386
|
* Used for preview rendering in the TUI before hashline-mode edits execute.
|
|
387
387
|
*/
|
|
388
388
|
export async function computeHashlineDiff(
|
|
389
|
-
input: { path: string; edits: HashlineEdit[] },
|
|
389
|
+
input: { path: string; edits: HashlineEdit[]; move?: string },
|
|
390
390
|
cwd: string,
|
|
391
391
|
): Promise<DiffResult | DiffError> {
|
|
392
|
-
const { path, edits } = input;
|
|
392
|
+
const { path, edits, move } = input;
|
|
393
393
|
const absolutePath = resolveToCwd(path, cwd);
|
|
394
394
|
|
|
395
395
|
try {
|
|
@@ -414,7 +414,7 @@ export async function computeHashlineDiff(
|
|
|
414
414
|
const normalizedContent = normalizeToLF(content);
|
|
415
415
|
|
|
416
416
|
const result = applyHashlineEdits(normalizedContent, edits);
|
|
417
|
-
if (normalizedContent === result.lines) {
|
|
417
|
+
if (normalizedContent === result.lines && !move) {
|
|
418
418
|
return { error: `No changes would be made to ${path}. The edits produce identical content.` };
|
|
419
419
|
}
|
|
420
420
|
|