geniebox-shared-lib 2.3.0 → 2.4.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.
@@ -44,6 +44,22 @@ export interface SharedModuleOptions {
44
44
  protoPath: string;
45
45
  url: string;
46
46
  };
47
+ agent?: {
48
+ protoPath: string;
49
+ url: string;
50
+ };
51
+ mcp?: {
52
+ protoPath: string;
53
+ url: string;
54
+ };
55
+ workflow?: {
56
+ protoPath: string;
57
+ url: string;
58
+ };
59
+ library?: {
60
+ protoPath: string;
61
+ url: string;
62
+ };
47
63
  }
48
64
  export declare class SharedModule {
49
65
  private static readonly logger;
@@ -22,6 +22,10 @@ const request_client_1 = require("./request.client");
22
22
  const response_client_1 = require("./response.client");
23
23
  const billing_client_1 = require("./billing.client");
24
24
  const generation_client_1 = require("./generation.client");
25
+ const agent_client_1 = require("./agent.client");
26
+ const mcp_client_1 = require("./mcp.client");
27
+ const library_client_1 = require("./library.client");
28
+ const workflow_client_1 = require("./workflow.client");
25
29
  let SharedModule = SharedModule_1 = class SharedModule {
26
30
  static forRoot(options = {}) {
27
31
  const clients = [];
@@ -326,6 +330,126 @@ let SharedModule = SharedModule_1 = class SharedModule {
326
330
  else {
327
331
  providers.push({ provide: billing_client_1.BillingClient, useValue: null });
328
332
  }
333
+ // AGENT
334
+ if (options.agent) {
335
+ clients.push({
336
+ name: "AGENT_PACKAGE",
337
+ transport: microservices_1.Transport.GRPC,
338
+ options: {
339
+ package: "agent",
340
+ protoPath: (0, path_1.resolve)(process.cwd(), options.agent.protoPath),
341
+ url: options.agent.url,
342
+ },
343
+ });
344
+ providers.push({
345
+ provide: agent_client_1.AgentClient,
346
+ useFactory: (client) => {
347
+ const svc = new agent_client_1.AgentClient(client);
348
+ try {
349
+ svc.onModuleInit();
350
+ SharedModule_1.logger.log("AgentClient initialized successfully");
351
+ }
352
+ catch (err) {
353
+ SharedModule_1.logger.error("AgentClient initialization failed", err);
354
+ }
355
+ return svc;
356
+ },
357
+ inject: ["AGENT_PACKAGE"],
358
+ });
359
+ }
360
+ else {
361
+ providers.push({ provide: agent_client_1.AgentClient, useValue: null });
362
+ }
363
+ // MCP
364
+ if (options.mcp) {
365
+ clients.push({
366
+ name: "MCP_PACKAGE",
367
+ transport: microservices_1.Transport.GRPC,
368
+ options: {
369
+ package: "mcp",
370
+ protoPath: (0, path_1.resolve)(process.cwd(), options.mcp.protoPath),
371
+ url: options.mcp.url,
372
+ },
373
+ });
374
+ providers.push({
375
+ provide: mcp_client_1.MCPClient,
376
+ useFactory: (client) => {
377
+ const svc = new mcp_client_1.MCPClient(client);
378
+ try {
379
+ svc.onModuleInit();
380
+ SharedModule_1.logger.log("MCPClient initialized successfully");
381
+ }
382
+ catch (err) {
383
+ SharedModule_1.logger.error("MCPClient initialization failed", err);
384
+ }
385
+ return svc;
386
+ },
387
+ inject: ["MCP_PACKAGE"],
388
+ });
389
+ }
390
+ else {
391
+ providers.push({ provide: mcp_client_1.MCPClient, useValue: null });
392
+ }
393
+ // LIBRARY
394
+ if (options.library) {
395
+ clients.push({
396
+ name: "LIBRARY_PACKAGE",
397
+ transport: microservices_1.Transport.GRPC,
398
+ options: {
399
+ package: "library",
400
+ protoPath: (0, path_1.resolve)(process.cwd(), options.library.protoPath),
401
+ url: options.library.url,
402
+ },
403
+ });
404
+ providers.push({
405
+ provide: library_client_1.LibraryClient,
406
+ useFactory: (client) => {
407
+ const svc = new library_client_1.LibraryClient(client);
408
+ try {
409
+ svc.onModuleInit();
410
+ SharedModule_1.logger.log("LibraryClient initialized successfully");
411
+ }
412
+ catch (err) {
413
+ SharedModule_1.logger.error("LibraryClient initialization failed", err);
414
+ }
415
+ return svc;
416
+ },
417
+ inject: ["LIBRARY_PACKAGE"],
418
+ });
419
+ }
420
+ else {
421
+ providers.push({ provide: library_client_1.LibraryClient, useValue: null });
422
+ }
423
+ // WORKFLOW
424
+ if (options.workflow) {
425
+ clients.push({
426
+ name: "WORKFLOW_PACKAGE",
427
+ transport: microservices_1.Transport.GRPC,
428
+ options: {
429
+ package: "workflow",
430
+ protoPath: (0, path_1.resolve)(process.cwd(), options.workflow.protoPath),
431
+ url: options.workflow.url,
432
+ },
433
+ });
434
+ providers.push({
435
+ provide: workflow_client_1.WorkflowClient,
436
+ useFactory: (client) => {
437
+ const svc = new workflow_client_1.WorkflowClient(client);
438
+ try {
439
+ svc.onModuleInit();
440
+ SharedModule_1.logger.log("WorkflowClient initialized successfully");
441
+ }
442
+ catch (err) {
443
+ SharedModule_1.logger.error("WorkflowClient initialization failed", err);
444
+ }
445
+ return svc;
446
+ },
447
+ inject: ["WORKFLOW_PACKAGE"],
448
+ });
449
+ }
450
+ else {
451
+ providers.push({ provide: workflow_client_1.WorkflowClient, useValue: null });
452
+ }
329
453
  // GENERATION
330
454
  if (options.generation) {
331
455
  clients.push({
@@ -0,0 +1,12 @@
1
+ import { OnModuleInit } from "@nestjs/common";
2
+ import { ClientGrpc } from "@nestjs/microservices";
3
+ import { WorkflowServiceClient } from "./workflow.interface";
4
+ export declare class WorkflowClient implements OnModuleInit {
5
+ private readonly client;
6
+ private readonly logger;
7
+ private workflowClient?;
8
+ constructor(client: ClientGrpc);
9
+ onModuleInit(): void;
10
+ get service(): WorkflowServiceClient;
11
+ isReady(): boolean;
12
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var WorkflowClient_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.WorkflowClient = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ let WorkflowClient = WorkflowClient_1 = class WorkflowClient {
19
+ constructor(client) {
20
+ this.client = client;
21
+ this.logger = new common_1.Logger(WorkflowClient_1.name);
22
+ }
23
+ onModuleInit() {
24
+ this.workflowClient =
25
+ this.client.getService("WorkflowService");
26
+ this.logger.log("WorkflowServiceClient initialized");
27
+ }
28
+ get service() {
29
+ if (!this.workflowClient) {
30
+ throw new common_1.InternalServerErrorException("WorkflowService is not initialized yet");
31
+ }
32
+ return this.workflowClient;
33
+ }
34
+ isReady() {
35
+ return !!this.workflowClient;
36
+ }
37
+ };
38
+ exports.WorkflowClient = WorkflowClient;
39
+ exports.WorkflowClient = WorkflowClient = WorkflowClient_1 = __decorate([
40
+ (0, common_1.Injectable)(),
41
+ __param(0, (0, common_1.Inject)("WORKFLOW_PACKAGE")),
42
+ __metadata("design:paramtypes", [Object])
43
+ ], WorkflowClient);
@@ -0,0 +1,289 @@
1
+ import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
2
+ import type { handleUnaryCall, Metadata, UntypedServiceImplementation } from "@grpc/grpc-js";
3
+ import { Observable } from "rxjs";
4
+ import { Empty } from "./google/protobuf/empty.interface";
5
+ export declare const protobufPackage = "workflow";
6
+ export interface Workflow {
7
+ id: string;
8
+ version: string;
9
+ name: string;
10
+ icon?: {
11
+ [key: string]: any;
12
+ } | undefined;
13
+ description: string;
14
+ isPublished: boolean;
15
+ visibility: string;
16
+ userId: string;
17
+ createdAt: string;
18
+ updatedAt: string;
19
+ }
20
+ export interface WorkflowNode {
21
+ id: string;
22
+ version: string;
23
+ workflowId: string;
24
+ kind: string;
25
+ name: string;
26
+ description: string;
27
+ uiConfig?: {
28
+ [key: string]: any;
29
+ } | undefined;
30
+ nodeConfig?: {
31
+ [key: string]: any;
32
+ } | undefined;
33
+ createdAt: string;
34
+ updatedAt: string;
35
+ }
36
+ export interface WorkflowEdge {
37
+ id: string;
38
+ version: string;
39
+ workflowId: string;
40
+ /** Node ID */
41
+ source: string;
42
+ /** Node ID */
43
+ target: string;
44
+ uiConfig?: {
45
+ [key: string]: any;
46
+ } | undefined;
47
+ createdAt: string;
48
+ }
49
+ export interface FullWorkflow {
50
+ workflow?: Workflow | undefined;
51
+ nodes: WorkflowNode[];
52
+ edges: WorkflowEdge[];
53
+ }
54
+ /** Requests */
55
+ export interface CreateWorkflowRequest {
56
+ userId: string;
57
+ name: string;
58
+ description: string;
59
+ icon?: {
60
+ [key: string]: any;
61
+ } | undefined;
62
+ visibility: string;
63
+ }
64
+ export interface UpdateWorkflowRequest {
65
+ id: string;
66
+ userId: string;
67
+ name?: string | undefined;
68
+ description?: string | undefined;
69
+ icon?: {
70
+ [key: string]: any;
71
+ } | undefined;
72
+ isPublished?: boolean | undefined;
73
+ visibility?: string | undefined;
74
+ }
75
+ export interface GetWorkflowRequest {
76
+ id: string;
77
+ userId: string;
78
+ }
79
+ export interface ListWorkflowsRequest {
80
+ userId: string;
81
+ limit: number;
82
+ offset: number;
83
+ }
84
+ export interface DeleteWorkflowRequest {
85
+ id: string;
86
+ userId: string;
87
+ }
88
+ export interface CreateNodeRequest {
89
+ workflowId: string;
90
+ /** Auth */
91
+ userId: string;
92
+ kind: string;
93
+ name: string;
94
+ description: string;
95
+ uiConfig?: {
96
+ [key: string]: any;
97
+ } | undefined;
98
+ nodeConfig?: {
99
+ [key: string]: any;
100
+ } | undefined;
101
+ }
102
+ export interface UpdateNodeRequest {
103
+ id: string;
104
+ userId: string;
105
+ name?: string | undefined;
106
+ description?: string | undefined;
107
+ uiConfig?: {
108
+ [key: string]: any;
109
+ } | undefined;
110
+ nodeConfig?: {
111
+ [key: string]: any;
112
+ } | undefined;
113
+ }
114
+ export interface DeleteNodeRequest {
115
+ id: string;
116
+ userId: string;
117
+ }
118
+ export interface CreateEdgeRequest {
119
+ workflowId: string;
120
+ userId: string;
121
+ source: string;
122
+ target: string;
123
+ uiConfig?: {
124
+ [key: string]: any;
125
+ } | undefined;
126
+ }
127
+ export interface DeleteEdgeRequest {
128
+ id: string;
129
+ userId: string;
130
+ }
131
+ export interface WorkflowsResponse {
132
+ workflows: Workflow[];
133
+ total: number;
134
+ }
135
+ export declare const WORKFLOW_PACKAGE_NAME = "workflow";
136
+ export declare const Workflow: MessageFns<Workflow>;
137
+ export declare const WorkflowNode: MessageFns<WorkflowNode>;
138
+ export declare const WorkflowEdge: MessageFns<WorkflowEdge>;
139
+ export declare const FullWorkflow: MessageFns<FullWorkflow>;
140
+ export declare const CreateWorkflowRequest: MessageFns<CreateWorkflowRequest>;
141
+ export declare const UpdateWorkflowRequest: MessageFns<UpdateWorkflowRequest>;
142
+ export declare const GetWorkflowRequest: MessageFns<GetWorkflowRequest>;
143
+ export declare const ListWorkflowsRequest: MessageFns<ListWorkflowsRequest>;
144
+ export declare const DeleteWorkflowRequest: MessageFns<DeleteWorkflowRequest>;
145
+ export declare const CreateNodeRequest: MessageFns<CreateNodeRequest>;
146
+ export declare const UpdateNodeRequest: MessageFns<UpdateNodeRequest>;
147
+ export declare const DeleteNodeRequest: MessageFns<DeleteNodeRequest>;
148
+ export declare const CreateEdgeRequest: MessageFns<CreateEdgeRequest>;
149
+ export declare const DeleteEdgeRequest: MessageFns<DeleteEdgeRequest>;
150
+ export declare const WorkflowsResponse: MessageFns<WorkflowsResponse>;
151
+ export interface WorkflowServiceClient {
152
+ createWorkflow(request: CreateWorkflowRequest, metadata?: Metadata): Observable<Workflow>;
153
+ /** Returns graph */
154
+ getWorkflow(request: GetWorkflowRequest, metadata?: Metadata): Observable<FullWorkflow>;
155
+ updateWorkflow(request: UpdateWorkflowRequest, metadata?: Metadata): Observable<Workflow>;
156
+ deleteWorkflow(request: DeleteWorkflowRequest, metadata?: Metadata): Observable<Empty>;
157
+ listWorkflows(request: ListWorkflowsRequest, metadata?: Metadata): Observable<WorkflowsResponse>;
158
+ createNode(request: CreateNodeRequest, metadata?: Metadata): Observable<WorkflowNode>;
159
+ updateNode(request: UpdateNodeRequest, metadata?: Metadata): Observable<WorkflowNode>;
160
+ deleteNode(request: DeleteNodeRequest, metadata?: Metadata): Observable<Empty>;
161
+ createEdge(request: CreateEdgeRequest, metadata?: Metadata): Observable<WorkflowEdge>;
162
+ deleteEdge(request: DeleteEdgeRequest, metadata?: Metadata): Observable<Empty>;
163
+ }
164
+ export interface WorkflowServiceController {
165
+ createWorkflow(request: CreateWorkflowRequest, metadata?: Metadata): Promise<Workflow> | Observable<Workflow> | Workflow;
166
+ /** Returns graph */
167
+ getWorkflow(request: GetWorkflowRequest, metadata?: Metadata): Promise<FullWorkflow> | Observable<FullWorkflow> | FullWorkflow;
168
+ updateWorkflow(request: UpdateWorkflowRequest, metadata?: Metadata): Promise<Workflow> | Observable<Workflow> | Workflow;
169
+ deleteWorkflow(request: DeleteWorkflowRequest, metadata?: Metadata): void;
170
+ listWorkflows(request: ListWorkflowsRequest, metadata?: Metadata): Promise<WorkflowsResponse> | Observable<WorkflowsResponse> | WorkflowsResponse;
171
+ createNode(request: CreateNodeRequest, metadata?: Metadata): Promise<WorkflowNode> | Observable<WorkflowNode> | WorkflowNode;
172
+ updateNode(request: UpdateNodeRequest, metadata?: Metadata): Promise<WorkflowNode> | Observable<WorkflowNode> | WorkflowNode;
173
+ deleteNode(request: DeleteNodeRequest, metadata?: Metadata): void;
174
+ createEdge(request: CreateEdgeRequest, metadata?: Metadata): Promise<WorkflowEdge> | Observable<WorkflowEdge> | WorkflowEdge;
175
+ deleteEdge(request: DeleteEdgeRequest, metadata?: Metadata): void;
176
+ }
177
+ export declare function WorkflowServiceControllerMethods(): (constructor: Function) => void;
178
+ export declare const WORKFLOW_SERVICE_NAME = "WorkflowService";
179
+ export type WorkflowServiceService = typeof WorkflowServiceService;
180
+ export declare const WorkflowServiceService: {
181
+ readonly createWorkflow: {
182
+ readonly path: "/workflow.WorkflowService/createWorkflow";
183
+ readonly requestStream: false;
184
+ readonly responseStream: false;
185
+ readonly requestSerialize: (value: CreateWorkflowRequest) => Buffer;
186
+ readonly requestDeserialize: (value: Buffer) => CreateWorkflowRequest;
187
+ readonly responseSerialize: (value: Workflow) => Buffer;
188
+ readonly responseDeserialize: (value: Buffer) => Workflow;
189
+ };
190
+ /** Returns graph */
191
+ readonly getWorkflow: {
192
+ readonly path: "/workflow.WorkflowService/getWorkflow";
193
+ readonly requestStream: false;
194
+ readonly responseStream: false;
195
+ readonly requestSerialize: (value: GetWorkflowRequest) => Buffer;
196
+ readonly requestDeserialize: (value: Buffer) => GetWorkflowRequest;
197
+ readonly responseSerialize: (value: FullWorkflow) => Buffer;
198
+ readonly responseDeserialize: (value: Buffer) => FullWorkflow;
199
+ };
200
+ readonly updateWorkflow: {
201
+ readonly path: "/workflow.WorkflowService/updateWorkflow";
202
+ readonly requestStream: false;
203
+ readonly responseStream: false;
204
+ readonly requestSerialize: (value: UpdateWorkflowRequest) => Buffer;
205
+ readonly requestDeserialize: (value: Buffer) => UpdateWorkflowRequest;
206
+ readonly responseSerialize: (value: Workflow) => Buffer;
207
+ readonly responseDeserialize: (value: Buffer) => Workflow;
208
+ };
209
+ readonly deleteWorkflow: {
210
+ readonly path: "/workflow.WorkflowService/deleteWorkflow";
211
+ readonly requestStream: false;
212
+ readonly responseStream: false;
213
+ readonly requestSerialize: (value: DeleteWorkflowRequest) => Buffer;
214
+ readonly requestDeserialize: (value: Buffer) => DeleteWorkflowRequest;
215
+ readonly responseSerialize: (value: Empty) => Buffer;
216
+ readonly responseDeserialize: (value: Buffer) => Empty;
217
+ };
218
+ readonly listWorkflows: {
219
+ readonly path: "/workflow.WorkflowService/listWorkflows";
220
+ readonly requestStream: false;
221
+ readonly responseStream: false;
222
+ readonly requestSerialize: (value: ListWorkflowsRequest) => Buffer;
223
+ readonly requestDeserialize: (value: Buffer) => ListWorkflowsRequest;
224
+ readonly responseSerialize: (value: WorkflowsResponse) => Buffer;
225
+ readonly responseDeserialize: (value: Buffer) => WorkflowsResponse;
226
+ };
227
+ readonly createNode: {
228
+ readonly path: "/workflow.WorkflowService/createNode";
229
+ readonly requestStream: false;
230
+ readonly responseStream: false;
231
+ readonly requestSerialize: (value: CreateNodeRequest) => Buffer;
232
+ readonly requestDeserialize: (value: Buffer) => CreateNodeRequest;
233
+ readonly responseSerialize: (value: WorkflowNode) => Buffer;
234
+ readonly responseDeserialize: (value: Buffer) => WorkflowNode;
235
+ };
236
+ readonly updateNode: {
237
+ readonly path: "/workflow.WorkflowService/updateNode";
238
+ readonly requestStream: false;
239
+ readonly responseStream: false;
240
+ readonly requestSerialize: (value: UpdateNodeRequest) => Buffer;
241
+ readonly requestDeserialize: (value: Buffer) => UpdateNodeRequest;
242
+ readonly responseSerialize: (value: WorkflowNode) => Buffer;
243
+ readonly responseDeserialize: (value: Buffer) => WorkflowNode;
244
+ };
245
+ readonly deleteNode: {
246
+ readonly path: "/workflow.WorkflowService/deleteNode";
247
+ readonly requestStream: false;
248
+ readonly responseStream: false;
249
+ readonly requestSerialize: (value: DeleteNodeRequest) => Buffer;
250
+ readonly requestDeserialize: (value: Buffer) => DeleteNodeRequest;
251
+ readonly responseSerialize: (value: Empty) => Buffer;
252
+ readonly responseDeserialize: (value: Buffer) => Empty;
253
+ };
254
+ readonly createEdge: {
255
+ readonly path: "/workflow.WorkflowService/createEdge";
256
+ readonly requestStream: false;
257
+ readonly responseStream: false;
258
+ readonly requestSerialize: (value: CreateEdgeRequest) => Buffer;
259
+ readonly requestDeserialize: (value: Buffer) => CreateEdgeRequest;
260
+ readonly responseSerialize: (value: WorkflowEdge) => Buffer;
261
+ readonly responseDeserialize: (value: Buffer) => WorkflowEdge;
262
+ };
263
+ readonly deleteEdge: {
264
+ readonly path: "/workflow.WorkflowService/deleteEdge";
265
+ readonly requestStream: false;
266
+ readonly responseStream: false;
267
+ readonly requestSerialize: (value: DeleteEdgeRequest) => Buffer;
268
+ readonly requestDeserialize: (value: Buffer) => DeleteEdgeRequest;
269
+ readonly responseSerialize: (value: Empty) => Buffer;
270
+ readonly responseDeserialize: (value: Buffer) => Empty;
271
+ };
272
+ };
273
+ export interface WorkflowServiceServer extends UntypedServiceImplementation {
274
+ createWorkflow: handleUnaryCall<CreateWorkflowRequest, Workflow>;
275
+ /** Returns graph */
276
+ getWorkflow: handleUnaryCall<GetWorkflowRequest, FullWorkflow>;
277
+ updateWorkflow: handleUnaryCall<UpdateWorkflowRequest, Workflow>;
278
+ deleteWorkflow: handleUnaryCall<DeleteWorkflowRequest, Empty>;
279
+ listWorkflows: handleUnaryCall<ListWorkflowsRequest, WorkflowsResponse>;
280
+ createNode: handleUnaryCall<CreateNodeRequest, WorkflowNode>;
281
+ updateNode: handleUnaryCall<UpdateNodeRequest, WorkflowNode>;
282
+ deleteNode: handleUnaryCall<DeleteNodeRequest, Empty>;
283
+ createEdge: handleUnaryCall<CreateEdgeRequest, WorkflowEdge>;
284
+ deleteEdge: handleUnaryCall<DeleteEdgeRequest, Empty>;
285
+ }
286
+ export interface MessageFns<T> {
287
+ encode(message: T, writer?: BinaryWriter): BinaryWriter;
288
+ decode(input: BinaryReader | Uint8Array, length?: number): T;
289
+ }