jfl 0.3.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +294 -30
  2. package/dist/commands/context-hub.d.ts.map +1 -1
  3. package/dist/commands/context-hub.js +154 -0
  4. package/dist/commands/context-hub.js.map +1 -1
  5. package/dist/commands/flows.d.ts +4 -1
  6. package/dist/commands/flows.d.ts.map +1 -1
  7. package/dist/commands/flows.js +160 -1
  8. package/dist/commands/flows.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +42 -0
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/peter.d.ts.map +1 -1
  13. package/dist/commands/peter.js +220 -1
  14. package/dist/commands/peter.js.map +1 -1
  15. package/dist/commands/pi.d.ts +21 -0
  16. package/dist/commands/pi.d.ts.map +1 -0
  17. package/dist/commands/pi.js +154 -0
  18. package/dist/commands/pi.js.map +1 -0
  19. package/dist/commands/portfolio.d.ts.map +1 -1
  20. package/dist/commands/portfolio.js +22 -69
  21. package/dist/commands/portfolio.js.map +1 -1
  22. package/dist/commands/predict.d.ts +6 -0
  23. package/dist/commands/predict.d.ts.map +1 -0
  24. package/dist/commands/predict.js +234 -0
  25. package/dist/commands/predict.js.map +1 -0
  26. package/dist/commands/synopsis.d.ts +44 -0
  27. package/dist/commands/synopsis.d.ts.map +1 -1
  28. package/dist/commands/synopsis.js +1 -1
  29. package/dist/commands/synopsis.js.map +1 -1
  30. package/dist/commands/update.d.ts.map +1 -1
  31. package/dist/commands/update.js +49 -1
  32. package/dist/commands/update.js.map +1 -1
  33. package/dist/commands/viz.d.ts +7 -0
  34. package/dist/commands/viz.d.ts.map +1 -0
  35. package/dist/commands/viz.js +460 -0
  36. package/dist/commands/viz.js.map +1 -0
  37. package/dist/dashboard/index.d.ts +4 -5
  38. package/dist/dashboard/index.d.ts.map +1 -1
  39. package/dist/dashboard/index.js +57 -146
  40. package/dist/dashboard/index.js.map +1 -1
  41. package/dist/dashboard-static/assets/index-B6kRK9Rq.js +116 -0
  42. package/dist/dashboard-static/assets/index-BpdKJPLu.css +1 -0
  43. package/dist/dashboard-static/index.html +16 -0
  44. package/dist/index.js +112 -19
  45. package/dist/index.js.map +1 -1
  46. package/dist/lib/flow-engine.d.ts +1 -0
  47. package/dist/lib/flow-engine.d.ts.map +1 -1
  48. package/dist/lib/flow-engine.js +30 -1
  49. package/dist/lib/flow-engine.js.map +1 -1
  50. package/dist/lib/hub-client.d.ts +80 -0
  51. package/dist/lib/hub-client.d.ts.map +1 -0
  52. package/dist/lib/hub-client.js +46 -0
  53. package/dist/lib/hub-client.js.map +1 -0
  54. package/dist/lib/predictor.d.ts +99 -0
  55. package/dist/lib/predictor.d.ts.map +1 -0
  56. package/dist/lib/predictor.js +394 -0
  57. package/dist/lib/predictor.js.map +1 -0
  58. package/dist/lib/service-gtm.d.ts +86 -51
  59. package/dist/lib/service-gtm.d.ts.map +1 -1
  60. package/dist/lib/service-gtm.js +417 -242
  61. package/dist/lib/service-gtm.js.map +1 -1
  62. package/dist/lib/telemetry-agent.d.ts +57 -0
  63. package/dist/lib/telemetry-agent.d.ts.map +1 -0
  64. package/dist/lib/telemetry-agent.js +268 -0
  65. package/dist/lib/telemetry-agent.js.map +1 -0
  66. package/dist/lib/telemetry-digest.d.ts.map +1 -1
  67. package/dist/lib/telemetry-digest.js +17 -17
  68. package/dist/lib/telemetry-digest.js.map +1 -1
  69. package/dist/lib/telemetry.d.ts +1 -0
  70. package/dist/lib/telemetry.d.ts.map +1 -1
  71. package/dist/lib/telemetry.js +14 -6
  72. package/dist/lib/telemetry.js.map +1 -1
  73. package/dist/mcp/context-hub-mcp.js +0 -0
  74. package/dist/mcp/service-registry-mcp.js +0 -0
  75. package/dist/types/map.d.ts +1 -1
  76. package/dist/types/map.d.ts.map +1 -1
  77. package/dist/types/map.js.map +1 -1
  78. package/dist/utils/jfl-paths.d.ts +1 -0
  79. package/dist/utils/jfl-paths.d.ts.map +1 -1
  80. package/dist/utils/jfl-paths.js +1 -0
  81. package/dist/utils/jfl-paths.js.map +1 -1
  82. package/package.json +7 -2
  83. package/scripts/generate-changesets.sh +113 -0
  84. package/scripts/pp-branch-pr.sh +115 -0
  85. package/template/.jfl/flows-self-driving.yaml +170 -0
  86. package/dist/dashboard/components.d.ts +0 -7
  87. package/dist/dashboard/components.d.ts.map +0 -1
  88. package/dist/dashboard/components.js +0 -575
  89. package/dist/dashboard/components.js.map +0 -1
  90. package/dist/dashboard/pages.d.ts +0 -7
  91. package/dist/dashboard/pages.d.ts.map +0 -1
  92. package/dist/dashboard/pages.js +0 -1580
  93. package/dist/dashboard/pages.js.map +0 -1
  94. package/dist/dashboard/styles.d.ts +0 -7
  95. package/dist/dashboard/styles.d.ts.map +0 -1
  96. package/dist/dashboard/styles.js +0 -1110
  97. package/dist/dashboard/styles.js.map +0 -1
@@ -0,0 +1,460 @@
1
+ /**
2
+ * Terminal Visualization Commands
3
+ * @purpose CLI access to dashboard data — experiments, leaderboard, flows, events rendered in terminal via kuva
4
+ */
5
+ import chalk from "chalk";
6
+ import { hubFetch, getHubConfig } from "../lib/hub-client.js";
7
+ import { sparkline, renderBars } from "../lib/kuva.js";
8
+ function formatTable(headers, rows) {
9
+ const colWidths = headers.map((h, i) => Math.max(h.length, ...rows.map(r => (r[i] || "").length)));
10
+ const lines = [];
11
+ lines.push(" " + headers.map((h, i) => h.padEnd(colWidths[i])).join(" "));
12
+ lines.push(" " + colWidths.map(w => "\u2500".repeat(w)).join(" "));
13
+ for (const row of rows) {
14
+ lines.push(" " + row.map((c, i) => (c || "").padEnd(colWidths[i])).join(" "));
15
+ }
16
+ return lines.join("\n");
17
+ }
18
+ function ensureHub() {
19
+ const config = getHubConfig();
20
+ if (!config) {
21
+ console.log(chalk.red("\n Hub not running."));
22
+ console.log(chalk.gray(" Start it with: jfl hub start\n"));
23
+ process.exit(1);
24
+ }
25
+ }
26
+ function buildRuns(points) {
27
+ const runs = [];
28
+ for (let i = 0; i < points.length; i++) {
29
+ const p = points[i];
30
+ const prev = i > 0 ? points[i - 1].value : p.value;
31
+ const delta = p.value - prev;
32
+ runs.push({
33
+ run_id: p.run_id ?? `run-${i + 1}`,
34
+ ts: p.ts,
35
+ composite: p.value,
36
+ delta,
37
+ improved: delta >= 0,
38
+ model_version: p.model_version,
39
+ });
40
+ }
41
+ return runs;
42
+ }
43
+ async function experimentsCommand(options) {
44
+ ensureHub();
45
+ let agents;
46
+ try {
47
+ agents = await hubFetch("/api/eval/leaderboard");
48
+ }
49
+ catch (err) {
50
+ console.log(chalk.red(`\n ${err.message}\n`));
51
+ return;
52
+ }
53
+ if (options.agent) {
54
+ agents = agents.filter(a => a.agent === options.agent);
55
+ }
56
+ if (agents.length === 0) {
57
+ console.log(chalk.gray("\n No agents found.\n"));
58
+ return;
59
+ }
60
+ for (const agent of agents) {
61
+ let trajectory;
62
+ try {
63
+ trajectory = await hubFetch(`/api/eval/trajectory?agent=${encodeURIComponent(agent.agent)}&metric=composite`);
64
+ }
65
+ catch {
66
+ continue;
67
+ }
68
+ const runs = buildRuns(trajectory.points);
69
+ if (options.json) {
70
+ console.log(JSON.stringify({ agent: agent.agent, runs }, null, 2));
71
+ continue;
72
+ }
73
+ console.log(chalk.bold(`\n Experiments: ${agent.agent}`));
74
+ console.log();
75
+ // Dot plot
76
+ if (runs.length > 0) {
77
+ const dots = runs.map(r => r.improved ? chalk.green("\u25cf") : chalk.gray("\u25cb")).join(" ");
78
+ console.log(` ${dots}`);
79
+ console.log();
80
+ }
81
+ // Sparkline
82
+ if (runs.length > 1) {
83
+ const spark = sparkline(runs.map(r => r.composite));
84
+ console.log(` ${chalk.gray("trend:")} ${spark}`);
85
+ console.log();
86
+ }
87
+ // Score table
88
+ const headers = ["#", "Time", "Version", "Composite", "Delta"];
89
+ const rows = runs.map((r, i) => {
90
+ const deltaStr = i === 0
91
+ ? chalk.gray("--")
92
+ : r.delta >= 0
93
+ ? chalk.green(`+${r.delta.toFixed(4)}`)
94
+ : chalk.red(r.delta.toFixed(4));
95
+ return [
96
+ String(i + 1),
97
+ r.ts.replace("T", " ").slice(0, 19),
98
+ r.model_version ?? "\u2014",
99
+ r.composite.toFixed(4),
100
+ deltaStr,
101
+ ];
102
+ });
103
+ console.log(formatTable(headers, rows));
104
+ console.log();
105
+ }
106
+ }
107
+ async function leaderboardCommand(options) {
108
+ ensureHub();
109
+ let agents;
110
+ try {
111
+ agents = await hubFetch("/api/eval/leaderboard");
112
+ }
113
+ catch (err) {
114
+ console.log(chalk.red(`\n ${err.message}\n`));
115
+ return;
116
+ }
117
+ if (agents.length === 0) {
118
+ console.log(chalk.gray("\n No leaderboard data.\n"));
119
+ return;
120
+ }
121
+ if (options.json) {
122
+ console.log(JSON.stringify(agents, null, 2));
123
+ return;
124
+ }
125
+ agents.sort((a, b) => (b.latest_composite ?? 0) - (a.latest_composite ?? 0));
126
+ console.log(chalk.bold("\n Leaderboard\n"));
127
+ const headers = ["Rank", "Agent", "Composite", "Evals", "Improvement", "Trend"];
128
+ const rows = agents.map((a, i) => {
129
+ const trend = a.trend && a.trend.length > 1 ? sparkline(a.trend) : "\u2014";
130
+ const impRate = a.improvement_rate !== undefined
131
+ ? `${(a.improvement_rate * 100).toFixed(1)}%`
132
+ : "\u2014";
133
+ return [
134
+ String(i + 1),
135
+ a.agent,
136
+ a.latest_composite !== undefined ? a.latest_composite.toFixed(4) : "\u2014",
137
+ String(a.eval_count ?? 0),
138
+ impRate,
139
+ trend,
140
+ ];
141
+ });
142
+ console.log(formatTable(headers, rows));
143
+ // Bar chart of scores
144
+ const barEntries = agents
145
+ .filter(a => a.latest_composite !== undefined)
146
+ .map(a => ({ label: a.agent, value: a.latest_composite }));
147
+ if (barEntries.length > 0) {
148
+ console.log();
149
+ console.log(renderBars(barEntries, "Composite Scores"));
150
+ }
151
+ console.log();
152
+ }
153
+ async function flowsVizCommand(options) {
154
+ ensureHub();
155
+ let flows;
156
+ let executions;
157
+ try {
158
+ flows = await hubFetch("/api/flows");
159
+ const execData = await hubFetch("/api/flows/executions");
160
+ executions = execData.executions;
161
+ }
162
+ catch (err) {
163
+ console.log(chalk.red(`\n ${err.message}\n`));
164
+ return;
165
+ }
166
+ if (options.pending) {
167
+ executions = executions.filter(e => !!e.gated);
168
+ }
169
+ if (options.json) {
170
+ console.log(JSON.stringify({ flows, executions }, null, 2));
171
+ return;
172
+ }
173
+ console.log(chalk.bold(`\n Flows (${flows.length})\n`));
174
+ if (flows.length === 0) {
175
+ console.log(chalk.gray(" No flows configured.\n"));
176
+ }
177
+ else {
178
+ for (const flow of flows) {
179
+ const status = flow.enabled ? chalk.green("enabled ") : chalk.gray("disabled");
180
+ console.log(` ${status} ${chalk.bold(flow.name)}`);
181
+ console.log(chalk.gray(` trigger: ${chalk.cyan(flow.trigger.pattern)}`));
182
+ if (flow.description) {
183
+ console.log(chalk.gray(` ${flow.description}`));
184
+ }
185
+ console.log();
186
+ }
187
+ }
188
+ const pending = executions.filter(e => !!e.gated);
189
+ if (pending.length > 0) {
190
+ console.log(chalk.yellow.bold(` Pending Approvals (${pending.length})\n`));
191
+ for (const exec of pending) {
192
+ console.log(` ${chalk.bold(exec.flow)}`);
193
+ console.log(chalk.gray(` trigger: ${exec.trigger_event_type} gated: ${chalk.yellow(exec.gated ?? "unknown")}`));
194
+ console.log(chalk.gray(` started: ${exec.started_at}`));
195
+ console.log();
196
+ }
197
+ }
198
+ else if (options.pending) {
199
+ console.log(chalk.gray(" No pending approvals.\n"));
200
+ }
201
+ }
202
+ async function eventsCommand(options) {
203
+ ensureHub();
204
+ const limit = parseInt(options.limit ?? "20", 10);
205
+ let queryPath = `/api/events?limit=${limit}`;
206
+ if (options.pattern) {
207
+ queryPath += `&pattern=${encodeURIComponent(options.pattern)}`;
208
+ }
209
+ let events;
210
+ try {
211
+ const data = await hubFetch(queryPath);
212
+ events = data.events;
213
+ }
214
+ catch (err) {
215
+ console.log(chalk.red(`\n ${err.message}\n`));
216
+ return;
217
+ }
218
+ if (options.json) {
219
+ console.log(JSON.stringify(events, null, 2));
220
+ return;
221
+ }
222
+ if (events.length === 0) {
223
+ console.log(chalk.gray("\n No events found.\n"));
224
+ return;
225
+ }
226
+ console.log(chalk.bold(`\n Events (${events.length})\n`));
227
+ const typeColors = {
228
+ "session": chalk.blue,
229
+ "eval": chalk.green,
230
+ "flow": chalk.magenta,
231
+ "error": chalk.red,
232
+ "deploy": chalk.yellow,
233
+ "hook": chalk.cyan,
234
+ };
235
+ for (const event of events) {
236
+ const time = event.ts.replace("T", " ").slice(0, 19);
237
+ const prefix = Object.keys(typeColors).find(k => event.type.startsWith(k));
238
+ const colorFn = prefix ? typeColors[prefix] : chalk.white;
239
+ const typeStr = colorFn(event.type.padEnd(28));
240
+ const source = chalk.gray(event.source ?? "");
241
+ console.log(` ${chalk.gray(time)} ${typeStr} ${source}`);
242
+ }
243
+ console.log();
244
+ }
245
+ async function statusCommand(options) {
246
+ ensureHub();
247
+ let status;
248
+ try {
249
+ status = await hubFetch("/api/context/status");
250
+ }
251
+ catch (err) {
252
+ console.log(chalk.red(`\n ${err.message}\n`));
253
+ return;
254
+ }
255
+ if (options.json) {
256
+ console.log(JSON.stringify(status, null, 2));
257
+ return;
258
+ }
259
+ console.log(chalk.bold("\n Hub Status\n"));
260
+ const pairs = [
261
+ ["Name", status.name ?? "\u2014"],
262
+ ["Port", String(status.port ?? "\u2014")],
263
+ ];
264
+ if (status.uptime_ms !== undefined) {
265
+ const secs = Math.floor(status.uptime_ms / 1000);
266
+ const mins = Math.floor(secs / 60);
267
+ const hrs = Math.floor(mins / 60);
268
+ const uptimeStr = hrs > 0
269
+ ? `${hrs}h ${mins % 60}m`
270
+ : mins > 0
271
+ ? `${mins}m ${secs % 60}s`
272
+ : `${secs}s`;
273
+ pairs.push(["Uptime", uptimeStr]);
274
+ }
275
+ if (status.item_count !== undefined)
276
+ pairs.push(["Items", String(status.item_count)]);
277
+ if (status.memory_count !== undefined)
278
+ pairs.push(["Memories", String(status.memory_count)]);
279
+ if (status.flow_count !== undefined)
280
+ pairs.push(["Flows", String(status.flow_count)]);
281
+ if (status.event_count !== undefined)
282
+ pairs.push(["Events", String(status.event_count)]);
283
+ const labelWidth = Math.max(...pairs.map(([k]) => k.length));
284
+ for (const [label, value] of pairs) {
285
+ console.log(` ${chalk.gray(label.padEnd(labelWidth) + ":")} ${value}`);
286
+ }
287
+ if (status.children && status.children.length > 0) {
288
+ console.log();
289
+ console.log(chalk.gray(" Children:"));
290
+ for (const child of status.children) {
291
+ console.log(` ${child}`);
292
+ }
293
+ }
294
+ if (status.sources && status.sources.length > 0) {
295
+ console.log();
296
+ console.log(chalk.gray(" Sources:"));
297
+ for (const src of status.sources) {
298
+ console.log(` ${src}`);
299
+ }
300
+ }
301
+ console.log();
302
+ }
303
+ async function dashCommand(options) {
304
+ ensureHub();
305
+ if (options.json) {
306
+ const result = {};
307
+ try {
308
+ result.leaderboard = await hubFetch("/api/eval/leaderboard");
309
+ }
310
+ catch {
311
+ result.leaderboard = [];
312
+ }
313
+ try {
314
+ const execData = await hubFetch("/api/flows/executions");
315
+ result.pending_flows = execData.executions.filter(e => !!e.gated);
316
+ }
317
+ catch {
318
+ result.pending_flows = [];
319
+ }
320
+ try {
321
+ const evtData = await hubFetch("/api/events?limit=10");
322
+ result.recent_events = evtData.events;
323
+ }
324
+ catch {
325
+ result.recent_events = [];
326
+ }
327
+ try {
328
+ result.status = await hubFetch("/api/context/status");
329
+ }
330
+ catch {
331
+ result.status = null;
332
+ }
333
+ console.log(JSON.stringify(result, null, 2));
334
+ return;
335
+ }
336
+ console.log(chalk.bold("\n Dashboard\n"));
337
+ console.log(chalk.gray(" " + "\u2500".repeat(50)));
338
+ // Leaderboard summary
339
+ try {
340
+ let agents = await hubFetch("/api/eval/leaderboard");
341
+ agents.sort((a, b) => (b.latest_composite ?? 0) - (a.latest_composite ?? 0));
342
+ if (agents.length > 0) {
343
+ console.log(chalk.bold("\n Leaderboard\n"));
344
+ const headers = ["Rank", "Agent", "Composite", "Trend"];
345
+ const rows = agents.slice(0, 5).map((a, i) => {
346
+ const trend = a.trend && a.trend.length > 1 ? sparkline(a.trend) : "\u2014";
347
+ return [
348
+ String(i + 1),
349
+ a.agent,
350
+ a.latest_composite !== undefined ? a.latest_composite.toFixed(4) : "\u2014",
351
+ trend,
352
+ ];
353
+ });
354
+ console.log(formatTable(headers, rows));
355
+ if (agents.length > 5) {
356
+ console.log(chalk.gray(`\n ... and ${agents.length - 5} more agents`));
357
+ }
358
+ }
359
+ }
360
+ catch {
361
+ console.log(chalk.gray("\n Leaderboard: unavailable"));
362
+ }
363
+ // Pending flows
364
+ try {
365
+ const execData = await hubFetch("/api/flows/executions");
366
+ const pending = execData.executions.filter(e => !!e.gated);
367
+ if (pending.length > 0) {
368
+ console.log(chalk.yellow.bold(`\n Pending Approvals (${pending.length})\n`));
369
+ for (const exec of pending.slice(0, 3)) {
370
+ console.log(` ${chalk.yellow("\u25cf")} ${chalk.bold(exec.flow)} ${chalk.gray(`(${exec.gated})`)}`);
371
+ }
372
+ if (pending.length > 3) {
373
+ console.log(chalk.gray(` ... and ${pending.length - 3} more`));
374
+ }
375
+ }
376
+ }
377
+ catch {
378
+ // silent
379
+ }
380
+ // Recent events
381
+ try {
382
+ const evtData = await hubFetch("/api/events?limit=5");
383
+ const events = evtData.events;
384
+ if (events.length > 0) {
385
+ console.log(chalk.bold("\n Recent Events\n"));
386
+ for (const event of events) {
387
+ const time = event.ts.replace("T", " ").slice(11, 19);
388
+ console.log(` ${chalk.gray(time)} ${event.type} ${chalk.gray(event.source ?? "")}`);
389
+ }
390
+ }
391
+ }
392
+ catch {
393
+ console.log(chalk.gray("\n Events: unavailable"));
394
+ }
395
+ // Hub status
396
+ try {
397
+ const hubStatus = await hubFetch("/api/context/status");
398
+ console.log(chalk.bold("\n Hub\n"));
399
+ const items = [];
400
+ if (hubStatus.item_count !== undefined)
401
+ items.push(`${hubStatus.item_count} items`);
402
+ if (hubStatus.memory_count !== undefined)
403
+ items.push(`${hubStatus.memory_count} memories`);
404
+ if (hubStatus.flow_count !== undefined)
405
+ items.push(`${hubStatus.flow_count} flows`);
406
+ if (hubStatus.event_count !== undefined)
407
+ items.push(`${hubStatus.event_count} events`);
408
+ if (items.length > 0) {
409
+ console.log(` ${items.join(" | ")}`);
410
+ }
411
+ }
412
+ catch {
413
+ console.log(chalk.gray("\n Hub: unavailable"));
414
+ }
415
+ console.log(chalk.gray("\n " + "\u2500".repeat(50)));
416
+ console.log(chalk.gray(" Use jfl viz <subcommand> for details\n"));
417
+ }
418
+ export function registerVizCommand(program) {
419
+ const vizCmd = program
420
+ .command("viz")
421
+ .description("Terminal visualizations — headless dashboard data via Context Hub");
422
+ vizCmd
423
+ .command("experiments")
424
+ .description("Show experiment runs with dot plot, sparklines, and score table")
425
+ .option("--agent <name>", "Filter to a specific agent")
426
+ .option("--json", "Output as JSON")
427
+ .action(experimentsCommand);
428
+ vizCmd
429
+ .command("leaderboard")
430
+ .description("Ranked agent leaderboard with sparklines and bar chart")
431
+ .option("--json", "Output as JSON")
432
+ .action(leaderboardCommand);
433
+ vizCmd
434
+ .command("flows")
435
+ .description("Flow definitions and pending executions")
436
+ .option("--pending", "Show only pending approval executions")
437
+ .option("--json", "Output as JSON")
438
+ .action(flowsVizCommand);
439
+ vizCmd
440
+ .command("events")
441
+ .description("Recent event stream with type coloring")
442
+ .option("--pattern <pattern>", "Filter events by type pattern")
443
+ .option("--limit <n>", "Max events to show", "20")
444
+ .option("--json", "Output as JSON")
445
+ .action(eventsCommand);
446
+ vizCmd
447
+ .command("status")
448
+ .description("Hub health, children, sources, item count")
449
+ .option("--json", "Output as JSON")
450
+ .action(statusCommand);
451
+ vizCmd
452
+ .command("dash")
453
+ .description("Composite dashboard — leaderboard, pending flows, events, status")
454
+ .option("--json", "Output as JSON")
455
+ .action(dashCommand);
456
+ vizCmd.action(async () => {
457
+ await dashCommand({});
458
+ });
459
+ }
460
+ //# sourceMappingURL=viz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viz.js","sourceRoot":"","sources":["../../src/commands/viz.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * Context Hub Web Dashboard
3
3
  *
4
- * Serves a Preact+HTM SPA from the existing Context Hub HTTP server.
5
- * Zero build step ships as template strings compiled by normal tsc.
4
+ * Serves pre-built Vite+Preact SPA from dist/dashboard-static/.
5
+ * Static files built at publish time, served by Context Hub at runtime.
6
6
  *
7
- * @purpose HTML generator + route handler for Context Hub web dashboard
7
+ * @purpose Static file server + SPA fallback for Context Hub web dashboard
8
8
  */
9
9
  import * as http from "http";
10
- export declare function generateDashboardHTML(projectName: string, port: number): string;
11
- export declare function handleDashboardRoutes(req: http.IncomingMessage, res: http.ServerResponse, projectRoot: string, port: number): boolean;
10
+ export declare function handleDashboardRoutes(req: http.IncomingMessage, res: http.ServerResponse, _projectRoot: string, port: number): boolean;
12
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAK5B,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CA4H/E;AAWD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GACX,OAAO,CAiBT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dashboard/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAuB5B,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,IAAI,CAAC,eAAe,EACzB,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,GACX,OAAO,CAkDT"}