@serviceme/devtools-shared 0.4.13 → 2.0.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/dist/index.js CHANGED
@@ -64,6 +64,7 @@ __export(index_exports, {
64
64
  isGitHubLocalEmail: () => isGitHubLocalEmail,
65
65
  isProviderCacheControlAware: () => isProviderCacheControlAware,
66
66
  isValidCanonicalSlug: () => isValidCanonicalSlug,
67
+ isWholePackageInstall: () => isWholePackageInstall,
67
68
  listPresetModelGroups: () => listPresetModelGroups,
68
69
  lookupModelMetadata: () => lookupModelMetadata,
69
70
  normalizeCanonicalSlug: () => normalizeCanonicalSlug,
@@ -575,6 +576,53 @@ var PRIMARY_METADATA = {
575
576
  maxInputTokens: 1e6,
576
577
  maxOutputTokens: 128e3
577
578
  },
579
+ // GLM-5.3-Flash (2026-08-26) — GLM-5 系列首个原生多模态模型,
580
+ // 320B 总参 / 18B 激活,稀疏+线性注意力混合架构,1M 上下文。
581
+ // 视觉能力原生融入 Coding 循环(自动观察 UI 渲染/交互反馈并迭代)。
582
+ // 比 GLM-5.3 attention 计算量与 KV 缓存分别降低 3.01× / 4.44×。
583
+ // Source:
584
+ // https://docs.bigmodel.cn/cn/guide/start/model-overview
585
+ // https://z.ai/blog/glm-5.3-flash
586
+ // https://bigmodel.cn/pricing (screenshot 2026-08-26 — 截图列
587
+ // 出了限时免费期内的价格,带「5 折限时 2 周」角标,正常定价未
588
+ // 公开列在定价页)。
589
+ // 截图定价(screenshot 2026-08-26,原价):
590
+ // 上下文: 1M
591
+ // 输入: ¥0.4 / M tokens(原文"0.4 元",灰显 0.8 元)
592
+ // 输出: ¥1.4 / M tokens(原文"1.4 元",灰显 2.8 元)
593
+ // 缓存存储: 限时免费(写时按"百万 tokens/小时",我们的
594
+ // `ModelPricing` schema 没有缓存存储字段,忽略)
595
+ // 缓存命中: ¥0.115 / M tokens(原文"0.115 元",灰显 0.23 元)
596
+ // 灰显数字是 5 折限时的折后价,不是新价。优惠结束后回到 0.4/1.4/0.115。
597
+ // USD 按项目的 CNY/7 镜像取两位小数,与 glm-5.2 / glm-5.3 风格保持一致。
598
+ "glm-5.3-flash": {
599
+ detail: "GLM-5.3 Flash \u2014 320B/18B \u6FC0\u6D3B,\u7A00\u758F+\u7EBF\u6027\u6CE8\u610F\u529B\u6DF7\u5408\u67B6\u6784,\u539F\u751F\u591A\u6A21\u6001\u89C6\u89C9 Coding,1M \u4E0A\u4E0B\u6587",
600
+ // 原生多模态:支持图片 / 视频 / 文件 / 文本(imageInput=true)。
601
+ imageInput: true,
602
+ toolCalling: true,
603
+ // 思考模式:`thinking.type` 仅支持 `enabled`(不支持关闭),
604
+ // 控制深度靠 `reasoning_effort`(low/high/max)。与 glm-5.3
605
+ // 共用同一 schema。
606
+ thinkingSchema: "reasoningEffort",
607
+ supportsReasoningEffort: true,
608
+ // CNY 直接取截图数字(¥0.4 / ¥1.4 / ¥0.115);USD = CNY/7
609
+ // 镜像取两位小数:
610
+ // 0.4 / 7 = 0.0571... → 0.057
611
+ // 1.4 / 7 = 0.2
612
+ // 0.115 / 7 = 0.01643... → 0.0164
613
+ // 这与 glm-5.2 (¥8/¥28/¥2 → $1.12/$3.92/$0.28) 的
614
+ // 四舍五入风格保持一致;glm-5.3 用的 USD 国际独立价
615
+ // ($1.4/$4.4/$0.26) 不适用于本条目 — 截图明确是 CNY
616
+ // 国内口径。
617
+ pricingUSD: { input: 0.057, output: 0.2, cacheRead: 0.0164 },
618
+ pricingCNY: { input: 0.4, output: 1.4, cacheRead: 0.115 },
619
+ priceCategory: "low",
620
+ maxInputTokens: 1e6,
621
+ // 官方未单独发布 5.3-Flash 的 max output。按 GLM-5.3 系列
622
+ // 共识取 128K(与 glm-5.2 / glm-5.3 同),保守留 buffer
623
+ // 给输入。
624
+ maxOutputTokens: 128e3
625
+ },
578
626
  // GLM-5.1-HighSpeed (2026-05) — production-grade high-throughput
579
627
  // variant of GLM-5.1. Same 200K context + 128K output, but optimised
580
628
  // via Zhipu's TileRT inference engine for 400 TPS output (~2× the
@@ -1313,16 +1361,8 @@ var BUILTIN_PROVIDER_PRESETS = {
1313
1361
  // (otherwise the user's added model never shows up in the
1314
1362
  // Copilot Chat picker).
1315
1363
  models: [
1316
- buildPresetModel(
1317
- "MiniMax-M3",
1318
- "MiniMax-M3",
1319
- "https://api.minimaxi.com/anthropic"
1320
- ),
1321
- buildPresetModel(
1322
- "MiniMax-M2.7",
1323
- "MiniMax-M2.7",
1324
- "https://api.minimaxi.com/anthropic"
1325
- ),
1364
+ buildPresetModel("MiniMax-M3", "MiniMax-M3", "https://api.minimaxi.com/anthropic"),
1365
+ buildPresetModel("MiniMax-M2.7", "MiniMax-M2.7", "https://api.minimaxi.com/anthropic"),
1326
1366
  buildPresetModel(
1327
1367
  "MiniMax-M2.7-highspeed",
1328
1368
  "MiniMax-M2.7-highspeed",
@@ -1332,11 +1372,7 @@ var BUILTIN_PROVIDER_PRESETS = {
1332
1372
  // predecessor of M2.7. Still in the catalog and often
1333
1373
  // available on MiniMax's promotional $0.30/$1.20 rate, so
1334
1374
  // keep it as a preset for users on the M2.5 plan tier.
1335
- buildPresetModel(
1336
- "MiniMax-M2.5",
1337
- "MiniMax-M2.5",
1338
- "https://api.minimaxi.com/anthropic"
1339
- )
1375
+ buildPresetModel("MiniMax-M2.5", "MiniMax-M2.5", "https://api.minimaxi.com/anthropic")
1340
1376
  ]
1341
1377
  },
1342
1378
  deepseek: {
@@ -1358,16 +1394,8 @@ var BUILTIN_PROVIDER_PRESETS = {
1358
1394
  // the recommended default — users still on V3 can override
1359
1395
  // these defaults in the ProvidersTab form.
1360
1396
  models: [
1361
- buildPresetModel(
1362
- "deepseek-v4-flash",
1363
- "DeepSeek V4 Flash",
1364
- "https://api.deepseek.com/v1"
1365
- ),
1366
- buildPresetModel(
1367
- "deepseek-v4-pro",
1368
- "DeepSeek V4 Pro",
1369
- "https://api.deepseek.com/v1"
1370
- )
1397
+ buildPresetModel("deepseek-v4-flash", "DeepSeek V4 Flash", "https://api.deepseek.com/v1"),
1398
+ buildPresetModel("deepseek-v4-pro", "DeepSeek V4 Pro", "https://api.deepseek.com/v1")
1371
1399
  ]
1372
1400
  },
1373
1401
  agnes: {
@@ -1381,26 +1409,14 @@ var BUILTIN_PROVIDER_PRESETS = {
1381
1409
  // benchmark-listed alpha — followed by the flash tier
1382
1410
  // newest-first.
1383
1411
  models: [
1384
- buildPresetModel(
1385
- "agnes-2.5-pro",
1386
- "Agnes 2.5 Pro",
1387
- "https://apihub.agnes-ai.com/v1"
1388
- ),
1412
+ buildPresetModel("agnes-2.5-pro", "Agnes 2.5 Pro", "https://apihub.agnes-ai.com/v1"),
1389
1413
  buildPresetModel(
1390
1414
  "agnes-2.5-pro-alpha",
1391
1415
  "Agnes 2.5 Pro Alpha",
1392
1416
  "https://apihub.agnes-ai.com/v1"
1393
1417
  ),
1394
- buildPresetModel(
1395
- "agnes-2.5-flash",
1396
- "Agnes 2.5 Flash",
1397
- "https://apihub.agnes-ai.com/v1"
1398
- ),
1399
- buildPresetModel(
1400
- "agnes-2.0-flash",
1401
- "Agnes 2.0 Flash",
1402
- "https://apihub.agnes-ai.com/v1"
1403
- )
1418
+ buildPresetModel("agnes-2.5-flash", "Agnes 2.5 Flash", "https://apihub.agnes-ai.com/v1"),
1419
+ buildPresetModel("agnes-2.0-flash", "Agnes 2.0 Flash", "https://apihub.agnes-ai.com/v1")
1404
1420
  ]
1405
1421
  },
1406
1422
  kimi: {
@@ -1408,11 +1424,7 @@ var BUILTIN_PROVIDER_PRESETS = {
1408
1424
  baseUrl: "https://api.moonshot.cn/v1",
1409
1425
  models: [
1410
1426
  buildPresetModel("kimi-k3", "Kimi K3", "https://api.moonshot.cn/v1"),
1411
- buildPresetModel(
1412
- "kimi-k2.7-code",
1413
- "Kimi K2.7 Code",
1414
- "https://api.moonshot.cn/v1"
1415
- ),
1427
+ buildPresetModel("kimi-k2.7-code", "Kimi K2.7 Code", "https://api.moonshot.cn/v1"),
1416
1428
  buildPresetModel(
1417
1429
  "kimi-k2.7-code-highspeed",
1418
1430
  "Kimi K2.7 Code HighSpeed",
@@ -1490,67 +1502,28 @@ var BUILTIN_PROVIDER_PRESETS = {
1490
1502
  // `MODEL_METADATA` entries are kept so the id is still
1491
1503
  // resolvable for the curated detail / pricing columns.
1492
1504
  models: [
1493
- buildPresetModel(
1494
- "glm-5.3",
1495
- "GLM-5.3",
1496
- "https://open.bigmodel.cn/api/paas/v4"
1497
- ),
1498
- buildPresetModel(
1499
- "glm-5.2",
1500
- "GLM-5.2",
1501
- "https://open.bigmodel.cn/api/paas/v4"
1502
- ),
1503
- buildPresetModel(
1504
- "glm-5.1",
1505
- "GLM-5.1",
1506
- "https://open.bigmodel.cn/api/paas/v4"
1507
- ),
1508
- buildPresetModel(
1509
- "glm-5",
1510
- "GLM-5",
1511
- "https://open.bigmodel.cn/api/paas/v4"
1512
- ),
1513
- buildPresetModel(
1514
- "glm-5-turbo",
1515
- "GLM-5 Turbo",
1516
- "https://open.bigmodel.cn/api/paas/v4"
1517
- ),
1518
- buildPresetModel(
1519
- "glm-4.7",
1520
- "GLM-4.7",
1521
- "https://open.bigmodel.cn/api/paas/v4"
1522
- ),
1523
- buildPresetModel(
1524
- "glm-4.6",
1525
- "GLM-4.6",
1526
- "https://open.bigmodel.cn/api/paas/v4"
1527
- ),
1528
- buildPresetModel(
1529
- "glm-4.5-air",
1530
- "GLM-4.5 Air",
1531
- "https://open.bigmodel.cn/api/paas/v4"
1532
- ),
1533
- buildPresetModel(
1534
- "glm-4.5",
1535
- "GLM-4.5",
1536
- "https://open.bigmodel.cn/api/paas/v4"
1537
- )
1505
+ buildPresetModel("glm-5.3", "GLM-5.3", "https://open.bigmodel.cn/api/paas/v4"),
1506
+ // GLM-5.3-Flash (2026-08-26) — GLM-5 系列首个原生多模态
1507
+ // 模型,性价比高(¥0.4/¥1.4 per 1M tokens),接入 GLM Coding Plan
1508
+ // 后额度较 GLM-5.3 翻 3 倍。放在 5.3 后面,符合
1509
+ // 旗舰/快速版成对的展示惯例。
1510
+ buildPresetModel("glm-5.3-flash", "GLM-5.3 Flash", "https://open.bigmodel.cn/api/paas/v4"),
1511
+ buildPresetModel("glm-5.2", "GLM-5.2", "https://open.bigmodel.cn/api/paas/v4"),
1512
+ buildPresetModel("glm-5.1", "GLM-5.1", "https://open.bigmodel.cn/api/paas/v4"),
1513
+ buildPresetModel("glm-5", "GLM-5", "https://open.bigmodel.cn/api/paas/v4"),
1514
+ buildPresetModel("glm-5-turbo", "GLM-5 Turbo", "https://open.bigmodel.cn/api/paas/v4"),
1515
+ buildPresetModel("glm-4.7", "GLM-4.7", "https://open.bigmodel.cn/api/paas/v4"),
1516
+ buildPresetModel("glm-4.6", "GLM-4.6", "https://open.bigmodel.cn/api/paas/v4"),
1517
+ buildPresetModel("glm-4.5-air", "GLM-4.5 Air", "https://open.bigmodel.cn/api/paas/v4"),
1518
+ buildPresetModel("glm-4.5", "GLM-4.5", "https://open.bigmodel.cn/api/paas/v4")
1538
1519
  ]
1539
1520
  },
1540
1521
  stepfun: {
1541
1522
  displayName: "StepFun",
1542
1523
  baseUrl: "https://api.stepfun.com/v1",
1543
1524
  models: [
1544
- buildPresetModel(
1545
- "step-3.7-flash",
1546
- "Step 3.7 Flash",
1547
- "https://api.stepfun.com/v1"
1548
- ),
1549
- buildPresetModel(
1550
- "step-3.5-flash",
1551
- "Step 3.5 Flash",
1552
- "https://api.stepfun.com/v1"
1553
- ),
1525
+ buildPresetModel("step-3.7-flash", "Step 3.7 Flash", "https://api.stepfun.com/v1"),
1526
+ buildPresetModel("step-3.5-flash", "Step 3.5 Flash", "https://api.stepfun.com/v1"),
1554
1527
  buildPresetModel(
1555
1528
  "step-1o-turbo-vision",
1556
1529
  "Step 1o Turbo Vision",
@@ -1603,11 +1576,7 @@ var BUILTIN_PROVIDER_PRESETS = {
1603
1576
  displayName: "OpenRouter",
1604
1577
  baseUrl: "https://openrouter.ai/api/v1",
1605
1578
  models: [
1606
- buildPresetModel(
1607
- "openrouter/auto",
1608
- "OpenRouter Auto",
1609
- "https://openrouter.ai/api/v1"
1610
- )
1579
+ buildPresetModel("openrouter/auto", "OpenRouter Auto", "https://openrouter.ai/api/v1")
1611
1580
  ]
1612
1581
  },
1613
1582
  novita: {
@@ -1631,16 +1600,8 @@ var BUILTIN_PROVIDER_PRESETS = {
1631
1600
  "https://api.novita.ai/openai/v1"
1632
1601
  ),
1633
1602
  // GLM-5 系列 (2026-04/06)
1634
- buildPresetModel(
1635
- "zai/glm-5.2",
1636
- "GLM-5.2 (via Novita)",
1637
- "https://api.novita.ai/openai/v1"
1638
- ),
1639
- buildPresetModel(
1640
- "zai/glm-5.1",
1641
- "GLM-5.1 (via Novita)",
1642
- "https://api.novita.ai/openai/v1"
1643
- ),
1603
+ buildPresetModel("zai/glm-5.2", "GLM-5.2 (via Novita)", "https://api.novita.ai/openai/v1"),
1604
+ buildPresetModel("zai/glm-5.1", "GLM-5.1 (via Novita)", "https://api.novita.ai/openai/v1"),
1644
1605
  // Kimi K3 (2026-07-16 API, 2026-07-27 开源) — 1M context, 2.8T MoE
1645
1606
  buildPresetModel(
1646
1607
  "moonshotai/kimi-k3",
@@ -1713,11 +1674,7 @@ var BUILTIN_PROVIDER_PRESETS = {
1713
1674
  {
1714
1675
  // Live /v1/models: context_length 1048576,
1715
1676
  // max_output_length 131072, input_modalities ["text"] only.
1716
- ...buildPresetModel(
1717
- "glm-5.2",
1718
- "GLM-5.2 (via SenseNova)",
1719
- "https://token.sensenova.cn/v1"
1720
- ),
1677
+ ...buildPresetModel("glm-5.2", "GLM-5.2 (via SenseNova)", "https://token.sensenova.cn/v1"),
1721
1678
  maxInputTokens: 1048576,
1722
1679
  maxOutputTokens: 131072,
1723
1680
  capabilities: { supportsImageToText: false, supportsToolCalling: true }
@@ -1811,6 +1768,11 @@ var CERTIFICATE_BUNDLE_FORMATS = [
1811
1768
  }
1812
1769
  ];
1813
1770
 
1771
+ // src/copilot-customizations.ts
1772
+ function isWholePackageInstall(definition) {
1773
+ return definition.wholePackage === true || definition.artifacts?.some((artifact) => artifact.id.includes("::package:")) === true;
1774
+ }
1775
+
1814
1776
  // ../../node_modules/.pnpm/js-sha256@1.0.0/node_modules/js-sha256/src/node.mjs
1815
1777
  var import_crypto = require("crypto");
1816
1778
 
@@ -2273,6 +2235,9 @@ var WebviewMessageType = /* @__PURE__ */ ((WebviewMessageType2) => {
2273
2235
  WebviewMessageType2["ReorderExternalTools"] = "reorderExternalTools";
2274
2236
  WebviewMessageType2["UpdateNgrokStatus"] = "updateNgrokStatus";
2275
2237
  WebviewMessageType2["UpdateServerStatus"] = "updateServerStatus";
2238
+ WebviewMessageType2["UpdateOcxStatus"] = "updateOcxStatus";
2239
+ WebviewMessageType2["UpdateRtkStatus"] = "updateRtkStatus";
2240
+ WebviewMessageType2["UpdateCodegraphStatus"] = "updateCodegraphStatus";
2276
2241
  WebviewMessageType2["GetAuthState"] = "getAuthState";
2277
2242
  WebviewMessageType2["UpdateAuthState"] = "updateAuthState";
2278
2243
  WebviewMessageType2["Login"] = "login";
@@ -2334,6 +2299,7 @@ var WebviewMessageType = /* @__PURE__ */ ((WebviewMessageType2) => {
2334
2299
  WebviewMessageType2["InstallSkillRepoEntry"] = "installSkillRepoEntry";
2335
2300
  WebviewMessageType2["ConvertSkillRepoEntryToSymlink"] = "convertSkillRepoEntryToSymlink";
2336
2301
  WebviewMessageType2["UninstallSkillRepoEntry"] = "uninstallSkillRepoEntry";
2302
+ WebviewMessageType2["SetSkillRepoEntryEnabled"] = "setSkillRepoEntryEnabled";
2337
2303
  WebviewMessageType2["ListLinkedSkills"] = "listLinkedSkills";
2338
2304
  WebviewMessageType2["UpdateSkillRepoCatalog"] = "updateSkillRepoCatalog";
2339
2305
  WebviewMessageType2["UpdateSkillRepoInstall"] = "updateSkillRepoInstall";
@@ -2351,12 +2317,36 @@ var WebviewMessageType = /* @__PURE__ */ ((WebviewMessageType2) => {
2351
2317
  WebviewMessageType2["DisableRepository"] = "disableRepository";
2352
2318
  WebviewMessageType2["SyncRepository"] = "syncRepository";
2353
2319
  WebviewMessageType2["SyncAllRepositories"] = "syncAllRepositories";
2320
+ WebviewMessageType2["ResetParseCache"] = "resetParseCache";
2321
+ WebviewMessageType2["ListCopilotPlugins"] = "listCopilotPlugins";
2322
+ WebviewMessageType2["RegisterCopilotPlugin"] = "registerCopilotPlugin";
2323
+ WebviewMessageType2["UnregisterCopilotPlugin"] = "unregisterCopilotPlugin";
2324
+ WebviewMessageType2["SetCopilotPluginEnabled"] = "setCopilotPluginEnabled";
2325
+ WebviewMessageType2["GetCopilotContentStatus"] = "getCopilotContentStatus";
2326
+ WebviewMessageType2["RestoreCopilotContent"] = "restoreCopilotContent";
2327
+ WebviewMessageType2["ApproveCopilotContent"] = "approveCopilotContent";
2354
2328
  WebviewMessageType2["UpdateRepositoryList"] = "updateRepositoryList";
2355
2329
  WebviewMessageType2["UpdateRepositoryAdd"] = "updateRepositoryAdd";
2356
2330
  WebviewMessageType2["UpdateRepositoryUpdate"] = "updateRepositoryUpdate";
2357
2331
  WebviewMessageType2["UpdateRepositoryRemove"] = "updateRepositoryRemove";
2358
2332
  WebviewMessageType2["UpdateRepositoryToggle"] = "updateRepositoryToggle";
2359
2333
  WebviewMessageType2["UpdateRepositorySyncResult"] = "updateRepositorySyncResult";
2334
+ WebviewMessageType2["UpdateCopilotContentStatus"] = "updateCopilotContentStatus";
2335
+ WebviewMessageType2["GetCopilotCustomizations"] = "getCopilotCustomizations";
2336
+ WebviewMessageType2["SyncCopilotCustomizations"] = "syncCopilotCustomizations";
2337
+ WebviewMessageType2["UpdateCopilotCustomizations"] = "updateCopilotCustomizations";
2338
+ WebviewMessageType2["InstallCopilotPackage"] = "installCopilotPackage";
2339
+ WebviewMessageType2["MoveCopilotPackage"] = "moveCopilotPackage";
2340
+ WebviewMessageType2["UninstallCopilotPackage"] = "uninstallCopilotPackage";
2341
+ WebviewMessageType2["ListCopilotSources"] = "listCopilotSources";
2342
+ WebviewMessageType2["RemoveCopilotSource"] = "removeCopilotSource";
2343
+ WebviewMessageType2["PreviewCopilotUpdate"] = "previewCopilotUpdate";
2344
+ WebviewMessageType2["UpdateCopilotPackage"] = "updateCopilotPackage";
2345
+ WebviewMessageType2["PreviewCopilotLegacy"] = "previewCopilotLegacy";
2346
+ WebviewMessageType2["MigrateCopilotLegacy"] = "migrateCopilotLegacy";
2347
+ WebviewMessageType2["UpdateCopilotSources"] = "updateCopilotSources";
2348
+ WebviewMessageType2["UpdateCopilotUpdatePreview"] = "updateCopilotUpdatePreview";
2349
+ WebviewMessageType2["UpdateCopilotLegacyPreview"] = "updateCopilotLegacyPreview";
2360
2350
  WebviewMessageType2["GetUtilityModels"] = "getUtilityModels";
2361
2351
  WebviewMessageType2["UtilityModelsResponse"] = "utilityModelsResponse";
2362
2352
  WebviewMessageType2["UpdateUtilityModels"] = "updateUtilityModels";
@@ -2447,6 +2437,7 @@ function safeJson(text, fallback) {
2447
2437
  isGitHubLocalEmail,
2448
2438
  isProviderCacheControlAware,
2449
2439
  isValidCanonicalSlug,
2440
+ isWholePackageInstall,
2450
2441
  listPresetModelGroups,
2451
2442
  lookupModelMetadata,
2452
2443
  normalizeCanonicalSlug,