@love-moon/cli2sdk 0.1.4 → 0.2.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/dist/bin/{tmates_test_cli.js → aiden_test_cli.js} +25 -16
- package/dist/bin/aiden_test_cli.js.map +1 -0
- package/dist/bin/cli2sdk2cli.d.ts +2 -0
- package/dist/bin/cli2sdk2cli.js +280 -0
- package/dist/bin/cli2sdk2cli.js.map +1 -0
- package/dist/bin/kimi_test_cli.d.ts +2 -0
- package/dist/bin/kimi_test_cli.js +84 -0
- package/dist/bin/kimi_test_cli.js.map +1 -0
- package/dist/core/base.d.ts +1 -1
- package/dist/core/base.js +3 -0
- package/dist/core/base.js.map +1 -1
- package/dist/core/chat_session.d.ts +11 -0
- package/dist/core/chat_session.js +33 -5
- package/dist/core/chat_session.js.map +1 -1
- package/dist/core/router.d.ts +2 -2
- package/dist/core/router.js +20 -4
- package/dist/core/router.js.map +1 -1
- package/dist/index.d.ts +10 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/aiden.d.ts +15 -0
- package/dist/providers/aiden.js +169 -0
- package/dist/providers/aiden.js.map +1 -0
- package/dist/providers/claude.d.ts +10 -0
- package/dist/providers/claude.js +52 -3
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/codex.d.ts +10 -0
- package/dist/providers/codex.js +53 -1
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/kimi.d.ts +14 -0
- package/dist/providers/kimi.js +160 -0
- package/dist/providers/kimi.js.map +1 -0
- package/dist/types/provider.d.ts +12 -1
- package/package.json +4 -3
- package/dist/bin/tmates_test_cli.js.map +0 -1
- package/dist/providers/tmates.d.ts +0 -10
- package/dist/providers/tmates.js +0 -36
- package/dist/providers/tmates.js.map +0 -1
- /package/dist/bin/{tmates_test_cli.d.ts → aiden_test_cli.d.ts} +0 -0
package/dist/core/router.js
CHANGED
|
@@ -8,7 +8,9 @@ import { LocalBinaryProvider } from "../providers/local_binary.js";
|
|
|
8
8
|
import { CopilotProvider } from "../providers/copilot.js";
|
|
9
9
|
import { CodexProvider } from "../providers/codex.js";
|
|
10
10
|
import { GenericProvider } from "../providers/generic.js";
|
|
11
|
-
|
|
11
|
+
import { AidenProvider } from "../providers/aiden.js";
|
|
12
|
+
import { KimiProvider } from "../providers/kimi.js";
|
|
13
|
+
const PROVIDER_ORDER = ["codex", "claude", "kimi", "gemini", "cursor", "local", "copilot", "generic", "aiden"];
|
|
12
14
|
const providerFactories = {
|
|
13
15
|
claude: (options) => new ClaudeProvider(options),
|
|
14
16
|
gemini: (options) => new GeminiProvider(options),
|
|
@@ -16,7 +18,9 @@ const providerFactories = {
|
|
|
16
18
|
local: (options) => new LocalBinaryProvider(options),
|
|
17
19
|
copilot: (options) => new CopilotProvider(options),
|
|
18
20
|
codex: (options) => new CodexProvider(options),
|
|
19
|
-
generic: (options) => new GenericProvider(options)
|
|
21
|
+
generic: (options) => new GenericProvider(options),
|
|
22
|
+
aiden: (options) => new AidenProvider(options),
|
|
23
|
+
kimi: (options) => new KimiProvider(options)
|
|
20
24
|
};
|
|
21
25
|
const configFor = (name, config) => {
|
|
22
26
|
switch (name) {
|
|
@@ -34,6 +38,10 @@ const configFor = (name, config) => {
|
|
|
34
38
|
return config.codex;
|
|
35
39
|
case "generic":
|
|
36
40
|
return config.generic;
|
|
41
|
+
case "aiden":
|
|
42
|
+
return config.aiden;
|
|
43
|
+
case "kimi":
|
|
44
|
+
return config.kimi;
|
|
37
45
|
default:
|
|
38
46
|
return undefined;
|
|
39
47
|
}
|
|
@@ -67,10 +75,18 @@ export class ProviderRouter {
|
|
|
67
75
|
const provider = this.resolveProvider(options?.provider);
|
|
68
76
|
yield* provider.stream(prompt, options);
|
|
69
77
|
}
|
|
70
|
-
session(cacheKey) {
|
|
78
|
+
session(cacheKey, options) {
|
|
79
|
+
// 默认仅对已验证支持 CLI 原生会话的提供方开启持久会话
|
|
80
|
+
// Aiden 在实际使用中会话行为不稳定,这里改为默认关闭,
|
|
81
|
+
// 让 cli2sdk 自己通过 history 维护多轮上下文。
|
|
82
|
+
const defaultProvider = this.config.provider ?? "codex";
|
|
83
|
+
const supportsPersistent = defaultProvider === "claude" || defaultProvider === "codex" || defaultProvider === "kimi";
|
|
84
|
+
const usePersistentSession = options?.usePersistentSession ?? supportsPersistent;
|
|
71
85
|
return new ChatSession(this, {
|
|
72
86
|
cacheKey,
|
|
73
|
-
cache: cacheKey ? this.sessionCache : undefined
|
|
87
|
+
cache: cacheKey ? this.sessionCache : undefined,
|
|
88
|
+
usePersistentSession,
|
|
89
|
+
initialSessionId: options?.initialSessionId
|
|
74
90
|
});
|
|
75
91
|
}
|
|
76
92
|
resolveProvider(name) {
|
package/dist/core/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/core/router.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { ChatSession } from "./core/chat_session.js";
|
|
2
2
|
import { Cli2SdkConfig, RunOptions } from "./types/provider.js";
|
|
3
3
|
import { ResultChunk, RunResult } from "./types/result.js";
|
|
4
|
+
/** Options for creating a chat session */
|
|
5
|
+
export interface SessionOptions {
|
|
6
|
+
/** Enable CLI-native persistent session (reduces token usage for Claude/Codex) */
|
|
7
|
+
usePersistentSession?: boolean;
|
|
8
|
+
/** Initial CLI session ID for resuming a previous session */
|
|
9
|
+
initialSessionId?: string;
|
|
10
|
+
}
|
|
4
11
|
export declare const cli2sdk: (config?: Cli2SdkConfig) => {
|
|
5
12
|
run: (prompt: string, options?: RunOptions) => Promise<RunResult>;
|
|
6
13
|
stream: (prompt: string, options?: RunOptions) => AsyncGenerator<ResultChunk>;
|
|
7
|
-
session: (cacheKey?: string) => ChatSession;
|
|
14
|
+
session: (cacheKey?: string, options?: SessionOptions) => ChatSession;
|
|
8
15
|
router: import("./core/router.js").ProviderRouter;
|
|
9
16
|
};
|
|
10
|
-
export type { Cli2SdkConfig, RunOptions } from "./types/provider.js";
|
|
17
|
+
export type { Cli2SdkConfig, RunOptions, PersistentSessionOptions } from "./types/provider.js";
|
|
11
18
|
export type { ResultChunk, RunResult } from "./types/result.js";
|
|
12
19
|
export type { Message, MessageHistory } from "./types/message.js";
|
|
13
|
-
export { ChatSession } from "./core/chat_session.js";
|
|
20
|
+
export { ChatSession, ChatSessionOptions } from "./core/chat_session.js";
|
|
14
21
|
export { ProviderRouter } from "./core/router.js";
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export const cli2sdk = (config = {}) => {
|
|
|
4
4
|
return {
|
|
5
5
|
run: (prompt, options) => router.run(prompt, options),
|
|
6
6
|
stream: (prompt, options) => router.stream(prompt, options),
|
|
7
|
-
session: (cacheKey) => router.session(cacheKey),
|
|
7
|
+
session: (cacheKey, options) => router.session(cacheKey, options),
|
|
8
8
|
router
|
|
9
9
|
};
|
|
10
10
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAahD,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,SAAwB,EAAE,EAAE,EAAE;IACpD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;QACL,GAAG,EAAE,CAAC,MAAc,EAAE,OAAoB,EAAsB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;QAC9F,MAAM,EAAE,CAAC,MAAc,EAAE,OAAoB,EAA+B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAC7G,OAAO,EAAE,CAAC,QAAiB,EAAE,OAAwB,EAAe,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;QACxG,MAAM;KACP,CAAC;AACJ,CAAC,CAAC;AAKF,OAAO,EAAE,WAAW,EAAsB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CliCommandProvider, CliProviderOptions } from "../core/base.js";
|
|
2
|
+
import { RunOptions } from "../types/provider.js";
|
|
3
|
+
import { RunResult } from "../types/result.js";
|
|
4
|
+
import { CommandRequest } from "../utils/shell.js";
|
|
5
|
+
export declare class AidenProvider extends CliCommandProvider {
|
|
6
|
+
private currentSessionId?;
|
|
7
|
+
constructor(options?: CliProviderOptions);
|
|
8
|
+
protected enrichArgs(_prompt: string, options?: RunOptions): string[];
|
|
9
|
+
protected toCommandRequest(prompt: string, options?: RunOptions, stream?: boolean): CommandRequest;
|
|
10
|
+
run(prompt: string, options?: RunOptions): Promise<RunResult>;
|
|
11
|
+
/** Get the current CLI session ID */
|
|
12
|
+
getSessionId(): string | undefined;
|
|
13
|
+
/** Set the CLI session ID (for resuming sessions) */
|
|
14
|
+
setSessionId(sessionId: string): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { CliCommandProvider } from "../core/base.js";
|
|
2
|
+
import { StreamDecoder } from "../core/stream.js";
|
|
3
|
+
const DEFAULT_ARGS = ["--print"];
|
|
4
|
+
// Aiden NDJSON stream format parser
|
|
5
|
+
const parseAidenStream = (data) => {
|
|
6
|
+
const lines = data.trim().split('\n');
|
|
7
|
+
let delta = '';
|
|
8
|
+
let done = false;
|
|
9
|
+
let sessionId;
|
|
10
|
+
for (const line of lines) {
|
|
11
|
+
if (!line)
|
|
12
|
+
continue;
|
|
13
|
+
try {
|
|
14
|
+
const json = JSON.parse(line);
|
|
15
|
+
if (json.type === 'session' && json.sessionId) {
|
|
16
|
+
sessionId = json.sessionId;
|
|
17
|
+
}
|
|
18
|
+
else if (json.type === 'content' && json.content) {
|
|
19
|
+
delta += json.content;
|
|
20
|
+
}
|
|
21
|
+
else if (json.type === 'done' || json.type === 'error') {
|
|
22
|
+
done = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// Skip invalid JSON lines or non-JSON (like login check messages)
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const chunk = { delta };
|
|
30
|
+
if (done)
|
|
31
|
+
chunk.done = true;
|
|
32
|
+
if (sessionId)
|
|
33
|
+
chunk.metadata = { sessionId };
|
|
34
|
+
return chunk;
|
|
35
|
+
};
|
|
36
|
+
export class AidenProvider extends CliCommandProvider {
|
|
37
|
+
currentSessionId;
|
|
38
|
+
constructor(options = {}) {
|
|
39
|
+
super("aiden", {
|
|
40
|
+
...options,
|
|
41
|
+
binary: {
|
|
42
|
+
command: options.binary?.command ?? "aiden",
|
|
43
|
+
args: options.binary?.args ?? DEFAULT_ARGS,
|
|
44
|
+
streamArgs: options.binary?.streamArgs ?? ["--print", "--stream-json"],
|
|
45
|
+
inputFormat: options.binary?.inputFormat ?? "text",
|
|
46
|
+
cwd: options.binary?.cwd,
|
|
47
|
+
env: options.binary?.env,
|
|
48
|
+
timeoutMs: options.binary?.timeoutMs,
|
|
49
|
+
supportsStreaming: true
|
|
50
|
+
},
|
|
51
|
+
streamDecoder: () => new StreamDecoder(parseAidenStream)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
enrichArgs(_prompt, options) {
|
|
55
|
+
const args = [];
|
|
56
|
+
// Handle persistent session
|
|
57
|
+
const ps = options?.persistentSession;
|
|
58
|
+
if (ps?.enabled) {
|
|
59
|
+
const sessionId = ps.sessionId || this.currentSessionId;
|
|
60
|
+
if (sessionId) {
|
|
61
|
+
// Resume existing session
|
|
62
|
+
args.push("--resume", sessionId);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// Use --continue for most recent session (no explicit session ID)
|
|
66
|
+
args.push("--continue");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (options?.quiet) {
|
|
70
|
+
args.push("--quiet");
|
|
71
|
+
}
|
|
72
|
+
return args;
|
|
73
|
+
}
|
|
74
|
+
toCommandRequest(prompt, options, stream = false) {
|
|
75
|
+
// 如果未启用 CLI 原生持久会话,则由 cli2sdk 自己拼接多轮对话
|
|
76
|
+
// 到一个大的 prompt 里传给 Aiden,这样可以保证多轮对话在
|
|
77
|
+
// 所有环境下都能工作,而不依赖 Aiden CLI 本身的会话实现。
|
|
78
|
+
const usePersistent = options?.persistentSession?.enabled;
|
|
79
|
+
let finalPrompt = prompt;
|
|
80
|
+
if (!usePersistent) {
|
|
81
|
+
const history = options?.history && options.history.length > 0
|
|
82
|
+
? options.history
|
|
83
|
+
: this.history;
|
|
84
|
+
if (history && history.length > 0) {
|
|
85
|
+
// ChatSession 在非持久模式下会把当前 user 消息也放进 history,
|
|
86
|
+
// 因此这里直接用 history 渲染即可,避免再额外拼一次 prompt。
|
|
87
|
+
const historyLines = history.map((msg) => `[${msg.role}] ${msg.content}`);
|
|
88
|
+
finalPrompt = historyLines.join("\n");
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const enrichArgs = this.enrichArgs(finalPrompt, options);
|
|
92
|
+
// Build args - aiden takes prompt as argument, not stdin
|
|
93
|
+
const baseArgs = stream
|
|
94
|
+
? [...(this.binary?.streamArgs ?? []), ...enrichArgs]
|
|
95
|
+
: [...(this.binary?.args ?? []), ...enrichArgs];
|
|
96
|
+
const args = [...baseArgs, finalPrompt];
|
|
97
|
+
// Prepare environment - disable proxy while preserving other vars
|
|
98
|
+
const env = {
|
|
99
|
+
...(this.binary?.env || {}),
|
|
100
|
+
...(options?.env || {})
|
|
101
|
+
};
|
|
102
|
+
// Disable proxy for Aiden
|
|
103
|
+
const proxyVars = ['HTTP_PROXY', 'HTTPS_PROXY', 'http_proxy', 'https_proxy', 'ALL_PROXY', 'all_proxy', 'NO_PROXY', 'no_proxy'];
|
|
104
|
+
for (const varName of proxyVars) {
|
|
105
|
+
delete env[varName];
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
command: this.binary?.command ?? "aiden",
|
|
109
|
+
args,
|
|
110
|
+
cwd: options?.cwd ?? this.binary?.cwd,
|
|
111
|
+
env,
|
|
112
|
+
stdin: undefined, // Aiden uses prompt as argument, not stdin
|
|
113
|
+
timeoutMs: options?.timeoutMs ?? this.binary?.timeoutMs,
|
|
114
|
+
signal: options?.signal ?? this.binary?.signal
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async run(prompt, options) {
|
|
118
|
+
const usePersistent = options?.persistentSession?.enabled;
|
|
119
|
+
if (usePersistent) {
|
|
120
|
+
const chunks = [];
|
|
121
|
+
let text = "";
|
|
122
|
+
let sessionId;
|
|
123
|
+
for await (const chunk of this.stream(prompt, options)) {
|
|
124
|
+
chunks.push(chunk);
|
|
125
|
+
if (chunk.delta) {
|
|
126
|
+
text += chunk.delta;
|
|
127
|
+
}
|
|
128
|
+
else if (chunk.text) {
|
|
129
|
+
text += chunk.text;
|
|
130
|
+
}
|
|
131
|
+
const chunkSessionId = chunk.metadata?.sessionId;
|
|
132
|
+
if (typeof chunkSessionId === "string" && chunkSessionId.length > 0) {
|
|
133
|
+
sessionId = chunkSessionId;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const result = {
|
|
137
|
+
text: text.trim(),
|
|
138
|
+
chunks,
|
|
139
|
+
history: this.history,
|
|
140
|
+
provider: this.name,
|
|
141
|
+
metadata: sessionId ? { sessionId } : undefined
|
|
142
|
+
};
|
|
143
|
+
if (sessionId) {
|
|
144
|
+
this.currentSessionId = sessionId;
|
|
145
|
+
}
|
|
146
|
+
return result;
|
|
147
|
+
}
|
|
148
|
+
const result = await super.run(prompt, options);
|
|
149
|
+
// Filter out login check messages from output
|
|
150
|
+
const lines = result.text.split('\n');
|
|
151
|
+
const filteredLines = lines.filter(line => !line.includes('- Check user login status...') &&
|
|
152
|
+
!line.includes('Check user login status...'));
|
|
153
|
+
result.text = filteredLines.join('\n').trim();
|
|
154
|
+
// Extract sessionId from metadata if present
|
|
155
|
+
if (result.metadata?.sessionId) {
|
|
156
|
+
this.currentSessionId = result.metadata.sessionId;
|
|
157
|
+
}
|
|
158
|
+
return result;
|
|
159
|
+
}
|
|
160
|
+
/** Get the current CLI session ID */
|
|
161
|
+
getSessionId() {
|
|
162
|
+
return this.currentSessionId;
|
|
163
|
+
}
|
|
164
|
+
/** Set the CLI session ID (for resuming sessions) */
|
|
165
|
+
setSessionId(sessionId) {
|
|
166
|
+
this.currentSessionId = sessionId;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=aiden.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aiden.js","sourceRoot":"","sources":["../../src/providers/aiden.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { CliCommandProvider, CliProviderOptions } from "../core/base.js";
|
|
2
2
|
import { RunOptions } from "../types/provider.js";
|
|
3
|
+
import { RunResult } from "../types/result.js";
|
|
4
|
+
import { MessageHistory } from "../types/message.js";
|
|
3
5
|
export declare class ClaudeProvider extends CliCommandProvider {
|
|
6
|
+
private currentSessionId?;
|
|
4
7
|
constructor(options?: CliProviderOptions);
|
|
5
8
|
protected enrichArgs(_prompt: string, options?: RunOptions): string[];
|
|
9
|
+
run(prompt: string, options?: RunOptions): Promise<RunResult>;
|
|
10
|
+
private extractSessionId;
|
|
11
|
+
protected buildPayload(prompt: string, history: MessageHistory): string;
|
|
12
|
+
/** Get the current CLI session ID */
|
|
13
|
+
getSessionId(): string | undefined;
|
|
14
|
+
/** Set the CLI session ID (for resuming sessions) */
|
|
15
|
+
setSessionId(sessionId: string): void;
|
|
6
16
|
}
|
package/dist/providers/claude.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import { CliCommandProvider } from "../core/base.js";
|
|
2
|
-
const DEFAULT_ARGS = ["--output-format", "json"];
|
|
3
|
+
const DEFAULT_ARGS = ["-p", "--output-format", "json"];
|
|
3
4
|
export class ClaudeProvider extends CliCommandProvider {
|
|
5
|
+
currentSessionId;
|
|
4
6
|
constructor(options = {}) {
|
|
5
7
|
super("claude", {
|
|
6
8
|
...options,
|
|
7
9
|
binary: {
|
|
8
10
|
command: options.binary?.command ?? "claude",
|
|
9
11
|
args: options.binary?.args ?? DEFAULT_ARGS,
|
|
10
|
-
streamArgs: options.binary?.streamArgs ?? ["--stream"],
|
|
11
|
-
inputFormat: options.binary?.inputFormat ?? "
|
|
12
|
+
streamArgs: options.binary?.streamArgs ?? ["--output-format", "stream-json"],
|
|
13
|
+
inputFormat: options.binary?.inputFormat ?? "text",
|
|
12
14
|
cwd: options.binary?.cwd,
|
|
13
15
|
env: options.binary?.env,
|
|
14
16
|
timeoutMs: options.binary?.timeoutMs,
|
|
@@ -18,10 +20,57 @@ export class ClaudeProvider extends CliCommandProvider {
|
|
|
18
20
|
}
|
|
19
21
|
enrichArgs(_prompt, options) {
|
|
20
22
|
const args = [];
|
|
23
|
+
const ps = options?.persistentSession;
|
|
24
|
+
if (ps?.enabled) {
|
|
25
|
+
const sessionId = ps.sessionId || this.currentSessionId;
|
|
26
|
+
if (sessionId) {
|
|
27
|
+
args.push("--resume", sessionId);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
const newId = randomUUID();
|
|
31
|
+
args.push("--session-id", newId);
|
|
32
|
+
this.currentSessionId = newId;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
21
35
|
if (options?.quiet) {
|
|
22
36
|
args.push("--quiet");
|
|
23
37
|
}
|
|
24
38
|
return args;
|
|
25
39
|
}
|
|
40
|
+
async run(prompt, options) {
|
|
41
|
+
const result = await super.run(prompt, options);
|
|
42
|
+
if (options?.persistentSession?.enabled) {
|
|
43
|
+
this.extractSessionId(result);
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
extractSessionId(result) {
|
|
48
|
+
try {
|
|
49
|
+
const json = JSON.parse(result.text);
|
|
50
|
+
if (json.session_id) {
|
|
51
|
+
this.currentSessionId = json.session_id;
|
|
52
|
+
result.metadata = { ...result.metadata, sessionId: json.session_id };
|
|
53
|
+
}
|
|
54
|
+
if (json.result) {
|
|
55
|
+
result.text = json.result;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Not JSON, ignore
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
buildPayload(prompt, history) {
|
|
63
|
+
// For persistent sessions, CLI maintains history, so we only send prompt
|
|
64
|
+
// For non-persistent sessions, we still send history for backward compatibility
|
|
65
|
+
return JSON.stringify({ prompt, history });
|
|
66
|
+
}
|
|
67
|
+
/** Get the current CLI session ID */
|
|
68
|
+
getSessionId() {
|
|
69
|
+
return this.currentSessionId;
|
|
70
|
+
}
|
|
71
|
+
/** Set the CLI session ID (for resuming sessions) */
|
|
72
|
+
setSessionId(sessionId) {
|
|
73
|
+
this.currentSessionId = sessionId;
|
|
74
|
+
}
|
|
26
75
|
}
|
|
27
76
|
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { CliCommandProvider, CliProviderOptions } from "../core/base.js";
|
|
2
2
|
import { RunOptions } from "../types/provider.js";
|
|
3
|
+
import { RunResult } from "../types/result.js";
|
|
4
|
+
import { CommandRequest } from "../utils/shell.js";
|
|
3
5
|
export declare class CodexProvider extends CliCommandProvider {
|
|
6
|
+
private currentSessionId?;
|
|
4
7
|
constructor(options?: CliProviderOptions);
|
|
5
8
|
protected enrichArgs(_prompt: string, options?: RunOptions): string[];
|
|
9
|
+
protected toCommandRequest(prompt: string, options?: RunOptions, stream?: boolean): CommandRequest;
|
|
10
|
+
run(prompt: string, options?: RunOptions): Promise<RunResult>;
|
|
11
|
+
private extractSessionId;
|
|
12
|
+
/** Get the current CLI session ID (thread_id) */
|
|
13
|
+
getSessionId(): string | undefined;
|
|
14
|
+
/** Set the CLI session ID (for resuming sessions) */
|
|
15
|
+
setSessionId(sessionId: string): void;
|
|
6
16
|
}
|
package/dist/providers/codex.js
CHANGED
|
@@ -54,7 +54,7 @@ function buildBinaryConfig(binary) {
|
|
|
54
54
|
const { command, args, streamArgs, inputFormat, supportsStreaming, name, cwd, env, timeoutMs, stdin, signal, ...extra } = config;
|
|
55
55
|
const codexArgs = normalizeCodexArgs(extra);
|
|
56
56
|
const baseArgs = Array.isArray(args) ? args : [];
|
|
57
|
-
const normalizedBaseArgs = baseArgs.length ? baseArgs : ["exec"];
|
|
57
|
+
const normalizedBaseArgs = baseArgs.length ? baseArgs : ["exec", "--json"];
|
|
58
58
|
return {
|
|
59
59
|
command: command ?? "codex",
|
|
60
60
|
args: [...normalizedBaseArgs, ...codexArgs],
|
|
@@ -70,6 +70,7 @@ function buildBinaryConfig(binary) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
export class CodexProvider extends CliCommandProvider {
|
|
73
|
+
currentSessionId;
|
|
73
74
|
constructor(options = {}) {
|
|
74
75
|
super("codex", {
|
|
75
76
|
...options,
|
|
@@ -83,5 +84,56 @@ export class CodexProvider extends CliCommandProvider {
|
|
|
83
84
|
}
|
|
84
85
|
return args;
|
|
85
86
|
}
|
|
87
|
+
toCommandRequest(prompt, options, stream = false) {
|
|
88
|
+
const ps = options?.persistentSession;
|
|
89
|
+
// Use exec resume for persistent sessions
|
|
90
|
+
if (ps?.enabled && (ps.sessionId || this.currentSessionId)) {
|
|
91
|
+
const sessionId = ps.sessionId || this.currentSessionId;
|
|
92
|
+
return {
|
|
93
|
+
command: "codex",
|
|
94
|
+
args: ["exec", "resume", sessionId, "--json"],
|
|
95
|
+
stdin: prompt,
|
|
96
|
+
cwd: options?.cwd,
|
|
97
|
+
env: options?.env,
|
|
98
|
+
timeoutMs: options?.timeoutMs,
|
|
99
|
+
signal: options?.signal
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
return super.toCommandRequest(prompt, options, stream);
|
|
103
|
+
}
|
|
104
|
+
async run(prompt, options) {
|
|
105
|
+
const result = await super.run(prompt, options);
|
|
106
|
+
if (options?.persistentSession?.enabled) {
|
|
107
|
+
this.extractSessionId(result);
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
extractSessionId(result) {
|
|
112
|
+
// Codex outputs JSONL, look for thread_id in any line
|
|
113
|
+
const lines = result.text.split("\n");
|
|
114
|
+
for (const line of lines) {
|
|
115
|
+
if (!line.trim())
|
|
116
|
+
continue;
|
|
117
|
+
try {
|
|
118
|
+
const json = JSON.parse(line);
|
|
119
|
+
if (json.thread_id) {
|
|
120
|
+
this.currentSessionId = json.thread_id;
|
|
121
|
+
result.metadata = { ...result.metadata, sessionId: json.thread_id };
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Not JSON, continue
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Get the current CLI session ID (thread_id) */
|
|
131
|
+
getSessionId() {
|
|
132
|
+
return this.currentSessionId;
|
|
133
|
+
}
|
|
134
|
+
/** Set the CLI session ID (for resuming sessions) */
|
|
135
|
+
setSessionId(sessionId) {
|
|
136
|
+
this.currentSessionId = sessionId;
|
|
137
|
+
}
|
|
86
138
|
}
|
|
87
139
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAsB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CliCommandProvider, CliProviderOptions } from "../core/base.js";
|
|
2
|
+
import { RunOptions } from "../types/provider.js";
|
|
3
|
+
import { RunResult, ResultChunk } from "../types/result.js";
|
|
4
|
+
import { CommandRequest } from "../utils/shell.js";
|
|
5
|
+
export declare class KimiProvider extends CliCommandProvider {
|
|
6
|
+
private currentSessionId?;
|
|
7
|
+
constructor(options?: CliProviderOptions);
|
|
8
|
+
protected enrichArgs(_prompt: string, options?: RunOptions): string[];
|
|
9
|
+
protected toCommandRequest(prompt: string, options?: RunOptions, stream?: boolean): CommandRequest;
|
|
10
|
+
run(prompt: string, options?: RunOptions): Promise<RunResult>;
|
|
11
|
+
stream(prompt: string, options?: RunOptions): AsyncGenerator<ResultChunk>;
|
|
12
|
+
getSessionId(): string | undefined;
|
|
13
|
+
setSessionId(sessionId: string): void;
|
|
14
|
+
}
|