sususu
f94752762b
feat(devin): add Devin/Cognition provider integration and CLI OAuth
Implement the full Devin/Cognition Connect-RPC provider support across all CPA endpoints (/v1/chat/completions, /v1/messages, /v1/responses), complete with binary protobuf wire framing, streaming tools/arguments delta handling, thinking/reasoning replay, and CLI OAuth authentication.
Key highlights:
- Wire Protocol & Streaming:
* Implemented Connect-RPC uncompressed 5-byte framing (0x00 + 4-byte length + protobuf) for ApiServerService/GetChatMessage.
* Implemented Devin protobuf encoder/decoder in internal/runtime/executor/helps/devin_wire.go, including ClientMetadata, prompts, tools, completion_config, and multimodal image handling (Prompt Field #10).
* Stream frame consumption via interactions protocol, correctly mapping arguments_delta and tracking multiple sequential tool calls (currentToolCallActive).
* Streaming thought summary and sealed.v1 signature deltas targeting the thinking step.
- Model Registration & Thinking Clamping:
* Registered static fallback models in model_definitions.go (swe-2, claude-fable-5-1, gpt-6-astra, swe-1-7-lightning, glm-5-2, glm-5-3).
* Configured ThinkingSupport with discrete levels per model family.
* Implemented CPA-standard nearest-neighbor clamping for thinking levels (minimal/low -> medium, xhigh -> max for swe-2).
* Mapped thinking effort to Devin upstream model UID (e.g. swe-2-medium, swe-2-high, swe-2-max).
- Sensitive Words & System Prompt Sanitization:
* Added devin.sensitive-words configuration in internal/config/config_types.go and config.go, matching Antigravity conventions.
* Supported zero-width space (\u200b) obfuscation in prompts, tools, and system instructions via SensitiveWordMatcher.
* Stripped Claude Code billing headers (x-anthropic-billing-header:) and CLI identity signatures from system instructions and tool descriptions to avoid upstream content filter rejections.
- Signature Compatibility:
* Added SignatureProviderSWE = "swe" recognizing sealed.v1.* reasoning signatures in internal/signature/provider_compatibility.go.
* Propagated reasoning.encrypted_content on Responses API and thinking.signature on Messages API.
- Authentication:
* Implemented Devin PKCE OAuth flow with loopback callback server and headless manual token/code paste (--no-browser).
* Registered Devin authenticator in SDK and CLI (-devin-login flag).
* Integrated with management OAuth session endpoints and credentials manager.
2026-09-13 23:34:43 +08:00
..
2026-07-23 13:42:08 +08:00
2026-06-14 21:11:35 +08:00
2026-07-14 04:40:12 +08:00
2026-08-07 06:26:33 +08:00
2026-09-03 13:10:30 +08:00
2026-08-06 17:19:24 +08:00
2026-09-08 12:07:57 +08:00
2026-09-09 20:05:33 +08:00
2026-06-23 23:21:33 +08:00
2026-08-01 00:31:26 +08:00
2026-08-15 14:08:16 +08:00
2026-06-29 18:11:44 +08:00
2026-09-10 12:35:07 +08:00
2026-09-06 06:20:20 +08:00
2026-06-20 13:49:40 +08:00
2026-08-03 14:47:26 +08:00
2026-09-10 19:31:08 +08:00
2026-08-19 22:05:28 +08:00
2026-09-07 02:34:39 +08:00
2026-09-11 02:19:22 +08:00
2026-08-17 10:54:07 +08:00
2026-06-14 21:11:35 +08:00
2026-08-29 12:50:46 +08:00
2026-09-10 01:43:37 +08:00
2026-09-13 23:34:43 +08:00
2026-05-08 11:46:46 +08:00
2026-08-03 14:47:26 +08:00
2026-07-14 04:40:12 +08:00
2026-09-06 10:45:32 +08:00
2026-09-06 10:45:32 +08:00
2026-09-11 23:31:48 +08:00
2026-09-07 02:34:39 +08:00
2026-08-30 12:53:39 +08:00
2026-05-08 11:46:46 +08:00
2026-08-20 02:55:49 +08:00
2026-08-30 12:53:39 +08:00
2026-09-08 17:58:56 +08:00
2026-05-02 03:40:00 +08:00
2026-08-08 06:08:23 +08:00
2026-09-11 23:31:48 +08:00
2026-06-03 11:56:56 +08:00
2026-08-29 12:50:46 +08:00
2026-08-22 12:01:06 +08:00
2026-09-11 02:19:22 +08:00
2026-08-22 01:20:02 +08:00
2026-09-10 10:02:08 +08:00
2026-09-06 16:42:59 +08:00
2026-09-01 08:15:51 +08:00
2026-09-10 10:02:08 +08:00
2026-09-06 06:20:20 +08:00
2026-09-10 12:06:01 +08:00
2026-08-20 21:31:53 +08:00
2026-09-06 06:20:20 +08:00
2026-09-10 01:43:37 +08:00
2026-09-03 10:02:51 +08:00
2026-07-09 03:08:02 +08:00
2026-08-06 21:00:32 +08:00
2026-08-31 20:29:19 +08:00
2026-08-29 12:50:45 +08:00
2026-07-28 14:23:23 +08:00
2026-09-11 02:19:22 +08:00
2026-08-20 15:19:07 +08:00
2026-08-20 15:19:07 +08:00
2026-08-08 04:53:34 +08:00
2026-07-28 14:23:23 +08:00
2026-09-11 23:31:48 +08:00
2026-07-27 03:46:55 +08:00
2026-09-13 18:50:21 +08:00
2026-09-13 18:50:21 +08:00
2026-08-01 00:31:26 +08:00
2026-09-10 01:43:37 +08:00
2026-04-02 19:11:09 +08:00
2026-06-04 00:53:43 +08:00
2026-06-04 00:53:43 +08:00
2026-07-16 04:38:19 +08:00
2026-09-10 10:02:08 +08:00
2026-06-24 14:51:35 +08:00
2026-09-10 20:21:11 +08:00
2026-09-03 02:59:34 +08:00
2026-09-03 02:59:34 +08:00
2026-05-14 03:01:55 +08:00
2026-08-22 01:19:58 +08:00
2026-07-23 13:42:08 +08:00
2026-07-23 13:42:08 +08:00
2026-07-23 13:42:08 +08:00
2026-07-23 13:42:08 +08:00
2026-09-06 10:45:32 +08:00
2026-08-29 12:50:46 +08:00
2026-07-23 13:42:08 +08:00
2026-07-23 13:42:08 +08:00
2026-07-23 13:42:08 +08:00
2026-08-03 21:39:48 +08:00
2026-09-06 10:45:32 +08:00
2026-09-03 17:52:40 +08:00
2026-09-08 17:04:58 +08:00
2026-08-29 12:50:44 +08:00
2026-07-23 13:42:08 +08:00
2026-08-22 12:01:06 +08:00
2026-08-22 12:01:06 +08:00
2026-09-11 03:58:23 +08:00
2026-09-11 03:58:23 +08:00
2026-07-29 14:14:18 +08:00
2026-07-29 14:14:18 +08:00
2026-08-29 12:50:46 +08:00
2026-06-15 11:14:05 +08:00
2026-09-11 03:58:23 +08:00
2026-08-24 17:15:37 +08:00
2026-08-24 17:15:37 +08:00
2026-09-01 08:37:02 +08:00
2026-07-28 03:22:18 +08:00
2026-06-29 18:11:44 +08:00
2026-06-29 18:11:44 +08:00
2026-06-29 18:11:44 +08:00
2026-05-08 11:46:46 +08:00
2026-08-28 09:17:57 +08:00
2026-09-10 10:02:08 +08:00
2026-07-17 22:58:28 +08:00
2026-09-03 17:05:35 +08:00
2026-09-03 17:52:40 +08:00
2026-09-03 17:05:35 +08:00
2026-09-08 17:04:58 +08:00
2026-09-10 10:02:08 +08:00
2026-09-09 03:25:42 +08:00
2026-08-31 11:18:41 +08:00
2026-08-06 10:29:57 +08:00
2026-09-01 18:00:09 +08:00
2026-09-01 18:00:09 +08:00
2026-09-03 17:52:40 +08:00
2026-09-10 01:43:37 +08:00
2025-09-22 01:40:24 +08:00
2025-09-29 09:31:21 +08:00
2026-08-03 21:40:06 +08:00
2026-08-17 10:54:07 +08:00
2026-09-03 01:33:11 +08:00
2026-09-03 01:33:11 +08:00
2026-07-28 14:23:23 +08:00
2026-07-28 14:23:23 +08:00