@memberjunction/server 5.21.0 → 5.23.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/README.md +44 -0
- package/dist/agents/skip-sdk.d.ts.map +1 -1
- package/dist/agents/skip-sdk.js +32 -2
- package/dist/agents/skip-sdk.js.map +1 -1
- package/dist/generated/generated.d.ts +172 -4
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +931 -2
- package/dist/generated/generated.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/resolvers/AutotagPipelineResolver.d.ts +21 -0
- package/dist/resolvers/AutotagPipelineResolver.d.ts.map +1 -0
- package/dist/resolvers/AutotagPipelineResolver.js +147 -0
- package/dist/resolvers/AutotagPipelineResolver.js.map +1 -0
- package/dist/resolvers/ClientToolRequestResolver.d.ts +43 -0
- package/dist/resolvers/ClientToolRequestResolver.d.ts.map +1 -0
- package/dist/resolvers/ClientToolRequestResolver.js +161 -0
- package/dist/resolvers/ClientToolRequestResolver.js.map +1 -0
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts +29 -0
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -0
- package/dist/resolvers/FetchEntityVectorsResolver.js +218 -0
- package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -0
- package/dist/resolvers/PipelineProgressResolver.d.ts +33 -0
- package/dist/resolvers/PipelineProgressResolver.d.ts.map +1 -0
- package/dist/resolvers/PipelineProgressResolver.js +138 -0
- package/dist/resolvers/PipelineProgressResolver.js.map +1 -0
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +7 -5
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/SearchKnowledgeResolver.d.ts +85 -0
- package/dist/resolvers/SearchKnowledgeResolver.d.ts.map +1 -0
- package/dist/resolvers/SearchKnowledgeResolver.js +587 -0
- package/dist/resolvers/SearchKnowledgeResolver.js.map +1 -0
- package/dist/resolvers/VectorizeEntityResolver.d.ts +21 -0
- package/dist/resolvers/VectorizeEntityResolver.d.ts.map +1 -0
- package/dist/resolvers/VectorizeEntityResolver.js +134 -0
- package/dist/resolvers/VectorizeEntityResolver.js.map +1 -0
- package/package.json +63 -62
- package/src/agents/skip-sdk.ts +31 -2
- package/src/generated/generated.ts +650 -7
- package/src/index.ts +13 -0
- package/src/resolvers/AutotagPipelineResolver.ts +146 -0
- package/src/resolvers/ClientToolRequestResolver.ts +128 -0
- package/src/resolvers/FetchEntityVectorsResolver.ts +234 -0
- package/src/resolvers/PipelineProgressResolver.ts +107 -0
- package/src/resolvers/RunAIAgentResolver.ts +7 -5
- package/src/resolvers/SearchKnowledgeResolver.ts +614 -0
- package/src/resolvers/VectorizeEntityResolver.ts +123 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientToolRequestResolver.js","sourceRoot":"","sources":["../../src/resolvers/ClientToolRequestResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AppContext } from '../types.js';
|
|
2
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
3
|
+
export declare class EntityVectorItem {
|
|
4
|
+
ID: string;
|
|
5
|
+
Values: number[];
|
|
6
|
+
Metadata: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class FetchEntityVectorsResult {
|
|
9
|
+
Success: boolean;
|
|
10
|
+
Results: EntityVectorItem[];
|
|
11
|
+
TotalCount: number;
|
|
12
|
+
ElapsedMs: number;
|
|
13
|
+
ErrorMessage?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare class FetchEntityVectorsResolver extends ResolverBase {
|
|
16
|
+
FetchEntityVectors(entityDocumentID: string, maxRecords: number | undefined, filter: string | undefined, { userPayload }?: AppContext): Promise<FetchEntityVectorsResult>;
|
|
17
|
+
/** Load EntityDocument by ID */
|
|
18
|
+
private loadEntityDocument;
|
|
19
|
+
/**
|
|
20
|
+
* Resolve the VectorIndex for an EntityDocument.
|
|
21
|
+
* Prefers the explicit VectorIndexID on the EntityDocument; falls back to
|
|
22
|
+
* finding a VectorIndex by matching VectorDatabaseID + EmbeddingModelID.
|
|
23
|
+
*/
|
|
24
|
+
private resolveVectorIndex;
|
|
25
|
+
/** Create a VectorDBBase provider instance for a given VectorIndex */
|
|
26
|
+
private createVectorDBInstance;
|
|
27
|
+
private errorResult;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=FetchEntityVectorsResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FetchEntityVectorsResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAO1D,qBACa,gBAAgB;IAEzB,EAAE,EAAE,MAAM,CAAC;IAGX,MAAM,EAAE,MAAM,EAAE,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,wBAAwB;IAEjC,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAG5B,UAAU,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,MAAM,CAAC;IAGlB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAID,qBACa,0BAA2B,SAAQ,YAAY;IAGlD,kBAAkB,CACK,gBAAgB,EAAE,MAAM,EACC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC7C,MAAM,EAAE,MAAM,GAAG,SAAS,EACtD,EAAE,WAAW,EAAE,GAAE,UAA6B,GACtD,OAAO,CAAC,wBAAwB,CAAC;IAkFpC,gCAAgC;YAClB,kBAAkB;IAiBhC;;;;OAIG;YACW,kBAAkB;IAsChC,sEAAsE;YACxD,sBAAsB;IA4BpC,OAAO,CAAC,WAAW;CAStB"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Resolver, Query, Arg, Ctx, ObjectType, Field, Float, Int } from 'type-graphql';
|
|
14
|
+
import { LogError, LogStatus, RunView } from '@memberjunction/core';
|
|
15
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
16
|
+
import { GetAIAPIKey } from '@memberjunction/ai';
|
|
17
|
+
import { VectorDBBase } from '@memberjunction/ai-vectordb';
|
|
18
|
+
import { MJGlobal, UUIDsEqual } from '@memberjunction/global';
|
|
19
|
+
/* ───── GraphQL types ───── */
|
|
20
|
+
let EntityVectorItem = class EntityVectorItem {
|
|
21
|
+
};
|
|
22
|
+
__decorate([
|
|
23
|
+
Field(),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], EntityVectorItem.prototype, "ID", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
Field(() => [Float]),
|
|
28
|
+
__metadata("design:type", Array)
|
|
29
|
+
], EntityVectorItem.prototype, "Values", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
Field(() => String),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], EntityVectorItem.prototype, "Metadata", void 0);
|
|
34
|
+
EntityVectorItem = __decorate([
|
|
35
|
+
ObjectType()
|
|
36
|
+
], EntityVectorItem);
|
|
37
|
+
export { EntityVectorItem };
|
|
38
|
+
let FetchEntityVectorsResult = class FetchEntityVectorsResult {
|
|
39
|
+
};
|
|
40
|
+
__decorate([
|
|
41
|
+
Field(),
|
|
42
|
+
__metadata("design:type", Boolean)
|
|
43
|
+
], FetchEntityVectorsResult.prototype, "Success", void 0);
|
|
44
|
+
__decorate([
|
|
45
|
+
Field(() => [EntityVectorItem]),
|
|
46
|
+
__metadata("design:type", Array)
|
|
47
|
+
], FetchEntityVectorsResult.prototype, "Results", void 0);
|
|
48
|
+
__decorate([
|
|
49
|
+
Field(),
|
|
50
|
+
__metadata("design:type", Number)
|
|
51
|
+
], FetchEntityVectorsResult.prototype, "TotalCount", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
Field(),
|
|
54
|
+
__metadata("design:type", Number)
|
|
55
|
+
], FetchEntityVectorsResult.prototype, "ElapsedMs", void 0);
|
|
56
|
+
__decorate([
|
|
57
|
+
Field({ nullable: true }),
|
|
58
|
+
__metadata("design:type", String)
|
|
59
|
+
], FetchEntityVectorsResult.prototype, "ErrorMessage", void 0);
|
|
60
|
+
FetchEntityVectorsResult = __decorate([
|
|
61
|
+
ObjectType()
|
|
62
|
+
], FetchEntityVectorsResult);
|
|
63
|
+
export { FetchEntityVectorsResult };
|
|
64
|
+
/* ───── Resolver ───── */
|
|
65
|
+
let FetchEntityVectorsResolver = class FetchEntityVectorsResolver extends ResolverBase {
|
|
66
|
+
async FetchEntityVectors(entityDocumentID, maxRecords, filter, { userPayload } = {}) {
|
|
67
|
+
const startTime = Date.now();
|
|
68
|
+
try {
|
|
69
|
+
const currentUser = this.GetUserFromPayload(userPayload);
|
|
70
|
+
if (!currentUser) {
|
|
71
|
+
return this.errorResult('Unable to determine current user', startTime);
|
|
72
|
+
}
|
|
73
|
+
const limit = maxRecords ?? 1000;
|
|
74
|
+
// Step 1: Load the EntityDocument
|
|
75
|
+
const entityDoc = await this.loadEntityDocument(entityDocumentID, currentUser);
|
|
76
|
+
if (!entityDoc) {
|
|
77
|
+
return this.errorResult(`EntityDocument not found: ${entityDocumentID}`, startTime);
|
|
78
|
+
}
|
|
79
|
+
// Step 2: Resolve the VectorIndex
|
|
80
|
+
const vectorIndex = await this.resolveVectorIndex(entityDoc, currentUser);
|
|
81
|
+
if (!vectorIndex) {
|
|
82
|
+
return this.errorResult(`Could not resolve VectorIndex for EntityDocument "${entityDoc.Name}"`, startTime);
|
|
83
|
+
}
|
|
84
|
+
// Step 3: Create VectorDB provider instance
|
|
85
|
+
const vectorDBInstance = await this.createVectorDBInstance(vectorIndex, currentUser);
|
|
86
|
+
if (!vectorDBInstance) {
|
|
87
|
+
return this.errorResult(`Could not create VectorDB provider for index "${vectorIndex.Name}"`, startTime);
|
|
88
|
+
}
|
|
89
|
+
// Step 4: Query with zero vector + Entity metadata filter.
|
|
90
|
+
// Pinecone's list API doesn't support metadata filtering, but query does.
|
|
91
|
+
// A zero vector returns results in arbitrary order (similarity is meaningless),
|
|
92
|
+
// but the metadata filter ensures we only get vectors for this entity.
|
|
93
|
+
const entityName = entityDoc.Entity;
|
|
94
|
+
const dimensions = vectorIndex.Dimensions || 1536; // fall back to common embedding size
|
|
95
|
+
const zeroVector = new Array(dimensions).fill(0);
|
|
96
|
+
const metadataFilter = { Entity: { $eq: entityName } };
|
|
97
|
+
const queryResponse = await vectorDBInstance.QueryIndex({
|
|
98
|
+
id: vectorIndex.Name, // index name (stripped before Pinecone query)
|
|
99
|
+
vector: zeroVector,
|
|
100
|
+
topK: limit,
|
|
101
|
+
includeMetadata: true,
|
|
102
|
+
includeValues: true,
|
|
103
|
+
filter: metadataFilter,
|
|
104
|
+
});
|
|
105
|
+
if (!queryResponse.success || !queryResponse.data) {
|
|
106
|
+
return this.errorResult(`Vector query failed for entity "${entityName}" in index "${vectorIndex.Name}"`, startTime);
|
|
107
|
+
}
|
|
108
|
+
// Step 5: Convert query matches to result format
|
|
109
|
+
const matches = queryResponse.data.matches ?? [];
|
|
110
|
+
const results = matches.map(match => ({
|
|
111
|
+
ID: match.id,
|
|
112
|
+
Values: match.values ?? [],
|
|
113
|
+
Metadata: JSON.stringify(match.metadata ?? {}),
|
|
114
|
+
}));
|
|
115
|
+
LogStatus(`FetchEntityVectors: Queried ${results.length} vectors for entity "${entityName}" in ${Date.now() - startTime}ms`);
|
|
116
|
+
return {
|
|
117
|
+
Success: true,
|
|
118
|
+
Results: results,
|
|
119
|
+
TotalCount: results.length,
|
|
120
|
+
ElapsedMs: Date.now() - startTime,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
125
|
+
LogError(`FetchEntityVectors query failed: ${msg}`);
|
|
126
|
+
return this.errorResult(msg, startTime);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/** Load EntityDocument by ID */
|
|
130
|
+
async loadEntityDocument(entityDocumentID, contextUser) {
|
|
131
|
+
const rv = new RunView();
|
|
132
|
+
const result = await rv.RunView({
|
|
133
|
+
EntityName: 'MJ: Entity Documents',
|
|
134
|
+
ExtraFilter: `ID='${entityDocumentID}'`,
|
|
135
|
+
ResultType: 'entity_object',
|
|
136
|
+
}, contextUser);
|
|
137
|
+
if (!result.Success || result.Results.length === 0) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
return result.Results[0];
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Resolve the VectorIndex for an EntityDocument.
|
|
144
|
+
* Prefers the explicit VectorIndexID on the EntityDocument; falls back to
|
|
145
|
+
* finding a VectorIndex by matching VectorDatabaseID + EmbeddingModelID.
|
|
146
|
+
*/
|
|
147
|
+
async resolveVectorIndex(entityDoc, contextUser) {
|
|
148
|
+
const rv = new RunView();
|
|
149
|
+
// If the EntityDocument has an explicit VectorIndexID, use it directly
|
|
150
|
+
if (entityDoc.VectorIndexID) {
|
|
151
|
+
const result = await rv.RunView({
|
|
152
|
+
EntityName: 'MJ: Vector Indexes',
|
|
153
|
+
ExtraFilter: `ID='${entityDoc.VectorIndexID}'`,
|
|
154
|
+
ResultType: 'entity_object',
|
|
155
|
+
}, contextUser);
|
|
156
|
+
if (result.Success && result.Results.length > 0) {
|
|
157
|
+
return result.Results[0];
|
|
158
|
+
}
|
|
159
|
+
LogError(`FetchEntityVectors: VectorIndex ${entityDoc.VectorIndexID} referenced by EntityDocument not found`);
|
|
160
|
+
}
|
|
161
|
+
// Fallback: find a VectorIndex by VectorDatabaseID + matching AIModelID as EmbeddingModelID
|
|
162
|
+
const indexResult = await rv.RunView({
|
|
163
|
+
EntityName: 'MJ: Vector Indexes',
|
|
164
|
+
ExtraFilter: `VectorDatabaseID='${entityDoc.VectorDatabaseID}'`,
|
|
165
|
+
ResultType: 'entity_object',
|
|
166
|
+
}, contextUser);
|
|
167
|
+
if (!indexResult.Success || indexResult.Results.length === 0) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
// Match on EmbeddingModelID = EntityDocument.AIModelID
|
|
171
|
+
const match = indexResult.Results.find(idx => UUIDsEqual(idx.EmbeddingModelID, entityDoc.AIModelID));
|
|
172
|
+
return match ?? indexResult.Results[0];
|
|
173
|
+
}
|
|
174
|
+
/** Create a VectorDBBase provider instance for a given VectorIndex */
|
|
175
|
+
async createVectorDBInstance(vectorIndex, contextUser) {
|
|
176
|
+
const rv = new RunView();
|
|
177
|
+
const dbResult = await rv.RunView({
|
|
178
|
+
EntityName: 'MJ: Vector Databases',
|
|
179
|
+
ExtraFilter: `ID='${vectorIndex.VectorDatabaseID}'`,
|
|
180
|
+
ResultType: 'entity_object',
|
|
181
|
+
}, contextUser);
|
|
182
|
+
if (!dbResult.Success || dbResult.Results.length === 0) {
|
|
183
|
+
LogError(`FetchEntityVectors: VectorDatabase not found for index "${vectorIndex.Name}"`);
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
const vectorDB = dbResult.Results[0];
|
|
187
|
+
const apiKey = GetAIAPIKey(vectorDB.ClassKey);
|
|
188
|
+
const instance = MJGlobal.Instance.ClassFactory.CreateInstance(VectorDBBase, vectorDB.ClassKey, apiKey);
|
|
189
|
+
if (!instance) {
|
|
190
|
+
LogError(`FetchEntityVectors: Failed to create VectorDB instance for ClassKey "${vectorDB.ClassKey}"`);
|
|
191
|
+
}
|
|
192
|
+
return instance;
|
|
193
|
+
}
|
|
194
|
+
errorResult(message, startTime) {
|
|
195
|
+
return {
|
|
196
|
+
Success: false,
|
|
197
|
+
Results: [],
|
|
198
|
+
TotalCount: 0,
|
|
199
|
+
ElapsedMs: Date.now() - startTime,
|
|
200
|
+
ErrorMessage: message,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
__decorate([
|
|
205
|
+
Query(() => FetchEntityVectorsResult),
|
|
206
|
+
__param(0, Arg('entityDocumentID')),
|
|
207
|
+
__param(1, Arg('maxRecords', () => Int, { nullable: true })),
|
|
208
|
+
__param(2, Arg('filter', { nullable: true })),
|
|
209
|
+
__param(3, Ctx()),
|
|
210
|
+
__metadata("design:type", Function),
|
|
211
|
+
__metadata("design:paramtypes", [String, Number, String, Object]),
|
|
212
|
+
__metadata("design:returntype", Promise)
|
|
213
|
+
], FetchEntityVectorsResolver.prototype, "FetchEntityVectors", null);
|
|
214
|
+
FetchEntityVectorsResolver = __decorate([
|
|
215
|
+
Resolver()
|
|
216
|
+
], FetchEntityVectorsResolver);
|
|
217
|
+
export { FetchEntityVectorsResolver };
|
|
218
|
+
//# sourceMappingURL=FetchEntityVectorsResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FetchEntityVectorsResolver.js","sourceRoot":"","sources":["../../src/resolvers/FetchEntityVectorsResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PubSubEngine } from 'type-graphql';
|
|
2
|
+
import { AppContext } from '../types.js';
|
|
3
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
4
|
+
/**
|
|
5
|
+
* Stage of the knowledge pipeline.
|
|
6
|
+
*/
|
|
7
|
+
export type PipelineStageType = 'extract' | 'autotag' | 'vectorize' | 'complete' | 'error';
|
|
8
|
+
export declare class PipelineProgressNotification {
|
|
9
|
+
PipelineRunID: string;
|
|
10
|
+
Stage: string;
|
|
11
|
+
TotalItems: number;
|
|
12
|
+
ProcessedItems: number;
|
|
13
|
+
CurrentItem?: string;
|
|
14
|
+
ElapsedMs: number;
|
|
15
|
+
EstimatedRemainingMs?: number;
|
|
16
|
+
PercentComplete: number;
|
|
17
|
+
}
|
|
18
|
+
export declare class PipelineStartResult {
|
|
19
|
+
Success: boolean;
|
|
20
|
+
PipelineRunID: string;
|
|
21
|
+
ErrorMessage?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare class PipelineProgressResolver extends ResolverBase {
|
|
24
|
+
/**
|
|
25
|
+
* Subscribe to pipeline progress notifications for a specific pipeline run.
|
|
26
|
+
*/
|
|
27
|
+
PipelineProgress(notification: PipelineProgressNotification, _pipelineRunID: string): PipelineProgressNotification;
|
|
28
|
+
/**
|
|
29
|
+
* Publish a pipeline progress update. Called internally by the pipeline engine.
|
|
30
|
+
*/
|
|
31
|
+
PublishPipelineProgress(pipelineRunID: string, stage: string, totalItems: number, processedItems: number, currentItem: string | undefined, elapsedMs: number, estimatedRemainingMs: number | undefined, pubSub: PubSubEngine, { userPayload }?: AppContext): Promise<boolean>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=PipelineProgressResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineProgressResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/PipelineProgressResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsF,YAAY,EAAE,MAAM,cAAc,CAAC;AAChI,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3F,qBACa,4BAA4B;IAErC,aAAa,EAAE,MAAM,CAAC;IAGtB,KAAK,EAAE,MAAM,CAAC;IAGd,UAAU,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,SAAS,EAAE,MAAM,CAAC;IAGlB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAG9B,eAAe,EAAE,MAAM,CAAC;CAC3B;AAED,qBACa,mBAAmB;IAE5B,OAAO,EAAE,OAAO,CAAC;IAGjB,aAAa,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBACa,wBAAyB,SAAQ,YAAY;IACtD;;OAEG;IAOH,gBAAgB,CACJ,YAAY,EAAE,4BAA4B,EAC5B,cAAc,EAAE,MAAM,GAC7C,4BAA4B;IAI/B;;OAEG;IAEG,uBAAuB,CACH,aAAa,EAAE,MAAM,EAC7B,KAAK,EAAE,MAAM,EACR,UAAU,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACL,WAAW,EAAE,MAAM,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,EACc,oBAAoB,EAAE,MAAM,GAAG,SAAS,EAC5F,MAAM,EAAE,YAAY,EACvB,EAAE,WAAW,EAAE,GAAE,UAA6B,GACtD,OAAO,CAAC,OAAO,CAAC;CAuBtB"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
|
+
};
|
|
13
|
+
import { Resolver, Subscription, Root, ObjectType, Field, Float, Mutation, Arg, Ctx, PubSub, PubSubEngine } from 'type-graphql';
|
|
14
|
+
import { LogStatus, LogError } from '@memberjunction/core';
|
|
15
|
+
import { ResolverBase } from '../generic/ResolverBase.js';
|
|
16
|
+
const PIPELINE_PROGRESS_TOPIC = 'PIPELINE_PROGRESS';
|
|
17
|
+
let PipelineProgressNotification = class PipelineProgressNotification {
|
|
18
|
+
};
|
|
19
|
+
__decorate([
|
|
20
|
+
Field(),
|
|
21
|
+
__metadata("design:type", String)
|
|
22
|
+
], PipelineProgressNotification.prototype, "PipelineRunID", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
Field(),
|
|
25
|
+
__metadata("design:type", String)
|
|
26
|
+
], PipelineProgressNotification.prototype, "Stage", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
Field(),
|
|
29
|
+
__metadata("design:type", Number)
|
|
30
|
+
], PipelineProgressNotification.prototype, "TotalItems", void 0);
|
|
31
|
+
__decorate([
|
|
32
|
+
Field(),
|
|
33
|
+
__metadata("design:type", Number)
|
|
34
|
+
], PipelineProgressNotification.prototype, "ProcessedItems", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
Field({ nullable: true }),
|
|
37
|
+
__metadata("design:type", String)
|
|
38
|
+
], PipelineProgressNotification.prototype, "CurrentItem", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
Field(() => Float),
|
|
41
|
+
__metadata("design:type", Number)
|
|
42
|
+
], PipelineProgressNotification.prototype, "ElapsedMs", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
Field(() => Float, { nullable: true }),
|
|
45
|
+
__metadata("design:type", Number)
|
|
46
|
+
], PipelineProgressNotification.prototype, "EstimatedRemainingMs", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
Field(() => Float),
|
|
49
|
+
__metadata("design:type", Number)
|
|
50
|
+
], PipelineProgressNotification.prototype, "PercentComplete", void 0);
|
|
51
|
+
PipelineProgressNotification = __decorate([
|
|
52
|
+
ObjectType()
|
|
53
|
+
], PipelineProgressNotification);
|
|
54
|
+
export { PipelineProgressNotification };
|
|
55
|
+
let PipelineStartResult = class PipelineStartResult {
|
|
56
|
+
};
|
|
57
|
+
__decorate([
|
|
58
|
+
Field(),
|
|
59
|
+
__metadata("design:type", Boolean)
|
|
60
|
+
], PipelineStartResult.prototype, "Success", void 0);
|
|
61
|
+
__decorate([
|
|
62
|
+
Field(),
|
|
63
|
+
__metadata("design:type", String)
|
|
64
|
+
], PipelineStartResult.prototype, "PipelineRunID", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
Field({ nullable: true }),
|
|
67
|
+
__metadata("design:type", String)
|
|
68
|
+
], PipelineStartResult.prototype, "ErrorMessage", void 0);
|
|
69
|
+
PipelineStartResult = __decorate([
|
|
70
|
+
ObjectType()
|
|
71
|
+
], PipelineStartResult);
|
|
72
|
+
export { PipelineStartResult };
|
|
73
|
+
let PipelineProgressResolver = class PipelineProgressResolver extends ResolverBase {
|
|
74
|
+
/**
|
|
75
|
+
* Subscribe to pipeline progress notifications for a specific pipeline run.
|
|
76
|
+
*/
|
|
77
|
+
PipelineProgress(notification, _pipelineRunID) {
|
|
78
|
+
return notification;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Publish a pipeline progress update. Called internally by the pipeline engine.
|
|
82
|
+
*/
|
|
83
|
+
async PublishPipelineProgress(pipelineRunID, stage, totalItems, processedItems, currentItem, elapsedMs, estimatedRemainingMs, pubSub, { userPayload } = {}) {
|
|
84
|
+
try {
|
|
85
|
+
const percentComplete = totalItems > 0 ? Math.round((processedItems / totalItems) * 100) : 0;
|
|
86
|
+
const notification = {
|
|
87
|
+
PipelineRunID: pipelineRunID,
|
|
88
|
+
Stage: stage,
|
|
89
|
+
TotalItems: totalItems,
|
|
90
|
+
ProcessedItems: processedItems,
|
|
91
|
+
CurrentItem: currentItem,
|
|
92
|
+
ElapsedMs: elapsedMs,
|
|
93
|
+
EstimatedRemainingMs: estimatedRemainingMs,
|
|
94
|
+
PercentComplete: percentComplete,
|
|
95
|
+
};
|
|
96
|
+
await pubSub.publish(PIPELINE_PROGRESS_TOPIC, notification);
|
|
97
|
+
LogStatus(`PipelineProgress: ${stage} ${processedItems}/${totalItems} (${percentComplete}%)`);
|
|
98
|
+
return true;
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
LogError(`PipelineProgressResolver.PublishPipelineProgress failed: ${error}`);
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
__decorate([
|
|
107
|
+
Subscription(() => PipelineProgressNotification, {
|
|
108
|
+
topics: PIPELINE_PROGRESS_TOPIC,
|
|
109
|
+
filter: ({ payload, args }) => {
|
|
110
|
+
return payload.PipelineRunID === args.pipelineRunID;
|
|
111
|
+
},
|
|
112
|
+
}),
|
|
113
|
+
__param(0, Root()),
|
|
114
|
+
__param(1, Arg('pipelineRunID')),
|
|
115
|
+
__metadata("design:type", Function),
|
|
116
|
+
__metadata("design:paramtypes", [PipelineProgressNotification, String]),
|
|
117
|
+
__metadata("design:returntype", PipelineProgressNotification)
|
|
118
|
+
], PipelineProgressResolver.prototype, "PipelineProgress", null);
|
|
119
|
+
__decorate([
|
|
120
|
+
Mutation(() => Boolean),
|
|
121
|
+
__param(0, Arg('pipelineRunID')),
|
|
122
|
+
__param(1, Arg('stage')),
|
|
123
|
+
__param(2, Arg('totalItems')),
|
|
124
|
+
__param(3, Arg('processedItems')),
|
|
125
|
+
__param(4, Arg('currentItem', { nullable: true })),
|
|
126
|
+
__param(5, Arg('elapsedMs', () => Float)),
|
|
127
|
+
__param(6, Arg('estimatedRemainingMs', () => Float, { nullable: true })),
|
|
128
|
+
__param(7, PubSub()),
|
|
129
|
+
__param(8, Ctx()),
|
|
130
|
+
__metadata("design:type", Function),
|
|
131
|
+
__metadata("design:paramtypes", [String, String, Number, Number, String, Number, Number, PubSubEngine, Object]),
|
|
132
|
+
__metadata("design:returntype", Promise)
|
|
133
|
+
], PipelineProgressResolver.prototype, "PublishPipelineProgress", null);
|
|
134
|
+
PipelineProgressResolver = __decorate([
|
|
135
|
+
Resolver()
|
|
136
|
+
], PipelineProgressResolver);
|
|
137
|
+
export { PipelineProgressResolver };
|
|
138
|
+
//# sourceMappingURL=PipelineProgressResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineProgressResolver.js","sourceRoot":"","sources":["../../src/resolvers/PipelineProgressResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunAIAgentResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/RunAIAgentResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkE,YAAY,EAAmD,MAAM,cAAc,CAAC;AAC7J,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AAOtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAQ1D,qBACa,gBAAgB;IAEzB,OAAO,EAAE,OAAO,CAAC;IAGjB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBACa,sBAAsB;IAE/B,WAAW,EAAE,MAAM,CAAC;IAGpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,qBACa,qBAAqB;IAE9B,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,OAAO,CAAC;IAGnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,yBAAyB;IAElC,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,CAAC,EAAE,IAAI,CAAC;IAGf,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,kBAAkB;IAE3B,WAAW,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBACa,2BAA2B;IAEpC,SAAS,EAAE,MAAM,CAAC;IAGlB,UAAU,EAAE,MAAM,CAAC;IAGnB,IAAI,EAAE,UAAU,GAAG,WAAW,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAG/D,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAGlC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAGlC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IAGnC,SAAS,EAAE,IAAI,CAAC;IAGhB,QAAQ,CAAC,EAAE,GAAG,CAAC;IAGf,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAMD,qBACa,kBAAmB,SAAQ,YAAY;IAChD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;YACW,aAAa;IAmB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA6C9B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,sBAAsB;IAY9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;;;OAIG;YACW,cAAc;
|
|
1
|
+
{"version":3,"file":"RunAIAgentResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/RunAIAgentResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -389,10 +389,10 @@ let RunAIAgentResolver = class RunAIAgentResolver extends ResolverBase {
|
|
|
389
389
|
}
|
|
390
390
|
// Validate agent
|
|
391
391
|
const agentEntity = await this.validateAgent(agentId, currentUser);
|
|
392
|
-
//
|
|
393
|
-
//
|
|
394
|
-
//
|
|
395
|
-
const agentRunner = new AgentRunner();
|
|
392
|
+
// Create AI agent runner with the per-request isolated provider so all agent DB operations
|
|
393
|
+
// (AIAgentRun, AIAgentRunSteps, AIAgentRequests, AIPromptRuns) never share the global
|
|
394
|
+
// singleton's transaction state with concurrent requests (e.g. conversation deletes).
|
|
395
|
+
const agentRunner = new AgentRunner(p);
|
|
396
396
|
// Track agent run for streaming (use ref to update later)
|
|
397
397
|
const agentRunRef = { current: null };
|
|
398
398
|
console.log(`🚀 Starting agent execution with sessionId: ${sessionId}`);
|
|
@@ -402,6 +402,7 @@ let RunAIAgentResolver = class RunAIAgentResolver extends ResolverBase {
|
|
|
402
402
|
conversationMessages: parsedMessages,
|
|
403
403
|
payload: payload ? SafeJSONParse(payload) : undefined,
|
|
404
404
|
contextUser: currentUser,
|
|
405
|
+
sessionID: sessionId,
|
|
405
406
|
onProgress: this.createProgressCallback(pubSub, sessionId, userPayload, agentRunRef),
|
|
406
407
|
onStreaming: this.createStreamingCallback(pubSub, sessionId, userPayload, agentRunRef),
|
|
407
408
|
lastRunId: lastRunId,
|
|
@@ -613,7 +614,8 @@ let RunAIAgentResolver = class RunAIAgentResolver extends ResolverBase {
|
|
|
613
614
|
notificationId: result.inAppNotificationId,
|
|
614
615
|
action: 'create',
|
|
615
616
|
title: `${agentName} completed your request`,
|
|
616
|
-
message: message
|
|
617
|
+
message: message,
|
|
618
|
+
conversationId: detail.ConversationID
|
|
617
619
|
})
|
|
618
620
|
});
|
|
619
621
|
LogStatus(`📡 Published notification event to client`);
|