@hsupu/copilot-api 0.7.21 → 0.7.22
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/config.example.yaml +82 -60
- package/dist/main.mjs +479 -346
- package/dist/main.mjs.map +1 -1
- package/package.json +1 -1
- package/ui/history-v3/dist/assets/index-CaOzq3V0.js +3 -0
- package/ui/history-v3/dist/assets/{index-CMA0Arxs.css → index-Dfh3zN1X.css} +1 -1
- package/ui/history-v3/dist/index.html +2 -2
- package/ui/history-v3/dist/assets/index-DS5mAk0y.js +0 -3
package/config.example.yaml
CHANGED
|
@@ -5,12 +5,9 @@
|
|
|
5
5
|
# ============================================================================
|
|
6
6
|
# Proxy
|
|
7
7
|
# ============================================================================
|
|
8
|
-
# Proxy URL for all outgoing requests to GitHub / Copilot APIs.
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
# Authentication via URL credentials: socks5h://user:pass@host:port
|
|
12
|
-
# Takes precedence over HTTP_PROXY/HTTPS_PROXY environment variables.
|
|
13
|
-
# CLI --proxy flag takes precedence over this setting.
|
|
8
|
+
# Proxy URL for all outgoing requests to GitHub / Copilot APIs. Supports http://, https://, socks5://, socks5h://.
|
|
9
|
+
# socks5h:// routes DNS through the proxy (recommended for privacy). Auth via URL: socks5h://user:pass@host:port
|
|
10
|
+
# Takes precedence over HTTP_PROXY/HTTPS_PROXY env vars. CLI --proxy flag takes precedence over this setting.
|
|
14
11
|
# NOT hot-reloadable (requires restart).
|
|
15
12
|
|
|
16
13
|
# proxy: "http://127.0.0.1:7890"
|
|
@@ -27,41 +24,44 @@
|
|
|
27
24
|
# - Short aliases: "opus", "sonnet", "haiku" (resolved to best available)
|
|
28
25
|
#
|
|
29
26
|
# Matching order: raw request name checked first, then resolved (normalized) name.
|
|
30
|
-
# User overrides are deep-merged with built-in defaults (same key = user wins).
|
|
31
27
|
#
|
|
32
28
|
# Built-in defaults (always active unless overridden):
|
|
33
29
|
# opus → claude-opus-4.6
|
|
34
30
|
# sonnet → claude-sonnet-4.6
|
|
35
31
|
# haiku → claude-haiku-4.5
|
|
36
32
|
#
|
|
37
|
-
# If the target model is not in the available models list, it is treated as an
|
|
38
|
-
#
|
|
39
|
-
# family is used as fallback.
|
|
33
|
+
# If the target model is not in the available models list, it is treated as an alias and resolved again.
|
|
34
|
+
# If still unavailable, the best model in the same family is used as fallback.
|
|
40
35
|
|
|
41
36
|
model_overrides:
|
|
42
37
|
opus: claude-opus-4.6-1m
|
|
43
|
-
|
|
38
|
+
# Redirect all sonnet requests to best opus
|
|
39
|
+
# sonnet: claude-opus-4.6-1m
|
|
44
40
|
haiku: claude-sonnet-4.6
|
|
45
41
|
claude-opus-4.5: claude-opus-4.6-1m
|
|
46
42
|
claude-opus-4.6: claude-opus-4.6-1m
|
|
47
43
|
claude-opus-4-6: claude-opus-4.6-1m
|
|
48
|
-
|
|
49
|
-
claude-
|
|
44
|
+
# Use latest sonnet
|
|
45
|
+
claude-sonnet-4.5: claude-sonnet-4.6
|
|
46
|
+
# Upgrade haiku to sonnet
|
|
47
|
+
claude-haiku-4.5: claude-sonnet-4.6
|
|
50
48
|
|
|
51
49
|
# ============================================================================
|
|
52
50
|
# Timeouts
|
|
53
51
|
# ============================================================================
|
|
54
52
|
# Timeout settings for upstream API connections. Apply to all streaming paths.
|
|
55
53
|
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
# Max seconds between SSE events (0 = no timeout).
|
|
55
|
+
# Applies to all streaming paths (Anthropic, Chat Completions, Responses).
|
|
56
|
+
stream_idle_timeout: 300
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
# Max seconds from request start to HTTP response headers (0 = no timeout).
|
|
59
|
+
# Applies to all upstream API clients.
|
|
60
|
+
fetch_timeout: 600
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
# Max seconds an active request can live before the stale reaper forces it to fail (0 = disabled).
|
|
63
|
+
# Safety net for requests that never complete/fail normally.
|
|
64
|
+
stale_request_max_age: 600
|
|
65
65
|
|
|
66
66
|
# ============================================================================
|
|
67
67
|
# Shutdown
|
|
@@ -69,8 +69,10 @@ stale_request_max_age: 600 # Max seconds an active request can live before t
|
|
|
69
69
|
# Control graceful shutdown timing.
|
|
70
70
|
|
|
71
71
|
shutdown:
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
# Phase 2: seconds to wait for in-flight requests to complete naturally (default: 60)
|
|
73
|
+
graceful_wait: 300
|
|
74
|
+
# Phase 3: seconds to wait after abort signal for handlers to wrap up (default: 120)
|
|
75
|
+
abort_wait: 600
|
|
74
76
|
|
|
75
77
|
# ============================================================================
|
|
76
78
|
# History
|
|
@@ -78,8 +80,10 @@ shutdown:
|
|
|
78
80
|
# Control history recording behavior.
|
|
79
81
|
|
|
80
82
|
history:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
+
# Maximum number of entries to keep in memory (0 = unlimited, default: 200)
|
|
84
|
+
limit: 200
|
|
85
|
+
# Minimum entries to keep even under memory pressure (default: 50)
|
|
86
|
+
min_entries: 50
|
|
83
87
|
|
|
84
88
|
# ============================================================================
|
|
85
89
|
# Anthropic
|
|
@@ -87,47 +91,68 @@ history:
|
|
|
87
91
|
# Settings for Anthropic API tool handling and timeouts.
|
|
88
92
|
|
|
89
93
|
anthropic:
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
#
|
|
103
|
-
|
|
104
|
-
|
|
94
|
+
# Strip server-side tools (web_search, etc.) from requests
|
|
95
|
+
strip_server_tools: false
|
|
96
|
+
|
|
97
|
+
# Dedup tool calls: false | "input" | "result" (true = "input" for compat)
|
|
98
|
+
# "input": dedup by (name, input); "result": also require identical result
|
|
99
|
+
dedup_tool_calls: false
|
|
100
|
+
|
|
101
|
+
# Strip <system-reminder> tags from Read tool results
|
|
102
|
+
strip_read_tool_result_tags: false
|
|
103
|
+
|
|
104
|
+
# Server-side context editing mode. Controls how Anthropic's context_management trims older context when input grows large.
|
|
105
|
+
# off: disabled (default). No context_management sent.
|
|
106
|
+
# clear-thinking: clear old thinking blocks.
|
|
107
|
+
# clear-tooluse: clear old tool_use/result pairs.
|
|
108
|
+
# clear-both: apply both clear-thinking and clear-tooluse.
|
|
109
|
+
# Only effective for models that support context editing.
|
|
110
|
+
context_editing: off
|
|
111
|
+
|
|
112
|
+
# Rewrite system-reminder tags in messages. false = keep all (default), true = remove all.
|
|
113
|
+
# Or provide rewrite rules (first match wins, top-down).
|
|
114
|
+
# Note: `model` field is NOT supported here (only in system_prompt_overrides).
|
|
115
|
+
# rewrite_system_reminders: false
|
|
116
|
+
rewrite_system_reminders:
|
|
105
117
|
- from: "^Whenever you read a file, you should consider whether it would be considered malware"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
#
|
|
118
|
+
# Empty = remove the tag
|
|
119
|
+
to: ""
|
|
120
|
+
# - from: ".*" # Catch-all: keep unchanged (gms flags are automatic)
|
|
121
|
+
# to: "$0" # $0 = original content
|
|
122
|
+
|
|
123
|
+
# ============================================================================
|
|
124
|
+
# Responses API
|
|
125
|
+
# ============================================================================
|
|
126
|
+
# Settings for OpenAI Responses API (/v1/responses) endpoint.
|
|
127
|
+
|
|
128
|
+
openai-responses:
|
|
129
|
+
# Convert `call_xxx` IDs to `fc_xxx` in input. Required when clients send conversation history with
|
|
130
|
+
# Chat Completions-format tool call IDs to the Responses API (which requires `fc_` prefix). Default: false.
|
|
131
|
+
normalize_call_ids: true
|
|
109
132
|
|
|
110
133
|
# ============================================================================
|
|
111
134
|
# Rate Limiter
|
|
112
135
|
# ============================================================================
|
|
113
|
-
# Fine-tune the adaptive rate limiter behavior.
|
|
114
|
-
# The rate limiter is enabled/disabled via --no-rate-limit CLI flag;
|
|
136
|
+
# Fine-tune the adaptive rate limiter behavior. The rate limiter is enabled/disabled via --no-rate-limit CLI flag;
|
|
115
137
|
# these settings control its parameters when enabled.
|
|
116
138
|
|
|
117
139
|
rate_limiter:
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
140
|
+
# Seconds to wait before retrying after rate limit error
|
|
141
|
+
retry_interval: 10
|
|
142
|
+
# Seconds between requests in rate-limited mode
|
|
143
|
+
request_interval: 10
|
|
144
|
+
# Minutes before attempting recovery from rate-limited mode
|
|
145
|
+
recovery_timeout: 10
|
|
146
|
+
# Consecutive successes needed to exit rate-limited mode
|
|
147
|
+
consecutive_successes: 5
|
|
122
148
|
|
|
123
149
|
# ============================================================================
|
|
124
150
|
# Auto-Truncate
|
|
125
151
|
# ============================================================================
|
|
126
152
|
# Control auto-truncation behavior when context limits are hit.
|
|
127
153
|
|
|
128
|
-
# Compress old tool_result content before truncating messages.
|
|
129
|
-
#
|
|
130
|
-
# context size before resorting to message removal. Default: true.
|
|
154
|
+
# Compress old tool_result content before truncating messages. When enabled, large tool_result content blocks
|
|
155
|
+
# are compressed to reduce context size before resorting to message removal. Default: true.
|
|
131
156
|
# compress_tool_results_before_truncate: false
|
|
132
157
|
|
|
133
158
|
# ============================================================================
|
|
@@ -138,8 +163,8 @@ rate_limiter:
|
|
|
138
163
|
# 2. prepend — text inserted before the system prompt
|
|
139
164
|
# 3. append — text inserted after the system prompt
|
|
140
165
|
#
|
|
141
|
-
# All three work across all endpoints (Anthropic Messages, Chat Completions,
|
|
142
|
-
#
|
|
166
|
+
# All three work across all endpoints (Anthropic Messages, Chat Completions, Responses API).
|
|
167
|
+
# For OpenAI formats, they target system/developer messages.
|
|
143
168
|
|
|
144
169
|
# ── Prepend ──
|
|
145
170
|
# For Anthropic: inserted as the first text block or prepended to the string.
|
|
@@ -203,16 +228,13 @@ rate_limiter:
|
|
|
203
228
|
# from: the pattern to match
|
|
204
229
|
# to: the replacement text
|
|
205
230
|
# method: "line" or "regex" (default: "regex")
|
|
206
|
-
# model: regex pattern to filter by resolved model name (optional, case-insensitive)
|
|
207
|
-
# When set, the rule only applies to requests whose resolved model matches.
|
|
208
|
-
# When omitted, the rule applies to all models.
|
|
231
|
+
# model: regex pattern to filter by resolved model name (optional, case-insensitive).
|
|
232
|
+
# When set, the rule only applies to requests whose resolved model matches. When omitted, applies to all.
|
|
209
233
|
#
|
|
210
234
|
# Methods:
|
|
211
|
-
# line — splits text by newlines; replaces any line whose trimmed content
|
|
212
|
-
# exactly matches trimmed `from`
|
|
235
|
+
# line — splits text by newlines; replaces any line whose trimmed content exactly matches trimmed `from`
|
|
213
236
|
# regex — applies regex on the full text block with gms flags (default if omitted)
|
|
214
|
-
# (g=global, m=multiline ^$ match line boundaries, s=dotAll . matches \n)
|
|
215
|
-
# Supports capture group placeholders: $1, $2, etc.
|
|
237
|
+
# (g=global, m=multiline ^$ match line boundaries, s=dotAll . matches \n). Supports $1, $2, etc.
|
|
216
238
|
|
|
217
239
|
# Example: Security Research Mode overrides (removes refusal patterns)
|
|
218
240
|
# system_prompt_overrides:
|