@devflow-tools/sdk 0.3.0 → 0.3.2
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/data/LocalDataProvider.d.ts +19 -0
- package/dist/data/LocalDataProvider.d.ts.map +1 -1
- package/dist/data/LocalDataProvider.js +89 -0
- package/dist/data/LocalDataProvider.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/IDataProvider.d.ts +18 -0
- package/dist/interfaces/IDataProvider.d.ts.map +1 -1
- package/dist/types/enforcer.d.ts +53 -0
- package/dist/types/enforcer.d.ts.map +1 -0
- package/dist/types/enforcer.js +2 -0
- package/dist/types/enforcer.js.map +1 -0
- package/package.json +2 -2
|
@@ -3,6 +3,7 @@ import type { IDataProvider, VectorResult, VectorPoint } from "../interfaces/IDa
|
|
|
3
3
|
import type { GraphNode, GraphEdge } from "../types/graph.js";
|
|
4
4
|
import type { SessionEntry } from "../types/memory.js";
|
|
5
5
|
import type { SymbolEntry, SymbolKind, FileMeta, ImportEntry } from "../types/context.js";
|
|
6
|
+
import type { AuditEntry, Rule } from "../types/enforcer.js";
|
|
6
7
|
export declare class LocalDataProvider implements IDataProvider {
|
|
7
8
|
private db;
|
|
8
9
|
private root;
|
|
@@ -31,6 +32,24 @@ export declare class LocalDataProvider implements IDataProvider {
|
|
|
31
32
|
sessionClose(sessionId: string): Promise<void>;
|
|
32
33
|
sqlQuery<T>(sql: string, params?: SQLInputValue[]): Promise<T[]>;
|
|
33
34
|
sqlExecute(sql: string, params?: SQLInputValue[]): Promise<void>;
|
|
35
|
+
recordToolCall(tool: string, args: Record<string, unknown>, durationMs: number, error?: string): Promise<void>;
|
|
36
|
+
getToolCallStats(): Promise<{
|
|
37
|
+
total: number;
|
|
38
|
+
byTool: Record<string, number>;
|
|
39
|
+
recent: Array<{
|
|
40
|
+
tool: string;
|
|
41
|
+
timestamp: number;
|
|
42
|
+
durationMs: number;
|
|
43
|
+
error?: string;
|
|
44
|
+
}>;
|
|
45
|
+
}>;
|
|
46
|
+
private _auditSecret;
|
|
47
|
+
auditGetSecret(): Promise<string>;
|
|
48
|
+
auditAppend(entry: AuditEntry): Promise<void>;
|
|
49
|
+
auditGetAll(): Promise<AuditEntry[]>;
|
|
50
|
+
ruleSave(rule: Rule): Promise<void>;
|
|
51
|
+
ruleGetAll(): Promise<Rule[]>;
|
|
52
|
+
ruleDelete(id: string): Promise<void>;
|
|
34
53
|
insertSymbols(_symbols: SymbolEntry[]): Promise<void>;
|
|
35
54
|
insertFiles(_files: FileMeta[]): Promise<void>;
|
|
36
55
|
insertImports(_imports: ImportEntry[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/LocalDataProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EACV,aAAa,EAAE,YAAY,EAAE,WAAW,EACzC,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"LocalDataProvider.d.ts","sourceRoot":"","sources":["../../src/data/LocalDataProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DatabaseSync } from "node:sqlite";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { mkdirSync } from "node:fs";
|
|
4
|
+
import { randomBytes } from "node:crypto";
|
|
4
5
|
export class LocalDataProvider {
|
|
5
6
|
db;
|
|
6
7
|
root;
|
|
@@ -35,6 +36,27 @@ export class LocalDataProvider {
|
|
|
35
36
|
CREATE TABLE IF NOT EXISTS devflow_knowledge_entries (
|
|
36
37
|
id TEXT PRIMARY KEY, source TEXT, title TEXT, content TEXT
|
|
37
38
|
);
|
|
39
|
+
CREATE TABLE IF NOT EXISTS devflow_tool_calls (
|
|
40
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
41
|
+
tool TEXT NOT NULL,
|
|
42
|
+
args TEXT,
|
|
43
|
+
timestamp INTEGER NOT NULL,
|
|
44
|
+
duration_ms INTEGER NOT NULL,
|
|
45
|
+
error TEXT
|
|
46
|
+
);
|
|
47
|
+
CREATE TABLE IF NOT EXISTS devflow_rules (
|
|
48
|
+
id TEXT PRIMARY KEY, name TEXT NOT NULL, level TEXT NOT NULL DEFAULT 'project',
|
|
49
|
+
condition_json TEXT NOT NULL, action TEXT NOT NULL DEFAULT 'warn',
|
|
50
|
+
message TEXT NOT NULL, enabled INTEGER NOT NULL DEFAULT 1,
|
|
51
|
+
created_at INTEGER NOT NULL
|
|
52
|
+
);
|
|
53
|
+
CREATE TABLE IF NOT EXISTS devflow_audit_chain (
|
|
54
|
+
seq INTEGER PRIMARY KEY AUTOINCREMENT, ts INTEGER NOT NULL,
|
|
55
|
+
tool TEXT NOT NULL, args_hash TEXT NOT NULL,
|
|
56
|
+
decision TEXT NOT NULL, rule_id TEXT,
|
|
57
|
+
session_id TEXT NOT NULL, prev_hash TEXT NOT NULL,
|
|
58
|
+
signature TEXT NOT NULL
|
|
59
|
+
);
|
|
38
60
|
`);
|
|
39
61
|
}
|
|
40
62
|
close() {
|
|
@@ -111,6 +133,73 @@ export class LocalDataProvider {
|
|
|
111
133
|
const stmt = this.db.prepare(sql);
|
|
112
134
|
params ? stmt.run(...params) : stmt.run();
|
|
113
135
|
}
|
|
136
|
+
// --- Tool call telemetry (Layer 4: local mode) ---
|
|
137
|
+
async recordToolCall(tool, args, durationMs, error) {
|
|
138
|
+
this.db.prepare("INSERT INTO devflow_tool_calls (tool, args, timestamp, duration_ms, error) VALUES (?, ?, ?, ?, ?)").run(tool, JSON.stringify(args), Date.now(), durationMs, error ?? null);
|
|
139
|
+
}
|
|
140
|
+
async getToolCallStats() {
|
|
141
|
+
const total = this.db.prepare("SELECT COUNT(*) as c FROM devflow_tool_calls").get().c;
|
|
142
|
+
const byToolRows = this.db.prepare("SELECT tool, COUNT(*) as c FROM devflow_tool_calls GROUP BY tool").all();
|
|
143
|
+
const byTool = {};
|
|
144
|
+
for (const r of byToolRows)
|
|
145
|
+
byTool[r.tool] = r.c;
|
|
146
|
+
const recent = this.db.prepare("SELECT tool, timestamp, duration_ms, error FROM devflow_tool_calls ORDER BY timestamp DESC LIMIT 20").all();
|
|
147
|
+
return {
|
|
148
|
+
total,
|
|
149
|
+
byTool,
|
|
150
|
+
recent: recent.map((r) => ({ tool: r.tool, timestamp: r.timestamp, durationMs: r.duration_ms, ...(r.error ? { error: r.error } : {}) })),
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
// --- Audit chain ---
|
|
154
|
+
_auditSecret = null;
|
|
155
|
+
async auditGetSecret() {
|
|
156
|
+
if (this._auditSecret)
|
|
157
|
+
return this._auditSecret;
|
|
158
|
+
const row = this.db.prepare("SELECT value FROM devflow_kv WHERE key = ?").get("audit_secret");
|
|
159
|
+
if (row) {
|
|
160
|
+
this._auditSecret = row.value;
|
|
161
|
+
return this._auditSecret;
|
|
162
|
+
}
|
|
163
|
+
const secret = randomBytes(32).toString("hex");
|
|
164
|
+
this.db.prepare("INSERT OR REPLACE INTO devflow_kv (key, value) VALUES ('audit_secret', ?)").run(secret);
|
|
165
|
+
this._auditSecret = secret;
|
|
166
|
+
return secret;
|
|
167
|
+
}
|
|
168
|
+
async auditAppend(entry) {
|
|
169
|
+
this.db.prepare("INSERT INTO devflow_audit_chain (ts, tool, args_hash, decision, rule_id, session_id, prev_hash, signature) VALUES (?, ?, ?, ?, ?, ?, ?, ?)").run(entry.ts, entry.tool, entry.argsHash, entry.decision, entry.ruleId, entry.sessionId, entry.prevHash, entry.signature);
|
|
170
|
+
}
|
|
171
|
+
async auditGetAll() {
|
|
172
|
+
const rows = this.db.prepare("SELECT seq, ts, tool, args_hash, decision, rule_id, session_id, prev_hash, signature FROM devflow_audit_chain ORDER BY seq").all();
|
|
173
|
+
return rows.map((r) => ({
|
|
174
|
+
seq: r.seq,
|
|
175
|
+
ts: r.ts,
|
|
176
|
+
tool: r.tool,
|
|
177
|
+
argsHash: r.args_hash,
|
|
178
|
+
decision: r.decision,
|
|
179
|
+
ruleId: r.rule_id,
|
|
180
|
+
sessionId: r.session_id,
|
|
181
|
+
prevHash: r.prev_hash,
|
|
182
|
+
signature: r.signature,
|
|
183
|
+
}));
|
|
184
|
+
}
|
|
185
|
+
// --- Rules ---
|
|
186
|
+
async ruleSave(rule) {
|
|
187
|
+
this.db.prepare("INSERT OR REPLACE INTO devflow_rules (id, name, level, condition_json, action, message, enabled, created_at) VALUES (?, ?, ?, ?, ?, ?, 1, ?)").run(rule.id, rule.name, rule.level, JSON.stringify(rule.condition), rule.action, rule.message, Date.now());
|
|
188
|
+
}
|
|
189
|
+
async ruleGetAll() {
|
|
190
|
+
const rows = this.db.prepare("SELECT * FROM devflow_rules WHERE enabled = 1").all();
|
|
191
|
+
return rows.map((r) => ({
|
|
192
|
+
id: r.id,
|
|
193
|
+
name: r.name,
|
|
194
|
+
level: r.level,
|
|
195
|
+
condition: JSON.parse(r.condition_json),
|
|
196
|
+
action: r.action,
|
|
197
|
+
message: r.message,
|
|
198
|
+
}));
|
|
199
|
+
}
|
|
200
|
+
async ruleDelete(id) {
|
|
201
|
+
this.db.prepare("DELETE FROM devflow_rules WHERE id = ?").run(id);
|
|
202
|
+
}
|
|
114
203
|
// --- File index (stubs — CodeGraph owns this now) ---
|
|
115
204
|
async insertSymbols(_symbols) { }
|
|
116
205
|
async insertFiles(_files) { }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LocalDataProvider.js","sourceRoot":"","sources":["../../src/data/LocalDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAQpC,MAAM,OAAO,iBAAiB;IACpB,EAAE,CAAe;IACjB,IAAI,CAAS;IAErB,YAAY,IAAY;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAC9C,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,EAAE,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"LocalDataProvider.js","sourceRoot":"","sources":["../../src/data/LocalDataProvider.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -2,6 +2,7 @@ import type { GraphNode, GraphEdge } from "../types/graph.js";
|
|
|
2
2
|
import type { SessionEntry } from "../types/memory.js";
|
|
3
3
|
import type { SymbolEntry, SymbolKind, FileMeta, ImportEntry } from "../types/context.js";
|
|
4
4
|
import type { SQLInputValue } from "node:sqlite";
|
|
5
|
+
import type { AuditEntry, Rule } from "../types/enforcer.js";
|
|
5
6
|
export interface VectorResult {
|
|
6
7
|
id: string;
|
|
7
8
|
score: number;
|
|
@@ -43,5 +44,22 @@ export interface IDataProvider {
|
|
|
43
44
|
getSymbolsInFile(file: string): Promise<SymbolEntry[]>;
|
|
44
45
|
getFileCount(): Promise<number>;
|
|
45
46
|
getSymbolCount(): Promise<number>;
|
|
47
|
+
recordToolCall(tool: string, args: Record<string, unknown>, durationMs: number, error?: string): Promise<void>;
|
|
48
|
+
getToolCallStats(): Promise<{
|
|
49
|
+
total: number;
|
|
50
|
+
byTool: Record<string, number>;
|
|
51
|
+
recent: Array<{
|
|
52
|
+
tool: string;
|
|
53
|
+
timestamp: number;
|
|
54
|
+
durationMs: number;
|
|
55
|
+
error?: string;
|
|
56
|
+
}>;
|
|
57
|
+
}>;
|
|
58
|
+
auditAppend(entry: AuditEntry): Promise<void>;
|
|
59
|
+
auditGetAll(): Promise<AuditEntry[]>;
|
|
60
|
+
auditGetSecret(): Promise<string>;
|
|
61
|
+
ruleSave(rule: Rule): Promise<void>;
|
|
62
|
+
ruleGetAll(): Promise<Rule[]>;
|
|
63
|
+
ruleDelete(id: string): Promise<void>;
|
|
46
64
|
}
|
|
47
65
|
//# sourceMappingURL=IDataProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IDataProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/IDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"IDataProvider.d.ts","sourceRoot":"","sources":["../../src/interfaces/IDataProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface RuleCondition {
|
|
2
|
+
tools?: string[];
|
|
3
|
+
paramPatterns?: Record<string, string>;
|
|
4
|
+
requireFields?: string[];
|
|
5
|
+
forbidPatterns?: string[];
|
|
6
|
+
maxCallsPerMinute?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface Rule {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
level: "constitutional" | "project" | "session";
|
|
12
|
+
condition: RuleCondition;
|
|
13
|
+
action: "deny" | "warn" | "allow";
|
|
14
|
+
message: string;
|
|
15
|
+
}
|
|
16
|
+
export type Decision = "allow" | "deny" | "warn";
|
|
17
|
+
export interface MCPContext {
|
|
18
|
+
toolName: string;
|
|
19
|
+
args: Record<string, unknown>;
|
|
20
|
+
sessionId?: string;
|
|
21
|
+
tokenPayload?: {
|
|
22
|
+
sub: string;
|
|
23
|
+
project: string;
|
|
24
|
+
iat: number;
|
|
25
|
+
exp: number;
|
|
26
|
+
scope: string[];
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface EnforceResult {
|
|
30
|
+
allowed: boolean;
|
|
31
|
+
rule?: Rule;
|
|
32
|
+
message?: string;
|
|
33
|
+
warning?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface AuditEntry {
|
|
36
|
+
seq: number;
|
|
37
|
+
ts: number;
|
|
38
|
+
tool: string;
|
|
39
|
+
argsHash: string;
|
|
40
|
+
decision: Decision;
|
|
41
|
+
ruleId: string | null;
|
|
42
|
+
sessionId: string;
|
|
43
|
+
prevHash: string;
|
|
44
|
+
signature: string;
|
|
45
|
+
}
|
|
46
|
+
export interface Receipt {
|
|
47
|
+
tool: string;
|
|
48
|
+
ts: number;
|
|
49
|
+
exp: number;
|
|
50
|
+
queryHash: string;
|
|
51
|
+
hmac: string;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=enforcer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforcer.d.ts","sourceRoot":"","sources":["../../src/types/enforcer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,SAAS,EAAE,aAAa,CAAC;IACzB,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enforcer.js","sourceRoot":"","sources":["../../src/types/enforcer.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/sdk",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -26,5 +26,5 @@
|
|
|
26
26
|
"files": [
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "8bd4fe5d195782d3e5a5357fc9bff5998561c956"
|
|
30
30
|
}
|