dsh-packycode-api 1.0.5 → 1.0.6

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.6
4
+
5
+ - New model `gpt-6-astra` (GPT-6 Astra), on the same route as `gpt-6.1-sol`: `openai-responses` at `https://cf.api.fan/v1`, text and image input, 1,050,000-token context, 128,000 output tokens, and `reasoning.effort` `low` / `medium` / `high` / `xhigh` / `max` (reasoning cannot be turned off). All of these are from OpenAI's [model page](https://developers.openai.com/api/docs/models/gpt-6-astra). The gateway lists it in `/v1/models` as `gpt-6-astra`, and it needs a key whose group covers Codex (`codex`, `codex-sale`). Verified live through the built bundle: `live-check` answered `ok` from it alongside `deepseek-flash` and `gpt-6.1-sol`, and each of the five effort levels answered `ok`. One `medium` request first hit a transient `Connection error` and answered on retry.
6
+
3
7
  ## 1.0.5
4
8
 
5
9
  - **Balance on mainland networks.** The default balance host is now `https://www.packyapi.ai` (PackyAPI's current site). `www.packyapi.com`, the default through 1.0.4, is DNS-poisoned on mainland networks: every public resolver checked (AliDNS, DNSPod, 1.1.1.1, 8.8.8.8, even AliDNS over HTTPS) returned an unrelated foreign IP, and a direct Node fetch failed with `ECONNREFUSED`. Without a proxy every key read `fetch failed` from it, which is what a Windows user saw. With a proxy it worked, so the failure came and went. A profile that saved the old host keeps it as a fallback, but `.ai` is tried first. Verified live without a proxy: `.ai` answers in about 1.3 s.
package/README.en.md CHANGED
@@ -42,7 +42,7 @@ Open the desktop application's **Plugins** page, click **Add plugin**, and enter
42
42
  dsh-packycode-api
43
43
  ```
44
44
 
45
- Choose the **official** install source, then click **Install**. To pin a version, enter `dsh-packycode-api@1.0.5`.
45
+ Choose the **official** install source, then click **Install**. To pin a version, enter `dsh-packycode-api@1.0.6`.
46
46
 
47
47
  Then **manually restart the desktop application**. Refreshing the page does not reload the plugin inside the Host process.
48
48
 
@@ -54,14 +54,14 @@ Open **Settings → PackyCode**. Paste the API key under **Add a key**. A label
54
54
 
55
55
  ### 3. Select a model
56
56
 
57
- Choose a model from the `PackyCode` group. `deepseek-flash` and `gpt-6.1-sol` work once a key is stored. The three Claude models also need the Claude Code CLI on this device; see below.
57
+ Choose a model from the `PackyCode` group. `deepseek-flash`, `gpt-6.1-sol`, and `gpt-6-astra` work once a key is stored. The three Claude models also need the Claude Code CLI on this device; see below.
58
58
 
59
59
  <details>
60
60
  <summary>Verify the install / other profiles / a local checkout</summary>
61
61
 
62
62
  The **Plugins** page shows the installed state and version, and is also where you enable, disable, or uninstall.
63
63
 
64
- **For non-desktop profiles only:** `dsh plugin --profile <name> add dsh-packycode-api@1.0.5`. Do not use it for `desktop` — the CLI refuses it (`profile "desktop" is managed exclusively by the Electron application`).
64
+ **For non-desktop profiles only:** `dsh plugin --profile <name> add dsh-packycode-api@1.0.6`. Do not use it for `desktop` — the CLI refuses it (`profile "desktop" is managed exclusively by the Electron application`).
65
65
 
66
66
  A local checkout can be linked with `dsh plugin --profile <name> add link:/path/to/dsh-packycode-api`.
67
67
 
@@ -92,6 +92,7 @@ A profile without a browser can still use the model route. It just has no settin
92
92
  | --- | --- | --- | --- |
93
93
  | `deepseek-flash` | HTTP, chat/completions | Can be off; `low` / `high` / `max` | `deepseek-officially`, `deepseek-sale` |
94
94
  | `gpt-6.1-sol` | HTTP, Responses, images allowed | Cannot be off; `low` / `medium` / `high` / `xhigh` / `max` | `codex`, `codex-sale` |
95
+ | `gpt-6-astra` | Same | Same | Same |
95
96
  | `claude-opus-5-5` | Local Claude Code CLI | The picker offers the same levels; the CLI chooses the actual effort | A group the official CLI is allowed to use; see below |
96
97
  | `claude-sonnet-5-5` | Same | Same | Same |
97
98
  | `claude-haiku-5-5` | Same; session titles always use this model | Same | Same |
@@ -101,7 +102,7 @@ A model in the list does not mean the current token group allows it. When changi
101
102
  <details>
102
103
  <summary>Protocol, group, and CLI constraints</summary>
103
104
 
104
- - OpenAI / Codex traffic must use the Responses protocol. `gpt-6.1-sol` is pinned to `openai-responses` at `https://cf.api.fan/v1`. Do not put `/responses` in the base URL.
105
+ - OpenAI / Codex traffic must use the Responses protocol. `gpt-6.1-sol` and `gpt-6-astra` are pinned to `openai-responses` at `https://cf.api.fan/v1`. Do not put `/responses` in the base URL.
105
106
  - Codex-group Responses requests must include `prompt_cache_key` or the gateway returns 403. The harness supplies the session id; the plugin adds a fallback when a caller does not.
106
107
  - The Anthropic base URL has no `/v1` (the client appends `/v1/messages`). The three Claude models declare the Messages protocol in the catalog, but their requests are made by the local CLI.
107
108
  - The `cc` group accepts only the official Claude CLI. A normal API client gets `403 This API endpoint is only accessible via the official Claude CLI`. This plugin runs the local `claude` binary for that group instead of switching the token to `cc-sale` or pretending to be the official client. If the token has no group the official CLI may use, the three Claude models still will not run.
@@ -113,7 +114,7 @@ A model in the list does not mean the current token group allows it. When changi
113
114
  - The conversation and its images reach the CLI over stdin (`--input-format stream-json`), not argv: a Windows command line is length-limited and cannot carry an image. Images in the conversation are sent to Claude as images, at the HTTP route's request size (at most 2048×2048, about 1 MiB each; at most 20 images and 20 MiB per turn, dropping the oldest first). An image left out is named with its read-only local copy, which the CLI can open with Read.
114
115
  - Every run carries `--append-system-prompt` (the delegation note). In `-p` mode the official CLI introduces itself as "You are Claude Code, Anthropic's official CLI for Claude …" when it has appended instructions and as "You are a Claude agent, built on Anthropic's Claude Agent SDK." when it has none; the latter was refused upstream as not coming from the official CLI (403 `only accepts requests from the official Claude Code CLI`). That is the official CLI's own behavior; the plugin does not rewrite its system prompt.
115
116
  - While the session model is a Claude model, titles are generated with `claude-haiku-5-5`, read-only, in a temporary directory, instead of a full Opus turn.
116
- - The `claude_code` tool can delegate one task to the local CLI while the session model is `gpt-6.1-sol` or `deepseek-flash`. The requested `mode` cannot exceed what the session preset allows.
117
+ - The `claude_code` tool can delegate one task to the local CLI while the session model is `gpt-6.1-sol`, `gpt-6-astra`, or `deepseek-flash`. The requested `mode` cannot exceed what the session preset allows.
117
118
  - An effort level the model does not support is rejected before the request is sent. Do not edit a model's effort map casually.
118
119
 
119
120
  </details>
package/README.md CHANGED
@@ -42,7 +42,7 @@
42
42
  dsh-packycode-api
43
43
  ```
44
44
 
45
- 在**安装源**中选择**官方源**,然后点击**安装**。需要固定版本时填入 `dsh-packycode-api@1.0.5`。
45
+ 在**安装源**中选择**官方源**,然后点击**安装**。需要固定版本时填入 `dsh-packycode-api@1.0.6`。
46
46
 
47
47
  完成后**手动重启桌面应用**。仅刷新页面不会重新加载 Host 里的插件。
48
48
 
@@ -54,14 +54,14 @@ dsh-packycode-api
54
54
 
55
55
  ### 3. 选择模型
56
56
 
57
- 回到对话,在模型选择器里选 `PackyCode` 分组下的模型。`deepseek-flash` 和 `gpt-6.1-sol` 添加 Key 后即可用。三个 Claude 模型还需要本机装有 Claude Code CLI,见下文。
57
+ 回到对话,在模型选择器里选 `PackyCode` 分组下的模型。`deepseek-flash`、`gpt-6.1-sol` 和 `gpt-6-astra` 添加 Key 后即可用。三个 Claude 模型还需要本机装有 Claude Code CLI,见下文。
58
58
 
59
59
  <details>
60
60
  <summary>检查安装 / 其它 profile / 本地目录</summary>
61
61
 
62
62
  桌面应用的**插件**页可以看到已安装状态与版本,也可以在那里启用、停用或卸载。
63
63
 
64
- **仅用于非 desktop profile:** `dsh plugin --profile <name> add dsh-packycode-api@1.0.5`。不要对 `desktop` 使用它 —— CLI 会直接拒绝(`profile "desktop" is managed exclusively by the Electron application`)。
64
+ **仅用于非 desktop profile:** `dsh plugin --profile <name> add dsh-packycode-api@1.0.6`。不要对 `desktop` 使用它 —— CLI 会直接拒绝(`profile "desktop" is managed exclusively by the Electron application`)。
65
65
 
66
66
  本地开发可以用绝对路径:`dsh plugin --profile <name> add link:/path/to/dsh-packycode-api`。
67
67
 
@@ -92,6 +92,7 @@ dsh-packycode-api
92
92
  | --- | --- | --- | --- |
93
93
  | `deepseek-flash` | HTTP,chat/completions | 可关;`low` / `high` / `max` | `deepseek-officially`、`deepseek-sale` |
94
94
  | `gpt-6.1-sol` | HTTP,Responses,可带图 | 不能关;`low` / `medium` / `high` / `xhigh` / `max` | `codex`、`codex-sale` |
95
+ | `gpt-6-astra` | 同上 | 同上 | 同上 |
95
96
  | `claude-opus-5-5` | 本机 Claude Code CLI | 选择器档位同上,实际档位由 CLI 决定 | 要能给官方 CLI 用的分组,见下 |
96
97
  | `claude-sonnet-5-5` | 同上 | 同上 | 同上 |
97
98
  | `claude-haiku-5-5` | 同上;会话标题也固定走它 | 同上 | 同上 |
@@ -101,7 +102,7 @@ dsh-packycode-api
101
102
  <details>
102
103
  <summary>协议、分组和 CLI 的具体约束</summary>
103
104
 
104
- - OpenAI / Codex 必须走 Responses。`gpt-6.1-sol` 已固定为 `openai-responses`,base URL 是 `https://cf.api.fan/v1`,不要把 `/responses` 写进根地址。
105
+ - OpenAI / Codex 必须走 Responses。`gpt-6.1-sol` 和 `gpt-6-astra` 已固定为 `openai-responses`,base URL 是 `https://cf.api.fan/v1`,不要把 `/responses` 写进根地址。
105
106
  - Codex 分组的 Responses 请求必须带 `prompt_cache_key`,否则 403。harness 会带会话 id;没有会话 id 时插件补一个兜底值。
106
107
  - Anthropic 的 base URL 不带 `/v1`(客户端自己拼 `/v1/messages`)。三个 Claude 模型虽然目录里声明了 Messages 协议,实际请求由本机 CLI 发出。
107
108
  - `cc`(Claude Code 专用)只接受官方 Claude CLI。用普通 API 客户端调 Claude 会 403:`This API endpoint is only accessible via the official Claude CLI`。本插件因此调用本机 `claude`,而不是改去 `cc-sale`,也不是伪造客户端身份。令牌如果没有开放给官方 CLI 的分组,这三个模型仍然不可用。
@@ -113,7 +114,7 @@ dsh-packycode-api
113
114
  - 对话记录和图片通过 stdin 交给 CLI(`--input-format stream-json`),不走命令行参数:Windows 命令行长度有上限,而且命令行带不了图片。对话里的图片会以图片形式发给 Claude(与 HTTP 路由相同的压缩规格:每张不超过 2048×2048、约 1 MiB;一回合最多 20 张、合计 20 MiB,超出时先舍弃最早的)。没随消息发出的图片会写明本机只读副本的路径,CLI 需要时可以用 Read 读取。
114
115
  - 每次运行都带 `--append-system-prompt`(委派说明)。在 `-p` 模式下,官方 CLI 有追加说明时会以 "You are Claude Code, Anthropic's official CLI for Claude …" 自我介绍,没有时是 "You are a Claude agent, built on Anthropic's Claude Agent SDK.";后者曾被上游当成非官方 CLI 拒绝(403 `only accepts requests from the official Claude Code CLI`)。这是官方 CLI 自己的行为,插件没有改写它的系统提示词。
115
116
  - 会话跑在 Claude 模型上时,生成标题改用 `claude-haiku-5-5`,只读、临时目录,避免为起标题跑一整轮 Opus。
116
- - 另有 `claude_code` 工具:当前模型是 `gpt-6.1-sol` 或 `deepseek-flash` 时,可以把一个任务委派给本机 Claude Code。请求的 `mode` 不会超过会话权限允许的上限。
117
+ - 另有 `claude_code` 工具:当前模型是 `gpt-6.1-sol`、`gpt-6-astra` 或 `deepseek-flash` 时,可以把一个任务委派给本机 Claude Code。请求的 `mode` 不会超过会话权限允许的上限。
117
118
  - 声明了模型不支持的推理档位会被 harness 在发请求前拒绝,不要随手改档位映射。
118
119
 
119
120
  </details>
package/lib/index.js CHANGED
@@ -3021,9 +3021,9 @@ function createPackyCodePluginManager({ fetchImpl = ambientFetch, runCommand = s
3021
3021
  *
3022
3022
  * Effort levels come from each vendor's documentation, because an effort the
3023
3023
  * model does not support is refused before the request is sent: Claude Opus
3024
- * 5.5 (platform.claude.com effort docs), GPT-6.1 Sol `reasoning.effort`
3025
- * (developers.openai.com model page), DeepSeek thinking mode (`thinking`
3026
- * toggle plus `low|high|max` effort).
3024
+ * 5.5 (platform.claude.com effort docs), GPT-6.1 Sol and GPT-6 Astra
3025
+ * `reasoning.effort` (developers.openai.com model pages), DeepSeek thinking
3026
+ * mode (`thinking` toggle plus `low|high|max` effort).
3027
3027
  *
3028
3028
  * @module dsh-packycode-api/catalog
3029
3029
  */
@@ -3052,7 +3052,7 @@ const DEEPSEEK_LEVELS = Object.freeze({
3052
3052
  max: "max"
3053
3053
  });
3054
3054
  /**
3055
- * Claude 5.5 models and GPT-6.1 Sol cannot disable reasoning, so `off` is
3055
+ * Claude 5.5 models, GPT-6.1 Sol, and GPT-6 Astra cannot disable reasoning, so `off` is
3056
3056
  * pinned unsupported. The Claude models run through the CLI, which picks its
3057
3057
  * own effort, so for them these levels only shape the picker.
3058
3058
  */
@@ -3098,6 +3098,19 @@ const PACKYCODE_MODELS = Object.freeze([
3098
3098
  maxTokens: 128e3,
3099
3099
  thinkingLevelMap: ALWAYS_THINKING_LEVELS
3100
3100
  }),
3101
+ Object.freeze({
3102
+ id: "gpt-6-astra",
3103
+ name: "GPT-6 Astra",
3104
+ api: "openai-responses",
3105
+ provider: PROVIDER,
3106
+ baseUrl: RESPONSES_BASE,
3107
+ reasoning: true,
3108
+ input: Object.freeze(["text", "image"]),
3109
+ cost: NO_COST,
3110
+ contextWindow: 105e4,
3111
+ maxTokens: 128e3,
3112
+ thinkingLevelMap: ALWAYS_THINKING_LEVELS
3113
+ }),
3101
3114
  Object.freeze({
3102
3115
  id: "claude-opus-5-5",
3103
3116
  name: "Claude Opus 5.5",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-packycode-api",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "packageManager": "pnpm@10.32.1",
5
5
  "description": "Use a PackyCode (PackyAPI) API key in DeepSeek Harness through a built-in multi-protocol model route with key rotation and balance display",
6
6
  "type": "module",