opencode-flema-engram-sidebar 0.1.2 → 0.1.5
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 +474 -469
- package/dist/adapters/cloud.d.ts +14 -6
- package/dist/adapters/cloud.d.ts.map +1 -1
- package/dist/adapters/cloud.js +224 -20
- package/dist/adapters/cloud.js.map +1 -1
- package/dist/adapters/composite.d.ts +2 -1
- package/dist/adapters/composite.d.ts.map +1 -1
- package/dist/adapters/composite.js +36 -1
- package/dist/adapters/composite.js.map +1 -1
- package/dist/adapters/factory.d.ts +17 -0
- package/dist/adapters/factory.d.ts.map +1 -0
- package/dist/adapters/factory.js +76 -0
- package/dist/adapters/factory.js.map +1 -0
- package/dist/adapters/local.d.ts +2 -1
- package/dist/adapters/local.d.ts.map +1 -1
- package/dist/adapters/local.js +5 -2
- package/dist/adapters/local.js.map +1 -1
- package/dist/adapters/types.d.ts +7 -0
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/schemas/health.d.ts +14 -0
- package/dist/schemas/health.d.ts.map +1 -1
- package/dist/schemas/health.js +5 -0
- package/dist/schemas/health.js.map +1 -1
- package/dist/schemas/timestamp.js +1 -1
- package/dist/schemas/timestamp.js.map +1 -1
- package/dist/sidebar/hooks/use-engram.d.ts +3 -1
- package/dist/sidebar/hooks/use-engram.d.ts.map +1 -1
- package/dist/sidebar/hooks/use-engram.js +5 -3
- package/dist/sidebar/hooks/use-engram.js.map +1 -1
- package/dist/sidebar/plugin.d.ts +9 -2
- package/dist/sidebar/plugin.d.ts.map +1 -1
- package/dist/sidebar/plugin.js +62 -16
- package/dist/sidebar/plugin.js.map +1 -1
- package/dist/stdio.js +0 -0
- package/dist/utils/project-resolver.d.ts +7 -1
- package/dist/utils/project-resolver.d.ts.map +1 -1
- package/dist/utils/project-resolver.js +38 -6
- package/dist/utils/project-resolver.js.map +1 -1
- package/package.json +74 -74
package/dist/adapters/cloud.d.ts
CHANGED
|
@@ -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(
|
|
13
|
-
getObservation(
|
|
14
|
-
searchObservations(
|
|
15
|
-
listSessions(
|
|
16
|
-
getSession(
|
|
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":"
|
|
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"}
|
package/dist/adapters/cloud.js
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
|
-
import
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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(
|
|
38
|
-
|
|
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(
|
|
41
|
-
|
|
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(
|
|
44
|
-
|
|
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(
|
|
47
|
-
|
|
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(
|
|
50
|
-
|
|
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":"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"}
|
|
@@ -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;
|
|
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
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"composite.js","sourceRoot":"","sources":["../../src/adapters/composite.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/adapters/local.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/adapters/local.js
CHANGED
|
@@ -28,6 +28,9 @@ export class LocalEngramAdapter {
|
|
|
28
28
|
}
|
|
29
29
|
this.timeoutMs = t;
|
|
30
30
|
}
|
|
31
|
+
describeTargets() {
|
|
32
|
+
return { localUrl: this.baseUrl };
|
|
33
|
+
}
|
|
31
34
|
async health() {
|
|
32
35
|
const response = await this.get("/health", localHealthResponseSchema);
|
|
33
36
|
return {
|
|
@@ -39,8 +42,8 @@ export class LocalEngramAdapter {
|
|
|
39
42
|
}
|
|
40
43
|
async listProjects() {
|
|
41
44
|
const [observations, sessions] = await Promise.all([
|
|
42
|
-
this.listObservations({ limit: DERIVATION_LIMIT }),
|
|
43
|
-
this.listSessions({ limit: DERIVATION_LIMIT }),
|
|
45
|
+
this.listObservations({ limit: DERIVATION_LIMIT, all_projects: true }),
|
|
46
|
+
this.listSessions({ limit: DERIVATION_LIMIT, all_projects: true }),
|
|
44
47
|
]);
|
|
45
48
|
return deriveProjects(observations, sessions);
|
|
46
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/adapters/local.ts"],"names":[],"mappings":"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"}
|