@tencent-ai/codebuddy-code 2.38.2 → 2.39.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencent-ai/codebuddy-code",
3
- "version": "2.38.2",
3
+ "version": "2.39.0",
4
4
  "description": "Use CodeBuddy, Tencent's AI assistant, right from your terminal. CodeBuddy can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.",
5
5
  "main": "lib/node/index.js",
6
6
  "typings": "lib/node/index.d.ts",
@@ -40,7 +40,8 @@
40
40
  "Skill",
41
41
  "AskUserQuestion",
42
42
  "LSP",
43
- "StructuredOutput"
43
+ "StructuredOutput",
44
+ "ImageGen"
44
45
  ],
45
46
  "tags": [
46
47
  "cli",
@@ -307,6 +308,13 @@
307
308
  "summary": "auto"
308
309
  },
309
310
  "maxAllowedSize": 256000
311
+ },
312
+ {
313
+ "id": "hunyuan-image-v3.0",
314
+ "name": "Hunyuan Image V3",
315
+ "tags": [
316
+ "text-to-image"
317
+ ]
310
318
  }
311
319
  ],
312
320
  "links": {
@@ -321,8 +329,9 @@
321
329
  },
322
330
  "productFeatures": {
323
331
  "BillingNotice": false,
324
- "CustomModelsJSON": true
332
+ "CustomModelsJSON": true,
333
+ "ImageGen": true
325
334
  },
326
- "commit": "e28eda3a1e0261ba889b16c2a413e1a2ef836010",
327
- "date": "2026-01-26T04:15:24.582Z"
335
+ "commit": "ede9ffa76656871a489254ec7a4b3259aeeac8af",
336
+ "date": "2026-01-26T13:52:35.273Z"
328
337
  }
@@ -42,7 +42,8 @@
42
42
  "Skill",
43
43
  "AskUserQuestion",
44
44
  "LSP",
45
- "StructuredOutput"
45
+ "StructuredOutput",
46
+ "ImageGen"
46
47
  ],
47
48
  "tags": [
48
49
  "cli",
@@ -309,6 +310,13 @@
309
310
  "summary": "auto"
310
311
  },
311
312
  "maxAllowedSize": 256000
313
+ },
314
+ {
315
+ "id": "hunyuan-image-v3.0",
316
+ "name": "Hunyuan Image V3",
317
+ "tags": [
318
+ "text-to-image"
319
+ ]
312
320
  }
313
321
  ],
314
322
  "links": {
@@ -323,8 +331,9 @@
323
331
  },
324
332
  "productFeatures": {
325
333
  "BillingNotice": false,
326
- "CustomModelsJSON": true
334
+ "CustomModelsJSON": true,
335
+ "ImageGen": true
327
336
  },
328
- "commit": "e28eda3a1e0261ba889b16c2a413e1a2ef836010",
329
- "date": "2026-01-26T04:15:21.995Z"
337
+ "commit": "ede9ffa76656871a489254ec7a4b3259aeeac8af",
338
+ "date": "2026-01-26T13:52:32.462Z"
330
339
  }
package/product.ioa.json CHANGED
@@ -56,7 +56,8 @@
56
56
  "Skill",
57
57
  "AskUserQuestion",
58
58
  "LSP",
59
- "StructuredOutput"
59
+ "StructuredOutput",
60
+ "ImageGen"
60
61
  ],
61
62
  "tags": [
62
63
  "cli",
@@ -474,6 +475,13 @@
474
475
  "supportsImages": true,
475
476
  "supportsReasoning": true,
476
477
  "maxAllowedSize": 400000
478
+ },
479
+ {
480
+ "id": "hunyuan-image-v3.0",
481
+ "name": "Hunyuan Image V3",
482
+ "tags": [
483
+ "text-to-image"
484
+ ]
477
485
  }
478
486
  ],
479
487
  "links": {
@@ -488,8 +496,9 @@
488
496
  },
489
497
  "productFeatures": {
490
498
  "BillingNotice": false,
491
- "CustomModelsJSON": true
499
+ "CustomModelsJSON": true,
500
+ "ImageGen": true
492
501
  },
493
- "commit": "e28eda3a1e0261ba889b16c2a413e1a2ef836010",
494
- "date": "2026-01-26T04:15:23.272Z"
502
+ "commit": "ede9ffa76656871a489254ec7a4b3259aeeac8af",
503
+ "date": "2026-01-26T13:52:33.881Z"
495
504
  }
package/product.json CHANGED
@@ -426,7 +426,7 @@
426
426
  },
427
427
  {
428
428
  "name": "tool-enterplanmode-description",
429
- "template": "Use this tool proactively when you're about to start a non-trivial implementation task. Getting user sign-off on your approach before writing code prevents wasted effort and ensures alignment. This tool transitions you into plan mode where you can explore the codebase and design an implementation approach for user approval.\n\n## When to Use This Tool\n\n**Prefer using EnterPlanMode** for implementation tasks unless they're simple. Use it when ANY of these conditions apply:\n\n1. **New Feature Implementation**: Adding meaningful new functionality\n - Example: \\\"Add a logout button\\\" - where should it go? What should happen on click?\n - Example: \\\"Add form validation\\\" - what rules? What error messages?\n\n2. **Multiple Valid Approaches**: The task can be solved in several different ways\n - Example: \\\"Add caching to the API\\\" - could use Redis, in-memory, file-based, etc.\n - Example: \\\"Improve performance\\\" - many optimization strategies possible\n\n3. **Code Modifications**: Changes that affect existing behavior or structure\n - Example: \\\"Update the login flow\\\" - what exactly should change?\n - Example: \\\"Refactor this component\\\" - what's the target architecture?\n\n4. **Architectural Decisions**: The task requires choosing between patterns or technologies\n - Example: \\\"Add real-time updates\\\" - WebSockets vs SSE vs polling\n - Example: \\\"Implement state management\\\" - Redux vs Context vs custom solution\n\n5. **Multi-File Changes**: The task will likely touch more than 2-3 files\n - Example: \\\"Refactor the authentication system\\\"\n - Example: \\\"Add a new API endpoint with tests\\\"\n\n6. **Unclear Requirements**: You need to explore before understanding the full scope\n - Example: \\\"Make the app faster\\\" - need to profile and identify bottlenecks\n - Example: \\\"Fix the bug in checkout\\\" - need to investigate root cause\n\n7. **User Preferences Matter**: The implementation could reasonably go multiple ways\n - If you would use AskUserQuestion to clarify the approach, use EnterPlanMode instead\n - Plan mode lets you explore first, then present options with context\n\n## When NOT to Use This Tool\n\nOnly skip EnterPlanMode for simple tasks:\n- Single-line or few-line fixes (typos, obvious bugs, small tweaks)\n- Adding a single function with clear requirements\n- Tasks where the user has given very specific, detailed instructions\n- Pure research/exploration tasks (use the Task tool with explore agent instead)\n\n## What Happens in Plan Mode\n\nIn plan mode, you'll:\n1. Thoroughly explore the codebase using Glob, Grep, and Read tools\n2. Understand existing patterns and architecture\n3. Design an implementation approach\n4. Present your plan to the user for approval\n5. Use AskUserQuestion if you need to clarify approaches\n6. Exit plan mode with ExitPlanMode when ready to implement\n\n## Examples\n\n### GOOD - Use EnterPlanMode:\nUser: \\\"Add user authentication to the app\\\"\n- Requires architectural decisions (session vs JWT, where to store tokens, middleware structure)\n\nUser: \\\"Optimize the database queries\\\"\n- Multiple approaches possible, need to profile first, significant impact\n\nUser: \\\"Implement dark mode\\\"\n- Architectural decision on theme system, affects many components\n\nUser: \\\"Add a delete button to the user profile\\\"\n- Seems simple but involves: where to place it, confirmation dialog, API call, error handling, state updates\n\nUser: \\\"Update the error handling in the API\\\"\n- Affects multiple files, user should approve the approach\n\n### BAD - Don't use EnterPlanMode:\nUser: \\\"Fix the typo in the README\\\"\n- Straightforward, no planning needed\n\nUser: \\\"Add a console.log to debug this function\\\"\n- Simple, obvious implementation\n\nUser: \\\"What files handle routing?\\\"\n- Research task, not implementation planning\n\n## Important Notes\n\n- This tool REQUIRES user approval - they must consent to entering plan mode\n- If unsure whether to use it, err on the side of planning - it's better to get alignment upfront than to redo work\n- Users appreciate being consulted before significant changes are made to their codebase\n"
429
+ "template": "Use this tool proactively when you're about to start a non-trivial implementation task. Getting user sign-off on your approach before writing code prevents wasted effort and ensures alignment. This tool transitions you into plan mode where you can explore the codebase and design an implementation approach for user approval.\n\n## When to Use This Tool\n\n**Prefer using EnterPlanMode** for implementation tasks unless they're simple. Use it when ANY of these conditions apply:\n\n1. **New Feature Implementation**: Adding meaningful new functionality\n - Example: \"Add a logout button\" - where should it go? What should happen on click?\n - Example: \"Add form validation\" - what rules? What error messages?\n\n2. **Multiple Valid Approaches**: The task can be solved in several different ways\n - Example: \"Add caching to the API\" - could use Redis, in-memory, file-based, etc.\n - Example: \"Improve performance\" - many optimization strategies possible\n\n3. **Code Modifications**: Changes that affect existing behavior or structure\n - Example: \"Update the login flow\" - what exactly should change?\n - Example: \"Refactor this component\" - what's the target architecture?\n\n4. **Architectural Decisions**: The task requires choosing between patterns or technologies\n - Example: \"Add real-time updates\" - WebSockets vs SSE vs polling\n - Example: \"Implement state management\" - Redux vs Context vs custom solution\n\n5. **Multi-File Changes**: The task will likely touch more than 2-3 files\n - Example: \"Refactor the authentication system\"\n - Example: \"Add a new API endpoint with tests\"\n\n6. **Unclear Requirements**: You need to explore before understanding the full scope\n - Example: \"Make the app faster\" - need to profile and identify bottlenecks\n - Example: \"Fix the bug in checkout\" - need to investigate root cause\n\n7. **User Preferences Matter**: The implementation could reasonably go multiple ways\n - If you would use AskUserQuestion to clarify the approach, use EnterPlanMode instead\n - Plan mode lets you explore first, then present options with context\n\n## When NOT to Use This Tool\n\nOnly skip EnterPlanMode for simple tasks:\n- Single-line or few-line fixes (typos, obvious bugs, small tweaks)\n- Adding a single function with clear requirements\n- Tasks where the user has given very specific, detailed instructions\n- Pure research/exploration tasks (use the Task tool with explore agent instead)\n\n## What Happens in Plan Mode\n\nIn plan mode, you'll:\n1. Thoroughly explore the codebase using Glob, Grep, and Read tools\n2. Understand existing patterns and architecture\n3. Design an implementation approach\n4. Present your plan to the user for approval\n5. Use AskUserQuestion if you need to clarify approaches\n6. Exit plan mode with ExitPlanMode when ready to implement\n\n## Examples\n\n### GOOD - Use EnterPlanMode:\nUser: \"Add user authentication to the app\"\n- Requires architectural decisions (session vs JWT, where to store tokens, middleware structure)\n\nUser: \"Optimize the database queries\"\n- Multiple approaches possible, need to profile first, significant impact\n\nUser: \"Implement dark mode\"\n- Architectural decision on theme system, affects many components\n\nUser: \"Add a delete button to the user profile\"\n- Seems simple but involves: where to place it, confirmation dialog, API call, error handling, state updates\n\nUser: \"Update the error handling in the API\"\n- Affects multiple files, user should approve the approach\n\n### BAD - Don't use EnterPlanMode:\nUser: \"Fix the typo in the README\"\n- Straightforward, no planning needed\n\nUser: \"Add a console.log to debug this function\"\n- Simple, obvious implementation\n\nUser: \"What files handle routing?\"\n- Research task, not implementation planning\n\n## Important Notes\n\n- This tool REQUIRES user approval - they must consent to entering plan mode\n- If unsure whether to use it, err on the side of planning - it's better to get alignment upfront than to redo work\n- Users appreciate being consulted before significant changes are made to their codebase\n"
430
430
  },
431
431
  {
432
432
  "name": "tool-enterplanmode-rejected",
@@ -438,7 +438,7 @@
438
438
  },
439
439
  {
440
440
  "name": "tool-exit-planmode-description",
441
- "template": "Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval.\n\n## How This Tool Works\n- You should have already written your plan to the plan file specified in the plan mode system message\n- This tool does NOT take the plan content as a parameter - it will read the plan from the file you wrote\n- This tool simply signals that you're done planning and ready for the user to review and approve\n- The user will see the contents of your plan file when they review it\n\n## When to Use This Tool\nIMPORTANT: Only use this tool when the task requires planning the implementation steps of a task that requires writing code. For research tasks where you're gathering information, searching files, reading files or in general trying to understand the codebase - do NOT use this tool.\n\n## Handling Ambiguity in Plans\nBefore using this tool, ensure your plan is clear and unambiguous. If there are multiple valid approaches or unclear requirements:\n1. Use the AskUserQuestion tool to clarify with the user\n2. Ask about specific implementation choices (e.g., architectural patterns, which library to use)\n3. Clarify any assumptions that could affect the implementation\n4. Edit your plan file to incorporate user feedback\n5. Only proceed with ExitPlanMode after resolving ambiguities and updating the plan file\n\n## Examples\n\n1. Initial task: \\\"Search for and understand the implementation of vim mode in the codebase\\\" - Do not use the exit plan mode tool because you are not planning the implementation steps of a task.\n2. Initial task: \\\"Help me implement yank mode for vim\\\" - Use the exit plan mode tool after you have finished planning the implementation steps of the task.\n3. Initial task: \\\"Add a new feature to handle user authentication\\\" - If unsure about auth method (OAuth, JWT, etc.), use AskUserQuestion first, then use exit plan mode tool after clarifying the approach.\n"
441
+ "template": "Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval.\n\n## How This Tool Works\n- You should have already written your plan to the plan file specified in the plan mode system message\n- This tool does NOT take the plan content as a parameter - it will read the plan from the file you wrote\n- This tool simply signals that you're done planning and ready for the user to review and approve\n- The user will see the contents of your plan file when they review it\n\n## When to Use This Tool\nIMPORTANT: Only use this tool when the task requires planning the implementation steps of a task that requires writing code. For research tasks where you're gathering information, searching files, reading files or in general trying to understand the codebase - do NOT use this tool.\n\n## Handling Ambiguity in Plans\nBefore using this tool, ensure your plan is clear and unambiguous. If there are multiple valid approaches or unclear requirements:\n1. Use the AskUserQuestion tool to clarify with the user\n2. Ask about specific implementation choices (e.g., architectural patterns, which library to use)\n3. Clarify any assumptions that could affect the implementation\n4. Edit your plan file to incorporate user feedback\n5. Only proceed with ExitPlanMode after resolving ambiguities and updating the plan file\n\n## Examples\n\n1. Initial task: \"Search for and understand the implementation of vim mode in the codebase\" - Do not use the exit plan mode tool because you are not planning the implementation steps of a task.\n2. Initial task: \"Help me implement yank mode for vim\" - Use the exit plan mode tool after you have finished planning the implementation steps of the task.\n3. Initial task: \"Add a new feature to handle user authentication\" - If unsure about auth method (OAuth, JWT, etc.), use AskUserQuestion first, then use exit plan mode tool after clarifying the approach.\n"
442
442
  },
443
443
  {
444
444
  "name": "tool-exit-planmode-rejected",
@@ -462,7 +462,7 @@
462
462
  },
463
463
  {
464
464
  "name": "tool-skill-description",
465
- "template": "Execute a skill within the main conversation\n\n<skills_instructions>\nWhen users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.\n\nWhen users ask you to run a \\\"slash command\\\" or reference \\\"/<something>\\\" (e.g., \\\"/commit\\\", \\\"/review-pr\\\"), they are referring to a skill. Use this tool to invoke the corresponding skill.\n\n<example>\nUser: \\\"run /commit\\\"\nAssistant: [Calls Skill tool with skill: \\\"commit\\\"]\n</example>\n\nHow to invoke:\n- Use this tool with the skill name and optional arguments\n- Examples:\n - `skill: \\\"pdf\\\"` - invoke the pdf skill\n - `skill: \\\"commit\\\", args: \\\"-m 'Fix bug'\\\"` - invoke with arguments\n - `skill: \\\"review-pr\\\", args: \\\"123\\\"` - invoke with arguments\n - `skill: \\\"ms-office-suite:pdf\\\"` - invoke using fully qualified name\n\nImportant:\n- When a skill is relevant, you must invoke this tool IMMEDIATELY as your first action\n- NEVER just announce or mention a skill in your text response without actually calling this tool\n- This is a BLOCKING REQUIREMENT: invoke the relevant Skill tool BEFORE generating any other response about the task\n- Only use skills listed in <available_skills> below\n- Do not invoke a skill that is already running\n- Do not use this tool for built-in CLI commands (like /help, /clear, etc.)\n</skills_instructions>\n\n<available_skills>\n{%- if skills and skills.length > 0 -%}\n{%- for skill in skills %}\n<skill>\n<name>\n{{skill.name}}\n</name>\n<description>\n{{skill.description}}\n</description>\n<location>\n{{skill.source}}\n</location>\n{%- if skill.allowedTools %}\n<allowed-tools>\n{{skill.allowedTools.join(', ')}}\n</allowed-tools>\n{%- endif %}\n</skill>\n{%- endfor -%}\n{%- endif %}\n</available_skills>\n"
465
+ "template": "Execute a skill within the main conversation\n\n<skills_instructions>\nWhen users ask you to perform tasks, check if any of the available skills below can help complete the task more effectively. Skills provide specialized capabilities and domain knowledge.\n\nWhen users ask you to run a \"slash command\" or reference \"/<something>\" (e.g., \"/commit\", \"/review-pr\"), they are referring to a skill. Use this tool to invoke the corresponding skill.\n\n<example>\nUser: \"run /commit\"\nAssistant: [Calls Skill tool with skill: \"commit\"]\n</example>\n\nHow to invoke:\n- Use this tool with the skill name and optional arguments\n- Examples:\n - `skill: \"pdf\"` - invoke the pdf skill\n - `skill: \"commit\", args: \"-m 'Fix bug'\"` - invoke with arguments\n - `skill: \"review-pr\", args: \"123\"` - invoke with arguments\n - `skill: \"ms-office-suite:pdf\"` - invoke using fully qualified name\n\nImportant:\n- When a skill is relevant, you must invoke this tool IMMEDIATELY as your first action\n- NEVER just announce or mention a skill in your text response without actually calling this tool\n- This is a BLOCKING REQUIREMENT: invoke the relevant Skill tool BEFORE generating any other response about the task\n- Only use skills listed in <available_skills> below\n- Do not invoke a skill that is already running\n- Do not use this tool for built-in CLI commands (like /help, /clear, etc.)\n</skills_instructions>\n\n<available_skills>\n{%- if skills and skills.length > 0 -%}\n{%- for skill in skills %}\n<skill>\n<name>\n{{skill.name}}\n</name>\n<description>\n{{skill.description}}\n</description>\n<location>\n{{skill.source}}\n</location>\n{%- if skill.allowedTools %}\n<allowed-tools>\n{{skill.allowedTools.join(', ')}}\n</allowed-tools>\n{%- endif %}\n</skill>\n{%- endfor -%}\n{%- endif %}\n</available_skills>\n"
466
466
  },
467
467
  {
468
468
  "name": "agent-statusline-instructions",
@@ -492,6 +492,10 @@
492
492
  "name": "tool-structuredoutput-description",
493
493
  "template": "Use this tool to return your final response in the requested structured format. You MUST call this tool exactly once at the end of your response to provide the structured output.\n"
494
494
  },
495
+ {
496
+ "name": "tool-imagegen-description",
497
+ "template": "Generate images from text descriptions using AI models.\n"
498
+ },
495
499
  {
496
500
  "name": "output-style-explanatory",
497
501
  "template": "# Output Style: Explanatory\nIn addition to software engineering tasks, you should provide educational insights about codebase along the way. You should be clear and educational, providing helpful explanations while remaining focused on the task. Balance educational content with task completion. When providing insights, you may exceed typical length constraints, but remain focused and relevant.\n\n# Explanatory Style Active\n\n## Insights\nIn order to encourage learning, before and after writing code, always provide brief educational explanations about implementation choices using (with backticks):\n\"`★ Insight ─────────────────────────────────────` [2-3 key educational points] `─────────────────────────────────────────────────`\"\n\nThese insights should be included in the conversation, not in codebase. You should generally focus on interesting insights that are specific to codebase or code you just wrote, rather than general programming concepts."
@@ -589,7 +593,8 @@
589
593
  "Skill",
590
594
  "AskUserQuestion",
591
595
  "LSP",
592
- "StructuredOutput"
596
+ "StructuredOutput",
597
+ "ImageGen"
593
598
  ],
594
599
  "tags": [
595
600
  "cli",
@@ -836,11 +841,16 @@
836
841
  "SelectComponent": true,
837
842
  "UIComponentLibrary": true,
838
843
  "CustomModelsJSON": true,
839
- "BillingNotice": true
844
+ "BillingNotice": true,
845
+ "ImageGen": false
840
846
  },
841
847
  "featureToggles": {
842
848
  "SupportHttpsAgentProxy": true
843
849
  },
850
+ "fillToolCallContentModelWhitelist": [
851
+ "glm",
852
+ "claude"
853
+ ],
844
854
  "telemetry": {
845
855
  "report": {
846
856
  "standard": {
@@ -990,8 +1000,12 @@
990
1000
  {
991
1001
  "name": "StructuredOutput",
992
1002
  "description": "tool-structuredoutput-description"
1003
+ },
1004
+ {
1005
+ "name": "ImageGen",
1006
+ "description": "tool-imagegen-description"
993
1007
  }
994
1008
  ],
995
- "commit": "e28eda3a1e0261ba889b16c2a413e1a2ef836010",
996
- "date": "2026-01-26T04:15:20.718Z"
1009
+ "commit": "ede9ffa76656871a489254ec7a4b3259aeeac8af",
1010
+ "date": "2026-01-26T13:52:30.976Z"
997
1011
  }
@@ -205,6 +205,6 @@
205
205
  "BillingNotice": false,
206
206
  "CustomModelsJSON": true
207
207
  },
208
- "commit": "e28eda3a1e0261ba889b16c2a413e1a2ef836010",
209
- "date": "2026-01-26T04:15:25.879Z"
208
+ "commit": "ede9ffa76656871a489254ec7a4b3259aeeac8af",
209
+ "date": "2026-01-26T13:52:36.661Z"
210
210
  }