@kevisual/cnb 0.0.40 → 0.0.42

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/dist/routes.js CHANGED
@@ -3,29 +3,47 @@ var __getProtoOf = Object.getPrototypeOf;
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ function __accessProp(key) {
7
+ return this[key];
8
+ }
9
+ var __toESMCache_node;
10
+ var __toESMCache_esm;
6
11
  var __toESM = (mod, isNodeMode, target) => {
12
+ var canCache = mod != null && typeof mod === "object";
13
+ if (canCache) {
14
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
15
+ var cached = cache.get(mod);
16
+ if (cached)
17
+ return cached;
18
+ }
7
19
  target = mod != null ? __create(__getProtoOf(mod)) : {};
8
20
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
9
21
  for (let key of __getOwnPropNames(mod))
10
22
  if (!__hasOwnProp.call(to, key))
11
23
  __defProp(to, key, {
12
- get: () => mod[key],
24
+ get: __accessProp.bind(mod, key),
13
25
  enumerable: true
14
26
  });
27
+ if (canCache)
28
+ cache.set(mod, to);
15
29
  return to;
16
30
  };
17
31
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
32
+ var __returnValue = (v) => v;
33
+ function __exportSetter(name, newValue) {
34
+ this[name] = __returnValue.bind(null, newValue);
35
+ }
18
36
  var __export = (target, all) => {
19
37
  for (var name in all)
20
38
  __defProp(target, name, {
21
39
  get: all[name],
22
40
  enumerable: true,
23
41
  configurable: true,
24
- set: (newValue) => all[name] = () => newValue
42
+ set: __exportSetter.bind(all, name)
25
43
  });
26
44
  };
27
45
 
28
- // node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js
46
+ // node_modules/dayjs/dayjs.min.js
29
47
  var require_dayjs_min = __commonJS((exports, module) => {
30
48
  (function(t, e) {
31
49
  typeof exports == "object" && typeof module != "undefined" ? module.exports = e() : typeof define == "function" && define.amd ? define(e) : (t = typeof globalThis != "undefined" ? globalThis : t || self).dayjs = e();
@@ -316,7 +334,7 @@ var require_dayjs_min = __commonJS((exports, module) => {
316
334
  });
317
335
  });
318
336
 
319
- // node_modules/.pnpm/@kevisual+router@0.0.90/node_modules/@kevisual/router/dist/router.js
337
+ // node_modules/@kevisual/router/dist/router.js
320
338
  import { createRequire } from "node:module";
321
339
  import { webcrypto as crypto2 } from "node:crypto";
322
340
  import url2 from "node:url";
@@ -18104,7 +18122,7 @@ var import_sender = __toESM2(require_sender(), 1);
18104
18122
  var import_websocket = __toESM2(require_websocket(), 1);
18105
18123
  var import_websocket_server = __toESM2(require_websocket_server(), 1);
18106
18124
 
18107
- // node_modules/.pnpm/@kevisual+context@0.0.8/node_modules/@kevisual/context/dist/app.js
18125
+ // node_modules/@kevisual/context/dist/app.js
18108
18126
  var isBrowser2 = typeof window !== "undefined" && typeof document !== "undefined";
18109
18127
  var isBrowser22 = typeof window !== "undefined" && typeof window.document !== "undefined";
18110
18128
  function getDefaultExportFromCjs(x) {
@@ -18686,7 +18704,7 @@ var useKey = (envKey, initKey = "context") => {
18686
18704
  return null;
18687
18705
  };
18688
18706
 
18689
- // node_modules/.pnpm/@kevisual+use-config@1.0.30_dotenv@17.3.1/node_modules/@kevisual/use-config/dist/app.js
18707
+ // node_modules/@kevisual/use-config/dist/app.js
18690
18708
  import { createRequire as createRequire2 } from "node:module";
18691
18709
  import fs from "node:fs";
18692
18710
  import path from "node:path";
@@ -20175,6 +20193,82 @@ function extractAliveInfo(html) {
20175
20193
  }
20176
20194
  }
20177
20195
 
20196
+ // src/issue/npc/env.ts
20197
+ function useNPCEnv() {
20198
+ const npcSlug = useKey("CNB_NPC_SLUG");
20199
+ const npcName = useKey("CNB_NPC_NAME");
20200
+ const npcSha = useKey("CNB_NPC_SHA");
20201
+ const npcPrompt = useKey("CNB_NPC_PROMPT");
20202
+ const npcAvatar = useKey("CNB_NPC_AVATAR");
20203
+ const npcEnableThinking = useKey("CNB_NPC_ENABLE_THINKING");
20204
+ return {
20205
+ npcSlug,
20206
+ npcName,
20207
+ npcSha,
20208
+ npcPrompt,
20209
+ npcAvatar,
20210
+ npcEnableThinking
20211
+ };
20212
+ }
20213
+ function useCommentEnv() {
20214
+ const commentId = useKey("CNB_COMMENT_ID");
20215
+ const commentBody = useKey("CNB_COMMENT_BODY");
20216
+ const commentType = useKey("CNB_COMMENT_TYPE");
20217
+ const commentFilePath = useKey("CNB_COMMENT_FILE_PATH");
20218
+ const commentRange = useKey("CNB_COMMENT_RANGE");
20219
+ const reviewId = useKey("CNB_REVIEW_ID");
20220
+ return {
20221
+ commentId,
20222
+ commentBody,
20223
+ commentType,
20224
+ commentFilePath,
20225
+ commentRange,
20226
+ reviewId
20227
+ };
20228
+ }
20229
+ var usePullRequestEnv = () => {
20230
+ const pullRequest = useKey("CNB_PULL_REQUEST");
20231
+ const pullRequestLike = useKey("CNB_PULL_REQUEST_LIKE");
20232
+ const pullRequestProposer = useKey("CNB_PULL_REQUEST_PROPOSER");
20233
+ const pullRequestTitle = useKey("CNB_PULL_REQUEST_TITLE");
20234
+ const pullRequestBranch = useKey("CNB_PULL_REQUEST_BRANCH");
20235
+ const pullRequestSha = useKey("CNB_PULL_REQUEST_SHA");
20236
+ const pullRequestTargetSha = useKey("CNB_PULL_REQUEST_TARGET_SHA");
20237
+ const pullRequestMergeSha = useKey("CNB_PULL_REQUEST_MERGE_SHA");
20238
+ const pullRequestSlug = useKey("CNB_PULL_REQUEST_SLUG");
20239
+ const pullRequestAction = useKey("CNB_PULL_REQUEST_ACTION");
20240
+ const pullRequestId = useKey("CNB_PULL_REQUEST_ID");
20241
+ return {
20242
+ pullRequest,
20243
+ pullRequestLike,
20244
+ pullRequestProposer,
20245
+ pullRequestTitle,
20246
+ pullRequestBranch,
20247
+ pullRequestSha,
20248
+ pullRequestTargetSha,
20249
+ pullRequestMergeSha,
20250
+ pullRequestSlug,
20251
+ pullRequestAction,
20252
+ pullRequestId
20253
+ };
20254
+ };
20255
+ var useRepoInfoEnv = () => {
20256
+ const repoSlug = useKey("CNB_REPO_SLUG");
20257
+ const repoSlugLowercase = useKey("CNB_REPO_SLUG_LOWERCASE");
20258
+ const repoName = useKey("CNB_REPO_NAME");
20259
+ const repoNameLowercase = useKey("CNB_REPO_NAME_LOWERCASE");
20260
+ const repoId = useKey("CNB_REPO_ID");
20261
+ const repoUrlHttps = useKey("CNB_REPO_URL_HTTPS");
20262
+ return {
20263
+ repoSlug,
20264
+ repoSlugLowercase,
20265
+ repoName,
20266
+ repoNameLowercase,
20267
+ repoId,
20268
+ repoUrlHttps
20269
+ };
20270
+ };
20271
+
20178
20272
  // src/issue/index.ts
20179
20273
  class Issue extends CNBCore {
20180
20274
  constructor(options) {
@@ -20213,12 +20307,33 @@ class Issue extends CNBCore {
20213
20307
  }
20214
20308
  });
20215
20309
  }
20216
- getCommentList(repo, issueNumber) {
20310
+ getCommentList(repo, issueNumber, params) {
20217
20311
  const url3 = `/${repo}/-/issues/${issueNumber}/comments`;
20312
+ return this.get({
20313
+ url: url3,
20314
+ params
20315
+ });
20316
+ }
20317
+ getComment(repo, issueNumber, commentId) {
20318
+ const url3 = `/${repo}/-/issues/${issueNumber}/comments/${commentId}`;
20218
20319
  return this.get({
20219
20320
  url: url3
20220
20321
  });
20221
20322
  }
20323
+ createComment(repo, issueNumber, body) {
20324
+ const url3 = `/${repo}/-/issues/${issueNumber}/comments`;
20325
+ return this.post({
20326
+ url: url3,
20327
+ data: { body }
20328
+ });
20329
+ }
20330
+ updateComment(repo, issueNumber, commentId, body) {
20331
+ const url3 = `/${repo}/-/issues/${issueNumber}/comments/${commentId}`;
20332
+ return this.patch({
20333
+ url: url3,
20334
+ data: { body }
20335
+ });
20336
+ }
20222
20337
  setIssueProperty(repo, issueNumber, properties) {
20223
20338
  const url3 = `/${repo}/-/issues/${issueNumber}/property`;
20224
20339
  let postData = {
@@ -20265,6 +20380,18 @@ class Issue extends CNBCore {
20265
20380
  }
20266
20381
  };
20267
20382
  }
20383
+ useNPCEnv() {
20384
+ return useNPCEnv();
20385
+ }
20386
+ useCommentEnv() {
20387
+ return useCommentEnv();
20388
+ }
20389
+ usePullRequestEnv() {
20390
+ return usePullRequestEnv();
20391
+ }
20392
+ useRepoInfoEnv() {
20393
+ return useRepoInfoEnv();
20394
+ }
20268
20395
  }
20269
20396
 
20270
20397
  // src/mission/index.ts
@@ -20516,11 +20643,10 @@ var notCNBCheck = (ctx) => {
20516
20643
  const isCNB = useKey2("CNB");
20517
20644
  if (!isCNB) {
20518
20645
  ctx.throw(400, "当前环境非 cnb-board 环境,无法获取 live 内容");
20519
- return true;
20520
20646
  }
20521
20647
  return false;
20522
20648
  };
20523
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
20649
+ // node_modules/zod/v4/classic/external.js
20524
20650
  var exports_external2 = {};
20525
20651
  __export(exports_external2, {
20526
20652
  xor: () => xor2,
@@ -20761,7 +20887,7 @@ __export(exports_external2, {
20761
20887
  $brand: () => $brand2
20762
20888
  });
20763
20889
 
20764
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/index.js
20890
+ // node_modules/zod/v4/core/index.js
20765
20891
  var exports_core3 = {};
20766
20892
  __export(exports_core3, {
20767
20893
  version: () => version2,
@@ -21039,7 +21165,7 @@ __export(exports_core3, {
21039
21165
  $ZodAny: () => $ZodAny2
21040
21166
  });
21041
21167
 
21042
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.js
21168
+ // node_modules/zod/v4/core/core.js
21043
21169
  var NEVER2 = Object.freeze({
21044
21170
  status: "aborted"
21045
21171
  });
@@ -21115,7 +21241,7 @@ function config2(newConfig) {
21115
21241
  Object.assign(globalConfig2, newConfig);
21116
21242
  return globalConfig2;
21117
21243
  }
21118
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.js
21244
+ // node_modules/zod/v4/core/util.js
21119
21245
  var exports_util2 = {};
21120
21246
  __export(exports_util2, {
21121
21247
  unwrapMessage: () => unwrapMessage2,
@@ -21789,7 +21915,7 @@ class Class2 {
21789
21915
  constructor(..._args) {}
21790
21916
  }
21791
21917
 
21792
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.js
21918
+ // node_modules/zod/v4/core/errors.js
21793
21919
  var initializer3 = (inst, def) => {
21794
21920
  inst.name = "$ZodError";
21795
21921
  Object.defineProperty(inst, "_zod", {
@@ -21926,7 +22052,7 @@ function prettifyError2(error48) {
21926
22052
  `);
21927
22053
  }
21928
22054
 
21929
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/parse.js
22055
+ // node_modules/zod/v4/core/parse.js
21930
22056
  var _parse2 = (_Err) => (schema, value, _ctx, _params) => {
21931
22057
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
21932
22058
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -22013,7 +22139,7 @@ var _safeDecodeAsync2 = (_Err) => async (schema, value, _ctx) => {
22013
22139
  return _safeParseAsync2(_Err)(schema, value, _ctx);
22014
22140
  };
22015
22141
  var safeDecodeAsync3 = /* @__PURE__ */ _safeDecodeAsync2($ZodRealError2);
22016
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/regexes.js
22142
+ // node_modules/zod/v4/core/regexes.js
22017
22143
  var exports_regexes2 = {};
22018
22144
  __export(exports_regexes2, {
22019
22145
  xid: () => xid3,
@@ -22170,7 +22296,7 @@ var sha512_hex2 = /^[0-9a-fA-F]{128}$/;
22170
22296
  var sha512_base642 = /* @__PURE__ */ fixedBase642(86, "==");
22171
22297
  var sha512_base64url2 = /* @__PURE__ */ fixedBase64url2(86);
22172
22298
 
22173
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.js
22299
+ // node_modules/zod/v4/core/checks.js
22174
22300
  var $ZodCheck2 = /* @__PURE__ */ $constructor2("$ZodCheck", (inst, def) => {
22175
22301
  var _a2;
22176
22302
  inst._zod ?? (inst._zod = {});
@@ -22717,7 +22843,7 @@ var $ZodCheckOverwrite2 = /* @__PURE__ */ $constructor2("$ZodCheckOverwrite", (i
22717
22843
  };
22718
22844
  });
22719
22845
 
22720
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/doc.js
22846
+ // node_modules/zod/v4/core/doc.js
22721
22847
  class Doc2 {
22722
22848
  constructor(args = []) {
22723
22849
  this.content = [];
@@ -22755,14 +22881,14 @@ class Doc2 {
22755
22881
  }
22756
22882
  }
22757
22883
 
22758
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.js
22884
+ // node_modules/zod/v4/core/versions.js
22759
22885
  var version2 = {
22760
22886
  major: 4,
22761
22887
  minor: 3,
22762
22888
  patch: 6
22763
22889
  };
22764
22890
 
22765
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.js
22891
+ // node_modules/zod/v4/core/schemas.js
22766
22892
  var $ZodType2 = /* @__PURE__ */ $constructor2("$ZodType", (inst, def) => {
22767
22893
  var _a2;
22768
22894
  inst ?? (inst = {});
@@ -24724,7 +24850,7 @@ function handleRefineResult2(result, payload, input, inst) {
24724
24850
  payload.issues.push(issue3(_iss));
24725
24851
  }
24726
24852
  }
24727
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/index.js
24853
+ // node_modules/zod/v4/locales/index.js
24728
24854
  var exports_locales2 = {};
24729
24855
  __export(exports_locales2, {
24730
24856
  zhTW: () => zh_TW_default2,
@@ -24778,7 +24904,7 @@ __export(exports_locales2, {
24778
24904
  ar: () => ar_default2
24779
24905
  });
24780
24906
 
24781
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ar.js
24907
+ // node_modules/zod/v4/locales/ar.js
24782
24908
  var error48 = () => {
24783
24909
  const Sizable = {
24784
24910
  string: { unit: "حرف", verb: "أن يحوي" },
@@ -24884,7 +25010,7 @@ function ar_default2() {
24884
25010
  localeError: error48()
24885
25011
  };
24886
25012
  }
24887
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/az.js
25013
+ // node_modules/zod/v4/locales/az.js
24888
25014
  var error50 = () => {
24889
25015
  const Sizable = {
24890
25016
  string: { unit: "simvol", verb: "olmalıdır" },
@@ -24989,7 +25115,7 @@ function az_default2() {
24989
25115
  localeError: error50()
24990
25116
  };
24991
25117
  }
24992
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/be.js
25118
+ // node_modules/zod/v4/locales/be.js
24993
25119
  function getBelarusianPlural2(count, one, few, many) {
24994
25120
  const absCount = Math.abs(count);
24995
25121
  const lastDigit = absCount % 10;
@@ -25145,7 +25271,7 @@ function be_default2() {
25145
25271
  localeError: error51()
25146
25272
  };
25147
25273
  }
25148
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/bg.js
25274
+ // node_modules/zod/v4/locales/bg.js
25149
25275
  var error52 = () => {
25150
25276
  const Sizable = {
25151
25277
  string: { unit: "символа", verb: "да съдържа" },
@@ -25265,7 +25391,7 @@ function bg_default2() {
25265
25391
  localeError: error52()
25266
25392
  };
25267
25393
  }
25268
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ca.js
25394
+ // node_modules/zod/v4/locales/ca.js
25269
25395
  var error53 = () => {
25270
25396
  const Sizable = {
25271
25397
  string: { unit: "caràcters", verb: "contenir" },
@@ -25372,7 +25498,7 @@ function ca_default2() {
25372
25498
  localeError: error53()
25373
25499
  };
25374
25500
  }
25375
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/cs.js
25501
+ // node_modules/zod/v4/locales/cs.js
25376
25502
  var error54 = () => {
25377
25503
  const Sizable = {
25378
25504
  string: { unit: "znaků", verb: "mít" },
@@ -25483,7 +25609,7 @@ function cs_default2() {
25483
25609
  localeError: error54()
25484
25610
  };
25485
25611
  }
25486
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/da.js
25612
+ // node_modules/zod/v4/locales/da.js
25487
25613
  var error55 = () => {
25488
25614
  const Sizable = {
25489
25615
  string: { unit: "tegn", verb: "havde" },
@@ -25598,7 +25724,7 @@ function da_default2() {
25598
25724
  localeError: error55()
25599
25725
  };
25600
25726
  }
25601
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/de.js
25727
+ // node_modules/zod/v4/locales/de.js
25602
25728
  var error56 = () => {
25603
25729
  const Sizable = {
25604
25730
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -25706,7 +25832,7 @@ function de_default2() {
25706
25832
  localeError: error56()
25707
25833
  };
25708
25834
  }
25709
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/en.js
25835
+ // node_modules/zod/v4/locales/en.js
25710
25836
  var error57 = () => {
25711
25837
  const Sizable = {
25712
25838
  string: { unit: "characters", verb: "to have" },
@@ -25812,7 +25938,7 @@ function en_default2() {
25812
25938
  localeError: error57()
25813
25939
  };
25814
25940
  }
25815
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/eo.js
25941
+ // node_modules/zod/v4/locales/eo.js
25816
25942
  var error58 = () => {
25817
25943
  const Sizable = {
25818
25944
  string: { unit: "karaktrojn", verb: "havi" },
@@ -25921,7 +26047,7 @@ function eo_default2() {
25921
26047
  localeError: error58()
25922
26048
  };
25923
26049
  }
25924
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/es.js
26050
+ // node_modules/zod/v4/locales/es.js
25925
26051
  var error59 = () => {
25926
26052
  const Sizable = {
25927
26053
  string: { unit: "caracteres", verb: "tener" },
@@ -26053,7 +26179,7 @@ function es_default2() {
26053
26179
  localeError: error59()
26054
26180
  };
26055
26181
  }
26056
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fa.js
26182
+ // node_modules/zod/v4/locales/fa.js
26057
26183
  var error60 = () => {
26058
26184
  const Sizable = {
26059
26185
  string: { unit: "کاراکتر", verb: "داشته باشد" },
@@ -26167,7 +26293,7 @@ function fa_default2() {
26167
26293
  localeError: error60()
26168
26294
  };
26169
26295
  }
26170
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fi.js
26296
+ // node_modules/zod/v4/locales/fi.js
26171
26297
  var error61 = () => {
26172
26298
  const Sizable = {
26173
26299
  string: { unit: "merkkiä", subject: "merkkijonon" },
@@ -26279,7 +26405,7 @@ function fi_default2() {
26279
26405
  localeError: error61()
26280
26406
  };
26281
26407
  }
26282
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr.js
26408
+ // node_modules/zod/v4/locales/fr.js
26283
26409
  var error62 = () => {
26284
26410
  const Sizable = {
26285
26411
  string: { unit: "caractères", verb: "avoir" },
@@ -26387,7 +26513,7 @@ function fr_default2() {
26387
26513
  localeError: error62()
26388
26514
  };
26389
26515
  }
26390
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr-CA.js
26516
+ // node_modules/zod/v4/locales/fr-CA.js
26391
26517
  var error63 = () => {
26392
26518
  const Sizable = {
26393
26519
  string: { unit: "caractères", verb: "avoir" },
@@ -26494,7 +26620,7 @@ function fr_CA_default2() {
26494
26620
  localeError: error63()
26495
26621
  };
26496
26622
  }
26497
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/he.js
26623
+ // node_modules/zod/v4/locales/he.js
26498
26624
  var error64 = () => {
26499
26625
  const TypeNames = {
26500
26626
  string: { label: "מחרוזת", gender: "f" },
@@ -26687,7 +26813,7 @@ function he_default2() {
26687
26813
  localeError: error64()
26688
26814
  };
26689
26815
  }
26690
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hu.js
26816
+ // node_modules/zod/v4/locales/hu.js
26691
26817
  var error65 = () => {
26692
26818
  const Sizable = {
26693
26819
  string: { unit: "karakter", verb: "legyen" },
@@ -26795,7 +26921,7 @@ function hu_default2() {
26795
26921
  localeError: error65()
26796
26922
  };
26797
26923
  }
26798
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hy.js
26924
+ // node_modules/zod/v4/locales/hy.js
26799
26925
  function getArmenianPlural2(count, one, many) {
26800
26926
  return Math.abs(count) === 1 ? one : many;
26801
26927
  }
@@ -26942,7 +27068,7 @@ function hy_default2() {
26942
27068
  localeError: error66()
26943
27069
  };
26944
27070
  }
26945
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/id.js
27071
+ // node_modules/zod/v4/locales/id.js
26946
27072
  var error67 = () => {
26947
27073
  const Sizable = {
26948
27074
  string: { unit: "karakter", verb: "memiliki" },
@@ -27048,7 +27174,7 @@ function id_default2() {
27048
27174
  localeError: error67()
27049
27175
  };
27050
27176
  }
27051
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/is.js
27177
+ // node_modules/zod/v4/locales/is.js
27052
27178
  var error68 = () => {
27053
27179
  const Sizable = {
27054
27180
  string: { unit: "stafi", verb: "að hafa" },
@@ -27157,7 +27283,7 @@ function is_default2() {
27157
27283
  localeError: error68()
27158
27284
  };
27159
27285
  }
27160
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/it.js
27286
+ // node_modules/zod/v4/locales/it.js
27161
27287
  var error69 = () => {
27162
27288
  const Sizable = {
27163
27289
  string: { unit: "caratteri", verb: "avere" },
@@ -27265,7 +27391,7 @@ function it_default2() {
27265
27391
  localeError: error69()
27266
27392
  };
27267
27393
  }
27268
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ja.js
27394
+ // node_modules/zod/v4/locales/ja.js
27269
27395
  var error70 = () => {
27270
27396
  const Sizable = {
27271
27397
  string: { unit: "文字", verb: "である" },
@@ -27372,7 +27498,7 @@ function ja_default2() {
27372
27498
  localeError: error70()
27373
27499
  };
27374
27500
  }
27375
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ka.js
27501
+ // node_modules/zod/v4/locales/ka.js
27376
27502
  var error71 = () => {
27377
27503
  const Sizable = {
27378
27504
  string: { unit: "სიმბოლო", verb: "უნდა შეიცავდეს" },
@@ -27484,7 +27610,7 @@ function ka_default2() {
27484
27610
  localeError: error71()
27485
27611
  };
27486
27612
  }
27487
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/km.js
27613
+ // node_modules/zod/v4/locales/km.js
27488
27614
  var error72 = () => {
27489
27615
  const Sizable = {
27490
27616
  string: { unit: "តួអក្សរ", verb: "គួរមាន" },
@@ -27595,11 +27721,11 @@ function km_default2() {
27595
27721
  };
27596
27722
  }
27597
27723
 
27598
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/kh.js
27724
+ // node_modules/zod/v4/locales/kh.js
27599
27725
  function kh_default2() {
27600
27726
  return km_default2();
27601
27727
  }
27602
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ko.js
27728
+ // node_modules/zod/v4/locales/ko.js
27603
27729
  var error73 = () => {
27604
27730
  const Sizable = {
27605
27731
  string: { unit: "문자", verb: "to have" },
@@ -27710,7 +27836,7 @@ function ko_default2() {
27710
27836
  localeError: error73()
27711
27837
  };
27712
27838
  }
27713
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/lt.js
27839
+ // node_modules/zod/v4/locales/lt.js
27714
27840
  var capitalizeFirstCharacter2 = (text) => {
27715
27841
  return text.charAt(0).toUpperCase() + text.slice(1);
27716
27842
  };
@@ -27913,7 +28039,7 @@ function lt_default2() {
27913
28039
  localeError: error74()
27914
28040
  };
27915
28041
  }
27916
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/mk.js
28042
+ // node_modules/zod/v4/locales/mk.js
27917
28043
  var error75 = () => {
27918
28044
  const Sizable = {
27919
28045
  string: { unit: "знаци", verb: "да имаат" },
@@ -28022,7 +28148,7 @@ function mk_default2() {
28022
28148
  localeError: error75()
28023
28149
  };
28024
28150
  }
28025
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ms.js
28151
+ // node_modules/zod/v4/locales/ms.js
28026
28152
  var error76 = () => {
28027
28153
  const Sizable = {
28028
28154
  string: { unit: "aksara", verb: "mempunyai" },
@@ -28129,7 +28255,7 @@ function ms_default2() {
28129
28255
  localeError: error76()
28130
28256
  };
28131
28257
  }
28132
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/nl.js
28258
+ // node_modules/zod/v4/locales/nl.js
28133
28259
  var error77 = () => {
28134
28260
  const Sizable = {
28135
28261
  string: { unit: "tekens", verb: "heeft" },
@@ -28239,7 +28365,7 @@ function nl_default2() {
28239
28365
  localeError: error77()
28240
28366
  };
28241
28367
  }
28242
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/no.js
28368
+ // node_modules/zod/v4/locales/no.js
28243
28369
  var error78 = () => {
28244
28370
  const Sizable = {
28245
28371
  string: { unit: "tegn", verb: "å ha" },
@@ -28347,7 +28473,7 @@ function no_default2() {
28347
28473
  localeError: error78()
28348
28474
  };
28349
28475
  }
28350
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ota.js
28476
+ // node_modules/zod/v4/locales/ota.js
28351
28477
  var error79 = () => {
28352
28478
  const Sizable = {
28353
28479
  string: { unit: "harf", verb: "olmalıdır" },
@@ -28456,7 +28582,7 @@ function ota_default2() {
28456
28582
  localeError: error79()
28457
28583
  };
28458
28584
  }
28459
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ps.js
28585
+ // node_modules/zod/v4/locales/ps.js
28460
28586
  var error80 = () => {
28461
28587
  const Sizable = {
28462
28588
  string: { unit: "توکي", verb: "ولري" },
@@ -28570,7 +28696,7 @@ function ps_default2() {
28570
28696
  localeError: error80()
28571
28697
  };
28572
28698
  }
28573
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pl.js
28699
+ // node_modules/zod/v4/locales/pl.js
28574
28700
  var error81 = () => {
28575
28701
  const Sizable = {
28576
28702
  string: { unit: "znaków", verb: "mieć" },
@@ -28679,7 +28805,7 @@ function pl_default2() {
28679
28805
  localeError: error81()
28680
28806
  };
28681
28807
  }
28682
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pt.js
28808
+ // node_modules/zod/v4/locales/pt.js
28683
28809
  var error82 = () => {
28684
28810
  const Sizable = {
28685
28811
  string: { unit: "caracteres", verb: "ter" },
@@ -28787,7 +28913,7 @@ function pt_default2() {
28787
28913
  localeError: error82()
28788
28914
  };
28789
28915
  }
28790
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ru.js
28916
+ // node_modules/zod/v4/locales/ru.js
28791
28917
  function getRussianPlural2(count, one, few, many) {
28792
28918
  const absCount = Math.abs(count);
28793
28919
  const lastDigit = absCount % 10;
@@ -28943,7 +29069,7 @@ function ru_default2() {
28943
29069
  localeError: error83()
28944
29070
  };
28945
29071
  }
28946
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sl.js
29072
+ // node_modules/zod/v4/locales/sl.js
28947
29073
  var error84 = () => {
28948
29074
  const Sizable = {
28949
29075
  string: { unit: "znakov", verb: "imeti" },
@@ -29052,7 +29178,7 @@ function sl_default2() {
29052
29178
  localeError: error84()
29053
29179
  };
29054
29180
  }
29055
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sv.js
29181
+ // node_modules/zod/v4/locales/sv.js
29056
29182
  var error85 = () => {
29057
29183
  const Sizable = {
29058
29184
  string: { unit: "tecken", verb: "att ha" },
@@ -29162,7 +29288,7 @@ function sv_default2() {
29162
29288
  localeError: error85()
29163
29289
  };
29164
29290
  }
29165
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ta.js
29291
+ // node_modules/zod/v4/locales/ta.js
29166
29292
  var error86 = () => {
29167
29293
  const Sizable = {
29168
29294
  string: { unit: "எழுத்துக்கள்", verb: "கொண்டிருக்க வேண்டும்" },
@@ -29272,7 +29398,7 @@ function ta_default2() {
29272
29398
  localeError: error86()
29273
29399
  };
29274
29400
  }
29275
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/th.js
29401
+ // node_modules/zod/v4/locales/th.js
29276
29402
  var error87 = () => {
29277
29403
  const Sizable = {
29278
29404
  string: { unit: "ตัวอักษร", verb: "ควรมี" },
@@ -29382,7 +29508,7 @@ function th_default2() {
29382
29508
  localeError: error87()
29383
29509
  };
29384
29510
  }
29385
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/tr.js
29511
+ // node_modules/zod/v4/locales/tr.js
29386
29512
  var error88 = () => {
29387
29513
  const Sizable = {
29388
29514
  string: { unit: "karakter", verb: "olmalı" },
@@ -29487,7 +29613,7 @@ function tr_default2() {
29487
29613
  localeError: error88()
29488
29614
  };
29489
29615
  }
29490
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uk.js
29616
+ // node_modules/zod/v4/locales/uk.js
29491
29617
  var error89 = () => {
29492
29618
  const Sizable = {
29493
29619
  string: { unit: "символів", verb: "матиме" },
@@ -29596,11 +29722,11 @@ function uk_default2() {
29596
29722
  };
29597
29723
  }
29598
29724
 
29599
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ua.js
29725
+ // node_modules/zod/v4/locales/ua.js
29600
29726
  function ua_default2() {
29601
29727
  return uk_default2();
29602
29728
  }
29603
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ur.js
29729
+ // node_modules/zod/v4/locales/ur.js
29604
29730
  var error90 = () => {
29605
29731
  const Sizable = {
29606
29732
  string: { unit: "حروف", verb: "ہونا" },
@@ -29710,7 +29836,7 @@ function ur_default2() {
29710
29836
  localeError: error90()
29711
29837
  };
29712
29838
  }
29713
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uz.js
29839
+ // node_modules/zod/v4/locales/uz.js
29714
29840
  var error91 = () => {
29715
29841
  const Sizable = {
29716
29842
  string: { unit: "belgi", verb: "bo‘lishi kerak" },
@@ -29819,7 +29945,7 @@ function uz_default2() {
29819
29945
  localeError: error91()
29820
29946
  };
29821
29947
  }
29822
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/vi.js
29948
+ // node_modules/zod/v4/locales/vi.js
29823
29949
  var error92 = () => {
29824
29950
  const Sizable = {
29825
29951
  string: { unit: "ký tự", verb: "có" },
@@ -29927,7 +30053,7 @@ function vi_default2() {
29927
30053
  localeError: error92()
29928
30054
  };
29929
30055
  }
29930
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-CN.js
30056
+ // node_modules/zod/v4/locales/zh-CN.js
29931
30057
  var error93 = () => {
29932
30058
  const Sizable = {
29933
30059
  string: { unit: "字符", verb: "包含" },
@@ -30036,7 +30162,7 @@ function zh_CN_default2() {
30036
30162
  localeError: error93()
30037
30163
  };
30038
30164
  }
30039
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-TW.js
30165
+ // node_modules/zod/v4/locales/zh-TW.js
30040
30166
  var error94 = () => {
30041
30167
  const Sizable = {
30042
30168
  string: { unit: "字元", verb: "擁有" },
@@ -30143,7 +30269,7 @@ function zh_TW_default2() {
30143
30269
  localeError: error94()
30144
30270
  };
30145
30271
  }
30146
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/yo.js
30272
+ // node_modules/zod/v4/locales/yo.js
30147
30273
  var error95 = () => {
30148
30274
  const Sizable = {
30149
30275
  string: { unit: "àmi", verb: "ní" },
@@ -30250,7 +30376,7 @@ function yo_default2() {
30250
30376
  localeError: error95()
30251
30377
  };
30252
30378
  }
30253
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.js
30379
+ // node_modules/zod/v4/core/registries.js
30254
30380
  var _a2;
30255
30381
  var $output2 = Symbol("ZodOutput");
30256
30382
  var $input2 = Symbol("ZodInput");
@@ -30300,7 +30426,7 @@ function registry2() {
30300
30426
  }
30301
30427
  (_a2 = globalThis).__zod_globalRegistry ?? (_a2.__zod_globalRegistry = registry2());
30302
30428
  var globalRegistry2 = globalThis.__zod_globalRegistry;
30303
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/api.js
30429
+ // node_modules/zod/v4/core/api.js
30304
30430
  function _string2(Class3, params) {
30305
30431
  return new Class3({
30306
30432
  type: "string",
@@ -31220,7 +31346,7 @@ function _stringFormat2(Class3, format, fnOrRegex, _params = {}) {
31220
31346
  const inst = new Class3(def);
31221
31347
  return inst;
31222
31348
  }
31223
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.js
31349
+ // node_modules/zod/v4/core/to-json-schema.js
31224
31350
  function initializeContext2(params) {
31225
31351
  let target = params?.target ?? "draft-2020-12";
31226
31352
  if (target === "draft-4")
@@ -31565,7 +31691,7 @@ var createStandardJSONSchemaMethod2 = (schema, io, processors = {}) => (params)
31565
31691
  extractDefs2(ctx, schema);
31566
31692
  return finalize2(ctx, schema);
31567
31693
  };
31568
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.js
31694
+ // node_modules/zod/v4/core/json-schema-processors.js
31569
31695
  var formatMap2 = {
31570
31696
  guid: "uuid",
31571
31697
  url: "uri",
@@ -32110,7 +32236,7 @@ function toJSONSchema4(input, params) {
32110
32236
  extractDefs2(ctx, input);
32111
32237
  return finalize2(ctx, input);
32112
32238
  }
32113
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.js
32239
+ // node_modules/zod/v4/core/json-schema-generator.js
32114
32240
  class JSONSchemaGenerator2 {
32115
32241
  get metadataRegistry() {
32116
32242
  return this.ctx.metadataRegistry;
@@ -32169,9 +32295,9 @@ class JSONSchemaGenerator2 {
32169
32295
  return plainResult;
32170
32296
  }
32171
32297
  }
32172
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.js
32298
+ // node_modules/zod/v4/core/json-schema.js
32173
32299
  var exports_json_schema2 = {};
32174
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
32300
+ // node_modules/zod/v4/classic/schemas.js
32175
32301
  var exports_schemas3 = {};
32176
32302
  __export(exports_schemas3, {
32177
32303
  xor: () => xor2,
@@ -32340,7 +32466,7 @@ __export(exports_schemas3, {
32340
32466
  ZodAny: () => ZodAny2
32341
32467
  });
32342
32468
 
32343
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/checks.js
32469
+ // node_modules/zod/v4/classic/checks.js
32344
32470
  var exports_checks3 = {};
32345
32471
  __export(exports_checks3, {
32346
32472
  uppercase: () => _uppercase2,
@@ -32374,7 +32500,7 @@ __export(exports_checks3, {
32374
32500
  endsWith: () => _endsWith2
32375
32501
  });
32376
32502
 
32377
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/iso.js
32503
+ // node_modules/zod/v4/classic/iso.js
32378
32504
  var exports_iso2 = {};
32379
32505
  __export(exports_iso2, {
32380
32506
  time: () => time5,
@@ -32415,7 +32541,7 @@ function duration5(params) {
32415
32541
  return _isoDuration2(ZodISODuration2, params);
32416
32542
  }
32417
32543
 
32418
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/errors.js
32544
+ // node_modules/zod/v4/classic/errors.js
32419
32545
  var initializer5 = (inst, issues) => {
32420
32546
  $ZodError2.init(inst, issues);
32421
32547
  inst.name = "ZodError";
@@ -32450,7 +32576,7 @@ var ZodRealError2 = $constructor2("ZodError", initializer5, {
32450
32576
  Parent: Error
32451
32577
  });
32452
32578
 
32453
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/parse.js
32579
+ // node_modules/zod/v4/classic/parse.js
32454
32580
  var parse6 = /* @__PURE__ */ _parse2(ZodRealError2);
32455
32581
  var parseAsync5 = /* @__PURE__ */ _parseAsync2(ZodRealError2);
32456
32582
  var safeParse5 = /* @__PURE__ */ _safeParse2(ZodRealError2);
@@ -32464,7 +32590,7 @@ var safeDecode5 = /* @__PURE__ */ _safeDecode2(ZodRealError2);
32464
32590
  var safeEncodeAsync5 = /* @__PURE__ */ _safeEncodeAsync2(ZodRealError2);
32465
32591
  var safeDecodeAsync5 = /* @__PURE__ */ _safeDecodeAsync2(ZodRealError2);
32466
32592
 
32467
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
32593
+ // node_modules/zod/v4/classic/schemas.js
32468
32594
  var ZodType2 = /* @__PURE__ */ $constructor2("ZodType", (inst, def) => {
32469
32595
  $ZodType2.init(inst, def);
32470
32596
  Object.assign(inst["~standard"], {
@@ -33540,7 +33666,7 @@ function json2(params) {
33540
33666
  function preprocess2(fn, schema) {
33541
33667
  return pipe2(transform2(fn), schema);
33542
33668
  }
33543
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/compat.js
33669
+ // node_modules/zod/v4/classic/compat.js
33544
33670
  var ZodIssueCode2 = {
33545
33671
  invalid_type: "invalid_type",
33546
33672
  too_big: "too_big",
@@ -33564,7 +33690,7 @@ function getErrorMap2() {
33564
33690
  }
33565
33691
  var ZodFirstPartyTypeKind2;
33566
33692
  (function(ZodFirstPartyTypeKind3) {})(ZodFirstPartyTypeKind2 || (ZodFirstPartyTypeKind2 = {}));
33567
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.js
33693
+ // node_modules/zod/v4/classic/from-json-schema.js
33568
33694
  var z2 = {
33569
33695
  ...exports_schemas3,
33570
33696
  ...exports_checks3,
@@ -34025,7 +34151,7 @@ function fromJSONSchema4(schema, params) {
34025
34151
  };
34026
34152
  return convertSchema2(schema, ctx);
34027
34153
  }
34028
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/coerce.js
34154
+ // node_modules/zod/v4/classic/coerce.js
34029
34155
  var exports_coerce2 = {};
34030
34156
  __export(exports_coerce2, {
34031
34157
  string: () => string7,
@@ -34050,12 +34176,12 @@ function date9(params) {
34050
34176
  return _coercedDate2(ZodDate2, params);
34051
34177
  }
34052
34178
 
34053
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
34179
+ // node_modules/zod/v4/classic/external.js
34054
34180
  config2(en_default2());
34055
- // node_modules/.pnpm/zod@4.3.6/node_modules/zod/index.js
34181
+ // node_modules/zod/index.js
34056
34182
  var zod_default = exports_external2;
34057
34183
 
34058
- // node_modules/.pnpm/@opencode-ai+plugin@1.2.23/node_modules/@opencode-ai/plugin/dist/tool.js
34184
+ // node_modules/@opencode-ai/plugin/dist/tool.js
34059
34185
  function tool2(input) {
34060
34186
  return input;
34061
34187
  }
@@ -34560,7 +34686,7 @@ app.route({
34560
34686
  const branch = ctx.query?.branch || "main";
34561
34687
  const config3 = ctx.query?.config;
34562
34688
  const event = ctx.query?.event || "api_trigger_event";
34563
- const env = ctx.query?.env ?? {};
34689
+ const env2 = ctx.query?.env ?? {};
34564
34690
  if (!repo2) {
34565
34691
  ctx.throw(400, "缺少参数 repo");
34566
34692
  }
@@ -34568,7 +34694,7 @@ app.route({
34568
34694
  branch,
34569
34695
  config: config3,
34570
34696
  event,
34571
- env
34697
+ env: env2
34572
34698
  });
34573
34699
  ctx.forward(res);
34574
34700
  }).addTo(app);
@@ -34917,7 +35043,7 @@ app.route({
34917
35043
  ctx.body = { content: `当前cnb工作空间的cookie环境变量为:${cookie2}` };
34918
35044
  }).addTo(app);
34919
35045
 
34920
- // node_modules/.pnpm/@kevisual+ai@0.0.26/node_modules/@kevisual/ai/dist/ai-provider-browser.js
35046
+ // node_modules/@kevisual/ai/dist/ai-provider-browser.js
34921
35047
  var __create4 = Object.create;
34922
35048
  var __getProtoOf4 = Object.getPrototypeOf;
34923
35049
  var __defProp4 = Object.defineProperty;
@@ -54946,7 +55072,7 @@ app.route({
54946
55072
  skill: "list-issues",
54947
55073
  title: "查询 Issue 列表",
54948
55074
  args: {
54949
- repo: tool.schema.string().describe("代码仓库名称, 如 my-user/my-repo"),
55075
+ repo: tool.schema.string().optional().describe("代码仓库名称, 如 my-user/my-repo"),
54950
55076
  state: tool.schema.string().optional().describe("Issue 状态:open 或 closed"),
54951
55077
  keyword: tool.schema.string().optional().describe("问题搜索关键词"),
54952
55078
  labels: tool.schema.string().optional().describe("问题标签,多个用逗号分隔"),
@@ -54959,7 +55085,7 @@ app.route({
54959
55085
  }
54960
55086
  }).define(async (ctx) => {
54961
55087
  const cnb2 = await cnbManager.getContext(ctx);
54962
- const repo2 = ctx.query?.repo || useKey("CNB_REPO_SLUG_LOWERCASE");
55088
+ let repo2 = ctx.query?.repo || useKey("CNB_REPO_SLUG_LOWERCASE");
54963
55089
  const state = ctx.query?.state;
54964
55090
  const keyword = ctx.query?.keyword;
54965
55091
  const labels = ctx.query?.labels;
@@ -55062,6 +55188,157 @@ app.route({
55062
55188
  ctx.forward(res);
55063
55189
  }).addTo(app);
55064
55190
 
55191
+ // agent/routes/issues/comments.ts
55192
+ app.route({
55193
+ path: "cnb",
55194
+ key: "list-issue-comments",
55195
+ description: "查询 Issue 评论列表, 参数 repo, issueNumber, page, page_size",
55196
+ middleware: ["auth"],
55197
+ metadata: {
55198
+ tags: ["opencode"],
55199
+ ...createSkill({
55200
+ skill: "list-issue-comments",
55201
+ title: "查询 Issue 评论列表",
55202
+ args: {
55203
+ repo: tool.schema.string().optional().describe("代码仓库名称, 如 my-user/my-repo"),
55204
+ issueNumber: tool.schema.number().describe("Issue 编号"),
55205
+ page: tool.schema.number().optional().describe("分页页码,默认: 1"),
55206
+ page_size: tool.schema.number().optional().describe("分页每页大小,默认: 30")
55207
+ },
55208
+ summary: "查询 Issue 评论列表"
55209
+ })
55210
+ }
55211
+ }).define(async (ctx) => {
55212
+ const cnb2 = await cnbManager.getContext(ctx);
55213
+ let repo2 = ctx.query?.repo || useKey("CNB_REPO_SLUG_LOWERCASE");
55214
+ const issueNumber = ctx.query?.issueNumber;
55215
+ const page = ctx.query?.page ? Number(ctx.query.page) : undefined;
55216
+ const page_size = ctx.query?.page_size ? Number(ctx.query.page_size) : undefined;
55217
+ if (!repo2) {
55218
+ ctx.throw(400, "缺少参数 repo");
55219
+ }
55220
+ if (!issueNumber) {
55221
+ ctx.throw(400, "缺少参数 issueNumber");
55222
+ }
55223
+ const params = {};
55224
+ if (page)
55225
+ params.page = page;
55226
+ if (page_size)
55227
+ params.page_size = page_size;
55228
+ const res = await cnb2.issue.getCommentList(repo2, issueNumber, params);
55229
+ ctx.forward(res);
55230
+ }).addTo(app);
55231
+ app.route({
55232
+ path: "cnb",
55233
+ key: "create-issue-comment",
55234
+ description: "创建 Issue 评论, 参数 repo, issueNumber, body",
55235
+ middleware: ["auth"],
55236
+ metadata: {
55237
+ tags: ["opencode"],
55238
+ ...createSkill({
55239
+ skill: "create-issue-comment",
55240
+ title: "创建 Issue 评论",
55241
+ args: {
55242
+ repo: tool.schema.string().optional().describe("代码仓库名称, 如 my-user/my-repo"),
55243
+ issueNumber: tool.schema.number().describe("Issue 编号"),
55244
+ body: tool.schema.string().describe("评论内容")
55245
+ },
55246
+ summary: "创建 Issue 评论"
55247
+ })
55248
+ }
55249
+ }).define(async (ctx) => {
55250
+ const cnb2 = await cnbManager.getContext(ctx);
55251
+ let repo2 = ctx.query?.repo || useKey("CNB_REPO_SLUG_LOWERCASE");
55252
+ const issueNumber = ctx.query?.issueNumber;
55253
+ const body = ctx.query?.body;
55254
+ if (!repo2) {
55255
+ ctx.throw(400, "缺少参数 repo");
55256
+ }
55257
+ if (!issueNumber) {
55258
+ ctx.throw(400, "缺少参数 issueNumber");
55259
+ }
55260
+ if (!body) {
55261
+ ctx.throw(400, "缺少参数 body");
55262
+ }
55263
+ const res = await cnb2.issue.createComment(repo2, issueNumber, body);
55264
+ ctx.forward(res);
55265
+ }).addTo(app);
55266
+ app.route({
55267
+ path: "cnb",
55268
+ key: "get-issue-comment",
55269
+ description: "获取 Issue 指定评论, 参数 repo, issueNumber, commentId",
55270
+ middleware: ["auth"],
55271
+ metadata: {
55272
+ tags: ["opencode"],
55273
+ ...createSkill({
55274
+ skill: "get-issue-comment",
55275
+ title: "获取 Issue 评论",
55276
+ args: {
55277
+ repo: tool.schema.string().optional().describe("代码仓库名称, 如 my-user/my-repo"),
55278
+ issueNumber: tool.schema.number().describe("Issue 编号"),
55279
+ commentId: tool.schema.number().describe("评论 ID")
55280
+ },
55281
+ summary: "获取 Issue 评论"
55282
+ })
55283
+ }
55284
+ }).define(async (ctx) => {
55285
+ const cnb2 = await cnbManager.getContext(ctx);
55286
+ let repo2 = ctx.query?.repo || useKey("CNB_REPO_SLUG_LOWERCASE");
55287
+ const issueNumber = ctx.query?.issueNumber;
55288
+ const commentId = ctx.query?.commentId;
55289
+ if (!repo2) {
55290
+ ctx.throw(400, "缺少参数 repo");
55291
+ }
55292
+ if (!issueNumber) {
55293
+ ctx.throw(400, "缺少参数 issueNumber");
55294
+ }
55295
+ if (!commentId) {
55296
+ ctx.throw(400, "缺少参数 commentId");
55297
+ }
55298
+ const res = await cnb2.issue.getComment(repo2, issueNumber, commentId);
55299
+ ctx.forward(res);
55300
+ }).addTo(app);
55301
+ app.route({
55302
+ path: "cnb",
55303
+ key: "update-issue-comment",
55304
+ description: "修改 Issue 评论, 参数 repo, issueNumber, commentId, body",
55305
+ middleware: ["auth"],
55306
+ metadata: {
55307
+ tags: ["opencode"],
55308
+ ...createSkill({
55309
+ skill: "update-issue-comment",
55310
+ title: "修改 Issue 评论",
55311
+ args: {
55312
+ repo: tool.schema.string().optional().describe("代码仓库名称, 如 my-user/my-repo"),
55313
+ issueNumber: tool.schema.number().describe("Issue 编号"),
55314
+ commentId: tool.schema.number().describe("评论 ID"),
55315
+ body: tool.schema.string().describe("评论内容")
55316
+ },
55317
+ summary: "修改 Issue 评论"
55318
+ })
55319
+ }
55320
+ }).define(async (ctx) => {
55321
+ const cnb2 = await cnbManager.getContext(ctx);
55322
+ let repo2 = ctx.query?.repo || useKey("CNB_REPO_SLUG_LOWERCASE");
55323
+ const issueNumber = ctx.query?.issueNumber;
55324
+ const commentId = ctx.query?.commentId;
55325
+ const body = ctx.query?.body;
55326
+ if (!repo2) {
55327
+ ctx.throw(400, "缺少参数 repo");
55328
+ }
55329
+ if (!issueNumber) {
55330
+ ctx.throw(400, "缺少参数 issueNumber");
55331
+ }
55332
+ if (!commentId) {
55333
+ ctx.throw(400, "缺少参数 commentId");
55334
+ }
55335
+ if (!body) {
55336
+ ctx.throw(400, "缺少参数 body");
55337
+ }
55338
+ const res = await cnb2.issue.updateComment(repo2, issueNumber, commentId, body);
55339
+ ctx.forward(res);
55340
+ }).addTo(app);
55341
+
55065
55342
  // agent/routes/cnb-board/live/live-content.ts
55066
55343
  var import_dayjs = __toESM(require_dayjs_min(), 1);
55067
55344
  import os2 from "node:os";
@@ -55885,6 +56162,67 @@ app.route({
55885
56162
  };
55886
56163
  }).addTo(app);
55887
56164
 
56165
+ // agent/routes/build/docker.ts
56166
+ import { execSync as execSync3 } from "child_process";
56167
+ app.route({
56168
+ path: "cnb",
56169
+ key: "docker-sync",
56170
+ middleware: ["auth"],
56171
+ metadata: {
56172
+ tag: ["opencode"],
56173
+ skill: "cnb-docker-sync",
56174
+ title: "CNB Docker 镜像同步",
56175
+ args: {
56176
+ image: exports_external2.string().describe("Docker 同步的具体的镜像名称."),
56177
+ toVersion: exports_external2.string().optional().describe("修改后的版本号.")
56178
+ }
56179
+ }
56180
+ }).define(async (ctx) => {
56181
+ const { image, toVersion } = ctx.args;
56182
+ notCNBCheck(ctx);
56183
+ if (!image) {
56184
+ ctx.body = {
56185
+ message: "请提供 Docker 镜像名称.",
56186
+ data: null
56187
+ };
56188
+ return;
56189
+ }
56190
+ const config3 = {
56191
+ registry: "docker.cnb.cool/kevisual/dev-env",
56192
+ dockers: [{ image, toVersion }]
56193
+ };
56194
+ const run = async () => {
56195
+ const dockers = config3.dockers;
56196
+ for (const { image: image2, toVersion: toVersion2 } of dockers) {
56197
+ const imageName = image2.split(":")[0].split("/").slice(-1)[0];
56198
+ const tag = image2.split(":")[1];
56199
+ const newImage = `${config3.registry}/${imageName}:${toVersion2 || tag}`;
56200
+ const shell = `docker pull ${image2} && docker tag ${image2} ${newImage} && docker push ${newImage}`;
56201
+ console.log(shell);
56202
+ console.log(`
56203
+ -------------new---------------------------------
56204
+ `);
56205
+ console.log(`${newImage}`);
56206
+ console.log(`
56207
+ --------------------------------------------------
56208
+ `);
56209
+ try {
56210
+ execSync3(shell, { stdio: "inherit" });
56211
+ } catch (error49) {
56212
+ console.error(`Error: ${error49}`);
56213
+ }
56214
+ }
56215
+ };
56216
+ run().then(() => {});
56217
+ ctx.body = {
56218
+ message: "Docker 镜像同步任务中,请稍后在目标仓库查看.",
56219
+ data: {
56220
+ registry: config3.registry,
56221
+ dockers: config3.dockers
56222
+ }
56223
+ };
56224
+ }).addTo(app);
56225
+
55888
56226
  // agent/routes/index.ts
55889
56227
  var checkAppId = (ctx, appId) => {
55890
56228
  const _appId = ctx?.app?.appId;