@ccpocket/bridge 1.67.4 → 1.68.1

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/README.md CHANGED
@@ -42,6 +42,8 @@ ccpocket-bridge --version
42
42
  | `BRIDGE_PUBLIC_WS_URL` | (none) | Public `ws://` / `wss://` URL used for startup deep link and QR code |
43
43
  | `BRIDGE_CODEX_APP_SERVER_MODE` | `private` | Experimental Codex app-server mode: `private`, `managed`, or `external` |
44
44
  | `BRIDGE_CODEX_SHARED_APP_SERVER_URL` | `ws://127.0.0.1:8767` in `managed` mode | Experimental shared Codex app-server URL for Codex CLI co-presence |
45
+ | `BRIDGE_CODEX_ASSIST_MODEL` | `gpt-5.4-mini` | Codex model used for auto-rename and commit-message assist calls |
46
+ | `BRIDGE_CODEX_ASSIST_REASONING_EFFORT` | `none` | Reasoning effort used for Codex assist calls |
45
47
  | `BRIDGE_DEMO_MODE` | (none) | Demo mode: hide Tailscale IPs and API key from QR code / logs |
46
48
  | `BRIDGE_RECORDING` | (none) | Enable session recording for debugging (enabled when set) |
47
49
  | `BRIDGE_DISABLE_MDNS` | (none) | Disable mDNS auto-discovery advertisement (macOS disables it automatically) |
@@ -83,6 +85,11 @@ ccpocket-bridge --public-ws-url wss://example.ngrok-free.app
83
85
  BRIDGE_DISABLE_MDNS=1 npx @ccpocket/bridge@latest
84
86
  # or via CLI flag
85
87
  ccpocket-bridge --no-mdns
88
+
89
+ # Example: use an assist model provided by a custom Codex gateway
90
+ BRIDGE_CODEX_ASSIST_MODEL=gpt-oss:20b-cloud \
91
+ BRIDGE_CODEX_ASSIST_REASONING_EFFORT=none \
92
+ npx @ccpocket/bridge@latest
86
93
  ```
87
94
 
88
95
  When `BRIDGE_PUBLIC_WS_URL` is set, the startup deep link and terminal QR code
@@ -111,6 +118,8 @@ that affect startup:
111
118
  - `BRIDGE_DISABLE_MDNS` / `--no-mdns`
112
119
  - `BRIDGE_CODEX_APP_SERVER_MODE` / `--codex-app-server-mode`
113
120
  - `BRIDGE_CODEX_SHARED_APP_SERVER_URL` / `--codex-shared-app-server-url`
121
+ - `BRIDGE_CODEX_ASSIST_MODEL`
122
+ - `BRIDGE_CODEX_ASSIST_REASONING_EFFORT`
114
123
 
115
124
  Example:
116
125
 
@@ -120,6 +129,14 @@ BRIDGE_API_KEY=my-secret \
120
129
  npx @ccpocket/bridge@latest setup
121
130
  ```
122
131
 
132
+ Custom gateway users can persist assist overrides in the same way:
133
+
134
+ ```bash
135
+ BRIDGE_CODEX_ASSIST_MODEL=gpt-oss:20b-cloud \
136
+ BRIDGE_CODEX_ASSIST_REASONING_EFFORT=none \
137
+ npx @ccpocket/bridge@latest setup
138
+ ```
139
+
123
140
  On Linux, setup gives standalone Codex installs priority by including
124
141
  `$HOME/.local/bin` before npm-managed Node paths in the service `PATH`.
125
142
 
@@ -2,7 +2,7 @@ import { execFileSync } from "node:child_process";
2
2
  import { mkdtempSync, readFileSync, rmSync } from "node:fs";
3
3
  import { tmpdir } from "node:os";
4
4
  import { join, resolve } from "node:path";
5
- import { CODEX_ASSIST_MODEL, CODEX_ASSIST_REASONING_EFFORT, } from "./codex-assist.js";
5
+ import { getCodexAssistModel, getCodexAssistReasoningConfig, } from "./codex-assist.js";
6
6
  export const AUTO_RENAME_PROMPT_PREFIX = "Write a concise name for this coding-agent session.";
7
7
  const AUTO_RENAME_PROMPT = `${AUTO_RENAME_PROMPT_PREFIX}
8
8
 
@@ -14,6 +14,10 @@ Rules:
14
14
  - Keep it short: 2-8 English words or about 8-24 Japanese/Chinese/Korean characters.
15
15
  - Avoid generic words such as Session, Chat, Task, Discussion.
16
16
  - Avoid trailing punctuation.`;
17
+ const AUTO_RENAME_PROMPT_SIGNATURE = `${AUTO_RENAME_PROMPT_PREFIX}
18
+
19
+ Rules:
20
+ - Output only the name. No quotes, JSON, markdown, or explanation.`;
17
21
  const MAX_TRANSCRIPT_CHARS = 2400;
18
22
  const MAX_ASSISTANT_CHARS = 1200;
19
23
  const MAX_NAME_CHARS = 60;
@@ -47,7 +51,7 @@ export function buildAutoRenamePrompt(transcript) {
47
51
  return `${AUTO_RENAME_PROMPT}\n\nTranscript:\n${sections.join("\n\n")}`;
48
52
  }
49
53
  export function isAutoRenamePromptText(text) {
50
- return text.trimStart().startsWith(AUTO_RENAME_PROMPT_PREFIX);
54
+ return text.trimStart().startsWith(AUTO_RENAME_PROMPT_SIGNATURE);
51
55
  }
52
56
  export function sanitizeAutoRenameName(output) {
53
57
  const line = output
@@ -101,9 +105,9 @@ function runCodexAutoRename(cwd, prompt) {
101
105
  execFileSync("codex", [
102
106
  "exec",
103
107
  "-m",
104
- CODEX_ASSIST_MODEL,
108
+ getCodexAssistModel(),
105
109
  "-c",
106
- `model_reasoning_effort="${CODEX_ASSIST_REASONING_EFFORT}"`,
110
+ getCodexAssistReasoningConfig(),
107
111
  "-o",
108
112
  outputPath,
109
113
  "-",
@@ -1 +1 @@
1
- {"version":3,"file":"auto-rename.js","sourceRoot":"","sources":["../src/auto-rename.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GACpC,qDAAqD,CAAC;AAExD,MAAM,kBAAkB,GAAG,GAAG,yBAAyB;;;;;;;;;8BASzB,CAAC;AAE/B,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,cAAc,GAAG,EAAE,CAAC;AAc1B,MAAM,UAAU,yBAAyB,CACvC,OAAiC;IAEjC,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC;SAC1C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC7B,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,aAAa,GAAG,OAAO;SAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC;SACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACX,GAAG,CAAC,OAAO,CAAC,OAAO;SAChB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;SAC5C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACzD,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CACV;SACA,IAAI,CAAC,OAAO,CAAC,CAAC;IAEjB,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAAC;QACnD,GAAG,CAAC,aAAa;YACf,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,mBAAmB,CAAC,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAgC;IAEhC,MAAM,QAAQ,GAAG,CAAC,UAAU,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,GAAG,kBAAkB,oBAAoB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,IAAI,GAAG,MAAM;SAChB,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,IAAI,CAAC,OAAO,CAAC,CAAC;IACjB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,IAAI,GAAG,IAAI;SACZ,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,IAAI,EAAE,CAAC;IACV,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAChC,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,GAAG,IAAI;SACR,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;SACxB,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;IAEV,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QAClC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,IAAI,IAAI,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAA0B;IAE1B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,MAAM,GACV,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,YAAY,CACV,QAAQ,EACR,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EACpE;YACE,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CACF,CAAC;IACR,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW,EAAE,MAAc;IACrD,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAEvD,IAAI,CAAC;QACH,YAAY,CACV,OAAO,EACP;YACE,MAAM;YACN,IAAI;YACJ,kBAAkB;YAClB,IAAI;YACJ,2BAA2B,6BAA6B,GAAG;YAC3D,IAAI;YACJ,UAAU;YACV,GAAG;SACJ,EACD;YACE,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,IAAI,GAAG,IAAI;SACvB,CACF,CAAC;QACF,OAAO,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,QAAgB;IAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,UAAU,CAAC;IAChD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CACpB,KAAa,EACb,IAAY,EACZ,QAAgB,IAAI;IAEpB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"auto-rename.js","sourceRoot":"","sources":["../src/auto-rename.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -39,12 +39,15 @@ Options:
39
39
  Setup options:
40
40
  --uninstall Remove the registered service
41
41
  setup persists --port, --host, --api-key, --public-ws-url,
42
- --no-mdns, Codex app-server options, and BRIDGE_ALLOWED_DIRS
42
+ --no-mdns, Codex app-server options, BRIDGE_ALLOWED_DIRS, and
43
+ BRIDGE_CODEX_ASSIST_MODEL / BRIDGE_CODEX_ASSIST_REASONING_EFFORT
43
44
 
44
45
  Configuration can also be provided with BRIDGE_PORT, BRIDGE_HOST,
45
46
  BRIDGE_API_KEY, BRIDGE_ALLOWED_DIRS, BRIDGE_PUBLIC_WS_URL, and
46
47
  BRIDGE_DISABLE_MDNS. Codex app-server configuration can be provided with
47
- BRIDGE_CODEX_APP_SERVER_MODE and BRIDGE_CODEX_SHARED_APP_SERVER_URL.`);
48
+ BRIDGE_CODEX_APP_SERVER_MODE and BRIDGE_CODEX_SHARED_APP_SERVER_URL.
49
+ Codex assist calls can be configured with BRIDGE_CODEX_ASSIST_MODEL and
50
+ BRIDGE_CODEX_ASSIST_REASONING_EFFORT.`);
48
51
  }
49
52
  if (parsed.helpRequested) {
50
53
  printHelp();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,5 @@
1
- export declare const CODEX_ASSIST_MODEL = "gpt-5.4-mini";
2
- export declare const CODEX_ASSIST_REASONING_EFFORT = "none";
1
+ export declare const DEFAULT_CODEX_ASSIST_MODEL = "gpt-5.4-mini";
2
+ export declare const DEFAULT_CODEX_ASSIST_REASONING_EFFORT = "none";
3
+ export declare function getCodexAssistModel(): string;
4
+ export declare function getCodexAssistReasoningEffort(): string;
5
+ export declare function getCodexAssistReasoningConfig(): string;
@@ -1,3 +1,18 @@
1
- export const CODEX_ASSIST_MODEL = "gpt-5.4-mini";
2
- export const CODEX_ASSIST_REASONING_EFFORT = "none";
1
+ export const DEFAULT_CODEX_ASSIST_MODEL = "gpt-5.4-mini";
2
+ export const DEFAULT_CODEX_ASSIST_REASONING_EFFORT = "none";
3
+ function readNonEmptyEnv(name) {
4
+ const value = process.env[name]?.trim();
5
+ return value || undefined;
6
+ }
7
+ export function getCodexAssistModel() {
8
+ return (readNonEmptyEnv("BRIDGE_CODEX_ASSIST_MODEL") ??
9
+ DEFAULT_CODEX_ASSIST_MODEL);
10
+ }
11
+ export function getCodexAssistReasoningEffort() {
12
+ return (readNonEmptyEnv("BRIDGE_CODEX_ASSIST_REASONING_EFFORT") ??
13
+ DEFAULT_CODEX_ASSIST_REASONING_EFFORT);
14
+ }
15
+ export function getCodexAssistReasoningConfig() {
16
+ return `model_reasoning_effort=${JSON.stringify(getCodexAssistReasoningEffort())}`;
17
+ }
3
18
  //# sourceMappingURL=codex-assist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-assist.js","sourceRoot":"","sources":["../src/codex-assist.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"codex-assist.js","sourceRoot":"","sources":["../src/codex-assist.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,cAAc,CAAC;AACzD,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC;AAE5D,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,CACL,eAAe,CAAC,2BAA2B,CAAC;QAC5C,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,CACL,eAAe,CAAC,sCAAsC,CAAC;QACvD,qCAAqC,CACtC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,0BAA0B,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE,CAAC,EAAE,CAAC;AACrF,CAAC"}
@@ -102,12 +102,15 @@ export declare class CodexProcess extends EventEmitter<CodexProcessEvents> {
102
102
  private _skills;
103
103
  /** Full app metadata from the last `app/list` response. */
104
104
  private _apps;
105
+ /** Full plugin metadata from the last `plugin/list` response. */
106
+ private _plugins;
105
107
  /** Project path stored for re-fetching skills on `skills/changed`. */
106
108
  private _projectPath;
107
109
  /** Prevent redundant completion fetch storms from repeated change notifications. */
108
110
  private _completionFetchInFlight;
109
111
  private _lastCompletionEntitiesSignature;
110
112
  private _completionFetchCooldownUntil;
113
+ private _launchStartedAt;
111
114
  /** Expose skill metadata so session/websocket can access it. */
112
115
  get skills(): CodexSkillMetadata[];
113
116
  get apps(): CodexAppMetadata[];
@@ -300,6 +303,7 @@ export declare class CodexProcess extends EventEmitter<CodexProcessEvents> {
300
303
  private fetchCompletionEntities;
301
304
  private scheduleCompletionFetchFromNotification;
302
305
  private _fetchCompletionEntitiesInternal;
306
+ private emitCompletionEntitiesSnapshot;
303
307
  private runInputLoop;
304
308
  private handleStdoutChunk;
305
309
  private handleRpcEnvelope;
@@ -48,12 +48,15 @@ export class CodexProcess extends EventEmitter {
48
48
  _skills = [];
49
49
  /** Full app metadata from the last `app/list` response. */
50
50
  _apps = [];
51
+ /** Full plugin metadata from the last `plugin/list` response. */
52
+ _plugins = [];
51
53
  /** Project path stored for re-fetching skills on `skills/changed`. */
52
54
  _projectPath = null;
53
55
  /** Prevent redundant completion fetch storms from repeated change notifications. */
54
56
  _completionFetchInFlight = null;
55
57
  _lastCompletionEntitiesSignature = null;
56
58
  _completionFetchCooldownUntil = 0;
59
+ _launchStartedAt = 0;
57
60
  /** Expose skill metadata so session/websocket can access it. */
58
61
  get skills() {
59
62
  return this._skills;
@@ -425,6 +428,11 @@ export class CodexProcess extends EventEmitter {
425
428
  this._collaborationMode = options?.collaborationMode ?? "default";
426
429
  this.lastPlanItemText = null;
427
430
  this.lastResultText = null;
431
+ this._skills = [];
432
+ this._apps = [];
433
+ this._plugins = [];
434
+ this._lastCompletionEntitiesSignature = null;
435
+ this._launchStartedAt = Date.now();
428
436
  this.pendingAgentTextByItemId.clear();
429
437
  this.syntheticAgentTextByItemId.clear();
430
438
  this.pendingPlanCompletion = null;
@@ -1019,7 +1027,7 @@ export class CodexProcess extends EventEmitter {
1019
1027
  ...(cliJoin ? { codexCliJoin: cliJoin } : {}),
1020
1028
  });
1021
1029
  this.setStatus("idle");
1022
- // Fetch skills/apps in background (non-blocking)
1030
+ // Fetch completion entities in background (non-blocking).
1023
1031
  this._projectPath = projectPath;
1024
1032
  setTimeout(() => {
1025
1033
  if (!this.stopped) {
@@ -1116,20 +1124,6 @@ export class CodexProcess extends EventEmitter {
1116
1124
  }),
1117
1125
  new Promise((resolve) => setTimeout(() => resolve(null), TIMEOUT_MS)),
1118
1126
  ]);
1119
- const skillsResult = (await Promise.race([
1120
- this.request("skills/list", { cwds: [projectPath] }),
1121
- new Promise((resolve) => setTimeout(() => resolve(null), TIMEOUT_MS)),
1122
- ]));
1123
- const appsResult = (await Promise.race([
1124
- this.request("app/list", {
1125
- cursor: null,
1126
- limit: 100,
1127
- threadId: this._threadId ?? undefined,
1128
- forceRefetch: false,
1129
- }),
1130
- new Promise((resolve) => setTimeout(() => resolve(null), TIMEOUT_MS)),
1131
- ]));
1132
- const pluginsResult = await requestOrNull("plugin/list", { cwds: [projectPath] });
1133
1127
  const optionalString = (value) => typeof value === "string" ? value : undefined;
1134
1128
  const optionalFirstString = (value) => {
1135
1129
  if (typeof value === "string")
@@ -1138,13 +1132,24 @@ export class CodexProcess extends EventEmitter {
1138
1132
  return undefined;
1139
1133
  return value.find((entry) => typeof entry === "string");
1140
1134
  };
1141
- const skills = [];
1142
- const skillMetadata = [];
1143
- if (skillsResult?.data) {
1144
- for (const entry of skillsResult.data) {
1145
- for (const skill of entry.skills) {
1146
- if (skill.enabled) {
1147
- skills.push(skill.name);
1135
+ const skillsRequest = requestOrNull("skills/list", { cwds: [projectPath] });
1136
+ const appsRequest = requestOrNull("app/list", {
1137
+ cursor: null,
1138
+ limit: 100,
1139
+ threadId: this._threadId ?? undefined,
1140
+ forceRefetch: false,
1141
+ });
1142
+ const pluginsRequest = requestOrNull("plugin/list", { cwds: [projectPath] });
1143
+ let skillsReady = false;
1144
+ await Promise.all([
1145
+ skillsRequest.then((skillsResult) => {
1146
+ if (this.stopped || skillsResult === null)
1147
+ return;
1148
+ const skillMetadata = [];
1149
+ for (const entry of skillsResult.data ?? []) {
1150
+ for (const skill of entry.skills) {
1151
+ if (!skill.enabled)
1152
+ continue;
1148
1153
  skillMetadata.push({
1149
1154
  name: skill.name,
1150
1155
  path: skill.path,
@@ -1160,78 +1165,95 @@ export class CodexProcess extends EventEmitter {
1160
1165
  });
1161
1166
  }
1162
1167
  }
1163
- }
1164
- }
1165
- this._skills = skillMetadata;
1166
- const appMetadata = (appsResult?.data ?? [])
1167
- .filter((app) => (app.isAccessible ?? true) && (app.isEnabled ?? true))
1168
- .map((app) => ({
1169
- id: app.id,
1170
- name: app.name,
1171
- description: app.description,
1172
- installUrl: app.installUrl ?? undefined,
1173
- isAccessible: app.isAccessible ?? true,
1174
- isEnabled: app.isEnabled ?? true,
1175
- }));
1176
- this._apps = appMetadata;
1177
- const pluginMetadata = [];
1178
- for (const marketplace of pluginsResult?.marketplaces ?? []) {
1179
- for (const plugin of marketplace.plugins ?? []) {
1180
- if (!plugin.installed || !plugin.enabled)
1181
- continue;
1182
- pluginMetadata.push({
1183
- id: plugin.id,
1184
- name: plugin.name,
1185
- path: `plugin://${plugin.id}`,
1186
- marketplaceName: marketplace.name,
1187
- marketplacePath: marketplace.path ?? undefined,
1188
- installed: plugin.installed,
1189
- enabled: plugin.enabled,
1190
- displayName: optionalString(plugin.interface?.displayName),
1191
- shortDescription: optionalString(plugin.interface?.shortDescription),
1192
- longDescription: optionalString(plugin.interface?.longDescription),
1193
- defaultPrompt: optionalFirstString(plugin.interface?.defaultPrompt),
1194
- brandColor: optionalString(plugin.interface?.brandColor),
1195
- composerIcon: optionalString(plugin.interface?.composerIcon),
1196
- composerIconUrl: optionalString(plugin.interface?.composerIconUrl),
1197
- });
1198
- }
1199
- }
1200
- const plugins = pluginMetadata.map((plugin) => plugin.name);
1201
- if (this.stopped)
1202
- return;
1203
- const signature = JSON.stringify({
1204
- skills,
1205
- skillMetadata,
1206
- apps: appMetadata.map((app) => app.id),
1207
- appMetadata,
1208
- plugins,
1209
- pluginMetadata,
1210
- });
1211
- if (signature === this._lastCompletionEntitiesSignature) {
1212
- return;
1213
- }
1214
- this._lastCompletionEntitiesSignature = signature;
1215
- if (skills.length > 0 ||
1216
- appMetadata.length > 0 ||
1217
- pluginMetadata.length > 0) {
1218
- console.log(`[codex-process] completion entities loaded: ${skills.length} skills, ${appMetadata.length} apps, ${pluginMetadata.length} plugins`);
1219
- this.emitMessage({
1220
- type: "system",
1221
- subtype: "supported_commands",
1222
- skills,
1223
- skillMetadata,
1224
- apps: appMetadata.map((app) => app.id),
1225
- appMetadata,
1226
- plugins,
1227
- pluginMetadata,
1228
- });
1229
- }
1168
+ this._skills = skillMetadata;
1169
+ skillsReady = true;
1170
+ const elapsedMs = this._launchStartedAt > 0
1171
+ ? Date.now() - this._launchStartedAt
1172
+ : undefined;
1173
+ console.log(`[codex-process] completion skills ready: ${skillMetadata.length} skills${elapsedMs === undefined ? "" : ` (${elapsedMs}ms since start)`}`);
1174
+ this.emitCompletionEntitiesSnapshot("skills");
1175
+ }),
1176
+ appsRequest.then((appsResult) => {
1177
+ if (this.stopped || appsResult === null)
1178
+ return;
1179
+ this._apps = (appsResult.data ?? [])
1180
+ .filter((app) => (app.isAccessible ?? true) && (app.isEnabled ?? true))
1181
+ .map((app) => ({
1182
+ id: app.id,
1183
+ name: app.name,
1184
+ description: app.description,
1185
+ installUrl: app.installUrl ?? undefined,
1186
+ isAccessible: app.isAccessible ?? true,
1187
+ isEnabled: app.isEnabled ?? true,
1188
+ }));
1189
+ if (skillsReady)
1190
+ this.emitCompletionEntitiesSnapshot("apps");
1191
+ }),
1192
+ pluginsRequest.then((pluginsResult) => {
1193
+ if (this.stopped || pluginsResult === null)
1194
+ return;
1195
+ const pluginMetadata = [];
1196
+ for (const marketplace of pluginsResult.marketplaces ?? []) {
1197
+ for (const plugin of marketplace.plugins ?? []) {
1198
+ if (!plugin.installed || !plugin.enabled)
1199
+ continue;
1200
+ pluginMetadata.push({
1201
+ id: plugin.id,
1202
+ name: plugin.name,
1203
+ path: `plugin://${plugin.id}`,
1204
+ marketplaceName: marketplace.name,
1205
+ marketplacePath: marketplace.path ?? undefined,
1206
+ installed: plugin.installed,
1207
+ enabled: plugin.enabled,
1208
+ displayName: optionalString(plugin.interface?.displayName),
1209
+ shortDescription: optionalString(plugin.interface?.shortDescription),
1210
+ longDescription: optionalString(plugin.interface?.longDescription),
1211
+ defaultPrompt: optionalFirstString(plugin.interface?.defaultPrompt),
1212
+ brandColor: optionalString(plugin.interface?.brandColor),
1213
+ composerIcon: optionalString(plugin.interface?.composerIcon),
1214
+ composerIconUrl: optionalString(plugin.interface?.composerIconUrl),
1215
+ });
1216
+ }
1217
+ }
1218
+ this._plugins = pluginMetadata;
1219
+ if (skillsReady)
1220
+ this.emitCompletionEntitiesSnapshot("plugins");
1221
+ }),
1222
+ ]);
1230
1223
  }
1231
1224
  catch (err) {
1232
1225
  console.log(`[codex-process] completion entity fetch failed (non-fatal): ${err instanceof Error ? err.message : String(err)}`);
1233
1226
  }
1234
1227
  }
1228
+ emitCompletionEntitiesSnapshot(source) {
1229
+ if (this.stopped)
1230
+ return;
1231
+ const skills = this._skills.map((skill) => skill.name);
1232
+ const apps = this._apps.map((app) => app.id);
1233
+ const plugins = this._plugins.map((plugin) => plugin.name);
1234
+ const signature = JSON.stringify({
1235
+ skills,
1236
+ skillMetadata: this._skills,
1237
+ apps,
1238
+ appMetadata: this._apps,
1239
+ plugins,
1240
+ pluginMetadata: this._plugins,
1241
+ });
1242
+ if (signature === this._lastCompletionEntitiesSignature)
1243
+ return;
1244
+ this._lastCompletionEntitiesSignature = signature;
1245
+ console.log(`[codex-process] completion entities updated (${source}): ${skills.length} skills, ${apps.length} apps, ${plugins.length} plugins`);
1246
+ this.emitMessage({
1247
+ type: "system",
1248
+ subtype: "supported_commands",
1249
+ skills,
1250
+ skillMetadata: this._skills,
1251
+ apps,
1252
+ appMetadata: this._apps,
1253
+ plugins,
1254
+ pluginMetadata: this._plugins,
1255
+ });
1256
+ }
1235
1257
  async runInputLoop(options) {
1236
1258
  while (!this.stopped) {
1237
1259
  const pendingInput = await new Promise((resolve) => {