@devflow-tools/server 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +7 -0
- package/dist/app.module.js.map +1 -1
- package/dist/common/dto.d.ts +1 -0
- package/dist/common/dto.d.ts.map +1 -1
- package/dist/common/response.interceptor.d.ts +6 -0
- package/dist/common/response.interceptor.d.ts.map +1 -0
- package/dist/common/response.interceptor.js +23 -0
- package/dist/common/response.interceptor.js.map +1 -0
- package/dist/common/response.interceptor.test.d.ts +2 -0
- package/dist/common/response.interceptor.test.d.ts.map +1 -0
- package/dist/common/response.interceptor.test.js +23 -0
- package/dist/common/response.interceptor.test.js.map +1 -0
- package/dist/common/root-path.decorator.d.ts +2 -0
- package/dist/common/root-path.decorator.d.ts.map +1 -0
- package/dist/common/root-path.decorator.js +6 -0
- package/dist/common/root-path.decorator.js.map +1 -0
- package/dist/context/context.controller.d.ts +4 -3
- package/dist/context/context.controller.d.ts.map +1 -1
- package/dist/context/context.controller.js +27 -12
- package/dist/context/context.controller.js.map +1 -1
- package/dist/context/context.service.d.ts +1 -0
- package/dist/context/context.service.d.ts.map +1 -1
- package/dist/context/context.service.js +4 -0
- package/dist/context/context.service.js.map +1 -1
- package/dist/graph/graph.controller.d.ts +3 -3
- package/dist/graph/graph.controller.d.ts.map +1 -1
- package/dist/graph/graph.controller.js +14 -11
- package/dist/graph/graph.controller.js.map +1 -1
- package/dist/knowledge/knowledge.controller.d.ts +5 -3
- package/dist/knowledge/knowledge.controller.d.ts.map +1 -1
- package/dist/knowledge/knowledge.controller.js +22 -9
- package/dist/knowledge/knowledge.controller.js.map +1 -1
- package/dist/knowledge/knowledge.service.d.ts +7 -5
- package/dist/knowledge/knowledge.service.d.ts.map +1 -1
- package/dist/knowledge/knowledge.service.js +26 -14
- package/dist/knowledge/knowledge.service.js.map +1 -1
- package/dist/memory/memory.controller.d.ts +5 -5
- package/dist/memory/memory.controller.d.ts.map +1 -1
- package/dist/memory/memory.controller.js +19 -14
- package/dist/memory/memory.controller.js.map +1 -1
- package/dist/registry/registry.controller.d.ts +13 -0
- package/dist/registry/registry.controller.d.ts.map +1 -1
- package/dist/registry/registry.controller.js +24 -1
- package/dist/registry/registry.controller.js.map +1 -1
- package/dist/registry/registry.service.d.ts +8 -0
- package/dist/registry/registry.service.d.ts.map +1 -1
- package/dist/registry/registry.service.js +18 -0
- package/dist/registry/registry.service.js.map +1 -1
- package/dist/server.controller.d.ts +8 -0
- package/dist/server.controller.d.ts.map +1 -0
- package/dist/server.controller.js +31 -0
- package/dist/server.controller.js.map +1 -0
- package/dist/telemetry/telemetry.controller.d.ts +32 -1
- package/dist/telemetry/telemetry.controller.d.ts.map +1 -1
- package/dist/telemetry/telemetry.controller.js +46 -4
- package/dist/telemetry/telemetry.controller.js.map +1 -1
- package/dist/telemetry/telemetry.service.d.ts +25 -1
- package/dist/telemetry/telemetry.service.d.ts.map +1 -1
- package/dist/telemetry/telemetry.service.js +67 -3
- package/dist/telemetry/telemetry.service.js.map +1 -1
- package/dist/workflow/workflow.controller.d.ts +1 -0
- package/dist/workflow/workflow.controller.d.ts.map +1 -1
- package/dist/workflow/workflow.controller.js +10 -0
- package/dist/workflow/workflow.controller.js.map +1 -1
- package/dist/workflow/workflow.service.d.ts +1 -0
- package/dist/workflow/workflow.service.d.ts.map +1 -1
- package/dist/workflow/workflow.service.js +13 -0
- package/dist/workflow/workflow.service.js.map +1 -1
- package/package.json +10 -10
|
@@ -5,17 +5,17 @@ export declare class MemoryController {
|
|
|
5
5
|
private readonly projects;
|
|
6
6
|
constructor(service: MemoryService, projects: ProjectsService);
|
|
7
7
|
private resolveRootPath;
|
|
8
|
-
getAll(rootPath?: string): Promise<import("./memory.service.js").MemoryData>;
|
|
8
|
+
getAll(rootPath?: string, xProject?: string): Promise<import("./memory.service.js").MemoryData>;
|
|
9
9
|
update(rootPath: string | undefined, layer: string, key: string, body: {
|
|
10
10
|
value: unknown;
|
|
11
|
-
}): Promise<{
|
|
11
|
+
}, xProject?: string): Promise<{
|
|
12
12
|
ok: boolean;
|
|
13
13
|
}>;
|
|
14
|
-
getCandidates(rootPath?: string): Promise<unknown[]>;
|
|
15
|
-
approve(rootPath: string | undefined, id: string): Promise<{
|
|
14
|
+
getCandidates(rootPath?: string, xProject?: string): Promise<unknown[]>;
|
|
15
|
+
approve(rootPath: string | undefined, id: string, xProject?: string): Promise<{
|
|
16
16
|
approved: boolean;
|
|
17
17
|
}>;
|
|
18
|
-
reject(rootPath: string | undefined, id: string): Promise<{
|
|
18
|
+
reject(rootPath: string | undefined, id: string, xProject?: string): Promise<{
|
|
19
19
|
rejected: boolean;
|
|
20
20
|
}>;
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.controller.d.ts","sourceRoot":"","sources":["../../src/memory/memory.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBACa,gBAAgB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADV,OAAO,EAAE,aAAa,EACpB,QAAQ,EAAE,eAAe;IAGrE,OAAO,CAAC,eAAe;IAOjB,MAAM,CAAoB,QAAQ,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"memory.controller.d.ts","sourceRoot":"","sources":["../../src/memory/memory.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBACa,gBAAgB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADV,OAAO,EAAE,aAAa,EACpB,QAAQ,EAAE,eAAe;IAGrE,OAAO,CAAC,eAAe;IAOjB,MAAM,CAAoB,QAAQ,CAAC,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;IAG5F,MAAM,CAAoB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAkB,KAAK,EAAE,MAAM,EAAgB,GAAG,EAAE,MAAM,EAAU,IAAI,EAAE;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;IAKnM,aAAa,CAAoB,QAAQ,CAAC,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;IAGnG,OAAO,CAAoB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAe,EAAE,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;IAGjI,MAAM,CAAoB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAe,EAAE,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;CACvI"}
|
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Controller, Get, Put, Post, Param, Body, Query, Inject, BadRequestException } from "@nestjs/common";
|
|
13
|
+
import { Controller, Get, Put, Post, Param, Body, Query, Headers, Inject, BadRequestException } from "@nestjs/common";
|
|
14
14
|
import { MemoryService } from "./memory.service.js";
|
|
15
15
|
import { ProjectsService } from "../projects/projects.service.js";
|
|
16
16
|
let MemoryController = class MemoryController {
|
|
@@ -18,26 +18,27 @@ let MemoryController = class MemoryController {
|
|
|
18
18
|
this.service = service;
|
|
19
19
|
this.projects = projects;
|
|
20
20
|
}
|
|
21
|
-
resolveRootPath(rootPath) {
|
|
22
|
-
const resolved = rootPath ?? this.projects.getActiveProjectRoot();
|
|
21
|
+
resolveRootPath(rootPath, xProject) {
|
|
22
|
+
const resolved = rootPath ?? xProject ?? this.projects.getActiveProjectRoot();
|
|
23
23
|
if (!resolved)
|
|
24
24
|
throw new BadRequestException("rootPath is required — no active project connected");
|
|
25
25
|
return resolved;
|
|
26
26
|
}
|
|
27
|
-
async getAll(rootPath) { return this.service.getAll(this.resolveRootPath(rootPath)); }
|
|
28
|
-
async update(rootPath, layer, key, body) {
|
|
29
|
-
await this.service.update(this.resolveRootPath(rootPath), layer, key, body.value);
|
|
27
|
+
async getAll(rootPath, xProject) { return this.service.getAll(this.resolveRootPath(rootPath, xProject)); }
|
|
28
|
+
async update(rootPath, layer, key, body, xProject) {
|
|
29
|
+
await this.service.update(this.resolveRootPath(rootPath, xProject), layer, key, body.value);
|
|
30
30
|
return { ok: true };
|
|
31
31
|
}
|
|
32
|
-
async getCandidates(rootPath) { return this.service.getCandidates(this.resolveRootPath(rootPath)); }
|
|
33
|
-
async approve(rootPath, id) { await this.service.approveCandidate(this.resolveRootPath(rootPath), id); return { approved: true }; }
|
|
34
|
-
async reject(rootPath, id) { await this.service.rejectCandidate(this.resolveRootPath(rootPath), id); return { rejected: true }; }
|
|
32
|
+
async getCandidates(rootPath, xProject) { return this.service.getCandidates(this.resolveRootPath(rootPath, xProject)); }
|
|
33
|
+
async approve(rootPath, id, xProject) { await this.service.approveCandidate(this.resolveRootPath(rootPath, xProject), id); return { approved: true }; }
|
|
34
|
+
async reject(rootPath, id, xProject) { await this.service.rejectCandidate(this.resolveRootPath(rootPath, xProject), id); return { rejected: true }; }
|
|
35
35
|
};
|
|
36
36
|
__decorate([
|
|
37
37
|
Get(),
|
|
38
38
|
__param(0, Query("rootPath")),
|
|
39
|
+
__param(1, Headers("x-devflow-project")),
|
|
39
40
|
__metadata("design:type", Function),
|
|
40
|
-
__metadata("design:paramtypes", [String]),
|
|
41
|
+
__metadata("design:paramtypes", [String, String]),
|
|
41
42
|
__metadata("design:returntype", Promise)
|
|
42
43
|
], MemoryController.prototype, "getAll", null);
|
|
43
44
|
__decorate([
|
|
@@ -46,31 +47,35 @@ __decorate([
|
|
|
46
47
|
__param(1, Param("layer")),
|
|
47
48
|
__param(2, Param("key")),
|
|
48
49
|
__param(3, Body()),
|
|
50
|
+
__param(4, Headers("x-devflow-project")),
|
|
49
51
|
__metadata("design:type", Function),
|
|
50
|
-
__metadata("design:paramtypes", [Object, String, String, Object]),
|
|
52
|
+
__metadata("design:paramtypes", [Object, String, String, Object, String]),
|
|
51
53
|
__metadata("design:returntype", Promise)
|
|
52
54
|
], MemoryController.prototype, "update", null);
|
|
53
55
|
__decorate([
|
|
54
56
|
Get("candidates"),
|
|
55
57
|
__param(0, Query("rootPath")),
|
|
58
|
+
__param(1, Headers("x-devflow-project")),
|
|
56
59
|
__metadata("design:type", Function),
|
|
57
|
-
__metadata("design:paramtypes", [String]),
|
|
60
|
+
__metadata("design:paramtypes", [String, String]),
|
|
58
61
|
__metadata("design:returntype", Promise)
|
|
59
62
|
], MemoryController.prototype, "getCandidates", null);
|
|
60
63
|
__decorate([
|
|
61
64
|
Post("candidates/:id/approve"),
|
|
62
65
|
__param(0, Query("rootPath")),
|
|
63
66
|
__param(1, Param("id")),
|
|
67
|
+
__param(2, Headers("x-devflow-project")),
|
|
64
68
|
__metadata("design:type", Function),
|
|
65
|
-
__metadata("design:paramtypes", [Object, String]),
|
|
69
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
66
70
|
__metadata("design:returntype", Promise)
|
|
67
71
|
], MemoryController.prototype, "approve", null);
|
|
68
72
|
__decorate([
|
|
69
73
|
Post("candidates/:id/reject"),
|
|
70
74
|
__param(0, Query("rootPath")),
|
|
71
75
|
__param(1, Param("id")),
|
|
76
|
+
__param(2, Headers("x-devflow-project")),
|
|
72
77
|
__metadata("design:type", Function),
|
|
73
|
-
__metadata("design:paramtypes", [Object, String]),
|
|
78
|
+
__metadata("design:paramtypes", [Object, String, String]),
|
|
74
79
|
__metadata("design:returntype", Promise)
|
|
75
80
|
], MemoryController.prototype, "reject", null);
|
|
76
81
|
MemoryController = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.controller.js","sourceRoot":"","sources":["../../src/memory/memory.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"memory.controller.js","sourceRoot":"","sources":["../../src/memory/memory.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,5 +10,18 @@ export declare class RegistryController {
|
|
|
10
10
|
description: string;
|
|
11
11
|
tags?: string[];
|
|
12
12
|
}): Promise<import("./registry.service.js").PluginMeta>;
|
|
13
|
+
install(body: {
|
|
14
|
+
name: string;
|
|
15
|
+
rootPath?: string;
|
|
16
|
+
}, xProject?: string): Promise<{
|
|
17
|
+
ok: boolean;
|
|
18
|
+
name: string;
|
|
19
|
+
}>;
|
|
20
|
+
uninstall(name: string, body: {
|
|
21
|
+
rootPath?: string;
|
|
22
|
+
}, xProject?: string): Promise<{
|
|
23
|
+
ok: boolean;
|
|
24
|
+
name: string;
|
|
25
|
+
}>;
|
|
13
26
|
}
|
|
14
27
|
//# sourceMappingURL=registry.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.controller.d.ts","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,CAAkB,MAAM,CAAC,EAAE,MAAM,EAAgB,GAAG,CAAC,EAAE,MAAM;IAKjE,SAAS,CAAgB,IAAI,EAAE,MAAM;IAKrC,OAAO,CAAS,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;
|
|
1
|
+
{"version":3,"file":"registry.controller.d.ts","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,CAAkB,MAAM,CAAC,EAAE,MAAM,EAAgB,GAAG,CAAC,EAAE,MAAM;IAKjE,SAAS,CAAgB,IAAI,EAAE,MAAM;IAKrC,OAAO,CAAS,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAKnG,OAAO,CAAS,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;;IAK1G,SAAS,CAAgB,IAAI,EAAE,MAAM,EAAU,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;;CAGlI"}
|
|
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Controller, Get, Post, Param, Query, Body, Inject } from "@nestjs/common";
|
|
13
|
+
import { Controller, Get, Post, Param, Query, Body, Headers, Inject } from "@nestjs/common";
|
|
14
14
|
import { RegistryService } from "./registry.service.js";
|
|
15
15
|
let RegistryController = class RegistryController {
|
|
16
16
|
constructor(service) {
|
|
@@ -25,6 +25,12 @@ let RegistryController = class RegistryController {
|
|
|
25
25
|
async publish(body) {
|
|
26
26
|
return this.service.publish(body);
|
|
27
27
|
}
|
|
28
|
+
async install(body, xProject) {
|
|
29
|
+
return this.service.install(body.name, body.rootPath ?? xProject);
|
|
30
|
+
}
|
|
31
|
+
async uninstall(name, body, xProject) {
|
|
32
|
+
return this.service.uninstall(name, body.rootPath ?? xProject);
|
|
33
|
+
}
|
|
28
34
|
};
|
|
29
35
|
__decorate([
|
|
30
36
|
Get("plugins"),
|
|
@@ -48,6 +54,23 @@ __decorate([
|
|
|
48
54
|
__metadata("design:paramtypes", [Object]),
|
|
49
55
|
__metadata("design:returntype", Promise)
|
|
50
56
|
], RegistryController.prototype, "publish", null);
|
|
57
|
+
__decorate([
|
|
58
|
+
Post("plugins/install"),
|
|
59
|
+
__param(0, Body()),
|
|
60
|
+
__param(1, Headers("x-devflow-project")),
|
|
61
|
+
__metadata("design:type", Function),
|
|
62
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
63
|
+
__metadata("design:returntype", Promise)
|
|
64
|
+
], RegistryController.prototype, "install", null);
|
|
65
|
+
__decorate([
|
|
66
|
+
Post("plugins/:name/uninstall"),
|
|
67
|
+
__param(0, Param("name")),
|
|
68
|
+
__param(1, Body()),
|
|
69
|
+
__param(2, Headers("x-devflow-project")),
|
|
70
|
+
__metadata("design:type", Function),
|
|
71
|
+
__metadata("design:paramtypes", [String, Object, String]),
|
|
72
|
+
__metadata("design:returntype", Promise)
|
|
73
|
+
], RegistryController.prototype, "uninstall", null);
|
|
51
74
|
RegistryController = __decorate([
|
|
52
75
|
Controller("registry"),
|
|
53
76
|
__param(0, Inject(RegistryService)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.controller.js","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.controller.js","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAAsD,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAG5E,AAAN,KAAK,CAAC,IAAI,CAAkB,MAAe,EAAgB,GAAY;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAgB,IAAY;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAmF;QACvG,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAyC,EAAgC,QAAiB;QAC9G,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IACpE,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAgB,IAAY,EAAU,IAA2B,EAAgC,QAAiB;QAC/H,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;AAvBO;IADL,GAAG,CAAC,SAAS,CAAC;IACH,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;IAAmB,WAAA,KAAK,CAAC,KAAK,CAAC,CAAA;;;;8CAEzD;AAGK;IADL,GAAG,CAAC,eAAe,CAAC;IACJ,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;mDAE7B;AAGK;IADL,IAAI,CAAC,SAAS,CAAC;IACD,WAAA,IAAI,EAAE,CAAA;;;;iDAEpB;AAGK;IADL,IAAI,CAAC,iBAAiB,CAAC;IACT,WAAA,IAAI,EAAE,CAAA;IAA6C,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;iDAE7F;AAGK;IADL,IAAI,CAAC,yBAAyB,CAAC;IACf,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAI,EAAE,CAAA;IAA+B,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;mDAE9G;AA1BU,kBAAkB;IAD9B,UAAU,CAAC,UAAU,CAAC;IAER,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;qCAA2B,eAAe;GADnE,kBAAkB,CA2B9B"}
|
|
@@ -16,5 +16,13 @@ export declare class RegistryService {
|
|
|
16
16
|
description: string;
|
|
17
17
|
tags?: string[];
|
|
18
18
|
}): Promise<PluginMeta>;
|
|
19
|
+
install(name: string, _rootPath?: string): Promise<{
|
|
20
|
+
ok: boolean;
|
|
21
|
+
name: string;
|
|
22
|
+
}>;
|
|
23
|
+
uninstall(name: string, _rootPath?: string): Promise<{
|
|
24
|
+
ok: boolean;
|
|
25
|
+
name: string;
|
|
26
|
+
}>;
|
|
19
27
|
}
|
|
20
28
|
//# sourceMappingURL=registry.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../src/registry/registry.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAiC;IAE1C,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAY1D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM5C,OAAO,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../src/registry/registry.service.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAiC;IAE1C,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAY1D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM5C,OAAO,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAclH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAcjF,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAK1F"}
|
|
@@ -40,6 +40,24 @@ let RegistryService = class RegistryService {
|
|
|
40
40
|
this.plugins.set(name, meta);
|
|
41
41
|
return meta;
|
|
42
42
|
}
|
|
43
|
+
async install(name, _rootPath) {
|
|
44
|
+
const npmName = name.startsWith("@devflow-tools/plugin-") ? name : `@devflow-tools/plugin-${name}`;
|
|
45
|
+
const shortName = name.replace(/^@devflow-tools\/plugin-/, "");
|
|
46
|
+
this.plugins.set(shortName, {
|
|
47
|
+
name: shortName,
|
|
48
|
+
npmPackage: npmName,
|
|
49
|
+
version: "0.1.0",
|
|
50
|
+
description: "Installed plugin",
|
|
51
|
+
tags: [],
|
|
52
|
+
createdAt: Date.now(),
|
|
53
|
+
});
|
|
54
|
+
return { ok: true, name: shortName };
|
|
55
|
+
}
|
|
56
|
+
async uninstall(name, _rootPath) {
|
|
57
|
+
const shortName = name.replace(/^@devflow-tools\/plugin-/, "");
|
|
58
|
+
this.plugins.delete(shortName);
|
|
59
|
+
return { ok: true, name: shortName };
|
|
60
|
+
}
|
|
43
61
|
};
|
|
44
62
|
RegistryService = __decorate([
|
|
45
63
|
Injectable()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.service.js","sourceRoot":"","sources":["../../src/registry/registry.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAY9C,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QACG,YAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.service.js","sourceRoot":"","sources":["../../src/registry/registry.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.controller.d.ts","sourceRoot":"","sources":["../src/server.controller.ts"],"names":[],"mappings":"AAGA,qBACa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAc;IAI/B,MAAM;;;;CAGP"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
import { Controller, Get } from "@nestjs/common";
|
|
11
|
+
import { Public } from "./auth/api-key.decorator.js";
|
|
12
|
+
let ServerController = class ServerController {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.startTime = Date.now();
|
|
15
|
+
}
|
|
16
|
+
health() {
|
|
17
|
+
return { version: "0.2.3", uptime: Date.now() - this.startTime };
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
__decorate([
|
|
21
|
+
Public(),
|
|
22
|
+
Get("health"),
|
|
23
|
+
__metadata("design:type", Function),
|
|
24
|
+
__metadata("design:paramtypes", []),
|
|
25
|
+
__metadata("design:returntype", void 0)
|
|
26
|
+
], ServerController.prototype, "health", null);
|
|
27
|
+
ServerController = __decorate([
|
|
28
|
+
Controller()
|
|
29
|
+
], ServerController);
|
|
30
|
+
export { ServerController };
|
|
31
|
+
//# sourceMappingURL=server.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.controller.js","sourceRoot":"","sources":["../src/server.controller.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAG9C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QACG,cAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAOjC,CAAC;IAHC,MAAM;QACJ,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IACnE,CAAC;CACF,CAAA;AAHC;IAFC,MAAM,EAAE;IACR,GAAG,CAAC,QAAQ,CAAC;;;;8CAGb;AAPU,gBAAgB;IAD5B,UAAU,EAAE;GACA,gBAAgB,CAQ5B"}
|
|
@@ -2,15 +2,46 @@ import { TelemetryService } from "./telemetry.service.js";
|
|
|
2
2
|
export declare class TelemetryController {
|
|
3
3
|
private readonly service;
|
|
4
4
|
constructor(service: TelemetryService);
|
|
5
|
-
listRuns(limit?: string, offset?: string): Promise<{
|
|
5
|
+
listRuns(limit?: string, offset?: string, source?: string): Promise<{
|
|
6
6
|
id: any;
|
|
7
7
|
agent: any;
|
|
8
8
|
mode: any;
|
|
9
|
+
source: any;
|
|
9
10
|
status: any;
|
|
10
11
|
startedAt: any;
|
|
11
12
|
tokenUsed: any;
|
|
12
13
|
}[]>;
|
|
13
14
|
getRun(id: string): Promise<any>;
|
|
14
15
|
getTimeline(from?: string, to?: string): Promise<any[]>;
|
|
16
|
+
getRunEvents(runId: string): Promise<import("@devflow-tools/sdk").TelemetryEvent[]>;
|
|
17
|
+
getRunStats(runId: string): Promise<import("@devflow-tools/sdk").RunStats>;
|
|
18
|
+
getStats(days?: string): Promise<{
|
|
19
|
+
period: {
|
|
20
|
+
from: string;
|
|
21
|
+
to: string;
|
|
22
|
+
};
|
|
23
|
+
summary: {
|
|
24
|
+
totalRuns: number;
|
|
25
|
+
completedRuns: number;
|
|
26
|
+
failedRuns: number;
|
|
27
|
+
totalTokens: number;
|
|
28
|
+
totalLlmCalls: number;
|
|
29
|
+
totalToolUses: number;
|
|
30
|
+
avgRunDuration: number;
|
|
31
|
+
};
|
|
32
|
+
byDay: {
|
|
33
|
+
runs: number;
|
|
34
|
+
tokens: number;
|
|
35
|
+
date: string;
|
|
36
|
+
}[];
|
|
37
|
+
}>;
|
|
38
|
+
cleanup(body: {
|
|
39
|
+
olderThanDays?: number;
|
|
40
|
+
}): Promise<{
|
|
41
|
+
ok: boolean;
|
|
42
|
+
data: {
|
|
43
|
+
removedRuns: number;
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
15
46
|
}
|
|
16
47
|
//# sourceMappingURL=telemetry.controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.controller.d.ts","sourceRoot":"","sources":["../../src/telemetry/telemetry.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBACa,mBAAmB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,gBAAgB;IAG1E,QAAQ,CAAiB,KAAK,CAAC,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"telemetry.controller.d.ts","sourceRoot":"","sources":["../../src/telemetry/telemetry.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBACa,mBAAmB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,gBAAgB;IAG1E,QAAQ,CAAiB,KAAK,CAAC,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,MAAM;;;;;;;;;IAK3G,MAAM,CAAc,EAAE,EAAE,MAAM;IAG9B,WAAW,CAAgB,IAAI,CAAC,EAAE,MAAM,EAAe,EAAE,CAAC,EAAE,MAAM;IAKlE,YAAY,CAAiB,KAAK,EAAE,MAAM;IAK1C,WAAW,CAAiB,KAAK,EAAE,MAAM;IAKzC,QAAQ,CAAgB,IAAI,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;IAKrC,OAAO,CAAS,IAAI,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;CAIvD"}
|
|
@@ -10,26 +10,40 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
-
import { Controller, Get, Param, Query, Inject } from "@nestjs/common";
|
|
13
|
+
import { Controller, Get, Post, Param, Query, Body, Inject } from "@nestjs/common";
|
|
14
14
|
import { TelemetryService } from "./telemetry.service.js";
|
|
15
15
|
let TelemetryController = class TelemetryController {
|
|
16
16
|
constructor(service) {
|
|
17
17
|
this.service = service;
|
|
18
18
|
}
|
|
19
|
-
async listRuns(limit, offset) {
|
|
20
|
-
return this.service.listRuns(Number(limit) || 20, Number(offset) || 0);
|
|
19
|
+
async listRuns(limit, offset, source) {
|
|
20
|
+
return this.service.listRuns(Number(limit) || 20, Number(offset) || 0, source);
|
|
21
21
|
}
|
|
22
22
|
async getRun(id) { return this.service.getRun(id); }
|
|
23
23
|
async getTimeline(from, to) {
|
|
24
24
|
return this.service.getTimeline(from, to);
|
|
25
25
|
}
|
|
26
|
+
async getRunEvents(runId) {
|
|
27
|
+
return this.service.getRunEvents(runId);
|
|
28
|
+
}
|
|
29
|
+
async getRunStats(runId) {
|
|
30
|
+
return this.service.getRunStats(runId);
|
|
31
|
+
}
|
|
32
|
+
async getStats(days) {
|
|
33
|
+
return this.service.getStats(Number(days) || 7);
|
|
34
|
+
}
|
|
35
|
+
async cleanup(body) {
|
|
36
|
+
const count = await this.service.cleanup(body.olderThanDays ?? 30);
|
|
37
|
+
return { ok: true, data: { removedRuns: count } };
|
|
38
|
+
}
|
|
26
39
|
};
|
|
27
40
|
__decorate([
|
|
28
41
|
Get("runs"),
|
|
29
42
|
__param(0, Query("limit")),
|
|
30
43
|
__param(1, Query("offset")),
|
|
44
|
+
__param(2, Query("source")),
|
|
31
45
|
__metadata("design:type", Function),
|
|
32
|
-
__metadata("design:paramtypes", [String, String]),
|
|
46
|
+
__metadata("design:paramtypes", [String, String, String]),
|
|
33
47
|
__metadata("design:returntype", Promise)
|
|
34
48
|
], TelemetryController.prototype, "listRuns", null);
|
|
35
49
|
__decorate([
|
|
@@ -47,6 +61,34 @@ __decorate([
|
|
|
47
61
|
__metadata("design:paramtypes", [String, String]),
|
|
48
62
|
__metadata("design:returntype", Promise)
|
|
49
63
|
], TelemetryController.prototype, "getTimeline", null);
|
|
64
|
+
__decorate([
|
|
65
|
+
Get("runs/:runId/events"),
|
|
66
|
+
__param(0, Param("runId")),
|
|
67
|
+
__metadata("design:type", Function),
|
|
68
|
+
__metadata("design:paramtypes", [String]),
|
|
69
|
+
__metadata("design:returntype", Promise)
|
|
70
|
+
], TelemetryController.prototype, "getRunEvents", null);
|
|
71
|
+
__decorate([
|
|
72
|
+
Get("runs/:runId/stats"),
|
|
73
|
+
__param(0, Param("runId")),
|
|
74
|
+
__metadata("design:type", Function),
|
|
75
|
+
__metadata("design:paramtypes", [String]),
|
|
76
|
+
__metadata("design:returntype", Promise)
|
|
77
|
+
], TelemetryController.prototype, "getRunStats", null);
|
|
78
|
+
__decorate([
|
|
79
|
+
Get("telemetry/stats"),
|
|
80
|
+
__param(0, Query("days")),
|
|
81
|
+
__metadata("design:type", Function),
|
|
82
|
+
__metadata("design:paramtypes", [String]),
|
|
83
|
+
__metadata("design:returntype", Promise)
|
|
84
|
+
], TelemetryController.prototype, "getStats", null);
|
|
85
|
+
__decorate([
|
|
86
|
+
Post("telemetry/cleanup"),
|
|
87
|
+
__param(0, Body()),
|
|
88
|
+
__metadata("design:type", Function),
|
|
89
|
+
__metadata("design:paramtypes", [Object]),
|
|
90
|
+
__metadata("design:returntype", Promise)
|
|
91
|
+
], TelemetryController.prototype, "cleanup", null);
|
|
50
92
|
TelemetryController = __decorate([
|
|
51
93
|
Controller(),
|
|
52
94
|
__param(0, Inject(TelemetryService)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.controller.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.controller.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAGnD,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAAuD,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAG9E,AAAN,KAAK,CAAC,QAAQ,CAAiB,KAAc,EAAmB,MAAe,EAAmB,MAAe;QAC/G,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAGnE,AAAN,KAAK,CAAC,WAAW,CAAgB,IAAa,EAAe,EAAW;QACtE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAGK,AAAN,KAAK,CAAC,YAAY,CAAiB,KAAa;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;IAGK,AAAN,KAAK,CAAC,WAAW,CAAiB,KAAa;QAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAGK,AAAN,KAAK,CAAC,QAAQ,CAAgB,IAAa;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAgC;QACpD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC;IACpD,CAAC;CACF,CAAA;AAhCO;IADL,GAAG,CAAC,MAAM,CAAC;IACI,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;IAAkB,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;IAAmB,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;;;;mDAEhG;AAGK;IADL,GAAG,CAAC,UAAU,CAAC;IACF,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;iDAAgD;AAGnE;IADL,GAAG,CAAC,UAAU,CAAC;IACG,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;IAAiB,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;sDAE3D;AAGK;IADL,GAAG,CAAC,oBAAoB,CAAC;IACN,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;;;;uDAEjC;AAGK;IADL,GAAG,CAAC,mBAAmB,CAAC;IACN,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;;;;sDAEhC;AAGK;IADL,GAAG,CAAC,iBAAiB,CAAC;IACP,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;mDAE5B;AAGK;IADL,IAAI,CAAC,mBAAmB,CAAC;IACX,WAAA,IAAI,EAAE,CAAA;;;;kDAGpB;AAnCU,mBAAmB;IAD/B,UAAU,EAAE;IAEE,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;qCAA2B,gBAAgB;GADrE,mBAAmB,CAoC/B"}
|
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
import { TelemetryEngine } from "@devflow-tools/telemetry";
|
|
2
2
|
export declare class TelemetryService {
|
|
3
3
|
engine: TelemetryEngine;
|
|
4
|
-
listRuns(limit: number, offset: number): Promise<{
|
|
4
|
+
listRuns(limit: number, offset: number, source?: string): Promise<{
|
|
5
5
|
id: any;
|
|
6
6
|
agent: any;
|
|
7
7
|
mode: any;
|
|
8
|
+
source: any;
|
|
8
9
|
status: any;
|
|
9
10
|
startedAt: any;
|
|
10
11
|
tokenUsed: any;
|
|
11
12
|
}[]>;
|
|
12
13
|
getRun(id: string): Promise<any>;
|
|
13
14
|
getTimeline(from?: string, to?: string): Promise<any[]>;
|
|
15
|
+
getRunEvents(runId: string): Promise<import("@devflow-tools/sdk").TelemetryEvent[]>;
|
|
16
|
+
getRunStats(runId: string): Promise<import("@devflow-tools/sdk").RunStats>;
|
|
17
|
+
getStats(periodDays?: number): Promise<{
|
|
18
|
+
period: {
|
|
19
|
+
from: string;
|
|
20
|
+
to: string;
|
|
21
|
+
};
|
|
22
|
+
summary: {
|
|
23
|
+
totalRuns: number;
|
|
24
|
+
completedRuns: number;
|
|
25
|
+
failedRuns: number;
|
|
26
|
+
totalTokens: number;
|
|
27
|
+
totalLlmCalls: number;
|
|
28
|
+
totalToolUses: number;
|
|
29
|
+
avgRunDuration: number;
|
|
30
|
+
};
|
|
31
|
+
byDay: {
|
|
32
|
+
runs: number;
|
|
33
|
+
tokens: number;
|
|
34
|
+
date: string;
|
|
35
|
+
}[];
|
|
36
|
+
}>;
|
|
37
|
+
cleanup(olderThanDays: number): Promise<number>;
|
|
14
38
|
}
|
|
15
39
|
//# sourceMappingURL=telemetry.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.service.d.ts","sourceRoot":"","sources":["../../src/telemetry/telemetry.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,qBACa,gBAAgB;IAC3B,MAAM,kBAAyB;IAEzB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"telemetry.service.d.ts","sourceRoot":"","sources":["../../src/telemetry/telemetry.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,qBACa,gBAAgB;IAC3B,MAAM,kBAAyB;IAEzB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;IAYvD,MAAM,CAAC,EAAE,EAAE,MAAM;IAMjB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;IActC,YAAY,CAAC,KAAK,EAAE,MAAM;IAI1B,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB,QAAQ,CAAC,UAAU,SAAI;;;;;;;;;;;;;;;kBAMQ,MAAM;oBAAU,MAAM;;;;IAyCrD,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAYtD"}
|
|
@@ -11,11 +11,15 @@ let TelemetryService = class TelemetryService {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
this.engine = new TelemetryEngine();
|
|
13
13
|
}
|
|
14
|
-
async listRuns(limit, offset) {
|
|
14
|
+
async listRuns(limit, offset, source) {
|
|
15
15
|
const runs = Array.from(this.engine.runs.values());
|
|
16
|
-
|
|
16
|
+
let filtered = runs;
|
|
17
|
+
if (source) {
|
|
18
|
+
filtered = runs.filter((r) => r.meta?.source === source);
|
|
19
|
+
}
|
|
20
|
+
return filtered.slice(offset, offset + limit).map((r) => ({
|
|
17
21
|
id: r.meta?.runId ?? "", agent: r.meta?.agent ?? "", mode: r.meta?.mode ?? "",
|
|
18
|
-
status: r.status, startedAt: r.startedAt, tokenUsed: r.tokenUsed,
|
|
22
|
+
source: r.meta?.source ?? "unknown", status: r.status, startedAt: r.startedAt, tokenUsed: r.tokenUsed,
|
|
19
23
|
}));
|
|
20
24
|
}
|
|
21
25
|
async getRun(id) {
|
|
@@ -39,6 +43,66 @@ let TelemetryService = class TelemetryService {
|
|
|
39
43
|
duration: s.duration, timestamp: s.timestamp,
|
|
40
44
|
})) ?? []);
|
|
41
45
|
}
|
|
46
|
+
async getRunEvents(runId) {
|
|
47
|
+
return this.engine.listEvents(runId);
|
|
48
|
+
}
|
|
49
|
+
async getRunStats(runId) {
|
|
50
|
+
return this.engine.getRunStats(runId);
|
|
51
|
+
}
|
|
52
|
+
async getStats(periodDays = 7) {
|
|
53
|
+
const runs = Array.from(this.engine.runs.values());
|
|
54
|
+
const now = Date.now();
|
|
55
|
+
const cutoff = now - periodDays * 24 * 60 * 60 * 1000;
|
|
56
|
+
const periodRuns = runs.filter((r) => r.startedAt >= cutoff);
|
|
57
|
+
const days = {};
|
|
58
|
+
for (const r of periodRuns) {
|
|
59
|
+
const day = new Date(r.startedAt).toISOString().slice(0, 10);
|
|
60
|
+
if (!days[day])
|
|
61
|
+
days[day] = { runs: 0, tokens: 0 };
|
|
62
|
+
days[day].runs++;
|
|
63
|
+
days[day].tokens += r.tokenUsed ?? 0;
|
|
64
|
+
}
|
|
65
|
+
let totalTokens = 0;
|
|
66
|
+
let totalLlmCalls = 0;
|
|
67
|
+
let totalToolUses = 0;
|
|
68
|
+
for (const r of periodRuns) {
|
|
69
|
+
const events = (this.engine.events.get(r.meta?.runId) ?? []);
|
|
70
|
+
totalTokens += r.tokenUsed ?? 0;
|
|
71
|
+
totalLlmCalls += events.filter((e) => e.kind === "llm_call").length;
|
|
72
|
+
totalToolUses += events.filter((e) => e.kind === "tool_use").length;
|
|
73
|
+
}
|
|
74
|
+
const from = new Date(cutoff).toISOString().slice(0, 10);
|
|
75
|
+
const to = new Date(now).toISOString().slice(0, 10);
|
|
76
|
+
return {
|
|
77
|
+
period: { from, to },
|
|
78
|
+
summary: {
|
|
79
|
+
totalRuns: periodRuns.length,
|
|
80
|
+
completedRuns: periodRuns.filter((r) => r.status === "completed").length,
|
|
81
|
+
failedRuns: periodRuns.filter((r) => r.status === "failed").length,
|
|
82
|
+
totalTokens,
|
|
83
|
+
totalLlmCalls,
|
|
84
|
+
totalToolUses,
|
|
85
|
+
avgRunDuration: periodRuns.length > 0
|
|
86
|
+
? Math.round(periodRuns.reduce((s, r) => s + ((r.finishedAt ?? now) - r.startedAt), 0) / periodRuns.length)
|
|
87
|
+
: 0,
|
|
88
|
+
},
|
|
89
|
+
byDay: Object.entries(days)
|
|
90
|
+
.map(([date, d]) => ({ date, ...d }))
|
|
91
|
+
.sort((a, b) => a.date.localeCompare(b.date)),
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async cleanup(olderThanDays) {
|
|
95
|
+
const runs = this.engine.runs;
|
|
96
|
+
const cutoff = Date.now() - olderThanDays * 24 * 60 * 60 * 1000;
|
|
97
|
+
let removed = 0;
|
|
98
|
+
for (const [id, run] of runs) {
|
|
99
|
+
if (run.startedAt && run.startedAt < cutoff) {
|
|
100
|
+
runs.delete(id);
|
|
101
|
+
removed++;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return removed;
|
|
105
|
+
}
|
|
42
106
|
};
|
|
43
107
|
TelemetryService = __decorate([
|
|
44
108
|
Injectable()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.service.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG9C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAAtB;QACL,WAAM,GAAG,IAAI,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.service.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.service.ts"],"names":[],"mappings":"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"}
|