@devflow-tools/server 0.15.0 → 0.16.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/README.md +3 -3
- package/bin/devflow-server.js +2 -0
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +4 -0
- package/dist/app.module.js.map +1 -1
- package/dist/auth/api-key.guard.d.ts.map +1 -1
- package/dist/auth/api-key.guard.js +11 -5
- package/dist/auth/api-key.guard.js.map +1 -1
- package/dist/benchmark/benchmark.controller.d.ts +7 -5
- package/dist/benchmark/benchmark.controller.d.ts.map +1 -1
- package/dist/benchmark/benchmark.controller.js +43 -4
- package/dist/benchmark/benchmark.controller.js.map +1 -1
- package/dist/benchmark/benchmark.service.d.ts +7 -9
- package/dist/benchmark/benchmark.service.d.ts.map +1 -1
- package/dist/benchmark/benchmark.service.js +27 -39
- package/dist/benchmark/benchmark.service.js.map +1 -1
- package/dist/common/dto.d.ts +0 -4
- package/dist/common/dto.d.ts.map +1 -1
- package/dist/common/http-exception.filter.d.ts.map +1 -1
- package/dist/common/http-exception.filter.js +4 -0
- package/dist/common/http-exception.filter.js.map +1 -1
- package/dist/context/context.controller.d.ts +2 -2
- package/dist/context/context.controller.d.ts.map +1 -1
- package/dist/context/context.controller.js +3 -0
- package/dist/context/context.controller.js.map +1 -1
- package/dist/context/context.controller.spec.js +2 -0
- package/dist/context/context.controller.spec.js.map +1 -1
- package/dist/context/context.service.d.ts +6 -13
- package/dist/context/context.service.d.ts.map +1 -1
- package/dist/context/context.service.js +30 -13
- package/dist/context/context.service.js.map +1 -1
- package/dist/database/database.module.d.ts.map +1 -1
- package/dist/database/database.module.js +2 -7
- package/dist/database/database.module.js.map +1 -1
- package/dist/governance/governance.controller.d.ts +16 -0
- package/dist/governance/governance.controller.d.ts.map +1 -0
- package/dist/governance/governance.controller.js +76 -0
- package/dist/governance/governance.controller.js.map +1 -0
- package/dist/governance/governance.module.d.ts +3 -0
- package/dist/governance/governance.module.d.ts.map +1 -0
- package/dist/governance/governance.module.js +16 -0
- package/dist/governance/governance.module.js.map +1 -0
- package/dist/governance/governance.service.d.ts +19 -0
- package/dist/governance/governance.service.d.ts.map +1 -0
- package/dist/governance/governance.service.js +169 -0
- package/dist/governance/governance.service.js.map +1 -0
- package/dist/knowledge/knowledge.controller.d.ts +6 -0
- package/dist/knowledge/knowledge.controller.d.ts.map +1 -1
- package/dist/knowledge/knowledge.controller.js +14 -0
- package/dist/knowledge/knowledge.controller.js.map +1 -1
- package/dist/knowledge/knowledge.service.d.ts +3 -1
- package/dist/knowledge/knowledge.service.d.ts.map +1 -1
- package/dist/knowledge/knowledge.service.js +7 -1
- package/dist/knowledge/knowledge.service.js.map +1 -1
- package/dist/live/live.controller.d.ts +5 -0
- package/dist/live/live.controller.d.ts.map +1 -0
- package/dist/live/live.controller.js +52 -0
- package/dist/live/live.controller.js.map +1 -0
- package/dist/live/live.controller.spec.d.ts +2 -0
- package/dist/live/live.controller.spec.d.ts.map +1 -0
- package/dist/live/live.controller.spec.js +25 -0
- package/dist/live/live.controller.spec.js.map +1 -0
- package/dist/live/live.module.d.ts +3 -0
- package/dist/live/live.module.d.ts.map +1 -0
- package/dist/live/live.module.js +15 -0
- package/dist/live/live.module.js.map +1 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +25 -3
- package/dist/main.js.map +1 -1
- package/dist/memory/memory.controller.d.ts +13 -28
- package/dist/memory/memory.controller.d.ts.map +1 -1
- package/dist/memory/memory.controller.js +85 -24
- package/dist/memory/memory.controller.js.map +1 -1
- package/dist/memory/memory.service.d.ts +8 -32
- package/dist/memory/memory.service.d.ts.map +1 -1
- package/dist/memory/memory.service.js +41 -45
- package/dist/memory/memory.service.js.map +1 -1
- package/dist/projects/projects.controller.d.ts +9 -2
- package/dist/projects/projects.controller.d.ts.map +1 -1
- package/dist/projects/projects.controller.js +42 -10
- package/dist/projects/projects.controller.js.map +1 -1
- package/dist/projects/projects.controller.spec.js +59 -16
- package/dist/projects/projects.controller.spec.js.map +1 -1
- package/dist/projects/projects.module.d.ts.map +1 -1
- package/dist/projects/projects.module.js +10 -2
- package/dist/projects/projects.module.js.map +1 -1
- package/dist/projects/projects.service.d.ts +7 -39
- package/dist/projects/projects.service.d.ts.map +1 -1
- package/dist/projects/projects.service.js +39 -19
- package/dist/projects/projects.service.js.map +1 -1
- package/dist/projects/projects.service.spec.d.ts +2 -0
- package/dist/projects/projects.service.spec.d.ts.map +1 -0
- package/dist/projects/projects.service.spec.js +99 -0
- package/dist/projects/projects.service.spec.js.map +1 -0
- package/dist/retrieval-contract.spec.d.ts +2 -0
- package/dist/retrieval-contract.spec.d.ts.map +1 -0
- package/dist/retrieval-contract.spec.js +53 -0
- package/dist/retrieval-contract.spec.js.map +1 -0
- package/dist/telemetry/telemetry.controller.d.ts +1 -5
- package/dist/telemetry/telemetry.controller.d.ts.map +1 -1
- package/dist/telemetry/telemetry.controller.js +3 -14
- package/dist/telemetry/telemetry.controller.js.map +1 -1
- package/dist/telemetry/telemetry.controller.spec.js +8 -2
- package/dist/telemetry/telemetry.controller.spec.js.map +1 -1
- package/dist/telemetry/telemetry.service.d.ts +1 -0
- package/dist/telemetry/telemetry.service.d.ts.map +1 -1
- package/dist/telemetry/telemetry.service.js +17 -48
- package/dist/telemetry/telemetry.service.js.map +1 -1
- package/dist/workflow/workflow.controller.d.ts +6 -0
- package/dist/workflow/workflow.controller.d.ts.map +1 -1
- package/dist/workflow/workflow.service.d.ts +6 -0
- package/dist/workflow/workflow.service.d.ts.map +1 -1
- package/dist/workflow/workflow.service.js +13 -5
- package/dist/workflow/workflow.service.js.map +1 -1
- package/package.json +16 -12
- package/dist/common/root-path.decorator.d.ts +0 -2
- package/dist/common/root-path.decorator.d.ts.map +0 -1
- package/dist/common/root-path.decorator.js +0 -6
- package/dist/common/root-path.decorator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.service.js","sourceRoot":"","sources":["../../src/context/context.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"context.service.js","sourceRoot":"","sources":["../../src/context/context.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAQA,qBAKa,cAAc;CAAG"}
|
|
@@ -5,15 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { Global, Module } from "@nestjs/common";
|
|
8
|
-
import {
|
|
9
|
-
import { join } from "path";
|
|
10
|
-
import { homedir } from "os";
|
|
8
|
+
import { openGlobalDevFlowDatabase } from "@devflow-tools/database";
|
|
11
9
|
const databaseProvider = {
|
|
12
10
|
provide: 'DATABASE',
|
|
13
|
-
useFactory: () =>
|
|
14
|
-
const stateDir = process.env.DEVFLOW_STATE_DIR ?? join(homedir(), '.devflow', 'global');
|
|
15
|
-
return new DevFlowDatabase(homedir(), { dbPath: join(stateDir, 'devflow.db') });
|
|
16
|
-
},
|
|
11
|
+
useFactory: () => openGlobalDevFlowDatabase(),
|
|
17
12
|
};
|
|
18
13
|
let DatabaseModule = class DatabaseModule {
|
|
19
14
|
};
|
|
@@ -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,
|
|
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,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,gBAAgB,GAAG;IACvB,OAAO,EAAE,UAAU;IACnB,UAAU,EAAE,GAAG,EAAE,CAAC,yBAAyB,EAAE;CAC9C,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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { GovernanceService } from "./governance.service.js";
|
|
2
|
+
export declare class GovernanceController {
|
|
3
|
+
private readonly service;
|
|
4
|
+
constructor(service: GovernanceService);
|
|
5
|
+
listRules(): Promise<import("@devflow-tools/database").GovernanceRuleRecord[]>;
|
|
6
|
+
createRule(body: unknown): Promise<import("@devflow-tools/database").GovernanceRuleRecord>;
|
|
7
|
+
updateRule(id: string, body: unknown): Promise<import("@devflow-tools/database").GovernanceRuleRecord>;
|
|
8
|
+
deleteRule(id: string): Promise<{
|
|
9
|
+
deleted: true;
|
|
10
|
+
}>;
|
|
11
|
+
listAudit(limit?: string, offset?: string): {
|
|
12
|
+
items: import("@devflow-tools/database").GovernanceAuditRecord[];
|
|
13
|
+
total: number;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=governance.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.controller.d.ts","sourceRoot":"","sources":["../../src/governance/governance.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,qBACa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,iBAAiB;IAGvD,SAAS;IAKT,UAAU,CAAS,IAAI,EAAE,OAAO;IAKhC,UAAU,CAAc,EAAE,EAAE,MAAM,EAAU,IAAI,EAAE,OAAO;IAKzD,UAAU,CAAc,EAAE,EAAE,MAAM;;;IAKlC,SAAS,CAAiB,KAAK,CAAC,EAAE,MAAM,EAAmB,MAAM,CAAC,EAAE,MAAM;;;;CAG3E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
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 { Body, Controller, Delete, Get, Param, Post, Put, Query } from "@nestjs/common";
|
|
14
|
+
import { GovernanceService } from "./governance.service.js";
|
|
15
|
+
let GovernanceController = class GovernanceController {
|
|
16
|
+
constructor(service) {
|
|
17
|
+
this.service = service;
|
|
18
|
+
}
|
|
19
|
+
listRules() {
|
|
20
|
+
return this.service.listRules();
|
|
21
|
+
}
|
|
22
|
+
createRule(body) {
|
|
23
|
+
return this.service.saveRule(body);
|
|
24
|
+
}
|
|
25
|
+
updateRule(id, body) {
|
|
26
|
+
return this.service.saveRule(body, id);
|
|
27
|
+
}
|
|
28
|
+
deleteRule(id) {
|
|
29
|
+
return this.service.deleteRule(id);
|
|
30
|
+
}
|
|
31
|
+
listAudit(limit, offset) {
|
|
32
|
+
return this.service.listAudit(Number(limit) || 100, Number(offset) || 0);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
__decorate([
|
|
36
|
+
Get("rules"),
|
|
37
|
+
__metadata("design:type", Function),
|
|
38
|
+
__metadata("design:paramtypes", []),
|
|
39
|
+
__metadata("design:returntype", void 0)
|
|
40
|
+
], GovernanceController.prototype, "listRules", null);
|
|
41
|
+
__decorate([
|
|
42
|
+
Post("rules"),
|
|
43
|
+
__param(0, Body()),
|
|
44
|
+
__metadata("design:type", Function),
|
|
45
|
+
__metadata("design:paramtypes", [Object]),
|
|
46
|
+
__metadata("design:returntype", void 0)
|
|
47
|
+
], GovernanceController.prototype, "createRule", null);
|
|
48
|
+
__decorate([
|
|
49
|
+
Put("rules/:id"),
|
|
50
|
+
__param(0, Param("id")),
|
|
51
|
+
__param(1, Body()),
|
|
52
|
+
__metadata("design:type", Function),
|
|
53
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
54
|
+
__metadata("design:returntype", void 0)
|
|
55
|
+
], GovernanceController.prototype, "updateRule", null);
|
|
56
|
+
__decorate([
|
|
57
|
+
Delete("rules/:id"),
|
|
58
|
+
__param(0, Param("id")),
|
|
59
|
+
__metadata("design:type", Function),
|
|
60
|
+
__metadata("design:paramtypes", [String]),
|
|
61
|
+
__metadata("design:returntype", void 0)
|
|
62
|
+
], GovernanceController.prototype, "deleteRule", null);
|
|
63
|
+
__decorate([
|
|
64
|
+
Get("audit-chain"),
|
|
65
|
+
__param(0, Query("limit")),
|
|
66
|
+
__param(1, Query("offset")),
|
|
67
|
+
__metadata("design:type", Function),
|
|
68
|
+
__metadata("design:paramtypes", [String, String]),
|
|
69
|
+
__metadata("design:returntype", void 0)
|
|
70
|
+
], GovernanceController.prototype, "listAudit", null);
|
|
71
|
+
GovernanceController = __decorate([
|
|
72
|
+
Controller("governance"),
|
|
73
|
+
__metadata("design:paramtypes", [GovernanceService])
|
|
74
|
+
], GovernanceController);
|
|
75
|
+
export { GovernanceController };
|
|
76
|
+
//# sourceMappingURL=governance.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.controller.js","sourceRoot":"","sources":["../../src/governance/governance.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACxF,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGrD,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAG3D,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;IAClC,CAAC;IAGD,UAAU,CAAS,IAAa;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAGD,UAAU,CAAc,EAAU,EAAU,IAAa;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzC,CAAC;IAGD,UAAU,CAAc,EAAU;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAGD,SAAS,CAAiB,KAAc,EAAmB,MAAe;QACxE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF,CAAA;AAvBC;IADC,GAAG,CAAC,OAAO,CAAC;;;;qDAGZ;AAGD;IADC,IAAI,CAAC,OAAO,CAAC;IACF,WAAA,IAAI,EAAE,CAAA;;;;sDAEjB;AAGD;IADC,GAAG,CAAC,WAAW,CAAC;IACL,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAI,EAAE,CAAA;;;;sDAE1C;AAGD;IADC,MAAM,CAAC,WAAW,CAAC;IACR,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;sDAEtB;AAGD;IADC,GAAG,CAAC,aAAa,CAAC;IACR,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;IAAkB,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;;;;qDAEzD;AA1BU,oBAAoB;IADhC,UAAU,CAAC,YAAY,CAAC;qCAEe,iBAAiB;GAD5C,oBAAoB,CA2BhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.module.d.ts","sourceRoot":"","sources":["../../src/governance/governance.module.ts"],"names":[],"mappings":"AAIA,qBACa,gBAAgB;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 { GovernanceController } from "./governance.controller.js";
|
|
9
|
+
import { GovernanceService } from "./governance.service.js";
|
|
10
|
+
let GovernanceModule = class GovernanceModule {
|
|
11
|
+
};
|
|
12
|
+
GovernanceModule = __decorate([
|
|
13
|
+
Module({ controllers: [GovernanceController], providers: [GovernanceService] })
|
|
14
|
+
], GovernanceModule);
|
|
15
|
+
export { GovernanceModule };
|
|
16
|
+
//# sourceMappingURL=governance.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.module.js","sourceRoot":"","sources":["../../src/governance/governance.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGrD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,gBAAgB;IAD5B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;GACnE,gBAAgB,CAAG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { DevFlowDatabase, GovernanceRuleRecord } from "@devflow-tools/database";
|
|
2
|
+
export declare class GovernanceService {
|
|
3
|
+
private readonly database;
|
|
4
|
+
private seedPromise;
|
|
5
|
+
constructor(database: DevFlowDatabase);
|
|
6
|
+
private ensureSeeded;
|
|
7
|
+
listRules(): Promise<GovernanceRuleRecord[]>;
|
|
8
|
+
saveRule(input: unknown, pathId?: string): Promise<GovernanceRuleRecord>;
|
|
9
|
+
deleteRule(id: string): Promise<{
|
|
10
|
+
deleted: true;
|
|
11
|
+
}>;
|
|
12
|
+
listAudit(limit?: number, offset?: number): {
|
|
13
|
+
items: import("@devflow-tools/database").GovernanceAuditRecord[];
|
|
14
|
+
total: number;
|
|
15
|
+
};
|
|
16
|
+
private validateRule;
|
|
17
|
+
private validateCondition;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=governance.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.service.d.ts","sourceRoot":"","sources":["../../src/governance/governance.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAwBrF,qBACa,iBAAiB;IAGI,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAFzD,OAAO,CAAC,WAAW,CAA8B;gBAEA,QAAQ,EAAE,eAAe;YAE5D,YAAY;IAQpB,SAAS,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAK5C,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMxE,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC;IAWxD,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;IAIzC,OAAO,CAAC,YAAY;IAyDpB,OAAO,CAAC,iBAAiB;CAoC1B"}
|
|
@@ -0,0 +1,169 @@
|
|
|
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 { BadRequestException, Inject, Injectable, NotFoundException } from "@nestjs/common";
|
|
14
|
+
import { DEFAULT_ENFORCER_RULES, LocalDataProvider, seedDefaultEnforcerRules, } from "@devflow-tools/sdk";
|
|
15
|
+
const RULE_ID_PATTERN = /^[A-Z][A-Z0-9_-]{1,31}$/i;
|
|
16
|
+
const LEVELS = new Set(["constitutional", "project", "session"]);
|
|
17
|
+
const ACTIONS = new Set(["deny", "warn", "allow"]);
|
|
18
|
+
const CONDITION_KEYS = new Set([
|
|
19
|
+
"tools",
|
|
20
|
+
"toolPatterns",
|
|
21
|
+
"paramPatterns",
|
|
22
|
+
"requireFields",
|
|
23
|
+
"forbidPatterns",
|
|
24
|
+
"maxCallsPerMinute",
|
|
25
|
+
"maxNumericFields",
|
|
26
|
+
"requirePriorTools",
|
|
27
|
+
"requiresContextWarning",
|
|
28
|
+
"requiresPreviousFailure",
|
|
29
|
+
]);
|
|
30
|
+
let GovernanceService = class GovernanceService {
|
|
31
|
+
constructor(database) {
|
|
32
|
+
this.database = database;
|
|
33
|
+
this.seedPromise = null;
|
|
34
|
+
}
|
|
35
|
+
async ensureSeeded() {
|
|
36
|
+
if (!this.seedPromise) {
|
|
37
|
+
const provider = new LocalDataProvider(process.cwd());
|
|
38
|
+
this.seedPromise = seedDefaultEnforcerRules(provider).finally(() => provider.close());
|
|
39
|
+
}
|
|
40
|
+
await this.seedPromise;
|
|
41
|
+
}
|
|
42
|
+
async listRules() {
|
|
43
|
+
await this.ensureSeeded();
|
|
44
|
+
return this.database.listGovernanceRules(true);
|
|
45
|
+
}
|
|
46
|
+
async saveRule(input, pathId) {
|
|
47
|
+
await this.ensureSeeded();
|
|
48
|
+
const rule = this.validateRule(input, pathId);
|
|
49
|
+
return this.database.upsertGovernanceRule(rule);
|
|
50
|
+
}
|
|
51
|
+
async deleteRule(id) {
|
|
52
|
+
await this.ensureSeeded();
|
|
53
|
+
if (DEFAULT_ENFORCER_RULES.some((rule) => rule.id === id)) {
|
|
54
|
+
throw new BadRequestException("Canonical rules can be edited or disabled, but not deleted");
|
|
55
|
+
}
|
|
56
|
+
if (!this.database.deleteGovernanceRule(id)) {
|
|
57
|
+
throw new NotFoundException(`Rule ${id} was not found`);
|
|
58
|
+
}
|
|
59
|
+
return { deleted: true };
|
|
60
|
+
}
|
|
61
|
+
listAudit(limit, offset) {
|
|
62
|
+
return this.database.listGovernanceAudit(limit, offset);
|
|
63
|
+
}
|
|
64
|
+
validateRule(input, pathId) {
|
|
65
|
+
if (!input || typeof input !== "object" || Array.isArray(input)) {
|
|
66
|
+
throw new BadRequestException("Rule body must be an object");
|
|
67
|
+
}
|
|
68
|
+
const value = input;
|
|
69
|
+
const id = pathId ?? value.id;
|
|
70
|
+
if (typeof id !== "string" || !RULE_ID_PATTERN.test(id)) {
|
|
71
|
+
throw new BadRequestException("Rule id must contain 2-32 letters, digits, '_' or '-'");
|
|
72
|
+
}
|
|
73
|
+
if (value.id !== undefined && value.id !== id) {
|
|
74
|
+
throw new BadRequestException("Rule id cannot be changed");
|
|
75
|
+
}
|
|
76
|
+
if (typeof value.name !== "string" || !value.name.trim()) {
|
|
77
|
+
throw new BadRequestException("Rule name is required");
|
|
78
|
+
}
|
|
79
|
+
if (![1, 2, 3, 4].includes(Number(value.gate))) {
|
|
80
|
+
throw new BadRequestException("Rule gate must be 1, 2, 3 or 4");
|
|
81
|
+
}
|
|
82
|
+
if (typeof value.level !== "string" || !LEVELS.has(value.level)) {
|
|
83
|
+
throw new BadRequestException("Invalid rule level");
|
|
84
|
+
}
|
|
85
|
+
if (typeof value.action !== "string" || !ACTIONS.has(value.action)) {
|
|
86
|
+
throw new BadRequestException("Invalid rule action");
|
|
87
|
+
}
|
|
88
|
+
if (typeof value.message !== "string" || !value.message.trim()) {
|
|
89
|
+
throw new BadRequestException("Rule message is required");
|
|
90
|
+
}
|
|
91
|
+
if (!value.condition || typeof value.condition !== "object" || Array.isArray(value.condition)) {
|
|
92
|
+
throw new BadRequestException("Rule condition must be an object");
|
|
93
|
+
}
|
|
94
|
+
const condition = value.condition;
|
|
95
|
+
for (const key of Object.keys(condition)) {
|
|
96
|
+
if (!CONDITION_KEYS.has(key))
|
|
97
|
+
throw new BadRequestException(`Unsupported condition field: ${key}`);
|
|
98
|
+
}
|
|
99
|
+
this.validateCondition(condition);
|
|
100
|
+
if (value.enabled !== undefined && typeof value.enabled !== "boolean") {
|
|
101
|
+
throw new BadRequestException("Rule enabled must be a boolean");
|
|
102
|
+
}
|
|
103
|
+
const existing = this.database.getGovernanceRule(id);
|
|
104
|
+
const rule = {
|
|
105
|
+
id,
|
|
106
|
+
name: value.name.trim(),
|
|
107
|
+
gate: Number(value.gate),
|
|
108
|
+
level: value.level,
|
|
109
|
+
condition: condition,
|
|
110
|
+
action: value.action,
|
|
111
|
+
message: value.message.trim(),
|
|
112
|
+
enabled: value.enabled !== false,
|
|
113
|
+
createdAt: existing?.createdAt,
|
|
114
|
+
};
|
|
115
|
+
return {
|
|
116
|
+
...rule,
|
|
117
|
+
condition: rule.condition,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
validateCondition(condition) {
|
|
121
|
+
for (const key of ["tools", "toolPatterns", "requireFields", "forbidPatterns", "requirePriorTools"]) {
|
|
122
|
+
const field = condition[key];
|
|
123
|
+
if (field !== undefined && (!Array.isArray(field) || field.some((entry) => typeof entry !== "string"))) {
|
|
124
|
+
throw new BadRequestException(`${key} must be an array of strings`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
for (const key of ["paramPatterns", "maxNumericFields"]) {
|
|
128
|
+
const field = condition[key];
|
|
129
|
+
if (field !== undefined && (!field || typeof field !== "object" || Array.isArray(field))) {
|
|
130
|
+
throw new BadRequestException(`${key} must be an object`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
for (const key of ["requiresContextWarning", "requiresPreviousFailure"]) {
|
|
134
|
+
if (condition[key] !== undefined && typeof condition[key] !== "boolean") {
|
|
135
|
+
throw new BadRequestException(`${key} must be a boolean`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (condition.maxCallsPerMinute !== undefined
|
|
139
|
+
&& (typeof condition.maxCallsPerMinute !== "number" || condition.maxCallsPerMinute <= 0)) {
|
|
140
|
+
throw new BadRequestException("maxCallsPerMinute must be a positive number");
|
|
141
|
+
}
|
|
142
|
+
const numericFields = condition.maxNumericFields;
|
|
143
|
+
if (numericFields && Object.values(numericFields).some((entry) => typeof entry !== "number" || entry < 0)) {
|
|
144
|
+
throw new BadRequestException("maxNumericFields values must be non-negative numbers");
|
|
145
|
+
}
|
|
146
|
+
const patterns = [
|
|
147
|
+
...(condition.toolPatterns ?? []),
|
|
148
|
+
...(condition.forbidPatterns ?? []),
|
|
149
|
+
...Object.values(condition.paramPatterns ?? {}),
|
|
150
|
+
];
|
|
151
|
+
for (const pattern of patterns) {
|
|
152
|
+
if (typeof pattern !== "string")
|
|
153
|
+
throw new BadRequestException("Regex patterns must be strings");
|
|
154
|
+
try {
|
|
155
|
+
new RegExp(pattern);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
throw new BadRequestException(`Invalid regex pattern: ${pattern}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
GovernanceService = __decorate([
|
|
164
|
+
Injectable(),
|
|
165
|
+
__param(0, Inject("DATABASE")),
|
|
166
|
+
__metadata("design:paramtypes", [Function])
|
|
167
|
+
], GovernanceService);
|
|
168
|
+
export { GovernanceService };
|
|
169
|
+
//# sourceMappingURL=governance.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance.service.js","sourceRoot":"","sources":["../../src/governance/governance.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,12 @@ export declare class KnowledgeController {
|
|
|
6
6
|
constructor(service: KnowledgeService, projects: ProjectsService);
|
|
7
7
|
private resolveRootPath;
|
|
8
8
|
search(rootPath?: string, q?: string, scope?: string, xProject?: string): Promise<import("@devflow-tools/sdk").KnowledgeEntry[]>;
|
|
9
|
+
query(body: {
|
|
10
|
+
rootPath?: string;
|
|
11
|
+
query?: string;
|
|
12
|
+
scope?: string;
|
|
13
|
+
budgetTokens?: number;
|
|
14
|
+
}, xProject?: string): Promise<import("@devflow-tools/sdk").GetKnowledgeResult>;
|
|
9
15
|
sync(body: {
|
|
10
16
|
rootPath?: string;
|
|
11
17
|
pluginName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.controller.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBACa,mBAAmB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADP,OAAO,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,eAAe;IAGrE,OAAO,CAAC,eAAe;IAOjB,MAAM,CAAoB,QAAQ,CAAC,EAAE,MAAM,EAAc,CAAC,CAAC,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;IAKpJ,IAAI,CAAS,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;IAK9G,UAAU,CAAoB,QAAQ,CAAC,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;CAGvG"}
|
|
1
|
+
{"version":3,"file":"knowledge.controller.d.ts","sourceRoot":"","sources":["../../src/knowledge/knowledge.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAElE,qBACa,mBAAmB;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADP,OAAO,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,eAAe;IAGrE,OAAO,CAAC,eAAe;IAOjB,MAAM,CAAoB,QAAQ,CAAC,EAAE,MAAM,EAAc,CAAC,CAAC,EAAE,MAAM,EAAkB,KAAK,CAAC,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;IAKpJ,KAAK,CACD,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5D,QAAQ,CAAC,EAAE,MAAM;IAc3C,IAAI,CAAS,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;IAK9G,UAAU,CAAoB,QAAQ,CAAC,EAAE,MAAM,EAAgC,QAAQ,CAAC,EAAE,MAAM;CAGvG"}
|
|
@@ -27,6 +27,12 @@ let KnowledgeController = class KnowledgeController {
|
|
|
27
27
|
async search(rootPath, q, scope, xProject) {
|
|
28
28
|
return this.service.search(this.resolveRootPath(rootPath, xProject), q ?? "", scope);
|
|
29
29
|
}
|
|
30
|
+
async query(body, xProject) {
|
|
31
|
+
if (typeof body.query !== 'string' || body.query.trim() === '') {
|
|
32
|
+
throw new BadRequestException('query is required');
|
|
33
|
+
}
|
|
34
|
+
return this.service.query(this.resolveRootPath(body.rootPath, xProject), body.query, body.scope, body.budgetTokens);
|
|
35
|
+
}
|
|
30
36
|
async sync(body, xProject) {
|
|
31
37
|
return this.service.sync(this.resolveRootPath(body.rootPath, xProject), body.pluginName);
|
|
32
38
|
}
|
|
@@ -44,6 +50,14 @@ __decorate([
|
|
|
44
50
|
__metadata("design:paramtypes", [String, String, String, String]),
|
|
45
51
|
__metadata("design:returntype", Promise)
|
|
46
52
|
], KnowledgeController.prototype, "search", null);
|
|
53
|
+
__decorate([
|
|
54
|
+
Post("query"),
|
|
55
|
+
__param(0, Body()),
|
|
56
|
+
__param(1, Headers("x-devflow-project")),
|
|
57
|
+
__metadata("design:type", Function),
|
|
58
|
+
__metadata("design:paramtypes", [Object, String]),
|
|
59
|
+
__metadata("design:returntype", Promise)
|
|
60
|
+
], KnowledgeController.prototype, "query", null);
|
|
47
61
|
__decorate([
|
|
48
62
|
Post("sync"),
|
|
49
63
|
__param(0, Body()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.controller.js","sourceRoot":"","sources":["../../src/knowledge/knowledge.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAG3D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAC6C,OAAyB,EAC1B,QAAyB;QADxB,YAAO,GAAP,OAAO,CAAkB;QAC1B,aAAQ,GAAR,QAAQ,CAAiB;IAClE,CAAC;IAEI,eAAe,CAAC,QAAiB,EAAE,QAAiB;QAC1D,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC9E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,mBAAmB,CAAC,oDAAoD,CAAC,CAAC;QACnG,OAAO,QAAQ,CAAC;IAClB,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAoB,QAAiB,EAAc,CAAU,EAAkB,KAAc,EAAgC,QAAiB;QACxJ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IACvF,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAS,IAAgD,EAAgC,QAAiB;QAClH,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CAAoB,QAAiB,EAAgC,QAAiB;QACpG,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"knowledge.controller.js","sourceRoot":"","sources":["../../src/knowledge/knowledge.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAG3D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YAC6C,OAAyB,EAC1B,QAAyB;QADxB,YAAO,GAAP,OAAO,CAAkB;QAC1B,aAAQ,GAAR,QAAQ,CAAiB;IAClE,CAAC;IAEI,eAAe,CAAC,QAAiB,EAAE,QAAiB;QAC1D,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;QAC9E,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,mBAAmB,CAAC,oDAAoD,CAAC,CAAC;QACnG,OAAO,QAAQ,CAAC;IAClB,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAoB,QAAiB,EAAc,CAAU,EAAkB,KAAc,EAAgC,QAAiB;QACxJ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IACvF,CAAC;IAGK,AAAN,KAAK,CAAC,KAAK,CACD,IAAkF,EAC5D,QAAiB;QAE/C,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CACvB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAC7C,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAGK,AAAN,KAAK,CAAC,IAAI,CAAS,IAAgD,EAAgC,QAAiB;QAClH,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IAGK,AAAN,KAAK,CAAC,UAAU,CAAoB,QAAiB,EAAgC,QAAiB;QACpG,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF,CAAA;AA7BO;IADL,GAAG,CAAC,QAAQ,CAAC;IACA,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;IAAqB,WAAA,KAAK,CAAC,GAAG,CAAC,CAAA;IAAc,WAAA,KAAK,CAAC,OAAO,CAAC,CAAA;IAAkB,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;iDAEvI;AAGK;IADL,IAAI,CAAC,OAAO,CAAC;IAEX,WAAA,IAAI,EAAE,CAAA;IACN,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;gDAW9B;AAGK;IADL,IAAI,CAAC,MAAM,CAAC;IACD,WAAA,IAAI,EAAE,CAAA;IAAoD,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;+CAEjG;AAGK;IADL,GAAG,CAAC,SAAS,CAAC;IACG,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;IAAqB,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;qDAEnF;AAzCU,mBAAmB;IAD/B,UAAU,CAAC,WAAW,CAAC;IAGnB,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxB,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;qCAD4B,gBAAgB;QAChB,eAAe;GAH1D,mBAAmB,CA0C/B"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { OnModuleInit } from "@nestjs/common";
|
|
2
2
|
import { ProjectsService } from "../projects/projects.service.js";
|
|
3
|
-
import type { KnowledgeEntry, SyncResult, KnowledgeSourceStatus } from "@devflow-tools/sdk";
|
|
3
|
+
import type { GetKnowledgeResult, KnowledgeEntry, SyncResult, KnowledgeSourceStatus } from "@devflow-tools/sdk";
|
|
4
4
|
export declare class KnowledgeService implements OnModuleInit {
|
|
5
5
|
private readonly projectsService;
|
|
6
|
+
private readonly embedder;
|
|
6
7
|
constructor(projectsService: ProjectsService);
|
|
7
8
|
private getEngine;
|
|
8
9
|
onModuleInit(): Promise<void>;
|
|
9
10
|
private _initKnowledge;
|
|
10
11
|
search(rootPath: string, query: string, scope?: string): Promise<KnowledgeEntry[]>;
|
|
12
|
+
query(rootPath: string, query: string, scope?: string, budgetTokens?: number): Promise<GetKnowledgeResult>;
|
|
11
13
|
sync(rootPath: string, pluginName?: string): Promise<SyncResult[]>;
|
|
12
14
|
getSources(rootPath: string): Promise<KnowledgeSourceStatus[]>;
|
|
13
15
|
}
|
|
@@ -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;
|
|
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;AAKlE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,qBAAqB,EAAmB,MAAM,oBAAoB,CAAC;AAEjI,qBACa,gBAAiB,YAAW,YAAY;IAGd,OAAO,CAAC,QAAQ,CAAC,eAAe;IAFrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2B;gBAEE,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,KAAK,CACT,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,kBAAkB,CAAC;IAIxB,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"}
|
|
@@ -12,14 +12,17 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { Injectable, Inject } from "@nestjs/common";
|
|
14
14
|
import { KnowledgeEngine } from "@devflow-tools/knowledge-engine";
|
|
15
|
+
import { getKnowledgeResult } from '@devflow-tools/context-engine';
|
|
16
|
+
import { EmbeddingProvider } from "@devflow-tools/memory-engine";
|
|
15
17
|
import { loadPlugins } from "@devflow-tools/sdk";
|
|
16
18
|
import { ProjectsService } from "../projects/projects.service.js";
|
|
17
19
|
let KnowledgeService = class KnowledgeService {
|
|
18
20
|
constructor(projectsService) {
|
|
19
21
|
this.projectsService = projectsService;
|
|
22
|
+
this.embedder = new EmbeddingProvider();
|
|
20
23
|
}
|
|
21
24
|
getEngine(rootPath) {
|
|
22
|
-
return new KnowledgeEngine({ projectRoot: rootPath });
|
|
25
|
+
return new KnowledgeEngine({ projectRoot: rootPath, embedder: this.embedder });
|
|
23
26
|
}
|
|
24
27
|
async onModuleInit() {
|
|
25
28
|
// Fire-and-forget: don't block server startup on knowledge sync.
|
|
@@ -59,6 +62,9 @@ let KnowledgeService = class KnowledgeService {
|
|
|
59
62
|
sources: scope && scope !== "all" ? [scope] : undefined,
|
|
60
63
|
});
|
|
61
64
|
}
|
|
65
|
+
async query(rootPath, query, scope, budgetTokens) {
|
|
66
|
+
return getKnowledgeResult(this.getEngine(rootPath), { query, scope, budgetTokens });
|
|
67
|
+
}
|
|
62
68
|
async sync(rootPath, pluginName) {
|
|
63
69
|
return this.getEngine(rootPath).syncDocs(pluginName ?? "");
|
|
64
70
|
}
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"knowledge.service.js","sourceRoot":"","sources":["../../src/knowledge/knowledge.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.controller.d.ts","sourceRoot":"","sources":["../../src/live/live.controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,qBACa,cAAc;IAEzB,MAAM,CAAoB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAS,KAAK,EAAE,YAAY,GAAG,IAAI;CAyB1F"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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, Query, Res } from "@nestjs/common";
|
|
14
|
+
const LIVE_CHANNELS = new Set(["timeline", "tool-metrics", "accuracy", "memory"]);
|
|
15
|
+
const REFRESH_INTERVAL_MS = 3_000;
|
|
16
|
+
let LiveController = class LiveController {
|
|
17
|
+
stream(channels, reply) {
|
|
18
|
+
const requested = (channels ?? "")
|
|
19
|
+
.split(",")
|
|
20
|
+
.map((channel) => channel.trim())
|
|
21
|
+
.filter((channel) => LIVE_CHANNELS.has(channel));
|
|
22
|
+
const activeChannels = requested.length > 0 ? [...new Set(requested)] : [...LIVE_CHANNELS];
|
|
23
|
+
reply.raw.writeHead(200, {
|
|
24
|
+
"Content-Type": "text/event-stream",
|
|
25
|
+
"Cache-Control": "no-cache, no-transform",
|
|
26
|
+
Connection: "keep-alive",
|
|
27
|
+
"X-Accel-Buffering": "no",
|
|
28
|
+
});
|
|
29
|
+
reply.raw.write(`event: ready\ndata: ${JSON.stringify({ channels: activeChannels })}\n\n`);
|
|
30
|
+
const interval = setInterval(() => {
|
|
31
|
+
const timestamp = Date.now();
|
|
32
|
+
for (const channel of activeChannels) {
|
|
33
|
+
reply.raw.write(`event: refresh\ndata: ${JSON.stringify({ channel, timestamp })}\n\n`);
|
|
34
|
+
}
|
|
35
|
+
}, REFRESH_INTERVAL_MS);
|
|
36
|
+
interval.unref();
|
|
37
|
+
reply.raw.on("close", () => clearInterval(interval));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
__decorate([
|
|
41
|
+
Get("stream"),
|
|
42
|
+
__param(0, Query("channels")),
|
|
43
|
+
__param(1, Res()),
|
|
44
|
+
__metadata("design:type", Function),
|
|
45
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
46
|
+
__metadata("design:returntype", void 0)
|
|
47
|
+
], LiveController.prototype, "stream", null);
|
|
48
|
+
LiveController = __decorate([
|
|
49
|
+
Controller("live")
|
|
50
|
+
], LiveController);
|
|
51
|
+
export { LiveController };
|
|
52
|
+
//# sourceMappingURL=live.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.controller.js","sourceRoot":"","sources":["../../src/live/live.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG7D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAClF,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAG3B,IAAM,cAAc,GAApB,MAAM,cAAc;IAEzB,MAAM,CAAoB,QAA4B,EAAS,KAAmB;QAChF,MAAM,SAAS,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;aAC/B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;QAE3F,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE;YACvB,cAAc,EAAE,mBAAmB;YACnC,eAAe,EAAE,wBAAwB;YACzC,UAAU,EAAE,YAAY;YACxB,mBAAmB,EAAE,IAAI;SAC1B,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QAE3F,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;YACzF,CAAC;QACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;QACxB,QAAQ,CAAC,KAAK,EAAE,CAAC;QAEjB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,CAAC;CACF,CAAA;AAzBC;IADC,GAAG,CAAC,QAAQ,CAAC;IACN,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;IAAgC,WAAA,GAAG,EAAE,CAAA;;;;4CAwB7D;AA1BU,cAAc;IAD1B,UAAU,CAAC,MAAM,CAAC;GACN,cAAc,CA2B1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.controller.spec.d.ts","sourceRoot":"","sources":["../../src/live/live.controller.spec.ts"],"names":[],"mappings":""}
|