@swarmclawai/swarmclaw 0.7.7 → 0.7.8

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 (63) hide show
  1. package/README.md +10 -9
  2. package/package.json +1 -1
  3. package/src/app/api/chats/route.ts +1 -0
  4. package/src/app/api/connectors/[id]/route.ts +20 -2
  5. package/src/app/api/connectors/route.ts +12 -8
  6. package/src/app/api/projects/[id]/route.ts +6 -2
  7. package/src/app/api/projects/route.ts +4 -3
  8. package/src/app/api/secrets/[id]/route.ts +1 -0
  9. package/src/app/api/secrets/route.ts +2 -1
  10. package/src/app/api/settings/route.ts +2 -0
  11. package/src/components/agents/agent-sheet.tsx +184 -14
  12. package/src/components/chat/chat-area.tsx +36 -19
  13. package/src/components/chat/chat-header.tsx +4 -0
  14. package/src/components/chat/delegation-banner.test.ts +14 -1
  15. package/src/components/chat/delegation-banner.tsx +1 -1
  16. package/src/components/layout/app-layout.tsx +40 -23
  17. package/src/components/projects/project-detail.tsx +217 -0
  18. package/src/components/projects/project-sheet.tsx +176 -4
  19. package/src/components/shared/settings/section-capability-policy.tsx +38 -0
  20. package/src/components/shared/settings/section-voice.tsx +11 -3
  21. package/src/components/tasks/approvals-panel.tsx +177 -18
  22. package/src/components/tasks/task-board.tsx +137 -23
  23. package/src/components/tasks/task-card.tsx +29 -0
  24. package/src/components/tasks/task-sheet.tsx +16 -4
  25. package/src/lib/server/capability-router.test.ts +22 -0
  26. package/src/lib/server/capability-router.ts +54 -18
  27. package/src/lib/server/chat-execution.ts +25 -1
  28. package/src/lib/server/connectors/manager-reconnect.test.ts +47 -0
  29. package/src/lib/server/connectors/manager.ts +99 -74
  30. package/src/lib/server/daemon-state.ts +83 -46
  31. package/src/lib/server/elevenlabs.test.ts +59 -1
  32. package/src/lib/server/heartbeat-service.ts +5 -1
  33. package/src/lib/server/main-agent-loop.test.ts +260 -0
  34. package/src/lib/server/main-agent-loop.ts +559 -14
  35. package/src/lib/server/orchestrator-lg.ts +1 -0
  36. package/src/lib/server/orchestrator.ts +2 -0
  37. package/src/lib/server/plugins.ts +6 -1
  38. package/src/lib/server/project-context.ts +162 -0
  39. package/src/lib/server/project-utils.ts +150 -0
  40. package/src/lib/server/queue-followups.test.ts +147 -2
  41. package/src/lib/server/queue.ts +234 -7
  42. package/src/lib/server/session-run-manager.ts +31 -0
  43. package/src/lib/server/session-tools/connector-inputs.test.ts +37 -0
  44. package/src/lib/server/session-tools/connector.ts +26 -1
  45. package/src/lib/server/session-tools/context.ts +5 -0
  46. package/src/lib/server/session-tools/crud.ts +265 -76
  47. package/src/lib/server/session-tools/delegate-resume.test.ts +50 -0
  48. package/src/lib/server/session-tools/delegate.ts +38 -2
  49. package/src/lib/server/session-tools/manage-tasks.test.ts +114 -0
  50. package/src/lib/server/session-tools/memory.ts +14 -2
  51. package/src/lib/server/session-tools/platform-access.test.ts +58 -0
  52. package/src/lib/server/session-tools/platform.ts +60 -19
  53. package/src/lib/server/session-tools/web-inputs.test.ts +17 -0
  54. package/src/lib/server/session-tools/web.ts +153 -6
  55. package/src/lib/server/stream-agent-chat.test.ts +27 -2
  56. package/src/lib/server/stream-agent-chat.ts +104 -30
  57. package/src/lib/server/tool-aliases.ts +2 -0
  58. package/src/lib/server/tool-capability-policy.test.ts +24 -0
  59. package/src/lib/server/tool-capability-policy.ts +29 -1
  60. package/src/lib/server/tool-planning.test.ts +44 -0
  61. package/src/lib/server/tool-planning.ts +269 -0
  62. package/src/lib/tool-definitions.ts +2 -1
  63. package/src/types/index.ts +39 -0
@@ -305,10 +305,36 @@ export interface PluginHooks {
305
305
  getOperatingGuidance?: () => string | string[] | null | undefined
306
306
  }
307
307
 
308
+ export interface PluginToolPlanning {
309
+ /**
310
+ * Capability tags that the harness can use for prompt guidance and tool routing.
311
+ * Examples: research.search, research.fetch, browser.capture, artifact.pdf,
312
+ * delivery.media, delivery.voice_note.
313
+ */
314
+ capabilities?: string[]
315
+ /**
316
+ * Concrete usage guidance that should be injected into the system prompt when
317
+ * this tool is enabled.
318
+ */
319
+ disciplineGuidance?: string[]
320
+ /**
321
+ * Optional natural-language cues that indicate when this tool should be
322
+ * preferred or explicitly invoked. These are declarative hints so the harness
323
+ * does not need to hard-code every plugin-specific workflow centrally.
324
+ */
325
+ requestMatchers?: Array<{
326
+ capability?: string
327
+ patterns?: string[]
328
+ requireLiteralUrl?: boolean
329
+ forbidLiteralUrl?: boolean
330
+ }>
331
+ }
332
+
308
333
  export interface PluginToolDef {
309
334
  name: string
310
335
  description: string
311
336
  parameters: Record<string, unknown>
337
+ planning?: PluginToolPlanning
312
338
  execute: (args: Record<string, unknown>, ctx: { session: Session; message: string }) => Promise<string | object> | string | object
313
339
  }
314
340
 
@@ -934,6 +960,15 @@ export interface Project {
934
960
  name: string
935
961
  description: string
936
962
  color?: string
963
+ objective?: string
964
+ audience?: string
965
+ priorities?: string[]
966
+ openObjectives?: string[]
967
+ capabilityHints?: string[]
968
+ credentialRequirements?: string[]
969
+ successMetrics?: string[]
970
+ heartbeatPrompt?: string
971
+ heartbeatIntervalSec?: number
937
972
  createdAt: number
938
973
  updatedAt: number
939
974
  }
@@ -1065,6 +1100,8 @@ export interface AppSettings {
1065
1100
  capabilityBlockedTools?: string[]
1066
1101
  capabilityBlockedCategories?: string[]
1067
1102
  capabilityAllowedTools?: string[]
1103
+ taskManagementEnabled?: boolean
1104
+ projectManagementEnabled?: boolean
1068
1105
  // Memory governance
1069
1106
  memoryWorkingTtlHours?: number
1070
1107
  memoryDefaultConfidence?: number
@@ -1128,6 +1165,7 @@ export interface OrchestratorSecret {
1128
1165
  encryptedValue: string
1129
1166
  scope: 'global' | 'agent'
1130
1167
  agentIds: string[] // if scope === 'agent', which agents can use it
1168
+ projectId?: string
1131
1169
  createdAt: number
1132
1170
  updatedAt: number
1133
1171
  }
@@ -1334,6 +1372,7 @@ export interface AgentPackEntry {
1334
1372
  tools?: string[]
1335
1373
  plugins?: string[]
1336
1374
  capabilities?: string[]
1375
+ elevenLabsVoiceId?: string | null
1337
1376
  soul?: string
1338
1377
  systemPrompt?: string
1339
1378
  }