@sweetoburrito/backstage-plugin-ai-assistant-node 0.8.0 → 0.9.0
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/dist/extensions.cjs.js.map +1 -1
- package/dist/index.cjs.js +2 -0
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +39 -9
- package/dist/services/ai-assistant.cjs.js +73 -0
- package/dist/services/ai-assistant.cjs.js.map +1 -0
- package/dist/utils/get-user.cjs.js +2 -1
- package/dist/utils/get-user.cjs.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +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 {
|
|
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 { Model } from './types/model';\nimport { Embeddings } from '@langchain/core/embeddings';\nimport { CallbackProvider } from './types';\nimport { Tool } from '@sweetoburrito/backstage-plugin-ai-assistant-common';\nimport { ZodType } from 'zod';\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<Omit<Embeddings, 'caller'>>;\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 ModelProviderExtensionPoint = {\n register: (model: Model) => void;\n};\n\nexport const modelProviderExtensionPoint =\n createExtensionPoint<ModelProviderExtensionPoint>({\n id: 'ai-assistant.model-provider',\n });\n\nexport type ToolExtensionPoint = {\n register: (tool: Tool<ZodType>) => void;\n};\n\nexport const toolExtensionPoint = createExtensionPoint<ToolExtensionPoint>({\n id: 'ai-assistant.tool',\n});\n\nexport type CallbackExtensionPoint = {\n register: (callback: CallbackProvider) => void;\n};\n\nexport const callbackProviderExtensionPoint =\n createExtensionPoint<CallbackExtensionPoint>({\n id: 'ai-assistant.callback',\n });\n"],"names":["createExtensionPoint"],"mappings":";;;;AAYO,MAAM,6BACXA,qCAAA,CAAiD;AAAA,EAC/C,EAAA,EAAI;AACN,CAAC;AAUI,MAAM,mCACXA,qCAAA,CAAuD;AAAA,EACrD,EAAA,EAAI;AACN,CAAC;AAMI,MAAM,8BACXA,qCAAA,CAAkD;AAAA,EAChD,EAAA,EAAI;AACN,CAAC;AAMI,MAAM,qBAAqBA,qCAAA,CAAyC;AAAA,EACzE,EAAA,EAAI;AACN,CAAC;AAMM,MAAM,iCACXA,qCAAA,CAA6C;AAAA,EAC3C,EAAA,EAAI;AACN,CAAC;;;;;;;;"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -5,6 +5,7 @@ var tool = require('./utils/tool.cjs.js');
|
|
|
5
5
|
var streamToString = require('./utils/stream-to-string.cjs.js');
|
|
6
6
|
var encrypt = require('./utils/encrypt.cjs.js');
|
|
7
7
|
var getUser = require('./utils/get-user.cjs.js');
|
|
8
|
+
var aiAssistant = require('./services/ai-assistant.cjs.js');
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
|
|
@@ -18,4 +19,5 @@ exports.streamToString = streamToString.streamToString;
|
|
|
18
19
|
exports.decrypt = encrypt.decrypt;
|
|
19
20
|
exports.encrypt = encrypt.encrypt;
|
|
20
21
|
exports.getUser = getUser.getUser;
|
|
22
|
+
exports.aiAssistantServiceRef = aiAssistant.aiAssistantServiceRef;
|
|
21
23
|
//# sourceMappingURL=index.cjs.js.map
|
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as _backstage_backend_plugin_api from '@backstage/backend-plugin-api';
|
|
2
|
-
import { LoggerService, RootConfigService, SchedulerService, CacheService, BackstageCredentials } from '@backstage/backend-plugin-api';
|
|
2
|
+
import { LoggerService, RootConfigService, SchedulerService, CacheService, AuthService, BackstageCredentials, DiscoveryService, ServiceRef } from '@backstage/backend-plugin-api';
|
|
3
3
|
import { Embeddings } from '@langchain/core/embeddings';
|
|
4
4
|
import { BaseCallbackHandler } from '@langchain/core/callbacks/base';
|
|
5
|
-
import { JsonValue, Message, Tool } from '@sweetoburrito/backstage-plugin-ai-assistant-common';
|
|
5
|
+
import { JsonValue, Message, Tool, EnabledTool } from '@sweetoburrito/backstage-plugin-ai-assistant-common';
|
|
6
6
|
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
7
7
|
import { ZodType } from 'zod';
|
|
8
|
+
import { UserEntity } from '@backstage/catalog-model';
|
|
8
9
|
import { CatalogService } from '@backstage/plugin-catalog-node';
|
|
9
10
|
|
|
10
11
|
type EmbeddingsSource = string;
|
|
@@ -84,6 +85,11 @@ type CallbackProvider = {
|
|
|
84
85
|
chainMetadataCallback?: ChainMetadataCallback;
|
|
85
86
|
};
|
|
86
87
|
|
|
88
|
+
type Model = {
|
|
89
|
+
id: string;
|
|
90
|
+
chatModel: BaseChatModel;
|
|
91
|
+
};
|
|
92
|
+
|
|
87
93
|
type DataIngestorExtensionPoint = {
|
|
88
94
|
registerIngestor: (ingestor: Ingestor) => void;
|
|
89
95
|
};
|
|
@@ -95,10 +101,6 @@ type EmbeddingsProviderExtensionPoint = {
|
|
|
95
101
|
register: (provider: EmbeddingsProvider) => void;
|
|
96
102
|
};
|
|
97
103
|
declare const embeddingsProviderExtensionPoint: _backstage_backend_plugin_api.ExtensionPoint<EmbeddingsProviderExtensionPoint>;
|
|
98
|
-
type Model = {
|
|
99
|
-
id: string;
|
|
100
|
-
chatModel: BaseChatModel;
|
|
101
|
-
};
|
|
102
104
|
type ModelProviderExtensionPoint = {
|
|
103
105
|
register: (model: Model) => void;
|
|
104
106
|
};
|
|
@@ -122,7 +124,35 @@ declare function streamToString(readableStream: NodeJS.ReadableStream | null): P
|
|
|
122
124
|
declare const encrypt: (text: string, key: string) => string;
|
|
123
125
|
declare const decrypt: (encryptedText: string, key: string) => string;
|
|
124
126
|
|
|
125
|
-
declare const getUser: (cache: CacheService, userEntityRef: string,
|
|
127
|
+
declare const getUser: (cache: CacheService, userEntityRef: string, catalog: CatalogService, auth: AuthService) => Promise<UserEntity | undefined>;
|
|
128
|
+
|
|
129
|
+
type AiAssistantService = {
|
|
130
|
+
summarize: (options: {
|
|
131
|
+
content: string;
|
|
132
|
+
credentials: BackstageCredentials;
|
|
133
|
+
length?: string;
|
|
134
|
+
prompt?: string;
|
|
135
|
+
}) => Promise<string>;
|
|
136
|
+
prompt: (options: {
|
|
137
|
+
messages: Message[];
|
|
138
|
+
tools?: EnabledTool[];
|
|
139
|
+
modelId?: string;
|
|
140
|
+
systemPrompt?: string;
|
|
141
|
+
context?: string;
|
|
142
|
+
metadata: {
|
|
143
|
+
runName: string;
|
|
144
|
+
userId: string;
|
|
145
|
+
};
|
|
146
|
+
credentials: BackstageCredentials;
|
|
147
|
+
}) => Promise<{
|
|
148
|
+
messages: Message[];
|
|
149
|
+
}>;
|
|
150
|
+
};
|
|
151
|
+
type AiAssistantServiceOptions = {
|
|
152
|
+
auth: AuthService;
|
|
153
|
+
discovery: DiscoveryService;
|
|
154
|
+
};
|
|
155
|
+
declare const aiAssistantServiceRef: ServiceRef<AiAssistantService, 'plugin', 'singleton'>;
|
|
126
156
|
|
|
127
|
-
export { callbackProviderExtensionPoint, createAssistantTool, dataIngestorExtensionPoint, decrypt, embeddingsProviderExtensionPoint, encrypt, getUser, modelProviderExtensionPoint, streamToString, toolExtensionPoint };
|
|
128
|
-
export type { AugmentationIndexer, CallbackExtensionPoint, CallbackProvider, ChainCallback, ChainCallbackOptions, ChainMetadata, ChainMetadataCallback, DataIngestionPipeline, DataIngestionPipelineOptions, DataIngestorExtensionPoint, Embedding, EmbeddingDocument, EmbeddingDocumentMetadata, EmbeddingsProvider, EmbeddingsProviderExtensionPoint, EmbeddingsSource, EntityFilterShape, Ingestor, IngestorOptions, Model, ModelProviderExtensionPoint, ScoreCallback, ToolExtensionPoint, VectorStore };
|
|
157
|
+
export { aiAssistantServiceRef, callbackProviderExtensionPoint, createAssistantTool, dataIngestorExtensionPoint, decrypt, embeddingsProviderExtensionPoint, encrypt, getUser, modelProviderExtensionPoint, streamToString, toolExtensionPoint };
|
|
158
|
+
export type { AiAssistantService, AiAssistantServiceOptions, AugmentationIndexer, CallbackExtensionPoint, CallbackProvider, ChainCallback, ChainCallbackOptions, ChainMetadata, ChainMetadataCallback, DataIngestionPipeline, DataIngestionPipelineOptions, DataIngestorExtensionPoint, Embedding, EmbeddingDocument, EmbeddingDocumentMetadata, EmbeddingsProvider, EmbeddingsProviderExtensionPoint, EmbeddingsSource, EntityFilterShape, Ingestor, IngestorOptions, Model, ModelProviderExtensionPoint, ScoreCallback, ToolExtensionPoint, VectorStore };
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var backendPluginApi = require('@backstage/backend-plugin-api');
|
|
4
|
+
|
|
5
|
+
const createAiAssistantService = ({
|
|
6
|
+
auth,
|
|
7
|
+
discovery
|
|
8
|
+
}) => {
|
|
9
|
+
const summarize = async ({
|
|
10
|
+
content,
|
|
11
|
+
credentials,
|
|
12
|
+
length = "a few sentences",
|
|
13
|
+
prompt: prompt2
|
|
14
|
+
}) => {
|
|
15
|
+
const baseUrl = await discovery.getBaseUrl("ai-assistant");
|
|
16
|
+
const { token } = await auth.getPluginRequestToken({
|
|
17
|
+
onBehalfOf: credentials,
|
|
18
|
+
targetPluginId: "ai-assistant"
|
|
19
|
+
});
|
|
20
|
+
const response = await fetch(`${baseUrl}/summary/content`, {
|
|
21
|
+
method: "POST",
|
|
22
|
+
body: JSON.stringify({ content, length, prompt: prompt2 }),
|
|
23
|
+
headers: {
|
|
24
|
+
"Content-Type": "application/json",
|
|
25
|
+
Authorization: `Bearer ${token}`
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const data = await response.json();
|
|
29
|
+
return data.summary;
|
|
30
|
+
};
|
|
31
|
+
const prompt = async (options) => {
|
|
32
|
+
const { credentials, ...rest } = options;
|
|
33
|
+
const baseUrl = await discovery.getBaseUrl("ai-assistant");
|
|
34
|
+
const { token } = await auth.getPluginRequestToken({
|
|
35
|
+
onBehalfOf: credentials,
|
|
36
|
+
targetPluginId: "ai-assistant"
|
|
37
|
+
});
|
|
38
|
+
const response = await fetch(`${baseUrl}/agent/prompt`, {
|
|
39
|
+
method: "POST",
|
|
40
|
+
body: JSON.stringify({ ...rest }),
|
|
41
|
+
headers: {
|
|
42
|
+
"Content-Type": "application/json",
|
|
43
|
+
Authorization: `Bearer ${token}`
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const body = await response.json();
|
|
47
|
+
const messages = body.messages;
|
|
48
|
+
return {
|
|
49
|
+
messages
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
summarize,
|
|
54
|
+
prompt
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
const aiAssistantServiceRef = backendPluginApi.createServiceRef({
|
|
58
|
+
id: "ai-assistant.ai-assistant-service",
|
|
59
|
+
defaultFactory: async (service) => backendPluginApi.createServiceFactory({
|
|
60
|
+
service,
|
|
61
|
+
deps: {
|
|
62
|
+
config: backendPluginApi.coreServices.rootConfig,
|
|
63
|
+
auth: backendPluginApi.coreServices.auth,
|
|
64
|
+
discovery: backendPluginApi.coreServices.discovery
|
|
65
|
+
},
|
|
66
|
+
factory: async (options) => {
|
|
67
|
+
return createAiAssistantService(options);
|
|
68
|
+
}
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
exports.aiAssistantServiceRef = aiAssistantServiceRef;
|
|
73
|
+
//# sourceMappingURL=ai-assistant.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-assistant.cjs.js","sources":["../../src/services/ai-assistant.ts"],"sourcesContent":["import {\n createServiceFactory,\n createServiceRef,\n coreServices,\n} from '@backstage/backend-plugin-api';\n\nimport type {\n ServiceRef,\n BackstageCredentials,\n AuthService,\n DiscoveryService,\n} from '@backstage/backend-plugin-api';\nimport {\n EnabledTool,\n Message,\n} from '@sweetoburrito/backstage-plugin-ai-assistant-common';\n\nexport type AiAssistantService = {\n summarize: (options: {\n content: string;\n credentials: BackstageCredentials;\n length?: string;\n prompt?: string;\n }) => Promise<string>;\n\n prompt: (options: {\n messages: Message[];\n tools?: EnabledTool[];\n modelId?: string;\n systemPrompt?: string;\n context?: string;\n metadata: {\n runName: string;\n userId: string;\n };\n credentials: BackstageCredentials;\n }) => Promise<{\n messages: Message[];\n }>;\n};\n\nexport type AiAssistantServiceOptions = {\n auth: AuthService;\n discovery: DiscoveryService;\n};\n\nconst createAiAssistantService = ({\n auth,\n discovery,\n}: AiAssistantServiceOptions): AiAssistantService => {\n const summarize: AiAssistantService['summarize'] = async ({\n content,\n credentials,\n length = 'a few sentences',\n prompt,\n }) => {\n const baseUrl = await discovery.getBaseUrl('ai-assistant');\n\n const { token } = await auth.getPluginRequestToken({\n onBehalfOf: credentials,\n targetPluginId: 'ai-assistant',\n });\n\n const response = await fetch(`${baseUrl}/summary/content`, {\n method: 'POST',\n body: JSON.stringify({ content, length, prompt }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n });\n\n const data = await response.json();\n return data.summary as string;\n };\n\n const prompt: AiAssistantService['prompt'] = async options => {\n const { credentials, ...rest } = options;\n\n const baseUrl = await discovery.getBaseUrl('ai-assistant');\n\n const { token } = await auth.getPluginRequestToken({\n onBehalfOf: credentials,\n targetPluginId: 'ai-assistant',\n });\n\n const response = await fetch(`${baseUrl}/agent/prompt`, {\n method: 'POST',\n body: JSON.stringify({ ...rest }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`,\n },\n });\n\n const body = await response.json();\n\n const messages = body.messages as Message[];\n\n return {\n messages,\n };\n };\n\n return {\n summarize,\n prompt,\n };\n};\n\nexport const aiAssistantServiceRef: ServiceRef<\n AiAssistantService,\n 'plugin',\n 'singleton'\n> = createServiceRef<AiAssistantService>({\n id: 'ai-assistant.ai-assistant-service',\n defaultFactory: async service =>\n createServiceFactory({\n service,\n deps: {\n config: coreServices.rootConfig,\n auth: coreServices.auth,\n discovery: coreServices.discovery,\n },\n factory: async options => {\n return createAiAssistantService(options);\n },\n }),\n});\n"],"names":["prompt","createServiceRef","createServiceFactory","coreServices"],"mappings":";;;;AA8CA,MAAM,2BAA2B,CAAC;AAAA,EAChC,IAAA;AAAA,EACA;AACF,CAAA,KAAqD;AACnD,EAAA,MAAM,YAA6C,OAAO;AAAA,IACxD,OAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA,GAAS,iBAAA;AAAA,IACT,MAAA,EAAAA;AAAA,GACF,KAAM;AACJ,IAAA,MAAM,OAAA,GAAU,MAAM,SAAA,CAAU,UAAA,CAAW,cAAc,CAAA;AAEzD,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAM,KAAK,qBAAA,CAAsB;AAAA,MACjD,UAAA,EAAY,WAAA;AAAA,MACZ,cAAA,EAAgB;AAAA,KACjB,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,gBAAA,CAAA,EAAoB;AAAA,MACzD,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAK,SAAA,CAAU,EAAE,SAAS,MAAA,EAAQ,MAAA,EAAAA,SAAQ,CAAA;AAAA,MAChD,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB,kBAAA;AAAA,QAChB,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAChC,KACD,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd,CAAA;AAEA,EAAA,MAAM,MAAA,GAAuC,OAAM,OAAA,KAAW;AAC5D,IAAA,MAAM,EAAE,WAAA,EAAa,GAAG,IAAA,EAAK,GAAI,OAAA;AAEjC,IAAA,MAAM,OAAA,GAAU,MAAM,SAAA,CAAU,UAAA,CAAW,cAAc,CAAA;AAEzD,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAM,KAAK,qBAAA,CAAsB;AAAA,MACjD,UAAA,EAAY,WAAA;AAAA,MACZ,cAAA,EAAgB;AAAA,KACjB,CAAA;AAED,IAAA,MAAM,QAAA,GAAW,MAAM,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA,aAAA,CAAA,EAAiB;AAAA,MACtD,MAAA,EAAQ,MAAA;AAAA,MACR,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,GAAG,MAAM,CAAA;AAAA,MAChC,OAAA,EAAS;AAAA,QACP,cAAA,EAAgB,kBAAA;AAAA,QAChB,aAAA,EAAe,UAAU,KAAK,CAAA;AAAA;AAChC,KACD,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AAEjC,IAAA,MAAM,WAAW,IAAA,CAAK,QAAA;AAEtB,IAAA,OAAO;AAAA,MACL;AAAA,KACF;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;AAEO,MAAM,wBAITC,iCAAA,CAAqC;AAAA,EACvC,EAAA,EAAI,mCAAA;AAAA,EACJ,cAAA,EAAgB,OAAM,OAAA,KACpBC,qCAAA,CAAqB;AAAA,IACnB,OAAA;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,QAAQC,6BAAA,CAAa,UAAA;AAAA,MACrB,MAAMA,6BAAA,CAAa,IAAA;AAAA,MACnB,WAAWA,6BAAA,CAAa;AAAA,KAC1B;AAAA,IACA,OAAA,EAAS,OAAM,OAAA,KAAW;AACxB,MAAA,OAAO,yBAAyB,OAAO,CAAA;AAAA,IACzC;AAAA,GACD;AACL,CAAC;;;;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const getUser = async (cache, userEntityRef,
|
|
3
|
+
const getUser = async (cache, userEntityRef, catalog, auth) => {
|
|
4
4
|
const cached = await cache.get(userEntityRef);
|
|
5
5
|
if (cached) {
|
|
6
6
|
return JSON.parse(String(cached));
|
|
7
7
|
}
|
|
8
|
+
const credentials = await auth.getOwnServiceCredentials();
|
|
8
9
|
const user = await catalog.getEntityByRef(userEntityRef, {
|
|
9
10
|
credentials
|
|
10
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-user.cjs.js","sources":["../../src/utils/get-user.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"get-user.cjs.js","sources":["../../src/utils/get-user.ts"],"sourcesContent":["import { AuthService, CacheService } from '@backstage/backend-plugin-api';\nimport { UserEntity } from '@backstage/catalog-model';\nimport { CatalogService } from '@backstage/plugin-catalog-node';\n\nexport const getUser = async (\n cache: CacheService,\n userEntityRef: string,\n catalog: CatalogService,\n auth: AuthService,\n): Promise<UserEntity | undefined> => {\n const cached = await cache.get(userEntityRef);\n\n if (cached) {\n return JSON.parse(String(cached));\n }\n\n const credentials = await auth.getOwnServiceCredentials();\n\n const user = (await catalog.getEntityByRef(userEntityRef, {\n credentials,\n })) as UserEntity | undefined;\n await cache.set(userEntityRef, JSON.stringify(user));\n\n return user;\n};\n"],"names":[],"mappings":";;AAIO,MAAM,OAAA,GAAU,OACrB,KAAA,EACA,aAAA,EACA,SACA,IAAA,KACoC;AACpC,EAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,GAAA,CAAI,aAAa,CAAA;AAE5C,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,EAClC;AAEA,EAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,wBAAA,EAAyB;AAExD,EAAA,MAAM,IAAA,GAAQ,MAAM,OAAA,CAAQ,cAAA,CAAe,aAAA,EAAe;AAAA,IACxD;AAAA,GACD,CAAA;AACD,EAAA,MAAM,MAAM,GAAA,CAAI,aAAA,EAAe,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA;AAEnD,EAAA,OAAO,IAAA;AACT;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sweetoburrito/backstage-plugin-ai-assistant-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Node.js library for the ai-assistant plugin",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
@@ -39,7 +39,8 @@
|
|
|
39
39
|
"@backstage/catalog-model": "backstage:^",
|
|
40
40
|
"@backstage/plugin-catalog-node": "backstage:^",
|
|
41
41
|
"@langchain/core": "^0.3.72",
|
|
42
|
-
"@
|
|
42
|
+
"@langchain/mcp-adapters": "^1.0.3",
|
|
43
|
+
"@sweetoburrito/backstage-plugin-ai-assistant-common": "^0.8.0",
|
|
43
44
|
"zod": "^4.1.11"
|
|
44
45
|
},
|
|
45
46
|
"typesVersions": {
|