@evelinka-ai/core 0.1.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-lib/managed-tool.d.ts +13 -1
- package/dist/agent-lib/managed-tool.d.ts.map +1 -1
- package/dist/agent-lib/managed-tool.js +20 -1
- package/dist/agent-lib/managed-tool.js.map +1 -1
- package/dist/channels/model-catalog.d.ts.map +1 -1
- package/dist/channels/model-catalog.js +4 -1
- package/dist/channels/model-catalog.js.map +1 -1
- package/dist/channels/model-providers.d.ts +33 -0
- package/dist/channels/model-providers.d.ts.map +1 -0
- package/dist/channels/model-providers.js +86 -0
- package/dist/channels/model-providers.js.map +1 -0
- package/dist/channels/providers.d.ts +41 -0
- package/dist/channels/providers.d.ts.map +1 -0
- package/dist/channels/providers.js +168 -0
- package/dist/channels/providers.js.map +1 -0
- package/dist/lib/budgets/api-keys.d.ts +15 -0
- package/dist/lib/budgets/api-keys.d.ts.map +1 -0
- package/dist/lib/budgets/api-keys.js +83 -0
- package/dist/lib/budgets/api-keys.js.map +1 -0
- package/dist/lib/budgets/prepaid-call.d.ts +46 -0
- package/dist/lib/budgets/prepaid-call.d.ts.map +1 -0
- package/dist/lib/budgets/prepaid-call.js +32 -0
- package/dist/lib/budgets/prepaid-call.js.map +1 -0
- package/dist/lib/budgets/prepaid-response-store.d.ts +17 -0
- package/dist/lib/budgets/prepaid-response-store.d.ts.map +1 -0
- package/dist/lib/budgets/prepaid-response-store.js +85 -0
- package/dist/lib/budgets/prepaid-response-store.js.map +1 -0
- package/dist/lib/coordination/checkpoints.d.ts +33 -0
- package/dist/lib/coordination/checkpoints.d.ts.map +1 -0
- package/dist/lib/coordination/checkpoints.js +105 -0
- package/dist/lib/coordination/checkpoints.js.map +1 -0
- package/dist/lib/coordination/head-lease.d.ts +91 -0
- package/dist/lib/coordination/head-lease.d.ts.map +1 -0
- package/dist/lib/coordination/head-lease.js +402 -0
- package/dist/lib/coordination/head-lease.js.map +1 -0
- package/dist/lib/coordination/pg.d.ts +30 -0
- package/dist/lib/coordination/pg.d.ts.map +1 -0
- package/dist/lib/coordination/pg.js +52 -0
- package/dist/lib/coordination/pg.js.map +1 -0
- package/dist/lib/coordination/reconciler.d.ts +156 -0
- package/dist/lib/coordination/reconciler.d.ts.map +1 -0
- package/dist/lib/coordination/reconciler.js +287 -0
- package/dist/lib/coordination/reconciler.js.map +1 -0
- package/dist/lib/coordination/work-queue.d.ts +81 -0
- package/dist/lib/coordination/work-queue.d.ts.map +1 -0
- package/dist/lib/coordination/work-queue.js +305 -0
- package/dist/lib/coordination/work-queue.js.map +1 -0
- package/dist/lib/media/webp.d.ts +8 -0
- package/dist/lib/media/webp.d.ts.map +1 -0
- package/dist/lib/media/webp.js +15 -0
- package/dist/lib/media/webp.js.map +1 -0
- package/dist/lib/models/custom-providers.d.ts +44 -0
- package/dist/lib/models/custom-providers.d.ts.map +1 -0
- package/dist/lib/models/custom-providers.js +183 -0
- package/dist/lib/models/custom-providers.js.map +1 -0
- package/dist/lib/models/model-catalog.d.ts.map +1 -1
- package/dist/lib/models/model-catalog.js +2 -1
- package/dist/lib/models/model-catalog.js.map +1 -1
- package/dist/lib/models/model-config.d.ts +5 -1
- package/dist/lib/models/model-config.d.ts.map +1 -1
- package/dist/lib/models/model-config.js +37 -8
- package/dist/lib/models/model-config.js.map +1 -1
- package/dist/lib/observability/event-bus.d.ts +1 -0
- package/dist/lib/observability/event-bus.d.ts.map +1 -1
- package/dist/lib/observability/event-bus.js.map +1 -1
- package/dist/lib/observability/recorder-hook.d.ts +1 -0
- package/dist/lib/observability/recorder-hook.d.ts.map +1 -1
- package/dist/lib/observability/recorder-hook.js +2 -2
- package/dist/lib/observability/recorder-hook.js.map +1 -1
- package/dist/lib/observability/recorder.d.ts +28 -0
- package/dist/lib/observability/recorder.d.ts.map +1 -1
- package/dist/lib/observability/recorder.js +123 -34
- package/dist/lib/observability/recorder.js.map +1 -1
- package/dist/tenant.d.ts +12 -0
- package/dist/tenant.d.ts.map +1 -1
- package/dist/tenant.js.map +1 -1
- package/package.json +47 -2
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
import { logger } from "../observability/logger.js";
|
|
2
|
+
import { intervalMs, iso, keyPlan, pgBrick } from "./pg.js";
|
|
3
|
+
const log = logger.child({ module: "work-queue" });
|
|
4
|
+
export const DISPATCHED_LEDGER_TTL_MS = 7 * 24 * 3_600_000;
|
|
5
|
+
export const CLAIM_WINDOW_MS = 90_000;
|
|
6
|
+
export function defineWorkQueue(config) {
|
|
7
|
+
const { table } = config;
|
|
8
|
+
const key = keyPlan(config.key);
|
|
9
|
+
const policy = (config.policy ?? {});
|
|
10
|
+
const policyCols = Object.keys(policy);
|
|
11
|
+
const ledgerTtlMs = config.ledgerTtlMs ?? DISPATCHED_LEDGER_TTL_MS;
|
|
12
|
+
const claimWindowMs = config.claimWindowMs ?? CLAIM_WINDOW_MS;
|
|
13
|
+
const kn = key.columns.length;
|
|
14
|
+
const ddl = [
|
|
15
|
+
`CREATE TABLE IF NOT EXISTS ${table} (
|
|
16
|
+
${key.columns[0]} bigint NOT NULL,
|
|
17
|
+
${key.columns
|
|
18
|
+
.slice(1)
|
|
19
|
+
.map((c) => ` ${c} integer NOT NULL,\n`)
|
|
20
|
+
.join("")} target_head text NOT NULL,
|
|
21
|
+
base_head text,
|
|
22
|
+
reason text NOT NULL DEFAULT '${config.reasons.initial}',
|
|
23
|
+
next_at timestamptz NOT NULL DEFAULT now(),
|
|
24
|
+
attempts integer NOT NULL DEFAULT 0,
|
|
25
|
+
last_error text,
|
|
26
|
+
quarantined_until timestamptz,
|
|
27
|
+
quarantine_reason text,
|
|
28
|
+
dispatched_head text,
|
|
29
|
+
event_at timestamptz,
|
|
30
|
+
${policyCols.map((c) => ` ${c} text,\n`).join("")} created_at timestamptz NOT NULL DEFAULT now(),
|
|
31
|
+
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
32
|
+
PRIMARY KEY (${key.list})
|
|
33
|
+
)`,
|
|
34
|
+
`ALTER TABLE ${table} ADD COLUMN IF NOT EXISTS dispatched_head text`,
|
|
35
|
+
`ALTER TABLE ${table} ADD COLUMN IF NOT EXISTS event_at timestamptz`,
|
|
36
|
+
...policyCols.map((c) => `ALTER TABLE ${table} ADD COLUMN IF NOT EXISTS ${c} text`),
|
|
37
|
+
];
|
|
38
|
+
const pg = pgBrick(ddl);
|
|
39
|
+
const PENDING = `(dispatched_head IS NULL OR dispatched_head <> target_head)`;
|
|
40
|
+
const SAME = `${table}.target_head = EXCLUDED.target_head`;
|
|
41
|
+
const STALE = `(${table}.target_head <> EXCLUDED.target_head
|
|
42
|
+
AND EXCLUDED.event_at IS NOT NULL AND ${table}.event_at IS NOT NULL
|
|
43
|
+
AND EXCLUDED.event_at < ${table}.event_at)`;
|
|
44
|
+
const policyList = policyCols.length ? `${policyCols.join(", ")}, ` : "";
|
|
45
|
+
const COLUMNS = `${key.list}, target_head, base_head, reason, next_at, attempts, last_error,
|
|
46
|
+
quarantined_until, quarantine_reason, dispatched_head, event_at, ${policyList}created_at, updated_at`;
|
|
47
|
+
const ALIASED = COLUMNS.split(",")
|
|
48
|
+
.map((c) => `w.${c.trim()}`)
|
|
49
|
+
.join(", ");
|
|
50
|
+
const rowToItem = (r) => ({
|
|
51
|
+
...key.fromRow(r),
|
|
52
|
+
targetHead: r.target_head,
|
|
53
|
+
baseHead: r.base_head ?? null,
|
|
54
|
+
reason: r.reason,
|
|
55
|
+
nextAt: iso(r.next_at) ?? new Date(0).toISOString(),
|
|
56
|
+
attempts: r.attempts,
|
|
57
|
+
lastError: r.last_error ?? null,
|
|
58
|
+
quarantinedUntil: iso(r.quarantined_until),
|
|
59
|
+
quarantineReason: r.quarantine_reason ?? null,
|
|
60
|
+
dispatchedHead: r.dispatched_head ?? null,
|
|
61
|
+
eventAt: iso(r.event_at ?? null),
|
|
62
|
+
...Object.fromEntries(policyCols.map((c) => [c, policy[c]?.includes(r[c]) ? r[c] : null])),
|
|
63
|
+
createdAt: iso(r.created_at) ?? "",
|
|
64
|
+
updatedAt: iso(r.updated_at) ?? "",
|
|
65
|
+
});
|
|
66
|
+
const fail = (what, ctx, value) => {
|
|
67
|
+
return (err) => {
|
|
68
|
+
log.error({ err: String(err), table, ...ctx }, `${table} ${what} failed`);
|
|
69
|
+
return value;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
const p = (i) => `$${kn + i}`;
|
|
73
|
+
const upsert = async (item, deps = {}) => {
|
|
74
|
+
try {
|
|
75
|
+
const pool = await pg.poolFor(deps);
|
|
76
|
+
if (!pool)
|
|
77
|
+
return false;
|
|
78
|
+
const nextAt = item.nextAt ?? (deps.now ? new Date(deps.now()).toISOString() : null);
|
|
79
|
+
const policyValues = policyCols.map((c) => item[c] ?? null);
|
|
80
|
+
const policySet = policyCols
|
|
81
|
+
.map((c) => `,
|
|
82
|
+
${c} = CASE
|
|
83
|
+
WHEN ${STALE} THEN ${table}.${c}
|
|
84
|
+
WHEN ${SAME} THEN COALESCE(${table}.${c}, EXCLUDED.${c})
|
|
85
|
+
ELSE EXCLUDED.${c} END`)
|
|
86
|
+
.join("");
|
|
87
|
+
const r = await pool.query(`INSERT INTO ${table}
|
|
88
|
+
(${key.list}, target_head, base_head, reason, next_at, attempts, last_error,
|
|
89
|
+
dispatched_head, event_at, ${policyList}created_at, updated_at)
|
|
90
|
+
VALUES (${key.params()}, ${p(1)}, ${p(2)}, ${p(3)}, COALESCE(${p(4)}::timestamptz, now()), ${p(5)}, ${p(6)}, NULL,
|
|
91
|
+
${p(8)}::timestamptz, ${policyCols.map((_, i) => `${p(9 + i)}, `).join("")}now(), now())
|
|
92
|
+
ON CONFLICT (${key.list}) DO UPDATE SET
|
|
93
|
+
target_head = CASE WHEN ${STALE} THEN ${table}.target_head ELSE EXCLUDED.target_head END,
|
|
94
|
+
base_head = CASE WHEN ${STALE} THEN ${table}.base_head
|
|
95
|
+
ELSE COALESCE(EXCLUDED.base_head, ${table}.base_head) END,
|
|
96
|
+
reason = CASE WHEN ${STALE} THEN ${table}.reason ELSE EXCLUDED.reason END,
|
|
97
|
+
next_at = CASE
|
|
98
|
+
WHEN ${STALE} THEN ${table}.next_at
|
|
99
|
+
WHEN ${SAME} THEN LEAST(${table}.next_at, EXCLUDED.next_at)
|
|
100
|
+
ELSE EXCLUDED.next_at END,
|
|
101
|
+
attempts = CASE
|
|
102
|
+
WHEN ${STALE} THEN ${table}.attempts
|
|
103
|
+
WHEN ${SAME} THEN ${table}.attempts + ${p(5)}
|
|
104
|
+
ELSE 0 END,
|
|
105
|
+
last_error = CASE WHEN ${STALE} THEN ${table}.last_error
|
|
106
|
+
ELSE COALESCE(EXCLUDED.last_error, ${table}.last_error) END,
|
|
107
|
+
quarantined_until = CASE
|
|
108
|
+
WHEN ${STALE} OR ${SAME} THEN ${table}.quarantined_until ELSE NULL END,
|
|
109
|
+
quarantine_reason = CASE
|
|
110
|
+
WHEN ${STALE} OR ${SAME} THEN ${table}.quarantine_reason ELSE NULL END,
|
|
111
|
+
dispatched_head = CASE
|
|
112
|
+
WHEN ${STALE} THEN ${table}.dispatched_head
|
|
113
|
+
WHEN ${SAME} AND NOT ${p(7)} THEN ${table}.dispatched_head
|
|
114
|
+
ELSE NULL END,
|
|
115
|
+
event_at = CASE WHEN ${STALE} THEN ${table}.event_at
|
|
116
|
+
ELSE COALESCE(EXCLUDED.event_at, ${table}.event_at) END${policySet},
|
|
117
|
+
updated_at = now()
|
|
118
|
+
RETURNING ${key.columns[0]}`, [
|
|
119
|
+
...key.values(item),
|
|
120
|
+
item.targetHead,
|
|
121
|
+
item.baseHead ?? null,
|
|
122
|
+
item.reason,
|
|
123
|
+
nextAt,
|
|
124
|
+
item.countAttempt ? 1 : 0,
|
|
125
|
+
item.lastError ?? null,
|
|
126
|
+
Boolean(item.countAttempt) || !config.reasons.replaySafe.has(item.reason),
|
|
127
|
+
item.eventAt ?? null,
|
|
128
|
+
...policyValues,
|
|
129
|
+
]);
|
|
130
|
+
return (r.rowCount ?? 0) > 0;
|
|
131
|
+
}
|
|
132
|
+
catch (err) {
|
|
133
|
+
return fail("upsert", item, false)(err);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
const read = async (k, deps = {}, opts = {}) => {
|
|
137
|
+
try {
|
|
138
|
+
const pool = await pg.poolFor(deps);
|
|
139
|
+
if (!pool)
|
|
140
|
+
return undefined;
|
|
141
|
+
const r = await pool.query(`SELECT ${COLUMNS} FROM ${table} WHERE ${key.where()}${opts.includeDispatched ? "" : ` AND ${PENDING}`}`, key.values(k));
|
|
142
|
+
return r.rows[0] ? rowToItem(r.rows[0]) : null;
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
return fail("read", k, undefined)(err);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
const list = async (deps = {}, opts = {}) => {
|
|
149
|
+
try {
|
|
150
|
+
const pool = await pg.poolFor(deps);
|
|
151
|
+
if (!pool)
|
|
152
|
+
return null;
|
|
153
|
+
const r = await pool.query(`SELECT ${COLUMNS} FROM ${table}${opts.includeDispatched ? "" : ` WHERE ${PENDING}`} ORDER BY next_at`);
|
|
154
|
+
return r.rows.map(rowToItem);
|
|
155
|
+
}
|
|
156
|
+
catch (err) {
|
|
157
|
+
return fail("list", {}, null)(err);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
const claimDue = async (limit, deps = {}) => {
|
|
161
|
+
try {
|
|
162
|
+
const pool = await pg.poolFor(deps);
|
|
163
|
+
if (!pool)
|
|
164
|
+
return [];
|
|
165
|
+
const r = await pool.query(`WITH due AS (
|
|
166
|
+
SELECT ${key.list} FROM ${table}
|
|
167
|
+
WHERE next_at <= now()
|
|
168
|
+
AND (quarantined_until IS NULL OR quarantined_until <= now())
|
|
169
|
+
AND ${PENDING}
|
|
170
|
+
ORDER BY next_at
|
|
171
|
+
LIMIT $1
|
|
172
|
+
FOR UPDATE SKIP LOCKED
|
|
173
|
+
)
|
|
174
|
+
UPDATE ${table} w
|
|
175
|
+
SET next_at = now() + ($2 || ' milliseconds')::interval, updated_at = now()
|
|
176
|
+
FROM due
|
|
177
|
+
WHERE ${key.columns.map((c) => `w.${c} = due.${c}`).join(" AND ")}
|
|
178
|
+
RETURNING ${ALIASED}`, [Math.max(0, limit), intervalMs(claimWindowMs)]);
|
|
179
|
+
return r.rows.map(rowToItem);
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
return fail("claim", {}, [])(err);
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
const complete = async (k, head, deps = {}) => {
|
|
186
|
+
try {
|
|
187
|
+
const pool = await pg.poolFor(deps);
|
|
188
|
+
if (!pool)
|
|
189
|
+
return false;
|
|
190
|
+
const r = head
|
|
191
|
+
? await pool.query(`UPDATE ${table} SET dispatched_head = target_head, updated_at = now()
|
|
192
|
+
WHERE ${key.where()} AND target_head = ${p(1)} AND ${PENDING}`, [...key.values(k), head])
|
|
193
|
+
: await pool.query(`DELETE FROM ${table} WHERE ${key.where()}`, key.values(k));
|
|
194
|
+
return (r.rowCount ?? 0) > 0;
|
|
195
|
+
}
|
|
196
|
+
catch (err) {
|
|
197
|
+
return fail("complete", k, false)(err);
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
const defer = async (k, opts, deps = {}) => {
|
|
201
|
+
try {
|
|
202
|
+
const pool = await pg.poolFor(deps);
|
|
203
|
+
if (!pool)
|
|
204
|
+
return null;
|
|
205
|
+
const r = await pool.query(`UPDATE ${table}
|
|
206
|
+
SET next_at = now() + (${p(1)} || ' milliseconds')::interval,
|
|
207
|
+
attempts = attempts + ${p(2)}, reason = ${p(3)}, last_error = ${p(4)}, updated_at = now()
|
|
208
|
+
WHERE ${key.where()}
|
|
209
|
+
RETURNING next_at`, [
|
|
210
|
+
...key.values(k),
|
|
211
|
+
intervalMs(opts.backoffMs),
|
|
212
|
+
opts.countAttempt ? 1 : 0,
|
|
213
|
+
opts.reason,
|
|
214
|
+
opts.error ?? null,
|
|
215
|
+
]);
|
|
216
|
+
return r.rows[0] ? iso(r.rows[0].next_at) : null;
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
return fail("defer", k, null)(err);
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
const quarantine = async (k, opts, deps = {}) => {
|
|
223
|
+
try {
|
|
224
|
+
const pool = await pg.poolFor(deps);
|
|
225
|
+
if (!pool)
|
|
226
|
+
return null;
|
|
227
|
+
const r = await pool.query(`UPDATE ${table}
|
|
228
|
+
SET quarantined_until = now() + (${p(1)} || ' milliseconds')::interval,
|
|
229
|
+
quarantine_reason = ${p(2)}, last_error = ${p(2)}, updated_at = now()
|
|
230
|
+
WHERE ${key.where()}
|
|
231
|
+
RETURNING quarantined_until`, [...key.values(k), intervalMs(opts.ttlMs), opts.reason]);
|
|
232
|
+
return r.rows[0] ? iso(r.rows[0].quarantined_until) : null;
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
return fail("quarantine", k, null)(err);
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
const purgeDispatched = async (ttlMs = ledgerTtlMs, deps = {}) => {
|
|
239
|
+
try {
|
|
240
|
+
const pool = await pg.poolFor(deps);
|
|
241
|
+
if (!pool)
|
|
242
|
+
return 0;
|
|
243
|
+
const r = await pool.query(`DELETE FROM ${table}
|
|
244
|
+
WHERE dispatched_head = target_head
|
|
245
|
+
AND updated_at < now() - ($1 || ' milliseconds')::interval`, [intervalMs(ttlMs)]);
|
|
246
|
+
return r.rowCount ?? 0;
|
|
247
|
+
}
|
|
248
|
+
catch (err) {
|
|
249
|
+
return fail("ledger purge", {}, 0)(err);
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
const tombstone = async (k, head, opts, deps = {}) => {
|
|
253
|
+
try {
|
|
254
|
+
const pool = await pg.poolFor(deps);
|
|
255
|
+
if (!pool)
|
|
256
|
+
return false;
|
|
257
|
+
const r = await pool.query(`/* tombstone */ INSERT INTO ${table}
|
|
258
|
+
(${key.list}, target_head, reason, next_at, quarantined_until, quarantine_reason, last_error)
|
|
259
|
+
VALUES (${key.params()}, ${p(1)}, '${config.reasons.tombstone}', now(), now() + (${p(2)} || ' milliseconds')::interval, ${p(3)}, ${p(3)})
|
|
260
|
+
ON CONFLICT (${key.list}) DO UPDATE SET
|
|
261
|
+
quarantined_until = now() + (${p(2)} || ' milliseconds')::interval,
|
|
262
|
+
quarantine_reason = ${p(3)}, last_error = ${p(3)}, updated_at = now(),
|
|
263
|
+
-- A completed ledger row (dispatched_head = target_head) would be swept
|
|
264
|
+
-- by the ledger purge long before its tombstone TTL: a tombstone is
|
|
265
|
+
-- pending-but-unclaimable, never a ledger row.
|
|
266
|
+
dispatched_head = NULL
|
|
267
|
+
RETURNING ${key.columns[0]}`, [...key.values(k), head, intervalMs(opts.ttlMs), opts.reason]);
|
|
268
|
+
return (r.rowCount ?? 0) > 0;
|
|
269
|
+
}
|
|
270
|
+
catch (err) {
|
|
271
|
+
return fail("tombstone", k, false)(err);
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
const clearQuarantine = async (k, deps = {}) => {
|
|
275
|
+
try {
|
|
276
|
+
const pool = await pg.poolFor(deps);
|
|
277
|
+
if (!pool)
|
|
278
|
+
return null;
|
|
279
|
+
const r = await pool.query(`UPDATE ${table}
|
|
280
|
+
SET quarantined_until = NULL, quarantine_reason = NULL, updated_at = now()
|
|
281
|
+
WHERE ${key.where()} AND quarantined_until IS NOT NULL`, key.values(k));
|
|
282
|
+
return (r.rowCount ?? 0) > 0;
|
|
283
|
+
}
|
|
284
|
+
catch (err) {
|
|
285
|
+
return fail("unquarantine", k, null)(err);
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
return {
|
|
289
|
+
table,
|
|
290
|
+
ledgerTtlMs,
|
|
291
|
+
claimWindowMs,
|
|
292
|
+
ensureSchema: pg.ensureSchema,
|
|
293
|
+
upsert,
|
|
294
|
+
read,
|
|
295
|
+
list,
|
|
296
|
+
claimDue,
|
|
297
|
+
complete,
|
|
298
|
+
defer,
|
|
299
|
+
quarantine,
|
|
300
|
+
purgeDispatched,
|
|
301
|
+
tombstone,
|
|
302
|
+
clearQuarantine,
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=work-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-queue.js","sourceRoot":"","sources":["../../../src/lib/coordination/work-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webp.d.ts","sourceRoot":"","sources":["../../../src/lib/media/webp.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,wBAAsB,MAAM,CAC1B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1F,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export const DEFAULT_WEBP_QUALITY = 80;
|
|
2
|
+
export async function toWebp(input, opts = {}) {
|
|
3
|
+
const sharp = (await import("sharp")).default;
|
|
4
|
+
let img = sharp(input, { limitInputPixels: opts.limitInputPixels }).rotate();
|
|
5
|
+
if (opts.width || opts.height) {
|
|
6
|
+
img = img.resize({
|
|
7
|
+
width: opts.width,
|
|
8
|
+
height: opts.height,
|
|
9
|
+
fit: "inside",
|
|
10
|
+
withoutEnlargement: true,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
return img.webp({ quality: opts.quality ?? DEFAULT_WEBP_QUALITY }).toBuffer();
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=webp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webp.js","sourceRoot":"","sources":["../../../src/lib/media/webp.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,OAAyF,EAAE;IAE3F,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;IAC7E,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,QAAQ;YACb,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,oBAAoB,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { LanguageModel } from "ai";
|
|
2
|
+
import type { ModelCatalogMeta } from "./model-catalog.js";
|
|
3
|
+
export declare const CUSTOM_MODEL_PREFIX = "custom:";
|
|
4
|
+
export declare const CUSTOM_PROVIDER_ID_RE: RegExp;
|
|
5
|
+
export interface CustomProvider {
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
models: string[];
|
|
10
|
+
masked: string | null;
|
|
11
|
+
updatedAt: string;
|
|
12
|
+
}
|
|
13
|
+
export interface CustomProviderWrite {
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
baseUrl: string;
|
|
17
|
+
apiKey?: string;
|
|
18
|
+
models: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function customProvidersPath(env?: NodeJS.ProcessEnv): string;
|
|
21
|
+
export declare function readCustomProviders(file?: string): CustomProvider[];
|
|
22
|
+
export declare function normalizeBaseUrl(raw: string): string | null;
|
|
23
|
+
export declare function slugifyProviderId(label: string): string;
|
|
24
|
+
export declare function writeCustomProvider(input: CustomProviderWrite, file?: string): CustomProvider;
|
|
25
|
+
export declare function deleteCustomProvider(id: string, file?: string): boolean;
|
|
26
|
+
export declare function resolveCustomProviderKey(id: string, file?: string): string | null;
|
|
27
|
+
export declare function customModelId(providerId: string, model: string): string;
|
|
28
|
+
export declare function parseCustomModelId(id: string): {
|
|
29
|
+
providerId: string;
|
|
30
|
+
model: string;
|
|
31
|
+
} | null;
|
|
32
|
+
export declare function customCatalogMeta(file?: string): Record<string, ModelCatalogMeta>;
|
|
33
|
+
export interface ProbeResult {
|
|
34
|
+
ok: boolean;
|
|
35
|
+
models: string[];
|
|
36
|
+
error?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare function probeCustomProvider(baseUrl: string, apiKey: string | null, fetchImpl?: typeof fetch): Promise<ProbeResult>;
|
|
39
|
+
type ModelFactory = (baseUrl: string, apiKey: string | undefined, model: string) => LanguageModel;
|
|
40
|
+
export declare function __setCustomModelFactory(f: ModelFactory): void;
|
|
41
|
+
export declare function __resetCustomModelFactory(): void;
|
|
42
|
+
export declare function bindCustomModel(modelId: string, env?: NodeJS.ProcessEnv): LanguageModel | null;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=custom-providers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-providers.d.ts","sourceRoot":"","sources":["../../../src/lib/models/custom-providers.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAMxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAC7C,eAAO,MAAM,qBAAqB,QAA8B,CAAC;AAGjE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IAEjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAcD,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAIhF;AAiCD,wBAAgB,mBAAmB,CAAC,IAAI,SAAwB,GAAG,cAAc,EAAE,CAIlF;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAGD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMvD;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,SAAwB,GAC3B,cAAc,CAoBhB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAwB,GAAG,OAAO,CAOtF;AAGD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,SAAwB,GAAG,MAAM,GAAG,IAAI,CAEhG;AAID,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAM3F;AAKD,wBAAgB,iBAAiB,CAAC,IAAI,SAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAchG;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,WAAW,CAAC,CAoBtB;AAID,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,aAAa,CAAC;AAmBlG,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAG7D;AACD,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD;AAKD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,aAAa,GAAG,IAAI,CActB"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { createOpenAI } from "@ai-sdk/openai";
|
|
2
|
+
import { readFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { writeFileAtomicSync } from "../atomic-file.js";
|
|
5
|
+
import { maskKey } from "../budgets/api-keys.js";
|
|
6
|
+
import { logger } from "../observability/logger.js";
|
|
7
|
+
const CUSTOM_EFFORTS = ["none", "low", "medium", "high"];
|
|
8
|
+
const log = logger.child({ module: "custom-providers" });
|
|
9
|
+
export const CUSTOM_MODEL_PREFIX = "custom:";
|
|
10
|
+
export const CUSTOM_PROVIDER_ID_RE = /^[a-z0-9][a-z0-9-]{1,31}$/;
|
|
11
|
+
export function customProvidersPath(env = process.env) {
|
|
12
|
+
return (env.EVE_CUSTOM_PROVIDERS_PATH ?? join(process.cwd(), ".workflow-data", "custom-providers.json"));
|
|
13
|
+
}
|
|
14
|
+
function readRawStore(file) {
|
|
15
|
+
try {
|
|
16
|
+
const raw = JSON.parse(readFileSync(file, "utf8"));
|
|
17
|
+
const providers = raw && typeof raw === "object" ? raw.providers : undefined;
|
|
18
|
+
return providers && typeof providers === "object" ? providers : {};
|
|
19
|
+
}
|
|
20
|
+
catch (err) {
|
|
21
|
+
const code = err.code;
|
|
22
|
+
if (code !== "ENOENT" && !(err instanceof SyntaxError)) {
|
|
23
|
+
log.error({ err }, "failed to read custom-providers store");
|
|
24
|
+
}
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function writeStore(providers, file) {
|
|
29
|
+
writeFileAtomicSync(file, `${JSON.stringify({ providers }, null, 2)}\n`);
|
|
30
|
+
}
|
|
31
|
+
function present(id, p) {
|
|
32
|
+
return {
|
|
33
|
+
id,
|
|
34
|
+
label: p.label,
|
|
35
|
+
baseUrl: p.baseUrl,
|
|
36
|
+
models: [...p.models],
|
|
37
|
+
masked: p.apiKey ? maskKey(p.apiKey) : null,
|
|
38
|
+
updatedAt: p.updatedAt,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function readCustomProviders(file = customProvidersPath()) {
|
|
42
|
+
return Object.entries(readRawStore(file))
|
|
43
|
+
.map(([id, p]) => present(id, p))
|
|
44
|
+
.sort((a, b) => a.label.localeCompare(b.label));
|
|
45
|
+
}
|
|
46
|
+
export function normalizeBaseUrl(raw) {
|
|
47
|
+
const trimmed = raw.trim().replace(/\/+$/, "");
|
|
48
|
+
let url;
|
|
49
|
+
try {
|
|
50
|
+
url = new URL(trimmed);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
56
|
+
return null;
|
|
57
|
+
return trimmed;
|
|
58
|
+
}
|
|
59
|
+
export function slugifyProviderId(label) {
|
|
60
|
+
return label
|
|
61
|
+
.toLowerCase()
|
|
62
|
+
.replace(/[^a-z0-9]+/g, "-")
|
|
63
|
+
.replace(/^-+|-+$/g, "")
|
|
64
|
+
.slice(0, 32);
|
|
65
|
+
}
|
|
66
|
+
export function writeCustomProvider(input, file = customProvidersPath()) {
|
|
67
|
+
const providers = readRawStore(file);
|
|
68
|
+
const prev = providers[input.id];
|
|
69
|
+
const apiKey = input.apiKey === undefined
|
|
70
|
+
? prev?.apiKey
|
|
71
|
+
: input.apiKey.trim()
|
|
72
|
+
? input.apiKey.trim()
|
|
73
|
+
: undefined;
|
|
74
|
+
const next = {
|
|
75
|
+
label: input.label.trim(),
|
|
76
|
+
baseUrl: input.baseUrl,
|
|
77
|
+
models: [...new Set(input.models.map((m) => m.trim()).filter(Boolean))],
|
|
78
|
+
updatedAt: new Date().toISOString(),
|
|
79
|
+
...(apiKey ? { apiKey } : {}),
|
|
80
|
+
};
|
|
81
|
+
providers[input.id] = next;
|
|
82
|
+
writeStore(providers, file);
|
|
83
|
+
clearBindingCache();
|
|
84
|
+
return present(input.id, next);
|
|
85
|
+
}
|
|
86
|
+
export function deleteCustomProvider(id, file = customProvidersPath()) {
|
|
87
|
+
const providers = readRawStore(file);
|
|
88
|
+
if (!providers[id])
|
|
89
|
+
return false;
|
|
90
|
+
delete providers[id];
|
|
91
|
+
writeStore(providers, file);
|
|
92
|
+
clearBindingCache();
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
export function resolveCustomProviderKey(id, file = customProvidersPath()) {
|
|
96
|
+
return readRawStore(file)[id]?.apiKey ?? null;
|
|
97
|
+
}
|
|
98
|
+
export function customModelId(providerId, model) {
|
|
99
|
+
return `${CUSTOM_MODEL_PREFIX}${providerId}/${model}`;
|
|
100
|
+
}
|
|
101
|
+
export function parseCustomModelId(id) {
|
|
102
|
+
if (!id.startsWith(CUSTOM_MODEL_PREFIX))
|
|
103
|
+
return null;
|
|
104
|
+
const rest = id.slice(CUSTOM_MODEL_PREFIX.length);
|
|
105
|
+
const slash = rest.indexOf("/");
|
|
106
|
+
if (slash <= 0 || slash === rest.length - 1)
|
|
107
|
+
return null;
|
|
108
|
+
return { providerId: rest.slice(0, slash), model: rest.slice(slash + 1) };
|
|
109
|
+
}
|
|
110
|
+
export function customCatalogMeta(file = customProvidersPath()) {
|
|
111
|
+
const out = {};
|
|
112
|
+
for (const [id, p] of Object.entries(readRawStore(file))) {
|
|
113
|
+
for (const model of p.models) {
|
|
114
|
+
out[customModelId(id, model)] = {
|
|
115
|
+
label: `${p.label} · ${model}`,
|
|
116
|
+
provider: "openai",
|
|
117
|
+
gateway: `${CUSTOM_MODEL_PREFIX}${id}`,
|
|
118
|
+
efforts: [...CUSTOM_EFFORTS],
|
|
119
|
+
costKind: "notional",
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return out;
|
|
124
|
+
}
|
|
125
|
+
export async function probeCustomProvider(baseUrl, apiKey, fetchImpl = fetch) {
|
|
126
|
+
const ctrl = new AbortController();
|
|
127
|
+
const timer = setTimeout(() => ctrl.abort(), 5_000);
|
|
128
|
+
try {
|
|
129
|
+
const headers = {};
|
|
130
|
+
if (apiKey)
|
|
131
|
+
headers.authorization = `Bearer ${apiKey}`;
|
|
132
|
+
const res = await fetchImpl(`${baseUrl}/models`, { headers, signal: ctrl.signal });
|
|
133
|
+
if (!res.ok)
|
|
134
|
+
return { ok: false, models: [], error: `endpoint answered ${res.status}` };
|
|
135
|
+
const json = (await res.json());
|
|
136
|
+
const models = (json.data ?? [])
|
|
137
|
+
.map((d) => d.id)
|
|
138
|
+
.filter((id) => typeof id === "string" && id.length > 0)
|
|
139
|
+
.sort();
|
|
140
|
+
return { ok: true, models };
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
144
|
+
return { ok: false, models: [], error: ctrl.signal.aborted ? "timed out after 5s" : message };
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
clearTimeout(timer);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function createCustomModel(baseUrl, apiKey, model) {
|
|
151
|
+
return createOpenAI({ baseURL: baseUrl, apiKey: apiKey ?? "sk-eve-custom" }).chat(model);
|
|
152
|
+
}
|
|
153
|
+
let _createCustomModel = createCustomModel;
|
|
154
|
+
const bindingCache = new Map();
|
|
155
|
+
function clearBindingCache() {
|
|
156
|
+
bindingCache.clear();
|
|
157
|
+
}
|
|
158
|
+
export function __setCustomModelFactory(f) {
|
|
159
|
+
_createCustomModel = f;
|
|
160
|
+
clearBindingCache();
|
|
161
|
+
}
|
|
162
|
+
export function __resetCustomModelFactory() {
|
|
163
|
+
_createCustomModel = createCustomModel;
|
|
164
|
+
clearBindingCache();
|
|
165
|
+
}
|
|
166
|
+
export function bindCustomModel(modelId, env = process.env) {
|
|
167
|
+
const parsed = parseCustomModelId(modelId);
|
|
168
|
+
if (!parsed)
|
|
169
|
+
return null;
|
|
170
|
+
const stored = readRawStore(customProvidersPath(env))[parsed.providerId];
|
|
171
|
+
if (!stored) {
|
|
172
|
+
log.warn({ modelId }, "custom model selected but its provider is not stored — skipping");
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
const key = `${parsed.providerId}:${parsed.model}:${stored.baseUrl}:${stored.apiKey?.slice(-8) ?? "none"}`;
|
|
176
|
+
const hit = bindingCache.get(key);
|
|
177
|
+
if (hit)
|
|
178
|
+
return hit;
|
|
179
|
+
const model = _createCustomModel(stored.baseUrl, stored.apiKey, parsed.model);
|
|
180
|
+
bindingCache.set(key, model);
|
|
181
|
+
return model;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=custom-providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-providers.js","sourceRoot":"","sources":["../../../src/lib/models/custom-providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../src/lib/models/model-catalog.ts"],"names":[],"mappings":"AAUA,OAAO,EAAU,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"model-catalog.d.ts","sourceRoot":"","sources":["../../../src/lib/models/model-catalog.ts"],"names":[],"mappings":"AAUA,OAAO,EAAU,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAMtE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE3C,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAGD,eAAO,MAAM,eAAe,4CAA6C,CAAC;AAS1E,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAGzF;AAkBD,wBAAgB,QAAQ,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAY/F;AAID,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EAAE,EACrB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACrC,iBAAiB,EAAE,CA0CrB;AAID,wBAAsB,mBAAmB,CACvC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBnB;AAED,wBAAsB,gBAAgB,CACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,SAAS,GAAE,OAAO,KAAa,GAC9B,OAAO,CAAC,oBAAoB,CAAC,CAS/B;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CAErF;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,UAAU,GAAG,IAAI,CAE5F;AAID,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,QAAQ,CAEtF;AAOD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAKD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,QAAQ,GAAG,WAAW,CAExB;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAExF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { tenant } from "../../tenant.js";
|
|
2
2
|
import { logger } from "../observability/logger.js";
|
|
3
|
+
import { customCatalogMeta, customProvidersPath } from "./custom-providers.js";
|
|
3
4
|
const log = logger.child({ module: "model-catalog" });
|
|
4
5
|
export const DEFAULT_EFFORTS = ["none", "low", "medium", "high"];
|
|
5
6
|
function pickDefaultEffort(efforts) {
|
|
@@ -19,7 +20,7 @@ function tenantCatalogMeta() {
|
|
|
19
20
|
]));
|
|
20
21
|
}
|
|
21
22
|
export function loadMeta(env = process.env) {
|
|
22
|
-
const base = tenantCatalogMeta();
|
|
23
|
+
const base = { ...tenantCatalogMeta(), ...customCatalogMeta(customProvidersPath(env)) };
|
|
23
24
|
const raw = env.EVE_MODEL_CATALOG;
|
|
24
25
|
if (!raw)
|
|
25
26
|
return base;
|