Commit Graph

279 Commits

Author SHA1 Message Date
y574444354
6f233a6586 feat(costrict): add depthGuard agent and refine strictPlan/strictSpec workflow
- Add depthGuard agent for depth-limiting sub-agent orchestration
- Update strictPlan/strictSpec agents with improved task handling
- Refresh builtin skill registry
- Update builtInAgents with depthGuard integration
- Add nested-agent design docs and user guide
- Update README_EN with project documentation
2026-04-10 21:42:53 +08:00
claude-code-best
ff03fe7fcb fix: 修复类型问题 2026-04-10 17:34:01 +08:00
yhangf
8258d9be59 fix(agents): normalize tool name references in built-in agent prompts 2026-04-10 17:26:05 +08:00
yhangf
0fef4c250f refactor(AgentTool): disable strict spec agent 2026-04-10 16:59:30 +08:00
xixingde
058a772cb8 Merge branch 'main' of https://github.com/xixingde/csc 2026-04-10 15:59:40 +08:00
xixingde
557b873a79 feat(agents): add isMainThread flag to agent definition for full tool access 2026-04-10 15:54:42 +08:00
geroge
c4238f5125
Merge pull request #19 from Askhz/feat/costrict-sidequery
feat(sideQuery): add OpenAI and CoStrict provider support
2026-04-10 15:54:39 +08:00
Askhz
c65bbeaeba feat(sideQuery): add OpenAI and CoStrict provider support
- Route sideQuery to appropriate provider based on config
- Add sideQueryCoStrict() for CoStrict API integration
- Add sideQueryOpenAI() for OpenAI API integration
- Both implementations return BetaMessage format for compatibility
2026-04-10 15:44:54 +08:00
geroge
989bd7f2a7
Merge pull request #17 from Askhz/feat/disable-nonessential-traffic
feat(cli): disable nonessential traffic and remote settings by default
2026-04-10 15:42:00 +08:00
y574444354
8ea29466ee refactor: replace "Claude's" with "CoStrict's" in user-facing copy
Replace all "Claude's" references with "CoStrict's" across 34 source files
including commands, components, services, tools, and utilities.
2026-04-10 15:35:08 +08:00
Askhz
49ec57a226 feat(cli): disable nonessential traffic and remote settings by default 2026-04-10 14:50:27 +08:00
y574444354
2f3038c0ef Merge pull request #16 from yhangf/main\n\nrefactor skills structure\n\n* docs: update contributors\n* refactor(skills): move projectWiki and tdd skills from bundled to src/costrict/skill\n* docs: update contributors 2026-04-10 14:24:24 +08:00
xixingde
47b2db23df feat(strictPlan): add allowedTools configuration to restrict available tools 2026-04-10 12:24:43 +08:00
xixingde
082345b8aa refactor(costrict): replace SpecPlan agent with StrictPlan skill 2026-04-10 12:17:56 +08:00
guunergooner
c82f59943c fix(openai): fix stop_reason null, zero usage fields and max_tokens forwarding
- Fix stop_reason always null in assembled AssistantMessage by applying
  the value captured from message_delta event
- Reset partialMessage to null after message_stop to prevent duplicate
  AssistantMessage emission causing doubled content in next API request
- Forward computed maxTokens into buildOpenAIRequestBody as max_tokens
  so OpenAI-compatible endpoints receive the intended output cap
- Extract assembleFinalAssistantOutputs helper to deduplicate message
  assembly logic between message_stop handler and post-loop fallback
- Fix test helper to use events parameter instead of hidden global
- Add regression test for max_tokens request forwarding

Signed-off-by: guunergooner <tongchao0923@gmail.com>
2026-04-10 12:17:52 +08:00
y574444354
90908ba929 merge upstream/main: 同步上游更新并解决冲突
冲突解决策略:
- CLAUDE.md: 保留版本号 4.0.1 和品牌化(csc/claude-code-best),
  采纳上游的 CI 信息、Ink 框架位置提醒、Type Safety Guidelines
- configs.ts: 保留 costrict provider,同时采纳上游新增的 grok provider
- ConsoleOAuthFlow.tsx: 保留简洁的 orgResult.message 写法
- contributors.svg: 使用上游版本
2026-04-10 10:57:02 +08:00
xixingde
46ba58e46e refactor(strictPlan): update system prompt to clarify role and correct tool references 2026-04-10 10:29:56 +08:00
yhangf
b3207747c4 refactor(skills): move projectWiki and tdd skills from bundled to src/costrict/skill 2026-04-10 10:09:48 +08:00
xixingde
2f115cfd0b refactor(agents): reorganize strictPlan agent workflow and remove constraints 2026-04-10 10:00:09 +08:00
geroge
1f68cd74e3
Merge pull request #14 from Askhz/refactor/first-login
refactor: remove OAuth/preflight from onboarding and fix model picker reload after CoStrict login
2026-04-10 09:48:50 +08:00
yhangf
0d1754614a refactor(agents): 改回2层架构,StrictSpec 直接调 SubCoding
- StrictSpec 精简为~60行,stage 4 直接调 SubCoding(绕过 SpecPlan 中间层)
- 移除 SpecPlan 注册(3层嵌套对外部用户不可用,ALL_AGENT_DISALLOWED_TOOLS 限制)
- SubCoding 自带探索/实施能力,无需上层准备 proposal/task.md
- 支持 teammates 并行调用 SubCoding,自动降级串行

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 09:32:21 +08:00
yhangf
7ee0b3a6a2 refactor(agents): 清理 StrictSpec 架构,删除 PlanManager
- StrictSpec 精简为纯4阶段分发器(~40行),只负责编排,不含实施细节
- SpecPlan 成为唯一实施协调逻辑来源(探索→提案→验证→实施→收尾)
- 删除 planManager.ts 文件
- builtInAgents.ts 去除重复注册、移除 PLAN_MANAGER_AGENT

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 09:23:19 +08:00
yhangf
bb1e88ea82 Merge branch 'main' of https://github.com/yhangf/csc 2026-04-10 08:56:09 +08:00
claude-code-best
637531f81f fix(types): simplify bridge transport message type
Replace StdoutMessageWithSession conditional type with simpler
TransportMessage intersection type. The conditional type was
over-engineered for what is just StdoutMessage & { session_id? }.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 23:55:54 +08:00
claude-code-best
34bbc1d403 fix(types): replace all as any with proper type assertions
Eliminate unsafe `as any` casts across 21 non-test source files,
replacing them with specific type annotations:

- Bridge transport: use StdoutMessage type for write/writeBatch calls
- print.ts: type msg.request as Record<string, unknown> for unknown
  SDK control subtypes; use StdoutMessage for output.enqueue()
- API providers (openai/grok/gemini): import ChatCompletion types,
  type streams as AsyncIterable<ChatCompletionChunk>, type request
  bodies as ChatCompletionCreateParamsStreaming
- Computer use executor: use Partial<ResolvePrepareCaptureResult>
  for cross-platform screenshot result
- Components: replace Ink color string casts with proper typing
- Win32 bridge: type stdin as Writable after null check

All 2453 tests pass with 0 failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 23:51:33 +08:00
claude-code-best
a14d3dc8f0 fix(types): clean type fixes across 92 files
Apply proper TypeScript type corrections without any unsafe casts:
- Fix unknown/never/{} types from decompilation
- Correct function signatures and parameter types
- Add missing type declarations and interfaces
- Fix Ink component prop types
- Update API client/provider type annotations

Test files with mock data casts are included as-is (acceptable pattern).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 23:45:56 +08:00
claude-code-best
01cf45f4ac fix: 修复 permission 面板 2026-04-09 22:03:54 +08:00
HitMargin
e6affc7053
1. 修复 src/commands/fork/index.ts — 将空 stub 改为有效的 Command 定义 2. 新增 src/commands/fork/fork.tsx — 完整实现 /fork 命令,复用了 AgentTool 的 fork 子 agent 逻辑 (#221)
* 1. 修复 src/commands/fork/index.ts — 将空 stub 改为有效的 Command 定义
  2. 新增 src/commands/fork/fork.tsx — 完整实现 /fork 命令,复用了 AgentTool 的 fork 子 agent 逻辑

* Update src/commands/fork/fork.tsx

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix

---------

Co-authored-by: HitMargin <hitmargin@qq.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-04-09 21:53:07 +08:00
Alan
bb07836231
fix: support CRLF SSE frame parsing (#223) 2026-04-09 21:52:28 +08:00
Askhz
a33063fbad refactor: remove OAuth/preflight from onboarding and fix model picker reload after CoStrict login
- Remove preflight and OAuth steps from onboarding flow
- Clear both modelType and model settings on logout
- Reload ModelPicker via key after successful CoStrict login instead of closing it
- Pre-fetch and cache CoStrict models silently after login
2026-04-09 21:10:32 +08:00
yhangf
51b88ecb24 refactor(agents): 改为2层架构,StrictSpec 直接调度所有叶子 agent
- StrictSpec 吸收 SpecPlan 的全部实施协调逻辑
- 完整流程:Requirement→DesignAgent→TaskPlan→QuickExplore/TaskCheck/SubCoding
- 移除 SpecPlan 注册(不再是链路中间层)
- 调用深度:StrictSpec → leaf agents(2层)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 21:00:52 +08:00
yhangf
1f768d682a refactor(agents): 3层架构重构 StrictSpec 工作流
- SpecPlan 合并 PlanManager/SpecPlan/PlanApply 为统一 Layer 2 协调者
- StrictSpec Stage 4 直接调用 SpecPlan,移除中间层 PlanManager
- SpecPlan 支持 SubCoding 串行(模式A)和 teammates 并行(模式B),自动降级
- builtInAgents.ts 移除 PLAN_MANAGER_AGENT 注册(不再是 StrictSpec 链路必需)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 20:52:41 +08:00
claude-code-best
8c619a215c build: 修复构建报错 2026-04-09 20:47:13 +08:00
xixingde
57d0e1feac refactor(agents): consolidate PlanApply functionality into StrictPlan agent
- Remove separate PlanApply agent and integrate task distribution logic directly into StrictPlan agent
- Move PlanApply and TDD agents to backup directory
- Update StrictPlan system prompt to reflect dual role as PlanAgent and CodingAgent
- Update builtInAgents registry to remove PlanApply and update TDD import path
2026-04-09 20:46:18 +08:00
xixingde
12601d3faf Merge branch 'main' of https://github.com/xixingde/csc 2026-04-09 20:45:06 +08:00
yhangf
fe8ad9df69 feat: migrate strictSpec workflow agents into csc built-in agent registry
Register 6 previously-unregistered costrict agents as first-class built-in
agents: StrictSpec (4-stage orchestrator), Requirement, DesignAgent, TaskPlan,
PlanManager, and SpecPlan.

Adapt system prompts in strictSpec.ts, planManager.ts, specPlan.ts to use the
csc Agent tool (subagent_type parameter) instead of the legacy costrict-specific
`task` tool. Also fix a broken relative import in taskPlan.ts.

Agent call chain for StrictSpec workflow:
  StrictSpec → Requirement / DesignAgent / TaskPlan / PlanManager
  PlanManager → SpecPlan
  SpecPlan → QuickExplore / TaskCheck / PlanApply
  PlanApply → SubCoding

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 20:44:50 +08:00
y574444354
caa020365d Merge upstream/main: 同步上游更新并解决冲突 2026-04-09 19:15:29 +08:00
y574444354
51ff947604 feat(costrict): 集成 CoStrict 登录流程和模型选择到 /model 命令 2026-04-09 19:02:03 +08:00
xixingde
3363059608 fix(agents): enable Claude markdown output across all built-in agents 2026-04-09 18:22:14 +08:00
bonerush
562e9daadd
fix: Handle undefined command names in getCommandName function (#217)
* fix: reorder tool and user messages for OpenAI API compatibility (#168)
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.

* fix: 修复OpenAI兼容层中deferred tools处理问题

  提交描述:
  修复了在使用OpenAI兼容API时TaskCreate工具调用失败的问题。

  问题:
  - 当使用OpenAI兼容API模型时,调用TaskCreate工具出现"InputValidationError: The required
  parameter `subject` is missing"错误
  - OpenAI兼容层没有正确处理deferred tools的过滤逻辑,导致工具schema没有被正确发送给模型

  修复:
  1. 在OpenAI兼容层中添加了与Anthropic API路径一致的deferred tools处理逻辑
  2. 导入必要的工具搜索相关函数: isToolSearchEnabled, extractDiscoveredToolNames,
  isDeferredTool等
  3. 实现工具过滤逻辑:
     - 检查工具搜索是否启用
     - 构建deferred tools集合
     - 过滤工具列表: 只包含非deferred工具或已发现的deferred工具
     - 为deferred tools设置deferLoading标志
  4. 修正了extractDiscoveredToolNames函数的导入路径错误

  影响:
  - 解决了TaskCreate工具调用时的参数验证错误
  - 确保OpenAI兼容层与Anthropic API路径在处理deferred tools时行为一致
  - 支持工具搜索功能在OpenAI兼容模式下正常工作

  修改的文件:
  - src/services/api/openai/index.ts - 主要修复文件

  测试建议:
  1. 使用OpenAI兼容API模型时,TaskCreate工具应该可以正常调用
  2. 如果工具搜索功能启用,可能需要先使用ToolSearchTool来发现TaskCreate工具
  3. 验证工具调用时不再出现"InputValidationError"错误

  这个修复确保了当使用OpenAI兼容API(如Ollama、DeepSeek、vLLM等)时,deferred
  tools(如TaskCreate)能够被正确处理,解决了工具调用失败的问题。

* fix: 更新未发送工具架构提示,提供OpenAI兼容模型的使用步骤

* fix: Handle undefined command names in getCommandName function

- Modified getCommandName in src/types/command.ts to return empty string instead of undefined when cmd.name is undefined
- Added null checks in src/hooks/useTypeahead.tsx to safely handle command names
- Prevents "undefined is not an object" error when FEATURE_BUDDY=1 and FEATURE_FORK_SUBAGENT=1 are enabled

The error occurred because getCommandName(cmd) could return undefined when cmd.name was undefined, causing .length access to fail.
2026-04-09 17:53:43 +08:00
geroge
73c2121ee4
Merge pull request #11 from Askhz/refactor/change-config-path
refactor(provider): migrate credentials storage
2026-04-09 17:47:38 +08:00
claude-code-best
2da6514095
feat: 支持自托管的 remote-control-server (#214)
* feat: 支持自托管的 remote-control-server (#214)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-04-09 17:40:50 +08:00
Askhz
1cedb89db8 refactor(provider): migrate credentials storage from ~/.costrict to ~/.claude directory 2026-04-09 17:26:44 +08:00
geroge
260a8140e3
Merge pull request #10 from y574444354/feat/rebrand-claude-code-to-costrict
rebrand: 将 Claude Code 品牌改为 CoStrict
2026-04-09 17:23:27 +08:00
y574444354
1c3e495c03 rebrand: 将 Claude Code 品牌改为 CoStrict 2026-04-09 17:14:39 +08:00
xixingde
6962816be7 feat(agents): add TDD agent and integrate into strict plan workflow 2026-04-09 17:12:36 +08:00
xixingde
d5daf372a0 feat(AgentTool): add new built-in agents to registry 2026-04-09 16:57:14 +08:00
geroge
2d9996ab77
Merge pull request #8 from Askhz/feature/security-review
Add security review skill with code audit and bundling support
2026-04-09 16:45:57 +08:00
yhangf
51f597a3d2 feat(costrict): enable thinking mode in Anthropic-to-OpenAI message conversion 2026-04-09 16:40:45 +08:00
Askhz
df65350c35 feat(skill): add security review builtin skill with code audit support
- Add generate-skills script to download and bundle skills from external repositories.
- Register code-review-security skill for vulnerability detection and integrate into bundled skill initialization.
2026-04-09 15:59:14 +08:00
geroge
03b7cbf7de
Merge pull request #7 from yhangf/main
refactor: rename costrict/agent directory to costrict/agents
2026-04-09 15:49:09 +08:00
y574444354
824f09c34c chore: 更新配置和组件文件
- 更新 README_EN.md
- 更新认证和登录相关处理
- 更新登出功能
- 更新 AutoModeOptInDialog 和 Onboarding 组件
- 更新主入口文件
- 更新测试 fixtures
- 添加 docs/config-list.md
2026-04-09 15:42:48 +08:00
y574444354
fd9dc6dddd Merge branch 'main' of https://github.com/y574444354/csc 2026-04-09 15:38:23 +08:00
y574444354
78505312f4 feat: 更新 WelcomeV2 样式对齐和 ThemePicker 提示 2026-04-09 15:35:24 +08:00
yhangf
cc326e5b3b refactor: rename costrict/agent directory to costrict/agents 2026-04-09 15:28:02 +08:00
yhangf
26beb6fd36 Merge branch 'feature/tdd' 2026-04-09 15:17:12 +08:00
yhangf
1d70f31fef feat(tdd): add TDD workflow with test design, prepare, execute, and run-and-fix agents 2026-04-09 15:14:27 +08:00
xixingde
2ba63d15a5
Merge branch 'y574444354:main' into main 2026-04-09 14:36:33 +08:00
geroge
c7bfe22c22
Merge branch 'claude-code-best:main' into feat/basic-config 2026-04-09 14:35:26 +08:00
geroge
523db59b4b
Merge pull request #5 from y574444354/feat/basic-config
feat: 品牌化首页为 CoStrict 风格
2026-04-09 14:34:48 +08:00
y574444354
c5c6b50c9e feat: 品牌化首页为 CoStrict 风格
- 品牌名从 Claude Code 改为 CoStrict
- 版本号更新为 v4.0.1
- 首页边框、标题、分割线、小人等元素统一改为蓝色
- 简单模式(CondensedLogo)添加蓝色圆角边框
- 小人(Clawd)替换为 CoStrict ASCII art 大字标志
- Feed 标题(Recent activity/What's new)改为蓝色
2026-04-09 14:25:15 +08:00
xixingde
817fe6d42e Merge branch 'main' of https://github.com/xixingde/csc 2026-04-09 14:23:45 +08:00
xixingde
47fda685a3 refactor(agents): remove checkpoint workflow and file-outline from subCoding prompt 2026-04-09 14:17:28 +08:00
geroge
4100031042
Merge branch 'claude-code-best:main' into main 2026-04-09 14:15:38 +08:00
geroge
a9587e824d
Merge pull request #3 from Askhz/fix/setup-dialogs
fix(interactive): stop early input capture before rendering dialogs
2026-04-09 14:15:27 +08:00
yhangf
2c97a0f7d9 feat(skills): add project-wiki skill for automated technical documentation generation
Introduce `/project-wiki` bundled skill that orchestrates a multi-stage pipeline to
analyze a codebase and generate a complete technical documentation wiki. Adds four
specialized sub-agents:
- WikiProjectAnalyze: deep repository analysis and classification
- WikiCatalogueDesign: dynamic document structure design based on project traits
- WikiDocumentGenerate: code-driven technical document authoring
- WikiIndexGeneration: structured index and navigation creation
Also updates .gitignore to exclude `.costrict`, `.claude`, and `/costrict` directories.
2026-04-09 14:10:24 +08:00
xixingde
9cef68a360 refactor(strictPlan): update agent references from Explore to QuickExplore 2026-04-09 14:06:48 +08:00
xixingde
0c3b7e1cb2 feat(agents): add explicit tools list to planApply agent 2026-04-09 12:45:11 +08:00
xixingde
02d046a61e feat(agents): add QuickExploreAgent and enable planning agents by default 2026-04-09 12:42:11 +08:00
xixingde
792b784066 refactor(agents): standardize import paths and remove obsolete tool references 2026-04-09 11:34:40 +08:00
xixingde
80288a1c46 refactor(costrict): rename QuickExplore to Explore, standardize imports and remove dead code 2026-04-09 11:26:48 +08:00
xixingde
c15c952659 refactor(costrict): archive QuickExplore agent and update agent tool references 2026-04-09 11:19:03 +08:00
Askhz
3e0eed1462 Merge branch 'main' of https://github.com/Askhz/csc 2026-04-09 10:51:18 +08:00
Askhz
114629ff9e fix(interactive): stop early input capture before rendering dialogs
Rename CLI binary from `ccb` to `csc`, update .gitignore for additional
AI tool directories and exe files, and fix unresponsive keyboard input
in interactive dialogs by stopping the early input listener before Ink
takes over stdin.
2026-04-09 10:25:34 +08:00
xixingde
ab0ffd5c59 refactor(costrict): migrate agents to dedicated module and add new agent types 2026-04-09 10:10:20 +08:00
HitMargin
f17b7c7163
修复使用/help 后再按左右键报错 (#212)
* 添加status命令里更多模型api介绍

* Fix: /help error

---------

Co-authored-by: HitMargin <hitmargin@qq.com>
2026-04-09 09:18:35 +08:00
guunergooner
a3505aeec4
feat: Add DeepSeek thinking mode support for OpenAI compatibility layer (#206)
* feat: Add DeepSeek thinking mode support for OpenAI compatibility layer

- Add DeepSeek reasoning models support (deepseek-reasoner and DeepSeek-V3.2)
- Automatic thinking mode detection based on model name
- Inject thinking parameters in request body (both official API and vLLM formats)
- Preserve reasoning_content in message conversion for tool call iterations
- Extract buildOpenAIRequestBody() for testability
- Treat multimodal inputs (e.g. images) as new turn boundaries
- Fix env var cleanup in tests to prevent state leak

Signed-off-by: guunergooner <tongchao0923@gmail.com>

* docs: update contributors

---------

Signed-off-by: guunergooner <tongchao0923@gmail.com>
Co-authored-by: guunergooner <18660867+guunergooner@users.noreply.github.com>
2026-04-08 21:33:26 +08:00
bonerush
91ee1428fa
Fix bug OpenAI tooluse,Improve error messaging for deferred-loading tools under OpenAI‑compatible models. (#199)
* fix: reorder tool and user messages for OpenAI API compatibility (#168)
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.

* fix: 修复OpenAI兼容层中deferred tools处理问题

  提交描述:
  修复了在使用OpenAI兼容API时TaskCreate工具调用失败的问题。

  问题:
  - 当使用OpenAI兼容API模型时,调用TaskCreate工具出现"InputValidationError: The required
  parameter `subject` is missing"错误
  - OpenAI兼容层没有正确处理deferred tools的过滤逻辑,导致工具schema没有被正确发送给模型

  修复:
  1. 在OpenAI兼容层中添加了与Anthropic API路径一致的deferred tools处理逻辑
  2. 导入必要的工具搜索相关函数: isToolSearchEnabled, extractDiscoveredToolNames,
  isDeferredTool等
  3. 实现工具过滤逻辑:
     - 检查工具搜索是否启用
     - 构建deferred tools集合
     - 过滤工具列表: 只包含非deferred工具或已发现的deferred工具
     - 为deferred tools设置deferLoading标志
  4. 修正了extractDiscoveredToolNames函数的导入路径错误

  影响:
  - 解决了TaskCreate工具调用时的参数验证错误
  - 确保OpenAI兼容层与Anthropic API路径在处理deferred tools时行为一致
  - 支持工具搜索功能在OpenAI兼容模式下正常工作

  修改的文件:
  - src/services/api/openai/index.ts - 主要修复文件

  测试建议:
  1. 使用OpenAI兼容API模型时,TaskCreate工具应该可以正常调用
  2. 如果工具搜索功能启用,可能需要先使用ToolSearchTool来发现TaskCreate工具
  3. 验证工具调用时不再出现"InputValidationError"错误

  这个修复确保了当使用OpenAI兼容API(如Ollama、DeepSeek、vLLM等)时,deferred
  tools(如TaskCreate)能够被正确处理,解决了工具调用失败的问题。

* fix: 更新工具模式未发送提示,增加OpenAI兼容模型使用指南
2026-04-08 18:08:59 +08:00
bonerush
bdea5a2632
fix: Fix deferred tools handling in OpenAI compatibility layer (#193)
* fix: reorder tool and user messages for OpenAI API compatibility (#168)
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.

* fix: 修复OpenAI兼容层中deferred tools处理问题

  提交描述:
  修复了在使用OpenAI兼容API时TaskCreate工具调用失败的问题。

  问题:
  - 当使用OpenAI兼容API模型时,调用TaskCreate工具出现"InputValidationError: The required
  parameter `subject` is missing"错误
  - OpenAI兼容层没有正确处理deferred tools的过滤逻辑,导致工具schema没有被正确发送给模型

  修复:
  1. 在OpenAI兼容层中添加了与Anthropic API路径一致的deferred tools处理逻辑
  2. 导入必要的工具搜索相关函数: isToolSearchEnabled, extractDiscoveredToolNames,
  isDeferredTool等
  3. 实现工具过滤逻辑:
     - 检查工具搜索是否启用
     - 构建deferred tools集合
     - 过滤工具列表: 只包含非deferred工具或已发现的deferred工具
     - 为deferred tools设置deferLoading标志
  4. 修正了extractDiscoveredToolNames函数的导入路径错误

  影响:
  - 解决了TaskCreate工具调用时的参数验证错误
  - 确保OpenAI兼容层与Anthropic API路径在处理deferred tools时行为一致
  - 支持工具搜索功能在OpenAI兼容模式下正常工作

  修改的文件:
  - src/services/api/openai/index.ts - 主要修复文件

  测试建议:
  1. 使用OpenAI兼容API模型时,TaskCreate工具应该可以正常调用
  2. 如果工具搜索功能启用,可能需要先使用ToolSearchTool来发现TaskCreate工具
  3. 验证工具调用时不再出现"InputValidationError"错误

  这个修复确保了当使用OpenAI兼容API(如Ollama、DeepSeek、vLLM等)时,deferred
  tools(如TaskCreate)能够被正确处理,解决了工具调用失败的问题。
2026-04-08 12:56:10 +08:00
geroge
19a362571b
Merge branch 'claude-code-best:main' into main 2026-04-08 11:31:49 +08:00
HitMargin
3683f22529
补全status界面里的信息 (#189)
* docs: update contributors

* docs: update contributors

* docs: update contributors

* docs: update contributors

* 添加status命令里更多模型api介绍

---------

Co-authored-by: HitMargin <hitmargin@qq.com>
2026-04-08 10:56:46 +08:00
claude-code-best
e86573ac2f fix: 修复 -r 模式下键盘输入无响应
两个根因:

1. earlyInput 的 readableHandler 残留在 stdin 上
   setAppCallbacks() 在反编译项目中从未被调用,导致
   stopCapturingEarlyInput() 是 no-op,readableHandler
   在 Ink 的 handleReadable 之前消费所有 stdin 数据。
   修复:在 handleSetRawMode(true) 时移除非自身的 readable listeners。

2. React 19 layout effect cleanup 顺序问题
   React 19 先运行新树的 layout effects,再清理旧树。
   当旧树(showSetupDialog)比新树(launchResumeChooser)
   有更多 useInput hooks 时,旧树 cleanup 把
   rawModeEnabledCount 降到 0,错误关闭 raw mode。
   修复:当 count=0 但仍有活跃 EventEmitter listeners 时恢复 count。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 23:54:09 +08:00
claude-code-best
3e1c6bcc3f Merge branch 'main' into refactor/ink-v2 2026-04-07 22:41:35 +08:00
claude-code-best
d6bfc34b71 fix: 修复 ant 模式 2026-04-07 22:40:59 +08:00
claude-code-best
91b9366f64 refactor: 大规模迁移原有组件到 ink 包内 2026-04-07 22:26:45 +08:00
geroge
66be9ca401
Merge branch 'claude-code-best:main' into main 2026-04-07 20:52:38 +08:00
geroge
a075c09efd
Merge pull request #1 from xixingde/main
strictplan
2026-04-07 20:50:43 +08:00
xixingde
47b535af47 fix(costrict): enable file edit and write tools for built-in agents 2026-04-07 20:40:17 +08:00
Askhz
d77963fb3f feat: add costrict login provider 2026-04-07 20:32:32 +08:00
mcjjin
0d8f494c4b
fix(computer-use): 修复权限检查和应用列表获取的问题 (#157)
* docs: update contributors

* fix(computer-use): 修复权限检查和应用列表获取的问题

修复 macOS 平台下权限检查的 JXA 回退逻辑,确保在没有原生模块时仍能正确检测权限
改进应用列表获取方式,使用 mdls 获取真实的 bundleId 而非生成伪 ID

* docs: update contributors

* docs: update contributors

* docs: update contributors

---------

Co-authored-by: mcjjin <8590489+mcjjin@users.noreply.github.com>
Co-authored-by: claude-code-best <claude-code-best@proton.me>
Co-authored-by: claude-code-best <272536312+claude-code-best@users.noreply.github.com>
2026-04-07 19:53:59 +08:00
bonerush
5d7e54751a
fix: reorder tool and user messages for OpenAI API compatibility (#168) (#177)
Fixes #168
OpenAI requires that an assistant message with tool_calls be immediately
followed by tool messages. Previously, convertInternalUserMessage
output user content before tool results, causing 400 errors.
Now tool messages are pushed first.
2026-04-07 19:27:25 +08:00
claude-code-best
52a9cc0414 fix: 修复 ant 模式 2026-04-07 19:15:29 +08:00
claude-code-best
f268b16b31 feat: 将 keybinding 纳入 ink 管辖 2026-04-07 17:51:01 +08:00
xixingde
884e0208b8 feat(agents): add costrict agent suite for structured workflows 2026-04-07 17:50:42 +08:00
claude-code-best
e5782e732c Revert "Revert "feat: 第一个可以用的 ink 组件抽象 (#158)" (#175)"
This reverts commit 88d4c3ba24.
2026-04-07 16:17:48 +08:00
claude-code-best
4e1e681a46 fix: 删除 debug 限制 2026-04-07 16:13:15 +08:00
claude-code-best
a7d9a220bf fix: 修复 main 文件及 "production" 的问题 2026-04-07 16:13:15 +08:00
Dosion
0c53796d15
feat: restore daemon supervisor and remoteControlServer command (#170)
Reverse-engineer the missing daemon + remoteControlServer implementation
by tracing the call chain from existing code:

- src/daemon/main.ts: restore from stub to full supervisor (spawn/monitor
  workers, exponential backoff restart, graceful shutdown)
- src/daemon/workerRegistry.ts: restore from stub to worker dispatcher
  (remoteControl kind → runBridgeHeadless())
- src/commands/remoteControlServer/: new slash command /remote-control-server
  (alias /rcs) for managing the daemon from REPL
- build.ts + scripts/dev.ts: enable DAEMON feature flag

Both official CLI 2.1.92 and our codebase had the command registered in
commands.ts but the directory and daemon implementation were missing.
The bottom layer (runBridgeHeadless in bridgeMain.ts) was already complete.

Co-authored-by: unraid <local@unraid.local>
2026-04-07 15:36:29 +08:00
guunergooner
4b44047931
fix: prevent iTerm2 terminal response sequences from leaking into REPL input (#172)
The earlyInput capture's escape sequence detection was too simplistic — it
only checked if the byte after ESC fell in 0x40-0x7E range, treating it as
a terminator. This caused DCS sequences (e.g. XTVERSION `\x1bP>|iTerm2
3.6.4\x1b\\`) and CSI parameter sequences (e.g. DA1 `\x1b[?64;...c`) to
partially leak into the input buffer as `>|iTerm2 3.6.4?64;1;2;4;6;17;18;21;22c`.

Fix by handling each escape sequence type per ECMA-48:
- CSI (`ESC [`): skip parameter + intermediate bytes, then final byte
- DCS/OSC/SOS/PM (`ESC P/]/X/^`): scan to BEL or ST terminator
- Other: keep single-byte skip

Closes #171

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 15:11:06 +08:00
claude-code-best
88d4c3ba24
Revert "feat: 第一个可以用的 ink 组件抽象 (#158)" (#175)
This reverts commit c445f43f8d.
2026-04-07 15:05:03 +08:00