sdlc-agent-4-enterprise-server 1.30.0 → 1.30.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 +2 -1
- package/dist/engine/enrichment/CodeEnrichmentTaskCreator.js +3 -2
- package/dist/engine/enrichment/CodeEnrichmentTaskCreator.js.map +1 -1
- package/dist/engine/graph/graph-sync-service.d.ts +1 -1
- package/dist/engine/graph/graph-sync-service.js +6 -6
- package/dist/engine/graph/graph-sync-service.js.map +1 -1
- package/dist/modules/kb-graph/service/constants.js +17 -0
- package/dist/modules/kb-graph/service/constants.js.map +1 -1
- package/dist/modules/memory/migrations/003-pending-tasks.js +7 -0
- package/dist/modules/memory/migrations/003-pending-tasks.js.map +1 -1
- package/dist/modules/memory/task-queue/PendingTaskRepository.js +5 -1
- package/dist/modules/memory/task-queue/PendingTaskRepository.js.map +1 -1
- package/dist/modules/memory/task-queue/TaskWorker.js +11 -6
- package/dist/modules/memory/task-queue/TaskWorker.js.map +1 -1
- package/dist/modules/memory/task-queue/TaskWorkerConfig.js +1 -1
- package/dist/modules/memory/task-queue/models.d.ts +1 -3
- package/dist/modules/memory/task-queue/models.js +1 -3
- package/dist/modules/memory/task-queue/models.js.map +1 -1
- package/dist/server/routes/enrichment-status-routes.js +11 -6
- package/dist/server/routes/enrichment-status-routes.js.map +1 -1
- package/dist/viewer/admin/index.html +1 -1
- package/package.json +1 -1
- package/scripts/dedup-tasks.ts +36 -0
- package/src/engine/enrichment/CodeEnrichmentTaskCreator.ts +4 -3
- package/src/engine/graph/graph-sync-service.ts +6 -6
- package/src/modules/kb-graph/service/constants.ts +17 -0
- package/src/modules/memory/migrations/003-pending-tasks.ts +2 -0
- package/src/modules/memory/task-queue/PendingTaskRepository.ts +8 -1
- package/src/modules/memory/task-queue/TaskWorker.ts +11 -6
- package/src/modules/memory/task-queue/TaskWorkerConfig.ts +1 -1
- package/src/modules/memory/task-queue/models.ts +1 -3
- package/src/server/routes/enrichment-status-routes.ts +11 -6
- package/src/viewer/admin/index.html +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<img src="https://img.shields.io/badge/version-1.30.
|
|
9
|
+
<img src="https://img.shields.io/badge/version-1.30.1-blue?style=for-the-badge" alt="Version">
|
|
10
10
|
<img src="https://img.shields.io/badge/tools-66+-teal?style=for-the-badge" alt="Tools">
|
|
11
11
|
<img src="https://img.shields.io/badge/node-%3E%3D18-green?style=for-the-badge" alt="Node">
|
|
12
12
|
</p>
|
|
@@ -233,6 +233,7 @@ The embedding model is expected at `.code-intel/models/model.onnx`. Download it:
|
|
|
233
233
|
|
|
234
234
|
| Version | Date | Ticket | Changes |
|
|
235
235
|
|---------|------|--------|---------|
|
|
236
|
+
| 1.30.1 | 2026-08-19 | SA4E-175/176/178/179 | Bug fixes: KB offline resilience, auth gate signaling, orphan task cleanup, CODE_ENRICHMENT rename. |
|
|
236
237
|
| 1.26.0 | 2026-08-14 | SA4E-155 | On-demand KB entry enrichment: priority queue (HIGH/NORMAL column), configurable polling timeout (15s default), 3-tier fallback, COALESCE first-write-wins, ConfigService (Admin UI > ENV > Default), PendingTaskRepository priority-aware claimBatch(). |
|
|
237
238
|
| 1.19.1 | 2026-07-31 | SA4E-81 | Version alignment with extension release. No backend code changes in this release. |
|
|
238
239
|
| 1.18.0 | 2026-07-31 | SA4E-79 | Client-Side LLM Knowledge Enrichment hardening: `handleIngestFile`/`handleIngest` always mark `pending` + enqueue TAG_ENRICHMENT (NEW-01/NEW-06/NEW-10), TaskWorker tags/structured_map conditional updates as race guards (NEW-03), USER-scoped entries enrichable without projectId (NEW-07), pending section LIMIT 3→10 (NEW-09). FTS fix: `knowledge_fts` auto-rebuild at startup when empty — restores `mem_search` for pre-existing entries. |
|
|
@@ -187,8 +187,9 @@ export class CodeEnrichmentTaskCreator {
|
|
|
187
187
|
projectId, filePath,
|
|
188
188
|
workspaceType: isPegaKind(kind) ? 'pega' : 'standard',
|
|
189
189
|
});
|
|
190
|
-
|
|
191
|
-
|
|
190
|
+
const now = new Date().toISOString();
|
|
191
|
+
await this.adapter.runAsync(`INSERT INTO pending_tasks (task_type, entry_id, status, payload, max_retries, project_id, created_at)
|
|
192
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`, [TaskType.CODE_ENRICHMENT, symbolId, TaskStatus.PENDING, payload, 3, projectId, now]);
|
|
192
193
|
}
|
|
193
194
|
}
|
|
194
195
|
//# sourceMappingURL=CodeEnrichmentTaskCreator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEnrichmentTaskCreator.js","sourceRoot":"","sources":["../../../src/engine/enrichment/CodeEnrichmentTaskCreator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"CodeEnrichmentTaskCreator.js","sourceRoot":"","sources":["../../../src/engine/enrichment/CodeEnrichmentTaskCreator.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export declare class GraphSyncService {
|
|
|
18
18
|
/** Re-project a tenant's code symbols into graph_nodes. SA4E-53: async. */
|
|
19
19
|
syncProjectSymbols(projectId: string): Promise<void>;
|
|
20
20
|
/**
|
|
21
|
-
* SA4E-99: Queue
|
|
21
|
+
* SA4E-99: Queue CODE_ENRICHMENT tasks for symbols that have body text.
|
|
22
22
|
* Reads body from body_embeddings, creates pending_tasks for LLM summarization.
|
|
23
23
|
* Runs async — does NOT block code indexing.
|
|
24
24
|
*/
|
|
@@ -36,8 +36,8 @@ export class GraphSyncService {
|
|
|
36
36
|
this.log.info(`[graph-sync] Synced ${symbols.length} code nodes for project ${projectId}`);
|
|
37
37
|
// SA4E-91: Extract and insert code edges (IMPORTS, CALLS, EXTENDS)
|
|
38
38
|
await this.syncCodeEdges(projectId);
|
|
39
|
-
// SA4E-99: Queue
|
|
40
|
-
this.queueCodeSummaryTasks(projectId, symbols).catch(err => this.log.warn({ err }, '[graph-sync] Code
|
|
39
|
+
// SA4E-99: Queue CODE_ENRICHMENT tasks async (fire-and-forget, non-blocking)
|
|
40
|
+
this.queueCodeSummaryTasks(projectId, symbols).catch(err => this.log.warn({ err }, '[graph-sync] Code enrichment queue failed (non-fatal)'));
|
|
41
41
|
}
|
|
42
42
|
catch (err) {
|
|
43
43
|
// Non-fatal: visualization projection must never fail the index run.
|
|
@@ -45,7 +45,7 @@ export class GraphSyncService {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
* SA4E-99: Queue
|
|
48
|
+
* SA4E-99: Queue CODE_ENRICHMENT tasks for symbols that have body text.
|
|
49
49
|
* Reads body from body_embeddings, creates pending_tasks for LLM summarization.
|
|
50
50
|
* Runs async — does NOT block code indexing.
|
|
51
51
|
*/
|
|
@@ -73,11 +73,11 @@ export class GraphSyncService {
|
|
|
73
73
|
file_path: s.relative_path || '',
|
|
74
74
|
};
|
|
75
75
|
// Insert into pending_tasks (use admin adapter — same DB as graph_nodes)
|
|
76
|
-
// Temporarily disable FK for
|
|
76
|
+
// Temporarily disable FK for CODE_ENRICHMENT (entry_id=symbolId, not a knowledge_entries ref)
|
|
77
77
|
try {
|
|
78
78
|
await this.adminAdapter.runAsync('PRAGMA foreign_keys = OFF', []);
|
|
79
79
|
await this.adminAdapter.runAsync(`INSERT INTO pending_tasks (task_type, entry_id, payload, status, retry_count, max_retries, created_at)
|
|
80
|
-
VALUES ('
|
|
80
|
+
VALUES ('CODE_ENRICHMENT', 0, ?, 'PENDING', 0, 2, ?)`, [JSON.stringify(payload), now]);
|
|
81
81
|
await this.adminAdapter.runAsync('PRAGMA foreign_keys = ON', []);
|
|
82
82
|
queued++;
|
|
83
83
|
}
|
|
@@ -89,7 +89,7 @@ export class GraphSyncService {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
if (queued > 0) {
|
|
92
|
-
this.log.info(`[graph-sync] Queued ${queued}
|
|
92
|
+
this.log.info(`[graph-sync] Queued ${queued} CODE_ENRICHMENT tasks for project ${projectId}`);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
/** SA4E-91: Extract code relationships into graph_edges (non-fatal). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph-sync-service.js","sourceRoot":"","sources":["../../../src/engine/graph/graph-sync-service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAUrE,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAE/F,MAAM,OAAO,gBAAgB;IAKR;IACA;IACA;IANF,YAAY,CAAgB;IAC5B,YAAY,CAAgB;IAE7C,YACmB,YAA6B,EAC7B,YAA6B,EAC7B,GAAW;QAFX,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,QAAG,GAAH,GAAG,CAAQ;QAE5B,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;QAChE,IAAI,YAAY,CAAC,SAAS,EAAE,KAAK,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,cAAc;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,MAAM,2BAA2B,SAAS,EAAE,CAAC,CAAC;YAC3F,mEAAmE;YACnE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACpC,
|
|
1
|
+
{"version":3,"file":"graph-sync-service.js","sourceRoot":"","sources":["../../../src/engine/graph/graph-sync-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,5 +19,22 @@ export const KIND_TO_TYPE = {
|
|
|
19
19
|
enum: 'ENUM',
|
|
20
20
|
constant: 'CONSTANT',
|
|
21
21
|
variable: 'VARIABLE',
|
|
22
|
+
// Pega rule kinds → meaningful graph types
|
|
23
|
+
pega_activity: 'ACTIVITY',
|
|
24
|
+
pega_flow: 'FLOW',
|
|
25
|
+
pega_flow_action: 'FLOW',
|
|
26
|
+
pega_data_transform: 'DATA_TRANSFORM',
|
|
27
|
+
pega_declare_expression: 'DECLARE_EXPRESSION',
|
|
28
|
+
pega_report: 'REPORT',
|
|
29
|
+
pega_section: 'SECTION',
|
|
30
|
+
pega_harness: 'HARNESS',
|
|
31
|
+
pega_property: 'PROPERTY',
|
|
32
|
+
pega_class: 'PEGA_SCHEMA',
|
|
33
|
+
pega_decision_table: 'DECISION',
|
|
34
|
+
pega_decision_tree: 'DECISION',
|
|
35
|
+
pega_map_value: 'DECISION',
|
|
36
|
+
pega_when: 'DECISION',
|
|
37
|
+
pega_validate: 'VALIDATE',
|
|
38
|
+
pega_unknown: 'PEGA_RULE',
|
|
22
39
|
};
|
|
23
40
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/modules/kb-graph/service/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/modules/kb-graph/service/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,SAAS,GAA2B;IAC/C,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;IACxC,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IAChD,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,2CAA2C;IAC3C,aAAa,EAAE,UAAU;IACzB,SAAS,EAAE,MAAM;IACjB,gBAAgB,EAAE,MAAM;IACxB,mBAAmB,EAAE,gBAAgB;IACrC,uBAAuB,EAAE,oBAAoB;IAC7C,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,SAAS;IACvB,aAAa,EAAE,UAAU;IACzB,UAAU,EAAE,aAAa;IACzB,mBAAmB,EAAE,UAAU;IAC/B,kBAAkB,EAAE,UAAU;IAC9B,cAAc,EAAE,UAAU;IAC1B,SAAS,EAAE,UAAU;IACrB,aAAa,EAAE,UAAU;IACzB,YAAY,EAAE,WAAW;CAC1B,CAAC"}
|
|
@@ -45,5 +45,12 @@ export async function migrate003PendingTasks(db) {
|
|
|
45
45
|
catch (err) {
|
|
46
46
|
console.debug('[migration] DDL statement failed (expected if already applied):', err.message);
|
|
47
47
|
}
|
|
48
|
+
// Rename legacy CODE_SUMMARY → CODE_ENRICHMENT (idempotent)
|
|
49
|
+
try {
|
|
50
|
+
await db.execAsync(`UPDATE pending_tasks SET task_type = 'CODE_ENRICHMENT' WHERE task_type = 'CODE_SUMMARY'`);
|
|
51
|
+
}
|
|
52
|
+
catch (err) {
|
|
53
|
+
console.debug('[migration] CODE_SUMMARY rename failed (non-fatal):', err.message);
|
|
54
|
+
}
|
|
48
55
|
}
|
|
49
56
|
//# sourceMappingURL=003-pending-tasks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"003-pending-tasks.js","sourceRoot":"","sources":["../../../../src/modules/memory/migrations/003-pending-tasks.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAmB;IAC9D,qCAAqC;IACrC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC1B,wEAAwE,EACxE,CAAC,eAAe,CAAC,CAClB,CAAC;QACF,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wEAAwE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAChH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC5B,4EAA4E,CAC7E,CAAC;YACF,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;IAC7H,CAAC;IAED,IAAI,MAAM;QAAE,OAAO;IAEnB,MAAM,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;GAelB,CAAC,CAAC;IACH,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,CAAC,kGAAkG,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACzP,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,CAAC,kFAAkF,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"003-pending-tasks.js","sourceRoot":"","sources":["../../../../src/modules/memory/migrations/003-pending-tasks.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,EAAmB;IAC9D,qCAAqC;IACrC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC1B,wEAAwE,EACxE,CAAC,eAAe,CAAC,CAClB,CAAC;QACF,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wEAAwE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAChH,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC5B,4EAA4E,CAC7E,CAAC;YACF,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;IAC7H,CAAC;IAED,IAAI,MAAM;QAAE,OAAO;IAEnB,MAAM,EAAE,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;GAelB,CAAC,CAAC;IACH,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,CAAC,kGAAkG,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACzP,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,CAAC,kFAAkF,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;IACzO,4DAA4D;IAC5D,IAAI,CAAC;QAAC,MAAM,EAAE,CAAC,SAAS,CAAC,yFAAyF,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;IAAC,CAAC;AACtO,CAAC"}
|
|
@@ -13,6 +13,10 @@ export class PendingTaskRepository {
|
|
|
13
13
|
this.dialect = new DialectHelper(db.getEngine());
|
|
14
14
|
}
|
|
15
15
|
async create(input) {
|
|
16
|
+
// Dedup: skip if a PENDING/PROCESSING task already exists for same entry + type
|
|
17
|
+
const existing = await this.db.getAsync(`SELECT id FROM pending_tasks WHERE entry_id = ? AND task_type = ? AND status IN (?, ?) LIMIT 1`, [input.entry_id, input.task_type, TaskStatus.PENDING, TaskStatus.PROCESSING]);
|
|
18
|
+
if (existing)
|
|
19
|
+
return existing.id;
|
|
16
20
|
const result = await this.db.runAsync(`INSERT INTO pending_tasks (task_type, entry_id, status, payload, max_retries, project_id, created_at)
|
|
17
21
|
VALUES (?, ?, ?, ?, ?, ?, ${this.dialect.now()})`, [input.task_type, input.entry_id, TaskStatus.PENDING,
|
|
18
22
|
JSON.stringify(input.payload), input.max_retries ?? 3, input.project_id ?? null]);
|
|
@@ -154,7 +158,7 @@ export class PendingTaskRepository {
|
|
|
154
158
|
// KB tasks: entry_id references knowledge_entries
|
|
155
159
|
const kbResult = await this.db.runAsync(`DELETE FROM pending_tasks
|
|
156
160
|
WHERE status IN (?, ?, ?)
|
|
157
|
-
AND task_type
|
|
161
|
+
AND task_type NOT IN ('CODE_ENRICHMENT')
|
|
158
162
|
AND entry_id NOT IN (SELECT id FROM knowledge_entries)`, [TaskStatus.PENDING, TaskStatus.PROCESSING, TaskStatus.FAILED]);
|
|
159
163
|
// CODE_ENRICHMENT tasks: entry_id references symbols table
|
|
160
164
|
const codeResult = await this.db.runAsync(`DELETE FROM pending_tasks
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PendingTaskRepository.js","sourceRoot":"","sources":["../../../../src/modules/memory/task-queue/PendingTaskRepository.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PendingTaskRepository.js","sourceRoot":"","sources":["../../../../src/modules/memory/task-queue/PendingTaskRepository.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAO,qBAAqB;IAGH;IAFZ,OAAO,CAAgB;IAExC,YAA6B,EAAmB;QAAnB,OAAE,GAAF,EAAE,CAAiB;QAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAsB;QACjC,gFAAgF;QAChF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACrC,gGAAgG,EAChG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAC7E,CAAC;QACF,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,EAAE,CAAC;QAEjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACnC;mCAC6B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAClD,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO;YACnD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAClF,CAAC;QACF,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACjC,8EAA8E,EAC9E,CAAC,UAAU,CAAC,OAAO,CAAC,CACrB,CAAC;QACF,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpC,qDAAqD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;mCAC1C,EAC7B,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CACrD,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACvC,OAAO,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAC5B,+EAA+E,EAC/E,CAAC,MAAM,CAAC,CACT,CAAC,IAAI,IAAI,CAAC;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACvC,8EAA8E,EAC9E,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAC5B,CAAC;QACF,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpC,qDAAqD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;qCAC1C,EAC7B,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CACrD,CAAC;YACF,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpB,uDAAuD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,EACxF,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,KAAa;QACxC,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpB;uDACiD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,eAAe,EAClF,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACpB,mFAAmF,EACnF,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,gBAAwB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;QACzD,0FAA0F;QAC1F,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,MAAM,KAAK,QAAQ;YACxC,CAAC,CAAC,sDAAsD;YACxD,CAAC,CAAC,8CAA8C,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACnC;8BACwB,cAAc,EAAE,EACxC,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAC1D,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACnC,yEAAyE,EACzE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,CAC5C,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACjC,mEAAmE,CACpE,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAwB,CAAC;YAC3D,IAAI,GAAG,IAAI,KAAK;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;QACzC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACjC;;;uBAGiB,EACjB,CAAC,SAAS,CAAC,CACZ,CAAC;QACF,MAAM,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAwB,CAAC;YAC3D,IAAI,GAAG,IAAI,KAAK;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,0BAA0B;QAC9B,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACvC,qGAAqG,EACrG,CAAC,UAAU,CAAC,UAAU,CAAC,CACxB,CAAC;QACF,IAAI,UAAU,EAAE,UAAU;YAAE,OAAO,UAAU,CAAC,UAAU,CAAC;QACzD,4EAA4E;QAC5E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACvC,4DAA4D,EAC5D,CAAC,UAAU,CAAC,OAAO,CAAC,CACrB,CAAC;QACF,IAAI,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;QACzB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CACrB,iFAAiF,EACjF,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAC3B,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,EAAE,SAAkB;QAChD,MAAM,MAAM,GAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,GAAG,wBAAwB,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CACrB;;;;4BAIsB,UAAU;2CACK,EACrC,MAAM,CACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CACrB,0CAA0C,EAAE,CAAC,EAAE,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACnC,wGAAwG,EACxG,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CACxC,CAAC;QACF,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB;QACpB,kDAAkD;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACrC;;;gEAG0D,EAC1D,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAC/D,CAAC;QACF,2DAA2D;QAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CACvC;;;sDAGgD,EAChD,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAC/D,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -9,7 +9,7 @@ import { TaskType } from './models.js';
|
|
|
9
9
|
import { DEFAULT_TASK_WORKER_CONFIG } from './TaskWorkerConfig.js';
|
|
10
10
|
import { safeParseStructuredMap } from '../llm/types.js';
|
|
11
11
|
/** SA4E-99: System prompt for code symbol summary + pseudo code generation. */
|
|
12
|
-
const
|
|
12
|
+
const CODE_ENRICHMENT_SYSTEM_PROMPT = `You are a code documentation generator. Given a code symbol (function, class, method), produce a concise summary and pseudo code.
|
|
13
13
|
|
|
14
14
|
## Output Format
|
|
15
15
|
Return ONLY valid JSON (no markdown, no code fences):
|
|
@@ -155,13 +155,18 @@ export class TaskWorker {
|
|
|
155
155
|
this.consecutiveEmpty = 0;
|
|
156
156
|
this.processing = true;
|
|
157
157
|
// Run all claimed tasks concurrently — keeps GPU busy between token batches
|
|
158
|
+
const batchStart = Date.now();
|
|
158
159
|
await Promise.allSettled(tasks.map(task => this.processTask(task)));
|
|
160
|
+
const batchDuration = Date.now() - batchStart;
|
|
159
161
|
this.processing = false;
|
|
160
162
|
if (!this.running) {
|
|
161
163
|
this.finishShutdown();
|
|
162
164
|
return;
|
|
163
165
|
}
|
|
164
|
-
|
|
166
|
+
// Fast-path: if batch completed in <500ms (skipped/cached), poll immediately
|
|
167
|
+
// This avoids wasting 2s delay between already-enriched entries
|
|
168
|
+
const delay = batchDuration < 500 ? 0 : this.config.baseInterval;
|
|
169
|
+
this.schedulePoll(delay);
|
|
165
170
|
}
|
|
166
171
|
catch (err) {
|
|
167
172
|
this.processing = false;
|
|
@@ -176,8 +181,8 @@ export class TaskWorker {
|
|
|
176
181
|
}
|
|
177
182
|
async processTask(task) {
|
|
178
183
|
try {
|
|
179
|
-
//
|
|
180
|
-
if (task.task_type === TaskType.
|
|
184
|
+
// CODE_ENRICHMENT tasks use symbols table, not knowledge_entries
|
|
185
|
+
if (task.task_type === TaskType.CODE_ENRICHMENT) {
|
|
181
186
|
let payload;
|
|
182
187
|
try {
|
|
183
188
|
payload = JSON.parse(task.payload);
|
|
@@ -401,7 +406,7 @@ export class TaskWorker {
|
|
|
401
406
|
const timeoutMs = this.config.llmTimeout ?? 30000;
|
|
402
407
|
const response = await Promise.race([
|
|
403
408
|
this.llmService.complete([
|
|
404
|
-
{ role: 'system', content:
|
|
409
|
+
{ role: 'system', content: CODE_ENRICHMENT_SYSTEM_PROMPT },
|
|
405
410
|
{ role: 'user', content: prompt },
|
|
406
411
|
]),
|
|
407
412
|
new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeoutMs)),
|
|
@@ -413,7 +418,7 @@ export class TaskWorker {
|
|
|
413
418
|
await this.engine.getAdapter().runAsync(`UPDATE graph_nodes SET label = ? WHERE entry_id = ?`, [label, entryId]);
|
|
414
419
|
// Store full summary + pseudo code in graph node metadata (JSON in cluster_id or separate)
|
|
415
420
|
// For now, store in body_embeddings metadata or a simple update to level field
|
|
416
|
-
// TODO: Consider a dedicated column for
|
|
421
|
+
// TODO: Consider a dedicated column for code_enrichment in graph_nodes
|
|
417
422
|
this.logger.debug({ symbol_id, name, component: 'TaskWorker' }, 'Code summary generated and propagated');
|
|
418
423
|
}
|
|
419
424
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskWorker.js","sourceRoot":"","sources":["../../../../src/modules/memory/task-queue/TaskWorker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TaskWorker.js","sourceRoot":"","sources":["../../../../src/modules/memory/task-queue/TaskWorker.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,7 @@ export declare enum TaskType {
|
|
|
6
6
|
TAG_ENRICHMENT = "TAG_ENRICHMENT",
|
|
7
7
|
VECTOR_EMBEDDING = "VECTOR_EMBEDDING",
|
|
8
8
|
/** SA4E-99: LLM summary + pseudo code for code symbols (functions, classes). */
|
|
9
|
-
|
|
10
|
-
/** Alias for CODE_SUMMARY — used by CodeEnrichmentTaskCreator and PegaSymbolSync. */
|
|
11
|
-
CODE_ENRICHMENT = "CODE_SUMMARY"
|
|
9
|
+
CODE_ENRICHMENT = "CODE_ENRICHMENT"
|
|
12
10
|
}
|
|
13
11
|
export declare enum TaskStatus {
|
|
14
12
|
PENDING = "PENDING",
|
|
@@ -7,9 +7,7 @@ export var TaskType;
|
|
|
7
7
|
TaskType["TAG_ENRICHMENT"] = "TAG_ENRICHMENT";
|
|
8
8
|
TaskType["VECTOR_EMBEDDING"] = "VECTOR_EMBEDDING";
|
|
9
9
|
/** SA4E-99: LLM summary + pseudo code for code symbols (functions, classes). */
|
|
10
|
-
TaskType["
|
|
11
|
-
/** Alias for CODE_SUMMARY — used by CodeEnrichmentTaskCreator and PegaSymbolSync. */
|
|
12
|
-
TaskType["CODE_ENRICHMENT"] = "CODE_SUMMARY";
|
|
10
|
+
TaskType["CODE_ENRICHMENT"] = "CODE_ENRICHMENT";
|
|
13
11
|
})(TaskType || (TaskType = {}));
|
|
14
12
|
export var TaskStatus;
|
|
15
13
|
(function (TaskStatus) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/modules/memory/task-queue/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/modules/memory/task-queue/models.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,6CAAiC,CAAA;IACjC,iDAAqC,CAAA;IACrC,gFAAgF;IAChF,+CAAmC,CAAA;AACrC,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,uCAAyB,CAAA;IACzB,qCAAuB,CAAA;IACvB,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB"}
|
|
@@ -14,7 +14,7 @@ import { deriveEnrichmentState } from '../../shared/schemas/EnrichmentStatusSche
|
|
|
14
14
|
*/
|
|
15
15
|
export function createEnrichmentStatusRoutes(registry, logger) {
|
|
16
16
|
const app = new Hono();
|
|
17
|
-
|
|
17
|
+
// GET status is read-only, no auth required (extension polls without login)
|
|
18
18
|
app.get('/enrichment/status', async (c) => {
|
|
19
19
|
try {
|
|
20
20
|
const taskWorker = getTaskWorker(registry);
|
|
@@ -31,17 +31,22 @@ export function createEnrichmentStatusRoutes(registry, logger) {
|
|
|
31
31
|
return c.json({ error: 'Failed to retrieve enrichment status', details: err.message }, 500);
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
|
-
/** POST /api/v1/enrichment/retry-failed — reset
|
|
35
|
-
app.post('/enrichment/retry-failed', async (c) => {
|
|
34
|
+
/** POST /api/v1/enrichment/retry-failed — reconcile orphans first, then reset failed tasks to pending. */
|
|
35
|
+
app.post('/enrichment/retry-failed', jwtAuth, async (c) => {
|
|
36
36
|
try {
|
|
37
37
|
const taskWorker = getTaskWorker(registry);
|
|
38
38
|
if (!taskWorker) {
|
|
39
39
|
return c.json({ error: 'Enrichment service unavailable', details: 'TaskWorker not initialized' }, 503);
|
|
40
40
|
}
|
|
41
41
|
const repo = taskWorker.getRepository();
|
|
42
|
+
// Auto-purge orphan tasks before retry (entries deleted but tasks remain)
|
|
43
|
+
const purgedCount = await repo.reconcileOrphans();
|
|
44
|
+
if (purgedCount > 0) {
|
|
45
|
+
logger.info({ purgedCount }, '[EnrichmentStatus] Auto-purged orphan tasks before retry');
|
|
46
|
+
}
|
|
42
47
|
const resetCount = await repo.retryAllFailed();
|
|
43
|
-
logger.info({ resetCount }, '[EnrichmentStatus] Retry failed tasks');
|
|
44
|
-
return c.json({ data: { resetCount, message: `${resetCount} failed tasks reset to pending` }, error: null });
|
|
48
|
+
logger.info({ resetCount, purgedCount }, '[EnrichmentStatus] Retry failed tasks');
|
|
49
|
+
return c.json({ data: { resetCount, purgedCount, message: `${purgedCount} orphans purged, ${resetCount} failed tasks reset to pending` }, error: null });
|
|
45
50
|
}
|
|
46
51
|
catch (err) {
|
|
47
52
|
logger.error({ err }, '[EnrichmentStatus] Retry failed tasks error');
|
|
@@ -49,7 +54,7 @@ export function createEnrichmentStatusRoutes(registry, logger) {
|
|
|
49
54
|
}
|
|
50
55
|
});
|
|
51
56
|
/** POST /api/v1/enrichment/reconcile-orphans — purge orphan tasks whose symbols/entries were deleted. */
|
|
52
|
-
app.post('/enrichment/reconcile-orphans', async (c) => {
|
|
57
|
+
app.post('/enrichment/reconcile-orphans', jwtAuth, async (c) => {
|
|
53
58
|
try {
|
|
54
59
|
const taskWorker = getTaskWorker(registry);
|
|
55
60
|
if (!taskWorker) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enrichment-status-routes.js","sourceRoot":"","sources":["../../../src/server/routes/enrichment-status-routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAIvF;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAwB,EAAE,MAAc;IACnF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"enrichment-status-routes.js","sourceRoot":"","sources":["../../../src/server/routes/enrichment-status-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,7 +149,7 @@ function KBGraphPage({activeTab}){
|
|
|
149
149
|
if(found){rendererRef.current.focusNode(found.id);setSelectedNode(found);setNodeDetail(null);api('/kb/entries/'+found.id).then(d=>{if(d&&!d.__error)setNodeDetail(d);else setNodeDetail({id:found.id,title:found.label,type:found.type,tier:found.tier,content:'No detail'});});}
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
-
return(<div style={{position:'relative',width:'100%',height:'calc(100vh - 52px)',borderRadius:8,overflow:'hidden',background:'#0f172a'}}>{loading&&<p style={{color:'#94a3b8',padding:24,position:'absolute',zIndex:10}}>Loading {graphStats?graphStats.totalNodes+' nodes':''}...</p>}<div ref={mainRef} style={{width:'100%',height:'100%'}}/><div style={{position:'absolute',top:12,left:12,zIndex:9999,display:'flex',gap:8,alignItems:'center'}}><input className="filter-input" style={{width:180,marginBottom:0,background:'rgba(30,41,59,0.9)',border:'1px solid #475569',color:'#e2e8f0'}} placeholder="Search node..." value={searchTerm} onChange={e=>doSearch(e.target.value)}/><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>{if(rendererRef.current)rendererRef.current.zoomToFit();}}>Fit</button><div style={{position:'relative'}}><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>setShowFilterDrop(!showFilterDrop)}>Filter {showFilterDrop?'\u25B4':'\u25BE'}</button>{showFilterDrop&&<div style={{position:'absolute',top:32,left:0,zIndex:9999,background:'rgba(30,41,59,0.95)',border:'1px solid #475569',borderRadius:6,padding:8,boxShadow:'0 4px 12px rgba(0,0,0,0.3)',minWidth:150}}>{Object.entries(typeFilters).map(([type,on])=>(<label key={type} style={{display:'flex',alignItems:'center',gap:6,padding:'3px 0',fontSize:12,cursor:'pointer',color:'#e2e8f0'}}><input type="checkbox" checked={on} onChange={e=>{const nf={...typeFilters,[type]:e.target.checked};setTypeFilters(nf);if(rendererRef.current){var filtered=allNodesRef.current.filter(n=>nf[n.type]===true);rendererRef.current.loadPositions(filtered);var visibleIds=new Set(filtered.map(n=>n.id));if(rendererRef.current.loadEdges){rendererRef.current.loadEdges(allEdgesRef.current.filter(e=>visibleIds.has(e.source)&&visibleIds.has(e.target)));}}}}/><span style={{width:8,height:8,borderRadius:'50%',background:typeColor(type),display:'inline-block'}}/><span style={{textTransform:'capitalize'}}>{type}</span></label>))}</div>}</div>{graphStats&&<span style={{fontSize:11,color:'#94a3b8',background:'rgba(30,41,59,0.9)',padding:'4px 8px',borderRadius:4}}>{(graphStats.totalNodes||0).toLocaleString()} nodes ({(graphStats.kbNodes||0).toLocaleString()} KB + {(graphStats.codeNodes||0).toLocaleString()} Code){graphStats.totalEdges>0?' · '+(graphStats.totalEdges).toLocaleString()+' edges':''}</span>}</div><canvas ref={miniRef} width={180} height={140} style={{position:'absolute',bottom:12,right:12,zIndex:9999,borderRadius:6,border:'1px solid #334155',cursor:'grab',background:'#1e293b'}}/>{selectedNode&&<div style={{position:'absolute',top:12,right:12,zIndex:9999,width:panelExpanded?'60vw':340,maxHeight:panelExpanded?'90vh':'80vh',overflow:'auto',background:'rgba(15,23,42,0.97)',border:'1px solid #334155',borderRadius:10,padding:16,boxShadow:'0 8px 32px rgba(0,0,0,0.6)',transition:'width 0.2s'}}><div style={{display:'flex',justifyContent:'space-between',alignItems:'flex-start',marginBottom:10}}><strong style={{color:'#f1f5f9',fontSize:14,lineHeight:1.4,flex:1,paddingRight:8}}>{nodeDetail&&nodeDetail.title||selectedNode.label||selectedNode.id}</strong><div style={{display:'flex',gap:4,flexShrink:0}}><span style={{cursor:'pointer',color:'#64748b',fontSize:14}} onClick={()=>setPanelExpanded(!panelExpanded)}>{panelExpanded?'\u25B6':'\u25C0'}</span><span style={{cursor:'pointer',color:'#64748b',fontSize:18}} onClick={()=>{setSelectedNode(null);setNodeDetail(null);setPanelExpanded(false);}}>×</span></div></div><div style={{display:'flex',gap:6,flexWrap:'wrap',marginBottom:10}}><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:typeColor(selectedNode.type)+'33',color:typeColor(selectedNode.type),border:'1px solid '+typeColor(selectedNode.type)+'66',fontWeight:600}}>{selectedNode.type}</span><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:'#7c3aed22',color:'#a78bfa',border:'1px solid #7c3aed44'}}>{selectedNode.tier||'SHARED'}</span></div>{nodeDetail?<div style={{fontSize:12,color:'#cbd5e1'}}>{nodeDetail.source&&<div style={{marginBottom:8,padding:'6px 8px',background:'rgba(51,65,85,0.5)',borderRadius:6,borderLeft:'3px solid #3b82f6'}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:2}}>SOURCE</span><span style={{fontSize:11,color:'#93c5fd',wordBreak:'break-all'}}>{nodeDetail.source}</span></div>}{nodeDetail.content&&nodeDetail.content!=='No detail available'?<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>CONTENT</span><div className="md-content" style={{lineHeight:1.6,maxHeight:220,overflow:'auto',fontSize:11,color:'#cbd5e1',borderRadius:6,padding:'8px',background:'rgba(30,41,59,0.6)'}} dangerouslySetInnerHTML={{__html:typeof marked!=='undefined'?marked.parse(nodeDetail.content.substring(0,1200)):nodeDetail.content.substring(0,600)}}/></div
|
|
152
|
+
return(<div style={{position:'relative',width:'100%',height:'calc(100vh - 52px)',borderRadius:8,overflow:'hidden',background:'#0f172a'}}>{loading&&<p style={{color:'#94a3b8',padding:24,position:'absolute',zIndex:10}}>Loading {graphStats?graphStats.totalNodes+' nodes':''}...</p>}<div ref={mainRef} style={{width:'100%',height:'100%'}}/><div style={{position:'absolute',top:12,left:12,zIndex:9999,display:'flex',gap:8,alignItems:'center'}}><input className="filter-input" style={{width:180,marginBottom:0,background:'rgba(30,41,59,0.9)',border:'1px solid #475569',color:'#e2e8f0'}} placeholder="Search node..." value={searchTerm} onChange={e=>doSearch(e.target.value)}/><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>{if(rendererRef.current)rendererRef.current.zoomToFit();}}>Fit</button><div style={{position:'relative'}}><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>setShowFilterDrop(!showFilterDrop)}>Filter {showFilterDrop?'\u25B4':'\u25BE'}</button>{showFilterDrop&&<div style={{position:'absolute',top:32,left:0,zIndex:9999,background:'rgba(30,41,59,0.95)',border:'1px solid #475569',borderRadius:6,padding:8,boxShadow:'0 4px 12px rgba(0,0,0,0.3)',minWidth:150,maxHeight:400,overflowY:'auto'}}><label style={{display:'flex',alignItems:'center',gap:6,padding:'4px 0',fontSize:12,cursor:'pointer',color:'#fbbf24',borderBottom:'1px solid #334155',marginBottom:4,fontWeight:600}}><input type="checkbox" checked={Object.values(typeFilters).every(v=>v)} onChange={e=>{const val=e.target.checked;const nf={};Object.keys(typeFilters).forEach(k=>{nf[k]=val;});setTypeFilters(nf);if(rendererRef.current){var filtered=allNodesRef.current.filter(n=>nf[n.type]===true);rendererRef.current.loadPositions(filtered);if(rendererRef.current.loadEdges){var visibleIds=new Set(filtered.map(n=>n.id));rendererRef.current.loadEdges(allEdgesRef.current.filter(e=>visibleIds.has(e.source)&&visibleIds.has(e.target)));}}}}/><span>{Object.values(typeFilters).every(v=>v)?'Deselect All':'Select All'}</span></label>{Object.entries(typeFilters).map(([type,on])=>(<label key={type} style={{display:'flex',alignItems:'center',gap:6,padding:'3px 0',fontSize:12,cursor:'pointer',color:'#e2e8f0'}}><input type="checkbox" checked={on} onChange={e=>{const nf={...typeFilters,[type]:e.target.checked};setTypeFilters(nf);if(rendererRef.current){var filtered=allNodesRef.current.filter(n=>nf[n.type]===true);rendererRef.current.loadPositions(filtered);var visibleIds=new Set(filtered.map(n=>n.id));if(rendererRef.current.loadEdges){rendererRef.current.loadEdges(allEdgesRef.current.filter(e=>visibleIds.has(e.source)&&visibleIds.has(e.target)));}}}}/><span style={{width:8,height:8,borderRadius:'50%',background:typeColor(type),display:'inline-block'}}/><span style={{textTransform:'capitalize',flex:1}}>{type}</span><span style={{fontSize:10,color:'#64748b'}}>{allNodesRef.current.filter(n=>n.type===type).length}</span></label>))}</div>}</div>{graphStats&&<span style={{fontSize:11,color:'#94a3b8',background:'rgba(30,41,59,0.9)',padding:'4px 8px',borderRadius:4}}>{(graphStats.totalNodes||0).toLocaleString()} nodes ({(graphStats.kbNodes||0).toLocaleString()} KB + {(graphStats.codeNodes||0).toLocaleString()} Code){graphStats.totalEdges>0?' · '+(graphStats.totalEdges).toLocaleString()+' edges':''}</span>}</div><canvas ref={miniRef} width={180} height={140} style={{position:'absolute',bottom:12,right:12,zIndex:9999,borderRadius:6,border:'1px solid #334155',cursor:'grab',background:'#1e293b'}}/>{selectedNode&&<div style={{position:'absolute',top:12,right:12,zIndex:9999,width:panelExpanded?'60vw':340,maxHeight:panelExpanded?'90vh':'80vh',overflow:'auto',background:'rgba(15,23,42,0.97)',border:'1px solid #334155',borderRadius:10,padding:16,boxShadow:'0 8px 32px rgba(0,0,0,0.6)',transition:'width 0.2s'}}><div style={{display:'flex',justifyContent:'space-between',alignItems:'flex-start',marginBottom:10}}><strong style={{color:'#f1f5f9',fontSize:14,lineHeight:1.4,flex:1,paddingRight:8}}>{nodeDetail&&nodeDetail.title||selectedNode.label||selectedNode.id}</strong><div style={{display:'flex',gap:4,flexShrink:0}}><span style={{cursor:'pointer',color:'#64748b',fontSize:14}} onClick={()=>setPanelExpanded(!panelExpanded)}>{panelExpanded?'\u25B6':'\u25C0'}</span><span style={{cursor:'pointer',color:'#64748b',fontSize:18}} onClick={()=>{setSelectedNode(null);setNodeDetail(null);setPanelExpanded(false);}}>×</span></div></div><div style={{display:'flex',gap:6,flexWrap:'wrap',marginBottom:10}}><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:typeColor(selectedNode.type)+'33',color:typeColor(selectedNode.type),border:'1px solid '+typeColor(selectedNode.type)+'66',fontWeight:600}}>{selectedNode.type}</span><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:'#7c3aed22',color:'#a78bfa',border:'1px solid #7c3aed44'}}>{selectedNode.tier||'SHARED'}</span></div>{nodeDetail?<div style={{fontSize:12,color:'#cbd5e1'}}>{nodeDetail.enrichment&&nodeDetail.enrichment.summary&&<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>SUMMARY</span><div style={{fontSize:12,lineHeight:1.6,color:'#e2e8f0',padding:'8px 10px',background:'rgba(59,130,246,0.06)',borderRadius:6,borderLeft:'3px solid #3b82f6'}}>{nodeDetail.enrichment.summary}</div></div>}{nodeDetail.enrichment&&nodeDetail.enrichment.pseudoCode&&<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>PSEUDO CODE</span><pre style={{fontSize:11,lineHeight:1.5,color:'#a5f3fc',padding:'10px 12px',background:'rgba(6,182,212,0.08)',borderRadius:6,border:'1px solid rgba(6,182,212,0.15)',overflow:'auto',maxHeight:200,margin:0,whiteSpace:'pre-wrap',fontFamily:'JetBrains Mono, Fira Code, monospace'}}>{nodeDetail.enrichment.pseudoCode.replace(/\\n/g,'\n')}</pre></div>}{nodeDetail.source&&<div style={{marginBottom:8,padding:'6px 8px',background:'rgba(51,65,85,0.5)',borderRadius:6,borderLeft:'3px solid #3b82f6'}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:2}}>SOURCE</span><span style={{fontSize:11,color:'#93c5fd',wordBreak:'break-all'}}>{nodeDetail.source}</span></div>}{nodeDetail.content&&nodeDetail.content!=='No detail available'?<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>CONTENT</span><div className="md-content" style={{lineHeight:1.6,maxHeight:220,overflow:'auto',fontSize:11,color:'#cbd5e1',borderRadius:6,padding:'8px',background:'rgba(30,41,59,0.6)'}} dangerouslySetInnerHTML={{__html:typeof marked!=='undefined'?marked.parse(nodeDetail.content.substring(0,1200)):nodeDetail.content.substring(0,600)}}/></div>:(!nodeDetail.enrichment||!nodeDetail.enrichment.summary)&&<div style={{marginBottom:10,padding:'8px',background:'rgba(71,85,105,0.3)',borderRadius:6,fontSize:11,color:'#64748b',fontStyle:'italic'}}>No content available</div>}{nodeDetail.tags&&nodeDetail.tags.length>0&&<div style={{marginBottom:8}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>TAGS</span><div style={{display:'flex',flexWrap:'wrap',gap:4}}>{(Array.isArray(nodeDetail.tags)?nodeDetail.tags:(nodeDetail.tags+'').split(',').map(t=>t.trim())).filter(Boolean).map((t,i)=>(<span key={i} style={{fontSize:10,padding:'2px 6px',background:'rgba(59,130,246,0.15)',border:'1px solid rgba(59,130,246,0.3)',borderRadius:10,color:'#93c5fd'}}>{t}</span>))}</div></div>}<div style={{display:'grid',gridTemplateColumns:'1fr 1fr',gap:6,marginBottom:8}}>{nodeDetail.qualityScore!=null&&<div style={{padding:'6px 8px',background:'rgba(51,65,85,0.4)',borderRadius:6}}><span style={{fontSize:10,color:'#64748b',display:'block'}}>QUALITY</span><span style={{fontSize:13,fontWeight:600,color:nodeDetail.qualityScore>0.7?'#4ade80':nodeDetail.qualityScore>0.4?'#facc15':'#f87171'}}>{(nodeDetail.qualityScore*100).toFixed(0)}%</span></div>}{nodeDetail.links&&nodeDetail.links.length>0&&<div style={{padding:'6px 8px',background:'rgba(51,65,85,0.4)',borderRadius:6}}><span style={{fontSize:10,color:'#64748b',display:'block'}}>CONNECTIONS</span><span style={{fontSize:13,fontWeight:600,color:'#e2e8f0'}}>{nodeDetail.links.length}</span></div>}</div>{(nodeDetail.createdAt||nodeDetail.updatedAt)&&<div style={{borderTop:'1px solid #1e293b',paddingTop:8,display:'flex',gap:12}}>{nodeDetail.createdAt&&<div><span style={{fontSize:10,color:'#475569',display:'block'}}>CREATED</span><span style={{fontSize:10,color:'#64748b'}}>{new Date(nodeDetail.createdAt).toLocaleString()}</span></div>}{nodeDetail.updatedAt&&<div><span style={{fontSize:10,color:'#475569',display:'block'}}>UPDATED</span><span style={{fontSize:10,color:'#64748b'}}>{new Date(nodeDetail.updatedAt).toLocaleString()}</span></div>}</div>}</div>:<div style={{textAlign:'center',padding:'20px 0'}}><p style={{fontSize:11,color:'#64748b'}}>Loading...</p></div>}</div>}<div style={{position:'absolute',bottom:12,left:12,zIndex:9999,background:'rgba(30,41,59,0.92)',border:'1px solid #334155',borderRadius:8,padding:'8px 12px'}}><div style={{fontSize:10,fontWeight:600,color:'#e2e8f0',marginBottom:4}}>Node Types</div>{Object.keys(typeFilters).map((type)=>(<div key={type} style={{display:'flex',alignItems:'center',gap:6,marginBottom:2}}><span style={{width:8,height:8,borderRadius:'50%',background:typeColor(type),display:'inline-block'}}/><span style={{fontSize:10,color:'#cbd5e1',textTransform:'capitalize'}}>{type}</span></div>))}</div></div>);}
|
|
153
153
|
function AnalyticsPage(){const[data,setData]=useState(null);const[loading,setLoading]=useState(true);
|
|
154
154
|
useEffect(()=>{api('/analytics').then(d=>{if(d&&!d.__error)setData(d);setLoading(false);});},[]);
|
|
155
155
|
if(loading)return<div><div className="header"><h2>Analytics</h2></div><p style={{color:'#64748b'}}>Loading...</p></div>;
|
package/package.json
CHANGED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import pg from 'pg';
|
|
2
|
+
const pool = new pg.Pool({ connectionString: 'postgresql://sa4e_user:sa4e_local_dev_password@localhost:5432/sa4e_db' });
|
|
3
|
+
async function main() {
|
|
4
|
+
// 1. Delete duplicate PENDING TAG_ENRICHMENT (keep first per entry)
|
|
5
|
+
const r1 = await pool.query(`
|
|
6
|
+
DELETE FROM pending_tasks WHERE id IN (
|
|
7
|
+
SELECT id FROM (
|
|
8
|
+
SELECT id, ROW_NUMBER() OVER (PARTITION BY entry_id, task_type ORDER BY id) as rn
|
|
9
|
+
FROM pending_tasks WHERE task_type = 'TAG_ENRICHMENT' AND status = 'PENDING'
|
|
10
|
+
) sub WHERE rn > 1
|
|
11
|
+
)
|
|
12
|
+
`);
|
|
13
|
+
console.log('Deduped pending TAG_ENRICHMENT:', r1.rowCount);
|
|
14
|
+
|
|
15
|
+
// 2. Delete all COMPLETED TAG_ENRICHMENT tasks (no longer needed)
|
|
16
|
+
const r2 = await pool.query(`DELETE FROM pending_tasks WHERE task_type = 'TAG_ENRICHMENT' AND status = 'COMPLETED'`);
|
|
17
|
+
console.log('Purged completed TAG_ENRICHMENT:', r2.rowCount);
|
|
18
|
+
|
|
19
|
+
// 3. Delete PENDING TAG_ENRICHMENT where entry already enriched
|
|
20
|
+
const r3 = await pool.query(`
|
|
21
|
+
DELETE FROM pending_tasks WHERE id IN (
|
|
22
|
+
SELECT pt.id FROM pending_tasks pt
|
|
23
|
+
JOIN knowledge_entries ke ON pt.entry_id = ke.id
|
|
24
|
+
WHERE pt.task_type = 'TAG_ENRICHMENT' AND pt.status = 'PENDING' AND ke.enrichment_status = 'done'
|
|
25
|
+
)
|
|
26
|
+
`);
|
|
27
|
+
console.log('Purged already-enriched:', r3.rowCount);
|
|
28
|
+
|
|
29
|
+
// 4. Stats after cleanup
|
|
30
|
+
const r4 = await pool.query(`SELECT task_type, status, COUNT(*) c FROM pending_tasks GROUP BY task_type, status ORDER BY task_type, status`);
|
|
31
|
+
console.log('\nRemaining tasks:');
|
|
32
|
+
r4.rows.forEach(r => console.log(' ', r.task_type, r.status, r.c));
|
|
33
|
+
|
|
34
|
+
await pool.end();
|
|
35
|
+
}
|
|
36
|
+
main();
|
|
@@ -239,10 +239,11 @@ export class CodeEnrichmentTaskCreator {
|
|
|
239
239
|
workspaceType: isPegaKind(kind) ? 'pega' : 'standard',
|
|
240
240
|
});
|
|
241
241
|
|
|
242
|
+
const now = new Date().toISOString();
|
|
242
243
|
await this.adapter.runAsync(
|
|
243
|
-
`INSERT INTO pending_tasks (task_type, entry_id, status, payload, max_retries, created_at)
|
|
244
|
-
VALUES (?, ?, ?, ?, ?,
|
|
245
|
-
[TaskType.CODE_ENRICHMENT, symbolId, TaskStatus.PENDING, payload, 3],
|
|
244
|
+
`INSERT INTO pending_tasks (task_type, entry_id, status, payload, max_retries, project_id, created_at)
|
|
245
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)`,
|
|
246
|
+
[TaskType.CODE_ENRICHMENT, symbolId, TaskStatus.PENDING, payload, 3, projectId, now],
|
|
246
247
|
);
|
|
247
248
|
}
|
|
248
249
|
}
|
|
@@ -47,9 +47,9 @@ export class GraphSyncService {
|
|
|
47
47
|
this.log.info(`[graph-sync] Synced ${symbols.length} code nodes for project ${projectId}`);
|
|
48
48
|
// SA4E-91: Extract and insert code edges (IMPORTS, CALLS, EXTENDS)
|
|
49
49
|
await this.syncCodeEdges(projectId);
|
|
50
|
-
// SA4E-99: Queue
|
|
50
|
+
// SA4E-99: Queue CODE_ENRICHMENT tasks async (fire-and-forget, non-blocking)
|
|
51
51
|
this.queueCodeSummaryTasks(projectId, symbols).catch(err =>
|
|
52
|
-
this.log.warn({ err }, '[graph-sync] Code
|
|
52
|
+
this.log.warn({ err }, '[graph-sync] Code enrichment queue failed (non-fatal)'));
|
|
53
53
|
} catch (err) {
|
|
54
54
|
// Non-fatal: visualization projection must never fail the index run.
|
|
55
55
|
this.log.error({ err }, `[graph-sync] Failed to sync code nodes for ${projectId}`);
|
|
@@ -57,7 +57,7 @@ export class GraphSyncService {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
|
-
* SA4E-99: Queue
|
|
60
|
+
* SA4E-99: Queue CODE_ENRICHMENT tasks for symbols that have body text.
|
|
61
61
|
* Reads body from body_embeddings, creates pending_tasks for LLM summarization.
|
|
62
62
|
* Runs async — does NOT block code indexing.
|
|
63
63
|
*/
|
|
@@ -93,12 +93,12 @@ export class GraphSyncService {
|
|
|
93
93
|
};
|
|
94
94
|
|
|
95
95
|
// Insert into pending_tasks (use admin adapter — same DB as graph_nodes)
|
|
96
|
-
// Temporarily disable FK for
|
|
96
|
+
// Temporarily disable FK for CODE_ENRICHMENT (entry_id=symbolId, not a knowledge_entries ref)
|
|
97
97
|
try {
|
|
98
98
|
await this.adminAdapter.runAsync('PRAGMA foreign_keys = OFF', []);
|
|
99
99
|
await this.adminAdapter.runAsync(
|
|
100
100
|
`INSERT INTO pending_tasks (task_type, entry_id, payload, status, retry_count, max_retries, created_at)
|
|
101
|
-
VALUES ('
|
|
101
|
+
VALUES ('CODE_ENRICHMENT', 0, ?, 'PENDING', 0, 2, ?)`,
|
|
102
102
|
[JSON.stringify(payload), now],
|
|
103
103
|
);
|
|
104
104
|
await this.adminAdapter.runAsync('PRAGMA foreign_keys = ON', []);
|
|
@@ -109,7 +109,7 @@ export class GraphSyncService {
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
if (queued > 0) {
|
|
112
|
-
this.log.info(`[graph-sync] Queued ${queued}
|
|
112
|
+
this.log.info(`[graph-sync] Queued ${queued} CODE_ENRICHMENT tasks for project ${projectId}`);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -21,6 +21,23 @@ export const KIND_TO_TYPE: Record<string, string> = {
|
|
|
21
21
|
enum: 'ENUM',
|
|
22
22
|
constant: 'CONSTANT',
|
|
23
23
|
variable: 'VARIABLE',
|
|
24
|
+
// Pega rule kinds → meaningful graph types
|
|
25
|
+
pega_activity: 'ACTIVITY',
|
|
26
|
+
pega_flow: 'FLOW',
|
|
27
|
+
pega_flow_action: 'FLOW',
|
|
28
|
+
pega_data_transform: 'DATA_TRANSFORM',
|
|
29
|
+
pega_declare_expression: 'DECLARE_EXPRESSION',
|
|
30
|
+
pega_report: 'REPORT',
|
|
31
|
+
pega_section: 'SECTION',
|
|
32
|
+
pega_harness: 'HARNESS',
|
|
33
|
+
pega_property: 'PROPERTY',
|
|
34
|
+
pega_class: 'PEGA_SCHEMA',
|
|
35
|
+
pega_decision_table: 'DECISION',
|
|
36
|
+
pega_decision_tree: 'DECISION',
|
|
37
|
+
pega_map_value: 'DECISION',
|
|
38
|
+
pega_when: 'DECISION',
|
|
39
|
+
pega_validate: 'VALIDATE',
|
|
40
|
+
pega_unknown: 'PEGA_RULE',
|
|
24
41
|
};
|
|
25
42
|
|
|
26
43
|
export interface SpatialQueryParams {
|
|
@@ -43,4 +43,6 @@ export async function migrate003PendingTasks(db: DatabaseAdapter): Promise<void>
|
|
|
43
43
|
`);
|
|
44
44
|
try { await db.execAsync(`CREATE INDEX IF NOT EXISTS idx_pending_tasks_status_created ON pending_tasks(status, created_at)`); } catch (err) { console.debug('[migration] DDL statement failed (expected if already applied):', (err as Error).message); }
|
|
45
45
|
try { await db.execAsync(`CREATE INDEX IF NOT EXISTS idx_pending_tasks_entry_id ON pending_tasks(entry_id)`); } catch (err) { console.debug('[migration] DDL statement failed (expected if already applied):', (err as Error).message); }
|
|
46
|
+
// Rename legacy CODE_SUMMARY → CODE_ENRICHMENT (idempotent)
|
|
47
|
+
try { await db.execAsync(`UPDATE pending_tasks SET task_type = 'CODE_ENRICHMENT' WHERE task_type = 'CODE_SUMMARY'`); } catch (err) { console.debug('[migration] CODE_SUMMARY rename failed (non-fatal):', (err as Error).message); }
|
|
46
48
|
}
|
|
@@ -17,6 +17,13 @@ export class PendingTaskRepository {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
async create(input: CreateTaskInput): Promise<number> {
|
|
20
|
+
// Dedup: skip if a PENDING/PROCESSING task already exists for same entry + type
|
|
21
|
+
const existing = await this.db.getAsync<{ id: number }>(
|
|
22
|
+
`SELECT id FROM pending_tasks WHERE entry_id = ? AND task_type = ? AND status IN (?, ?) LIMIT 1`,
|
|
23
|
+
[input.entry_id, input.task_type, TaskStatus.PENDING, TaskStatus.PROCESSING],
|
|
24
|
+
);
|
|
25
|
+
if (existing) return existing.id;
|
|
26
|
+
|
|
20
27
|
const result = await this.db.runAsync(
|
|
21
28
|
`INSERT INTO pending_tasks (task_type, entry_id, status, payload, max_retries, project_id, created_at)
|
|
22
29
|
VALUES (?, ?, ?, ?, ?, ?, ${this.dialect.now()})`,
|
|
@@ -223,7 +230,7 @@ export class PendingTaskRepository {
|
|
|
223
230
|
const kbResult = await this.db.runAsync(
|
|
224
231
|
`DELETE FROM pending_tasks
|
|
225
232
|
WHERE status IN (?, ?, ?)
|
|
226
|
-
AND task_type
|
|
233
|
+
AND task_type NOT IN ('CODE_ENRICHMENT')
|
|
227
234
|
AND entry_id NOT IN (SELECT id FROM knowledge_entries)`,
|
|
228
235
|
[TaskStatus.PENDING, TaskStatus.PROCESSING, TaskStatus.FAILED],
|
|
229
236
|
);
|
|
@@ -20,7 +20,7 @@ import type { ContextChainInput, StructuredMapData } from '../llm/types.js';
|
|
|
20
20
|
import { safeParseStructuredMap } from '../llm/types.js';
|
|
21
21
|
|
|
22
22
|
/** SA4E-99: System prompt for code symbol summary + pseudo code generation. */
|
|
23
|
-
const
|
|
23
|
+
const CODE_ENRICHMENT_SYSTEM_PROMPT = `You are a code documentation generator. Given a code symbol (function, class, method), produce a concise summary and pseudo code.
|
|
24
24
|
|
|
25
25
|
## Output Format
|
|
26
26
|
Return ONLY valid JSON (no markdown, no code fences):
|
|
@@ -182,10 +182,15 @@ export class TaskWorker {
|
|
|
182
182
|
this.consecutiveEmpty = 0;
|
|
183
183
|
this.processing = true;
|
|
184
184
|
// Run all claimed tasks concurrently — keeps GPU busy between token batches
|
|
185
|
+
const batchStart = Date.now();
|
|
185
186
|
await Promise.allSettled(tasks.map(task => this.processTask(task)));
|
|
187
|
+
const batchDuration = Date.now() - batchStart;
|
|
186
188
|
this.processing = false;
|
|
187
189
|
if (!this.running) { this.finishShutdown(); return; }
|
|
188
|
-
|
|
190
|
+
// Fast-path: if batch completed in <500ms (skipped/cached), poll immediately
|
|
191
|
+
// This avoids wasting 2s delay between already-enriched entries
|
|
192
|
+
const delay = batchDuration < 500 ? 0 : this.config.baseInterval;
|
|
193
|
+
this.schedulePoll(delay);
|
|
189
194
|
} catch (err) {
|
|
190
195
|
this.processing = false;
|
|
191
196
|
this.logger.error({ err }, 'Poll cycle error');
|
|
@@ -201,8 +206,8 @@ export class TaskWorker {
|
|
|
201
206
|
|
|
202
207
|
private async processTask(task: PendingTask): Promise<void> {
|
|
203
208
|
try {
|
|
204
|
-
//
|
|
205
|
-
if (task.task_type === TaskType.
|
|
209
|
+
// CODE_ENRICHMENT tasks use symbols table, not knowledge_entries
|
|
210
|
+
if (task.task_type === TaskType.CODE_ENRICHMENT) {
|
|
206
211
|
let payload: any;
|
|
207
212
|
try { payload = JSON.parse(task.payload); }
|
|
208
213
|
catch { this.repo.markFailed(task.id, 'invalid_json_payload'); return; }
|
|
@@ -443,7 +448,7 @@ export class TaskWorker {
|
|
|
443
448
|
const timeoutMs = this.config.llmTimeout ?? 30000;
|
|
444
449
|
const response = await Promise.race([
|
|
445
450
|
this.llmService.complete([
|
|
446
|
-
{ role: 'system', content:
|
|
451
|
+
{ role: 'system', content: CODE_ENRICHMENT_SYSTEM_PROMPT },
|
|
447
452
|
{ role: 'user', content: prompt },
|
|
448
453
|
]),
|
|
449
454
|
new Promise<never>((_, reject) => setTimeout(() => reject(new Error('timeout')), timeoutMs)),
|
|
@@ -461,7 +466,7 @@ export class TaskWorker {
|
|
|
461
466
|
|
|
462
467
|
// Store full summary + pseudo code in graph node metadata (JSON in cluster_id or separate)
|
|
463
468
|
// For now, store in body_embeddings metadata or a simple update to level field
|
|
464
|
-
// TODO: Consider a dedicated column for
|
|
469
|
+
// TODO: Consider a dedicated column for code_enrichment in graph_nodes
|
|
465
470
|
this.logger.debug({ symbol_id, name, component: 'TaskWorker' },
|
|
466
471
|
'Code summary generated and propagated');
|
|
467
472
|
} catch (err) {
|
|
@@ -7,9 +7,7 @@ export enum TaskType {
|
|
|
7
7
|
TAG_ENRICHMENT = 'TAG_ENRICHMENT',
|
|
8
8
|
VECTOR_EMBEDDING = 'VECTOR_EMBEDDING',
|
|
9
9
|
/** SA4E-99: LLM summary + pseudo code for code symbols (functions, classes). */
|
|
10
|
-
|
|
11
|
-
/** Alias for CODE_SUMMARY — used by CodeEnrichmentTaskCreator and PegaSymbolSync. */
|
|
12
|
-
CODE_ENRICHMENT = 'CODE_SUMMARY',
|
|
10
|
+
CODE_ENRICHMENT = 'CODE_ENRICHMENT',
|
|
13
11
|
}
|
|
14
12
|
|
|
15
13
|
export enum TaskStatus {
|
|
@@ -20,8 +20,8 @@ import type { TaskWorker } from '../../modules/memory/task-queue/TaskWorker.js';
|
|
|
20
20
|
*/
|
|
21
21
|
export function createEnrichmentStatusRoutes(registry: ModuleRegistry, logger: Logger): Hono {
|
|
22
22
|
const app = new Hono();
|
|
23
|
-
app.use('*', jwtAuth);
|
|
24
23
|
|
|
24
|
+
// GET status is read-only, no auth required (extension polls without login)
|
|
25
25
|
app.get('/enrichment/status', async (c) => {
|
|
26
26
|
try {
|
|
27
27
|
const taskWorker = getTaskWorker(registry);
|
|
@@ -40,17 +40,22 @@ export function createEnrichmentStatusRoutes(registry: ModuleRegistry, logger: L
|
|
|
40
40
|
}
|
|
41
41
|
});
|
|
42
42
|
|
|
43
|
-
/** POST /api/v1/enrichment/retry-failed — reset
|
|
44
|
-
app.post('/enrichment/retry-failed', async (c) => {
|
|
43
|
+
/** POST /api/v1/enrichment/retry-failed — reconcile orphans first, then reset failed tasks to pending. */
|
|
44
|
+
app.post('/enrichment/retry-failed', jwtAuth, async (c) => {
|
|
45
45
|
try {
|
|
46
46
|
const taskWorker = getTaskWorker(registry);
|
|
47
47
|
if (!taskWorker) {
|
|
48
48
|
return c.json({ error: 'Enrichment service unavailable', details: 'TaskWorker not initialized' }, 503);
|
|
49
49
|
}
|
|
50
50
|
const repo = taskWorker.getRepository();
|
|
51
|
+
// Auto-purge orphan tasks before retry (entries deleted but tasks remain)
|
|
52
|
+
const purgedCount = await repo.reconcileOrphans();
|
|
53
|
+
if (purgedCount > 0) {
|
|
54
|
+
logger.info({ purgedCount }, '[EnrichmentStatus] Auto-purged orphan tasks before retry');
|
|
55
|
+
}
|
|
51
56
|
const resetCount = await repo.retryAllFailed();
|
|
52
|
-
logger.info({ resetCount }, '[EnrichmentStatus] Retry failed tasks');
|
|
53
|
-
return c.json({ data: { resetCount, message: `${resetCount} failed tasks reset to pending` }, error: null });
|
|
57
|
+
logger.info({ resetCount, purgedCount }, '[EnrichmentStatus] Retry failed tasks');
|
|
58
|
+
return c.json({ data: { resetCount, purgedCount, message: `${purgedCount} orphans purged, ${resetCount} failed tasks reset to pending` }, error: null });
|
|
54
59
|
} catch (err: any) {
|
|
55
60
|
logger.error({ err }, '[EnrichmentStatus] Retry failed tasks error');
|
|
56
61
|
return c.json({ error: 'Failed to retry tasks', details: err.message }, 500);
|
|
@@ -58,7 +63,7 @@ export function createEnrichmentStatusRoutes(registry: ModuleRegistry, logger: L
|
|
|
58
63
|
});
|
|
59
64
|
|
|
60
65
|
/** POST /api/v1/enrichment/reconcile-orphans — purge orphan tasks whose symbols/entries were deleted. */
|
|
61
|
-
app.post('/enrichment/reconcile-orphans', async (c) => {
|
|
66
|
+
app.post('/enrichment/reconcile-orphans', jwtAuth, async (c) => {
|
|
62
67
|
try {
|
|
63
68
|
const taskWorker = getTaskWorker(registry);
|
|
64
69
|
if (!taskWorker) {
|
|
@@ -149,7 +149,7 @@ function KBGraphPage({activeTab}){
|
|
|
149
149
|
if(found){rendererRef.current.focusNode(found.id);setSelectedNode(found);setNodeDetail(null);api('/kb/entries/'+found.id).then(d=>{if(d&&!d.__error)setNodeDetail(d);else setNodeDetail({id:found.id,title:found.label,type:found.type,tier:found.tier,content:'No detail'});});}
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
-
return(<div style={{position:'relative',width:'100%',height:'calc(100vh - 52px)',borderRadius:8,overflow:'hidden',background:'#0f172a'}}>{loading&&<p style={{color:'#94a3b8',padding:24,position:'absolute',zIndex:10}}>Loading {graphStats?graphStats.totalNodes+' nodes':''}...</p>}<div ref={mainRef} style={{width:'100%',height:'100%'}}/><div style={{position:'absolute',top:12,left:12,zIndex:9999,display:'flex',gap:8,alignItems:'center'}}><input className="filter-input" style={{width:180,marginBottom:0,background:'rgba(30,41,59,0.9)',border:'1px solid #475569',color:'#e2e8f0'}} placeholder="Search node..." value={searchTerm} onChange={e=>doSearch(e.target.value)}/><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>{if(rendererRef.current)rendererRef.current.zoomToFit();}}>Fit</button><div style={{position:'relative'}}><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>setShowFilterDrop(!showFilterDrop)}>Filter {showFilterDrop?'\u25B4':'\u25BE'}</button>{showFilterDrop&&<div style={{position:'absolute',top:32,left:0,zIndex:9999,background:'rgba(30,41,59,0.95)',border:'1px solid #475569',borderRadius:6,padding:8,boxShadow:'0 4px 12px rgba(0,0,0,0.3)',minWidth:150}}>{Object.entries(typeFilters).map(([type,on])=>(<label key={type} style={{display:'flex',alignItems:'center',gap:6,padding:'3px 0',fontSize:12,cursor:'pointer',color:'#e2e8f0'}}><input type="checkbox" checked={on} onChange={e=>{const nf={...typeFilters,[type]:e.target.checked};setTypeFilters(nf);if(rendererRef.current){var filtered=allNodesRef.current.filter(n=>nf[n.type]===true);rendererRef.current.loadPositions(filtered);var visibleIds=new Set(filtered.map(n=>n.id));if(rendererRef.current.loadEdges){rendererRef.current.loadEdges(allEdgesRef.current.filter(e=>visibleIds.has(e.source)&&visibleIds.has(e.target)));}}}}/><span style={{width:8,height:8,borderRadius:'50%',background:typeColor(type),display:'inline-block'}}/><span style={{textTransform:'capitalize'}}>{type}</span></label>))}</div>}</div>{graphStats&&<span style={{fontSize:11,color:'#94a3b8',background:'rgba(30,41,59,0.9)',padding:'4px 8px',borderRadius:4}}>{(graphStats.totalNodes||0).toLocaleString()} nodes ({(graphStats.kbNodes||0).toLocaleString()} KB + {(graphStats.codeNodes||0).toLocaleString()} Code){graphStats.totalEdges>0?' · '+(graphStats.totalEdges).toLocaleString()+' edges':''}</span>}</div><canvas ref={miniRef} width={180} height={140} style={{position:'absolute',bottom:12,right:12,zIndex:9999,borderRadius:6,border:'1px solid #334155',cursor:'grab',background:'#1e293b'}}/>{selectedNode&&<div style={{position:'absolute',top:12,right:12,zIndex:9999,width:panelExpanded?'60vw':340,maxHeight:panelExpanded?'90vh':'80vh',overflow:'auto',background:'rgba(15,23,42,0.97)',border:'1px solid #334155',borderRadius:10,padding:16,boxShadow:'0 8px 32px rgba(0,0,0,0.6)',transition:'width 0.2s'}}><div style={{display:'flex',justifyContent:'space-between',alignItems:'flex-start',marginBottom:10}}><strong style={{color:'#f1f5f9',fontSize:14,lineHeight:1.4,flex:1,paddingRight:8}}>{nodeDetail&&nodeDetail.title||selectedNode.label||selectedNode.id}</strong><div style={{display:'flex',gap:4,flexShrink:0}}><span style={{cursor:'pointer',color:'#64748b',fontSize:14}} onClick={()=>setPanelExpanded(!panelExpanded)}>{panelExpanded?'\u25B6':'\u25C0'}</span><span style={{cursor:'pointer',color:'#64748b',fontSize:18}} onClick={()=>{setSelectedNode(null);setNodeDetail(null);setPanelExpanded(false);}}>×</span></div></div><div style={{display:'flex',gap:6,flexWrap:'wrap',marginBottom:10}}><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:typeColor(selectedNode.type)+'33',color:typeColor(selectedNode.type),border:'1px solid '+typeColor(selectedNode.type)+'66',fontWeight:600}}>{selectedNode.type}</span><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:'#7c3aed22',color:'#a78bfa',border:'1px solid #7c3aed44'}}>{selectedNode.tier||'SHARED'}</span></div>{nodeDetail?<div style={{fontSize:12,color:'#cbd5e1'}}>{nodeDetail.source&&<div style={{marginBottom:8,padding:'6px 8px',background:'rgba(51,65,85,0.5)',borderRadius:6,borderLeft:'3px solid #3b82f6'}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:2}}>SOURCE</span><span style={{fontSize:11,color:'#93c5fd',wordBreak:'break-all'}}>{nodeDetail.source}</span></div>}{nodeDetail.content&&nodeDetail.content!=='No detail available'?<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>CONTENT</span><div className="md-content" style={{lineHeight:1.6,maxHeight:220,overflow:'auto',fontSize:11,color:'#cbd5e1',borderRadius:6,padding:'8px',background:'rgba(30,41,59,0.6)'}} dangerouslySetInnerHTML={{__html:typeof marked!=='undefined'?marked.parse(nodeDetail.content.substring(0,1200)):nodeDetail.content.substring(0,600)}}/></div
|
|
152
|
+
return(<div style={{position:'relative',width:'100%',height:'calc(100vh - 52px)',borderRadius:8,overflow:'hidden',background:'#0f172a'}}>{loading&&<p style={{color:'#94a3b8',padding:24,position:'absolute',zIndex:10}}>Loading {graphStats?graphStats.totalNodes+' nodes':''}...</p>}<div ref={mainRef} style={{width:'100%',height:'100%'}}/><div style={{position:'absolute',top:12,left:12,zIndex:9999,display:'flex',gap:8,alignItems:'center'}}><input className="filter-input" style={{width:180,marginBottom:0,background:'rgba(30,41,59,0.9)',border:'1px solid #475569',color:'#e2e8f0'}} placeholder="Search node..." value={searchTerm} onChange={e=>doSearch(e.target.value)}/><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>{if(rendererRef.current)rendererRef.current.zoomToFit();}}>Fit</button><div style={{position:'relative'}}><button className="btn btn-sm btn-outline" style={{background:'rgba(30,41,59,0.9)',color:'#e2e8f0',border:'1px solid #475569'}} onClick={()=>setShowFilterDrop(!showFilterDrop)}>Filter {showFilterDrop?'\u25B4':'\u25BE'}</button>{showFilterDrop&&<div style={{position:'absolute',top:32,left:0,zIndex:9999,background:'rgba(30,41,59,0.95)',border:'1px solid #475569',borderRadius:6,padding:8,boxShadow:'0 4px 12px rgba(0,0,0,0.3)',minWidth:150,maxHeight:400,overflowY:'auto'}}><label style={{display:'flex',alignItems:'center',gap:6,padding:'4px 0',fontSize:12,cursor:'pointer',color:'#fbbf24',borderBottom:'1px solid #334155',marginBottom:4,fontWeight:600}}><input type="checkbox" checked={Object.values(typeFilters).every(v=>v)} onChange={e=>{const val=e.target.checked;const nf={};Object.keys(typeFilters).forEach(k=>{nf[k]=val;});setTypeFilters(nf);if(rendererRef.current){var filtered=allNodesRef.current.filter(n=>nf[n.type]===true);rendererRef.current.loadPositions(filtered);if(rendererRef.current.loadEdges){var visibleIds=new Set(filtered.map(n=>n.id));rendererRef.current.loadEdges(allEdgesRef.current.filter(e=>visibleIds.has(e.source)&&visibleIds.has(e.target)));}}}}/><span>{Object.values(typeFilters).every(v=>v)?'Deselect All':'Select All'}</span></label>{Object.entries(typeFilters).map(([type,on])=>(<label key={type} style={{display:'flex',alignItems:'center',gap:6,padding:'3px 0',fontSize:12,cursor:'pointer',color:'#e2e8f0'}}><input type="checkbox" checked={on} onChange={e=>{const nf={...typeFilters,[type]:e.target.checked};setTypeFilters(nf);if(rendererRef.current){var filtered=allNodesRef.current.filter(n=>nf[n.type]===true);rendererRef.current.loadPositions(filtered);var visibleIds=new Set(filtered.map(n=>n.id));if(rendererRef.current.loadEdges){rendererRef.current.loadEdges(allEdgesRef.current.filter(e=>visibleIds.has(e.source)&&visibleIds.has(e.target)));}}}}/><span style={{width:8,height:8,borderRadius:'50%',background:typeColor(type),display:'inline-block'}}/><span style={{textTransform:'capitalize',flex:1}}>{type}</span><span style={{fontSize:10,color:'#64748b'}}>{allNodesRef.current.filter(n=>n.type===type).length}</span></label>))}</div>}</div>{graphStats&&<span style={{fontSize:11,color:'#94a3b8',background:'rgba(30,41,59,0.9)',padding:'4px 8px',borderRadius:4}}>{(graphStats.totalNodes||0).toLocaleString()} nodes ({(graphStats.kbNodes||0).toLocaleString()} KB + {(graphStats.codeNodes||0).toLocaleString()} Code){graphStats.totalEdges>0?' · '+(graphStats.totalEdges).toLocaleString()+' edges':''}</span>}</div><canvas ref={miniRef} width={180} height={140} style={{position:'absolute',bottom:12,right:12,zIndex:9999,borderRadius:6,border:'1px solid #334155',cursor:'grab',background:'#1e293b'}}/>{selectedNode&&<div style={{position:'absolute',top:12,right:12,zIndex:9999,width:panelExpanded?'60vw':340,maxHeight:panelExpanded?'90vh':'80vh',overflow:'auto',background:'rgba(15,23,42,0.97)',border:'1px solid #334155',borderRadius:10,padding:16,boxShadow:'0 8px 32px rgba(0,0,0,0.6)',transition:'width 0.2s'}}><div style={{display:'flex',justifyContent:'space-between',alignItems:'flex-start',marginBottom:10}}><strong style={{color:'#f1f5f9',fontSize:14,lineHeight:1.4,flex:1,paddingRight:8}}>{nodeDetail&&nodeDetail.title||selectedNode.label||selectedNode.id}</strong><div style={{display:'flex',gap:4,flexShrink:0}}><span style={{cursor:'pointer',color:'#64748b',fontSize:14}} onClick={()=>setPanelExpanded(!panelExpanded)}>{panelExpanded?'\u25B6':'\u25C0'}</span><span style={{cursor:'pointer',color:'#64748b',fontSize:18}} onClick={()=>{setSelectedNode(null);setNodeDetail(null);setPanelExpanded(false);}}>×</span></div></div><div style={{display:'flex',gap:6,flexWrap:'wrap',marginBottom:10}}><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:typeColor(selectedNode.type)+'33',color:typeColor(selectedNode.type),border:'1px solid '+typeColor(selectedNode.type)+'66',fontWeight:600}}>{selectedNode.type}</span><span style={{fontSize:10,padding:'2px 8px',borderRadius:12,background:'#7c3aed22',color:'#a78bfa',border:'1px solid #7c3aed44'}}>{selectedNode.tier||'SHARED'}</span></div>{nodeDetail?<div style={{fontSize:12,color:'#cbd5e1'}}>{nodeDetail.enrichment&&nodeDetail.enrichment.summary&&<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>SUMMARY</span><div style={{fontSize:12,lineHeight:1.6,color:'#e2e8f0',padding:'8px 10px',background:'rgba(59,130,246,0.06)',borderRadius:6,borderLeft:'3px solid #3b82f6'}}>{nodeDetail.enrichment.summary}</div></div>}{nodeDetail.enrichment&&nodeDetail.enrichment.pseudoCode&&<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>PSEUDO CODE</span><pre style={{fontSize:11,lineHeight:1.5,color:'#a5f3fc',padding:'10px 12px',background:'rgba(6,182,212,0.08)',borderRadius:6,border:'1px solid rgba(6,182,212,0.15)',overflow:'auto',maxHeight:200,margin:0,whiteSpace:'pre-wrap',fontFamily:'JetBrains Mono, Fira Code, monospace'}}>{nodeDetail.enrichment.pseudoCode.replace(/\\n/g,'\n')}</pre></div>}{nodeDetail.source&&<div style={{marginBottom:8,padding:'6px 8px',background:'rgba(51,65,85,0.5)',borderRadius:6,borderLeft:'3px solid #3b82f6'}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:2}}>SOURCE</span><span style={{fontSize:11,color:'#93c5fd',wordBreak:'break-all'}}>{nodeDetail.source}</span></div>}{nodeDetail.content&&nodeDetail.content!=='No detail available'?<div style={{marginBottom:10}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>CONTENT</span><div className="md-content" style={{lineHeight:1.6,maxHeight:220,overflow:'auto',fontSize:11,color:'#cbd5e1',borderRadius:6,padding:'8px',background:'rgba(30,41,59,0.6)'}} dangerouslySetInnerHTML={{__html:typeof marked!=='undefined'?marked.parse(nodeDetail.content.substring(0,1200)):nodeDetail.content.substring(0,600)}}/></div>:(!nodeDetail.enrichment||!nodeDetail.enrichment.summary)&&<div style={{marginBottom:10,padding:'8px',background:'rgba(71,85,105,0.3)',borderRadius:6,fontSize:11,color:'#64748b',fontStyle:'italic'}}>No content available</div>}{nodeDetail.tags&&nodeDetail.tags.length>0&&<div style={{marginBottom:8}}><span style={{fontSize:10,color:'#64748b',display:'block',marginBottom:4}}>TAGS</span><div style={{display:'flex',flexWrap:'wrap',gap:4}}>{(Array.isArray(nodeDetail.tags)?nodeDetail.tags:(nodeDetail.tags+'').split(',').map(t=>t.trim())).filter(Boolean).map((t,i)=>(<span key={i} style={{fontSize:10,padding:'2px 6px',background:'rgba(59,130,246,0.15)',border:'1px solid rgba(59,130,246,0.3)',borderRadius:10,color:'#93c5fd'}}>{t}</span>))}</div></div>}<div style={{display:'grid',gridTemplateColumns:'1fr 1fr',gap:6,marginBottom:8}}>{nodeDetail.qualityScore!=null&&<div style={{padding:'6px 8px',background:'rgba(51,65,85,0.4)',borderRadius:6}}><span style={{fontSize:10,color:'#64748b',display:'block'}}>QUALITY</span><span style={{fontSize:13,fontWeight:600,color:nodeDetail.qualityScore>0.7?'#4ade80':nodeDetail.qualityScore>0.4?'#facc15':'#f87171'}}>{(nodeDetail.qualityScore*100).toFixed(0)}%</span></div>}{nodeDetail.links&&nodeDetail.links.length>0&&<div style={{padding:'6px 8px',background:'rgba(51,65,85,0.4)',borderRadius:6}}><span style={{fontSize:10,color:'#64748b',display:'block'}}>CONNECTIONS</span><span style={{fontSize:13,fontWeight:600,color:'#e2e8f0'}}>{nodeDetail.links.length}</span></div>}</div>{(nodeDetail.createdAt||nodeDetail.updatedAt)&&<div style={{borderTop:'1px solid #1e293b',paddingTop:8,display:'flex',gap:12}}>{nodeDetail.createdAt&&<div><span style={{fontSize:10,color:'#475569',display:'block'}}>CREATED</span><span style={{fontSize:10,color:'#64748b'}}>{new Date(nodeDetail.createdAt).toLocaleString()}</span></div>}{nodeDetail.updatedAt&&<div><span style={{fontSize:10,color:'#475569',display:'block'}}>UPDATED</span><span style={{fontSize:10,color:'#64748b'}}>{new Date(nodeDetail.updatedAt).toLocaleString()}</span></div>}</div>}</div>:<div style={{textAlign:'center',padding:'20px 0'}}><p style={{fontSize:11,color:'#64748b'}}>Loading...</p></div>}</div>}<div style={{position:'absolute',bottom:12,left:12,zIndex:9999,background:'rgba(30,41,59,0.92)',border:'1px solid #334155',borderRadius:8,padding:'8px 12px'}}><div style={{fontSize:10,fontWeight:600,color:'#e2e8f0',marginBottom:4}}>Node Types</div>{Object.keys(typeFilters).map((type)=>(<div key={type} style={{display:'flex',alignItems:'center',gap:6,marginBottom:2}}><span style={{width:8,height:8,borderRadius:'50%',background:typeColor(type),display:'inline-block'}}/><span style={{fontSize:10,color:'#cbd5e1',textTransform:'capitalize'}}>{type}</span></div>))}</div></div>);}
|
|
153
153
|
function AnalyticsPage(){const[data,setData]=useState(null);const[loading,setLoading]=useState(true);
|
|
154
154
|
useEffect(()=>{api('/analytics').then(d=>{if(d&&!d.__error)setData(d);setLoading(false);});},[]);
|
|
155
155
|
if(loading)return<div><div className="header"><h2>Analytics</h2></div><p style={{color:'#64748b'}}>Loading...</p></div>;
|