@swarmclawai/swarmclaw 1.2.6 → 1.2.9

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 (269) hide show
  1. package/README.md +54 -23
  2. package/next.config.ts +1 -0
  3. package/package.json +4 -3
  4. package/scripts/easy-setup.mjs +1 -1
  5. package/scripts/postinstall.mjs +1 -1
  6. package/skills/swarmclaw.md +115 -0
  7. package/skills/tools/browser.md +131 -0
  8. package/skills/tools/execute.md +98 -0
  9. package/skills/tools/files.md +98 -0
  10. package/skills/tools/memory.md +104 -0
  11. package/skills/tools/platform.md +144 -0
  12. package/skills/tools/skills.md +83 -0
  13. package/src/app/agents/[id]/page.tsx +1 -18
  14. package/src/app/api/agents/thread-route.test.ts +0 -1
  15. package/src/app/api/approvals/route.test.ts +6 -22
  16. package/src/app/api/chats/[id]/messages/route.ts +23 -19
  17. package/src/app/api/chats/messages-route.test.ts +105 -51
  18. package/src/app/api/connectors/route.ts +2 -2
  19. package/src/app/api/mcp-servers/[id]/test/route.ts +3 -2
  20. package/src/app/api/openclaw/deploy/route.ts +2 -0
  21. package/src/app/api/portability/export/route.ts +8 -0
  22. package/src/app/api/portability/import/route.test.ts +80 -0
  23. package/src/app/api/portability/import/route.ts +28 -0
  24. package/src/app/api/settings/route.ts +0 -2
  25. package/src/app/api/setup/doctor/route.ts +4 -4
  26. package/src/app/api/wallets/[id]/route.ts +15 -157
  27. package/src/app/api/wallets/generate/route.ts +22 -0
  28. package/src/app/api/wallets/route.test.ts +147 -0
  29. package/src/app/api/wallets/route.ts +13 -95
  30. package/src/app/autonomy/page.tsx +2 -57
  31. package/src/app/protocols/page.tsx +2 -21
  32. package/src/app/settings/page.tsx +0 -9
  33. package/src/app/wallets/page.tsx +105 -5
  34. package/src/cli/index.js +21 -33
  35. package/src/cli/spec.js +19 -30
  36. package/src/components/agents/agent-chat-list.tsx +23 -1
  37. package/src/components/agents/agent-sheet.tsx +2 -40
  38. package/src/components/agents/inspector-panel.tsx +165 -131
  39. package/src/components/chat/chat-area.tsx +38 -9
  40. package/src/components/chat/chat-card.tsx +0 -31
  41. package/src/components/chat/message-bubble.tsx +1 -108
  42. package/src/components/chat/message-list.tsx +33 -19
  43. package/src/components/connectors/connector-sheet.tsx +25 -1
  44. package/src/components/gateways/gateway-sheet.tsx +5 -2
  45. package/src/components/layout/sidebar-rail.tsx +6 -10
  46. package/src/components/projects/project-detail.tsx +3 -35
  47. package/src/components/projects/tabs/overview-tab.tsx +3 -59
  48. package/src/components/projects/tabs/work-tab.tsx +7 -77
  49. package/src/components/protocols/structured-session-launcher.tsx +1 -22
  50. package/src/components/shared/connector-platform-icon.tsx +1 -0
  51. package/src/components/tasks/task-card.tsx +4 -34
  52. package/src/components/tasks/task-sheet.tsx +6 -36
  53. package/src/components/wallets/wallet-list.tsx +150 -0
  54. package/src/lib/agent-execute-defaults.test.ts +24 -0
  55. package/src/lib/agent-execute-defaults.ts +62 -0
  56. package/src/lib/app/navigation.test.ts +0 -13
  57. package/src/lib/app/navigation.ts +2 -7
  58. package/src/lib/app/view-constants.ts +14 -19
  59. package/src/lib/chat/queued-message-queue.test.ts +134 -1
  60. package/src/lib/chat/queued-message-queue.ts +77 -2
  61. package/src/lib/server/agents/agent-service.ts +5 -0
  62. package/src/lib/server/agents/agent-thread-session.ts +0 -1
  63. package/src/lib/server/agents/delegation-advisory.test.ts +0 -1
  64. package/src/lib/server/agents/delegation-jobs.test.ts +0 -69
  65. package/src/lib/server/agents/delegation-jobs.ts +0 -25
  66. package/src/lib/server/agents/main-agent-loop.ts +1 -49
  67. package/src/lib/server/agents/subagent-runtime.ts +0 -1
  68. package/src/lib/server/approval-match.ts +0 -85
  69. package/src/lib/server/approvals.test.ts +6 -6
  70. package/src/lib/server/approvals.ts +0 -6
  71. package/src/lib/server/autonomy/supervisor-reflection.test.ts +0 -1
  72. package/src/lib/server/builtin-extensions.ts +1 -2
  73. package/src/lib/server/capability-router.test.ts +0 -2
  74. package/src/lib/server/chat-execution/chat-execution-advanced.test.ts +1 -1
  75. package/src/lib/server/chat-execution/chat-execution-tool-events.test.ts +15 -14
  76. package/src/lib/server/chat-execution/chat-execution-types.ts +0 -2
  77. package/src/lib/server/chat-execution/chat-execution-utils.ts +2 -4
  78. package/src/lib/server/chat-execution/chat-streaming-utils.ts +2 -30
  79. package/src/lib/server/chat-execution/chat-turn-finalization.ts +1 -36
  80. package/src/lib/server/chat-execution/chat-turn-preparation.ts +81 -64
  81. package/src/lib/server/chat-execution/chat-turn-stream-execution.ts +4 -0
  82. package/src/lib/server/chat-execution/continuation-evaluator.ts +8 -0
  83. package/src/lib/server/chat-execution/iteration-event-handler.ts +0 -24
  84. package/src/lib/server/chat-execution/memory-mutation-tools.ts +1 -1
  85. package/src/lib/server/chat-execution/message-classifier.test.ts +0 -45
  86. package/src/lib/server/chat-execution/message-classifier.ts +11 -16
  87. package/src/lib/server/chat-execution/prompt-builder.test.ts +27 -0
  88. package/src/lib/server/chat-execution/prompt-builder.ts +14 -31
  89. package/src/lib/server/chat-execution/prompt-mode.test.ts +24 -0
  90. package/src/lib/server/chat-execution/prompt-mode.ts +5 -1
  91. package/src/lib/server/chat-execution/prompt-sections.ts +0 -1
  92. package/src/lib/server/chat-execution/situational-awareness.test.ts +2 -73
  93. package/src/lib/server/chat-execution/situational-awareness.ts +4 -38
  94. package/src/lib/server/chat-execution/stream-agent-chat.test.ts +13 -126
  95. package/src/lib/server/chat-execution/stream-agent-chat.ts +46 -21
  96. package/src/lib/server/chat-execution/stream-continuation.test.ts +4 -52
  97. package/src/lib/server/chat-execution/stream-continuation.ts +6 -48
  98. package/src/lib/server/chatrooms/chatroom-routing.test.ts +4 -0
  99. package/src/lib/server/chatrooms/session-mailbox.ts +0 -10
  100. package/src/lib/server/chats/chat-session-service.ts +3 -5
  101. package/src/lib/server/connectors/connector-inbound.ts +0 -1
  102. package/src/lib/server/connectors/connector-lifecycle.ts +19 -3
  103. package/src/lib/server/connectors/connector-service.ts +39 -9
  104. package/src/lib/server/connectors/discord.ts +2 -2
  105. package/src/lib/server/connectors/matrix.ts +3 -2
  106. package/src/lib/server/connectors/signal.ts +5 -4
  107. package/src/lib/server/connectors/slack.ts +10 -9
  108. package/src/lib/server/connectors/swarmdock-bidding.ts +74 -0
  109. package/src/lib/server/connectors/swarmdock-payloads.test.ts +85 -0
  110. package/src/lib/server/connectors/swarmdock-secret.test.ts +128 -0
  111. package/src/lib/server/connectors/swarmdock-secret.ts +152 -0
  112. package/src/lib/server/connectors/swarmdock-tasks.ts +119 -0
  113. package/src/lib/server/connectors/swarmdock.ts +255 -0
  114. package/src/lib/server/connectors/teams.ts +3 -2
  115. package/src/lib/server/connectors/telegram.ts +4 -4
  116. package/src/lib/server/connectors/whatsapp.ts +2 -2
  117. package/src/lib/server/daemon/controller.ts +7 -0
  118. package/src/lib/server/execution-brief.test.ts +2 -25
  119. package/src/lib/server/execution-brief.ts +12 -35
  120. package/src/lib/server/execution-engine/task-attempt.ts +0 -1
  121. package/src/lib/server/gateways/gateway-profile-service.ts +19 -1
  122. package/src/lib/server/messages/message-repository.test.ts +70 -0
  123. package/src/lib/server/messages/message-repository.ts +11 -6
  124. package/src/lib/server/openclaw/deploy.ts +32 -2
  125. package/src/lib/server/persistence/storage-context.ts +0 -5
  126. package/src/lib/server/plugins-advanced.test.ts +1 -2
  127. package/src/lib/server/portability/export.ts +109 -0
  128. package/src/lib/server/portability/import.ts +159 -0
  129. package/src/lib/server/protocols/protocol-normalization.ts +0 -4
  130. package/src/lib/server/protocols/protocol-queries.ts +0 -6
  131. package/src/lib/server/protocols/protocol-run-lifecycle.ts +4 -32
  132. package/src/lib/server/protocols/protocol-service.ts +0 -1
  133. package/src/lib/server/protocols/protocol-step-helpers.ts +0 -4
  134. package/src/lib/server/protocols/protocol-step-processors.ts +0 -6
  135. package/src/lib/server/protocols/protocol-swarm.ts +0 -2
  136. package/src/lib/server/protocols/protocol-types.ts +0 -2
  137. package/src/lib/server/provider-health.ts +1 -10
  138. package/src/lib/server/runtime/daemon-state/core.ts +0 -9
  139. package/src/lib/server/runtime/daemon-state.test.ts +0 -35
  140. package/src/lib/server/runtime/heartbeat-service.ts +3 -23
  141. package/src/lib/server/runtime/process-manager.ts +13 -9
  142. package/src/lib/server/runtime/queue/core.ts +11 -33
  143. package/src/lib/server/runtime/runtime-storage-write-paths.test.ts +6 -6
  144. package/src/lib/server/runtime/scheduler.ts +0 -13
  145. package/src/lib/server/runtime/session-run-manager/drain.ts +0 -24
  146. package/src/lib/server/runtime/session-run-manager/enqueue.ts +0 -1
  147. package/src/lib/server/runtime/session-run-manager/queries.ts +15 -1
  148. package/src/lib/server/runtime/session-run-manager/recovery.ts +0 -1
  149. package/src/lib/server/runtime/session-run-manager.test.ts +58 -28
  150. package/src/lib/server/sandbox/session-runtime.test.ts +18 -1
  151. package/src/lib/server/sandbox/session-runtime.ts +40 -28
  152. package/src/lib/server/session-tools/autonomy-tools.test.ts +7 -9
  153. package/src/lib/server/session-tools/context.ts +1 -1
  154. package/src/lib/server/session-tools/credential-env.ts +109 -0
  155. package/src/lib/server/session-tools/crud.ts +3 -17
  156. package/src/lib/server/session-tools/delegate.ts +0 -4
  157. package/src/lib/server/session-tools/edit_file.ts +3 -2
  158. package/src/lib/server/session-tools/execute.test.ts +58 -0
  159. package/src/lib/server/session-tools/execute.ts +334 -0
  160. package/src/lib/server/session-tools/files-tool.ts +635 -0
  161. package/src/lib/server/session-tools/index.ts +14 -8
  162. package/src/lib/server/session-tools/memory-tool.ts +242 -0
  163. package/src/lib/server/session-tools/memory.ts +1 -1
  164. package/src/lib/server/session-tools/openclaw-nodes.ts +3 -2
  165. package/src/lib/server/session-tools/openclaw-workspace.ts +3 -2
  166. package/src/lib/server/session-tools/platform-tool.ts +617 -0
  167. package/src/lib/server/session-tools/session-info.ts +3 -2
  168. package/src/lib/server/session-tools/session-tools-wiring.test.ts +3 -4
  169. package/src/lib/server/session-tools/shell.ts +7 -122
  170. package/src/lib/server/session-tools/skills-tool.ts +396 -0
  171. package/src/lib/server/session-tools/team-context.ts +0 -3
  172. package/src/lib/server/session-tools/web.ts +2 -2
  173. package/src/lib/server/storage-normalization.ts +10 -0
  174. package/src/lib/server/storage.ts +18 -45
  175. package/src/lib/server/tasks/task-checkout.ts +59 -0
  176. package/src/lib/server/tasks/task-lifecycle.ts +2 -0
  177. package/src/lib/server/tasks/task-route-service.ts +4 -26
  178. package/src/lib/server/tasks/task-service.ts +0 -7
  179. package/src/lib/server/tool-aliases.ts +2 -2
  180. package/src/lib/server/tool-capability-policy-advanced.test.ts +13 -6
  181. package/src/lib/server/tool-capability-policy.test.ts +2 -1
  182. package/src/lib/server/tool-capability-policy.ts +60 -35
  183. package/src/lib/server/tool-planning.ts +11 -12
  184. package/src/lib/server/universal-tool-access.ts +0 -1
  185. package/src/lib/server/wallets/wallet-crypto.ts +33 -0
  186. package/src/lib/server/wallets/wallet-repository.ts +24 -0
  187. package/src/lib/server/wallets/wallet-service.ts +119 -0
  188. package/src/lib/server/working-state/extraction.ts +8 -42
  189. package/src/lib/server/working-state/normalization.ts +10 -103
  190. package/src/lib/server/working-state/service.ts +12 -21
  191. package/src/lib/setup-defaults.ts +5 -0
  192. package/src/lib/strip-internal-metadata.test.ts +1 -1
  193. package/src/lib/strip-internal-metadata.ts +1 -1
  194. package/src/lib/tool-definitions.ts +1 -1
  195. package/src/lib/validation/schemas.test.ts +16 -0
  196. package/src/lib/validation/schemas.ts +49 -2
  197. package/src/stores/slices/data-slice.ts +5 -1
  198. package/src/stores/slices/ui-slice.ts +0 -4
  199. package/src/stores/use-chat-store.test.ts +231 -0
  200. package/src/stores/use-chat-store.ts +62 -13
  201. package/src/types/agent.ts +264 -0
  202. package/src/types/app-settings.ts +173 -0
  203. package/src/types/approval.ts +25 -0
  204. package/src/types/connector.ts +188 -0
  205. package/src/types/extension.ts +386 -0
  206. package/src/types/index.ts +16 -3555
  207. package/src/types/message.ts +56 -0
  208. package/src/types/misc.ts +737 -0
  209. package/src/types/protocol.ts +420 -0
  210. package/src/types/provider.ts +52 -0
  211. package/src/types/run.ts +180 -0
  212. package/src/types/schedule.ts +59 -0
  213. package/src/types/session.ts +215 -0
  214. package/src/types/skill.ts +157 -0
  215. package/src/types/swarmdock.ts +29 -0
  216. package/src/types/task.ts +144 -0
  217. package/src/types/working-state.ts +204 -0
  218. package/src/views/settings/section-heartbeat.tsx +2 -2
  219. package/src/views/settings/section-runtime-loop.tsx +0 -14
  220. package/src/app/api/canvas/[sessionId]/route.ts +0 -35
  221. package/src/app/api/missions/[id]/actions/route.ts +0 -31
  222. package/src/app/api/missions/[id]/events/route.ts +0 -14
  223. package/src/app/api/missions/[id]/route.ts +0 -10
  224. package/src/app/api/missions/route.test.ts +0 -244
  225. package/src/app/api/missions/route.ts +0 -57
  226. package/src/app/api/wallets/[id]/approve/route.ts +0 -79
  227. package/src/app/api/wallets/[id]/balance-history/route.ts +0 -18
  228. package/src/app/api/wallets/[id]/send/route.ts +0 -113
  229. package/src/app/api/wallets/[id]/transactions/route.ts +0 -18
  230. package/src/app/missions/[id]/page.tsx +0 -3
  231. package/src/app/missions/page.tsx +0 -685
  232. package/src/components/canvas/canvas-panel.tsx +0 -267
  233. package/src/components/wallets/wallet-approval-dialog.tsx +0 -107
  234. package/src/components/wallets/wallet-panel.tsx +0 -1010
  235. package/src/components/wallets/wallet-section.tsx +0 -260
  236. package/src/features/missions/queries.ts +0 -23
  237. package/src/lib/canvas-content.test.ts +0 -360
  238. package/src/lib/canvas-content.ts +0 -198
  239. package/src/lib/server/canvas-content.test.ts +0 -32
  240. package/src/lib/server/canvas-content.ts +0 -6
  241. package/src/lib/server/ethereum.ts +0 -591
  242. package/src/lib/server/evm-swap.ts +0 -476
  243. package/src/lib/server/missions/mission-intent.test.ts +0 -63
  244. package/src/lib/server/missions/mission-intent.ts +0 -569
  245. package/src/lib/server/missions/mission-repository.ts +0 -74
  246. package/src/lib/server/missions/mission-service/actions.ts +0 -6
  247. package/src/lib/server/missions/mission-service/bindings.ts +0 -9
  248. package/src/lib/server/missions/mission-service/context.ts +0 -4
  249. package/src/lib/server/missions/mission-service/core.ts +0 -2271
  250. package/src/lib/server/missions/mission-service/queries.ts +0 -12
  251. package/src/lib/server/missions/mission-service/recovery.ts +0 -5
  252. package/src/lib/server/missions/mission-service/ticks.ts +0 -9
  253. package/src/lib/server/missions/mission-service.test.ts +0 -888
  254. package/src/lib/server/missions/mission-service.ts +0 -6
  255. package/src/lib/server/session-tools/canvas.ts +0 -105
  256. package/src/lib/server/session-tools/sandbox.ts +0 -281
  257. package/src/lib/server/session-tools/wallet-tool.test.ts +0 -150
  258. package/src/lib/server/session-tools/wallet.ts +0 -1287
  259. package/src/lib/server/solana.ts +0 -327
  260. package/src/lib/server/wallet/wallet-execution.test.ts +0 -198
  261. package/src/lib/server/wallet/wallet-portfolio.test.ts +0 -98
  262. package/src/lib/server/wallet/wallet-portfolio.ts +0 -772
  263. package/src/lib/server/wallet/wallet-service.test.ts +0 -81
  264. package/src/lib/server/wallet/wallet-service.ts +0 -225
  265. package/src/lib/wallet/wallet-transactions.test.ts +0 -75
  266. package/src/lib/wallet/wallet-transactions.ts +0 -43
  267. package/src/lib/wallet/wallet.test.ts +0 -333
  268. package/src/lib/wallet/wallet.ts +0 -183
  269. package/src/views/settings/section-wallets.tsx +0 -35
@@ -0,0 +1,215 @@
1
+ import type { ProviderId, OllamaMode } from './provider'
2
+ import type { ConnectorPlatform } from './connector'
3
+ import type { Message } from './message'
4
+
5
+ export type SessionResetMode = 'idle' | 'daily' | 'isolated'
6
+ export type SessionResetType = 'direct' | 'group' | 'thread' | 'main'
7
+
8
+ export interface IdentityContinuityState {
9
+ selfSummary?: string | null
10
+ relationshipSummary?: string | null
11
+ personaLabel?: string | null
12
+ toneStyle?: string | null
13
+ boundaries?: string[]
14
+ continuityNotes?: string[]
15
+ updatedAt?: number | null
16
+ }
17
+
18
+ export interface SessionArchiveState {
19
+ memoryId?: string | null
20
+ lastSyncedAt?: number | null
21
+ lastHash?: string | null
22
+ messageCount?: number
23
+ exportPath?: string | null
24
+ }
25
+
26
+ export interface SessionSkillRuntimeState {
27
+ selectedSkillId?: string | null
28
+ selectedSkillName?: string | null
29
+ selectedAt?: number | null
30
+ lastAction?: 'select' | 'load' | 'run' | null
31
+ lastRunAt?: number | null
32
+ lastRunToolName?: string | null
33
+ }
34
+
35
+
36
+ export interface MailboxEnvelope {
37
+ id: string
38
+ type: string
39
+ payload: string
40
+ fromSessionId?: string | null
41
+ fromAgentId?: string | null
42
+ toSessionId: string
43
+ toAgentId?: string | null
44
+ correlationId?: string | null
45
+ status: MailboxStatus
46
+ createdAt: number
47
+ expiresAt?: number | null
48
+ ackAt?: number | null
49
+ }
50
+
51
+ export type MailboxStatus = 'new' | 'ack'
52
+
53
+ export interface Session {
54
+ id: string
55
+ name: string
56
+ openclawAgentId?: string | null
57
+ shortcutForAgentId?: string | null
58
+ cwd: string
59
+ user: string
60
+ provider: ProviderId
61
+ model: string
62
+ ollamaMode?: OllamaMode | null
63
+ credentialId?: string | null
64
+ fallbackCredentialIds?: string[]
65
+ apiEndpoint?: string | null
66
+ gatewayProfileId?: string | null
67
+ routePreferredGatewayTags?: string[]
68
+ routePreferredGatewayUseCase?: string | null
69
+ claudeSessionId: string | null
70
+ codexThreadId?: string | null
71
+ opencodeSessionId?: string | null
72
+ geminiSessionId?: string | null
73
+ delegateResumeIds?: {
74
+ claudeCode?: string | null
75
+ codex?: string | null
76
+ opencode?: string | null
77
+ gemini?: string | null
78
+ }
79
+ /** @deprecated Messages are stored in session_messages table. Use message-repository. */
80
+ messages: Message[]
81
+ /** Pre-computed message count (kept in sync by message-repository). */
82
+ messageCount?: number
83
+ lastMessageSummary?: Message | null
84
+ lastAssistantAt?: number | null
85
+ createdAt: number
86
+ updatedAt?: number | null
87
+ lastActiveAt: number
88
+ active?: boolean
89
+ sessionType?: SessionType
90
+ agentId?: string | null
91
+ parentSessionId?: string | null
92
+ delegationDepth?: number | null
93
+ tools?: string[]
94
+ extensions?: string[]
95
+ heartbeatEnabled?: boolean | null
96
+ heartbeatIntervalSec?: number | null
97
+ heartbeatTarget?: 'last' | 'none' | string | null
98
+ memoryScopeMode?: 'auto' | 'all' | 'global' | 'agent' | 'session' | 'project' | null
99
+ memoryTierPreference?: 'working' | 'durable' | 'archive' | 'blended' | null
100
+ projectId?: string | null
101
+ sessionResetMode?: SessionResetMode | null
102
+ sessionIdleTimeoutSec?: number | null
103
+ sessionMaxAgeSec?: number | null
104
+ sessionDailyResetAt?: string | null
105
+ sessionResetTimezone?: string | null
106
+ thinkingLevel?: 'minimal' | 'low' | 'medium' | 'high' | null
107
+ browserProfileId?: string | null
108
+ connectorThinkLevel?: 'minimal' | 'low' | 'medium' | 'high' | null
109
+ connectorSessionScope?: 'main' | 'channel' | 'peer' | 'channel-peer' | 'thread' | null
110
+ connectorReplyMode?: 'off' | 'first' | 'all' | null
111
+ connectorThreadBinding?: 'off' | 'prefer' | 'strict' | null
112
+ connectorGroupPolicy?: 'open' | 'mention' | 'reply-or-mention' | 'disabled' | null
113
+ connectorIdleTimeoutSec?: number | null
114
+ connectorMaxAgeSec?: number | null
115
+ /** Last heartbeat/cron delivery status */
116
+ lastDeliveryStatus?: 'ok' | 'error' | null
117
+ /** Timestamp of last heartbeat/cron delivery attempt */
118
+ lastDeliveredAt?: number | null
119
+ /** Error message from last failed delivery */
120
+ lastDeliveryError?: string | null
121
+ mailbox?: MailboxEnvelope[] | null
122
+ connectorContext?: {
123
+ connectorId?: string | null
124
+ platform?: ConnectorPlatform | null
125
+ channelId?: string | null
126
+ channelIdAlt?: string | null
127
+ senderId?: string | null
128
+ senderIdAlt?: string | null
129
+ senderName?: string | null
130
+ senderAvatarUrl?: string | null
131
+ sessionKey?: string | null
132
+ peerKey?: string | null
133
+ scope?: 'main' | 'channel' | 'peer' | 'channel-peer' | 'thread' | null
134
+ replyMode?: 'off' | 'first' | 'all' | null
135
+ threadBinding?: 'off' | 'prefer' | 'strict' | null
136
+ groupPolicy?: 'open' | 'mention' | 'reply-or-mention' | 'disabled' | null
137
+ threadId?: string | null
138
+ threadTitle?: string | null
139
+ threadPersonaLabel?: string | null
140
+ threadParentChannelId?: string | null
141
+ threadParentChannelName?: string | null
142
+ isGroup?: boolean
143
+ isOwnerConversation?: boolean
144
+ lastInboundAt?: number | null
145
+ lastInboundMessageId?: string | null
146
+ lastInboundReplyToMessageId?: string | null
147
+ lastInboundThreadId?: string | null
148
+ lastOutboundAt?: number | null
149
+ lastOutboundMessageId?: string | null
150
+ lastResetAt?: number | null
151
+ lastResetReason?: string | null
152
+ allKnownPeerIds?: string[] | null
153
+ }
154
+ lastAutoMemoryAt?: number | null
155
+ lastHeartbeatText?: string | null
156
+ lastHeartbeatSentAt?: number | null
157
+ lastSessionResetAt?: number | null
158
+ lastSessionResetReason?: string | null
159
+ identityState?: IdentityContinuityState | null
160
+ sessionArchiveState?: SessionArchiveState | null
161
+ skillRuntimeState?: SessionSkillRuntimeState | null
162
+ pinned?: boolean
163
+ file?: string | null
164
+ queuedCount?: number
165
+ currentRunId?: string | null
166
+ conversationTone?: string
167
+ emoji?: string
168
+ creature?: string
169
+ vibe?: string
170
+ theme?: string
171
+ avatar?: string
172
+ /** Tracks how many times each memory ID has been injected via proactive recall in this session. */
173
+ injectedMemoryIds?: Record<string, number>
174
+ /** Structured working memory that survives compaction and flows through delegation. */
175
+ runContext?: RunContext | null
176
+ }
177
+
178
+ export interface RunContext {
179
+ objective: string | null
180
+ constraints: string[]
181
+ keyFacts: string[]
182
+ discoveries: string[]
183
+ failedApproaches: string[]
184
+ currentPlan: string[]
185
+ completedSteps: string[]
186
+ blockers: string[]
187
+ parentContext: string | null
188
+ updatedAt: number
189
+ version: number
190
+ }
191
+
192
+ export type Sessions = Record<string, Session>
193
+
194
+ export type SessionTool =
195
+ | 'shell'
196
+ | 'files'
197
+ | 'claude_code'
198
+ | 'codex_cli'
199
+ | 'opencode_cli'
200
+ | 'web_search'
201
+ | 'web_fetch'
202
+ | 'edit_file'
203
+ | 'process'
204
+ | 'spawn_subagent'
205
+ | 'http_request'
206
+ | 'git'
207
+ | 'mailbox'
208
+ | 'ask_human'
209
+ | 'document'
210
+ | 'extract'
211
+ | 'table'
212
+ | 'crawl'
213
+
214
+ export type SessionType = 'human'
215
+ export type AppView = 'home' | 'agents' | 'org_chart' | 'inbox' | 'chatrooms' | 'protocols' | 'schedules' | 'memory' | 'tasks' | 'secrets' | 'wallets' | 'providers' | 'skills' | 'connectors' | 'webhooks' | 'mcp_servers' | 'knowledge' | 'extensions' | 'usage' | 'runs' | 'autonomy' | 'logs' | 'settings' | 'projects' | 'activity'
@@ -0,0 +1,157 @@
1
+ // --- Skills ---
2
+
3
+ export interface Skill {
4
+ id: string
5
+ name: string
6
+ filename: string
7
+ content: string
8
+ projectId?: string
9
+ description?: string
10
+ sourceUrl?: string
11
+ sourceFormat?: 'openclaw' | 'plain'
12
+ author?: string
13
+ tags?: string[]
14
+ version?: string
15
+ homepage?: string
16
+ primaryEnv?: string | null
17
+ skillKey?: string | null
18
+ toolNames?: string[]
19
+ capabilities?: string[]
20
+ always?: boolean
21
+ installOptions?: SkillInstallOption[]
22
+ skillRequirements?: SkillRequirements
23
+ detectedEnvVars?: string[]
24
+ security?: SkillSecuritySummary | null
25
+ invocation?: SkillInvocationConfig | null
26
+ commandDispatch?: SkillCommandDispatch | null
27
+ frontmatter?: Record<string, unknown> | null
28
+ scope?: 'global' | 'agent'
29
+ agentIds?: string[]
30
+ createdAt: number
31
+ updatedAt: number
32
+ }
33
+
34
+ export type LearnedSkillScope = 'agent' | 'session'
35
+ export type LearnedSkillLifecycle = 'candidate' | 'active' | 'shadow' | 'demoted' | 'review_ready'
36
+ export type LearnedSkillSourceKind = 'success_pattern' | 'failure_repair'
37
+ export type LearnedSkillValidationStatus = 'pending' | 'passed' | 'failed'
38
+ export type LearnedSkillRiskLevel = 'low' | 'medium' | 'high'
39
+
40
+ export interface LearnedSkill {
41
+ id: string
42
+ parentSkillId?: string | null
43
+ agentId: string
44
+ userId?: string | null
45
+ sessionId?: string | null
46
+ scope: LearnedSkillScope
47
+ lifecycle: LearnedSkillLifecycle
48
+ sourceKind: LearnedSkillSourceKind
49
+ workflowKey: string
50
+ failureFamily?: string | null
51
+ objectiveSummary?: string | null
52
+ name?: string | null
53
+ description?: string | null
54
+ content?: string | null
55
+ tags?: string[]
56
+ rationale?: string | null
57
+ confidence?: number | null
58
+ riskLevel?: LearnedSkillRiskLevel | null
59
+ validationStatus: LearnedSkillValidationStatus
60
+ validationSummary?: string | null
61
+ validationEvidenceCount?: number
62
+ evidenceCount?: number
63
+ activationCount?: number
64
+ successCount?: number
65
+ failureCount?: number
66
+ consecutiveSuccessCount?: number
67
+ consecutiveFailureCount?: number
68
+ lastSourceHash?: string | null
69
+ lastUsedAt?: number | null
70
+ lastSucceededAt?: number | null
71
+ lastFailedAt?: number | null
72
+ demotedAt?: number | null
73
+ demotionReason?: string | null
74
+ retryUnlockedAt?: number | null
75
+ retryUnlockedByReflectionId?: string | null
76
+ retryUnlockedBySkillId?: string | null
77
+ reviewReadyAt?: number | null
78
+ sourceSessionName?: string | null
79
+ sourceSnippet?: string | null
80
+ lastRefinedAt?: number | null
81
+ refinementCount?: number
82
+ createdAt: number
83
+ updatedAt: number
84
+ }
85
+
86
+ export type SkillSuggestionStatus = 'draft' | 'approved' | 'rejected'
87
+
88
+ export interface SkillSuggestion {
89
+ id: string
90
+ status: SkillSuggestionStatus
91
+ sourceSessionId: string
92
+ sourceSessionName?: string | null
93
+ sourceAgentId?: string | null
94
+ sourceAgentName?: string | null
95
+ sourceHash?: string | null
96
+ sourceMessageCount?: number | null
97
+ name: string
98
+ description?: string
99
+ content: string
100
+ tags?: string[]
101
+ confidence?: number | null
102
+ rationale?: string | null
103
+ summary?: string | null
104
+ sourceSnippet?: string | null
105
+ createdSkillId?: string | null
106
+ approvedAt?: number | null
107
+ rejectedAt?: number | null
108
+ createdAt: number
109
+ updatedAt: number
110
+ }
111
+
112
+ export interface SkillInvocationConfig {
113
+ userInvocable?: boolean
114
+ }
115
+
116
+ export interface SkillCommandDispatch {
117
+ kind: 'tool'
118
+ toolName: string
119
+ argMode?: 'raw'
120
+ }
121
+
122
+ export interface SkillAuditFinding {
123
+ severity: 'warning' | 'error'
124
+ code: string
125
+ message: string
126
+ path?: string
127
+ }
128
+
129
+ export interface SkillAuditResult {
130
+ status: 'pass' | 'warn' | 'block'
131
+ findings: SkillAuditFinding[]
132
+ }
133
+
134
+ export interface SkillSecuritySummary {
135
+ level: 'low' | 'medium' | 'high'
136
+ notes: string[]
137
+ detectedEnvVars?: string[]
138
+ missingDeclarations?: string[]
139
+ installCommands?: string[]
140
+ }
141
+
142
+ // --- Skill Lifecycle (F11) ---
143
+ export interface SkillInstallOption {
144
+ kind: 'brew' | 'node' | 'go' | 'uv' | 'download'
145
+ label: string
146
+ bins?: string[]
147
+ }
148
+
149
+ export interface SkillRequirements {
150
+ bins?: string[]
151
+ anyBins?: string[][]
152
+ env?: string[]
153
+ config?: string[]
154
+ os?: string[]
155
+ }
156
+
157
+ export type SkillAllowlistMode = 'all' | 'none' | 'selected'
@@ -0,0 +1,29 @@
1
+ // --- SwarmDock Marketplace Types ---
2
+
3
+ export interface AgentWallet {
4
+ id: string
5
+ agentId: string
6
+ walletAddress: string
7
+ chain: 'base'
8
+ label?: string
9
+ encryptedPrivateKey?: string | null
10
+ spendingLimitUsdc?: string | null
11
+ dailyLimitUsdc?: string | null
12
+ requireApproval?: boolean
13
+ swarmdockAgentId?: string | null
14
+ swarmdockDid?: string | null
15
+ createdAt: number
16
+ }
17
+
18
+ export type SafeWallet = Omit<AgentWallet, 'encryptedPrivateKey'>
19
+
20
+ export interface WalletTransaction {
21
+ id: string
22
+ walletId: string
23
+ swarmdockTaskId?: string | null
24
+ amount: string
25
+ direction: 'in' | 'out'
26
+ txHash?: string | null
27
+ status: 'pending' | 'confirmed' | 'failed'
28
+ createdAt: number
29
+ }
@@ -0,0 +1,144 @@
1
+ import type { GoalContract } from './app-settings'
2
+
3
+ // --- Task Board ---
4
+
5
+ export type BoardTaskStatus = 'backlog' | 'queued' | 'running' | 'completed' | 'failed' | 'cancelled' | 'archived' | 'deferred'
6
+
7
+ export interface TaskComment {
8
+ id: string
9
+ author: string // agent name or 'user'
10
+ agentId?: string // if from an agent
11
+ text: string
12
+ createdAt: number
13
+ }
14
+
15
+ export interface TaskQualityGateConfig {
16
+ enabled?: boolean
17
+ minResultChars?: number
18
+ minEvidenceItems?: number
19
+ requireVerification?: boolean
20
+ requireArtifact?: boolean
21
+ requireReport?: boolean
22
+ }
23
+
24
+ export interface BoardTask {
25
+ id: string
26
+ title: string
27
+ description: string
28
+ status: BoardTaskStatus
29
+ agentId: string
30
+ protocolRunId?: string | null
31
+ // Objective tracking (absorbed from missions)
32
+ objective?: string | null
33
+ successCriteria?: string[] | null
34
+ verificationSummary?: string | null
35
+ rootTaskId?: string | null
36
+ projectId?: string
37
+ goalContract?: GoalContract | null
38
+ cwd?: string | null
39
+ file?: string | null
40
+ sessionId?: string | null
41
+ completionReportPath?: string | null
42
+ result?: string | null
43
+ error?: string | null
44
+ outputFiles?: string[]
45
+ artifacts?: Array<{
46
+ url: string
47
+ type: 'image' | 'video' | 'pdf' | 'file'
48
+ filename: string
49
+ }>
50
+ comments?: TaskComment[]
51
+ images?: string[]
52
+ createdByAgentId?: string | null
53
+ createdInSessionId?: string | null
54
+ followupConnectorId?: string | null
55
+ followupChannelId?: string | null
56
+ followupThreadId?: string | null
57
+ followupSenderId?: string | null
58
+ followupSenderName?: string | null
59
+ delegatedByAgentId?: string | null
60
+ delegatedFromTaskId?: string | null
61
+ delegationDepth?: number | null
62
+ createdAt: number
63
+ updatedAt: number
64
+ queuedAt?: number | null
65
+ startedAt?: number | null
66
+ completedAt?: number | null
67
+ archivedAt?: number | null
68
+ attempts?: number
69
+ maxAttempts?: number
70
+ retryBackoffSec?: number
71
+ retryScheduledAt?: number | null
72
+ runNumber?: number
73
+ totalRuns?: number
74
+ totalCompleted?: number
75
+ totalFailed?: number
76
+ sourceType?: 'schedule' | 'delegation' | 'manual' | 'import'
77
+ sourceScheduleId?: string | null
78
+ sourceScheduleName?: string | null
79
+ sourceScheduleKey?: string | null
80
+ externalSource?: {
81
+ source: string
82
+ id?: string | null
83
+ repo?: string | null
84
+ number?: number | null
85
+ state?: string | null
86
+ labels?: string[]
87
+ assignee?: string | null
88
+ url?: string | null
89
+ } | null
90
+ lastActivityAt?: number | null
91
+ deferredReason?: string | null
92
+ deadLetteredAt?: number | null
93
+ cliResumeId?: string | null
94
+ cliProvider?: string | null
95
+ claudeResumeId?: string | null
96
+ codexResumeId?: string | null
97
+ opencodeResumeId?: string | null
98
+ geminiResumeId?: string | null
99
+ checkpoint?: {
100
+ lastRunId?: string | null
101
+ lastSessionId?: string | null
102
+ note?: string | null
103
+ updatedAt: number
104
+ } | null
105
+ validation?: {
106
+ ok: boolean
107
+ reasons: string[]
108
+ checkedAt: number
109
+ } | null
110
+ // Parent/child task hierarchy (user-created subtasks)
111
+ parentTaskId?: string | null
112
+ subtaskIds?: string[]
113
+ // Task dependencies (DAG)
114
+ blockedBy?: string[]
115
+ blocks?: string[]
116
+ // Task tags
117
+ tags?: string[]
118
+ // Due date
119
+ dueAt?: number | null
120
+ // Custom fields
121
+ customFields?: Record<string, string | number | boolean>
122
+ // Priority
123
+ priority?: 'low' | 'medium' | 'high' | 'critical'
124
+ // Dedup fingerprint
125
+ fingerprint?: string
126
+ qualityGate?: TaskQualityGateConfig | null
127
+ // Competitive task claiming (pool mode)
128
+ assignmentMode?: 'direct' | 'pool'
129
+ poolCandidateAgentIds?: string[]
130
+ claimedByAgentId?: string | null
131
+ claimedAt?: number | null
132
+ requiredCapabilities?: string[]
133
+ // Upstream task results (populated by cascadeUnblock when dependencies complete)
134
+ upstreamResults?: Array<{
135
+ taskId: string
136
+ taskTitle: string
137
+ agentId: string | null
138
+ resultPreview: string | null
139
+ }>
140
+ repairRunId?: string | null
141
+ lastRepairAttemptAt?: number | null
142
+ // Atomic checkout — prevents two runners from starting the same task
143
+ checkoutRunId?: string | null
144
+ }