larkway 0.3.9 → 0.3.10
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 +1 -1
- package/README.zh.md +1 -1
- package/dist/cli/index.js +21 -29
- package/package.json +14 -16
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
You @ the bot in a Feishu thread. It runs on your machine — reading your real codebase, executing commands, opening MRs — and posts the result back. You define what the agent knows and what it can do. Larkway just carries the messages.
|
|
10
10
|
|
|
11
|
-
**Current release: v0.3.
|
|
11
|
+
**Current release: v0.3.10**
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
package/README.zh.md
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -124006,24 +124006,16 @@ import { spawn as spawn4 } from "node:child_process";
|
|
|
124006
124006
|
import { readFile as readFile10, access as access9 } from "node:fs/promises";
|
|
124007
124007
|
import "node:module";
|
|
124008
124008
|
import path17 from "node:path";
|
|
124009
|
-
var
|
|
124010
|
-
|
|
124011
|
-
|
|
124012
|
-
function buildLatestUrl(gitlabHost, repo) {
|
|
124013
|
-
return `https://${gitlabHost}/git/${repo}/-/releases/permalink/latest/downloads/${LATEST_TGZ_NAME}`;
|
|
124009
|
+
var DEFAULT_NPM_PACKAGE_SPEC = "larkway@latest";
|
|
124010
|
+
function resolveNpmPackageSpec() {
|
|
124011
|
+
return process.env["LARKWAY_UPDATE_URL"] ?? DEFAULT_NPM_PACKAGE_SPEC;
|
|
124014
124012
|
}
|
|
124015
|
-
function
|
|
124016
|
-
const gitlabHost = process.env["GITLAB_HOST"] ?? DEFAULT_GITLAB_HOST;
|
|
124017
|
-
const repo = process.env["LARKWAY_RELEASE_REPO"] ?? DEFAULT_RELEASE_REPO;
|
|
124018
|
-
const latestUrl = process.env["LARKWAY_UPDATE_URL"] ?? buildLatestUrl(gitlabHost, repo);
|
|
124019
|
-
return { gitlabHost, repo, latestUrl };
|
|
124020
|
-
}
|
|
124021
|
-
function buildReleaseSteps(latestUrl, cwd) {
|
|
124013
|
+
function buildNpmSteps(packageSpec, cwd) {
|
|
124022
124014
|
return [
|
|
124023
124015
|
{
|
|
124024
|
-
label: `npm i -g ${
|
|
124016
|
+
label: `npm i -g ${packageSpec}`,
|
|
124025
124017
|
cmd: "npm",
|
|
124026
|
-
args: ["i", "-g",
|
|
124018
|
+
args: ["i", "-g", packageSpec],
|
|
124027
124019
|
cwd
|
|
124028
124020
|
},
|
|
124029
124021
|
{
|
|
@@ -124177,24 +124169,24 @@ async function run7(ctx, args) {
|
|
|
124177
124169
|
const { ui, flags, cwd } = ctx;
|
|
124178
124170
|
const isDryRun = args.includes("--dry-run");
|
|
124179
124171
|
const forceGitPull = args.includes("--git-pull");
|
|
124180
|
-
const
|
|
124172
|
+
const packageSpec = resolveNpmPackageSpec();
|
|
124181
124173
|
if (!forceGitPull) {
|
|
124182
|
-
const
|
|
124174
|
+
const npmSteps = buildNpmSteps(packageSpec, cwd);
|
|
124183
124175
|
const lifecycleLabels2 = /* @__PURE__ */ new Set(["larkway stop (bridge lifecycle)", "larkway start (bridge lifecycle)"]);
|
|
124184
124176
|
if (isDryRun) {
|
|
124185
124177
|
if (flags.json) {
|
|
124186
124178
|
ui.emitJson({
|
|
124187
124179
|
ok: true,
|
|
124188
124180
|
dryRun: true,
|
|
124189
|
-
mode: "
|
|
124190
|
-
|
|
124191
|
-
steps:
|
|
124181
|
+
mode: "npm",
|
|
124182
|
+
packageSpec,
|
|
124183
|
+
steps: npmSteps.map((s) => ({ label: s.label, cmd: s.cmd, args: s.args, cwd: s.cwd }))
|
|
124192
124184
|
});
|
|
124193
124185
|
} else {
|
|
124194
|
-
ui.print(ui.bold("larkway update --dry-run (
|
|
124195
|
-
ui.print(ui.dim(`
|
|
124186
|
+
ui.print(ui.bold("larkway update --dry-run (npm \u6E90\u6A21\u5F0F)"));
|
|
124187
|
+
ui.print(ui.dim(` package: ${packageSpec}`));
|
|
124196
124188
|
ui.print("");
|
|
124197
|
-
|
|
124189
|
+
npmSteps.forEach((s, i) => {
|
|
124198
124190
|
ui.print(` ${ui.cyan(String(i + 1) + ".")} ${s.label}`);
|
|
124199
124191
|
ui.print(ui.dim(` $ ${s.cmd} ${s.args.join(" ")}`));
|
|
124200
124192
|
});
|
|
@@ -124205,14 +124197,14 @@ async function run7(ctx, args) {
|
|
|
124205
124197
|
return 0;
|
|
124206
124198
|
}
|
|
124207
124199
|
if (flags.json) {
|
|
124208
|
-
ui.emitJson({ ok: true, status: "starting", mode: "
|
|
124200
|
+
ui.emitJson({ ok: true, status: "starting", mode: "npm", packageSpec, stepCount: npmSteps.length });
|
|
124209
124201
|
} else {
|
|
124210
|
-
ui.print(ui.bold("larkway update (
|
|
124211
|
-
ui.print(ui.dim(`
|
|
124202
|
+
ui.print(ui.bold("larkway update (npm \u6E90)"));
|
|
124203
|
+
ui.print(ui.dim(` package: ${packageSpec}`));
|
|
124212
124204
|
}
|
|
124213
|
-
const { ok: ok3, lifecycleWarnings: lifecycleWarnings2 } = await runSteps(
|
|
124205
|
+
const { ok: ok3, lifecycleWarnings: lifecycleWarnings2 } = await runSteps(npmSteps, lifecycleLabels2, flags, ui);
|
|
124214
124206
|
if (!ok3) {
|
|
124215
|
-
const fallbackMsg = "
|
|
124207
|
+
const fallbackMsg = "npm \u5347\u7EA7\u5931\u8D25\u3002\u82E5\u7F51\u7EDC\u4E0D\u901A\u3001npm \u6743\u9650\u4E0D\u8DB3\u6216\u6E90\u4E0D\u53EF\u7528,\u53EF\u6539\u7528 `larkway update --git-pull` \u8D70 git pull + build \u8DEF\u5F84\u3002";
|
|
124216
124208
|
if (flags.json) {
|
|
124217
124209
|
ui.emitJson({ ok: false, hint: fallbackMsg });
|
|
124218
124210
|
} else {
|
|
@@ -124226,14 +124218,14 @@ async function run7(ctx, args) {
|
|
|
124226
124218
|
if (hadWarning2) {
|
|
124227
124219
|
ui.emitJson({ ok: true, status: "complete_with_warnings", warning: lifecycleWarnings2.join("; ") });
|
|
124228
124220
|
} else {
|
|
124229
|
-
ui.emitJson({ ok: true, status: "complete", mode: "
|
|
124221
|
+
ui.emitJson({ ok: true, status: "complete", mode: "npm" });
|
|
124230
124222
|
}
|
|
124231
124223
|
} else {
|
|
124232
124224
|
ui.print("");
|
|
124233
124225
|
if (hadWarning2) {
|
|
124234
124226
|
ui.success("larkway update \u5B8C\u6210,\u4F46 bridge \u9700\u624B\u52A8\u91CD\u542F(\u8BF7\u8FD0\u884C `larkway start`)\u3002");
|
|
124235
124227
|
} else {
|
|
124236
|
-
ui.success("larkway update \u5B8C\u6210\u3002\u5DF2\u5347\u7EA7\u5230\u6700\u65B0
|
|
124228
|
+
ui.success("larkway update \u5B8C\u6210\u3002\u5DF2\u5347\u7EA7\u5230\u6700\u65B0 npm \u7248\u672C,bridge \u5DF2\u91CD\u542F\u3002");
|
|
124237
124229
|
}
|
|
124238
124230
|
}
|
|
124239
124231
|
return 0;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "larkway",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.10",
|
|
4
4
|
"description": "Thin bridge: Feishu thread to local Claude Code CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Chuck Wu (chuckwu0)",
|
|
@@ -19,18 +19,6 @@
|
|
|
19
19
|
"bin": {
|
|
20
20
|
"larkway": "bin/larkway"
|
|
21
21
|
},
|
|
22
|
-
"scripts": {
|
|
23
|
-
"start": "tsx src/main.ts",
|
|
24
|
-
"cli": "tsx src/cli/index.ts",
|
|
25
|
-
"start:supervised": "bin/start-bridge.sh",
|
|
26
|
-
"dev": "tsx watch src/main.ts",
|
|
27
|
-
"build": "node scripts/build.mjs",
|
|
28
|
-
"prepack": "node scripts/build.mjs",
|
|
29
|
-
"typecheck": "tsc --noEmit",
|
|
30
|
-
"check:links": "bash bin/check-doc-links.sh",
|
|
31
|
-
"test": "vitest run",
|
|
32
|
-
"test:v0.3": "bash bin/v0.3-local-acceptance.sh"
|
|
33
|
-
},
|
|
34
22
|
"dependencies": {},
|
|
35
23
|
"devDependencies": {
|
|
36
24
|
"@types/js-yaml": "^4.0.9",
|
|
@@ -48,7 +36,6 @@
|
|
|
48
36
|
"qrcode-terminal": "^0.12.0",
|
|
49
37
|
"zod": "^3.22.0"
|
|
50
38
|
},
|
|
51
|
-
"packageManager": "pnpm@9.0.0",
|
|
52
39
|
"engines": {
|
|
53
40
|
"node": ">=20"
|
|
54
41
|
},
|
|
@@ -56,5 +43,16 @@
|
|
|
56
43
|
"dist/",
|
|
57
44
|
"bin/larkway",
|
|
58
45
|
"README.md"
|
|
59
|
-
]
|
|
60
|
-
|
|
46
|
+
],
|
|
47
|
+
"scripts": {
|
|
48
|
+
"start": "tsx src/main.ts",
|
|
49
|
+
"cli": "tsx src/cli/index.ts",
|
|
50
|
+
"start:supervised": "bin/start-bridge.sh",
|
|
51
|
+
"dev": "tsx watch src/main.ts",
|
|
52
|
+
"build": "node scripts/build.mjs",
|
|
53
|
+
"typecheck": "tsc --noEmit",
|
|
54
|
+
"check:links": "bash bin/check-doc-links.sh",
|
|
55
|
+
"test": "vitest run",
|
|
56
|
+
"test:v0.3": "bash bin/v0.3-local-acceptance.sh"
|
|
57
|
+
}
|
|
58
|
+
}
|