@devflow-tools/server 0.8.10 → 0.8.11
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 +30 -19
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +1 -7
- package/dist/app.module.js.map +1 -1
- package/dist/database/database.module.d.ts.map +1 -1
- package/dist/database/database.module.js +4 -2
- package/dist/database/database.module.js.map +1 -1
- package/dist/knowledge/knowledge.service.d.ts +1 -0
- package/dist/knowledge/knowledge.service.d.ts.map +1 -1
- package/dist/knowledge/knowledge.service.js +7 -2
- package/dist/knowledge/knowledge.service.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/memory/memory.service.d.ts +1 -0
- package/dist/memory/memory.service.d.ts.map +1 -1
- package/dist/memory/memory.service.js +21 -3
- package/dist/memory/memory.service.js.map +1 -1
- package/dist/telemetry/telemetry.controller.d.ts +45 -45
- package/dist/telemetry/telemetry.controller.d.ts.map +1 -1
- package/dist/telemetry/telemetry.controller.js +85 -9
- package/dist/telemetry/telemetry.controller.js.map +1 -1
- package/dist/telemetry/telemetry.service.d.ts +87 -85
- package/dist/telemetry/telemetry.service.d.ts.map +1 -1
- package/dist/telemetry/telemetry.service.js +395 -462
- package/dist/telemetry/telemetry.service.js.map +1 -1
- package/dist/workflow/workflow.controller.d.ts +4 -4
- package/dist/workflow/workflow.service.d.ts +6 -4
- package/dist/workflow/workflow.service.d.ts.map +1 -1
- package/dist/workflow/workflow.service.js +46 -4
- package/dist/workflow/workflow.service.js.map +1 -1
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @devflow-tools/server
|
|
2
2
|
|
|
3
|
-
DevFlow REST API
|
|
3
|
+
DevFlow REST API 服务端 — 平台后端核心。基于 NestJS + Fastify 构建。
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -11,38 +11,49 @@ npm install @devflow-tools/server
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
#
|
|
14
|
+
# 通过 CLI 启动
|
|
15
15
|
npx devflow server start
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
# 或直接启动
|
|
18
18
|
node node_modules/@devflow-tools/server/dist/main.js
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
服务端启动在 `http://localhost:13337`,API 前缀 `/api`。
|
|
22
22
|
|
|
23
23
|
## API Modules
|
|
24
24
|
|
|
25
|
-
|
|
|
26
|
-
|
|
27
|
-
| Projects | `/api/projects` |
|
|
28
|
-
| Context | `/api/context/build` |
|
|
29
|
-
|
|
|
30
|
-
|
|
|
31
|
-
|
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
25
|
+
| 模块 | 基础端点 | 说明 |
|
|
26
|
+
|------|---------|------|
|
|
27
|
+
| Projects | `/api/projects` | 项目 CRUD + Onboarding Pack |
|
|
28
|
+
| Context | `/api/context/build` | 上下文检索(通用 / 任务模式) |
|
|
29
|
+
| Context | `/api/context/feedback` | 上下文反馈(hit/partial/miss) |
|
|
30
|
+
| Graph | `/api/graph` | 依赖图谱查询(节点展开、路径查询) |
|
|
31
|
+
| Workflows | `/api/workflows/:type/run` | 工作流启动 + SSE 实时流 |
|
|
32
|
+
| Workflows | `/api/workflows/runs/:id/approve` | 审批门禁(approve/reject) |
|
|
33
|
+
| Memory | `/api/memory` | 项目记忆管理 |
|
|
34
|
+
| Memory | `/api/memory/candidates/:id/approve` | 候选记忆审核 |
|
|
35
|
+
| Memory | `/api/memory/events` | Tool call event 记录 |
|
|
36
|
+
| Knowledge | `/api/knowledge/search` | 文档搜索 |
|
|
37
|
+
| Knowledge | `/api/knowledge/sync` | 知识源同步 |
|
|
38
|
+
| Knowledge | `/api/knowledge/sources` | 知识源状态查询 |
|
|
39
|
+
| Telemetry | `/api/telemetry/executions` | Skill 执行历史 |
|
|
40
|
+
| Telemetry | `/api/telemetry/mcp-compliance` | MCP 合规率统计 |
|
|
41
|
+
| Telemetry | `/api/telemetry/roi-summary` | ROI 汇总 |
|
|
42
|
+
| Telemetry | `/api/telemetry/cleanup` | 过期数据清理 |
|
|
43
|
+
| Benchmark | `/api/benchmark/run` | 基准测试运行 |
|
|
44
|
+
| Benchmark | `/api/benchmark/reports` | 报告列表 |
|
|
45
|
+
| Registry | `/api/registry/plugins` | 插件注册与查询 |
|
|
36
46
|
|
|
37
47
|
## Authentication
|
|
38
48
|
|
|
39
|
-
|
|
49
|
+
所有端点需要 `X-API-Key` 请求头。默认密钥:`dev-key-000000`
|
|
40
50
|
|
|
41
51
|
## Environment Variables
|
|
42
52
|
|
|
43
|
-
|
|
|
44
|
-
|
|
45
|
-
| `DEVFLOW_API_KEYS` | `dev-key-000000` |
|
|
53
|
+
| 变量 | 默认值 | 说明 |
|
|
54
|
+
|------|--------|------|
|
|
55
|
+
| `DEVFLOW_API_KEYS` | `dev-key-000000` | 逗号分隔的 API 密钥列表 |
|
|
56
|
+
| `PORT` | `13337` | 服务端口 |
|
|
46
57
|
|
|
47
58
|
## License
|
|
48
59
|
|
package/dist/app.module.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.d.ts","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.module.d.ts","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":"AAcA,qBAiBa,SAAS;CAAG"}
|
package/dist/app.module.js
CHANGED
|
@@ -11,12 +11,9 @@ import { ProjectsModule } from "./projects/projects.module.js";
|
|
|
11
11
|
import { ContextModule } from "./context/context.module.js";
|
|
12
12
|
import { GraphModule } from "./graph/graph.module.js";
|
|
13
13
|
import { WorkflowModule } from "./workflow/workflow.module.js";
|
|
14
|
-
import { MemoryModule } from "./memory/memory.module.js";
|
|
15
14
|
import { KnowledgeModule } from "./knowledge/knowledge.module.js";
|
|
16
|
-
import { TelemetryModule } from "./telemetry/telemetry.module.js";
|
|
17
15
|
import { BenchmarkModule } from "./benchmark/benchmark.module.js";
|
|
18
16
|
import { RegistryModule } from "./registry/registry.module.js";
|
|
19
|
-
import { DataModule } from "./data/data.module.js";
|
|
20
17
|
import { DatabaseModule } from "./database/database.module.js";
|
|
21
18
|
import { ResponseInterceptor } from "./common/response.interceptor.js";
|
|
22
19
|
import { ServerController } from "./server.controller.js";
|
|
@@ -30,13 +27,10 @@ AppModule = __decorate([
|
|
|
30
27
|
ProjectsModule,
|
|
31
28
|
ContextModule,
|
|
32
29
|
GraphModule,
|
|
33
|
-
WorkflowModule,
|
|
34
|
-
MemoryModule,
|
|
35
30
|
KnowledgeModule,
|
|
36
|
-
|
|
31
|
+
WorkflowModule,
|
|
37
32
|
BenchmarkModule,
|
|
38
33
|
RegistryModule,
|
|
39
|
-
DataModule,
|
|
40
34
|
],
|
|
41
35
|
controllers: [ServerController],
|
|
42
36
|
providers: [
|
package/dist/app.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAmBnD,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAjBrB,MAAM,CAAC;QACN,OAAO,EAAE;YACP,cAAc;YACd,UAAU;YACV,cAAc;YACd,aAAa;YACb,WAAW;YACX,eAAe;YACf,cAAc;YACd,eAAe;YACf,cAAc;SACf;QACD,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,SAAS,EAAE;YACT,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE;SAC5D;KACF,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.module.d.ts","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"database.module.d.ts","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":"AAaA,qBAKa,cAAc;CAAG"}
|
|
@@ -6,11 +6,13 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { Global, Module } from "@nestjs/common";
|
|
8
8
|
import { DevFlowDatabase } from "@devflow-tools/database";
|
|
9
|
+
import { join } from "path";
|
|
10
|
+
import { homedir } from "os";
|
|
9
11
|
const databaseProvider = {
|
|
10
12
|
provide: 'DATABASE',
|
|
11
13
|
useFactory: () => {
|
|
12
|
-
const
|
|
13
|
-
return new DevFlowDatabase(
|
|
14
|
+
const stateDir = process.env.DEVFLOW_STATE_DIR ?? join(homedir(), '.devflow', 'global');
|
|
15
|
+
return new DevFlowDatabase(stateDir);
|
|
14
16
|
},
|
|
15
17
|
};
|
|
16
18
|
let DatabaseModule = class DatabaseModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../../src/database/database.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,GAAG,EAAE;QACf,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxF,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;CACF,CAAC;AAOK,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAL1B,MAAM,EAAE;IACR,MAAM,CAAC;QACN,SAAS,EAAE,CAAC,gBAAgB,CAAC;QAC7B,OAAO,EAAE,CAAC,gBAAgB,CAAC;KAC5B,CAAC;GACW,cAAc,CAAG"}
|
|
@@ -6,6 +6,7 @@ export declare class KnowledgeService implements OnModuleInit {
|
|
|
6
6
|
constructor(projectsService: ProjectsService);
|
|
7
7
|
private getEngine;
|
|
8
8
|
onModuleInit(): Promise<void>;
|
|
9
|
+
private _initKnowledge;
|
|
9
10
|
search(rootPath: string, query: string, scope?: string): Promise<KnowledgeEntry[]>;
|
|
10
11
|
sync(rootPath: string, pluginName?: string): Promise<SyncResult[]>;
|
|
11
12
|
getSources(rootPath: string): Promise<KnowledgeSourceStatus[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.service.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAmB,MAAM,oBAAoB,CAAC;AAE7G,qBACa,gBAAiB,YAAW,YAAY;IACd,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEtF,OAAO,CAAC,SAAS;IAIX,YAAY;
|
|
1
|
+
{"version":3,"file":"knowledge.service.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAmB,MAAM,oBAAoB,CAAC;AAE7G,qBACa,gBAAiB,YAAW,YAAY;IACd,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEtF,OAAO,CAAC,SAAS;IAIX,YAAY;YAQJ,cAAc;IA4BtB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAMlF,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIlE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAGrE"}
|
|
@@ -22,10 +22,16 @@ let KnowledgeService = class KnowledgeService {
|
|
|
22
22
|
return new KnowledgeEngine({ projectRoot: rootPath });
|
|
23
23
|
}
|
|
24
24
|
async onModuleInit() {
|
|
25
|
+
// Fire-and-forget: don't block server startup on knowledge sync.
|
|
26
|
+
// Plugin registration and stale-source sync can take minutes with many
|
|
27
|
+
// URLs + Playwright browser launches, and the catch block above would
|
|
28
|
+
// swallow the error but the `await` still holds app.listen().
|
|
29
|
+
void this._initKnowledge();
|
|
30
|
+
}
|
|
31
|
+
async _initKnowledge() {
|
|
25
32
|
const projectRoot = this.projectsService.getActiveProjectRoot() ?? process.env.DEVFLOW_PROJECT_ROOT ?? process.cwd();
|
|
26
33
|
try {
|
|
27
34
|
const engine = this.getEngine(projectRoot);
|
|
28
|
-
// Register plugin knowledge sources
|
|
29
35
|
const pluginMap = await loadPlugins();
|
|
30
36
|
const plugins = Array.from(pluginMap.values());
|
|
31
37
|
for (const plugin of plugins) {
|
|
@@ -36,7 +42,6 @@ let KnowledgeService = class KnowledgeService {
|
|
|
36
42
|
});
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
|
-
// Auto-sync stale sources
|
|
40
45
|
const sources = await engine.getSources();
|
|
41
46
|
const weekAgo = Date.now() - 7 * 24 * 60 * 60 * 1000;
|
|
42
47
|
for (const s of sources) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../src/knowledge/knowledge.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAgB,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAI3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAAsD,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAElF,SAAS,CAAC,QAAgB;QAChC,OAAO,IAAI,eAAe,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACrH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAE3C,
|
|
1
|
+
{"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../src/knowledge/knowledge.service.ts"],"names":[],"mappings":"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"}
|
package/dist/main.js
CHANGED
|
@@ -22,7 +22,7 @@ export async function bootstrap() {
|
|
|
22
22
|
}
|
|
23
23
|
return payload;
|
|
24
24
|
});
|
|
25
|
-
await app.listen({ port: parseInt(process.env.PORT || "13337", 10), host: "
|
|
25
|
+
await app.listen({ port: parseInt(process.env.PORT || "13337", 10), host: "127.0.0.1" });
|
|
26
26
|
return app;
|
|
27
27
|
}
|
|
28
28
|
if (process.argv[1]?.endsWith("main.js") ||
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAClC,SAAS,EACT,OAAO,CACR,CAAC;IACF,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,gBAAgB,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,wEAAwE;IACxE,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC3D,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAClC,SAAS,EACT,OAAO,CACR,CAAC;IACF,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,gBAAgB,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,wEAAwE;IACxE,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACtC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC3D,IAAI,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACzF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,EACtC,CAAC;IACD,SAAS,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../src/memory/memory.service.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH;AAED,qBACa,aAAa;IACxB,OAAO,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"memory.service.d.ts","sourceRoot":"","sources":["../../src/memory/memory.service.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,KAAK,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH;AAED,qBACa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAmE;IAClF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C,OAAO,CAAC,SAAS;IAqBX,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqB7C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAOlF,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IAInG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAInC,aAAa,CAAC,QAAQ,EAAE,MAAM;IAI9B,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAI7C,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAI5C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAKxF,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIhE,eAAe;;;;;;;IAKf,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASzF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;;;;IAuB/J,oBAAoB,CAAC,QAAQ,EAAE,MAAM;;;;;CAI5C"}
|
|
@@ -10,12 +10,30 @@ import { checkOllama, getOllamaInfoMessage } from "@devflow-tools/memory-engine"
|
|
|
10
10
|
let MemoryService = class MemoryService {
|
|
11
11
|
constructor() {
|
|
12
12
|
this.engines = new Map();
|
|
13
|
+
this.ENGINE_TTL = 60 * 60 * 1000; // 1 hour
|
|
13
14
|
}
|
|
14
15
|
getEngine(rootPath) {
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
// Cleanup expired engines
|
|
17
|
+
const now = Date.now();
|
|
18
|
+
for (const [key, entry] of this.engines) {
|
|
19
|
+
if (now - entry.lastAccess > this.ENGINE_TTL) {
|
|
20
|
+
try {
|
|
21
|
+
entry.engine.close?.();
|
|
22
|
+
}
|
|
23
|
+
catch { }
|
|
24
|
+
this.engines.delete(key);
|
|
25
|
+
}
|
|
17
26
|
}
|
|
18
|
-
|
|
27
|
+
const normalized = rootPath.replace(/\/+$/, '');
|
|
28
|
+
let entry = this.engines.get(normalized);
|
|
29
|
+
if (!entry) {
|
|
30
|
+
entry = { engine: new MemoryEngine(normalized), lastAccess: now };
|
|
31
|
+
this.engines.set(normalized, entry);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
entry.lastAccess = now;
|
|
35
|
+
}
|
|
36
|
+
return entry.engine;
|
|
19
37
|
}
|
|
20
38
|
async getAll(rootPath) {
|
|
21
39
|
const engine = this.getEngine(rootPath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/memory/memory.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AA0B1E,IAAM,aAAa,GAAnB,MAAM,aAAa;IAAnB;QACG,YAAO,GAAG,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/memory/memory.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,34 +6,25 @@ export declare class TelemetryController {
|
|
|
6
6
|
private readonly memoryService;
|
|
7
7
|
private readonly projectsService;
|
|
8
8
|
constructor(service: TelemetryService, memoryService: MemoryService, projectsService: ProjectsService);
|
|
9
|
-
listRuns(limit?: string, offset?: string, source?: string): Promise<
|
|
10
|
-
id: any;
|
|
11
|
-
agent: any;
|
|
12
|
-
mode: any;
|
|
13
|
-
source: any;
|
|
14
|
-
status: any;
|
|
15
|
-
startedAt: any;
|
|
16
|
-
tokenUsed: any;
|
|
17
|
-
}[]>;
|
|
9
|
+
listRuns(limit?: string, offset?: string, source?: string): Promise<any>;
|
|
18
10
|
getRun(id: string): Promise<any>;
|
|
19
|
-
getTimeline(from?: string, to?: string): Promise<any
|
|
11
|
+
getTimeline(from?: string, to?: string): Promise<any>;
|
|
20
12
|
getRunEvents(runId: string): Promise<any>;
|
|
21
13
|
getRunStats(runId: string): Promise<import("@devflow-tools/sdk").RunStats | {
|
|
22
14
|
totalEvents: any;
|
|
23
15
|
llmCalls: number;
|
|
24
|
-
totalTokens:
|
|
16
|
+
totalTokens: number;
|
|
25
17
|
toolUses: any;
|
|
26
18
|
fileReads: number;
|
|
27
19
|
fileWrites: number;
|
|
28
20
|
bashCommands: number;
|
|
29
21
|
errors: any;
|
|
30
|
-
totalDuration:
|
|
22
|
+
totalDuration: number;
|
|
31
23
|
mcpToolCalls: any;
|
|
32
24
|
directToolCalls: any;
|
|
33
|
-
mcpComplianceRate:
|
|
25
|
+
mcpComplianceRate: number;
|
|
34
26
|
}>;
|
|
35
27
|
completeRun(runId: string): Promise<{
|
|
36
|
-
ok: boolean;
|
|
37
28
|
extracted: number;
|
|
38
29
|
}>;
|
|
39
30
|
getStats(days?: string): Promise<{
|
|
@@ -42,9 +33,9 @@ export declare class TelemetryController {
|
|
|
42
33
|
to: string;
|
|
43
34
|
};
|
|
44
35
|
summary: {
|
|
45
|
-
totalRuns:
|
|
46
|
-
completedRuns:
|
|
47
|
-
failedRuns:
|
|
36
|
+
totalRuns: any;
|
|
37
|
+
completedRuns: any;
|
|
38
|
+
failedRuns: any;
|
|
48
39
|
totalTokens: number;
|
|
49
40
|
totalLlmCalls: number;
|
|
50
41
|
totalToolUses: number;
|
|
@@ -52,32 +43,45 @@ export declare class TelemetryController {
|
|
|
52
43
|
};
|
|
53
44
|
byDay: {
|
|
54
45
|
runs: number;
|
|
55
|
-
tokens: number;
|
|
56
46
|
date: string;
|
|
47
|
+
tokens: number;
|
|
57
48
|
}[];
|
|
58
|
-
byWorkflow:
|
|
59
|
-
|
|
60
|
-
runs: number;
|
|
61
|
-
successRate: number;
|
|
62
|
-
avgDuration: number;
|
|
63
|
-
}[];
|
|
64
|
-
byPlugin: {
|
|
65
|
-
name: string;
|
|
66
|
-
runs: number;
|
|
67
|
-
successRate: number;
|
|
68
|
-
}[];
|
|
49
|
+
byWorkflow: never[];
|
|
50
|
+
byPlugin: never[];
|
|
69
51
|
}>;
|
|
70
|
-
getRoiSummary(days?: string): Promise<
|
|
52
|
+
getRoiSummary(days?: string): Promise<any>;
|
|
71
53
|
cleanup(body: {
|
|
72
54
|
olderThanDays?: number;
|
|
73
55
|
}): Promise<{
|
|
56
|
+
removedRuns: number;
|
|
57
|
+
}>;
|
|
58
|
+
cleanupStale(): Promise<{
|
|
74
59
|
ok: boolean;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
60
|
+
}>;
|
|
61
|
+
createSession(body: {
|
|
62
|
+
id: string;
|
|
63
|
+
projectRoot: string;
|
|
64
|
+
startedAt: number;
|
|
65
|
+
label?: string;
|
|
66
|
+
}): Promise<{
|
|
67
|
+
id: string;
|
|
68
|
+
}>;
|
|
69
|
+
listSessions(limit?: string, offset?: string, projectRoot?: string): Promise<any[]>;
|
|
70
|
+
getSession(id: string): Promise<any>;
|
|
71
|
+
getSessionEvents(sessionId: string): Promise<any[]>;
|
|
72
|
+
closeSession(sessionId: string, body: {
|
|
73
|
+
finishedAt: number;
|
|
74
|
+
}): Promise<{}>;
|
|
75
|
+
startSessionSkillExecution(sessionId: string, body: {
|
|
76
|
+
executionId: string;
|
|
77
|
+
skillName: string;
|
|
78
|
+
startedAt: number;
|
|
79
|
+
}): Promise<{
|
|
80
|
+
executionId: string;
|
|
78
81
|
}>;
|
|
79
82
|
startSkillExecution(body: {
|
|
80
83
|
executionId: string;
|
|
84
|
+
sessionId?: string;
|
|
81
85
|
skillName: string;
|
|
82
86
|
startedAt: number;
|
|
83
87
|
}): Promise<{
|
|
@@ -86,6 +90,7 @@ export declare class TelemetryController {
|
|
|
86
90
|
recordToolCall(event: {
|
|
87
91
|
eventId: string;
|
|
88
92
|
executionId: string;
|
|
93
|
+
sessionId?: string;
|
|
89
94
|
timestamp: number;
|
|
90
95
|
toolName: string;
|
|
91
96
|
toolType: string;
|
|
@@ -93,8 +98,8 @@ export declare class TelemetryController {
|
|
|
93
98
|
mcpToolName?: string;
|
|
94
99
|
mcpEnforced: boolean;
|
|
95
100
|
mcpFallback: boolean;
|
|
101
|
+
kind?: string;
|
|
96
102
|
input: unknown;
|
|
97
|
-
tokensUsed: number;
|
|
98
103
|
duration: number;
|
|
99
104
|
blocked: boolean;
|
|
100
105
|
blockReason?: string;
|
|
@@ -103,11 +108,11 @@ export declare class TelemetryController {
|
|
|
103
108
|
}>;
|
|
104
109
|
updateToolCallOutput(body: {
|
|
105
110
|
eventId: string;
|
|
106
|
-
|
|
111
|
+
sessionId?: string;
|
|
107
112
|
output: unknown;
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}>;
|
|
113
|
+
completedAt?: number;
|
|
114
|
+
duration?: number;
|
|
115
|
+
}): Promise<{}>;
|
|
111
116
|
completeSkillExecution(body: {
|
|
112
117
|
executionId: string;
|
|
113
118
|
finishedAt: number;
|
|
@@ -117,17 +122,12 @@ export declare class TelemetryController {
|
|
|
117
122
|
mcpToolCalls: number;
|
|
118
123
|
directToolCalls: number;
|
|
119
124
|
subagentCount: number;
|
|
120
|
-
totalTokens: number;
|
|
121
125
|
totalDuration: number;
|
|
122
126
|
mcpComplianceRate: number;
|
|
123
127
|
};
|
|
124
128
|
}): Promise<{}>;
|
|
125
|
-
getExecutions(limit?: string, skillName?: string): Promise<
|
|
126
|
-
|
|
127
|
-
}>;
|
|
128
|
-
getExecutionEvents(executionId: string): Promise<{
|
|
129
|
-
data: any[];
|
|
130
|
-
}>;
|
|
129
|
+
getExecutions(limit?: string, skillName?: string): Promise<any[]>;
|
|
130
|
+
getExecutionEvents(executionId: string): Promise<any[]>;
|
|
131
131
|
getMcpCompliance(): Promise<{
|
|
132
132
|
overall: number;
|
|
133
133
|
bySkill: Record<string, number>;
|
|
@@ -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;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBACa,mBAAmB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAFd,OAAO,EAAE,gBAAgB,EAC5B,aAAa,EAAE,aAAa,EAC1B,eAAe,EAAE,eAAe;IAItE,QAAQ,CAAiB,KAAK,CAAC,EAAE,MAAM,EAAmB,MAAM,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":"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"}
|
|
@@ -38,11 +38,11 @@ let TelemetryController = class TelemetryController {
|
|
|
38
38
|
return this.service.getRunStats(runId);
|
|
39
39
|
}
|
|
40
40
|
async completeRun(runId) {
|
|
41
|
-
await this.service.endRun(runId, { status: "success"
|
|
41
|
+
await this.service.endRun(runId, { status: "success" });
|
|
42
42
|
const events = await this.service.getRunEvents(runId);
|
|
43
43
|
const rootPath = this.projectsService.getActiveProjectRoot();
|
|
44
44
|
const result = await this.memoryService.extract(rootPath ?? "", events);
|
|
45
|
-
return {
|
|
45
|
+
return { extracted: Array.isArray(result) ? result.length : 0 };
|
|
46
46
|
}
|
|
47
47
|
async getStats(days) {
|
|
48
48
|
return this.service.getStats(Number(days) || 7);
|
|
@@ -52,7 +52,33 @@ let TelemetryController = class TelemetryController {
|
|
|
52
52
|
}
|
|
53
53
|
async cleanup(body) {
|
|
54
54
|
const count = await this.service.cleanup(body.olderThanDays ?? 30);
|
|
55
|
-
return {
|
|
55
|
+
return { removedRuns: count };
|
|
56
|
+
}
|
|
57
|
+
async cleanupStale() {
|
|
58
|
+
await this.service.cleanupStaleRecords();
|
|
59
|
+
return { ok: true };
|
|
60
|
+
}
|
|
61
|
+
// ---- Sessions ----
|
|
62
|
+
async createSession(body) {
|
|
63
|
+
await this.service.createSession(body);
|
|
64
|
+
return { id: body.id };
|
|
65
|
+
}
|
|
66
|
+
async listSessions(limit, offset, projectRoot) {
|
|
67
|
+
return this.service.listSessions(Number(limit) || 20, Number(offset) || 0, projectRoot);
|
|
68
|
+
}
|
|
69
|
+
async getSession(id) {
|
|
70
|
+
return this.service.getSession(id);
|
|
71
|
+
}
|
|
72
|
+
async getSessionEvents(sessionId) {
|
|
73
|
+
return this.service.getSessionEvents(sessionId);
|
|
74
|
+
}
|
|
75
|
+
async closeSession(sessionId, body) {
|
|
76
|
+
await this.service.closeSession(sessionId, body.finishedAt);
|
|
77
|
+
return {};
|
|
78
|
+
}
|
|
79
|
+
async startSessionSkillExecution(sessionId, body) {
|
|
80
|
+
await this.service.createSkillExecution({ ...body, sessionId });
|
|
81
|
+
return { executionId: body.executionId };
|
|
56
82
|
}
|
|
57
83
|
async startSkillExecution(body) {
|
|
58
84
|
await this.service.recordExecutionStart(body);
|
|
@@ -63,20 +89,18 @@ let TelemetryController = class TelemetryController {
|
|
|
63
89
|
return { eventId: event.eventId };
|
|
64
90
|
}
|
|
65
91
|
async updateToolCallOutput(body) {
|
|
66
|
-
await this.service.updateToolCallOutput(body.eventId, body.output);
|
|
67
|
-
return {
|
|
92
|
+
await this.service.updateToolCallOutput(body.eventId, body.output, body.completedAt, body.duration);
|
|
93
|
+
return {};
|
|
68
94
|
}
|
|
69
95
|
async completeSkillExecution(body) {
|
|
70
96
|
await this.service.recordExecutionComplete(body);
|
|
71
97
|
return {};
|
|
72
98
|
}
|
|
73
99
|
async getExecutions(limit, skillName) {
|
|
74
|
-
|
|
75
|
-
return { data: executions };
|
|
100
|
+
return this.service.getExecutions(Number(limit) || 20, skillName);
|
|
76
101
|
}
|
|
77
102
|
async getExecutionEvents(executionId) {
|
|
78
|
-
|
|
79
|
-
return { data: events };
|
|
103
|
+
return this.service.getExecutionEvents(executionId);
|
|
80
104
|
}
|
|
81
105
|
async getMcpCompliance() {
|
|
82
106
|
return await this.service.getMcpCompliance();
|
|
@@ -148,6 +172,58 @@ __decorate([
|
|
|
148
172
|
__metadata("design:paramtypes", [Object]),
|
|
149
173
|
__metadata("design:returntype", Promise)
|
|
150
174
|
], TelemetryController.prototype, "cleanup", null);
|
|
175
|
+
__decorate([
|
|
176
|
+
Post("cleanup-stale"),
|
|
177
|
+
__metadata("design:type", Function),
|
|
178
|
+
__metadata("design:paramtypes", []),
|
|
179
|
+
__metadata("design:returntype", Promise)
|
|
180
|
+
], TelemetryController.prototype, "cleanupStale", null);
|
|
181
|
+
__decorate([
|
|
182
|
+
Post("sessions"),
|
|
183
|
+
__param(0, Body()),
|
|
184
|
+
__metadata("design:type", Function),
|
|
185
|
+
__metadata("design:paramtypes", [Object]),
|
|
186
|
+
__metadata("design:returntype", Promise)
|
|
187
|
+
], TelemetryController.prototype, "createSession", null);
|
|
188
|
+
__decorate([
|
|
189
|
+
Get("sessions"),
|
|
190
|
+
__param(0, Query("limit")),
|
|
191
|
+
__param(1, Query("offset")),
|
|
192
|
+
__param(2, Query("projectRoot")),
|
|
193
|
+
__metadata("design:type", Function),
|
|
194
|
+
__metadata("design:paramtypes", [String, String, String]),
|
|
195
|
+
__metadata("design:returntype", Promise)
|
|
196
|
+
], TelemetryController.prototype, "listSessions", null);
|
|
197
|
+
__decorate([
|
|
198
|
+
Get("sessions/:id"),
|
|
199
|
+
__param(0, Param("id")),
|
|
200
|
+
__metadata("design:type", Function),
|
|
201
|
+
__metadata("design:paramtypes", [String]),
|
|
202
|
+
__metadata("design:returntype", Promise)
|
|
203
|
+
], TelemetryController.prototype, "getSession", null);
|
|
204
|
+
__decorate([
|
|
205
|
+
Get("sessions/:id/events"),
|
|
206
|
+
__param(0, Param("id")),
|
|
207
|
+
__metadata("design:type", Function),
|
|
208
|
+
__metadata("design:paramtypes", [String]),
|
|
209
|
+
__metadata("design:returntype", Promise)
|
|
210
|
+
], TelemetryController.prototype, "getSessionEvents", null);
|
|
211
|
+
__decorate([
|
|
212
|
+
Post("sessions/:id/close"),
|
|
213
|
+
__param(0, Param("id")),
|
|
214
|
+
__param(1, Body()),
|
|
215
|
+
__metadata("design:type", Function),
|
|
216
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
217
|
+
__metadata("design:returntype", Promise)
|
|
218
|
+
], TelemetryController.prototype, "closeSession", null);
|
|
219
|
+
__decorate([
|
|
220
|
+
Post("sessions/:id/skill-executions"),
|
|
221
|
+
__param(0, Param("id")),
|
|
222
|
+
__param(1, Body()),
|
|
223
|
+
__metadata("design:type", Function),
|
|
224
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
225
|
+
__metadata("design:returntype", Promise)
|
|
226
|
+
], TelemetryController.prototype, "startSessionSkillExecution", null);
|
|
151
227
|
__decorate([
|
|
152
228
|
Post("skill-execution/start"),
|
|
153
229
|
__param(0, Body()),
|