@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.
- package/CHANGELOG.md +36 -0
- package/DOCS/AGENT_HARNESS_ARCHITECTURE.md +245 -0
- package/DOCS/ANDROID_DEPLOYMENT.md +59 -0
- package/DOCS/ARCHITECTURE.md +1 -0
- package/DOCS/CI_TESTING.md +2 -0
- package/DOCS/CLI_ONBOARDING.md +3 -1
- package/DOCS/CONTROL_REFERENCE.md +2 -0
- package/DOCS/CROSS_SITE_DESIGN_PATTERNS.md +119 -0
- package/DOCS/ENV_SETUP.md +2 -0
- package/DOCS/EPIC_SCROLL_EVENTS.md +775 -0
- package/DOCS/EXPANSION_DESIGN.md +979 -0
- package/DOCS/EXPANSION_DESIGN_ULTRA.md +389 -0
- package/DOCS/EXPORT_FORMATS.md +2 -0
- package/DOCS/GPU_DISPOSAL_GUIDE.md +2 -0
- package/DOCS/HANDOFF_LANDING_PAGE.md +156 -0
- package/DOCS/HANDOFF_SDK_DEVELOPMENT.md +495 -0
- package/DOCS/LICENSING_TIERS.md +2 -0
- package/DOCS/MASTER_PLAN_2026-01-31.md +4 -2
- package/DOCS/MULTIVIZ_CHOREOGRAPHY_PATTERNS.md +939 -0
- package/DOCS/OBS_SETUP_GUIDE.md +2 -0
- package/DOCS/OPTIMIZATION_PLAN_MATH.md +119 -0
- package/DOCS/PRODUCT_STRATEGY.md +65 -0
- package/DOCS/PROJECT_SETUP.md +2 -0
- package/DOCS/README.md +105 -0
- package/DOCS/REFERENCE_SCROLL_ANALYSIS.md +99 -0
- package/DOCS/RENDERER_LIFECYCLE.md +2 -0
- package/DOCS/REPO_MANIFEST.md +2 -0
- package/DOCS/ROADMAP.md +113 -0
- package/DOCS/SCROLL_TIMELINE_v3.md +271 -0
- package/DOCS/SITE_REFACTOR_PLAN.md +102 -0
- package/DOCS/STATUS.md +26 -0
- package/DOCS/SYSTEM_INVENTORY.md +37 -32
- package/DOCS/TELEMETRY_EXPORTS.md +2 -0
- package/DOCS/VISUAL_ANALYSIS_CLICKERSS.md +87 -0
- package/DOCS/VISUAL_ANALYSIS_FACETAD.md +135 -0
- package/DOCS/VISUAL_ANALYSIS_SIMONE.md +97 -0
- package/DOCS/VISUAL_ANALYSIS_TABLESIDE.md +88 -0
- package/DOCS/WEBGPU_STATUS.md +121 -38
- package/DOCS/XR_BENCHMARKS.md +2 -0
- package/DOCS/archive/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +1 -0
- package/DOCS/archive/DEV_TRACK_ANALYSIS.md +1 -0
- package/DOCS/archive/DEV_TRACK_PLAN_2026-01-07.md +1 -0
- package/DOCS/archive/SESSION_014_PLAN.md +1 -0
- package/DOCS/archive/SESSION_LOG_2026-01-07.md +1 -0
- package/DOCS/archive/STRATEGIC_BLUEPRINT_2026-01-07.md +1 -0
- package/DOCS/archive/SYSTEM_AUDIT_2026-01-30.md +1 -0
- package/DOCS/archive/WEBGPU_STATUS_2026-02-15_STALE.md +1 -0
- package/DOCS/{DEV_TRACK_SESSION_2026-01-31.md → dev-tracks/DEV_TRACK_SESSION_2026-01-31.md} +3 -1
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-06.md +233 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-13.md +129 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-15.md +144 -0
- package/DOCS/dev-tracks/DEV_TRACK_SESSION_2026-02-16.md +110 -0
- package/DOCS/dev-tracks/PERF_UPGRADE_2026-02-16.md +310 -0
- package/DOCS/dev-tracks/README.md +12 -0
- package/README.md +26 -13
- package/cpp/CMakeLists.txt +236 -0
- package/cpp/bindings/embind.cpp +269 -0
- package/cpp/build.sh +129 -0
- package/cpp/geometry/Crystal.cpp +103 -0
- package/cpp/geometry/Fractal.cpp +136 -0
- package/cpp/geometry/GeometryGenerator.cpp +262 -0
- package/cpp/geometry/KleinBottle.cpp +71 -0
- package/cpp/geometry/Sphere.cpp +134 -0
- package/cpp/geometry/Tesseract.cpp +94 -0
- package/cpp/geometry/Tetrahedron.cpp +83 -0
- package/cpp/geometry/Torus.cpp +65 -0
- package/cpp/geometry/WarpFunctions.cpp +238 -0
- package/cpp/geometry/Wave.cpp +85 -0
- package/cpp/include/vib3_ffi.h +238 -0
- package/cpp/math/Mat4x4.cpp +409 -0
- package/cpp/math/Mat4x4.hpp +209 -0
- package/cpp/math/Projection.cpp +142 -0
- package/cpp/math/Projection.hpp +148 -0
- package/cpp/math/Rotor4D.cpp +322 -0
- package/cpp/math/Rotor4D.hpp +204 -0
- package/cpp/math/Vec4.cpp +303 -0
- package/cpp/math/Vec4.hpp +225 -0
- package/cpp/src/vib3_ffi.cpp +607 -0
- package/cpp/tests/Geometry_test.cpp +213 -0
- package/cpp/tests/Mat4x4_test.cpp +494 -0
- package/cpp/tests/Projection_test.cpp +298 -0
- package/cpp/tests/Rotor4D_test.cpp +423 -0
- package/cpp/tests/Vec4_test.cpp +489 -0
- package/docs/webgpu-live.html +1 -1
- package/package.json +41 -30
- package/src/agent/index.js +1 -3
- package/src/agent/mcp/MCPServer.js +1220 -144
- package/src/agent/mcp/index.js +1 -1
- package/src/agent/mcp/stdio-server.js +264 -0
- package/src/agent/mcp/tools.js +498 -31
- package/src/cli/index.js +431 -47
- package/src/core/CanvasManager.js +97 -204
- package/src/core/ErrorReporter.js +1 -1
- package/src/core/Parameters.js +1 -1
- package/src/core/VIB3Engine.js +93 -4
- package/src/core/VitalitySystem.js +53 -0
- package/src/core/index.js +18 -0
- package/src/core/renderers/FacetedRendererAdapter.js +10 -9
- package/src/core/renderers/HolographicRendererAdapter.js +13 -9
- package/src/core/renderers/QuantumRendererAdapter.js +11 -7
- package/src/creative/AestheticMapper.js +628 -0
- package/src/creative/ChoreographyPlayer.js +481 -0
- package/src/creative/index.js +11 -0
- package/src/experimental/GameLoop.js +72 -0
- package/src/experimental/LatticePhysics.js +100 -0
- package/src/experimental/LiveDirector.js +143 -0
- package/src/experimental/PlayerController4D.js +154 -0
- package/src/experimental/VIB3Actor.js +138 -0
- package/src/experimental/VIB3Compositor.js +117 -0
- package/src/experimental/VIB3Link.js +122 -0
- package/src/experimental/VIB3Orchestrator.js +146 -0
- package/src/experimental/VIB3Universe.js +109 -0
- package/src/experimental/demos/CrystalLabyrinth.js +202 -0
- package/src/export/TradingCardManager.js +3 -4
- package/src/export/index.js +11 -1
- package/src/faceted/FacetedSystem.js +260 -394
- package/src/games/glyph-war/GlyphWarVisualizer.js +641 -0
- package/src/geometry/generators/Crystal.js +2 -2
- package/src/geometry/warp/HypersphereCore.js +53 -24
- package/src/holograms/HolographicVisualizer.js +84 -98
- package/src/holograms/RealHolographicSystem.js +194 -43
- package/src/math/Mat4x4.js +308 -105
- package/src/math/Rotor4D.js +124 -40
- package/src/math/Vec4.js +200 -103
- package/src/math/index.js +7 -7
- package/src/polychora/PolychoraSystem.js +77 -0
- package/src/quantum/QuantumEngine.js +103 -66
- package/src/quantum/QuantumVisualizer.js +31 -22
- package/src/reactivity/index.js +3 -5
- package/src/render/LayerPresetManager.js +372 -0
- package/src/render/LayerReactivityBridge.js +344 -0
- package/src/render/LayerRelationshipGraph.js +610 -0
- package/src/render/MultiCanvasBridge.js +148 -25
- package/src/render/ShaderLoader.js +38 -0
- package/src/render/ShaderProgram.js +4 -4
- package/src/render/UnifiedRenderBridge.js +4 -1
- package/src/render/backends/WebGPUBackend.js +8 -4
- package/src/render/index.js +27 -2
- package/src/scene/Node4D.js +74 -24
- package/src/scene/index.js +4 -4
- package/src/shaders/common/geometry24.glsl +65 -0
- package/src/shaders/common/geometry24.wgsl +54 -0
- package/src/shaders/common/rotation4d.glsl +4 -4
- package/src/shaders/common/rotation4d.wgsl +2 -2
- package/src/shaders/common/uniforms.wgsl +15 -8
- package/src/shaders/faceted/faceted.frag.glsl +220 -80
- package/src/shaders/faceted/faceted.frag.wgsl +144 -90
- package/src/shaders/holographic/holographic.frag.glsl +28 -9
- package/src/shaders/holographic/holographic.frag.wgsl +112 -41
- package/src/shaders/quantum/quantum.frag.glsl +1 -0
- package/src/shaders/quantum/quantum.frag.wgsl +6 -4
- package/src/testing/ParallelTestFramework.js +2 -2
- package/src/ui/adaptive/renderers/webgpu/WebGPURenderer.ts +2 -2
- package/src/viewer/GalleryUI.js +17 -0
- package/src/viewer/ViewerPortal.js +2 -2
- package/src/viewer/index.js +1 -1
- package/tools/headless-renderer.js +258 -0
- package/tools/shader-sync-verify.js +14 -8
- package/tools/site-analysis/all-reports.json +32 -0
- package/tools/site-analysis/combined-analysis.md +50 -0
- package/tools/site-analyzer.mjs +779 -0
- package/tools/visual-catalog/capture.js +276 -0
- package/tools/visual-catalog/composite.js +138 -0
- package/types/adaptive-sdk.d.ts +204 -5
- package/types/agent/cli.d.ts +78 -0
- package/types/agent/index.d.ts +18 -0
- package/types/agent/mcp.d.ts +87 -0
- package/types/agent/telemetry.d.ts +190 -0
- package/types/core/VIB3Engine.d.ts +26 -0
- package/types/core/index.d.ts +261 -0
- package/types/creative/AestheticMapper.d.ts +72 -0
- package/types/creative/ChoreographyPlayer.d.ts +96 -0
- package/types/creative/index.d.ts +17 -0
- package/types/export/index.d.ts +243 -0
- package/types/geometry/index.d.ts +164 -0
- package/types/math/index.d.ts +214 -0
- package/types/render/LayerPresetManager.d.ts +78 -0
- package/types/render/LayerReactivityBridge.d.ts +85 -0
- package/types/render/LayerRelationshipGraph.d.ts +174 -0
- package/types/render/index.d.ts +3 -0
- package/types/scene/index.d.ts +204 -0
- package/types/systems/index.d.ts +244 -0
- package/types/variations/index.d.ts +62 -0
- package/types/viewer/index.d.ts +225 -0
- package/DOCS/BLUEPRINT_EXECUTION_PLAN_2026-01-07.md +0 -34
- package/DOCS/DEV_TRACK_ANALYSIS.md +0 -77
- package/DOCS/DEV_TRACK_PLAN_2026-01-07.md +0 -42
- package/DOCS/SESSION_014_PLAN.md +0 -195
- package/DOCS/SESSION_LOG_2026-01-07.md +0 -56
- package/DOCS/STRATEGIC_BLUEPRINT_2026-01-07.md +0 -72
- package/DOCS/SYSTEM_AUDIT_2026-01-30.md +0 -738
- /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
|
+
}
|