aweshare 0.6.0 → 0.6.2
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 +29 -5
- package/apps/agent/dist/cli.js +41 -9
- package/apps/agent/dist/cli.js.map +1 -1
- package/apps/agent/dist/connection.d.ts +22 -6
- package/apps/agent/dist/connection.js +69 -10
- package/apps/agent/dist/connection.js.map +1 -1
- package/apps/agent/dist/hub.d.ts +6 -0
- package/apps/agent/dist/hub.js +1 -1
- package/apps/agent/dist/hub.js.map +1 -1
- package/apps/agent/dist/table.d.ts +11 -2
- package/apps/agent/dist/table.js +3 -2
- package/apps/agent/dist/table.js.map +1 -1
- package/apps/hub/dist/admin.js +12 -1
- package/apps/hub/dist/admin.js.map +1 -1
- package/apps/hub/dist/cli.js +34 -6
- package/apps/hub/dist/cli.js.map +1 -1
- package/apps/hub/dist/config.d.ts +4 -1
- package/apps/hub/dist/config.js +26 -0
- package/apps/hub/dist/config.js.map +1 -1
- package/apps/hub/dist/db.d.ts +16 -3
- package/apps/hub/dist/db.js +33 -11
- package/apps/hub/dist/db.js.map +1 -1
- package/apps/hub/dist/landing.d.ts +39 -0
- package/apps/hub/dist/landing.js +276 -0
- package/apps/hub/dist/landing.js.map +1 -0
- package/apps/hub/dist/server.js +4 -0
- package/apps/hub/dist/server.js.map +1 -1
- package/apps/hub/dist/table.d.ts +10 -1
- package/apps/hub/dist/table.js +2 -1
- package/apps/hub/dist/table.js.map +1 -1
- package/package.json +1 -1
package/apps/hub/dist/db.d.ts
CHANGED
|
@@ -240,10 +240,16 @@ export interface UsageFilter {
|
|
|
240
240
|
limit: number;
|
|
241
241
|
}
|
|
242
242
|
export declare function queryUsage(db: Database.Database, filter: UsageFilter): UsageEventRow[];
|
|
243
|
+
/** Summary row orders: time = most recently used first (the default);
|
|
244
|
+
* consumer/producer/model = that column ascending, newest first within it;
|
|
245
|
+
* tokens/requests = busiest first (tokens is the pre-0.6.1 default order). */
|
|
246
|
+
export type UsageSort = 'time' | 'consumer' | 'producer' | 'model' | 'tokens' | 'requests';
|
|
243
247
|
export interface UsageSummaryFilter {
|
|
244
248
|
/** consumer-alias: one row per consumer × alias (the CLI's default);
|
|
245
249
|
* consumer: one row per producer × consumer; alias: one row per alias. */
|
|
246
250
|
group: 'consumer-alias' | 'consumer' | 'alias';
|
|
251
|
+
/** Row order; defaults to 'time' (most recently used first). */
|
|
252
|
+
sort?: UsageSort;
|
|
247
253
|
consumerId?: number;
|
|
248
254
|
producerId?: number;
|
|
249
255
|
alias?: string;
|
|
@@ -261,16 +267,23 @@ export type UsageSummaryRow = {
|
|
|
261
267
|
errors: number;
|
|
262
268
|
prompt_tokens: number;
|
|
263
269
|
completion_tokens: number;
|
|
270
|
+
/** prompt + completion; NULL counts (streaming backends) read as 0. */
|
|
271
|
+
tokens: number;
|
|
264
272
|
/** Requests whose token counts the upstream never reported (streaming
|
|
265
273
|
* backends) — excluded from the token sums, never counted as zero cost. */
|
|
266
274
|
unknown_tokens: number;
|
|
267
275
|
avg_duration_ms: number;
|
|
268
276
|
last_at: string;
|
|
277
|
+
/** Event id of the group's most recent request — the order tiebreak. */
|
|
278
|
+
last_id: number;
|
|
269
279
|
};
|
|
270
280
|
/** Server-side aggregation: who consumed how much — one row per consumer ×
|
|
271
|
-
* alias (default), per producer × consumer, or per alias.
|
|
272
|
-
*
|
|
273
|
-
*
|
|
281
|
+
* alias (default), per producer × consumer, or per alias. Rows come back
|
|
282
|
+
* most recently used first (sort 'time', the default); 'consumer',
|
|
283
|
+
* 'producer' and 'model' sort by that column ascending with newest first
|
|
284
|
+
* inside it, 'tokens'/'requests' busiest first. In the consumer-alias view
|
|
285
|
+
* the tokens sort keeps a person's rows together, persons ranked by their
|
|
286
|
+
* total consumption, then each model's tokens within the person. */
|
|
274
287
|
export declare function summarizeUsage(db: Database.Database, filter: UsageSummaryFilter): UsageSummaryRow[];
|
|
275
288
|
export declare function getConsumerConfig(db: Database.Database, consumerId: number): string | null;
|
|
276
289
|
export declare function setConsumerConfig(db: Database.Database, consumerId: number, config: string | null): void;
|
package/apps/hub/dist/db.js
CHANGED
|
@@ -679,9 +679,12 @@ export function queryUsage(db, filter) {
|
|
|
679
679
|
return db.prepare(sql).all(params);
|
|
680
680
|
}
|
|
681
681
|
/** Server-side aggregation: who consumed how much — one row per consumer ×
|
|
682
|
-
* alias (default), per producer × consumer, or per alias.
|
|
683
|
-
*
|
|
684
|
-
*
|
|
682
|
+
* alias (default), per producer × consumer, or per alias. Rows come back
|
|
683
|
+
* most recently used first (sort 'time', the default); 'consumer',
|
|
684
|
+
* 'producer' and 'model' sort by that column ascending with newest first
|
|
685
|
+
* inside it, 'tokens'/'requests' busiest first. In the consumer-alias view
|
|
686
|
+
* the tokens sort keeps a person's rows together, persons ranked by their
|
|
687
|
+
* total consumption, then each model's tokens within the person. */
|
|
685
688
|
export function summarizeUsage(db, filter) {
|
|
686
689
|
const { where, params } = usageWhere(filter);
|
|
687
690
|
const select = filter.group === 'alias'
|
|
@@ -694,24 +697,43 @@ export function summarizeUsage(db, filter) {
|
|
|
694
697
|
: filter.group === 'consumer'
|
|
695
698
|
? 'u.producer_id, p.name, u.consumer_id, c.name'
|
|
696
699
|
: 'u.producer_id, p.name, u.consumer_id, c.name, u.alias';
|
|
697
|
-
//
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
const
|
|
700
|
+
// every non-busiest order ends newest-first; last_id (the group's latest
|
|
701
|
+
// event id) breaks the same-millisecond ties a test seed (or a fast hub)
|
|
702
|
+
// produces
|
|
703
|
+
const recency = 'last_at DESC, last_id DESC';
|
|
704
|
+
const sort = filter.sort ?? 'time';
|
|
705
|
+
const orderBy = {
|
|
706
|
+
time: recency,
|
|
707
|
+
consumer: `consumer_name COLLATE NOCASE ASC, ${recency}`,
|
|
708
|
+
producer: `producer_name COLLATE NOCASE ASC, consumer_name COLLATE NOCASE ASC, ${recency}`,
|
|
709
|
+
model: `alias COLLATE NOCASE ASC, ${recency}`,
|
|
710
|
+
tokens: 'tokens DESC, requests DESC, last_at DESC',
|
|
711
|
+
requests: `requests DESC, ${recency}`,
|
|
712
|
+
};
|
|
713
|
+
const base = `SELECT p.name AS producer_name, ${select},
|
|
702
714
|
COUNT(*) AS requests,
|
|
703
715
|
SUM(CASE WHEN u.error_code IS NOT NULL OR (u.status IS NOT NULL AND u.status >= 400) THEN 1 ELSE 0 END) AS errors,
|
|
704
716
|
SUM(COALESCE(u.prompt_tokens, 0)) AS prompt_tokens,
|
|
705
717
|
SUM(COALESCE(u.completion_tokens, 0)) AS completion_tokens,
|
|
718
|
+
SUM(COALESCE(u.prompt_tokens, 0)) + SUM(COALESCE(u.completion_tokens, 0)) AS tokens,
|
|
706
719
|
SUM(CASE WHEN u.prompt_tokens IS NULL AND u.completion_tokens IS NULL THEN 1 ELSE 0 END) AS unknown_tokens,
|
|
707
720
|
CAST(AVG(u.duration_ms) AS INTEGER) AS avg_duration_ms,
|
|
708
|
-
MAX(u.at) AS last_at
|
|
721
|
+
MAX(u.at) AS last_at,
|
|
722
|
+
MAX(u.id) AS last_id
|
|
709
723
|
FROM usage_events u
|
|
710
724
|
LEFT JOIN producers p ON p.id = u.producer_id
|
|
711
725
|
LEFT JOIN consumers c ON c.id = u.consumer_id
|
|
712
726
|
${where.length ? `WHERE ${where.join(' AND ')}` : ''}
|
|
713
|
-
GROUP BY ${groupBy}
|
|
714
|
-
|
|
727
|
+
GROUP BY ${groupBy}`;
|
|
728
|
+
// "a person's rows stay together" ranks people by their total tokens. The
|
|
729
|
+
// window must run over the GROUPED rows: over the raw events the argument
|
|
730
|
+
// is a bare column, which in an aggregate samples one arbitrary event per
|
|
731
|
+
// group and silently flips the order — so this one sort wraps the query.
|
|
732
|
+
const sql = sort === 'tokens' && filter.group === 'consumer-alias'
|
|
733
|
+
? `SELECT * FROM (${base})
|
|
734
|
+
ORDER BY SUM(tokens) OVER (PARTITION BY consumer_id) DESC, tokens DESC, requests DESC, last_at DESC`
|
|
735
|
+
: `SELECT * FROM (${base})
|
|
736
|
+
ORDER BY ${orderBy[sort]}`;
|
|
715
737
|
return db.prepare(sql).all(params);
|
|
716
738
|
}
|
|
717
739
|
// ---- per-consumer limit overrides (sparse JSON in consumers.config) ----
|
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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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Router } from './http.js';
|
|
2
|
+
/**
|
|
3
|
+
* The hub's front door. Browsers hitting GET / used to get a bare JSON 404 —
|
|
4
|
+
* to anyone holding an invite code that reads as "site broken". Text/html
|
|
5
|
+
* requests now get a static bilingual landing page (EN / 中文, no JavaScript,
|
|
6
|
+
* no external requests); every other client keeps the exact JSON 404.
|
|
7
|
+
*/
|
|
8
|
+
export type LandingLang = 'en' | 'zh';
|
|
9
|
+
/** Escape the two values that reach the page from outside the build: the
|
|
10
|
+
* request Host header and the operator-configured email. Reflected input
|
|
11
|
+
* must never become markup. */
|
|
12
|
+
export declare function escapeHtml(value: string): string;
|
|
13
|
+
/** Browsers always send Accept: text/html on navigation; API clients send a
|
|
14
|
+
* wildcard, application/json or nothing at all — those keep the JSON view. */
|
|
15
|
+
export declare function wantsHtml(accept: string | undefined): boolean;
|
|
16
|
+
/** ?lang=zh|en wins explicitly (the toggle link); anything else follows the
|
|
17
|
+
* browser's primary Accept-Language tag (zh* -> zh), defaulting to English. */
|
|
18
|
+
export declare function pickLandingLang(query: URLSearchParams, acceptLanguage: string | undefined): LandingLang;
|
|
19
|
+
export interface LandingOptions {
|
|
20
|
+
lang: LandingLang;
|
|
21
|
+
/** Host the visitor actually dialed (request Host header) — the join
|
|
22
|
+
* commands on the page must show the address that brought them there. */
|
|
23
|
+
host: string;
|
|
24
|
+
/** Operator's invite-request address (hub config.toml contactEmail); empty
|
|
25
|
+
* = the page says "contact the hub operator" without an address. */
|
|
26
|
+
contactEmail: string;
|
|
27
|
+
version: string;
|
|
28
|
+
}
|
|
29
|
+
/** One fully monolingual page per language; the toggle links to the other. */
|
|
30
|
+
export declare function landingHtml({ lang, host, contactEmail, version }: LandingOptions): string;
|
|
31
|
+
export interface LandingRouteDeps {
|
|
32
|
+
/** Live config object — read per request so a hot-reloaded contactEmail
|
|
33
|
+
* shows up without a restart. */
|
|
34
|
+
config: {
|
|
35
|
+
contactEmail: string;
|
|
36
|
+
};
|
|
37
|
+
version: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function registerLandingRoute(router: Router, deps: LandingRouteDeps): void;
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { sendJson } from './http.js';
|
|
2
|
+
/** Escape the two values that reach the page from outside the build: the
|
|
3
|
+
* request Host header and the operator-configured email. Reflected input
|
|
4
|
+
* must never become markup. */
|
|
5
|
+
export function escapeHtml(value) {
|
|
6
|
+
return value
|
|
7
|
+
.replaceAll('&', '&')
|
|
8
|
+
.replaceAll('<', '<')
|
|
9
|
+
.replaceAll('>', '>')
|
|
10
|
+
.replaceAll('"', '"')
|
|
11
|
+
.replaceAll("'", ''');
|
|
12
|
+
}
|
|
13
|
+
/** Browsers always send Accept: text/html on navigation; API clients send a
|
|
14
|
+
* wildcard, application/json or nothing at all — those keep the JSON view. */
|
|
15
|
+
export function wantsHtml(accept) {
|
|
16
|
+
return typeof accept === 'string' && accept.includes('text/html');
|
|
17
|
+
}
|
|
18
|
+
/** ?lang=zh|en wins explicitly (the toggle link); anything else follows the
|
|
19
|
+
* browser's primary Accept-Language tag (zh* -> zh), defaulting to English. */
|
|
20
|
+
export function pickLandingLang(query, acceptLanguage) {
|
|
21
|
+
const explicit = query.get('lang');
|
|
22
|
+
if (explicit === 'zh' || explicit === 'en')
|
|
23
|
+
return explicit;
|
|
24
|
+
const primary = (acceptLanguage ?? '').split(',')[0]?.trim().toLowerCase() ?? '';
|
|
25
|
+
return primary.startsWith('zh') ? 'zh' : 'en';
|
|
26
|
+
}
|
|
27
|
+
const CSS = `
|
|
28
|
+
:root {
|
|
29
|
+
--paper: #F2EDE0;
|
|
30
|
+
--card: #FBF8F0;
|
|
31
|
+
--line: #D9C9A3;
|
|
32
|
+
--navy: #2C3E5C;
|
|
33
|
+
--muted: #6E7A6A;
|
|
34
|
+
--teal: #2F7F7A;
|
|
35
|
+
--cyan: #7FD4CE;
|
|
36
|
+
--terra: #B5622F;
|
|
37
|
+
--olive: #7A8450;
|
|
38
|
+
}
|
|
39
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
40
|
+
body {
|
|
41
|
+
font-family: ui-rounded, "SF Pro Rounded", "PingFang SC", system-ui, -apple-system, sans-serif;
|
|
42
|
+
background:
|
|
43
|
+
radial-gradient(1200px 500px at 50% -10%, rgba(200,211,188,.55), transparent 60%),
|
|
44
|
+
var(--paper);
|
|
45
|
+
color: var(--navy);
|
|
46
|
+
min-height: 100vh;
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
padding: 32px 20px;
|
|
51
|
+
}
|
|
52
|
+
.card {
|
|
53
|
+
width: 100%;
|
|
54
|
+
max-width: 680px;
|
|
55
|
+
background: var(--card);
|
|
56
|
+
border: 1px solid var(--line);
|
|
57
|
+
border-radius: 20px;
|
|
58
|
+
box-shadow: 0 12px 40px rgba(44,62,92,.10);
|
|
59
|
+
padding: 44px 48px 28px;
|
|
60
|
+
}
|
|
61
|
+
.top { display: flex; align-items: center; justify-content: space-between; }
|
|
62
|
+
.wordmark { display: flex; align-items: center; gap: 10px; }
|
|
63
|
+
.dot { width: 12px; height: 12px; border-radius: 50%; }
|
|
64
|
+
.dot.teal { background: var(--teal); }
|
|
65
|
+
.dot.terra { background: var(--terra); }
|
|
66
|
+
.dot.olive { background: var(--olive); }
|
|
67
|
+
.wordmark .name { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
|
|
68
|
+
.badge {
|
|
69
|
+
font-size: 11px; font-weight: 700; letter-spacing: .12em;
|
|
70
|
+
color: var(--terra); border: 1px solid var(--terra);
|
|
71
|
+
border-radius: 999px; padding: 3px 10px;
|
|
72
|
+
}
|
|
73
|
+
.lang { font-size: 13px; display: flex; align-items: center; gap: 8px; }
|
|
74
|
+
.lang .on { font-weight: 700; color: var(--navy); }
|
|
75
|
+
.lang a { color: var(--teal); font-weight: 600; text-decoration: none; }
|
|
76
|
+
.lang a:hover { text-decoration: underline; }
|
|
77
|
+
.lang .sep { color: var(--line); }
|
|
78
|
+
.stream {
|
|
79
|
+
height: 3px; border-radius: 3px; margin: 26px 0 30px;
|
|
80
|
+
background: linear-gradient(90deg, var(--teal), var(--cyan), transparent 92%);
|
|
81
|
+
}
|
|
82
|
+
h1 { font-size: 33px; letter-spacing: -0.03em; margin-bottom: 14px; }
|
|
83
|
+
.sub { color: var(--muted); font-size: 15px; line-height: 1.7; }
|
|
84
|
+
.sub strong { color: var(--navy); }
|
|
85
|
+
h2 {
|
|
86
|
+
margin: 34px 0 18px;
|
|
87
|
+
font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
|
|
88
|
+
color: var(--teal);
|
|
89
|
+
}
|
|
90
|
+
.step { display: flex; gap: 14px; margin-bottom: 18px; }
|
|
91
|
+
.step .n {
|
|
92
|
+
flex: none; width: 26px; height: 26px; border-radius: 50%;
|
|
93
|
+
background: var(--navy); color: var(--card);
|
|
94
|
+
font-size: 13px; font-weight: 700;
|
|
95
|
+
display: flex; align-items: center; justify-content: center;
|
|
96
|
+
margin-top: 2px;
|
|
97
|
+
}
|
|
98
|
+
.step .body { min-width: 0; }
|
|
99
|
+
.step .t { font-weight: 700; margin-bottom: 2px; }
|
|
100
|
+
.step .d { color: var(--muted); font-size: 14px; line-height: 1.6; }
|
|
101
|
+
code, .code {
|
|
102
|
+
font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
|
|
103
|
+
font-size: 13px;
|
|
104
|
+
}
|
|
105
|
+
.chip {
|
|
106
|
+
display: inline-block; background: rgba(47,127,122,.10);
|
|
107
|
+
border: 1px solid rgba(47,127,122,.25); color: var(--teal);
|
|
108
|
+
border-radius: 6px; padding: 1px 6px;
|
|
109
|
+
}
|
|
110
|
+
a.mail {
|
|
111
|
+
color: var(--teal); font-weight: 700; text-decoration: none;
|
|
112
|
+
border-bottom: 2px solid rgba(47,127,122,.35);
|
|
113
|
+
}
|
|
114
|
+
a.mail:hover { border-bottom-color: var(--teal); }
|
|
115
|
+
pre {
|
|
116
|
+
background: var(--navy); color: #E9F5F3;
|
|
117
|
+
border-radius: 12px; padding: 14px 16px; margin-top: 8px;
|
|
118
|
+
overflow-x: auto; line-height: 1.75;
|
|
119
|
+
}
|
|
120
|
+
pre .c { color: var(--cyan); }
|
|
121
|
+
pre .k { color: #F0C987; }
|
|
122
|
+
.note {
|
|
123
|
+
margin-top: 26px; padding: 12px 16px;
|
|
124
|
+
background: rgba(217,201,163,.28); border: 1px dashed var(--line);
|
|
125
|
+
border-radius: 10px; font-size: 13.5px; color: var(--muted);
|
|
126
|
+
}
|
|
127
|
+
.note b { color: var(--navy); }
|
|
128
|
+
footer {
|
|
129
|
+
margin-top: 30px; padding-top: 18px;
|
|
130
|
+
border-top: 1px solid var(--line);
|
|
131
|
+
display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px;
|
|
132
|
+
font-size: 12.5px; color: var(--muted);
|
|
133
|
+
}
|
|
134
|
+
footer a { color: var(--teal); text-decoration: none; font-weight: 600; }
|
|
135
|
+
footer a:hover { text-decoration: underline; }
|
|
136
|
+
`;
|
|
137
|
+
const FOOTER_LINKS = `<a href="https://github.com/wehuman01/aweshare">GitHub</a>`;
|
|
138
|
+
/** One fully monolingual page per language; the toggle links to the other. */
|
|
139
|
+
export function landingHtml({ lang, host, contactEmail, version }) {
|
|
140
|
+
const h = escapeHtml(host);
|
|
141
|
+
const email = contactEmail.trim();
|
|
142
|
+
const mail = `<a class="mail" href="mailto:${escapeHtml(email)}">${escapeHtml(email)}</a>`;
|
|
143
|
+
const en = lang === 'en';
|
|
144
|
+
const dict = en
|
|
145
|
+
? {
|
|
146
|
+
htmlLang: 'en',
|
|
147
|
+
toggle: `<span class="on">EN</span><span class="sep">/</span><a href="/?lang=zh">中文</a>`,
|
|
148
|
+
heading: 'Shared models, one endpoint.',
|
|
149
|
+
intro: 'This is an <strong>aweshare hub</strong> — a self-hosted relay where invited consumers call shared models with standard OpenAI / Anthropic SDKs. <strong>Upstream keys never leave the producer's device.</strong>',
|
|
150
|
+
connect: 'How to connect',
|
|
151
|
+
step1: 'Ask for an invite',
|
|
152
|
+
step1Body: email
|
|
153
|
+
? `Email ${mail} to request a one-time invite code (<span class="chip">asi_…</span>) — invites are the only way in.`
|
|
154
|
+
: 'Contact the hub operator for a one-time invite code (<span class="chip">asi_…</span>) — invites are the only way in.',
|
|
155
|
+
step2: 'Redeem it',
|
|
156
|
+
step2Body: 'Swap the code for your consumer token (<span class="chip">asc_…</span>), printed once — save it.',
|
|
157
|
+
step3: 'Point your SDK at this hub',
|
|
158
|
+
step3Body: 'Models are called by <code>namespace/alias</code>. Anthropic SDK / Claude Code: <code>ANTHROPIC_BASE_URL</code>.',
|
|
159
|
+
note: 'Usage is metered per consumer — <b>counting, not billing</b>.',
|
|
160
|
+
community: 'Community hub guide',
|
|
161
|
+
}
|
|
162
|
+
: {
|
|
163
|
+
htmlLang: 'zh-CN',
|
|
164
|
+
toggle: `<a href="/?lang=en">EN</a><span class="sep">/</span><span class="on">中文</span>`,
|
|
165
|
+
heading: '共享模型,单一端点。',
|
|
166
|
+
intro: '这是一个 <strong>aweshare hub</strong>:受邀的消费者用标准 OpenAI / Anthropic SDK 调用共享模型。<strong>上游密钥永不离开提供者设备。</strong>',
|
|
167
|
+
connect: '接入方式',
|
|
168
|
+
step1: '申请邀请',
|
|
169
|
+
step1Body: email
|
|
170
|
+
? `发邮件至 ${mail} 申请一次性邀请码(<span class="chip">asi_…</span>)——邀请制是唯一入口。`
|
|
171
|
+
: '联系 hub 管理员申请一次性邀请码(<span class="chip">asi_…</span>)——邀请制是唯一入口。',
|
|
172
|
+
step2: '兑换邀请码',
|
|
173
|
+
step2Body: '用它换取你的消费者令牌(<span class="chip">asc_…</span>),只显示一次,请保存好。',
|
|
174
|
+
step3: '把 SDK 指向本站',
|
|
175
|
+
step3Body: '模型按 <code>namespace/alias</code> 调用;Anthropic SDK / Claude Code 用 <code>ANTHROPIC_BASE_URL</code>。',
|
|
176
|
+
note: '用量按消费者计量 —— <b>只计数,不计费</b>。',
|
|
177
|
+
community: '社区 Hub 指南',
|
|
178
|
+
};
|
|
179
|
+
return `<!doctype html>
|
|
180
|
+
<html lang="${dict.htmlLang}">
|
|
181
|
+
<head>
|
|
182
|
+
<meta charset="utf-8">
|
|
183
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
184
|
+
<title>aweshare hub</title>
|
|
185
|
+
<style>${CSS}</style>
|
|
186
|
+
</head>
|
|
187
|
+
<body>
|
|
188
|
+
<main class="card">
|
|
189
|
+
<div class="top">
|
|
190
|
+
<div class="wordmark">
|
|
191
|
+
<span class="dot teal"></span><span class="dot terra"></span><span class="dot olive"></span>
|
|
192
|
+
<span class="name">aweshare</span>
|
|
193
|
+
<span class="badge">HUB</span>
|
|
194
|
+
</div>
|
|
195
|
+
<div class="lang">${dict.toggle}</div>
|
|
196
|
+
</div>
|
|
197
|
+
<div class="stream"></div>
|
|
198
|
+
|
|
199
|
+
<h1>${dict.heading}</h1>
|
|
200
|
+
<p class="sub">${dict.intro}</p>
|
|
201
|
+
|
|
202
|
+
<h2>${dict.connect}</h2>
|
|
203
|
+
|
|
204
|
+
<div class="step">
|
|
205
|
+
<div class="n">1</div>
|
|
206
|
+
<div class="body">
|
|
207
|
+
<div class="t">${dict.step1}</div>
|
|
208
|
+
<div class="d">${dict.step1Body}</div>
|
|
209
|
+
</div>
|
|
210
|
+
</div>
|
|
211
|
+
|
|
212
|
+
<div class="step">
|
|
213
|
+
<div class="n">2</div>
|
|
214
|
+
<div class="body">
|
|
215
|
+
<div class="t">${dict.step2}</div>
|
|
216
|
+
<div class="d">${dict.step2Body}</div>
|
|
217
|
+
<pre><span class="c">$</span> aweshare consumer join \\
|
|
218
|
+
--hub https://${h} \\
|
|
219
|
+
--code <span class="k">asi_…</span></pre>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
|
|
223
|
+
<div class="step">
|
|
224
|
+
<div class="n">3</div>
|
|
225
|
+
<div class="body">
|
|
226
|
+
<div class="t">${dict.step3}</div>
|
|
227
|
+
<div class="d">${dict.step3Body}</div>
|
|
228
|
+
<pre><span class="c">$</span> export OPENAI_BASE_URL=<span class="k">"https://${h}/v1"</span>
|
|
229
|
+
<span class="c">$</span> export OPENAI_API_KEY=<span class="k">"asc_…"</span></pre>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
<div class="note">${dict.note}</div>
|
|
234
|
+
|
|
235
|
+
<footer>
|
|
236
|
+
<span>
|
|
237
|
+
${FOOTER_LINKS} ·
|
|
238
|
+
<a href="https://github.com/wehuman01/aweshare/tree/main/docs/community-hub">${dict.community}</a> ·
|
|
239
|
+
<a href="https://www.npmjs.com/package/aweshare">npm</a>
|
|
240
|
+
</span>
|
|
241
|
+
<span>powered by aweshare v${version} · <code>GET /healthz</code></span>
|
|
242
|
+
</footer>
|
|
243
|
+
</main>
|
|
244
|
+
</body>
|
|
245
|
+
</html>
|
|
246
|
+
`;
|
|
247
|
+
}
|
|
248
|
+
function header(req, name) {
|
|
249
|
+
const value = req.headers[name];
|
|
250
|
+
return typeof value === 'string' ? value : undefined;
|
|
251
|
+
}
|
|
252
|
+
export function registerLandingRoute(router, deps) {
|
|
253
|
+
router.add('GET', '/', (ctx) => {
|
|
254
|
+
// non-browser clients keep the exact JSON 404 the router used to give
|
|
255
|
+
if (!wantsHtml(header(ctx.req, 'accept'))) {
|
|
256
|
+
sendJson(ctx.res, 404, { error: { code: 'NOT_FOUND', message: ctx.url.pathname } });
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
const lang = pickLandingLang(ctx.query, header(ctx.req, 'accept-language'));
|
|
260
|
+
const host = header(ctx.req, 'host') ?? 'localhost';
|
|
261
|
+
const html = landingHtml({
|
|
262
|
+
lang,
|
|
263
|
+
host,
|
|
264
|
+
contactEmail: deps.config.contactEmail,
|
|
265
|
+
version: deps.version,
|
|
266
|
+
});
|
|
267
|
+
// no-store: the page mirrors live config (contactEmail) and the visitor's
|
|
268
|
+
// language choice — neither should be served stale from a shared cache
|
|
269
|
+
ctx.res.writeHead(200, {
|
|
270
|
+
'content-type': 'text/html; charset=utf-8',
|
|
271
|
+
'cache-control': 'no-store',
|
|
272
|
+
});
|
|
273
|
+
ctx.res.end(html);
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=landing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"landing.js","sourceRoot":"","sources":["../src/landing.ts"],"names":[],"mappings":"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"}
|
package/apps/hub/dist/server.js
CHANGED
|
@@ -8,6 +8,7 @@ import { ModelWatch, registerConsumerRoutes } from './consumer.js';
|
|
|
8
8
|
import { openDb } from './db.js';
|
|
9
9
|
import { HttpError, Router, sendError, sendJson } from './http.js';
|
|
10
10
|
import { registerInviteRoutes } from './invites.js';
|
|
11
|
+
import { registerLandingRoute } from './landing.js';
|
|
11
12
|
import { AliasSlots, AliasUsers, ConsumerLimiter, RedeemRateLimiter, RejectionCounter, TokenWindow, } from './limiter.js';
|
|
12
13
|
import { LocalProducer } from './local.js';
|
|
13
14
|
import { loadOrCreateAdminToken, loadOrCreatePepper } from './tokens.js';
|
|
@@ -47,6 +48,9 @@ export function createHubServer(opts = {}) {
|
|
|
47
48
|
// {ok, version, wire} — agents preflight `join` against this and doctor
|
|
48
49
|
// reports hub identity; no auth, nothing secret.
|
|
49
50
|
router.add('GET', '/healthz', (ctx) => sendJson(ctx.res, 200, { ok: true, version: VERSION, wire: WIRE_VERSION }));
|
|
51
|
+
// the human front door: browsers get a bilingual landing page, everyone
|
|
52
|
+
// else keeps the JSON 404
|
|
53
|
+
registerLandingRoute(router, { config, version: VERSION });
|
|
50
54
|
registerAdminRoutes(router, { db, auth, log, tunnel, local, slots, users, rejections, watch });
|
|
51
55
|
const inviteLimiter = new RedeemRateLimiter(config.inviteRedeemPerMinute, config.inviteRedeemPerIpMinute);
|
|
52
56
|
registerInviteRoutes(router, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/apps/hub/dist/table.d.ts
CHANGED
|
@@ -166,18 +166,27 @@ export interface UsageSummaryRow {
|
|
|
166
166
|
errors: number;
|
|
167
167
|
prompt_tokens: number;
|
|
168
168
|
completion_tokens: number;
|
|
169
|
+
/** prompt + completion; NULL counts (streaming backends) read as 0. */
|
|
170
|
+
tokens: number;
|
|
169
171
|
/** Requests whose token counts the upstream never reported — excluded from
|
|
170
172
|
* the token sums, shown as their own count instead of reading as zero. */
|
|
171
173
|
unknown_tokens: number;
|
|
172
174
|
avg_duration_ms: number;
|
|
173
175
|
last_at: string;
|
|
176
|
+
/** Event id of the group's most recent request — the order tiebreak. */
|
|
177
|
+
last_id: number;
|
|
174
178
|
}
|
|
175
179
|
/** Summary groupings: consumer-alias (per person per model, the default),
|
|
176
180
|
* consumer (per producer × person), alias (per model across people). */
|
|
177
181
|
export type UsageGroup = 'consumer-alias' | 'consumer' | 'alias';
|
|
182
|
+
/** Summary row orders, matching the hub's sort query parameter: time = most
|
|
183
|
+
* recently used first (the default); consumer/producer/model = that column
|
|
184
|
+
* ascending, newest first within it; tokens/requests = busiest first. */
|
|
185
|
+
export type UsageSort = 'time' | 'consumer' | 'producer' | 'model' | 'tokens' | 'requests';
|
|
178
186
|
/**
|
|
179
187
|
* "Who used how much": one row per consumer × alias (default), per producer ×
|
|
180
|
-
* consumer, or per alias —
|
|
188
|
+
* consumer, or per alias — rows arrive as the hub sorted them (most recently
|
|
189
|
+
* used first by default; --sort on the CLI, sort= on the API).
|
|
181
190
|
* showProducer=false drops the PRODUCER column when every row is the caller's
|
|
182
191
|
* own (the producer CLI).
|
|
183
192
|
*/
|
package/apps/hub/dist/table.js
CHANGED
|
@@ -274,7 +274,8 @@ export function renderUsage(rows, consumerName) {
|
|
|
274
274
|
}
|
|
275
275
|
/**
|
|
276
276
|
* "Who used how much": one row per consumer × alias (default), per producer ×
|
|
277
|
-
* consumer, or per alias —
|
|
277
|
+
* consumer, or per alias — rows arrive as the hub sorted them (most recently
|
|
278
|
+
* used first by default; --sort on the CLI, sort= on the API).
|
|
278
279
|
* showProducer=false drops the PRODUCER column when every row is the caller's
|
|
279
280
|
* own (the producer CLI).
|
|
280
281
|
*/
|