@hasna/todos 0.9.83 → 0.10.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/cli/index.js +1035 -59
- package/dist/db/agent-metrics.d.ts +34 -0
- package/dist/db/agent-metrics.d.ts.map +1 -0
- package/dist/db/agents.d.ts +16 -0
- package/dist/db/agents.d.ts.map +1 -1
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/kg.d.ts +70 -0
- package/dist/db/kg.d.ts.map +1 -0
- package/dist/db/patrol.d.ts +35 -0
- package/dist/db/patrol.d.ts.map +1 -0
- package/dist/db/task-relationships.d.ts +36 -0
- package/dist/db/task-relationships.d.ts.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +652 -22
- package/dist/lib/config.d.ts +2 -7
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/mcp/index.js +1033 -56
- package/dist/server/index.js +101 -35
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
export interface AgentMetrics {
|
|
3
|
+
agent_id: string;
|
|
4
|
+
agent_name: string;
|
|
5
|
+
tasks_completed: number;
|
|
6
|
+
tasks_failed: number;
|
|
7
|
+
tasks_in_progress: number;
|
|
8
|
+
completion_rate: number;
|
|
9
|
+
avg_completion_minutes: number | null;
|
|
10
|
+
avg_confidence: number | null;
|
|
11
|
+
review_score_avg: number | null;
|
|
12
|
+
composite_score: number;
|
|
13
|
+
}
|
|
14
|
+
export interface LeaderboardEntry extends AgentMetrics {
|
|
15
|
+
rank: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Compute metrics for a single agent from task data.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getAgentMetrics(agentId: string, opts?: {
|
|
21
|
+
project_id?: string;
|
|
22
|
+
}, db?: Database): AgentMetrics | null;
|
|
23
|
+
/**
|
|
24
|
+
* Get leaderboard: all agents ranked by composite score.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getLeaderboard(opts?: {
|
|
27
|
+
project_id?: string;
|
|
28
|
+
limit?: number;
|
|
29
|
+
}, db?: Database): LeaderboardEntry[];
|
|
30
|
+
/**
|
|
31
|
+
* Score a task completion (store review score in metadata).
|
|
32
|
+
*/
|
|
33
|
+
export declare function scoreTask(taskId: string, score: number, reviewerId?: string, db?: Database): void;
|
|
34
|
+
//# sourceMappingURL=agent-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-metrics.d.ts","sourceRoot":"","sources":["../../src/db/agent-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAgGnH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CAmBhH;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAajG"}
|
package/dist/db/agents.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export declare function updateAgent(id: string, input: {
|
|
|
28
28
|
title?: string;
|
|
29
29
|
level?: string;
|
|
30
30
|
permissions?: string[];
|
|
31
|
+
capabilities?: string[];
|
|
31
32
|
reports_to?: string | null;
|
|
32
33
|
org_id?: string | null;
|
|
33
34
|
metadata?: Record<string, unknown>;
|
|
@@ -41,4 +42,19 @@ export interface OrgNode {
|
|
|
41
42
|
agent: Agent;
|
|
42
43
|
reports: OrgNode[];
|
|
43
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Match agent capabilities against required capabilities (task tags).
|
|
47
|
+
* Returns a score from 0.0 (no match) to 1.0 (perfect match).
|
|
48
|
+
*/
|
|
49
|
+
export declare function matchCapabilities(agentCapabilities: string[], requiredCapabilities: string[]): number;
|
|
50
|
+
/**
|
|
51
|
+
* Get agents that match the given capabilities, sorted by match score.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getCapableAgents(capabilities: string[], opts?: {
|
|
54
|
+
min_score?: number;
|
|
55
|
+
limit?: number;
|
|
56
|
+
}, db?: Database): {
|
|
57
|
+
agent: Agent;
|
|
58
|
+
score: number;
|
|
59
|
+
}[];
|
|
44
60
|
//# sourceMappingURL=agents.d.ts.map
|
package/dist/db/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAY,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMjG;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAOhF;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/db/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAY,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAMjG;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,GAAG,MAAM,EAAE,CAOhF;AAeD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,kBAAkB,CAgElG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,GAAG,kBAAkB,GAAG,MAAM,IAAI,kBAAkB,CAEhG;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAIhE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI,CAKxE;AAED,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAGjD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAGnE;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EACtO,EAAE,CAAC,EAAE,QAAQ,GACZ,KAAK,CAoDP;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAG9D;AAED,sCAAsC;AACtC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,EAAE,CAGxE;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,EAAE,CAepD;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,MAAM,CAUrG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7C,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAanC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,eAAO,MAAM,mBAAmB,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/db/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAItC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAwgBtC,wBAAgB,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAkBrD;AAwRD,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,IAAI,MAAM,CAE7B;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAK9D;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAa,GAAG,MAAM,CAG3D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAGpD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0B9F"}
|
package/dist/db/kg.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
export interface KgEdge {
|
|
3
|
+
id: string;
|
|
4
|
+
source_id: string;
|
|
5
|
+
source_type: string;
|
|
6
|
+
target_id: string;
|
|
7
|
+
target_type: string;
|
|
8
|
+
relation_type: string;
|
|
9
|
+
weight: number;
|
|
10
|
+
metadata: Record<string, unknown>;
|
|
11
|
+
created_at: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Sync all existing relationships into kg_edges.
|
|
15
|
+
* Idempotent — uses INSERT OR IGNORE with composite unique constraint.
|
|
16
|
+
*/
|
|
17
|
+
export declare function syncKgEdges(db?: Database): {
|
|
18
|
+
synced: number;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Get all entities related to a given entity.
|
|
22
|
+
*/
|
|
23
|
+
export declare function getRelated(entityId: string, opts?: {
|
|
24
|
+
relation_type?: string;
|
|
25
|
+
entity_type?: string;
|
|
26
|
+
direction?: "outgoing" | "incoming" | "both";
|
|
27
|
+
limit?: number;
|
|
28
|
+
}, db?: Database): KgEdge[];
|
|
29
|
+
/**
|
|
30
|
+
* Find path between two entities using recursive CTE (BFS).
|
|
31
|
+
* Returns the edges forming the shortest path, or empty if no path exists.
|
|
32
|
+
*/
|
|
33
|
+
export declare function findPath(sourceId: string, targetId: string, opts?: {
|
|
34
|
+
max_depth?: number;
|
|
35
|
+
relation_types?: string[];
|
|
36
|
+
}, db?: Database): KgEdge[][];
|
|
37
|
+
/**
|
|
38
|
+
* Get impact analysis: what entities are affected if a given entity changes.
|
|
39
|
+
* Traverses outgoing edges recursively.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getImpactAnalysis(entityId: string, opts?: {
|
|
42
|
+
max_depth?: number;
|
|
43
|
+
relation_types?: string[];
|
|
44
|
+
}, db?: Database): {
|
|
45
|
+
entity_id: string;
|
|
46
|
+
entity_type: string;
|
|
47
|
+
depth: number;
|
|
48
|
+
relation: string;
|
|
49
|
+
}[];
|
|
50
|
+
/**
|
|
51
|
+
* Get critical path: tasks that block the most downstream work.
|
|
52
|
+
* Returns tasks sorted by how many other tasks they transitively block.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getCriticalPath(opts?: {
|
|
55
|
+
project_id?: string;
|
|
56
|
+
limit?: number;
|
|
57
|
+
}, db?: Database): {
|
|
58
|
+
task_id: string;
|
|
59
|
+
blocking_count: number;
|
|
60
|
+
depth: number;
|
|
61
|
+
}[];
|
|
62
|
+
/**
|
|
63
|
+
* Add a single edge to the knowledge graph.
|
|
64
|
+
*/
|
|
65
|
+
export declare function addKgEdge(sourceId: string, sourceType: string, targetId: string, targetType: string, relationType: string, weight?: number, metadata?: Record<string, unknown>, db?: Database): KgEdge;
|
|
66
|
+
/**
|
|
67
|
+
* Remove edges matching criteria.
|
|
68
|
+
*/
|
|
69
|
+
export declare function removeKgEdges(sourceId: string, targetId: string, relationType?: string, db?: Database): number;
|
|
70
|
+
//# sourceMappingURL=kg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kg.d.ts","sourceRoot":"","sources":["../../src/db/kg.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAqBD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAoE7D;AAqBD;;GAEG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACrH,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAgCV;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EACxD,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,EAAE,CA4CZ;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,EACxD,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,CAuC/E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9C,EAAE,CAAC,EAAE,QAAQ,GACZ;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CA2D9D;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EACpC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EACpC,YAAY,EAAE,MAAM,EACpB,MAAM,SAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAUR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,YAAY,CAAC,EAAE,MAAM,EACrB,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,CAYR"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
import type { Task } from "../types/index.js";
|
|
3
|
+
export interface PatrolIssue {
|
|
4
|
+
type: "stuck" | "low_confidence" | "orphaned" | "needs_review" | "zombie_blocked";
|
|
5
|
+
task_id: string;
|
|
6
|
+
task_title: string;
|
|
7
|
+
severity: "low" | "medium" | "high" | "critical";
|
|
8
|
+
detail: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PatrolResult {
|
|
11
|
+
issues: PatrolIssue[];
|
|
12
|
+
total_issues: number;
|
|
13
|
+
scanned_at: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Patrol tasks for issues:
|
|
17
|
+
* - stuck: in_progress for longer than threshold
|
|
18
|
+
* - low_confidence: completed with confidence below threshold
|
|
19
|
+
* - orphaned: no project, no agent, not completed
|
|
20
|
+
* - needs_review: requires_approval but not approved, and completed
|
|
21
|
+
* - zombie_blocked: pending tasks whose blockers are all failed/cancelled
|
|
22
|
+
*/
|
|
23
|
+
export declare function patrolTasks(opts?: {
|
|
24
|
+
stuck_minutes?: number;
|
|
25
|
+
confidence_threshold?: number;
|
|
26
|
+
project_id?: string;
|
|
27
|
+
}, db?: Database): PatrolResult;
|
|
28
|
+
/**
|
|
29
|
+
* Get review queue: tasks that need human/agent review.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getReviewQueue(opts?: {
|
|
32
|
+
project_id?: string;
|
|
33
|
+
limit?: number;
|
|
34
|
+
}, db?: Database): Task[];
|
|
35
|
+
//# sourceMappingURL=patrol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patrol.d.ts","sourceRoot":"","sources":["../../src/db/patrol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,mBAAmB,CAAC;AAevD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,GAAG,gBAAgB,GAAG,UAAU,GAAG,cAAc,GAAG,gBAAgB,CAAC;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,CAAC,EAAE;IACL,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,EACD,EAAE,CAAC,EAAE,QAAQ,GACZ,YAAY,CAkHd;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9C,EAAE,CAAC,EAAE,QAAQ,GACZ,IAAI,EAAE,CAkBR"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Database } from "bun:sqlite";
|
|
2
|
+
export declare const RELATIONSHIP_TYPES: readonly ["related_to", "conflicts_with", "similar_to", "duplicates", "supersedes", "modifies_same_file"];
|
|
3
|
+
export type RelationshipType = (typeof RELATIONSHIP_TYPES)[number];
|
|
4
|
+
export interface TaskRelationship {
|
|
5
|
+
id: string;
|
|
6
|
+
source_task_id: string;
|
|
7
|
+
target_task_id: string;
|
|
8
|
+
relationship_type: RelationshipType;
|
|
9
|
+
metadata: Record<string, unknown>;
|
|
10
|
+
created_by: string | null;
|
|
11
|
+
created_at: string;
|
|
12
|
+
}
|
|
13
|
+
export interface AddTaskRelationshipInput {
|
|
14
|
+
source_task_id: string;
|
|
15
|
+
target_task_id: string;
|
|
16
|
+
relationship_type: RelationshipType;
|
|
17
|
+
metadata?: Record<string, unknown>;
|
|
18
|
+
created_by?: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function addTaskRelationship(input: AddTaskRelationshipInput, db?: Database): TaskRelationship;
|
|
21
|
+
export declare function getTaskRelationship(id: string, db?: Database): TaskRelationship | null;
|
|
22
|
+
export declare function removeTaskRelationship(id: string, db?: Database): boolean;
|
|
23
|
+
export declare function removeTaskRelationshipByPair(sourceTaskId: string, targetTaskId: string, relationshipType: RelationshipType, db?: Database): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Get all relationships for a task (both as source and target).
|
|
26
|
+
*/
|
|
27
|
+
export declare function getTaskRelationships(taskId: string, relationshipType?: RelationshipType, db?: Database): TaskRelationship[];
|
|
28
|
+
/**
|
|
29
|
+
* Find tasks related to a given task (returns the "other" task IDs).
|
|
30
|
+
*/
|
|
31
|
+
export declare function findRelatedTaskIds(taskId: string, relationshipType?: RelationshipType, db?: Database): string[];
|
|
32
|
+
/**
|
|
33
|
+
* Auto-detect tasks that modify the same file and create modifies_same_file relationships.
|
|
34
|
+
*/
|
|
35
|
+
export declare function autoDetectFileRelationships(taskId: string, db?: Database): TaskRelationship[];
|
|
36
|
+
//# sourceMappingURL=task-relationships.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-relationships.d.ts","sourceRoot":"","sources":["../../src/db/task-relationships.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,eAAO,MAAM,kBAAkB,2GAOrB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAYD,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,CAqCpG;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,GAAG,IAAI,CAItF;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAGzE;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,EAAE,CAAC,EAAE,QAAQ,GACZ,OAAO,CAeT;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,EAAE,CAAC,EAAE,QAAQ,GACZ,gBAAgB,EAAE,CAUpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,EAAE,CAAC,EAAE,QAAQ,GACZ,MAAM,EAAE,CAQV;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,gBAAgB,EAAE,CA6B7F"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type { TaskGraphNode, TaskGraph, BulkCreateTaskInput, ActiveWorkItem, Sta
|
|
|
6
6
|
export { createProject, getProject, getProjectByPath, getProjectWithSources, listProjects, updateProject, deleteProject, ensureProject, nextTaskShortId, slugify, addProjectSource, removeProjectSource, listProjectSources, } from "./db/projects.js";
|
|
7
7
|
export { createPlan, getPlan, listPlans, updatePlan, deletePlan, } from "./db/plans.js";
|
|
8
8
|
export { addComment, getComment, listComments, deleteComment, logProgress, } from "./db/comments.js";
|
|
9
|
-
export { registerAgent, isAgentConflict, getAgent, getAgentByName, listAgents, updateAgent, updateAgentActivity, deleteAgent, getDirectReports, getOrgChart, } from "./db/agents.js";
|
|
9
|
+
export { registerAgent, isAgentConflict, getAgent, getAgentByName, listAgents, updateAgent, updateAgentActivity, deleteAgent, getDirectReports, getOrgChart, matchCapabilities, getCapableAgents, } from "./db/agents.js";
|
|
10
10
|
export type { OrgNode } from "./db/agents.js";
|
|
11
11
|
export { createTaskList, getTaskList, getTaskListBySlug, listTaskLists, updateTaskList, deleteTaskList, ensureTaskList, } from "./db/task-lists.js";
|
|
12
12
|
export { createSession, getSession, listSessions, updateSessionActivity, deleteSession, } from "./db/sessions.js";
|
|
@@ -21,6 +21,15 @@ export type { TaskFile, AddTaskFileInput } from "./db/task-files.js";
|
|
|
21
21
|
export { acquireLock, releaseLock, checkLock, cleanExpiredLocks } from "./db/locks.js";
|
|
22
22
|
export type { ResourceLock } from "./db/locks.js";
|
|
23
23
|
export { createOrg, getOrg, getOrgByName, listOrgs, updateOrg, deleteOrg } from "./db/orgs.js";
|
|
24
|
+
export { addTaskRelationship, getTaskRelationship, removeTaskRelationship, removeTaskRelationshipByPair, getTaskRelationships, findRelatedTaskIds, autoDetectFileRelationships, } from "./db/task-relationships.js";
|
|
25
|
+
export { RELATIONSHIP_TYPES } from "./db/task-relationships.js";
|
|
26
|
+
export type { TaskRelationship, AddTaskRelationshipInput, RelationshipType } from "./db/task-relationships.js";
|
|
27
|
+
export { syncKgEdges, getRelated, findPath, getImpactAnalysis, getCriticalPath, addKgEdge, removeKgEdges } from "./db/kg.js";
|
|
28
|
+
export type { KgEdge } from "./db/kg.js";
|
|
29
|
+
export { patrolTasks, getReviewQueue } from "./db/patrol.js";
|
|
30
|
+
export type { PatrolIssue, PatrolResult } from "./db/patrol.js";
|
|
31
|
+
export { getAgentMetrics, getLeaderboard, scoreTask } from "./db/agent-metrics.js";
|
|
32
|
+
export type { AgentMetrics, LeaderboardEntry } from "./db/agent-metrics.js";
|
|
24
33
|
export { searchTasks } from "./lib/search.js";
|
|
25
34
|
export type { SearchOptions } from "./lib/search.js";
|
|
26
35
|
export { defaultSyncAgents, syncWithAgent, syncWithAgents } from "./lib/sync.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG1G,OAAO,EACL,UAAU,EACV,OAAO,EACP,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,QAAQ,EACR,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGzI,OAAO,EACL,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|