aweshare 0.5.5 → 0.5.7

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 (63) hide show
  1. package/README.ai.md +7 -7
  2. package/README.md +26 -11
  3. package/apps/agent/dist/config.d.ts +1 -1
  4. package/apps/agent/dist/config.js +2 -0
  5. package/apps/agent/dist/config.js.map +1 -1
  6. package/apps/agent/dist/connection.js +9 -4
  7. package/apps/agent/dist/connection.js.map +1 -1
  8. package/apps/agent/dist/doctor.js +55 -19
  9. package/apps/agent/dist/doctor.js.map +1 -1
  10. package/apps/agent/dist/table.d.ts +19 -2
  11. package/apps/agent/dist/table.js +28 -3
  12. package/apps/agent/dist/table.js.map +1 -1
  13. package/apps/consumer/dist/cli.js +1 -1
  14. package/apps/consumer/dist/cli.js.map +1 -1
  15. package/apps/consumer/dist/table.d.ts +17 -2
  16. package/apps/consumer/dist/table.js +18 -3
  17. package/apps/consumer/dist/table.js.map +1 -1
  18. package/apps/hub/dist/admin.d.ts +2 -0
  19. package/apps/hub/dist/admin.js +33 -1
  20. package/apps/hub/dist/admin.js.map +1 -1
  21. package/apps/hub/dist/cli.js +170 -124
  22. package/apps/hub/dist/cli.js.map +1 -1
  23. package/apps/hub/dist/config.d.ts +6 -1
  24. package/apps/hub/dist/config.js +42 -1
  25. package/apps/hub/dist/config.js.map +1 -1
  26. package/apps/hub/dist/consumer.d.ts +34 -3
  27. package/apps/hub/dist/consumer.js +100 -8
  28. package/apps/hub/dist/consumer.js.map +1 -1
  29. package/apps/hub/dist/db.d.ts +38 -2
  30. package/apps/hub/dist/db.js +80 -8
  31. package/apps/hub/dist/db.js.map +1 -1
  32. package/apps/hub/dist/local.d.ts +12 -2
  33. package/apps/hub/dist/local.js +26 -7
  34. package/apps/hub/dist/local.js.map +1 -1
  35. package/apps/hub/dist/meter.d.ts +6 -1
  36. package/apps/hub/dist/meter.js +14 -0
  37. package/apps/hub/dist/meter.js.map +1 -1
  38. package/apps/hub/dist/server.js +4 -2
  39. package/apps/hub/dist/server.js.map +1 -1
  40. package/apps/hub/dist/table.d.ts +20 -3
  41. package/apps/hub/dist/table.js +35 -10
  42. package/apps/hub/dist/table.js.map +1 -1
  43. package/package.json +2 -1
  44. package/packages/producer-core/dist/adapters.d.ts +3 -6
  45. package/packages/producer-core/dist/adapters.js +8 -7
  46. package/packages/producer-core/dist/adapters.js.map +1 -1
  47. package/packages/producer-core/dist/health.d.ts +25 -2
  48. package/packages/producer-core/dist/health.js +77 -4
  49. package/packages/producer-core/dist/health.js.map +1 -1
  50. package/packages/producer-core/dist/index.d.ts +1 -0
  51. package/packages/producer-core/dist/index.js +1 -0
  52. package/packages/producer-core/dist/index.js.map +1 -1
  53. package/packages/producer-core/dist/job.js +9 -8
  54. package/packages/producer-core/dist/job.js.map +1 -1
  55. package/packages/producer-core/dist/proxy.d.ts +21 -0
  56. package/packages/producer-core/dist/proxy.js +77 -0
  57. package/packages/producer-core/dist/proxy.js.map +1 -0
  58. package/packages/protocol/dist/index.d.ts +1 -0
  59. package/packages/protocol/dist/index.js +1 -0
  60. package/packages/protocol/dist/index.js.map +1 -1
  61. package/packages/protocol/dist/models.d.ts +23 -0
  62. package/packages/protocol/dist/models.js +72 -0
  63. package/packages/protocol/dist/models.js.map +1 -0
@@ -18,10 +18,11 @@ Commands:
18
18
  init Create the data dir, pepper, and admin token.
19
19
  serve Run the hub server.
20
20
  produce Run the hub serving its own models too (alias namespace hub/...).
21
- invite Mint one-time invite codes; --list shows the invite ledger.
21
+ invite Mint one-time invite codes (producers or consumers).
22
+ list Read hub state: invites (the ledger) or usage (consumption).
22
23
  limits Show, set or clear one consumer's limit overrides.
23
- usage Aggregated consumption per consumer × model (default) or --details.
24
- status Live state: capacity, producer/consumer rosters, offering health.
24
+ status Live state: capacity, offering health; rosters print with --all.
25
+ offering Block or restore one offering alias (the per-alias scalpel).
25
26
  revoke Kill an invite: pending stops pairing, redeemed suspends its identity.
26
27
  restore Undo a revoke: pending pairs again, redeemed revives its identity.`;
27
28
  const COMMAND_HELP = {
@@ -64,15 +65,11 @@ Options:
64
65
  -h, --help Show this message and exit.`,
65
66
  invite: `Usage: aweshare hub invite [OPTIONS]
66
67
 
67
- Mint one-time invite codes (printed once; recover with: invite --list
68
- --reveal) or, with --list, show the invite ledger: every code, the identity
69
- it minted and its lifecycle (pending/used/suspended/revoked/expired).
68
+ Mint one-time invite codes (printed once; recover with: aweshare hub list
69
+ invites --reveal). Listing lives under 'list invites' on purpose — minting
70
+ sends real codes, reading the ledger never should.
70
71
 
71
72
  Options:
72
- --list Show the invite ledger instead of minting.
73
- --reveal --list only: show the full invite codes (asi_...).
74
- --token --list only: also show the full minted token (asp_/asc_...)
75
- with last seen.
76
73
  --role ROLE producer (default) or consumer — a consumer code redeems into
77
74
  an asc_ token the consumer pastes into their SDK env vars.
78
75
  --name NAME Bind the codes to one name (required for --role consumer;
@@ -82,52 +79,74 @@ Options:
82
79
  since identity expiry landed, this also bounds the minted
83
80
  token's lifetime; 'none' mints a code (and identity) that
84
81
  never expires.
85
- --json --list only: print the raw API response instead of a table.
86
82
  -h, --help Show this message and exit.`,
83
+ list: `Usage: aweshare hub list [invites|usage] [OPTIONS]
84
+
85
+ Read hub state (default: invites). The rosters and offering health live in
86
+ 'aweshare hub status'; this is the ledger and the meter.
87
+
88
+ Commands:
89
+ invites The invite ledger: every code, the identity it minted and its
90
+ lifecycle (pending/used/suspended/revoked/expired).
91
+ usage Who used how much: aggregated on the hub's SQLite, one row per
92
+ consumer × model (default) — a person's rows stay together,
93
+ busiest person and busiest model first. --details switches to the
94
+ request log instead: newest first, one row per request, zero
95
+ content stored, each row naming the consumer that made it.
96
+
97
+ Options:
98
+ --reveal Invites only: show the full invite codes (asi_...).
99
+ --token Invites only: also show the full minted token
100
+ (asp_/asc_...) with last seen.
101
+ --details Usage only: show the per-request log instead of the summary.
102
+ --consumer NAME Usage only: only rows for this consumer.
103
+ --producer NAME Usage only: only rows for this producer.
104
+ --alias ALIAS Usage only: only rows for this alias (ns/model).
105
+ --group-by KEY Usage only: consumer × model (default), consumer or alias.
106
+ --since DUR Usage only: window: 30m, 12h, 7d (default), 30d… or all.
107
+ --limit N Usage --details only: rows to show, 1..1000 (default 100).
108
+ --json Print the raw API response instead of a table.
109
+ -h, --help Show this message and exit.`,
87
110
  limits: `Usage: aweshare hub limits NAME [OPTIONS]
88
111
 
89
112
  Show, set or clear one consumer's limit overrides. Unset keys keep the
90
113
  hub-wide defaults (AWESHARE_CONSUMER_* env vars); setting merges into
91
114
  what is already stored.
92
115
 
93
- Options:
94
- --rps N Requests per second (may be fractional).
95
- --burst N Token-bucket burst size.
96
- --max-concurrent N Max in-flight requests.
97
- --tpm N Max tokens in any sliding 60s window.
98
- --max-total-tokens N Lifetime token budget.
99
- --clear Drop every override (back to hub-wide defaults).
100
- --json Print the raw API response instead of text.
101
- -h, --help Show this message and exit.`,
102
- usage: `Usage: aweshare hub usage [OPTIONS]
103
-
104
- Who used how much: aggregated on the hub's SQLite, one row per consumer ×
105
- model (default) — a person's rows stay together, busiest person and busiest
106
- model first. Narrow with --consumer/--producer/--alias.
116
+ Options:
117
+ --rps N Requests per second (may be fractional).
118
+ --burst N Token-bucket burst size.
119
+ --max-concurrent N Max in-flight requests.
120
+ --tpm N Max tokens in any sliding 60s window.
121
+ --max-total-tokens N Lifetime token budget.
122
+ --clear Drop every override (back to hub-wide defaults).
123
+ --json Print the raw API response instead of text.
124
+ -h, --help Show this message and exit.`,
125
+ status: `Usage: aweshare hub status [OPTIONS]
107
126
 
108
- --details switches to the request log instead: newest first, one row per
109
- request, zero content stored, each row naming the consumer that made it.
127
+ The hub's live state: capacity, offering health and the effective hub-wide
128
+ consumer defaults. No tokens or request contents appear. Offerings are
129
+ counted per deduplicated alias (one alias, several protocols, one verdict —
130
+ the worst); the alias table uses the same columns as 'consumer list' and
131
+ 'producer list', sorted worst status first, with live occupancy (IN USE
132
+ n/max) and today's remaining daily tokens. The last-5m health line comes
133
+ from the usage summary — admission 429s are never metered, so it reflects
134
+ relayed outcomes only. The producer/consumer rosters are counts here; pass
135
+ --all to print them in full.
110
136
 
111
137
  Options:
112
- --details Show the per-request log instead of the summary.
113
- --consumer NAME Only rows for this consumer.
114
- --producer NAME Only rows for this producer.
115
- --alias ALIAS Only rows for this alias (ns/model).
116
- --group-by KEY consumer × model (default), consumer or alias.
117
- --since DUR Window: 30m, 12h, 7d (default), 30d… or all.
118
- --limit N --details only: rows to show, 1..1000 (default 100).
119
- --json Print the raw API response instead of a table.
120
- -h, --help Show this message and exit.`,
121
- status: `Usage: aweshare hub status
138
+ --all Also print the producer and consumer rosters (name, status,
139
+ online state, last seen).
140
+ -h, --help Show this message and exit.`,
141
+ offering: `Usage: aweshare hub offering block|restore ALIAS
122
142
 
123
- The hub's live state: capacity, the producer and consumer rosters, offering
124
- health and the effective hub-wide consumer defaults. No tokens or request
125
- contents appear. Offerings are counted per deduplicated alias (one alias,
126
- several protocols, one verdict — the worst); the alias table uses the same
127
- columns as 'consumer list' and 'producer list', sorted worst status first,
128
- with live occupancy (IN USE n/max) and today's remaining daily tokens.
129
- The last-5m health line comes from the usage summary — admission 429s are
130
- never metered, so it reflects relayed outcomes only.
143
+ Block one offering alias (every protocol row of it) or bring it back — the
144
+ scalpel between doing nothing and revoking the whole producer. A block 503s
145
+ new requests with OFFERING_BLOCKED while the producer's other offerings
146
+ keep serving; status shows 'blocked'. Manual blocks survive producer
147
+ re-registers; auto blocks (repeated model mismatch, only when
148
+ autoBlockModelMismatch is enabled) clear once the producer re-declares a
149
+ different upstreamModel.
131
150
 
132
151
  Options:
133
152
  -h, --help Show this message and exit.`,
@@ -136,14 +155,14 @@ Options:
136
155
  Kill an invite: pending stops pairing, redeemed suspends its identity.
137
156
 
138
157
  Options:
139
- --id N The invite id (see: aweshare hub invite --list).
158
+ --id N The invite id (see: aweshare hub list invites).
140
159
  -h, --help Show this message and exit.`,
141
160
  restore: `Usage: aweshare hub restore [OPTIONS]
142
161
 
143
162
  Undo a revoke: pending pairs again, redeemed revives its identity.
144
163
 
145
164
  Options:
146
- --id N The invite id (see: aweshare hub invite --list).
165
+ --id N The invite id (see: aweshare hub list invites).
147
166
  -h, --help Show this message and exit.`,
148
167
  };
149
168
  function parseArgs(argv) {
@@ -236,7 +255,7 @@ function noPositionals(cmd, positional) {
236
255
  function requireId(flags) {
237
256
  const id = flags.get('id');
238
257
  if (!id)
239
- fail('--id is required (find ids with: aweshare hub invite --list)');
258
+ fail('--id is required (find ids with: aweshare hub list invites)');
240
259
  return id;
241
260
  }
242
261
  /** CLI flag name -> API key of the sparse limit override object. */
@@ -337,33 +356,12 @@ async function main() {
337
356
  }
338
357
  case 'invite': {
339
358
  noPositionals(cmd, positional);
340
- const api = adminApi();
341
- // --list switches to the ledger view: every invite, the identity it
342
- // minted and its lifecycle — the roster `revoke`/`restore` ids come from
343
- if (flags.get('list') === 'true') {
344
- for (const f of ['role', 'name', 'count', 'expires-in']) {
345
- if (flags.has(f))
346
- fail(`--${f} mints codes — drop it when passing --list`);
347
- }
348
- const reveal = flags.get('reveal') === 'true';
349
- const tokens = flags.get('token') === 'true';
350
- const params = new URLSearchParams();
351
- if (reveal)
352
- params.set('reveal', 'true');
353
- if (tokens)
354
- params.set('token', 'true');
355
- const qs = params.toString();
356
- const data = (await api('GET', `/admin/v1/invites${qs ? `?${qs}` : ''}`));
357
- if (flags.get('json') === 'true') {
358
- console.log(JSON.stringify(data, null, 2));
359
- return;
360
- }
361
- console.log(renderInvites(data.invites, reveal, tokens));
362
- if (!reveal && !tokens && data.invites.length > 0) {
363
- console.log('\nmore: --reveal (full codes), --token (minted tokens)');
364
- }
365
- return;
359
+ // minting is the one state-changing read-adjacent verb — refuse the old
360
+ // ledger flag loudly instead of silently minting a code
361
+ if (flags.has('list')) {
362
+ fail("'hub invite --list' became its own command — the ledger is: aweshare hub list invites");
366
363
  }
364
+ const api = adminApi();
367
365
  const body = {};
368
366
  const role = flags.get('role') ?? 'producer';
369
367
  if (role !== 'producer' && role !== 'consumer')
@@ -395,64 +393,48 @@ async function main() {
395
393
  for (const invite of out.invites)
396
394
  console.log(invite.code);
397
395
  if (role === 'consumer') {
398
- console.error('(save this now; codes print only here — re-view later with: aweshare hub invite --list --reveal.\n' +
396
+ console.error('(save this now; codes print only here — re-view later with: aweshare hub list invites --reveal.\n' +
399
397
  `hand it to '${name}' — they redeem it and keep the returned asc_ token:\n` +
400
398
  ' aweshare consumer join --hub https://YOUR-HUB --code CODE\n' +
401
399
  'no aweshare installed? curl -s -X POST https://YOUR-HUB/invites/v1/redeem -H \'content-type: application/json\' -d \'{"code":"asi_..."}\')');
402
400
  }
403
401
  else {
404
402
  console.error(name
405
- ? '(save these now; codes print only here — re-view later with: aweshare hub invite --list --reveal. redeem: aweshare producer join --hub URL --code CODE)'
406
- : '(save these now; codes print only here — re-view later with: aweshare hub invite --list --reveal. redeem: aweshare producer join --hub URL --code CODE --name NAME --email YOU@EXAMPLE.COM)');
403
+ ? '(save these now; codes print only here — re-view later with: aweshare hub list invites --reveal. redeem: aweshare producer join --hub URL --code CODE)'
404
+ : '(save these now; codes print only here — re-view later with: aweshare hub list invites --reveal. redeem: aweshare producer join --hub URL --code CODE --name NAME --email YOU@EXAMPLE.COM)');
407
405
  }
408
406
  return;
409
407
  }
410
- case 'list':
411
- // removed: the read commands are status (live state) and usage (history);
412
- // the invite ledger lives under its own verb now
413
- return fail("'hub list' is gone — invites: 'aweshare hub invite --list', producer/consumer rosters: 'aweshare hub status'");
414
- case 'limits': {
415
- const name = positional[0];
416
- if (!name)
417
- fail('consumer name is required (see: aweshare hub limits -h)');
408
+ case 'list': {
409
+ // the read verbs: the invite ledger and the meter (rosters and offering
410
+ // health are `status`); bare `list` defaults to the ledger
411
+ const sub = positional[0] ?? 'invites';
418
412
  if (positional[1])
419
- fail(`unexpected argument '${positional[1]}' (see: aweshare hub limits -h)`);
420
- const api = adminApi();
421
- const path = `/admin/v1/consumers/${encodeURIComponent(name)}/limits`;
422
- const json = flags.get('json') === 'true';
423
- const set = {};
424
- for (const [flag, key] of LIMIT_FLAGS) {
425
- const raw = flags.get(flag);
426
- if (raw === undefined)
427
- continue;
428
- const n = Number(raw);
429
- if (!Number.isFinite(n) || n <= 0)
430
- fail(`--${flag} must be a positive number, got '${raw}'`);
431
- set[key] = n;
413
+ fail(`unexpected argument '${positional[1]}' (see: aweshare hub list -h)`);
414
+ if (sub !== 'invites' && sub !== 'usage') {
415
+ fail(`unknown list target '${sub}' — expected invites or usage`);
432
416
  }
433
- if (flags.get('clear') === 'true') {
434
- if (Object.keys(set).length > 0)
435
- fail('--clear drops every override — drop the value flags too');
436
- const out = (await api('DELETE', path));
437
- console.log(json
438
- ? JSON.stringify(out, null, 2)
439
- : `✓ ${name}: overrides cleared — hub-wide defaults apply`);
440
- return;
441
- }
442
- if (Object.keys(set).length > 0) {
443
- // integer/precision rules live server-side; its error lists all problems
444
- const out = (await api('PUT', path, set));
445
- console.log(json ? JSON.stringify(out, null, 2) : `✓ ${fmtLimits(out.name, out.overrides)}`);
417
+ const api = adminApi();
418
+ if (sub === 'invites') {
419
+ const reveal = flags.get('reveal') === 'true';
420
+ const tokens = flags.get('token') === 'true';
421
+ const params = new URLSearchParams();
422
+ if (reveal)
423
+ params.set('reveal', 'true');
424
+ if (tokens)
425
+ params.set('token', 'true');
426
+ const qs = params.toString();
427
+ const data = (await api('GET', `/admin/v1/invites${qs ? `?${qs}` : ''}`));
428
+ if (flags.get('json') === 'true') {
429
+ console.log(JSON.stringify(data, null, 2));
430
+ return;
431
+ }
432
+ console.log(renderInvites(data.invites, reveal, tokens));
433
+ if (!reveal && !tokens && data.invites.length > 0) {
434
+ console.log('\nmore: --reveal (full codes), --token (minted tokens)');
435
+ }
446
436
  return;
447
437
  }
448
- const out = (await api('GET', path));
449
- console.log(json ? JSON.stringify(out, null, 2) : fmtLimits(out.name, out.overrides));
450
- return;
451
- }
452
- case 'usage': {
453
- if (positional[0])
454
- fail(`unexpected argument '${positional[0]}' — summaries are the default view now; the request log is --details (see: aweshare hub usage -h)`);
455
- const api = adminApi();
456
438
  const params = new URLSearchParams();
457
439
  const consumer = flags.get('consumer');
458
440
  if (consumer)
@@ -523,6 +505,47 @@ async function main() {
523
505
  console.log(renderUsage(rows, (id) => names.get(id) ?? `#${id}`));
524
506
  return;
525
507
  }
508
+ case 'usage':
509
+ // usage became a `list` subcommand — the read surface is list + status
510
+ return fail("'hub usage' moved — it is 'aweshare hub list usage' now");
511
+ case 'limits': {
512
+ const name = positional[0];
513
+ if (!name)
514
+ fail('consumer name is required (see: aweshare hub limits -h)');
515
+ if (positional[1])
516
+ fail(`unexpected argument '${positional[1]}' (see: aweshare hub limits -h)`);
517
+ const api = adminApi();
518
+ const path = `/admin/v1/consumers/${encodeURIComponent(name)}/limits`;
519
+ const json = flags.get('json') === 'true';
520
+ const set = {};
521
+ for (const [flag, key] of LIMIT_FLAGS) {
522
+ const raw = flags.get(flag);
523
+ if (raw === undefined)
524
+ continue;
525
+ const n = Number(raw);
526
+ if (!Number.isFinite(n) || n <= 0)
527
+ fail(`--${flag} must be a positive number, got '${raw}'`);
528
+ set[key] = n;
529
+ }
530
+ if (flags.get('clear') === 'true') {
531
+ if (Object.keys(set).length > 0)
532
+ fail('--clear drops every override — drop the value flags too');
533
+ const out = (await api('DELETE', path));
534
+ console.log(json
535
+ ? JSON.stringify(out, null, 2)
536
+ : `✓ ${name}: overrides cleared — hub-wide defaults apply`);
537
+ return;
538
+ }
539
+ if (Object.keys(set).length > 0) {
540
+ // integer/precision rules live server-side; its error lists all problems
541
+ const out = (await api('PUT', path, set));
542
+ console.log(json ? JSON.stringify(out, null, 2) : `✓ ${fmtLimits(out.name, out.overrides)}`);
543
+ return;
544
+ }
545
+ const out = (await api('GET', path));
546
+ console.log(json ? JSON.stringify(out, null, 2) : fmtLimits(out.name, out.overrides));
547
+ return;
548
+ }
526
549
  case 'status': {
527
550
  noPositionals(cmd, positional);
528
551
  const api = adminApi();
@@ -530,13 +553,14 @@ async function main() {
530
553
  api('GET', '/admin/v1/tokens'),
531
554
  // the endpoint wraps its rows: {object: "offerings", offerings: [...]}
532
555
  api('GET', '/admin/v1/offerings'),
533
- // last-5m health: reuse the usage summary (admission 429s are never
534
- // metered, so this reflects relayed outcomes only)
535
- api('GET', '/admin/v1/usage?since=5m&group-by=alias').catch(() => []),
556
+ // last-5m health: the usage SUMMARY endpoint (the details endpoint's
557
+ // rows carry no request counts — summing them printed NaN); admission
558
+ // 429s are never metered, so this reflects relayed outcomes only
559
+ api('GET', '/admin/v1/usage/summary?since=5m&group=alias').catch(() => []),
536
560
  ]);
537
561
  const recent = {
538
- requests: usageRes.reduce((n, r) => n + r.requests, 0),
539
- errors: usageRes.reduce((n, r) => n + r.errors, 0),
562
+ requests: usageRes.reduce((n, r) => n + (r.requests ?? 0), 0),
563
+ errors: usageRes.reduce((n, r) => n + (r.errors ?? 0), 0),
540
564
  };
541
565
  console.log(renderHubStatus({
542
566
  ...loadHubConfig(),
@@ -544,9 +568,31 @@ async function main() {
544
568
  consumers: roster.consumers,
545
569
  offerings: offeringsRes.offerings,
546
570
  recent,
571
+ all: flags.get('all') === 'true',
547
572
  }));
548
573
  return;
549
574
  }
575
+ case 'offering': {
576
+ const action = positional[0];
577
+ if (action !== 'block' && action !== 'restore') {
578
+ fail(`expected 'block' or 'restore' (see: aweshare hub offering -h), got '${action ?? ''}'`);
579
+ }
580
+ const alias = positional[1];
581
+ if (!alias)
582
+ fail(`offering ${action}: alias is required (ns/model)`);
583
+ if (positional[2])
584
+ fail(`unexpected argument '${positional[2]}' (see: aweshare hub offering -h)`);
585
+ const api = adminApi();
586
+ if (action === 'block') {
587
+ const out = (await api('POST', `/admin/v1/offerings/block?alias=${encodeURIComponent(alias)}`));
588
+ console.log(`✓ ${alias} blocked (${out.offerings} protocol row(s)) — new requests get 503 OFFERING_BLOCKED`);
589
+ console.log(` undo: aweshare hub offering restore ${alias}`);
590
+ return;
591
+ }
592
+ const out = (await api('POST', `/admin/v1/offerings/restore?alias=${encodeURIComponent(alias)}`));
593
+ console.log(`✓ ${alias} restored (${out.offerings} protocol row(s)) — requests flow again`);
594
+ return;
595
+ }
550
596
  case 'revoke': {
551
597
  noPositionals(cmd, positional);
552
598
  const api = adminApi();
@@ -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":";AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,eAAe,EAAkB,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAIL,eAAe,EACf,aAAa,EACb,WAAW,EACX,kBAAkB,GAKnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAExE,MAAM,OAAO,GACX,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAGnF,CAAC,OAAO,CAAA;AAET,sFAAsF;AACtF,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;8EAkBgE,CAAA;AAE9E,MAAM,YAAY,GAA2B;IAC3C,IAAI,EAAE;;;;;0CAKkC;IACxC,KAAK,EAAE;;;;;;;;;;;2CAWkC;IACzC,OAAO,EACL;;;;;;;;;GASD;QACC,QAAQ;QACR;;;;;;;2CAOuC;IACzC,MAAM,EAAE;;;;;;;;;;;;;;;;8CAgBoC;IAC5C,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;kDA0B0C;IAChD,MAAM,EAAE;;;;;;;;;;;;;;sDAc4C;IACpD,MAAM,EAAE;;;;;;;;;;;;;;;0CAegC;IACxC,QAAQ,EAAE;;;;;;;;;;;0CAW8B;IACxC,MAAM,EAAE;;;;;;0CAMgC;IACxC,OAAO,EAAE;;;;;;0CAM+B;CACzC,CAAA;AAOD,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAW,CAAA;QAC3B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACZ,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;YAC5C,CAAC;iBAAM,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5E,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAW,CAAC,CAAA;YAC5C,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,EAAE,CAAC,CAAA;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED;4EAC4E;AAC5E,SAAS,YAAY,CAAC,GAAc,EAAE,IAAY,EAAE,IAAY;IAC9D,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;QACpD,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;YAC3B,IAAI,CAAC,QAAQ,IAAI,kDAAkD,CAAC,CAAA;QACtE,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;IACF,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;QACjC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,wBAAwB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,+EAA+E;AAC/E,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAI,GAA+D,CAAC,KAAK,CAAA;QACpF,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAA;IAChF,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC;AAED,uEAAuE;AACvE,SAAS,aAAa,CAAC,GAAW,EAAE,IAAI,GAAG,cAAc;IACvD,MAAM,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,CAAC,CAAC;QAAE,IAAI,CAAC,GAAG,IAAI,6CAA6C,GAAG,GAAG,CAAC,CAAA;IACxE,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC,CAAA;IAC/F,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AAC5B,CAAC;AAED,6EAA6E;AAC7E,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IACnC,IAAI,CAAC,KAAK;QAAE,IAAI,CAAC,qBAAqB,KAAK,CAAC,cAAc,kCAAkC,CAAC,CAAA;IAC7F,6EAA6E;IAC7E,0EAA0E;IAC1E,mCAAmC;IACnC,MAAM,IAAI,GACR,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,oBAAoB,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAC9F,OAAO,KAAK,UAAU,IAAI,CAAC,MAAc,EAAE,IAAY,EAAE,IAAc;QACrE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE;YACxC,MAAM;YACN,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YACjF,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC3D,sEAAsE;YACtE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAA;QACF,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAA4B,CAAA;QAC5E,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAyC,CAAA;YAC1D,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAA;AACH,CAAC;AAED,kFAAkF;AAClF,SAAS,aAAa,CAAC,GAAW,EAAE,UAAoB;IACtD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IACzB,IAAI,GAAG;QACL,IAAI,CACF,wBAAwB,GAAG,wDAAwD,GAAG,MAAM,CAC7F,CAAA;AACL,CAAC;AAED,SAAS,SAAS,CAAC,KAA0B;IAC3C,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,6DAA6D,CAAC,CAAA;IAC5E,OAAO,EAAE,CAAA;AACX,CAAC;AAED,oEAAoE;AACpE,MAAM,WAAW,GAAkC;IACjD,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,gBAAgB,EAAE,eAAe,CAAC;IACnC,CAAC,KAAK,EAAE,KAAK,CAAC;IACd,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;CACvC,CAAA;AAED,4EAA4E;AAC5E,SAAS,SAAS,CAAC,IAAY,EAAE,SAAwC;IACvE,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACxE,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAC9B,CAAC,CAAC,GAAG,IAAI,yEAAyE,CAAA;AACtF,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC7C,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAA;QACtC,OAAM;IACR,CAAC;IACD,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,OAAM;IACR,CAAC;IACD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC9B,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACjB,OAAM;IACR,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;IAE5B,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,aAAa,CAAC,KAAK,CAAC,CAAA;YACpB,kBAAkB,CAAC,KAAK,CAAC,CAAA;YACzB,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;YAChD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBAClC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBACrE,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,UAAU,+CAA+C,CAAC,CAAA;YAC9F,CAAC;YACD,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,CAAC,wBAAwB;YAC/D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;YACjB,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;YACzC,OAAO,CAAC,GAAG,CACT,YAAY;gBACV,CAAC,CAAC,iDAAiD,KAAK,CAAC,cAAc,GAAG;gBAC1E,CAAC,CAAC,sDAAsD,CAC3D,CAAA;YACD,OAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,sEAAsE;YACtE,qCAAqC;YACrC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAClC,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YACtC,qBAAqB,CAAC,GAAG,CAAC,CAAA;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC,uDAAuD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACnF,CAAC;YACD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC7B,OAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC7B,IAAI,UAAU,CAAC,CAAC,CAAC;oBACf,IAAI,CAAC,wBAAwB,UAAU,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAA;gBAC/E,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;oBAAE,IAAI,CAAC,8CAA8C,CAAC,CAAA;gBACxE,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAA;gBACxC,kBAAkB,CAAC,KAAK,CAAC,CAAA;gBACzB,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;gBAChD,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA,CAAC,wBAAwB;gBAC/D,MAAM,GAAG,CAAC,KAAK,EAAE,CAAA;gBACjB,OAAO,CAAC,GAAG,CACT,wBAAwB,KAAK,CAAC,iBAAiB,KAAK,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,GAAG,CACvH,CAAA;gBACD,OAAO,CAAC,GAAG,CACT,iBAAiB,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,GAAG,CACpG,CAAA;gBACD,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC5C,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAA;gBACzC,OAAO,CAAC,GAAG,CACT,kHAAkH,CACnH,CAAA;gBACD,OAAM;YACR,CAAC;YACD,uEAAuE;YACvE,yCAAyC;YACzC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YACpC,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;YACtC,qBAAqB,CAAC,GAAG,CAAC,CAAA;YAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAA;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACzD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;gBACxD,IAAI,CAAC,uDAAuD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YACnF,CAAC;YACD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YAC7B,OAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YAC9B,wEAAwE;YACxE,wDAAwD;YACxD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtB,IAAI,CACF,uFAAuF,CACxF,CAAA;YACH,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,MAAM,IAAI,GAA4B,EAAE,CAAA;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAA;YAC5C,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU;gBAC5C,IAAI,CAAC,yCAAyC,CAAC,CAAA;YACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAC9B,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAC1B,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,IAAI;gBAC9B,IAAI,CACF,yFAAyF,CAC1F,CAAA;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAChC,IAAI,IAAI,KAAK,UAAU,IAAI,KAAK,IAAI,KAAK,KAAK,GAAG;gBAC/C,IAAI,CAAC,4EAA4E,CAAC,CAAA;YACpF,uEAAuE;YACvE,yEAAyE;YACzE,6DAA6D;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,CAAA;YACjD,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAA;YAChF,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;gBACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;oBAC7C,IAAI,CAAC,sDAAsD,KAAK,GAAG,CAAC,CAAA;gBACtE,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;YAChB,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAExD,CAAA;YACD,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAC1D,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CACX,mGAAmG;oBACjG,eAAe,IAAI,wDAAwD;oBAC3E,+DAA+D;oBAC/D,4IAA4I,CAC/I,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CACX,IAAI;oBACF,CAAC,CAAC,wJAAwJ;oBAC1J,CAAC,CAAC,4LAA4L,CACjM,CAAA;YACH,CAAC;YACD,OAAM;QACR,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,wEAAwE;YACxE,2DAA2D;YAC3D,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;YACtC,IAAI,UAAU,CAAC,CAAC,CAAC;gBAAE,IAAI,CAAC,wBAAwB,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAA;YAC7F,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,wBAAwB,GAAG,+BAA+B,CAAC,CAAA;YAClE,CAAC;YACD,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,CAAA;gBAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,CAAA;gBAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;gBACpC,IAAI,MAAM;oBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBACxC,IAAI,MAAM;oBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACvC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAEvE,CAAA;gBACD,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;oBAC1C,OAAM;gBACR,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;gBACxD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;gBACvE,CAAC;gBACD,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAA;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACtC,IAAI,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;YACtC,IAAI,QAAQ;gBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAChC,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACrC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;oBAAE,IAAI,CAAC,+CAA+C,CAAC,CAAA;gBAC3F,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,gBAAgB,CAAA;gBACvD,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,OAAO;oBACzE,IAAI,CACF,8EAA8E,KAAK,GAAG,CACvF,CAAA;gBACH,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAA;gBACxC,IAAI,KAAK,KAAK,KAAK;oBAAE,aAAa,CAAC,KAAK,CAAC,CAAA,CAAC,oCAAoC;gBAC9E,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC1B,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;gBAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,2BAA2B,EAAE,EAAE,CAAC,CAAsB,CAAA;gBACrF,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;oBAC1C,OAAM;gBACR,CAAC;gBACD,MAAM,MAAM,GACV,KAAK,KAAK,KAAK;oBACb,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAA;gBAClG,MAAM,QAAQ,GACZ,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAA;gBACtF,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,aAAa,QAAQ,EAAE,CAAC,CAAA;gBACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAmB,CAAC,CAAC,CAAA;gBAC1D,OAAM;YACR,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;gBACvB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI;oBAC3C,IAAI,CAAC,uDAAuD,KAAK,GAAG,CAAC,CAAA;gBACvE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YAChC,CAAC;YACD,kEAAkE;YAClE,sEAAsE;YACtE,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS;gBAAE,IAAI,CAAC,+CAA+C,CAAC,CAAA;YAC3F,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,SAAS;gBACrC,IAAI,CAAC,kDAAkD,CAAC,CAAA;YAC1D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAe,CAAA;YACrF,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBAC1C,OAAM;YACR,CAAC;YACD,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAA;YACvC,KAAK,MAAM,CAAC,IAAI,IAAI;gBAAE,IAAI,CAAC,CAAC,aAAa;oBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,CAAA;YACpF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA;YAC7D,IAAI,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAEnD,CAAA;gBACD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS;oBAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;YACjF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YACjE,OAAM;QACR,CAAC;QACD,KAAK,OAAO;YACV,uEAAuE;YACvE,OAAO,IAAI,CAAC,yDAAyD,CAAC,CAAA;QACxE,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC1B,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,yDAAyD,CAAC,CAAA;YAC1E,IAAI,UAAU,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,wBAAwB,UAAU,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAA;YAC9E,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,MAAM,IAAI,GAAG,uBAAuB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAA;YACrE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,MAAM,CAAA;YACzC,MAAM,GAAG,GAA2B,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;gBAC3B,IAAI,GAAG,KAAK,SAAS;oBAAE,SAAQ;gBAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACrB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,KAAK,IAAI,oCAAoC,GAAG,GAAG,CAAC,CAAA;gBAC5F,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACd,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC;gBAClC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;oBAC7B,IAAI,CAAC,yDAAyD,CAAC,CAAA;gBACjE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAqB,CAAA;gBAC3D,OAAO,CAAC,GAAG,CACT,IAAI;oBACF,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9B,CAAC,CAAC,KAAK,IAAI,+CAA+C,CAC7D,CAAA;gBACD,OAAM;YACR,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,yEAAyE;gBACzE,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAGvC,CAAA;gBACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;gBAC5F,OAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAGlC,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAA;YACrF,OAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACzD,GAAG,CAAC,KAAK,EAAE,kBAAkB,CAG3B;gBACF,uEAAuE;gBACvE,GAAG,CAAC,KAAK,EAAE,qBAAqB,CAA6C;gBAC7E,qEAAqE;gBACrE,sEAAsE;gBACtE,iEAAiE;gBACjE,GAAG,CAAC,KAAK,EAAE,8CAA8C,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAExE;aACF,CAAC,CAAA;YACF,MAAM,MAAM,GAAG;gBACb,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;aAC1D,CAAA;YACD,OAAO,CAAC,GAAG,CACT,eAAe,CAAC;gBACd,GAAG,aAAa,EAAE;gBAClB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,MAAM;gBACN,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM;aACjC,CAAC,CACH,CAAA;YACD,OAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC5B,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/C,IAAI,CAAC,uEAAuE,MAAM,IAAI,EAAE,GAAG,CAAC,CAAA;YAC9F,CAAC;YACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;YAC3B,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,YAAY,MAAM,gCAAgC,CAAC,CAAA;YACpE,IAAI,UAAU,CAAC,CAAC,CAAC;gBACf,IAAI,CAAC,wBAAwB,UAAU,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAA;YAChF,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CACpB,MAAM,EACN,mCAAmC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC/D,CAA0B,CAAA;gBAC3B,OAAO,CAAC,GAAG,CACT,KAAK,KAAK,aAAa,GAAG,CAAC,SAAS,2DAA2D,CAChG,CAAA;gBACD,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAA;gBAC7D,OAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CACpB,MAAM,EACN,qCAAqC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CACjE,CAA0B,CAAA;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,cAAc,GAAG,CAAC,SAAS,yCAAyC,CAAC,CAAA;YAC3F,OAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC3B,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAG1D,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,sCAAsC,CAAC,CAAA;gBAC/D,OAAM;YACR,CAAC;YACD,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CACT,YAAY,EAAE,cAAc,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,wCAAwC,CAC9G,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,qCAAqC,CAAC,CAAA;YAClE,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,EAAE,CAAC,CAAA;YACtD,OAAM;QACR,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,aAAa,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YAC9B,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAA;YACtB,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC3B,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,UAAU,CAAC,CAIhE,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAA;gBAChE,OAAM;YACR,CAAC;YACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,yBAAyB,GAAG,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,CAAA;YAC1F,CAAC;iBAAM,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,yBAAyB,GAAG,CAAC,gBAAgB,CAAC,IAAI,WAAW,CAAC,CAAA;YAC1F,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,YAAY,EAAE,sEAAsE,CACrF,CAAA;YACH,CAAC;YACD,OAAM;QACR,CAAC;QACD;YACE,IAAI,CAAC,oBAAoB,GAAG,OAAO,KAAK,EAAE,CAAC,CAAA;IAC/C,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA"}
@@ -41,6 +41,11 @@ export declare function hubConfigFromEnv(env?: NodeJS.ProcessEnv): {
41
41
  inviteRedeemPerIpMinute: number;
42
42
  /** Cap on active (non-suspended) producers — the hub's tenant slots. */
43
43
  maxProducers: number;
44
+ /** Auto-block an offering after repeated successful responses report a
45
+ * different model than declared. Off by default: mismatches are
46
+ * logged and visible either way; blocking on them risks false positives
47
+ * (versioned or vendor-prefixed model ids) and is the operator's call. */
48
+ autoBlockModelMismatch: boolean;
44
49
  };
45
50
  export type HubConfig = ReturnType<typeof hubConfigFromEnv>;
46
51
  /** Effective hub config: CLI flags (applied by `serve`) > env vars > config.toml > defaults. */
@@ -50,5 +55,5 @@ export declare function loadHubConfig(env?: NodeJS.ProcessEnv, paths?: HubPaths)
50
55
  * Returns the names of keys whose value actually changed. Never throws. */
51
56
  export declare function applyHubConfig(live: HubConfig, fresh: HubConfig): string[];
52
57
  /** Written by `hub init`; every key commented out so an untouched file keeps the defaults. */
53
- 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 limits:\n# a per-origin-IP bucket (one visitor must not monopolize admission) plus a\n# global insurance budget shared by every origin.\n#maxBodyBytes = 33554432\n#inviteRedeemPerMinute = 10\n#inviteRedeemPerIpMinute = 5\n\n# Cap on active (non-suspended) producers \u2014 the hub's tenant slots.\n#maxProducers = 10\n\n";
58
+ 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 limits:\n# a per-origin-IP bucket (one visitor must not monopolize admission) plus a\n# global insurance budget shared by every origin.\n#maxBodyBytes = 33554432\n#inviteRedeemPerMinute = 10\n#inviteRedeemPerIpMinute = 5\n\n# Cap on active (non-suspended) producers \u2014 the hub's tenant slots.\n#maxProducers = 10\n\n# Auto-block an offering after repeated successful responses report a model\n# different from its declared upstreamModel. Off by default:\n# mismatches are logged and visible in hub status / consumer list either way,\n# and blocking on them risks false positives on versioned or vendor-prefixed\n# model ids. An auto block clears when the producer re-declares a different\n# upstreamModel; manual blocks (aweshare hub offering block) always persist.\n#autoBlockModelMismatch = false\n\n";
54
59
  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";
@@ -61,6 +61,18 @@ function hostFromEnv(env, fallback) {
61
61
  const raw = env.AWESHARE_HUB_HOST;
62
62
  return raw === undefined || raw === '' ? fallback : raw;
63
63
  }
64
+ /** Parse a boolean env var ('true'/'1' on, 'false'/'0' off); garbage fails
65
+ * fast with the key named. */
66
+ function booleanFromEnv(env, key, fallback) {
67
+ const raw = env[key];
68
+ if (raw === undefined || raw === '')
69
+ return fallback;
70
+ if (raw === 'true' || raw === '1')
71
+ return true;
72
+ if (raw === 'false' || raw === '0')
73
+ return false;
74
+ throw new Error(`${key} must be true or false, got '${raw}'`);
75
+ }
64
76
  export function hubConfigFromEnv(env = process.env) {
65
77
  return {
66
78
  host: hostFromEnv(env, '0.0.0.0'),
@@ -83,6 +95,11 @@ export function hubConfigFromEnv(env = process.env) {
83
95
  inviteRedeemPerIpMinute: positiveNumber(env, 'AWESHARE_INVITE_REDEEM_PER_IP_MIN', 5),
84
96
  /** Cap on active (non-suspended) producers — the hub's tenant slots. */
85
97
  maxProducers: positiveNumber(env, 'AWESHARE_MAX_PRODUCERS', 10),
98
+ /** Auto-block an offering after repeated successful responses report a
99
+ * different model than declared. Off by default: mismatches are
100
+ * logged and visible either way; blocking on them risks false positives
101
+ * (versioned or vendor-prefixed model ids) and is the operator's call. */
102
+ autoBlockModelMismatch: booleanFromEnv(env, 'AWESHARE_AUTO_BLOCK_MODEL_MISMATCH', false),
86
103
  };
87
104
  }
88
105
  /** Keys config.toml may set — one per HubConfig field, same names as the code. */
@@ -98,6 +115,7 @@ const CONFIG_FILE_KEYS = new Set([
98
115
  'inviteRedeemPerMinute',
99
116
  'inviteRedeemPerIpMinute',
100
117
  'maxProducers',
118
+ 'autoBlockModelMismatch',
101
119
  ]);
102
120
  /** Read config.toml from the data dir. Absent file = null; anything wrong with
103
121
  * an existing file fails fast with the key named (typos included). */
@@ -130,6 +148,14 @@ function readConfigFile(paths) {
130
148
  else
131
149
  out.host = value;
132
150
  }
151
+ else if (key === 'autoBlockModelMismatch') {
152
+ if (typeof value !== 'boolean') {
153
+ problems.push(`autoBlockModelMismatch must be true or false, got '${value}'`);
154
+ }
155
+ else {
156
+ out.autoBlockModelMismatch = value;
157
+ }
158
+ }
133
159
  else if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) {
134
160
  problems.push(`${key} must be a positive number, got '${value}'`);
135
161
  }
@@ -157,6 +183,7 @@ export function loadHubConfig(env = process.env, paths = resolvePaths(env)) {
157
183
  inviteRedeemPerMinute: positiveNumber(env, 'AWESHARE_INVITE_REDEEM_PER_MIN', file?.inviteRedeemPerMinute ?? 10),
158
184
  inviteRedeemPerIpMinute: positiveNumber(env, 'AWESHARE_INVITE_REDEEM_PER_IP_MIN', file?.inviteRedeemPerIpMinute ?? 5),
159
185
  maxProducers: positiveNumber(env, 'AWESHARE_MAX_PRODUCERS', file?.maxProducers ?? 10),
186
+ autoBlockModelMismatch: booleanFromEnv(env, 'AWESHARE_AUTO_BLOCK_MODEL_MISMATCH', file?.autoBlockModelMismatch ?? false),
160
187
  };
161
188
  }
162
189
  /** Fields a running server picks up on SIGHUP. host/port are listen-time —
@@ -171,7 +198,13 @@ const RELOADABLE_KEYS = [
171
198
  'inviteRedeemPerMinute',
172
199
  'inviteRedeemPerIpMinute',
173
200
  'maxProducers',
201
+ 'autoBlockModelMismatch',
174
202
  ];
203
+ /** Correlated copy: one generic key keeps key and value type-linked, so a key
204
+ * list mixing numbers and booleans assigns without a cast. */
205
+ function copyKey(live, fresh, key) {
206
+ live[key] = fresh[key];
207
+ }
175
208
  /** Copy the reloadable fields of `fresh` onto `live` IN PLACE — request handlers
176
209
  * hold references to the live object, so mutation is what makes new values visible.
177
210
  * Returns the names of keys whose value actually changed. Never throws. */
@@ -180,7 +213,7 @@ export function applyHubConfig(live, fresh) {
180
213
  for (const key of RELOADABLE_KEYS) {
181
214
  if (live[key] !== fresh[key])
182
215
  changed.push(key);
183
- live[key] = fresh[key];
216
+ copyKey(live, fresh, key);
184
217
  }
185
218
  return changed;
186
219
  }
@@ -214,6 +247,14 @@ export const HUB_CONFIG_TEMPLATE = `# aweshare hub configuration (~/.aweshare-hu
214
247
  # Cap on active (non-suspended) producers — the hub's tenant slots.
215
248
  #maxProducers = 10
216
249
 
250
+ # Auto-block an offering after repeated successful responses report a model
251
+ # different from its declared upstreamModel. Off by default:
252
+ # mismatches are logged and visible in hub status / consumer list either way,
253
+ # and blocking on them risks false positives on versioned or vendor-prefixed
254
+ # model ids. An auto block clears when the producer re-declares a different
255
+ # upstreamModel; manual blocks (aweshare hub offering block) always persist.
256
+ #autoBlockModelMismatch = false
257
+
217
258
  `;
218
259
  export const HUB_PRODUCE_CONFIG_TEMPLATE = `# aweshare hub-local model catalog (~/.aweshare-hub/config.produce.toml)
219
260
  # Generated by 'aweshare hub produce init'. Upstream key values live in