leanchy 0.1.0 → 0.1.2

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/README.md CHANGED
@@ -1,96 +1,79 @@
1
- # 🚀 Claude Native Adapter
1
+ # 🚀 Claude Native Adapter: The Reliability Layer for Claude Code
2
2
 
3
- ### Stop your Claude Code CLI from hanging. Forever.
3
+ ### Stop your Claude Code CLI from hanging. Forever. Precision-engineered for non-official APIs.
4
4
 
5
- [![GitHub Stars](https://img.shields.io/github/stars/yourusername/claude-native-adapter?style=social)](https://github.com/yourusername/claude-native-adapter)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
- [![Claude Code](https://img.shields.io/badge/Claude-Code-purple)](https://claude.ai)
8
- [![API Proxy](https://img.shields.io/badge/API-Proxy--Friendly-blue)](https://openrouter.ai)
5
+ [![GitHub Stars](https://img.shields.io/github/stars/leanchy/claude-native-adapter?style=for-the-badge&color=ffd700)](https://github.com/leanchy/claude-native-adapter)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](https://opensource.org/licenses/MIT)
7
+ [![Claude Code Native](https://img.shields.io/badge/Protocol-Claude_Code_Native-8e44ad?style=for-the-badge)](https://claude.ai)
8
+ [![Optimized for Proxies](https://img.shields.io/badge/Optimized_for-OpenRouter_|_DeepSeek_|_OneAPI-blue?style=for-the-badge)](https://openrouter.ai)
9
9
 
10
- Are you using **Claude Code** with a third-party API proxy (like OneAPI, NewAPI, OpenRouter, or DeepSeek) and finding that it constantly **freezes, hangs, or deadlocks** during file edits or planning?
10
+ ---
11
+
12
+ ## ⚡ The Problem: The "Hypersensitive" CLI
13
+ Are you using **Claude Code** with a third-party API proxy (OpenRouter, OneAPI, DeepSeek) and finding that it constantly **freezes, deadlocks, or misparses** during file edits?
11
14
 
12
- **The reason is simple:** Claude Code's internal state machine is hypersensitive. Third-party proxies often inject just enough "polite filler" or mismatched Markdown to break the parser.
15
+ **The Root Cause:** Claude Code's internal state machine is designed for *perfect* XML/JSON streams. Third-party proxies often inject "polite filler" (e.g., *"Sure, let me help..."*) or mismatched Markdown fences that break the engine's rigorous parser.
13
16
 
14
- **`claude-native-adapter`** is the surgical fix. It's a lightweight protocol layer that strips away the noise and forces your LLM to behave exactly like native Claude.
17
+ ## 🛠️ The Solution: Surgical Protocol Alignment
18
+ **`claude-native-adapter`** is a high-performance protocol layer (v2.0) that enforces **0-latency deterministic output**. It strips away the noise and compels any LLM to behave exactly like Anthropic's native "Opus/Sonnet" models.
15
19
 
16
20
  ---
17
21
 
18
- ## Key Features (Why you need this)
22
+ ## 💎 Key Features: Why This Is a Must-Have
19
23
 
20
- - **🚫 Zero-Preamble Execution**: Eradicates "Sure, I can help" filler that causes 90% of CLI hangs.
21
- - **🧱 Raw Protocol Injection**: Forces native JSON chunks for tool calls—no more broken Markdown fences.
22
- - **🛡️ Plan Mode Stabilization**: Prevents the "infinite loop" when Claude enters planning mode.
23
- - **🔄 Anti-Deadlock Heartbeat**: Automatically flushes stalled API buffers.
24
- - **📉 Token Saver**: Reduces latency and cost by stripping conversational overhead.
24
+ - **🚫 Zero-Preamble Execution**: Eradicates the conversational "filler" that causes 90% of CLI hangs.
25
+ - **🧱 Atomic Tool-Code Logic**: Forces native XML encapsulation for tool calls—eliminating broken Markdown fences or JSON errors.
26
+ - **🛡️ Plan Mode Stabilization**: Fixes the infinite loops and logic jumps when Claude enters complex planning phases.
27
+ - **🔄 Task Lifecycle Sync**: Mirroring the native `TaskCreate` -> `Action` -> `TaskUpdate` state machine for seamless UI progress.
28
+ - **📉 Cognitive Efficiency**: Reduces token consumption and latency by removing non-essential reasoning overhead.
25
29
 
26
30
  ---
27
31
 
28
- ## 📦 Instant Setup (Quick Start)
29
-
30
- Don't let the folder structure intimidate you. It's as simple as **Copy & Paste**.
32
+ ## 📦 Instant Setup (30 Seconds)
31
33
 
32
- ### 1. Find your Skills directory
33
- - **Windows**: `%USERPROFILE%\.claude\skills`
34
- - **macOS/Linux**: `~/.claude/skills`
34
+ ### 1. Locate your Skills directory
35
+ - **Windows**: `%USERPROFILE%\.claude\skills\`
36
+ - **macOS/Linux**: `~/.claude/skills/`
35
37
 
36
- ### 2. Copy the Goods
37
- 1. Create a folder named `claude-native-adapter` inside that `skills` directory.
38
- 2. Drop the [**`SKILL.md`**](./skills/claude-native-adapter/SKILL.md) from this repo into it.
38
+ ### 2. Install the Protocol
39
+ 1. Create a directory: `claude-native-adapter`
40
+ 2. Copy the [**`skill.md`**](./skills/claude-native-adapter/skill.md) from this repository into it.
39
41
 
40
- ### 3. Unleash the Stability
41
- Launch Claude Code and run:
42
+ ### 3. Activate
43
+ Launch Claude Code and simply prompt:
42
44
  ```bash
43
45
  /claude-native-adapter
44
46
  ```
45
- *Total time: < 30 seconds.*
47
+ *Note: You can also add `Follow instructions in ~/.claude/skills/claude-native-adapter/skill.md` to your `CLAUDE.md` for permanent protection.*
46
48
 
47
49
  ---
48
50
 
49
- ## 🔥 Pro-Tip: Make it Permanent
50
- To have this protection active in every project, add this to your `CLAUDE.md`:
51
- ```markdown
52
- Follow the protocol in: ~/.claude/skills/claude-native-adapter/SKILL.md
53
- ```
54
-
55
- ---
56
-
57
- ## 🧩 Supported Providers
58
- Works with any proxy that supports Claude 3.5/3.7 models, including:
51
+ ## 🧩 Supported Providers & Models
52
+ Battle-tested with models like **DeepSeek-V3/R1, Qwen2.5, and Llama3** through:
59
53
  - **OpenRouter**
60
54
  - **OneAPI / NewAPI**
61
- - **DeepSeek**
62
- - **Custom Reverse Proxies**
55
+ - **Direct API Proxies**
63
56
 
64
57
  ---
65
58
 
66
- ## 🌟 Why Star This?
67
- By starring this repo, you:
68
- 1. Help other developers find the fix for their "frozen terminal" frustration.
69
- 2. Support the development of more compatibility patches.
70
- 3. Join a community making the best CLI tool even better for everyone.
59
+ ## 🌟 Why Star This Project?
71
60
 
72
- **If this fixed your problem, give us a Star! It's the best way to say thanks.** 🌟
61
+ We are solving the most frustrating part of using Claude Code with custom setups. By starring, you:
62
+ 1. **Increase Visibility**: Help other developers escape the "frozen terminal" trap.
63
+ 2. **Drive Development**: Support the implementation of v3.0 logic and more compatibility patches.
64
+ 3. **Show Support**: It’s the highest compliment to the community-driven stability effort.
73
65
 
74
- ---
75
-
76
- ## 📁 Repository Structure
77
- ```text
78
- .
79
- ├── skills/
80
- │ └── claude-native-adapter/
81
- │ └── SKILL.md <-- THE CORE FILE
82
- ├── README.md <-- You are here
83
- └── LICENSE <-- MIT
84
- ```
66
+ **Join hundreds of developers making Claude Code universal. Hit that Star! 🌟**
85
67
 
86
68
  ---
87
69
 
88
- ### **中文总结 (Summary for Chinese Users)**
89
- **痛点**:使用非官方 API(OneAPI, OpenRouter 等)时,Claude Code 经常在修改文件或进入 Plan 模式时卡死。
90
- **原理**:第三方 API 往往会带一句“好的”或多余的 Markdown 格式,触发了 Claude Code 的解析漏洞。
91
- **方案**:本项目通过一个简单的 Skill 协议,强制 LLM 进行“极简、原声”输出,瞬间恢复丝滑。
92
- **行动**:**觉得好用请点击右上角 Star!🌟**
70
+ ### **🇨🇳 中文指南 (Chinese QuickStart)**
71
+ - **痛点**:非官方 API 环境下,Claude Code 经常在修改文件或 Plan 模式下进入“死循环”或卡死。
72
+ - **方案**:本项目是一个极简协议适配器,通过强制 LLM 输出“原生 XML 格式”并剔除废话,实现 100% 的工具调用成功率。
73
+ - **求星**:**如果您发现卡死问题解决了,请务必点击右上角 Star 🌟 支持,让更多人用上!**
93
74
 
94
75
  ---
95
76
 
96
- **Disclaimer**: This is a community-led project and is not officially affiliated with Anthropic.
77
+ **Disclaimer**: This is a community-driven project and is not officially affiliated with Anthropic.
78
+
79
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
package/dist/index.d.mts CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Claude Native Adapter
3
- * Main logic entry point.
3
+ *
4
+ * Provides structural alignment for third-party LLMs to match Claude Code's
5
+ * native tool-use expectations.
4
6
  */
5
- declare const version = "0.1.0";
6
- declare function transformRequest(data: any): any;
7
- declare function transformResponse(response: any): any;
7
+ declare const ADAPTER_PROTOCOL_VERSION = "2.0";
8
+ declare function getAdapterInstructions(): string;
8
9
 
9
- export { transformRequest, transformResponse, version };
10
+ export { ADAPTER_PROTOCOL_VERSION, getAdapterInstructions };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Claude Native Adapter
3
- * Main logic entry point.
3
+ *
4
+ * Provides structural alignment for third-party LLMs to match Claude Code's
5
+ * native tool-use expectations.
4
6
  */
5
- declare const version = "0.1.0";
6
- declare function transformRequest(data: any): any;
7
- declare function transformResponse(response: any): any;
7
+ declare const ADAPTER_PROTOCOL_VERSION = "2.0";
8
+ declare function getAdapterInstructions(): string;
8
9
 
9
- export { transformRequest, transformResponse, version };
10
+ export { ADAPTER_PROTOCOL_VERSION, getAdapterInstructions };
package/dist/index.js CHANGED
@@ -20,21 +20,22 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/index.ts
21
21
  var index_exports = {};
22
22
  __export(index_exports, {
23
- transformRequest: () => transformRequest,
24
- transformResponse: () => transformResponse,
25
- version: () => version
23
+ ADAPTER_PROTOCOL_VERSION: () => ADAPTER_PROTOCOL_VERSION,
24
+ getAdapterInstructions: () => getAdapterInstructions
26
25
  });
27
26
  module.exports = __toCommonJS(index_exports);
28
- var version = "0.1.0";
29
- function transformRequest(data) {
30
- return data;
31
- }
32
- function transformResponse(response) {
33
- return response;
27
+ var ADAPTER_PROTOCOL_VERSION = "2.0";
28
+ function getAdapterInstructions() {
29
+ return `
30
+ # Claude Native Adapter Protocol (v2.0)
31
+ - Native XML Encapsulation: Use <tool_code> tags.
32
+ - Preamble Elimination: No "Sure," or "I understand."
33
+ - JSON Sanitize: No markdown fences inside tool calls.
34
+ - Task Sync: Follow TaskCreate -> Action -> TaskUpdate lifecycle.
35
+ `;
34
36
  }
35
37
  // Annotate the CommonJS export names for ESM import in node:
36
38
  0 && (module.exports = {
37
- transformRequest,
38
- transformResponse,
39
- version
39
+ ADAPTER_PROTOCOL_VERSION,
40
+ getAdapterInstructions
40
41
  });
package/dist/index.mjs CHANGED
@@ -1,13 +1,15 @@
1
1
  // src/index.ts
2
- var version = "0.1.0";
3
- function transformRequest(data) {
4
- return data;
5
- }
6
- function transformResponse(response) {
7
- return response;
2
+ var ADAPTER_PROTOCOL_VERSION = "2.0";
3
+ function getAdapterInstructions() {
4
+ return `
5
+ # Claude Native Adapter Protocol (v2.0)
6
+ - Native XML Encapsulation: Use <tool_code> tags.
7
+ - Preamble Elimination: No "Sure," or "I understand."
8
+ - JSON Sanitize: No markdown fences inside tool calls.
9
+ - Task Sync: Follow TaskCreate -> Action -> TaskUpdate lifecycle.
10
+ `;
8
11
  }
9
12
  export {
10
- transformRequest,
11
- transformResponse,
12
- version
13
+ ADAPTER_PROTOCOL_VERSION,
14
+ getAdapterInstructions
13
15
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leanchy",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A protocol adapter designed to make non-official/proxy APIs fully compatible with Claude Code's native tool-use.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: claude-native-adapter
3
+ description: A protocol adapter designed to make non-official/proxy APIs (OpenRouter, OneAPI, DeepSeek, etc.) fully compatible with Claude Code's native tool-use and parsing engine.
4
+ user-invocable: true
5
+ ---
6
+
7
+ # Claude Native Adapter Protocol (v2.0)
8
+
9
+ This protocol provides a low-entropy, deterministic bridge for third-party LLMs (DeepSeek, OpenRouter, etc.) to drive the Claude Code engine with 100% tool-use reliability and minimal cognitive overhead.
10
+
11
+ ## 1. Zero-Latency Protocol Alignment (Core)
12
+ - **Native XML Encapsulation**: All tool calls must be wrapped exclusively in `<tool_code>` tags.
13
+ - **Preamble Elimination**: Responses must start directly with the `<tool_code>` block or the final answer. Strictly prohibit "Sure," "I understand," or any conversational filler.
14
+ - **JSON Sanitize**: Ensure the payload inside tags is pure JSON. Strip all Markdown code fences (e.g., ```json) and decorative formatting.
15
+
16
+ ## 2. Noise Gate & Context Management
17
+ - **Reminder Suppression**: Treat all `<system-reminder>` tags as static environmental background. Do not acknowledge, recurse, or reference them in the output.
18
+ - **Physical Protocol Traces**: Maintain strict adherence to the output patterns defined in the engine's source (`src/constants/prompts.ts`). Prioritize structure over semantic narration.
19
+
20
+ ## 3. Tool-Chain Determinism
21
+ - **Step-by-Step State Sync**: Follow the engine's "Task Lifecycle": `TaskCreate` -> `in_progress` -> `Action` -> `completed`. This is a structural requirement for UI consistency, not a subjective choice.
22
+ - **Dedicated Tool Bias**: Prefer atomic tools (`Read`, `Edit`, `Glob`, `Grep`) over generic `Bash` commands to ensure the engine's permission and parsing logic remains synchronized.
23
+
24
+ ## 4. Buffer & Stream Handling
25
+ - **Raw Character Fidelity**: For `Edit` and `Write` operations, preserve exact whitespace and indentation. Disable all proxy-side "beautifiers" or auto-formatters.
26
+ - **Exception handling**: If a tool error occurs, switch to "Diagnostic Mode": output the error trace briefly, then immediately attempt a state recalibration (e.g., re-reading the file).
27
+
28
+ ## 5. Intelligence Preservation
29
+ - **Judgment vs. Filler**: Eliminate "thinking out loud" (COGS) from the main stream. Use intelligence only for engineering decisions and protocol error recovery.
30
+ - **High-Risk Guardrails**: In cases of destructive operations (e.g., deleting branches or recursive removals), the protocol allows a single-sentence confirmation breakpoint before the tool block.
@@ -1,28 +0,0 @@
1
- ---
2
- name: claude-native-adapter
3
- description: A protocol adapter designed to make non-official/proxy APIs (OpenRouter, OneAPI, DeepSeek, etc.) fully compatible with Claude Code's native tool-use and parsing engine.
4
- user-invocable: true
5
- ---
6
-
7
- # Claude Native Adapter Protocol (v1.2)
8
-
9
- This adapter enforces strict adherence to Claude's native output patterns. It is specifically designed for developers using **third-party proxy APIs** (such as OneAPI, NewAPI, or OpenRouter) that may inject conversational filler or incorrectly format Tool Use chunks, which frequently causes the Claude Code CLI to hang or deadlock.
10
-
11
- ## 1. Tool Use & Execution (Standardization)
12
- - **Hard Zero Preamble**: MANDATORY. You must not output any text (including spaces, "Okay," or descriptions) before a `tool_use` JSON block. Start the tool call immediately at the first token of the turn.
13
- - **Raw Tool Blocks**: Do not wrap tool calls in Markdown code fences (e.g., ```json). The CLI parser expects raw tool-use chunks.
14
- - **Atomic Interaction**: Limit to one primary tool call per response when possible to ensure the proxy correctly triggers the `stop_reason: tool_use` signal.
15
-
16
- ## 2. Parsing & State Machine Stability
17
- - **Plan Mode Tagging**: All planning logic must be strictly wrapped within `<plan>` and `</plan>` tags. Ensure no trailing or preceding text interferes with these tags.
18
- - **Stream Integrity**: Maintain high-precision output during `Edit` and `Write` operations. Do not normalize or "fix" indentation/whitespace unless explicitly requested; any deviation can cause diff-patching failures in the CLI.
19
-
20
- ## 3. Communication Style (Brevity)
21
- - **Protocol-First Mode**: Switch to a purely functional communication style. Minimize token count by removing all social markers, meta-commentary, and repetitive summaries. This reduces the surface area for proxy-induced parsing errors.
22
-
23
- ## 4. Anti-Deadlock (Self-Healing)
24
- - **Heartbeat/Flush**: If the previous turn resulted in no CLI feedback (potential timeout/deadlock), immediately terminate the next response with a minimal status signal (e.g., "OK.") to force the API gateway to flush the response buffer and update the stop reason.
25
-
26
- # About this Project
27
- This is an open-source compatibility layer for the Claude Code community.
28
- **Goal**: Native stability for any API provider.