@getvision/core 0.0.0 → 0.0.1

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 (101) hide show
  1. package/dist/__tests__/core.test.d.ts +2 -0
  2. package/dist/__tests__/core.test.d.ts.map +1 -0
  3. package/dist/__tests__/core.test.js +88 -0
  4. package/dist/__tests__/tracing.test.d.ts +2 -0
  5. package/dist/__tests__/tracing.test.d.ts.map +1 -0
  6. package/dist/__tests__/tracing.test.js +108 -0
  7. package/dist/core.d.ts +98 -0
  8. package/dist/core.d.ts.map +1 -0
  9. package/dist/core.js +266 -0
  10. package/dist/index.d.ts +8 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/logs/index.d.ts +3 -0
  13. package/dist/logs/index.d.ts.map +1 -0
  14. package/dist/logs/index.js +2 -0
  15. package/dist/logs/interceptor.d.ts +21 -0
  16. package/dist/logs/interceptor.d.ts.map +1 -0
  17. package/dist/logs/interceptor.js +72 -0
  18. package/dist/logs/store.d.ts +36 -0
  19. package/dist/logs/store.d.ts.map +1 -0
  20. package/dist/logs/store.js +72 -0
  21. package/dist/server/index.d.ts +3 -0
  22. package/dist/server/index.d.ts.map +1 -0
  23. package/dist/server/index.js +2 -0
  24. package/dist/server/jsonrpc.d.ts +21 -0
  25. package/dist/server/jsonrpc.d.ts.map +1 -0
  26. package/dist/server/jsonrpc.js +73 -0
  27. package/dist/server/static.d.ts +10 -0
  28. package/dist/server/static.d.ts.map +1 -0
  29. package/dist/server/static.js +54 -0
  30. package/dist/server/websocket.d.ts +42 -0
  31. package/dist/server/websocket.d.ts.map +1 -0
  32. package/dist/server/websocket.js +267 -0
  33. package/dist/tracing/index.d.ts +3 -0
  34. package/dist/tracing/index.d.ts.map +1 -0
  35. package/dist/tracing/index.js +2 -0
  36. package/dist/tracing/store.d.ts +52 -0
  37. package/dist/tracing/store.d.ts.map +1 -0
  38. package/dist/tracing/store.js +101 -0
  39. package/dist/tracing/tracer.d.ts +28 -0
  40. package/dist/tracing/tracer.d.ts.map +1 -0
  41. package/dist/tracing/tracer.js +64 -0
  42. package/dist/types/adapter-options.d.ts +69 -0
  43. package/dist/types/adapter-options.d.ts.map +1 -0
  44. package/dist/types/adapter-options.js +4 -0
  45. package/dist/types/index.d.ts +193 -0
  46. package/dist/types/index.d.ts.map +1 -0
  47. package/dist/types/index.js +5 -0
  48. package/dist/types/logs.d.ts +14 -0
  49. package/dist/types/logs.d.ts.map +1 -0
  50. package/dist/types/logs.js +1 -0
  51. package/dist/ui/assets/index-5t7c-m29.js +243 -0
  52. package/dist/ui/assets/index-9ueE5-_1.js +228 -0
  53. package/dist/ui/assets/index-B2zDhd4y.js +228 -0
  54. package/dist/ui/assets/index-B6PCTRWI.js +228 -0
  55. package/dist/ui/assets/index-BAqOyMpS.js +228 -0
  56. package/dist/ui/assets/index-BBPymjIY.css +1 -0
  57. package/dist/ui/assets/index-BFZ9LDLI.js +228 -0
  58. package/dist/ui/assets/index-BK3A49yO.js +243 -0
  59. package/dist/ui/assets/index-BVC9j-JL.css +1 -0
  60. package/dist/ui/assets/index-BWzGTXsJ.js +228 -0
  61. package/dist/ui/assets/index-BZaQlF2p.js +228 -0
  62. package/dist/ui/assets/index-BbYLBWtj.css +1 -0
  63. package/dist/ui/assets/index-Bgf_12ju.js +243 -0
  64. package/dist/ui/assets/index-Bhxve5KF.css +1 -0
  65. package/dist/ui/assets/index-Bj-CWu-L.js +228 -0
  66. package/dist/ui/assets/index-BlJwGFyg.js +243 -0
  67. package/dist/ui/assets/index-BnD39P39.js +228 -0
  68. package/dist/ui/assets/index-C9X3l8Qf.js +228 -0
  69. package/dist/ui/assets/index-C9wDB-pp.js +228 -0
  70. package/dist/ui/assets/index-CAONCZtM.js +243 -0
  71. package/dist/ui/assets/index-CCtH3nj-.js +243 -0
  72. package/dist/ui/assets/index-CKzeeZJS.js +228 -0
  73. package/dist/ui/assets/index-Cctg6X14.js +243 -0
  74. package/dist/ui/assets/index-Ch3Kvj5x.js +228 -0
  75. package/dist/ui/assets/index-CkV-qXIH.css +1 -0
  76. package/dist/ui/assets/index-Cl2VKig8.js +228 -0
  77. package/dist/ui/assets/index-CoKjAtkW.css +1 -0
  78. package/dist/ui/assets/index-D4C4VyHp.css +1 -0
  79. package/dist/ui/assets/index-DHQw82rB.js +228 -0
  80. package/dist/ui/assets/index-DIfw1ZVL.css +1 -0
  81. package/dist/ui/assets/index-DJJX2zqa.js +228 -0
  82. package/dist/ui/assets/index-D_D2XkaS.js +228 -0
  83. package/dist/ui/assets/index-De-GZ9-w.js +228 -0
  84. package/dist/ui/assets/index-DoWtvKFs.js +228 -0
  85. package/dist/ui/assets/index-Dyseuj-Z.js +223 -0
  86. package/dist/ui/assets/index-ErxJEkTC.js +243 -0
  87. package/dist/ui/assets/index-HIUv_thh.css +1 -0
  88. package/dist/ui/assets/index-HhqjfP8c.js +228 -0
  89. package/dist/ui/assets/index-eUFXMYOK.js +221 -0
  90. package/dist/ui/assets/index-jabSppNC.js +228 -0
  91. package/dist/ui/assets/index-t88G2D4Q.js +228 -0
  92. package/dist/ui/assets/index-tl7-KOr9.css +1 -0
  93. package/dist/ui/assets/index-uyOJY0cv.js +228 -0
  94. package/dist/ui/assets/index-wmKPAJzR.js +243 -0
  95. package/dist/utils/service-detection.d.ts +43 -0
  96. package/dist/utils/service-detection.d.ts.map +1 -0
  97. package/dist/utils/service-detection.js +103 -0
  98. package/dist/utils/zod-utils.d.ts +7 -0
  99. package/dist/utils/zod-utils.d.ts.map +1 -0
  100. package/dist/utils/zod-utils.js +145 -0
  101. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ export { TraceStore } from './store';
2
+ export { Tracer } from './tracer';
@@ -0,0 +1,52 @@
1
+ import type { Trace, Span } from '../types/index';
2
+ /**
3
+ * In-memory trace store
4
+ * Stores traces with automatic cleanup when max limit is reached
5
+ */
6
+ export declare class TraceStore {
7
+ private traces;
8
+ private maxTraces;
9
+ constructor(maxTraces?: number);
10
+ /**
11
+ * Create a new trace
12
+ */
13
+ createTrace(method: string, path: string): Trace;
14
+ /**
15
+ * Add a trace to the store
16
+ */
17
+ addTrace(trace: Trace): void;
18
+ /**
19
+ * Add a span to a trace
20
+ */
21
+ addSpan(traceId: string, span: Span): void;
22
+ /**
23
+ * Complete a trace with final data
24
+ */
25
+ completeTrace(traceId: string, statusCode: number, duration: number): void;
26
+ /**
27
+ * Get a trace by ID
28
+ */
29
+ getTrace(id: string): Trace | undefined;
30
+ /**
31
+ * Get all traces (newest first)
32
+ */
33
+ getAllTraces(): Trace[];
34
+ /**
35
+ * Get traces with filters
36
+ */
37
+ getTraces(filter?: {
38
+ method?: string;
39
+ statusCode?: number;
40
+ minDuration?: number;
41
+ limit?: number;
42
+ }): Trace[];
43
+ /**
44
+ * Clear all traces
45
+ */
46
+ clear(): void;
47
+ /**
48
+ * Get trace count
49
+ */
50
+ count(): number;
51
+ }
52
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/tracing/store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAEjD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,SAAS,CAAQ;gBAEb,SAAS,SAAO;IAI5B;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK;IAahD;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAY5B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAO1C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ1E;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAIvC;;OAEG;IACH,YAAY,IAAI,KAAK,EAAE;IAIvB;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE;QACjB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GAAG,KAAK,EAAE;IAsBX;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,MAAM;CAGhB"}
@@ -0,0 +1,101 @@
1
+ import { nanoid } from 'nanoid';
2
+ /**
3
+ * In-memory trace store
4
+ * Stores traces with automatic cleanup when max limit is reached
5
+ */
6
+ export class TraceStore {
7
+ traces = new Map();
8
+ maxTraces;
9
+ constructor(maxTraces = 1000) {
10
+ this.maxTraces = maxTraces;
11
+ }
12
+ /**
13
+ * Create a new trace
14
+ */
15
+ createTrace(method, path) {
16
+ const trace = {
17
+ id: nanoid(),
18
+ timestamp: Date.now(),
19
+ method,
20
+ path,
21
+ spans: [],
22
+ };
23
+ this.addTrace(trace);
24
+ return trace;
25
+ }
26
+ /**
27
+ * Add a trace to the store
28
+ */
29
+ addTrace(trace) {
30
+ // Remove oldest trace if we've hit the limit
31
+ if (this.traces.size >= this.maxTraces) {
32
+ const oldestKey = this.traces.keys().next().value;
33
+ if (oldestKey) {
34
+ this.traces.delete(oldestKey);
35
+ }
36
+ }
37
+ this.traces.set(trace.id, trace);
38
+ }
39
+ /**
40
+ * Add a span to a trace
41
+ */
42
+ addSpan(traceId, span) {
43
+ const trace = this.traces.get(traceId);
44
+ if (trace) {
45
+ trace.spans.push(span);
46
+ }
47
+ }
48
+ /**
49
+ * Complete a trace with final data
50
+ */
51
+ completeTrace(traceId, statusCode, duration) {
52
+ const trace = this.traces.get(traceId);
53
+ if (trace) {
54
+ trace.statusCode = statusCode;
55
+ trace.duration = duration;
56
+ }
57
+ }
58
+ /**
59
+ * Get a trace by ID
60
+ */
61
+ getTrace(id) {
62
+ return this.traces.get(id);
63
+ }
64
+ /**
65
+ * Get all traces (newest first)
66
+ */
67
+ getAllTraces() {
68
+ return Array.from(this.traces.values()).reverse();
69
+ }
70
+ /**
71
+ * Get traces with filters
72
+ */
73
+ getTraces(filter) {
74
+ let traces = this.getAllTraces();
75
+ if (filter?.method) {
76
+ traces = traces.filter((t) => t.method === filter.method);
77
+ }
78
+ if (filter?.statusCode) {
79
+ traces = traces.filter((t) => t.statusCode === filter.statusCode);
80
+ }
81
+ if (filter?.minDuration) {
82
+ traces = traces.filter((t) => (t.duration ?? 0) >= filter.minDuration);
83
+ }
84
+ if (filter?.limit) {
85
+ traces = traces.slice(0, filter.limit);
86
+ }
87
+ return traces;
88
+ }
89
+ /**
90
+ * Clear all traces
91
+ */
92
+ clear() {
93
+ this.traces.clear();
94
+ }
95
+ /**
96
+ * Get trace count
97
+ */
98
+ count() {
99
+ return this.traces.size;
100
+ }
101
+ }
@@ -0,0 +1,28 @@
1
+ import type { Span } from '../types/index';
2
+ /**
3
+ * Tracer for creating and managing spans
4
+ */
5
+ export declare class Tracer {
6
+ private activeSpans;
7
+ /**
8
+ * Start a new span
9
+ */
10
+ startSpan(name: string, traceId: string, parentId?: string): Span;
11
+ /**
12
+ * End a span
13
+ */
14
+ endSpan(spanId: string): Span | undefined;
15
+ /**
16
+ * Add an attribute to a span
17
+ */
18
+ setAttribute(spanId: string, key: string, value: unknown): void;
19
+ /**
20
+ * Add an event to a span
21
+ */
22
+ addEvent(spanId: string, name: string, attributes?: Record<string, unknown>): void;
23
+ /**
24
+ * Get an active span
25
+ */
26
+ getSpan(spanId: string): Span | undefined;
27
+ }
28
+ //# sourceMappingURL=tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/tracing/tracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAa,MAAM,gBAAgB,CAAA;AAErD;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,WAAW,CAA0B;IAE7C;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAejE;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAUzC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAO/D;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAYlF;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;CAG1C"}
@@ -0,0 +1,64 @@
1
+ import { nanoid } from 'nanoid';
2
+ /**
3
+ * Tracer for creating and managing spans
4
+ */
5
+ export class Tracer {
6
+ activeSpans = new Map();
7
+ /**
8
+ * Start a new span
9
+ */
10
+ startSpan(name, traceId, parentId) {
11
+ const span = {
12
+ id: nanoid(),
13
+ traceId,
14
+ parentId,
15
+ name,
16
+ startTime: Date.now(),
17
+ attributes: {},
18
+ events: [],
19
+ };
20
+ this.activeSpans.set(span.id, span);
21
+ return span;
22
+ }
23
+ /**
24
+ * End a span
25
+ */
26
+ endSpan(spanId) {
27
+ const span = this.activeSpans.get(spanId);
28
+ if (span) {
29
+ span.endTime = Date.now();
30
+ span.duration = span.endTime - span.startTime;
31
+ this.activeSpans.delete(spanId);
32
+ }
33
+ return span;
34
+ }
35
+ /**
36
+ * Add an attribute to a span
37
+ */
38
+ setAttribute(spanId, key, value) {
39
+ const span = this.activeSpans.get(spanId);
40
+ if (span && span.attributes) {
41
+ span.attributes[key] = value;
42
+ }
43
+ }
44
+ /**
45
+ * Add an event to a span
46
+ */
47
+ addEvent(spanId, name, attributes) {
48
+ const span = this.activeSpans.get(spanId);
49
+ if (span) {
50
+ const event = {
51
+ name,
52
+ timestamp: Date.now(),
53
+ attributes,
54
+ };
55
+ span.events?.push(event);
56
+ }
57
+ }
58
+ /**
59
+ * Get an active span
60
+ */
61
+ getSpan(spanId) {
62
+ return this.activeSpans.get(spanId);
63
+ }
64
+ }
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Unified adapter options and types
3
+ */
4
+ /**
5
+ * Service configuration
6
+ */
7
+ export interface ServiceConfig {
8
+ name?: string;
9
+ version?: string;
10
+ description?: string;
11
+ integrations?: IntegrationConfig;
12
+ }
13
+ /**
14
+ * Integration configuration
15
+ */
16
+ export interface IntegrationConfig {
17
+ database?: string;
18
+ redis?: string;
19
+ [key: string]: string | undefined;
20
+ }
21
+ /**
22
+ * Drizzle Studio configuration
23
+ */
24
+ export interface DrizzleConfig {
25
+ autoStart?: boolean;
26
+ port?: number;
27
+ }
28
+ /**
29
+ * Service definition for manual grouping
30
+ */
31
+ export interface ServiceDefinition {
32
+ name: string;
33
+ description?: string;
34
+ routes: string[];
35
+ }
36
+ /**
37
+ * Base adapter options (common to all adapters)
38
+ */
39
+ export interface BaseAdapterOptions {
40
+ enabled?: boolean;
41
+ port?: number;
42
+ maxTraces?: number;
43
+ logging?: boolean;
44
+ service?: ServiceConfig;
45
+ services?: ServiceDefinition[];
46
+ drizzle?: DrizzleConfig;
47
+ }
48
+ /**
49
+ * Hono adapter options
50
+ */
51
+ export interface VisionHonoOptions extends BaseAdapterOptions {
52
+ name?: string;
53
+ maxTraces?: number;
54
+ }
55
+ /**
56
+ * Express adapter options
57
+ */
58
+ export interface VisionExpressOptions extends BaseAdapterOptions {
59
+ maxLogs?: number;
60
+ cors?: boolean;
61
+ }
62
+ /**
63
+ * Fastify adapter options
64
+ */
65
+ export interface VisionFastifyOptions extends BaseAdapterOptions {
66
+ maxLogs?: number;
67
+ cors?: boolean;
68
+ }
69
+ //# sourceMappingURL=adapter-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-options.d.ts","sourceRoot":"","sources":["../../src/types/adapter-options.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Unified adapter options and types
3
+ */
4
+ export {};
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Core types for Vision Dashboard
3
+ */
4
+ export interface JsonRpcRequest {
5
+ jsonrpc: '2.0';
6
+ method: string;
7
+ params?: unknown;
8
+ id?: string | number;
9
+ }
10
+ export interface JsonRpcResponse {
11
+ jsonrpc: '2.0';
12
+ result?: unknown;
13
+ error?: JsonRpcError;
14
+ id: string | number | null;
15
+ }
16
+ export interface JsonRpcError {
17
+ code: number;
18
+ message: string;
19
+ data?: unknown;
20
+ }
21
+ export interface JsonRpcNotification {
22
+ jsonrpc: '2.0';
23
+ method: string;
24
+ params?: unknown;
25
+ }
26
+ export interface Trace {
27
+ id: string;
28
+ timestamp: number;
29
+ method: string;
30
+ path: string;
31
+ statusCode?: number;
32
+ duration?: number;
33
+ spans: Span[];
34
+ metadata?: Record<string, unknown>;
35
+ }
36
+ export interface Span {
37
+ id: string;
38
+ traceId: string;
39
+ parentId?: string;
40
+ name: string;
41
+ startTime: number;
42
+ endTime?: number;
43
+ duration?: number;
44
+ attributes?: Record<string, unknown>;
45
+ events?: SpanEvent[];
46
+ }
47
+ export interface SpanEvent {
48
+ name: string;
49
+ timestamp: number;
50
+ attributes?: Record<string, unknown>;
51
+ }
52
+ export interface AppStatus {
53
+ name?: string;
54
+ version?: string;
55
+ description?: string;
56
+ environment?: string;
57
+ running: boolean;
58
+ pid?: number;
59
+ uptime?: number;
60
+ memory?: {
61
+ heapUsed: number;
62
+ heapTotal: number;
63
+ external: number;
64
+ };
65
+ metadata?: {
66
+ framework?: string;
67
+ integrations?: Record<string, string>;
68
+ drizzle?: {
69
+ detected: boolean;
70
+ configPath?: string;
71
+ studioUrl?: string;
72
+ autoStarted?: boolean;
73
+ };
74
+ [key: string]: unknown;
75
+ };
76
+ }
77
+ export interface RouteMetadata {
78
+ method: string;
79
+ path: string;
80
+ handler: string;
81
+ middleware?: string[];
82
+ params?: RouteParam[];
83
+ requestBody?: RequestBodySchema;
84
+ responseBody?: RequestBodySchema;
85
+ response?: RouteResponse;
86
+ schema?: any;
87
+ }
88
+ export interface RequestBodySchema {
89
+ template: string;
90
+ fields: SchemaField[];
91
+ }
92
+ export interface SchemaField {
93
+ name: string;
94
+ type: string;
95
+ description?: string;
96
+ required: boolean;
97
+ example?: any;
98
+ nested?: SchemaField[];
99
+ }
100
+ export interface ServiceGroup {
101
+ name: string;
102
+ description?: string;
103
+ routes: RouteMetadata[];
104
+ }
105
+ export interface RouteParam {
106
+ name: string;
107
+ type: string;
108
+ required: boolean;
109
+ description?: string;
110
+ }
111
+ export interface RouteResponse {
112
+ type: string;
113
+ description?: string;
114
+ schema?: unknown;
115
+ }
116
+ export type DashboardEvent = {
117
+ type: 'app.started';
118
+ data: AppStatus;
119
+ } | {
120
+ type: 'app.stopped';
121
+ data: {
122
+ pid: number;
123
+ };
124
+ } | {
125
+ type: 'trace.new';
126
+ data: Trace;
127
+ } | {
128
+ type: 'log.entry';
129
+ data: import('./logs').LogEntry;
130
+ } | {
131
+ type: 'log.stdout';
132
+ data: {
133
+ message: string;
134
+ timestamp: number;
135
+ };
136
+ } | {
137
+ type: 'log.stderr';
138
+ data: {
139
+ message: string;
140
+ timestamp: number;
141
+ };
142
+ } | {
143
+ type: 'compile.start';
144
+ data: {
145
+ timestamp: number;
146
+ };
147
+ } | {
148
+ type: 'compile.success';
149
+ data: {
150
+ timestamp: number;
151
+ duration: number;
152
+ };
153
+ } | {
154
+ type: 'compile.error';
155
+ data: {
156
+ message: string;
157
+ stack?: string;
158
+ };
159
+ };
160
+ export interface VisionServerOptions {
161
+ port?: number;
162
+ host?: string;
163
+ maxTraces?: number;
164
+ maxLogs?: number;
165
+ captureConsole?: boolean;
166
+ enableCors?: boolean;
167
+ }
168
+ export interface VisionAdapter {
169
+ name: string;
170
+ version: string;
171
+ getRoutes(): RouteMetadata[];
172
+ onRequest(handler: RequestHandler): void;
173
+ onResponse(handler: ResponseHandler): void;
174
+ }
175
+ export type RequestHandler = (req: AdapterRequest) => void | Promise<void>;
176
+ export type ResponseHandler = (req: AdapterRequest, res: AdapterResponse) => void | Promise<void>;
177
+ export interface AdapterRequest {
178
+ method: string;
179
+ path: string;
180
+ headers: Record<string, string>;
181
+ query?: Record<string, string>;
182
+ body?: unknown;
183
+ timestamp: number;
184
+ }
185
+ export interface AdapterResponse {
186
+ statusCode: number;
187
+ headers: Record<string, string>;
188
+ body?: unknown;
189
+ duration: number;
190
+ }
191
+ export * from './logs';
192
+ export * from './adapter-options';
193
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core types for Vision Dashboard
3
+ */
4
+ export * from './logs';
5
+ export * from './adapter-options';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Log entry types
3
+ */
4
+ export type LogLevel = 'log' | 'info' | 'warn' | 'error' | 'debug';
5
+ export interface LogEntry {
6
+ id: string;
7
+ timestamp: number;
8
+ level: LogLevel;
9
+ message: string;
10
+ args?: any[];
11
+ source?: string;
12
+ stack?: string;
13
+ }
14
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../src/types/logs.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;AAElE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf"}
@@ -0,0 +1 @@
1
+ export {};