@weavelogic/knowledge-graph-agent 0.3.0 → 0.4.0

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.
Files changed (149) hide show
  1. package/README.md +290 -3
  2. package/dist/_virtual/index10.js +2 -2
  3. package/dist/_virtual/index6.js +2 -2
  4. package/dist/_virtual/index7.js +2 -2
  5. package/dist/_virtual/index8.js +2 -2
  6. package/dist/_virtual/index9.js +2 -2
  7. package/dist/audit/config.d.ts +150 -0
  8. package/dist/audit/config.d.ts.map +1 -0
  9. package/dist/audit/config.js +111 -0
  10. package/dist/audit/config.js.map +1 -0
  11. package/dist/audit/index.d.ts +38 -0
  12. package/dist/audit/index.d.ts.map +1 -0
  13. package/dist/audit/services/audit-chain.d.ts +276 -0
  14. package/dist/audit/services/audit-chain.d.ts.map +1 -0
  15. package/dist/audit/services/audit-chain.js +502 -0
  16. package/dist/audit/services/audit-chain.js.map +1 -0
  17. package/dist/audit/services/index.d.ts +11 -0
  18. package/dist/audit/services/index.d.ts.map +1 -0
  19. package/dist/audit/services/syndication.d.ts +334 -0
  20. package/dist/audit/services/syndication.d.ts.map +1 -0
  21. package/dist/audit/services/syndication.js +589 -0
  22. package/dist/audit/services/syndication.js.map +1 -0
  23. package/dist/audit/types.d.ts +453 -0
  24. package/dist/audit/types.d.ts.map +1 -0
  25. package/dist/cli/commands/audit.d.ts +21 -0
  26. package/dist/cli/commands/audit.d.ts.map +1 -0
  27. package/dist/cli/commands/audit.js +621 -0
  28. package/dist/cli/commands/audit.js.map +1 -0
  29. package/dist/cli/commands/vector.d.ts +14 -0
  30. package/dist/cli/commands/vector.d.ts.map +1 -0
  31. package/dist/cli/commands/vector.js +429 -0
  32. package/dist/cli/commands/vector.js.map +1 -0
  33. package/dist/cli/commands/workflow.d.ts +12 -0
  34. package/dist/cli/commands/workflow.d.ts.map +1 -0
  35. package/dist/cli/commands/workflow.js +471 -0
  36. package/dist/cli/commands/workflow.js.map +1 -0
  37. package/dist/cli/index.d.ts.map +1 -1
  38. package/dist/cli/index.js +26 -0
  39. package/dist/cli/index.js.map +1 -1
  40. package/dist/database/schemas/index.d.ts +85 -0
  41. package/dist/database/schemas/index.d.ts.map +1 -0
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +9 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/mcp-server/tools/audit/checkpoint.d.ts +58 -0
  47. package/dist/mcp-server/tools/audit/checkpoint.d.ts.map +1 -0
  48. package/dist/mcp-server/tools/audit/checkpoint.js +73 -0
  49. package/dist/mcp-server/tools/audit/checkpoint.js.map +1 -0
  50. package/dist/mcp-server/tools/audit/index.d.ts +53 -0
  51. package/dist/mcp-server/tools/audit/index.d.ts.map +1 -0
  52. package/dist/mcp-server/tools/audit/index.js +12 -0
  53. package/dist/mcp-server/tools/audit/index.js.map +1 -0
  54. package/dist/mcp-server/tools/audit/query.d.ts +58 -0
  55. package/dist/mcp-server/tools/audit/query.d.ts.map +1 -0
  56. package/dist/mcp-server/tools/audit/query.js +125 -0
  57. package/dist/mcp-server/tools/audit/query.js.map +1 -0
  58. package/dist/mcp-server/tools/audit/sync.d.ts +58 -0
  59. package/dist/mcp-server/tools/audit/sync.d.ts.map +1 -0
  60. package/dist/mcp-server/tools/audit/sync.js +126 -0
  61. package/dist/mcp-server/tools/audit/sync.js.map +1 -0
  62. package/dist/mcp-server/tools/index.d.ts +3 -0
  63. package/dist/mcp-server/tools/index.d.ts.map +1 -1
  64. package/dist/mcp-server/tools/registry.js +90 -0
  65. package/dist/mcp-server/tools/registry.js.map +1 -1
  66. package/dist/mcp-server/tools/vector/index.d.ts +12 -0
  67. package/dist/mcp-server/tools/vector/index.d.ts.map +1 -0
  68. package/dist/mcp-server/tools/vector/index.js +12 -0
  69. package/dist/mcp-server/tools/vector/index.js.map +1 -0
  70. package/dist/mcp-server/tools/vector/search.d.ts +41 -0
  71. package/dist/mcp-server/tools/vector/search.d.ts.map +1 -0
  72. package/dist/mcp-server/tools/vector/search.js +224 -0
  73. package/dist/mcp-server/tools/vector/search.js.map +1 -0
  74. package/dist/mcp-server/tools/vector/trajectory.d.ts +39 -0
  75. package/dist/mcp-server/tools/vector/trajectory.d.ts.map +1 -0
  76. package/dist/mcp-server/tools/vector/trajectory.js +170 -0
  77. package/dist/mcp-server/tools/vector/trajectory.js.map +1 -0
  78. package/dist/mcp-server/tools/vector/upsert.d.ts +44 -0
  79. package/dist/mcp-server/tools/vector/upsert.d.ts.map +1 -0
  80. package/dist/mcp-server/tools/vector/upsert.js +175 -0
  81. package/dist/mcp-server/tools/vector/upsert.js.map +1 -0
  82. package/dist/mcp-server/tools/workflow/index.d.ts +29 -0
  83. package/dist/mcp-server/tools/workflow/index.d.ts.map +1 -0
  84. package/dist/mcp-server/tools/workflow/index.js +12 -0
  85. package/dist/mcp-server/tools/workflow/index.js.map +1 -0
  86. package/dist/mcp-server/tools/workflow/list.d.ts +41 -0
  87. package/dist/mcp-server/tools/workflow/list.d.ts.map +1 -0
  88. package/dist/mcp-server/tools/workflow/list.js +195 -0
  89. package/dist/mcp-server/tools/workflow/list.js.map +1 -0
  90. package/dist/mcp-server/tools/workflow/start.d.ts +40 -0
  91. package/dist/mcp-server/tools/workflow/start.d.ts.map +1 -0
  92. package/dist/mcp-server/tools/workflow/start.js +165 -0
  93. package/dist/mcp-server/tools/workflow/start.js.map +1 -0
  94. package/dist/mcp-server/tools/workflow/status.d.ts +38 -0
  95. package/dist/mcp-server/tools/workflow/status.d.ts.map +1 -0
  96. package/dist/mcp-server/tools/workflow/status.js +97 -0
  97. package/dist/mcp-server/tools/workflow/status.js.map +1 -0
  98. package/dist/node_modules/ajv/dist/compile/index.js +1 -1
  99. package/dist/node_modules/ajv/dist/vocabularies/applicator/index.js +1 -1
  100. package/dist/node_modules/ajv/dist/vocabularies/core/index.js +1 -1
  101. package/dist/node_modules/ajv/dist/vocabularies/format/index.js +1 -1
  102. package/dist/node_modules/ajv/dist/vocabularies/validation/index.js +1 -1
  103. package/dist/vector/config.d.ts +300 -0
  104. package/dist/vector/config.d.ts.map +1 -0
  105. package/dist/vector/config.js +124 -0
  106. package/dist/vector/config.js.map +1 -0
  107. package/dist/vector/index.d.ts +50 -0
  108. package/dist/vector/index.d.ts.map +1 -0
  109. package/dist/vector/services/index.d.ts +13 -0
  110. package/dist/vector/services/index.d.ts.map +1 -0
  111. package/dist/vector/services/trajectory-tracker.d.ts +405 -0
  112. package/dist/vector/services/trajectory-tracker.d.ts.map +1 -0
  113. package/dist/vector/services/trajectory-tracker.js +445 -0
  114. package/dist/vector/services/trajectory-tracker.js.map +1 -0
  115. package/dist/vector/services/vector-store.d.ts +339 -0
  116. package/dist/vector/services/vector-store.d.ts.map +1 -0
  117. package/dist/vector/services/vector-store.js +748 -0
  118. package/dist/vector/services/vector-store.js.map +1 -0
  119. package/dist/vector/types.d.ts +677 -0
  120. package/dist/vector/types.d.ts.map +1 -0
  121. package/dist/workflow/adapters/goap-adapter.d.ts +196 -0
  122. package/dist/workflow/adapters/goap-adapter.d.ts.map +1 -0
  123. package/dist/workflow/adapters/goap-adapter.js +706 -0
  124. package/dist/workflow/adapters/goap-adapter.js.map +1 -0
  125. package/dist/workflow/adapters/index.d.ts +10 -0
  126. package/dist/workflow/adapters/index.d.ts.map +1 -0
  127. package/dist/workflow/config.d.ts +135 -0
  128. package/dist/workflow/config.d.ts.map +1 -0
  129. package/dist/workflow/config.js +92 -0
  130. package/dist/workflow/config.js.map +1 -0
  131. package/dist/workflow/handlers/index.d.ts +9 -0
  132. package/dist/workflow/handlers/index.d.ts.map +1 -0
  133. package/dist/workflow/handlers/webhook-handlers.d.ts +397 -0
  134. package/dist/workflow/handlers/webhook-handlers.d.ts.map +1 -0
  135. package/dist/workflow/handlers/webhook-handlers.js +454 -0
  136. package/dist/workflow/handlers/webhook-handlers.js.map +1 -0
  137. package/dist/workflow/index.d.ts +42 -0
  138. package/dist/workflow/index.d.ts.map +1 -0
  139. package/dist/workflow/services/index.d.ts +9 -0
  140. package/dist/workflow/services/index.d.ts.map +1 -0
  141. package/dist/workflow/services/workflow-service.d.ts +318 -0
  142. package/dist/workflow/services/workflow-service.d.ts.map +1 -0
  143. package/dist/workflow/services/workflow-service.js +577 -0
  144. package/dist/workflow/services/workflow-service.js.map +1 -0
  145. package/dist/workflow/types.d.ts +470 -0
  146. package/dist/workflow/types.d.ts.map +1 -0
  147. package/dist/workflow/workflows/realtime-collab.d.ts +245 -0
  148. package/dist/workflow/workflows/realtime-collab.d.ts.map +1 -0
  149. package/package.json +1 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Audit Query Tool
3
+ *
4
+ * MCP tool for querying the audit log with filtering by event type,
5
+ * time range, and result limits.
6
+ *
7
+ * @module mcp-server/tools/audit/query
8
+ */
9
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
10
+ import type { ToolHandler } from '../../types/index.js';
11
+ import type { AuditChain } from '../../../audit/services/audit-chain.js';
12
+ /**
13
+ * Audit query tool definition
14
+ *
15
+ * Provides filtering capabilities for the audit log including:
16
+ * - Event type filtering
17
+ * - Time range filtering via ISO timestamps
18
+ * - Result limiting
19
+ * - Optional payload inclusion
20
+ */
21
+ export declare const auditQueryTool: Tool;
22
+ /**
23
+ * Parameters for the audit query tool
24
+ */
25
+ export interface AuditQueryParams {
26
+ /** Filter by event type */
27
+ eventType?: string;
28
+ /** Start time as ISO timestamp */
29
+ startTime?: string;
30
+ /** End time as ISO timestamp */
31
+ endTime?: string;
32
+ /** Maximum results to return */
33
+ limit?: number;
34
+ /** Include full payload in results */
35
+ includePayload?: boolean;
36
+ }
37
+ /**
38
+ * Create audit query handler
39
+ *
40
+ * Factory function that creates a tool handler with access to the audit chain.
41
+ *
42
+ * @param auditChain - The audit chain instance to query
43
+ * @returns Tool handler function
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * const auditChain = createAuditChain({ agentDid: 'did:exo:agent-1' });
48
+ * const handler = createAuditQueryHandler(auditChain);
49
+ *
50
+ * const result = await handler({
51
+ * eventType: 'NodeCreated',
52
+ * limit: 10,
53
+ * includePayload: true
54
+ * });
55
+ * ```
56
+ */
57
+ export declare function createAuditQueryHandler(auditChain?: AuditChain): ToolHandler;
58
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/audit/query.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGzE;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,IAgC5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,WAAW,CA8G5E"}
@@ -0,0 +1,125 @@
1
+ const auditQueryTool = {
2
+ name: "kg_audit_query",
3
+ description: "Query the audit log for events with filtering by type, time range, and limit. Returns events from the deterministic append-only log.",
4
+ inputSchema: {
5
+ type: "object",
6
+ properties: {
7
+ eventType: {
8
+ type: "string",
9
+ description: "Filter by event type (e.g., NodeCreated, WorkflowCompleted, SyncStarted)"
10
+ },
11
+ startTime: {
12
+ type: "string",
13
+ description: "Start time filter as ISO 8601 timestamp (e.g., 2024-01-01T00:00:00Z)"
14
+ },
15
+ endTime: {
16
+ type: "string",
17
+ description: "End time filter as ISO 8601 timestamp (e.g., 2024-12-31T23:59:59Z)"
18
+ },
19
+ limit: {
20
+ type: "number",
21
+ description: "Maximum number of results to return (default: 50, max: 1000)",
22
+ default: 50,
23
+ minimum: 1,
24
+ maximum: 1e3
25
+ },
26
+ includePayload: {
27
+ type: "boolean",
28
+ description: "Include the full event payload in results (default: false)",
29
+ default: false
30
+ }
31
+ }
32
+ }
33
+ };
34
+ function createAuditQueryHandler(auditChain) {
35
+ return async (params) => {
36
+ const startTime = Date.now();
37
+ const {
38
+ eventType,
39
+ startTime: startTimeParam,
40
+ endTime: endTimeParam,
41
+ limit = 50,
42
+ includePayload = false
43
+ } = params;
44
+ try {
45
+ if (!auditChain) {
46
+ return {
47
+ success: false,
48
+ error: "Audit chain not initialized. The exochain audit system is not available.",
49
+ metadata: { executionTime: Date.now() - startTime }
50
+ };
51
+ }
52
+ const safeLimit = Math.min(Math.max(1, Number(limit) || 50), 1e3);
53
+ const queryOptions = {
54
+ limit: safeLimit
55
+ };
56
+ if (eventType && typeof eventType === "string") {
57
+ queryOptions.type = eventType;
58
+ }
59
+ if (startTimeParam && typeof startTimeParam === "string") {
60
+ const startMs = new Date(startTimeParam).getTime();
61
+ if (!isNaN(startMs)) {
62
+ queryOptions.since = { physicalMs: startMs, logical: 0 };
63
+ }
64
+ }
65
+ if (endTimeParam && typeof endTimeParam === "string") {
66
+ const endMs = new Date(endTimeParam).getTime();
67
+ if (!isNaN(endMs)) {
68
+ queryOptions.until = { physicalMs: endMs, logical: Number.MAX_SAFE_INTEGER };
69
+ }
70
+ }
71
+ const result = await auditChain.queryEvents(queryOptions);
72
+ const formattedEvents = result.events.map((event) => {
73
+ const baseEvent = {
74
+ id: event.id,
75
+ type: event.envelope.payload.type,
76
+ author: event.envelope.author,
77
+ timestamp: new Date(event.envelope.hlc.physicalMs).toISOString(),
78
+ hlc: {
79
+ physicalMs: event.envelope.hlc.physicalMs,
80
+ logical: event.envelope.hlc.logical
81
+ },
82
+ parentCount: event.envelope.parents.length
83
+ };
84
+ if (includePayload) {
85
+ return {
86
+ ...baseEvent,
87
+ payload: event.envelope.payload,
88
+ signature: event.signature,
89
+ parents: event.envelope.parents
90
+ };
91
+ }
92
+ return baseEvent;
93
+ });
94
+ return {
95
+ success: true,
96
+ data: {
97
+ events: formattedEvents,
98
+ count: formattedEvents.length,
99
+ totalCount: result.totalCount,
100
+ hasMore: result.hasMore,
101
+ filters: {
102
+ eventType: eventType || null,
103
+ startTime: startTimeParam || null,
104
+ endTime: endTimeParam || null
105
+ }
106
+ },
107
+ metadata: {
108
+ executionTime: Date.now() - startTime,
109
+ itemCount: formattedEvents.length
110
+ }
111
+ };
112
+ } catch (error) {
113
+ return {
114
+ success: false,
115
+ error: error instanceof Error ? error.message : String(error),
116
+ metadata: { executionTime: Date.now() - startTime }
117
+ };
118
+ }
119
+ };
120
+ }
121
+ export {
122
+ auditQueryTool,
123
+ createAuditQueryHandler
124
+ };
125
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sources":["../../../../src/mcp-server/tools/audit/query.ts"],"sourcesContent":["/**\n * Audit Query Tool\n *\n * MCP tool for querying the audit log with filtering by event type,\n * time range, and result limits.\n *\n * @module mcp-server/tools/audit/query\n */\n\nimport type { Tool } from '@modelcontextprotocol/sdk/types.js';\nimport type { ToolHandler, ToolResult } from '../../types/index.js';\nimport type { AuditChain } from '../../../audit/services/audit-chain.js';\nimport type { HybridLogicalClock, KnowledgeGraphEventPayload } from '../../../audit/types.js';\n\n/**\n * Audit query tool definition\n *\n * Provides filtering capabilities for the audit log including:\n * - Event type filtering\n * - Time range filtering via ISO timestamps\n * - Result limiting\n * - Optional payload inclusion\n */\nexport const auditQueryTool: Tool = {\n name: 'kg_audit_query',\n description: 'Query the audit log for events with filtering by type, time range, and limit. Returns events from the deterministic append-only log.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n eventType: {\n type: 'string',\n description: 'Filter by event type (e.g., NodeCreated, WorkflowCompleted, SyncStarted)',\n },\n startTime: {\n type: 'string',\n description: 'Start time filter as ISO 8601 timestamp (e.g., 2024-01-01T00:00:00Z)',\n },\n endTime: {\n type: 'string',\n description: 'End time filter as ISO 8601 timestamp (e.g., 2024-12-31T23:59:59Z)',\n },\n limit: {\n type: 'number',\n description: 'Maximum number of results to return (default: 50, max: 1000)',\n default: 50,\n minimum: 1,\n maximum: 1000,\n },\n includePayload: {\n type: 'boolean',\n description: 'Include the full event payload in results (default: false)',\n default: false,\n },\n },\n },\n};\n\n/**\n * Parameters for the audit query tool\n */\nexport interface AuditQueryParams {\n /** Filter by event type */\n eventType?: string;\n /** Start time as ISO timestamp */\n startTime?: string;\n /** End time as ISO timestamp */\n endTime?: string;\n /** Maximum results to return */\n limit?: number;\n /** Include full payload in results */\n includePayload?: boolean;\n}\n\n/**\n * Create audit query handler\n *\n * Factory function that creates a tool handler with access to the audit chain.\n *\n * @param auditChain - The audit chain instance to query\n * @returns Tool handler function\n *\n * @example\n * ```typescript\n * const auditChain = createAuditChain({ agentDid: 'did:exo:agent-1' });\n * const handler = createAuditQueryHandler(auditChain);\n *\n * const result = await handler({\n * eventType: 'NodeCreated',\n * limit: 10,\n * includePayload: true\n * });\n * ```\n */\nexport function createAuditQueryHandler(auditChain?: AuditChain): ToolHandler {\n return async (params: Record<string, unknown>): Promise<ToolResult> => {\n const startTime = Date.now();\n const {\n eventType,\n startTime: startTimeParam,\n endTime: endTimeParam,\n limit = 50,\n includePayload = false,\n } = params as AuditQueryParams;\n\n try {\n // Check audit chain availability\n if (!auditChain) {\n return {\n success: false,\n error: 'Audit chain not initialized. The exochain audit system is not available.',\n metadata: { executionTime: Date.now() - startTime },\n };\n }\n\n // Enforce limits\n const safeLimit = Math.min(Math.max(1, Number(limit) || 50), 1000);\n\n // Build query options\n const queryOptions: {\n type?: KnowledgeGraphEventPayload['type'];\n since?: HybridLogicalClock;\n until?: HybridLogicalClock;\n limit: number;\n includeProof?: boolean;\n } = {\n limit: safeLimit,\n };\n\n // Add event type filter\n if (eventType && typeof eventType === 'string') {\n queryOptions.type = eventType as KnowledgeGraphEventPayload['type'];\n }\n\n // Add time range filters\n if (startTimeParam && typeof startTimeParam === 'string') {\n const startMs = new Date(startTimeParam).getTime();\n if (!isNaN(startMs)) {\n queryOptions.since = { physicalMs: startMs, logical: 0 };\n }\n }\n\n if (endTimeParam && typeof endTimeParam === 'string') {\n const endMs = new Date(endTimeParam).getTime();\n if (!isNaN(endMs)) {\n queryOptions.until = { physicalMs: endMs, logical: Number.MAX_SAFE_INTEGER };\n }\n }\n\n // Execute query\n const result = await auditChain.queryEvents(queryOptions);\n\n // Format results\n const formattedEvents = result.events.map((event) => {\n const baseEvent = {\n id: event.id,\n type: event.envelope.payload.type,\n author: event.envelope.author,\n timestamp: new Date(event.envelope.hlc.physicalMs).toISOString(),\n hlc: {\n physicalMs: event.envelope.hlc.physicalMs,\n logical: event.envelope.hlc.logical,\n },\n parentCount: event.envelope.parents.length,\n };\n\n if (includePayload) {\n return {\n ...baseEvent,\n payload: event.envelope.payload,\n signature: event.signature,\n parents: event.envelope.parents,\n };\n }\n\n return baseEvent;\n });\n\n return {\n success: true,\n data: {\n events: formattedEvents,\n count: formattedEvents.length,\n totalCount: result.totalCount,\n hasMore: result.hasMore,\n filters: {\n eventType: eventType || null,\n startTime: startTimeParam || null,\n endTime: endTimeParam || null,\n },\n },\n metadata: {\n executionTime: Date.now() - startTime,\n itemCount: formattedEvents.length,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n metadata: { executionTime: Date.now() - startTime },\n };\n }\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Sync Status Tool
3
+ *
4
+ * MCP tool for checking the syndication status of the audit chain
5
+ * across peer environments.
6
+ *
7
+ * @module mcp-server/tools/audit/sync
8
+ */
9
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
10
+ import type { ToolHandler } from '../../types/index.js';
11
+ import type { SyndicationService } from '../../../audit/services/syndication.js';
12
+ /**
13
+ * Sync status tool definition
14
+ *
15
+ * Provides visibility into peer synchronization status,
16
+ * including connection state, sync history, and error tracking.
17
+ */
18
+ export declare const syncStatusTool: Tool;
19
+ /**
20
+ * Parameters for the sync status tool
21
+ */
22
+ export interface SyncStatusParams {
23
+ /** Specific peer ID to check */
24
+ peerId?: string;
25
+ /** Include detailed information */
26
+ detailed?: boolean;
27
+ }
28
+ /**
29
+ * Create sync status handler
30
+ *
31
+ * Factory function that creates a tool handler for checking sync status.
32
+ *
33
+ * @param syndicationService - The syndication service instance
34
+ * @returns Tool handler function
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * const syndication = createSyndicationService({ auditChain, peers: [...] });
39
+ * const handler = createSyncStatusHandler(syndication);
40
+ *
41
+ * // Get all peers status
42
+ * const result = await handler({ detailed: true });
43
+ *
44
+ * // Get specific peer status
45
+ * const result = await handler({ peerId: 'peer-abc123', detailed: true });
46
+ * ```
47
+ */
48
+ export declare function createSyncStatusHandler(syndicationService?: SyndicationService): ToolHandler;
49
+ /**
50
+ * Trigger a manual sync with all peers
51
+ *
52
+ * Utility function to force an immediate sync operation.
53
+ *
54
+ * @param syndicationService - The syndication service instance
55
+ * @returns Array of sync results
56
+ */
57
+ export declare function triggerManualSync(syndicationService: SyndicationService): Promise<import("../../../audit/services/syndication.js").SyncResult[]>;
58
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/audit/sync.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAY,MAAM,wCAAwC,CAAC;AAE3F;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAyH5F;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,0EAE7E"}
@@ -0,0 +1,126 @@
1
+ const syncStatusTool = {
2
+ name: "kg_sync_status",
3
+ description: "Check the syndication status of the audit chain across peer environments. Shows peer connections, sync history, and error states.",
4
+ inputSchema: {
5
+ type: "object",
6
+ properties: {
7
+ peerId: {
8
+ type: "string",
9
+ description: "Specific peer ID to check status for (optional, returns all peers if not specified)"
10
+ },
11
+ detailed: {
12
+ type: "boolean",
13
+ description: "Include detailed sync metrics and history (default: false)",
14
+ default: false
15
+ }
16
+ }
17
+ }
18
+ };
19
+ function createSyncStatusHandler(syndicationService) {
20
+ return async (params) => {
21
+ const startTime = Date.now();
22
+ const { peerId, detailed = false } = params;
23
+ try {
24
+ if (!syndicationService) {
25
+ return {
26
+ success: false,
27
+ error: "Syndication service not initialized. Cross-environment sync is not available.",
28
+ metadata: { executionTime: Date.now() - startTime }
29
+ };
30
+ }
31
+ const formatPeerInfo = (peer) => {
32
+ const baseInfo = {
33
+ id: peer.id,
34
+ endpoint: peer.endpoint,
35
+ status: peer.status,
36
+ lastSyncTime: peer.lastSyncTime?.toISOString() || null,
37
+ errorCount: peer.errors,
38
+ lastError: peer.lastError || null
39
+ };
40
+ if (detailed) {
41
+ baseInfo.metrics = {
42
+ eventsReceived: peer.eventsReceived,
43
+ eventsSent: peer.eventsSent,
44
+ latency: peer.latency ?? null,
45
+ lastCheckpointHeight: peer.lastCheckpointHeight ?? null
46
+ };
47
+ }
48
+ return baseInfo;
49
+ };
50
+ if (peerId && typeof peerId === "string") {
51
+ const peer = syndicationService.getPeer(peerId);
52
+ if (!peer) {
53
+ return {
54
+ success: false,
55
+ error: `Peer not found: ${peerId}`,
56
+ metadata: { executionTime: Date.now() - startTime }
57
+ };
58
+ }
59
+ return {
60
+ success: true,
61
+ data: {
62
+ peer: formatPeerInfo(peer),
63
+ serviceStatus: {
64
+ running: syndicationService.isServiceRunning(),
65
+ syncing: syndicationService.isSyncing()
66
+ }
67
+ },
68
+ metadata: {
69
+ executionTime: Date.now() - startTime
70
+ }
71
+ };
72
+ }
73
+ const allPeers = syndicationService.getAllPeers();
74
+ const stats = syndicationService.getStats();
75
+ const formattedPeers = allPeers.map(formatPeerInfo);
76
+ const peersByStatus = {
77
+ connected: formattedPeers.filter((p) => p.status === "connected"),
78
+ syncing: formattedPeers.filter((p) => p.status === "syncing"),
79
+ disconnected: formattedPeers.filter((p) => p.status === "disconnected"),
80
+ error: formattedPeers.filter((p) => p.status === "error")
81
+ };
82
+ const responseData = {
83
+ peers: formattedPeers,
84
+ peersByStatus,
85
+ summary: {
86
+ totalPeers: stats.totalPeers,
87
+ connectedPeers: stats.connectedPeers,
88
+ syncingPeers: stats.syncingPeers,
89
+ errorPeers: stats.errorPeers
90
+ },
91
+ serviceStatus: {
92
+ running: stats.isRunning,
93
+ autoSyncEnabled: stats.autoSyncEnabled,
94
+ syncInterval: stats.syncInterval,
95
+ syncing: syndicationService.isSyncing()
96
+ }
97
+ };
98
+ if (detailed) {
99
+ responseData.aggregateMetrics = {
100
+ totalEventsReceived: stats.totalEventsReceived,
101
+ totalEventsSent: stats.totalEventsSent,
102
+ totalErrors: stats.totalErrors
103
+ };
104
+ }
105
+ return {
106
+ success: true,
107
+ data: responseData,
108
+ metadata: {
109
+ executionTime: Date.now() - startTime,
110
+ itemCount: formattedPeers.length
111
+ }
112
+ };
113
+ } catch (error) {
114
+ return {
115
+ success: false,
116
+ error: error instanceof Error ? error.message : String(error),
117
+ metadata: { executionTime: Date.now() - startTime }
118
+ };
119
+ }
120
+ };
121
+ }
122
+ export {
123
+ createSyncStatusHandler,
124
+ syncStatusTool
125
+ };
126
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sources":["../../../../src/mcp-server/tools/audit/sync.ts"],"sourcesContent":["/**\n * Sync Status Tool\n *\n * MCP tool for checking the syndication status of the audit chain\n * across peer environments.\n *\n * @module mcp-server/tools/audit/sync\n */\n\nimport type { Tool } from '@modelcontextprotocol/sdk/types.js';\nimport type { ToolHandler, ToolResult } from '../../types/index.js';\nimport type { SyndicationService, PeerInfo } from '../../../audit/services/syndication.js';\n\n/**\n * Sync status tool definition\n *\n * Provides visibility into peer synchronization status,\n * including connection state, sync history, and error tracking.\n */\nexport const syncStatusTool: Tool = {\n name: 'kg_sync_status',\n description: 'Check the syndication status of the audit chain across peer environments. Shows peer connections, sync history, and error states.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n peerId: {\n type: 'string',\n description: 'Specific peer ID to check status for (optional, returns all peers if not specified)',\n },\n detailed: {\n type: 'boolean',\n description: 'Include detailed sync metrics and history (default: false)',\n default: false,\n },\n },\n },\n};\n\n/**\n * Parameters for the sync status tool\n */\nexport interface SyncStatusParams {\n /** Specific peer ID to check */\n peerId?: string;\n /** Include detailed information */\n detailed?: boolean;\n}\n\n/**\n * Formatted peer status for API response\n */\ninterface FormattedPeerStatus {\n /** Peer identifier */\n id: string;\n /** Network endpoint */\n endpoint: string;\n /** Connection status */\n status: string;\n /** Last sync timestamp */\n lastSyncTime: string | null;\n /** Error count */\n errorCount: number;\n /** Last error message */\n lastError: string | null;\n /** Detailed metrics (when detailed=true) */\n metrics?: {\n eventsReceived: number;\n eventsSent: number;\n latency: number | null;\n lastCheckpointHeight: number | null;\n };\n}\n\n/**\n * Create sync status handler\n *\n * Factory function that creates a tool handler for checking sync status.\n *\n * @param syndicationService - The syndication service instance\n * @returns Tool handler function\n *\n * @example\n * ```typescript\n * const syndication = createSyndicationService({ auditChain, peers: [...] });\n * const handler = createSyncStatusHandler(syndication);\n *\n * // Get all peers status\n * const result = await handler({ detailed: true });\n *\n * // Get specific peer status\n * const result = await handler({ peerId: 'peer-abc123', detailed: true });\n * ```\n */\nexport function createSyncStatusHandler(syndicationService?: SyndicationService): ToolHandler {\n return async (params: Record<string, unknown>): Promise<ToolResult> => {\n const startTime = Date.now();\n const { peerId, detailed = false } = params as SyncStatusParams;\n\n try {\n // Check syndication service availability\n if (!syndicationService) {\n return {\n success: false,\n error: 'Syndication service not initialized. Cross-environment sync is not available.',\n metadata: { executionTime: Date.now() - startTime },\n };\n }\n\n // Format peer info for response\n const formatPeerInfo = (peer: PeerInfo): FormattedPeerStatus => {\n const baseInfo: FormattedPeerStatus = {\n id: peer.id,\n endpoint: peer.endpoint,\n status: peer.status,\n lastSyncTime: peer.lastSyncTime?.toISOString() || null,\n errorCount: peer.errors,\n lastError: peer.lastError || null,\n };\n\n if (detailed) {\n baseInfo.metrics = {\n eventsReceived: peer.eventsReceived,\n eventsSent: peer.eventsSent,\n latency: peer.latency ?? null,\n lastCheckpointHeight: peer.lastCheckpointHeight ?? null,\n };\n }\n\n return baseInfo;\n };\n\n // Handle specific peer query\n if (peerId && typeof peerId === 'string') {\n const peer = syndicationService.getPeer(peerId);\n\n if (!peer) {\n return {\n success: false,\n error: `Peer not found: ${peerId}`,\n metadata: { executionTime: Date.now() - startTime },\n };\n }\n\n return {\n success: true,\n data: {\n peer: formatPeerInfo(peer),\n serviceStatus: {\n running: syndicationService.isServiceRunning(),\n syncing: syndicationService.isSyncing(),\n },\n },\n metadata: {\n executionTime: Date.now() - startTime,\n },\n };\n }\n\n // Get all peers status\n const allPeers = syndicationService.getAllPeers();\n const stats = syndicationService.getStats();\n\n const formattedPeers = allPeers.map(formatPeerInfo);\n\n // Group peers by status\n const peersByStatus: Record<string, FormattedPeerStatus[]> = {\n connected: formattedPeers.filter((p) => p.status === 'connected'),\n syncing: formattedPeers.filter((p) => p.status === 'syncing'),\n disconnected: formattedPeers.filter((p) => p.status === 'disconnected'),\n error: formattedPeers.filter((p) => p.status === 'error'),\n };\n\n const responseData: Record<string, unknown> = {\n peers: formattedPeers,\n peersByStatus,\n summary: {\n totalPeers: stats.totalPeers,\n connectedPeers: stats.connectedPeers,\n syncingPeers: stats.syncingPeers,\n errorPeers: stats.errorPeers,\n },\n serviceStatus: {\n running: stats.isRunning,\n autoSyncEnabled: stats.autoSyncEnabled,\n syncInterval: stats.syncInterval,\n syncing: syndicationService.isSyncing(),\n },\n };\n\n // Include aggregate metrics if detailed\n if (detailed) {\n responseData.aggregateMetrics = {\n totalEventsReceived: stats.totalEventsReceived,\n totalEventsSent: stats.totalEventsSent,\n totalErrors: stats.totalErrors,\n };\n }\n\n return {\n success: true,\n data: responseData,\n metadata: {\n executionTime: Date.now() - startTime,\n itemCount: formattedPeers.length,\n },\n };\n } catch (error) {\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n metadata: { executionTime: Date.now() - startTime },\n };\n }\n };\n}\n\n/**\n * Trigger a manual sync with all peers\n *\n * Utility function to force an immediate sync operation.\n *\n * @param syndicationService - The syndication service instance\n * @returns Array of sync results\n */\nexport async function triggerManualSync(syndicationService: SyndicationService) {\n return syndicationService.forceSyncNow();\n}\n"],"names":[],"mappings":"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"}
@@ -10,4 +10,7 @@ export { graphQueryTool, createGraphQueryHandler, graphStatsTool, createGraphSta
10
10
  export { searchNodesTool, createSearchNodesHandler, searchTagsTool, createSearchTagsHandler, } from './search/index.js';
11
11
  export { agentSpawnTool, createAgentSpawnHandler, agentListTool, createAgentListHandler, } from './agents/index.js';
12
12
  export { healthCheckTool, createHealthCheckHandler, } from './health.js';
13
+ export { auditQueryTool, createAuditQueryHandler, auditCheckpointTool, createAuditCheckpointHandler, getLatestCheckpoint, syncStatusTool, createSyncStatusHandler, triggerManualSync, auditToolDefinitions, } from './audit/index.js';
14
+ export { vectorSearchTool, createVectorSearchHandler, vectorUpsertTool, createVectorUpsertHandler, trajectoryListTool, createTrajectoryListHandler, } from './vector/index.js';
15
+ export { workflowStartTool, createWorkflowStartHandler, workflowStatusTool, createWorkflowStatusHandler, workflowListTool, createWorkflowListHandler, } from './workflow/index.js';
13
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,cAAc,EACd,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,cAAc,EACd,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,aAAa,EACb,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,4BAA4B,EAC5B,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,0BAA0B,EAC1B,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC"}
@@ -308,6 +308,9 @@ async function registerCoreTools() {
308
308
  "graph"
309
309
  );
310
310
  await registerAgentTools();
311
+ await registerWorkflowTools();
312
+ await registerVectorTools();
313
+ await registerAuditTools();
311
314
  logger.debug("Core tools registered");
312
315
  }
313
316
  async function registerAgentTools() {
@@ -648,6 +651,93 @@ async function registerAgentTools() {
648
651
  );
649
652
  logger.debug("Agent tools registered");
650
653
  }
654
+ async function registerWorkflowTools() {
655
+ const {
656
+ workflowStartTool,
657
+ createWorkflowStartHandler,
658
+ workflowStatusTool,
659
+ createWorkflowStatusHandler,
660
+ workflowListTool,
661
+ createWorkflowListHandler
662
+ } = await import("./workflow/index.js");
663
+ registerTool(
664
+ workflowStartTool.name,
665
+ workflowStartTool,
666
+ createWorkflowStartHandler(),
667
+ "workflow"
668
+ );
669
+ registerTool(
670
+ workflowStatusTool.name,
671
+ workflowStatusTool,
672
+ createWorkflowStatusHandler(),
673
+ "workflow"
674
+ );
675
+ registerTool(
676
+ workflowListTool.name,
677
+ workflowListTool,
678
+ createWorkflowListHandler(),
679
+ "workflow"
680
+ );
681
+ logger.debug("Workflow tools registered");
682
+ }
683
+ async function registerVectorTools() {
684
+ const {
685
+ vectorSearchTool,
686
+ createVectorSearchHandler,
687
+ vectorUpsertTool,
688
+ createVectorUpsertHandler,
689
+ trajectoryListTool,
690
+ createTrajectoryListHandler
691
+ } = await import("./vector/index.js");
692
+ registerTool(
693
+ vectorSearchTool.name,
694
+ vectorSearchTool,
695
+ createVectorSearchHandler(),
696
+ "vector"
697
+ );
698
+ registerTool(
699
+ vectorUpsertTool.name,
700
+ vectorUpsertTool,
701
+ createVectorUpsertHandler(),
702
+ "vector"
703
+ );
704
+ registerTool(
705
+ trajectoryListTool.name,
706
+ trajectoryListTool,
707
+ createTrajectoryListHandler(),
708
+ "vector"
709
+ );
710
+ logger.debug("Vector tools registered");
711
+ }
712
+ async function registerAuditTools() {
713
+ const {
714
+ auditQueryTool,
715
+ createAuditQueryHandler,
716
+ auditCheckpointTool,
717
+ createAuditCheckpointHandler,
718
+ syncStatusTool,
719
+ createSyncStatusHandler
720
+ } = await import("./audit/index.js");
721
+ registerTool(
722
+ auditQueryTool.name,
723
+ auditQueryTool,
724
+ createAuditQueryHandler(),
725
+ "audit"
726
+ );
727
+ registerTool(
728
+ auditCheckpointTool.name,
729
+ auditCheckpointTool,
730
+ createAuditCheckpointHandler(),
731
+ "audit"
732
+ );
733
+ registerTool(
734
+ syncStatusTool.name,
735
+ syncStatusTool,
736
+ createSyncStatusHandler(),
737
+ "audit"
738
+ );
739
+ logger.debug("Audit tools registered");
740
+ }
651
741
  export {
652
742
  getCache,
653
743
  getDatabase,