@nac3/forge-cli 0.2.0-alpha.17 → 0.2.0-alpha.19

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 (55) hide show
  1. package/dist/bin/yf.js +0 -0
  2. package/dist/chat/claude.d.ts +10 -0
  3. package/dist/chat/claude.d.ts.map +1 -1
  4. package/dist/chat/claude.js +15 -2
  5. package/dist/chat/claude.js.map +1 -1
  6. package/dist/chat/server.js +13 -0
  7. package/dist/chat/server.js.map +1 -1
  8. package/dist/commands/license.d.ts.map +1 -1
  9. package/dist/commands/license.js +41 -0
  10. package/dist/commands/license.js.map +1 -1
  11. package/dist/commands/operate.d.ts.map +1 -1
  12. package/dist/commands/operate.js +20 -7
  13. package/dist/commands/operate.js.map +1 -1
  14. package/dist/deploy/adapter.d.ts +93 -0
  15. package/dist/deploy/adapter.d.ts.map +1 -0
  16. package/dist/deploy/adapter.js +42 -0
  17. package/dist/deploy/adapter.js.map +1 -0
  18. package/dist/deploy/aws_adapter.d.ts +28 -0
  19. package/dist/deploy/aws_adapter.d.ts.map +1 -0
  20. package/dist/deploy/aws_adapter.js +65 -0
  21. package/dist/deploy/aws_adapter.js.map +1 -0
  22. package/dist/deploy/cloudflare.d.ts +24 -0
  23. package/dist/deploy/cloudflare.d.ts.map +1 -0
  24. package/dist/deploy/cloudflare.js +169 -0
  25. package/dist/deploy/cloudflare.js.map +1 -0
  26. package/dist/license/sync.d.ts +54 -0
  27. package/dist/license/sync.d.ts.map +1 -0
  28. package/dist/license/sync.js +131 -0
  29. package/dist/license/sync.js.map +1 -0
  30. package/dist/telemetry/usage.d.ts +67 -0
  31. package/dist/telemetry/usage.d.ts.map +1 -0
  32. package/dist/telemetry/usage.js +208 -0
  33. package/dist/telemetry/usage.js.map +1 -0
  34. package/dist/version.d.ts +1 -1
  35. package/dist/version.js +1 -1
  36. package/dist/voice/providers/google.d.ts.map +1 -1
  37. package/dist/voice/providers/google.js +11 -3
  38. package/dist/voice/providers/google.js.map +1 -1
  39. package/dist/voice/router.d.ts +10 -0
  40. package/dist/voice/router.d.ts.map +1 -1
  41. package/dist/voice/router.js +39 -20
  42. package/dist/voice/router.js.map +1 -1
  43. package/dist/voice/types.d.ts +5 -2
  44. package/dist/voice/types.d.ts.map +1 -1
  45. package/dist/voice/types.js.map +1 -1
  46. package/package.json +12 -14
  47. package/templates/nextjs-app/README.md +48 -0
  48. package/templates/nextjs-app/next.config.js +8 -0
  49. package/templates/nextjs-app/package.json +33 -0
  50. package/templates/nextjs-app/src/app/globals.css +43 -0
  51. package/templates/nextjs-app/src/app/layout.tsx +29 -0
  52. package/templates/nextjs-app/src/app/page.tsx +63 -0
  53. package/templates/nextjs-app/src/nac/manifest.ts +36 -0
  54. package/templates/nextjs-app/tsconfig.json +21 -0
  55. package/templates/nextjs-app/yujin.forge.json +11 -0
@@ -0,0 +1,131 @@
1
+ /**
2
+ * License sync -- pulls the canonical license row from the
3
+ * HITO 4 server and updates the local Polar cache.
4
+ *
5
+ * Flow:
6
+ * 1. Read local cache (~/.yujin-forge/license.json).
7
+ * Needs user_handle. If missing -> error pointing to
8
+ * `yf license activate --user-handle <email>`.
9
+ * 2. Call fetchServerLicense via the HMAC-signed Hito4 client.
10
+ * 3. Map the server response to a LicenseCache patch.
11
+ * 4. Merge + write back. Bumps last_validated_at to now.
12
+ * 5. Return a SyncReport for the CLI to print.
13
+ *
14
+ * Why this exists: the Polar webhook updates the SERVER-side D1
15
+ * row. The local cache was never wired to pull. The "activate"
16
+ * copy advertised "license.json updated automatically" -- it was
17
+ * not. This fixes that gap.
18
+ *
19
+ * ASCII-only.
20
+ */
21
+ import { readLicense as readPolarLicense, writeLicense as writePolarLicense, } from '../core/polar.js';
22
+ import { fetchServerLicense } from './hito4_client.js';
23
+ /** Map a server response body to the LicenseCache plan + fields.
24
+ * The server today returns the row in {plan, expires_at,
25
+ * subscription_id, customer_id, user_handle, cancel_grace_until,
26
+ * bills_first_on, trial_started_at, payment_method_attached}. */
27
+ export function serverBodyToPatch(body) {
28
+ if (!body || typeof body !== 'object')
29
+ return null;
30
+ const planRaw = body.plan;
31
+ const validPlans = [
32
+ 'none', 'trial', 'paid', 'cancelled', 'free-public', 'institutional', 'gifted',
33
+ ];
34
+ if (typeof planRaw !== 'string' || !validPlans.includes(planRaw)) {
35
+ return null;
36
+ }
37
+ const patch = { plan: planRaw };
38
+ if (typeof body.subscription_id === 'string')
39
+ patch.subscription_id = body.subscription_id;
40
+ if (typeof body.user_handle === 'string')
41
+ patch.user_handle = body.user_handle.toLowerCase();
42
+ if (typeof body.cancel_grace_until === 'string')
43
+ patch.cancel_grace_until = body.cancel_grace_until;
44
+ if (typeof body.bills_first_on === 'string')
45
+ patch.bills_first_on = body.bills_first_on;
46
+ if (typeof body.trial_started_at === 'string')
47
+ patch.trial_started_at = body.trial_started_at;
48
+ if (body.expires_at === null || typeof body.expires_at === 'string') {
49
+ patch.expires_at = body.expires_at;
50
+ }
51
+ if (typeof body.payment_method_attached === 'boolean'
52
+ || typeof body.payment_method_attached === 'number') {
53
+ patch.payment_method_attached = Boolean(body.payment_method_attached);
54
+ }
55
+ return patch;
56
+ }
57
+ export async function syncLicense(opts = {}) {
58
+ const log = [];
59
+ const verbose = Boolean(opts.verbose);
60
+ const readLocal = opts.readLocal ?? readPolarLicense;
61
+ const writeLocal = opts.writeLocal ?? writePolarLicense;
62
+ const local = await readLocal();
63
+ if (verbose) {
64
+ log.push('[license-sync] local cache loaded plan=' + local.plan
65
+ + ' user_handle=' + (local.user_handle ?? '(none)'));
66
+ }
67
+ if (!local.user_handle) {
68
+ return {
69
+ ok: false,
70
+ error: 'no user_handle on local license cache. Run `yf license activate --user-handle <you@example.com>` first.',
71
+ local_plan_before: local.plan,
72
+ log: verbose ? log : undefined,
73
+ };
74
+ }
75
+ if (verbose)
76
+ log.push('[license-sync] calling Hito4 fetchServerLicense for ' + local.user_handle);
77
+ let resp;
78
+ try {
79
+ resp = await fetchServerLicense(opts);
80
+ }
81
+ catch (err) {
82
+ return {
83
+ ok: false,
84
+ error: err instanceof Error ? err.message : String(err),
85
+ local_plan_before: local.plan,
86
+ log: verbose ? log : undefined,
87
+ };
88
+ }
89
+ if (verbose) {
90
+ log.push('[license-sync] server HTTP ' + resp.status + ' ok=' + resp.ok);
91
+ }
92
+ if (!resp.ok) {
93
+ return {
94
+ ok: false,
95
+ error: typeof resp.body?.error === 'string' ? resp.body.error : 'server returned HTTP ' + resp.status,
96
+ http_status: resp.status,
97
+ server_plan: typeof resp.body?.plan === 'string' ? resp.body.plan : undefined,
98
+ local_plan_before: local.plan,
99
+ log: verbose ? log : undefined,
100
+ };
101
+ }
102
+ const patch = serverBodyToPatch(resp.body);
103
+ if (!patch) {
104
+ return {
105
+ ok: false,
106
+ error: 'server response body did not contain a valid plan field',
107
+ http_status: resp.status,
108
+ local_plan_before: local.plan,
109
+ log: verbose ? log : undefined,
110
+ };
111
+ }
112
+ const merged = {
113
+ ...local,
114
+ ...patch,
115
+ last_validated_at: new Date().toISOString(),
116
+ };
117
+ await writeLocal(merged);
118
+ if (verbose) {
119
+ log.push('[license-sync] local cache updated plan=' + local.plan + ' -> ' + merged.plan);
120
+ }
121
+ return {
122
+ ok: true,
123
+ server_plan: patch.plan,
124
+ local_plan_before: local.plan,
125
+ local_plan_after: merged.plan,
126
+ http_status: resp.status,
127
+ last_validated_at: merged.last_validated_at,
128
+ log: verbose ? log : undefined,
129
+ };
130
+ }
131
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/license/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ export type UsageKind = 'claude.chat' | 'claude.spec' | 'claude.clarify' | 'claude.triage' | 'voice.tts' | 'voice.stt' | 'misc';
2
+ export interface UsageEvent {
3
+ ts: string;
4
+ kind: UsageKind;
5
+ model?: string;
6
+ tokens_in?: number;
7
+ tokens_out?: number;
8
+ units?: number;
9
+ label?: string;
10
+ project_root?: string;
11
+ }
12
+ export interface PricingTable {
13
+ models?: Record<string, {
14
+ in_per_mtok: number;
15
+ out_per_mtok: number;
16
+ }>;
17
+ voice?: {
18
+ tts_per_million_chars?: number;
19
+ stt_per_minute?: number;
20
+ };
21
+ }
22
+ export declare const DEFAULT_PRICING: PricingTable;
23
+ /**
24
+ * Append a usage event. Never throws -- failures swallowed.
25
+ */
26
+ export declare function recordUsage(ev: Omit<UsageEvent, 'ts'> & {
27
+ ts?: string;
28
+ }): Promise<void>;
29
+ /**
30
+ * Load pricing table (defaults overlaid with user overrides).
31
+ */
32
+ export declare function loadPricing(): Promise<PricingTable>;
33
+ /**
34
+ * Read all usage events. Tolerates malformed lines.
35
+ */
36
+ export declare function readUsage(): Promise<UsageEvent[]>;
37
+ export interface CostBreakdown {
38
+ total_usd: number;
39
+ by_kind: Record<string, {
40
+ count: number;
41
+ usd: number;
42
+ }>;
43
+ by_model: Record<string, {
44
+ count: number;
45
+ tokens_in: number;
46
+ tokens_out: number;
47
+ usd: number;
48
+ }>;
49
+ by_day: Record<string, {
50
+ count: number;
51
+ usd: number;
52
+ }>;
53
+ events_total: number;
54
+ events_window: number;
55
+ window_label: string;
56
+ }
57
+ /**
58
+ * Compute cost breakdown over a time window. `sinceDays` defaults
59
+ * to 30. Pass 0 to mean "all-time".
60
+ */
61
+ export declare function computeCosts(sinceDays?: number): Promise<CostBreakdown>;
62
+ /**
63
+ * Pretty-format a CostBreakdown for terminal output. Returns
64
+ * lines; caller does the printing.
65
+ */
66
+ export declare function formatCosts(b: CostBreakdown): string[];
67
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/telemetry/usage.ts"],"names":[],"mappings":"AAiCA,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,WAAW,GACX,WAAW,GACX,MAAM,CAAC;AAEX,MAAM,WAAW,UAAU;IACzB,EAAE,EAAY,MAAM,CAAC;IACrB,IAAI,EAAU,SAAS,CAAC;IACxB,KAAK,CAAC,EAAQ,MAAM,CAAC;IACrB,SAAS,CAAC,EAAI,MAAM,CAAC;IACrB,UAAU,CAAC,EAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAQ,MAAM,CAAC;IACrB,KAAK,CAAC,EAAQ,MAAM,CAAC;IACrB,YAAY,CAAC,EAAC,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvE,KAAK,CAAC,EAAG;QACP,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,cAAc,CAAC,EAAS,MAAM,CAAC;KAChC,CAAC;CACH;AAID,eAAO,MAAM,eAAe,EAAE,YAe7B,CAAC;AAaF;;GAEG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7F;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAWzD;AAED;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAYvD;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAO,MAAM,CAAC;IACvB,OAAO,EAAS,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,QAAQ,EAAQ,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtG,MAAM,EAAU,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/D,YAAY,EAAI,MAAM,CAAC;IACvB,aAAa,EAAG,MAAM,CAAC;IACvB,YAAY,EAAI,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,SAAS,SAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAsDzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,EAAE,CAiCtD"}
@@ -0,0 +1,208 @@
1
+ /**
2
+ * Yujin Forge -- usage + cost telemetry.
3
+ *
4
+ * Append-only event log at ~/.yujin-forge/usage.jsonl. Every
5
+ * Claude API call (or other priced operation) records one JSONL
6
+ * line with { ts, kind, model?, tokens_in?, tokens_out?, units?,
7
+ * label?, project_root? }.
8
+ *
9
+ * The reader (`yf operate costs`) aggregates by day + by kind +
10
+ * by model and applies a pricing table to produce a cost report.
11
+ *
12
+ * Append is best-effort: telemetry failures NEVER throw to the
13
+ * caller -- a broken usage file should not break user work.
14
+ *
15
+ * Pricing is hard-coded for the 2026 model lineup. Users can
16
+ * override via ~/.yujin-forge/pricing.json:
17
+ * {
18
+ * "models": {
19
+ * "claude-opus-4-7": { "in_per_mtok": 15, "out_per_mtok": 75 },
20
+ * "claude-sonnet-4-6": { "in_per_mtok": 3, "out_per_mtok": 15 }
21
+ * },
22
+ * "voice": {
23
+ * "tts_per_million_chars": 16,
24
+ * "stt_per_minute": 0.006
25
+ * }
26
+ * }
27
+ *
28
+ * ASCII-only.
29
+ */
30
+ import { promises as fs } from 'node:fs';
31
+ import path from 'node:path';
32
+ import { configDir } from '../license/index.js';
33
+ /* Defaults reflect early-2026 Anthropic + Google Cloud pricing.
34
+ * Users can override via ~/.yujin-forge/pricing.json. */
35
+ export const DEFAULT_PRICING = {
36
+ models: {
37
+ 'claude-opus-4-7': { in_per_mtok: 15, out_per_mtok: 75 },
38
+ 'claude-opus-4': { in_per_mtok: 15, out_per_mtok: 75 },
39
+ 'claude-sonnet-4-6': { in_per_mtok: 3, out_per_mtok: 15 },
40
+ 'claude-sonnet-4': { in_per_mtok: 3, out_per_mtok: 15 },
41
+ 'claude-haiku-4-5': { in_per_mtok: 1, out_per_mtok: 5 },
42
+ /* Older lineup kept for back-compat. */
43
+ 'claude-3-5-sonnet': { in_per_mtok: 3, out_per_mtok: 15 },
44
+ 'claude-3-5-haiku': { in_per_mtok: 0.8, out_per_mtok: 4 },
45
+ },
46
+ voice: {
47
+ tts_per_million_chars: 16, /* Google Cloud TTS Neural2 */
48
+ stt_per_minute: 0.006, /* Google Cloud STT enhanced */
49
+ },
50
+ };
51
+ function usageFile() {
52
+ return path.join(configDir(), 'usage.jsonl');
53
+ }
54
+ function pricingFile() {
55
+ return path.join(configDir(), 'pricing.json');
56
+ }
57
+ async function ensureDir() {
58
+ try {
59
+ await fs.mkdir(configDir(), { recursive: true });
60
+ }
61
+ catch { /* best effort */ }
62
+ }
63
+ /**
64
+ * Append a usage event. Never throws -- failures swallowed.
65
+ */
66
+ export async function recordUsage(ev) {
67
+ try {
68
+ await ensureDir();
69
+ const line = { ts: ev.ts ?? new Date().toISOString(), ...ev };
70
+ await fs.appendFile(usageFile(), JSON.stringify(line) + '\n', 'utf-8');
71
+ }
72
+ catch {
73
+ /* swallow -- telemetry must never break user flow */
74
+ }
75
+ }
76
+ /**
77
+ * Load pricing table (defaults overlaid with user overrides).
78
+ */
79
+ export async function loadPricing() {
80
+ try {
81
+ const raw = await fs.readFile(pricingFile(), 'utf-8');
82
+ const override = JSON.parse(raw);
83
+ return {
84
+ models: { ...(DEFAULT_PRICING.models ?? {}), ...(override.models ?? {}) },
85
+ voice: { ...(DEFAULT_PRICING.voice ?? {}), ...(override.voice ?? {}) },
86
+ };
87
+ }
88
+ catch {
89
+ return DEFAULT_PRICING;
90
+ }
91
+ }
92
+ /**
93
+ * Read all usage events. Tolerates malformed lines.
94
+ */
95
+ export async function readUsage() {
96
+ try {
97
+ const raw = await fs.readFile(usageFile(), 'utf-8');
98
+ return raw.split('\n')
99
+ .filter((l) => l.trim().length > 0)
100
+ .map((l) => {
101
+ try {
102
+ return JSON.parse(l);
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ })
108
+ .filter((x) => x !== null);
109
+ }
110
+ catch {
111
+ return [];
112
+ }
113
+ }
114
+ /**
115
+ * Compute cost breakdown over a time window. `sinceDays` defaults
116
+ * to 30. Pass 0 to mean "all-time".
117
+ */
118
+ export async function computeCosts(sinceDays = 30) {
119
+ const events = await readUsage();
120
+ const pricing = await loadPricing();
121
+ const now = Date.now();
122
+ const cutoffMs = sinceDays > 0 ? now - sinceDays * 24 * 60 * 60 * 1000 : 0;
123
+ const inWindow = events.filter((e) => Date.parse(e.ts) >= cutoffMs);
124
+ const breakdown = {
125
+ total_usd: 0,
126
+ by_kind: {},
127
+ by_model: {},
128
+ by_day: {},
129
+ events_total: events.length,
130
+ events_window: inWindow.length,
131
+ window_label: sinceDays === 0 ? 'all-time' : 'last ' + sinceDays + ' days',
132
+ };
133
+ for (const ev of inWindow) {
134
+ let usd = 0;
135
+ if (ev.kind.startsWith('claude.')) {
136
+ const m = ev.model ?? 'unknown';
137
+ const p = pricing.models?.[m];
138
+ if (p) {
139
+ usd = ((ev.tokens_in ?? 0) / 1_000_000) * p.in_per_mtok
140
+ + ((ev.tokens_out ?? 0) / 1_000_000) * p.out_per_mtok;
141
+ }
142
+ if (!breakdown.by_model[m]) {
143
+ breakdown.by_model[m] = { count: 0, tokens_in: 0, tokens_out: 0, usd: 0 };
144
+ }
145
+ const slot = breakdown.by_model[m];
146
+ slot.count++;
147
+ slot.tokens_in += ev.tokens_in ?? 0;
148
+ slot.tokens_out += ev.tokens_out ?? 0;
149
+ slot.usd += usd;
150
+ }
151
+ else if (ev.kind === 'voice.tts') {
152
+ usd = ((ev.units ?? 0) / 1_000_000) * (pricing.voice?.tts_per_million_chars ?? 0);
153
+ }
154
+ else if (ev.kind === 'voice.stt') {
155
+ usd = (ev.units ?? 0) * (pricing.voice?.stt_per_minute ?? 0);
156
+ }
157
+ breakdown.total_usd += usd;
158
+ if (!breakdown.by_kind[ev.kind])
159
+ breakdown.by_kind[ev.kind] = { count: 0, usd: 0 };
160
+ breakdown.by_kind[ev.kind].count++;
161
+ breakdown.by_kind[ev.kind].usd += usd;
162
+ const day = ev.ts.slice(0, 10);
163
+ if (!breakdown.by_day[day])
164
+ breakdown.by_day[day] = { count: 0, usd: 0 };
165
+ breakdown.by_day[day].count++;
166
+ breakdown.by_day[day].usd += usd;
167
+ }
168
+ return breakdown;
169
+ }
170
+ /**
171
+ * Pretty-format a CostBreakdown for terminal output. Returns
172
+ * lines; caller does the printing.
173
+ */
174
+ export function formatCosts(b) {
175
+ const lines = [];
176
+ lines.push('Window: ' + b.window_label);
177
+ lines.push('Events total: ' + b.events_total);
178
+ lines.push('Events in window:' + b.events_window);
179
+ lines.push('Total USD: $' + b.total_usd.toFixed(4));
180
+ lines.push('');
181
+ lines.push('By kind:');
182
+ const kinds = Object.entries(b.by_kind).sort((a, c) => c[1].usd - a[1].usd);
183
+ for (const [k, v] of kinds) {
184
+ lines.push(' ' + k.padEnd(18) + 'count=' + String(v.count).padStart(5) + ' usd=$' + v.usd.toFixed(4));
185
+ }
186
+ if (Object.keys(b.by_model).length > 0) {
187
+ lines.push('');
188
+ lines.push('By model:');
189
+ const models = Object.entries(b.by_model).sort((a, c) => c[1].usd - a[1].usd);
190
+ for (const [m, v] of models) {
191
+ lines.push(' ' + m.padEnd(24)
192
+ + 'count=' + String(v.count).padStart(5)
193
+ + ' in=' + String(v.tokens_in).padStart(8)
194
+ + ' out=' + String(v.tokens_out).padStart(7)
195
+ + ' usd=$' + v.usd.toFixed(4));
196
+ }
197
+ }
198
+ if (Object.keys(b.by_day).length > 0) {
199
+ lines.push('');
200
+ lines.push('By day:');
201
+ const days = Object.entries(b.by_day).sort((a, c) => (a[0] < c[0] ? 1 : -1)).slice(0, 14);
202
+ for (const [d, v] of days) {
203
+ lines.push(' ' + d + ' count=' + String(v.count).padStart(5) + ' usd=$' + v.usd.toFixed(4));
204
+ }
205
+ }
206
+ return lines;
207
+ }
208
+ //# sourceMappingURL=usage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/telemetry/usage.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -4,5 +4,5 @@
4
4
  * into the npm metadata) so we don't end up with two versions
5
5
  * drifting.
6
6
  */
7
- export declare const VERSION = "0.2.0-alpha.17";
7
+ export declare const VERSION = "0.2.0-alpha.19";
8
8
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -4,5 +4,5 @@
4
4
  * into the npm metadata) so we don't end up with two versions
5
5
  * drifting.
6
6
  */
7
- export const VERSION = '0.2.0-alpha.17';
7
+ export const VERSION = '0.2.0-alpha.19';
8
8
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/voice/providers/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACf,MAAM,aAAa,CAAC;AAuErB,QAAA,MAAM,UAAU,iBAAiB,CAAC;AAElC,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,wDAAwD;AACxD,iBAAS,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAUjE;AAED,8DAA8D;AAC9D,iBAAS,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQjE;AA4ED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,EAAE,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;gBAEvC,IAAI,GAAE,qBAA0B;IAKtC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAwExD;AAMD,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,EAAE,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;gBAEvC,IAAI,GAAE,qBAA0B;IAKtC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA0EvD;qDACiD;IACjD,OAAO,CAAC,sBAAsB;IAQ9B,qDAAqD;IACrD,OAAO,CAAC,UAAU;CAMnB;AAGD,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/voice/providers/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACf,MAAM,aAAa,CAAC;AAuErB,QAAA,MAAM,UAAU,iBAAiB,CAAC;AAElC,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,wDAAwD;AACxD,iBAAS,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAUjE;AAED,8DAA8D;AAC9D,iBAAS,yBAAyB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAQjE;AA4ED,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,EAAE,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;gBAEvC,IAAI,GAAE,qBAA0B;IAKtC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;CAmFxD;AAMD,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,EAAE,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuB;gBAEvC,IAAI,GAAE,qBAA0B;IAKtC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI9B,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA0EvD;qDACiD;IACjD,OAAO,CAAC,sBAAsB;IAQ9B,qDAAqD;IACrD,OAAO,CAAC,UAAU;CAMnB;AAGD,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC"}
@@ -203,18 +203,26 @@ export class GoogleSttProvider {
203
203
  }
204
204
  const language = req.languageHint || DEFAULT_STT_LANGUAGE;
205
205
  const encoding = sttFormatToGoogleEncoding(req.format);
206
- const model = req.model ?? 'latest_short';
206
+ /* Model handling: only set `model` when the caller explicitly
207
+ * requested one. The previous default (`latest_short`) is NOT
208
+ * supported for several locales -- e.g. es-AR fails with
209
+ * "model not supported for language". Letting Google pick the
210
+ * model from the languageCode is more robust + matches the
211
+ * behaviour users expect ("just transcribe my Spanish"). */
212
+ const model = req.model;
207
213
  const body = {
208
214
  config: {
209
215
  encoding,
210
216
  languageCode: language,
211
- model,
212
217
  enableAutomaticPunctuation: true,
213
218
  },
214
219
  audio: {
215
220
  content: req.audio.toString('base64'),
216
221
  },
217
222
  };
223
+ if (model) {
224
+ body.config.model = model;
225
+ }
218
226
  const t0 = Date.now();
219
227
  const resp = await this.fetchImpl(STT_ENDPOINT + '?key=' + encodeURIComponent(apiKey), {
220
228
  method: 'POST',
@@ -250,7 +258,7 @@ export class GoogleSttProvider {
250
258
  text,
251
259
  latency_ms,
252
260
  provider: this.id,
253
- model,
261
+ ...(model ? { model } : {}),
254
262
  ...(confidence !== undefined ? { confidence } : {}),
255
263
  ...(detectedLang ? { language: detectedLang } : {}),
256
264
  };
@@ -1 +1 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/voice/providers/google.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/voice/providers/google.ts"],"names":[],"mappings":"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"}
@@ -45,6 +45,16 @@ export declare class VoiceRouter {
45
45
  saveConfig(next: VoiceConfig): Promise<void>;
46
46
  /** Force-reload from disk on the next call. */
47
47
  invalidate(): void;
48
+ /** Resolve an active provider for a kind ("stt" | "tts"). Auto-
49
+ * detect path: if the configured provider has credentials,
50
+ * use it. Otherwise scan all registered providers and pick the
51
+ * first one that is ready. This rescues the common case where
52
+ * BYOK setup only configured one provider (e.g. google) but the
53
+ * config still points to the default (e.g. whisper).
54
+ *
55
+ * Returns the resolved provider id + factory result. Throws
56
+ * with a clear message when NOTHING is ready. */
57
+ private resolveReadyProvider;
48
58
  /** Resolve the active STT provider and pass the request to it. */
49
59
  transcribe(req: SttRequest): Promise<SttResponse>;
50
60
  /** Resolve the active TTS provider and synthesize. */
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/voice/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAKpB;+DAC+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,WAAW,CAAC,CAAC;IAC3C,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,WAAW,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,YAAY,CAA4B;gBAEpC,IAAI,EAAE,kBAAkB;IAQpC;;qBAEiB;IACX,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IA+BxC;gCAC4B;IACtB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,+CAA+C;IAC/C,UAAU,IAAI,IAAI;IAIlB,kEAAkE;IAC5D,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BvD,sDAAsD;IAChD,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkCvD;gDAC4C;IAC5C,mBAAmB,IAAI;QAAE,GAAG,EAAE,aAAa,EAAE,CAAC;QAAC,GAAG,EAAE,aAAa,EAAE,CAAA;KAAE;YAOvD,OAAO;CAUtB;AAED,iEAAiE;AACjE,wBAAgB,aAAa,IAAI,gBAAgB,CAEhD"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/voice/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAKpB;+DAC+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,WAAW,CAAC,CAAC;IAC3C,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,MAAM,WAAW,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAOD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,YAAY,CAA4B;gBAEpC,IAAI,EAAE,kBAAkB;IAQpC;;qBAEiB;IACX,UAAU,IAAI,OAAO,CAAC,WAAW,CAAC;IA+BxC;gCAC4B;IACtB,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,+CAA+C;IAC/C,UAAU,IAAI,IAAI;IAIlB;;;;;;;;sDAQkD;YACpC,oBAAoB;IAiClC,kEAAkE;IAC5D,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAmBvD,sDAAsD;IAChD,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAyBvD;gDAC4C;IAC5C,mBAAmB,IAAI;QAAE,GAAG,EAAE,aAAa,EAAE,CAAC;QAAC,GAAG,EAAE,aAAa,EAAE,CAAA;KAAE;YAOvD,OAAO;CAUtB;AAED,iEAAiE;AACjE,wBAAgB,aAAa,IAAI,gBAAgB,CAEhD"}