@a1hvdy/cc-openclaw 0.8.0 → 0.9.0

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.
Files changed (72) hide show
  1. package/dist/src/index.d.ts +10 -1
  2. package/dist/src/index.js +47 -7
  3. package/dist/src/index.js.map +1 -1
  4. package/dist/src/lib/config-service.d.ts +106 -0
  5. package/dist/src/lib/config-service.js +217 -0
  6. package/dist/src/lib/config-service.js.map +1 -0
  7. package/dist/src/lib/config.d.ts +33 -14
  8. package/dist/src/lib/config.js +147 -34
  9. package/dist/src/lib/config.js.map +1 -1
  10. package/dist/src/lib/index.d.ts +1 -1
  11. package/dist/src/lib/index.js +4 -1
  12. package/dist/src/lib/index.js.map +1 -1
  13. package/dist/src/openai-compat/message-extractor.d.ts +79 -0
  14. package/dist/src/openai-compat/message-extractor.js +134 -0
  15. package/dist/src/openai-compat/message-extractor.js.map +1 -0
  16. package/dist/src/openai-compat/mode-flags.d.ts +34 -0
  17. package/dist/src/openai-compat/mode-flags.js +44 -0
  18. package/dist/src/openai-compat/mode-flags.js.map +1 -0
  19. package/dist/src/openai-compat/non-streaming-handler.d.ts +26 -0
  20. package/dist/src/openai-compat/non-streaming-handler.js +108 -0
  21. package/dist/src/openai-compat/non-streaming-handler.js.map +1 -0
  22. package/dist/src/openai-compat/openai-compat.d.ts +15 -166
  23. package/dist/src/openai-compat/openai-compat.js +59 -849
  24. package/dist/src/openai-compat/openai-compat.js.map +1 -1
  25. package/dist/src/openai-compat/prompts.d.ts +47 -0
  26. package/dist/src/openai-compat/prompts.js +119 -0
  27. package/dist/src/openai-compat/prompts.js.map +1 -0
  28. package/dist/src/openai-compat/response-formatter.d.ts +33 -0
  29. package/dist/src/openai-compat/response-formatter.js +74 -0
  30. package/dist/src/openai-compat/response-formatter.js.map +1 -0
  31. package/dist/src/openai-compat/session-key-resolver.d.ts +41 -0
  32. package/dist/src/openai-compat/session-key-resolver.js +78 -0
  33. package/dist/src/openai-compat/session-key-resolver.js.map +1 -0
  34. package/dist/src/openai-compat/status-reporter.d.ts +30 -0
  35. package/dist/src/openai-compat/status-reporter.js +81 -0
  36. package/dist/src/openai-compat/status-reporter.js.map +1 -0
  37. package/dist/src/openai-compat/streaming-handler.d.ts +41 -0
  38. package/dist/src/openai-compat/streaming-handler.js +294 -0
  39. package/dist/src/openai-compat/streaming-handler.js.map +1 -0
  40. package/dist/src/openai-compat/tool-calls-parser.d.ts +34 -0
  41. package/dist/src/openai-compat/tool-calls-parser.js +93 -0
  42. package/dist/src/openai-compat/tool-calls-parser.js.map +1 -0
  43. package/dist/src/openai-compat/tool-results-serializer.d.ts +60 -0
  44. package/dist/src/openai-compat/tool-results-serializer.js +56 -0
  45. package/dist/src/openai-compat/tool-results-serializer.js.map +1 -0
  46. package/dist/src/session-bootstrap/cwd-patch.js +20 -13
  47. package/dist/src/session-bootstrap/cwd-patch.js.map +1 -1
  48. package/dist/src/types/index.d.ts +15 -0
  49. package/dist/src/types/index.js +16 -0
  50. package/dist/src/types/index.js.map +1 -0
  51. package/dist/src/types/route.d.ts +41 -0
  52. package/dist/src/types/route.js +12 -0
  53. package/dist/src/types/route.js.map +1 -0
  54. package/dist/src/types/runtime-config.d.ts +161 -0
  55. package/dist/src/types/runtime-config.js +118 -0
  56. package/dist/src/types/runtime-config.js.map +1 -0
  57. package/dist/src/types/session.d.ts +48 -0
  58. package/dist/src/types/session.js +20 -0
  59. package/dist/src/types/session.js.map +1 -0
  60. package/dist/src/types/sse.d.ts +38 -0
  61. package/dist/src/types/sse.js +12 -0
  62. package/dist/src/types/sse.js.map +1 -0
  63. package/dist/src/types/tool-bridge.d.ts +81 -0
  64. package/dist/src/types/tool-bridge.js +34 -0
  65. package/dist/src/types/tool-bridge.js.map +1 -0
  66. package/dist/src/types/upstream.d.ts +652 -0
  67. package/dist/src/types/upstream.js +145 -0
  68. package/dist/src/types/upstream.js.map +1 -0
  69. package/package.json +3 -2
  70. package/dist/src/lib/route-flag.d.ts +0 -49
  71. package/dist/src/lib/route-flag.js +0 -52
  72. package/dist/src/lib/route-flag.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../../src/openai-compat/openai-compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-compat.js","sourceRoot":"","sources":["../../../src/openai-compat/openai-compat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Cluster B — Session system-prompt builders.
3
+ *
4
+ * Extracted verbatim from `openai-compat.ts:143-250` (Phase 4 Cluster B).
5
+ * Three tightly-coupled pure functions that compose the session-level
6
+ * system prompt sent to Claude CLI on session create:
7
+ *
8
+ * - `noToolsSystemPrompt(toolLocation)` — anti-hallucination preamble
9
+ * (varies by CC_OPENCLAW_ALLOW_BUILTINS env flag)
10
+ * - `buildToolPromptBlock(tools)` — `<available_tools>` XML block
11
+ * - `buildSessionSystemPrompt(...)` — orchestrator that combines
12
+ * the above with the caller-supplied prompt, honoring tool-stream
13
+ * and tools-per-message mode flags
14
+ *
15
+ * Behavior is preserved bit-for-bit. The orchestrator (`handleChatCompletion`
16
+ * in openai-compat.ts) calls `buildSessionSystemPrompt` exactly once per
17
+ * fresh session create; `buildToolPromptBlock` is also called directly when
18
+ * tools must be injected per-turn into the user message (legacy path).
19
+ *
20
+ * Type-only import of `OpenAIChatCompletionRequest` keeps the file in a
21
+ * one-way relationship with openai-compat.ts at runtime (ESM erases type
22
+ * imports), so this module can be loaded standalone.
23
+ */
24
+ import type { OpenAIChatCompletionRequest } from './openai-compat.js';
25
+ /**
26
+ * Generate the "no built-in tools" system prompt preamble.
27
+ * The `toolLocation` parameter controls how the model is told where to find
28
+ * tool definitions — 'system' means "in the <available_tools> block below"
29
+ * (tools baked into system prompt), 'user' means "in <available_tools> tags
30
+ * in the user message" (legacy per-turn injection).
31
+ */
32
+ export declare function noToolsSystemPrompt(toolLocation: 'system' | 'user'): string;
33
+ /**
34
+ * Convert OpenAI tool definitions into a structured prompt block.
35
+ * Injected into the user message so the CLI model sees tool definitions
36
+ * and responds with <tool_calls> tags when it wants to invoke a function.
37
+ */
38
+ export declare function buildToolPromptBlock(tools: OpenAIChatCompletionRequest['tools']): string;
39
+ /**
40
+ * Build the full session system prompt for a Claude Code session with tools.
41
+ * Exported for testability — called from `handleChatCompletion`.
42
+ *
43
+ * - Default mode: tools are embedded in the system prompt (cacheable by Anthropic).
44
+ * - Legacy mode (OPENAI_COMPAT_TOOLS_PER_MESSAGE=1): tools are NOT embedded;
45
+ * they'll be injected per-turn in the user message instead.
46
+ */
47
+ export declare function buildSessionSystemPrompt(tools: OpenAIChatCompletionRequest['tools'], callerSystemPrompt: string | undefined): string;
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Cluster B — Session system-prompt builders.
3
+ *
4
+ * Extracted verbatim from `openai-compat.ts:143-250` (Phase 4 Cluster B).
5
+ * Three tightly-coupled pure functions that compose the session-level
6
+ * system prompt sent to Claude CLI on session create:
7
+ *
8
+ * - `noToolsSystemPrompt(toolLocation)` — anti-hallucination preamble
9
+ * (varies by CC_OPENCLAW_ALLOW_BUILTINS env flag)
10
+ * - `buildToolPromptBlock(tools)` — `<available_tools>` XML block
11
+ * - `buildSessionSystemPrompt(...)` — orchestrator that combines
12
+ * the above with the caller-supplied prompt, honoring tool-stream
13
+ * and tools-per-message mode flags
14
+ *
15
+ * Behavior is preserved bit-for-bit. The orchestrator (`handleChatCompletion`
16
+ * in openai-compat.ts) calls `buildSessionSystemPrompt` exactly once per
17
+ * fresh session create; `buildToolPromptBlock` is also called directly when
18
+ * tools must be injected per-turn into the user message (legacy path).
19
+ *
20
+ * Type-only import of `OpenAIChatCompletionRequest` keeps the file in a
21
+ * one-way relationship with openai-compat.ts at runtime (ESM erases type
22
+ * imports), so this module can be loaded standalone.
23
+ */
24
+ import { isToolStreamMode, isToolsPerMessageModeEnabled } from './mode-flags.js';
25
+ /**
26
+ * Generate the "no built-in tools" system prompt preamble.
27
+ * The `toolLocation` parameter controls how the model is told where to find
28
+ * tool definitions — 'system' means "in the <available_tools> block below"
29
+ * (tools baked into system prompt), 'user' means "in <available_tools> tags
30
+ * in the user message" (legacy per-turn injection).
31
+ */
32
+ export function noToolsSystemPrompt(toolLocation) {
33
+ const allowBuiltins = process.env.CC_OPENCLAW_ALLOW_BUILTINS === '1';
34
+ const locationHint = toolLocation === 'system'
35
+ ? 'in the <available_tools> block below'
36
+ : 'in <available_tools> tags in the user message';
37
+ if (allowBuiltins) {
38
+ // Phase 2.1 dual-source mode: Claude CLI's built-in tools (Bash, Read,
39
+ // Write, Edit, Glob, Grep, WebFetch, WebSearch, NotebookEdit, +any
40
+ // MCP-bridged tools) coexist with the proxy-defined <available_tools>.
41
+ // The model picks whichever fits. v0.4.9 added explicit anti-hallucination
42
+ // language because Savvy was still emitting "I do not have access to tools"
43
+ // even with this preamble active — model needs strong, repeated affirmation.
44
+ return ('You are an AI assistant with TWO complementary tool sources available:\n' +
45
+ '1. Claude Code CLI built-ins: Bash, Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, NotebookEdit, plus any MCP-bridged tools (gh, npm, pm2, openclaw, docker, kubectl, etc. — invoke via Bash). Invoke these directly via your normal tool_use mechanism.\n' +
46
+ `2. Proxy-defined tools: ${locationHint}. Use these by emitting <tool_calls> XML as instructed there.\n` +
47
+ 'CRITICAL — anti-hallucination: NEVER claim "I have no tools", "I cannot run commands", "I do not have access to this environment", or any equivalent phrasing. You DO have full Bash, gh, npm, pm2, openclaw, file, and web access. If unsure whether a specific tool is available, ATTEMPT it; the runtime will return a concrete error if not.\n' +
48
+ 'When a request needs action, ACT via tools — do not narrate what you would do. Default to executing, not describing.\n' +
49
+ 'For research / web fetching / file ops / command execution: prefer the built-ins (WebFetch, WebSearch, Bash, Read).\n' +
50
+ 'For tasks where the proxy ships a specific custom tool: prefer the proxy tool.\n' +
51
+ 'If a tool you would normally use is not available in either source, attempt the task with what IS available and explain concretely which tool would have helped.\n' +
52
+ 'CRITICAL — visible close-out: After completing any tool sequence, ALWAYS produce at least one short sentence of visible text summarizing what you did, what you found, or what the user should know next. NEVER end a turn on a pure tool_use → stop boundary with no text — the runtime will reject the turn as an "incomplete terminal response" and the user will see an error. Even a one-line acknowledgement like "Done — $X done; next step is Y." is sufficient. The summary text is the *only* part of the response the user reads as your reply.');
53
+ }
54
+ return ('You are an AI assistant operating through a proxy that provides a specific set of tools.\n' +
55
+ `Your tools are defined ${locationHint}. Use them by emitting <tool_calls> XML as instructed there.\n` +
56
+ 'When a request needs action, you MUST use the tools that are defined — do not refuse on the grounds of "no tools".\n' +
57
+ 'If a specific tool you would normally use is not in <available_tools>, do the best you can with what IS provided, or report concretely which tool would be needed.\n' +
58
+ 'You do NOT have direct access to Claude Code CLI built-ins (Bash, Read, Write, Edit, Glob, Grep) outside of <available_tools>; do not invoke them directly.\n' +
59
+ 'If no <available_tools> are provided at all, respond with text only.');
60
+ }
61
+ /**
62
+ * Convert OpenAI tool definitions into a structured prompt block.
63
+ * Injected into the user message so the CLI model sees tool definitions
64
+ * and responds with <tool_calls> tags when it wants to invoke a function.
65
+ */
66
+ export function buildToolPromptBlock(tools) {
67
+ if (!tools?.length)
68
+ return '';
69
+ const toolDefs = tools
70
+ .map((t) => {
71
+ const fn = t.function;
72
+ const params = JSON.stringify(fn.parameters, null, 2);
73
+ return `### ${fn.name}\n${fn.description}\n\nParameters:\n\`\`\`json\n${params}\n\`\`\``;
74
+ })
75
+ .join('\n\n');
76
+ return ('<available_tools>\n' +
77
+ 'You have access to the following tools. When you need to use a tool, respond with a JSON array wrapped in <tool_calls> tags.\n\n' +
78
+ 'FORMAT:\n' +
79
+ '<tool_calls>\n' +
80
+ '[{"name": "tool_name", "arguments": {"param1": "value1"}}]\n' +
81
+ '</tool_calls>\n\n' +
82
+ 'If you do NOT need any tools, respond normally with text only (no <tool_calls> tags).\n\n' +
83
+ '## Available Tools\n\n' +
84
+ toolDefs +
85
+ '\n</available_tools>');
86
+ }
87
+ /**
88
+ * Build the full session system prompt for a Claude Code session with tools.
89
+ * Exported for testability — called from `handleChatCompletion`.
90
+ *
91
+ * - Default mode: tools are embedded in the system prompt (cacheable by Anthropic).
92
+ * - Legacy mode (OPENAI_COMPAT_TOOLS_PER_MESSAGE=1): tools are NOT embedded;
93
+ * they'll be injected per-turn in the user message instead.
94
+ */
95
+ export function buildSessionSystemPrompt(tools, callerSystemPrompt) {
96
+ // Phase 2 R5: in tool-stream mode with tools provided, skip the defensive
97
+ // "no tools" preamble and the <available_tools> block entirely. Claude CLI
98
+ // gets the tools natively via sessionConfig.tools (not cleared) and emits
99
+ // tool_use events that the new parser+translator translate to OpenAI SSE.
100
+ // v0.4.9: prepend a minimal tool-affirmation preamble. Without this, callers
101
+ // with weak/no system prompts saw the model hallucinate "I have no tools" —
102
+ // the CLI had tools loaded but nothing in the prompt told the model so.
103
+ if (isToolStreamMode() && tools && tools.length > 0) {
104
+ const allowBuiltins = process.env.CC_OPENCLAW_ALLOW_BUILTINS === '1';
105
+ const toolAffirmation = allowBuiltins
106
+ ? 'You have full Claude Code CLI tools (Bash, Read, Write, Edit, Glob, Grep, WebFetch, WebSearch, gh, npm, pm2, openclaw, etc.) available natively, plus any caller-provided tools below. NEVER claim "I have no tools" — invoke a tool and let the runtime confirm. Default to ACTING, not narrating.\n\n'
107
+ : '';
108
+ return toolAffirmation + (callerSystemPrompt ?? '');
109
+ }
110
+ if (isToolsPerMessageModeEnabled()) {
111
+ const preamble = noToolsSystemPrompt('user');
112
+ return callerSystemPrompt ? `${preamble}\n\n${callerSystemPrompt}` : preamble;
113
+ }
114
+ const preamble = noToolsSystemPrompt('system');
115
+ const toolBlock = buildToolPromptBlock(tools);
116
+ const systemWithTools = `${preamble}\n\n${toolBlock}`;
117
+ return callerSystemPrompt ? `${systemWithTools}\n\n${callerSystemPrompt}` : systemWithTools;
118
+ }
119
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/openai-compat/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Cluster B — Response formatters.
3
+ *
4
+ * Extracted verbatim from `openai-compat.ts:178-241` (Phase 4 Cluster B
5
+ * Module E — the final Cluster B extraction). Two pure formatters that
6
+ * wrap the model's output in the OpenAI Chat-Completions envelope:
7
+ *
8
+ * - `formatCompletionResponse(...)` — non-streaming (single object).
9
+ * Carries `usage`, optional `tool_calls`, optional `reasoning` field,
10
+ * and a v0.7.2 "Done." text backstop when the model produced no
11
+ * visible text (the openclaw upstream classifier rejects payloads=0
12
+ * turns and burns a retry attempt; the directive in the system
13
+ * prompt is the primary fix, this is belt-and-suspenders).
14
+ *
15
+ * - `formatCompletionChunk(...)` — streaming SSE chunk. Called once
16
+ * per delta (start, content, tool_calls, finish_reason).
17
+ *
18
+ * Twelve+ call sites in the orchestrator (handleChatCompletion) — every
19
+ * place that writes back to the OpenAI-shaped HTTP response. Pulling
20
+ * these out keeps the orchestrator focused on session lifecycle and CLI
21
+ * IO; the OpenAI envelope details live alongside the types they shape.
22
+ */
23
+ import type { OpenAIToolCall, OpenAIChatCompletionResponse, OpenAIChatCompletionChunk } from './openai-compat.js';
24
+ export declare function formatCompletionResponse(id: string, model: string, text: string, tokensIn: number, tokensOut: number, toolCalls?: OpenAIToolCall[],
25
+ /** v0.7.0: when present + non-empty, attached as `choices[0].message.reasoning`
26
+ * (mirrors OpenAI o1/o3 schema). Caller must already be gated on
27
+ * `getSurfaceThinkingEnabled()` from `lib/config.ts` — this function does
28
+ * not re-check the flag. Pass empty string or undefined to omit. */
29
+ reasoning?: string): OpenAIChatCompletionResponse;
30
+ export declare function formatCompletionChunk(id: string, model: string, delta: {
31
+ role?: string;
32
+ content?: string;
33
+ }, finishReason: string | null): OpenAIChatCompletionChunk;
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Cluster B — Response formatters.
3
+ *
4
+ * Extracted verbatim from `openai-compat.ts:178-241` (Phase 4 Cluster B
5
+ * Module E — the final Cluster B extraction). Two pure formatters that
6
+ * wrap the model's output in the OpenAI Chat-Completions envelope:
7
+ *
8
+ * - `formatCompletionResponse(...)` — non-streaming (single object).
9
+ * Carries `usage`, optional `tool_calls`, optional `reasoning` field,
10
+ * and a v0.7.2 "Done." text backstop when the model produced no
11
+ * visible text (the openclaw upstream classifier rejects payloads=0
12
+ * turns and burns a retry attempt; the directive in the system
13
+ * prompt is the primary fix, this is belt-and-suspenders).
14
+ *
15
+ * - `formatCompletionChunk(...)` — streaming SSE chunk. Called once
16
+ * per delta (start, content, tool_calls, finish_reason).
17
+ *
18
+ * Twelve+ call sites in the orchestrator (handleChatCompletion) — every
19
+ * place that writes back to the OpenAI-shaped HTTP response. Pulling
20
+ * these out keeps the orchestrator focused on session lifecycle and CLI
21
+ * IO; the OpenAI envelope details live alongside the types they shape.
22
+ */
23
+ export function formatCompletionResponse(id, model, text, tokensIn, tokensOut, toolCalls,
24
+ /** v0.7.0: when present + non-empty, attached as `choices[0].message.reasoning`
25
+ * (mirrors OpenAI o1/o3 schema). Caller must already be gated on
26
+ * `getSurfaceThinkingEnabled()` from `lib/config.ts` — this function does
27
+ * not re-check the flag. Pass empty string or undefined to omit. */
28
+ reasoning) {
29
+ const hasToolCalls = toolCalls && toolCalls.length > 0;
30
+ const hasReasoning = typeof reasoning === 'string' && reasoning.length > 0;
31
+ // v0.7.2 backstop: openclaw upstream's "incomplete terminal response" classifier
32
+ // rejects turns with payloads=0 (no visible text) and treats them as a model error,
33
+ // burning a retry attempt before falling back to a different model. opus-4-7 with
34
+ // ALLOW_BUILTINS sometimes drifts into a tool_use → stop boundary with no text
35
+ // close-out. The system-prompt directive (above) is the primary fix; this is a
36
+ // belt-and-suspenders backstop. When `text` is empty AND we have no caller-visible
37
+ // tool_calls (i.e. CLI built-ins fired but legacy XML extraction yielded nothing),
38
+ // emit a minimal acknowledgement so the upstream classifier sees a payload.
39
+ // Tool_calls turns are exempt — those are openai-spec-correct with `content: null`.
40
+ const safeContent = text || (hasToolCalls ? null : 'Done.');
41
+ return {
42
+ id,
43
+ object: 'chat.completion',
44
+ created: Math.floor(Date.now() / 1000),
45
+ model,
46
+ choices: [
47
+ {
48
+ index: 0,
49
+ message: {
50
+ role: 'assistant',
51
+ content: safeContent,
52
+ ...(hasToolCalls ? { tool_calls: toolCalls } : {}),
53
+ ...(hasReasoning ? { reasoning } : {}),
54
+ },
55
+ finish_reason: hasToolCalls ? 'tool_calls' : 'stop',
56
+ },
57
+ ],
58
+ usage: {
59
+ prompt_tokens: tokensIn,
60
+ completion_tokens: tokensOut,
61
+ total_tokens: tokensIn + tokensOut,
62
+ },
63
+ };
64
+ }
65
+ export function formatCompletionChunk(id, model, delta, finishReason) {
66
+ return {
67
+ id,
68
+ object: 'chat.completion.chunk',
69
+ created: Math.floor(Date.now() / 1000),
70
+ model,
71
+ choices: [{ index: 0, delta, finish_reason: finishReason }],
72
+ };
73
+ }
74
+ //# sourceMappingURL=response-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../../src/openai-compat/response-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,MAAM,UAAU,wBAAwB,CACtC,EAAU,EACV,KAAa,EACb,IAAY,EACZ,QAAgB,EAChB,SAAiB,EACjB,SAA4B;AAC5B;;;qEAGqE;AACrE,SAAkB;IAElB,MAAM,YAAY,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3E,iFAAiF;IACjF,oFAAoF;IACpF,kFAAkF;IAClF,+EAA+E;IAC/E,+EAA+E;IAC/E,mFAAmF;IACnF,mFAAmF;IACnF,4EAA4E;IAC5E,oFAAoF;IACpF,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO;QACL,EAAE;QACF,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,KAAK;QACL,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE;oBACP,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,WAAW;oBACpB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvC;gBACD,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM;aACpD;SACF;QACD,KAAK,EAAE;YACL,aAAa,EAAE,QAAQ;YACvB,iBAAiB,EAAE,SAAS;YAC5B,YAAY,EAAE,QAAQ,GAAG,SAAS;SACnC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,EAAU,EACV,KAAa,EACb,KAA0C,EAC1C,YAA2B;IAE3B,OAAO;QACL,EAAE;QACF,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QACtC,KAAK;QACL,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Cluster B beachhead — session key resolution.
3
+ *
4
+ * Extracted from `openai-compat.ts:224-270`. Pure functions, no side
5
+ * effects, no external state. The session key is the single most
6
+ * load-bearing concept in the cc-openclaw bridge: it determines whether
7
+ * two requests share a persistent Claude CLI session (and thus benefit
8
+ * from prompt caching) or land in separate sessions.
9
+ *
10
+ * Resolution priority chain (highest → lowest):
11
+ * 1. `X-Session-Id` header → caller-explicit override
12
+ * 2. `body.user` field → OpenAI standard convention
13
+ * 3. sha1(model + system messages + tools) → content-derived fingerprint
14
+ * 4. literal `'default'` → fallback when nothing distinguishes
15
+ *
16
+ * Tool fingerprint inclusion (point 3) is the v0.4.x fix for the
17
+ * "session reuse with stale tool list" bug — see openai-compat.ts:233-243
18
+ * comments for the original rationale.
19
+ */
20
+ import * as http from 'node:http';
21
+ import type { OpenAIChatCompletionRequest } from './openai-compat.js';
22
+ /**
23
+ * Resolve a stable session key from a request. Behavior preserved
24
+ * verbatim from the original at openai-compat.ts:224.
25
+ *
26
+ * The `tools-per-message` mode opt-out (line 244) restores pre-fix
27
+ * behavior of keying sessions only by system prompt + model — needed
28
+ * for callers that mutate their tool list within one conversation
29
+ * and rely on continuing history across tool changes.
30
+ */
31
+ export declare function resolveSessionKey(body: OpenAIChatCompletionRequest, headers: http.IncomingHttpHeaders): string;
32
+ /**
33
+ * Build the full session name from a key. Adds the `'openai-'` prefix
34
+ * that gates downstream behavior (CWD redirect, tools restoration,
35
+ * CLAUDE.md injection — all in cwd-patch.ts:489). The prefix is
36
+ * load-bearing; do not remove or modify without checking those gates.
37
+ *
38
+ * Cluster D `SessionRegistry` will introduce a branded `SessionName`
39
+ * type so this function returns a typed value rather than a raw string.
40
+ */
41
+ export declare function sessionNameFromKey(key: string): string;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Cluster B beachhead — session key resolution.
3
+ *
4
+ * Extracted from `openai-compat.ts:224-270`. Pure functions, no side
5
+ * effects, no external state. The session key is the single most
6
+ * load-bearing concept in the cc-openclaw bridge: it determines whether
7
+ * two requests share a persistent Claude CLI session (and thus benefit
8
+ * from prompt caching) or land in separate sessions.
9
+ *
10
+ * Resolution priority chain (highest → lowest):
11
+ * 1. `X-Session-Id` header → caller-explicit override
12
+ * 2. `body.user` field → OpenAI standard convention
13
+ * 3. sha1(model + system messages + tools) → content-derived fingerprint
14
+ * 4. literal `'default'` → fallback when nothing distinguishes
15
+ *
16
+ * Tool fingerprint inclusion (point 3) is the v0.4.x fix for the
17
+ * "session reuse with stale tool list" bug — see openai-compat.ts:233-243
18
+ * comments for the original rationale.
19
+ */
20
+ import { createHash } from 'node:crypto';
21
+ import { isToolsPerMessageModeEnabled } from './mode-flags.js';
22
+ import { OPENAI_COMPAT_SESSION_PREFIX } from '../constants.js';
23
+ /**
24
+ * Resolve a stable session key from a request. Behavior preserved
25
+ * verbatim from the original at openai-compat.ts:224.
26
+ *
27
+ * The `tools-per-message` mode opt-out (line 244) restores pre-fix
28
+ * behavior of keying sessions only by system prompt + model — needed
29
+ * for callers that mutate their tool list within one conversation
30
+ * and rely on continuing history across tool changes.
31
+ */
32
+ export function resolveSessionKey(body, headers) {
33
+ const headerKey = headers['x-session-id'];
34
+ if (typeof headerKey === 'string' && headerKey.trim())
35
+ return headerKey.trim();
36
+ if (body.user && body.user.trim())
37
+ return body.user.trim();
38
+ const sys = (body.messages || [])
39
+ .filter((m) => m && m.role === 'system')
40
+ .map((m) => (typeof m.content === 'string' ? m.content : JSON.stringify(m.content)))
41
+ .join('\n');
42
+ const modelTag = (body.model || '').toString();
43
+ // Hash only tool names + a short description prefix to keep the
44
+ // fingerprint small and stable against schema formatting differences.
45
+ const toolsFingerprint = isToolsPerMessageModeEnabled()
46
+ ? ''
47
+ : (body.tools || [])
48
+ .map((t) => {
49
+ const fn = t?.function;
50
+ if (!fn?.name)
51
+ return '';
52
+ const descPrefix = (typeof fn.description === 'string' ? fn.description : '').slice(0, 64);
53
+ return `${fn.name}:${descPrefix}`;
54
+ })
55
+ .filter(Boolean)
56
+ .join('|');
57
+ if (sys || modelTag || toolsFingerprint) {
58
+ return ('sys-' +
59
+ createHash('sha1')
60
+ .update(modelTag + '\n' + sys + '\n' + toolsFingerprint)
61
+ .digest('hex')
62
+ .slice(0, 12));
63
+ }
64
+ return 'default';
65
+ }
66
+ /**
67
+ * Build the full session name from a key. Adds the `'openai-'` prefix
68
+ * that gates downstream behavior (CWD redirect, tools restoration,
69
+ * CLAUDE.md injection — all in cwd-patch.ts:489). The prefix is
70
+ * load-bearing; do not remove or modify without checking those gates.
71
+ *
72
+ * Cluster D `SessionRegistry` will introduce a branded `SessionName`
73
+ * type so this function returns a typed value rather than a raw string.
74
+ */
75
+ export function sessionNameFromKey(key) {
76
+ return `${OPENAI_COMPAT_SESSION_PREFIX}${key}`;
77
+ }
78
+ //# sourceMappingURL=session-key-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-key-resolver.js","sourceRoot":"","sources":["../../../src/openai-compat/session-key-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAE/D;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAiC,EACjC,OAAiC;IAEjC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1C,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAE3D,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;SACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SACnF,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAE/C,gEAAgE;IAChE,sEAAsE;IACtE,MAAM,gBAAgB,GAAG,4BAA4B,EAAE;QACrD,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;aACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;YACvB,IAAI,CAAC,EAAE,EAAE,IAAI;gBAAE,OAAO,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3F,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QACpC,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEjB,IAAI,GAAG,IAAI,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QACxC,OAAO,CACL,MAAM;YACN,UAAU,CAAC,MAAM,CAAC;iBACf,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,gBAAgB,CAAC;iBACvD,MAAM,CAAC,KAAK,CAAC;iBACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,GAAG,4BAA4B,GAAG,GAAG,EAAE,CAAC;AACjD,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Cluster B Phase 2 — Status reporting + tool-description helpers.
3
+ *
4
+ * Extracted verbatim from `openai-compat.ts:516-569` (Module F).
5
+ *
6
+ * - `reportStatus(state, activity, tool?)` — best-effort fire-and-forget
7
+ * HTTP POST to the OPENAI_COMPAT_STATUS_URL webhook. The receiving
8
+ * dashboard (e.g. a webchat status bar) gets real-time progress while
9
+ * the CLI agent runs tools. No-op when the env var is unset.
10
+ *
11
+ * - `getToolDescription(toolName, toolInput?)` — human-readable one-liner
12
+ * for a tool call. Used by handleNonStreaming + handleStreaming to
13
+ * populate the `tool` field of the status payload. Switch on tool name
14
+ * with sensible fallback ("Using tool: <name>") for unknown tools.
15
+ *
16
+ * Both functions are pure-ish: no shared mutable state, no closure
17
+ * capture from the orchestrator. `reportStatus` reads the URL env
18
+ * variable on every call so ops can flip it via launchctl/PM2 env
19
+ * without restarting the gateway.
20
+ */
21
+ /**
22
+ * Optional status webhook — set `OPENAI_COMPAT_STATUS_URL` to an HTTP endpoint
23
+ * that accepts `POST { state, activity, tool }`. The bridge will fire-and-forget
24
+ * status updates when the CLI agent uses tools, so an external dashboard (e.g.
25
+ * a webchat status bar) can show real-time progress.
26
+ *
27
+ * Example: `OPENAI_COMPAT_STATUS_URL=http://127.0.0.1:18795/my-app/agent-status`
28
+ */
29
+ export declare function reportStatus(state: string, activity: string, tool?: string): void;
30
+ export declare function getToolDescription(toolName: string, toolInput?: Record<string, unknown>): string;
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Cluster B Phase 2 — Status reporting + tool-description helpers.
3
+ *
4
+ * Extracted verbatim from `openai-compat.ts:516-569` (Module F).
5
+ *
6
+ * - `reportStatus(state, activity, tool?)` — best-effort fire-and-forget
7
+ * HTTP POST to the OPENAI_COMPAT_STATUS_URL webhook. The receiving
8
+ * dashboard (e.g. a webchat status bar) gets real-time progress while
9
+ * the CLI agent runs tools. No-op when the env var is unset.
10
+ *
11
+ * - `getToolDescription(toolName, toolInput?)` — human-readable one-liner
12
+ * for a tool call. Used by handleNonStreaming + handleStreaming to
13
+ * populate the `tool` field of the status payload. Switch on tool name
14
+ * with sensible fallback ("Using tool: <name>") for unknown tools.
15
+ *
16
+ * Both functions are pure-ish: no shared mutable state, no closure
17
+ * capture from the orchestrator. `reportStatus` reads the URL env
18
+ * variable on every call so ops can flip it via launchctl/PM2 env
19
+ * without restarting the gateway.
20
+ */
21
+ import * as http from 'node:http';
22
+ import { getOpenaiCompatStatusUrl } from '../lib/config.js';
23
+ /**
24
+ * Optional status webhook — set `OPENAI_COMPAT_STATUS_URL` to an HTTP endpoint
25
+ * that accepts `POST { state, activity, tool }`. The bridge will fire-and-forget
26
+ * status updates when the CLI agent uses tools, so an external dashboard (e.g.
27
+ * a webchat status bar) can show real-time progress.
28
+ *
29
+ * Example: `OPENAI_COMPAT_STATUS_URL=http://127.0.0.1:18795/my-app/agent-status`
30
+ */
31
+ export function reportStatus(state, activity, tool) {
32
+ const url = getOpenaiCompatStatusUrl();
33
+ if (!url)
34
+ return;
35
+ const payload = JSON.stringify({ state, activity, tool: tool || null });
36
+ const req = http.request(url, {
37
+ method: 'POST',
38
+ headers: { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(payload) },
39
+ timeout: 2000,
40
+ }, () => { });
41
+ req.on('error', () => { });
42
+ req.write(payload);
43
+ req.end();
44
+ }
45
+ export function getToolDescription(toolName, toolInput) {
46
+ switch (toolName) {
47
+ case 'Bash':
48
+ case 'exec': {
49
+ const cmd = String(toolInput?.command || '');
50
+ return `Running: ${cmd.length > 50 ? cmd.slice(0, 50) + '...' : cmd}`;
51
+ }
52
+ case 'Read':
53
+ case 'read':
54
+ return `Reading: ${String(toolInput?.file_path || toolInput?.path || 'file')
55
+ .split('/')
56
+ .pop()}`;
57
+ case 'Write':
58
+ case 'write':
59
+ return `Writing: ${String(toolInput?.file_path || toolInput?.path || 'file')
60
+ .split('/')
61
+ .pop()}`;
62
+ case 'Edit':
63
+ case 'edit':
64
+ return `Editing: ${String(toolInput?.file_path || toolInput?.path || 'file')
65
+ .split('/')
66
+ .pop()}`;
67
+ case 'Glob':
68
+ case 'glob':
69
+ return `Searching files: ${String(toolInput?.pattern || '')}`;
70
+ case 'Grep':
71
+ case 'grep':
72
+ return `Searching content: ${String(toolInput?.pattern || '')}`;
73
+ case 'WebSearch':
74
+ return `Web search: ${String(toolInput?.query || '')}`;
75
+ case 'Agent':
76
+ return `Spawning sub-agent...`;
77
+ default:
78
+ return `Using tool: ${toolName}`;
79
+ }
80
+ }
81
+ //# sourceMappingURL=status-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-reporter.js","sourceRoot":"","sources":["../../../src/openai-compat/status-reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,QAAgB,EAAE,IAAa;IACzE,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CACtB,GAAG,EACH;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC7F,OAAO,EAAE,IAAI;KACd,EACD,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;IACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC1B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,SAAmC;IACtF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;YAC7C,OAAO,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACxE,CAAC;QACD,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,YAAY,MAAM,CAAC,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC;iBACzE,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,EAAE,EAAE,CAAC;QACb,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACV,OAAO,YAAY,MAAM,CAAC,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC;iBACzE,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,EAAE,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,YAAY,MAAM,CAAC,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,IAAI,IAAI,MAAM,CAAC;iBACzE,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,EAAE,EAAE,CAAC;QACb,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,oBAAoB,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM;YACT,OAAO,sBAAsB,MAAM,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAClE,KAAK,WAAW;YACd,OAAO,eAAe,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACzD,KAAK,OAAO;YACV,OAAO,uBAAuB,CAAC;QACjC;YACE,OAAO,eAAe,QAAQ,EAAE,CAAC;IACrC,CAAC;AACH,CAAC"}