@devflow-tools/server 0.1.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/app.module.d.ts +3 -0
- package/dist/app.module.d.ts.map +1 -0
- package/dist/app.module.js +37 -0
- package/dist/app.module.js.map +1 -0
- package/dist/auth/api-key.decorator.d.ts +3 -0
- package/dist/auth/api-key.decorator.d.ts.map +1 -0
- package/dist/auth/api-key.decorator.js +4 -0
- package/dist/auth/api-key.decorator.js.map +1 -0
- package/dist/auth/api-key.guard.d.ts +8 -0
- package/dist/auth/api-key.guard.d.ts.map +1 -0
- package/dist/auth/api-key.guard.js +61 -0
- package/dist/auth/api-key.guard.js.map +1 -0
- package/dist/auth/auth.module.d.ts +3 -0
- package/dist/auth/auth.module.d.ts.map +1 -0
- package/dist/auth/auth.module.js +19 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/errors.d.ts +6 -0
- package/dist/auth/errors.d.ts.map +1 -0
- package/dist/auth/errors.js +5 -0
- package/dist/auth/errors.js.map +1 -0
- package/dist/benchmark/benchmark.controller.d.ts +11 -0
- package/dist/benchmark/benchmark.controller.d.ts.map +1 -0
- package/dist/benchmark/benchmark.controller.js +55 -0
- package/dist/benchmark/benchmark.controller.js.map +1 -0
- package/dist/benchmark/benchmark.module.d.ts +3 -0
- package/dist/benchmark/benchmark.module.d.ts.map +1 -0
- package/dist/benchmark/benchmark.module.js +16 -0
- package/dist/benchmark/benchmark.module.js.map +1 -0
- package/dist/benchmark/benchmark.service.d.ts +8 -0
- package/dist/benchmark/benchmark.service.d.ts.map +1 -0
- package/dist/benchmark/benchmark.service.js +38 -0
- package/dist/benchmark/benchmark.service.js.map +1 -0
- package/dist/common/dto.d.ts +11 -0
- package/dist/common/dto.d.ts.map +1 -0
- package/dist/common/dto.js +2 -0
- package/dist/common/dto.js.map +1 -0
- package/dist/common/error-codes.d.ts +16 -0
- package/dist/common/error-codes.d.ts.map +1 -0
- package/dist/common/error-codes.js +15 -0
- package/dist/common/error-codes.js.map +1 -0
- package/dist/common/http-exception.filter.d.ts +6 -0
- package/dist/common/http-exception.filter.d.ts.map +1 -0
- package/dist/common/http-exception.filter.js +51 -0
- package/dist/common/http-exception.filter.js.map +1 -0
- package/dist/context/context.controller.d.ts +17 -0
- package/dist/context/context.controller.d.ts.map +1 -0
- package/dist/context/context.controller.js +56 -0
- package/dist/context/context.controller.js.map +1 -0
- package/dist/context/context.module.d.ts +3 -0
- package/dist/context/context.module.d.ts.map +1 -0
- package/dist/context/context.module.js +16 -0
- package/dist/context/context.module.js.map +1 -0
- package/dist/context/context.service.d.ts +13 -0
- package/dist/context/context.service.d.ts.map +1 -0
- package/dist/context/context.service.js +50 -0
- package/dist/context/context.service.js.map +1 -0
- package/dist/graph/graph.controller.d.ts +15 -0
- package/dist/graph/graph.controller.d.ts.map +1 -0
- package/dist/graph/graph.controller.js +54 -0
- package/dist/graph/graph.controller.js.map +1 -0
- package/dist/graph/graph.module.d.ts +3 -0
- package/dist/graph/graph.module.d.ts.map +1 -0
- package/dist/graph/graph.module.js +17 -0
- package/dist/graph/graph.module.js.map +1 -0
- package/dist/graph/graph.service.d.ts +12 -0
- package/dist/graph/graph.service.d.ts.map +1 -0
- package/dist/graph/graph.service.js +37 -0
- package/dist/graph/graph.service.js.map +1 -0
- package/dist/knowledge/knowledge.controller.d.ts +13 -0
- package/dist/knowledge/knowledge.controller.d.ts.map +1 -0
- package/dist/knowledge/knowledge.controller.js +48 -0
- package/dist/knowledge/knowledge.controller.js.map +1 -0
- package/dist/knowledge/knowledge.module.d.ts +3 -0
- package/dist/knowledge/knowledge.module.d.ts.map +1 -0
- package/dist/knowledge/knowledge.module.js +17 -0
- package/dist/knowledge/knowledge.module.js.map +1 -0
- package/dist/knowledge/knowledge.service.d.ts +8 -0
- package/dist/knowledge/knowledge.service.d.ts.map +1 -0
- package/dist/knowledge/knowledge.service.js +33 -0
- package/dist/knowledge/knowledge.service.js.map +1 -0
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +18 -0
- package/dist/main.js.map +1 -0
- package/dist/memory/memory.controller.d.ts +19 -0
- package/dist/memory/memory.controller.d.ts.map +1 -0
- package/dist/memory/memory.controller.js +74 -0
- package/dist/memory/memory.controller.js.map +1 -0
- package/dist/memory/memory.module.d.ts +3 -0
- package/dist/memory/memory.module.d.ts.map +1 -0
- package/dist/memory/memory.module.js +17 -0
- package/dist/memory/memory.module.js.map +1 -0
- package/dist/memory/memory.service.d.ts +22 -0
- package/dist/memory/memory.service.d.ts.map +1 -0
- package/dist/memory/memory.service.js +51 -0
- package/dist/memory/memory.service.js.map +1 -0
- package/dist/projects/projects.controller.d.ts +14 -0
- package/dist/projects/projects.controller.d.ts.map +1 -0
- package/dist/projects/projects.controller.js +57 -0
- package/dist/projects/projects.controller.js.map +1 -0
- package/dist/projects/projects.module.d.ts +3 -0
- package/dist/projects/projects.module.d.ts.map +1 -0
- package/dist/projects/projects.module.js +16 -0
- package/dist/projects/projects.module.js.map +1 -0
- package/dist/projects/projects.service.d.ts +19 -0
- package/dist/projects/projects.service.d.ts.map +1 -0
- package/dist/projects/projects.service.js +38 -0
- package/dist/projects/projects.service.js.map +1 -0
- package/dist/registry/registry.controller.d.ts +14 -0
- package/dist/registry/registry.controller.d.ts.map +1 -0
- package/dist/registry/registry.controller.js +57 -0
- package/dist/registry/registry.controller.js.map +1 -0
- package/dist/registry/registry.module.d.ts +3 -0
- package/dist/registry/registry.module.d.ts.map +1 -0
- package/dist/registry/registry.module.js +16 -0
- package/dist/registry/registry.module.js.map +1 -0
- package/dist/registry/registry.service.d.ts +20 -0
- package/dist/registry/registry.service.d.ts.map +1 -0
- package/dist/registry/registry.service.js +48 -0
- package/dist/registry/registry.service.js.map +1 -0
- package/dist/telemetry/telemetry.controller.d.ts +16 -0
- package/dist/telemetry/telemetry.controller.d.ts.map +1 -0
- package/dist/telemetry/telemetry.controller.js +56 -0
- package/dist/telemetry/telemetry.controller.js.map +1 -0
- package/dist/telemetry/telemetry.module.d.ts +3 -0
- package/dist/telemetry/telemetry.module.d.ts.map +1 -0
- package/dist/telemetry/telemetry.module.js +16 -0
- package/dist/telemetry/telemetry.module.js.map +1 -0
- package/dist/telemetry/telemetry.service.d.ts +15 -0
- package/dist/telemetry/telemetry.service.d.ts.map +1 -0
- package/dist/telemetry/telemetry.service.js +47 -0
- package/dist/telemetry/telemetry.service.js.map +1 -0
- package/dist/workflow/workflow.controller.d.ts +38 -0
- package/dist/workflow/workflow.controller.d.ts.map +1 -0
- package/dist/workflow/workflow.controller.js +101 -0
- package/dist/workflow/workflow.controller.js.map +1 -0
- package/dist/workflow/workflow.module.d.ts +3 -0
- package/dist/workflow/workflow.module.d.ts.map +1 -0
- package/dist/workflow/workflow.module.js +16 -0
- package/dist/workflow/workflow.module.js.map +1 -0
- package/dist/workflow/workflow.service.d.ts +40 -0
- package/dist/workflow/workflow.service.d.ts.map +1 -0
- package/dist/workflow/workflow.service.js +78 -0
- package/dist/workflow/workflow.service.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { FastifyReply } from "fastify";
|
|
2
|
+
import { WorkflowService } from "./workflow.service.js";
|
|
3
|
+
export declare class WorkflowController {
|
|
4
|
+
private readonly service;
|
|
5
|
+
constructor(service: WorkflowService);
|
|
6
|
+
list(): Promise<import("@devflow-tools/sdk").WorkflowMeta[]>;
|
|
7
|
+
run(type: string, body: {
|
|
8
|
+
input?: Record<string, unknown>;
|
|
9
|
+
}): Promise<{
|
|
10
|
+
runId: string;
|
|
11
|
+
}>;
|
|
12
|
+
listRuns(limit?: string, offset?: string): Promise<{
|
|
13
|
+
runId: string;
|
|
14
|
+
workflowName: string;
|
|
15
|
+
status: string;
|
|
16
|
+
steps: unknown[];
|
|
17
|
+
startedAt: number;
|
|
18
|
+
finishedAt?: number;
|
|
19
|
+
}[]>;
|
|
20
|
+
getRun(id: string): Promise<{
|
|
21
|
+
runId: string;
|
|
22
|
+
workflowName: string;
|
|
23
|
+
status: string;
|
|
24
|
+
steps: unknown[];
|
|
25
|
+
startedAt: number;
|
|
26
|
+
finishedAt?: number;
|
|
27
|
+
}>;
|
|
28
|
+
stream(id: string, reply: FastifyReply): Promise<void>;
|
|
29
|
+
approve(id: string): Promise<{
|
|
30
|
+
approved: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
reject(id: string, body: {
|
|
33
|
+
reason?: string;
|
|
34
|
+
}): Promise<{
|
|
35
|
+
rejected: boolean;
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=workflow.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.controller.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI;IAGJ,GAAG,CAAgB,IAAI,EAAE,MAAM,EAAU,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;;;IAKlF,QAAQ,CAAiB,KAAK,CAAC,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,MAAM;;;;;;;;IAKzE,MAAM,CAAc,EAAE,EAAE,MAAM;;;;;;;;IAG9B,MAAM,CAAc,EAAE,EAAE,MAAM,EAAS,KAAK,EAAE,YAAY;IAY1D,OAAO,CAAc,EAAE,EAAE,MAAM;;;IAG/B,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;;;CAGxE"}
|
|
@@ -0,0 +1,101 @@
|
|
|
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 { Controller, Get, Post, Param, Body, Query, Res, Inject } from "@nestjs/common";
|
|
14
|
+
import { WorkflowService } from "./workflow.service.js";
|
|
15
|
+
let WorkflowController = class WorkflowController {
|
|
16
|
+
constructor(service) {
|
|
17
|
+
this.service = service;
|
|
18
|
+
}
|
|
19
|
+
async list() { return this.service.list(); }
|
|
20
|
+
async run(type, body) {
|
|
21
|
+
return this.service.run(type, body.input ?? {});
|
|
22
|
+
}
|
|
23
|
+
async listRuns(limit, offset) {
|
|
24
|
+
return this.service.listRuns(Number(limit) || 20, Number(offset) || 0);
|
|
25
|
+
}
|
|
26
|
+
async getRun(id) { return this.service.getRun(id); }
|
|
27
|
+
async stream(id, reply) {
|
|
28
|
+
reply.raw.writeHead(200, { "Content-Type": "text/event-stream", "Cache-Control": "no-cache", Connection: "keep-alive" });
|
|
29
|
+
const subject = this.service.streamRun(id);
|
|
30
|
+
const sub = subject.subscribe({
|
|
31
|
+
next: (event) => { reply.raw.write(`event: step-${event.status}\ndata: ${JSON.stringify(event)}\n\n`); },
|
|
32
|
+
error: (err) => { reply.raw.write(`event: error\ndata: ${JSON.stringify({ error: err.message })}\n\n`); reply.raw.end(); },
|
|
33
|
+
complete: () => { reply.raw.write("event: done\ndata: {}\n\n"); reply.raw.end(); },
|
|
34
|
+
});
|
|
35
|
+
reply.raw.on("close", () => sub.unsubscribe());
|
|
36
|
+
}
|
|
37
|
+
async approve(id) { await this.service.approveRun(id); return { approved: true }; }
|
|
38
|
+
async reject(id, body) {
|
|
39
|
+
await this.service.rejectRun(id, body.reason);
|
|
40
|
+
return { rejected: true };
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
__decorate([
|
|
44
|
+
Get(),
|
|
45
|
+
__metadata("design:type", Function),
|
|
46
|
+
__metadata("design:paramtypes", []),
|
|
47
|
+
__metadata("design:returntype", Promise)
|
|
48
|
+
], WorkflowController.prototype, "list", null);
|
|
49
|
+
__decorate([
|
|
50
|
+
Post(":type/run"),
|
|
51
|
+
__param(0, Param("type")),
|
|
52
|
+
__param(1, Body()),
|
|
53
|
+
__metadata("design:type", Function),
|
|
54
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
55
|
+
__metadata("design:returntype", Promise)
|
|
56
|
+
], WorkflowController.prototype, "run", null);
|
|
57
|
+
__decorate([
|
|
58
|
+
Get("runs"),
|
|
59
|
+
__param(0, Query("limit")),
|
|
60
|
+
__param(1, Query("offset")),
|
|
61
|
+
__metadata("design:type", Function),
|
|
62
|
+
__metadata("design:paramtypes", [String, String]),
|
|
63
|
+
__metadata("design:returntype", Promise)
|
|
64
|
+
], WorkflowController.prototype, "listRuns", null);
|
|
65
|
+
__decorate([
|
|
66
|
+
Get("runs/:id"),
|
|
67
|
+
__param(0, Param("id")),
|
|
68
|
+
__metadata("design:type", Function),
|
|
69
|
+
__metadata("design:paramtypes", [String]),
|
|
70
|
+
__metadata("design:returntype", Promise)
|
|
71
|
+
], WorkflowController.prototype, "getRun", null);
|
|
72
|
+
__decorate([
|
|
73
|
+
Get("runs/:id/stream"),
|
|
74
|
+
__param(0, Param("id")),
|
|
75
|
+
__param(1, Res()),
|
|
76
|
+
__metadata("design:type", Function),
|
|
77
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
78
|
+
__metadata("design:returntype", Promise)
|
|
79
|
+
], WorkflowController.prototype, "stream", null);
|
|
80
|
+
__decorate([
|
|
81
|
+
Post("runs/:id/approve"),
|
|
82
|
+
__param(0, Param("id")),
|
|
83
|
+
__metadata("design:type", Function),
|
|
84
|
+
__metadata("design:paramtypes", [String]),
|
|
85
|
+
__metadata("design:returntype", Promise)
|
|
86
|
+
], WorkflowController.prototype, "approve", null);
|
|
87
|
+
__decorate([
|
|
88
|
+
Post("runs/:id/reject"),
|
|
89
|
+
__param(0, Param("id")),
|
|
90
|
+
__param(1, Body()),
|
|
91
|
+
__metadata("design:type", Function),
|
|
92
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
93
|
+
__metadata("design:returntype", Promise)
|
|
94
|
+
], WorkflowController.prototype, "reject", null);
|
|
95
|
+
WorkflowController = __decorate([
|
|
96
|
+
Controller("workflows"),
|
|
97
|
+
__param(0, Inject(WorkflowService)),
|
|
98
|
+
__metadata("design:paramtypes", [WorkflowService])
|
|
99
|
+
], WorkflowController);
|
|
100
|
+
export { WorkflowController };
|
|
101
|
+
//# sourceMappingURL=workflow.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.controller.js","sourceRoot":"","sources":["../../src/workflow/workflow.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.module.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow.module.ts"],"names":[],"mappings":"AAIA,qBACa,cAAc;CAAG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
import { Module } from "@nestjs/common";
|
|
8
|
+
import { WorkflowService } from "./workflow.service.js";
|
|
9
|
+
import { WorkflowController } from "./workflow.controller.js";
|
|
10
|
+
let WorkflowModule = class WorkflowModule {
|
|
11
|
+
};
|
|
12
|
+
WorkflowModule = __decorate([
|
|
13
|
+
Module({ controllers: [WorkflowController], providers: [WorkflowService], exports: [WorkflowService] })
|
|
14
|
+
], WorkflowModule);
|
|
15
|
+
export { WorkflowModule };
|
|
16
|
+
//# sourceMappingURL=workflow.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.module.js","sourceRoot":"","sources":["../../src/workflow/workflow.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGvD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAD1B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;GAC3F,cAAc,CAAG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { WorkflowEngine } from "@devflow-tools/workflow-engine";
|
|
2
|
+
import type { WorkflowMeta } from "@devflow-tools/sdk";
|
|
3
|
+
import { Subject } from "rxjs";
|
|
4
|
+
export interface StepEvent {
|
|
5
|
+
runId: string;
|
|
6
|
+
stepId: string;
|
|
7
|
+
status: "started" | "completed" | "failed";
|
|
8
|
+
output?: unknown;
|
|
9
|
+
error?: string;
|
|
10
|
+
timestamp: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class WorkflowService {
|
|
13
|
+
engine: WorkflowEngine;
|
|
14
|
+
private events;
|
|
15
|
+
private runStates;
|
|
16
|
+
list(): Promise<WorkflowMeta[]>;
|
|
17
|
+
run(type: string, input: Record<string, unknown>): Promise<{
|
|
18
|
+
runId: string;
|
|
19
|
+
}>;
|
|
20
|
+
listRuns(limit: number, offset: number): Promise<{
|
|
21
|
+
runId: string;
|
|
22
|
+
workflowName: string;
|
|
23
|
+
status: string;
|
|
24
|
+
steps: unknown[];
|
|
25
|
+
startedAt: number;
|
|
26
|
+
finishedAt?: number;
|
|
27
|
+
}[]>;
|
|
28
|
+
getRun(runId: string): Promise<{
|
|
29
|
+
runId: string;
|
|
30
|
+
workflowName: string;
|
|
31
|
+
status: string;
|
|
32
|
+
steps: unknown[];
|
|
33
|
+
startedAt: number;
|
|
34
|
+
finishedAt?: number;
|
|
35
|
+
}>;
|
|
36
|
+
streamRun(runId: string): Subject<StepEvent>;
|
|
37
|
+
approveRun(runId: string): Promise<void>;
|
|
38
|
+
rejectRun(runId: string, reason?: string): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=workflow.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.service.d.ts","sourceRoot":"","sources":["../../src/workflow/workflow.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,eAAe;IAC1B,MAAM,iBAAwB;IAC9B,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,SAAS,CAAwI;IAEnJ,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI/B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAyB7E,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;eA/BC,MAAM;sBAAgB,MAAM;gBAAU,MAAM;eAAS,OAAO,EAAE;mBAAa,MAAM;qBAAe,MAAM;;IAoC7I,MAAM,CAAC,KAAK,EAAE,MAAM;eApCmB,MAAM;sBAAgB,MAAM;gBAAU,MAAM;eAAS,OAAO,EAAE;mBAAa,MAAM;qBAAe,MAAM;;IA0CnJ,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAMtC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK/D"}
|
|
@@ -0,0 +1,78 @@
|
|
|
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
|
+
import { Injectable, NotFoundException } from "@nestjs/common";
|
|
8
|
+
import { WorkflowEngine } from "@devflow-tools/workflow-engine";
|
|
9
|
+
import { Subject } from "rxjs";
|
|
10
|
+
import { ErrorCode } from "../common/error-codes.js";
|
|
11
|
+
let WorkflowService = class WorkflowService {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.engine = new WorkflowEngine();
|
|
14
|
+
this.events = new Map();
|
|
15
|
+
this.runStates = new Map();
|
|
16
|
+
}
|
|
17
|
+
async list() {
|
|
18
|
+
return this.engine.list();
|
|
19
|
+
}
|
|
20
|
+
async run(type, input) {
|
|
21
|
+
const defs = await this.engine.list();
|
|
22
|
+
if (!defs.find((d) => d.name === type)) {
|
|
23
|
+
throw new NotFoundException({ error: { code: ErrorCode.WORKFLOW_NOT_FOUND, message: `Workflow "${type}" not found`, details: {} } });
|
|
24
|
+
}
|
|
25
|
+
const runId = `run_${Date.now()}_${Math.random().toString(36).slice(2, 7)}`;
|
|
26
|
+
this.events.set(runId, new Subject());
|
|
27
|
+
const startTime = Date.now();
|
|
28
|
+
this.runStates.set(runId, { runId, workflowName: type, status: "running", steps: [], startedAt: startTime });
|
|
29
|
+
// Execute in background
|
|
30
|
+
this.engine.run(type, input).then((result) => {
|
|
31
|
+
const rs = this.runStates.get(runId);
|
|
32
|
+
if (rs) {
|
|
33
|
+
rs.status = result.status === "completed" ? "completed" : "failed";
|
|
34
|
+
rs.finishedAt = Date.now();
|
|
35
|
+
}
|
|
36
|
+
}).catch((err) => {
|
|
37
|
+
const rs = this.runStates.get(runId);
|
|
38
|
+
if (rs) {
|
|
39
|
+
rs.status = "failed";
|
|
40
|
+
rs.finishedAt = Date.now();
|
|
41
|
+
}
|
|
42
|
+
const subj = this.events.get(runId);
|
|
43
|
+
if (subj)
|
|
44
|
+
subj.error(err);
|
|
45
|
+
});
|
|
46
|
+
return { runId };
|
|
47
|
+
}
|
|
48
|
+
async listRuns(limit, offset) {
|
|
49
|
+
const runs = Array.from(this.runStates.values());
|
|
50
|
+
return runs.slice(offset, offset + limit);
|
|
51
|
+
}
|
|
52
|
+
async getRun(runId) {
|
|
53
|
+
const run = this.runStates.get(runId);
|
|
54
|
+
if (!run)
|
|
55
|
+
throw new NotFoundException({ error: { code: ErrorCode.RUN_NOT_FOUND, message: `Run "${runId}" not found`, details: {} } });
|
|
56
|
+
return run;
|
|
57
|
+
}
|
|
58
|
+
streamRun(runId) {
|
|
59
|
+
const subject = this.events.get(runId);
|
|
60
|
+
if (!subject)
|
|
61
|
+
throw new NotFoundException({ error: { code: ErrorCode.RUN_NOT_FOUND, message: `Run "${runId}" not found`, details: {} } });
|
|
62
|
+
return subject;
|
|
63
|
+
}
|
|
64
|
+
async approveRun(runId) {
|
|
65
|
+
const run = await this.getRun(runId);
|
|
66
|
+
run.approved = true;
|
|
67
|
+
}
|
|
68
|
+
async rejectRun(runId, reason) {
|
|
69
|
+
const run = await this.getRun(runId);
|
|
70
|
+
run.approved = false;
|
|
71
|
+
run.rejectReason = reason;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
WorkflowService = __decorate([
|
|
75
|
+
Injectable()
|
|
76
|
+
], WorkflowService);
|
|
77
|
+
export { WorkflowService };
|
|
78
|
+
//# sourceMappingURL=workflow.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.service.js","sourceRoot":"","sources":["../../src/workflow/workflow.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@devflow-tools/server",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/main.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"build": "tsc -b",
|
|
8
|
+
"start": "cgnode dist/main.js",
|
|
9
|
+
"dev": "tsc -b && cgnode --watch dist/main.js",
|
|
10
|
+
"test": "cgnode ../../node_modules/.bin/vitest run",
|
|
11
|
+
"typecheck": "tsc --noEmit",
|
|
12
|
+
"clean": "rm -rf dist"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@devflow-tools/adapters": "*",
|
|
16
|
+
"@devflow-tools/benchmark": "*",
|
|
17
|
+
"@devflow-tools/context-engine": "*",
|
|
18
|
+
"@devflow-tools/knowledge-engine": "*",
|
|
19
|
+
"@devflow-tools/memory-engine": "*",
|
|
20
|
+
"@devflow-tools/sdk": "*",
|
|
21
|
+
"@devflow-tools/telemetry": "*",
|
|
22
|
+
"@devflow-tools/workflow-engine": "*",
|
|
23
|
+
"@nestjs/common": "^10.4.0",
|
|
24
|
+
"@nestjs/core": "^10.4.0",
|
|
25
|
+
"@nestjs/platform-fastify": "^10.4.0",
|
|
26
|
+
"fastify": "^4.28.0",
|
|
27
|
+
"reflect-metadata": "^0.2.0",
|
|
28
|
+
"rxjs": "^7.8.0"
|
|
29
|
+
},
|
|
30
|
+
"devDependencies": {
|
|
31
|
+
"@nestjs/testing": "^10.4.0",
|
|
32
|
+
"@types/node": "^20.0.0",
|
|
33
|
+
"tsx": "^4.0.0",
|
|
34
|
+
"typescript": "^5.5.0",
|
|
35
|
+
"vitest": "^2.0.0"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist"
|
|
39
|
+
],
|
|
40
|
+
"gitHead": "4cede97fc7fc673f929427fac169acab100ca8ed"
|
|
41
|
+
}
|