aweshare 0.4.3 → 0.4.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 +19 -6
- package/apps/agent/dist/cli.js +75 -3
- package/apps/agent/dist/cli.js.map +1 -1
- package/apps/agent/dist/config.d.ts +6 -26
- package/apps/agent/dist/config.js +11 -86
- package/apps/agent/dist/config.js.map +1 -1
- package/apps/agent/dist/connection.d.ts +5 -11
- package/apps/agent/dist/connection.js +49 -128
- package/apps/agent/dist/connection.js.map +1 -1
- package/apps/agent/dist/doctor.js +25 -5
- package/apps/agent/dist/doctor.js.map +1 -1
- package/apps/agent/dist/hub.d.ts +21 -0
- package/apps/agent/dist/hub.js +25 -1
- package/apps/agent/dist/hub.js.map +1 -1
- package/apps/agent/dist/index.d.ts +1 -3
- package/apps/agent/dist/index.js +1 -3
- package/apps/agent/dist/index.js.map +1 -1
- package/apps/agent/dist/table.d.ts +31 -0
- package/apps/agent/dist/table.js +80 -0
- package/apps/agent/dist/table.js.map +1 -0
- package/apps/agent/package.json +2 -1
- package/apps/consumer/dist/cli.js +4 -2
- package/apps/consumer/dist/cli.js.map +1 -1
- package/apps/consumer/dist/table.d.ts +6 -1
- package/apps/consumer/dist/table.js +30 -14
- package/apps/consumer/dist/table.js.map +1 -1
- package/apps/consumer/package.json +1 -1
- package/apps/hub/dist/admin.d.ts +9 -0
- package/apps/hub/dist/admin.js +30 -1
- package/apps/hub/dist/admin.js.map +1 -1
- package/apps/hub/dist/cli.js +44 -3
- package/apps/hub/dist/cli.js.map +1 -1
- package/apps/hub/dist/config.d.ts +3 -1
- package/apps/hub/dist/config.js +27 -0
- package/apps/hub/dist/config.js.map +1 -1
- package/apps/hub/dist/consumer.d.ts +33 -0
- package/apps/hub/dist/consumer.js +58 -36
- package/apps/hub/dist/consumer.js.map +1 -1
- package/apps/hub/dist/db.d.ts +16 -2
- package/apps/hub/dist/db.js +71 -14
- package/apps/hub/dist/db.js.map +1 -1
- package/apps/hub/dist/limiter.d.ts +5 -0
- package/apps/hub/dist/limiter.js +15 -0
- package/apps/hub/dist/limiter.js.map +1 -1
- package/apps/hub/dist/local.d.ts +105 -0
- package/apps/hub/dist/local.js +414 -0
- package/apps/hub/dist/local.js.map +1 -0
- package/apps/hub/dist/server.d.ts +3 -0
- package/apps/hub/dist/server.js +15 -3
- package/apps/hub/dist/server.js.map +1 -1
- package/apps/hub/dist/table.d.ts +15 -0
- package/apps/hub/dist/table.js +19 -1
- package/apps/hub/dist/table.js.map +1 -1
- package/apps/hub/dist/tunnel.d.ts +23 -1
- package/apps/hub/dist/tunnel.js +19 -14
- package/apps/hub/dist/tunnel.js.map +1 -1
- package/apps/hub/package.json +2 -1
- package/bin/aweshare.mjs +1 -1
- package/package.json +3 -2
- package/packages/producer-core/dist/adapters.d.ts +23 -0
- package/{apps/agent → packages/producer-core}/dist/adapters.js +1 -1
- package/packages/producer-core/dist/adapters.js.map +1 -0
- package/packages/producer-core/dist/catalog.d.ts +39 -0
- package/packages/producer-core/dist/catalog.js +121 -0
- package/packages/producer-core/dist/catalog.js.map +1 -0
- package/packages/producer-core/dist/index.d.ts +5 -0
- package/packages/producer-core/dist/index.js +6 -0
- package/packages/producer-core/dist/index.js.map +1 -0
- package/packages/producer-core/dist/job.d.ts +44 -0
- package/packages/producer-core/dist/job.js +92 -0
- package/packages/producer-core/dist/job.js.map +1 -0
- package/packages/producer-core/dist/probe.d.ts +6 -0
- package/packages/producer-core/dist/probe.js +30 -0
- package/packages/producer-core/dist/probe.js.map +1 -0
- package/packages/protocol/dist/alias.d.ts +2 -0
- package/packages/protocol/dist/alias.js +4 -0
- package/packages/protocol/dist/alias.js.map +1 -1
- package/apps/agent/dist/adapters.d.ts +0 -15
- package/apps/agent/dist/adapters.js.map +0 -1
- /package/{apps/agent → packages/producer-core}/dist/health.d.ts +0 -0
- /package/{apps/agent → packages/producer-core}/dist/health.js +0 -0
- /package/{apps/agent → packages/producer-core}/dist/health.js.map +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { parseAlias } from '../../../packages/protocol/dist/index.js';
|
|
2
2
|
import { requireConsumer } from './auth.js';
|
|
3
|
-
import { getOffering, insertUsageEvent, listOfferings, sumTokensForAliasToday, sumTokensUsed, touchLastSeen, } from './db.js';
|
|
3
|
+
import { getOffering, insertUsageEvent, LOCAL_PRODUCER_ID, listOfferings, sumTokensForAliasToday, sumTokensUsed, touchLastSeen, } from './db.js';
|
|
4
4
|
import { HttpError, readBody, sendError, sendJson } from './http.js';
|
|
5
5
|
import { resolveLimits, safeParseLimits } from './limits.js';
|
|
6
6
|
import { UsageExtractor } from './meter.js';
|
|
@@ -8,6 +8,36 @@ import { sanitizeTunnelRequestHeaders, sanitizeUpstreamResponseHeaders } from '.
|
|
|
8
8
|
/** Hub defaults when the producer's register message omits the per-offering caps. */
|
|
9
9
|
export const DEFAULT_MAX_CONCURRENT_USERS = 3;
|
|
10
10
|
export const DEFAULT_DAILY_TOKENS = 1_000_000;
|
|
11
|
+
/** Status of any offering row, whichever side serves it: hub-local rows read
|
|
12
|
+
* the in-process producer, tunnel rows the producer session. */
|
|
13
|
+
export function offeringStatusOf(tunnel, local, o) {
|
|
14
|
+
return o.producer_id === LOCAL_PRODUCER_ID ? local.offeringStatus(o) : tunnel.offeringStatus(o);
|
|
15
|
+
}
|
|
16
|
+
export function offeringView(tunnel, local, slots, users) {
|
|
17
|
+
return {
|
|
18
|
+
statusOf: (o) => offeringStatusOf(tunnel, local, o),
|
|
19
|
+
activeUsersOf: (alias) => users.countUsers(alias),
|
|
20
|
+
activeRequestsOf: (alias) => slots.countRequests(alias),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** One offering as the discovery views present it: caps with hub defaults
|
|
24
|
+
* applied, live tunnel status, in-flight occupancy and today's used tokens —
|
|
25
|
+
* the row shape of /v1/catalog and the admin/producer offerings view alike. */
|
|
26
|
+
export function serializeOffering(db, view, o) {
|
|
27
|
+
const daily = o.daily_tokens ?? DEFAULT_DAILY_TOKENS;
|
|
28
|
+
return {
|
|
29
|
+
producer: o.producer,
|
|
30
|
+
alias: o.alias,
|
|
31
|
+
protocol: o.protocol,
|
|
32
|
+
status: view.statusOf(o),
|
|
33
|
+
maxConcurrencyPerUser: o.max_concurrency_per_user,
|
|
34
|
+
maxConcurrentUsers: o.max_concurrent_users ?? DEFAULT_MAX_CONCURRENT_USERS,
|
|
35
|
+
activeUsers: view.activeUsersOf(o.alias),
|
|
36
|
+
activeRequests: view.activeRequestsOf(o.alias),
|
|
37
|
+
dailyTokens: daily,
|
|
38
|
+
usedDailyTokens: daily > 0 ? sumTokensForAliasToday(db, o.alias) : 0,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
11
41
|
export function registerConsumerRoutes(router, deps) {
|
|
12
42
|
router.add('POST', '/v1/chat/completions', (ctx) => handleInference(ctx, deps, 'openai', '/chat/completions'));
|
|
13
43
|
router.add('POST', '/v1/messages', (ctx) => handleInference(ctx, deps, 'anthropic', '/messages'));
|
|
@@ -15,14 +45,8 @@ export function registerConsumerRoutes(router, deps) {
|
|
|
15
45
|
router.add('GET', '/v1/models', (ctx) => handleModels(ctx, deps));
|
|
16
46
|
router.add('GET', '/v1/catalog', (ctx) => handleCatalog(ctx, deps));
|
|
17
47
|
}
|
|
18
|
-
/** The consumer endpoint (and tunnel path) each protocol speaks. */
|
|
19
|
-
const ENDPOINT_FOR_PROTOCOL = {
|
|
20
|
-
openai: '/v1/chat/completions',
|
|
21
|
-
anthropic: '/v1/messages',
|
|
22
|
-
responses: '/v1/responses',
|
|
23
|
-
};
|
|
24
48
|
async function handleInference(ctx, deps, protocol, path) {
|
|
25
|
-
const { db, auth, config, tunnel, limiter, tpm, slots, users } = deps;
|
|
49
|
+
const { db, auth, config, tunnel, local, limiter, tpm, slots, users } = deps;
|
|
26
50
|
const { row: consumer } = requireConsumer(ctx.req, auth);
|
|
27
51
|
touchLastSeen(db, 'consumer', consumer.id);
|
|
28
52
|
const raw = await readBody(ctx.req, config.maxBodyBytes);
|
|
@@ -38,17 +62,24 @@ async function handleInference(ctx, deps, protocol, path) {
|
|
|
38
62
|
if (!alias || typeof model !== 'string') {
|
|
39
63
|
throw new HttpError(400, 'PROTOCOL_MISMATCH', `model must be an alias like namespace/name, got: ${String(model)}`);
|
|
40
64
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
throw new HttpError(400, 'PROTOCOL_MISMATCH', `alias ${model} speaks ${offering.protocol}; use the ${ENDPOINT_FOR_PROTOCOL[offering.protocol]} endpoint`);
|
|
65
|
+
// an alias may speak several protocols — pick the row matching the endpoint
|
|
66
|
+
const offering = getOffering(db, model, protocol);
|
|
67
|
+
if (!offering) {
|
|
68
|
+
throw new HttpError(404, 'ALIAS_NOT_FOUND', `unknown model alias: ${model} (no ${protocol} offering under this alias)`);
|
|
46
69
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
|
|
70
|
+
// hub-owned rows dispatch in-process; everything else needs a live tunnel
|
|
71
|
+
const isLocal = offering.producer_id === LOCAL_PRODUCER_ID;
|
|
72
|
+
let session;
|
|
73
|
+
if (isLocal) {
|
|
74
|
+
local.check(offering); // 503s mirror the tunnel paths below
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
session = tunnel.getSession(offering.producer_id);
|
|
78
|
+
if (!session)
|
|
79
|
+
throw new HttpError(503, 'PRODUCER_OFFLINE', `producer of ${model} is offline`);
|
|
80
|
+
if (session.backendStatus.get(offering.backend_id)?.state === 'degraded') {
|
|
81
|
+
throw new HttpError(503, 'BACKEND_DEGRADED', `backend for ${model} is degraded`);
|
|
82
|
+
}
|
|
52
83
|
}
|
|
53
84
|
const limits = resolveLimits(safeParseLimits(consumer.config), config);
|
|
54
85
|
if (limits.maxTotalTokens !== null && sumTokensUsed(db, consumer.id) >= limits.maxTotalTokens) {
|
|
@@ -78,13 +109,13 @@ async function handleInference(ctx, deps, protocol, path) {
|
|
|
78
109
|
slots.release(model, consumer.id);
|
|
79
110
|
throw new HttpError(429, 'QUOTA_EXCEEDED', `alias ${model} reached its daily shared token budget (${dailyTokens}) — resets at UTC midnight`);
|
|
80
111
|
}
|
|
81
|
-
// route on the public alias, but hand the
|
|
112
|
+
// route on the public alias, but hand the serving side the real upstream model id
|
|
82
113
|
body.model = offering.upstream_model;
|
|
83
114
|
const outBody = Buffer.from(JSON.stringify(body), 'utf8');
|
|
84
115
|
const query = {};
|
|
85
116
|
for (const [key, value] of ctx.query)
|
|
86
117
|
query[key] = value;
|
|
87
|
-
const
|
|
118
|
+
const init = {
|
|
88
119
|
protocol,
|
|
89
120
|
backendId: offering.backend_id,
|
|
90
121
|
method: 'POST',
|
|
@@ -92,7 +123,10 @@ async function handleInference(ctx, deps, protocol, path) {
|
|
|
92
123
|
query: Object.keys(query).length > 0 ? query : null,
|
|
93
124
|
headers: sanitizeTunnelRequestHeaders(ctx.req),
|
|
94
125
|
body: outBody,
|
|
95
|
-
}
|
|
126
|
+
};
|
|
127
|
+
const relay = isLocal
|
|
128
|
+
? local.openRequest(offering, init)
|
|
129
|
+
: tunnel.openRequest(session, init);
|
|
96
130
|
/** Release admission + write the usage row; exactly once per exit path. */
|
|
97
131
|
const finalize = (result, usage) => {
|
|
98
132
|
limiter.release(consumer.id);
|
|
@@ -166,7 +200,7 @@ function handleModels(ctx, deps) {
|
|
|
166
200
|
created: Math.floor(Date.parse(o.updated_at) / 1000) || 0,
|
|
167
201
|
owned_by: o.alias.split('/')[0],
|
|
168
202
|
protocol: o.protocol,
|
|
169
|
-
status: deps.tunnel.
|
|
203
|
+
status: offeringStatusOf(deps.tunnel, deps.local, o),
|
|
170
204
|
}));
|
|
171
205
|
sendJson(ctx.res, 200, { object: 'list', data });
|
|
172
206
|
}
|
|
@@ -177,20 +211,8 @@ function handleModels(ctx, deps) {
|
|
|
177
211
|
function handleCatalog(ctx, deps) {
|
|
178
212
|
const { row: consumer } = requireConsumer(ctx.req, deps.auth);
|
|
179
213
|
touchLastSeen(deps.db, 'consumer', consumer.id);
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
const used = daily > 0 ? sumTokensForAliasToday(deps.db, o.alias) : 0;
|
|
183
|
-
return {
|
|
184
|
-
producer: o.producer,
|
|
185
|
-
alias: o.alias,
|
|
186
|
-
protocol: o.protocol,
|
|
187
|
-
status: deps.tunnel.offeringStatus(o),
|
|
188
|
-
maxConcurrencyPerUser: o.max_concurrency_per_user,
|
|
189
|
-
maxConcurrentUsers: o.max_concurrent_users ?? DEFAULT_MAX_CONCURRENT_USERS,
|
|
190
|
-
dailyTokens: daily,
|
|
191
|
-
usedDailyTokens: used,
|
|
192
|
-
};
|
|
193
|
-
});
|
|
214
|
+
const view = offeringView(deps.tunnel, deps.local, deps.slots, deps.users);
|
|
215
|
+
const offerings = listOfferings(deps.db).map((o) => serializeOffering(deps.db, view, o));
|
|
194
216
|
sendJson(ctx.res, 200, { object: 'catalog', offerings });
|
|
195
217
|
}
|
|
196
218
|
//# sourceMappingURL=consumer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"consumer.js","sourceRoot":"","sources":["../src/consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI7D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAE3C,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,sBAAsB,EACtB,aAAa,EACb,aAAa,GACd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAkC,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEpG,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAA;AAG7F,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAA;AAC7C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAA;AAI7C;gEACgE;AAChE,MAAM,UAAU,gBAAgB,CAC9B,MAAsC,EACtC,KAA4C,EAC5C,CAAc;IAEd,OAAO,CAAC,CAAC,WAAW,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;AACjG,CAAC;AAUD,MAAM,UAAU,YAAY,CAC1B,MAAsC,EACtC,KAA4C,EAC5C,KAAwC,EACxC,KAAqC;IAErC,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACjD,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;KACxD,CAAA;AACH,CAAC;AAED;;+EAE+E;AAC/E,MAAM,UAAU,iBAAiB,CAC/B,EAAqB,EACrB,IAAkB,EAClB,CAAqC;IAErC,MAAM,KAAK,GAAG,CAAC,CAAC,YAAY,IAAI,oBAAoB,CAAA;IACpD,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxB,qBAAqB,EAAE,CAAC,CAAC,wBAAwB;QACjD,kBAAkB,EAAE,CAAC,CAAC,oBAAoB,IAAI,4BAA4B;QAC1E,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QACxC,cAAc,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9C,WAAW,EAAE,KAAK;QAClB,eAAe,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE,CAAA;AACH,CAAC;AAeD,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,IAAkB;IACvE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,EAAE,CACjD,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAC1D,CAAA;IACD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAA;IACjG,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAC1C,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CACtD,CAAA;IACD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;IACjE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAA;AACrE,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAiB,EACjB,IAAkB,EAClB,QAAkB,EAClB,IAAY;IAEZ,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAA;IAC5E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACxD,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;IAE1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;IACxD,IAAI,IAA6B,CAAA;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAA4B,CAAA;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,gCAAgC,CAAC,CAAA;IAC5E,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACxB,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAClE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,mBAAmB,EACnB,oDAAoD,MAAM,CAAC,KAAK,CAAC,EAAE,CACpE,CAAA;IACH,CAAC;IAED,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,iBAAiB,EACjB,wBAAwB,KAAK,QAAQ,QAAQ,6BAA6B,CAC3E,CAAA;IACH,CAAC;IACD,0EAA0E;IAC1E,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,KAAK,iBAAiB,CAAA;IAC1D,IAAI,OAA4B,CAAA;IAChC,IAAI,OAAO,EAAE,CAAC;QACZ,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA,CAAC,qCAAqC;IAC7D,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACjD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,eAAe,KAAK,aAAa,CAAC,CAAA;QAC7F,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,UAAU,EAAE,CAAC;YACzE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,kBAAkB,EAAE,eAAe,KAAK,cAAc,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;IACtE,IAAI,MAAM,CAAC,cAAc,KAAK,IAAI,IAAI,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC9F,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,gBAAgB,EAChB,YAAY,QAAQ,CAAC,IAAI,oCAAoC,MAAM,CAAC,cAAc,GAAG,CACtF,CAAA;IACH,CAAC;IACD,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,QAAQ,CAAC,IAAI,aAAa,MAAM,CAAC,GAAG,MAAM,CAAC,CAAA;IAClG,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,OAAO;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,8BAA8B,CAAC,CAAA;IAC9E,MAAM,OAAO,GAAG,QAAQ,CAAC,wBAAwB,CAAA;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,0BAA0B,EAC1B,YAAY,QAAQ,CAAC,IAAI,sCAAsC,KAAK,KAAK,OAAO,GAAG,CACpF,CAAA;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,IAAI,4BAA4B,CAAA;IAC9E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,oBAAoB,EACpB,SAAS,KAAK,oCAAoC,QAAQ,GAAG,CAC9D,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,IAAI,oBAAoB,CAAA;IACjE,IAAI,WAAW,GAAG,CAAC,IAAI,sBAAsB,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QACxE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,gBAAgB,EAChB,SAAS,KAAK,2CAA2C,WAAW,4BAA4B,CACjG,CAAA;IACH,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAA;IACpC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAA;IACzD,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK;QAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IAExD,MAAM,IAAI,GAAG;QACX,QAAQ;QACR,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,MAAM,EAAE,MAAM;QACd,IAAI;QACJ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACnD,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC;QAC9C,IAAI,EAAE,OAAO;KACd,CAAA;IACD,MAAM,KAAK,GAAU,OAAO;QAC1B,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC;QACnC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAkB,EAAE,IAAI,CAAC,CAAA;IAEhD,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,CAAC,MAAmB,EAAE,KAA4B,EAAE,EAAE;QACrE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,CAAA;QAC9B,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,CAAA;QACtF,CAAC;QACD,gBAAgB,CAAC,EAAE,EAAE;YACnB,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,KAAK,EAAE,KAAK;YACZ,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,QAAQ;YACR,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,UAAU;YAC5B,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,aAAa,EAAE,MAAM,EAAE,YAAY,IAAI,IAAI;YAC3C,iBAAiB,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI;SACpD,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,IAAI,KAAK,GAA0B,IAAI,CAAA;IACvC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAiB,EAAE,EAAE;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,KAAK,CAAC,UAAU,EAAE,CAAA;IAC/C,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAA;IACpC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,OAA0D,EAAE,EAAE;QAC/E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACzB,SAAS,CACP,GAAG,CAAC,GAAG,EACP,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAC5D,KAAK,CAAC,SAAS,CAChB,CAAA;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;QACnB,CAAC;IACH,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa;YAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;IAE9C,IAAI,IAAyD,CAAA;IAC7D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;QACtB,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAA;IAC/B,CAAC;IAAC,OAAO,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,OAA4D,CAAA;QACtE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACzB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QACjF,CAAC;QACD,QAAQ,CAAC,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAA;QAC3C,OAAM;IACR,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7E,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAA;IAClE,KAAK,CAAC,cAAc,EAAE,CAAA;IAEtB,QAAQ,CAAC,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,KAAK,CAAC,CAAA;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,GAAiB,EAAE,IAAkB;IACzD,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,EAAE,EAAE,CAAC,CAAC,KAAK;QACX,MAAM,EAAE,OAAO;QACf,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACzD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KACrD,CAAC,CAAC,CAAA;IACH,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;AAClD,CAAC;AAED;;;4CAG4C;AAC5C,SAAS,aAAa,CAAC,GAAiB,EAAE,IAAkB;IAC1D,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1E,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IACxF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;AAC1D,CAAC"}
|
package/apps/hub/dist/db.d.ts
CHANGED
|
@@ -72,6 +72,19 @@ export type InviteRow = {
|
|
|
72
72
|
code_plain: string | null;
|
|
73
73
|
};
|
|
74
74
|
export type NewUsageEvent = Omit<UsageEventRow, 'id' | 'at'>;
|
|
75
|
+
/** The hub's own built-in producer: catalog rows under this id are served
|
|
76
|
+
* in-process (see local.ts) — never through a tunnel, never a tenant slot. */
|
|
77
|
+
export declare const LOCAL_PRODUCER_ID = 0;
|
|
78
|
+
/** Reserved producer name; hub-local offerings are namespaced under it. */
|
|
79
|
+
export declare const LOCAL_PRODUCER_NAME = "hub";
|
|
80
|
+
/**
|
|
81
|
+
* Idempotently seed the built-in local producer row. The empty token hash can
|
|
82
|
+
* never match a real credential (hashToken always yields 64 hex chars), so the
|
|
83
|
+
* row is unreachable as an identity — it only anchors the 'hub' alias
|
|
84
|
+
* namespace. Returns false when the reserved name is already taken by a real
|
|
85
|
+
* producer (pre-existing deployment); callers decide whether that is fatal.
|
|
86
|
+
*/
|
|
87
|
+
export declare function ensureLocalProducer(db: Database.Database): boolean;
|
|
75
88
|
export declare function openDb(dbFile: string): Database.Database;
|
|
76
89
|
export declare function insertProducer(db: Database.Database, name: string, tokenHash: string, email?: string | null, tokenPlain?: string | null): ProducerRow;
|
|
77
90
|
export declare function insertConsumer(db: Database.Database, name: string, tokenHash: string, tokenPlain?: string | null): ConsumerRow;
|
|
@@ -85,7 +98,8 @@ export declare function listTokens(db: Database.Database): {
|
|
|
85
98
|
producers: Omit<ProducerRow, "token_hash">[];
|
|
86
99
|
consumers: Omit<ConsumerRow, "token_hash" | "config">[];
|
|
87
100
|
};
|
|
88
|
-
/** Active (non-suspended) producers — the scarce resource behind the capacity
|
|
101
|
+
/** Active (non-suspended) producers — the scarce resource behind the capacity
|
|
102
|
+
* cap. The built-in local producer (id 0) is not a tenant and never counts. */
|
|
89
103
|
export declare function countActiveProducers(db: Database.Database): number;
|
|
90
104
|
export declare function touchLastSeen(db: Database.Database, role: 'producer' | 'consumer', id: number): void;
|
|
91
105
|
export declare function insertInvite(db: Database.Database, codeHash: string, name: string | null, expiresAt: string | null, codePlain?: string | null, role?: 'producer' | 'consumer'): InviteRow;
|
|
@@ -147,7 +161,7 @@ export declare function redeemInvite(db: Database.Database, invite: InviteRow, t
|
|
|
147
161
|
email: string | null;
|
|
148
162
|
}, tokenPlain?: string | null, now?: string): ProducerRow | ConsumerRow | 'already-redeemed' | 'name-taken';
|
|
149
163
|
export declare function upsertOfferings(db: Database.Database, producerId: number, offerings: Offering[]): void;
|
|
150
|
-
export declare function getOffering(db: Database.Database, alias: string): OfferingRow | undefined;
|
|
164
|
+
export declare function getOffering(db: Database.Database, alias: string, protocol: Protocol): OfferingRow | undefined;
|
|
151
165
|
/** Every registered offering, aliased with its producer name (for the catalog). */
|
|
152
166
|
export declare function listOfferings(db: Database.Database): (OfferingRow & {
|
|
153
167
|
producer: string;
|
package/apps/hub/dist/db.js
CHANGED
|
@@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS consumers (
|
|
|
23
23
|
token_plain TEXT
|
|
24
24
|
);
|
|
25
25
|
CREATE TABLE IF NOT EXISTS offerings (
|
|
26
|
-
alias TEXT
|
|
26
|
+
alias TEXT NOT NULL,
|
|
27
27
|
producer_id INTEGER NOT NULL REFERENCES producers(id),
|
|
28
28
|
protocol TEXT NOT NULL,
|
|
29
29
|
upstream_model TEXT NOT NULL,
|
|
@@ -31,7 +31,8 @@ CREATE TABLE IF NOT EXISTS offerings (
|
|
|
31
31
|
max_concurrency_per_user INTEGER NOT NULL DEFAULT 1,
|
|
32
32
|
max_concurrent_users INTEGER,
|
|
33
33
|
daily_tokens INTEGER,
|
|
34
|
-
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
|
|
34
|
+
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
35
|
+
PRIMARY KEY (alias, protocol)
|
|
35
36
|
);
|
|
36
37
|
CREATE TABLE IF NOT EXISTS usage_events (
|
|
37
38
|
id INTEGER PRIMARY KEY,
|
|
@@ -68,6 +69,27 @@ CREATE TABLE IF NOT EXISTS invites (
|
|
|
68
69
|
code_plain TEXT
|
|
69
70
|
);
|
|
70
71
|
`;
|
|
72
|
+
/** The hub's own built-in producer: catalog rows under this id are served
|
|
73
|
+
* in-process (see local.ts) — never through a tunnel, never a tenant slot. */
|
|
74
|
+
export const LOCAL_PRODUCER_ID = 0;
|
|
75
|
+
/** Reserved producer name; hub-local offerings are namespaced under it. */
|
|
76
|
+
export const LOCAL_PRODUCER_NAME = 'hub';
|
|
77
|
+
/**
|
|
78
|
+
* Idempotently seed the built-in local producer row. The empty token hash can
|
|
79
|
+
* never match a real credential (hashToken always yields 64 hex chars), so the
|
|
80
|
+
* row is unreachable as an identity — it only anchors the 'hub' alias
|
|
81
|
+
* namespace. Returns false when the reserved name is already taken by a real
|
|
82
|
+
* producer (pre-existing deployment); callers decide whether that is fatal.
|
|
83
|
+
*/
|
|
84
|
+
export function ensureLocalProducer(db) {
|
|
85
|
+
const info = db
|
|
86
|
+
.prepare("INSERT OR IGNORE INTO producers (id, name, token_hash) VALUES (?, ?, '')")
|
|
87
|
+
.run(LOCAL_PRODUCER_ID, LOCAL_PRODUCER_NAME);
|
|
88
|
+
if (info.changes > 0)
|
|
89
|
+
return true;
|
|
90
|
+
const row = db.prepare('SELECT id FROM producers WHERE id = ?').get(LOCAL_PRODUCER_ID);
|
|
91
|
+
return row !== undefined;
|
|
92
|
+
}
|
|
71
93
|
export function openDb(dbFile) {
|
|
72
94
|
mkdirSync(dirname(dbFile), { recursive: true });
|
|
73
95
|
const db = new Database(dbFile);
|
|
@@ -76,7 +98,7 @@ export function openDb(dbFile) {
|
|
|
76
98
|
const version = db.pragma('user_version', { simple: true });
|
|
77
99
|
if (version < 1) {
|
|
78
100
|
db.exec(SCHEMA_LATEST);
|
|
79
|
-
db.pragma('user_version =
|
|
101
|
+
db.pragma('user_version = 11');
|
|
80
102
|
}
|
|
81
103
|
else {
|
|
82
104
|
if (version < 2) {
|
|
@@ -178,8 +200,32 @@ export function openDb(dbFile) {
|
|
|
178
200
|
// producer's next register rewrites the values anyway
|
|
179
201
|
db.exec('ALTER TABLE offerings RENAME COLUMN max_concurrency TO max_concurrency_per_user');
|
|
180
202
|
}
|
|
181
|
-
|
|
203
|
+
if (version < 11) {
|
|
204
|
+
// v10 -> v11: an alias may speak several wire protocols (the same model
|
|
205
|
+
// via openai and anthropic backends) — key offerings by (alias, protocol);
|
|
206
|
+
// consumers pick the row that matches the endpoint they called
|
|
207
|
+
db.exec(`CREATE TABLE offerings_v11 (
|
|
208
|
+
alias TEXT NOT NULL,
|
|
209
|
+
producer_id INTEGER NOT NULL REFERENCES producers(id),
|
|
210
|
+
protocol TEXT NOT NULL,
|
|
211
|
+
upstream_model TEXT NOT NULL,
|
|
212
|
+
backend_id TEXT NOT NULL,
|
|
213
|
+
max_concurrency_per_user INTEGER NOT NULL DEFAULT 1,
|
|
214
|
+
max_concurrent_users INTEGER,
|
|
215
|
+
daily_tokens INTEGER,
|
|
216
|
+
updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
|
217
|
+
PRIMARY KEY (alias, protocol))`);
|
|
218
|
+
db.exec(`INSERT INTO offerings_v11
|
|
219
|
+
SELECT alias, producer_id, protocol, upstream_model, backend_id,
|
|
220
|
+
max_concurrency_per_user, max_concurrent_users, daily_tokens, updated_at
|
|
221
|
+
FROM offerings`);
|
|
222
|
+
db.exec('DROP TABLE offerings');
|
|
223
|
+
db.exec('ALTER TABLE offerings_v11 RENAME TO offerings');
|
|
224
|
+
}
|
|
225
|
+
db.pragma('user_version = 11');
|
|
182
226
|
}
|
|
227
|
+
// data (not schema), so no version bump: present from the first open on
|
|
228
|
+
ensureLocalProducer(db);
|
|
183
229
|
return db;
|
|
184
230
|
}
|
|
185
231
|
// ---- tokens / identities ----
|
|
@@ -214,18 +260,25 @@ export function findConsumerByHash(db, hash) {
|
|
|
214
260
|
return db.prepare('SELECT * FROM consumers WHERE token_hash = ?').get(hash);
|
|
215
261
|
}
|
|
216
262
|
export function listTokens(db) {
|
|
263
|
+
// the built-in local producer is not a tenant: hide it from the roster unless
|
|
264
|
+
// it is actually serving offerings (the catalog still shows its rows either way)
|
|
217
265
|
const producers = db
|
|
218
|
-
.prepare(
|
|
219
|
-
|
|
266
|
+
.prepare(`SELECT id, name, email, created_at, revoked_at, last_seen_at FROM producers
|
|
267
|
+
WHERE id != ? OR EXISTS (SELECT 1 FROM offerings WHERE producer_id = ?)
|
|
268
|
+
ORDER BY id`)
|
|
269
|
+
.all(LOCAL_PRODUCER_ID, LOCAL_PRODUCER_ID);
|
|
220
270
|
const consumers = db
|
|
221
271
|
.prepare('SELECT id, name, created_at, revoked_at, last_seen_at FROM consumers ORDER BY id')
|
|
222
272
|
.all();
|
|
223
273
|
return { producers, consumers };
|
|
224
274
|
}
|
|
225
275
|
// ---- rosters / liveness ----
|
|
226
|
-
/** Active (non-suspended) producers — the scarce resource behind the capacity
|
|
276
|
+
/** Active (non-suspended) producers — the scarce resource behind the capacity
|
|
277
|
+
* cap. The built-in local producer (id 0) is not a tenant and never counts. */
|
|
227
278
|
export function countActiveProducers(db) {
|
|
228
|
-
const row = db
|
|
279
|
+
const row = db
|
|
280
|
+
.prepare('SELECT COUNT(*) AS n FROM producers WHERE revoked_at IS NULL AND id != ?')
|
|
281
|
+
.get(LOCAL_PRODUCER_ID);
|
|
229
282
|
return row.n;
|
|
230
283
|
}
|
|
231
284
|
/**
|
|
@@ -388,16 +441,18 @@ export function upsertOfferings(db, producerId, offerings) {
|
|
|
388
441
|
const upsert = db.prepare(`
|
|
389
442
|
INSERT INTO offerings (alias, producer_id, protocol, upstream_model, backend_id, max_concurrency_per_user, max_concurrent_users, daily_tokens, updated_at)
|
|
390
443
|
VALUES (@alias, @producerId, @protocol, @upstreamModel, @backendId, @maxConcurrencyPerUser, @maxConcurrentUsers, @dailyTokens, strftime('%Y-%m-%dT%H:%M:%fZ','now'))
|
|
391
|
-
ON CONFLICT(alias) DO UPDATE SET
|
|
444
|
+
ON CONFLICT(alias, protocol) DO UPDATE SET
|
|
392
445
|
producer_id = excluded.producer_id,
|
|
393
|
-
protocol = excluded.protocol,
|
|
394
446
|
upstream_model = excluded.upstream_model,
|
|
395
447
|
backend_id = excluded.backend_id,
|
|
396
448
|
max_concurrency_per_user = excluded.max_concurrency_per_user,
|
|
397
449
|
max_concurrent_users = excluded.max_concurrent_users,
|
|
398
450
|
daily_tokens = excluded.daily_tokens,
|
|
399
451
|
updated_at = excluded.updated_at`);
|
|
400
|
-
const prune = db.prepare(
|
|
452
|
+
const prune = db.prepare(`DELETE FROM offerings WHERE producer_id = ? AND NOT EXISTS (
|
|
453
|
+
SELECT 1 FROM json_each(?) j
|
|
454
|
+
WHERE json_extract(j.value, '$.a') = offerings.alias
|
|
455
|
+
AND json_extract(j.value, '$.p') = offerings.protocol)`);
|
|
401
456
|
const tx = db.transaction((items) => {
|
|
402
457
|
for (const o of items) {
|
|
403
458
|
upsert.run({
|
|
@@ -411,12 +466,14 @@ export function upsertOfferings(db, producerId, offerings) {
|
|
|
411
466
|
dailyTokens: o.dailyTokens ?? null,
|
|
412
467
|
});
|
|
413
468
|
}
|
|
414
|
-
prune.run(producerId, JSON.stringify(items.map((o) => o.alias)));
|
|
469
|
+
prune.run(producerId, JSON.stringify(items.map((o) => ({ a: o.alias, p: o.protocol }))));
|
|
415
470
|
});
|
|
416
471
|
tx(offerings);
|
|
417
472
|
}
|
|
418
|
-
export function getOffering(db, alias) {
|
|
419
|
-
return db
|
|
473
|
+
export function getOffering(db, alias, protocol) {
|
|
474
|
+
return db
|
|
475
|
+
.prepare('SELECT * FROM offerings WHERE alias = ? AND protocol = ?')
|
|
476
|
+
.get(alias, protocol);
|
|
420
477
|
}
|
|
421
478
|
/** Every registered offering, aliased with its producer name (for the catalog). */
|
|
422
479
|
export function listOfferings(db) {
|
package/apps/hub/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,8 @@ export declare class AliasSlots {
|
|
|
33
33
|
/** Returns true when the slot was acquired. */
|
|
34
34
|
acquire(alias: string, consumerId: number, maxPerUser: number): boolean;
|
|
35
35
|
release(alias: string, consumerId: number): void;
|
|
36
|
+
/** Total in-flight requests on the alias (read-only view for the catalog). */
|
|
37
|
+
countRequests(alias: string): number;
|
|
36
38
|
}
|
|
37
39
|
/** Counts distinct consumers with in-flight requests per alias; the cap comes
|
|
38
40
|
* from the producer's offering (maxConcurrentUsers). */
|
|
@@ -41,6 +43,9 @@ export declare class AliasUsers {
|
|
|
41
43
|
/** Returns true when the user slot was acquired. */
|
|
42
44
|
acquire(alias: string, consumerId: number, maxUsers: number): boolean;
|
|
43
45
|
release(alias: string, consumerId: number): void;
|
|
46
|
+
/** Distinct consumers with a request in flight on the alias (read-only view
|
|
47
|
+
* for the catalog — the occupancy signal against maxConcurrentUsers). */
|
|
48
|
+
countUsers(alias: string): number;
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
46
51
|
* Fixed-window counter for unauthenticated endpoints (invite redeem). Keyed by
|
package/apps/hub/dist/limiter.js
CHANGED
|
@@ -82,6 +82,16 @@ export class AliasSlots {
|
|
|
82
82
|
if (users.size === 0)
|
|
83
83
|
this.active.delete(alias);
|
|
84
84
|
}
|
|
85
|
+
/** Total in-flight requests on the alias (read-only view for the catalog). */
|
|
86
|
+
countRequests(alias) {
|
|
87
|
+
const users = this.active.get(alias);
|
|
88
|
+
if (!users)
|
|
89
|
+
return 0;
|
|
90
|
+
let sum = 0;
|
|
91
|
+
for (const n of users.values())
|
|
92
|
+
sum += n;
|
|
93
|
+
return sum;
|
|
94
|
+
}
|
|
85
95
|
}
|
|
86
96
|
/** Counts distinct consumers with in-flight requests per alias; the cap comes
|
|
87
97
|
* from the producer's offering (maxConcurrentUsers). */
|
|
@@ -108,6 +118,11 @@ export class AliasUsers {
|
|
|
108
118
|
if (users.size === 0)
|
|
109
119
|
this.active.delete(alias);
|
|
110
120
|
}
|
|
121
|
+
/** Distinct consumers with a request in flight on the alias (read-only view
|
|
122
|
+
* for the catalog — the occupancy signal against maxConcurrentUsers). */
|
|
123
|
+
countUsers(alias) {
|
|
124
|
+
return this.active.get(alias)?.size ?? 0;
|
|
125
|
+
}
|
|
111
126
|
}
|
|
112
127
|
/**
|
|
113
128
|
* Fixed-window counter for unauthenticated endpoints (invite redeem). Keyed by
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limiter.js","sourceRoot":"","sources":["../src/limiter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"limiter.js","sourceRoot":"","sources":["../src/limiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import { HealthGate, type ResolvedBackend } from 'aweshare-producer-core';
|
|
3
|
+
import type Database from 'better-sqlite3';
|
|
4
|
+
import type { Logger } from 'pino';
|
|
5
|
+
import type { HubConfig, HubPaths } from './config.js';
|
|
6
|
+
import { type OfferingRow } from './db.js';
|
|
7
|
+
import type { DispatchInit, Relay, RelayResult } from './tunnel.js';
|
|
8
|
+
/**
|
|
9
|
+
* One in-process dispatched consumer request: shared upstream job + response
|
|
10
|
+
* pump. Same event, timer and buffering semantics as TunnelRequest, so
|
|
11
|
+
* handleInference treats the two relays identically. pauseInput/resumeInput
|
|
12
|
+
* gate the job's read loop — a held sink.chunk promise is backpressure.
|
|
13
|
+
*/
|
|
14
|
+
export declare class LocalRelay extends EventEmitter implements Relay {
|
|
15
|
+
private readonly backend;
|
|
16
|
+
private readonly health;
|
|
17
|
+
private readonly init;
|
|
18
|
+
private readonly config;
|
|
19
|
+
private readonly log;
|
|
20
|
+
readonly requestId: string;
|
|
21
|
+
readonly startedAt: number;
|
|
22
|
+
bytesOut: number;
|
|
23
|
+
private job;
|
|
24
|
+
private result;
|
|
25
|
+
private finished;
|
|
26
|
+
private headArrived;
|
|
27
|
+
private streamingStarted;
|
|
28
|
+
private bufferedChunks;
|
|
29
|
+
private pendingEnd;
|
|
30
|
+
private headTimer;
|
|
31
|
+
private idleTimer;
|
|
32
|
+
private paused;
|
|
33
|
+
private resumeWaiters;
|
|
34
|
+
private headPromise;
|
|
35
|
+
private resolveHead;
|
|
36
|
+
private rejectHead;
|
|
37
|
+
private finishedPromise;
|
|
38
|
+
private settleFinished;
|
|
39
|
+
constructor(backend: ResolvedBackend, health: HealthGate, init: DispatchInit, config: HubConfig, log: Logger);
|
|
40
|
+
dispatch(): Promise<void>;
|
|
41
|
+
waitHead(): Promise<{
|
|
42
|
+
status: number;
|
|
43
|
+
headers: Record<string, string>;
|
|
44
|
+
}>;
|
|
45
|
+
startStreaming(): void;
|
|
46
|
+
waitFinished(): Promise<RelayResult>;
|
|
47
|
+
cancel(): void;
|
|
48
|
+
pauseInput(): void;
|
|
49
|
+
resumeInput(): void;
|
|
50
|
+
private waitWhilePaused;
|
|
51
|
+
private handleHead;
|
|
52
|
+
private handleChunk;
|
|
53
|
+
private handleEnd;
|
|
54
|
+
private handleError;
|
|
55
|
+
private fail;
|
|
56
|
+
private finalize;
|
|
57
|
+
private armIdleTimer;
|
|
58
|
+
private clearTimers;
|
|
59
|
+
}
|
|
60
|
+
export interface LocalProducerDeps {
|
|
61
|
+
db: Database.Database;
|
|
62
|
+
paths: HubPaths;
|
|
63
|
+
config: HubConfig;
|
|
64
|
+
log: Logger;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The hub's built-in producer: backends and offerings live in the hub's own
|
|
68
|
+
* config.toml ([[backends]]/[[offerings]] sections, producer format) with
|
|
69
|
+
* upstream keys in secrets.json. Catalog rows sit under the reserved producer
|
|
70
|
+
* id 0 / name 'hub', so caps, daily tokens, usage metering and the catalog
|
|
71
|
+
* apply unchanged; requests dispatch in-process — no tunnel, no self-dial.
|
|
72
|
+
* Config edits hot-reload (stat-poll, like every other config consumer).
|
|
73
|
+
*/
|
|
74
|
+
export declare class LocalProducer {
|
|
75
|
+
private readonly deps;
|
|
76
|
+
private backends;
|
|
77
|
+
private health;
|
|
78
|
+
private probeTimer;
|
|
79
|
+
private reloadTimer;
|
|
80
|
+
private watchers;
|
|
81
|
+
constructor(deps: LocalProducerDeps);
|
|
82
|
+
/** Load the catalog, register it, install the hot-reload watcher. Throws on
|
|
83
|
+
* a broken catalog (fail fast at startup); a no-op when the config carries
|
|
84
|
+
* no catalog sections. */
|
|
85
|
+
start(): void;
|
|
86
|
+
/** Status for hub-owned catalog rows — the local twin of Tunnel.offeringStatus. */
|
|
87
|
+
offeringStatus(offering: OfferingRow): 'online' | 'degraded' | 'offline';
|
|
88
|
+
/** Admission-time check, the local twin of the tunnel session lookup:
|
|
89
|
+
* throws the same 503s a missing/degraded tunnel would. */
|
|
90
|
+
check(offering: OfferingRow): void;
|
|
91
|
+
openRequest(offering: OfferingRow, init: DispatchInit): LocalRelay;
|
|
92
|
+
/** Re-read config + secrets; valid -> swap in place, broken -> keep serving. */
|
|
93
|
+
reload(source: string): void;
|
|
94
|
+
close(): void;
|
|
95
|
+
/** Read + validate the catalog half of config.toml. Throws naming every
|
|
96
|
+
* problem (same rules as a producer's config). */
|
|
97
|
+
private loadCatalog;
|
|
98
|
+
/** Namespace enforcement + Offering rows for the offerings cache. Bare
|
|
99
|
+
* names get the reserved 'hub/' prefix, like the tunnel does per producer. */
|
|
100
|
+
private toRegistrations;
|
|
101
|
+
private apply;
|
|
102
|
+
private installWatcher;
|
|
103
|
+
/** Minimal live probe for degraded backends; success clears the state. */
|
|
104
|
+
private probeDegraded;
|
|
105
|
+
}
|