@vib3code/sdk 2.0.1 → 2.0.3-canary.0a63e71

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 (192) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/DOCS/AGENT_HARNESS_ARCHITECTURE.md +245 -0
  3. package/DOCS/ANDROID_DEPLOYMENT.md +59 -0
  4. package/DOCS/ARCHITECTURE.md +1 -0
  5. package/DOCS/CI_TESTING.md +2 -0
  6. package/DOCS/CLI_ONBOARDING.md +3 -1
  7. package/DOCS/CONTROL_REFERENCE.md +2 -0
  8. package/DOCS/CROSS_SITE_DESIGN_PATTERNS.md +119 -0
  9. package/DOCS/ENV_SETUP.md +2 -0
  10. package/DOCS/EPIC_SCROLL_EVENTS.md +775 -0
  11. package/DOCS/EXPANSION_DESIGN.md +979 -0
  12. package/DOCS/EXPANSION_DESIGN_ULTRA.md +389 -0
  13. package/DOCS/EXPORT_FORMATS.md +2 -0
  14. package/DOCS/GPU_DISPOSAL_GUIDE.md +2 -0
  15. package/DOCS/HANDOFF_LANDING_PAGE.md +156 -0
  16. package/DOCS/HANDOFF_SDK_DEVELOPMENT.md +495 -0
  17. package/DOCS/LICENSING_TIERS.md +2 -0
  18. package/DOCS/MASTER_PLAN_2026-01-31.md +4 -2
  19. package/DOCS/MULTIVIZ_CHOREOGRAPHY_PATTERNS.md +939 -0
  20. package/DOCS/OBS_SETUP_GUIDE.md +2 -0
  21. package/DOCS/OPTIMIZATION_PLAN_MATH.md +119 -0
  22. package/DOCS/PRODUCT_STRATEGY.md +65 -0
  23. package/DOCS/PROJECT_SETUP.md +2 -0
  24. package/DOCS/README.md +105 -0
  25. package/DOCS/REFERENCE_SCROLL_ANALYSIS.md +99 -0
  26. package/DOCS/RENDERER_LIFECYCLE.md +2 -0
  27. package/DOCS/REPO_MANIFEST.md +2 -0
  28. package/DOCS/ROADMAP.md +113 -0
  29. package/DOCS/SCROLL_TIMELINE_v3.md +271 -0
  30. package/DOCS/SITE_REFACTOR_PLAN.md +102 -0
  31. package/DOCS/STATUS.md +26 -0
  32. package/DOCS/SYSTEM_INVENTORY.md +37 -32
  33. package/DOCS/TELEMETRY_EXPORTS.md +2 -0
  34. package/DOCS/VISUAL_ANALYSIS_CLICKERSS.md +87 -0
  35. package/DOCS/VISUAL_ANALYSIS_FACETAD.md +135 -0
  36. package/DOCS/VISUAL_ANALYSIS_SIMONE.md +97 -0
  37. package/DOCS/VISUAL_ANALYSIS_TABLESIDE.md +88 -0
  38. package/DOCS/WEBGPU_STATUS.md +121 -38
  39. package/DOCS/XR_BENCHMARKS.md +2 -0
  40. package/DOCS/archive/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +1 -0
  41. package/DOCS/archive/DEV_TRACK_ANALYSIS.md +1 -0
  42. package/DOCS/archive/DEV_TRACK_PLAN_2026-01-07.md +1 -0
  43. package/DOCS/archive/SESSION_014_PLAN.md +1 -0
  44. package/DOCS/archive/SESSION_LOG_2026-01-07.md +1 -0
  45. package/DOCS/archive/STRATEGIC_BLUEPRINT_2026-01-07.md +1 -0
  46. package/DOCS/archive/SYSTEM_AUDIT_2026-01-30.md +1 -0
  47. package/DOCS/archive/WEBGPU_STATUS_2026-02-15_STALE.md +1 -0
  48. package/DOCS/{DEV_TRACK_SESSION_2026-01-31.md → dev-tracks/DEV_TRACK_SESSION_2026-01-31.md} +3 -1
  49. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md +233 -0
  50. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md +129 -0
  51. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +144 -0
  52. package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-16.md +110 -0
  53. package/DOCS/dev-tracks/PERF_UPGRADE_2026-02-16.md +310 -0
  54. package/DOCS/dev-tracks/README.md +12 -0
  55. package/README.md +26 -13
  56. package/cpp/CMakeLists.txt +236 -0
  57. package/cpp/bindings/embind.cpp +269 -0
  58. package/cpp/build.sh +129 -0
  59. package/cpp/geometry/Crystal.cpp +103 -0
  60. package/cpp/geometry/Fractal.cpp +136 -0
  61. package/cpp/geometry/GeometryGenerator.cpp +262 -0
  62. package/cpp/geometry/KleinBottle.cpp +71 -0
  63. package/cpp/geometry/Sphere.cpp +134 -0
  64. package/cpp/geometry/Tesseract.cpp +94 -0
  65. package/cpp/geometry/Tetrahedron.cpp +83 -0
  66. package/cpp/geometry/Torus.cpp +65 -0
  67. package/cpp/geometry/WarpFunctions.cpp +238 -0
  68. package/cpp/geometry/Wave.cpp +85 -0
  69. package/cpp/include/vib3_ffi.h +238 -0
  70. package/cpp/math/Mat4x4.cpp +409 -0
  71. package/cpp/math/Mat4x4.hpp +209 -0
  72. package/cpp/math/Projection.cpp +142 -0
  73. package/cpp/math/Projection.hpp +148 -0
  74. package/cpp/math/Rotor4D.cpp +322 -0
  75. package/cpp/math/Rotor4D.hpp +204 -0
  76. package/cpp/math/Vec4.cpp +303 -0
  77. package/cpp/math/Vec4.hpp +225 -0
  78. package/cpp/src/vib3_ffi.cpp +607 -0
  79. package/cpp/tests/Geometry_test.cpp +213 -0
  80. package/cpp/tests/Mat4x4_test.cpp +494 -0
  81. package/cpp/tests/Projection_test.cpp +298 -0
  82. package/cpp/tests/Rotor4D_test.cpp +423 -0
  83. package/cpp/tests/Vec4_test.cpp +489 -0
  84. package/docs/webgpu-live.html +1 -1
  85. package/package.json +41 -30
  86. package/src/agent/index.js +1 -3
  87. package/src/agent/mcp/MCPServer.js +1220 -144
  88. package/src/agent/mcp/index.js +1 -1
  89. package/src/agent/mcp/stdio-server.js +264 -0
  90. package/src/agent/mcp/tools.js +498 -31
  91. package/src/cli/index.js +431 -47
  92. package/src/core/CanvasManager.js +97 -204
  93. package/src/core/ErrorReporter.js +1 -1
  94. package/src/core/Parameters.js +1 -1
  95. package/src/core/VIB3Engine.js +93 -4
  96. package/src/core/VitalitySystem.js +53 -0
  97. package/src/core/index.js +18 -0
  98. package/src/core/renderers/FacetedRendererAdapter.js +10 -9
  99. package/src/core/renderers/HolographicRendererAdapter.js +13 -9
  100. package/src/core/renderers/QuantumRendererAdapter.js +11 -7
  101. package/src/creative/AestheticMapper.js +628 -0
  102. package/src/creative/ChoreographyPlayer.js +481 -0
  103. package/src/creative/index.js +11 -0
  104. package/src/experimental/GameLoop.js +72 -0
  105. package/src/experimental/LatticePhysics.js +100 -0
  106. package/src/experimental/LiveDirector.js +143 -0
  107. package/src/experimental/PlayerController4D.js +154 -0
  108. package/src/experimental/VIB3Actor.js +138 -0
  109. package/src/experimental/VIB3Compositor.js +117 -0
  110. package/src/experimental/VIB3Link.js +122 -0
  111. package/src/experimental/VIB3Orchestrator.js +146 -0
  112. package/src/experimental/VIB3Universe.js +109 -0
  113. package/src/experimental/demos/CrystalLabyrinth.js +202 -0
  114. package/src/export/TradingCardManager.js +3 -4
  115. package/src/export/index.js +11 -1
  116. package/src/faceted/FacetedSystem.js +260 -394
  117. package/src/games/glyph-war/GlyphWarVisualizer.js +641 -0
  118. package/src/geometry/generators/Crystal.js +2 -2
  119. package/src/geometry/warp/HypersphereCore.js +53 -24
  120. package/src/holograms/HolographicVisualizer.js +84 -98
  121. package/src/holograms/RealHolographicSystem.js +194 -43
  122. package/src/math/Mat4x4.js +308 -105
  123. package/src/math/Rotor4D.js +124 -40
  124. package/src/math/Vec4.js +200 -103
  125. package/src/math/index.js +7 -7
  126. package/src/polychora/PolychoraSystem.js +77 -0
  127. package/src/quantum/QuantumEngine.js +103 -66
  128. package/src/quantum/QuantumVisualizer.js +31 -22
  129. package/src/reactivity/index.js +3 -5
  130. package/src/render/LayerPresetManager.js +372 -0
  131. package/src/render/LayerReactivityBridge.js +344 -0
  132. package/src/render/LayerRelationshipGraph.js +610 -0
  133. package/src/render/MultiCanvasBridge.js +148 -25
  134. package/src/render/ShaderLoader.js +38 -0
  135. package/src/render/ShaderProgram.js +4 -4
  136. package/src/render/UnifiedRenderBridge.js +4 -1
  137. package/src/render/backends/WebGPUBackend.js +8 -4
  138. package/src/render/index.js +27 -2
  139. package/src/scene/Node4D.js +74 -24
  140. package/src/scene/index.js +4 -4
  141. package/src/shaders/common/geometry24.glsl +65 -0
  142. package/src/shaders/common/geometry24.wgsl +54 -0
  143. package/src/shaders/common/rotation4d.glsl +4 -4
  144. package/src/shaders/common/rotation4d.wgsl +2 -2
  145. package/src/shaders/common/uniforms.wgsl +15 -8
  146. package/src/shaders/faceted/faceted.frag.glsl +220 -80
  147. package/src/shaders/faceted/faceted.frag.wgsl +144 -90
  148. package/src/shaders/holographic/holographic.frag.glsl +28 -9
  149. package/src/shaders/holographic/holographic.frag.wgsl +112 -41
  150. package/src/shaders/quantum/quantum.frag.glsl +1 -0
  151. package/src/shaders/quantum/quantum.frag.wgsl +6 -4
  152. package/src/testing/ParallelTestFramework.js +2 -2
  153. package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +2 -2
  154. package/src/viewer/GalleryUI.js +17 -0
  155. package/src/viewer/ViewerPortal.js +2 -2
  156. package/src/viewer/index.js +1 -1
  157. package/tools/headless-renderer.js +258 -0
  158. package/tools/shader-sync-verify.js +14 -8
  159. package/tools/site-analysis/all-reports.json +32 -0
  160. package/tools/site-analysis/combined-analysis.md +50 -0
  161. package/tools/site-analyzer.mjs +779 -0
  162. package/tools/visual-catalog/capture.js +276 -0
  163. package/tools/visual-catalog/composite.js +138 -0
  164. package/types/adaptive-sdk.d.ts +204 -5
  165. package/types/agent/cli.d.ts +78 -0
  166. package/types/agent/index.d.ts +18 -0
  167. package/types/agent/mcp.d.ts +87 -0
  168. package/types/agent/telemetry.d.ts +190 -0
  169. package/types/core/VIB3Engine.d.ts +26 -0
  170. package/types/core/index.d.ts +261 -0
  171. package/types/creative/AestheticMapper.d.ts +72 -0
  172. package/types/creative/ChoreographyPlayer.d.ts +96 -0
  173. package/types/creative/index.d.ts +17 -0
  174. package/types/export/index.d.ts +243 -0
  175. package/types/geometry/index.d.ts +164 -0
  176. package/types/math/index.d.ts +214 -0
  177. package/types/render/LayerPresetManager.d.ts +78 -0
  178. package/types/render/LayerReactivityBridge.d.ts +85 -0
  179. package/types/render/LayerRelationshipGraph.d.ts +174 -0
  180. package/types/render/index.d.ts +3 -0
  181. package/types/scene/index.d.ts +204 -0
  182. package/types/systems/index.d.ts +244 -0
  183. package/types/variations/index.d.ts +62 -0
  184. package/types/viewer/index.d.ts +225 -0
  185. package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +0 -34
  186. package/DOCS/DEV_TRACK_ANALYSIS.md +0 -77
  187. package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +0 -42
  188. package/DOCS/SESSION_014_PLAN.md +0 -195
  189. package/DOCS/SESSION_LOG_2026-01-07.md +0 -56
  190. package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +0 -72
  191. package/DOCS/SYSTEM_AUDIT_2026-01-30.md +0 -738
  192. /package/src/viewer/{ReactivityManager.js → ViewerInputHandler.js} +0 -0
@@ -0,0 +1,78 @@
1
+ /**
2
+ * VIB3+ Agent CLI Type Definitions
3
+ */
4
+ import { EventEmitter } from 'events';
5
+
6
+ export declare const CommandType: {
7
+ SET_PARAMETER: 'set_parameter';
8
+ GET_PARAMETER: 'get_parameter';
9
+ SET_GEOMETRY: 'set_geometry';
10
+ SET_SYSTEM: 'set_system';
11
+ ROTATE: 'rotate';
12
+ RESET_ROTATION: 'reset_rotation';
13
+ BATCH: 'batch';
14
+ BATCH_ROTATE: 'batch_rotate';
15
+ GET_METRICS: 'get_metrics';
16
+ GET_SPANS: 'get_spans';
17
+ FLUSH_TELEMETRY: 'flush_telemetry';
18
+ PING: 'ping';
19
+ STATUS: 'status';
20
+ HELP: 'help';
21
+ QUIT: 'quit';
22
+ };
23
+
24
+ export declare const ResponseStatus: {
25
+ OK: 'ok';
26
+ ERROR: 'error';
27
+ PARTIAL: 'partial';
28
+ };
29
+
30
+ export interface CLIOptions {
31
+ inputStream?: NodeJS.ReadableStream;
32
+ outputStream?: NodeJS.WritableStream;
33
+ errorStream?: NodeJS.WritableStream;
34
+ format?: 'jsonl' | 'json' | 'text';
35
+ pretty?: boolean;
36
+ enableTelemetry?: boolean;
37
+ }
38
+
39
+ export interface CLICommand {
40
+ type: string;
41
+ id?: string;
42
+ [key: string]: any;
43
+ }
44
+
45
+ export interface CLIResponse {
46
+ id?: string;
47
+ status: 'ok' | 'error' | 'partial';
48
+ result?: any;
49
+ error?: string;
50
+ durationMs?: number;
51
+ }
52
+
53
+ export class AgentCLI extends EventEmitter {
54
+ engine: any;
55
+ options: CLIOptions;
56
+ constructor(engine: any, options?: CLIOptions);
57
+ start(): void;
58
+ stop(): void;
59
+ registerHandler(type: string, handler: (command: CLICommand) => any | Promise<any>): void;
60
+ execute(command: CLICommand): Promise<any>;
61
+ }
62
+
63
+ export class BatchExecutor {
64
+ cli: AgentCLI;
65
+ queue: CLICommand[];
66
+ results: Array<{ status: string; command: string; result?: any; error?: string }>;
67
+ constructor(cli: AgentCLI);
68
+ add(command: CLICommand): this;
69
+ execute(): Promise<Array<{ status: string; command: string; result?: any; error?: string }>>;
70
+ executeParallel(): Promise<Array<{ status: string; command: string; result?: any; error?: string }>>;
71
+ }
72
+
73
+ export interface StreamingCLIResult {
74
+ cli: AgentCLI;
75
+ streamServer: any;
76
+ }
77
+
78
+ export function createStreamingCLI(engine: any, httpServer: any, options?: CLIOptions): StreamingCLIResult;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * VIB3+ SDK Agent Module Type Definitions
3
+ * @module @vib3code/sdk/agent
4
+ */
5
+
6
+ // ─── Re-exports ───
7
+ export { MCPServer, mcpServer, toolDefinitions, getToolList, getToolNames, getTool, validateToolInput } from './mcp';
8
+ export { AgentCLI, BatchExecutor, CommandType, ResponseStatus, createStreamingCLI } from './cli';
9
+ export {
10
+ TelemetryService, TelemetrySpan, EventType, SpanStatus,
11
+ withTelemetry, withTelemetrySync, telemetry,
12
+ PrometheusExporter, JSONExporter, NDJSONExporter, ConsoleExporter, createExporter,
13
+ StreamEventType, EventStreamServer, EventStreamClient, SSEConnection,
14
+ createSSEHandler, connectTelemetryToStream,
15
+ configureTelemetry, getTelemetry, trace, traceFunction,
16
+ traceAsyncIterable, instrumentClass, traceObject, withTiming,
17
+ meter, traceBatch, TraceContext
18
+ } from './telemetry';
@@ -0,0 +1,87 @@
1
+ /**
2
+ * VIB3+ MCP Server Type Definitions
3
+ */
4
+
5
+ export interface ToolDefinition {
6
+ name: string;
7
+ description: string;
8
+ inputSchema: Record<string, any>;
9
+ }
10
+
11
+ export interface ToolResponse {
12
+ success: boolean;
13
+ operation: string;
14
+ timestamp: string;
15
+ duration_ms?: number;
16
+ error?: {
17
+ type: string;
18
+ code: string;
19
+ message: string;
20
+ suggestion?: string;
21
+ };
22
+ [key: string]: any;
23
+ }
24
+
25
+ export interface RotationArgs {
26
+ XY?: number;
27
+ XZ?: number;
28
+ YZ?: number;
29
+ XW?: number;
30
+ YW?: number;
31
+ ZW?: number;
32
+ }
33
+
34
+ export interface VisualParameterArgs {
35
+ hue?: number;
36
+ saturation?: number;
37
+ intensity?: number;
38
+ speed?: number;
39
+ chaos?: number;
40
+ morphFactor?: number;
41
+ gridDensity?: number;
42
+ dimension?: number;
43
+ }
44
+
45
+ export interface GeometryArgs {
46
+ geometry_index?: number;
47
+ base_geometry?: number;
48
+ core_type?: number;
49
+ }
50
+
51
+ export class MCPServer {
52
+ constructor(engine?: any);
53
+ setEngine(engine: any): void;
54
+ buildResponse(operation: string, data: Record<string, any>, options?: { success?: boolean; startTime?: number }): ToolResponse;
55
+ validateToolResponse(response: ToolResponse): ToolResponse;
56
+ handleToolCall(toolName: string, args?: Record<string, any>): Promise<ToolResponse>;
57
+ createVisualization(args: { system?: string; geometry_index?: number; projection?: string }): Promise<ToolResponse>;
58
+ setRotation(args: RotationArgs): ToolResponse;
59
+ setVisualParameters(args: VisualParameterArgs): ToolResponse;
60
+ switchSystem(args: { system: string }): Promise<ToolResponse>;
61
+ changeGeometry(args: GeometryArgs): ToolResponse;
62
+ getState(): ToolResponse;
63
+ randomizeParameters(args?: { preserve_system?: boolean; preserve_geometry?: boolean }): ToolResponse;
64
+ resetParameters(): ToolResponse;
65
+ saveToGallery(args: { name?: string }): ToolResponse;
66
+ loadFromGallery(args: { id?: number; name?: string }): ToolResponse;
67
+ searchGeometries(args: { core_type?: string; query?: string }): ToolResponse;
68
+ getParameterSchema(): ToolResponse;
69
+ getSDKContext(): ToolResponse;
70
+ listTools(includeSchemas?: boolean): ToolDefinition[];
71
+ setReactivityConfig(args: Record<string, any>): ToolResponse;
72
+ getReactivityConfig(): ToolResponse;
73
+ configureAudioBand(args: Record<string, any>): ToolResponse;
74
+ exportPackage(args: Record<string, any>): ToolResponse;
75
+ applyBehaviorPreset(args: { preset: string }): ToolResponse;
76
+ listBehaviorPresets(): ToolResponse;
77
+ describeVisualState(): ToolResponse;
78
+ batchSetParameters(args: { parameters: Record<string, any>[] }): Promise<ToolResponse>;
79
+ }
80
+
81
+ export const mcpServer: MCPServer;
82
+ export const toolDefinitions: ToolDefinition[];
83
+
84
+ export function getToolList(): ToolDefinition[];
85
+ export function getToolNames(): string[];
86
+ export function getTool(name: string): ToolDefinition | undefined;
87
+ export function validateToolInput(toolName: string, input: Record<string, any>): { valid: boolean; errors?: string[] };
@@ -0,0 +1,190 @@
1
+ /**
2
+ * VIB3+ Telemetry Type Definitions
3
+ */
4
+ import { EventEmitter } from 'events';
5
+
6
+ // ─── Event Types ───
7
+
8
+ export declare const EventType: {
9
+ TOOL_INVOCATION: string;
10
+ TOOL_ERROR: string;
11
+ SYSTEM_SWITCH: string;
12
+ PARAMETER_CHANGE: string;
13
+ RENDER_FRAME: string;
14
+ AUDIO_UPDATE: string;
15
+ ERROR: string;
16
+ LIFECYCLE: string;
17
+ PERFORMANCE: string;
18
+ };
19
+
20
+ export declare const SpanStatus: {
21
+ UNSET: 'unset';
22
+ OK: 'ok';
23
+ ERROR: 'error';
24
+ };
25
+
26
+ // ─── TelemetrySpan ───
27
+
28
+ export interface SpanEvent {
29
+ name: string;
30
+ timestamp: number;
31
+ attributes: Record<string, any>;
32
+ }
33
+
34
+ export class TelemetrySpan {
35
+ name: string;
36
+ traceId: string;
37
+ spanId: string;
38
+ parentSpanId: string | null;
39
+ startTime: number;
40
+ endTime: number | null;
41
+ duration: number | null;
42
+ status: string;
43
+ statusMessage: string | null;
44
+ attributes: Record<string, any>;
45
+ events: SpanEvent[];
46
+
47
+ constructor(name: string, traceId: string, parentSpanId?: string | null, attributes?: Record<string, any>);
48
+ addEvent(name: string, attributes?: Record<string, any>): void;
49
+ setAttribute(key: string, value: any): void;
50
+ setAttributes(attrs: Record<string, any>): void;
51
+ setStatus(status: string, message?: string | null): void;
52
+ end(): void;
53
+ toJSON(): Record<string, any>;
54
+ }
55
+
56
+ // ─── TelemetryService ───
57
+
58
+ export interface TelemetryOptions {
59
+ maxSpans?: number;
60
+ maxEvents?: number;
61
+ flushIntervalMs?: number;
62
+ enabled?: boolean;
63
+ }
64
+
65
+ export interface TelemetryMetrics {
66
+ spans_total: number;
67
+ events_total: number;
68
+ errors_total: number;
69
+ tool_invocations: number;
70
+ render_frames: number;
71
+ [key: string]: number;
72
+ }
73
+
74
+ export class TelemetryService {
75
+ constructor(options?: TelemetryOptions);
76
+ startTrace(): string;
77
+ getTraceId(): string;
78
+ createSpan(name: string, attributes?: Record<string, any>, parentSpanId?: string | null): TelemetrySpan;
79
+ recordSpan(span: TelemetrySpan): void;
80
+ recordEvent(type: string, attributes?: Record<string, any>): void;
81
+ subscribe(eventType: string, callback: (data: any) => void): () => void;
82
+ emit(eventType: string, data: any): void;
83
+ flush(): { spans: any[]; events: any[]; metrics: TelemetryMetrics };
84
+ getMetrics(): TelemetryMetrics;
85
+ getSpans(): TelemetrySpan[];
86
+ resetMetrics(): void;
87
+ setEnabled(enabled: boolean): void;
88
+ destroy(): void;
89
+ }
90
+
91
+ export const telemetry: TelemetryService;
92
+
93
+ export function withTelemetry<T>(service: TelemetryService, operationName: string, fn: (span: TelemetrySpan) => Promise<T>, attributes?: Record<string, any>): Promise<T>;
94
+ export function withTelemetrySync<T>(service: TelemetryService, operationName: string, fn: (span: TelemetrySpan) => T, attributes?: Record<string, any>): T;
95
+
96
+ // ─── Exporters ───
97
+
98
+ export class PrometheusExporter {
99
+ export(metrics: TelemetryMetrics): string;
100
+ }
101
+
102
+ export class JSONExporter {
103
+ export(data: any): string;
104
+ }
105
+
106
+ export class NDJSONExporter {
107
+ export(data: any[]): string;
108
+ }
109
+
110
+ export class ConsoleExporter {
111
+ export(data: any): void;
112
+ }
113
+
114
+ export function createExporter(type: 'prometheus' | 'json' | 'ndjson' | 'console', options?: Record<string, any>): PrometheusExporter | JSONExporter | NDJSONExporter | ConsoleExporter;
115
+
116
+ // ─── Event Streaming ───
117
+
118
+ export declare const StreamEventType: {
119
+ SPAN_START: string;
120
+ SPAN_END: string;
121
+ METRIC: string;
122
+ ERROR: string;
123
+ HEARTBEAT: string;
124
+ TELEMETRY: string;
125
+ };
126
+
127
+ export interface StreamEvent {
128
+ type: string;
129
+ data: any;
130
+ id?: string;
131
+ channel?: string;
132
+ timestamp?: number;
133
+ }
134
+
135
+ export class EventStreamServer extends EventEmitter {
136
+ constructor(options?: { heartbeatIntervalMs?: number; maxReplayBuffer?: number; channels?: string[] });
137
+ handleConnection(req: any, res: any, options?: { channel?: string; filters?: string[] }): void;
138
+ broadcast(event: StreamEvent, channel?: string): void;
139
+ sendTo(connectionId: string, event: StreamEvent): void;
140
+ streamTelemetry(telemetryEvent: any): void;
141
+ streamSpanStart(span: TelemetrySpan): void;
142
+ streamSpanEnd(span: TelemetrySpan): void;
143
+ streamMetric(name: string, value: number, labels?: Record<string, string>): void;
144
+ streamError(error: Error): void;
145
+ getConnectionIds(): string[];
146
+ closeConnection(connectionId: string): void;
147
+ close(): void;
148
+ }
149
+
150
+ export class SSEConnection {
151
+ id: string;
152
+ constructor(options: { req: any; res: any; channel?: string; filters?: string[] });
153
+ send(event: StreamEvent): void;
154
+ matchesChannel(channel: string): boolean;
155
+ matchesFilters(event: StreamEvent): boolean;
156
+ close(): void;
157
+ }
158
+
159
+ export class EventStreamClient extends EventEmitter {
160
+ constructor(url: string, options?: { autoReconnect?: boolean; maxRetries?: number; retryDelayMs?: number });
161
+ connect(): void;
162
+ disconnect(): void;
163
+ }
164
+
165
+ export function createSSEHandler(server: EventStreamServer): (req: any, res: any) => void;
166
+ export function connectTelemetryToStream(telemetryService: TelemetryService, streamServer: EventStreamServer): void;
167
+
168
+ // ─── Instrumentation ───
169
+
170
+ export function configureTelemetry(telemetryService: TelemetryService): void;
171
+ export function getTelemetry(): TelemetryService;
172
+
173
+ export interface TraceOptions {
174
+ attributes?: Record<string, any>;
175
+ recordArgs?: boolean;
176
+ recordResult?: boolean;
177
+ }
178
+
179
+ export function trace(spanName: string, options?: TraceOptions): MethodDecorator;
180
+ export function traceFunction<T extends (...args: any[]) => any>(fn: T, name?: string, options?: TraceOptions): T;
181
+ export function traceAsyncIterable<T>(iterable: AsyncIterable<T>, name: string, options?: TraceOptions): AsyncIterable<T>;
182
+ export function instrumentClass(ClassConstructor: new (...args: any[]) => any, options?: { methods?: string[]; exclude?: string[] }): void;
183
+ export function traceObject(target: Record<string, any>, name: string, options?: { methods?: string[] }): Record<string, any>;
184
+ export function withTiming<T>(fn: () => T, callback: (durationMs: number) => void): T;
185
+ export function meter(metricName: string, options?: { unit?: string; description?: string }): (value: number, labels?: Record<string, string>) => void;
186
+ export function traceBatch(operations: Array<() => any>, name: string): Promise<any[]>;
187
+
188
+ export class TraceContext {
189
+ constructor(telemetry: TelemetryService);
190
+ }
@@ -14,6 +14,8 @@ export type BackendType = 'webgl' | 'webgpu' | 'direct-webgl' | null;
14
14
 
15
15
  /** VIB3Engine constructor options */
16
16
  export interface VIB3EngineOptions {
17
+ /** Initial system to create (default: 'quantum') */
18
+ system?: SystemName;
17
19
  /** Prefer WebGPU with WebGL fallback (default: true) */
18
20
  preferWebGPU?: boolean;
19
21
  /** Enable debug logging (default: false) */
@@ -195,6 +197,30 @@ export declare class VIB3Engine {
195
197
  /** Import engine state (restores system, parameters, and reactivity) */
196
198
  importState(state: Partial<VIB3EngineState>): Promise<void>;
197
199
 
200
+ // ========================================================================
201
+ // Convenience Methods
202
+ // ========================================================================
203
+
204
+ /**
205
+ * Create a parameter update callback for creative modules.
206
+ * Returns `(name, value) => void` that calls `setParameter` internally.
207
+ * Eliminates boilerplate wiring.
208
+ */
209
+ createParameterCallback(): (name: string, value: number) => void;
210
+
211
+ /**
212
+ * Get current breath value from VitalitySystem (0-1).
213
+ * Avoids reaching into `engine.vitality.getBreath()` directly.
214
+ */
215
+ getBreath(): number;
216
+
217
+ /**
218
+ * Register a listener for parameter changes.
219
+ * Callback receives the full parameter object after each change.
220
+ * @returns Unsubscribe function
221
+ */
222
+ onParameterChange(callback: (params: Record<string, number>) => void): () => void;
223
+
198
224
  // ========================================================================
199
225
  // Lifecycle
200
226
  // ========================================================================
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Core Module TypeScript Definitions
3
+ * CanvasManager, ParameterManager, ParameterMapper, VitalitySystem,
4
+ * RendererContracts, UnifiedResourceManager
5
+ */
6
+
7
+ // ============================================================================
8
+ // CanvasManager
9
+ // ============================================================================
10
+
11
+ /** 5-layer canvas names */
12
+ export type CanvasLayer = 'background' | 'shadow' | 'content' | 'highlight' | 'accent';
13
+
14
+ /**
15
+ * Manages 5-layer canvas architecture per visualization system.
16
+ * Creates, tracks, and destroys canvases with WebGL context cleanup.
17
+ */
18
+ export declare class CanvasManager {
19
+ readonly containerId: string;
20
+ readonly container: HTMLElement | null;
21
+ currentSystem: string | null;
22
+ createdCanvases: HTMLCanvasElement[];
23
+ registeredContexts: Map<string, WebGLRenderingContext>;
24
+
25
+ constructor(containerId?: string);
26
+
27
+ /** Create 5 canvases for a system (tears down previous). Returns canvas IDs. */
28
+ createSystemCanvases(systemName: string): string[];
29
+
30
+ /** Track a WebGL context for cleanup on destroy. */
31
+ registerContext(canvasId: string, gl: WebGLRenderingContext): void;
32
+
33
+ /** Destroy all canvases and force-lose WebGL contexts. */
34
+ destroy(): void;
35
+ }
36
+
37
+ // ============================================================================
38
+ // ParameterManager
39
+ // ============================================================================
40
+
41
+ /** Parameter definition for validation */
42
+ export interface ParameterDef {
43
+ min: number;
44
+ max: number;
45
+ step: number;
46
+ type: 'int' | 'float';
47
+ }
48
+
49
+ /** Full parameter set */
50
+ export interface VIB3Parameters {
51
+ variation: number;
52
+ rot4dXY: number;
53
+ rot4dXZ: number;
54
+ rot4dYZ: number;
55
+ rot4dXW: number;
56
+ rot4dYW: number;
57
+ rot4dZW: number;
58
+ dimension: number;
59
+ gridDensity: number;
60
+ morphFactor: number;
61
+ chaos: number;
62
+ speed: number;
63
+ hue: number;
64
+ intensity: number;
65
+ saturation: number;
66
+ geometry: number;
67
+ [key: string]: number;
68
+ }
69
+
70
+ /** Exported configuration format */
71
+ export interface ParameterConfiguration {
72
+ version: string;
73
+ timestamp: string;
74
+ parameters: VIB3Parameters;
75
+ validation: Record<string, ParameterDef>;
76
+ }
77
+
78
+ /**
79
+ * Unified parameter control for all visualization systems.
80
+ * Provides validation, clamping, randomization, HSV conversion,
81
+ * export/import, and variation generation.
82
+ */
83
+ export declare class ParameterManager {
84
+ params: VIB3Parameters;
85
+ parameterDefs: Record<string, ParameterDef>;
86
+ defaults: VIB3Parameters;
87
+
88
+ constructor();
89
+
90
+ /** Get all current parameters (copy). */
91
+ getAllParameters(): VIB3Parameters;
92
+
93
+ /** Set a single parameter with validation and clamping. Returns success. */
94
+ setParameter(name: string, value: number): boolean;
95
+
96
+ /** Set multiple parameters at once. */
97
+ setParameters(params: Partial<VIB3Parameters>): void;
98
+
99
+ /** Reset all parameters to defaults. */
100
+ resetToDefaults(): void;
101
+
102
+ /** Randomize all visual parameters within valid ranges. */
103
+ randomize(): void;
104
+
105
+ /** Export full configuration with validation schema. */
106
+ exportConfiguration(): ParameterConfiguration;
107
+
108
+ /** Load a previously exported configuration. */
109
+ loadConfiguration(config: ParameterConfiguration): void;
110
+
111
+ /** Generate a variation with controlled deviation. */
112
+ generateVariation(baseParams: VIB3Parameters, deviation: number): VIB3Parameters;
113
+
114
+ /** Convert current HSV parameters to RGB. */
115
+ getColorRGB(): { r: number; g: number; b: number };
116
+ }
117
+
118
+ // ============================================================================
119
+ // ParameterMapper
120
+ // ============================================================================
121
+
122
+ /** System name for parameter mapping */
123
+ export type MappableSystem = 'vib34d' | 'holographic' | 'polychora';
124
+
125
+ /**
126
+ * Translates parameters between different visualization system formats.
127
+ * Handles cross-system pollination with influence blending.
128
+ */
129
+ export declare class ParameterMapper {
130
+ mappings: Record<string, { to: Record<string, string>; from: Record<string, string> }>;
131
+
132
+ constructor();
133
+
134
+ /** Translate parameters from one system format to another. */
135
+ translate(params: Record<string, any>, fromSystem: MappableSystem, toSystem: MappableSystem): Record<string, any>;
136
+
137
+ /** Merge parameters with weighted blending. */
138
+ merge(base: Record<string, any>, overlay: Record<string, any>, influence?: number): Record<string, any>;
139
+
140
+ /** Get unified schema spanning all systems. */
141
+ getUnifiedSchema(): Record<string, ParameterDef>;
142
+
143
+ /** Get default values for a system. */
144
+ getDefaults(system: MappableSystem): Record<string, any>;
145
+
146
+ /** Get valid ranges for a system. */
147
+ getRanges(system: MappableSystem): Record<string, { min: number; max: number }>;
148
+
149
+ /** Cross-pollinate: blend parameters from source system into target. */
150
+ crossPollinate(sourceParams: Record<string, any>, sourceSystem: MappableSystem, targetSystem: MappableSystem, influence?: number): Record<string, any>;
151
+ }
152
+
153
+ // ============================================================================
154
+ // VitalitySystem
155
+ // ============================================================================
156
+
157
+ /**
158
+ * Generates a global rhythmic breath cycle (6-second sine wave)
159
+ * that modulates all visualization systems for organic animation feel.
160
+ */
161
+ export declare class VitalitySystem {
162
+ time: number;
163
+ breath: number;
164
+ cycleDuration: number;
165
+ isRunning: boolean;
166
+
167
+ constructor();
168
+
169
+ /** Start the breath cycle. */
170
+ start(): void;
171
+
172
+ /** Stop the breath cycle. */
173
+ stop(): void;
174
+
175
+ /** Update and return current breath value (0-1). */
176
+ update(deltaTime?: number): number;
177
+
178
+ /** Get current breath value without updating. */
179
+ getBreath(): number;
180
+ }
181
+
182
+ // ============================================================================
183
+ // RendererContracts
184
+ // ============================================================================
185
+
186
+ /** Frame state passed to render() */
187
+ export interface FrameState {
188
+ time?: number;
189
+ params?: Record<string, number>;
190
+ audio?: { bass: number; mid: number; high: number; energy?: number };
191
+ }
192
+
193
+ /**
194
+ * Abstract renderer contract — base class for all visualization systems.
195
+ * Methods: init, resize, render, setActive, dispose.
196
+ */
197
+ export declare class RendererContract {
198
+ init(context?: any): boolean | Promise<boolean>;
199
+ resize(width: number, height: number, pixelRatio?: number): void;
200
+ render(frameState?: FrameState): void;
201
+ setActive(active: boolean): void;
202
+ dispose(): void;
203
+ }
204
+
205
+ /**
206
+ * Adapter providing default implementations of the RendererContract.
207
+ * Systems can extend this for easier compliance.
208
+ */
209
+ export declare class RendererContractAdapter extends RendererContract {
210
+ protected _initialized: boolean;
211
+ protected _active: boolean;
212
+ constructor();
213
+ }
214
+
215
+ /** Verify that an object implements the RendererContract interface. */
216
+ export declare function verifyRendererContract(instance: any): {
217
+ valid: boolean;
218
+ missing: string[];
219
+ errors: string[];
220
+ };
221
+
222
+ /**
223
+ * Contract for resource managers used by renderer systems.
224
+ */
225
+ export declare class ResourceManagerContract {
226
+ register(type: string, handle: any, disposer?: () => void, options?: { bytes?: number; label?: string }): any;
227
+ release(type: string, handle: any): boolean;
228
+ dispose(type: string, handle: any): boolean;
229
+ disposeAll(): void;
230
+ getStats(): { totalResources: number; totalBytes: number };
231
+ }
232
+
233
+ // ============================================================================
234
+ // UnifiedResourceManager
235
+ // ============================================================================
236
+
237
+ /** GPU resource types managed by UnifiedResourceManager */
238
+ export type GPUResourceType = 'textures' | 'buffers' | 'programs' | 'framebuffers';
239
+
240
+ /**
241
+ * Manages GPU resource lifecycle with memory budgeting and eviction.
242
+ * Tracks textures, buffers, programs, and framebuffers.
243
+ */
244
+ export declare class UnifiedResourceManager {
245
+ readonly gl: WebGLRenderingContext;
246
+ resources: Record<GPUResourceType, Map<string, any>>;
247
+ memoryBudget: number;
248
+ currentUsage: number;
249
+ onMemoryPressure: (() => void) | null;
250
+
251
+ constructor(gl: WebGLRenderingContext);
252
+
253
+ /** Calculate memory budget based on device capabilities. */
254
+ calculateMemoryBudget(): number;
255
+
256
+ /** Handle memory pressure (evict unused resources). */
257
+ handleMemoryPressure(): void;
258
+
259
+ /** Dispose all tracked resources and stop monitoring. */
260
+ dispose(): void;
261
+ }