@qwen-code/qwen-code 0.17.1 → 0.18.0-preview.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.
Files changed (120) hide show
  1. package/README.md +4 -6
  2. package/bundled/qc-helper/SKILL.md +30 -24
  3. package/bundled/qc-helper/docs/features/auto-mode.md +54 -9
  4. package/bundled/qc-helper/docs/features/commands.md +11 -11
  5. package/bundled/qc-helper/docs/features/markdown-rendering.md +21 -1
  6. package/bundled/qc-helper/docs/overview.md +4 -4
  7. package/bundled/qc-helper/docs/quickstart.md +4 -4
  8. package/bundled/qc-helper/docs/support/Uninstall.md +19 -1
  9. package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
  10. package/chunks/{agent-ZJHHICAC.js → agent-6J2FFD7S.js} +18 -22
  11. package/chunks/{anthropicContentGenerator-M45RXZVS.js → anthropicContentGenerator-4QBVSFSJ.js} +5 -5
  12. package/chunks/{askUserQuestion-TGRD7FNQ.js → askUserQuestion-NOOLRWCJ.js} +5 -7
  13. package/chunks/{ca-6RSCDYUS.js → ca-WRHFBIDH.js} +38 -3
  14. package/chunks/{chunk-C5CUHYSM.js → chunk-3H7ENG2Q.js} +821 -461
  15. package/chunks/{chunk-SOGUPKP6.js → chunk-5RNZ2QKF.js} +3 -5
  16. package/chunks/{chunk-GVWPJCXU.js → chunk-6VFG3EUJ.js} +1 -1
  17. package/chunks/{chunk-NQ3E7YLD.js → chunk-AVLOK27J.js} +42 -8
  18. package/chunks/{chunk-JBSYXHJF.js → chunk-BBTV54KB.js} +2 -2
  19. package/chunks/{chunk-X2474BTT.js → chunk-BPZQVC2P.js} +142 -9
  20. package/chunks/{chunk-2KEXT6RB.js → chunk-BUOJN3MM.js} +91245 -78527
  21. package/chunks/{chunk-3BJBCG2K.js → chunk-C6WMLUNB.js} +1 -1
  22. package/chunks/{chunk-TDZCEIK6.js → chunk-D46KOV3C.js} +1 -1
  23. package/chunks/{chunk-HX3JRTWL.js → chunk-F5ORN4YO.js} +1 -1
  24. package/chunks/{chunk-JKUAX6UT.js → chunk-G763GDO6.js} +125 -12
  25. package/chunks/{chunk-OIL7KDWV.js → chunk-GBEPNWYB.js} +1 -1
  26. package/chunks/{chunk-5JBZM7FZ.js → chunk-IKOMHTCC.js} +6 -6
  27. package/chunks/{chunk-G4K6P5KN.js → chunk-JMLIPZUU.js} +3 -3
  28. package/chunks/{chunk-OJFMTECH.js → chunk-JSYEZAYV.js} +2 -2
  29. package/chunks/{chunk-AKBFRR6J.js → chunk-K5PGHDBN.js} +132 -112
  30. package/chunks/{chunk-QVJ33ZBG.js → chunk-MVX64PNU.js} +1 -1
  31. package/chunks/{chunk-EY6BDW7Y.js → chunk-PLYZAP4W.js} +45 -9
  32. package/chunks/{chunk-ACBGEKB7.js → chunk-R5PDRHEF.js} +2 -1
  33. package/chunks/{chunk-6O244QKR.js → chunk-SCHRFI7O.js} +1 -1
  34. package/chunks/{chunk-GJHMAWS7.js → chunk-SHUT5MQY.js} +1 -1
  35. package/chunks/{chunk-RQW7WUJR.js → chunk-UABFCMPA.js} +34 -6
  36. package/chunks/{chunk-33RDTIU6.js → chunk-UFC57OYT.js} +3 -5
  37. package/chunks/{chunk-PLYRQYKC.js → chunk-UQZQP5PA.js} +11 -11
  38. package/chunks/{chunk-NP3ICQCN.js → chunk-USE2VQ5P.js} +1 -1
  39. package/chunks/{chunk-NJJER6E2.js → chunk-UXBKX55L.js} +10 -6
  40. package/chunks/{chunk-QWSRH265.js → chunk-WFVXF3OM.js} +776 -776
  41. package/chunks/{computer-use-NAHQPV2L.js → computer-use-6LZXL3UW.js} +51 -18
  42. package/chunks/contextCommand-ZV5QQ2LA.js +46 -0
  43. package/chunks/{cron-create-V3UK2SJN.js → cron-create-PIPMXQN4.js} +5 -7
  44. package/chunks/{cron-delete-MANALPCP.js → cron-delete-6Y5XIDMS.js} +5 -7
  45. package/chunks/{cron-list-UDIYK3B3.js → cron-list-A4WNRUWZ.js} +5 -7
  46. package/chunks/{de-APURNJ3I.js → de-M5RPB2NB.js} +38 -3
  47. package/chunks/{dist-XTTPOFAH.js → dist-BXDUQ2QY.js} +3 -4
  48. package/chunks/{dist-AHZNZWRI.js → dist-R2SXPG74.js} +4 -5
  49. package/chunks/{dist-ATAKC63R.js → dist-TE5QKMGR.js} +3 -4
  50. package/chunks/{dist-6RUZ2JD6.js → dist-ZMQ4TXD5.js} +3 -4
  51. package/chunks/{edit-JWXCQ4KK.js → edit-J7D6VMPQ.js} +22 -27
  52. package/chunks/{en-FYO57HJW.js → en-UMYKQAZE.js} +46 -3
  53. package/chunks/{enter-worktree-G4CJXPT4.js → enter-worktree-NDJTVGYJ.js} +20 -25
  54. package/chunks/{exit-worktree-MYZ2FGU2.js → exit-worktree-UB6XYYAX.js} +20 -25
  55. package/chunks/{exitPlanMode-ELJ6FSMU.js → exitPlanMode-V6X2KL4X.js} +20 -25
  56. package/chunks/{fr-32YHQZIS.js → fr-MPYXXXPW.js} +38 -3
  57. package/chunks/{geminiContentGenerator-3LR7MKCQ.js → geminiContentGenerator-3AKHMB3P.js} +5 -5
  58. package/chunks/{getMachineId-bsd-GS3V2GK7.js → getMachineId-bsd-F7GNPTER.js} +1 -1
  59. package/chunks/{getMachineId-darwin-ZQB4Q7EW.js → getMachineId-darwin-T73DJL27.js} +1 -1
  60. package/chunks/{getMachineId-linux-JQ4NN4DN.js → getMachineId-linux-MKQTFPQM.js} +1 -1
  61. package/chunks/{getMachineId-unsupported-U7H4V4HJ.js → getMachineId-unsupported-MUR5KOQE.js} +1 -1
  62. package/chunks/{getMachineId-win-VHUZGBQ3.js → getMachineId-win-CDYFC6ZM.js} +1 -1
  63. package/chunks/{glob-CANUAUTC.js → glob-PBG5DRG4.js} +20 -25
  64. package/chunks/{grep-WZWNJRDX.js → grep-VQ56EWQ7.js} +20 -25
  65. package/chunks/{ja-PEUXN4XT.js → ja-NFZ32AB3.js} +38 -3
  66. package/chunks/{keychain-token-storage-3552ENXE.js → keychain-token-storage-UHGOCDD6.js} +3 -3
  67. package/chunks/{ls-T4SVZWR6.js → ls-34DLNYCD.js} +6 -8
  68. package/chunks/{lsp-U4ZQLNIS.js → lsp-NCDEHH3V.js} +5 -7
  69. package/chunks/{monitor-CCKNOUFG.js → monitor-J3YCSOEH.js} +20 -25
  70. package/chunks/{notebook-edit-XDUY5Q4I.js → notebook-edit-AL3CBYJ6.js} +21 -26
  71. package/chunks/{openaiContentGenerator-N3O3MYIT.js → openaiContentGenerator-3U6UARHS.js} +12 -14
  72. package/chunks/{pt-2INS7YVC.js → pt-BR43FRBA.js} +38 -3
  73. package/chunks/{qwenContentGenerator-DEOIWKVH.js → qwenContentGenerator-JRFHJRH6.js} +20 -24
  74. package/chunks/{qwenOAuth2-LKXG7XVO.js → qwenOAuth2-KRJT35QH.js} +5 -5
  75. package/chunks/{read-file-BRNXGILN.js → read-file-ZF6EIVE3.js} +9 -11
  76. package/chunks/ripGrep-N2ZT7M6Z.js +42 -0
  77. package/chunks/{ru-6CQ5HNHB.js → ru-DQCW2KHD.js} +38 -3
  78. package/chunks/{scheduler-SSFABMN5.js → scheduler-OS37FUFT.js} +18 -22
  79. package/chunks/{send-message-GFYV7WLL.js → send-message-YYF56TS7.js} +5 -7
  80. package/chunks/{serve-B5O72CRN.js → serve-ABOLLDNN.js} +21 -25
  81. package/chunks/{shell-SGYNBVMK.js → shell-XGN7IDUS.js} +18 -22
  82. package/chunks/{skill-V7Y6DOFB.js → skill-YQQ6CR4U.js} +88 -25
  83. package/chunks/{src-OKFFQGXB.js → src-LORPPHWB.js} +86 -33
  84. package/chunks/{syntheticOutput-DM43O6TY.js → syntheticOutput-T5SWX3YF.js} +4 -5
  85. package/chunks/{task-stop-WKP5OB3V.js → task-stop-3VHAQMYM.js} +5 -7
  86. package/chunks/{todoWrite-GHL6DCLP.js → todoWrite-EAGJGKO5.js} +7 -9
  87. package/chunks/{tool-search-7MHT3HGM.js → tool-search-PDOJPXJJ.js} +27 -15
  88. package/chunks/{web-fetch-SZIV74ZX.js → web-fetch-SS6IKK6N.js} +7 -9
  89. package/chunks/{write-file-ARS2Z6BJ.js → write-file-VWWCN7LI.js} +23 -28
  90. package/chunks/{zh-ZHZCMIRG.js → zh-6VFXOAR5.js} +49 -3
  91. package/chunks/{zh-TW-SSL3ATVZ.js → zh-TW-IQZ4AD5M.js} +45 -3
  92. package/cli.js +8143 -4150
  93. package/examples/agent/agents/diary.md +86 -0
  94. package/examples/agent/qwen-extension.json +4 -0
  95. package/examples/commands/commands/fs/grep-code.md +3 -0
  96. package/examples/commands/qwen-extension.json +4 -0
  97. package/examples/context/QWEN.md +8 -0
  98. package/examples/context/qwen-extension.json +4 -0
  99. package/examples/mcp-server/example.ts +60 -0
  100. package/examples/mcp-server/package.json +18 -0
  101. package/examples/mcp-server/qwen-extension.json +11 -0
  102. package/examples/mcp-server/tsconfig.json +13 -0
  103. package/examples/skills/qwen-extension.json +4 -0
  104. package/examples/skills/skills/synonyms/SKILL.md +48 -0
  105. package/locales/ca.js +64 -4
  106. package/locales/de.js +63 -4
  107. package/locales/en.js +75 -4
  108. package/locales/fr.js +65 -4
  109. package/locales/ja.js +61 -4
  110. package/locales/pt.js +64 -4
  111. package/locales/ru.js +62 -4
  112. package/locales/zh-TW.js +70 -4
  113. package/locales/zh.js +74 -4
  114. package/package.json +3 -2
  115. package/chunks/chunk-24YKA2DA.js +0 -233
  116. package/chunks/chunk-6RQTH7UQ.js +0 -115
  117. package/chunks/chunk-7TQVELRB.js +0 -10412
  118. package/chunks/chunk-W57YDFU5.js +0 -41
  119. package/chunks/contextCommand-7KJT3UJS.js +0 -50
  120. package/chunks/ripGrep-ZRY5PKUZ.js +0 -46
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: diary-writer
3
+ description: generate a diary for user
4
+ color: yellow
5
+ tools:
6
+ - Glob
7
+ - Grep
8
+ - ListFiles
9
+ - ReadFile
10
+ - ReadManyFiles
11
+ - NotebookRead
12
+ - WebFetch
13
+ - TodoWrite
14
+ modelConfig:
15
+ model: qwen3-coder-plus
16
+ ---
17
+
18
+ You are a personal diary writing assistant who helps users capture their daily experiences, thoughts, and reflections in meaningful journal entries.
19
+
20
+ ## Core Mission
21
+
22
+ Help users create thoughtful, well-structured diary entries that preserve their memories, emotions, and personal growth moments.
23
+
24
+ ## Writing Style
25
+
26
+ **Tone & Voice**
27
+
28
+ - Warm, personal, and authentic
29
+ - Reflective and introspective
30
+ - Supportive without being overly sentimental
31
+ - Adapt to user's preferred style (casual, formal, poetic, etc.)
32
+
33
+ **Structure Options**
34
+
35
+ - Free-form narrative
36
+ - Bullet-point highlights
37
+ - Gratitude-focused entries
38
+ - Goal and achievement tracking
39
+ - Emotional processing format
40
+
41
+ ## Capabilities
42
+
43
+ **1. Daily Entry Creation**
44
+
45
+ - Transform user's brief notes into full diary entries
46
+ - Expand on key moments with descriptive details
47
+ - Add context about weather, mood, or setting when relevant
48
+ - Include meaningful quotes or observations
49
+
50
+ **2. Reflection Prompts**
51
+
52
+ - Ask thoughtful questions to deepen entries
53
+ - Suggest areas worth exploring further
54
+ - Help identify patterns in thoughts and behaviors
55
+ - Encourage gratitude and positive reflection
56
+
57
+ **3. Memory Enhancement**
58
+
59
+ - Help recall specific details from the day
60
+ - Connect current events to past experiences
61
+ - Highlight personal growth and progress
62
+ - Preserve important conversations or interactions
63
+
64
+ **4. Organization**
65
+
66
+ - Suggest tags or themes for entries
67
+ - Create summaries for weekly/monthly reviews
68
+ - Track recurring topics or goals
69
+ - Maintain consistency in formatting
70
+
71
+ ## Guidelines
72
+
73
+ - **Privacy First**: Treat all content as deeply personal and confidential
74
+ - **User's Voice**: Write in a way that sounds like the user, not generic
75
+ - **No Judgment**: Accept all emotions and experiences without criticism
76
+ - **Encourage Honesty**: Create a safe space for authentic expression
77
+ - **Balance**: Mix facts with feelings, events with reflections
78
+
79
+ ## Output Format
80
+
81
+ When creating a diary entry, include:
82
+
83
+ 1. **Date & Title** (optional creative title)
84
+ 2. **Main Content** - The narrative or bullet points
85
+ 3. **Reflection** - A brief closing thought or takeaway
86
+ 4. **Tags** (optional) - For organization and future reference
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "agent-example",
3
+ "version": "1.0.0"
4
+ }
@@ -0,0 +1,3 @@
1
+ Please summarize the findings for the pattern `{{args}}`.
2
+
3
+ Search Results:
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "commands-example",
3
+ "version": "1.0.0"
4
+ }
@@ -0,0 +1,8 @@
1
+ # Ink Library Screen Reader Guidance
2
+
3
+ When building custom components, it's important to keep accessibility in mind. While Ink provides the building blocks, ensuring your components are accessible will make your CLIs usable by a wider audience.
4
+
5
+ ## General Principles
6
+
7
+ Provide screen reader-friendly output: Use the useIsScreenReaderEnabled hook to detect if a screen reader is active. You can then render a more descriptive output for screen reader users.
8
+ Leverage ARIA props: For components that have a specific role (e.g., a checkbox or a button), use the aria-role, aria-state, and aria-label props on <Box> and <Text> to provide semantic meaning to screen readers.
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "context-example",
3
+ "version": "1.0.0"
4
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
9
+ import { z } from 'zod';
10
+
11
+ const server = new McpServer({
12
+ name: 'prompt-server',
13
+ version: '1.0.0',
14
+ });
15
+
16
+ server.registerTool(
17
+ 'fetch_posts',
18
+ {
19
+ description: 'Fetches a list of posts from a public API.',
20
+ inputSchema: z.object({}).shape,
21
+ },
22
+ async () => {
23
+ const apiResponse = await fetch(
24
+ 'https://jsonplaceholder.typicode.com/posts',
25
+ );
26
+ const posts = await apiResponse.json();
27
+ const response = { posts: posts.slice(0, 5) };
28
+ return {
29
+ content: [
30
+ {
31
+ type: 'text',
32
+ text: JSON.stringify(response),
33
+ },
34
+ ],
35
+ };
36
+ },
37
+ );
38
+
39
+ server.registerPrompt(
40
+ 'poem-writer',
41
+ {
42
+ title: 'Poem Writer',
43
+ description: 'Write a nice haiku',
44
+ argsSchema: { title: z.string(), mood: z.string().optional() },
45
+ },
46
+ ({ title, mood }) => ({
47
+ messages: [
48
+ {
49
+ role: 'user',
50
+ content: {
51
+ type: 'text',
52
+ text: `Write a haiku${mood ? ` with the mood ${mood}` : ''} called ${title}. Note that a haiku is 5 syllables followed by 7 syllables followed by 5 syllables `,
53
+ },
54
+ },
55
+ ],
56
+ }),
57
+ );
58
+
59
+ const transport = new StdioServerTransport();
60
+ await server.connect(transport);
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "mcp-server-example",
3
+ "version": "1.0.0",
4
+ "description": "Example MCP Server for Qwen Code Extension",
5
+ "type": "module",
6
+ "main": "example.js",
7
+ "scripts": {
8
+ "build": "tsc"
9
+ },
10
+ "devDependencies": {
11
+ "typescript": "~5.4.5",
12
+ "@types/node": "^20.11.25"
13
+ },
14
+ "dependencies": {
15
+ "@modelcontextprotocol/sdk": "^1.11.0",
16
+ "zod": "^3.22.4"
17
+ }
18
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "mcp-server-example",
3
+ "version": "1.0.0",
4
+ "mcpServers": {
5
+ "nodeServer": {
6
+ "command": "node",
7
+ "args": ["${extensionPath}${/}dist${/}example.js"],
8
+ "cwd": "${extensionPath}"
9
+ }
10
+ }
11
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "strict": true,
7
+ "esModuleInterop": true,
8
+ "skipLibCheck": true,
9
+ "forceConsistentCasingInFileNames": true,
10
+ "outDir": "./dist"
11
+ },
12
+ "include": ["example.ts"]
13
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "skills-example",
3
+ "version": "1.0.0"
4
+ }
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: synonyms
3
+ description: Generate synonyms for words or phrases. Use this skill when the user needs alternative words with similar meanings, wants to expand vocabulary, or seeks varied expressions for writing.
4
+ license: Complete terms in LICENSE.txt
5
+ ---
6
+
7
+ This skill helps generate synonyms and alternative expressions for given words or phrases. It provides contextually appropriate alternatives to enhance vocabulary and improve writing variety.
8
+
9
+ The user provides a word, phrase, or sentence where they need synonym suggestions. They may specify the context, tone, or formality level desired.
10
+
11
+ ## Synonym Generation Guidelines
12
+
13
+ When generating synonyms, consider:
14
+
15
+ - **Context**: The specific domain or situation where the word will be used
16
+ - **Tone**: Formal, informal, neutral, academic, conversational, etc.
17
+ - **Nuance**: Subtle differences in meaning between similar words
18
+ - **Register**: Appropriate level of formality for the intended audience
19
+
20
+ ## Output Format
21
+
22
+ For each input word or phrase, provide:
23
+
24
+ 1. **Direct Synonyms**: Words with nearly identical meanings
25
+ 2. **Related Alternatives**: Words with similar but slightly different connotations
26
+ 3. **Context Examples**: Brief usage examples when helpful
27
+
28
+ ## Best Practices
29
+
30
+ - Prioritize commonly used synonyms over obscure alternatives
31
+ - Note any subtle differences in meaning or usage
32
+ - Consider regional variations when relevant
33
+ - Indicate formality levels (formal/informal/neutral)
34
+ - Provide multiple options to give users choices
35
+
36
+ ## Example
37
+
38
+ **Input**: "happy"
39
+
40
+ **Synonyms**:
41
+
42
+ - **Direct**: joyful, cheerful, delighted, pleased, content
43
+ - **Informal**: thrilled, stoked, over the moon
44
+ - **Formal**: elated, gratified, blissful
45
+ - **Subtle variations**:
46
+ - _content_ - peaceful satisfaction
47
+ - _ecstatic_ - intense, overwhelming happiness
48
+ - _cheerful_ - outwardly expressing happiness
package/locales/ca.js CHANGED
@@ -109,7 +109,42 @@ export default {
109
109
  'Analitza el projecte i crea un fitxer QWEN.md personalitzat.',
110
110
  'List available Qwen Code tools. Usage: /tools [desc]':
111
111
  'Llistar les eines disponibles de Qwen Code. Ús: /tools [desc]',
112
- 'List available skills.': 'Llistar les habilitats disponibles.',
112
+ 'Open the skills panel (browse, search, toggle, pick).':
113
+ "Obrir el panell d'habilitats (explorar, cercar, activar, triar).",
114
+ 'Manage Skills': 'Gestionar habilitats',
115
+ 'Skills configuration saved.': "Configuració d'habilitats desada.",
116
+ 'Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.':
117
+ "Configuració d'habilitats desada, però l'actualització ha fallat: {{error}}. Reinicia per assegurar-te que el nou estat s'apliqui.",
118
+ 'Workspace is untrusted; workspace settings are ignored by the merged config. Run /trust first to persist skills changes here, or edit ~/.qwen/settings.json directly to manage skills at user scope.':
119
+ "L'espai de treball no és de confiança; els paràmetres de l'espai de treball s'ignoren a la configuració fusionada. Executa /trust primer, o edita ~/.qwen/settings.json directament per gestionar habilitats a l'àmbit d'usuari.",
120
+ 'SkillManager not available.': 'SkillManager no disponible.',
121
+ 'Loading skills…': 'Carregant habilitats…',
122
+ 'Failed to load skills: {{error}}':
123
+ 'No s’han pogut carregar les habilitats: {{error}}',
124
+ 'Failed to save skills configuration: {{error}}':
125
+ "No s'ha pogut desar la configuració d'habilitats: {{error}}",
126
+ 'All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.':
127
+ 'Totes les habilitats disponibles estan desactivades. Edita ~/.qwen/settings.json o .qwen/settings.json (skills.disabled) per tornar-les a activar.',
128
+ 'Press esc to close.': 'Prem Esc per tancar.',
129
+ '{{count}} skills · ': '{{count}} habilitats · ',
130
+ '{{matched}} / {{total}} skills · ': '{{matched}} / {{total}} habilitats · ',
131
+ 'Space toggle · Enter pick (fill input) · Esc save & exit · workspace scope':
132
+ "Espai alternar · Enter triar (omple l'entrada) · Esc desar i sortir · àmbit d'espai de treball",
133
+ 'Search:': 'Cerca:',
134
+ 'type to filter…': 'escriu per filtrar…',
135
+ 'No skills are currently available.':
136
+ 'No hi ha habilitats disponibles actualment.',
137
+ 'All available skills are locked at a higher scope (see below).':
138
+ 'Totes les habilitats disponibles estan bloquejades en un àmbit superior (veure a sota).',
139
+ 'No skills match the search.': 'Cap habilitat coincideix amb la cerca.',
140
+ 'Locked by higher-scope settings (cannot toggle here):':
141
+ "Bloquejades per paràmetres d'àmbit superior (aquí no es poden commutar):",
142
+ 'higher scope': 'àmbit superior',
143
+ ' {{name}} {{description}} [locked: {{scope}}]':
144
+ ' {{name}} {{description}} [bloquejada: {{scope}}]',
145
+ '↑/↓ navigate · backspace edits search':
146
+ '↑/↓ navega · Retrocés edita la cerca',
147
+ Bundled: 'Integrada',
113
148
  'Available Qwen Code CLI tools:': 'Eines del CLI de Qwen Code disponibles:',
114
149
  'No tools available': 'No hi ha eines disponibles',
115
150
  'View or change the approval mode for tool usage':
@@ -192,8 +227,8 @@ export default {
192
227
  'obrir la documentació completa de Qwen Code al navegador',
193
228
  'Configuration not available.': 'Configuració no disponible.',
194
229
  'Connect an LLM provider': 'Connectar un proveïdor LLM',
195
- 'Copy the last result or code snippet to clipboard':
196
- "Copiar l'últim resultat o fragment de codi al porta-retalls",
230
+ 'Copy the last AI response to clipboard (/copy N for Nth-latest)':
231
+ "Copia l'última resposta de la IA al porta-retalls (/copy N per a l'N-èsima)",
197
232
 
198
233
  // ============================================================================
199
234
  // Ordres - Agents
@@ -715,6 +750,8 @@ export default {
715
750
  'After tool execution fails': "Quan falla l'execució de l'eina",
716
751
  'When notifications are sent': "Quan s'envien notificacions",
717
752
  'When the user submits a prompt': "Quan l'usuari envia un missatge",
753
+ 'When a slash command expands into a prompt':
754
+ "Quan una ordre de barra s'expandeix en un missatge",
718
755
  'When a new session is started': "Quan s'inicia una nova sessió",
719
756
  'Right before Qwen Code concludes its response':
720
757
  'Immediatament abans que Qwen Code conclou la seva resposta',
@@ -736,6 +773,8 @@ export default {
736
773
  "L'entrada a l'ordre és JSON amb el missatge de notificació i el tipus.",
737
774
  'Input to command is JSON with original user prompt text.':
738
775
  "L'entrada a l'ordre és JSON amb el text original del missatge de l'usuari.",
776
+ 'Input to command is JSON with command_name, command_args, and expanded prompt text.':
777
+ "L'entrada a l'ordre és JSON amb command_name, command_args i el text del missatge expandit.",
739
778
  'Input to command is JSON with session start source.':
740
779
  "L'entrada a l'ordre és JSON amb la font d'inici de sessió.",
741
780
  'Input to command is JSON with session end reason.':
@@ -759,6 +798,8 @@ export default {
759
798
  "mostrar stderr només a l'usuari però continuar amb la crida a l'eina",
760
799
  'block processing, erase original prompt, and show stderr to user only':
761
800
  "blocar el processament, esborrar el missatge original i mostrar stderr només a l'usuari",
801
+ 'block expanded prompt submission and show stderr to user only':
802
+ "blocar l'enviament del missatge expandit i mostrar stderr només a l'usuari",
762
803
  'stdout shown to Qwen': 'stdout mostrat a Qwen',
763
804
  'show stderr to user only (blocking errors ignored)':
764
805
  "mostrar stderr només a l'usuari (errors de bloqueig ignorats)",
@@ -798,6 +839,24 @@ export default {
798
839
  'Resume a previous session': 'Reprendre una sessió anterior',
799
840
  'Fork the current conversation into a new session':
800
841
  'Bifurca la conversa actual en una sessió nova',
842
+ 'Spawn a background agent that inherits the full conversation':
843
+ 'Inicia un agent en segon pla que hereta tota la conversa',
844
+ 'Please provide a directive. Usage: /fork <directive>':
845
+ 'Proporcioneu una directiva. Ús: /fork <directiva>',
846
+ 'Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.':
847
+ "No es pot crear una bifurcació mentre hi ha una resposta o una crida a una eina en curs. Espereu que acabi o resolgueu la crida a l'eina pendent.",
848
+ 'Cannot fork before the first conversation turn.':
849
+ 'No es pot crear una bifurcació abans del primer torn de conversa.',
850
+ 'The /fork command requires the fork feature gate. Set QWEN_CODE_ENABLE_FORK_SUBAGENT=1 to enable it.':
851
+ 'L’ordre /fork requereix el feature gate de fork. Definiu QWEN_CODE_ENABLE_FORK_SUBAGENT=1 per activar-lo.',
852
+ 'The agent tool is unavailable; cannot fork.':
853
+ "L'eina d'agent no està disponible; no es pot crear una bifurcació.",
854
+ 'Failed to launch fork: {{error}}':
855
+ 'No s’ha pogut iniciar la bifurcació: {{error}}',
856
+ 'User launched a background fork via /fork: {{directive}}':
857
+ "L'usuari ha iniciat una bifurcació en segon pla amb /fork: {{directive}}",
858
+ 'Forked into a background agent. It inherits this conversation and runs without blocking — track it in the background tasks panel; it reports back when done.':
859
+ "S'ha bifurcat a un agent en segon pla. Hereta aquesta conversa i s'executa sense bloquejar — feu-ne el seguiment al tauler de tasques en segon pla; informarà quan acabi.",
801
860
  'Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.':
802
861
  "No es pot bifurcar mentre hi ha una resposta o una crida a una eina en curs. Espereu que acabi o resolgueu la crida a l'eina pendent.",
803
862
  'No conversation to branch.': 'No hi ha cap conversa per bifurcar.',
@@ -846,13 +905,14 @@ export default {
846
905
  // Ordres - Mode d'aprovació
847
906
  // ============================================================================
848
907
  'Tool Approval Mode': "Mode d'aprovació d'eines",
849
- '{{mode}} mode': 'Mode {{mode}}',
850
908
  'Analyze only, do not modify files or execute commands':
851
909
  'Analitzar només, sense modificar fitxers ni executar ordres',
852
910
  'Require approval for file edits or shell commands':
853
911
  'Requerir aprovació per a edicions de fitxers o ordres shell',
854
912
  'Automatically approve file edits':
855
913
  'Aprovar automàticament les edicions de fitxers',
914
+ 'Use classifier to automatically approve safe tool calls':
915
+ 'Utilitzar el classificador per aprovar automàticament les crides segures a eines',
856
916
  'Automatically approve all tools': 'Aprovar automàticament totes les eines',
857
917
  'Workspace approval mode exists and takes priority. User-level change will have no effect.':
858
918
  "Existeix un mode d'aprovació de l'espai de treball i té prioritat. El canvi a nivell d'usuari no tindrà cap efecte.",
package/locales/de.js CHANGED
@@ -91,7 +91,41 @@ export default {
91
91
  'Analysiert das Projekt und erstellt eine maßgeschneiderte QWEN.md-Datei.',
92
92
  'List available Qwen Code tools. Usage: /tools [desc]':
93
93
  'Verfügbare Qwen Code Werkzeuge auflisten. Verwendung: /tools [desc]',
94
- 'List available skills.': 'Verfügbare Skills auflisten.',
94
+ 'Open the skills panel (browse, search, toggle, pick).':
95
+ 'Skills-Panel öffnen (durchsuchen, suchen, ein/aus, auswählen).',
96
+ 'Manage Skills': 'Skills verwalten',
97
+ 'Skills configuration saved.': 'Skills-Konfiguration gespeichert.',
98
+ 'Skills configuration saved, but refresh failed: {{error}}. Restart to ensure the new state is applied.':
99
+ 'Skills-Konfiguration gespeichert, aber Aktualisierung fehlgeschlagen: {{error}}. Bitte neu starten, um den neuen Zustand zu übernehmen.',
100
+ 'Workspace is untrusted; workspace settings are ignored by the merged config. Run /trust first to persist skills changes here, or edit ~/.qwen/settings.json directly to manage skills at user scope.':
101
+ 'Arbeitsbereich ist nicht vertrauenswürdig; Arbeitsbereichseinstellungen werden in der zusammengeführten Konfiguration ignoriert. Führe zuerst /trust aus oder bearbeite ~/.qwen/settings.json direkt, um Skills auf Benutzerebene zu verwalten.',
102
+ 'SkillManager not available.': 'SkillManager nicht verfügbar.',
103
+ 'Loading skills…': 'Skills werden geladen…',
104
+ 'Failed to load skills: {{error}}':
105
+ 'Skills konnten nicht geladen werden: {{error}}',
106
+ 'Failed to save skills configuration: {{error}}':
107
+ 'Speichern der Skill-Konfiguration fehlgeschlagen: {{error}}',
108
+ 'All available skills are disabled. Edit ~/.qwen/settings.json or .qwen/settings.json (skills.disabled) to re-enable.':
109
+ 'Alle verfügbaren Skills sind deaktiviert. Bearbeite ~/.qwen/settings.json oder .qwen/settings.json (skills.disabled), um sie wieder zu aktivieren.',
110
+ 'Press esc to close.': 'Esc drücken, um zu schließen.',
111
+ '{{count}} skills · ': '{{count}} Skills · ',
112
+ '{{matched}} / {{total}} skills · ': '{{matched}} / {{total}} Skills · ',
113
+ 'Space toggle · Enter pick (fill input) · Esc save & exit · workspace scope':
114
+ 'Leertaste umschalten · Enter auswählen (in Eingabe) · Esc speichern & beenden · Arbeitsbereich',
115
+ 'Search:': 'Suche:',
116
+ 'type to filter…': 'Tippen zum Filtern…',
117
+ 'No skills are currently available.': 'Derzeit sind keine Skills verfügbar.',
118
+ 'All available skills are locked at a higher scope (see below).':
119
+ 'Alle verfügbaren Skills sind in einer höheren Ebene gesperrt (siehe unten).',
120
+ 'No skills match the search.': 'Keine Skills passen zur Suche.',
121
+ 'Locked by higher-scope settings (cannot toggle here):':
122
+ 'Gesperrt durch Einstellungen einer höheren Ebene (kann hier nicht umgeschaltet werden):',
123
+ 'higher scope': 'höhere Ebene',
124
+ ' {{name}} {{description}} [locked: {{scope}}]':
125
+ ' {{name}} {{description}} [gesperrt: {{scope}}]',
126
+ '↑/↓ navigate · backspace edits search':
127
+ '↑/↓ navigieren · Rücktaste bearbeitet Suche',
128
+ Bundled: 'Mitgeliefert',
95
129
  'Available Qwen Code CLI tools:': 'Verfügbare Qwen Code CLI-Werkzeuge:',
96
130
  'No tools available': 'Keine Werkzeuge verfügbar',
97
131
  'View or change the approval mode for tool usage':
@@ -171,8 +205,8 @@ export default {
171
205
  'Vollständige Qwen Code Dokumentation im Browser öffnen',
172
206
  'Configuration not available.': 'Konfiguration nicht verfügbar.',
173
207
  'Connect an LLM provider': 'LLM-Anbieter verbinden',
174
- 'Copy the last result or code snippet to clipboard':
175
- 'Letztes Ergebnis oder Codeausschnitt in die Zwischenablage kopieren',
208
+ 'Copy the last AI response to clipboard (/copy N for Nth-latest)':
209
+ 'Letzte KI-Antwort in die Zwischenablage kopieren (/copy N für die N-letzte)',
176
210
 
177
211
  // ============================================================================
178
212
  // Commands - Agents
@@ -654,6 +688,8 @@ export default {
654
688
  'After tool execution fails': 'Wenn die Tool-Ausführung fehlschlägt',
655
689
  'When notifications are sent': 'Wenn Benachrichtigungen gesendet werden',
656
690
  'When the user submits a prompt': 'Wenn der Benutzer einen Prompt absendet',
691
+ 'When a slash command expands into a prompt':
692
+ 'Wenn ein Slash-Befehl zu einem Prompt erweitert wird',
657
693
  'When a new session is started': 'Wenn eine neue Sitzung gestartet wird',
658
694
  'Right before Qwen Code concludes its response':
659
695
  'Direkt bevor Qwen Code seine Antwort abschließt',
@@ -680,6 +716,8 @@ export default {
680
716
  'Die Eingabe an den Befehl ist JSON mit Benachrichtigungsnachricht und -typ.',
681
717
  'Input to command is JSON with original user prompt text.':
682
718
  'Die Eingabe an den Befehl ist JSON mit dem ursprünglichen Benutzer-Prompt-Text.',
719
+ 'Input to command is JSON with command_name, command_args, and expanded prompt text.':
720
+ 'Die Eingabe an den Befehl ist JSON mit command_name, command_args und erweitertem Prompt-Text.',
683
721
  'Input to command is JSON with session start source.':
684
722
  'Die Eingabe an den Befehl ist JSON mit der Sitzungsstart-Quelle.',
685
723
  'Input to command is JSON with session end reason.':
@@ -708,6 +746,8 @@ export default {
708
746
  'stderr nur dem Benutzer anzeigen, aber mit Tool-Aufruf fortfahren',
709
747
  'block processing, erase original prompt, and show stderr to user only':
710
748
  'Verarbeitung blockieren, ursprünglichen Prompt löschen und stderr nur dem Benutzer anzeigen',
749
+ 'block expanded prompt submission and show stderr to user only':
750
+ 'Einreichen des erweiterten Prompts blockieren und stderr nur dem Benutzer anzeigen',
711
751
  'stdout shown to Qwen': 'stdout dem Qwen anzeigen',
712
752
  'show stderr to user only (blocking errors ignored)':
713
753
  'stderr nur dem Benutzer anzeigen (Blockierungsfehler ignoriert)',
@@ -756,6 +796,24 @@ export default {
756
796
  'Resume a previous session': 'Eine vorherige Sitzung fortsetzen',
757
797
  'Fork the current conversation into a new session':
758
798
  'Die aktuelle Unterhaltung in eine neue Sitzung verzweigen',
799
+ 'Spawn a background agent that inherits the full conversation':
800
+ 'Einen Hintergrund-Agenten starten, der die gesamte Unterhaltung übernimmt',
801
+ 'Please provide a directive. Usage: /fork <directive>':
802
+ 'Bitte geben Sie eine Anweisung an. Verwendung: /fork <Anweisung>',
803
+ 'Cannot fork while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.':
804
+ 'Während eine Antwort oder ein Tool-Aufruf läuft, kann kein Hintergrund-Fork erstellt werden. Warten Sie, bis der Vorgang abgeschlossen ist, oder bearbeiten Sie den ausstehenden Tool-Aufruf.',
805
+ 'Cannot fork before the first conversation turn.':
806
+ 'Vor der ersten Gesprächsrunde kann kein Fork erstellt werden.',
807
+ 'The /fork command requires the fork feature gate. Set QWEN_CODE_ENABLE_FORK_SUBAGENT=1 to enable it.':
808
+ 'Der Befehl /fork erfordert das Fork-Feature-Gate. Setzen Sie QWEN_CODE_ENABLE_FORK_SUBAGENT=1, um es zu aktivieren.',
809
+ 'The agent tool is unavailable; cannot fork.':
810
+ 'Das Agent-Tool ist nicht verfügbar; Fork kann nicht gestartet werden.',
811
+ 'Failed to launch fork: {{error}}':
812
+ 'Fork konnte nicht gestartet werden: {{error}}',
813
+ 'User launched a background fork via /fork: {{directive}}':
814
+ 'Benutzer hat über /fork einen Hintergrund-Fork gestartet: {{directive}}',
815
+ 'Forked into a background agent. It inherits this conversation and runs without blocking — track it in the background tasks panel; it reports back when done.':
816
+ 'In einen Hintergrund-Agenten verzweigt. Er übernimmt diese Unterhaltung und läuft ohne zu blockieren — verfolgen Sie ihn im Hintergrundaufgaben-Panel; er meldet sich nach Abschluss zurück.',
759
817
  'Cannot branch while a response or tool call is in progress. Wait for it to finish or resolve the pending tool call.':
760
818
  'Während eine Antwort oder ein Tool-Aufruf läuft, kann keine Verzweigung erstellt werden. Warten Sie, bis der Vorgang abgeschlossen ist, oder bearbeiten Sie den ausstehenden Tool-Aufruf.',
761
819
  'No conversation to branch.': 'Keine Unterhaltung zum Verzweigen vorhanden.',
@@ -803,13 +861,14 @@ export default {
803
861
  // Commands - Approval Mode
804
862
  // ============================================================================
805
863
  'Tool Approval Mode': 'Werkzeug-Genehmigungsmodus',
806
- '{{mode}} mode': '{{mode}}-Modus',
807
864
  'Analyze only, do not modify files or execute commands':
808
865
  'Nur analysieren, keine Dateien ändern oder Befehle ausführen',
809
866
  'Require approval for file edits or shell commands':
810
867
  'Genehmigung für Dateibearbeitungen oder Shell-Befehle erforderlich',
811
868
  'Automatically approve file edits':
812
869
  'Dateibearbeitungen automatisch genehmigen',
870
+ 'Use classifier to automatically approve safe tool calls':
871
+ 'Klassifikator verwenden, um sichere Werkzeugaufrufe automatisch zu genehmigen',
813
872
  'Automatically approve all tools': 'Alle Werkzeuge automatisch genehmigen',
814
873
  'Workspace approval mode exists and takes priority. User-level change will have no effect.':
815
874
  'Arbeitsbereich-Genehmigungsmodus existiert und hat Vorrang. Benutzerebene-Änderung hat keine Wirkung.',