dsh-codex-connect 0.1.0-alpha.4.3 → 0.1.0-alpha.4.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/INSTALL.md CHANGED
@@ -16,9 +16,11 @@ Install `dsh-codex-connect` into one requested DeepSeek Harness profile without
16
16
  2. Install the package:
17
17
 
18
18
  ```sh
19
- dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.3'
19
+ dsh plugin --profile web add dsh-codex-connect@alpha
20
20
  ```
21
21
 
22
+ To pin this release exactly, use `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.5`. If npm is unavailable, use `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.5'`.
23
+
22
24
  3. Run `dsh --profile web --dump-config` and require exactly one `llm-openai-codex` row loading `dsh-codex-connect`.
23
25
  4. Confirm the effective `agent-default-model` and `web.searchProvider` values are unchanged from before installation.
24
26
  5. Run secret-free diagnostics:
@@ -61,10 +63,12 @@ Do not add the last two rows unless the user separately requested those routing
61
63
  ## Update and removal
62
64
 
63
65
  ```sh
64
- dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#<new-release-tag>'
66
+ dsh plugin --profile web update dsh-codex-connect@alpha
65
67
  dsh plugin --profile web remove dsh-codex-connect
66
68
  ```
67
69
 
70
+ Use an exact npm version when a reproducible update is required; use a GitHub tag only as the npm-unavailable fallback.
71
+
68
72
  Removal of the package and removal of its separate OAuth file are different actions. Run `dsh plugin --profile web exec dsh-codex-connect logout` only with explicit credential-deletion authorization.
69
73
 
70
74
  ## Completion report
package/README.i18n.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  # Bilingual-pair consistency record (docs/i18n/README.md): the git blob hash of each
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
- # git hash-object README.md README.zh.md
5
- README.md: e7a63add3ad36f0291b42190cdbf16e2c655a3b8
6
- README.zh.md: bae8717ef5c8c8221d7576ec5b889b9a206991f3
4
+ # git hash-object README.md docs/README.zh.md
5
+ README.md: 27439ded00edd30a248acf6cc7af53d0ef93ef1b
6
+ docs/README.zh.md: 49e5e00191ff055ab23109e1237d9e75f84f3b46
package/README.md CHANGED
@@ -1,21 +1,47 @@
1
1
  # Codex Connect
2
2
 
3
- English | [中文](README.zh.md)
3
+ [![npm version](https://img.shields.io/npm/v/dsh-codex-connect?label=npm&color=cb3837)](https://www.npmjs.com/package/dsh-codex-connect)
4
+
5
+ English | [中文](docs/README.zh.md)
4
6
 
5
7
  Connect your ChatGPT subscription to DeepSeek Harness with OAuth, user-controlled defaults, Harness-native approvals, diagnostics, and reliable session recovery.
6
8
 
9
+ <p align="center">
10
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/hero.jpg" alt="Codex Connect — ChatGPT OAuth for DeepSeek Harness" width="100%">
11
+ </p>
12
+
7
13
  `dsh-codex-connect` adds the `openai-codex` model catalog and a separate ChatGPT OAuth login. Models run through Harness's normal LLM service, so streaming, tool calls, reasoning replay, compaction, filesystem controls, permission gates, and approval prompts remain Harness-owned. It does not turn a ChatGPT subscription into an OpenAI Platform API credential.
8
14
 
9
15
  Installation is additive. The bundle does not replace the current default model or search route, and its standalone search provider and `view_image` tool are disabled until explicitly enabled.
10
16
 
17
+ ## See it in Harness
18
+
19
+ Sign in and manage the plugin from **Settings → Plugins → Plugin configuration → Codex Connect**.
20
+
21
+ <p align="center">
22
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/oauth-status.jpg" alt="Codex Connect ChatGPT OAuth status inside Harness plugin configuration" width="720">
23
+ </p>
24
+
25
+ Optional Codex search and `view_image` capabilities remain explicit, profile-scoped choices:
26
+
27
+ <p align="center">
28
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/plugin-configuration.jpg" alt="Codex Connect optional capability settings in DeepSeek Harness" width="720">
29
+ </p>
30
+
31
+ Codex models then appear in Harness's normal model picker alongside the existing providers:
32
+
33
+ <p align="center">
34
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/model-selector.jpg" alt="OpenAI Codex models in the DeepSeek Harness model picker" width="320">
35
+ </p>
36
+
11
37
  ## Install
12
38
 
13
39
  ```sh
14
- dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.3'
40
+ dsh plugin --profile web add dsh-codex-connect@alpha
15
41
  dsh web
16
42
  ```
17
43
 
18
- This installs the current alpha directly from its tagged GitHub release using Harness's supported Git package path. From a DeepSeek Harness source checkout, prefix commands with `pnpm`. For a local checkout, install `link:/absolute/path/to/dsh-codex-connect`.
44
+ To pin this release exactly, use `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.5`. If npm is unavailable, use the GitHub tag fallback: `dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.5'`. From a DeepSeek Harness source checkout, prefix commands with `pnpm`. For a local checkout, install `link:/absolute/path/to/dsh-codex-connect`.
19
45
 
20
46
  Sign in from **Settings → Plugins → Plugin configuration → Codex Connect → Sign in with ChatGPT**, or use the CLI:
21
47
 
@@ -92,7 +118,7 @@ To add the image-loading tool, set `enableImageTool: true` on `llm-openai-codex`
92
118
  - Remote `view_image` URLs are limited to public HTTP(S) destinations. Every DNS result and redirect is checked, and the connection is pinned to the validated address so localhost, private networks, link-local services, and cloud metadata endpoints remain unreachable.
93
119
  - No real OAuth operation is required for installation, build, tests, doctor, or package validation.
94
120
 
95
- See [INSTALL.md](INSTALL.md) for the idempotent agent runbook, [MIGRATION.md](MIGRATION.md) for migration from `dsh-codex`, and [docs/design.md](docs/design.md) for architecture details.
121
+ See [INSTALL.md](INSTALL.md) for the idempotent agent runbook, [RELEASING.md](RELEASING.md) for the Alpha release checklist, [MIGRATION.md](MIGRATION.md) for migration from `dsh-codex`, and [docs/design.md](docs/design.md) for architecture details.
96
122
 
97
123
  ## Development
98
124
 
@@ -1,21 +1,47 @@
1
1
  # Codex Connect
2
2
 
3
- [English](README.md) | 中文
3
+ [![npm version](https://img.shields.io/npm/v/dsh-codex-connect?label=npm&color=cb3837)](https://www.npmjs.com/package/dsh-codex-connect)
4
+
5
+ [English](../README.md) | 中文
4
6
 
5
7
  通过 OAuth 将你的 ChatGPT 订阅连接到 DeepSeek Harness,同时保留用户自主默认项、Harness 原生审批、非敏感诊断和可靠的会话恢复。
6
8
 
9
+ <p align="center">
10
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/hero.jpg" alt="Codex Connect — 通过 ChatGPT OAuth 连接 DeepSeek Harness" width="100%">
11
+ </p>
12
+
7
13
  `dsh-codex-connect` 提供 `openai-codex` 模型目录和独立的 ChatGPT OAuth 登录。模型仍走 Harness 标准 LLM 服务,因此流式输出、工具调用、reasoning replay、压缩、文件系统控制、权限门禁和审批提示仍由 Harness 负责。ChatGPT 订阅不会因此变成 OpenAI Platform API 凭据。
8
14
 
9
15
  安装是增量的:bundle 不会替换当前主模型或搜索路由;独立搜索提供方和 `view_image` 工具也默认关闭,必须显式开启。
10
16
 
17
+ ## 在 Harness 中的样子
18
+
19
+ 在 **设置 → 插件 → 插件配置 → Codex Connect** 中登录并管理插件。
20
+
21
+ <p align="center">
22
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/oauth-status.jpg" alt="Harness 插件配置中的 Codex Connect ChatGPT OAuth 状态" width="720">
23
+ </p>
24
+
25
+ Codex 搜索与 `view_image` 都是显式、按 profile 控制的可选能力:
26
+
27
+ <p align="center">
28
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/plugin-configuration.jpg" alt="DeepSeek Harness 中的 Codex Connect 可选能力设置" width="720">
29
+ </p>
30
+
31
+ Codex 模型会和现有提供方一起出现在 Harness 原生模型选择器中:
32
+
33
+ <p align="center">
34
+ <img src="https://raw.githubusercontent.com/franksong2702/dsh-codex-connect/main/docs/assets/model-selector.jpg" alt="DeepSeek Harness 模型选择器中的 OpenAI Codex 模型" width="320">
35
+ </p>
36
+
11
37
  ## 安装
12
38
 
13
39
  ```sh
14
- dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.3'
40
+ dsh plugin --profile web add dsh-codex-connect@alpha
15
41
  dsh web
16
42
  ```
17
43
 
18
- 该命令通过 Harness 支持的 Git package 方式,直接安装 GitHub 上带版本标签的当前 Alpha。在 DeepSeek Harness 源码 checkout 中运行时,在命令前加 `pnpm`。本地开发可安装 `link:/absolute/path/to/dsh-codex-connect`。
44
+ 如需精确固定此版本,使用 `dsh plugin --profile web add dsh-codex-connect@0.1.0-alpha.4.5`。若 npm 不可用,可使用 GitHub tag 兜底:`dsh plugin --profile web add 'github:franksong2702/dsh-codex-connect#v0.1.0-alpha.4.5'`。在 DeepSeek Harness 源码 checkout 中运行时,在命令前加 `pnpm`。本地开发可安装 `link:/absolute/path/to/dsh-codex-connect`。
19
45
 
20
46
  可在 **设置 → 插件 → 插件配置 → Codex Connect → 使用 ChatGPT 登录**,也可使用 CLI:
21
47
 
@@ -82,11 +108,11 @@ dsh plugin --profile web exec dsh-codex-connect doctor
82
108
  - 远程 `view_image` 只允许公共 HTTP(S) 目标;每一次 DNS 结果与重定向都会重新检查,并将连接固定到已验证地址,从而阻止 localhost、私网、link-local 服务和云元数据地址。
83
109
  - 安装、构建、测试、doctor 和包内容验证均不需要真实 OAuth。
84
110
 
85
- 详见 [INSTALL.md](INSTALL.md)、[MIGRATION.md](MIGRATION.md) 与 [docs/design.zh.md](docs/design.zh.md)。
111
+ 详见 [安装运行手册](../INSTALL.md)、[Alpha 发布清单](../RELEASING.md)、[MIGRATION.md](../MIGRATION.md) 与 [架构说明](design.zh.md)。
86
112
 
87
113
  ## 法律与致谢
88
114
 
89
- Codex Connect 的修改与新增工作 Copyright 2026 Frank Song。本项目包含派生自 [Yan-Zero/dsh-codex](https://github.com/Yan-Zero/dsh-codex) 的软件;上游内容继续保留 Copyright 2026 Yan-Zero。两部分均按 Apache-2.0 发布,详情见 [NOTICE](NOTICE)。本项目与 OpenAI、ChatGPT、Codex、DeepSeek 或 DeepSeek Harness 不存在隶属关系,也未获得其背书。
115
+ Codex Connect 的修改与新增工作 Copyright 2026 Frank Song。本项目包含派生自 [Yan-Zero/dsh-codex](https://github.com/Yan-Zero/dsh-codex) 的软件;上游内容继续保留 Copyright 2026 Yan-Zero。两部分均按 Apache-2.0 发布,详情见 [NOTICE](../NOTICE)。本项目与 OpenAI、ChatGPT、Codex、DeepSeek 或 DeepSeek Harness 不存在隶属关系,也未获得其背书。
90
116
 
91
117
  ## 许可证
92
118
 
Binary file
Binary file
Binary file
package/lib/bin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { A as logoutOpenAICodex, F as openAICodexAuthPath, j as openAICodexAuthStatus, k as loginOpenAICodex, w as diagnoseOpenAICodex } from "./src-ILOioCkA.js";
2
+ import { A as logoutOpenAICodex, F as openAICodexAuthPath, j as openAICodexAuthStatus, k as loginOpenAICodex, w as diagnoseOpenAICodex } from "./src-k439bIuH.js";
3
3
  import { spawn } from "node:child_process";
4
4
  import { realpathSync } from "node:fs";
5
5
  import { createInterface } from "node:readline/promises";
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as logoutOpenAICodex, C as assertNoOpenAICodexProviderConflict, D as parseOpenAICodexUsage, E as OPENAI_CODEX_USAGE_URL, F as openAICodexAuthPath, M as OPENAI_CODEX_AUTH_FILENAME, N as OPENAI_CODEX_PROVIDER, O as readOpenAICodexRateLimits, P as OpenAICodexCredentialStore, S as VIEW_IMAGE_TOOL_NAME, T as openAICodexConflictMessage, _ as decodeOpenAICodexSettings, a as name, b as installOpenAICodexSearchEvent, c as OPENAI_CODEX_SEARCH_URL, d as DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, f as DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, g as OPENAI_CODEX_SETTINGS_NAMESPACE, h as DEFAULT_OPENAI_CODEX_SETTINGS, i as inject, j as openAICodexAuthStatus, k as loginOpenAICodex, l as OpenAICodexSearchProvider, m as DEFAULT_OPENAI_CODEX_SEARCH_MODEL, n as OPENAI_CODEX_SETTINGS_NS, o as OPENAI_CODEX_BASE_URL, p as DEFAULT_OPENAI_CODEX_SEARCH_MODE, r as apply, s as OPENAI_CODEX_SEARCH_PROVIDER, t as Config, u as mapOpenAICodexSearchResponse, v as resolveOpenAICodexSettings, w as diagnoseOpenAICodex, x as recordOpenAICodexSearchRequest, y as OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT } from "./src-ILOioCkA.js";
1
+ import { A as logoutOpenAICodex, C as assertNoOpenAICodexProviderConflict, D as parseOpenAICodexUsage, E as OPENAI_CODEX_USAGE_URL, F as openAICodexAuthPath, M as OPENAI_CODEX_AUTH_FILENAME, N as OPENAI_CODEX_PROVIDER, O as readOpenAICodexRateLimits, P as OpenAICodexCredentialStore, S as VIEW_IMAGE_TOOL_NAME, T as openAICodexConflictMessage, _ as decodeOpenAICodexSettings, a as name, b as installOpenAICodexSearchEvent, c as OPENAI_CODEX_SEARCH_URL, d as DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, f as DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, g as OPENAI_CODEX_SETTINGS_NAMESPACE, h as DEFAULT_OPENAI_CODEX_SETTINGS, i as inject, j as openAICodexAuthStatus, k as loginOpenAICodex, l as OpenAICodexSearchProvider, m as DEFAULT_OPENAI_CODEX_SEARCH_MODEL, n as OPENAI_CODEX_SETTINGS_NS, o as OPENAI_CODEX_BASE_URL, p as DEFAULT_OPENAI_CODEX_SEARCH_MODE, r as apply, s as OPENAI_CODEX_SEARCH_PROVIDER, t as Config, u as mapOpenAICodexSearchResponse, v as resolveOpenAICodexSettings, w as diagnoseOpenAICodex, x as recordOpenAICodexSearchRequest, y as OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT } from "./src-k439bIuH.js";
2
2
  export { Config, DEFAULT_OPENAI_CODEX_SEARCH_CONTEXT_SIZE, DEFAULT_OPENAI_CODEX_SEARCH_MAX_OUTPUT_TOKENS, DEFAULT_OPENAI_CODEX_SEARCH_MODE, DEFAULT_OPENAI_CODEX_SEARCH_MODEL, DEFAULT_OPENAI_CODEX_SETTINGS, OPENAI_CODEX_AUTH_FILENAME, OPENAI_CODEX_BASE_URL, OPENAI_CODEX_PROVIDER, OPENAI_CODEX_SEARCH_MODEL_REQUEST_EVENT, OPENAI_CODEX_SEARCH_PROVIDER, OPENAI_CODEX_SEARCH_URL, OPENAI_CODEX_SETTINGS_NAMESPACE, OPENAI_CODEX_SETTINGS_NS, OPENAI_CODEX_USAGE_URL, OpenAICodexCredentialStore, OpenAICodexSearchProvider, VIEW_IMAGE_TOOL_NAME, apply, assertNoOpenAICodexProviderConflict, decodeOpenAICodexSettings, diagnoseOpenAICodex, inject, installOpenAICodexSearchEvent, loginOpenAICodex, logoutOpenAICodex, mapOpenAICodexSearchResponse, name, openAICodexAuthPath, openAICodexAuthStatus, openAICodexConflictMessage, parseOpenAICodexUsage, readOpenAICodexRateLimits, recordOpenAICodexSearchRequest, resolveOpenAICodexSettings };
@@ -618,7 +618,7 @@ function registerOpenAICodexAuthRoutes(ctx, store) {
618
618
  }
619
619
  //#endregion
620
620
  //#region src/version.ts
621
- const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.3";
621
+ const CODEX_CONNECT_VERSION = "0.1.0-alpha.4.5";
622
622
  //#endregion
623
623
  //#region src/doctor.ts
624
624
  /** Secret-free diagnostics and duplicate-provider guidance. */
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "dsh-codex-connect",
3
3
  "displayName": "Codex Connect",
4
4
  "description": "ChatGPT OAuth and Codex models for DeepSeek Harness.",
5
- "version": "0.1.0-alpha.4.3",
5
+ "version": "0.1.0-alpha.4.5",
6
6
  "author": "Frank Song",
7
7
  "contributors": [
8
8
  "Yan-Zero (original dsh-codex author)"
@@ -17,7 +17,8 @@
17
17
  ],
18
18
  "publishConfig": {
19
19
  "access": "public",
20
- "registry": "https://registry.npmjs.org/"
20
+ "registry": "https://registry.npmjs.org/",
21
+ "tag": "alpha"
21
22
  },
22
23
  "repository": {
23
24
  "type": "git",