clawvault 2.6.0 → 3.0.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 (232) hide show
  1. package/bin/command-registration.test.js +1 -3
  2. package/bin/register-core-commands.js +10 -23
  3. package/bin/register-maintenance-commands.js +3 -20
  4. package/bin/register-query-commands.js +23 -0
  5. package/bin/register-task-commands.js +1 -18
  6. package/bin/register-task-commands.test.js +0 -16
  7. package/bin/register-vault-operations-commands.js +1 -29
  8. package/dist/{chunk-QVMXF7FY.js → chunk-3D6BCTP6.js} +39 -1
  9. package/dist/{chunk-R2MIW5G7.js → chunk-3DHXQHYG.js} +1 -1
  10. package/dist/{chunk-Q2J5YTUF.js → chunk-3NSBOUT3.js} +73 -36
  11. package/dist/chunk-3RG5ZIWI.js +10 -0
  12. package/dist/{chunk-AZYOKJYC.js → chunk-62YTUT6J.js} +2 -2
  13. package/dist/chunk-6U6MK36V.js +205 -0
  14. package/dist/{chunk-4QYGFWRM.js → chunk-7R7O6STJ.js} +4 -4
  15. package/dist/{chunk-VXEOHTSL.js → chunk-C7OK5WKP.js} +4 -4
  16. package/dist/chunk-CMB7UL7C.js +327 -0
  17. package/dist/chunk-DEFFDRVP.js +938 -0
  18. package/dist/{chunk-K3CDT7IH.js → chunk-E7MFQB6D.js} +61 -20
  19. package/dist/{chunk-ME37YNW3.js → chunk-F2JEUD4J.js} +6 -4
  20. package/dist/chunk-GAJV4IGR.js +82 -0
  21. package/dist/chunk-GQSLDZTS.js +560 -0
  22. package/dist/{chunk-4OXMU5S2.js → chunk-GUKMRGM7.js} +1 -1
  23. package/dist/{chunk-YOSEUUNB.js → chunk-H34S76MB.js} +6 -6
  24. package/dist/{chunk-4TE4JMLA.js → chunk-JY6FYXIT.js} +10 -5
  25. package/dist/chunk-K234IDRJ.js +1073 -0
  26. package/dist/{chunk-IEVLHNLU.js → chunk-LNJA2UGL.js} +86 -9
  27. package/dist/{chunk-MFAWT5O5.js → chunk-LYHGEHXG.js} +1 -0
  28. package/dist/chunk-MFM6K7PU.js +374 -0
  29. package/dist/{chunk-QWQ3TIKS.js → chunk-N2AXRYLC.js} +1 -1
  30. package/dist/chunk-PAH27GSN.js +108 -0
  31. package/dist/{chunk-OIWVQYQF.js → chunk-QBLMXKF2.js} +1 -1
  32. package/dist/{chunk-FHFUXL6G.js → chunk-QK3UCXWL.js} +2 -2
  33. package/dist/{chunk-2YDBJS7M.js → chunk-SJSFRIYS.js} +1 -1
  34. package/dist/{chunk-GSD4ALSI.js → chunk-U55BGUAU.js} +2 -2
  35. package/dist/{chunk-PBEE567J.js → chunk-VGLOTGAS.js} +1 -1
  36. package/dist/{chunk-F55HGNU4.js → chunk-WAZ3NLWL.js} +47 -0
  37. package/dist/{chunk-KL4NAOMO.js → chunk-WGRQ6HDV.js} +1 -1
  38. package/dist/{chunk-UEOUADMO.js → chunk-YKTA5JOJ.js} +13 -10
  39. package/dist/{chunk-XAVB4GB4.js → chunk-ZVVFWOLW.js} +4 -4
  40. package/dist/cli/index.cjs +10033 -0
  41. package/dist/cli/index.d.cts +5 -0
  42. package/dist/cli/index.js +20 -18
  43. package/dist/commands/archive.cjs +287 -0
  44. package/dist/commands/archive.d.cts +11 -0
  45. package/dist/commands/archive.js +1 -0
  46. package/dist/commands/backlog.cjs +721 -0
  47. package/dist/commands/backlog.d.cts +53 -0
  48. package/dist/commands/backlog.js +3 -2
  49. package/dist/commands/blocked.cjs +204 -0
  50. package/dist/commands/blocked.d.cts +26 -0
  51. package/dist/commands/blocked.js +3 -2
  52. package/dist/commands/checkpoint.cjs +244 -0
  53. package/dist/commands/checkpoint.d.cts +41 -0
  54. package/dist/commands/checkpoint.js +2 -1
  55. package/dist/commands/compat.cjs +369 -0
  56. package/dist/commands/compat.d.cts +28 -0
  57. package/dist/commands/compat.js +2 -1
  58. package/dist/commands/context.cjs +2989 -0
  59. package/dist/commands/context.d.cts +2 -0
  60. package/dist/commands/context.js +5 -4
  61. package/dist/commands/doctor.cjs +3062 -0
  62. package/dist/commands/doctor.d.cts +21 -0
  63. package/dist/commands/doctor.d.ts +6 -1
  64. package/dist/commands/doctor.js +13 -11
  65. package/dist/commands/embed.cjs +232 -0
  66. package/dist/commands/embed.d.cts +17 -0
  67. package/dist/commands/embed.js +5 -2
  68. package/dist/commands/entities.cjs +141 -0
  69. package/dist/commands/entities.d.cts +7 -0
  70. package/dist/commands/entities.js +1 -0
  71. package/dist/commands/graph.cjs +501 -0
  72. package/dist/commands/graph.d.cts +21 -0
  73. package/dist/commands/graph.js +1 -0
  74. package/dist/commands/inject.cjs +1636 -0
  75. package/dist/commands/inject.d.cts +2 -0
  76. package/dist/commands/inject.d.ts +1 -1
  77. package/dist/commands/inject.js +4 -2
  78. package/dist/commands/kanban.cjs +884 -0
  79. package/dist/commands/kanban.d.cts +63 -0
  80. package/dist/commands/kanban.js +4 -3
  81. package/dist/commands/link.cjs +965 -0
  82. package/dist/commands/link.d.cts +11 -0
  83. package/dist/commands/link.js +1 -0
  84. package/dist/commands/migrate-observations.cjs +362 -0
  85. package/dist/commands/migrate-observations.d.cts +19 -0
  86. package/dist/commands/migrate-observations.js +3 -2
  87. package/dist/commands/observe.cjs +4099 -0
  88. package/dist/commands/observe.d.cts +23 -0
  89. package/dist/commands/observe.d.ts +1 -0
  90. package/dist/commands/observe.js +11 -9
  91. package/dist/commands/project.cjs +1341 -0
  92. package/dist/commands/project.d.cts +85 -0
  93. package/dist/commands/project.js +5 -4
  94. package/dist/commands/rebuild.cjs +3136 -0
  95. package/dist/commands/rebuild.d.cts +11 -0
  96. package/dist/commands/rebuild.js +10 -8
  97. package/dist/commands/recover.cjs +361 -0
  98. package/dist/commands/recover.d.cts +38 -0
  99. package/dist/commands/recover.js +3 -2
  100. package/dist/commands/reflect.cjs +1008 -0
  101. package/dist/commands/reflect.d.cts +11 -0
  102. package/dist/commands/reflect.js +6 -4
  103. package/dist/commands/repair-session.cjs +457 -0
  104. package/dist/commands/repair-session.d.cts +38 -0
  105. package/dist/commands/repair-session.js +1 -0
  106. package/dist/commands/replay.cjs +4103 -0
  107. package/dist/commands/replay.d.cts +16 -0
  108. package/dist/commands/replay.js +12 -10
  109. package/dist/commands/session-recap.cjs +353 -0
  110. package/dist/commands/session-recap.d.cts +27 -0
  111. package/dist/commands/session-recap.js +1 -0
  112. package/dist/commands/setup.cjs +1345 -0
  113. package/dist/commands/setup.d.cts +100 -0
  114. package/dist/commands/setup.d.ts +90 -2
  115. package/dist/commands/setup.js +21 -2
  116. package/dist/commands/shell-init.cjs +75 -0
  117. package/dist/commands/shell-init.d.cts +7 -0
  118. package/dist/commands/shell-init.js +2 -0
  119. package/dist/commands/sleep.cjs +6028 -0
  120. package/dist/commands/sleep.d.cts +36 -0
  121. package/dist/commands/sleep.d.ts +1 -1
  122. package/dist/commands/sleep.js +17 -15
  123. package/dist/commands/status.cjs +2736 -0
  124. package/dist/commands/status.d.cts +52 -0
  125. package/dist/commands/status.js +12 -10
  126. package/dist/commands/tailscale.cjs +1532 -0
  127. package/dist/commands/tailscale.d.cts +52 -0
  128. package/dist/commands/tailscale.js +1 -0
  129. package/dist/commands/task.cjs +1236 -0
  130. package/dist/commands/task.d.cts +97 -0
  131. package/dist/commands/task.js +4 -3
  132. package/dist/commands/template.cjs +457 -0
  133. package/dist/commands/template.d.cts +36 -0
  134. package/dist/commands/template.js +2 -1
  135. package/dist/commands/wake.cjs +2626 -0
  136. package/dist/commands/wake.d.cts +22 -0
  137. package/dist/commands/wake.d.ts +1 -1
  138. package/dist/commands/wake.js +12 -11
  139. package/dist/context-BUGaWpyL.d.cts +46 -0
  140. package/dist/index.cjs +14526 -0
  141. package/dist/index.d.cts +858 -0
  142. package/dist/index.d.ts +192 -7
  143. package/dist/index.js +101 -75
  144. package/dist/{inject-x65KXWPk.d.ts → inject-Bzi5E-By.d.cts} +1 -1
  145. package/dist/inject-Bzi5E-By.d.ts +137 -0
  146. package/dist/lib/auto-linker.cjs +176 -0
  147. package/dist/lib/auto-linker.d.cts +26 -0
  148. package/dist/lib/auto-linker.js +1 -0
  149. package/dist/lib/canvas-layout.cjs +136 -0
  150. package/dist/lib/canvas-layout.d.cts +31 -0
  151. package/dist/lib/canvas-layout.d.ts +16 -100
  152. package/dist/lib/canvas-layout.js +78 -20
  153. package/dist/lib/config.cjs +78 -0
  154. package/dist/lib/config.d.cts +11 -0
  155. package/dist/lib/config.js +1 -0
  156. package/dist/lib/entity-index.cjs +84 -0
  157. package/dist/lib/entity-index.d.cts +26 -0
  158. package/dist/lib/entity-index.js +1 -0
  159. package/dist/lib/project-utils.cjs +864 -0
  160. package/dist/lib/project-utils.d.cts +97 -0
  161. package/dist/lib/project-utils.js +4 -3
  162. package/dist/lib/session-repair.cjs +239 -0
  163. package/dist/lib/session-repair.d.cts +110 -0
  164. package/dist/lib/session-repair.js +1 -0
  165. package/dist/lib/session-utils.cjs +209 -0
  166. package/dist/lib/session-utils.d.cts +63 -0
  167. package/dist/lib/session-utils.js +1 -0
  168. package/dist/lib/tailscale.cjs +1183 -0
  169. package/dist/lib/tailscale.d.cts +225 -0
  170. package/dist/lib/tailscale.js +1 -0
  171. package/dist/lib/task-utils.cjs +1137 -0
  172. package/dist/lib/task-utils.d.cts +208 -0
  173. package/dist/lib/task-utils.js +3 -2
  174. package/dist/lib/template-engine.cjs +47 -0
  175. package/dist/lib/template-engine.d.cts +11 -0
  176. package/dist/lib/template-engine.js +1 -0
  177. package/dist/lib/webdav.cjs +568 -0
  178. package/dist/lib/webdav.d.cts +109 -0
  179. package/dist/lib/webdav.js +1 -0
  180. package/dist/plugin/index.cjs +1907 -0
  181. package/dist/plugin/index.d.cts +36 -0
  182. package/dist/plugin/index.d.ts +36 -0
  183. package/dist/plugin/index.js +572 -0
  184. package/dist/plugin/inject.cjs +356 -0
  185. package/dist/plugin/inject.d.cts +54 -0
  186. package/dist/plugin/inject.d.ts +54 -0
  187. package/dist/plugin/inject.js +17 -0
  188. package/dist/plugin/observe.cjs +631 -0
  189. package/dist/plugin/observe.d.cts +39 -0
  190. package/dist/plugin/observe.d.ts +39 -0
  191. package/dist/plugin/observe.js +18 -0
  192. package/dist/plugin/templates.cjs +593 -0
  193. package/dist/plugin/templates.d.cts +52 -0
  194. package/dist/plugin/templates.d.ts +52 -0
  195. package/dist/plugin/templates.js +25 -0
  196. package/dist/plugin/types.cjs +18 -0
  197. package/dist/plugin/types.d.cts +209 -0
  198. package/dist/plugin/types.d.ts +209 -0
  199. package/dist/plugin/types.js +0 -0
  200. package/dist/plugin/vault.cjs +927 -0
  201. package/dist/plugin/vault.d.cts +68 -0
  202. package/dist/plugin/vault.d.ts +68 -0
  203. package/dist/plugin/vault.js +22 -0
  204. package/dist/{types-C74wgGL1.d.ts → types-Y2_Um2Ls.d.cts} +44 -1
  205. package/dist/types-Y2_Um2Ls.d.ts +205 -0
  206. package/hooks/clawvault/handler.js +70 -7
  207. package/hooks/clawvault/handler.test.js +91 -0
  208. package/openclaw.plugin.json +56 -0
  209. package/package.json +17 -7
  210. package/templates/memory-event.md +67 -0
  211. package/templates/party.md +63 -0
  212. package/templates/primitive-registry.yaml +551 -0
  213. package/templates/run.md +68 -0
  214. package/templates/trigger.md +68 -0
  215. package/templates/workspace.md +50 -0
  216. package/dashboard/lib/graph-diff.js +0 -104
  217. package/dashboard/lib/graph-diff.test.js +0 -75
  218. package/dashboard/lib/vault-parser.js +0 -556
  219. package/dashboard/lib/vault-parser.test.js +0 -254
  220. package/dashboard/public/app.js +0 -796
  221. package/dashboard/public/index.html +0 -52
  222. package/dashboard/public/styles.css +0 -221
  223. package/dashboard/server.js +0 -374
  224. package/dist/chunk-HA5M6KJB.js +0 -33
  225. package/dist/chunk-MAKNAHAW.js +0 -375
  226. package/dist/chunk-MDIH26GC.js +0 -183
  227. package/dist/chunk-MGDEINGP.js +0 -99
  228. package/dist/chunk-RVYA52PY.js +0 -363
  229. package/dist/commands/canvas.d.ts +0 -15
  230. package/dist/commands/canvas.js +0 -199
  231. package/dist/commands/sync-bd.d.ts +0 -10
  232. package/dist/commands/sync-bd.js +0 -9
@@ -0,0 +1,225 @@
1
+ import { ChildProcess } from 'child_process';
2
+ import * as http from 'http';
3
+
4
+ /**
5
+ * Tailscale Integration for ClawVault
6
+ *
7
+ * Provides native Tailscale networking capabilities for vault synchronization
8
+ * across devices on a Tailscale network (tailnet).
9
+ *
10
+ * Features:
11
+ * - Tailscale status detection and peer discovery
12
+ * - MagicDNS hostname resolution
13
+ * - Secure peer-to-peer vault sync
14
+ * - Tailscale Funnel/Serve integration for vault sharing
15
+ */
16
+
17
+ interface TailscaleStatus {
18
+ /** Whether Tailscale is installed */
19
+ installed: boolean;
20
+ /** Whether Tailscale daemon is running */
21
+ running: boolean;
22
+ /** Whether connected to tailnet */
23
+ connected: boolean;
24
+ /** Current device's Tailscale IP */
25
+ selfIP?: string;
26
+ /** Current device's MagicDNS hostname */
27
+ selfHostname?: string;
28
+ /** Current device's full domain name */
29
+ selfDNSName?: string;
30
+ /** Tailnet name */
31
+ tailnetName?: string;
32
+ /** Backend state (Running, Stopped, etc.) */
33
+ backendState?: string;
34
+ /** List of peers on the tailnet */
35
+ peers: TailscalePeer[];
36
+ /** Error message if any */
37
+ error?: string;
38
+ }
39
+ interface TailscalePeer {
40
+ /** Peer's hostname */
41
+ hostname: string;
42
+ /** Peer's MagicDNS name */
43
+ dnsName: string;
44
+ /** Peer's Tailscale IP addresses */
45
+ tailscaleIPs: string[];
46
+ /** Whether peer is currently online */
47
+ online: boolean;
48
+ /** Operating system */
49
+ os?: string;
50
+ /** Whether this peer is the exit node */
51
+ exitNode?: boolean;
52
+ /** Whether this peer is a tagged device */
53
+ tags?: string[];
54
+ /** Last seen timestamp */
55
+ lastSeen?: string;
56
+ /** Whether peer is running ClawVault serve */
57
+ clawvaultServing?: boolean;
58
+ /** ClawVault serve port if detected */
59
+ clawvaultPort?: number;
60
+ }
61
+ interface TailscaleServeConfig {
62
+ /** Port to serve on (default: 8384) */
63
+ port?: number;
64
+ /** Whether to use HTTPS (via Tailscale) */
65
+ https?: boolean;
66
+ /** Whether to expose via Tailscale Funnel (public internet) */
67
+ funnel?: boolean;
68
+ /** Path prefix for the serve endpoint */
69
+ pathPrefix?: string;
70
+ /** Optional WebDAV Basic Auth credentials */
71
+ webdavAuth?: {
72
+ username: string;
73
+ password: string;
74
+ };
75
+ }
76
+ interface TailscaleSyncOptions {
77
+ /** Target peer hostname or IP */
78
+ peer: string;
79
+ /** Port on the peer (default: 8384) */
80
+ port?: number;
81
+ /** Direction: push, pull, or bidirectional */
82
+ direction?: 'push' | 'pull' | 'bidirectional';
83
+ /** Dry run - don't actually sync */
84
+ dryRun?: boolean;
85
+ /** Delete files on target that don't exist on source */
86
+ deleteOrphans?: boolean;
87
+ /** Categories to sync (default: all) */
88
+ categories?: string[];
89
+ /** Use HTTPS for connection */
90
+ https?: boolean;
91
+ }
92
+ interface TailscaleSyncResult {
93
+ /** Files pushed to peer */
94
+ pushed: string[];
95
+ /** Files pulled from peer */
96
+ pulled: string[];
97
+ /** Files deleted */
98
+ deleted: string[];
99
+ /** Files unchanged */
100
+ unchanged: string[];
101
+ /** Errors encountered */
102
+ errors: string[];
103
+ /** Sync statistics */
104
+ stats: {
105
+ bytesTransferred: number;
106
+ filesProcessed: number;
107
+ duration: number;
108
+ };
109
+ }
110
+ interface VaultManifest {
111
+ /** Vault name */
112
+ name: string;
113
+ /** Vault version */
114
+ version: string;
115
+ /** Last updated timestamp */
116
+ lastUpdated: string;
117
+ /** File manifest with checksums */
118
+ files: VaultFileEntry[];
119
+ }
120
+ interface VaultFileEntry {
121
+ /** Relative path */
122
+ path: string;
123
+ /** File size in bytes */
124
+ size: number;
125
+ /** Last modified timestamp */
126
+ modified: string;
127
+ /** SHA-256 checksum */
128
+ checksum: string;
129
+ /** Category */
130
+ category: string;
131
+ }
132
+ declare const DEFAULT_SERVE_PORT = 8384;
133
+ declare const CLAWVAULT_SERVE_PATH = "/.clawvault";
134
+ declare const MANIFEST_ENDPOINT = "/.clawvault/manifest";
135
+ declare const SYNC_ENDPOINT = "/.clawvault/sync";
136
+ declare const FILE_ENDPOINT = "/.clawvault/files";
137
+ /**
138
+ * Check if Tailscale CLI is installed
139
+ */
140
+ declare function hasTailscale(): boolean;
141
+ /**
142
+ * Get Tailscale version
143
+ */
144
+ declare function getTailscaleVersion(): string | null;
145
+ /**
146
+ * Get comprehensive Tailscale status
147
+ */
148
+ declare function getTailscaleStatus(): TailscaleStatus;
149
+ /**
150
+ * Find a peer by hostname (partial match supported)
151
+ */
152
+ declare function findPeer(hostname: string): TailscalePeer | null;
153
+ /**
154
+ * Get online peers only
155
+ */
156
+ declare function getOnlinePeers(): TailscalePeer[];
157
+ /**
158
+ * Resolve a peer hostname to its Tailscale IP
159
+ */
160
+ declare function resolvePeerIP(hostname: string): string | null;
161
+ /**
162
+ * Generate vault manifest for synchronization
163
+ */
164
+ declare function generateVaultManifest(vaultPath: string): VaultManifest;
165
+ /**
166
+ * Compare two manifests and return differences
167
+ */
168
+ declare function compareManifests(local: VaultManifest, remote: VaultManifest): {
169
+ toPush: VaultFileEntry[];
170
+ toPull: VaultFileEntry[];
171
+ conflicts: Array<{
172
+ path: string;
173
+ local: VaultFileEntry;
174
+ remote: VaultFileEntry;
175
+ }>;
176
+ unchanged: string[];
177
+ };
178
+ interface ServeInstance {
179
+ server: http.Server;
180
+ port: number;
181
+ stop: () => Promise<void>;
182
+ }
183
+ /**
184
+ * Start serving a vault over HTTP for Tailscale sync
185
+ * Includes WebDAV support at /webdav/ for Obsidian mobile sync
186
+ */
187
+ declare function serveVault(vaultPath: string, options?: TailscaleServeConfig): ServeInstance;
188
+ /**
189
+ * Fetch remote vault manifest
190
+ */
191
+ declare function fetchRemoteManifest(host: string, port?: number, useHttps?: boolean): Promise<VaultManifest>;
192
+ /**
193
+ * Fetch a file from remote vault
194
+ */
195
+ declare function fetchRemoteFile(host: string, filePath: string, port?: number, useHttps?: boolean): Promise<string>;
196
+ /**
197
+ * Push a file to remote vault
198
+ */
199
+ declare function pushFileToRemote(host: string, filePath: string, content: string, port?: number, useHttps?: boolean): Promise<void>;
200
+ /**
201
+ * Sync vault with a remote peer
202
+ */
203
+ declare function syncWithPeer(vaultPath: string, options: TailscaleSyncOptions): Promise<TailscaleSyncResult>;
204
+ /**
205
+ * Configure Tailscale serve for the vault
206
+ * This uses `tailscale serve` to expose the vault server via Tailscale's HTTPS
207
+ */
208
+ declare function configureTailscaleServe(localPort: number, options?: {
209
+ funnel?: boolean;
210
+ background?: boolean;
211
+ }): ChildProcess | null;
212
+ /**
213
+ * Stop Tailscale serve
214
+ */
215
+ declare function stopTailscaleServe(): boolean;
216
+ /**
217
+ * Check if a peer is serving ClawVault
218
+ */
219
+ declare function checkPeerClawVault(host: string, port?: number): Promise<boolean>;
220
+ /**
221
+ * Discover ClawVault peers on the tailnet
222
+ */
223
+ declare function discoverClawVaultPeers(port?: number): Promise<TailscalePeer[]>;
224
+
225
+ export { CLAWVAULT_SERVE_PATH, DEFAULT_SERVE_PORT, FILE_ENDPOINT, MANIFEST_ENDPOINT, SYNC_ENDPOINT, type ServeInstance, type TailscalePeer, type TailscaleServeConfig, type TailscaleStatus, type TailscaleSyncOptions, type TailscaleSyncResult, type VaultFileEntry, type VaultManifest, checkPeerClawVault, compareManifests, configureTailscaleServe, discoverClawVaultPeers, fetchRemoteFile, fetchRemoteManifest, findPeer, generateVaultManifest, getOnlinePeers, getTailscaleStatus, getTailscaleVersion, hasTailscale, pushFileToRemote, resolvePeerIP, serveVault, stopTailscaleServe, syncWithPeer };
@@ -23,6 +23,7 @@ import {
23
23
  syncWithPeer
24
24
  } from "../chunk-TIGW564L.js";
25
25
  import "../chunk-IVRIKYFE.js";
26
+ import "../chunk-3RG5ZIWI.js";
26
27
  export {
27
28
  CLAWVAULT_SERVE_PATH,
28
29
  DEFAULT_SERVE_PORT,