@a5c-ai/adapters-codecs 5.1.1-staging.52898ebfc24f
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 +28 -0
- package/dist/adapter-install.d.ts +20 -0
- package/dist/adapter-install.d.ts.map +1 -0
- package/dist/adapter-install.js +134 -0
- package/dist/adapter-install.js.map +1 -0
- package/dist/adapters-remote-adapter.d.ts +66 -0
- package/dist/adapters-remote-adapter.d.ts.map +1 -0
- package/dist/adapters-remote-adapter.js +292 -0
- package/dist/adapters-remote-adapter.js.map +1 -0
- package/dist/amp-adapter.d.ts +32 -0
- package/dist/amp-adapter.d.ts.map +1 -0
- package/dist/amp-adapter.js +417 -0
- package/dist/amp-adapter.js.map +1 -0
- package/dist/auth-config.d.ts +44 -0
- package/dist/auth-config.d.ts.map +1 -0
- package/dist/auth-config.js +167 -0
- package/dist/auth-config.js.map +1 -0
- package/dist/babysitter-adapter.d.ts +29 -0
- package/dist/babysitter-adapter.d.ts.map +1 -0
- package/dist/babysitter-adapter.js +335 -0
- package/dist/babysitter-adapter.js.map +1 -0
- package/dist/base-adapter-helpers.d.ts +7 -0
- package/dist/base-adapter-helpers.d.ts.map +1 -0
- package/dist/base-adapter-helpers.js +68 -0
- package/dist/base-adapter-helpers.js.map +1 -0
- package/dist/base-adapter.d.ts +157 -0
- package/dist/base-adapter.d.ts.map +1 -0
- package/dist/base-adapter.js +552 -0
- package/dist/base-adapter.js.map +1 -0
- package/dist/claude-adapter.d.ts +63 -0
- package/dist/claude-adapter.d.ts.map +1 -0
- package/dist/claude-adapter.js +546 -0
- package/dist/claude-adapter.js.map +1 -0
- package/dist/claude-agent-sdk-adapter.d.ts +40 -0
- package/dist/claude-agent-sdk-adapter.d.ts.map +1 -0
- package/dist/claude-agent-sdk-adapter.js +843 -0
- package/dist/claude-agent-sdk-adapter.js.map +1 -0
- package/dist/claude-code/runtime-hooks/ephemeral-config.d.ts +11 -0
- package/dist/claude-code/runtime-hooks/ephemeral-config.d.ts.map +1 -0
- package/dist/claude-code/runtime-hooks/ephemeral-config.js +153 -0
- package/dist/claude-code/runtime-hooks/ephemeral-config.js.map +1 -0
- package/dist/claude-code/runtime-hooks/hook-socket-server.d.ts +9 -0
- package/dist/claude-code/runtime-hooks/hook-socket-server.d.ts.map +1 -0
- package/dist/claude-code/runtime-hooks/hook-socket-server.js +89 -0
- package/dist/claude-code/runtime-hooks/hook-socket-server.js.map +1 -0
- package/dist/claude-code/runtime-hooks/lifecycle.d.ts +2 -0
- package/dist/claude-code/runtime-hooks/lifecycle.d.ts.map +1 -0
- package/dist/claude-code/runtime-hooks/lifecycle.js +24 -0
- package/dist/claude-code/runtime-hooks/lifecycle.js.map +1 -0
- package/dist/claude-remote-control-adapter.d.ts +43 -0
- package/dist/claude-remote-control-adapter.d.ts.map +1 -0
- package/dist/claude-remote-control-adapter.js +509 -0
- package/dist/claude-remote-control-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 +336 -0
- package/dist/codex-adapter.js.map +1 -0
- package/dist/codex-sdk-adapter.d.ts +32 -0
- package/dist/codex-sdk-adapter.d.ts.map +1 -0
- package/dist/codex-sdk-adapter.js +392 -0
- package/dist/codex-sdk-adapter.js.map +1 -0
- package/dist/codex-sdk-mocks.d.ts +50 -0
- package/dist/codex-sdk-mocks.d.ts.map +1 -0
- package/dist/codex-sdk-mocks.js +97 -0
- package/dist/codex-sdk-mocks.js.map +1 -0
- package/dist/codex-websocket-adapter.d.ts +34 -0
- package/dist/codex-websocket-adapter.d.ts.map +1 -0
- package/dist/codex-websocket-adapter.js +402 -0
- package/dist/codex-websocket-adapter.js.map +1 -0
- package/dist/codex-websocket-connection.d.ts +77 -0
- package/dist/codex-websocket-connection.d.ts.map +1 -0
- package/dist/codex-websocket-connection.js +733 -0
- package/dist/codex-websocket-connection.js.map +1 -0
- package/dist/copilot-adapter.d.ts +27 -0
- package/dist/copilot-adapter.d.ts.map +1 -0
- package/dist/copilot-adapter.js +224 -0
- package/dist/copilot-adapter.js.map +1 -0
- package/dist/cursor-adapter.d.ts +32 -0
- package/dist/cursor-adapter.d.ts.map +1 -0
- package/dist/cursor-adapter.js +239 -0
- package/dist/cursor-adapter.js.map +1 -0
- package/dist/droid-adapter.d.ts +32 -0
- package/dist/droid-adapter.d.ts.map +1 -0
- package/dist/droid-adapter.js +383 -0
- package/dist/droid-adapter.js.map +1 -0
- package/dist/gemini-adapter.d.ts +38 -0
- package/dist/gemini-adapter.d.ts.map +1 -0
- package/dist/gemini-adapter.js +270 -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 +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-plugins.d.ts +14 -0
- package/dist/mcp-plugins.d.ts.map +1 -0
- package/dist/mcp-plugins.js +97 -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 +203 -0
- package/dist/omp-adapter.js.map +1 -0
- package/dist/openclaw-adapter.d.ts +32 -0
- package/dist/openclaw-adapter.d.ts.map +1 -0
- package/dist/openclaw-adapter.js +220 -0
- package/dist/openclaw-adapter.js.map +1 -0
- package/dist/opencode-adapter.d.ts +32 -0
- package/dist/opencode-adapter.d.ts.map +1 -0
- package/dist/opencode-adapter.js +315 -0
- package/dist/opencode-adapter.js.map +1 -0
- package/dist/opencode-http-adapter.d.ts +43 -0
- package/dist/opencode-http-adapter.d.ts.map +1 -0
- package/dist/opencode-http-adapter.js +378 -0
- package/dist/opencode-http-adapter.js.map +1 -0
- package/dist/opencode-http-connection.d.ts +32 -0
- package/dist/opencode-http-connection.d.ts.map +1 -0
- package/dist/opencode-http-connection.js +198 -0
- package/dist/opencode-http-connection.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 +204 -0
- package/dist/pi-adapter.js.map +1 -0
- package/dist/pi-sdk-adapter.d.ts +46 -0
- package/dist/pi-sdk-adapter.d.ts.map +1 -0
- package/dist/pi-sdk-adapter.js +557 -0
- package/dist/pi-sdk-adapter.js.map +1 -0
- package/dist/programmatic-adapter-base.d.ts +87 -0
- package/dist/programmatic-adapter-base.d.ts.map +1 -0
- package/dist/programmatic-adapter-base.js +169 -0
- package/dist/programmatic-adapter-base.js.map +1 -0
- package/dist/provider-translation.d.ts +9 -0
- package/dist/provider-translation.d.ts.map +1 -0
- package/dist/provider-translation.js +2 -0
- package/dist/provider-translation.js.map +1 -0
- package/dist/qwen-adapter.d.ts +38 -0
- package/dist/qwen-adapter.d.ts.map +1 -0
- package/dist/qwen-adapter.js +269 -0
- package/dist/qwen-adapter.js.map +1 -0
- package/dist/remote-adapter-base.d.ts +84 -0
- package/dist/remote-adapter-base.d.ts.map +1 -0
- package/dist/remote-adapter-base.js +100 -0
- package/dist/remote-adapter-base.js.map +1 -0
- package/dist/session-fs.d.ts +89 -0
- package/dist/session-fs.d.ts.map +1 -0
- package/dist/session-fs.js +722 -0
- package/dist/session-fs.js.map +1 -0
- package/dist/shared/runtime-hooks-virtual.d.ts +2 -0
- package/dist/shared/runtime-hooks-virtual.d.ts.map +1 -0
- package/dist/shared/runtime-hooks-virtual.js +13 -0
- package/dist/shared/runtime-hooks-virtual.js.map +1 -0
- package/dist/translate-for-harness.d.ts +8 -0
- package/dist/translate-for-harness.d.ts.map +1 -0
- package/dist/translate-for-harness.js +89 -0
- package/dist/translate-for-harness.js.map +1 -0
- package/dist/translations/claude-translation.d.ts +3 -0
- package/dist/translations/claude-translation.d.ts.map +1 -0
- package/dist/translations/claude-translation.js +53 -0
- package/dist/translations/claude-translation.js.map +1 -0
- package/dist/translations/codex-translation.d.ts +3 -0
- package/dist/translations/codex-translation.d.ts.map +1 -0
- package/dist/translations/codex-translation.js +54 -0
- package/dist/translations/codex-translation.js.map +1 -0
- package/dist/translations/gemini-translation.d.ts +3 -0
- package/dist/translations/gemini-translation.d.ts.map +1 -0
- package/dist/translations/gemini-translation.js +45 -0
- package/dist/translations/gemini-translation.js.map +1 -0
- package/dist/translations/generic-openai-translation.d.ts +3 -0
- package/dist/translations/generic-openai-translation.d.ts.map +1 -0
- package/dist/translations/generic-openai-translation.js +47 -0
- package/dist/translations/generic-openai-translation.js.map +1 -0
- package/dist/translations/opencode-translation.d.ts +3 -0
- package/dist/translations/opencode-translation.d.ts.map +1 -0
- package/dist/translations/opencode-translation.js +48 -0
- package/dist/translations/opencode-translation.js.map +1 -0
- package/dist/translations/pi-translation.d.ts +3 -0
- package/dist/translations/pi-translation.d.ts.map +1 -0
- package/dist/translations/pi-translation.js +43 -0
- package/dist/translations/pi-translation.js.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BaseRemoteAdapter — abstract base class for remote (HTTP/WebSocket/Unix) adapters.
|
|
3
|
+
*
|
|
4
|
+
* Provides shared utilities for connection management, server lifecycle,
|
|
5
|
+
* and common remote adapter functionality.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Abstract base class for remote adapters. Provides shared utilities
|
|
9
|
+
* and sensible defaults for HTTP, WebSocket, and Unix socket adapters.
|
|
10
|
+
*/
|
|
11
|
+
export class BaseRemoteAdapter {
|
|
12
|
+
// ── Adapter Type ──────────────────────────────────────────────────
|
|
13
|
+
adapterType = 'remote';
|
|
14
|
+
// ── Legacy Compatibility (for validation with old interface) ────────
|
|
15
|
+
cliCommand = '[remote]'; // Stub for legacy validation
|
|
16
|
+
buildSpawnArgs(_options) {
|
|
17
|
+
throw new Error('buildSpawnArgs not supported on remote adapters');
|
|
18
|
+
}
|
|
19
|
+
parseEvent(_line, _context) {
|
|
20
|
+
throw new Error('parseEvent not supported on remote adapters');
|
|
21
|
+
}
|
|
22
|
+
// ── Optional members ──────────────────────────────────────────────
|
|
23
|
+
hostEnvSignals;
|
|
24
|
+
// ── Protected utilities ───────────────────────────────────────────
|
|
25
|
+
/**
|
|
26
|
+
* Tracks active connections for cleanup.
|
|
27
|
+
*/
|
|
28
|
+
activeConnections = new Map();
|
|
29
|
+
/**
|
|
30
|
+
* Tracks managed servers for cleanup.
|
|
31
|
+
*/
|
|
32
|
+
managedServers = new Map();
|
|
33
|
+
/**
|
|
34
|
+
* Register an active connection for tracking.
|
|
35
|
+
*/
|
|
36
|
+
registerConnection(connection) {
|
|
37
|
+
this.activeConnections.set(connection.connectionId, connection);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Unregister a connection (called on disconnect).
|
|
41
|
+
*/
|
|
42
|
+
unregisterConnection(connectionId) {
|
|
43
|
+
this.activeConnections.delete(connectionId);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Register a managed server for tracking.
|
|
47
|
+
*/
|
|
48
|
+
registerServer(serverInfo) {
|
|
49
|
+
this.managedServers.set(serverInfo.serverId, serverInfo);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Unregister a server (called on stop).
|
|
53
|
+
*/
|
|
54
|
+
unregisterServer(serverId) {
|
|
55
|
+
this.managedServers.delete(serverId);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Cleanup all active connections and servers.
|
|
59
|
+
* Should be called during adapter shutdown.
|
|
60
|
+
*/
|
|
61
|
+
async cleanup() {
|
|
62
|
+
// Close all active connections
|
|
63
|
+
const connectionPromises = Array.from(this.activeConnections.values()).map(connection => connection.close().catch((e) => { process.stderr.write(`[adapters] adapter connection cleanup failed: ${e instanceof Error ? e.message : String(e)}\n`); }));
|
|
64
|
+
// Stop all managed servers
|
|
65
|
+
const serverPromises = Array.from(this.managedServers.values()).map(server => this.stopServer?.(server).catch((e) => { process.stderr.write(`[adapters] adapter server cleanup failed: ${e instanceof Error ? e.message : String(e)}\n`); }));
|
|
66
|
+
await Promise.all([...connectionPromises, ...serverPromises]);
|
|
67
|
+
this.activeConnections.clear();
|
|
68
|
+
this.managedServers.clear();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Generate a unique connection ID.
|
|
72
|
+
*/
|
|
73
|
+
generateConnectionId() {
|
|
74
|
+
return `${this.agent}-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Generate a unique server ID.
|
|
78
|
+
*/
|
|
79
|
+
generateServerId() {
|
|
80
|
+
return `${this.agent}-server-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Find an available port for server startup.
|
|
84
|
+
*/
|
|
85
|
+
async findAvailablePort(startPort = 3000) {
|
|
86
|
+
const net = await import('node:net');
|
|
87
|
+
return new Promise((resolve, reject) => {
|
|
88
|
+
const server = net.createServer();
|
|
89
|
+
server.listen(startPort, () => {
|
|
90
|
+
const port = server.address()?.port;
|
|
91
|
+
server.close(() => resolve(port));
|
|
92
|
+
});
|
|
93
|
+
server.on('error', () => {
|
|
94
|
+
// Port is busy, try next one
|
|
95
|
+
this.findAvailablePort(startPort + 1).then(resolve).catch(reject);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=remote-adapter-base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remote-adapter-base.js","sourceRoot":"","sources":["../src/remote-adapter-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
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 type { CostRecord, SessionMessage } from '@a5c-ai/comm-adapter';
|
|
8
|
+
export declare function findProjectRootSync(startDir?: string): string;
|
|
9
|
+
export declare function listFilesRecursive(dir: string, predicate: (entryName: string, fullPath: string) => boolean): Promise<string[]>;
|
|
10
|
+
/** List *.jsonl files recursively under `dir`. */
|
|
11
|
+
export declare function listJsonlFiles(dir: string): Promise<string[]>;
|
|
12
|
+
/** List *.json files recursively under `dir`. */
|
|
13
|
+
export declare function listJsonFiles(dir: string): Promise<string[]>;
|
|
14
|
+
/**
|
|
15
|
+
* Parse a JSONL file into an array of record objects (ignores blank lines
|
|
16
|
+
* and lines that fail to parse). Returns empty array if file missing.
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseJsonlFile(filePath: string): Promise<Record<string, unknown>[]>;
|
|
19
|
+
/** Read + parse a JSON file. Returns null if missing or invalid. */
|
|
20
|
+
export declare function readJsonFile<T = unknown>(filePath: string): Promise<T | null>;
|
|
21
|
+
/**
|
|
22
|
+
* Atomically write JSON via the unified core helper (tmp + fsync + rename
|
|
23
|
+
* with advisory lockfile). Creates parent directories as needed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function writeJsonFileAtomic(filePath: string, data: unknown): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Minimal flat-YAML parser for simple `key: value` files.
|
|
28
|
+
* Supports:
|
|
29
|
+
* - comments (# ...)
|
|
30
|
+
* - scalar values (strings, numbers, booleans, null)
|
|
31
|
+
* - quoted strings ("..." or '...')
|
|
32
|
+
* - simple nested blocks via two-space indentation (one level deep)
|
|
33
|
+
* Does NOT support lists, anchors, multi-line strings.
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseFlatYaml(text: string): Record<string, unknown>;
|
|
36
|
+
/** Serialize a flat object to simple YAML (top-level + one level of nesting). */
|
|
37
|
+
export declare function stringifyFlatYaml(obj: Record<string, unknown>): string;
|
|
38
|
+
/** Atomically write arbitrary text via the unified core helper. */
|
|
39
|
+
export declare function writeTextFileAtomic(filePath: string, text: string): Promise<void>;
|
|
40
|
+
/** fs.stat safely: returns null on ENOENT. */
|
|
41
|
+
export declare function statSafe(filePath: string): Promise<{
|
|
42
|
+
mtimeMs: number;
|
|
43
|
+
birthtimeMs: number;
|
|
44
|
+
size: number;
|
|
45
|
+
} | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Normalize a path to forward slashes (Windows-safe, cross-platform).
|
|
48
|
+
*/
|
|
49
|
+
export declare function toPosix(p: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Home-directory-relative join with forward slashes.
|
|
52
|
+
*/
|
|
53
|
+
export declare function homeJoin(...segments: string[]): string;
|
|
54
|
+
/**
|
|
55
|
+
* Shared `parseSessionFile` logic: read JSONL, derive createdAt from
|
|
56
|
+
* file stat birthtime, updatedAt from mtime, and build SessionMessage[]
|
|
57
|
+
* from rows via `rowToMessage` heuristics.
|
|
58
|
+
* The caller supplies the agent name.
|
|
59
|
+
*/
|
|
60
|
+
export declare function parseJsonlSessionFile(filePath: string, agent: string): Promise<{
|
|
61
|
+
sessionId: string;
|
|
62
|
+
agent: string;
|
|
63
|
+
turnCount: number;
|
|
64
|
+
createdAt: string;
|
|
65
|
+
updatedAt: string;
|
|
66
|
+
messages: SessionMessage[];
|
|
67
|
+
raw: unknown;
|
|
68
|
+
}>;
|
|
69
|
+
export declare function parseCodexSessionFile(filePath: string, agent: string): Promise<{
|
|
70
|
+
sessionId: string;
|
|
71
|
+
agent: string;
|
|
72
|
+
turnCount: number;
|
|
73
|
+
createdAt: string;
|
|
74
|
+
updatedAt: string;
|
|
75
|
+
title?: string;
|
|
76
|
+
model?: string;
|
|
77
|
+
cost?: CostRecord;
|
|
78
|
+
cwd?: string;
|
|
79
|
+
messages: SessionMessage[];
|
|
80
|
+
raw: unknown;
|
|
81
|
+
}>;
|
|
82
|
+
/**
|
|
83
|
+
* Derive a SessionMessage-like representation from an arbitrary JSONL row.
|
|
84
|
+
* Used by adapters that don't have a more precise schema.
|
|
85
|
+
*/
|
|
86
|
+
export declare function rowToMessage(row: Record<string, unknown>): {
|
|
87
|
+
role: 'user' | 'assistant' | 'system' | 'tool';
|
|
88
|
+
content: string;
|
|
89
|
+
} | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-fs.d.ts","sourceRoot":"","sources":["../src/session-fs.ts"],"names":[],"mappings":"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"}
|