@rkat/sdk 0.3.4

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.
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Meerkat client — spawns rkat-rpc subprocess and communicates via JSON-RPC.
3
+ */
4
+ import type { WireRunResult, CapabilitiesResponse } from "./generated/types.js";
5
+ /** Supplementary discovery metadata for a comms peer. */
6
+ export interface PeerMeta {
7
+ description?: string;
8
+ labels?: Record<string, string>;
9
+ }
10
+ export declare class MeerkatClient {
11
+ private process;
12
+ private requestId;
13
+ private capabilities;
14
+ private rkatPath;
15
+ private pendingRequests;
16
+ constructor(rkatPath?: string);
17
+ private static commandPath;
18
+ private static resolveCandidatePath;
19
+ private static platformTarget;
20
+ private static runCommand;
21
+ private static extractZip;
22
+ private static ensureDownloadedBinary;
23
+ private static resolveBinaryPath;
24
+ connect(options?: {
25
+ realmId?: string;
26
+ instanceId?: string;
27
+ realmBackend?: "jsonl" | "redb";
28
+ isolated?: boolean;
29
+ stateRoot?: string;
30
+ contextRoot?: string;
31
+ userConfigRoot?: string;
32
+ }): Promise<this>;
33
+ close(): Promise<void>;
34
+ createSession(params: {
35
+ prompt: string;
36
+ model?: string;
37
+ provider?: string;
38
+ system_prompt?: string;
39
+ max_tokens?: number;
40
+ output_schema?: Record<string, unknown>;
41
+ structured_output_retries?: number;
42
+ hooks_override?: Record<string, unknown>;
43
+ enable_builtins?: boolean;
44
+ enable_shell?: boolean;
45
+ enable_subagents?: boolean;
46
+ enable_memory?: boolean;
47
+ host_mode?: boolean;
48
+ comms_name?: string;
49
+ peer_meta?: PeerMeta;
50
+ provider_params?: Record<string, unknown>;
51
+ preload_skills?: string[];
52
+ skill_references?: string[];
53
+ }): Promise<WireRunResult>;
54
+ startTurn(sessionId: string, prompt: string, options?: {
55
+ skill_references?: string[];
56
+ }): Promise<WireRunResult>;
57
+ interrupt(sessionId: string): Promise<void>;
58
+ listSessions(): Promise<unknown[]>;
59
+ readSession(sessionId: string): Promise<Record<string, unknown>>;
60
+ archiveSession(sessionId: string): Promise<void>;
61
+ getCapabilities(): Promise<CapabilitiesResponse>;
62
+ hasCapability(capabilityId: string): boolean;
63
+ requireCapability(capabilityId: string): void;
64
+ getConfig(): Promise<Record<string, unknown>>;
65
+ setConfig(config: Record<string, unknown>): Promise<void>;
66
+ patchConfig(patch: Record<string, unknown>): Promise<Record<string, unknown>>;
67
+ /**
68
+ * Send a canonical comms command to a session.
69
+ *
70
+ * @param sessionId - Target session ID
71
+ * @param command - Command fields (kind, to, body, intent, params, etc.)
72
+ * @returns Receipt info on success
73
+ */
74
+ send(sessionId: string, command: Record<string, unknown>): Promise<Record<string, unknown>>;
75
+ /**
76
+ * Send a command and open a stream in one call.
77
+ *
78
+ * @param sessionId - Target session ID
79
+ * @param command - Command fields (kind, to, body, etc.)
80
+ * @returns Receipt and stream info
81
+ */
82
+ sendAndStream(sessionId: string, command: Record<string, unknown>): Promise<Record<string, unknown>>;
83
+ /**
84
+ * List peers visible to a session's comms runtime.
85
+ *
86
+ * @param sessionId - Target session ID
87
+ * @returns Object with `{ peers: [...] }`
88
+ */
89
+ peers(sessionId: string): Promise<{
90
+ peers: Array<Record<string, unknown>>;
91
+ }>;
92
+ /**
93
+ * Normalize a CapabilityStatus from the wire.
94
+ * Available is the string "Available", but other variants are
95
+ * externally-tagged objects like {"DisabledByPolicy": {"description": "..."}}.
96
+ * We normalize to the variant name string.
97
+ */
98
+ private static normalizeStatus;
99
+ private request;
100
+ private checkVersionCompatible;
101
+ private parseRunResult;
102
+ }
103
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js ADDED
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Meerkat client — spawns rkat-rpc subprocess and communicates via JSON-RPC.
3
+ */
4
+ import { spawn } from "node:child_process";
5
+ import { chmodSync, existsSync, mkdirSync, unlinkSync, writeFileSync, } from "node:fs";
6
+ import os from "node:os";
7
+ import path from "node:path";
8
+ import { createInterface } from "node:readline";
9
+ import { MeerkatError } from "./generated/errors.js";
10
+ import { CONTRACT_VERSION } from "./generated/types.js";
11
+ const MEERKAT_REPO = "lukacf/meerkat";
12
+ const MEERKAT_RELEASE_BINARY = "rkat-rpc";
13
+ const MEERKAT_BINARY_CACHE_ROOT = path.join(os.homedir(), ".cache", "meerkat", "bin", MEERKAT_RELEASE_BINARY);
14
+ export class MeerkatClient {
15
+ process = null;
16
+ requestId = 0;
17
+ capabilities = null;
18
+ rkatPath;
19
+ pendingRequests = new Map();
20
+ constructor(rkatPath = "rkat-rpc") {
21
+ this.rkatPath = rkatPath;
22
+ }
23
+ static commandPath(command) {
24
+ if (path.isAbsolute(command)) {
25
+ return existsSync(command) ? command : null;
26
+ }
27
+ const pathEnv = process.env.PATH ?? "";
28
+ if (!pathEnv)
29
+ return null;
30
+ const exts = process.platform === "win32"
31
+ ? (process.env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM")
32
+ .split(";")
33
+ .filter((ext) => ext.length > 0)
34
+ : [""];
35
+ for (const dir of pathEnv.split(path.delimiter)) {
36
+ if (!dir)
37
+ continue;
38
+ for (const ext of exts) {
39
+ const candidate = process.platform === "win32" &&
40
+ ext &&
41
+ !command.toLowerCase().endsWith(ext.toLowerCase())
42
+ ? `${command}${ext}`
43
+ : command;
44
+ const fullPath = path.join(dir, candidate);
45
+ if (existsSync(fullPath))
46
+ return fullPath;
47
+ }
48
+ }
49
+ return null;
50
+ }
51
+ static resolveCandidatePath(commandOrPath) {
52
+ if (commandOrPath.includes(path.sep) || commandOrPath.includes("/")) {
53
+ const candidate = path.resolve(commandOrPath);
54
+ return existsSync(candidate) ? candidate : null;
55
+ }
56
+ return MeerkatClient.commandPath(commandOrPath);
57
+ }
58
+ static platformTarget() {
59
+ const architecture = os.arch();
60
+ if (process.platform === "darwin") {
61
+ if (architecture === "arm64") {
62
+ return {
63
+ target: "aarch64-apple-darwin",
64
+ archiveExt: "tar.gz",
65
+ binaryName: "rkat-rpc",
66
+ };
67
+ }
68
+ throw new MeerkatError("UNSUPPORTED_PLATFORM", `Unsupported macOS architecture '${architecture}'. Only Apple Silicon (arm64) is supported.`);
69
+ }
70
+ if (process.platform === "linux") {
71
+ if (architecture === "x64") {
72
+ return {
73
+ target: "x86_64-unknown-linux-gnu",
74
+ archiveExt: "tar.gz",
75
+ binaryName: "rkat-rpc",
76
+ };
77
+ }
78
+ if (architecture === "arm64") {
79
+ return {
80
+ target: "aarch64-unknown-linux-gnu",
81
+ archiveExt: "tar.gz",
82
+ binaryName: "rkat-rpc",
83
+ };
84
+ }
85
+ throw new MeerkatError("UNSUPPORTED_PLATFORM", `Unsupported Linux architecture '${architecture}'.`);
86
+ }
87
+ if (process.platform === "win32") {
88
+ if (architecture === "x64") {
89
+ return {
90
+ target: "x86_64-pc-windows-msvc",
91
+ archiveExt: "zip",
92
+ binaryName: "rkat-rpc.exe",
93
+ };
94
+ }
95
+ throw new MeerkatError("UNSUPPORTED_PLATFORM", `Unsupported Windows architecture '${architecture}'.`);
96
+ }
97
+ throw new MeerkatError("UNSUPPORTED_PLATFORM", `Unsupported platform '${process.platform}'.`);
98
+ }
99
+ static async runCommand(command, args) {
100
+ return new Promise((resolve, reject) => {
101
+ const proc = spawn(command, args, { stdio: ["ignore", "inherit", "pipe"] });
102
+ let stderr = "";
103
+ proc.stderr?.on("data", (chunk) => {
104
+ stderr += String(chunk);
105
+ });
106
+ proc.on("error", (error) => {
107
+ reject(error);
108
+ });
109
+ proc.on("close", (code) => {
110
+ if (code === 0) {
111
+ resolve();
112
+ return;
113
+ }
114
+ reject(new MeerkatError("ARCHIVE_EXTRACT_FAILED", `${command} failed with code ${code}: ${stderr.trim()}`));
115
+ });
116
+ });
117
+ }
118
+ static async extractZip(archivePath, destinationDir) {
119
+ try {
120
+ await MeerkatClient.runCommand("tar", ["-xf", archivePath, "-C", destinationDir]);
121
+ return;
122
+ }
123
+ catch (error) {
124
+ await MeerkatClient.runCommand("powershell", [
125
+ "-NoProfile",
126
+ "-Command",
127
+ `Expand-Archive -LiteralPath '${archivePath.replaceAll("'", "''")}' -DestinationPath '${destinationDir.replaceAll("'", "''")}' -Force`,
128
+ ]);
129
+ }
130
+ }
131
+ static async ensureDownloadedBinary() {
132
+ const { target, archiveExt, binaryName } = MeerkatClient.platformTarget();
133
+ const version = CONTRACT_VERSION;
134
+ const asset = `${MEERKAT_RELEASE_BINARY}-v${version}-${target}.${archiveExt}`;
135
+ const url = `https://github.com/${MEERKAT_REPO}/releases/download/v${version}/${asset}`;
136
+ const baseDir = path.join(MEERKAT_BINARY_CACHE_ROOT, `v${version}`, target);
137
+ mkdirSync(baseDir, { recursive: true });
138
+ const cached = path.join(baseDir, binaryName);
139
+ if (existsSync(cached)) {
140
+ return cached;
141
+ }
142
+ const response = await fetch(url);
143
+ if (!response.ok) {
144
+ throw new MeerkatError("BINARY_DOWNLOAD_FAILED", `Failed to download binary from ${url} (HTTP ${response.status})`);
145
+ }
146
+ const arrayBuffer = await response.arrayBuffer();
147
+ const archivePath = path.join(baseDir, asset);
148
+ writeFileSync(archivePath, Buffer.from(arrayBuffer));
149
+ try {
150
+ if (archiveExt === "tar.gz") {
151
+ await MeerkatClient.runCommand("tar", ["-xzf", archivePath, "-C", baseDir]);
152
+ }
153
+ else {
154
+ await MeerkatClient.extractZip(archivePath, baseDir);
155
+ }
156
+ }
157
+ catch (error) {
158
+ throw new MeerkatError("BINARY_DOWNLOAD_EXTRACT_FAILED", `Failed to extract ${archivePath}: ${String(error)}`);
159
+ }
160
+ finally {
161
+ try {
162
+ unlinkSync(archivePath);
163
+ }
164
+ catch { /* best-effort cleanup */ }
165
+ }
166
+ if (process.platform !== "win32") {
167
+ chmodSync(cached, 0o755);
168
+ }
169
+ return cached;
170
+ }
171
+ static async resolveBinaryPath(requestedPath) {
172
+ const overridden = process.env.MEERKAT_BIN_PATH?.trim();
173
+ if (overridden) {
174
+ const candidate = MeerkatClient.resolveCandidatePath(overridden);
175
+ if (!candidate) {
176
+ throw new MeerkatError("BINARY_NOT_FOUND", `Binary not found at MEERKAT_BIN_PATH='${overridden}'. Set it to a valid executable.`);
177
+ }
178
+ return {
179
+ command: candidate,
180
+ useLegacySubcommand: path.basename(candidate) === "rkat",
181
+ };
182
+ }
183
+ if (requestedPath !== "rkat-rpc") {
184
+ const candidate = MeerkatClient.resolveCandidatePath(requestedPath);
185
+ if (!candidate) {
186
+ throw new MeerkatError("BINARY_NOT_FOUND", `Binary not found at '${requestedPath}'. Set rkatPath to a valid path or use MEERKAT_BIN_PATH.`);
187
+ }
188
+ return {
189
+ command: candidate,
190
+ useLegacySubcommand: path.basename(candidate) === "rkat",
191
+ };
192
+ }
193
+ const defaultBinary = MeerkatClient.commandPath("rkat-rpc");
194
+ if (defaultBinary) {
195
+ return {
196
+ command: defaultBinary,
197
+ useLegacySubcommand: false,
198
+ };
199
+ }
200
+ try {
201
+ const downloaded = await MeerkatClient.ensureDownloadedBinary();
202
+ return { command: downloaded, useLegacySubcommand: false };
203
+ }
204
+ catch (error) {
205
+ const legacy = MeerkatClient.commandPath("rkat");
206
+ if (legacy) {
207
+ return { command: legacy, useLegacySubcommand: true };
208
+ }
209
+ if (error instanceof MeerkatError)
210
+ throw error;
211
+ throw new MeerkatError("BINARY_NOT_FOUND", `Could not find '${MEERKAT_RELEASE_BINARY}' and auto-download failed.`);
212
+ }
213
+ }
214
+ async connect(options) {
215
+ if (options?.realmId && options?.isolated) {
216
+ throw new MeerkatError("INVALID_ARGS", "realmId and isolated cannot both be set");
217
+ }
218
+ const resolved = await MeerkatClient.resolveBinaryPath(this.rkatPath);
219
+ this.rkatPath = resolved.command;
220
+ const args = [];
221
+ const legacyRequiresNewBinary = Boolean(options?.isolated ||
222
+ options?.realmId ||
223
+ options?.instanceId ||
224
+ options?.realmBackend ||
225
+ options?.stateRoot ||
226
+ options?.contextRoot ||
227
+ options?.userConfigRoot);
228
+ if (resolved.useLegacySubcommand) {
229
+ if (legacyRequiresNewBinary) {
230
+ throw new MeerkatError("LEGACY_BINARY_UNSUPPORTED", "Realm/context options require the standalone rkat-rpc binary. Install rkat-rpc and retry.");
231
+ }
232
+ args.push("rpc");
233
+ }
234
+ else {
235
+ if (options?.isolated) {
236
+ args.push("--isolated");
237
+ }
238
+ if (options?.realmId) {
239
+ args.push("--realm", options.realmId);
240
+ }
241
+ if (options?.instanceId) {
242
+ args.push("--instance", options.instanceId);
243
+ }
244
+ if (options?.realmBackend) {
245
+ args.push("--realm-backend", options.realmBackend);
246
+ }
247
+ if (options?.stateRoot) {
248
+ args.push("--state-root", options.stateRoot);
249
+ }
250
+ if (options?.contextRoot) {
251
+ args.push("--context-root", options.contextRoot);
252
+ }
253
+ if (options?.userConfigRoot) {
254
+ args.push("--user-config-root", options.userConfigRoot);
255
+ }
256
+ }
257
+ this.process = spawn(this.rkatPath, args, {
258
+ stdio: ["pipe", "pipe", "pipe"],
259
+ });
260
+ const rl = createInterface({ input: this.process.stdout });
261
+ rl.on("line", (line) => {
262
+ try {
263
+ const response = JSON.parse(line);
264
+ if ("id" in response &&
265
+ typeof response.id === "number" &&
266
+ this.pendingRequests.has(response.id)) {
267
+ const pending = this.pendingRequests.get(response.id);
268
+ this.pendingRequests.delete(response.id);
269
+ const error = response.error;
270
+ if (error) {
271
+ pending.reject(new MeerkatError(String(error.code ?? "UNKNOWN"), String(error.message ?? "Unknown error")));
272
+ }
273
+ else {
274
+ pending.resolve(response.result ?? {});
275
+ }
276
+ }
277
+ }
278
+ catch {
279
+ // Ignore non-JSON lines
280
+ }
281
+ });
282
+ // Initialize
283
+ const initResult = (await this.request("initialize", {}));
284
+ const serverVersion = String(initResult.contract_version ?? "");
285
+ if (!this.checkVersionCompatible(serverVersion, CONTRACT_VERSION)) {
286
+ throw new MeerkatError("VERSION_MISMATCH", `Server version ${serverVersion} incompatible with SDK ${CONTRACT_VERSION}`);
287
+ }
288
+ // Fetch capabilities
289
+ const capsResult = (await this.request("capabilities/get", {}));
290
+ this.capabilities = {
291
+ contract_version: String(capsResult.contract_version ?? ""),
292
+ capabilities: (capsResult.capabilities ?? []).map((cap) => ({
293
+ id: String(cap.id ?? ""),
294
+ description: String(cap.description ?? ""),
295
+ status: MeerkatClient.normalizeStatus(cap.status),
296
+ })),
297
+ };
298
+ return this;
299
+ }
300
+ async close() {
301
+ if (this.process) {
302
+ this.process.kill();
303
+ this.process = null;
304
+ }
305
+ }
306
+ async createSession(params) {
307
+ const result = (await this.request("session/create", params));
308
+ return this.parseRunResult(result);
309
+ }
310
+ async startTurn(sessionId, prompt, options) {
311
+ const result = (await this.request("turn/start", {
312
+ session_id: sessionId,
313
+ prompt,
314
+ ...options,
315
+ }));
316
+ return this.parseRunResult(result);
317
+ }
318
+ async interrupt(sessionId) {
319
+ await this.request("turn/interrupt", { session_id: sessionId });
320
+ }
321
+ async listSessions() {
322
+ const result = (await this.request("session/list", {}));
323
+ return result.sessions ?? [];
324
+ }
325
+ async readSession(sessionId) {
326
+ return (await this.request("session/read", {
327
+ session_id: sessionId,
328
+ }));
329
+ }
330
+ async archiveSession(sessionId) {
331
+ await this.request("session/archive", { session_id: sessionId });
332
+ }
333
+ async getCapabilities() {
334
+ if (this.capabilities)
335
+ return this.capabilities;
336
+ const result = (await this.request("capabilities/get", {}));
337
+ return {
338
+ contract_version: String(result.contract_version ?? ""),
339
+ capabilities: [],
340
+ };
341
+ }
342
+ hasCapability(capabilityId) {
343
+ if (!this.capabilities)
344
+ return false;
345
+ return this.capabilities.capabilities.some((c) => c.id === capabilityId && c.status === "Available");
346
+ }
347
+ requireCapability(capabilityId) {
348
+ if (!this.hasCapability(capabilityId)) {
349
+ throw new MeerkatError("CAPABILITY_UNAVAILABLE", `Capability '${capabilityId}' is not available`);
350
+ }
351
+ }
352
+ // --- Config ---
353
+ async getConfig() {
354
+ return (await this.request("config/get", {}));
355
+ }
356
+ async setConfig(config) {
357
+ await this.request("config/set", config);
358
+ }
359
+ async patchConfig(patch) {
360
+ return (await this.request("config/patch", patch));
361
+ }
362
+ /**
363
+ * Send a canonical comms command to a session.
364
+ *
365
+ * @param sessionId - Target session ID
366
+ * @param command - Command fields (kind, to, body, intent, params, etc.)
367
+ * @returns Receipt info on success
368
+ */
369
+ async send(sessionId, command) {
370
+ return (await this.request("comms/send", {
371
+ session_id: sessionId,
372
+ ...command,
373
+ }));
374
+ }
375
+ /**
376
+ * Send a command and open a stream in one call.
377
+ *
378
+ * @param sessionId - Target session ID
379
+ * @param command - Command fields (kind, to, body, etc.)
380
+ * @returns Receipt and stream info
381
+ */
382
+ async sendAndStream(sessionId, command) {
383
+ return (await this.request("comms/send", {
384
+ session_id: sessionId,
385
+ stream: "reserve_interaction",
386
+ ...command,
387
+ }));
388
+ }
389
+ /**
390
+ * List peers visible to a session's comms runtime.
391
+ *
392
+ * @param sessionId - Target session ID
393
+ * @returns Object with `{ peers: [...] }`
394
+ */
395
+ async peers(sessionId) {
396
+ return (await this.request("comms/peers", {
397
+ session_id: sessionId,
398
+ }));
399
+ }
400
+ // --- Internal ---
401
+ /**
402
+ * Normalize a CapabilityStatus from the wire.
403
+ * Available is the string "Available", but other variants are
404
+ * externally-tagged objects like {"DisabledByPolicy": {"description": "..."}}.
405
+ * We normalize to the variant name string.
406
+ */
407
+ static normalizeStatus(raw) {
408
+ if (typeof raw === "string")
409
+ return raw;
410
+ if (typeof raw === "object" && raw !== null) {
411
+ const keys = Object.keys(raw);
412
+ return keys[0] ?? "Unknown";
413
+ }
414
+ return String(raw);
415
+ }
416
+ request(method, params) {
417
+ if (!this.process?.stdin) {
418
+ throw new MeerkatError("NOT_CONNECTED", "Client not connected");
419
+ }
420
+ this.requestId++;
421
+ const id = this.requestId;
422
+ const request = {
423
+ jsonrpc: "2.0",
424
+ id,
425
+ method,
426
+ params,
427
+ };
428
+ return new Promise((resolve, reject) => {
429
+ this.pendingRequests.set(id, { resolve, reject });
430
+ this.process.stdin.write(JSON.stringify(request) + "\n");
431
+ });
432
+ }
433
+ checkVersionCompatible(server, client) {
434
+ try {
435
+ const s = server.split(".").map(Number);
436
+ const c = client.split(".").map(Number);
437
+ if (s[0] === 0 && c[0] === 0)
438
+ return s[1] === c[1];
439
+ return s[0] === c[0];
440
+ }
441
+ catch {
442
+ return false;
443
+ }
444
+ }
445
+ parseRunResult(data) {
446
+ const usage = data.usage;
447
+ return {
448
+ session_id: String(data.session_id ?? ""),
449
+ session_ref: data.session_ref == null ? undefined : String(data.session_ref),
450
+ text: String(data.text ?? ""),
451
+ turns: Number(data.turns ?? 0),
452
+ tool_calls: Number(data.tool_calls ?? 0),
453
+ usage: {
454
+ input_tokens: Number(usage?.input_tokens ?? 0),
455
+ output_tokens: Number(usage?.output_tokens ?? 0),
456
+ total_tokens: Number(usage?.total_tokens ?? 0),
457
+ cache_creation_tokens: usage?.cache_creation_tokens,
458
+ cache_read_tokens: usage?.cache_read_tokens,
459
+ },
460
+ structured_output: data.structured_output,
461
+ schema_warnings: data.schema_warnings,
462
+ };
463
+ }
464
+ }
465
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare class MeerkatError extends Error {
2
+ readonly code: string;
3
+ readonly details?: unknown | undefined;
4
+ readonly capabilityHint?: {
5
+ capability_id: string;
6
+ message: string;
7
+ } | undefined;
8
+ constructor(code: string, message: string, details?: unknown | undefined, capabilityHint?: {
9
+ capability_id: string;
10
+ message: string;
11
+ } | undefined);
12
+ }
13
+ export declare class CapabilityUnavailableError extends MeerkatError {
14
+ constructor(code: string, message: string, details?: unknown, capabilityHint?: {
15
+ capability_id: string;
16
+ message: string;
17
+ });
18
+ }
19
+ export declare class SessionNotFoundError extends MeerkatError {
20
+ constructor(code: string, message: string);
21
+ }
22
+ export declare class SkillNotFoundError extends MeerkatError {
23
+ constructor(code: string, message: string);
24
+ }
25
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/generated/errors.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAa,SAAQ,KAAK;aAEnB,IAAI,EAAE,MAAM;aAEZ,OAAO,CAAC,EAAE,OAAO;aACjB,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;gBAH3D,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,OAAO,CAAC,EAAE,OAAO,YAAA,EACjB,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,YAAA;CAK9E;AAED,qBAAa,0BAA2B,SAAQ,YAAY;gBAC9C,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CAI1H;AAED,qBAAa,oBAAqB,SAAQ,YAAY;gBACxC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C;AAED,qBAAa,kBAAmB,SAAQ,YAAY;gBACtC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1C"}
@@ -0,0 +1,32 @@
1
+ // Generated error types for Meerkat SDK
2
+ export class MeerkatError extends Error {
3
+ code;
4
+ details;
5
+ capabilityHint;
6
+ constructor(code, message, details, capabilityHint) {
7
+ super(message);
8
+ this.code = code;
9
+ this.details = details;
10
+ this.capabilityHint = capabilityHint;
11
+ this.name = 'MeerkatError';
12
+ }
13
+ }
14
+ export class CapabilityUnavailableError extends MeerkatError {
15
+ constructor(code, message, details, capabilityHint) {
16
+ super(code, message, details, capabilityHint);
17
+ this.name = 'CapabilityUnavailableError';
18
+ }
19
+ }
20
+ export class SessionNotFoundError extends MeerkatError {
21
+ constructor(code, message) {
22
+ super(code, message);
23
+ this.name = 'SessionNotFoundError';
24
+ }
25
+ }
26
+ export class SkillNotFoundError extends MeerkatError {
27
+ constructor(code, message) {
28
+ super(code, message);
29
+ this.name = 'SkillNotFoundError';
30
+ }
31
+ }
32
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/generated/errors.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEnB;IAEA;IACA;IAJlB,YACkB,IAAY,EAC5B,OAAe,EACC,OAAiB,EACjB,cAA2D;QAE3E,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QAEZ,YAAO,GAAP,OAAO,CAAU;QACjB,mBAAc,GAAd,cAAc,CAA6C;QAG3E,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,0BAA2B,SAAQ,YAAY;IAC1D,YAAY,IAAY,EAAE,OAAe,EAAE,OAAiB,EAAE,cAA2D;QACvH,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IACpD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAClD,YAAY,IAAY,EAAE,OAAe;QACvC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}