aweshare 0.6.1 → 0.6.3

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.
Files changed (51) hide show
  1. package/README.ai.md +6 -0
  2. package/README.md +7 -4
  3. package/apps/agent/dist/connection.d.ts +22 -6
  4. package/apps/agent/dist/connection.js +75 -11
  5. package/apps/agent/dist/connection.js.map +1 -1
  6. package/apps/agent/dist/table.d.ts +9 -0
  7. package/apps/agent/dist/table.js +21 -0
  8. package/apps/agent/dist/table.js.map +1 -1
  9. package/apps/consumer/dist/cli.js +87 -10
  10. package/apps/consumer/dist/cli.js.map +1 -1
  11. package/apps/consumer/dist/hub.d.ts +4 -2
  12. package/apps/consumer/dist/hub.js +5 -3
  13. package/apps/consumer/dist/hub.js.map +1 -1
  14. package/apps/consumer/dist/ping.d.ts +24 -0
  15. package/apps/consumer/dist/ping.js +164 -0
  16. package/apps/consumer/dist/ping.js.map +1 -0
  17. package/apps/consumer/dist/table.d.ts +38 -4
  18. package/apps/consumer/dist/table.js +86 -32
  19. package/apps/consumer/dist/table.js.map +1 -1
  20. package/apps/hub/dist/cli.js +2 -0
  21. package/apps/hub/dist/cli.js.map +1 -1
  22. package/apps/hub/dist/config.d.ts +4 -1
  23. package/apps/hub/dist/config.js +31 -0
  24. package/apps/hub/dist/config.js.map +1 -1
  25. package/apps/hub/dist/consumer.d.ts +5 -1
  26. package/apps/hub/dist/consumer.js +26 -1
  27. package/apps/hub/dist/consumer.js.map +1 -1
  28. package/apps/hub/dist/db.d.ts +7 -0
  29. package/apps/hub/dist/db.js +22 -5
  30. package/apps/hub/dist/db.js.map +1 -1
  31. package/apps/hub/dist/limits.d.ts +6 -0
  32. package/apps/hub/dist/limits.js +13 -4
  33. package/apps/hub/dist/limits.js.map +1 -1
  34. package/apps/hub/dist/local.d.ts +3 -0
  35. package/apps/hub/dist/local.js +5 -0
  36. package/apps/hub/dist/local.js.map +1 -1
  37. package/apps/hub/dist/table.d.ts +8 -0
  38. package/apps/hub/dist/table.js +20 -0
  39. package/apps/hub/dist/table.js.map +1 -1
  40. package/apps/hub/dist/tunnel.d.ts +4 -0
  41. package/apps/hub/dist/tunnel.js +6 -0
  42. package/apps/hub/dist/tunnel.js.map +1 -1
  43. package/package.json +1 -1
  44. package/packages/producer-core/dist/health.d.ts +10 -0
  45. package/packages/producer-core/dist/health.js +25 -0
  46. package/packages/producer-core/dist/health.js.map +1 -1
  47. package/packages/producer-core/dist/probe.d.ts +9 -0
  48. package/packages/producer-core/dist/probe.js +40 -0
  49. package/packages/producer-core/dist/probe.js.map +1 -1
  50. package/packages/protocol/dist/messages.d.ts +4 -0
  51. package/packages/protocol/dist/messages.js.map +1 -1
@@ -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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"}
@@ -9,8 +9,10 @@ export interface HubInfo {
9
9
  version?: string;
10
10
  wire?: number;
11
11
  }
12
- /** Node fetch reports "fetch failed" without the reason; surface the cause. */
13
- export declare function errorMessage(err: unknown): string;
12
+ /** Node fetch reports "fetch failed" without the reason; surface the cause.
13
+ * `timeoutMs` names the caller's own deadline so a timeout reports the wait
14
+ * that actually happened (control calls 10s, model pings 60s). */
15
+ export declare function errorMessage(err: unknown, timeoutMs?: number): string;
14
16
  /** Probe GET /healthz: reachable, a real aweshare hub, and which version/wire
15
17
  * it speaks. Throws HubError with the precise failure otherwise. */
16
18
  export declare function probeHub(hubUrl: string): Promise<HubInfo>;
@@ -13,11 +13,13 @@ const TIMEOUT_MS = 10_000;
13
13
  /** One failed hub round-trip; the message is user-ready (never the token). */
14
14
  export class HubError extends Error {
15
15
  }
16
- /** Node fetch reports "fetch failed" without the reason; surface the cause. */
17
- export function errorMessage(err) {
16
+ /** Node fetch reports "fetch failed" without the reason; surface the cause.
17
+ * `timeoutMs` names the caller's own deadline so a timeout reports the wait
18
+ * that actually happened (control calls 10s, model pings 60s). */
19
+ export function errorMessage(err, timeoutMs = TIMEOUT_MS) {
18
20
  if (err instanceof Error) {
19
21
  if (err.name === 'TimeoutError' || err.name === 'AbortError') {
20
- return `timed out after ${TIMEOUT_MS / 1000}s`;
22
+ return `timed out after ${timeoutMs / 1000}s`;
21
23
  }
22
24
  const cause = err.cause;
23
25
  return cause ? `${err.message} (${cause.code ?? cause.message})` : err.message;
@@ -1 +1 @@
1
- {"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { CatalogRow } from './table.js';
2
+ export interface PingResult {
3
+ alias: string;
4
+ protocol: string;
5
+ ok: boolean;
6
+ /** HTTP status when the hub answered, e.g. 200 or 429; null on network error. */
7
+ status: number | null;
8
+ /** Round-trip milliseconds. */
9
+ ms: number;
10
+ /** User-ready verdict: served model, or the hub/upstream error message. */
11
+ detail: string;
12
+ }
13
+ /** One offering row, one ping. `fetchImpl` is the test seam. The catalog's
14
+ * alias is already the full namespaced model name (`producer/name`). */
15
+ export declare function pingOffering(hubUrl: string, token: string, row: CatalogRow, fetchImpl?: typeof fetch): Promise<PingResult>;
16
+ export interface PingReport {
17
+ ok: boolean;
18
+ results: PingResult[];
19
+ }
20
+ /** Ping every offering row sequentially: the hub rate-limits each consumer
21
+ * (rps/burst), and parallel pings would trip that limiter and misreport.
22
+ * `onResult` fires with the settled row as each ping lands — the CLI streams
23
+ * one line per row instead of going silent for the whole run. */
24
+ export declare function runPings(hubUrl: string, token: string, rows: CatalogRow[], fetchImpl?: typeof fetch, onResult?: (result: PingResult, row: CatalogRow) => void): Promise<PingReport>;
@@ -0,0 +1,164 @@
1
+ // The engine behind `consumer list --ping`: one minimal real model request
2
+ // per offering row, through the same consumer endpoints an SDK would hit. A
3
+ // green row means the whole chain works — consumer auth, hub dispatch,
4
+ // tunnel, producer, upstream. A real model call consumes quota and takes
5
+ // seconds; the plain table (and its LAST SEEN column) is the free view.
6
+ // Probe-shaped requests are budgeted hub-side (15/day per consumer by
7
+ // default) so the diagnostic cannot drain producers' upstreams.
8
+ import { selfReportedModel } from '../../../packages/protocol/dist/index.js';
9
+ import { errorMessage, USER_AGENT } from './hub.js';
10
+ /** How long one request may take before we call the link degraded. Slow
11
+ * upstreams (30s+) still answer; past this the SDK would too. */
12
+ const TIMEOUT_MS = 60_000;
13
+ /** Request shape per wire protocol — the minimal body every SDK can send.
14
+ * The `model` is the offering alias; the hub routes on it. */
15
+ function pingRequest(hubUrl, token, alias, protocol, stream = false) {
16
+ const headers = {
17
+ 'user-agent': USER_AGENT,
18
+ authorization: `Bearer ${token}`,
19
+ 'content-type': 'application/json',
20
+ };
21
+ if (protocol === 'anthropic') {
22
+ return {
23
+ url: `${hubUrl}/v1/messages`,
24
+ init: {
25
+ method: 'POST',
26
+ headers: { ...headers, 'anthropic-version': '2023-06-01' },
27
+ body: JSON.stringify({
28
+ model: alias,
29
+ max_tokens: 1,
30
+ stream,
31
+ messages: [{ role: 'user', content: 'ping' }],
32
+ }),
33
+ signal: AbortSignal.timeout(TIMEOUT_MS),
34
+ },
35
+ };
36
+ }
37
+ if (protocol === 'responses') {
38
+ return {
39
+ url: `${hubUrl}/v1/responses`,
40
+ init: {
41
+ method: 'POST',
42
+ headers,
43
+ body: JSON.stringify({
44
+ model: alias,
45
+ stream,
46
+ store: false,
47
+ ...(stream ? {} : { max_output_tokens: 1 }),
48
+ input: [{ role: 'user', content: [{ type: 'input_text', text: 'ping' }] }],
49
+ }),
50
+ signal: AbortSignal.timeout(TIMEOUT_MS),
51
+ },
52
+ };
53
+ }
54
+ return {
55
+ url: `${hubUrl}/v1/chat/completions`,
56
+ init: {
57
+ method: 'POST',
58
+ headers,
59
+ body: JSON.stringify({
60
+ model: alias,
61
+ max_tokens: 1,
62
+ stream,
63
+ messages: [{ role: 'user', content: 'ping' }],
64
+ }),
65
+ signal: AbortSignal.timeout(TIMEOUT_MS),
66
+ },
67
+ };
68
+ }
69
+ /** The hub's error body shape ({error:{message}}) is user-ready; OpenAI-style
70
+ * backends answer with a bare {detail} — both pass through. Anything else
71
+ * (edge HTML, non-JSON) collapses to the raw status (statusText is empty on
72
+ * HTTP/2 and behind many proxies, so it is the honest floor). */
73
+ async function errorDetail(res) {
74
+ const data = (await res.json().catch(() => ({})));
75
+ return data.error?.message ?? data.detail ?? `HTTP ${res.status}`;
76
+ }
77
+ /** One offering row, one ping. `fetchImpl` is the test seam. The catalog's
78
+ * alias is already the full namespaced model name (`producer/name`). */
79
+ export async function pingOffering(hubUrl, token, row, fetchImpl = fetch) {
80
+ const alias = row.alias;
81
+ const base = { alias, protocol: row.protocol };
82
+ const started = Date.now();
83
+ let res;
84
+ try {
85
+ const { url, init } = pingRequest(hubUrl, token, alias, row.protocol);
86
+ res = await fetchImpl(url, init);
87
+ }
88
+ catch (err) {
89
+ return {
90
+ ...base,
91
+ ok: false,
92
+ status: null,
93
+ ms: Date.now() - started,
94
+ detail: errorMessage(err, TIMEOUT_MS),
95
+ };
96
+ }
97
+ const ms = Date.now() - started;
98
+ // stream-only upstreams (e.g. chatgpt's responses backend) reject
99
+ // stream:false with a named 400 — retry once in the shape they accept
100
+ // before reporting a failure that streaming clients never see
101
+ if (res.status === 400 && row.protocol === 'responses') {
102
+ const detail = await errorDetail(res);
103
+ if (/stream must be set to true/i.test(detail)) {
104
+ const retry = await pingOnce(hubUrl, token, row, alias, true, fetchImpl);
105
+ return retry.ok
106
+ ? { ...retry, detail: `${retry.detail} — upstream accepts streaming clients only` }
107
+ : retry;
108
+ }
109
+ return { ...base, ok: false, status: res.status, ms, detail };
110
+ }
111
+ if (!res.ok) {
112
+ return { ...base, ok: false, status: res.status, ms, detail: await errorDetail(res) };
113
+ }
114
+ return { ...base, ok: true, status: res.status, ms, detail: await servedDetail(res) };
115
+ }
116
+ /** The streaming retry path — collects the SSE stream so the connection
117
+ * closes, then reports on any 2xx. */
118
+ async function pingOnce(hubUrl, token, row, alias, stream, fetchImpl) {
119
+ const base = { alias, protocol: row.protocol };
120
+ const started = Date.now();
121
+ try {
122
+ const { url, init } = pingRequest(hubUrl, token, alias, row.protocol, stream);
123
+ const res = await fetchImpl(url, init);
124
+ const ms = Date.now() - started;
125
+ if (!res.ok) {
126
+ return { ...base, ok: false, status: res.status, ms, detail: await errorDetail(res) };
127
+ }
128
+ return { ...base, ok: true, status: res.status, ms, detail: await servedDetail(res) };
129
+ }
130
+ catch (err) {
131
+ return {
132
+ ...base,
133
+ ok: false,
134
+ status: null,
135
+ ms: Date.now() - started,
136
+ detail: errorMessage(err, TIMEOUT_MS),
137
+ };
138
+ }
139
+ }
140
+ /** What the response itself reported — the served model id when present,
141
+ * 'ok' otherwise. Consistency evidence for the catalog's declaration. */
142
+ async function servedDetail(res) {
143
+ try {
144
+ const served = selfReportedModel((await res.json()));
145
+ return served ? `served '${served}'` : 'ok';
146
+ }
147
+ catch {
148
+ return 'ok'; // SSE or non-JSON: nothing self-reported to audit
149
+ }
150
+ }
151
+ /** Ping every offering row sequentially: the hub rate-limits each consumer
152
+ * (rps/burst), and parallel pings would trip that limiter and misreport.
153
+ * `onResult` fires with the settled row as each ping lands — the CLI streams
154
+ * one line per row instead of going silent for the whole run. */
155
+ export async function runPings(hubUrl, token, rows, fetchImpl = fetch, onResult) {
156
+ const results = [];
157
+ for (const row of rows) {
158
+ const result = await pingOffering(hubUrl, token, row, fetchImpl);
159
+ results.push(result);
160
+ onResult?.(result, row);
161
+ }
162
+ return { ok: results.every((r) => r.ok), results };
163
+ }
164
+ //# sourceMappingURL=ping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ping.js","sourceRoot":"","sources":["../src/ping.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type ModelComparison } from 'aweshare-protocol';
2
+ import type { PingResult } from './ping.js';
2
3
  /** Left-aligned columns with two-space gutters. */
3
4
  export declare function formatTable(headers: string[], rows: string[][]): string;
4
5
  export interface CatalogRow {
@@ -13,6 +14,11 @@ export interface CatalogRow {
13
14
  observedModel?: string | null;
14
15
  modelVerified?: boolean | null;
15
16
  modelMatch?: ModelComparison | null;
17
+ /** ISO instant of the hub's freshest evidence that this offering served:
18
+ * the last self-naming response or the serving side's last-reported
19
+ * success, whichever is newer. Undefined on hubs that predate it, null
20
+ * when nothing has ever succeeded — rendered as LAST SEEN. */
21
+ hubCheckAt?: string | null;
16
22
  /** Concurrent-requests cap per consumer; pre-v0.4.3 hubs don't report it. */
17
23
  maxConcurrencyPerUser?: number;
18
24
  maxConcurrentUsers: number;
@@ -33,8 +39,36 @@ export declare function filterCatalog(rows: CatalogRow[], all: boolean): Catalog
33
39
  * apps/agent/src/table.ts with the shared headers: the observed id, '✗'-marked
34
40
  * when it disagrees with the declaration, '-' when nothing was observed. */
35
41
  export declare function observedCell(observedModel: string | null | undefined, modelVerified: boolean | null | undefined, modelMatch?: ModelComparison | null): string;
36
- /** The offering table every CLI renders — same column spec as hub list offerings and
37
- * producer list (locked together by a cross-CLI test in apps/hub/test).
38
- * OBSERVED MODEL is what the upstream itself served: a '✗' marks a
39
- * declaration that doesn't hold. */
42
+ /** The LAST SEEN cell — kept verbatim in apps/hub/src/table.ts and
43
+ * apps/agent/src/table.ts: how long ago the hub's freshest evidence says this
44
+ * offering actually served ('-' when it never did or the hub can't tell). */
45
+ export declare function lastSeenCell(hubCheckAt: string | null | undefined, now?: number): string;
46
+ /** Catalog rows grouped per alias (each group = one display line), in list
47
+ * order. */
48
+ export declare function catalogGroups(rows: CatalogRow[]): CatalogRow[][];
49
+ /** One display line for an alias group. With `pings` (one entry per row of
50
+ * the group, same order — a PingResult, or null for a row that was shown but
51
+ * not pinged), the RESULT/TIME/DETAIL cells join in after LAST SEEN: the
52
+ * hub's claim and the consumer's own proof side by side. */
53
+ export declare function catalogCells(list: CatalogRow[], pings?: (PingResult | null)[]): string[];
54
+ /** Headers shared by every offering table (consumer list, hub list offerings,
55
+ * producer list — locked together by a cross-CLI test in apps/hub/test);
56
+ * `--ping` inserts its three proof columns after LAST SEEN. */
57
+ export declare const CATALOG_HEADERS: readonly ["PRODUCER", "ALIAS", "LAST SEEN", "OBSERVED MODEL", "PROTOCOL", "STATUS", "MAX USERS", "IN USE", "PER USER", "DAILY TOKENS", "REMAINING"];
58
+ export declare const PING_HEADERS: readonly ["RESULT", "TIME", "DETAIL"];
59
+ export declare function catalogHeaders(withPing: boolean): string[];
60
+ /** The offering table every CLI renders — same column spec as hub list
61
+ * offerings and producer list (locked together by a cross-CLI test in
62
+ * apps/hub/test). OBSERVED MODEL is what the upstream itself served: a '✗'
63
+ * marks a declaration that doesn't hold; LAST SEEN is how long ago the hub's
64
+ * evidence says it last served. */
40
65
  export declare function renderCatalog(rows: CatalogRow[]): string;
66
+ /** The `list --ping` table rendered all at once: same rows plus the
67
+ * consumer's own proof columns, one merged line per alias. The live CLI
68
+ * streams instead — header once, then one line per offering row as its ping
69
+ * lands (SKIP rows up front) — tests use this as the at-once reference for
70
+ * cell shapes. */
71
+ export declare function renderPingCatalog(rows: CatalogRow[], pings: Map<string, PingResult | null>): string;
72
+ /** Identity of one pingable catalog row — an alias may speak several
73
+ * protocols, so the offering's (alias, protocol) pair is the key. */
74
+ export declare function pingKey(row: Pick<CatalogRow, 'alias' | 'protocol'>): string;
@@ -26,11 +26,34 @@ export function observedCell(observedModel, modelVerified, modelMatch) {
26
26
  return `${observedModel} ✗`;
27
27
  return modelMatch === 'insufficient' ? `${observedModel} ?` : observedModel;
28
28
  }
29
+ /** The LAST SEEN cell — kept verbatim in apps/hub/src/table.ts and
30
+ * apps/agent/src/table.ts: how long ago the hub's freshest evidence says this
31
+ * offering actually served ('-' when it never did or the hub can't tell). */
32
+ export function lastSeenCell(hubCheckAt, now = Date.now()) {
33
+ if (hubCheckAt === undefined || hubCheckAt === null)
34
+ return '-';
35
+ const ms = Date.parse(hubCheckAt);
36
+ if (!Number.isFinite(ms))
37
+ return '-';
38
+ const age = Math.max(0, now - ms);
39
+ if (age < 60_000)
40
+ return 'just now';
41
+ if (age < 3_600_000)
42
+ return `${Math.floor(age / 60_000)}m ago`;
43
+ if (age < 86_400_000)
44
+ return `${Math.floor(age / 3_600_000)}h ago`;
45
+ return `${Math.floor(age / 86_400_000)}d ago`;
46
+ }
29
47
  /** One alias may speak several protocols (one hub row each); the table shows
30
48
  * one line per alias with the protocols joined. Other columns join differing
31
49
  * values with '/' so nothing is hidden; usage is metered per alias on the hub,
32
50
  * so identical rows collapse to a single number. */
33
51
  function mergeByAlias(rows) {
52
+ return catalogGroups(rows).map((list) => catalogCells(list));
53
+ }
54
+ /** Catalog rows grouped per alias (each group = one display line), in list
55
+ * order. */
56
+ export function catalogGroups(rows) {
34
57
  const groups = new Map();
35
58
  for (const row of rows) {
36
59
  const key = `${row.producer}/${row.alias}`;
@@ -38,41 +61,72 @@ function mergeByAlias(rows) {
38
61
  list.push(row);
39
62
  groups.set(key, list);
40
63
  }
41
- return [...groups.values()].map((list) => {
42
- const first = list[0];
43
- const join = (pick, sep = '/') => [...new Set(list.map(pick))].join(sep);
44
- return [
45
- first?.producer ?? '',
46
- first?.alias ?? '',
47
- join((r) => observedCell(r.observedModel, r.modelVerified, r.modelMatch)),
48
- join((r) => protocolLabel(r.protocol), ', '),
49
- join((r) => r.status),
50
- join((r) => String(r.maxConcurrentUsers)),
51
- join((r) => (r.activeUsers === undefined ? '-' : `${r.activeUsers}/${r.maxConcurrentUsers}`)),
52
- join((r) => (r.maxConcurrencyPerUser === undefined ? '-' : String(r.maxConcurrencyPerUser))),
53
- join((r) => (r.dailyTokens === 0 ? '∞' : String(r.dailyTokens))),
54
- join((r) => r.dailyTokens === 0 ? '∞' : String(Math.max(0, r.dailyTokens - r.usedDailyTokens))),
55
- ];
56
- });
64
+ return [...groups.values()];
65
+ }
66
+ /** One display line for an alias group. With `pings` (one entry per row of
67
+ * the group, same order — a PingResult, or null for a row that was shown but
68
+ * not pinged), the RESULT/TIME/DETAIL cells join in after LAST SEEN: the
69
+ * hub's claim and the consumer's own proof side by side. */
70
+ export function catalogCells(list, pings) {
71
+ const first = list[0];
72
+ const join = (pick, sep = '/') => [...new Set(list.map(pick))].join(sep);
73
+ const cells = [first?.producer ?? '', first?.alias ?? '', join((r) => lastSeenCell(r.hubCheckAt))];
74
+ if (pings !== undefined) {
75
+ const done = pings.filter((p) => p !== null);
76
+ const cell = (pick, sep) => [...new Set(done.map(pick))].join(sep);
77
+ cells.push(done.length === 0 && pings.length > 0
78
+ ? 'SKIP'
79
+ : cell((p) => (p.ok ? 'ok' : `FAIL (${p.status ?? 'network'})`), '/'), done.length === 0 && pings.length > 0 ? '-' : cell((p) => `${p.ms}ms`, '/'), done.length === 0 && pings.length > 0 ? 'not pinged' : cell((p) => p.detail, ' / '));
80
+ }
81
+ cells.push(join((r) => observedCell(r.observedModel, r.modelVerified, r.modelMatch)), join((r) => protocolLabel(r.protocol), ', '), join((r) => r.status), join((r) => String(r.maxConcurrentUsers)), join((r) => (r.activeUsers === undefined ? '-' : `${r.activeUsers}/${r.maxConcurrentUsers}`)), join((r) => (r.maxConcurrencyPerUser === undefined ? '-' : String(r.maxConcurrencyPerUser))), join((r) => (r.dailyTokens === 0 ? '∞' : String(r.dailyTokens))), join((r) => r.dailyTokens === 0 ? '∞' : String(Math.max(0, r.dailyTokens - r.usedDailyTokens))));
82
+ return cells;
57
83
  }
58
- /** The offering table every CLI renders — same column spec as hub list offerings and
59
- * producer list (locked together by a cross-CLI test in apps/hub/test).
60
- * OBSERVED MODEL is what the upstream itself served: a '✗' marks a
61
- * declaration that doesn't hold. */
84
+ /** Headers shared by every offering table (consumer list, hub list offerings,
85
+ * producer list — locked together by a cross-CLI test in apps/hub/test);
86
+ * `--ping` inserts its three proof columns after LAST SEEN. */
87
+ export const CATALOG_HEADERS = [
88
+ 'PRODUCER',
89
+ 'ALIAS',
90
+ 'LAST SEEN',
91
+ 'OBSERVED MODEL',
92
+ 'PROTOCOL',
93
+ 'STATUS',
94
+ 'MAX USERS',
95
+ 'IN USE',
96
+ 'PER USER',
97
+ 'DAILY TOKENS',
98
+ 'REMAINING',
99
+ ];
100
+ export const PING_HEADERS = ['RESULT', 'TIME', 'DETAIL'];
101
+ export function catalogHeaders(withPing) {
102
+ return withPing
103
+ ? [...CATALOG_HEADERS.slice(0, 3), ...PING_HEADERS, ...CATALOG_HEADERS.slice(3)]
104
+ : [...CATALOG_HEADERS];
105
+ }
106
+ /** The offering table every CLI renders — same column spec as hub list
107
+ * offerings and producer list (locked together by a cross-CLI test in
108
+ * apps/hub/test). OBSERVED MODEL is what the upstream itself served: a '✗'
109
+ * marks a declaration that doesn't hold; LAST SEEN is how long ago the hub's
110
+ * evidence says it last served. */
62
111
  export function renderCatalog(rows) {
63
112
  if (rows.length === 0)
64
113
  return 'no offerings on this hub yet';
65
- return formatTable([
66
- 'PRODUCER',
67
- 'ALIAS',
68
- 'OBSERVED MODEL',
69
- 'PROTOCOL',
70
- 'STATUS',
71
- 'MAX USERS',
72
- 'IN USE',
73
- 'PER USER',
74
- 'DAILY TOKENS',
75
- 'REMAINING',
76
- ], mergeByAlias(rows));
114
+ return formatTable(catalogHeaders(false), mergeByAlias(rows));
115
+ }
116
+ /** The `list --ping` table rendered all at once: same rows plus the
117
+ * consumer's own proof columns, one merged line per alias. The live CLI
118
+ * streams instead — header once, then one line per offering row as its ping
119
+ * lands (SKIP rows up front) — tests use this as the at-once reference for
120
+ * cell shapes. */
121
+ export function renderPingCatalog(rows, pings) {
122
+ if (rows.length === 0)
123
+ return 'no offerings on this hub yet';
124
+ const groups = catalogGroups(rows);
125
+ return formatTable(catalogHeaders(true), groups.map((list) => catalogCells(list, list.map((r) => pings.get(pingKey(r)) ?? null))));
126
+ }
127
+ /** Identity of one pingable catalog row — an alias may speak several
128
+ * protocols, so the offering's (alias, protocol) pair is the key. */
129
+ export function pingKey(row) {
130
+ return `${row.alias}|${row.protocol}`;
77
131
  }
78
132
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../src/table.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAwB,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAGvE,mDAAmD;AACnD,MAAM,UAAU,WAAW,CAAC,OAAiB,EAAE,IAAgB;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/F,MAAM,IAAI,GAAG,CAAC,KAAe,EAAU,EAAE,CACvC,KAAK;SACF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SACvC,IAAI,CAAC,IAAI,CAAC;SACV,OAAO,EAAE,CAAA;IACd,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC;AA+BD;;;gFAGgF;AAChF,MAAM,UAAU,aAAa,CAAC,IAAkB,EAAE,GAAY;IAC5D,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;AAC1F,CAAC;AAED;;4EAE4E;AAC5E,MAAM,UAAU,YAAY,CAC1B,aAAwC,EACxC,aAAyC,EACzC,UAAmC;IAEnC,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IACrE,IAAI,UAAU,KAAK,UAAU,IAAI,aAAa,KAAK,KAAK;QAAE,OAAO,GAAG,aAAa,IAAI,CAAA;IACrF,OAAO,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,CAAC,CAAC,CAAC,aAAa,CAAA;AAC7E,CAAC;AAED;;6EAE6E;AAC7E,MAAM,UAAU,YAAY,CAAC,UAAqC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAClF,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC/D,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAA;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAA;IACjC,IAAI,GAAG,GAAG,MAAM;QAAE,OAAO,UAAU,CAAA;IACnC,IAAI,GAAG,GAAG,SAAS;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,CAAA;IAC9D,IAAI,GAAG,GAAG,UAAU;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,OAAO,CAAA;IAClE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,CAAC;AAED;;;oDAGoD;AACpD,SAAS,YAAY,CAAC,IAAkB;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED;YACY;AACZ,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,KAAK,EAAE,CAAA;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED;;;4DAG4D;AAC5D,MAAM,UAAU,YAAY,CAAC,IAAkB,EAAE,KAA6B;IAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,IAAI,GAAG,CAAC,IAA+B,EAAE,GAAG,GAAG,GAAG,EAAU,EAAE,CAClE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACxC,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAClG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAmB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;QAC7D,MAAM,IAAI,GAAG,CAAC,IAA+B,EAAE,GAAW,EAAU,EAAE,CACpE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxC,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YACnC,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE,GAAG,CAAC,EACvE,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAC3E,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CACpF,CAAA;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,EACzE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,EAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EACrB,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,EACzC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAC7F,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,qBAAqB,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAC5F,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAChE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACT,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CACnF,CACF,CAAA;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;+DAE+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,UAAU;IACV,OAAO;IACP,WAAW;IACX,gBAAgB;IAChB,UAAU;IACV,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,UAAU;IACV,cAAc;IACd,WAAW;CACH,CAAA;AAEV,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAA;AAEjE,MAAM,UAAU,cAAc,CAAC,QAAiB;IAC9C,OAAO,QAAQ;QACb,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,YAAY,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAA;AAC1B,CAAC;AAED;;;;mCAImC;AACnC,MAAM,UAAU,aAAa,CAAC,IAAkB;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAA;IAC5D,OAAO,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED;;;;kBAIkB;AAClB,MAAM,UAAU,iBAAiB,CAC/B,IAAkB,EAClB,KAAqC;IAErC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,8BAA8B,CAAA;IAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAClC,OAAO,WAAW,CAChB,cAAc,CAAC,IAAI,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClB,YAAY,CACV,IAAI,EACJ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAC/C,CACF,CACF,CAAA;AACH,CAAC;AAED;qEACqE;AACrE,MAAM,UAAU,OAAO,CAAC,GAA2C;IACjE,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAA;AACvC,CAAC"}
@@ -197,6 +197,7 @@ Options:
197
197
  --max-concurrent N Max in-flight requests.
198
198
  --tpm N Max tokens in any sliding 60s window.
199
199
  --max-total-tokens N Lifetime token budget.
200
+ --probe-budget N 'ping'-shaped probe requests per day (0 = unlimited).
200
201
  --clear Drop every override (back to hub-wide defaults).
201
202
  --json Print the raw API response instead of text.
202
203
  -h, --help Show this message and exit.`,
@@ -380,6 +381,7 @@ const LIMIT_FLAGS = [
380
381
  ['max-concurrent', 'maxConcurrent'],
381
382
  ['tpm', 'tpm'],
382
383
  ['max-total-tokens', 'maxTotalTokens'],
384
+ ['probe-budget', 'probeBudget'],
383
385
  ];
384
386
  /** 'rps=5, maxConcurrent=2' or the none-line when nothing is overridden. */
385
387
  function fmtLimits(name, overrides) {