@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
package/README.md CHANGED
@@ -13,6 +13,7 @@ A powerful NPM library for creating and managing knowledge graphs for Claude Cod
13
13
  | 2 | Core Features | Agent system, rules engine, workflows, MCP server |
14
14
  | 3 | Advanced Integration | Service management, config migrations, health monitoring |
15
15
  | 4 | Enterprise Features | Chunking, backup/recovery, advanced caching, diagnostics |
16
+ | 5 | External Integrations | Workflow DevKit, RuVector semantic search, Exochain audit trail |
16
17
 
17
18
  ## Installation
18
19
 
@@ -240,7 +241,7 @@ const message = generateCommitMessage(changes);
240
241
  console.log(message);
241
242
  ```
242
243
 
243
- ### MCP Server with 20+ Tools
244
+ ### MCP Server with 30+ Tools
244
245
 
245
246
  Model Context Protocol server for Claude integration.
246
247
 
@@ -261,6 +262,11 @@ npx @weavelogic/knowledge-graph-agent mcp start
261
262
  | Agents | `kg_agent_spawn`, `kg_agent_list` |
262
263
  | System | `kg_health`, `kg_health_check` |
263
264
  | Search | `kg_search_nodes`, `kg_search_tags` |
265
+ | Workflow | `kg_workflow_start`, `kg_workflow_status`, `kg_workflow_list` |
266
+ | Vector | `kg_vector_search`, `kg_vector_upsert` |
267
+ | Trajectory | `kg_trajectory_list` |
268
+ | Audit | `kg_audit_query`, `kg_audit_checkpoint` |
269
+ | Sync | `kg_sync_status` |
264
270
 
265
271
  ---
266
272
 
@@ -579,6 +585,201 @@ kg diag info
579
585
 
580
586
  ---
581
587
 
588
+ ## Phase 5: External Integrations
589
+
590
+ ### Workflow DevKit Integration (useworkflow.dev)
591
+
592
+ Integration with the Workflow DevKit for durable workflow orchestration with Postgres persistence.
593
+
594
+ **Key Concepts:**
595
+ - **Postgres World**: Durable state persistence with transactional guarantees
596
+ - **"use workflow" / "use step" directives**: Declarative workflow definition
597
+ - **DurableAgent**: Agents that survive restarts and can resume from any step
598
+ - **GOAP Planning**: Goal-Oriented Action Planning for intelligent task decomposition
599
+
600
+ ```typescript
601
+ import { WorkflowManager } from '@weavelogic/knowledge-graph-agent';
602
+
603
+ const workflow = new WorkflowManager({
604
+ postgres: process.env.DATABASE_URL,
605
+ durableAgents: true,
606
+ });
607
+
608
+ // Start a durable workflow
609
+ const execution = await workflow.start('document-analysis', {
610
+ input: { path: '/docs' },
611
+ resumable: true,
612
+ });
613
+
614
+ // Check workflow status
615
+ const status = await workflow.getStatus(execution.id);
616
+ console.log(`Step ${status.currentStep}/${status.totalSteps}: ${status.state}`);
617
+
618
+ // List active workflows
619
+ const active = await workflow.list({ status: 'running' });
620
+ ```
621
+
622
+ **CLI Commands:**
623
+
624
+ | Command | Description |
625
+ |---------|-------------|
626
+ | `kg workflow start <name>` | Start a named workflow |
627
+ | `kg workflow status <id>` | Get workflow execution status |
628
+ | `kg workflow list` | List active workflow executions |
629
+ | `kg workflow resume <id>` | Resume a paused workflow |
630
+ | `kg workflow cancel <id>` | Cancel a running workflow |
631
+ | `kg workflow history <name>` | Show workflow execution history |
632
+ | `kg workflow steps <name>` | List steps in a workflow definition |
633
+
634
+ **MCP Tools:**
635
+ - `kg_workflow_start` - Start a workflow execution
636
+ - `kg_workflow_status` - Get execution status and progress
637
+ - `kg_workflow_list` - List workflows with filtering
638
+
639
+ ---
640
+
641
+ ### RuVector Integration
642
+
643
+ High-performance semantic vector search with HNSW indexing and trajectory tracking for self-learning agents.
644
+
645
+ **Key Features:**
646
+ - **HNSW Approximate Nearest Neighbor**: Sub-millisecond search on millions of vectors
647
+ - **Hybrid Search**: Combines vector similarity with keyword matching
648
+ - **Trajectory Tracking**: Records decision paths for experience replay
649
+ - **Self-Learning**: Agents improve through trajectory analysis
650
+
651
+ ```typescript
652
+ import { VectorStore, TrajectoryTracker } from '@weavelogic/knowledge-graph-agent';
653
+
654
+ // Initialize vector store
655
+ const vectors = new VectorStore({
656
+ dimensions: 1536,
657
+ metric: 'cosine',
658
+ hnswConfig: { m: 16, efConstruction: 200 },
659
+ });
660
+
661
+ // Upsert vectors with metadata
662
+ await vectors.upsert([
663
+ { id: 'doc-1', values: embedding, metadata: { type: 'concept', tags: ['api'] } },
664
+ ]);
665
+
666
+ // Semantic search
667
+ const results = await vectors.search(queryEmbedding, {
668
+ topK: 10,
669
+ filter: { type: 'concept' },
670
+ includeMetadata: true,
671
+ });
672
+
673
+ // Hybrid search (vector + keyword)
674
+ const hybridResults = await vectors.hybridSearch({
675
+ vector: queryEmbedding,
676
+ keywords: ['authentication', 'oauth'],
677
+ alpha: 0.7, // Weight: 70% vector, 30% keyword
678
+ });
679
+
680
+ // Trajectory tracking for self-learning
681
+ const tracker = new TrajectoryTracker();
682
+ tracker.recordStep({
683
+ state: { context: 'user-query' },
684
+ action: 'search-knowledge-graph',
685
+ reward: 0.8,
686
+ nextState: { context: 'results-found' },
687
+ });
688
+
689
+ const trajectories = tracker.list({ minReward: 0.7 });
690
+ ```
691
+
692
+ **CLI Commands:**
693
+
694
+ | Command | Description |
695
+ |---------|-------------|
696
+ | `kg vector search <query>` | Semantic search across knowledge graph |
697
+ | `kg vector upsert <file>` | Add/update vectors from file |
698
+ | `kg vector delete <ids>` | Delete vectors by ID |
699
+ | `kg vector stats` | Show vector index statistics |
700
+ | `kg trajectory list` | List recorded trajectories |
701
+ | `kg trajectory analyze` | Analyze trajectory patterns |
702
+ | `kg trajectory export` | Export trajectories for training |
703
+ | `kg trajectory prune` | Remove low-value trajectories |
704
+
705
+ **MCP Tools:**
706
+ - `kg_vector_search` - Semantic search with filters
707
+ - `kg_vector_upsert` - Add or update vectors
708
+ - `kg_trajectory_list` - List agent trajectories
709
+
710
+ ---
711
+
712
+ ### Exochain Integration
713
+
714
+ Cryptographically verifiable audit trail with DAG-BFT consensus for distributed knowledge graph operations.
715
+
716
+ **Key Features:**
717
+ - **DAG-BFT Consensus**: Byzantine Fault Tolerant ordering without leader
718
+ - **Hybrid Logical Clocks (HLC)**: Causally consistent timestamps
719
+ - **BLAKE3 Hashing**: Fast cryptographic content addressing
720
+ - **Ed25519 Signatures**: Agent-signed operations
721
+ - **Syndication**: Replicate audit logs across nodes
722
+
723
+ ```typescript
724
+ import { AuditTrail, SyncManager } from '@weavelogic/knowledge-graph-agent';
725
+
726
+ // Initialize audit trail
727
+ const audit = new AuditTrail({
728
+ signingKey: process.env.AGENT_PRIVATE_KEY,
729
+ hlcEnabled: true,
730
+ dagBftQuorum: 3,
731
+ });
732
+
733
+ // Record an audited operation
734
+ const checkpoint = await audit.checkpoint({
735
+ operation: 'node_created',
736
+ nodeId: 'concept-123',
737
+ agent: 'coder-agent',
738
+ data: { title: 'Authentication Flow' },
739
+ });
740
+
741
+ console.log(`Checkpoint: ${checkpoint.hash}`);
742
+ console.log(`HLC: ${checkpoint.hlc}`);
743
+ console.log(`Signature: ${checkpoint.signature}`);
744
+
745
+ // Query audit trail
746
+ const history = await audit.query({
747
+ nodeId: 'concept-123',
748
+ since: '2024-01-01',
749
+ operations: ['node_created', 'node_updated'],
750
+ });
751
+
752
+ // Sync with remote nodes
753
+ const sync = new SyncManager({
754
+ peers: ['node1.example.com', 'node2.example.com'],
755
+ syndication: true,
756
+ });
757
+
758
+ const status = await sync.getStatus();
759
+ console.log(`Synced: ${status.lastSyncedHash}`);
760
+ console.log(`Peers: ${status.connectedPeers}/${status.totalPeers}`);
761
+ ```
762
+
763
+ **CLI Commands:**
764
+
765
+ | Command | Description |
766
+ |---------|-------------|
767
+ | `kg audit query` | Query audit trail with filters |
768
+ | `kg audit checkpoint` | Create a manual checkpoint |
769
+ | `kg audit verify <hash>` | Verify checkpoint integrity |
770
+ | `kg audit export` | Export audit log |
771
+ | `kg audit stats` | Show audit trail statistics |
772
+ | `kg sync status` | Show synchronization status |
773
+ | `kg sync peers` | List connected peers |
774
+ | `kg sync force` | Force synchronization |
775
+
776
+ **MCP Tools:**
777
+ - `kg_audit_query` - Query audit trail
778
+ - `kg_audit_checkpoint` - Create checkpoint
779
+ - `kg_sync_status` - Get sync status
780
+
781
+ ---
782
+
582
783
  ## CLI Commands Reference
583
784
 
584
785
  ### Initialization
@@ -668,6 +869,54 @@ kg diag info
668
869
  | `kg diag backup --list` | List existing backups |
669
870
  | `kg diag info` | Show system information |
670
871
 
872
+ ### Workflow (Phase 5)
873
+
874
+ | Command | Description |
875
+ |---------|-------------|
876
+ | `kg workflow start <name>` | Start a named workflow |
877
+ | `kg workflow status <id>` | Get workflow execution status |
878
+ | `kg workflow list` | List active workflow executions |
879
+ | `kg workflow resume <id>` | Resume a paused workflow |
880
+ | `kg workflow cancel <id>` | Cancel a running workflow |
881
+ | `kg workflow history <name>` | Show workflow execution history |
882
+ | `kg workflow steps <name>` | List steps in a workflow definition |
883
+
884
+ ### Vector Search (Phase 5)
885
+
886
+ | Command | Description |
887
+ |---------|-------------|
888
+ | `kg vector search <query>` | Semantic search across knowledge graph |
889
+ | `kg vector upsert <file>` | Add/update vectors from file |
890
+ | `kg vector delete <ids>` | Delete vectors by ID |
891
+ | `kg vector stats` | Show vector index statistics |
892
+
893
+ ### Trajectory (Phase 5)
894
+
895
+ | Command | Description |
896
+ |---------|-------------|
897
+ | `kg trajectory list` | List recorded trajectories |
898
+ | `kg trajectory analyze` | Analyze trajectory patterns |
899
+ | `kg trajectory export` | Export trajectories for training |
900
+ | `kg trajectory prune` | Remove low-value trajectories |
901
+
902
+ ### Audit Trail (Phase 5)
903
+
904
+ | Command | Description |
905
+ |---------|-------------|
906
+ | `kg audit query` | Query audit trail with filters |
907
+ | `kg audit checkpoint` | Create a manual checkpoint |
908
+ | `kg audit verify <hash>` | Verify checkpoint integrity |
909
+ | `kg audit export` | Export audit log |
910
+ | `kg audit stats` | Show audit trail statistics |
911
+
912
+ ### Synchronization (Phase 5)
913
+
914
+ | Command | Description |
915
+ |---------|-------------|
916
+ | `kg sync status` | Show synchronization status |
917
+ | `kg sync peers` | List connected peers |
918
+ | `kg sync force` | Force synchronization |
919
+
671
920
  ---
672
921
 
673
922
  ## Configuration
@@ -762,10 +1011,27 @@ import {
762
1011
  // Reasoning
763
1012
  createDecisionTracker,
764
1013
 
1014
+ // Phase 5 - Workflow DevKit
1015
+ WorkflowManager,
1016
+ DurableAgent,
1017
+ GOAPPlanner,
1018
+
1019
+ // Phase 5 - RuVector
1020
+ VectorStore,
1021
+ TrajectoryTracker,
1022
+
1023
+ // Phase 5 - Exochain
1024
+ AuditTrail,
1025
+ SyncManager,
1026
+
765
1027
  // Types
766
1028
  type KGConfiguration,
767
1029
  type AgentConfig,
768
1030
  type ChunkOptions,
1031
+ type WorkflowExecution,
1032
+ type VectorSearchResult,
1033
+ type Trajectory,
1034
+ type AuditCheckpoint,
769
1035
  } from '@weavelogic/knowledge-graph-agent';
770
1036
  ```
771
1037
 
@@ -773,6 +1039,24 @@ import {
773
1039
 
774
1040
  ## Changelog
775
1041
 
1042
+ ### v0.5.0 (Phase 5 - External Integrations)
1043
+
1044
+ - **NEW**: Workflow DevKit integration with MCP tools and CLI commands
1045
+ - `WorkflowManager` with Postgres World persistence
1046
+ - DurableAgent support for resumable workflows
1047
+ - GOAP planning for intelligent task decomposition
1048
+ - **NEW**: RuVector semantic search with trajectory tracking
1049
+ - `VectorStore` with HNSW approximate nearest neighbor search
1050
+ - Hybrid search combining vector similarity and keyword matching
1051
+ - `TrajectoryTracker` for self-learning agents
1052
+ - **NEW**: Exochain audit trail with DAG-BFT consensus
1053
+ - `AuditTrail` with Hybrid Logical Clocks (HLC)
1054
+ - BLAKE3 hashing and Ed25519 signatures
1055
+ - `SyncManager` for peer syndication
1056
+ - **NEW**: 9 new MCP tools (`kg_workflow_start`, `kg_workflow_status`, `kg_workflow_list`, `kg_vector_search`, `kg_vector_upsert`, `kg_trajectory_list`, `kg_audit_query`, `kg_audit_checkpoint`, `kg_sync_status`)
1057
+ - **NEW**: 22 new CLI subcommands across `workflow`, `vector`, `trajectory`, `audit`, and `sync` command groups
1058
+ - **NEW**: 249 new integration tests for external integrations
1059
+
776
1060
  ### v0.4.0 (Phase 4 - Enterprise Features)
777
1061
 
778
1062
  - **NEW**: `Chunker` with 5 chunking strategies (fixed, semantic, markdown, code, adaptive)
@@ -817,14 +1101,17 @@ import {
817
1101
 
818
1102
  ## Roadmap
819
1103
 
1104
+ ### Completed Features
1105
+
1106
+ - [x] Real-time collaboration support (implemented via webhook handlers in v0.5.0)
1107
+ - [x] Webhook integrations (implemented in v0.5.0)
1108
+
820
1109
  ### Planned Features
821
1110
 
822
- - [ ] Real-time collaboration support
823
1111
  - [ ] Plugin system for custom analyzers
824
1112
  - [ ] GraphQL API for queries
825
1113
  - [ ] Web dashboard for visualization
826
1114
  - [ ] Distributed caching with Redis
827
- - [ ] Webhook integrations
828
1115
 
829
1116
  ### Deprecated Features
830
1117
 
@@ -1,5 +1,5 @@
1
- var format = {};
1
+ var compile = {};
2
2
  export {
3
- format as __exports
3
+ compile as __exports
4
4
  };
5
5
  //# sourceMappingURL=index10.js.map
@@ -1,5 +1,5 @@
1
- var compile = {};
1
+ var core = {};
2
2
  export {
3
- compile as __exports
3
+ core as __exports
4
4
  };
5
5
  //# sourceMappingURL=index6.js.map
@@ -1,5 +1,5 @@
1
- var core = {};
1
+ var validation = {};
2
2
  export {
3
- core as __exports
3
+ validation as __exports
4
4
  };
5
5
  //# sourceMappingURL=index7.js.map
@@ -1,5 +1,5 @@
1
- var validation = {};
1
+ var applicator = {};
2
2
  export {
3
- validation as __exports
3
+ applicator as __exports
4
4
  };
5
5
  //# sourceMappingURL=index8.js.map
@@ -1,5 +1,5 @@
1
- var applicator = {};
1
+ var format = {};
2
2
  export {
3
- applicator as __exports
3
+ format as __exports
4
4
  };
5
5
  //# sourceMappingURL=index9.js.map
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Exochain Audit Configuration
3
+ *
4
+ * Configuration for deterministic logging with DAG-BFT consensus.
5
+ * Supports multiple backends: file, postgres, and memory.
6
+ *
7
+ * @module audit/config
8
+ */
9
+ /**
10
+ * Storage backend types for audit chain.
11
+ * - `file`: Local file-based storage with rotation support
12
+ * - `postgres`: PostgreSQL database with schema isolation
13
+ * - `memory`: In-memory storage for testing/development
14
+ */
15
+ export type AuditBackend = 'file' | 'postgres' | 'memory';
16
+ /**
17
+ * Consensus mechanism types for achieving finality.
18
+ * - `proof-of-learning`: Learning-based consensus for AI agents
19
+ * - `byzantine`: Classical BFT consensus (2f+1 validators)
20
+ * - `raft`: Leader-based consensus for simpler setups
21
+ * - `gossip`: Epidemic-style eventual consistency
22
+ * - `none`: No consensus, single-agent mode
23
+ */
24
+ export type ConsensusType = 'proof-of-learning' | 'byzantine' | 'raft' | 'gossip' | 'none';
25
+ /**
26
+ * File backend configuration options.
27
+ */
28
+ export interface FileBackendConfig {
29
+ /** Directory for storing audit chain data */
30
+ dataDir: string;
31
+ /** Maximum file size in bytes before rotation (default: 10MB) */
32
+ maxFileSize?: number;
33
+ /** Number of events before rotating to new file */
34
+ rotateAfterEvents?: number;
35
+ }
36
+ /**
37
+ * PostgreSQL backend configuration options.
38
+ */
39
+ export interface PostgresBackendConfig {
40
+ /** PostgreSQL connection string */
41
+ connectionString: string;
42
+ /** Database schema for audit tables */
43
+ schema: string;
44
+ }
45
+ /**
46
+ * Audit chain configuration defining storage, consensus, and syndication settings.
47
+ */
48
+ export interface AuditChainConfig {
49
+ /** Storage backend type */
50
+ backend: AuditBackend;
51
+ /** Agent's DID (Decentralized Identifier) for event signing */
52
+ agentDid: string;
53
+ /** Ed25519 private key for signing (64-byte hex string) */
54
+ privateKey?: string;
55
+ /** Enable consensus mechanism for finality */
56
+ enableConsensus: boolean;
57
+ /** Type of consensus mechanism to use */
58
+ consensusType: ConsensusType;
59
+ /** Number of events between checkpoints */
60
+ checkpointInterval: number;
61
+ /** File backend configuration (required if backend is 'file') */
62
+ file?: FileBackendConfig;
63
+ /** PostgreSQL backend configuration (required if backend is 'postgres') */
64
+ postgres?: PostgresBackendConfig;
65
+ /** Peer endpoints for event syndication */
66
+ peers?: string[];
67
+ /** Enable automatic peer syndication */
68
+ enableSyndication: boolean;
69
+ /** Interval between syndication attempts in milliseconds */
70
+ syndicationInterval?: number;
71
+ }
72
+ /**
73
+ * Default checkpoint interval (every 100 events).
74
+ */
75
+ export declare const DEFAULT_CHECKPOINT_INTERVAL = 100;
76
+ /**
77
+ * Default syndication interval (5 minutes).
78
+ */
79
+ export declare const DEFAULT_SYNDICATION_INTERVAL: number;
80
+ /**
81
+ * Default maximum file size for file backend (10MB).
82
+ */
83
+ export declare const DEFAULT_MAX_FILE_SIZE: number;
84
+ /**
85
+ * Default number of events before file rotation.
86
+ */
87
+ export declare const DEFAULT_ROTATE_AFTER_EVENTS = 10000;
88
+ /**
89
+ * Create audit chain configuration from environment variables.
90
+ *
91
+ * Environment variables:
92
+ * - `EXOCHAIN_BACKEND`: Storage backend (file|postgres|memory)
93
+ * - `EXOCHAIN_AGENT_DID`: Agent's decentralized identifier
94
+ * - `EXOCHAIN_PRIVATE_KEY`: Ed25519 private key for signing
95
+ * - `EXOCHAIN_ENABLE_CONSENSUS`: Enable consensus (true|false)
96
+ * - `EXOCHAIN_CONSENSUS_TYPE`: Consensus mechanism type
97
+ * - `EXOCHAIN_CHECKPOINT_INTERVAL`: Events between checkpoints
98
+ * - `EXOCHAIN_ENABLE_SYNDICATION`: Enable peer syndication
99
+ * - `EXOCHAIN_SYNDICATION_INTERVAL`: Syndication interval in ms
100
+ * - `EXOCHAIN_PEER_ENDPOINTS`: Comma-separated peer URLs
101
+ * - `EXOCHAIN_DATA_DIR`: Data directory for file backend
102
+ * - `EXOCHAIN_MAX_FILE_SIZE`: Max file size for file backend
103
+ * - `EXOCHAIN_ROTATE_AFTER_EVENTS`: Events before file rotation
104
+ * - `DATABASE_URL`: PostgreSQL connection string
105
+ * - `EXOCHAIN_SCHEMA`: PostgreSQL schema name
106
+ *
107
+ * @returns Fully populated AuditChainConfig
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * // Set environment variables
112
+ * process.env.EXOCHAIN_BACKEND = 'file';
113
+ * process.env.EXOCHAIN_DATA_DIR = './audit-data';
114
+ *
115
+ * const config = createAuditChainConfig();
116
+ * ```
117
+ */
118
+ export declare function createAuditChainConfig(): AuditChainConfig;
119
+ /**
120
+ * Validation result for audit chain configuration.
121
+ */
122
+ export interface ConfigValidationResult {
123
+ /** Whether the configuration is valid */
124
+ valid: boolean;
125
+ /** List of validation error messages */
126
+ errors: string[];
127
+ }
128
+ /**
129
+ * Validate audit chain configuration for completeness and consistency.
130
+ *
131
+ * @param config - The configuration to validate
132
+ * @returns Validation result with errors if invalid
133
+ *
134
+ * @example
135
+ * ```typescript
136
+ * const config = createAuditChainConfig();
137
+ * const result = validateAuditChainConfig(config);
138
+ *
139
+ * if (!result.valid) {
140
+ * console.error('Configuration errors:', result.errors);
141
+ * }
142
+ * ```
143
+ */
144
+ export declare function validateAuditChainConfig(config: AuditChainConfig): ConfigValidationResult;
145
+ /**
146
+ * Default configuration created from environment variables.
147
+ * This is a convenience export for simple use cases.
148
+ */
149
+ export declare const defaultConfig: AuditChainConfig;
150
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/audit/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,mCAAmC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,eAAe,EAAE,OAAO,CAAC;IACzB,yCAAyC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,2CAA2C;IAC3C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iEAAiE;IACjE,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,wCAAwC;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,4BAA4B,QAAgB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,2BAA2B,QAAQ,CAAC;AAmBjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAgDzD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,yCAAyC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,CA2DzF;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,kBAA2B,CAAC"}
@@ -0,0 +1,111 @@
1
+ const DEFAULT_CHECKPOINT_INTERVAL = 100;
2
+ const DEFAULT_SYNDICATION_INTERVAL = 5 * 60 * 1e3;
3
+ const DEFAULT_MAX_FILE_SIZE = 10 * 1024 * 1024;
4
+ const DEFAULT_ROTATE_AFTER_EVENTS = 1e4;
5
+ function generateDefaultDid() {
6
+ const timestamp = Date.now().toString(36);
7
+ const random = Math.random().toString(36).substring(2, 10);
8
+ return `did:exo:agent-${timestamp}${random}`;
9
+ }
10
+ function createAuditChainConfig() {
11
+ const backend = process.env.EXOCHAIN_BACKEND || "memory";
12
+ const baseConfig = {
13
+ backend,
14
+ agentDid: process.env.EXOCHAIN_AGENT_DID || generateDefaultDid(),
15
+ privateKey: process.env.EXOCHAIN_PRIVATE_KEY,
16
+ enableConsensus: process.env.EXOCHAIN_ENABLE_CONSENSUS === "true",
17
+ consensusType: process.env.EXOCHAIN_CONSENSUS_TYPE || "none",
18
+ checkpointInterval: parseInt(
19
+ process.env.EXOCHAIN_CHECKPOINT_INTERVAL || String(DEFAULT_CHECKPOINT_INTERVAL),
20
+ 10
21
+ ),
22
+ enableSyndication: process.env.EXOCHAIN_ENABLE_SYNDICATION === "true",
23
+ syndicationInterval: parseInt(
24
+ process.env.EXOCHAIN_SYNDICATION_INTERVAL || String(DEFAULT_SYNDICATION_INTERVAL),
25
+ 10
26
+ ),
27
+ peers: process.env.EXOCHAIN_PEER_ENDPOINTS?.split(",").filter(Boolean) || []
28
+ };
29
+ switch (backend) {
30
+ case "file":
31
+ return {
32
+ ...baseConfig,
33
+ file: {
34
+ dataDir: process.env.EXOCHAIN_DATA_DIR || ".exochain",
35
+ maxFileSize: parseInt(
36
+ process.env.EXOCHAIN_MAX_FILE_SIZE || String(DEFAULT_MAX_FILE_SIZE),
37
+ 10
38
+ ),
39
+ rotateAfterEvents: parseInt(
40
+ process.env.EXOCHAIN_ROTATE_AFTER_EVENTS || String(DEFAULT_ROTATE_AFTER_EVENTS),
41
+ 10
42
+ )
43
+ }
44
+ };
45
+ case "postgres":
46
+ return {
47
+ ...baseConfig,
48
+ postgres: {
49
+ connectionString: process.env.DATABASE_URL || "postgres://localhost:5432/kg_agent",
50
+ schema: process.env.EXOCHAIN_SCHEMA || "exochain"
51
+ }
52
+ };
53
+ default:
54
+ return baseConfig;
55
+ }
56
+ }
57
+ function validateAuditChainConfig(config) {
58
+ const errors = [];
59
+ if (!config.agentDid) {
60
+ errors.push("Agent DID is required");
61
+ } else if (!config.agentDid.startsWith("did:")) {
62
+ errors.push('Agent DID must be a valid DID (starting with "did:")');
63
+ }
64
+ if (config.backend === "file") {
65
+ if (!config.file?.dataDir) {
66
+ errors.push("File data directory is required for file backend");
67
+ }
68
+ if (config.file?.maxFileSize !== void 0 && config.file.maxFileSize <= 0) {
69
+ errors.push("Max file size must be positive");
70
+ }
71
+ if (config.file?.rotateAfterEvents !== void 0 && config.file.rotateAfterEvents <= 0) {
72
+ errors.push("Rotate after events must be positive");
73
+ }
74
+ }
75
+ if (config.backend === "postgres") {
76
+ if (!config.postgres?.connectionString) {
77
+ errors.push("PostgreSQL connection string is required for postgres backend");
78
+ }
79
+ if (!config.postgres?.schema) {
80
+ errors.push("PostgreSQL schema is required for postgres backend");
81
+ }
82
+ }
83
+ if (config.enableConsensus && config.consensusType === "none") {
84
+ errors.push("Consensus type must be specified when consensus is enabled");
85
+ }
86
+ if (config.enableSyndication && (!config.peers || config.peers.length === 0)) {
87
+ errors.push("At least one peer is required for syndication");
88
+ }
89
+ if (config.checkpointInterval <= 0) {
90
+ errors.push("Checkpoint interval must be positive");
91
+ }
92
+ if (config.syndicationInterval !== void 0 && config.syndicationInterval <= 0) {
93
+ errors.push("Syndication interval must be positive");
94
+ }
95
+ if (config.privateKey !== void 0) {
96
+ if (!/^[0-9a-fA-F]{128}$/.test(config.privateKey)) {
97
+ errors.push("Private key must be a 64-byte hex string (128 characters)");
98
+ }
99
+ }
100
+ return { valid: errors.length === 0, errors };
101
+ }
102
+ createAuditChainConfig();
103
+ export {
104
+ DEFAULT_CHECKPOINT_INTERVAL,
105
+ DEFAULT_MAX_FILE_SIZE,
106
+ DEFAULT_ROTATE_AFTER_EVENTS,
107
+ DEFAULT_SYNDICATION_INTERVAL,
108
+ createAuditChainConfig,
109
+ validateAuditChainConfig
110
+ };
111
+ //# sourceMappingURL=config.js.map