opencode-flema-engram-sidebar 0.1.1 → 0.1.3

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.
Files changed (41) hide show
  1. package/README.md +17 -15
  2. package/dist/adapters/cloud.d.ts +14 -6
  3. package/dist/adapters/cloud.d.ts.map +1 -1
  4. package/dist/adapters/cloud.js +224 -20
  5. package/dist/adapters/cloud.js.map +1 -1
  6. package/dist/adapters/composite.d.ts +2 -1
  7. package/dist/adapters/composite.d.ts.map +1 -1
  8. package/dist/adapters/composite.js +36 -1
  9. package/dist/adapters/composite.js.map +1 -1
  10. package/dist/adapters/factory.d.ts +17 -0
  11. package/dist/adapters/factory.d.ts.map +1 -0
  12. package/dist/adapters/factory.js +76 -0
  13. package/dist/adapters/factory.js.map +1 -0
  14. package/dist/adapters/local.d.ts +2 -1
  15. package/dist/adapters/local.d.ts.map +1 -1
  16. package/dist/adapters/local.js +5 -2
  17. package/dist/adapters/local.js.map +1 -1
  18. package/dist/adapters/types.d.ts +7 -0
  19. package/dist/adapters/types.d.ts.map +1 -1
  20. package/dist/index.d.ts +3 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/schemas/health.d.ts +14 -0
  25. package/dist/schemas/health.d.ts.map +1 -1
  26. package/dist/schemas/health.js +5 -0
  27. package/dist/schemas/health.js.map +1 -1
  28. package/dist/sidebar/hooks/use-engram.d.ts +3 -1
  29. package/dist/sidebar/hooks/use-engram.d.ts.map +1 -1
  30. package/dist/sidebar/hooks/use-engram.js +5 -3
  31. package/dist/sidebar/hooks/use-engram.js.map +1 -1
  32. package/dist/sidebar/plugin.d.ts +9 -2
  33. package/dist/sidebar/plugin.d.ts.map +1 -1
  34. package/dist/sidebar/plugin.js +62 -16
  35. package/dist/sidebar/plugin.js.map +1 -1
  36. package/dist/stdio.js +0 -0
  37. package/dist/utils/project-resolver.d.ts +7 -1
  38. package/dist/utils/project-resolver.d.ts.map +1 -1
  39. package/dist/utils/project-resolver.js +38 -6
  40. package/dist/utils/project-resolver.js.map +1 -1
  41. package/package.json +74 -74
package/README.md CHANGED
@@ -29,13 +29,7 @@ sobre la obra.
29
29
  | Engram | Servicio HTTP local activo en `http://127.0.0.1:7437` |
30
30
  | Proyecto | Alguna observación o sesión reciente que permita validar el nombre |
31
31
 
32
- ### 1. Instalá el paquete
33
-
34
- ```sh
35
- npm install -g opencode-flema-engram-sidebar
36
- ```
37
-
38
- ### 2. Registrá el sidebar en `tui.json`
32
+ ### 1. Registrá el sidebar en `tui.json`
39
33
 
40
34
  Configuración mínima:
41
35
 
@@ -46,10 +40,17 @@ Configuración mínima:
46
40
  }
47
41
  ```
48
42
 
49
- OpenCode carga el destino `./tui` del paquete. Ese export apunta al módulo compilado
50
- `dist/sidebar/plugin.js`; el export raíz no se usa como reemplazo del plugin TUI.
43
+ OpenCode instala y cachea el paquete automáticamente; no hace falta instalarlo de
44
+ forma global con npm. El spec simple carga `dist/index.js`, cuyo export por defecto es
45
+ el plugin TUI. El subpath `/tui` sigue disponible para imports directos, pero no es
46
+ necesario en la configuración.
47
+
48
+ > **Importante:** `npm install -g opencode-flema-engram-sidebar` por sí solo instala el
49
+ > paquete en npm global, pero **no registra el plugin en OpenCode**. La entrada anterior
50
+ > en el `tui.json` global es el único paso de configuración necesario. Después, OpenCode
51
+ > resuelve, descarga y cachea la versión publicada automáticamente.
51
52
 
52
- ### 3. Iniciá Engram y abrí OpenCode en tu proyecto
53
+ ### 2. Iniciá Engram y abrí OpenCode en tu proyecto
53
54
 
54
55
  El sidebar hace una carga inicial, vuelve a consultar cada 30 segundos de forma
55
56
  predeterminada y permite refrescar manualmente con <kbd>Alt</kbd>+<kbd>R</kbd>.
@@ -69,7 +70,7 @@ avanzadas y puede ignorarse por completo al usar el plugin de OpenCode.
69
70
 
70
71
  ## Cómo funciona
71
72
 
72
- 1. OpenCode carga el export `opencode-flema-engram-sidebar/tui`.
73
+ 1. OpenCode carga el export raíz de `opencode-flema-engram-sidebar`.
73
74
  2. El plugin resuelve un candidato de proyecto y lo valida contra los proyectos
74
75
  derivados de observaciones y sesiones recientes de Engram.
75
76
  3. Consulta en paralelo salud, proyectos y observaciones del proyecto.
@@ -331,13 +332,14 @@ Preservá el resto de tus plugins y opciones al fusionar la configuración.
331
332
 
332
333
  ### OpenCode no encuentra el export del paquete
333
334
 
334
- - Confirmá que la versión instalada contiene el export `./tui`.
335
+ - Confirmá que la versión instalada tiene un export raíz por defecto con `id` y `tui`.
335
336
  - Ejecutá `npm view opencode-flema-engram-sidebar exports` para inspeccionar la
336
337
  metadata publicada.
337
338
  - Si trabajás sobre un tarball local, verificá que incluya
338
- `dist/sidebar/plugin.js` y `dist/sidebar/plugin.d.ts`.
339
- - No agregues un fallback `main`: este paquete separa deliberadamente el plugin TUI,
340
- la API raíz y el CLI MCP.
339
+ `dist/index.js`, `dist/sidebar/plugin.js` y sus declaraciones.
340
+ - Usá `opencode-flema-engram-sidebar` en la configuración. El subpath `/tui` queda
341
+ disponible para imports directos, pero OpenCode 1.18.25 puede no cachear ese spec de
342
+ npm de forma confiable.
341
343
 
342
344
  ### Diagnóstico para contribuidores
343
345
 
@@ -1,18 +1,26 @@
1
- import type { EngramAdapter, HealthStatus, Project, Observation, ListObservationsOpts, SearchOpts, Session, ListSessionsOpts } from "./types.js";
1
+ import type { EngramAdapter, EngramTargets, HealthStatus, Project, Observation, ListObservationsOpts, SearchOpts, Session, ListSessionsOpts } from "./types.js";
2
2
  export interface CloudAdapterOptions {
3
3
  baseUrl?: string;
4
4
  token?: string;
5
+ timeoutMs?: number;
6
+ allowInsecure?: boolean;
7
+ fetcher?: typeof fetch;
5
8
  }
6
9
  export declare class CloudEngramAdapter implements EngramAdapter {
7
10
  private readonly baseUrl;
8
11
  private readonly token;
12
+ private readonly timeoutMs;
13
+ private readonly allowInsecure;
14
+ private readonly fetcher?;
9
15
  constructor(opts?: CloudAdapterOptions);
16
+ describeTargets(): EngramTargets;
10
17
  health(): Promise<HealthStatus>;
11
18
  listProjects(): Promise<Project[]>;
12
- listObservations(_opts?: ListObservationsOpts): Promise<Observation[]>;
13
- getObservation(_id: number): Promise<Observation | null>;
14
- searchObservations(_query: string, _opts?: SearchOpts): Promise<Observation[]>;
15
- listSessions(_opts?: ListSessionsOpts): Promise<Session[]>;
16
- getSession(_sessionId: string): Promise<Session | null>;
19
+ listObservations(opts?: ListObservationsOpts): Promise<Observation[]>;
20
+ getObservation(id: number): Promise<Observation | null>;
21
+ searchObservations(query: string, opts?: SearchOpts): Promise<Observation[]>;
22
+ listSessions(opts?: ListSessionsOpts): Promise<Session[]>;
23
+ getSession(sessionId: string): Promise<Session | null>;
24
+ private get;
17
25
  }
18
26
  //# sourceMappingURL=cloud.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/adapters/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;gBAE/B,IAAI,CAAC,EAAE,mBAAmB;IAYhC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlC,gBAAgB,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAItE,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIxD,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI9E,YAAY,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI1D,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;CAG9D"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/adapters/cloud.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAUpB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAED,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAe;gBAE5B,IAAI,CAAC,EAAE,mBAAmB;IAmBtC,eAAe,IAAI,aAAa;IAI1B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAiB/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQlC,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQrE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAWvD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAS5E,YAAY,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAW9C,GAAG;CAiFlB"}
@@ -1,7 +1,18 @@
1
- import { NotImplemented } from "../utils/errors.js";
1
+ import http from "node:http";
2
+ import https from "node:https";
3
+ import { EngramUnavailable, ValidationError } from "../utils/errors.js";
4
+ import { observationSchema } from "../schemas/observation.js";
5
+ import { cloudHealthResponseSchema } from "../schemas/health.js";
6
+ import { sessionSchema } from "../schemas/session.js";
7
+ import { z } from "zod";
8
+ const DEFAULT_TIMEOUT_MS = 5_000;
9
+ const DERIVATION_LIMIT = 100;
2
10
  export class CloudEngramAdapter {
3
11
  baseUrl;
4
12
  token;
13
+ timeoutMs;
14
+ allowInsecure;
15
+ fetcher;
5
16
  constructor(opts) {
6
17
  if (opts?.baseUrl) {
7
18
  try {
@@ -11,43 +22,236 @@ export class CloudEngramAdapter {
11
22
  throw new Error(`Invalid cloud baseUrl: ${opts.baseUrl}`);
12
23
  }
13
24
  }
14
- this.baseUrl = opts?.baseUrl;
25
+ this.baseUrl = opts?.baseUrl ? opts.baseUrl.replace(/\/+$/, "") : undefined;
15
26
  this.token = opts?.token;
27
+ this.allowInsecure = opts?.allowInsecure ?? true;
28
+ this.fetcher = opts?.fetcher;
29
+ const t = opts?.timeoutMs ?? DEFAULT_TIMEOUT_MS;
30
+ if (typeof t !== "number" || !Number.isFinite(t) || t <= 0) {
31
+ throw new Error(`Invalid timeoutMs: ${t}`);
32
+ }
33
+ this.timeoutMs = t;
34
+ }
35
+ describeTargets() {
36
+ return { cloudUrl: this.baseUrl };
16
37
  }
17
38
  async health() {
18
39
  if (!this.baseUrl) {
19
40
  return { local: { available: false }, cloud: { available: false } };
20
41
  }
21
42
  try {
22
- const headers = {};
23
- if (this.token)
24
- headers["Authorization"] = `Bearer ${this.token}`;
25
- const controller = new AbortController();
26
- const timeoutId = setTimeout(() => controller.abort(), 5000);
27
- const res = await fetch(`${this.baseUrl}/health`, { signal: controller.signal, headers }).finally(() => clearTimeout(timeoutId));
28
- return { local: { available: false }, cloud: { available: res.ok } };
43
+ const response = await this.get("/health", cloudHealthResponseSchema);
44
+ return {
45
+ local: { available: false },
46
+ cloud: {
47
+ available: response.status.toLowerCase() === "ok",
48
+ },
49
+ };
29
50
  }
30
51
  catch {
31
52
  return { local: { available: false }, cloud: { available: false } };
32
53
  }
33
54
  }
34
55
  async listProjects() {
35
- throw new NotImplemented("CloudEngramAdapter.listProjects");
56
+ const [observations, sessions] = await Promise.all([
57
+ this.listObservations({ limit: DERIVATION_LIMIT, all_projects: true }),
58
+ this.listSessions({ limit: DERIVATION_LIMIT, all_projects: true }),
59
+ ]);
60
+ return deriveProjects(observations, sessions);
36
61
  }
37
- async listObservations(_opts) {
38
- throw new NotImplemented("CloudEngramAdapter.listObservations");
62
+ async listObservations(opts) {
63
+ const qs = toQuery(opts);
64
+ const schema = opts?.project
65
+ ? z.array(observationSchema).nullable().transform((records) => records ?? [])
66
+ : z.array(observationSchema);
67
+ return this.get(`/observations/recent${qs ? `?${qs}` : ""}`, schema);
39
68
  }
40
- async getObservation(_id) {
41
- throw new NotImplemented("CloudEngramAdapter.getObservation");
69
+ async getObservation(id) {
70
+ try {
71
+ return await this.get(`/observations/${id}`, observationSchema);
72
+ }
73
+ catch (err) {
74
+ if (err instanceof EngramUnavailable && err.statusCode === 404) {
75
+ return null;
76
+ }
77
+ throw err;
78
+ }
42
79
  }
43
- async searchObservations(_query, _opts) {
44
- throw new NotImplemented("CloudEngramAdapter.searchObservations");
80
+ async searchObservations(query, opts) {
81
+ const trimmed = query.trim();
82
+ if (!trimmed) {
83
+ throw new ValidationError("Search query must not be empty");
84
+ }
85
+ const qs = toQuery({ q: trimmed, ...opts });
86
+ return this.get(`/search?${qs}`, z.array(observationSchema));
45
87
  }
46
- async listSessions(_opts) {
47
- throw new NotImplemented("CloudEngramAdapter.listSessions");
88
+ async listSessions(opts) {
89
+ const qs = toQuery(opts);
90
+ const schema = opts?.project
91
+ ? z.array(sessionSchema).nullable().transform((records) => records ?? [])
92
+ : z.array(sessionSchema);
93
+ return this.get(`/sessions/recent${qs ? `?${qs}` : ""}`, schema);
48
94
  }
49
- async getSession(_sessionId) {
50
- throw new NotImplemented("CloudEngramAdapter.getSession");
95
+ async getSession(sessionId) {
96
+ try {
97
+ return await this.get(`/sessions/${encodeURIComponent(sessionId)}`, sessionSchema);
98
+ }
99
+ catch (err) {
100
+ if (err instanceof EngramUnavailable && err.statusCode === 404) {
101
+ return null;
102
+ }
103
+ throw err;
104
+ }
51
105
  }
106
+ async get(path, schema) {
107
+ if (!this.baseUrl) {
108
+ throw new EngramUnavailable("Cloud baseUrl is not configured", undefined, {
109
+ kind: "connection",
110
+ endpoint: path,
111
+ });
112
+ }
113
+ const url = `${this.baseUrl}${path}`;
114
+ const headers = {};
115
+ if (this.token) {
116
+ headers["Authorization"] = `Bearer ${this.token}`;
117
+ }
118
+ try {
119
+ let status;
120
+ let json;
121
+ const fetchImpl = this.fetcher ?? (typeof globalThis.fetch === "function" ? globalThis.fetch : undefined);
122
+ if (fetchImpl && (this.fetcher || typeof fetchImpl.mock === "object")) {
123
+ const controller = new AbortController();
124
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
125
+ try {
126
+ const res = await fetchImpl(url, { signal: controller.signal, headers });
127
+ status = res.status ?? (res.ok ? 200 : 500);
128
+ if (status >= 200 && status < 300) {
129
+ json = await res.json();
130
+ }
131
+ }
132
+ finally {
133
+ clearTimeout(timeoutId);
134
+ }
135
+ }
136
+ else {
137
+ const { status: httpStatus, body } = await httpRequest(url, {
138
+ headers,
139
+ timeoutMs: this.timeoutMs,
140
+ allowInsecure: this.allowInsecure,
141
+ });
142
+ status = httpStatus;
143
+ if (status >= 200 && status < 300) {
144
+ try {
145
+ json = JSON.parse(body);
146
+ }
147
+ catch (err) {
148
+ throw new EngramUnavailable("Engram cloud returned malformed JSON", err instanceof Error ? err : undefined, {
149
+ kind: "parse",
150
+ endpoint: path,
151
+ });
152
+ }
153
+ }
154
+ }
155
+ if (status < 200 || status >= 300) {
156
+ if (status === 404) {
157
+ throw new EngramUnavailable("Engram entity was not found", undefined, {
158
+ kind: "http",
159
+ statusCode: 404,
160
+ endpoint: path,
161
+ });
162
+ }
163
+ throw new EngramUnavailable(`Engram cloud request failed with HTTP ${status}`, undefined, {
164
+ kind: "http",
165
+ statusCode: status,
166
+ endpoint: path,
167
+ });
168
+ }
169
+ const parsed = schema.safeParse(json);
170
+ if (!parsed.success) {
171
+ throw new EngramUnavailable("Engram cloud returned an invalid response", undefined, {
172
+ kind: "validation",
173
+ endpoint: path,
174
+ });
175
+ }
176
+ return parsed.data;
177
+ }
178
+ catch (err) {
179
+ if (err instanceof EngramUnavailable)
180
+ throw err;
181
+ const timedOut = err instanceof Error && err.message.includes("timed out");
182
+ throw new EngramUnavailable(timedOut ? "Engram cloud request timed out" : "Engram cloud is unavailable", err instanceof Error ? err : undefined, {
183
+ kind: timedOut ? "timeout" : "connection",
184
+ endpoint: path,
185
+ });
186
+ }
187
+ }
188
+ }
189
+ function httpRequest(urlStr, options) {
190
+ return new Promise((resolve, reject) => {
191
+ const parsedUrl = new URL(urlStr);
192
+ const isHttps = parsedUrl.protocol === "https:";
193
+ const transport = isHttps ? https : http;
194
+ const reqOptions = {
195
+ protocol: parsedUrl.protocol,
196
+ hostname: parsedUrl.hostname,
197
+ port: parsedUrl.port ? Number(parsedUrl.port) : isHttps ? 443 : 80,
198
+ path: `${parsedUrl.pathname}${parsedUrl.search}`,
199
+ method: "GET",
200
+ headers: options.headers ?? {},
201
+ timeout: options.timeoutMs ?? 5000,
202
+ };
203
+ if (isHttps && options.allowInsecure !== false) {
204
+ reqOptions.agent = new https.Agent({ rejectUnauthorized: false });
205
+ }
206
+ const req = transport.request(reqOptions, (res) => {
207
+ let data = "";
208
+ res.setEncoding("utf-8");
209
+ res.on("data", (chunk) => {
210
+ data += chunk;
211
+ });
212
+ res.on("end", () => {
213
+ resolve({ status: res.statusCode ?? 500, body: data });
214
+ });
215
+ });
216
+ req.on("timeout", () => {
217
+ req.destroy(new Error("Request timed out"));
218
+ });
219
+ req.on("error", (err) => {
220
+ reject(err);
221
+ });
222
+ req.end();
223
+ });
224
+ }
225
+ function toQuery(values) {
226
+ return Object.entries(values ?? {})
227
+ .filter(([, value]) => value !== undefined && value !== "")
228
+ .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`)
229
+ .join("&");
230
+ }
231
+ function deriveProjects(observations, sessions) {
232
+ const projects = new Map();
233
+ for (const observation of observations) {
234
+ const project = projects.get(observation.project) ?? { observationCount: 0, lastActiveAt: observation.updated_at, scopes: new Set() };
235
+ project.observationCount += 1;
236
+ project.lastActiveAt = maxTimestamp(project.lastActiveAt, observation.updated_at);
237
+ project.scopes.add(observation.scope);
238
+ projects.set(observation.project, project);
239
+ }
240
+ for (const session of sessions) {
241
+ const project = projects.get(session.project) ?? { observationCount: 0, lastActiveAt: session.updated_at, scopes: new Set() };
242
+ project.lastActiveAt = maxTimestamp(project.lastActiveAt, session.updated_at);
243
+ projects.set(session.project, project);
244
+ }
245
+ return [...projects.entries()]
246
+ .sort(([left], [right]) => left.localeCompare(right))
247
+ .map(([name, project]) => ({
248
+ name,
249
+ observationCount: project.observationCount,
250
+ lastActiveAt: project.lastActiveAt,
251
+ scopes: [...project.scopes].sort(),
252
+ }));
253
+ }
254
+ function maxTimestamp(left, right) {
255
+ return left >= right ? left : right;
52
256
  }
53
257
  //# sourceMappingURL=cloud.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/adapters/cloud.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAOpD,MAAM,OAAO,kBAAkB;IACZ,OAAO,CAAqB;IAC5B,KAAK,CAAqB;IAE3C,YAAY,IAA0B;QACpC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,KAAK;gBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;YACjI,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAA4B;QACjD,MAAM,IAAI,cAAc,CAAC,qCAAqC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW;QAC9B,MAAM,IAAI,cAAc,CAAC,mCAAmC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,KAAkB;QACzD,MAAM,IAAI,cAAc,CAAC,uCAAuC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAwB;QACzC,MAAM,IAAI,cAAc,CAAC,iCAAiC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB;QACjC,MAAM,IAAI,cAAc,CAAC,+BAA+B,CAAC,CAAC;IAC5D,CAAC;CACF"}
1
+ {"version":3,"file":"cloud.js","sourceRoot":"","sources":["../../src/adapters/cloud.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAY/B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAU7B,MAAM,OAAO,kBAAkB;IACZ,OAAO,CAAqB;IAC5B,KAAK,CAAqB;IAC1B,SAAS,CAAS;IAClB,aAAa,CAAU;IACvB,OAAO,CAAgB;IAExC,YAAY,IAA0B;QACpC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,OAAO,CAAC;QAC7B,MAAM,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,kBAAkB,CAAC;QAChD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,eAAe;QACb,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAC;YACtE,OAAO;gBACL,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;gBAC3B,KAAK,EAAE;oBACL,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI;iBAClD;aACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAI,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;SACnE,CAAC,CAAC;QACH,OAAO,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAA2B;QAChD,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO;YAC1B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;YAC7E,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,GAAG,CAAgB,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAc,iBAAiB,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,IAAiB;QACvD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,GAAG,CAAgB,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAuB;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,EAAE,OAAO;YAC1B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC;YACzE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAY,mBAAmB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,GAAG,CAAU,aAAa,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG,CAAI,IAAY,EAAE,MAA2C;QAC5E,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,iBAAiB,CAAC,iCAAiC,EAAE,SAAS,EAAE;gBACxE,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACpD,CAAC;QAED,IAAI,CAAC;YACH,IAAI,MAAc,CAAC;YACnB,IAAI,IAAa,CAAC;YAElB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1G,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAQ,SAAgC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC9F,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;gBACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvE,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzE,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;wBAClC,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC1B,CAAC;gBACH,CAAC;wBAAS,CAAC;oBACT,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE;oBAC1D,OAAO;oBACP,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC,CAAC,CAAC;gBACH,MAAM,GAAG,UAAU,CAAC;gBACpB,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;oBAClC,IAAI,CAAC;wBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,MAAM,IAAI,iBAAiB,CAAC,sCAAsC,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;4BAC1G,IAAI,EAAE,OAAO;4BACb,QAAQ,EAAE,IAAI;yBACf,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,MAAM,IAAI,iBAAiB,CAAC,6BAA6B,EAAE,SAAS,EAAE;wBACpE,IAAI,EAAE,MAAM;wBACZ,UAAU,EAAE,GAAG;wBACf,QAAQ,EAAE,IAAI;qBACf,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM,IAAI,iBAAiB,CAAC,yCAAyC,MAAM,EAAE,EAAE,SAAS,EAAE;oBACxF,IAAI,EAAE,MAAM;oBACZ,UAAU,EAAE,MAAM;oBAClB,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;YACL,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,iBAAiB,CAAC,2CAA2C,EAAE,SAAS,EAAE;oBAClF,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;YACL,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,iBAAiB;gBAAE,MAAM,GAAG,CAAC;YAChD,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3E,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,6BAA6B,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;gBAC/I,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;gBACzC,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF;AAED,SAAS,WAAW,CAClB,MAAc,EACd,OAA0F;IAE1F,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzC,MAAM,UAAU,GAAwB;YACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClE,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE;YAChD,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,OAAO,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;SACnC,CAAC;QAEF,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;YAC/C,UAAU,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;YAChD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,IAAI,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,MAAe;IAC9B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;SACxF,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,YAA2B,EAAE,QAAmB;IACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAmF,CAAC;IAC5G,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;QAC9I,OAAO,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC9B,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAClF,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;QACtI,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9E,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;SAC3B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI;QACJ,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;KACnC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,KAAa;IAC/C,OAAO,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { EngramAdapter, HealthStatus, Project, Observation, ListObservationsOpts, SearchOpts, Session, ListSessionsOpts } from "./types.js";
1
+ import type { EngramAdapter, EngramTargets, HealthStatus, Project, Observation, ListObservationsOpts, SearchOpts, Session, ListSessionsOpts } from "./types.js";
2
2
  export declare class CompositeEngramAdapter implements EngramAdapter {
3
3
  private readonly adapters;
4
4
  private readonly cache;
@@ -6,6 +6,7 @@ export declare class CompositeEngramAdapter implements EngramAdapter {
6
6
  constructor(adapters: EngramAdapter[], opts?: {
7
7
  maxCacheSize?: number;
8
8
  });
9
+ describeTargets(): EngramTargets;
9
10
  health(): Promise<HealthStatus>;
10
11
  listProjects(): Promise<Project[]>;
11
12
  listObservations(opts?: ListObservationsOpts): Promise<Observation[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/adapters/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAajE,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAM/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAMlC,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOrE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAMvD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO5E,YAAY,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAM9C,kBAAkB;IA4BhC,UAAU,IAAI,IAAI;YAIJ,MAAM;CAmBrB"}
1
+ {"version":3,"file":"composite.d.ts","sourceRoot":"","sources":["../../src/adapters/composite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IAavE,eAAe,IAAI,aAAa;IAY1B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAoC/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAMlC,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAOrE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAMvD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAO5E,YAAY,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAOzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAM9C,kBAAkB;IA4BhC,UAAU,IAAI,IAAI;YAIJ,MAAM;CAmBrB"}
@@ -17,8 +17,43 @@ export class CompositeEngramAdapter {
17
17
  }
18
18
  this.maxCacheSize = size;
19
19
  }
20
+ describeTargets() {
21
+ const targets = {};
22
+ for (const adapter of this.adapters) {
23
+ if (typeof adapter.describeTargets === "function") {
24
+ const info = adapter.describeTargets();
25
+ if (info.localUrl && !targets.localUrl)
26
+ targets.localUrl = info.localUrl;
27
+ if (info.cloudUrl && !targets.cloudUrl)
28
+ targets.cloudUrl = info.cloudUrl;
29
+ }
30
+ }
31
+ return targets;
32
+ }
20
33
  async health() {
21
- return this.invokeWithFallback((adapter) => adapter.health());
34
+ const results = await Promise.allSettled(this.adapters.map((adapter) => adapter.health()));
35
+ const fulfilled = results.filter((r) => r.status === "fulfilled");
36
+ if (fulfilled.length === 0) {
37
+ const firstError = results.find((r) => r.status === "rejected")?.reason;
38
+ throw new EngramUnavailable("All adapters failed health check", firstError instanceof Error ? firstError : undefined);
39
+ }
40
+ let localAvailable = false;
41
+ let localVersion;
42
+ let cloudAvailable = false;
43
+ for (const res of fulfilled) {
44
+ if (res.value.local.available) {
45
+ localAvailable = true;
46
+ if (res.value.local.version)
47
+ localVersion = res.value.local.version;
48
+ }
49
+ if (res.value.cloud?.available) {
50
+ cloudAvailable = true;
51
+ }
52
+ }
53
+ return {
54
+ local: { available: localAvailable, version: localVersion },
55
+ cloud: { available: cloudAvailable },
56
+ };
22
57
  }
23
58
  async listProjects() {
24
59
  return this.cached("listProjects", () => this.invokeWithFallback((adapter) => adapter.listProjects()));
@@ -1 +1 @@
1
- {"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/adapters/composite.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAOnC,MAAM,OAAO,sBAAsB;IAChB,QAAQ,CAAkB;IAC1B,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,YAAY,CAAS;IAEtC,YAAY,QAAyB,EAAE,IAAgC;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,EAAE,YAAY,IAAI,sBAAsB,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,kBAAkB,CAC5B,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,CACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAA2B;QAChD,MAAM,GAAG,GAAG,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,IAAiB;QACvD,MAAM,GAAG,GAAG,sBAAsB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACxG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAuB;QACxC,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,SAAS,EAAE,EAAE,GAAG,EAAE,CACjD,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAA4C;QAE5C,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAiB,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,iBAAiB,CACzB,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1E,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CACvC,CAAC;gBACJ,CAAC;gBACD,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,iBAAiB,CACzB,qBAAqB,EACrB,SAAS,CACV,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,EAAoB;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,KAAqB,CAAC;QACrC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QAErE,mDAAmD;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/adapters/composite.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAOnC,MAAM,OAAO,sBAAsB;IAChB,QAAQ,CAAkB;IAC1B,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;IACtC,YAAY,CAAS;IAEtC,YAAY,QAAyB,EAAE,IAAgC;QACrE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAsB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,EAAE,YAAY,IAAI,sBAAsB,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBACvC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBACzE,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ;oBAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CACjD,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAC9B,CAAC,CAAC,EAA6C,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAC3E,CAAC;QAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,CAC3D,EAAE,MAAM,CAAC;YACV,MAAM,IAAI,iBAAiB,CAAC,kCAAkC,EAAE,UAAU,YAAY,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxH,CAAC;QAED,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,YAAgC,CAAC;QACrC,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBAC9B,cAAc,GAAG,IAAI,CAAC;gBACtB,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO;oBAAE,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;YACtE,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC;gBAC/B,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE;YAC3D,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,EAAE,CACtC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAA2B;QAChD,MAAM,GAAG,GAAG,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7F,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,EAAE,EAAE,GAAG,EAAE,CAC9C,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,IAAiB;QACvD,MAAM,GAAG,GAAG,sBAAsB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACxG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAuB;QACxC,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAC3B,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,SAAS,EAAE,EAAE,GAAG,EAAE,CACjD,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CACpE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAA4C;QAE5C,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,SAAS,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,CAAC,GAAG,YAAY,iBAAiB,CAAC,EAAE,CAAC;oBACxC,MAAM,IAAI,iBAAiB,CACzB,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1E,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CACvC,CAAC;gBACJ,CAAC;gBACD,SAAS,GAAG,GAAG,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,iBAAiB,CACzB,qBAAqB,EACrB,SAAS,CACV,CAAC;IACJ,CAAC;IAED,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,MAAM,CAAI,GAAW,EAAE,EAAoB;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,KAAqB,CAAC;QACrC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QAErE,mDAAmD;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { EngramAdapter } from "./types.js";
2
+ export interface ResolvedEngramConfig {
3
+ cloudUrl?: string;
4
+ localUrl?: string;
5
+ token?: string;
6
+ }
7
+ export interface EngramTuiOptionsInput {
8
+ cloudUrl?: string;
9
+ baseUrl?: string;
10
+ token?: string;
11
+ enabled?: boolean;
12
+ project?: string;
13
+ pollInterval?: number;
14
+ }
15
+ export declare function loadEngramConfig(options?: EngramTuiOptionsInput): ResolvedEngramConfig;
16
+ export declare function createConfiguredAdapter(options?: EngramTuiOptionsInput): EngramAdapter;
17
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/adapters/factory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA2BD,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,oBAAoB,CAgCtF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,aAAa,CAatF"}
@@ -0,0 +1,76 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+ import { LocalEngramAdapter } from "./local.js";
5
+ import { CloudEngramAdapter } from "./cloud.js";
6
+ import { CompositeEngramAdapter } from "./composite.js";
7
+ function extractAttachHost(argv) {
8
+ for (let i = 0; i < argv.length; i++) {
9
+ const arg = argv[i] ?? "";
10
+ if (arg === "attach" || arg.endsWith("/attach")) {
11
+ const next = argv[i + 1]?.trim();
12
+ if (next) {
13
+ const match = next.match(/^(?:https?:?\/?)?([^:\/\s]+)(?::\d+)?$/i);
14
+ if (match && match[1]) {
15
+ const host = match[1];
16
+ if (host !== "localhost" && host !== "127.0.0.1" && host !== "0.0.0.0") {
17
+ const protocol = /^https/i.test(next) ? "https:" : "http:";
18
+ return `${protocol}//${host}:7437`;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ const ipMatch = arg.match(/(?:https?:?\/?)?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/i);
24
+ if (ipMatch && ipMatch[1] && ipMatch[1] !== "127.0.0.1" && ipMatch[1] !== "0.0.0.0") {
25
+ const protocol = /^https/i.test(arg) ? "https:" : "http:";
26
+ return `${protocol}//${ipMatch[1]}:7437`;
27
+ }
28
+ }
29
+ return undefined;
30
+ }
31
+ export function loadEngramConfig(options) {
32
+ let cloudUrl = options?.cloudUrl ?? process.env.ENGRAM_CLOUD_URL;
33
+ let localUrl = options?.baseUrl ?? process.env.ENGRAM_URL ?? process.env.ENGRAM_BASE_URL;
34
+ let token = options?.token ?? process.env.ENGRAM_CLOUD_TOKEN ?? process.env.ENGRAM_TOKEN;
35
+ if (!localUrl) {
36
+ localUrl = extractAttachHost(process.argv);
37
+ }
38
+ if (!cloudUrl || !token) {
39
+ try {
40
+ const configPath = path.join(os.homedir(), ".engram", "cloud.json");
41
+ if (fs.existsSync(configPath)) {
42
+ const raw = fs.readFileSync(configPath, "utf-8");
43
+ const parsed = JSON.parse(raw);
44
+ if (typeof parsed.server_url === "string" && !cloudUrl) {
45
+ cloudUrl = parsed.server_url;
46
+ }
47
+ else if (typeof parsed.url === "string" && !cloudUrl) {
48
+ cloudUrl = parsed.url;
49
+ }
50
+ else if (typeof parsed.baseUrl === "string" && !cloudUrl) {
51
+ cloudUrl = parsed.baseUrl;
52
+ }
53
+ if (typeof parsed.token === "string" && !token) {
54
+ token = parsed.token;
55
+ }
56
+ }
57
+ }
58
+ catch {
59
+ // Ignore file reading errors, fallback to local defaults
60
+ }
61
+ }
62
+ return { cloudUrl, localUrl, token };
63
+ }
64
+ export function createConfiguredAdapter(options) {
65
+ const config = loadEngramConfig(options);
66
+ const localAdapter = new LocalEngramAdapter({ baseUrl: config.localUrl });
67
+ if (config.cloudUrl) {
68
+ const cloudAdapter = new CloudEngramAdapter({
69
+ baseUrl: config.cloudUrl,
70
+ token: config.token,
71
+ });
72
+ return new CompositeEngramAdapter([localAdapter, cloudAdapter]);
73
+ }
74
+ return localAdapter;
75
+ }
76
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/adapters/factory.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import type { EngramAdapter, HealthStatus, Project, Observation, ListObservationsOpts, SearchOpts, Session, ListSessionsOpts, LocalAdapterOptions } from "./types.js";
1
+ import type { EngramAdapter, EngramTargets, HealthStatus, Project, Observation, ListObservationsOpts, SearchOpts, Session, ListSessionsOpts, LocalAdapterOptions } from "./types.js";
2
2
  export declare class LocalEngramAdapter implements EngramAdapter {
3
3
  private readonly baseUrl;
4
4
  private readonly timeoutMs;
5
5
  constructor(opts?: LocalAdapterOptions);
6
+ describeTargets(): EngramTargets;
6
7
  health(): Promise<HealthStatus>;
7
8
  listProjects(): Promise<Project[]>;
8
9
  listObservations(opts?: ListObservationsOpts): Promise<Observation[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAWpB,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,CAAC,EAAE,mBAAmB;IAmBhC,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAU/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQlC,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQrE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAWvD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAS5E,YAAY,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAW9C,GAAG;CAqDlB"}
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAWpB,qBAAa,kBAAmB,YAAW,aAAa;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,IAAI,CAAC,EAAE,mBAAmB;IAmBtC,eAAe,IAAI,aAAa;IAI1B,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAU/B,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQlC,gBAAgB,CAAC,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAQrE,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAWvD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAS5E,YAAY,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAQzD,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAW9C,GAAG;CAqDlB"}