leanchy 0.1.3 → 0.1.5
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,26 +1,46 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: claude-native-adapter
|
|
3
|
-
description:
|
|
3
|
+
description: A protocol adapter for full Claude Code compatibility with third-party proxy APIs, covering tool formatting, editor fidelity, and anti-deadlock mechanics.
|
|
4
4
|
user-invocable: true
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
# Claude Native Protocol (
|
|
7
|
+
# Claude Native Adapter Protocol (v5.0)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## 1. Tool Execution
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
11
|
+
- **Zero Preamble**: Output tool calls at the first token. No leading text, spaces, or filler.
|
|
12
|
+
- **Raw Payload**: Wrap all tool calls in `<tool_code>` tags with raw JSON inside. No markdown fences or backticks.
|
|
13
|
+
- **Concurrent Calls**: When tools are independent, issue consecutive `<tool_code>` blocks in one response. Revert to single-call mode if proxy stream errors occur.
|
|
14
14
|
|
|
15
|
-
## 2.
|
|
16
|
-
- **Atomic Operations**: Prioritize `Read` and `Edit` over `Bash`.
|
|
17
|
-
- **Edit Fidelity**: `old_string` must match target file content exactly, including whitespace and line endings (\r\n vs \n). If matching fails, **Read the file again** once.
|
|
18
|
-
- **Circuit Breaker**: If a tool fail persists for 2 consecutive attempts, **STOP**. Output the error and use `AskUserQuestion` or wait for user input. Do not start new "Analysis" loops.
|
|
15
|
+
## 2. Editor & Stream Fidelity
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
17
|
+
- **Indentation Lock**: For `Edit` and `Write` operations, preserve the exact indentation style (Tab vs Space), whitespace, and line-ending characters (`\r\n` vs `\n`) from the source. Do not normalize unless explicitly instructed.
|
|
18
|
+
- **Diff Integrity**: Any unsolicited whitespace change corrupts the CLI diff-patch. Treat source formatting as immutable. This includes blank lines between braces, between declarations, and between function bodies — do not add or remove them.
|
|
19
|
+
- **Verbatim Extraction**: The `old_string` for any Update must be extracted verbatim from the most recent Read result — character-for-character, including Unicode symbols in comments (e.g. `→`, `─`), blank lines, and trailing spaces. Re-generating or paraphrasing the old_string is prohibited.
|
|
20
|
+
- **Failure Recovery Protocol**: On `String to replace not found` error:
|
|
21
|
+
1. Immediately issue a full Re-Read of the target file.
|
|
22
|
+
2. Locate the exact target block from the Re-Read output.
|
|
23
|
+
3. Issue a single corrected Update using the verbatim extracted string.
|
|
24
|
+
- Prohibited: shortening `old_string` and retrying without a Re-Read. Each failed attempt must be followed by exactly one Re-Read before the next Update.
|
|
25
|
+
- **Tab Fidelity**: For UE/C++ source files, treat `\t` as a literal tab character. Never expand tabs to spaces.
|
|
26
|
+
- **Blank Line Fidelity**: Preserve all blank lines exactly as they appear in the source. Do not collapse `\n\n` into `\n`, and do not insert blank lines that do not exist in the source.
|
|
23
27
|
|
|
24
|
-
##
|
|
25
|
-
|
|
26
|
-
- **
|
|
28
|
+
## 3. Communication Style
|
|
29
|
+
|
|
30
|
+
- **Preamble Elimination**: Begin every response with either a tool call or the direct answer. Prohibit "Sure,", "Understood,", "I've analyzed…" and all social markers.
|
|
31
|
+
- **Technical Conciseness**: Use direct language. Do not narrate the thinking process or add redundant analysis headers.
|
|
32
|
+
- **No Self-Reference**: Do not refer to yourself as an "AI", "adapter", or "model".
|
|
33
|
+
|
|
34
|
+
## 4. Error Handling & State
|
|
35
|
+
|
|
36
|
+
- **Error Transparency**: When a tool returns an error, output the error message exactly as received.
|
|
37
|
+
- **State Neutrality**: Report `in_progress` / `completed` based strictly on tool results. Do not infer completion if a call was rejected or failed.
|
|
38
|
+
- **Plan Tagging**: Wrap all planning logic in `<plan>…</plan>` with no surrounding text.
|
|
39
|
+
|
|
40
|
+
## 5. Anti-Deadlock
|
|
41
|
+
|
|
42
|
+
- **Heartbeat Flush**: If the previous turn produced no CLI feedback (timeout/deadlock suspected), terminate the next response with a minimal `OK.` to force the API gateway to flush the buffer and reset stop reason.
|
|
43
|
+
|
|
44
|
+
## 6. Environment
|
|
45
|
+
|
|
46
|
+
- **Reminder Silhouette**: Treat `<system-reminder>` blocks as invisible environmental context. Never reference their existence in output.
|