Skip to content

Commit 4bded18

Browse files
committed
getting the tab set up
1 parent 476b312 commit 4bded18

File tree

7 files changed

+127
-0
lines changed

7 files changed

+127
-0
lines changed

package-lock.json

Lines changed: 43 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import React from 'react';
2+
3+
const VectorVisualizer = () => {
4+
// Placeholder points
5+
const points = [
6+
{ x: 30, y: 20 },
7+
{ x: 80, y: 90 },
8+
{ x: 150, y: 50 },
9+
{ x: 200, y: 120 },
10+
];
11+
12+
return (
13+
<div>
14+
<h2>Vector Embedding Visualization (Placeholder)</h2>
15+
<svg width="300" height="200" style={{ border: '1px solid #ccc' }}>
16+
{points.map((point, idx) => (
17+
<circle key={idx} cx={point.x} cy={point.y} r={5} fill="teal" />
18+
))}
19+
</svg>
20+
</div>
21+
);
22+
};
23+
24+
export default VectorVisualizer;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './plugin';
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"name": "@mongodb-js/compass-vector-embedding-visualizer",
3+
"version": "0.0.1",
4+
"description": "Compass plugin for visualizing vector embeddings",
5+
"main": "plugin.tsx",
6+
"license": "SSPL",
7+
"scripts": {
8+
"lint": "eslint .",
9+
"test": "mocha"
10+
},
11+
"dependencies": {
12+
"react": "^18.2.0"
13+
},
14+
"peerDependencies": {
15+
"react": "^18.2.0"
16+
}
17+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// plugin.tsx
2+
import React from 'react';
3+
import { registerHadronPlugin } from 'hadron-app-registry';
4+
import { collectionModelLocator } from '@mongodb-js/compass-app-stores/provider';
5+
import { dataServiceLocator } from '@mongodb-js/compass-connections/provider';
6+
import { createLoggerLocator } from '@mongodb-js/compass-logging/provider';
7+
import { telemetryLocator } from '@mongodb-js/compass-telemetry/provider';
8+
9+
import VectorVisualizer from './components/vector-visualizer';
10+
11+
export const CompassVectorPluginProvider = registerHadronPlugin(
12+
{
13+
name: 'CompassVectorEmbeddingVisualizer',
14+
component: function VectorVisualizerProvider({ children }) {
15+
return <>{children}</>;
16+
},
17+
activate: () => {
18+
return {
19+
store: () => () => null,
20+
deactivate: () => {},
21+
};
22+
},
23+
},
24+
{
25+
collection: collectionModelLocator,
26+
dataService: dataServiceLocator,
27+
logger: createLoggerLocator('COMPASS-VECTOR-VISUALIZER'),
28+
track: telemetryLocator,
29+
}
30+
);
31+
32+
export const CompassVectorPlugin = {
33+
name: 'Vector Embeddings',
34+
type: 'Collection' as const,
35+
provider: CompassVectorPluginProvider,
36+
content: VectorVisualizer,
37+
header: () => <span>Vector Embeddings</span>,
38+
};

packages/compass-web/src/entrypoint.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { CompassIndexesPlugin } from '@mongodb-js/compass-indexes';
3434
import { CompassSchemaValidationPlugin } from '@mongodb-js/compass-schema-validation';
3535
import { CompassGlobalWritesPlugin } from '@mongodb-js/compass-global-writes';
3636
import { CompassGenerativeAIPlugin } from '@mongodb-js/compass-generative-ai';
37+
import { CompassVectorPlugin } from '@mongodb-js/compass-vector-embedding-visualizer';
3738
import ExplainPlanCollectionTabModal from '@mongodb-js/compass-explain-plan';
3839
import ExportToLanguageCollectionTabModal from '@mongodb-js/compass-export-to-language';
3940
import {
@@ -188,6 +189,7 @@ function CompassWorkspace({
188189
CompassIndexesPlugin,
189190
CompassSchemaValidationPlugin,
190191
CompassGlobalWritesPlugin,
192+
CompassVectorPlugin,
191193
]}
192194
modals={[
193195
ExplainPlanCollectionTabModal,

packages/compass/src/app/components/workspace.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { CompassSchemaPlugin } from '@mongodb-js/compass-schema';
2727
import { CompassIndexesPlugin } from '@mongodb-js/compass-indexes';
2828
import { CompassSchemaValidationPlugin } from '@mongodb-js/compass-schema-validation';
2929
import { CompassGlobalWritesPlugin } from '@mongodb-js/compass-global-writes';
30+
import { CompassVectorPlugin } from '@mongodb-js/compass-vector-embedding-visualizer';
3031
import { CreateViewPlugin } from '@mongodb-js/compass-aggregations';
3132
import {
3233
CreateNamespacePlugin,
@@ -93,6 +94,7 @@ export default function Workspace({
9394
CompassIndexesPlugin,
9495
CompassSchemaValidationPlugin,
9596
CompassGlobalWritesPlugin,
97+
CompassVectorPlugin,
9698
]}
9799
modals={[
98100
ExplainPlanCollectionTabModal,

0 commit comments

Comments
 (0)