@echomem/mcp 1.4.44 → 1.4.46

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 (50) hide show
  1. package/README.md +28 -25
  2. package/dist/city/README.md +9 -0
  3. package/dist/city/echo-ai-city-only.html +2232 -0
  4. package/dist/city/echo-extraction-plate.html +330 -0
  5. package/dist/city/echo-face-cutout.png +0 -0
  6. package/dist/city/personality_stickers/bossy.png +0 -0
  7. package/dist/city/personality_stickers/ghosty.png +0 -0
  8. package/dist/city/personality_stickers/loopy.png +0 -0
  9. package/dist/city/personality_stickers/lusty.png +0 -0
  10. package/dist/city/personality_stickers/maxxy.png +0 -0
  11. package/dist/city/personality_stickers/tabby.png +0 -0
  12. package/dist/city/vendor/OrbitControls.js +1417 -0
  13. package/dist/city/vendor/RoundedBoxGeometry.js +155 -0
  14. package/dist/city/vendor/echo_general-file-21.riv +0 -0
  15. package/dist/city/vendor/rive.js +8139 -0
  16. package/dist/city/vendor/rive.wasm +0 -0
  17. package/dist/city/vendor/three.module.min.js +6 -0
  18. package/dist/context-analysis/claude-native-canonical.js +2 -2
  19. package/dist/context-analysis/vendored-canonical.js +2 -2
  20. package/dist/context-analysis/workspace-report.js +3 -3
  21. package/dist/forensics.js +1531 -0
  22. package/dist/hud/hooks.js +31 -43
  23. package/dist/index.js +79 -15
  24. package/dist/local-data-paths.js +38 -0
  25. package/dist/migrate.js +140 -70
  26. package/dist/report.js +721 -0
  27. package/dist/save-checkpoint-hook.js +1 -1
  28. package/dist/setup-page/client-core.js +372 -18
  29. package/dist/setup-page/client-extraction.js +204 -37
  30. package/dist/setup-page/client-lifecycle.js +101 -31
  31. package/dist/setup-page/client-report-audit.js +819 -0
  32. package/dist/setup-page/client-report-city.js +356 -0
  33. package/dist/setup-page/client-report.js +6 -0
  34. package/dist/setup-page/client.js +2 -0
  35. package/dist/setup-page/styles-city-report.js +880 -0
  36. package/dist/setup-page/styles-context-audit.js +470 -0
  37. package/dist/setup-page/styles-extraction.js +31 -1
  38. package/dist/setup-page/styles-foundation.js +89 -0
  39. package/dist/setup-page/styles-mvp.js +155 -10
  40. package/dist/setup-page/styles-website-alignment.js +204 -0
  41. package/dist/setup-page/styles.js +4 -0
  42. package/dist/setup-page.js +4 -4
  43. package/dist/setup-preview.js +212 -4
  44. package/dist/setup.js +793 -300
  45. package/dist/source-session.js +3 -9
  46. package/dist/v1-contract.js +8 -0
  47. package/package.json +7 -9
  48. package/dist/config-files.js +0 -63
  49. package/dist/local-jsonl.js +0 -87
  50. package/dist/onboarding-stats.js +0 -16
@@ -0,0 +1,155 @@
1
+ import {
2
+ BoxGeometry,
3
+ Vector3
4
+ } from 'three';
5
+
6
+ const _tempNormal = new Vector3();
7
+
8
+ function getUv( faceDirVector, normal, uvAxis, projectionAxis, radius, sideLength ) {
9
+
10
+ const totArcLength = 2 * Math.PI * radius / 4;
11
+
12
+ // length of the planes between the arcs on each axis
13
+ const centerLength = Math.max( sideLength - 2 * radius, 0 );
14
+ const halfArc = Math.PI / 4;
15
+
16
+ // Get the vector projected onto the Y plane
17
+ _tempNormal.copy( normal );
18
+ _tempNormal[ projectionAxis ] = 0;
19
+ _tempNormal.normalize();
20
+
21
+ // total amount of UV space alloted to a single arc
22
+ const arcUvRatio = 0.5 * totArcLength / ( totArcLength + centerLength );
23
+
24
+ // the distance along one arc the point is at
25
+ const arcAngleRatio = 1.0 - ( _tempNormal.angleTo( faceDirVector ) / halfArc );
26
+
27
+ if ( Math.sign( _tempNormal[ uvAxis ] ) === 1 ) {
28
+
29
+ return arcAngleRatio * arcUvRatio;
30
+
31
+ } else {
32
+
33
+ // total amount of UV space alloted to the plane between the arcs
34
+ const lenUv = centerLength / ( totArcLength + centerLength );
35
+ return lenUv + arcUvRatio + arcUvRatio * ( 1.0 - arcAngleRatio );
36
+
37
+ }
38
+
39
+ }
40
+
41
+ class RoundedBoxGeometry extends BoxGeometry {
42
+
43
+ constructor( width = 1, height = 1, depth = 1, segments = 2, radius = 0.1 ) {
44
+
45
+ // ensure segments is odd so we have a plane connecting the rounded corners
46
+ segments = segments * 2 + 1;
47
+
48
+ // ensure radius isn't bigger than shortest side
49
+ radius = Math.min( width / 2, height / 2, depth / 2, radius );
50
+
51
+ super( 1, 1, 1, segments, segments, segments );
52
+
53
+ // if we just have one segment we're the same as a regular box
54
+ if ( segments === 1 ) return;
55
+
56
+ const geometry2 = this.toNonIndexed();
57
+
58
+ this.index = null;
59
+ this.attributes.position = geometry2.attributes.position;
60
+ this.attributes.normal = geometry2.attributes.normal;
61
+ this.attributes.uv = geometry2.attributes.uv;
62
+
63
+ //
64
+
65
+ const position = new Vector3();
66
+ const normal = new Vector3();
67
+
68
+ const box = new Vector3( width, height, depth ).divideScalar( 2 ).subScalar( radius );
69
+
70
+ const positions = this.attributes.position.array;
71
+ const normals = this.attributes.normal.array;
72
+ const uvs = this.attributes.uv.array;
73
+
74
+ const faceTris = positions.length / 6;
75
+ const faceDirVector = new Vector3();
76
+ const halfSegmentSize = 0.5 / segments;
77
+
78
+ for ( let i = 0, j = 0; i < positions.length; i += 3, j += 2 ) {
79
+
80
+ position.fromArray( positions, i );
81
+ normal.copy( position );
82
+ normal.x -= Math.sign( normal.x ) * halfSegmentSize;
83
+ normal.y -= Math.sign( normal.y ) * halfSegmentSize;
84
+ normal.z -= Math.sign( normal.z ) * halfSegmentSize;
85
+ normal.normalize();
86
+
87
+ positions[ i + 0 ] = box.x * Math.sign( position.x ) + normal.x * radius;
88
+ positions[ i + 1 ] = box.y * Math.sign( position.y ) + normal.y * radius;
89
+ positions[ i + 2 ] = box.z * Math.sign( position.z ) + normal.z * radius;
90
+
91
+ normals[ i + 0 ] = normal.x;
92
+ normals[ i + 1 ] = normal.y;
93
+ normals[ i + 2 ] = normal.z;
94
+
95
+ const side = Math.floor( i / faceTris );
96
+
97
+ switch ( side ) {
98
+
99
+ case 0: // right
100
+
101
+ // generate UVs along Z then Y
102
+ faceDirVector.set( 1, 0, 0 );
103
+ uvs[ j + 0 ] = getUv( faceDirVector, normal, 'z', 'y', radius, depth );
104
+ uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'z', radius, height );
105
+ break;
106
+
107
+ case 1: // left
108
+
109
+ // generate UVs along Z then Y
110
+ faceDirVector.set( - 1, 0, 0 );
111
+ uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'z', 'y', radius, depth );
112
+ uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'z', radius, height );
113
+ break;
114
+
115
+ case 2: // top
116
+
117
+ // generate UVs along X then Z
118
+ faceDirVector.set( 0, 1, 0 );
119
+ uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'x', 'z', radius, width );
120
+ uvs[ j + 1 ] = getUv( faceDirVector, normal, 'z', 'x', radius, depth );
121
+ break;
122
+
123
+ case 3: // bottom
124
+
125
+ // generate UVs along X then Z
126
+ faceDirVector.set( 0, - 1, 0 );
127
+ uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'x', 'z', radius, width );
128
+ uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'z', 'x', radius, depth );
129
+ break;
130
+
131
+ case 4: // front
132
+
133
+ // generate UVs along X then Y
134
+ faceDirVector.set( 0, 0, 1 );
135
+ uvs[ j + 0 ] = 1.0 - getUv( faceDirVector, normal, 'x', 'y', radius, width );
136
+ uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'x', radius, height );
137
+ break;
138
+
139
+ case 5: // back
140
+
141
+ // generate UVs along X then Y
142
+ faceDirVector.set( 0, 0, - 1 );
143
+ uvs[ j + 0 ] = getUv( faceDirVector, normal, 'x', 'y', radius, width );
144
+ uvs[ j + 1 ] = 1.0 - getUv( faceDirVector, normal, 'y', 'x', radius, height );
145
+ break;
146
+
147
+ }
148
+
149
+ }
150
+
151
+ }
152
+
153
+ }
154
+
155
+ export { RoundedBoxGeometry };