aibroker 0.6.1 → 0.6.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/README.md +263 -104
- package/dist/adapters/iterm/sessions.d.ts +1 -0
- package/dist/adapters/iterm/sessions.d.ts.map +1 -1
- package/dist/adapters/iterm/sessions.js +23 -0
- package/dist/adapters/iterm/sessions.js.map +1 -1
- package/dist/adapters/pailot/gateway.d.ts.map +1 -1
- package/dist/adapters/pailot/gateway.js +267 -52
- package/dist/adapters/pailot/gateway.js.map +1 -1
- package/dist/aibp/bridge.d.ts +123 -0
- package/dist/aibp/bridge.d.ts.map +1 -0
- package/dist/aibp/bridge.js +363 -0
- package/dist/aibp/bridge.js.map +1 -0
- package/dist/aibp/envelope.d.ts +26 -0
- package/dist/aibp/envelope.d.ts.map +1 -0
- package/dist/aibp/envelope.js +101 -0
- package/dist/aibp/envelope.js.map +1 -0
- package/dist/aibp/index.d.ts +11 -0
- package/dist/aibp/index.d.ts.map +1 -0
- package/dist/aibp/index.js +10 -0
- package/dist/aibp/index.js.map +1 -0
- package/dist/aibp/registry.d.ts +71 -0
- package/dist/aibp/registry.d.ts.map +1 -0
- package/dist/aibp/registry.js +408 -0
- package/dist/aibp/registry.js.map +1 -0
- package/dist/aibp/types.d.ts +91 -0
- package/dist/aibp/types.d.ts.map +1 -0
- package/dist/aibp/types.js +8 -0
- package/dist/aibp/types.js.map +1 -0
- package/dist/core/state.d.ts +12 -0
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +34 -0
- package/dist/core/state.js.map +1 -1
- package/dist/daemon/adapter-registry.d.ts.map +1 -1
- package/dist/daemon/adapter-registry.js +32 -3
- package/dist/daemon/adapter-registry.js.map +1 -1
- package/dist/daemon/command-context.d.ts +4 -0
- package/dist/daemon/command-context.d.ts.map +1 -1
- package/dist/daemon/commands.d.ts.map +1 -1
- package/dist/daemon/commands.js +239 -22
- package/dist/daemon/commands.js.map +1 -1
- package/dist/daemon/core-handlers.d.ts.map +1 -1
- package/dist/daemon/core-handlers.js +276 -15
- package/dist/daemon/core-handlers.js.map +1 -1
- package/dist/daemon/image-context.d.ts +56 -0
- package/dist/daemon/image-context.d.ts.map +1 -0
- package/dist/daemon/image-context.js +116 -0
- package/dist/daemon/image-context.js.map +1 -0
- package/dist/daemon/image-gen/index.d.ts +22 -0
- package/dist/daemon/image-gen/index.d.ts.map +1 -0
- package/dist/daemon/image-gen/index.js +129 -0
- package/dist/daemon/image-gen/index.js.map +1 -0
- package/dist/daemon/image-gen/providers/cloudflare.d.ts +13 -0
- package/dist/daemon/image-gen/providers/cloudflare.d.ts.map +1 -0
- package/dist/daemon/image-gen/providers/cloudflare.js +63 -0
- package/dist/daemon/image-gen/providers/cloudflare.js.map +1 -0
- package/dist/daemon/image-gen/providers/huggingface.d.ts +12 -0
- package/dist/daemon/image-gen/providers/huggingface.d.ts.map +1 -0
- package/dist/daemon/image-gen/providers/huggingface.js +58 -0
- package/dist/daemon/image-gen/providers/huggingface.js.map +1 -0
- package/dist/daemon/image-gen/providers/pollinations.d.ts +11 -0
- package/dist/daemon/image-gen/providers/pollinations.d.ts.map +1 -0
- package/dist/daemon/image-gen/providers/pollinations.js +39 -0
- package/dist/daemon/image-gen/providers/pollinations.js.map +1 -0
- package/dist/daemon/image-gen/providers/replicate.d.ts +9 -0
- package/dist/daemon/image-gen/providers/replicate.d.ts.map +1 -0
- package/dist/daemon/image-gen/providers/replicate.js +158 -0
- package/dist/daemon/image-gen/providers/replicate.js.map +1 -0
- package/dist/daemon/image-gen/types.d.ts +41 -0
- package/dist/daemon/image-gen/types.d.ts.map +1 -0
- package/dist/daemon/image-gen/types.js +5 -0
- package/dist/daemon/image-gen/types.js.map +1 -0
- package/dist/daemon/index.d.ts.map +1 -1
- package/dist/daemon/index.js +157 -4
- package/dist/daemon/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.js +129 -2
- package/dist/mcp/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-13-56).d.ts +0 -49
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-13-56).d.ts.map +0 -1
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-13-56).js +0 -632
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-13-56).js.map +0 -1
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-13-59).js +0 -632
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-15-36).d.ts +0 -49
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-15-36).d.ts.map +0 -1
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-15-36).js +0 -614
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-15-36).js.map +0 -1
- package/dist/adapters/pailot/gateway (SFConflict mnott 2026-03-06-21-15-46).js +0 -614
- package/dist/adapters/pailot/gateway.d.ts (SFConflict mnott 2026-03-06-21-13-59).map +0 -1
- package/dist/adapters/pailot/gateway.d.ts (SFConflict mnott 2026-03-06-21-15-46).map +0 -1
- package/dist/adapters/pailot/gateway.js (SFConflict mnott 2026-03-06-21-13-59).map +0 -1
- package/dist/adapters/pailot/gateway.js (SFConflict mnott 2026-03-06-21-15-46).map +0 -1
- package/dist/daemon/adapter-registry (SFConflict mnott 2026-03-06-21-15-36).d.ts +0 -63
- package/dist/daemon/adapter-registry (SFConflict mnott 2026-03-06-21-15-36).d.ts.map +0 -1
- package/dist/daemon/adapter-registry (SFConflict mnott 2026-03-06-21-15-36).js +0 -229
- package/dist/daemon/adapter-registry (SFConflict mnott 2026-03-06-21-15-36).js.map +0 -1
- package/dist/daemon/image-gen.d.ts +0 -28
- package/dist/daemon/image-gen.d.ts.map +0 -1
- package/dist/daemon/image-gen.js +0 -97
- package/dist/daemon/image-gen.js.map +0 -1
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-13-56).d.ts +0 -12
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-13-56).d.ts.map +0 -1
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-13-56).js +0 -252
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-13-56).js.map +0 -1
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-13-59).js +0 -252
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-15-36).d.ts +0 -12
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-15-36).d.ts.map +0 -1
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-15-36).js +0 -240
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-15-36).js.map +0 -1
- package/dist/daemon/screenshot (SFConflict mnott 2026-03-06-21-15-46).js +0 -240
- package/dist/daemon/screenshot.d.ts (SFConflict mnott 2026-03-06-21-13-59).map +0 -1
- package/dist/daemon/screenshot.d.ts (SFConflict mnott 2026-03-06-21-15-46).map +0 -1
- package/dist/daemon/screenshot.js (SFConflict mnott 2026-03-06-21-13-59).map +0 -1
- package/dist/daemon/screenshot.js (SFConflict mnott 2026-03-06-21-15-46).map +0 -1
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-13-56).d.ts +0 -23
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-13-56).d.ts.map +0 -1
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-13-56).js +0 -595
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-13-56).js.map +0 -1
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-13-59).js +0 -595
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-15-36).d.ts +0 -23
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-15-36).d.ts.map +0 -1
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-15-36).js +0 -592
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-15-36).js.map +0 -1
- package/dist/mcp/index (SFConflict mnott 2026-03-06-21-15-46).js +0 -592
- package/dist/mcp/index.js (SFConflict mnott 2026-03-06-21-13-59).map +0 -1
- package/dist/mcp/index.js (SFConflict mnott 2026-03-06-21-15-46).map +0 -1
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon/image-gen/providers/replicate.ts — Replicate image generation provider.
|
|
3
|
+
*
|
|
4
|
+
* Uses the Replicate Flux schnell model by default.
|
|
5
|
+
* Requires REPLICATE_API_TOKEN env var (or apiToken in config).
|
|
6
|
+
*/
|
|
7
|
+
import { log } from "../../../core/log.js";
|
|
8
|
+
const REPLICATE_API_URL = "https://api.replicate.com/v1/models";
|
|
9
|
+
const DEFAULT_MODEL = "black-forest-labs/flux-schnell";
|
|
10
|
+
export function createReplicateProvider(config = { provider: "replicate" }) {
|
|
11
|
+
return {
|
|
12
|
+
name: "replicate",
|
|
13
|
+
async generate(opts) {
|
|
14
|
+
const tokenEnv = config.apiTokenEnv ?? "REPLICATE_API_TOKEN";
|
|
15
|
+
const token = config.apiToken ?? process.env[tokenEnv];
|
|
16
|
+
if (!token) {
|
|
17
|
+
throw new Error(`Replicate API error: ${tokenEnv} not set. Get one at https://replicate.com/account/api-tokens`);
|
|
18
|
+
}
|
|
19
|
+
const model = opts.model ?? config.model ?? DEFAULT_MODEL;
|
|
20
|
+
const startMs = Date.now();
|
|
21
|
+
const predictionUrl = `${REPLICATE_API_URL}/${model}/predictions`;
|
|
22
|
+
const body = {
|
|
23
|
+
input: {
|
|
24
|
+
prompt: opts.prompt,
|
|
25
|
+
num_outputs: opts.numOutputs ?? 1,
|
|
26
|
+
...(opts.width ? { width: opts.width } : {}),
|
|
27
|
+
...(opts.height ? { height: opts.height } : {}),
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
log(`Image gen: using replicate (${model})`);
|
|
31
|
+
const startRes = await fetch(predictionUrl, {
|
|
32
|
+
method: "POST",
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: `Bearer ${token}`,
|
|
35
|
+
"Content-Type": "application/json",
|
|
36
|
+
Prefer: "wait", // Synchronous mode — waits for completion
|
|
37
|
+
},
|
|
38
|
+
body: JSON.stringify(body),
|
|
39
|
+
});
|
|
40
|
+
if (!startRes.ok) {
|
|
41
|
+
const errText = await startRes.text();
|
|
42
|
+
throw new Error(`Replicate API error (${startRes.status}): ${errText}`);
|
|
43
|
+
}
|
|
44
|
+
const prediction = await startRes.json();
|
|
45
|
+
// If "Prefer: wait" didn't complete, poll
|
|
46
|
+
if (prediction.status !== "succeeded" && prediction.status !== "failed") {
|
|
47
|
+
const polled = await pollPrediction(prediction.urls?.get ?? "", token);
|
|
48
|
+
if (polled.status === "failed") {
|
|
49
|
+
throw new Error(`Replicate API error: image generation failed — ${polled.error ?? "unknown error"}`);
|
|
50
|
+
}
|
|
51
|
+
prediction.output = polled.output;
|
|
52
|
+
prediction.status = polled.status;
|
|
53
|
+
}
|
|
54
|
+
if (prediction.status === "failed") {
|
|
55
|
+
throw new Error(`Replicate API error: image generation failed — ${prediction.error ?? "unknown error"}`);
|
|
56
|
+
}
|
|
57
|
+
if (!prediction.output || prediction.output.length === 0) {
|
|
58
|
+
throw new Error("Replicate API error: generation returned no output");
|
|
59
|
+
}
|
|
60
|
+
// Download image URLs to buffers
|
|
61
|
+
const images = [];
|
|
62
|
+
for (const url of prediction.output) {
|
|
63
|
+
const imgRes = await fetch(url);
|
|
64
|
+
if (!imgRes.ok) {
|
|
65
|
+
throw new Error(`Replicate API error: failed to download image (${imgRes.status})`);
|
|
66
|
+
}
|
|
67
|
+
const arrayBuf = await imgRes.arrayBuffer();
|
|
68
|
+
images.push(Buffer.from(arrayBuf));
|
|
69
|
+
}
|
|
70
|
+
const durationMs = Date.now() - startMs;
|
|
71
|
+
log(`Image gen: completed in ${durationMs}ms, ${images.length} image(s), ${images.reduce((s, b) => s + b.length, 0)} bytes total`);
|
|
72
|
+
return { images, model, durationMs };
|
|
73
|
+
},
|
|
74
|
+
async refine(opts) {
|
|
75
|
+
const tokenEnv = config.apiTokenEnv ?? "REPLICATE_API_TOKEN";
|
|
76
|
+
const token = config.apiToken ?? process.env[tokenEnv];
|
|
77
|
+
if (!token) {
|
|
78
|
+
throw new Error(`Replicate API error: ${tokenEnv} not set. Get one at https://replicate.com/account/api-tokens`);
|
|
79
|
+
}
|
|
80
|
+
// flux-dev supports image input; flux-schnell does not
|
|
81
|
+
const model = "black-forest-labs/flux-dev";
|
|
82
|
+
const predictionUrl = `${REPLICATE_API_URL}/${model}/predictions`;
|
|
83
|
+
const startMs = Date.now();
|
|
84
|
+
const strength = opts.strength ?? 0.7;
|
|
85
|
+
// Encode source image as base64 data URI
|
|
86
|
+
const base64Image = opts.sourceImage.toString("base64");
|
|
87
|
+
const dataUri = `data:${opts.sourceMime};base64,${base64Image}`;
|
|
88
|
+
const body = {
|
|
89
|
+
input: {
|
|
90
|
+
prompt: opts.prompt,
|
|
91
|
+
image: dataUri,
|
|
92
|
+
prompt_strength: strength,
|
|
93
|
+
num_outputs: 1,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
log(`Image refine: using replicate (${model}), strength=${strength}`);
|
|
97
|
+
const startRes = await fetch(predictionUrl, {
|
|
98
|
+
method: "POST",
|
|
99
|
+
headers: {
|
|
100
|
+
Authorization: `Bearer ${token}`,
|
|
101
|
+
"Content-Type": "application/json",
|
|
102
|
+
Prefer: "wait",
|
|
103
|
+
},
|
|
104
|
+
body: JSON.stringify(body),
|
|
105
|
+
});
|
|
106
|
+
if (!startRes.ok) {
|
|
107
|
+
const errText = await startRes.text();
|
|
108
|
+
throw new Error(`Replicate API error (${startRes.status}): ${errText}`);
|
|
109
|
+
}
|
|
110
|
+
const prediction = await startRes.json();
|
|
111
|
+
if (prediction.status !== "succeeded" && prediction.status !== "failed") {
|
|
112
|
+
const polled = await pollPrediction(prediction.urls?.get ?? "", token);
|
|
113
|
+
if (polled.status === "failed") {
|
|
114
|
+
throw new Error(`Replicate API error: image refinement failed — ${polled.error ?? "unknown error"}`);
|
|
115
|
+
}
|
|
116
|
+
prediction.output = polled.output;
|
|
117
|
+
prediction.status = polled.status;
|
|
118
|
+
}
|
|
119
|
+
if (prediction.status === "failed") {
|
|
120
|
+
throw new Error(`Replicate API error: image refinement failed — ${prediction.error ?? "unknown error"}`);
|
|
121
|
+
}
|
|
122
|
+
if (!prediction.output || prediction.output.length === 0) {
|
|
123
|
+
throw new Error("Replicate API error: refinement returned no output");
|
|
124
|
+
}
|
|
125
|
+
const images = [];
|
|
126
|
+
for (const url of prediction.output) {
|
|
127
|
+
const imgRes = await fetch(url);
|
|
128
|
+
if (!imgRes.ok) {
|
|
129
|
+
throw new Error(`Replicate API error: failed to download refined image (${imgRes.status})`);
|
|
130
|
+
}
|
|
131
|
+
const arrayBuf = await imgRes.arrayBuffer();
|
|
132
|
+
images.push(Buffer.from(arrayBuf));
|
|
133
|
+
}
|
|
134
|
+
const durationMs = Date.now() - startMs;
|
|
135
|
+
log(`Image refine: completed in ${durationMs}ms, ${images.length} image(s)`);
|
|
136
|
+
return { images, model, durationMs };
|
|
137
|
+
},
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
async function pollPrediction(url, token, maxWaitMs = 60_000) {
|
|
141
|
+
const startMs = Date.now();
|
|
142
|
+
const pollIntervalMs = 1000;
|
|
143
|
+
while (Date.now() - startMs < maxWaitMs) {
|
|
144
|
+
await new Promise((r) => setTimeout(r, pollIntervalMs));
|
|
145
|
+
const res = await fetch(url, {
|
|
146
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
147
|
+
});
|
|
148
|
+
if (!res.ok) {
|
|
149
|
+
throw new Error(`Replicate API error: poll failed (${res.status}) — ${await res.text()}`);
|
|
150
|
+
}
|
|
151
|
+
const data = await res.json();
|
|
152
|
+
if (data.status === "succeeded" || data.status === "failed") {
|
|
153
|
+
return data;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
throw new Error(`Replicate API error: timed out after ${maxWaitMs}ms`);
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=replicate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replicate.js","sourceRoot":"","sources":["../../../../src/daemon/image-gen/providers/replicate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon/image-gen/types.ts — Shared types for image generation providers.
|
|
3
|
+
*/
|
|
4
|
+
export interface GenerateImageOptions {
|
|
5
|
+
prompt: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
width?: number;
|
|
8
|
+
height?: number;
|
|
9
|
+
numOutputs?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface GenerateImageResult {
|
|
12
|
+
images: Buffer[];
|
|
13
|
+
model: string;
|
|
14
|
+
durationMs: number;
|
|
15
|
+
}
|
|
16
|
+
export interface RefineImageOptions {
|
|
17
|
+
/** The modification instruction (what to change). */
|
|
18
|
+
prompt: string;
|
|
19
|
+
/** The image to modify. */
|
|
20
|
+
sourceImage: Buffer;
|
|
21
|
+
/** MIME type of sourceImage ("image/webp" | "image/png"). */
|
|
22
|
+
sourceMime: string;
|
|
23
|
+
/** How much to deviate from the source image. 0.0 = minimal change, 1.0 = ignore source. Default 0.7. */
|
|
24
|
+
strength?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface ImageProvider {
|
|
27
|
+
name: string;
|
|
28
|
+
generate(opts: GenerateImageOptions): Promise<GenerateImageResult>;
|
|
29
|
+
/** Optional: native img2img refinement. Falls back to prompt chaining if absent. */
|
|
30
|
+
refine?(opts: RefineImageOptions): Promise<GenerateImageResult>;
|
|
31
|
+
}
|
|
32
|
+
export interface ImageProviderConfig {
|
|
33
|
+
provider: string;
|
|
34
|
+
model?: string;
|
|
35
|
+
apiToken?: string;
|
|
36
|
+
apiTokenEnv?: string;
|
|
37
|
+
accountId?: string;
|
|
38
|
+
modulePath?: string;
|
|
39
|
+
options?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/daemon/image-gen/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,UAAU,EAAE,MAAM,CAAC;IACnB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnE,oFAAoF;IACpF,MAAM,CAAC,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjE;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/daemon/image-gen/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsCH,eAAO,MAAM,kBAAkB,uBAAuB,CAAC;AAyBvD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqRhB"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -12,16 +12,20 @@ import { setAppDir } from "../core/persistence.js";
|
|
|
12
12
|
import { IpcServer } from "../ipc/server.js";
|
|
13
13
|
import { AdapterRegistry } from "./adapter-registry.js";
|
|
14
14
|
import { registerCoreHandlers } from "./core-handlers.js";
|
|
15
|
-
import { startWsGateway, stopWsGateway, setScreenshotHandler, broadcastText, broadcastImage } from "../adapters/pailot/gateway.js";
|
|
15
|
+
import { startWsGateway, stopWsGateway, setScreenshotHandler, broadcastText, broadcastVoice, broadcastImage } from "../adapters/pailot/gateway.js";
|
|
16
16
|
import { handleScreenshot } from "./screenshot.js";
|
|
17
17
|
import { APIBackend } from "../backend/api.js";
|
|
18
18
|
import { HybridSessionManager, setHybridManager } from "../core/hybrid.js";
|
|
19
19
|
import { router } from "../core/router.js";
|
|
20
20
|
import { loadSessionRegistry, loadVoiceConfig } from "../core/persistence.js";
|
|
21
|
-
import { setCommandHandler } from "../core/state.js";
|
|
21
|
+
import { setCommandHandler, setAibpBridge } from "../core/state.js";
|
|
22
22
|
import { createHubCommandHandler } from "./commands.js";
|
|
23
23
|
import { WatcherClient } from "../ipc/client.js";
|
|
24
24
|
import { fileURLToPath } from "node:url";
|
|
25
|
+
import { AibpBridge } from "../aibp/bridge.js";
|
|
26
|
+
import { typeIntoSession, findClaudeSession, isClaudeRunningInSession } from "../adapters/iterm/core.js";
|
|
27
|
+
import { activeItermSessionId, setActiveItermSessionId } from "../core/state.js";
|
|
28
|
+
import { pruneStaleContexts } from "./image-context.js";
|
|
25
29
|
const __filename = fileURLToPath(import.meta.url);
|
|
26
30
|
const __dirname = dirname(__filename);
|
|
27
31
|
function getVersion() {
|
|
@@ -116,15 +120,148 @@ export async function startDaemon(options) {
|
|
|
116
120
|
loadVoiceConfig();
|
|
117
121
|
// Adapter registry
|
|
118
122
|
const adapterRegistry = new AdapterRegistry();
|
|
123
|
+
// AIBP bridge — IRC-inspired message routing layer
|
|
124
|
+
const aibpBridge = new AibpBridge();
|
|
125
|
+
setAibpBridge(aibpBridge);
|
|
126
|
+
// Register PAILot as a mobile plugin. The callback receives AIBP messages
|
|
127
|
+
// to deliver to connected WebSocket clients (wired after gateway starts).
|
|
128
|
+
// This is registered early so it's available before the first connection.
|
|
129
|
+
aibpBridge.registerMobile("pailot", (aibpMsg) => {
|
|
130
|
+
// Forward AIBP messages to PAILot gateway broadcast functions
|
|
131
|
+
const sessionId = aibpMsg.src.startsWith("session:")
|
|
132
|
+
? aibpMsg.src.slice(8)
|
|
133
|
+
: undefined;
|
|
134
|
+
log(`[AIBP→PAILot] type=${aibpMsg.type} src=${aibpMsg.src} → sessionId=${sessionId?.slice(0, 8) ?? "none"}`);
|
|
135
|
+
switch (aibpMsg.type) {
|
|
136
|
+
case "TEXT": {
|
|
137
|
+
const p = aibpMsg.payload;
|
|
138
|
+
broadcastText(p.content, sessionId);
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
case "VOICE": {
|
|
142
|
+
const p = aibpMsg.payload;
|
|
143
|
+
void broadcastVoice(Buffer.from(p.audioBase64, "base64"), p.transcript ?? "", sessionId);
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
case "IMAGE": {
|
|
147
|
+
const p = aibpMsg.payload;
|
|
148
|
+
broadcastImage(Buffer.from(p.imageBase64, "base64"), p.caption, sessionId);
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
case "TYPING": {
|
|
152
|
+
// Typing broadcast handled directly by gateway — no AIBP routing needed yet
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
119
157
|
// Create the hub command handler
|
|
120
158
|
const hubCommandHandler = createHubCommandHandler();
|
|
159
|
+
// Register the hub as an AIBP session handler — receives inbound messages
|
|
160
|
+
// routed to session channels (e.g., from PAILot via routeFromMobile).
|
|
161
|
+
aibpBridge.registerSessionHandler((aibpMsg) => {
|
|
162
|
+
// Extract session ID from destination (session:XYZ) or source
|
|
163
|
+
const sessionId = aibpMsg.dst.startsWith("session:")
|
|
164
|
+
? aibpMsg.dst.slice(8)
|
|
165
|
+
: aibpMsg.src.startsWith("session:")
|
|
166
|
+
? aibpMsg.src.slice(8)
|
|
167
|
+
: undefined;
|
|
168
|
+
// Build CommandContext with AIBP-routed reply callbacks
|
|
169
|
+
const ctx = {
|
|
170
|
+
reply: async (text) => {
|
|
171
|
+
aibpBridge.routeToMobile(sessionId ?? "", text);
|
|
172
|
+
},
|
|
173
|
+
replyImage: async (buf, caption) => {
|
|
174
|
+
aibpBridge.routeToMobile(sessionId ?? "", caption ?? "", "IMAGE", {
|
|
175
|
+
imageBase64: buf.toString("base64"),
|
|
176
|
+
mimeType: "image/png",
|
|
177
|
+
});
|
|
178
|
+
},
|
|
179
|
+
replyVoice: async (audioBuf, caption) => {
|
|
180
|
+
aibpBridge.routeToMobile(sessionId ?? "", caption, "VOICE", {
|
|
181
|
+
audioBase64: audioBuf.toString("base64"),
|
|
182
|
+
});
|
|
183
|
+
},
|
|
184
|
+
typing: (active) => {
|
|
185
|
+
aibpBridge.sendTyping(sessionId ?? "", active);
|
|
186
|
+
},
|
|
187
|
+
source: "pailot",
|
|
188
|
+
sessionId,
|
|
189
|
+
};
|
|
190
|
+
// Dispatch based on message type
|
|
191
|
+
let text = "";
|
|
192
|
+
switch (aibpMsg.type) {
|
|
193
|
+
case "TEXT":
|
|
194
|
+
text = aibpMsg.payload.content;
|
|
195
|
+
break;
|
|
196
|
+
case "VOICE":
|
|
197
|
+
text = aibpMsg.payload.transcript ?? "";
|
|
198
|
+
break;
|
|
199
|
+
case "IMAGE":
|
|
200
|
+
text = aibpMsg.payload.caption ?? "";
|
|
201
|
+
break;
|
|
202
|
+
default:
|
|
203
|
+
log(`[AIBP→Hub] Ignoring ${aibpMsg.type} message`);
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
if (text.trim()) {
|
|
207
|
+
void hubCommandHandler(text, aibpMsg.ts, ctx);
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
// Register iTerm2 as a terminal plugin — makes it addressable via AIBP.
|
|
211
|
+
// Messages sent to terminal:iterm are typed into the active iTerm session.
|
|
212
|
+
// Keyboard control commands are registered as terminal-owned AIBP commands.
|
|
213
|
+
const terminalCommands = [
|
|
214
|
+
{ name: "cc", description: "Send Ctrl+C to active session", args: "" },
|
|
215
|
+
{ name: "esc", description: "Send Escape to active session", args: "" },
|
|
216
|
+
{ name: "enter", description: "Send Enter to active session", args: "" },
|
|
217
|
+
{ name: "tab", description: "Send Tab to active session", args: "" },
|
|
218
|
+
{ name: "up", description: "Send Up arrow to active session", args: "" },
|
|
219
|
+
{ name: "down", description: "Send Down arrow to active session", args: "" },
|
|
220
|
+
{ name: "left", description: "Send Left arrow to active session", args: "" },
|
|
221
|
+
{ name: "right", description: "Send Right arrow to active session", args: "" },
|
|
222
|
+
{ name: "pick", description: "Select menu option N", args: "<N> [text]" },
|
|
223
|
+
];
|
|
224
|
+
aibpBridge.registerTerminal("iterm", (aibpMsg) => {
|
|
225
|
+
if (aibpMsg.type === "TEXT") {
|
|
226
|
+
const content = aibpMsg.payload.content;
|
|
227
|
+
// Determine target session from AIBP message source address
|
|
228
|
+
const targetSession = aibpMsg.src.startsWith("session:")
|
|
229
|
+
? aibpMsg.src.slice(8)
|
|
230
|
+
: activeItermSessionId;
|
|
231
|
+
if (targetSession) {
|
|
232
|
+
typeIntoSession(targetSession, content);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// Fallback: find any Claude session
|
|
236
|
+
const found = findClaudeSession();
|
|
237
|
+
if (found && isClaudeRunningInSession(found)) {
|
|
238
|
+
setActiveItermSessionId(found);
|
|
239
|
+
typeIntoSession(found, content);
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
log(`[AIBP→Terminal] No iTerm session available for delivery`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else if (aibpMsg.type === "COMMAND") {
|
|
247
|
+
const payload = aibpMsg.payload;
|
|
248
|
+
if (payload.command === "type" && payload.args.text) {
|
|
249
|
+
const sessionId = payload.args.sessionId || activeItermSessionId;
|
|
250
|
+
if (sessionId) {
|
|
251
|
+
typeIntoSession(sessionId, payload.args.text);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}, terminalCommands);
|
|
121
256
|
// Wrap it as a CommandHandler for backward compat (embedded mode fallback)
|
|
122
257
|
setCommandHandler((text, timestamp) => {
|
|
123
258
|
const fallbackCtx = {
|
|
124
259
|
reply: async (msg) => { log(`[hub fallback reply] ${msg.slice(0, 80)}`); },
|
|
125
260
|
replyImage: async () => { log("[hub fallback] image reply not supported in embedded mode"); },
|
|
126
261
|
replyVoice: async () => { log("[hub fallback] voice reply not supported in embedded mode"); },
|
|
262
|
+
typing: () => { },
|
|
127
263
|
source: "hub",
|
|
264
|
+
// sessionId intentionally omitted — fallback/embedded mode has no session
|
|
128
265
|
};
|
|
129
266
|
return hubCommandHandler(text, timestamp, fallbackCtx);
|
|
130
267
|
});
|
|
@@ -135,9 +272,22 @@ export async function startDaemon(options) {
|
|
|
135
272
|
registerCoreHandlers(ipcServer, adapterRegistry, apiBackend, manager);
|
|
136
273
|
ipcServer.start();
|
|
137
274
|
adapterRegistry.startHealthPolling();
|
|
275
|
+
// Prune stale image contexts every 5 minutes (30-minute TTL enforced inside)
|
|
276
|
+
setInterval(() => {
|
|
277
|
+
const evicted = pruneStaleContexts();
|
|
278
|
+
if (evicted > 0)
|
|
279
|
+
log(`[hub] pruned ${evicted} stale image context(s)`);
|
|
280
|
+
}, 5 * 60 * 1000).unref();
|
|
138
281
|
// Auto-discover adapters that were already running before the hub (re)started.
|
|
139
282
|
// Probe well-known socket paths and register any that respond to "ping".
|
|
140
|
-
|
|
283
|
+
// Also register them as AIBP transport plugins.
|
|
284
|
+
void discoverRunningAdapters(adapterRegistry).then(() => {
|
|
285
|
+
for (const adapter of adapterRegistry.list()) {
|
|
286
|
+
aibpBridge.registerTransport(adapter.name, () => {
|
|
287
|
+
// Legacy adapters use IPC, not direct AIBP send
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
});
|
|
141
291
|
// PAILot WebSocket gateway
|
|
142
292
|
startWsGateway((text, timestamp) => {
|
|
143
293
|
adapterRegistry.dispatchIncoming("pailot", text, timestamp);
|
|
@@ -148,13 +298,16 @@ export async function startDaemon(options) {
|
|
|
148
298
|
reply: async (text) => { broadcastText(text); },
|
|
149
299
|
replyImage: async (buf, caption) => { broadcastImage(buf, caption); },
|
|
150
300
|
replyVoice: async () => { },
|
|
301
|
+
typing: () => { },
|
|
151
302
|
source: source ?? "pailot",
|
|
303
|
+
sessionId: manager.activeSession?.backendSessionId,
|
|
152
304
|
};
|
|
153
305
|
await handleScreenshot(ctx);
|
|
154
306
|
});
|
|
155
|
-
console.log(`AIBroker daemon v${getVersion()} started`);
|
|
307
|
+
console.log(`AIBroker daemon v${getVersion()} started (AIBP ${aibpBridge.registry.listPlugins().length > 0 ? "active" : "standby"})`);
|
|
156
308
|
console.log(` Socket: ${socketPath}`);
|
|
157
309
|
console.log(` AppDir: ${appDir}`);
|
|
310
|
+
console.log(` AIBP: ${aibpBridge.listPlugins().join(", ") || "(no plugins yet)"}`);
|
|
158
311
|
// Graceful shutdown — ensure socket cleanup even on abrupt exit
|
|
159
312
|
const shutdown = (signal) => {
|
|
160
313
|
console.log(`\n[aibroker] ${signal} received. Stopping.`);
|
package/dist/daemon/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/daemon/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,7 +32,7 @@ export { validateAdapterHealth, validateSessionList, validateHubStatus, validate
|
|
|
32
32
|
export type { ValidatedSession, ValidatedHubStatus, ValidatedTtsResult, ValidatedTranscription, } from "./ipc/validate.js";
|
|
33
33
|
export { runAppleScript, stripItermPrefix, withSessionAppleScript, sendKeystrokeToSession, sendEscapeSequenceToSession, typeIntoSession, pasteTextIntoSession, findClaudeSession, isClaudeRunningInSession, isItermRunning, isItermSessionAlive, isScreenLocked, writeToTty, snapshotAllSessions, } from "./adapters/iterm/core.js";
|
|
34
34
|
export type { SessionSnapshot } from "./adapters/iterm/core.js";
|
|
35
|
-
export { setItermSessionVar, setItermTabName, getItermSessionVar, findItermSessionForTermId, listClaudeSessions, getSessionList, createClaudeSession, createTerminalTab, restartSession, killSession, } from "./adapters/iterm/sessions.js";
|
|
35
|
+
export { setItermSessionVar, setItermTabName, setItermBadge, getItermSessionVar, findItermSessionForTermId, listClaudeSessions, getSessionList, createClaudeSession, createTerminalTab, restartSession, killSession, } from "./adapters/iterm/sessions.js";
|
|
36
36
|
export { recordFromMic, transcribeLocalAudio, WHISPER_BIN as DICTATION_WHISPER_BIN, WHISPER_MODEL as DICTATION_WHISPER_MODEL, } from "./adapters/iterm/dictation.js";
|
|
37
37
|
export { textToVoiceNote, speakLocally, listVoices } from "./adapters/kokoro/tts.js";
|
|
38
38
|
export type { KokoroVoice } from "./adapters/kokoro/tts.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EACL,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGnE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,IAAI,qBAAqB,EACpC,aAAa,IAAI,uBAAuB,GACzC,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACrF,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -30,7 +30,7 @@ export { IpcServer } from "./ipc/server.js";
|
|
|
30
30
|
export { validateAdapterHealth, validateSessionList, validateHubStatus, validateTtsResult, validateTranscription, } from "./ipc/validate.js";
|
|
31
31
|
// ── Adapters > iTerm2 ──
|
|
32
32
|
export { runAppleScript, stripItermPrefix, withSessionAppleScript, sendKeystrokeToSession, sendEscapeSequenceToSession, typeIntoSession, pasteTextIntoSession, findClaudeSession, isClaudeRunningInSession, isItermRunning, isItermSessionAlive, isScreenLocked, writeToTty, snapshotAllSessions, } from "./adapters/iterm/core.js";
|
|
33
|
-
export { setItermSessionVar, setItermTabName, getItermSessionVar, findItermSessionForTermId, listClaudeSessions, getSessionList, createClaudeSession, createTerminalTab, restartSession, killSession, } from "./adapters/iterm/sessions.js";
|
|
33
|
+
export { setItermSessionVar, setItermTabName, setItermBadge, getItermSessionVar, findItermSessionForTermId, listClaudeSessions, getSessionList, createClaudeSession, createTerminalTab, restartSession, killSession, } from "./adapters/iterm/sessions.js";
|
|
34
34
|
export { recordFromMic, transcribeLocalAudio, WHISPER_BIN as DICTATION_WHISPER_BIN, WHISPER_MODEL as DICTATION_WHISPER_MODEL, } from "./adapters/iterm/dictation.js";
|
|
35
35
|
// ── Adapters > Kokoro TTS ──
|
|
36
36
|
export { textToVoiceNote, speakLocally, listVoices } from "./adapters/kokoro/tts.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,cAAc;AACd,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzF,YAAY;AACZ,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAQ3B,0BAA0B;AAC1B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,WAAW,GACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,IAAI,qBAAqB,EACpC,aAAa,IAAI,uBAAuB,GACzC,MAAM,+BAA+B,CAAC;AAEvC,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAErF,OAAO,EACL,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,aAAa,GACd,MAAM,4BAA4B,CAAC;AAEpC,kCAAkC;AAClC,OAAO,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AAEtC,mCAAmC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,gBAAgB;AAChB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|