@swarmclawai/swarmclaw 1.3.3 → 1.3.5

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 (76) hide show
  1. package/README.md +19 -76
  2. package/package.json +1 -1
  3. package/skills/swarmclaw.md +17 -0
  4. package/src/app/api/agents/[id]/dream/route.ts +45 -0
  5. package/src/app/api/knowledge/[id]/route.ts +48 -49
  6. package/src/app/api/knowledge/hygiene/route.ts +13 -0
  7. package/src/app/api/knowledge/route.ts +70 -42
  8. package/src/app/api/knowledge/sources/[id]/archive/route.ts +15 -0
  9. package/src/app/api/knowledge/sources/[id]/restore/route.ts +10 -0
  10. package/src/app/api/knowledge/sources/[id]/route.ts +1 -0
  11. package/src/app/api/knowledge/sources/[id]/supersede/route.ts +26 -0
  12. package/src/app/api/knowledge/sources/[id]/sync/route.ts +17 -0
  13. package/src/app/api/knowledge/sources/route.ts +1 -0
  14. package/src/app/api/knowledge/upload/route.ts +3 -51
  15. package/src/app/api/memory/dream/[id]/route.ts +19 -0
  16. package/src/app/api/memory/dream/route.ts +34 -0
  17. package/src/app/knowledge/layout.tsx +1 -1
  18. package/src/app/knowledge/page.tsx +2 -22
  19. package/src/app/protocols/page.tsx +21 -2
  20. package/src/cli/index.js +16 -0
  21. package/src/cli/spec.js +5 -0
  22. package/src/components/agents/agent-sheet.tsx +65 -0
  23. package/src/components/chat/message-bubble.tsx +10 -0
  24. package/src/components/knowledge/grounding-panel.tsx +99 -0
  25. package/src/components/knowledge/knowledge-detail.tsx +402 -0
  26. package/src/components/knowledge/knowledge-list.tsx +351 -126
  27. package/src/components/knowledge/knowledge-sheet.tsx +208 -119
  28. package/src/components/memory/dream-history.tsx +155 -0
  29. package/src/components/memory/memory-card.tsx +7 -0
  30. package/src/components/memory/memory-detail.tsx +46 -0
  31. package/src/components/runs/run-list.tsx +23 -0
  32. package/src/lib/providers/cli-utils.ts +3 -4
  33. package/src/lib/providers/index.ts +12 -22
  34. package/src/lib/providers/openclaw.ts +1 -2
  35. package/src/lib/server/agents/subagent-swarm.ts +2 -7
  36. package/src/lib/server/api-routes.test.ts +43 -2
  37. package/src/lib/server/chat-execution/chat-execution-grounding.test.ts +127 -0
  38. package/src/lib/server/chat-execution/chat-execution-types.ts +8 -1
  39. package/src/lib/server/chat-execution/chat-execution.ts +1 -0
  40. package/src/lib/server/chat-execution/chat-turn-finalization.ts +23 -6
  41. package/src/lib/server/chat-execution/chat-turn-stream-execution.ts +6 -1
  42. package/src/lib/server/chat-execution/post-stream-finalization.ts +15 -3
  43. package/src/lib/server/chat-execution/prompt-builder.ts +4 -6
  44. package/src/lib/server/chat-execution/prompt-sections.ts +29 -3
  45. package/src/lib/server/chat-execution/stream-agent-chat.ts +6 -1
  46. package/src/lib/server/connectors/openclaw.ts +1 -2
  47. package/src/lib/server/execution-engine/task-attempt.ts +8 -2
  48. package/src/lib/server/knowledge-import.ts +159 -0
  49. package/src/lib/server/knowledge-sources.test.ts +215 -0
  50. package/src/lib/server/knowledge-sources.ts +1266 -0
  51. package/src/lib/server/memory/dream-cycles.ts +49 -0
  52. package/src/lib/server/memory/dream-idle-callback.ts +38 -0
  53. package/src/lib/server/memory/dream-service.ts +315 -0
  54. package/src/lib/server/memory/memory-db.ts +37 -2
  55. package/src/lib/server/protocols/protocol-agent-turn.ts +7 -0
  56. package/src/lib/server/protocols/protocol-run-lifecycle.ts +19 -6
  57. package/src/lib/server/protocols/protocol-service.test.ts +99 -0
  58. package/src/lib/server/protocols/protocol-step-helpers.ts +7 -1
  59. package/src/lib/server/protocols/protocol-step-processors.ts +16 -3
  60. package/src/lib/server/protocols/protocol-types.ts +4 -0
  61. package/src/lib/server/provider-health.ts +2 -7
  62. package/src/lib/server/runtime/daemon-state/core.ts +6 -1
  63. package/src/lib/server/runtime/run-ledger.test.ts +120 -0
  64. package/src/lib/server/runtime/run-ledger.ts +27 -1
  65. package/src/lib/server/runtime/session-run-manager/drain.ts +5 -0
  66. package/src/lib/server/runtime/session-run-manager/state.ts +19 -2
  67. package/src/lib/server/storage-normalization.ts +5 -0
  68. package/src/lib/server/storage.ts +16 -1
  69. package/src/stores/slices/ui-slice.ts +4 -0
  70. package/src/types/agent.ts +7 -0
  71. package/src/types/dream.ts +45 -0
  72. package/src/types/index.ts +1 -0
  73. package/src/types/message.ts +3 -0
  74. package/src/types/misc.ts +131 -0
  75. package/src/types/protocol.ts +4 -0
  76. package/src/types/run.ts +4 -1
package/src/types/misc.ts CHANGED
@@ -469,6 +469,137 @@ export interface MemoryEntry {
469
469
  updatedAt: number
470
470
  }
471
471
 
472
+ export type KnowledgeSourceKind = 'manual' | 'file' | 'url'
473
+ export type KnowledgeSyncStatus = 'ready' | 'syncing' | 'error'
474
+ export type KnowledgeHygieneActionKind = 'sync' | 'reindex' | 'archive' | 'restore' | 'supersede'
475
+ export type KnowledgeHygieneFindingKind = 'stale' | 'duplicate' | 'overlap' | 'broken' | 'archived' | 'superseded'
476
+
477
+ export interface KnowledgeCitation {
478
+ sourceId: string
479
+ sourceTitle: string
480
+ sourceKind: KnowledgeSourceKind
481
+ sourceUrl?: string | null
482
+ sourceLabel?: string | null
483
+ chunkId: string
484
+ chunkIndex: number
485
+ chunkCount: number
486
+ charStart: number
487
+ charEnd: number
488
+ sectionLabel?: string | null
489
+ snippet: string
490
+ whyMatched?: string | null
491
+ score: number
492
+ }
493
+
494
+ export interface KnowledgeRetrievalTrace {
495
+ query: string
496
+ scope: 'source_knowledge'
497
+ hits: KnowledgeCitation[]
498
+ retrievedAt: number
499
+ selectorStatus?: 'not_run' | 'selected' | 'no_match'
500
+ }
501
+
502
+ export interface KnowledgeSource {
503
+ id: string
504
+ kind: KnowledgeSourceKind
505
+ title: string
506
+ content?: string | null
507
+ sourceLabel?: string | null
508
+ sourceUrl?: string | null
509
+ sourcePath?: string | null
510
+ sourceHash?: string | null
511
+ scope: 'global' | 'agent'
512
+ agentIds: string[]
513
+ tags: string[]
514
+ syncStatus: KnowledgeSyncStatus
515
+ lastIndexedAt?: number | null
516
+ lastSyncedAt?: number | null
517
+ lastError?: string | null
518
+ archivedAt?: number | null
519
+ archivedReason?: string | null
520
+ duplicateOfSourceId?: string | null
521
+ supersededBySourceId?: string | null
522
+ maintenanceUpdatedAt?: number | null
523
+ maintenanceNotes?: string | null
524
+ nextSyncAt?: number | null
525
+ lastAutoSyncAt?: number | null
526
+ chunkCount: number
527
+ contentLength: number
528
+ createdAt: number
529
+ updatedAt: number
530
+ metadata?: Record<string, unknown>
531
+ }
532
+
533
+ export interface KnowledgeSearchHit {
534
+ id: string
535
+ sourceId: string
536
+ sourceTitle: string
537
+ sourceKind: KnowledgeSourceKind
538
+ sourceUrl?: string | null
539
+ sourceLabel?: string | null
540
+ scope: 'global' | 'agent'
541
+ agentIds: string[]
542
+ tags: string[]
543
+ syncStatus: KnowledgeSyncStatus
544
+ stale: boolean
545
+ title: string
546
+ snippet: string
547
+ content: string
548
+ chunkIndex: number
549
+ chunkCount: number
550
+ charStart: number
551
+ charEnd: number
552
+ sectionLabel?: string | null
553
+ score: number
554
+ whyMatched?: string | null
555
+ createdAt: number
556
+ updatedAt: number
557
+ }
558
+
559
+ export interface KnowledgeSourceSummary extends KnowledgeSource {
560
+ stale: boolean
561
+ topSnippet?: string | null
562
+ matchCount?: number
563
+ topScore?: number
564
+ }
565
+
566
+ export interface KnowledgeSourceDetail {
567
+ source: KnowledgeSourceSummary
568
+ chunks: MemoryEntry[]
569
+ }
570
+
571
+ export interface KnowledgeHygieneFinding {
572
+ kind: KnowledgeHygieneFindingKind
573
+ sourceId: string
574
+ sourceTitle: string
575
+ relatedSourceId?: string | null
576
+ relatedSourceTitle?: string | null
577
+ detail: string
578
+ createdAt: number
579
+ }
580
+
581
+ export interface KnowledgeHygieneAction {
582
+ kind: KnowledgeHygieneActionKind
583
+ sourceId: string
584
+ relatedSourceId?: string | null
585
+ summary: string
586
+ createdAt: number
587
+ }
588
+
589
+ export interface KnowledgeHygieneSummary {
590
+ scannedAt: number
591
+ counts: {
592
+ stale: number
593
+ duplicate: number
594
+ overlap: number
595
+ broken: number
596
+ archived: number
597
+ superseded: number
598
+ }
599
+ findings: KnowledgeHygieneFinding[]
600
+ recentActions: KnowledgeHygieneAction[]
601
+ }
602
+
472
603
  // --- MCP Servers ---
473
604
 
474
605
  export type McpTransport = 'stdio' | 'sse' | 'streamable-http'
@@ -1,4 +1,5 @@
1
1
  import type { MessageToolEvent } from './message'
2
+ import type { KnowledgeCitation, KnowledgeRetrievalTrace } from './misc'
2
3
 
3
4
  // --- Structured Session Runs / Protocols ---
4
5
 
@@ -140,6 +141,8 @@ export interface ProtocolRunPhaseStateResponse {
140
141
  agentId: string
141
142
  text: string
142
143
  toolEvents?: MessageToolEvent[]
144
+ citations?: KnowledgeCitation[]
145
+ retrievalTrace?: KnowledgeRetrievalTrace | null
143
146
  }
144
147
 
145
148
  export interface ProtocolRunPhaseState {
@@ -417,4 +420,5 @@ export interface ProtocolRunEvent {
417
420
  taskId?: string | null
418
421
  createdAt: number
419
422
  data?: Record<string, unknown> | null
423
+ citations?: KnowledgeCitation[]
420
424
  }
package/src/types/run.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { SSEEvent } from './misc'
1
+ import type { KnowledgeCitation, KnowledgeRetrievalTrace, SSEEvent } from './misc'
2
2
 
3
3
  // --- Session Runs ---
4
4
 
@@ -71,6 +71,7 @@ export interface SessionRunRecord {
71
71
  totalInputTokens?: number
72
72
  totalOutputTokens?: number
73
73
  estimatedCost?: number
74
+ retrievalSummary?: { citationCount: number; sourceIds: string[] } | null
74
75
  }
75
76
 
76
77
  export interface SessionQueuedTurn {
@@ -107,6 +108,8 @@ export interface RunEventRecord {
107
108
  status?: SessionRunStatus
108
109
  summary?: string
109
110
  event: SSEEvent
111
+ citations?: KnowledgeCitation[]
112
+ retrievalTrace?: KnowledgeRetrievalTrace | null
110
113
  }
111
114
 
112
115
  export type RuntimeFailureFamily =