@ccpocket/bridge 1.72.2 → 1.72.3
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/dist/auto-rename.d.ts +0 -1
- package/dist/auto-rename.js +2 -18
- package/dist/auto-rename.js.map +1 -1
- package/dist/codex-process.js +33 -5
- package/dist/codex-process.js.map +1 -1
- package/dist/parser.d.ts +15 -0
- package/dist/parser.js +72 -0
- package/dist/parser.js.map +1 -1
- package/dist/sdk-process.d.ts +11 -0
- package/dist/sdk-process.js +298 -80
- package/dist/sdk-process.js.map +1 -1
- package/dist/websocket.d.ts +3 -1
- package/dist/websocket.js +60 -10
- package/dist/websocket.js.map +1 -1
- package/package.json +1 -1
package/dist/auto-rename.d.ts
CHANGED
|
@@ -2,7 +2,6 @@ import type { Provider, ServerMessage } from "./parser.js";
|
|
|
2
2
|
export declare const AUTO_RENAME_PROMPT_PREFIX = "Write a concise name for this coding-agent session.";
|
|
3
3
|
export interface AutoRenameTranscript {
|
|
4
4
|
userText: string;
|
|
5
|
-
assistantText?: string;
|
|
6
5
|
}
|
|
7
6
|
export interface AutoRenameOptions {
|
|
8
7
|
provider: Provider;
|
package/dist/auto-rename.js
CHANGED
|
@@ -11,7 +11,7 @@ Rules:
|
|
|
11
11
|
- Match the primary language of the USER text. Never translate it. If USER is Japanese, the name must be Japanese.
|
|
12
12
|
- Write a natural, specific noun phrase rather than a sentence or a list of keywords.
|
|
13
13
|
- Prefer the user's intended outcome over implementation details.
|
|
14
|
-
- Use
|
|
14
|
+
- Use only the USER text to choose the name's language and subject.
|
|
15
15
|
- Keep it short: 2-8 English words or about 6-20 Japanese/Chinese/Korean characters when practical.
|
|
16
16
|
- For Japanese, use particles such as の when they improve readability; avoid unnatural keyword concatenation.
|
|
17
17
|
- Preserve meaningful product, library, and feature names.
|
|
@@ -22,7 +22,6 @@ const AUTO_RENAME_PROMPT_SIGNATURE = `${AUTO_RENAME_PROMPT_PREFIX}
|
|
|
22
22
|
Rules:
|
|
23
23
|
- Output only the name. No quotes, JSON, markdown, or explanation.`;
|
|
24
24
|
const MAX_TRANSCRIPT_CHARS = 2400;
|
|
25
|
-
const MAX_ASSISTANT_CHARS = 1200;
|
|
26
25
|
const MAX_NAME_CHARS = 60;
|
|
27
26
|
export function buildAutoRenameTranscript(history) {
|
|
28
27
|
const userText = history
|
|
@@ -31,27 +30,12 @@ export function buildAutoRenameTranscript(history) {
|
|
|
31
30
|
.find(Boolean);
|
|
32
31
|
if (!userText)
|
|
33
32
|
return null;
|
|
34
|
-
const assistantText = history
|
|
35
|
-
.filter((msg) => msg.type === "assistant")
|
|
36
|
-
.map((msg) => msg.message.content
|
|
37
|
-
.filter((content) => content.type === "text")
|
|
38
|
-
.map((content) => ("text" in content ? content.text : ""))
|
|
39
|
-
.join("\n")
|
|
40
|
-
.trim())
|
|
41
|
-
.find(Boolean);
|
|
42
33
|
return {
|
|
43
34
|
userText: limitText(userText, MAX_TRANSCRIPT_CHARS),
|
|
44
|
-
...(assistantText
|
|
45
|
-
? { assistantText: limitText(assistantText, MAX_ASSISTANT_CHARS) }
|
|
46
|
-
: {}),
|
|
47
35
|
};
|
|
48
36
|
}
|
|
49
37
|
export function buildAutoRenamePrompt(transcript) {
|
|
50
|
-
|
|
51
|
-
if (transcript.assistantText) {
|
|
52
|
-
sections.push(`ASSISTANT:\n${transcript.assistantText}`);
|
|
53
|
-
}
|
|
54
|
-
return `${AUTO_RENAME_PROMPT}\n\nTranscript:\n${sections.join("\n\n")}`;
|
|
38
|
+
return `${AUTO_RENAME_PROMPT}\n\nUSER:\n${transcript.userText}`;
|
|
55
39
|
}
|
|
56
40
|
export function isAutoRenamePromptText(text) {
|
|
57
41
|
return text.trimStart().startsWith(AUTO_RENAME_PROMPT_SIGNATURE);
|
package/dist/auto-rename.js.map
CHANGED
|
@@ -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,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GACpC,qDAAqD,CAAC;AAExD,MAAM,kBAAkB,GAAG,GAAG,yBAAyB;;;;;;;;;;;;8BAYzB,CAAC;AAE/B,MAAM,4BAA4B,GAAG,GAAG,yBAAyB;;;mEAGE,CAAC;AAEpE,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,
|
|
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,mBAAmB,EACnB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,yBAAyB,GACpC,qDAAqD,CAAC;AAExD,MAAM,kBAAkB,GAAG,GAAG,yBAAyB;;;;;;;;;;;;8BAYzB,CAAC;AAE/B,MAAM,4BAA4B,GAAG,GAAG,yBAAyB;;;mEAGE,CAAC;AAEpE,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,cAAc,GAAG,EAAE,CAAC;AAa1B,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,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,oBAAoB,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,UAAgC;IAEhC,OAAO,GAAG,kBAAkB,cAAc,UAAU,CAAC,QAAQ,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;AACnE,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,mBAAmB,EAAE;YACrB,IAAI;YACJ,6BAA6B,EAAE;YAC/B,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"}
|
package/dist/codex-process.js
CHANGED
|
@@ -10,6 +10,7 @@ import { resolvePlatformPath } from "./path-utils.js";
|
|
|
10
10
|
export { buildCodexSpawnSpec };
|
|
11
11
|
const DEFAULT_CODEX_MODEL = "gpt-5.5";
|
|
12
12
|
const COMPLETION_FETCH_COOLDOWN_MS = 1000;
|
|
13
|
+
const ARCHIVE_RPC_TIMEOUT_MS = 15_000;
|
|
13
14
|
const UNKNOWN_AGENT_ITEM_ID = "__unknown_agent_message__";
|
|
14
15
|
const CODEX_CLI_NOT_FOUND_MESSAGE = "Codex CLI is not installed or not available on PATH on the Bridge machine. Install it with `curl -fsSL https://chatgpt.com/codex/install.sh | sh`, then restart Bridge.";
|
|
15
16
|
export class CodexRpcError extends Error {
|
|
@@ -273,7 +274,7 @@ export class CodexProcess extends EventEmitter {
|
|
|
273
274
|
* can be archived without requiring a running process.
|
|
274
275
|
*/
|
|
275
276
|
async archiveThread(threadId) {
|
|
276
|
-
await this.request("thread/archive", { threadId });
|
|
277
|
+
await this.request("thread/archive", { threadId }, ARCHIVE_RPC_TIMEOUT_MS);
|
|
277
278
|
}
|
|
278
279
|
async readThread(threadId, includeTurns = true) {
|
|
279
280
|
const response = (await this.request("thread/read", {
|
|
@@ -1893,10 +1894,14 @@ export class CodexProcess extends EventEmitter {
|
|
|
1893
1894
|
case "error": {
|
|
1894
1895
|
const error = asRecord(params.error);
|
|
1895
1896
|
const message = stringValue(error?.message) ?? "Codex runtime error";
|
|
1897
|
+
if (params.willRetry === true) {
|
|
1898
|
+
console.warn(`[codex-process] Codex will retry: ${message}`);
|
|
1899
|
+
break;
|
|
1900
|
+
}
|
|
1896
1901
|
this.emitMessage({
|
|
1897
1902
|
type: "error",
|
|
1898
|
-
errorCode:
|
|
1899
|
-
message
|
|
1903
|
+
errorCode: "codex_runtime_error",
|
|
1904
|
+
message,
|
|
1900
1905
|
});
|
|
1901
1906
|
break;
|
|
1902
1907
|
}
|
|
@@ -2462,16 +2467,39 @@ export class CodexProcess extends EventEmitter {
|
|
|
2462
2467
|
}
|
|
2463
2468
|
return { input, tempPaths };
|
|
2464
2469
|
}
|
|
2465
|
-
request(method, params) {
|
|
2470
|
+
request(method, params, timeoutMs) {
|
|
2466
2471
|
const id = this.rpcSeq++;
|
|
2467
2472
|
const envelope = params === undefined ? { id, method } : { id, method, params };
|
|
2468
2473
|
return new Promise((resolve, reject) => {
|
|
2469
|
-
|
|
2474
|
+
let timeout;
|
|
2475
|
+
const clearRequestTimeout = () => {
|
|
2476
|
+
if (timeout)
|
|
2477
|
+
clearTimeout(timeout);
|
|
2478
|
+
};
|
|
2479
|
+
this.pendingRpc.set(id, {
|
|
2480
|
+
resolve: (value) => {
|
|
2481
|
+
clearRequestTimeout();
|
|
2482
|
+
resolve(value);
|
|
2483
|
+
},
|
|
2484
|
+
reject: (error) => {
|
|
2485
|
+
clearRequestTimeout();
|
|
2486
|
+
reject(error);
|
|
2487
|
+
},
|
|
2488
|
+
method,
|
|
2489
|
+
});
|
|
2490
|
+
if (timeoutMs != null) {
|
|
2491
|
+
timeout = setTimeout(() => {
|
|
2492
|
+
if (!this.pendingRpc.delete(id))
|
|
2493
|
+
return;
|
|
2494
|
+
reject(new Error(`Codex RPC ${method} timed out after ${timeoutMs}ms`));
|
|
2495
|
+
}, timeoutMs);
|
|
2496
|
+
}
|
|
2470
2497
|
try {
|
|
2471
2498
|
this.writeEnvelope(envelope);
|
|
2472
2499
|
}
|
|
2473
2500
|
catch (err) {
|
|
2474
2501
|
this.pendingRpc.delete(id);
|
|
2502
|
+
clearRequestTimeout();
|
|
2475
2503
|
reject(err instanceof Error ? err : new Error(String(err)));
|
|
2476
2504
|
}
|
|
2477
2505
|
});
|