@a5c-ai/agent-mux-adapters 0.2.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.
- package/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/adapter-install.d.ts +21 -0
- package/dist/adapter-install.d.ts.map +1 -0
- package/dist/adapter-install.js +114 -0
- package/dist/adapter-install.js.map +1 -0
- package/dist/agent-mux-remote-adapter.d.ts +66 -0
- package/dist/agent-mux-remote-adapter.d.ts.map +1 -0
- package/dist/agent-mux-remote-adapter.js +283 -0
- package/dist/agent-mux-remote-adapter.js.map +1 -0
- package/dist/auth-config.d.ts +14 -0
- package/dist/auth-config.d.ts.map +1 -0
- package/dist/auth-config.js +52 -0
- package/dist/auth-config.js.map +1 -0
- package/dist/base-adapter.d.ts +150 -0
- package/dist/base-adapter.d.ts.map +1 -0
- package/dist/base-adapter.js +458 -0
- package/dist/base-adapter.js.map +1 -0
- package/dist/claude-adapter.d.ts +52 -0
- package/dist/claude-adapter.d.ts.map +1 -0
- package/dist/claude-adapter.js +375 -0
- package/dist/claude-adapter.js.map +1 -0
- package/dist/codex-adapter.d.ts +26 -0
- package/dist/codex-adapter.d.ts.map +1 -0
- package/dist/codex-adapter.js +243 -0
- package/dist/codex-adapter.js.map +1 -0
- package/dist/copilot-adapter.d.ts +26 -0
- package/dist/copilot-adapter.d.ts.map +1 -0
- package/dist/copilot-adapter.js +199 -0
- package/dist/copilot-adapter.js.map +1 -0
- package/dist/cursor-adapter.d.ts +39 -0
- package/dist/cursor-adapter.d.ts.map +1 -0
- package/dist/cursor-adapter.js +247 -0
- package/dist/cursor-adapter.js.map +1 -0
- package/dist/gemini-adapter.d.ts +36 -0
- package/dist/gemini-adapter.d.ts.map +1 -0
- package/dist/gemini-adapter.js +287 -0
- package/dist/gemini-adapter.js.map +1 -0
- package/dist/hermes-adapter.d.ts +33 -0
- package/dist/hermes-adapter.d.ts.map +1 -0
- package/dist/hermes-adapter.js +269 -0
- package/dist/hermes-adapter.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-plugins.d.ts +13 -0
- package/dist/mcp-plugins.d.ts.map +1 -0
- package/dist/mcp-plugins.js +63 -0
- package/dist/mcp-plugins.js.map +1 -0
- package/dist/omp-adapter.d.ts +26 -0
- package/dist/omp-adapter.d.ts.map +1 -0
- package/dist/omp-adapter.js +195 -0
- package/dist/omp-adapter.js.map +1 -0
- package/dist/openclaw-adapter.d.ts +30 -0
- package/dist/openclaw-adapter.d.ts.map +1 -0
- package/dist/openclaw-adapter.js +212 -0
- package/dist/openclaw-adapter.js.map +1 -0
- package/dist/opencode-adapter.d.ts +30 -0
- package/dist/opencode-adapter.d.ts.map +1 -0
- package/dist/opencode-adapter.js +231 -0
- package/dist/opencode-adapter.js.map +1 -0
- package/dist/pi-adapter.d.ts +26 -0
- package/dist/pi-adapter.d.ts.map +1 -0
- package/dist/pi-adapter.js +196 -0
- package/dist/pi-adapter.js.map +1 -0
- package/dist/qwen-adapter.d.ts +36 -0
- package/dist/qwen-adapter.d.ts.map +1 -0
- package/dist/qwen-adapter.js +257 -0
- package/dist/qwen-adapter.js.map +1 -0
- package/dist/session-fs.d.ts +83 -0
- package/dist/session-fs.d.ts.map +1 -0
- package/dist/session-fs.js +255 -0
- package/dist/session-fs.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared filesystem helpers for adapter session and config I/O.
|
|
3
|
+
*
|
|
4
|
+
* Kept intentionally dependency-free — only uses `node:fs/promises`
|
|
5
|
+
* and `node:path` with forward-slash-safe joins.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'node:fs/promises';
|
|
8
|
+
import * as path from 'node:path';
|
|
9
|
+
import * as os from 'node:os';
|
|
10
|
+
import { writeFileAtomic, writeJsonAtomic } from '@a5c-ai/agent-mux-core';
|
|
11
|
+
/**
|
|
12
|
+
* Recursively list all files matching `predicate` under `dir`.
|
|
13
|
+
* Returns absolute paths with forward slashes.
|
|
14
|
+
* If `dir` does not exist, returns an empty array.
|
|
15
|
+
*/
|
|
16
|
+
export async function listFilesRecursive(dir, predicate) {
|
|
17
|
+
const out = [];
|
|
18
|
+
async function walk(current) {
|
|
19
|
+
let entries;
|
|
20
|
+
try {
|
|
21
|
+
entries = await fs.readdir(current, { withFileTypes: true });
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
for (const entry of entries) {
|
|
27
|
+
const full = path.join(current, entry.name);
|
|
28
|
+
if (entry.isDirectory()) {
|
|
29
|
+
await walk(full);
|
|
30
|
+
}
|
|
31
|
+
else if (entry.isFile() && predicate(entry.name, full)) {
|
|
32
|
+
out.push(full.split(path.sep).join('/'));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
await walk(dir);
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
/** List *.jsonl files recursively under `dir`. */
|
|
40
|
+
export async function listJsonlFiles(dir) {
|
|
41
|
+
return listFilesRecursive(dir, (name) => name.toLowerCase().endsWith('.jsonl'));
|
|
42
|
+
}
|
|
43
|
+
/** List *.json files recursively under `dir`. */
|
|
44
|
+
export async function listJsonFiles(dir) {
|
|
45
|
+
return listFilesRecursive(dir, (name) => name.toLowerCase().endsWith('.json'));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Parse a JSONL file into an array of record objects (ignores blank lines
|
|
49
|
+
* and lines that fail to parse). Returns empty array if file missing.
|
|
50
|
+
*/
|
|
51
|
+
export async function parseJsonlFile(filePath) {
|
|
52
|
+
let raw;
|
|
53
|
+
try {
|
|
54
|
+
raw = await fs.readFile(filePath, 'utf8');
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return [];
|
|
58
|
+
}
|
|
59
|
+
const rows = [];
|
|
60
|
+
for (const line of raw.split(/\r?\n/)) {
|
|
61
|
+
const trimmed = line.trim();
|
|
62
|
+
if (!trimmed)
|
|
63
|
+
continue;
|
|
64
|
+
try {
|
|
65
|
+
const parsed = JSON.parse(trimmed);
|
|
66
|
+
if (parsed && typeof parsed === 'object') {
|
|
67
|
+
rows.push(parsed);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
// skip malformed line
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return rows;
|
|
75
|
+
}
|
|
76
|
+
/** Read + parse a JSON file. Returns null if missing or invalid. */
|
|
77
|
+
export async function readJsonFile(filePath) {
|
|
78
|
+
try {
|
|
79
|
+
const raw = await fs.readFile(filePath, 'utf8');
|
|
80
|
+
return JSON.parse(raw);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Atomically write JSON via the unified core helper (tmp + fsync + rename
|
|
88
|
+
* with advisory lockfile). Creates parent directories as needed.
|
|
89
|
+
*/
|
|
90
|
+
export async function writeJsonFileAtomic(filePath, data) {
|
|
91
|
+
await writeJsonAtomic(filePath, data);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Minimal flat-YAML parser for simple `key: value` files.
|
|
95
|
+
* Supports:
|
|
96
|
+
* - comments (# ...)
|
|
97
|
+
* - scalar values (strings, numbers, booleans, null)
|
|
98
|
+
* - quoted strings ("..." or '...')
|
|
99
|
+
* - simple nested blocks via two-space indentation (one level deep)
|
|
100
|
+
* Does NOT support lists, anchors, multi-line strings.
|
|
101
|
+
*/
|
|
102
|
+
export function parseFlatYaml(text) {
|
|
103
|
+
const out = {};
|
|
104
|
+
let currentParent = null;
|
|
105
|
+
let currentParentIndent = -1;
|
|
106
|
+
for (const rawLine of text.split(/\r?\n/)) {
|
|
107
|
+
const line = rawLine.replace(/\s+#.*$/, '').replace(/^#.*$/, '');
|
|
108
|
+
if (!line.trim())
|
|
109
|
+
continue;
|
|
110
|
+
const indentMatch = /^(\s*)/.exec(line);
|
|
111
|
+
const indent = indentMatch ? indentMatch[1].length : 0;
|
|
112
|
+
const content = line.slice(indent);
|
|
113
|
+
const colonIdx = content.indexOf(':');
|
|
114
|
+
if (colonIdx === -1)
|
|
115
|
+
continue;
|
|
116
|
+
const key = content.slice(0, colonIdx).trim();
|
|
117
|
+
const valueRaw = content.slice(colonIdx + 1).trim();
|
|
118
|
+
const target = indent > currentParentIndent && currentParent ? currentParent : out;
|
|
119
|
+
if (valueRaw === '') {
|
|
120
|
+
// Start of a nested block
|
|
121
|
+
const child = {};
|
|
122
|
+
out[key] = child;
|
|
123
|
+
currentParent = child;
|
|
124
|
+
currentParentIndent = indent;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
target[key] = coerceYamlScalar(valueRaw);
|
|
128
|
+
if (target === out) {
|
|
129
|
+
currentParent = null;
|
|
130
|
+
currentParentIndent = -1;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return out;
|
|
135
|
+
}
|
|
136
|
+
function coerceYamlScalar(s) {
|
|
137
|
+
if ((s.startsWith('"') && s.endsWith('"')) || (s.startsWith("'") && s.endsWith("'"))) {
|
|
138
|
+
return s.slice(1, -1);
|
|
139
|
+
}
|
|
140
|
+
if (s === 'true')
|
|
141
|
+
return true;
|
|
142
|
+
if (s === 'false')
|
|
143
|
+
return false;
|
|
144
|
+
if (s === 'null' || s === '~')
|
|
145
|
+
return null;
|
|
146
|
+
if (/^-?\d+$/.test(s))
|
|
147
|
+
return Number(s);
|
|
148
|
+
if (/^-?\d+\.\d+$/.test(s))
|
|
149
|
+
return Number(s);
|
|
150
|
+
return s;
|
|
151
|
+
}
|
|
152
|
+
/** Serialize a flat object to simple YAML (top-level + one level of nesting). */
|
|
153
|
+
export function stringifyFlatYaml(obj) {
|
|
154
|
+
const lines = [];
|
|
155
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
156
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
157
|
+
lines.push(`${key}:`);
|
|
158
|
+
for (const [k, v] of Object.entries(value)) {
|
|
159
|
+
lines.push(` ${k}: ${formatYamlScalar(v)}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
lines.push(`${key}: ${formatYamlScalar(value)}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return lines.join('\n') + '\n';
|
|
167
|
+
}
|
|
168
|
+
function formatYamlScalar(v) {
|
|
169
|
+
if (v === null || v === undefined)
|
|
170
|
+
return 'null';
|
|
171
|
+
if (typeof v === 'string') {
|
|
172
|
+
if (/[:#\n]/.test(v) || v === '' || /^\s|\s$/.test(v)) {
|
|
173
|
+
return JSON.stringify(v);
|
|
174
|
+
}
|
|
175
|
+
return v;
|
|
176
|
+
}
|
|
177
|
+
if (typeof v === 'boolean' || typeof v === 'number')
|
|
178
|
+
return String(v);
|
|
179
|
+
return JSON.stringify(v);
|
|
180
|
+
}
|
|
181
|
+
/** Atomically write arbitrary text via the unified core helper. */
|
|
182
|
+
export async function writeTextFileAtomic(filePath, text) {
|
|
183
|
+
await writeFileAtomic(filePath, text);
|
|
184
|
+
}
|
|
185
|
+
/** fs.stat safely: returns null on ENOENT. */
|
|
186
|
+
export async function statSafe(filePath) {
|
|
187
|
+
try {
|
|
188
|
+
const st = await fs.stat(filePath);
|
|
189
|
+
return { mtimeMs: st.mtimeMs, birthtimeMs: st.birthtimeMs, size: st.size };
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return null;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Normalize a path to forward slashes (Windows-safe, cross-platform).
|
|
197
|
+
*/
|
|
198
|
+
export function toPosix(p) {
|
|
199
|
+
return p.split(path.sep).join('/');
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Home-directory-relative join with forward slashes.
|
|
203
|
+
*/
|
|
204
|
+
export function homeJoin(...segments) {
|
|
205
|
+
return toPosix(path.join(os.homedir(), ...segments));
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Shared `parseSessionFile` logic: read JSONL, derive createdAt from
|
|
209
|
+
* file stat birthtime, updatedAt from mtime, and build SessionMessage[]
|
|
210
|
+
* from rows via `rowToMessage` heuristics.
|
|
211
|
+
* The caller supplies the agent name.
|
|
212
|
+
*/
|
|
213
|
+
export async function parseJsonlSessionFile(filePath, agent) {
|
|
214
|
+
const sessionId = path.basename(filePath, path.extname(filePath));
|
|
215
|
+
const rows = await parseJsonlFile(filePath);
|
|
216
|
+
const messages = [];
|
|
217
|
+
for (const row of rows) {
|
|
218
|
+
const msg = rowToMessage(row);
|
|
219
|
+
if (msg)
|
|
220
|
+
messages.push(msg);
|
|
221
|
+
}
|
|
222
|
+
const stat = await statSafe(filePath);
|
|
223
|
+
const now = new Date().toISOString();
|
|
224
|
+
const createdAt = stat ? new Date(stat.birthtimeMs || stat.mtimeMs).toISOString() : now;
|
|
225
|
+
const updatedAt = stat ? new Date(stat.mtimeMs).toISOString() : now;
|
|
226
|
+
// A "turn" = user message; fallback to assistant count when no users.
|
|
227
|
+
const userTurns = messages.filter((m) => m.role === 'user').length;
|
|
228
|
+
const assistantTurns = messages.filter((m) => m.role === 'assistant').length;
|
|
229
|
+
const turnCount = userTurns || assistantTurns;
|
|
230
|
+
return { sessionId, agent, turnCount, createdAt, updatedAt, messages, raw: rows };
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Derive a SessionMessage-like representation from an arbitrary JSONL row.
|
|
234
|
+
* Used by adapters that don't have a more precise schema.
|
|
235
|
+
*/
|
|
236
|
+
export function rowToMessage(row) {
|
|
237
|
+
const roleRaw = (row['role'] ?? row['sender'] ?? row['type']);
|
|
238
|
+
let role;
|
|
239
|
+
if (roleRaw === 'user' || roleRaw === 'human')
|
|
240
|
+
role = 'user';
|
|
241
|
+
else if (roleRaw === 'assistant' || roleRaw === 'ai' || roleRaw === 'model')
|
|
242
|
+
role = 'assistant';
|
|
243
|
+
else if (roleRaw === 'system')
|
|
244
|
+
role = 'system';
|
|
245
|
+
else if (roleRaw === 'tool' || roleRaw === 'tool_result' || roleRaw === 'tool_use')
|
|
246
|
+
role = 'tool';
|
|
247
|
+
else
|
|
248
|
+
return null;
|
|
249
|
+
const content = row['content'] ??
|
|
250
|
+
row['text'] ??
|
|
251
|
+
row['message'] ??
|
|
252
|
+
'';
|
|
253
|
+
return { role, content: typeof content === 'string' ? content : JSON.stringify(content) };
|
|
254
|
+
}
|
|
255
|
+
//# sourceMappingURL=session-fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-fs.js","sourceRoot":"","sources":["../src/session-fs.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@a5c-ai/agent-mux-adapters",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"description": "Built-in agent adapters for agent-mux",
|
|
7
|
+
"author": "a5c-ai",
|
|
8
|
+
"homepage": "https://github.com/a5c-ai/agent-mux#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/a5c-ai/agent-mux.git",
|
|
12
|
+
"directory": "packages/adapters"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/a5c-ai/agent-mux/issues"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"agent-mux",
|
|
19
|
+
"adapters",
|
|
20
|
+
"claude-code",
|
|
21
|
+
"codex",
|
|
22
|
+
"gemini",
|
|
23
|
+
"copilot",
|
|
24
|
+
"cursor",
|
|
25
|
+
"ai"
|
|
26
|
+
],
|
|
27
|
+
"engines": {
|
|
28
|
+
"node": ">=20.9.0"
|
|
29
|
+
},
|
|
30
|
+
"main": "./dist/index.js",
|
|
31
|
+
"module": "./dist/index.js",
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"import": {
|
|
36
|
+
"types": "./dist/index.d.ts",
|
|
37
|
+
"default": "./dist/index.js"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"files": [
|
|
42
|
+
"dist",
|
|
43
|
+
"README.md",
|
|
44
|
+
"LICENSE"
|
|
45
|
+
],
|
|
46
|
+
"publishConfig": {
|
|
47
|
+
"access": "public"
|
|
48
|
+
},
|
|
49
|
+
"scripts": {
|
|
50
|
+
"build": "tsc --build",
|
|
51
|
+
"prepublishOnly": "npm run build"
|
|
52
|
+
},
|
|
53
|
+
"dependencies": {
|
|
54
|
+
"@a5c-ai/agent-mux-core": "0.2.0"
|
|
55
|
+
}
|
|
56
|
+
}
|