@gavin-hu/my-pi-agent 0.13.1 → 0.15.0
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 +66 -41
- package/README.zh-CN.md +53 -36
- package/extensions/bytefly/README.md +321 -186
- package/extensions/bytefly/block/component.ts +7 -15
- package/extensions/bytefly/block/register.ts +6 -1
- package/extensions/bytefly/doctor/config.ts +4 -1
- package/extensions/bytefly/doctor/register.ts +24 -5
- package/extensions/bytefly/doctor/tools.ts +4 -0
- package/extensions/bytefly/footer/collect/snapshot.ts +6 -1
- package/extensions/bytefly/footer/config.ts +10 -6
- package/extensions/bytefly/footer/price/config.ts +3 -2
- package/extensions/bytefly/footer/price/price.ts +5 -3
- package/extensions/bytefly/footer/price/rates.ts +63 -26
- package/extensions/bytefly/footer/render/status.ts +3 -3
- package/extensions/bytefly/header/component.ts +33 -10
- package/extensions/bytefly/header/config.ts +22 -0
- package/extensions/bytefly/header/register.ts +2 -1
- package/extensions/bytefly/index.ts +6 -6
- package/extensions/bytefly/notice/component.ts +8 -3
- package/extensions/bytefly/notify/config.ts +7 -12
- package/extensions/bytefly/notify/dispatch.ts +13 -5
- package/extensions/bytefly/panel/commands.ts +22 -2
- package/extensions/bytefly/panel/format.ts +17 -21
- package/extensions/bytefly/panel/settings-runtime.ts +86 -22
- package/extensions/bytefly/panel/settings.ts +279 -46
- package/extensions/bytefly/panel/themes.ts +32 -0
- package/extensions/bytefly/panel/tui/editing.ts +77 -0
- package/extensions/bytefly/panel/tui/entries.ts +24 -0
- package/extensions/bytefly/panel/tui/extensions-view.ts +13 -8
- package/extensions/bytefly/panel/tui/frame.ts +121 -4
- package/extensions/bytefly/panel/tui/settings-view.ts +98 -13
- package/extensions/bytefly/panel/tui.ts +176 -166
- package/extensions/bytefly/picker/discovery.ts +1 -0
- package/extensions/bytefly/picker/types.ts +2 -0
- package/extensions/bytefly/separator/component.ts +17 -6
- package/extensions/bytefly/separator/config.ts +15 -0
- package/extensions/bytefly/separator/format.ts +60 -6
- package/extensions/bytefly/separator/register.ts +68 -9
- package/extensions/bytefly/separator/types.ts +8 -0
- package/extensions/bytefly/update/cache.ts +58 -19
- package/extensions/bytefly/update/check.ts +35 -0
- package/extensions/bytefly/update/format.ts +76 -35
- package/extensions/bytefly/update/register.ts +144 -55
- package/extensions/bytefly/update/state.ts +4 -2
- package/extensions/bytefly/update/suppress.ts +66 -0
- package/extensions/bytefly/update/types.ts +15 -0
- package/extensions/bytefly/working/config.ts +4 -5
- package/extensions/bytefly/working/format.ts +24 -7
- package/extensions/bytefly/working/register.ts +34 -3
- package/extensions/check/README.md +253 -0
- package/extensions/check/commands.ts +128 -0
- package/extensions/check/config.ts +39 -0
- package/extensions/check/detect.ts +269 -0
- package/extensions/check/failures.ts +230 -0
- package/extensions/check/format.ts +135 -0
- package/extensions/check/index.ts +26 -0
- package/extensions/check/render.ts +185 -0
- package/extensions/check/runner.ts +176 -0
- package/extensions/check/runtime.ts +244 -0
- package/extensions/check/source.ts +80 -0
- package/extensions/check/tools.ts +173 -0
- package/extensions/check/tui.ts +195 -0
- package/extensions/check/types.ts +99 -0
- package/extensions/document/README.md +1 -1
- package/extensions/document/extract/pdf.ts +8 -16
- package/extensions/document/formats.ts +2 -2
- package/extensions/file-browse/README.md +66 -32
- package/extensions/file-browse/client.ts +95 -32
- package/extensions/file-browse/config.ts +9 -9
- package/extensions/file-browse/git.ts +37 -47
- package/extensions/file-browse/html.ts +39 -58
- package/extensions/file-browse/markdown.ts +110 -92
- package/extensions/file-browse/raw-html.ts +478 -0
- package/extensions/file-browse/router.ts +32 -70
- package/extensions/file-browse/server.ts +18 -56
- package/extensions/file-browse/urls.ts +80 -0
- package/extensions/goal/README.md +103 -47
- package/extensions/goal/clarify-parse.ts +4 -9
- package/extensions/goal/clarify.ts +27 -4
- package/extensions/goal/commands.ts +24 -11
- package/extensions/goal/format.ts +41 -10
- package/extensions/goal/index.ts +39 -16
- package/extensions/goal/plan-route.ts +51 -0
- package/extensions/goal/schema.ts +6 -23
- package/extensions/goal/state.ts +39 -57
- package/extensions/goal/tools.ts +26 -20
- package/extensions/goal/types.ts +11 -1
- package/extensions/job/README.md +20 -6
- package/extensions/job/format.ts +18 -68
- package/extensions/job/index.ts +26 -41
- package/extensions/job/log-writer.ts +208 -0
- package/extensions/job/logs.ts +3 -2
- package/extensions/job/process.ts +6 -99
- package/extensions/job/runtime.ts +42 -181
- package/extensions/job/schema.ts +1 -4
- package/extensions/job/tools.ts +1 -15
- package/extensions/job/tui.ts +117 -307
- package/extensions/job/ui.ts +7 -33
- package/extensions/memory/README.md +3 -1
- package/extensions/memory/errors.ts +5 -6
- package/extensions/memory/tui.ts +14 -24
- package/extensions/plan/README.md +106 -18
- package/extensions/plan/commands.ts +9 -5
- package/extensions/plan/format.ts +87 -0
- package/extensions/plan/index.ts +31 -15
- package/extensions/plan/plans.ts +2 -3
- package/extensions/plan/policy.ts +0 -6
- package/extensions/plan/runtime.ts +4 -2
- package/extensions/plan/steps.ts +37 -8
- package/extensions/plan/todos.ts +44 -3
- package/extensions/plan/tools/enter.ts +94 -0
- package/extensions/plan/tools/exit.ts +296 -0
- package/extensions/plan/tools/nested.ts +21 -0
- package/extensions/plan/tools/steps.ts +136 -0
- package/extensions/plan/tools/todo-seed.ts +76 -0
- package/extensions/plan/tools/write.ts +127 -0
- package/extensions/plan/tools.ts +18 -703
- package/extensions/plan/web-client.ts +6 -22
- package/extensions/plan/web-page.ts +19 -30
- package/extensions/plan/web-router.ts +34 -71
- package/extensions/plan/web.ts +13 -40
- package/extensions/question/answers.ts +3 -8
- package/extensions/question/tui.ts +6 -6
- package/extensions/rewind/README.md +95 -22
- package/extensions/rewind/checklist.ts +185 -0
- package/extensions/rewind/commands.ts +8 -0
- package/extensions/rewind/config.ts +3 -11
- package/extensions/rewind/format.ts +220 -2
- package/extensions/rewind/git.ts +74 -7
- package/extensions/rewind/hunk-picker.ts +114 -0
- package/extensions/rewind/patch.ts +88 -0
- package/extensions/rewind/path-picker.ts +67 -100
- package/extensions/rewind/paths.ts +93 -19
- package/extensions/rewind/restore.ts +53 -10
- package/extensions/rewind/review-tui.ts +320 -0
- package/extensions/rewind/review.ts +397 -0
- package/extensions/rewind/rewind-tui.ts +4 -3
- package/extensions/rewind/runtime.ts +94 -17
- package/extensions/subagent/README.md +118 -8
- package/extensions/subagent/background-tui.ts +208 -0
- package/extensions/subagent/background.ts +470 -0
- package/extensions/subagent/commands.ts +80 -0
- package/extensions/subagent/config.ts +62 -0
- package/extensions/subagent/format.ts +24 -1
- package/extensions/subagent/index.ts +116 -1
- package/extensions/subagent/orchestrate.ts +16 -3
- package/extensions/subagent/render.ts +25 -0
- package/extensions/subagent/run.ts +113 -49
- package/extensions/subagent/schema.ts +12 -0
- package/extensions/subagent/transcripts.ts +202 -0
- package/extensions/subagent/types.ts +23 -0
- package/extensions/subagent/ui.ts +50 -0
- package/extensions/todo/README.md +18 -13
- package/extensions/todo/format.ts +3 -2
- package/extensions/todo/runtime.ts +3 -2
- package/extensions/todo/schema.ts +8 -84
- package/extensions/todo/state.ts +5 -46
- package/extensions/todo/tools.ts +2 -1
- package/extensions/todo/types.ts +6 -15
- package/extensions/watch/README.md +16 -6
- package/extensions/watch/child.ts +150 -0
- package/extensions/watch/format.ts +8 -48
- package/extensions/watch/index.ts +42 -58
- package/extensions/watch/runtime.ts +49 -128
- package/extensions/watch/schema.ts +1 -4
- package/extensions/watch/tools.ts +1 -11
- package/extensions/watch/tui.ts +103 -273
- package/extensions/watch/ui.ts +5 -32
- package/extensions/web-access/README.md +1 -1
- package/extensions/web-access/fetch/page.ts +1 -1
- package/extensions/web-access/fetch/tool.ts +6 -2
- package/extensions/web-access/search/search.ts +2 -5
- package/extensions/wechat/README.md +3 -1
- package/extensions/wechat/client.ts +23 -0
- package/extensions/wechat/commands.ts +57 -42
- package/extensions/wechat/deliver.ts +5 -9
- package/extensions/wechat/errors.ts +3 -6
- package/extensions/wechat/inbound.ts +2 -5
- package/extensions/wechat/index.ts +2 -8
- package/extensions/wechat/outbound.ts +2 -4
- package/extensions/wechat/peer-worker.ts +3 -8
- package/extensions/wechat/poll.ts +10 -9
- package/extensions/wechat/presence.ts +35 -62
- package/extensions/wechat/reply-pipeline.ts +3 -1
- package/extensions/wechat/status-screen.ts +1 -1
- package/extensions/wechat/timer.ts +57 -0
- package/extensions/worktree/config.ts +8 -20
- package/extensions/worktree/enter.ts +7 -12
- package/extensions/worktree/git.ts +38 -69
- package/extensions/worktree/index.ts +5 -4
- package/extensions/worktree/registry.ts +7 -7
- package/extensions/worktree/root-tools.ts +2 -2
- package/extensions/worktree/status.ts +3 -2
- package/lib/README.md +22 -8
- package/lib/config.ts +83 -12
- package/lib/errors.ts +12 -0
- package/lib/format.ts +56 -0
- package/lib/git/read.ts +8 -0
- package/lib/goal-state.ts +23 -8
- package/lib/http/headers.ts +54 -0
- package/lib/http/index.ts +13 -0
- package/lib/http/response.ts +46 -0
- package/lib/http/router.ts +52 -0
- package/lib/http/server.ts +91 -0
- package/lib/lines.ts +77 -0
- package/lib/pdf.ts +82 -0
- package/lib/plan-entry.ts +71 -0
- package/lib/plan-state.ts +34 -0
- package/lib/report.ts +99 -0
- package/lib/requirements.ts +25 -19
- package/lib/spawn.ts +170 -0
- package/lib/todo-state.ts +110 -23
- package/lib/tool-names.ts +7 -0
- package/lib/tool-result.ts +33 -0
- package/lib/tui/README.md +68 -3
- package/lib/tui/chrome.ts +28 -4
- package/lib/tui/columns.ts +6 -1
- package/lib/tui/confirm.ts +65 -0
- package/lib/tui/dock-screen.ts +410 -0
- package/lib/tui/glyphs.ts +2 -1
- package/lib/tui/indent.ts +1 -1
- package/lib/tui/index.ts +2 -0
- package/lib/tui/rows.ts +21 -0
- package/lib/tui/status-controller.ts +35 -1
- package/lib/tui/tool.ts +59 -1
- package/lib/web/components.ts +20 -1
- package/lib/web/markup.ts +32 -0
- package/lib/web/runtime.ts +50 -0
- package/package.json +23 -5
- package/skills/init/SKILL.md +165 -0
- package/skills/init/references/agents-md-quality.md +103 -0
- package/skills/init/references/interview-questions.md +81 -0
- package/skills/refactor/SKILL.md +141 -0
- package/themes/bytefly-dark.json +2 -3
- package/themes/bytefly-light.json +2 -3
- package/extensions/watch/process.ts +0 -63
- package/extensions/web-access/fetch/pdf.ts +0 -45
package/themes/bytefly-dark.json
CHANGED
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
"purple": "#bc8cff",
|
|
18
18
|
"pink": "#f778ba",
|
|
19
19
|
"selectionBg": "#17273a",
|
|
20
|
-
"customBg": "#26233a",
|
|
21
20
|
"successBg": "#12271a",
|
|
22
21
|
"errorBg": "#3d1a21",
|
|
23
22
|
"searchBg": "#3d331a",
|
|
@@ -43,9 +42,9 @@
|
|
|
43
42
|
"searchMatchText": "text",
|
|
44
43
|
"userMessageBg": "",
|
|
45
44
|
"userMessageText": "text",
|
|
46
|
-
"customMessageBg": "
|
|
45
|
+
"customMessageBg": "",
|
|
47
46
|
"customMessageText": "muted",
|
|
48
|
-
"customMessageLabel": "
|
|
47
|
+
"customMessageLabel": "blue",
|
|
49
48
|
"toolPendingBg": "canvasSubtle",
|
|
50
49
|
"toolSuccessBg": "successBg",
|
|
51
50
|
"toolErrorBg": "errorBg",
|
|
@@ -16,7 +16,6 @@
|
|
|
16
16
|
"yellow": "#9a6700",
|
|
17
17
|
"purple": "#8250df",
|
|
18
18
|
"pink": "#bf3989",
|
|
19
|
-
"customBg": "#f5f1fd",
|
|
20
19
|
"successBg": "#e9f6ed",
|
|
21
20
|
"errorBg": "#fcf0f1",
|
|
22
21
|
"selectionBg": "#e8f2fc",
|
|
@@ -43,9 +42,9 @@
|
|
|
43
42
|
"searchMatchText": "text",
|
|
44
43
|
"userMessageBg": "",
|
|
45
44
|
"userMessageText": "text",
|
|
46
|
-
"customMessageBg": "
|
|
45
|
+
"customMessageBg": "",
|
|
47
46
|
"customMessageText": "muted",
|
|
48
|
-
"customMessageLabel": "
|
|
47
|
+
"customMessageLabel": "blue",
|
|
49
48
|
"toolPendingBg": "canvasSubtle",
|
|
50
49
|
"toolSuccessBg": "successBg",
|
|
51
50
|
"toolErrorBg": "errorBg",
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Process plumbing for the watch extension's command sources.
|
|
3
|
-
*
|
|
4
|
-
* A command watcher outlives a single tool call, so it is spawned with Node's
|
|
5
|
-
* `child_process` and its merged stdout/stderr are piped back as data events.
|
|
6
|
-
* Every function here is injectable so tests can drive a scripted child without
|
|
7
|
-
* launching a real process.
|
|
8
|
-
*
|
|
9
|
-
* On POSIX the child is started detached, making it a process-group leader;
|
|
10
|
-
* signals go to the whole group (`-pid`) so a shell and its descendants die
|
|
11
|
-
* together. On Windows the tree is killed with `taskkill /T`.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import { spawn as nodeSpawn, spawnSync } from "node:child_process";
|
|
15
|
-
import type { Readable } from "node:stream";
|
|
16
|
-
|
|
17
|
-
/** The subset of a spawned child the runtime uses. */
|
|
18
|
-
export interface SpawnedProcess {
|
|
19
|
-
pid?: number;
|
|
20
|
-
stdout: Readable | null;
|
|
21
|
-
stderr: Readable | null;
|
|
22
|
-
on(event: "close", listener: (code: number | null, signal: NodeJS.Signals | null) => void): unknown;
|
|
23
|
-
on(event: "error", listener: (error: Error) => void): unknown;
|
|
24
|
-
kill(signal?: NodeJS.Signals): boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface SpawnOptions {
|
|
28
|
-
cwd: string;
|
|
29
|
-
env?: NodeJS.ProcessEnv;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export type SpawnFn = (command: string, options: SpawnOptions) => SpawnedProcess;
|
|
33
|
-
|
|
34
|
-
/** Send `signal` to a pid's process tree, escalating to SIGKILL when `force`. */
|
|
35
|
-
export type KillTreeFn = (pid: number, signal: NodeJS.Signals, force?: boolean) => void;
|
|
36
|
-
|
|
37
|
-
/** Default spawn: a shell command in its own process group, output piped. */
|
|
38
|
-
export const defaultSpawn: SpawnFn = (command, options) =>
|
|
39
|
-
nodeSpawn(command, {
|
|
40
|
-
cwd: options.cwd,
|
|
41
|
-
shell: true,
|
|
42
|
-
detached: process.platform !== "win32",
|
|
43
|
-
stdio: ["ignore", "pipe", "pipe"],
|
|
44
|
-
env: options.env,
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
/** Default tree kill: process group on POSIX, `taskkill /T` on Windows. */
|
|
48
|
-
export const defaultKillTree: KillTreeFn = (pid, signal, force = false) => {
|
|
49
|
-
if (process.platform === "win32") {
|
|
50
|
-
spawnSync("taskkill", ["/pid", String(pid), "/T", ...(force ? ["/F"] : [])], { stdio: "ignore" });
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
try {
|
|
54
|
-
process.kill(-pid, signal);
|
|
55
|
-
} catch (error) {
|
|
56
|
-
if ((error as NodeJS.ErrnoException).code !== "ESRCH") throw error;
|
|
57
|
-
try {
|
|
58
|
-
process.kill(pid, signal);
|
|
59
|
-
} catch {
|
|
60
|
-
// Already gone.
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Optional PDF text extraction via the `unpdf` package.
|
|
3
|
-
*
|
|
4
|
-
* `unpdf` bundles a server-friendly build of PDF.js and is loaded lazily, so the
|
|
5
|
-
* extension stays dependency-free unless PDF support is actually used. Callers
|
|
6
|
-
* inject an extractor through `FetchDeps.pdf`.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { pdfGuidance } from "../../../lib/requirements.ts";
|
|
10
|
-
|
|
11
|
-
/** Raised when the optional `unpdf` package is missing or unusable. */
|
|
12
|
-
export class PdfUnavailableError extends Error {
|
|
13
|
-
constructor(message: string) {
|
|
14
|
-
super(message);
|
|
15
|
-
this.name = "PdfUnavailableError";
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export type PdfExtractor = (bytes: Uint8Array) => Promise<string>;
|
|
20
|
-
|
|
21
|
-
/** Extract plain text from PDF bytes, merging all pages, using `extractor` when given. */
|
|
22
|
-
export async function extractPdfText(bytes: Uint8Array, extractor?: PdfExtractor): Promise<string> {
|
|
23
|
-
if (extractor) return extractor(bytes);
|
|
24
|
-
|
|
25
|
-
let module: Record<string, unknown>;
|
|
26
|
-
try {
|
|
27
|
-
// A variable specifier keeps `tsc` from resolving the optional package's types.
|
|
28
|
-
const name = "unpdf";
|
|
29
|
-
module = (await import(name)) as Record<string, unknown>;
|
|
30
|
-
} catch {
|
|
31
|
-
throw new PdfUnavailableError(pdfGuidance());
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
const candidate = module.extractText ?? (module.default as Record<string, unknown> | undefined)?.extractText;
|
|
35
|
-
if (typeof candidate !== "function") {
|
|
36
|
-
throw new PdfUnavailableError("The installed 'unpdf' package does not export extractText.");
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const result: unknown = await (candidate as (data: Uint8Array, options?: unknown) => Promise<unknown>)(bytes, {
|
|
40
|
-
mergePages: true,
|
|
41
|
-
});
|
|
42
|
-
if (typeof result === "string") return result;
|
|
43
|
-
const text = (result as { text?: unknown } | undefined)?.text;
|
|
44
|
-
return typeof text === "string" ? text : "";
|
|
45
|
-
}
|