@young1lin/dsh-gpt-sub 0.1.1 → 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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  记录用户可感知的变化;格式参考 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)。
4
4
  版本号见 `package.json`。
5
5
 
6
+ ## [0.1.2] - 2026-10-05
7
+
8
+ ### 新增
9
+
10
+ - 接管 `openai-codex` 路由的自动压力、上下文溢出及手动 `/compact` 压缩,使用所选模型的 Codex 原生 `compaction_trigger` 协议。
11
+ - 将加密 checkpoint 持久化到 Session,支持恢复、后续对话和连续压缩;原生请求失败时保留原历史,其他提供方继续使用 DSH basic 压缩。
12
+ - 增加原生请求超时、响应大小和保留用户消息预算配置。原生压缩需要宿主 `dsh-llm-pi-ai` 提供 `llm-pi-ai/stream` 扩展;缺失时 `openai-codex` 自动回退 DSH basic 压缩,其余功能不受影响。已压缩的 Session 必须使用同一模型。
13
+ - 增加本地 Web profile 的压缩后端包映射,使现有预设加载原生后端;普通 `dsh web` 启动使用本地构建。
14
+ - 开发依赖改为 registry 版本(DSH `0.2.1-alpha.1` 系列),CI 无需本地 Harness 源码检出即可安装、构建、测试与发布。
15
+
6
16
  ## [0.1.1] - 2026-10-01
7
17
 
8
18
  ### 修复
package/README.md CHANGED
@@ -4,15 +4,7 @@ Direct ChatGPT/Codex subscription access for DeepSeek Harness (DSH).
4
4
 
5
5
  Published on npm as **`@young1lin/dsh-gpt-sub`** (public, MIT).
6
6
 
7
- This plugin owns no transport. pi-ai already ships an `openai-codex` provider
8
- that speaks the Codex wire format — it sets `store`, derives
9
- `chatgpt-account-id` from the access token's own JWT claim, and speaks the
10
- codex-responses protocol — but it authenticates only through OAuth, and
11
- `dsh-llm-pi-ai` runs no login flow and holds no OAuth store. Naming a
12
- credential on the route grafts an api-key method beside the provider's own,
13
- and that credential is the seam this plugin fills: it keeps a live Codex
14
- access token in the harness credential store, refreshing it from
15
- `~/.codex/auth.json` before it expires.
7
+ The plugin refreshes the Codex CLI subscription token, routes Codex egress, and uses Codex native context compaction for the `openai-codex` provider. Normal conversation requests use pi-ai; native encrypted checkpoints are stored in the Session and restored into subsequent Responses requests.
16
8
 
17
9
  The result needs no loopback port, no shared local key, and no external proxy
18
10
  binary. The `codex` CLI still owns the login.
@@ -40,7 +32,7 @@ into the profile and mounts the bundled `cordis.patch.yml` automatically — no
40
32
  manual yml editing:
41
33
 
42
34
  ```powershell
43
- # Prereqs: Node ≥ 22.13 (the pnpm-managed toolchain needs 22.13+), dsh 0.2.0-rc.2 or compatible 0.2.x (required by this release's DSH peers),
35
+ # Prereqs: Node ≥ 22.19, DSH 0.2.1-alpha.1 with the llm-pi-ai/stream extension,
44
36
  # pnpm on PATH (corepack enable or npm i -g pnpm)
45
37
  dsh plugin --profile web add @young1lin/dsh-gpt-sub
46
38
  dsh web # restart the host (the host half is module code)
@@ -67,13 +59,15 @@ into the profile and list it in `dsh.profile.bundles`:
67
59
 
68
60
  The bundle ships its own `cordis.patch.yml` with two rows:
69
61
 
70
- - an **insert** for the `gpt-sub` plugin itself (token sync, proxy routing, quota panel), and
62
+ - an **insert** for the `gpt-sub` plugin itself (token sync, proxy routing, quota panel),
71
63
  - an **edit** (no `insert:`) of the dormant `llm-pi-ai` row `@deepseek-ai/dsh-base` mounts,
72
- seeding the provider route:
64
+ seeding the provider route.
65
+
66
+ The token plugin's configuration is:
73
67
 
74
68
  ```yaml
75
- - id: llm-pi-ai
76
- name: '@deepseek-ai/dsh-llm-pi-ai'
69
+ - id: gpt-sub
70
+ name: '@young1lin/dsh-gpt-sub'
77
71
  config:
78
72
  proxyUrl: http://127.0.0.1:7890
79
73
  authFile: ~/.codex/auth.json
@@ -144,6 +138,19 @@ provider knows the Codex backend itself.
144
138
  | `syncIntervalMinutes` | `10` | How often to re-read auth.json and republish the token. |
145
139
  | `bootstrapRetries` | `3` | Connection-level retries per request when the link to the proxy drops. |
146
140
  | `stateFile` | `~/.dsh/gpt-sub.json` | Persisted panel overrides (`proxyUrl`, `authFile`); a field present in the file wins over the config's. |
141
+ | `nativeCompactionTimeoutMs` | `300000` | Maximum duration of one native compaction request. |
142
+ | `nativeRetainTokens` | `64000` | Estimated token budget for recent user messages retained beside the encrypted checkpoint; `0` retains none. |
143
+ | `nativeResponseMaxBytes` | `16777216` | Maximum streamed compaction response bytes. |
144
+
145
+ ## Native context compaction
146
+
147
+ Select `@young1lin/dsh-gpt-sub/compaction` as the backend inside the existing preset's compaction group. This backend uses native compaction for Codex Subscription (`openai-codex`) models, including Luna. Automatic pressure, context overflow, and `/compact` send the actual selected model's full balanced history, current instructions, and tools to the Codex Responses endpoint with a final `compaction_trigger` input item. The backend requires one encrypted `compaction` output item and a completed response; an upstream rejection or cancellation preserves the existing history and reports the failure without switching to text summarization.
148
+
149
+ The Session stores a replacement message containing the retained user items, opaque checkpoint, exact provider/model identity, and token count. Subsequent requests expand that replacement into native Responses input, including after restoration and before a second compaction. Ciphertext length does not determine automatic compaction pressure. Other providers use DSH basic compaction and its existing configuration.
150
+
151
+ Native compaction activates only when the host's `dsh-llm-pi-ai` provides the `llm-pi-ai/stream` extension. On adapters without it the plugin loads normally, `openai-codex` keeps DSH basic compaction, and every other feature is unchanged — no companion checkout required. After a native checkpoint is created, keep the same provider and model in that Session; start a new Session to switch models. Keep the plugin enabled when resuming these Sessions.
152
+
153
+ For a local trial, build the plugin with `pnpm install`, `pnpm run typecheck`, `pnpm test`, and `pnpm run build`. Link the plugin, companion adapter, and `local/compaction-provider` into the Web profile as described in `LOCAL-TRIAL.md`; ordinary `dsh web` then loads these builds in existing presets. The local provider alias re-exports basic compaction's named API and selects the native backend as its default plugin. Cordis patch `name` fields assert existing module names and cannot rename them. Choose either configured Luna model, let a conversation grow, and run `/compact`. A successful request logs `Codex native compaction (<selected-model>)`; send another message to exercise encrypted-context replay.
147
154
 
148
155
  ## Why `bootstrapRetries` exists
149
156
 
package/cordis.patch.yml CHANGED
@@ -1,4 +1,4 @@
1
- # dsh-gpt-sub bundle patch, two rows over the profile root.
1
+ # dsh-gpt-sub bundle patch over the profile root.
2
2
  #
3
3
  # Row 1 (insert): the plugin itself -- token sync, host-scoped proxy routing,
4
4
  # and the quota panel. Later user patch layers address this row by id and
@@ -0,0 +1,22 @@
1
+ /** Durable compaction locking and native token deltas for restored Sessions. */
2
+ import type { ProjectionDefinition } from '@deepseek-ai/dsh-session-projection';
3
+ import { z } from 'zod';
4
+ declare const stateSchema: z.ZodObject<{
5
+ systemHead: z.ZodNullable<z.ZodBoolean>;
6
+ openTurn: z.ZodNullable<z.ZodNumber>;
7
+ activeCompaction: z.ZodNullable<z.ZodString>;
8
+ checkpointSeq: z.ZodNullable<z.ZodNumber>;
9
+ nativeExtraTokens: z.ZodNumber;
10
+ lastAssistantExtraTokens: z.ZodNumber;
11
+ }, z.core.$strip>;
12
+ /** Compaction lifecycle and pressure facts folded from the Session log. */
13
+ export type NativeCompactionState = z.infer<typeof stateSchema>;
14
+ declare module '@deepseek-ai/dsh-session-projection/types' {
15
+ interface SessionProjectionStateMap {
16
+ gptSubCompaction: NativeCompactionState;
17
+ }
18
+ }
19
+ /** Pure fold used by both live compaction and Session restoration. */
20
+ export declare const nativeCompactionProjection: ProjectionDefinition<'gptSubCompaction'>;
21
+ export {};
22
+ //# sourceMappingURL=compaction-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-state.d.ts","sourceRoot":"","sources":["../src/compaction-state.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,QAAA,MAAM,WAAW;;;;;;;iBAOf,CAAA;AAEF,2EAA2E;AAC3E,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/D,OAAO,QAAQ,2CAA2C,CAAC;IACzD,UAAU,yBAAyB;QAAG,gBAAgB,EAAE,qBAAqB,CAAA;KAAE;CAChF;AAED,sEAAsE;AACtE,eAAO,MAAM,0BAA0B,EAAE,oBAAoB,CAAC,kBAAkB,CA6B/E,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { z } from 'zod';
2
+ import { readCheckpoint } from "./native-history.js";
3
+ const stateSchema = z.object({
4
+ systemHead: z.boolean().nullable(),
5
+ openTurn: z.number().nullable(),
6
+ activeCompaction: z.string().nullable(),
7
+ checkpointSeq: z.number().nullable(),
8
+ nativeExtraTokens: z.number(),
9
+ lastAssistantExtraTokens: z.number(),
10
+ });
11
+ /** Pure fold used by both live compaction and Session restoration. */
12
+ export const nativeCompactionProjection = {
13
+ key: 'gptSubCompaction', stateSchema, stateVersion: 1,
14
+ init: () => ({ systemHead: null, openTurn: null, activeCompaction: null, checkpointSeq: null, nativeExtraTokens: 0, lastAssistantExtraTokens: 0 }),
15
+ apply(state, event) {
16
+ if (state.systemHead === null && 'surfaceOp' in event)
17
+ state = { ...state, systemHead: event.type === 'system/message' };
18
+ switch (event.type) {
19
+ case 'turn/start': return { ...state, openTurn: event.data.turn };
20
+ case 'turn/end': return { ...state, openTurn: null };
21
+ case 'session/end-seed': return { ...state, openTurn: null, activeCompaction: null };
22
+ case 'compaction/start': return { ...state, activeCompaction: event.data.compactionId };
23
+ case 'compaction/end': return { ...state, activeCompaction: null };
24
+ case 'assistant/message': return { ...state, lastAssistantExtraTokens: state.nativeExtraTokens };
25
+ case 'user/message': {
26
+ const checkpoint = readCheckpoint(event.data.source);
27
+ if (checkpoint !== undefined) {
28
+ const text = event.data.content.filter(block => block.type === 'text').map(block => block.text).join('');
29
+ return {
30
+ ...state, checkpointSeq: event.seq,
31
+ nativeExtraTokens: checkpoint.contextTokens - (Math.ceil(text.length / 4) + 8),
32
+ };
33
+ }
34
+ if (state.checkpointSeq !== null && event.sourceEventSeqs?.some(seq => seq === state.checkpointSeq)) {
35
+ return { ...state, checkpointSeq: null, nativeExtraTokens: 0 };
36
+ }
37
+ return state;
38
+ }
39
+ default: return state;
40
+ }
41
+ },
42
+ };
43
+ //# sourceMappingURL=compaction-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-state.js","sourceRoot":"","sources":["../src/compaction-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { Context } from '@deepseek-ai/cordis';
2
+ import type { Agent } from '@deepseek-ai/dsh-agent';
3
+ import type { CommandId } from '@deepseek-ai/dsh-commands/brand';
4
+ import { type CompactionResult, type CompactionTrigger } from '@deepseek-ai/dsh-compaction';
5
+ import { BasicCompactionEngine, type BasicCompactionConfig } from '@deepseek-ai/dsh-compaction-basic';
6
+ import type { SessionSeq } from '@deepseek-ai/dsh-session';
7
+ /** Compaction backend selected by the sub bundle. Other routes retain basic compaction. */
8
+ export default class CodexCompactionEngine extends BasicCompactionEngine {
9
+ static inject: string[];
10
+ constructor(ctx: Context, config?: BasicCompactionConfig);
11
+ compactIfNeeded(agent: Agent, trigger: CompactionTrigger, signal: AbortSignal): Promise<CompactionResult | null>;
12
+ compactNow(agent: Agent, signal: AbortSignal, sourceCommandId?: CommandId): Promise<CompactionResult | null>;
13
+ compactRegion(start: SessionSeq, end: SessionSeq, agent: Agent, signal?: AbortSignal): Promise<CompactionResult>;
14
+ private isCodex;
15
+ private state;
16
+ private nativePressure;
17
+ private wholeRange;
18
+ private nativeRegion;
19
+ }
20
+ //# sourceMappingURL=compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAA;AAChE,OAAO,EAGL,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAC9C,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,qBAAqB,EAAE,KAAK,qBAAqB,EAAE,MAAM,mCAAmC,CAAA;AAErG,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAMnE,2FAA2F;AAC3F,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,qBAAqB;IACtE,OAAgB,MAAM,WAA0E;gBAEpF,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,qBAA0B;IAK7C,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAuBtH,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAuB5G,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAOzH,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,KAAK;IAMb,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,UAAU;YAUJ,YAAY;CA6E3B"}
@@ -0,0 +1,188 @@
1
+ /** Routes Codex Subscription compaction to native Responses checkpoints. */
2
+ import { randomUUID } from 'node:crypto';
3
+ import { isDeepStrictEqual } from 'node:util';
4
+ import { CompactionId, compactCheckpointSource, ManualCompactionError, toolPairingBalancedAfter, toolPairingBalancedBefore, } from '@deepseek-ai/dsh-compaction';
5
+ import { BasicCompactionEngine } from '@deepseek-ai/dsh-compaction-basic';
6
+ import { BlockAssembler, createUserMessage } from '@deepseek-ai/dsh-llm';
7
+ import { hasPiAiNativeStream } from "./native-bridge.js";
8
+ import { nativeCompactionProjection } from "./compaction-state.js";
9
+ import { nativeItemTokens, nativeResult } from "./native-history.js";
10
+ /** Compaction backend selected by the sub bundle. Other routes retain basic compaction. */
11
+ export default class CodexCompactionEngine extends BasicCompactionEngine {
12
+ static inject = ['llm', 'tokenMeter', 'sessions', 'sessionProjections', 'gptSubNative'];
13
+ constructor(ctx, config = {}) {
14
+ super(ctx, config);
15
+ ctx.effect(() => ctx.sessionProjections.register(nativeCompactionProjection));
16
+ }
17
+ async compactIfNeeded(agent, trigger, signal) {
18
+ // Without the llm-pi-ai/stream extension the native protocol cannot run;
19
+ // Codex Subscription then keeps DSH basic compaction like every other route.
20
+ if (!this.isCodex(agent) || !hasPiAiNativeStream())
21
+ return super.compactIfNeeded(agent, trigger, signal);
22
+ signal.throwIfAborted();
23
+ const header = agent.session.requestHeader();
24
+ if (header === undefined)
25
+ return null;
26
+ if (trigger === 'pressure') {
27
+ const info = await this.ctx.llm.resolveModelInfo(header.config.provider, header.config.model, signal);
28
+ if (info.context === undefined)
29
+ throw new Error('Codex native compaction requires the model contextWindow');
30
+ const override = this.config.modelPolicies.find(value => value.provider === header.config.provider && value.model === header.config.model);
31
+ const ratio = override?.thresholdRatio ?? this.config.thresholdRatio;
32
+ const headroom = override?.headroomTokens ?? this.config.headroomTokens;
33
+ const reserve = header.config.maxTokens ?? info.defaultMaxTokens ?? 0;
34
+ const threshold = Math.min(Math.floor(info.context.contextWindow * ratio), info.context.contextWindow - reserve - headroom);
35
+ if (threshold <= 0)
36
+ throw new Error('Codex compaction headroom and output reservation exhaust contextWindow');
37
+ if (this.nativePressure(agent.session) < threshold)
38
+ return null;
39
+ }
40
+ const range = this.wholeRange(agent.session);
41
+ if (range === null)
42
+ return null;
43
+ return this.compactRegion(range.start, range.end, agent, signal);
44
+ }
45
+ compactNow(agent, signal, sourceCommandId) {
46
+ if (!this.isCodex(agent) || !hasPiAiNativeStream())
47
+ return super.compactNow(agent, signal, sourceCommandId);
48
+ signal.throwIfAborted();
49
+ try {
50
+ return agent.runMaintenance(async (agentSignal) => {
51
+ const operationSignal = AbortSignal.any([agentSignal, signal]);
52
+ const range = this.wholeRange(agent.session);
53
+ if (range === null)
54
+ return null;
55
+ try {
56
+ const result = await this.nativeRegion(range.start, range.end, agent, operationSignal, null, sourceCommandId);
57
+ await this.ctx.sessions.flush(agent.session);
58
+ return result;
59
+ }
60
+ catch (error) {
61
+ if (agentSignal.aborted)
62
+ throw new ManualCompactionError('cancelled', 'Codex native compaction was cancelled', { cause: error });
63
+ operationSignal.throwIfAborted();
64
+ throw error;
65
+ }
66
+ });
67
+ }
68
+ catch (error) {
69
+ throw new ManualCompactionError('busy', 'manual Codex compaction requires an idle agent', { cause: error });
70
+ }
71
+ }
72
+ compactRegion(start, end, agent, signal) {
73
+ if (!this.isCodex(agent) || !hasPiAiNativeStream())
74
+ return super.compactRegion(start, end, agent, signal);
75
+ const owner = this.state(agent.session).openTurn;
76
+ if (owner === null)
77
+ return Promise.reject(new Error('automatic Codex compaction requires an open turn'));
78
+ return this.nativeRegion(start, end, agent, signal ?? new AbortController().signal, owner);
79
+ }
80
+ isCodex(agent) {
81
+ return (agent.session.requestHeader()?.config.provider ?? agent.options.provider) === 'openai-codex';
82
+ }
83
+ state(session) {
84
+ const state = this.ctx.sessionProjections.stateOf(session, 'gptSubCompaction');
85
+ if (state === undefined)
86
+ throw new Error('Codex compaction projection is not registered');
87
+ return state;
88
+ }
89
+ nativePressure(session) {
90
+ const measurement = this.ctx.tokenMeter.measure(session);
91
+ const state = this.state(session);
92
+ const correction = measurement.baseline.kind === 'usage'
93
+ ? state.nativeExtraTokens - state.lastAssistantExtraTokens
94
+ : state.nativeExtraTokens;
95
+ return Math.max(0, measurement.totalTokens + correction);
96
+ }
97
+ wholeRange(session) {
98
+ const nodes = session.surface.nodes;
99
+ const first = this.state(session).systemHead === true ? 1 : 0;
100
+ const start = nodes[first];
101
+ const end = nodes.at(-1);
102
+ if (start === undefined || end === undefined || nodes.length - first < 2)
103
+ return null;
104
+ if (!toolPairingBalancedBefore(session, start) || !toolPairingBalancedAfter(session, end))
105
+ return null;
106
+ return { start, end };
107
+ }
108
+ async nativeRegion(start, end, agent, signal, owner, sourceCommandId) {
109
+ signal.throwIfAborted();
110
+ const session = agent.session;
111
+ const state = this.state(session);
112
+ if (state.activeCompaction !== null || state.openTurn !== owner) {
113
+ throw new ManualCompactionError('busy', 'another turn or compaction owns this Session');
114
+ }
115
+ const range = this.wholeRange(session);
116
+ if (range === null || range.start !== start || range.end !== end) {
117
+ throw new Error('native Codex compaction requires the complete balanced history after the system head');
118
+ }
119
+ const nodes = [...session.surface.nodes];
120
+ const first = nodes.indexOf(start);
121
+ const last = nodes.indexOf(end);
122
+ const shadowedSeqs = nodes.slice(first, last + 1);
123
+ const messages = [...session.deriveMessages()];
124
+ const measurement = this.ctx.tokenMeter.measure(session);
125
+ const shadowedTokenCount = measurement.nodes.slice(first, last + 1).reduce((sum, node) => sum + node.heuristicTokens, 0);
126
+ const previousTokens = measurement.nodes.slice(first, last + 1).reduce((sum, node) => sum + node.tokens, 0)
127
+ + state.nativeExtraTokens;
128
+ const header = session.requestHeader();
129
+ const provider = header?.config.provider ?? agent.options.provider;
130
+ const model = header?.config.model ?? agent.options.model;
131
+ if (provider !== 'openai-codex' || model === undefined)
132
+ throw new Error('native Codex compaction requires a routed subscription model');
133
+ const compactionId = CompactionId(randomUUID());
134
+ const lifecycle = { compactionId, turn: owner, ...sourceCommandId === undefined ? {} : { sourceCommandId } };
135
+ const startEvent = session.append('compaction/start', lifecycle);
136
+ let closing = false;
137
+ try {
138
+ const assembler = new BlockAssembler();
139
+ for await (const chunk of this.ctx.llm.stream({
140
+ provider, model, messages, purpose: 'compaction', sessionId: session.id, signal,
141
+ toolHistory: session.toolHistory(),
142
+ ...header?.tools === undefined ? {} : { tools: [...header.tools] },
143
+ ...header?.config.reasoningEffort === undefined ? {} : { reasoningEffort: header.config.reasoningEffort },
144
+ }))
145
+ assembler.push(chunk);
146
+ signal.throwIfAborted();
147
+ if (assembler.finish.kind === 'error' || assembler.finish.kind === 'aborted') {
148
+ throw new Error(assembler.finish.failure.message);
149
+ }
150
+ const result = nativeResult(assembler.blocks());
151
+ const contextTokens = result.summaryTokens + result.retained.reduce((sum, item) => sum + nativeItemTokens(item), 0);
152
+ if (contextTokens >= previousTokens)
153
+ throw new Error('Codex native compaction did not reduce context tokens');
154
+ const currentNodes = session.surface.nodes;
155
+ if (!isDeepStrictEqual(currentNodes.slice(first, last + 1), shadowedSeqs)
156
+ || !isDeepStrictEqual(session.deriveMessages().slice(0, messages.length), messages)) {
157
+ throw new ManualCompactionError('changed', 'Session history changed during Codex native compaction');
158
+ }
159
+ const source = {
160
+ ...compactCheckpointSource(compactionId, sourceCommandId),
161
+ nativeCodex: { version: 1, provider, model, items: [...result.retained, result.item], contextTokens },
162
+ };
163
+ const summary = [{ type: 'text', text: `[Codex native checkpoint ${compactionId}]` }];
164
+ const summaryEvent = session.append('compaction/summary', {
165
+ compactionId, ...sourceCommandId === undefined ? {} : { sourceCommandId },
166
+ summary, rawOutput: assembler.blocks(), llmStreamCall: true,
167
+ shadowedRange: { start, end }, shadowedSeqs, shadowedTokenCount, provider, model,
168
+ ...assembler.usage === undefined ? {} : { usage: assembler.usage },
169
+ });
170
+ session.append('user/message', createUserMessage({ content: summary, source }), {
171
+ surfaceOp: { op: 'replace', startSeq: start, endSeq: end },
172
+ sourceEventSeqs: [startEvent.seq, summaryEvent.seq, ...shadowedSeqs],
173
+ });
174
+ closing = true;
175
+ const endEvent = session.append('compaction/end', lifecycle);
176
+ this.ctx.logger.info('Codex native compaction (%s): %s, summary %d tokens, retained %d messages', model, compactionId, result.summaryTokens, result.retained.length);
177
+ return { compactionId, ...sourceCommandId === undefined ? {} : { sourceCommandId },
178
+ startSeq: startEvent.seq, summarySeq: summaryEvent.seq, endSeq: endEvent.seq,
179
+ summary, shadowedRange: { start, end }, shadowedSeqs, shadowedTokenCount };
180
+ }
181
+ catch (error) {
182
+ if (!closing)
183
+ session.append('compaction/end', { ...lifecycle, error: error instanceof Error ? error.message : String(error) });
184
+ throw error;
185
+ }
186
+ }
187
+ }
188
+ //# sourceMappingURL=compaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,15 +1,9 @@
1
1
  /**
2
2
  * Direct ChatGPT/Codex subscription access for DeepSeek Harness.
3
3
  *
4
- * This plugin owns no transport. pi-ai already ships an `openai-codex`
5
- * provider that knows the Codex wire format -- it sets `store`, derives
6
- * `chatgpt-account-id` from the access token's own JWT claim, and speaks the
7
- * codex-responses protocol -- but it authenticates only through OAuth, and
8
- * `dsh-llm-pi-ai` runs no login flow and holds no OAuth store. Naming a
9
- * credential on the route grafts an api-key method beside the provider's own,
10
- * which is the seam this plugin fills: it keeps a live Codex access token in
11
- * the harness credential store, refreshing it from `~/.codex/auth.json` before
12
- * it expires.
4
+ * The plugin refreshes the Codex CLI subscription token, routes Codex egress,
5
+ * and executes native context compaction. pi-ai serves normal conversation
6
+ * requests and replays the encrypted checkpoints stored in Session history.
13
7
  *
14
8
  * The result needs no loopback port, no shared local key, and no external
15
9
  * proxy binary. The `codex` CLI still owns the login.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAsBxC,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAKvD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAA;AAEhC,0BAA0B;AAC1B,eAAO,MAAM,IAAI,YAAY,CAAA;AAE7B;;;;GAIG;AACH,eAAO,MAAM,MAAM,UAA+B,CAAA;AA2ClD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,CAqBd,CAAA;AAO1C;;;;;;;;;;;;GAYG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAwhB3F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAuBxC,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAKvD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAA;AAEhC,0BAA0B;AAC1B,eAAO,MAAM,IAAI,YAAY,CAAA;AAE7B;;;;GAIG;AACH,eAAO,MAAM,MAAM,UAA+B,CAAA;AA2ClD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,WAAW,CAwBd,CAAA;AAO1C;;;;;;;;;;;;GAYG;AACH,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CA2hB3F"}
package/lib/index.js CHANGED
@@ -1,15 +1,9 @@
1
1
  /**
2
2
  * Direct ChatGPT/Codex subscription access for DeepSeek Harness.
3
3
  *
4
- * This plugin owns no transport. pi-ai already ships an `openai-codex`
5
- * provider that knows the Codex wire format -- it sets `store`, derives
6
- * `chatgpt-account-id` from the access token's own JWT claim, and speaks the
7
- * codex-responses protocol -- but it authenticates only through OAuth, and
8
- * `dsh-llm-pi-ai` runs no login flow and holds no OAuth store. Naming a
9
- * credential on the route grafts an api-key method beside the provider's own,
10
- * which is the seam this plugin fills: it keeps a live Codex access token in
11
- * the harness credential store, refreshing it from `~/.codex/auth.json` before
12
- * it expires.
4
+ * The plugin refreshes the Codex CLI subscription token, routes Codex egress,
5
+ * and executes native context compaction. pi-ai serves normal conversation
6
+ * requests and replays the encrypted checkpoints stored in Session history.
13
7
  *
14
8
  * The result needs no loopback port, no shared local key, and no external
15
9
  * proxy binary. The `codex` CLI still owns the login.
@@ -28,6 +22,7 @@ import { consumeResetCredit, listResetCredits } from "./reset-credits.js";
28
22
  import { installProxyRouting } from "./proxy-routing.js";
29
23
  import { QuotaSource } from "./quota-route.js";
30
24
  import { TokenStore } from "./token-store.js";
25
+ import { CodexNativeBridge } from "./native-bridge.js";
31
26
  import { fetchUsage, reportedWindows } from "./usage.js";
32
27
  /** Cordis plugin name. */
33
28
  export const name = 'gpt-sub';
@@ -93,6 +88,9 @@ export const Config = z.object({
93
88
  // exists, its proxyUrl wins over the config's -- a page edit survives
94
89
  // restarts without touching cordis config layers.
95
90
  stateFile: z.string().default('~/.dsh/gpt-sub.json'),
91
+ nativeCompactionTimeoutMs: z.number().step(1).min(1).default(300_000),
92
+ nativeRetainTokens: z.number().step(1).min(0).default(64_000),
93
+ nativeResponseMaxBytes: z.number().step(1).min(1).default(16 * 1024 * 1024),
96
94
  });
97
95
  /** Expand a leading `~` against the current user's home directory. */
98
96
  function expandHome(path) {
@@ -180,6 +178,8 @@ export async function apply(ctx, config) {
180
178
  throw error;
181
179
  }
182
180
  ctx.logger.info('gpt-sub: published Codex access token to %s', config.tokenRef);
181
+ const nativeBridge = new CodexNativeBridge(ctx, config);
182
+ ctx.effect(() => () => nativeBridge.stop());
183
183
  // Reachability probe. An unproxied egress answers 403 with a Cloudflare
184
184
  // block page, and that failure is otherwise invisible until the first model
185
185
  // call, where it surfaces as unreadable HTML. Log it loudly here instead.
@@ -572,6 +572,7 @@ export async function apply(ctx, config) {
572
572
  timer.unref?.();
573
573
  return async () => {
574
574
  clearInterval(timer);
575
+ await nativeBridge.stop();
575
576
  // Restores the previous global dispatcher before closing the agent, so a
576
577
  // fiber restart never leaves the host dispatching into a closing proxy.
577
578
  await switching.catch(() => undefined);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}