@sweetoburrito/backstage-plugin-ai-assistant-node 0.2.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.
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # @sweetoburrito/backstage-plugin-ai-assistant-node
2
+
3
+ Welcome to the Node.js library package for the ai-assistant plugin!
4
+
5
+ This package contains types and interfaces to support the ai-assistant plugin and modules.
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var backendPluginApi = require('@backstage/backend-plugin-api');
4
+
5
+ const dataIngestorExtensionPoint = backendPluginApi.createExtensionPoint({
6
+ id: "ai-assistant.data-ingestor"
7
+ });
8
+ const embeddingsProviderExtensionPoint = backendPluginApi.createExtensionPoint({
9
+ id: "ai-assistant.embeddings-provider"
10
+ });
11
+ const modelProviderExtensionPoint = backendPluginApi.createExtensionPoint({
12
+ id: "ai-assistant.model-provider"
13
+ });
14
+
15
+ exports.dataIngestorExtensionPoint = dataIngestorExtensionPoint;
16
+ exports.embeddingsProviderExtensionPoint = embeddingsProviderExtensionPoint;
17
+ exports.modelProviderExtensionPoint = modelProviderExtensionPoint;
18
+ //# sourceMappingURL=extensions.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.cjs.js","sources":["../src/extensions.ts"],"sourcesContent":["import { createExtensionPoint } from '@backstage/backend-plugin-api';\nimport { Ingestor } from './types/ingestor';\nimport { Embeddings } from '@langchain/core/embeddings';\nimport { BaseChatModel } from '@langchain/core/language_models/chat_models';\n\nexport type DataIngestorExtensionPoint = {\n registerIngestor: (ingestor: Ingestor) => void;\n};\n\nexport const dataIngestorExtensionPoint =\n createExtensionPoint<DataIngestorExtensionPoint>({\n id: 'ai-assistant.data-ingestor',\n });\n\nexport type EmbeddingsProvider = {\n getEmbeddings: () => Promise<Embeddings>;\n};\n\nexport type EmbeddingsProviderExtensionPoint = {\n register: (provider: EmbeddingsProvider) => void;\n};\n\nexport const embeddingsProviderExtensionPoint =\n createExtensionPoint<EmbeddingsProviderExtensionPoint>({\n id: 'ai-assistant.embeddings-provider',\n });\n\nexport type Model = {\n id: string;\n chatModel: BaseChatModel;\n};\n\nexport type ModelProviderExtensionPoint = {\n register: (model: Model) => void;\n};\n\nexport const modelProviderExtensionPoint =\n createExtensionPoint<ModelProviderExtensionPoint>({\n id: 'ai-assistant.model-provider',\n });\n"],"names":["createExtensionPoint"],"mappings":";;;;AASO,MAAM,6BACXA,qCAAA,CAAiD;AAAA,EAC/C,EAAA,EAAI;AACN,CAAC;AAUI,MAAM,mCACXA,qCAAA,CAAuD;AAAA,EACrD,EAAA,EAAI;AACN,CAAC;AAWI,MAAM,8BACXA,qCAAA,CAAkD;AAAA,EAChD,EAAA,EAAI;AACN,CAAC;;;;;;"}
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var extensions = require('./extensions.cjs.js');
4
+
5
+
6
+
7
+ exports.dataIngestorExtensionPoint = extensions.dataIngestorExtensionPoint;
8
+ exports.embeddingsProviderExtensionPoint = extensions.embeddingsProviderExtensionPoint;
9
+ exports.modelProviderExtensionPoint = extensions.modelProviderExtensionPoint;
10
+ //# sourceMappingURL=index.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,84 @@
1
+ import { Embeddings } from '@langchain/core/embeddings';
2
+ import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
3
+ import { LoggerService, RootConfigService, SchedulerService } from '@backstage/backend-plugin-api';
4
+ import { BaseChatModel } from '@langchain/core/language_models/chat_models';
5
+
6
+ type EmbeddingsSource = string;
7
+ type EmbeddingDocumentMetadata = Partial<{
8
+ source: EmbeddingsSource;
9
+ id: string;
10
+ [key: string]: string;
11
+ }>;
12
+ type Embedding = {
13
+ metadata: EmbeddingDocumentMetadata;
14
+ content: string;
15
+ vector: number[];
16
+ id: string;
17
+ };
18
+ type EmbeddingDocument = {
19
+ metadata: EmbeddingDocumentMetadata;
20
+ content: string;
21
+ };
22
+ type DeletionParams = {
23
+ ids?: string[];
24
+ filter?: EmbeddingDocumentMetadata;
25
+ };
26
+ interface VectorStore {
27
+ connectEmbeddings(embeddings: Embeddings): void;
28
+ addDocuments(docs: EmbeddingDocument[]): Promise<void>;
29
+ deleteDocuments(deletionParams: DeletionParams): Promise<void>;
30
+ similaritySearch(query: string, filter?: EmbeddingDocumentMetadata, amount?: number): Promise<EmbeddingDocument[]>;
31
+ }
32
+ type EntityFilterShape = Record<string, string | symbol | (string | symbol)[]>[] | Record<string, string | symbol | (string | symbol)[]> | undefined;
33
+ interface AugmentationIndexer {
34
+ vectorStore: VectorStore;
35
+ createEmbeddings(source: EmbeddingsSource, filter?: EntityFilterShape): Promise<number>;
36
+ deleteEmbeddings(source: EmbeddingsSource, filter: EntityFilterShape): Promise<void>;
37
+ }
38
+
39
+ type IngestorOptions = {
40
+ saveDocumentsBatch: (documents: EmbeddingDocument[]) => Promise<void>;
41
+ };
42
+ type Ingestor = {
43
+ id: string;
44
+ ingest: (options: IngestorOptions) => Promise<EmbeddingDocument[] | void>;
45
+ };
46
+ type DataIngestionPipelineOptions = {
47
+ logger: LoggerService;
48
+ config: RootConfigService;
49
+ scheduler: SchedulerService;
50
+ vectorStore: VectorStore;
51
+ ingestors: Ingestor[];
52
+ };
53
+ type DataIngestionPipeline = {
54
+ start: () => Promise<void>;
55
+ };
56
+
57
+ type Message = {
58
+ id?: string;
59
+ role: string;
60
+ content: string;
61
+ };
62
+
63
+ type DataIngestorExtensionPoint = {
64
+ registerIngestor: (ingestor: Ingestor) => void;
65
+ };
66
+ declare const dataIngestorExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<DataIngestorExtensionPoint>;
67
+ type EmbeddingsProvider = {
68
+ getEmbeddings: () => Promise<Embeddings>;
69
+ };
70
+ type EmbeddingsProviderExtensionPoint = {
71
+ register: (provider: EmbeddingsProvider) => void;
72
+ };
73
+ declare const embeddingsProviderExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<EmbeddingsProviderExtensionPoint>;
74
+ type Model = {
75
+ id: string;
76
+ chatModel: BaseChatModel;
77
+ };
78
+ type ModelProviderExtensionPoint = {
79
+ register: (model: Model) => void;
80
+ };
81
+ declare const modelProviderExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<ModelProviderExtensionPoint>;
82
+
83
+ export { dataIngestorExtensionPoint, embeddingsProviderExtensionPoint, modelProviderExtensionPoint };
84
+ export type { AugmentationIndexer, DataIngestionPipeline, DataIngestionPipelineOptions, DataIngestorExtensionPoint, Embedding, EmbeddingDocument, EmbeddingDocumentMetadata, EmbeddingsProvider, EmbeddingsProviderExtensionPoint, EmbeddingsSource, EntityFilterShape, Ingestor, IngestorOptions, Message, Model, ModelProviderExtensionPoint, VectorStore };
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@sweetoburrito/backstage-plugin-ai-assistant-node",
3
+ "version": "0.2.1",
4
+ "license": "Apache-2.0",
5
+ "description": "Node.js library for the ai-assistant plugin",
6
+ "main": "dist/index.cjs.js",
7
+ "types": "dist/index.d.ts",
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "main": "dist/index.cjs.js",
11
+ "types": "dist/index.d.ts"
12
+ },
13
+ "backstage": {
14
+ "role": "node-library",
15
+ "pluginId": "ai-assistant",
16
+ "pluginPackages": [
17
+ "@sweetoburrito/backstage-plugin-ai-assistant-backend",
18
+ "@sweetoburrito/backstage-plugin-ai-assistant-node"
19
+ ]
20
+ },
21
+ "scripts": {
22
+ "build": "backstage-cli package build",
23
+ "lint": "backstage-cli package lint",
24
+ "test": "backstage-cli package test",
25
+ "clean": "backstage-cli package clean",
26
+ "prepack": "backstage-cli package prepack",
27
+ "postpack": "backstage-cli package postpack"
28
+ },
29
+ "devDependencies": {
30
+ "@backstage/cli": "backstage:^"
31
+ },
32
+ "files": [
33
+ "dist"
34
+ ],
35
+ "dependencies": {
36
+ "@backstage/backend-plugin-api": "backstage:^",
37
+ "@langchain/core": "^0.3.72"
38
+ },
39
+ "typesVersions": {
40
+ "*": {
41
+ "package.json": [
42
+ "package.json"
43
+ ]
44
+ }
45
+ }
46
+ }