aweshare 0.4.8 → 0.5.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/README.ai.md +346 -0
- package/README.md +21 -9
- package/apps/agent/dist/cli.js +20 -5
- package/apps/agent/dist/cli.js.map +1 -1
- package/apps/agent/dist/config.d.ts +2 -0
- package/apps/agent/dist/config.js +9 -4
- package/apps/agent/dist/config.js.map +1 -1
- package/apps/agent/dist/connection.js +12 -2
- package/apps/agent/dist/connection.js.map +1 -1
- package/apps/agent/dist/daemon.d.ts +4 -1
- package/apps/agent/dist/daemon.js +5 -2
- package/apps/agent/dist/daemon.js.map +1 -1
- package/apps/agent/dist/doctor.js +14 -2
- package/apps/agent/dist/doctor.js.map +1 -1
- package/apps/agent/dist/hub.d.ts +4 -2
- package/apps/agent/dist/hub.js +5 -3
- package/apps/agent/dist/hub.js.map +1 -1
- package/apps/agent/dist/table.d.ts +6 -1
- package/apps/agent/dist/table.js +3 -1
- package/apps/agent/dist/table.js.map +1 -1
- package/apps/consumer/dist/cli.js +15 -6
- package/apps/consumer/dist/cli.js.map +1 -1
- package/apps/consumer/dist/table.d.ts +4 -0
- package/apps/consumer/dist/table.js +6 -0
- package/apps/consumer/dist/table.js.map +1 -1
- package/apps/hub/dist/admin.js +28 -14
- package/apps/hub/dist/admin.js.map +1 -1
- package/apps/hub/dist/cli.js +35 -15
- package/apps/hub/dist/cli.js.map +1 -1
- package/apps/hub/dist/config.d.ts +6 -4
- package/apps/hub/dist/config.js +24 -23
- package/apps/hub/dist/config.js.map +1 -1
- package/apps/hub/dist/db.js +15 -7
- package/apps/hub/dist/db.js.map +1 -1
- package/apps/hub/dist/local.d.ts +3 -3
- package/apps/hub/dist/local.js +7 -7
- package/apps/hub/dist/local.js.map +1 -1
- package/apps/hub/dist/server.d.ts +3 -0
- package/apps/hub/dist/server.js +18 -4
- package/apps/hub/dist/server.js.map +1 -1
- package/apps/hub/dist/table.d.ts +2 -0
- package/apps/hub/dist/table.js +2 -1
- package/apps/hub/dist/table.js.map +1 -1
- package/bin/self-update.mjs +3 -1
- package/package.json +1 -1
- package/packages/producer-core/dist/catalog.js +15 -2
- package/packages/producer-core/dist/catalog.js.map +1 -1
- package/packages/producer-core/dist/job.d.ts +4 -0
- package/packages/producer-core/dist/job.js +10 -3
- package/packages/producer-core/dist/job.js.map +1 -1
- package/packages/protocol/dist/frames.js +6 -0
- package/packages/protocol/dist/frames.js.map +1 -1
package/apps/hub/dist/admin.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { roleForToken } from '../../../packages/protocol/dist/index.js';
|
|
2
2
|
import { requireAdmin, requireConsumer, requireProducer } from './auth.js';
|
|
3
3
|
import { offeringView, serializeOffering } from './consumer.js';
|
|
4
|
-
import { getConsumerByName, getProducerByName, listOfferings, listTokens, queryUsage, setConsumerConfig, summarizeUsage, } from './db.js';
|
|
5
|
-
import { HttpError, readJson, sendJson } from './http.js';
|
|
4
|
+
import { getConsumerByName, getProducerByName, LOCAL_PRODUCER_ID, listOfferings, listTokens, queryUsage, setConsumerConfig, summarizeUsage, } from './db.js';
|
|
5
|
+
import { extractCredential, HttpError, readJson, sendJson } from './http.js';
|
|
6
6
|
import { parseLimits, safeParseLimits } from './limits.js';
|
|
7
7
|
/** Audit and governance: rosters, usage, per-consumer limits. Admission is
|
|
8
8
|
* invite-only — see invites.ts; every identity therefore carries an invite
|
|
@@ -31,18 +31,30 @@ export function registerAdminRoutes(router, deps) {
|
|
|
31
31
|
};
|
|
32
32
|
router.add('GET', '/admin/v1/tokens', (ctx) => {
|
|
33
33
|
requireAdmin(ctx.req, auth);
|
|
34
|
-
|
|
34
|
+
const { producers, consumers } = listTokens(db);
|
|
35
|
+
// online = a live tunnel session (in-memory truth; the persisted
|
|
36
|
+
// last_seen_at is a throttled trace, not liveness). The built-in local
|
|
37
|
+
// producer serves in-process and has no tunnel — it is online whenever
|
|
38
|
+
// it is listed at all.
|
|
39
|
+
const onlineProducers = producers.map((p) => ({
|
|
40
|
+
...p,
|
|
41
|
+
online: p.id === LOCAL_PRODUCER_ID ? true : deps.tunnel.getSession(p.id) !== undefined,
|
|
42
|
+
}));
|
|
43
|
+
sendJson(ctx.res, 200, { producers: onlineProducers, consumers });
|
|
35
44
|
});
|
|
36
45
|
// The registered-offerings view (what `aweshare producer list` renders).
|
|
37
46
|
// Same slice semantics as /admin/v1/usage: admin sees everything, a
|
|
38
47
|
// producer key only its own registrations (consumer keys fail requireAdmin).
|
|
48
|
+
// A producer may opt into the whole board with ?all=true — the same
|
|
49
|
+
// discovery view every admitted consumer already gets via /v1/catalog.
|
|
39
50
|
router.add('GET', '/admin/v1/offerings', (ctx) => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
51
|
+
// same credential extraction as requireProducer/requireConsumer (Bearer or
|
|
52
|
+
// x-api-key) so the role sniff and the auth check can never disagree
|
|
53
|
+
const token = extractCredential(ctx.req) ?? '';
|
|
43
54
|
if (roleForToken(token) === 'producer') {
|
|
44
55
|
const { row } = requireProducer(ctx.req, auth);
|
|
45
|
-
|
|
56
|
+
const scope = ctx.query.get('all') === 'true' ? undefined : row.id;
|
|
57
|
+
sendJson(ctx.res, 200, offeringsPayload(deps, scope));
|
|
46
58
|
return;
|
|
47
59
|
}
|
|
48
60
|
requireAdmin(ctx.req, auth);
|
|
@@ -53,9 +65,7 @@ export function registerAdminRoutes(router, deps) {
|
|
|
53
65
|
// own requests. Rows carry joined consumer/producer names so callers never
|
|
54
66
|
// need a second roster call (the hub CLI keeps one only for old hubs).
|
|
55
67
|
router.add('GET', '/admin/v1/usage', (ctx) => {
|
|
56
|
-
const token = ctx.req
|
|
57
|
-
? ctx.req.headers.authorization.slice(7).trim()
|
|
58
|
-
: '';
|
|
68
|
+
const token = extractCredential(ctx.req) ?? '';
|
|
59
69
|
const role = roleForToken(token);
|
|
60
70
|
const limitRaw = ctx.query.get('limit');
|
|
61
71
|
const limit = limitRaw === null ? 100 : Number(limitRaw);
|
|
@@ -96,9 +106,7 @@ export function registerAdminRoutes(router, deps) {
|
|
|
96
106
|
// (30m, 12h, 7d, … or `all`); omitting it defaults to 7d so a bare call
|
|
97
107
|
// never reads as a lifetime total silently.
|
|
98
108
|
router.add('GET', '/admin/v1/usage/summary', (ctx) => {
|
|
99
|
-
const token = ctx.req
|
|
100
|
-
? ctx.req.headers.authorization.slice(7).trim()
|
|
101
|
-
: '';
|
|
109
|
+
const token = extractCredential(ctx.req) ?? '';
|
|
102
110
|
const role = roleForToken(token);
|
|
103
111
|
const group = ctx.query.get('group') ?? 'consumer-alias';
|
|
104
112
|
if (group !== 'consumer-alias' && group !== 'consumer' && group !== 'alias') {
|
|
@@ -112,7 +120,13 @@ export function registerAdminRoutes(router, deps) {
|
|
|
112
120
|
throw new HttpError(400, 'INVALID_SINCE', 'since must look like 30m, 12h, 7d or all');
|
|
113
121
|
}
|
|
114
122
|
const unit = { s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 }[m[2]];
|
|
115
|
-
|
|
123
|
+
// a huge magnitude overflows Date's ±8.64e15 ms range; toISOString()
|
|
124
|
+
// would throw RangeError and surface as a 500 — reject as input instead
|
|
125
|
+
const date = new Date(Date.now() - Number(m[1]) * unit);
|
|
126
|
+
if (Number.isNaN(date.getTime())) {
|
|
127
|
+
throw new HttpError(400, 'INVALID_SINCE', 'since magnitude is out of range');
|
|
128
|
+
}
|
|
129
|
+
since = date.toISOString();
|
|
116
130
|
}
|
|
117
131
|
if (role === 'admin') {
|
|
118
132
|
requireAdmin(ctx.req, auth);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAe,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAIhD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAC/D,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,GACf,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAe,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzF,OAAO,EAAuB,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAgB/E;;qCAEqC;AACrC,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAe;IACjE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IAEzB;4DACwD;IACxD,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAsB,EAAE;QACzE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAA;QACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAA;QACvF,OAAO,QAAQ,CAAC,EAAE,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,mBAAmB,GAAG,CAAC,KAAsB,EAAsB,EAAE;QACzE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAClC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAA;QACnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,qBAAqB,IAAI,EAAE,CAAC,CAAA;QACvF,OAAO,QAAQ,CAAC,EAAE,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5C,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC,CAAA;QAC/C,iEAAiE;QACjE,uEAAuE;QACvE,uEAAuE;QACvE,uBAAuB;QACvB,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5C,GAAG,CAAC;YACJ,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS;SACvF,CAAC,CAAC,CAAA;QACH,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;IAEF,yEAAyE;IACzE,oEAAoE;IACpE,6EAA6E;IAC7E,oEAAoE;IACpE,uEAAuE;IACvE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC/C,2EAA2E;QAC3E,qEAAqE;QACrE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA;YAClE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;YACrD,OAAM;QACR,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,yEAAyE;IACzE,4EAA4E;IAC5E,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACvC,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAC1D,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,6CAA6C,CAAC,CAAA;QAC1F,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC3B,QAAQ,CACN,GAAG,CAAC,GAAG,EACP,GAAG,EACH,UAAU,CAAC,EAAE,EAAE;gBACb,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;gBAC1C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC9C,QAAQ,CACN,GAAG,CAAC,GAAG,EACP,GAAG,EACH,UAAU,CAAC,EAAE,EAAE;gBACb,UAAU,EAAE,GAAG,CAAC,EAAE;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;gBAC1C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,sEAAsE;QACtE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3D,QAAQ,CACN,GAAG,CAAC,GAAG,EACP,GAAG,EACH,UAAU,CAAC,EAAE,EAAE;YACb,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;YAC1C,KAAK;SACN,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAC3E,+DAA+D;IAC/D,yEAAyE;IACzE,wEAAwE;IACxE,4CAA4C;IAC5C,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,yBAAyB,EAAE,CAAC,GAAG,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAA;QACxD,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YAC5E,MAAM,IAAI,SAAS,CACjB,GAAG,EACH,eAAe,EACf,uDAAuD,CACxD,CAAA;QACH,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;QAC/C,IAAI,KAAyB,CAAA;QAC7B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC1C,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,0CAA0C,CAAC,CAAA;YACvF,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAC9D,CAAC,CAAC,CAAC,CAA0B,CAC9B,CAAA;YACD,qEAAqE;YACrE,wEAAwE;YACxE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;YACvD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,iCAAiC,CAAC,CAAA;YAC9E,CAAC;YACD,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;QAC5B,CAAC;QACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC3B,QAAQ,CACN,GAAG,CAAC,GAAG,EACP,GAAG,EACH,cAAc,CAAC,EAAE,EAAE;gBACjB,KAAK;gBACL,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;gBAC1C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC9C,QAAQ,CACN,GAAG,CAAC,GAAG,EACP,GAAG,EACH,cAAc,CAAC,EAAE,EAAE;gBACjB,KAAK;gBACL,UAAU,EAAE,GAAG,CAAC,EAAE;gBAClB,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;gBAC1C,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C,KAAK;aACN,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3D,QAAQ,CACN,GAAG,CAAC,GAAG,EACP,GAAG,EACH,cAAc,CAAC,EAAE,EAAE;YACjB,KAAK;YACL,UAAU,EAAE,WAAW,CAAC,EAAE;YAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,SAAS;YAC1C,KAAK;SACN,CAAC,CACH,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,+EAA+E;IAC/E,wEAAwE;IACxE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,kCAAkC,EAAE,CAAC,GAAG,EAAE,EAAE;QAC5D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAc,CAAC,CAAA;QACjE,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,qBAAqB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACrF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE;YACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,SAAS,EAAE,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAc,CAAC,CAAA;QACjE,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,qBAAqB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACrF,IAAI,QAAwB,CAAA;QAC5B,IAAI,CAAC;YACH,QAAQ,GAAG,WAAW,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAA;QACrE,CAAC;QACD,MAAM,MAAM,GAAG,EAAE,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAA;QACnE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAA;QACrF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,kCAAkC,EAAE,CAAC,GAAG,EAAE,EAAE;QAC/D,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,IAAc,CAAC,CAAA;QACjE,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iBAAiB,EAAE,qBAAqB,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QACrF,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,yBAAyB,CAAC,CAAA;QACrE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;0EAC0E;AAC1E,SAAS,gBAAgB,CAAC,IAAe,EAAE,UAAmB;IAC5D,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;SACrC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU,CAAC;SACvE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,GAAG,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,aAAa,EAAE,CAAC,CAAC,cAAc;QAC/B,SAAS,EAAE,CAAC,CAAC,UAAU;KACxB,CAAC,CAAC,CAAA;IACL,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAA;AAC3C,CAAC"}
|
package/apps/hub/dist/cli.js
CHANGED
|
@@ -48,14 +48,14 @@ Options:
|
|
|
48
48
|
|
|
49
49
|
Run the hub with its own models attached. Identical to 'serve'; the
|
|
50
50
|
difference is intent: define [[backends]] and [[offerings]] in the data
|
|
51
|
-
dir's config.toml (namespace hub/...), put upstream keys in secrets.json
|
|
51
|
+
dir's config.produce.toml (namespace hub/...), put upstream keys in secrets.json
|
|
52
52
|
next to it, and consumers reach those models as hub/<name> — served by
|
|
53
53
|
this process directly, no producer tunnel. Same flags as serve; catalog
|
|
54
54
|
edits hot-reload like every other config key.
|
|
55
55
|
|
|
56
56
|
` +
|
|
57
57
|
'`init`' +
|
|
58
|
-
` creates the editable config.toml template and an empty,
|
|
58
|
+
` creates the editable config.produce.toml template and an empty,
|
|
59
59
|
owner-only secrets.json without replacing either existing file. It also
|
|
60
60
|
initializes the Hub data directory, database, pepper and admin token.
|
|
61
61
|
|
|
@@ -81,7 +81,7 @@ Options:
|
|
|
81
81
|
|
|
82
82
|
Commands:
|
|
83
83
|
invites Invite lifecycle: pending/used/suspended/revoked/expired.
|
|
84
|
-
producers Who shares capacity: name, email, suspension, last seen.
|
|
84
|
+
producers Who shares capacity: name, email, suspension, online, last seen.
|
|
85
85
|
consumers Who consumes it: name, suspension, last seen.
|
|
86
86
|
|
|
87
87
|
Options:
|
|
@@ -172,6 +172,18 @@ function fail(message) {
|
|
|
172
172
|
console.error(`error: ${message}`);
|
|
173
173
|
process.exit(1);
|
|
174
174
|
}
|
|
175
|
+
/** Listen, turning bind errors (EADDRINUSE, unbindable host) into the CLI's
|
|
176
|
+
* one-line error shape instead of an uncaught 'error' event stack trace. */
|
|
177
|
+
function listenOrFail(hub, host, port) {
|
|
178
|
+
hub.server.on('error', (err) => {
|
|
179
|
+
if (err.code === 'EADDRINUSE')
|
|
180
|
+
fail(`port ${port} is already in use — pass --port to pick another`);
|
|
181
|
+
fail(`cannot listen on ${host}:${port} — ${err.message}`);
|
|
182
|
+
});
|
|
183
|
+
hub.server.listen(port, host, () => {
|
|
184
|
+
hub.log.info({ host, port }, 'aweshare hub listening');
|
|
185
|
+
});
|
|
186
|
+
}
|
|
175
187
|
/** Node fetch reports "fetch failed" without the reason; surface the cause. */
|
|
176
188
|
function errorMessage(err) {
|
|
177
189
|
if (err instanceof Error) {
|
|
@@ -181,10 +193,10 @@ function errorMessage(err) {
|
|
|
181
193
|
return String(err);
|
|
182
194
|
}
|
|
183
195
|
/** Parse a human duration like 90s, 30m, 12h, 7d into milliseconds. */
|
|
184
|
-
function parseDuration(raw) {
|
|
196
|
+
function parseDuration(raw, flag = '--expires-in') {
|
|
185
197
|
const m = /^(\d+)([smhd])$/.exec(raw);
|
|
186
198
|
if (!m)
|
|
187
|
-
fail(
|
|
199
|
+
fail(`${flag} must look like 90s, 30m, 12h or 7d, got '${raw}'`);
|
|
188
200
|
const unit = { s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000 }[m[2]];
|
|
189
201
|
return Number(m[1]) * unit;
|
|
190
202
|
}
|
|
@@ -194,7 +206,10 @@ function adminApi() {
|
|
|
194
206
|
const token = readAdminToken(paths);
|
|
195
207
|
if (!token)
|
|
196
208
|
fail(`no admin token at ${paths.adminTokenFile} — run 'aweshare hub init' first`);
|
|
197
|
-
|
|
209
|
+
// mirror serve's port resolution (AWESHARE_HUB_PORT env + config.toml) so an
|
|
210
|
+
// admin command after `serve --port 9000` hits the same hub, not whatever
|
|
211
|
+
// happens to listen on the default
|
|
212
|
+
const base = process.env.AWESHARE_HUB_URL ?? `http://127.0.0.1:${loadHubConfig(process.env, paths).port}`;
|
|
198
213
|
return async function call(method, path, body) {
|
|
199
214
|
const res = await fetch(`${base}${path}`, {
|
|
200
215
|
method,
|
|
@@ -259,6 +274,7 @@ async function main() {
|
|
|
259
274
|
case 'init': {
|
|
260
275
|
ensureDataDir(paths);
|
|
261
276
|
loadOrCreatePepper(paths);
|
|
277
|
+
const tokenExisted = existsSync(paths.adminTokenFile);
|
|
262
278
|
const adminToken = loadOrCreateAdminToken(paths);
|
|
263
279
|
if (!existsSync(paths.configFile)) {
|
|
264
280
|
writeFileSync(paths.configFile, HUB_CONFIG_TEMPLATE, { mode: 0o600 });
|
|
@@ -268,7 +284,9 @@ async function main() {
|
|
|
268
284
|
await hub.close();
|
|
269
285
|
console.log(`data dir: ${paths.dataDir}`);
|
|
270
286
|
console.log(`admin token: ${adminToken}`);
|
|
271
|
-
console.log(
|
|
287
|
+
console.log(tokenExisted
|
|
288
|
+
? `(existing token re-printed — it also lives at ${paths.adminTokenFile})`
|
|
289
|
+
: '(store it now — this is the only time it is printed)');
|
|
272
290
|
return;
|
|
273
291
|
}
|
|
274
292
|
case 'serve': {
|
|
@@ -282,9 +300,7 @@ async function main() {
|
|
|
282
300
|
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
283
301
|
fail(`--port must be an integer between 1 and 65535, got '${flags.get('port')}'`);
|
|
284
302
|
}
|
|
285
|
-
hub
|
|
286
|
-
hub.log.info({ host, port }, 'aweshare hub listening');
|
|
287
|
-
});
|
|
303
|
+
listenOrFail(hub, host, port);
|
|
288
304
|
return;
|
|
289
305
|
}
|
|
290
306
|
case 'produce': {
|
|
@@ -298,11 +314,11 @@ async function main() {
|
|
|
298
314
|
const adminToken = loadOrCreateAdminToken(paths);
|
|
299
315
|
const hub = createHubServer({ paths }); // creates the db schema
|
|
300
316
|
await hub.close();
|
|
301
|
-
console.log(`config file: ${paths.
|
|
317
|
+
console.log(`produce config file: ${paths.produceConfigFile} (${files.produceConfigCreated ? 'created' : 'already exists; kept'})`);
|
|
302
318
|
console.log(`secrets file: ${paths.secretsFile} (${files.secretsCreated ? 'created' : 'already exists; kept'})`);
|
|
303
319
|
console.log(`data dir: ${paths.dataDir}`);
|
|
304
320
|
console.log(`admin token: ${adminToken}`);
|
|
305
|
-
console.log('next: add [[backends]] / [[offerings]], fill secrets.json, then run: aweshare hub produce');
|
|
321
|
+
console.log('next: add [[backends]] / [[offerings]] to config.produce.toml, fill secrets.json, then run: aweshare hub produce');
|
|
306
322
|
return;
|
|
307
323
|
}
|
|
308
324
|
// same runner as serve — 'produce' names the intent; the local catalog
|
|
@@ -315,9 +331,7 @@ async function main() {
|
|
|
315
331
|
if (!Number.isInteger(port) || port < 1 || port > 65535) {
|
|
316
332
|
fail(`--port must be an integer between 1 and 65535, got '${flags.get('port')}'`);
|
|
317
333
|
}
|
|
318
|
-
hub
|
|
319
|
-
hub.log.info({ host, port }, 'aweshare hub listening');
|
|
320
|
-
});
|
|
334
|
+
listenOrFail(hub, host, port);
|
|
321
335
|
return;
|
|
322
336
|
}
|
|
323
337
|
case 'invite': {
|
|
@@ -486,6 +500,12 @@ async function main() {
|
|
|
486
500
|
fail(`--limit must be an integer between 1 and 1000, got '${limit}'`);
|
|
487
501
|
params.set('limit', String(n));
|
|
488
502
|
}
|
|
503
|
+
// the details endpoint has no window/grouping — reject instead of
|
|
504
|
+
// silently showing unfiltered rows (mirror of --limit on the summary)
|
|
505
|
+
if (flags.get('since') !== undefined)
|
|
506
|
+
fail('--since applies to the summary, not --details');
|
|
507
|
+
if (flags.get('group-by') !== undefined)
|
|
508
|
+
fail('--group-by applies to the summary, not --details');
|
|
489
509
|
const qs = params.toString();
|
|
490
510
|
const rows = (await api('GET', `/admin/v1/usage${qs ? `?${qs}` : ''}`));
|
|
491
511
|
if (flags.get('json') === 'true') {
|
package/apps/hub/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,16 +5,17 @@ export interface HubPaths {
|
|
|
5
5
|
pepperFile: string;
|
|
6
6
|
adminTokenFile: string;
|
|
7
7
|
configFile: string;
|
|
8
|
+
/** Hub-local model catalog used by `aweshare hub produce`. */
|
|
9
|
+
produceConfigFile: string;
|
|
8
10
|
/** Upstream API keys for the hub's own backends (hub produce). */
|
|
9
11
|
secretsFile: string;
|
|
10
12
|
}
|
|
11
13
|
export declare function resolvePaths(env?: NodeJS.ProcessEnv): HubPaths;
|
|
12
14
|
export declare function ensureDataDir(paths: HubPaths): void;
|
|
13
15
|
/** Create the editable files needed by `hub produce` without ever replacing
|
|
14
|
-
* operator-owned configuration or upstream credentials.
|
|
15
|
-
* every catalog entry commented out, so it is valid to start before editing. */
|
|
16
|
+
* operator-owned configuration or upstream credentials. */
|
|
16
17
|
export declare function initHubProduceFiles(paths: HubPaths): {
|
|
17
|
-
|
|
18
|
+
produceConfigCreated: boolean;
|
|
18
19
|
secretsCreated: boolean;
|
|
19
20
|
};
|
|
20
21
|
/** Read the admin token created by `hub init`; null if not initialized. */
|
|
@@ -44,4 +45,5 @@ export declare function loadHubConfig(env?: NodeJS.ProcessEnv, paths?: HubPaths)
|
|
|
44
45
|
* Returns the names of keys whose value actually changed. Never throws. */
|
|
45
46
|
export declare function applyHubConfig(live: HubConfig, fresh: HubConfig): string[];
|
|
46
47
|
/** Written by `hub init`; every key commented out so an untouched file keeps the defaults. */
|
|
47
|
-
export declare const HUB_CONFIG_TEMPLATE = "# aweshare hub configuration (~/.aweshare-hub/config.toml)\n# Generated by 'aweshare hub init'. Every key is commented out: uncomment one\n# to override its default. Precedence: CLI flags (--host/--port) > environment\n# variables (AWESHARE_*) > this file > defaults.\n\n# Listen address.\n#host = \"0.0.0.0\"\n#port = 8787\n\n# Per-consumer token bucket: refill per second, burst size, max in-flight.\n#consumerRps = 10\n#consumerBurst = 20\n#consumerMaxConcurrent = 8\n\n# Timeouts in ms: no response head within headTimeoutMs -> 504; no bytes\n# within idleTimeoutMs after the head -> 504 (streaming keeps it alive).\n#headTimeoutMs = 120000\n#idleTimeoutMs = 300000\n\n# Request body cap (32MB) and the unauthenticated invite-redeem rate limit.\n#maxBodyBytes = 33554432\n#inviteRedeemPerMinute = 10\n\n# Cap on active (non-suspended) producers \u2014 the hub's tenant slots.\n#maxProducers = 10\n\n
|
|
48
|
+
export declare const HUB_CONFIG_TEMPLATE = "# aweshare hub configuration (~/.aweshare-hub/config.toml)\n# Generated by 'aweshare hub init'. Every key is commented out: uncomment one\n# to override its default. Precedence: CLI flags (--host/--port) > environment\n# variables (AWESHARE_*) > this file > defaults.\n\n# Listen address.\n#host = \"0.0.0.0\"\n#port = 8787\n\n# Per-consumer token bucket: refill per second, burst size, max in-flight.\n#consumerRps = 10\n#consumerBurst = 20\n#consumerMaxConcurrent = 8\n\n# Timeouts in ms: no response head within headTimeoutMs -> 504; no bytes\n# within idleTimeoutMs after the head -> 504 (streaming keeps it alive).\n#headTimeoutMs = 120000\n#idleTimeoutMs = 300000\n\n# Request body cap (32MB) and the unauthenticated invite-redeem rate limit.\n#maxBodyBytes = 33554432\n#inviteRedeemPerMinute = 10\n\n# Cap on active (non-suspended) producers \u2014 the hub's tenant slots.\n#maxProducers = 10\n\n";
|
|
49
|
+
export declare const HUB_PRODUCE_CONFIG_TEMPLATE = "# aweshare hub-local model catalog (~/.aweshare-hub/config.produce.toml)\n# Generated by 'aweshare hub produce init'. Upstream key values live in\n# secrets.json next to this file.\n\n#[[backends]]\n#id = \"openai\"\n#protocol = \"openai\" # openai | anthropic | responses\n#baseUrl = \"https://api.openai.com/v1\"\n#keyRef = \"openai-key\"\n\n#[[offerings]]\n#alias = \"hub/gpt-4o\" # bare names are auto-prefixed with hub/\n#backend = \"openai\"\n#upstreamModel = \"gpt-4o-2024-11-20\"\n#maxConcurrencyPerUser = 4\n#maxConcurrentUsers = 3\n#dailyTokens = 1000000\n";
|
package/apps/hub/dist/config.js
CHANGED
|
@@ -10,6 +10,7 @@ export function resolvePaths(env = process.env) {
|
|
|
10
10
|
pepperFile: join(dataDir, 'pepper'),
|
|
11
11
|
adminTokenFile: join(dataDir, 'admin-token'),
|
|
12
12
|
configFile: join(dataDir, 'config.toml'),
|
|
13
|
+
produceConfigFile: join(dataDir, 'config.produce.toml'),
|
|
13
14
|
secretsFile: join(dataDir, 'secrets.json'),
|
|
14
15
|
};
|
|
15
16
|
}
|
|
@@ -19,21 +20,20 @@ export function ensureDataDir(paths) {
|
|
|
19
20
|
}
|
|
20
21
|
}
|
|
21
22
|
/** Create the editable files needed by `hub produce` without ever replacing
|
|
22
|
-
* operator-owned configuration or upstream credentials.
|
|
23
|
-
* every catalog entry commented out, so it is valid to start before editing. */
|
|
23
|
+
* operator-owned configuration or upstream credentials. */
|
|
24
24
|
export function initHubProduceFiles(paths) {
|
|
25
25
|
ensureDataDir(paths);
|
|
26
|
-
let
|
|
26
|
+
let produceConfigCreated = false;
|
|
27
27
|
let secretsCreated = false;
|
|
28
|
-
if (!existsSync(paths.
|
|
29
|
-
writeFileSync(paths.
|
|
30
|
-
|
|
28
|
+
if (!existsSync(paths.produceConfigFile)) {
|
|
29
|
+
writeFileSync(paths.produceConfigFile, HUB_PRODUCE_CONFIG_TEMPLATE, { mode: 0o600 });
|
|
30
|
+
produceConfigCreated = true;
|
|
31
31
|
}
|
|
32
32
|
if (!existsSync(paths.secretsFile)) {
|
|
33
33
|
writeFileSync(paths.secretsFile, '{}\n', { mode: 0o600 });
|
|
34
34
|
secretsCreated = true;
|
|
35
35
|
}
|
|
36
|
-
return {
|
|
36
|
+
return { produceConfigCreated, secretsCreated };
|
|
37
37
|
}
|
|
38
38
|
/** Read the admin token created by `hub init`; null if not initialized. */
|
|
39
39
|
export function readAdminToken(paths) {
|
|
@@ -55,9 +55,15 @@ function positiveNumber(env, key, fallback) {
|
|
|
55
55
|
}
|
|
56
56
|
return value;
|
|
57
57
|
}
|
|
58
|
+
/** Host env var: same convention as positiveNumber — an empty value means
|
|
59
|
+
* unset (a '' host would otherwise reach server.listen verbatim). */
|
|
60
|
+
function hostFromEnv(env, fallback) {
|
|
61
|
+
const raw = env.AWESHARE_HUB_HOST;
|
|
62
|
+
return raw === undefined || raw === '' ? fallback : raw;
|
|
63
|
+
}
|
|
58
64
|
export function hubConfigFromEnv(env = process.env) {
|
|
59
65
|
return {
|
|
60
|
-
host: env
|
|
66
|
+
host: hostFromEnv(env, '0.0.0.0'),
|
|
61
67
|
port: positiveNumber(env, 'AWESHARE_HUB_PORT', 8787),
|
|
62
68
|
/** Per-consumer token bucket, refilled per second. */
|
|
63
69
|
consumerRps: positiveNumber(env, 'AWESHARE_CONSUMER_RPS', 10),
|
|
@@ -87,10 +93,6 @@ const CONFIG_FILE_KEYS = new Set([
|
|
|
87
93
|
'inviteRedeemPerMinute',
|
|
88
94
|
'maxProducers',
|
|
89
95
|
]);
|
|
90
|
-
/** Array sections this file also carries, owned by the hub's local producer
|
|
91
|
-
* (same shape as a producer's config; validated by its own loader — see
|
|
92
|
-
* local.ts). The hub's own reader skips them. */
|
|
93
|
-
const CATALOG_SECTIONS = new Set(['backends', 'offerings']);
|
|
94
96
|
/** Read config.toml from the data dir. Absent file = null; anything wrong with
|
|
95
97
|
* an existing file fails fast with the key named (typos included). */
|
|
96
98
|
function readConfigFile(paths) {
|
|
@@ -111,14 +113,14 @@ function readConfigFile(paths) {
|
|
|
111
113
|
const out = {};
|
|
112
114
|
const problems = [];
|
|
113
115
|
for (const [key, value] of Object.entries(parsed)) {
|
|
114
|
-
if (CATALOG_SECTIONS.has(key))
|
|
115
|
-
continue; // the local producer's half of the file
|
|
116
116
|
if (!CONFIG_FILE_KEYS.has(key)) {
|
|
117
117
|
problems.push(`unknown key '${key}'`);
|
|
118
118
|
}
|
|
119
119
|
else if (key === 'host') {
|
|
120
120
|
if (typeof value !== 'string')
|
|
121
121
|
problems.push(`host must be a string, got '${value}'`);
|
|
122
|
+
else if (value === '')
|
|
123
|
+
problems.push('host must not be empty');
|
|
122
124
|
else
|
|
123
125
|
out.host = value;
|
|
124
126
|
}
|
|
@@ -138,7 +140,7 @@ function readConfigFile(paths) {
|
|
|
138
140
|
export function loadHubConfig(env = process.env, paths = resolvePaths(env)) {
|
|
139
141
|
const file = readConfigFile(paths);
|
|
140
142
|
return {
|
|
141
|
-
host: env
|
|
143
|
+
host: hostFromEnv(env, file?.host ?? '0.0.0.0'),
|
|
142
144
|
port: positiveNumber(env, 'AWESHARE_HUB_PORT', file?.port ?? 8787),
|
|
143
145
|
consumerRps: positiveNumber(env, 'AWESHARE_CONSUMER_RPS', file?.consumerRps ?? 10),
|
|
144
146
|
consumerBurst: positiveNumber(env, 'AWESHARE_CONSUMER_BURST', file?.consumerBurst ?? 20),
|
|
@@ -201,24 +203,23 @@ export const HUB_CONFIG_TEMPLATE = `# aweshare hub configuration (~/.aweshare-hu
|
|
|
201
203
|
# Cap on active (non-suspended) producers — the hub's tenant slots.
|
|
202
204
|
#maxProducers = 10
|
|
203
205
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
#
|
|
207
|
-
#
|
|
208
|
-
# hub process directly, no producer tunnel. Edits hot-reload like the rest.
|
|
206
|
+
`;
|
|
207
|
+
export const HUB_PRODUCE_CONFIG_TEMPLATE = `# aweshare hub-local model catalog (~/.aweshare-hub/config.produce.toml)
|
|
208
|
+
# Generated by 'aweshare hub produce init'. Upstream key values live in
|
|
209
|
+
# secrets.json next to this file.
|
|
209
210
|
|
|
210
211
|
#[[backends]]
|
|
211
212
|
#id = "openai"
|
|
212
213
|
#protocol = "openai" # openai | anthropic | responses
|
|
213
214
|
#baseUrl = "https://api.openai.com/v1"
|
|
214
|
-
#keyRef = "openai-key"
|
|
215
|
+
#keyRef = "openai-key"
|
|
215
216
|
|
|
216
217
|
#[[offerings]]
|
|
217
218
|
#alias = "hub/gpt-4o" # bare names are auto-prefixed with hub/
|
|
218
219
|
#backend = "openai"
|
|
219
220
|
#upstreamModel = "gpt-4o-2024-11-20"
|
|
220
221
|
#maxConcurrencyPerUser = 4
|
|
221
|
-
#maxConcurrentUsers = 3
|
|
222
|
-
#dailyTokens = 1000000
|
|
222
|
+
#maxConcurrentUsers = 3
|
|
223
|
+
#dailyTokens = 1000000
|
|
223
224
|
`;
|
|
224
225
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,WAAW,CAAA;AAe9C,MAAM,UAAU,YAAY,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAA;IAC7E,OAAO;QACL,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC/B,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACnC,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAC5C,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QACxC,iBAAiB,EAAE,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC;QACvD,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC;KAC3C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAe;IAC3C,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED;2DAC2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,KAAe;IAIjD,aAAa,CAAC,KAAK,CAAC,CAAA;IACpB,IAAI,oBAAoB,GAAG,KAAK,CAAA;IAChC,IAAI,cAAc,GAAG,KAAK,CAAA;IAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACzC,aAAa,CAAC,KAAK,CAAC,iBAAiB,EAAE,2BAA2B,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpF,oBAAoB,GAAG,IAAI,CAAA;IAC7B,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,aAAa,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,cAAc,GAAG,IAAI,CAAA;IACvB,CAAC;IACD,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAA;AACjD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAAC,KAAe;IAC5C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,GAAsB,EAAE,GAAW,EAAE,QAAgB;IAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACpB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAA;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,oCAAoC,GAAG,GAAG,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;qEACqE;AACrE,SAAS,WAAW,CAAC,GAAsB,EAAE,QAAgB;IAC3D,MAAM,GAAG,GAAG,GAAG,CAAC,iBAAiB,CAAA;IACjC,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC;QACjC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC;QACpD,sDAAsD;QACtD,WAAW,EAAE,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,EAAE,CAAC;QAC7D,aAAa,EAAE,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,CAAC;QACjE,qBAAqB,EAAE,cAAc,CAAC,GAAG,EAAE,+BAA+B,EAAE,CAAC,CAAC;QAC9E,iEAAiE;QACjE,aAAa,EAAE,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,OAAO,CAAC;QACvE,kFAAkF;QAClF,aAAa,EAAE,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,OAAO,CAAC;QACvE,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;QAC9E,yEAAyE;QACzE,qBAAqB,EAAE,cAAc,CAAC,GAAG,EAAE,gCAAgC,EAAE,EAAE,CAAC;QAChF,wEAAwE;QACxE,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,EAAE,CAAC;KAChE,CAAA;AACH,CAAC;AAID,kFAAkF;AAClF,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,MAAM;IACN,aAAa;IACb,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,cAAc;IACd,uBAAuB;IACvB,cAAc;CACf,CAAC,CAAA;AAEF;sEACsE;AACtE,SAAS,cAAc,CAAC,KAAe;IACrC,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA,CAAC,uCAAuC;IACrD,CAAC;IACD,IAAI,MAA+B,CAAA;IACnC,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,GAAG,CAA4B,CAAA;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,CAAC,UAAU,uBAAuB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CACrF,CAAA;IACH,CAAC;IACD,MAAM,GAAG,GAAuB,EAAE,CAAA;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,+BAA+B,KAAK,GAAG,CAAC,CAAA;iBAChF,IAAI,KAAK,KAAK,EAAE;gBAAE,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;;gBACzD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAA;QACvB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC9E,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,oCAAoC,KAAK,GAAG,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAoC,CAAC,GAAG,KAAK,CAAA;QACnD,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,UAAU,uBAAuB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAC3B,MAAyB,OAAO,CAAC,GAAG,EACpC,QAAkB,YAAY,CAAC,GAAG,CAAC;IAEnC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAClC,OAAO;QACL,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC;QAC/C,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;QAClE,WAAW,EAAE,cAAc,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;QAClF,aAAa,EAAE,cAAc,CAAC,GAAG,EAAE,yBAAyB,EAAE,IAAI,EAAE,aAAa,IAAI,EAAE,CAAC;QACxF,qBAAqB,EAAE,cAAc,CACnC,GAAG,EACH,+BAA+B,EAC/B,IAAI,EAAE,qBAAqB,IAAI,CAAC,CACjC;QACD,aAAa,EAAE,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE,aAAa,IAAI,OAAO,CAAC;QAC9F,aAAa,EAAE,cAAc,CAAC,GAAG,EAAE,0BAA0B,EAAE,IAAI,EAAE,aAAa,IAAI,OAAO,CAAC;QAC9F,YAAY,EAAE,cAAc,CAC1B,GAAG,EACH,yBAAyB,EACzB,IAAI,EAAE,YAAY,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CACvC;QACD,qBAAqB,EAAE,cAAc,CACnC,GAAG,EACH,gCAAgC,EAChC,IAAI,EAAE,qBAAqB,IAAI,EAAE,CAClC;QACD,YAAY,EAAE,cAAc,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,YAAY,IAAI,EAAE,CAAC;KACtF,CAAA;AACH,CAAC;AAED;kEACkE;AAClE,MAAM,eAAe,GAAG;IACtB,aAAa;IACb,eAAe;IACf,uBAAuB;IACvB,eAAe;IACf,eAAe;IACf,cAAc;IACd,uBAAuB;IACvB,cAAc;CACN,CAAA;AAEV;;2EAE2E;AAC3E,MAAM,UAAU,cAAc,CAAC,IAAe,EAAE,KAAgB;IAC9D,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BlC,CAAA;AAED,MAAM,CAAC,MAAM,2BAA2B,GAAG;;;;;;;;;;;;;;;;;CAiB1C,CAAA"}
|
package/apps/hub/dist/db.js
CHANGED
|
@@ -90,12 +90,12 @@ export function ensureLocalProducer(db) {
|
|
|
90
90
|
const row = db.prepare('SELECT id FROM producers WHERE id = ?').get(LOCAL_PRODUCER_ID);
|
|
91
91
|
return row !== undefined;
|
|
92
92
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
93
|
+
/** Bring a database from its stored user_version up to the current schema.
|
|
94
|
+
* Runs inside a single transaction (see openDb): SQLite DDL is transactional,
|
|
95
|
+
* so a crash mid-upgrade rolls back to the previous user_version and the whole
|
|
96
|
+
* ladder re-runs cleanly on the next open — a half-applied block (duplicate
|
|
97
|
+
* column, leftover temp table) would otherwise brick every later startup. */
|
|
98
|
+
function migrateDb(db, version) {
|
|
99
99
|
if (version < 1) {
|
|
100
100
|
db.exec(SCHEMA_LATEST);
|
|
101
101
|
db.pragma('user_version = 11');
|
|
@@ -224,6 +224,14 @@ export function openDb(dbFile) {
|
|
|
224
224
|
}
|
|
225
225
|
db.pragma('user_version = 11');
|
|
226
226
|
}
|
|
227
|
+
}
|
|
228
|
+
export function openDb(dbFile) {
|
|
229
|
+
mkdirSync(dirname(dbFile), { recursive: true });
|
|
230
|
+
const db = new Database(dbFile);
|
|
231
|
+
db.pragma('journal_mode = WAL');
|
|
232
|
+
db.pragma('foreign_keys = ON');
|
|
233
|
+
const version = db.pragma('user_version', { simple: true });
|
|
234
|
+
db.transaction(() => migrateDb(db, version))();
|
|
227
235
|
// data (not schema), so no version bump: present from the first open on
|
|
228
236
|
ensureLocalProducer(db);
|
|
229
237
|
return db;
|
|
@@ -560,7 +568,7 @@ export function summarizeUsage(db, filter) {
|
|
|
560
568
|
LEFT JOIN consumers c ON c.id = u.consumer_id
|
|
561
569
|
${where.length ? `WHERE ${where.join(' AND ')}` : ''}
|
|
562
570
|
GROUP BY ${groupBy}
|
|
563
|
-
ORDER BY ${personFirst}prompt_tokens + completion_tokens DESC, requests DESC, last_at DESC`;
|
|
571
|
+
ORDER BY ${personFirst}SUM(COALESCE(u.prompt_tokens, 0)) + SUM(COALESCE(u.completion_tokens, 0)) DESC, requests DESC, last_at DESC`;
|
|
564
572
|
return db.prepare(sql).all(params);
|
|
565
573
|
}
|
|
566
574
|
// ---- per-consumer limit overrides (sparse JSON in consumers.config) ----
|