larkway 0.3.35 → 0.3.36
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 +104 -65
- package/dist/main.js +12 -8
- package/package.json +1 -1
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.36**
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
package/README.zh.md
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -25413,13 +25413,13 @@ var require_lib2 = __commonJS({
|
|
|
25413
25413
|
Domain[Domain["Lark"] = 1] = "Lark";
|
|
25414
25414
|
})(exports.Domain || (exports.Domain = {}));
|
|
25415
25415
|
exports.LoggerLevel = void 0;
|
|
25416
|
-
(function(
|
|
25417
|
-
|
|
25418
|
-
|
|
25419
|
-
|
|
25420
|
-
|
|
25421
|
-
|
|
25422
|
-
|
|
25416
|
+
(function(LoggerLevel2) {
|
|
25417
|
+
LoggerLevel2[LoggerLevel2["fatal"] = 0] = "fatal";
|
|
25418
|
+
LoggerLevel2[LoggerLevel2["error"] = 1] = "error";
|
|
25419
|
+
LoggerLevel2[LoggerLevel2["warn"] = 2] = "warn";
|
|
25420
|
+
LoggerLevel2[LoggerLevel2["info"] = 3] = "info";
|
|
25421
|
+
LoggerLevel2[LoggerLevel2["debug"] = 4] = "debug";
|
|
25422
|
+
LoggerLevel2[LoggerLevel2["trace"] = 5] = "trace";
|
|
25423
25423
|
})(exports.LoggerLevel || (exports.LoggerLevel = {}));
|
|
25424
25424
|
var CEventType = /* @__PURE__ */ Symbol("event-type");
|
|
25425
25425
|
var CTenantKey = /* @__PURE__ */ Symbol("tenant-key");
|
|
@@ -128029,9 +128029,9 @@ async function checkWsConnectivity(ctx, opts) {
|
|
|
128029
128029
|
}
|
|
128030
128030
|
async function probeTaskScope(appId, appSecret, tasklistGuid) {
|
|
128031
128031
|
try {
|
|
128032
|
-
const { Client: LarkSdkClient2 } = await Promise.resolve().then(() => __toESM(require_lib2(), 1));
|
|
128032
|
+
const { Client: LarkSdkClient2, LoggerLevel: LoggerLevel2 } = await Promise.resolve().then(() => __toESM(require_lib2(), 1));
|
|
128033
128033
|
const { TaskListClient: TaskListClient2 } = await Promise.resolve().then(() => (init_client(), client_exports));
|
|
128034
|
-
const sdkClient = new LarkSdkClient2({ appId, appSecret });
|
|
128034
|
+
const sdkClient = new LarkSdkClient2({ appId, appSecret, loggerLevel: LoggerLevel2.fatal });
|
|
128035
128035
|
const taskClient = new TaskListClient2({
|
|
128036
128036
|
request: (config) => sdkClient.request(config)
|
|
128037
128037
|
});
|
|
@@ -132862,27 +132862,50 @@ function runLarkCliJson(args, spawnSyncFn) {
|
|
|
132862
132862
|
}
|
|
132863
132863
|
return { ok: true, data: parsed };
|
|
132864
132864
|
}
|
|
132865
|
-
function
|
|
132865
|
+
function searchUserTasklists(profile, query, spawnSyncFn = spawnSync3) {
|
|
132866
132866
|
const result = runLarkCliJson(
|
|
132867
|
-
["task", "
|
|
132867
|
+
["task", "+tasklist-search", "--as", "user", "--profile", profile, "--query", query, "--page-all", "--json"],
|
|
132868
132868
|
spawnSyncFn
|
|
132869
132869
|
);
|
|
132870
132870
|
if (!result.ok) return result;
|
|
132871
|
-
|
|
132872
|
-
|
|
132873
|
-
|
|
132874
|
-
|
|
132871
|
+
return extractTasklistSummaries(result.data);
|
|
132872
|
+
}
|
|
132873
|
+
function extractTasklistSummaries(data) {
|
|
132874
|
+
const rec = typeof data === "object" && data !== null ? data : {};
|
|
132875
|
+
const nested = typeof rec["data"] === "object" && rec["data"] !== null ? rec["data"] : {};
|
|
132876
|
+
let arr;
|
|
132877
|
+
for (const candidate of [
|
|
132878
|
+
data,
|
|
132879
|
+
rec["items"],
|
|
132880
|
+
rec["tasklists"],
|
|
132881
|
+
rec["results"],
|
|
132882
|
+
nested["items"],
|
|
132883
|
+
nested["tasklists"],
|
|
132884
|
+
nested["results"]
|
|
132885
|
+
]) {
|
|
132886
|
+
if (Array.isArray(candidate)) {
|
|
132887
|
+
arr = candidate;
|
|
132888
|
+
break;
|
|
132889
|
+
}
|
|
132875
132890
|
}
|
|
132876
|
-
|
|
132877
|
-
|
|
132891
|
+
if (!arr) {
|
|
132892
|
+
return {
|
|
132893
|
+
ok: false,
|
|
132894
|
+
error: `lark-cli +tasklist-search \u8FD4\u56DE\u7684\u5F62\u72B6\u65E0\u6CD5\u8BC6\u522B(\u627E\u4E0D\u5230\u6E05\u5355\u6570\u7EC4):${JSON.stringify(data).slice(0, 300)}`
|
|
132895
|
+
};
|
|
132896
|
+
}
|
|
132897
|
+
const out = [];
|
|
132898
|
+
const seen = /* @__PURE__ */ new Set();
|
|
132899
|
+
for (const raw of arr) {
|
|
132878
132900
|
if (typeof raw !== "object" || raw === null) continue;
|
|
132879
132901
|
const guid = raw["guid"];
|
|
132880
132902
|
const name = raw["name"];
|
|
132881
|
-
if (typeof guid === "string" && guid.length > 0) {
|
|
132882
|
-
|
|
132903
|
+
if (typeof guid === "string" && guid.length > 0 && !seen.has(guid)) {
|
|
132904
|
+
seen.add(guid);
|
|
132905
|
+
out.push({ guid, name: typeof name === "string" ? name : "(\u65E0\u6807\u9898)" });
|
|
132883
132906
|
}
|
|
132884
132907
|
}
|
|
132885
|
-
return { ok: true, data:
|
|
132908
|
+
return { ok: true, data: out };
|
|
132886
132909
|
}
|
|
132887
132910
|
function addTasklistMembersAsUser(profile, tasklistGuid, members, spawnSyncFn = spawnSync3) {
|
|
132888
132911
|
const dataJson = JSON.stringify({ members });
|
|
@@ -132969,33 +132992,41 @@ var USAGE2 = `larkway tasklist-init [--team <bot1,bot2,\u2026>] [--name <\u6E05\
|
|
|
132969
132992
|
\u5E2E\u52A9\u7684 agent,\u7B2C\u4E00\u6B65\u5FC5\u7136\u4F1A\u8DD1 \`larkway tasklist-init --help\`(\u5C31\u662F\u4F60\u6B63\u5728\u770B\u7684\u8FD9\u6BB5),
|
|
132970
132993
|
\u4ECE\u8FD9\u91CC\u5C31\u80FD\u5B66\u4F1A\u600E\u4E48\u628A\u672C\u673A\u6240\u6709\u5DF2\u914D\u7F6E\u7684 bot \u90FD\u914D\u6210\u6E05\u5355\u6210\u5458,\u4E0D\u9700\u8981\u4F60\u518D\u624B\u52A8\u4F20\u4EFB\u4F55\u53C2\u6570\u3002
|
|
132971
132994
|
|
|
132972
|
-
\u96F6\u53C2\u6570
|
|
132973
|
-
1.
|
|
132974
|
-
2. \u8DD1:larkway tasklist-init
|
|
132995
|
+
\u96F6\u53C2\u6570 Quickstart:
|
|
132996
|
+
1. \u8DD1:larkway tasklist-init
|
|
132975
132997
|
\u2014\u2014 \u4F1A\u81EA\u52A8:--team = \u672C\u673A bots/ \u76EE\u5F55\u4E0B\u5168\u90E8\u5DF2\u914D\u7F6E bot;--name = "Agent Team";
|
|
132976
|
-
\u7528\
|
|
132977
|
-
|
|
132978
|
-
|
|
132979
|
-
|
|
132998
|
+
\u7528\u7B2C\u4E00\u4E2A bot \u7684 app \u8EAB\u4EFD**\u65B0\u5EFA**\u4E00\u4E2A\u6E05\u5355(\u6E05\u5355 owner = \u8BE5 bot app),\u5E76\u628A\u4F60
|
|
132999
|
+
\u52A0\u4E3A editor \u6210\u5458(\u65B9\u4FBF\u5728\u4EFB\u52A1\u4E2D\u5FC3\u770B\u5230\u5E76\u7F16\u8F91)\u3002\u96F6\u53C2\u6570**\u4E0D\u4F1A**\u81EA\u52A8\u53BB\u8BA4\u9886\u540C\u540D\u6E05\u5355\u3002
|
|
133000
|
+
2. \u53BB\u98DE\u4E66\u4EFB\u52A1\u4E2D\u5FC3\u786E\u8BA4\u8FD9\u4E2A\u6E05\u5355\u5728\u4F60\u7684\u5217\u8868\u91CC\u53EF\u89C1,\u4E4B\u540E\u53F3\u952E\u8BDD\u9898\u6D88\u606F\u9009"\u8F6C\u4EFB\u52A1"\u5373\u53EF\u3002
|
|
133001
|
+
|
|
133002
|
+
\u60F3\u8BA9\u6E05\u5355\u5F52**\u4F60\u81EA\u5DF1**\u6240\u6709(\u800C\u4E0D\u662F bot app)?\u5148\u5728\u4EFB\u52A1\u4E2D\u5FC3\u81EA\u5DF1\u5EFA\u4E00\u4E2A,\u518D\u7528
|
|
133003
|
+
\`--adopt "<\u6E05\u5355\u540D>"\` \u8BA4\u9886(\u89C1\u4E0B)\u3002\u591A\u5957 Larkway \u90E8\u7F72\u65F6,\u7ED9\u6BCF\u5957\u7528 --name \u6539\u4E2A\u4E0D\u540C
|
|
133004
|
+
\u540D\u5B57\u505A\u9694\u79BB,\u907F\u514D\u6DF7\u7528\u3002
|
|
132980
133005
|
|
|
132981
133006
|
\u4EE5\u4E0A\u5168\u90E8\u662F\u7F3A\u7701\u884C\u4E3A,\u4EE5\u4E0B flag \u4EC5\u7528\u4E8E\u8986\u76D6:
|
|
132982
133007
|
|
|
132983
133008
|
--team <bot1,bot2,\u2026> \u663E\u5F0F\u6307\u5B9A\u8981\u52A0\u5165\u6E05\u5355\u7684 bot(\u9ED8\u8BA4 = \u5168\u90E8\u5DF2\u914D\u7F6E bot)
|
|
132984
|
-
--name <\u6E05\u5355\u540D> \u663E\u5F0F\u6307\u5B9A\u6E05\u5355\u540D(\u9ED8\u8BA4 "Agent Team")
|
|
132985
|
-
\
|
|
132986
|
-
--adopt "<\u6E05\u5355\u540D>" \
|
|
132987
|
-
\u76F4\u63A5\u62A5\u9519\u9000\u51FA,\u4E0D\
|
|
132988
|
-
--adopt-guid <guid> \u8DF3\u8FC7\u6309\u540D\u5B57\u67E5\u627E,\u76F4\u63A5
|
|
132989
|
-
\u7B49\u4EF7\u4E8E\u5F3A\u5236 adopt \u6A21\u5F0F);\u591A\u4E2A\u540C\u540D\u6E05\u5355\u65F6\u7528\u5B83\u6D88\u6B67
|
|
133009
|
+
--name <\u6E05\u5355\u540D> \u663E\u5F0F\u6307\u5B9A\u8981\u521B\u5EFA/\u590D\u7528\u7684\u6E05\u5355\u540D(\u9ED8\u8BA4 "Agent Team");\u591A\u56E2\u961F
|
|
133010
|
+
\u90E8\u7F72\u7528\u5B83\u9694\u79BB\u3002--adopt/--adopt-guid \u4F1A\u5FFD\u7565\u5B83,\u6309\u540D\u5B57/guid \u67E5
|
|
133011
|
+
--adopt "<\u6E05\u5355\u540D>" \u8BA4\u9886\u4F60\u81EA\u5DF1\u5728\u4EFB\u52A1\u4E2D\u5FC3\u5EFA\u597D\u7684\u540C\u540D\u6E05\u5355(\u628A\u8FD9\u4E9B bot \u52A0\u4E3A editor)\u2014\u2014
|
|
133012
|
+
\u67E5\u4E0D\u5230/\u67E5\u51FA\u591A\u4E2A\u90FD\u76F4\u63A5\u62A5\u9519\u9000\u51FA,\u7EDD\u4E0D\u9759\u9ED8\u56DE\u9000\u5230\u521B\u5EFA\u8DEF\u5F84
|
|
133013
|
+
--adopt-guid <guid> \u8DF3\u8FC7\u6309\u540D\u5B57\u67E5\u627E,\u76F4\u63A5\u8BA4\u9886\u8FD9\u4E2A guid \u7684\u6E05\u5355;\u591A\u4E2A\u540C\u540D\u6E05\u5355\u65F6\u6D88\u6B67
|
|
132990
133014
|
--owner <open_id> \u663E\u5F0F\u6307\u5B9A\u4EBA\u7C7B owner(\u4EC5\u521B\u5EFA\u8DEF\u5F84\u7528\u5230,adopt \u6A21\u5F0F\u4E0B\u4F60\u672C\u6765\u5C31\u662F
|
|
132991
133015
|
owner,\u4E0D\u9700\u8981\u8FD9\u4E2A)
|
|
132992
133016
|
--force \u8986\u76D6\u5171\u4EAB\u6CE8\u518C\u6587\u4EF6\u91CC\u5DF2\u6709\u7684 guid(\u9ED8\u8BA4\u4E0D\u8986\u76D6,\u907F\u514D\u8BEF\u64CD\u4F5C\u628A
|
|
132993
133017
|
\u6574\u4E2A\u56E2\u961F\u5207\u5230\u4E00\u4E2A\u65B0\u677F)
|
|
132994
133018
|
|
|
132995
|
-
\u2500\u2500
|
|
133019
|
+
\u2500\u2500 \u5220\u9664/\u6E05\u7406(\u6682\u65E0\u81EA\u52A8\u5B50\u547D\u4EE4)\u2500\u2500
|
|
133020
|
+
\u96F6\u53C2\u6570\u521B\u5EFA\u7684\u6E05\u5355 owner \u662F bot app,\u4F60\u7684\u7528\u6237\u8EAB\u4EFD\u5220\u4E0D\u6389\u5B83\u3002\u8981\u5220\u9664\u672C\u673A\u6CE8\u518C\u7684\u6E05\u5355:
|
|
133021
|
+
\u7528\u521B\u5EFA\u5B83\u7684 bot \u7684 app \u51ED\u8BC1(bridge \u81EA\u5DF1\u7528\u7684\u90A3\u5957,tenant_access_token)\u8C03
|
|
133022
|
+
\`DELETE /open-apis/task/v2/tasklists/{guid}\`(guid \u89C1 <LARKWAY_HOME>/task-team.json),
|
|
133023
|
+
\u518D\u5220\u6389\u672C\u673A\u72B6\u6001\u6587\u4EF6:task-team.json\u3001candidate-alerts-<guid>.json\u3001\u5404 bot \u7684
|
|
133024
|
+
task-handles.json \u91CC\u5BF9\u5E94\u8BB0\u5F55\u3002(\u81EA\u52A8 --delete \u5B50\u547D\u4EE4\u6309\u9700\u518D\u52A0\u3002)
|
|
133025
|
+
|
|
133026
|
+
\u2500\u2500 adopt \u6A21\u5F0F\u5185\u90E8\u6B65\u9AA4(\u4EC5\u663E\u5F0F --adopt/--adopt-guid \u89E6\u53D1)\u2500\u2500
|
|
132996
133027
|
1. \u4EE5\u4F60(\u64CD\u4F5C\u8005)\u7684\u7528\u6237\u8EAB\u4EFD\u6309\u540D\u5B57\u7CBE\u786E\u5339\u914D\u4F60\u80FD\u770B\u5230\u7684\u6E05\u5355(\u91CD\u540D \u2192 \u62A5\u9519\u5217\u51FA\u5168\u90E8
|
|
132997
|
-
guid,\u8BA9\u4F60\u52A0 --adopt-guid <guid> \u6D88\u6B67\u91CD\u8DD1;\u4E00\u4E2A\u90FD\u627E\u4E0D\u5230 \u2192 \
|
|
132998
|
-
\
|
|
133028
|
+
guid,\u8BA9\u4F60\u52A0 --adopt-guid <guid> \u6D88\u6B67\u91CD\u8DD1;\u4E00\u4E2A\u90FD\u627E\u4E0D\u5230 \u2192 \u62A5\u9519\u63D0\u793A\u5148\u53BB\u4EFB\u52A1
|
|
133029
|
+
\u4E2D\u5FC3\u5EFA\u4E00\u4E2A,\u7EDD\u4E0D\u9759\u9ED8\u521B\u5EFA)
|
|
132999
133030
|
2. \u628A\u6BCF\u4E2A bot \u7684 app \u52A0\u4E3A\u6E05\u5355\u6210\u5458(role=editor,\u5E42\u7B49,\u5DF2\u662F\u6210\u5458\u7684\u8DF3\u8FC7/\u65E0\u5BB3\u91CD\u590D)
|
|
133000
133031
|
3. \u5199\u5165\u5171\u4EAB\u6CE8\u518C\u6587\u4EF6 <LARKWAY_HOME>/task-team.json(\u4E0E\u521B\u5EFA\u8DEF\u5F84\u540C\u4E00\u5957
|
|
133001
133032
|
first-writer-wins / --force \u8986\u76D6\u8BED\u4E49)
|
|
@@ -133105,25 +133136,12 @@ async function run10(ctx, args) {
|
|
|
133105
133136
|
loginHint
|
|
133106
133137
|
});
|
|
133107
133138
|
}
|
|
133108
|
-
const autoTarget = resolveAdoptTarget(creatorProfile, name, void 0, loginHint);
|
|
133109
|
-
if (autoTarget.ok) {
|
|
133110
|
-
return runAdoptWithGuid(ctx, {
|
|
133111
|
-
guid: autoTarget.guid,
|
|
133112
|
-
matchedName: autoTarget.matchedName,
|
|
133113
|
-
bots,
|
|
133114
|
-
force,
|
|
133115
|
-
creatorProfile,
|
|
133116
|
-
loginHint
|
|
133117
|
-
});
|
|
133118
|
-
}
|
|
133119
|
-
if (autoTarget.reason === "ambiguous") {
|
|
133120
|
-
if (ctx.flags.json) ctx.ui.emitJson({ ok: false, error: autoTarget.message });
|
|
133121
|
-
else ctx.ui.failure(autoTarget.message);
|
|
133122
|
-
return 1;
|
|
133123
|
-
}
|
|
133124
133139
|
if (!ctx.flags.json) {
|
|
133125
|
-
|
|
133126
|
-
|
|
133140
|
+
ctx.ui.print(
|
|
133141
|
+
ctx.ui.dim(
|
|
133142
|
+
`(\u7528 bot app \u8EAB\u4EFD\u521B\u5EFA/\u590D\u7528\u6E05\u5355 "${name}"\u3002\u60F3\u8BA4\u9886\u4F60\u81EA\u5DF1\u5728\u4EFB\u52A1\u4E2D\u5FC3\u5EFA\u7684\u6E05\u5355\u8BF7\u7528 --adopt "<\u6E05\u5355\u540D>" / --adopt-guid <guid>;\u591A\u56E2\u961F\u90E8\u7F72\u5EFA\u8BAE\u7528 --name \u6539\u540D\u9694\u79BB\u3002)`
|
|
133143
|
+
)
|
|
133144
|
+
);
|
|
133127
133145
|
}
|
|
133128
133146
|
const ownerOpenId = explicitOwner ?? resolveOwnerOpenId(creatorProfile);
|
|
133129
133147
|
if (!ownerOpenId) {
|
|
@@ -133135,7 +133153,11 @@ async function run10(ctx, args) {
|
|
|
133135
133153
|
}
|
|
133136
133154
|
return 1;
|
|
133137
133155
|
}
|
|
133138
|
-
const sdkClient = new import_node_sdk2.Client({
|
|
133156
|
+
const sdkClient = new import_node_sdk2.Client({
|
|
133157
|
+
appId: creator.app_id,
|
|
133158
|
+
appSecret: creator.appSecret,
|
|
133159
|
+
loggerLevel: import_node_sdk2.LoggerLevel.fatal
|
|
133160
|
+
});
|
|
133139
133161
|
const requester = {
|
|
133140
133162
|
request: (config) => sdkClient.request(config)
|
|
133141
133163
|
};
|
|
@@ -133154,13 +133176,22 @@ async function run10(ctx, args) {
|
|
|
133154
133176
|
try {
|
|
133155
133177
|
await taskClient.addTasklistMembers(tasklistGuid, members);
|
|
133156
133178
|
} catch (err2) {
|
|
133157
|
-
const
|
|
133158
|
-
if (
|
|
133159
|
-
|
|
133160
|
-
|
|
133161
|
-
|
|
133179
|
+
const errMsg = err2 instanceof Error ? err2.message : String(err2);
|
|
133180
|
+
if (isMembersEndpoint404(err2)) {
|
|
133181
|
+
if (!ctx.flags.json) {
|
|
133182
|
+
ctx.ui.warning(
|
|
133183
|
+
`\u590D\u7528\u6E05\u5355 ${tasklistGuid} \u65F6 add_members \u8FD4\u56DE 404(app \u7C7B\u578B\u6210\u5458\u7AEF\u70B9\u4E0D\u652F\u6301\u81EA\u52A9\u52A0\u5165,bot \u901A\u5E38\u5DF2\u7ECF\u662F\u6210\u5458)\u2014\u2014\u5DF2\u5FFD\u7565,\u4E0D\u5F71\u54CD\u4F7F\u7528(\u4E0E bridge \u542F\u52A8\u7684\u81EA\u52A9\u52A0\u5165\u540C\u6B3E\u964D\u7EA7)\u3002`
|
|
133184
|
+
);
|
|
133185
|
+
}
|
|
133186
|
+
} else {
|
|
133187
|
+
const msg = `\u590D\u7528\u5DF2\u6709\u6E05\u5355 ${tasklistGuid} \u65F6\u8865\u5145\u6210\u5458\u5931\u8D25: ${errMsg}`;
|
|
133188
|
+
if (ctx.flags.json) ctx.ui.emitJson({ ok: false, error: msg });
|
|
133189
|
+
else {
|
|
133190
|
+
ctx.ui.failure(msg);
|
|
133191
|
+
ctx.ui.print("\u5E38\u89C1\u539F\u56E0:app \u672A\u5728\u5F00\u653E\u5E73\u53F0\u540E\u53F0\u52FE\u9009 task:tasklist:write / task:task:write scope(\u89C1 docs/task-handle.md \xA77)\u3002");
|
|
133192
|
+
}
|
|
133193
|
+
return 1;
|
|
133162
133194
|
}
|
|
133163
|
-
return 1;
|
|
133164
133195
|
}
|
|
133165
133196
|
} else {
|
|
133166
133197
|
reused = false;
|
|
@@ -133217,8 +133248,10 @@ async function run10(ctx, args) {
|
|
|
133217
133248
|
} else {
|
|
133218
133249
|
ctx.ui.success(`\u6E05\u5355 "${name}" \u5DF2\u521B\u5EFA: ${tasklistGuid}`);
|
|
133219
133250
|
}
|
|
133220
|
-
ctx.ui.print(
|
|
133221
|
-
|
|
133251
|
+
ctx.ui.print(
|
|
133252
|
+
`\u4F60(${ownerOpenId})\u5DF2\u4F5C\u4E3A editor \u52A0\u5165${explicitOwner ? "" : "(open_id \u4ECE lark-cli \u5F53\u524D\u767B\u5F55\u7528\u6237\u81EA\u52A8\u89E3\u6790)"} \u2014\u2014 \u6E05\u5355 owner \u662F\u521B\u5EFA\u5B83\u7684 bot app;\u4F60\u662F editor \u6210\u5458(\u53EF\u5728\u4EFB\u52A1\u4E2D\u5FC3\u770B\u5230\u5E76\u7F16\u8F91)\u3002`
|
|
133253
|
+
);
|
|
133254
|
+
ctx.ui.print(`\u5DF2\u52A0\u5165(editor)\u7684 bot: ${bots.map((b) => b.id).join(", ")}`);
|
|
133222
133255
|
ctx.ui.print("");
|
|
133223
133256
|
if (!reused) {
|
|
133224
133257
|
ctx.ui.print(
|
|
@@ -133237,16 +133270,22 @@ async function run10(ctx, args) {
|
|
|
133237
133270
|
);
|
|
133238
133271
|
return 0;
|
|
133239
133272
|
}
|
|
133273
|
+
function isMembersEndpoint404(err2) {
|
|
133274
|
+
if (err2 instanceof TaskApiError) {
|
|
133275
|
+
return err2.status === 404 && err2.code === void 0;
|
|
133276
|
+
}
|
|
133277
|
+
return /page not found/i.test(err2 instanceof Error ? err2.message : String(err2));
|
|
133278
|
+
}
|
|
133240
133279
|
function resolveAdoptTarget(creatorProfile, name, explicitGuid, loginHint) {
|
|
133241
133280
|
if (explicitGuid) {
|
|
133242
133281
|
return { ok: true, guid: explicitGuid, matchedName: name };
|
|
133243
133282
|
}
|
|
133244
|
-
const listResult =
|
|
133283
|
+
const listResult = searchUserTasklists(creatorProfile, name);
|
|
133245
133284
|
if (!listResult.ok) {
|
|
133246
133285
|
return {
|
|
133247
133286
|
ok: false,
|
|
133248
133287
|
reason: "list-failed",
|
|
133249
|
-
message: `\u65E0\u6CD5\u4EE5\u4F60\u7684\u7528\u6237\u8EAB\u4EFD\
|
|
133288
|
+
message: `\u65E0\u6CD5\u4EE5\u4F60\u7684\u7528\u6237\u8EAB\u4EFD\u67E5\u8BE2\u6E05\u5355:${listResult.error}
|
|
133250
133289
|
|
|
133251
133290
|
\u8BF7\u5148\u786E\u8BA4\u5DF2\u7528\u8FD9\u4E2A profile \u767B\u5F55\u8FC7\u7528\u6237\u8EAB\u4EFD\u3001\u4E14\u7533\u8BF7\u4E86 task \u57DF\u6743\u9650:
|
|
133252
133291
|
${loginHint}
|
package/dist/main.js
CHANGED
|
@@ -24969,13 +24969,13 @@ var require_lib2 = __commonJS({
|
|
|
24969
24969
|
Domain[Domain["Lark"] = 1] = "Lark";
|
|
24970
24970
|
})(exports.Domain || (exports.Domain = {}));
|
|
24971
24971
|
exports.LoggerLevel = void 0;
|
|
24972
|
-
(function(
|
|
24973
|
-
|
|
24974
|
-
|
|
24975
|
-
|
|
24976
|
-
|
|
24977
|
-
|
|
24978
|
-
|
|
24972
|
+
(function(LoggerLevel2) {
|
|
24973
|
+
LoggerLevel2[LoggerLevel2["fatal"] = 0] = "fatal";
|
|
24974
|
+
LoggerLevel2[LoggerLevel2["error"] = 1] = "error";
|
|
24975
|
+
LoggerLevel2[LoggerLevel2["warn"] = 2] = "warn";
|
|
24976
|
+
LoggerLevel2[LoggerLevel2["info"] = 3] = "info";
|
|
24977
|
+
LoggerLevel2[LoggerLevel2["debug"] = 4] = "debug";
|
|
24978
|
+
LoggerLevel2[LoggerLevel2["trace"] = 5] = "trace";
|
|
24979
24979
|
})(exports.LoggerLevel || (exports.LoggerLevel = {}));
|
|
24980
24980
|
var CEventType = /* @__PURE__ */ Symbol("event-type");
|
|
24981
24981
|
var CTenantKey = /* @__PURE__ */ Symbol("tenant-key");
|
|
@@ -131669,7 +131669,11 @@ async function runV2Mode({
|
|
|
131669
131669
|
{
|
|
131670
131670
|
const guid = bot.taskHandle?.tasklistGuid ?? await readTeamTasklistGuid(resolveTaskTeamRegistryPath());
|
|
131671
131671
|
if (guid) {
|
|
131672
|
-
const taskSdkClient = new import_node_sdk2.Client({
|
|
131672
|
+
const taskSdkClient = new import_node_sdk2.Client({
|
|
131673
|
+
appId: bot.app_id,
|
|
131674
|
+
appSecret,
|
|
131675
|
+
loggerLevel: import_node_sdk2.LoggerLevel.fatal
|
|
131676
|
+
});
|
|
131673
131677
|
const taskRequester = {
|
|
131674
131678
|
request: (config2) => taskSdkClient.request(config2)
|
|
131675
131679
|
};
|