@henryqw/pi-herdr-rename 0.3.0 → 0.3.1
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/extensions/rename.ts +7 -14
- package/package.json +4 -1
package/extensions/rename.ts
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
type ExtensionAPI,
|
|
7
7
|
type ExtensionContext,
|
|
8
8
|
} from "@earendil-works/pi-coding-agent";
|
|
9
|
+
import { createHerdrClient } from "@henryqw/pi-herdr";
|
|
9
10
|
|
|
10
11
|
const WIDGET_KEY = "pi-herdr-rename";
|
|
11
12
|
const WIDGET_RESULT_MS = 2_000;
|
|
@@ -134,15 +135,9 @@ async function generateTitle(text: string, ctx: ExtensionContext, signal: AbortS
|
|
|
134
135
|
return title;
|
|
135
136
|
}
|
|
136
137
|
|
|
137
|
-
async function herdr(pi: ExtensionAPI, args: string[], signal: AbortSignal): Promise<string> {
|
|
138
|
-
const result = await pi.exec("herdr", args, { signal });
|
|
139
|
-
if (result.code !== 0 || result.killed) {
|
|
140
|
-
throw new Error(`Herdr ${args[0]} failed: ${result.stderr.trim() || `exit code ${result.code}`}`);
|
|
141
|
-
}
|
|
142
|
-
return result.stdout;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
138
|
export default function herdrRenameExtension(pi: ExtensionAPI): void {
|
|
139
|
+
const herdr = createHerdrClient<{ signal: AbortSignal }>((command, args, options) =>
|
|
140
|
+
pi.exec(command, [...args], options));
|
|
146
141
|
let latestUserText: string | undefined;
|
|
147
142
|
let automaticStarted = false;
|
|
148
143
|
let sequence = 0;
|
|
@@ -158,21 +153,19 @@ export default function herdrRenameExtension(pi: ExtensionAPI): void {
|
|
|
158
153
|
if (!paneId) return;
|
|
159
154
|
|
|
160
155
|
if (!isCurrent(request, controller)) return;
|
|
161
|
-
await herdr(
|
|
156
|
+
await herdr.run(["pane", "rename", paneId, title], { signal: controller.signal });
|
|
162
157
|
if (!isCurrent(request, controller)) return;
|
|
163
158
|
|
|
164
|
-
const paneResponse: unknown =
|
|
165
|
-
await herdr(pi, ["pane", "get", paneId], controller.signal),
|
|
166
|
-
);
|
|
159
|
+
const paneResponse: unknown = await herdr.json(["pane", "get", paneId], { signal: controller.signal });
|
|
167
160
|
const tabId = (paneResponse as { result?: { pane?: { tab_id?: unknown } } }).result?.pane?.tab_id;
|
|
168
161
|
if (typeof tabId !== "string" || !tabId) throw new Error("Herdr pane response omitted tab_id.");
|
|
169
162
|
if (!isCurrent(request, controller)) return;
|
|
170
163
|
|
|
171
|
-
const tabResponse: unknown =
|
|
164
|
+
const tabResponse: unknown = await herdr.json(["tab", "get", tabId], { signal: controller.signal });
|
|
172
165
|
const paneCount = (tabResponse as { result?: { tab?: { pane_count?: unknown } } }).result?.tab?.pane_count;
|
|
173
166
|
if (typeof paneCount !== "number") throw new Error("Herdr tab response omitted pane_count.");
|
|
174
167
|
if (paneCount === 1 && isCurrent(request, controller)) {
|
|
175
|
-
await herdr(
|
|
168
|
+
await herdr.run(["tab", "rename", tabId, title], { signal: controller.signal });
|
|
176
169
|
}
|
|
177
170
|
};
|
|
178
171
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@henryqw/pi-herdr-rename",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "Generate short Pi chat titles and rename the current Herdr location.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -42,5 +42,8 @@
|
|
|
42
42
|
"extensions": [
|
|
43
43
|
"./extensions"
|
|
44
44
|
]
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@henryqw/pi-herdr": "^0.1.0"
|
|
45
48
|
}
|
|
46
49
|
}
|