wildcrane-runner 0.6.5 → 0.6.8
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 +10 -14
- package/dist/akb/bin/ai4kanban.mjs +2 -21
- package/dist/akb/dist/kanban.mjs +2092 -2313
- package/dist/akb/package.json +1 -1
- package/dist/launcher.mjs +69 -34
- package/dist/runner.mjs +743 -672
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,25 +3,27 @@
|
|
|
3
3
|
WildCrane's Local Runner. It connects this computer to WildCrane and runs the tasks WildCrane
|
|
4
4
|
sends on your local Claude Code, Codex, OpenCode or Cursor.
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
[releases](https://github.com/ai4kanban/ai4kanban/releases?q=desktop-v&expanded=true). It sits
|
|
8
|
-
in the menu bar (tray), signs in once, and notifies you when something needs your review. The
|
|
9
|
-
release notes say how to open the unsigned build the first time.
|
|
10
|
-
- **Linux, or no desktop**: run it from a terminal; it runs tasks and shows no notifications.
|
|
6
|
+
支持 macOS、Windows 和 Linux,通过终端运行。桌面端 App 已暂停支持。
|
|
11
7
|
|
|
12
8
|
```sh
|
|
13
9
|
npm install -g wildcrane-runner
|
|
14
10
|
wildcrane-runner
|
|
15
11
|
```
|
|
16
12
|
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
首次启动会打开浏览器登录。独立 Runner 与插件内的 Runner 每分钟检查云端指定版本,
|
|
14
|
+
下载成功后自动保存进度、停止执行并重启,随后恢复任务与对话。下载失败继续使用当前版本,
|
|
15
|
+
新版无法启动则自动回退。已有 Runner 需要先手动更新一次,才能获得自动更新能力。
|
|
16
|
+
|
|
17
|
+
更新交接的作业保留 7 天,期间断网会等待重连。已完成的结果直接回写;操作结果不明或
|
|
18
|
+
连接器无法提供恢复依据时,任务会提示检查后续跑,避免重复执行。
|
|
19
|
+
|
|
20
|
+
- **看板与技能**:通过插件连接云端项目;插件自带 kanban 技能,无需手动安装。Runner 为其他 Agent 准备项目技能并维护提交保护,保留用户文件和已有钩子。
|
|
19
21
|
|
|
20
22
|
- **Node**: 22 or newer.
|
|
21
23
|
- **One computer per account**: a second computer is refused while the first is connected.
|
|
22
24
|
- **Folders**: tasks run in `~/.wildcrane/work/`, or in a project folder listed in
|
|
23
25
|
`~/.wildcrane/projects.json` (`{ "projects": ["/path/to/project"] }`). Any other folder is
|
|
24
|
-
refused.
|
|
26
|
+
refused. 在插件中添加项目文件夹,或手动维护该列表。
|
|
25
27
|
- **Task folders**: a task's jobs share its board, `<project>/.akb/kanban` (kept out of git),
|
|
26
28
|
or for a project with no folder here its own one, `~/.wildcrane/cache/<project>/.akb/kanban`
|
|
27
29
|
(a git repository). They run one at a time and sync the card, memory and assets with
|
|
@@ -47,9 +49,3 @@ names, and falls back to the previous one if the new one does not start.
|
|
|
47
49
|
harness, session and Realtime code from `../cli/src`, and the CLI itself into `dist/akb/`, so
|
|
48
50
|
`cli/` needs its own `npm install`.
|
|
49
51
|
Releasing: [`docs/deploy.md`](../docs/deploy.md).
|
|
50
|
-
|
|
51
|
-
The desktop app is `desktop/`: a Tauri 2 shell running the bundled Node on `dist/launcher.mjs`
|
|
52
|
-
with `WILDCRANE_DESKTOP=1`; the two speak JSON lines (`src/desktop.ts`). It needs Rust.
|
|
53
|
-
`npm install --include=dev` there, then `npm run dev`; `npm run lint` typechecks the windows,
|
|
54
|
-
`node scripts/preview.mjs` draws every window state into one page.
|
|
55
|
-
Releasing: [`docs/deploy.md`](../docs/deploy.md).
|
|
@@ -7,10 +7,7 @@
|
|
|
7
7
|
// package's built rules, and hand the whole command line to one of the two trees in there —
|
|
8
8
|
// `akb raw <move>`, or everything else.
|
|
9
9
|
//
|
|
10
|
-
//
|
|
11
|
-
// beside them (desktop/scripts/bundle-cli.mjs), so this file must have no dependencies. The
|
|
12
|
-
// commands, their options and their help are declared in cli/src/lib/cli/, which the build
|
|
13
|
-
// bundles — with everything it needs — into the one file this loads.
|
|
10
|
+
// 入口只使用 Node 内置模块;命令及依赖由 cli/src/ 打包到 dist/。
|
|
14
11
|
//
|
|
15
12
|
// Node 18+, same behaviour on macOS, Linux and Windows.
|
|
16
13
|
|
|
@@ -23,23 +20,7 @@ const PKG = JSON.parse(fs.readFileSync(path.join(PKG_DIR, 'package.json'), 'utf8
|
|
|
23
20
|
const NAME = PKG.name
|
|
24
21
|
const VERSION = PKG.version
|
|
25
22
|
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
// A global install puts it on the PATH as `akb`, and every example everywhere spells it that
|
|
29
|
-
// way. It is also run as a path — `node cli/bin/ai4kanban.mjs` in a source checkout, the copy
|
|
30
|
-
// inside the desktop app — and printing `akb` to a reader who has none is printing a line
|
|
31
|
-
// that ends in `command not found`. Whoever typed it is right here in argv, so ask that
|
|
32
|
-
// rather than guessing: only the PATH spellings are `akb`, `.mjs` never is.
|
|
33
|
-
//
|
|
34
|
-
// Not what's on the PATH, which is a different question with a different answer: `npx` puts
|
|
35
|
-
// an `akb` on the PATH of THIS process and nothing else, so the reader would still be given a
|
|
36
|
-
// line their own shell can't run. That one is spotted by the cache it runs out of, and
|
|
37
|
-
// answered with the same fetch pinned to this version — never `@latest`, which is how a board
|
|
38
|
-
// comes to be driven by two versions of its own rules.
|
|
39
|
-
//
|
|
40
|
-
// AI4KANBAN_COMMAND is how the desktop app's launcher says what it was typed as. That
|
|
41
|
-
// launcher is reached as `akb` on the PATH and then runs this file by its path, so argv alone
|
|
42
|
-
// would report the copy inside the app — a line no reader can paste.
|
|
23
|
+
// 保留用户调用时的命令名;npx 调用固定版本,Runner 可通过环境变量指定名称。
|
|
43
24
|
const PROGRAM = (() => {
|
|
44
25
|
const named = (process.env.AI4KANBAN_COMMAND || '').trim()
|
|
45
26
|
if (named) return named
|