@paperclipai/adapter-utils 0.2.2
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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/server-utils.d.ts +46 -0
- package/dist/server-utils.d.ts.map +1 -0
- package/dist/server-utils.js +237 -0
- package/dist/server-utils.js.map +1 -0
- package/dist/types.d.ts +189 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/package.json +31 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export type { AdapterAgent, AdapterRuntime, UsageSummary, AdapterBillingType, AdapterExecutionResult, AdapterInvocationMeta, AdapterExecutionContext, AdapterEnvironmentCheckLevel, AdapterEnvironmentCheck, AdapterEnvironmentTestStatus, AdapterEnvironmentTestResult, AdapterEnvironmentTestContext, AdapterSessionCodec, AdapterModel, ServerAdapterModule, TranscriptEntry, StdoutLineParser, CLIAdapterModule, CreateConfigValues, } from "./types.js";
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,4BAA4B,EAC5B,4BAA4B,EAC5B,6BAA6B,EAC7B,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ChildProcess } from "node:child_process";
|
|
2
|
+
export interface RunProcessResult {
|
|
3
|
+
exitCode: number | null;
|
|
4
|
+
signal: string | null;
|
|
5
|
+
timedOut: boolean;
|
|
6
|
+
stdout: string;
|
|
7
|
+
stderr: string;
|
|
8
|
+
}
|
|
9
|
+
interface RunningProcess {
|
|
10
|
+
child: ChildProcess;
|
|
11
|
+
graceSec: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const runningProcesses: Map<string, RunningProcess>;
|
|
14
|
+
export declare const MAX_CAPTURE_BYTES: number;
|
|
15
|
+
export declare const MAX_EXCERPT_BYTES: number;
|
|
16
|
+
export declare function parseObject(value: unknown): Record<string, unknown>;
|
|
17
|
+
export declare function asString(value: unknown, fallback: string): string;
|
|
18
|
+
export declare function asNumber(value: unknown, fallback: number): number;
|
|
19
|
+
export declare function asBoolean(value: unknown, fallback: boolean): boolean;
|
|
20
|
+
export declare function asStringArray(value: unknown): string[];
|
|
21
|
+
export declare function parseJson(value: string): Record<string, unknown> | null;
|
|
22
|
+
export declare function appendWithCap(prev: string, chunk: string, cap?: number): string;
|
|
23
|
+
export declare function resolvePathValue(obj: Record<string, unknown>, dottedPath: string): string;
|
|
24
|
+
export declare function renderTemplate(template: string, data: Record<string, unknown>): string;
|
|
25
|
+
export declare function redactEnvForLogs(env: Record<string, string>): Record<string, string>;
|
|
26
|
+
export declare function buildPaperclipEnv(agent: {
|
|
27
|
+
id: string;
|
|
28
|
+
companyId: string;
|
|
29
|
+
}): Record<string, string>;
|
|
30
|
+
export declare function defaultPathForPlatform(): "C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem" | "/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin";
|
|
31
|
+
export declare function ensurePathInEnv(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
32
|
+
export declare function ensureAbsoluteDirectory(cwd: string, opts?: {
|
|
33
|
+
createIfMissing?: boolean;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
export declare function ensureCommandResolvable(command: string, cwd: string, env: NodeJS.ProcessEnv): Promise<void>;
|
|
36
|
+
export declare function runChildProcess(runId: string, command: string, args: string[], opts: {
|
|
37
|
+
cwd: string;
|
|
38
|
+
env: Record<string, string>;
|
|
39
|
+
timeoutSec: number;
|
|
40
|
+
graceSec: number;
|
|
41
|
+
onLog: (stream: "stdout" | "stderr", chunk: string) => Promise<void>;
|
|
42
|
+
onLogError?: (err: unknown, runId: string, message: string) => void;
|
|
43
|
+
stdin?: string;
|
|
44
|
+
}): Promise<RunProcessResult>;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=server-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-utils.d.ts","sourceRoot":"","sources":["../src/server-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { constants as fsConstants, promises as fs } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
export const runningProcesses = new Map();
|
|
5
|
+
export const MAX_CAPTURE_BYTES = 4 * 1024 * 1024;
|
|
6
|
+
export const MAX_EXCERPT_BYTES = 32 * 1024;
|
|
7
|
+
const SENSITIVE_ENV_KEY = /(key|token|secret|password|passwd|authorization|cookie)/i;
|
|
8
|
+
export function parseObject(value) {
|
|
9
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
10
|
+
return {};
|
|
11
|
+
}
|
|
12
|
+
return value;
|
|
13
|
+
}
|
|
14
|
+
export function asString(value, fallback) {
|
|
15
|
+
return typeof value === "string" && value.length > 0 ? value : fallback;
|
|
16
|
+
}
|
|
17
|
+
export function asNumber(value, fallback) {
|
|
18
|
+
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
19
|
+
}
|
|
20
|
+
export function asBoolean(value, fallback) {
|
|
21
|
+
return typeof value === "boolean" ? value : fallback;
|
|
22
|
+
}
|
|
23
|
+
export function asStringArray(value) {
|
|
24
|
+
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
25
|
+
}
|
|
26
|
+
export function parseJson(value) {
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(value);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function appendWithCap(prev, chunk, cap = MAX_CAPTURE_BYTES) {
|
|
35
|
+
const combined = prev + chunk;
|
|
36
|
+
return combined.length > cap ? combined.slice(combined.length - cap) : combined;
|
|
37
|
+
}
|
|
38
|
+
export function resolvePathValue(obj, dottedPath) {
|
|
39
|
+
const parts = dottedPath.split(".");
|
|
40
|
+
let cursor = obj;
|
|
41
|
+
for (const part of parts) {
|
|
42
|
+
if (typeof cursor !== "object" || cursor === null || Array.isArray(cursor)) {
|
|
43
|
+
return "";
|
|
44
|
+
}
|
|
45
|
+
cursor = cursor[part];
|
|
46
|
+
}
|
|
47
|
+
if (cursor === null || cursor === undefined)
|
|
48
|
+
return "";
|
|
49
|
+
if (typeof cursor === "string")
|
|
50
|
+
return cursor;
|
|
51
|
+
if (typeof cursor === "number" || typeof cursor === "boolean")
|
|
52
|
+
return String(cursor);
|
|
53
|
+
try {
|
|
54
|
+
return JSON.stringify(cursor);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return "";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export function renderTemplate(template, data) {
|
|
61
|
+
return template.replace(/{{\s*([a-zA-Z0-9_.-]+)\s*}}/g, (_, path) => resolvePathValue(data, path));
|
|
62
|
+
}
|
|
63
|
+
export function redactEnvForLogs(env) {
|
|
64
|
+
const redacted = {};
|
|
65
|
+
for (const [key, value] of Object.entries(env)) {
|
|
66
|
+
redacted[key] = SENSITIVE_ENV_KEY.test(key) ? "***REDACTED***" : value;
|
|
67
|
+
}
|
|
68
|
+
return redacted;
|
|
69
|
+
}
|
|
70
|
+
export function buildPaperclipEnv(agent) {
|
|
71
|
+
const resolveHostForUrl = (rawHost) => {
|
|
72
|
+
const host = rawHost.trim();
|
|
73
|
+
if (!host || host === "0.0.0.0" || host === "::")
|
|
74
|
+
return "localhost";
|
|
75
|
+
if (host.includes(":") && !host.startsWith("[") && !host.endsWith("]"))
|
|
76
|
+
return `[${host}]`;
|
|
77
|
+
return host;
|
|
78
|
+
};
|
|
79
|
+
const vars = {
|
|
80
|
+
PAPERCLIP_AGENT_ID: agent.id,
|
|
81
|
+
PAPERCLIP_COMPANY_ID: agent.companyId,
|
|
82
|
+
};
|
|
83
|
+
const runtimeHost = resolveHostForUrl(process.env.PAPERCLIP_LISTEN_HOST ?? process.env.HOST ?? "localhost");
|
|
84
|
+
const runtimePort = process.env.PAPERCLIP_LISTEN_PORT ?? process.env.PORT ?? "3100";
|
|
85
|
+
const apiUrl = process.env.PAPERCLIP_API_URL ?? `http://${runtimeHost}:${runtimePort}`;
|
|
86
|
+
vars.PAPERCLIP_API_URL = apiUrl;
|
|
87
|
+
return vars;
|
|
88
|
+
}
|
|
89
|
+
export function defaultPathForPlatform() {
|
|
90
|
+
if (process.platform === "win32") {
|
|
91
|
+
return "C:\\Windows\\System32;C:\\Windows;C:\\Windows\\System32\\Wbem";
|
|
92
|
+
}
|
|
93
|
+
return "/usr/local/bin:/opt/homebrew/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin";
|
|
94
|
+
}
|
|
95
|
+
export function ensurePathInEnv(env) {
|
|
96
|
+
if (typeof env.PATH === "string" && env.PATH.length > 0)
|
|
97
|
+
return env;
|
|
98
|
+
if (typeof env.Path === "string" && env.Path.length > 0)
|
|
99
|
+
return env;
|
|
100
|
+
return { ...env, PATH: defaultPathForPlatform() };
|
|
101
|
+
}
|
|
102
|
+
export async function ensureAbsoluteDirectory(cwd, opts = {}) {
|
|
103
|
+
if (!path.isAbsolute(cwd)) {
|
|
104
|
+
throw new Error(`Working directory must be an absolute path: "${cwd}"`);
|
|
105
|
+
}
|
|
106
|
+
const assertDirectory = async () => {
|
|
107
|
+
const stats = await fs.stat(cwd);
|
|
108
|
+
if (!stats.isDirectory()) {
|
|
109
|
+
throw new Error(`Working directory is not a directory: "${cwd}"`);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
try {
|
|
113
|
+
await assertDirectory();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
catch (err) {
|
|
117
|
+
const code = err.code;
|
|
118
|
+
if (!opts.createIfMissing || code !== "ENOENT") {
|
|
119
|
+
if (code === "ENOENT") {
|
|
120
|
+
throw new Error(`Working directory does not exist: "${cwd}"`);
|
|
121
|
+
}
|
|
122
|
+
throw err instanceof Error ? err : new Error(String(err));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
await fs.mkdir(cwd, { recursive: true });
|
|
127
|
+
await assertDirectory();
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
131
|
+
throw new Error(`Could not create working directory "${cwd}": ${reason}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
export async function ensureCommandResolvable(command, cwd, env) {
|
|
135
|
+
const hasPathSeparator = command.includes("/") || command.includes("\\");
|
|
136
|
+
if (hasPathSeparator) {
|
|
137
|
+
const absolute = path.isAbsolute(command) ? command : path.resolve(cwd, command);
|
|
138
|
+
try {
|
|
139
|
+
await fs.access(absolute, fsConstants.X_OK);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
throw new Error(`Command is not executable: "${command}" (resolved: "${absolute}")`);
|
|
143
|
+
}
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const pathValue = env.PATH ?? env.Path ?? "";
|
|
147
|
+
const delimiter = process.platform === "win32" ? ";" : ":";
|
|
148
|
+
const dirs = pathValue.split(delimiter).filter(Boolean);
|
|
149
|
+
const windowsExt = process.platform === "win32"
|
|
150
|
+
? (env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";")
|
|
151
|
+
: [""];
|
|
152
|
+
for (const dir of dirs) {
|
|
153
|
+
for (const ext of windowsExt) {
|
|
154
|
+
const candidate = path.join(dir, process.platform === "win32" ? `${command}${ext}` : command);
|
|
155
|
+
try {
|
|
156
|
+
await fs.access(candidate, fsConstants.X_OK);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// continue scanning PATH
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
throw new Error(`Command not found in PATH: "${command}"`);
|
|
165
|
+
}
|
|
166
|
+
export async function runChildProcess(runId, command, args, opts) {
|
|
167
|
+
const onLogError = opts.onLogError ?? ((err, id, msg) => console.warn({ err, runId: id }, msg));
|
|
168
|
+
return new Promise((resolve, reject) => {
|
|
169
|
+
const mergedEnv = ensurePathInEnv({ ...process.env, ...opts.env });
|
|
170
|
+
const child = spawn(command, args, {
|
|
171
|
+
cwd: opts.cwd,
|
|
172
|
+
env: mergedEnv,
|
|
173
|
+
shell: false,
|
|
174
|
+
stdio: [opts.stdin != null ? "pipe" : "ignore", "pipe", "pipe"],
|
|
175
|
+
});
|
|
176
|
+
if (opts.stdin != null && child.stdin) {
|
|
177
|
+
child.stdin.write(opts.stdin);
|
|
178
|
+
child.stdin.end();
|
|
179
|
+
}
|
|
180
|
+
runningProcesses.set(runId, { child, graceSec: opts.graceSec });
|
|
181
|
+
let timedOut = false;
|
|
182
|
+
let stdout = "";
|
|
183
|
+
let stderr = "";
|
|
184
|
+
let logChain = Promise.resolve();
|
|
185
|
+
const timeout = opts.timeoutSec > 0
|
|
186
|
+
? setTimeout(() => {
|
|
187
|
+
timedOut = true;
|
|
188
|
+
child.kill("SIGTERM");
|
|
189
|
+
setTimeout(() => {
|
|
190
|
+
if (!child.killed) {
|
|
191
|
+
child.kill("SIGKILL");
|
|
192
|
+
}
|
|
193
|
+
}, Math.max(1, opts.graceSec) * 1000);
|
|
194
|
+
}, opts.timeoutSec * 1000)
|
|
195
|
+
: null;
|
|
196
|
+
child.stdout?.on("data", (chunk) => {
|
|
197
|
+
const text = String(chunk);
|
|
198
|
+
stdout = appendWithCap(stdout, text);
|
|
199
|
+
logChain = logChain
|
|
200
|
+
.then(() => opts.onLog("stdout", text))
|
|
201
|
+
.catch((err) => onLogError(err, runId, "failed to append stdout log chunk"));
|
|
202
|
+
});
|
|
203
|
+
child.stderr?.on("data", (chunk) => {
|
|
204
|
+
const text = String(chunk);
|
|
205
|
+
stderr = appendWithCap(stderr, text);
|
|
206
|
+
logChain = logChain
|
|
207
|
+
.then(() => opts.onLog("stderr", text))
|
|
208
|
+
.catch((err) => onLogError(err, runId, "failed to append stderr log chunk"));
|
|
209
|
+
});
|
|
210
|
+
child.on("error", (err) => {
|
|
211
|
+
if (timeout)
|
|
212
|
+
clearTimeout(timeout);
|
|
213
|
+
runningProcesses.delete(runId);
|
|
214
|
+
const errno = err.code;
|
|
215
|
+
const pathValue = mergedEnv.PATH ?? mergedEnv.Path ?? "";
|
|
216
|
+
const msg = errno === "ENOENT"
|
|
217
|
+
? `Failed to start command "${command}" in "${opts.cwd}". Verify adapter command, working directory, and PATH (${pathValue}).`
|
|
218
|
+
: `Failed to start command "${command}" in "${opts.cwd}": ${err.message}`;
|
|
219
|
+
reject(new Error(msg));
|
|
220
|
+
});
|
|
221
|
+
child.on("close", (code, signal) => {
|
|
222
|
+
if (timeout)
|
|
223
|
+
clearTimeout(timeout);
|
|
224
|
+
runningProcesses.delete(runId);
|
|
225
|
+
void logChain.finally(() => {
|
|
226
|
+
resolve({
|
|
227
|
+
exitCode: code,
|
|
228
|
+
signal,
|
|
229
|
+
timedOut,
|
|
230
|
+
stdout,
|
|
231
|
+
stderr,
|
|
232
|
+
});
|
|
233
|
+
});
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=server-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-utils.js","sourceRoot":"","sources":["../src/server-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
export interface AdapterAgent {
|
|
2
|
+
id: string;
|
|
3
|
+
companyId: string;
|
|
4
|
+
name: string;
|
|
5
|
+
adapterType: string | null;
|
|
6
|
+
adapterConfig: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface AdapterRuntime {
|
|
9
|
+
/**
|
|
10
|
+
* Legacy single session id view. Prefer `sessionParams` + `sessionDisplayId`.
|
|
11
|
+
*/
|
|
12
|
+
sessionId: string | null;
|
|
13
|
+
sessionParams: Record<string, unknown> | null;
|
|
14
|
+
sessionDisplayId: string | null;
|
|
15
|
+
taskKey: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface UsageSummary {
|
|
18
|
+
inputTokens: number;
|
|
19
|
+
outputTokens: number;
|
|
20
|
+
cachedInputTokens?: number;
|
|
21
|
+
}
|
|
22
|
+
export type AdapterBillingType = "api" | "subscription" | "unknown";
|
|
23
|
+
export interface AdapterExecutionResult {
|
|
24
|
+
exitCode: number | null;
|
|
25
|
+
signal: string | null;
|
|
26
|
+
timedOut: boolean;
|
|
27
|
+
errorMessage?: string | null;
|
|
28
|
+
errorCode?: string | null;
|
|
29
|
+
errorMeta?: Record<string, unknown>;
|
|
30
|
+
usage?: UsageSummary;
|
|
31
|
+
/**
|
|
32
|
+
* Legacy single session id output. Prefer `sessionParams` + `sessionDisplayId`.
|
|
33
|
+
*/
|
|
34
|
+
sessionId?: string | null;
|
|
35
|
+
sessionParams?: Record<string, unknown> | null;
|
|
36
|
+
sessionDisplayId?: string | null;
|
|
37
|
+
provider?: string | null;
|
|
38
|
+
model?: string | null;
|
|
39
|
+
billingType?: AdapterBillingType | null;
|
|
40
|
+
costUsd?: number | null;
|
|
41
|
+
resultJson?: Record<string, unknown> | null;
|
|
42
|
+
summary?: string | null;
|
|
43
|
+
clearSession?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface AdapterSessionCodec {
|
|
46
|
+
deserialize(raw: unknown): Record<string, unknown> | null;
|
|
47
|
+
serialize(params: Record<string, unknown> | null): Record<string, unknown> | null;
|
|
48
|
+
getDisplayId?: (params: Record<string, unknown> | null) => string | null;
|
|
49
|
+
}
|
|
50
|
+
export interface AdapterInvocationMeta {
|
|
51
|
+
adapterType: string;
|
|
52
|
+
command: string;
|
|
53
|
+
cwd?: string;
|
|
54
|
+
commandArgs?: string[];
|
|
55
|
+
commandNotes?: string[];
|
|
56
|
+
env?: Record<string, string>;
|
|
57
|
+
prompt?: string;
|
|
58
|
+
context?: Record<string, unknown>;
|
|
59
|
+
}
|
|
60
|
+
export interface AdapterExecutionContext {
|
|
61
|
+
runId: string;
|
|
62
|
+
agent: AdapterAgent;
|
|
63
|
+
runtime: AdapterRuntime;
|
|
64
|
+
config: Record<string, unknown>;
|
|
65
|
+
context: Record<string, unknown>;
|
|
66
|
+
onLog: (stream: "stdout" | "stderr", chunk: string) => Promise<void>;
|
|
67
|
+
onMeta?: (meta: AdapterInvocationMeta) => Promise<void>;
|
|
68
|
+
authToken?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface AdapterModel {
|
|
71
|
+
id: string;
|
|
72
|
+
label: string;
|
|
73
|
+
}
|
|
74
|
+
export type AdapterEnvironmentCheckLevel = "info" | "warn" | "error";
|
|
75
|
+
export interface AdapterEnvironmentCheck {
|
|
76
|
+
code: string;
|
|
77
|
+
level: AdapterEnvironmentCheckLevel;
|
|
78
|
+
message: string;
|
|
79
|
+
detail?: string | null;
|
|
80
|
+
hint?: string | null;
|
|
81
|
+
}
|
|
82
|
+
export type AdapterEnvironmentTestStatus = "pass" | "warn" | "fail";
|
|
83
|
+
export interface AdapterEnvironmentTestResult {
|
|
84
|
+
adapterType: string;
|
|
85
|
+
status: AdapterEnvironmentTestStatus;
|
|
86
|
+
checks: AdapterEnvironmentCheck[];
|
|
87
|
+
testedAt: string;
|
|
88
|
+
}
|
|
89
|
+
export interface AdapterEnvironmentTestContext {
|
|
90
|
+
companyId: string;
|
|
91
|
+
adapterType: string;
|
|
92
|
+
config: Record<string, unknown>;
|
|
93
|
+
deployment?: {
|
|
94
|
+
mode?: "local_trusted" | "authenticated";
|
|
95
|
+
exposure?: "private" | "public";
|
|
96
|
+
bindHost?: string | null;
|
|
97
|
+
allowedHostnames?: string[];
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export interface ServerAdapterModule {
|
|
101
|
+
type: string;
|
|
102
|
+
execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
|
|
103
|
+
testEnvironment(ctx: AdapterEnvironmentTestContext): Promise<AdapterEnvironmentTestResult>;
|
|
104
|
+
sessionCodec?: AdapterSessionCodec;
|
|
105
|
+
supportsLocalAgentJwt?: boolean;
|
|
106
|
+
models?: AdapterModel[];
|
|
107
|
+
listModels?: () => Promise<AdapterModel[]>;
|
|
108
|
+
agentConfigurationDoc?: string;
|
|
109
|
+
}
|
|
110
|
+
export type TranscriptEntry = {
|
|
111
|
+
kind: "assistant";
|
|
112
|
+
ts: string;
|
|
113
|
+
text: string;
|
|
114
|
+
} | {
|
|
115
|
+
kind: "thinking";
|
|
116
|
+
ts: string;
|
|
117
|
+
text: string;
|
|
118
|
+
} | {
|
|
119
|
+
kind: "user";
|
|
120
|
+
ts: string;
|
|
121
|
+
text: string;
|
|
122
|
+
} | {
|
|
123
|
+
kind: "tool_call";
|
|
124
|
+
ts: string;
|
|
125
|
+
name: string;
|
|
126
|
+
input: unknown;
|
|
127
|
+
} | {
|
|
128
|
+
kind: "tool_result";
|
|
129
|
+
ts: string;
|
|
130
|
+
toolUseId: string;
|
|
131
|
+
content: string;
|
|
132
|
+
isError: boolean;
|
|
133
|
+
} | {
|
|
134
|
+
kind: "init";
|
|
135
|
+
ts: string;
|
|
136
|
+
model: string;
|
|
137
|
+
sessionId: string;
|
|
138
|
+
} | {
|
|
139
|
+
kind: "result";
|
|
140
|
+
ts: string;
|
|
141
|
+
text: string;
|
|
142
|
+
inputTokens: number;
|
|
143
|
+
outputTokens: number;
|
|
144
|
+
cachedTokens: number;
|
|
145
|
+
costUsd: number;
|
|
146
|
+
subtype: string;
|
|
147
|
+
isError: boolean;
|
|
148
|
+
errors: string[];
|
|
149
|
+
} | {
|
|
150
|
+
kind: "stderr";
|
|
151
|
+
ts: string;
|
|
152
|
+
text: string;
|
|
153
|
+
} | {
|
|
154
|
+
kind: "system";
|
|
155
|
+
ts: string;
|
|
156
|
+
text: string;
|
|
157
|
+
} | {
|
|
158
|
+
kind: "stdout";
|
|
159
|
+
ts: string;
|
|
160
|
+
text: string;
|
|
161
|
+
};
|
|
162
|
+
export type StdoutLineParser = (line: string, ts: string) => TranscriptEntry[];
|
|
163
|
+
export interface CLIAdapterModule {
|
|
164
|
+
type: string;
|
|
165
|
+
formatStdoutEvent: (line: string, debug: boolean) => void;
|
|
166
|
+
}
|
|
167
|
+
export interface CreateConfigValues {
|
|
168
|
+
adapterType: string;
|
|
169
|
+
cwd: string;
|
|
170
|
+
instructionsFilePath?: string;
|
|
171
|
+
promptTemplate: string;
|
|
172
|
+
model: string;
|
|
173
|
+
thinkingEffort: string;
|
|
174
|
+
chrome: boolean;
|
|
175
|
+
dangerouslySkipPermissions: boolean;
|
|
176
|
+
search: boolean;
|
|
177
|
+
dangerouslyBypassSandbox: boolean;
|
|
178
|
+
command: string;
|
|
179
|
+
args: string;
|
|
180
|
+
extraArgs: string;
|
|
181
|
+
envVars: string;
|
|
182
|
+
envBindings: Record<string, unknown>;
|
|
183
|
+
url: string;
|
|
184
|
+
bootstrapPrompt: string;
|
|
185
|
+
maxTurnsPerRun: number;
|
|
186
|
+
heartbeatEnabled: boolean;
|
|
187
|
+
intervalSec: number;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E"}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@paperclipai/adapter-utils",
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"exports": {
|
|
6
|
+
".": {
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"import": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"./*": {
|
|
11
|
+
"types": "./dist/*.d.ts",
|
|
12
|
+
"import": "./dist/*.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"publishConfig": {
|
|
16
|
+
"access": "public"
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"typescript": "^5.7.3"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"clean": "rm -rf dist",
|
|
27
|
+
"typecheck": "tsc --noEmit"
|
|
28
|
+
},
|
|
29
|
+
"main": "./dist/index.js",
|
|
30
|
+
"types": "./dist/index.d.ts"
|
|
31
|
+
}
|