@qwen-code/qwen-code 0.18.0-preview.1 → 0.18.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/bundled/qc-helper/SKILL.md +1 -2
- package/bundled/qc-helper/docs/_meta.ts +1 -0
- package/bundled/qc-helper/docs/configuration/settings.md +20 -24
- package/bundled/qc-helper/docs/features/_meta.ts +0 -3
- package/bundled/qc-helper/docs/features/approval-mode.md +10 -14
- package/bundled/qc-helper/docs/features/commands.md +47 -23
- package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +1 -1
- package/bundled/qc-helper/docs/features/sub-agents.md +60 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +221 -0
- package/bundled/qc-helper/docs/qwen-serve.md +234 -24
- package/chunks/{agent-SXS4NQWS.js → agent-LOTJK6AH.js} +25 -19
- package/chunks/agent-headless-TU3EPMYU.js +50 -0
- package/chunks/{anthropicContentGenerator-4QBVSFSJ.js → anthropicContentGenerator-2HBRNQ3B.js} +7 -7
- package/chunks/{askUserQuestion-NOOLRWCJ.js → askUserQuestion-OGCMIBQM.js} +45 -3
- package/chunks/{ca-WRHFBIDH.js → ca-BARBRL6N.js} +48 -1
- package/chunks/{chunk-JMLIPZUU.js → chunk-2Y5SYSD3.js} +361 -583
- package/chunks/chunk-3DHXZ6EV.js +241 -0
- package/chunks/{chunk-AVLOK27J.js → chunk-3HTIVKZE.js} +1 -1
- package/chunks/{chunk-BNESGOSJ.js → chunk-55ZMG67I.js} +1 -1
- package/chunks/chunk-64WXLC72.js +98 -0
- package/chunks/{chunk-F6FLCHCS.js → chunk-6YIUGZTC.js} +1069 -211
- package/chunks/{chunk-C6WMLUNB.js → chunk-72LDN5PP.js} +1 -1
- package/chunks/{chunk-ERREX2ES.js → chunk-7BCMOPIM.js} +64 -24
- package/chunks/{chunk-6VFG3EUJ.js → chunk-A7B4ISQP.js} +1 -1
- package/chunks/{chunk-F5ORN4YO.js → chunk-B7HXHOHU.js} +1 -1
- package/chunks/{chunk-5RNZ2QKF.js → chunk-BIVG75CP.js} +1 -1
- package/chunks/{chunk-MVX64PNU.js → chunk-EYENRK4D.js} +1 -1
- package/chunks/{chunk-SZOEIL6S.js → chunk-H6BD2ELD.js} +1 -0
- package/chunks/{chunk-SCHRFI7O.js → chunk-HLPLOD42.js} +1 -1
- package/chunks/{chunk-R5PDRHEF.js → chunk-HR7SV7AY.js} +68 -47
- package/chunks/{chunk-JSYEZAYV.js → chunk-IDX6COTE.js} +2 -2
- package/chunks/{chunk-6KH2Q7XN.js → chunk-IWAYOW5Q.js} +17482 -11669
- package/chunks/chunk-J5MDQKJL.js +2230 -0
- package/chunks/{chunk-USE2VQ5P.js → chunk-JTQAQBTV.js} +21 -0
- package/chunks/{chunk-ZW7GBCRE.js → chunk-LBP46COL.js} +1014 -163
- package/chunks/chunk-LD2XBG6Z.js +102 -0
- package/chunks/{chunk-KOA52UTF.js → chunk-LEJ42GNY.js} +14 -14
- package/chunks/{chunk-D46KOV3C.js → chunk-M6VTDSVR.js} +1 -1
- package/chunks/{chunk-SHUT5MQY.js → chunk-MFBBBTNY.js} +1 -1
- package/chunks/{chunk-PLYZAP4W.js → chunk-OHEGWO4L.js} +101 -23
- package/chunks/{chunk-NQZ33PWX.js → chunk-PL3MVCWD.js} +11 -11
- package/chunks/chunk-QQDPRDVW.js +25 -0
- package/chunks/chunk-R7ODSGTK.js +159 -0
- package/chunks/{chunk-GBEPNWYB.js → chunk-SEGYWKIH.js} +1 -1
- package/chunks/chunk-SKBPNJEW.js +45 -0
- package/chunks/{chunk-UABFCMPA.js → chunk-SNGELLWX.js} +3 -1
- package/chunks/chunk-XBY7E2FX.js +605 -0
- package/chunks/{chunk-G763GDO6.js → chunk-XV4HCEVI.js} +36 -3
- package/chunks/{chunk-WFVXF3OM.js → chunk-Z2Z3GUXZ.js} +1 -0
- package/chunks/{chunk-BBTV54KB.js → chunk-ZTZ4DDQE.js} +2 -2
- package/chunks/{computer-use-CT6MU6P3.js → computer-use-3RH2DOM6.js} +25 -19
- package/chunks/contextCommand-K347QT6O.js +52 -0
- package/chunks/{cron-create-PIPMXQN4.js → cron-create-YJL3KFWI.js} +3 -3
- package/chunks/{cron-delete-6Y5XIDMS.js → cron-delete-WKWSJZQA.js} +3 -3
- package/chunks/{cron-list-A4WNRUWZ.js → cron-list-B52XEXAZ.js} +3 -3
- package/chunks/{de-M5RPB2NB.js → de-YGKK2BC4.js} +48 -1
- package/chunks/{devtools-IXE4UP72.js → devtools-FM6GJPYG.js} +1 -1
- package/chunks/{dist-R2SXPG74.js → dist-4LXD6L6X.js} +2 -2
- package/chunks/{dist-TE5QKMGR.js → dist-H6ONXVLG.js} +1 -1
- package/chunks/{dist-ZMQ4TXD5.js → dist-KAZ3SEBX.js} +2 -2
- package/chunks/{dist-BXDUQ2QY.js → dist-PK7DFCAW.js} +1 -1
- package/chunks/{edit-A4YK7AIB.js → edit-KU4PJGEX.js} +26 -20
- package/chunks/{en-UMYKQAZE.js → en-DHGYHIHX.js} +77 -2
- package/chunks/{enter-worktree-VNEQINLC.js → enter-worktree-PPYIDCWI.js} +25 -19
- package/chunks/enterPlanMode-5CZDMCB4.js +158 -0
- package/chunks/{exit-worktree-AVSMXC33.js → exit-worktree-UY3CGHKC.js} +25 -19
- package/chunks/exitPlanMode-3DN4QNSG.js +703 -0
- package/chunks/{fr-MPYXXXPW.js → fr-JXBKPJKQ.js} +48 -1
- package/chunks/{geminiContentGenerator-CR2WGARL.js → geminiContentGenerator-7A6I2RWB.js} +7 -7
- package/chunks/{getMachineId-bsd-F7GNPTER.js → getMachineId-bsd-4CASPIU4.js} +1 -1
- package/chunks/{getMachineId-darwin-T73DJL27.js → getMachineId-darwin-HPQPEMZR.js} +1 -1
- package/chunks/{getMachineId-linux-MKQTFPQM.js → getMachineId-linux-AUARKYHL.js} +1 -1
- package/chunks/{getMachineId-unsupported-MUR5KOQE.js → getMachineId-unsupported-S32ZDA2T.js} +1 -1
- package/chunks/{getMachineId-win-CDYFC6ZM.js → getMachineId-win-4EFLHYIJ.js} +1 -1
- package/chunks/{glob-5V32KOG5.js → glob-OFNQSS52.js} +25 -19
- package/chunks/{grep-PUTEPBR4.js → grep-6J2MSUM5.js} +28 -19
- package/chunks/{ja-NFZ32AB3.js → ja-TGPZSP2B.js} +48 -1
- package/chunks/{keychain-token-storage-UHGOCDD6.js → keychain-token-storage-6IU6ORQN.js} +3 -3
- package/chunks/{ls-34DLNYCD.js → ls-V3O6A5PT.js} +4 -4
- package/chunks/{lsp-NCDEHH3V.js → lsp-G2OCIFUA.js} +3 -3
- package/chunks/{monitor-EJBR5VCR.js → monitor-FKLHV423.js} +25 -19
- package/chunks/{notebook-edit-DZHGPP2L.js → notebook-edit-KTBYFKWG.js} +26 -20
- package/chunks/{openaiContentGenerator-4QNV3CHM.js → openaiContentGenerator-L5KSWQY7.js} +15 -14
- package/chunks/{pt-BR43FRBA.js → pt-TIBG6BIO.js} +48 -1
- package/chunks/{qwenContentGenerator-3XOCEMQO.js → qwenContentGenerator-PYOXLMBW.js} +27 -21
- package/chunks/{qwenOAuth2-KRJT35QH.js → qwenOAuth2-2KCKWDCF.js} +6 -5
- package/chunks/{read-file-VZ2SQQIX.js → read-file-JQVRK4NU.js} +11 -11
- package/chunks/ripGrep-2L4LPNAJ.js +48 -0
- package/chunks/{ru-DQCW2KHD.js → ru-JBCHCK4L.js} +48 -1
- package/chunks/{scheduler-H32DZVDV.js → scheduler-FGNXY4JQ.js} +25 -19
- package/chunks/send-message-SZFWNOCL.js +244 -0
- package/chunks/{serve-56G4B5W6.js → serve-N2IBLA3G.js} +13592 -4979
- package/chunks/{shell-Q77KNP4N.js → shell-PTEG6UX4.js} +25 -19
- package/chunks/{skill-CLWFJYBG.js → skill-X4NTK4NH.js} +64 -113
- package/chunks/{src-47L2LUOU.js → src-GLLQ3R5W.js} +307 -32
- package/chunks/{syntheticOutput-T5SWX3YF.js → syntheticOutput-IKAY5F6X.js} +4 -4
- package/chunks/task-create-MQICOJFV.js +19 -0
- package/chunks/task-list-RIHJCH32.js +151 -0
- package/chunks/{task-stop-3VHAQMYM.js → task-stop-FWZRFANS.js} +3 -3
- package/chunks/task-update-2LHPXOYM.js +408 -0
- package/chunks/team-create-2E4PF4KN.js +314 -0
- package/chunks/team-delete-DAUDQS4J.js +116 -0
- package/chunks/{todoWrite-EAGJGKO5.js → todoWrite-HTUACZES.js} +5 -5
- package/chunks/{tool-search-Q75AYDTP.js → tool-search-KTVULRES.js} +11 -11
- package/chunks/{web-fetch-SS6IKK6N.js → web-fetch-CZ7LLKPE.js} +5 -5
- package/chunks/workflow-L2ZUUDT2.js +960 -0
- package/chunks/{write-file-RENGC25N.js → write-file-ZEB2JDYH.js} +26 -20
- package/chunks/{zh-6VFXOAR5.js → zh-7H5OQC4I.js} +82 -7
- package/chunks/{zh-TW-IQZ4AD5M.js → zh-TW-P4IDHD3M.js} +79 -7
- package/cli.js +11248 -5119
- package/examples/agent/qwen-extension.json +1 -0
- package/examples/commands/qwen-extension.json +1 -0
- package/examples/context/qwen-extension.json +1 -0
- package/examples/mcp-server/qwen-extension.json +1 -0
- package/examples/skills/qwen-extension.json +1 -0
- package/examples/starter/QWEN.md +30 -0
- package/examples/starter/README.md +59 -0
- package/examples/starter/agents/diary.md +86 -0
- package/examples/starter/commands/writing/polish.md +13 -0
- package/examples/starter/example.ts +64 -0
- package/examples/starter/package.json +18 -0
- package/examples/starter/qwen-extension.json +12 -0
- package/examples/starter/skills/synonyms/SKILL.md +48 -0
- package/examples/starter/tsconfig.json +13 -0
- package/fzfWorker.js +1083 -0
- package/locales/ca.js +51 -0
- package/locales/de.js +51 -0
- package/locales/en.js +89 -2
- package/locales/fr.js +53 -2
- package/locales/ja.js +52 -2
- package/locales/pt.js +52 -2
- package/locales/ru.js +53 -2
- package/locales/zh-TW.js +90 -11
- package/locales/zh.js +94 -11
- package/package.json +3 -2
- package/bundled/qc-helper/docs/features/checkpointing.md +0 -77
- package/chunks/contextCommand-YODJQYIV.js +0 -46
- package/chunks/exitPlanMode-5SQYVROD.js +0 -229
- package/chunks/ripGrep-SBIZCPOL.js +0 -42
- package/chunks/send-message-YYF56TS7.js +0 -151
|
@@ -1057,6 +1057,21 @@ var pt_default = {
|
|
|
1057
1057
|
" Overall Agreement Rate:": " Taxa Geral de Acordo:",
|
|
1058
1058
|
"No tool calls have been made in this session.": "Nenhuma chamada de ferramenta foi feita nesta sess\xE3o.",
|
|
1059
1059
|
"Session start time is unavailable, cannot calculate stats.": "Hora de in\xEDcio da sess\xE3o indispon\xEDvel, n\xE3o \xE9 poss\xEDvel calcular estat\xEDsticas.",
|
|
1060
|
+
Activity: "Atividade",
|
|
1061
|
+
Efficiency: "Efici\xEAncia",
|
|
1062
|
+
Today: "Hoje",
|
|
1063
|
+
"Token Trend": "Tend\xEAncia de Tokens",
|
|
1064
|
+
"Cache Hit Rate": "Taxa de cache",
|
|
1065
|
+
"Tool Success": "Sucesso de ferramentas",
|
|
1066
|
+
"Tool Leaderboard": "Ranking de ferramentas",
|
|
1067
|
+
Time: "Tempo",
|
|
1068
|
+
Success: "Sucesso",
|
|
1069
|
+
Cache: "Cache",
|
|
1070
|
+
Latency: "Lat\xEAncia",
|
|
1071
|
+
"Code Impact": "Impacto no c\xF3digo",
|
|
1072
|
+
net: "l\xEDquido",
|
|
1073
|
+
streak: "sequ\xEAncia",
|
|
1074
|
+
best: "recorde",
|
|
1060
1075
|
// ============================================================================
|
|
1061
1076
|
// Command Format Migration
|
|
1062
1077
|
// ============================================================================
|
|
@@ -1452,7 +1467,39 @@ var pt_default = {
|
|
|
1452
1467
|
"Status:": "Estado:",
|
|
1453
1468
|
Use: "Uso",
|
|
1454
1469
|
"\u4E2D\u56FD (China)": "China",
|
|
1455
|
-
"\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC": "China - \u963F\u91CC\u4E91\u767E\u70BC"
|
|
1470
|
+
"\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC": "China - \u963F\u91CC\u4E91\u767E\u70BC",
|
|
1471
|
+
// Stats Dashboard — Category 2
|
|
1472
|
+
"Activity Heatmap": "Mapa de Atividade",
|
|
1473
|
+
Less: "Menos",
|
|
1474
|
+
More: "Mais",
|
|
1475
|
+
Sessions: "Sess\xF5es",
|
|
1476
|
+
Duration: "Dura\xE7\xE3o",
|
|
1477
|
+
Projects: "Projetos",
|
|
1478
|
+
"Loading stats...": "Carregando estat\xEDsticas...",
|
|
1479
|
+
"(no data)": "(sem dados)",
|
|
1480
|
+
d: "d",
|
|
1481
|
+
h: "h",
|
|
1482
|
+
m: "m",
|
|
1483
|
+
Input: "Entrada",
|
|
1484
|
+
Models: "Modelos",
|
|
1485
|
+
"All time": "Todo o per\xEDodo",
|
|
1486
|
+
"Last 7 days": "\xDAltimos 7 dias",
|
|
1487
|
+
"Last 30 days": "\xDAltimos 30 dias",
|
|
1488
|
+
"Show usage statistics dashboard.": "Exibir painel de estat\xEDsticas de uso.",
|
|
1489
|
+
// Stats Dashboard — keyboard hints (not translated)
|
|
1490
|
+
"tab \xB7 esc": "tab \xB7 esc",
|
|
1491
|
+
"tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc": "tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc",
|
|
1492
|
+
"tab \xB7 r dates \xB7 esc": "tab \xB7 r dates \xB7 esc",
|
|
1493
|
+
// Stats Dashboard — missing labels
|
|
1494
|
+
"API Requests": "Requisi\xE7\xF5es API",
|
|
1495
|
+
"Tool Calls": "Chamadas de Ferramenta",
|
|
1496
|
+
"Success rate": "Taxa de sucesso",
|
|
1497
|
+
"Code Changes": "Altera\xE7\xF5es de C\xF3digo",
|
|
1498
|
+
Tool: "Ferramenta",
|
|
1499
|
+
reqs: "reqs",
|
|
1500
|
+
in: "ent.",
|
|
1501
|
+
out: "sa\xEDda",
|
|
1502
|
+
"In/Out": "Ent/Sa\xEDda"
|
|
1456
1503
|
};
|
|
1457
1504
|
export {
|
|
1458
1505
|
pt_default as default
|
|
@@ -3,45 +3,51 @@
|
|
|
3
3
|
import {
|
|
4
4
|
DashScopeOpenAICompatibleProvider,
|
|
5
5
|
OpenAIContentGenerator
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-7BCMOPIM.js";
|
|
7
|
+
import "./chunk-ZTZ4DDQE.js";
|
|
8
|
+
import "./chunk-IWAYOW5Q.js";
|
|
9
9
|
import "./chunk-K5PGHDBN.js";
|
|
10
|
+
import "./chunk-SKBPNJEW.js";
|
|
11
|
+
import "./chunk-HLPLOD42.js";
|
|
10
12
|
import "./chunk-O4PICXES.js";
|
|
11
13
|
import "./chunk-TW522KN6.js";
|
|
14
|
+
import "./chunk-3DHXZ6EV.js";
|
|
15
|
+
import "./chunk-XBY7E2FX.js";
|
|
16
|
+
import "./chunk-J5MDQKJL.js";
|
|
12
17
|
import "./chunk-MLZQVCF3.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-LD2XBG6Z.js";
|
|
19
|
+
import "./chunk-OHEGWO4L.js";
|
|
20
|
+
import "./chunk-SNGELLWX.js";
|
|
16
21
|
import "./chunk-77WXWU44.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-A7B4ISQP.js";
|
|
23
|
+
import "./chunk-6YIUGZTC.js";
|
|
19
24
|
import "./chunk-3PJXIDKI.js";
|
|
20
25
|
import "./chunk-UWCTAVOD.js";
|
|
21
26
|
import "./chunk-OFEVLU4C.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-3HTIVKZE.js";
|
|
28
|
+
import "./chunk-IDX6COTE.js";
|
|
29
|
+
import "./chunk-BIVG75CP.js";
|
|
30
|
+
import "./chunk-XV4HCEVI.js";
|
|
26
31
|
import {
|
|
27
32
|
SharedTokenManager
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
33
|
+
} from "./chunk-2Y5SYSD3.js";
|
|
34
|
+
import "./chunk-SEGYWKIH.js";
|
|
35
|
+
import "./chunk-64WXLC72.js";
|
|
36
|
+
import "./chunk-B7HXHOHU.js";
|
|
37
|
+
import "./chunk-EYENRK4D.js";
|
|
32
38
|
import {
|
|
33
39
|
DEFAULT_DASHSCOPE_BASE_URL
|
|
34
|
-
} from "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
40
|
+
} from "./chunk-M6VTDSVR.js";
|
|
41
|
+
import "./chunk-55ZMG67I.js";
|
|
42
|
+
import "./chunk-H6BD2ELD.js";
|
|
37
43
|
import "./chunk-5IFG2VC4.js";
|
|
38
44
|
import {
|
|
39
45
|
createDebugLogger
|
|
40
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-HR7SV7AY.js";
|
|
41
47
|
import "./chunk-ZERZSAZL.js";
|
|
42
48
|
import "./chunk-QN5NZ3UQ.js";
|
|
43
49
|
import "./chunk-BR4QREVK.js";
|
|
44
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
45
51
|
import {
|
|
46
52
|
init_esbuild_shims
|
|
47
53
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -18,11 +18,12 @@ import {
|
|
|
18
18
|
isDeviceTokenSuccess,
|
|
19
19
|
isErrorResponse,
|
|
20
20
|
qwenOAuth2Events
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-2Y5SYSD3.js";
|
|
22
|
+
import "./chunk-SEGYWKIH.js";
|
|
23
|
+
import "./chunk-64WXLC72.js";
|
|
24
|
+
import "./chunk-B7HXHOHU.js";
|
|
25
|
+
import "./chunk-HR7SV7AY.js";
|
|
26
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
26
27
|
import "./chunk-A4BMJM77.js";
|
|
27
28
|
import "./chunk-J2S4EL5Y.js";
|
|
28
29
|
export {
|
|
@@ -2,24 +2,24 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
ReadFileTool
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6YIUGZTC.js";
|
|
6
6
|
import "./chunk-3PJXIDKI.js";
|
|
7
7
|
import "./chunk-UWCTAVOD.js";
|
|
8
8
|
import "./chunk-OFEVLU4C.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-3HTIVKZE.js";
|
|
10
|
+
import "./chunk-IDX6COTE.js";
|
|
11
|
+
import "./chunk-BIVG75CP.js";
|
|
12
|
+
import "./chunk-XV4HCEVI.js";
|
|
13
|
+
import "./chunk-B7HXHOHU.js";
|
|
14
|
+
import "./chunk-M6VTDSVR.js";
|
|
15
|
+
import "./chunk-55ZMG67I.js";
|
|
16
|
+
import "./chunk-H6BD2ELD.js";
|
|
17
17
|
import "./chunk-5IFG2VC4.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-HR7SV7AY.js";
|
|
19
19
|
import "./chunk-ZERZSAZL.js";
|
|
20
20
|
import "./chunk-QN5NZ3UQ.js";
|
|
21
21
|
import "./chunk-BR4QREVK.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
23
23
|
import "./chunk-A4BMJM77.js";
|
|
24
24
|
import "./chunk-J2S4EL5Y.js";
|
|
25
25
|
export {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
RipGrepTool,
|
|
5
|
+
_resetRipGrepCachesForTest
|
|
6
|
+
} from "./chunk-IWAYOW5Q.js";
|
|
7
|
+
import "./chunk-K5PGHDBN.js";
|
|
8
|
+
import "./chunk-SKBPNJEW.js";
|
|
9
|
+
import "./chunk-HLPLOD42.js";
|
|
10
|
+
import "./chunk-O4PICXES.js";
|
|
11
|
+
import "./chunk-TW522KN6.js";
|
|
12
|
+
import "./chunk-3DHXZ6EV.js";
|
|
13
|
+
import "./chunk-XBY7E2FX.js";
|
|
14
|
+
import "./chunk-J5MDQKJL.js";
|
|
15
|
+
import "./chunk-MLZQVCF3.js";
|
|
16
|
+
import "./chunk-LD2XBG6Z.js";
|
|
17
|
+
import "./chunk-OHEGWO4L.js";
|
|
18
|
+
import "./chunk-SNGELLWX.js";
|
|
19
|
+
import "./chunk-77WXWU44.js";
|
|
20
|
+
import "./chunk-A7B4ISQP.js";
|
|
21
|
+
import "./chunk-6YIUGZTC.js";
|
|
22
|
+
import "./chunk-3PJXIDKI.js";
|
|
23
|
+
import "./chunk-UWCTAVOD.js";
|
|
24
|
+
import "./chunk-OFEVLU4C.js";
|
|
25
|
+
import "./chunk-3HTIVKZE.js";
|
|
26
|
+
import "./chunk-IDX6COTE.js";
|
|
27
|
+
import "./chunk-BIVG75CP.js";
|
|
28
|
+
import "./chunk-XV4HCEVI.js";
|
|
29
|
+
import "./chunk-2Y5SYSD3.js";
|
|
30
|
+
import "./chunk-SEGYWKIH.js";
|
|
31
|
+
import "./chunk-64WXLC72.js";
|
|
32
|
+
import "./chunk-B7HXHOHU.js";
|
|
33
|
+
import "./chunk-EYENRK4D.js";
|
|
34
|
+
import "./chunk-M6VTDSVR.js";
|
|
35
|
+
import "./chunk-55ZMG67I.js";
|
|
36
|
+
import "./chunk-H6BD2ELD.js";
|
|
37
|
+
import "./chunk-5IFG2VC4.js";
|
|
38
|
+
import "./chunk-HR7SV7AY.js";
|
|
39
|
+
import "./chunk-ZERZSAZL.js";
|
|
40
|
+
import "./chunk-QN5NZ3UQ.js";
|
|
41
|
+
import "./chunk-BR4QREVK.js";
|
|
42
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
43
|
+
import "./chunk-A4BMJM77.js";
|
|
44
|
+
import "./chunk-J2S4EL5Y.js";
|
|
45
|
+
export {
|
|
46
|
+
RipGrepTool,
|
|
47
|
+
_resetRipGrepCachesForTest
|
|
48
|
+
};
|
|
@@ -1009,6 +1009,21 @@ var ru_default = {
|
|
|
1009
1009
|
" Overall Agreement Rate:": " \u041E\u0431\u0449\u0438\u0439 \u043F\u0440\u043E\u0446\u0435\u043D\u0442 \u0441\u043E\u0433\u043B\u0430\u0441\u0438\u044F:",
|
|
1010
1010
|
"No tool calls have been made in this session.": "\u0412 \u044D\u0442\u043E\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u043D\u0435 \u0431\u044B\u043B\u043E \u0432\u044B\u0437\u043E\u0432\u043E\u0432 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432.",
|
|
1011
1011
|
"Session start time is unavailable, cannot calculate stats.": "\u0412\u0440\u0435\u043C\u044F \u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u0435\u0441\u0441\u0438\u0438 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E, \u043D\u0435\u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0443.",
|
|
1012
|
+
Activity: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
1013
|
+
Efficiency: "\u042D\u0444\u0444\u0435\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
1014
|
+
Today: "\u0421\u0435\u0433\u043E\u0434\u043D\u044F",
|
|
1015
|
+
"Token Trend": "\u0422\u0440\u0435\u043D\u0434 \u0442\u043E\u043A\u0435\u043D\u043E\u0432",
|
|
1016
|
+
"Cache Hit Rate": "\u041F\u043E\u043F\u0430\u0434\u0430\u043D\u0438\u0435 \u0432 \u043A\u044D\u0448",
|
|
1017
|
+
"Tool Success": "\u0423\u0441\u043F\u0435\u0445 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
|
|
1018
|
+
"Tool Leaderboard": "\u0420\u0435\u0439\u0442\u0438\u043D\u0433 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
|
|
1019
|
+
Time: "\u0412\u0440\u0435\u043C\u044F",
|
|
1020
|
+
Success: "\u0423\u0441\u043F\u0435\u0445",
|
|
1021
|
+
Cache: "\u041A\u044D\u0448",
|
|
1022
|
+
Latency: "\u0417\u0430\u0434\u0435\u0440\u0436\u043A\u0430",
|
|
1023
|
+
"Code Impact": "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043A\u043E\u0434\u0430",
|
|
1024
|
+
net: "\u043D\u0435\u0442\u0442\u043E",
|
|
1025
|
+
streak: "\u0441\u0435\u0440\u0438\u044F",
|
|
1026
|
+
best: "\u0440\u0435\u043A\u043E\u0440\u0434",
|
|
1012
1027
|
// ============================================================================
|
|
1013
1028
|
// Command Format Migration
|
|
1014
1029
|
// ============================================================================
|
|
@@ -1451,7 +1466,39 @@ var ru_default = {
|
|
|
1451
1466
|
" (not in model registry)": " (\u043D\u0435 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435 \u043C\u043E\u0434\u0435\u043B\u0435\u0439)",
|
|
1452
1467
|
"start server": "\u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C \u0441\u0435\u0440\u0432\u0435\u0440",
|
|
1453
1468
|
"\u4E2D\u56FD (China)": "\u041A\u0438\u0442\u0430\u0439",
|
|
1454
|
-
"\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC": "\u041A\u0438\u0442\u0430\u0439 - \u963F\u91CC\u4E91\u767E\u70BC"
|
|
1469
|
+
"\u4E2D\u56FD (China) - \u963F\u91CC\u4E91\u767E\u70BC": "\u041A\u0438\u0442\u0430\u0439 - \u963F\u91CC\u4E91\u767E\u70BC",
|
|
1470
|
+
// Stats Dashboard — Category 2
|
|
1471
|
+
"Activity Heatmap": "\u041A\u0430\u0440\u0442\u0430 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438",
|
|
1472
|
+
Less: "\u041C\u0435\u043D\u044C\u0448\u0435",
|
|
1473
|
+
More: "\u0411\u043E\u043B\u044C\u0448\u0435",
|
|
1474
|
+
Sessions: "\u0421\u0435\u0441\u0441\u0438\u0438",
|
|
1475
|
+
Duration: "\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C",
|
|
1476
|
+
Projects: "\u041F\u0440\u043E\u0435\u043A\u0442\u044B",
|
|
1477
|
+
"Loading stats...": "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438...",
|
|
1478
|
+
"(no data)": "(\u043D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445)",
|
|
1479
|
+
d: "\u0434",
|
|
1480
|
+
h: "\u0447",
|
|
1481
|
+
m: "\u043C",
|
|
1482
|
+
Input: "\u0412\u0432\u043E\u0434",
|
|
1483
|
+
Models: "\u041C\u043E\u0434\u0435\u043B\u0438",
|
|
1484
|
+
"All time": "\u0417\u0430 \u0432\u0441\u0451 \u0432\u0440\u0435\u043C\u044F",
|
|
1485
|
+
"Last 7 days": "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 7 \u0434\u043D\u0435\u0439",
|
|
1486
|
+
"Last 30 days": "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 30 \u0434\u043D\u0435\u0439",
|
|
1487
|
+
"Show usage statistics dashboard.": "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F.",
|
|
1488
|
+
// Stats Dashboard — keyboard hints (not translated)
|
|
1489
|
+
"tab \xB7 esc": "tab \xB7 esc",
|
|
1490
|
+
"tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc": "tab \xB7 r dates \xB7 \u2190\u2192 month \xB7 esc",
|
|
1491
|
+
"tab \xB7 r dates \xB7 esc": "tab \xB7 r dates \xB7 esc",
|
|
1492
|
+
// Stats Dashboard — missing labels
|
|
1493
|
+
"API Requests": "API-\u0437\u0430\u043F\u0440\u043E\u0441\u044B",
|
|
1494
|
+
"Tool Calls": "\u0412\u044B\u0437\u043E\u0432\u044B \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432",
|
|
1495
|
+
"Success rate": "\u0423\u0441\u043F\u0435\u0448\u043D\u043E\u0441\u0442\u044C",
|
|
1496
|
+
"Code Changes": "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043A\u043E\u0434\u0430",
|
|
1497
|
+
Tool: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442",
|
|
1498
|
+
reqs: "\u0437\u0430\u043F\u0440.",
|
|
1499
|
+
in: "\u0432\u0445.",
|
|
1500
|
+
out: "\u0432\u044B\u0445.",
|
|
1501
|
+
"In/Out": "\u0412\u0445/\u0412\u044B\u0445"
|
|
1455
1502
|
};
|
|
1456
1503
|
export {
|
|
1457
1504
|
ru_default as default
|
|
@@ -5,40 +5,46 @@ import {
|
|
|
5
5
|
} from "./chunk-MRO43B25.js";
|
|
6
6
|
import {
|
|
7
7
|
FILE_HISTORY_DIR
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-IWAYOW5Q.js";
|
|
9
9
|
import "./chunk-K5PGHDBN.js";
|
|
10
|
+
import "./chunk-SKBPNJEW.js";
|
|
11
|
+
import "./chunk-HLPLOD42.js";
|
|
10
12
|
import "./chunk-O4PICXES.js";
|
|
11
13
|
import "./chunk-TW522KN6.js";
|
|
14
|
+
import "./chunk-3DHXZ6EV.js";
|
|
15
|
+
import "./chunk-XBY7E2FX.js";
|
|
16
|
+
import "./chunk-J5MDQKJL.js";
|
|
12
17
|
import "./chunk-MLZQVCF3.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-LD2XBG6Z.js";
|
|
19
|
+
import "./chunk-OHEGWO4L.js";
|
|
20
|
+
import "./chunk-SNGELLWX.js";
|
|
16
21
|
import "./chunk-77WXWU44.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-A7B4ISQP.js";
|
|
23
|
+
import "./chunk-6YIUGZTC.js";
|
|
19
24
|
import "./chunk-3PJXIDKI.js";
|
|
20
25
|
import "./chunk-UWCTAVOD.js";
|
|
21
26
|
import "./chunk-OFEVLU4C.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-3HTIVKZE.js";
|
|
28
|
+
import "./chunk-IDX6COTE.js";
|
|
29
|
+
import "./chunk-BIVG75CP.js";
|
|
30
|
+
import "./chunk-XV4HCEVI.js";
|
|
31
|
+
import "./chunk-2Y5SYSD3.js";
|
|
32
|
+
import "./chunk-SEGYWKIH.js";
|
|
33
|
+
import "./chunk-64WXLC72.js";
|
|
34
|
+
import "./chunk-B7HXHOHU.js";
|
|
35
|
+
import "./chunk-EYENRK4D.js";
|
|
36
|
+
import "./chunk-M6VTDSVR.js";
|
|
37
|
+
import "./chunk-55ZMG67I.js";
|
|
38
|
+
import "./chunk-H6BD2ELD.js";
|
|
33
39
|
import "./chunk-5IFG2VC4.js";
|
|
34
40
|
import {
|
|
35
41
|
Storage,
|
|
36
42
|
createDebugLogger
|
|
37
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-HR7SV7AY.js";
|
|
38
44
|
import "./chunk-ZERZSAZL.js";
|
|
39
45
|
import "./chunk-QN5NZ3UQ.js";
|
|
40
46
|
import "./chunk-BR4QREVK.js";
|
|
41
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
42
48
|
import {
|
|
43
49
|
init_esbuild_shims
|
|
44
50
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
LEADER_NAME,
|
|
5
|
+
getAgentName,
|
|
6
|
+
isTeammate
|
|
7
|
+
} from "./chunk-LD2XBG6Z.js";
|
|
8
|
+
import {
|
|
9
|
+
BaseDeclarativeTool,
|
|
10
|
+
BaseToolInvocation,
|
|
11
|
+
ToolDisplayNames,
|
|
12
|
+
ToolNames
|
|
13
|
+
} from "./chunk-XV4HCEVI.js";
|
|
14
|
+
import "./chunk-HR7SV7AY.js";
|
|
15
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
16
|
+
import {
|
|
17
|
+
init_esbuild_shims
|
|
18
|
+
} from "./chunk-A4BMJM77.js";
|
|
19
|
+
import {
|
|
20
|
+
__name
|
|
21
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
22
|
+
|
|
23
|
+
// packages/core/src/tools/send-message.ts
|
|
24
|
+
init_esbuild_shims();
|
|
25
|
+
var SendMessageInvocation = class extends BaseToolInvocation {
|
|
26
|
+
constructor(config, params) {
|
|
27
|
+
super(params);
|
|
28
|
+
this.config = config;
|
|
29
|
+
}
|
|
30
|
+
static {
|
|
31
|
+
__name(this, "SendMessageInvocation");
|
|
32
|
+
}
|
|
33
|
+
getDescription() {
|
|
34
|
+
if (this.params.task_id) {
|
|
35
|
+
return `Send message to task ${this.params.task_id}`;
|
|
36
|
+
}
|
|
37
|
+
const preview = this.params.summary ?? this.params.message.slice(0, 50);
|
|
38
|
+
return `Send to ${this.params.to}: ${preview}`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Send-message routes free-form text into a running background task or a
|
|
42
|
+
* teammate, which will then execute it as a new instruction with full
|
|
43
|
+
* tool access. Treat it as a privileged sink — the L4 default must not be
|
|
44
|
+
* 'allow', because that would let the scheduler auto-approve in
|
|
45
|
+
* AUTO mode (where 'allow' short-circuits the classifier). 'ask' lets
|
|
46
|
+
* AUTO route through the classifier so the destination and message text
|
|
47
|
+
* can be inspected.
|
|
48
|
+
*/
|
|
49
|
+
async getDefaultPermission() {
|
|
50
|
+
return "ask";
|
|
51
|
+
}
|
|
52
|
+
async execute(_signal) {
|
|
53
|
+
if (this.params.task_id) {
|
|
54
|
+
const registry = this.config.getBackgroundTaskRegistry();
|
|
55
|
+
const entry = registry.get(this.params.task_id);
|
|
56
|
+
if (!entry) {
|
|
57
|
+
return {
|
|
58
|
+
llmContent: `Error: No background task found with ID "${this.params.task_id}".`,
|
|
59
|
+
returnDisplay: "Task not found.",
|
|
60
|
+
error: {
|
|
61
|
+
message: `Task not found: ${this.params.task_id}`,
|
|
62
|
+
type: "send_message_not_found" /* SEND_MESSAGE_NOT_FOUND */
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
if (entry.status === "paused") {
|
|
67
|
+
const resumed = await this.config.resumeBackgroundAgent(
|
|
68
|
+
this.params.task_id,
|
|
69
|
+
this.params.message
|
|
70
|
+
);
|
|
71
|
+
if (!resumed) {
|
|
72
|
+
return {
|
|
73
|
+
llmContent: `Error: Background task "${this.params.task_id}" could not be resumed.`,
|
|
74
|
+
returnDisplay: "Task could not be resumed.",
|
|
75
|
+
error: {
|
|
76
|
+
message: `Task could not be resumed: ${this.params.task_id}`,
|
|
77
|
+
type: "send_message_not_running" /* SEND_MESSAGE_NOT_RUNNING */
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
llmContent: `Background task "${this.params.task_id}" resumed with your message as the first continuation instruction.`,
|
|
83
|
+
returnDisplay: `Resumed ${entry.description}`
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (entry.status !== "running") {
|
|
87
|
+
return {
|
|
88
|
+
llmContent: `Error: Background task "${this.params.task_id}" is not running (status: ${entry.status}). Cannot send messages to stopped tasks.`,
|
|
89
|
+
returnDisplay: `Task not running (${entry.status}).`,
|
|
90
|
+
error: {
|
|
91
|
+
message: `Task is ${entry.status}: ${this.params.task_id}`,
|
|
92
|
+
type: "send_message_not_running" /* SEND_MESSAGE_NOT_RUNNING */
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
registry.queueMessage(this.params.task_id, this.params.message);
|
|
97
|
+
return {
|
|
98
|
+
llmContent: `Message queued for delivery to background task "${this.params.task_id}". The task will receive it at the next tool-round boundary.`,
|
|
99
|
+
returnDisplay: `Message queued for ${entry.description}`
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
const teamManager = this.config.getTeamManager();
|
|
103
|
+
if (!teamManager) {
|
|
104
|
+
const msg = "No active team and no task_id provided. Either create a team first, or pass `task_id` to message a background task.";
|
|
105
|
+
return {
|
|
106
|
+
llmContent: msg,
|
|
107
|
+
returnDisplay: msg,
|
|
108
|
+
error: { message: msg }
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const to = this.params.to;
|
|
112
|
+
if (!to) {
|
|
113
|
+
const msg = 'Recipient "to" is required.';
|
|
114
|
+
return {
|
|
115
|
+
llmContent: msg,
|
|
116
|
+
returnDisplay: msg,
|
|
117
|
+
error: { message: msg }
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
if (this.params.type === "shutdown_request") {
|
|
122
|
+
if (isTeammate()) {
|
|
123
|
+
const msg3 = "Only the team leader can request shutdowns.";
|
|
124
|
+
return {
|
|
125
|
+
llmContent: msg3,
|
|
126
|
+
returnDisplay: msg3,
|
|
127
|
+
error: { message: msg3 }
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
await teamManager.requestShutdown(to);
|
|
131
|
+
const msg2 = `Shutdown requested for "${to}".`;
|
|
132
|
+
return { llmContent: msg2, returnDisplay: msg2 };
|
|
133
|
+
}
|
|
134
|
+
if (to === "*") {
|
|
135
|
+
const sender = getAgentName() ?? LEADER_NAME;
|
|
136
|
+
await teamManager.broadcast(this.params.message, sender);
|
|
137
|
+
const msg2 = "Message broadcast to all teammates.";
|
|
138
|
+
return { llmContent: msg2, returnDisplay: msg2 };
|
|
139
|
+
}
|
|
140
|
+
await teamManager.sendMessage(
|
|
141
|
+
to,
|
|
142
|
+
this.params.message,
|
|
143
|
+
getAgentName() ?? LEADER_NAME,
|
|
144
|
+
this.params.summary
|
|
145
|
+
);
|
|
146
|
+
const msg = `Message sent to "${to}".`;
|
|
147
|
+
return { llmContent: msg, returnDisplay: msg };
|
|
148
|
+
} catch (error) {
|
|
149
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
150
|
+
return {
|
|
151
|
+
llmContent: `Failed to send message: ${errMsg}`,
|
|
152
|
+
returnDisplay: `Failed to send message: ${errMsg}`,
|
|
153
|
+
error: { message: errMsg }
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
var SendMessageTool = class _SendMessageTool extends BaseDeclarativeTool {
|
|
159
|
+
constructor(config) {
|
|
160
|
+
super(
|
|
161
|
+
_SendMessageTool.Name,
|
|
162
|
+
ToolDisplayNames.SEND_MESSAGE,
|
|
163
|
+
'Send a message to a teammate (use "to") or to a running background task (use "task_id"). For teams, set "to" to a bare teammate name (no @) or "*" to broadcast. For background tasks, set "task_id" to the id from the launch response or a recovered paused task. Running tasks receive it at the next tool-round boundary; paused recovered tasks are resumed with the message as their first continuation instruction. Your text output is NOT visible to other agents \u2014 use this tool to communicate.',
|
|
164
|
+
"other" /* Other */,
|
|
165
|
+
{
|
|
166
|
+
type: "object",
|
|
167
|
+
properties: {
|
|
168
|
+
to: {
|
|
169
|
+
type: "string",
|
|
170
|
+
description: 'Recipient teammate name, or "*" for broadcast.'
|
|
171
|
+
},
|
|
172
|
+
task_id: {
|
|
173
|
+
type: "string",
|
|
174
|
+
description: "The ID of the background task (from the launch response or a recovered paused task)."
|
|
175
|
+
},
|
|
176
|
+
message: {
|
|
177
|
+
type: "string",
|
|
178
|
+
description: "Message text to send.",
|
|
179
|
+
// Cap message size so a teammate can't grow the
|
|
180
|
+
// recipient's inbox file unboundedly with a single send.
|
|
181
|
+
maxLength: 65536
|
|
182
|
+
},
|
|
183
|
+
summary: {
|
|
184
|
+
type: "string",
|
|
185
|
+
description: "Optional 5-10 word summary for UI display."
|
|
186
|
+
},
|
|
187
|
+
type: {
|
|
188
|
+
type: "string",
|
|
189
|
+
enum: ["shutdown_request"],
|
|
190
|
+
description: "Structured message type for control flow. When set, routes through the mailbox instead of plain text delivery."
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
required: ["message"],
|
|
194
|
+
// Either a teammate recipient (`to`) or a background-task
|
|
195
|
+
// (`task_id`) must be specified — they correspond to the
|
|
196
|
+
// two routing modes. Letting the model send `{message}`
|
|
197
|
+
// alone wastes a round-trip on the runtime "Recipient is
|
|
198
|
+
// required" error.
|
|
199
|
+
oneOf: [{ required: ["to"] }, { required: ["task_id"] }],
|
|
200
|
+
additionalProperties: false
|
|
201
|
+
},
|
|
202
|
+
true,
|
|
203
|
+
// isOutputMarkdown
|
|
204
|
+
false,
|
|
205
|
+
// canUpdateOutput
|
|
206
|
+
true,
|
|
207
|
+
// shouldDefer — sending messages is infrequent
|
|
208
|
+
false,
|
|
209
|
+
// alwaysLoad
|
|
210
|
+
"send message task teammate team communicate notify"
|
|
211
|
+
);
|
|
212
|
+
this.config = config;
|
|
213
|
+
}
|
|
214
|
+
static {
|
|
215
|
+
__name(this, "SendMessageTool");
|
|
216
|
+
}
|
|
217
|
+
static Name = ToolNames.SEND_MESSAGE;
|
|
218
|
+
createInvocation(params) {
|
|
219
|
+
return new SendMessageInvocation(this.config, params);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Forward the routing fields and the message verbatim to the classifier —
|
|
223
|
+
* `to`/`task_id` identify the privileged sink and the `message` itself is
|
|
224
|
+
* the new instruction the recipient will execute, so the classifier needs
|
|
225
|
+
* the full text to evaluate the action's safety. `type` surfaces control
|
|
226
|
+
* messages (e.g. shutdown_request).
|
|
227
|
+
*/
|
|
228
|
+
toAutoClassifierInput(params) {
|
|
229
|
+
return {
|
|
230
|
+
to: params.to,
|
|
231
|
+
task_id: params.task_id,
|
|
232
|
+
message: params.message,
|
|
233
|
+
type: params.type
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
export {
|
|
238
|
+
SendMessageTool
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* @license
|
|
242
|
+
* Copyright 2025 Qwen
|
|
243
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
244
|
+
*/
|