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,52 @@
1
+ /**
2
+ * Template Registry for ClawVault
3
+ *
4
+ * Parses YAML frontmatter from template files and builds an in-memory
5
+ * registry of {primitiveType → schema}. Supports dynamic observation
6
+ * classification and template-aware file writing.
7
+ */
8
+ interface TemplateFieldSchema {
9
+ type: string;
10
+ required?: boolean;
11
+ default?: string | number | boolean;
12
+ enum?: string[];
13
+ description?: string;
14
+ }
15
+ interface TemplateSchema {
16
+ primitive: string;
17
+ description?: string;
18
+ fields: Record<string, TemplateFieldSchema>;
19
+ bodyTemplate?: string;
20
+ keywords?: string[];
21
+ }
22
+ interface TemplateRegistry {
23
+ schemas: Map<string, TemplateSchema>;
24
+ keywordIndex: Map<string, string[]>;
25
+ initialized: boolean;
26
+ }
27
+ interface ClassificationResult {
28
+ primitiveType: string;
29
+ confidence: number;
30
+ matchedKeywords: string[];
31
+ }
32
+ declare function getTemplateRegistry(): TemplateRegistry;
33
+ declare function initializeTemplateRegistry(templatesDir?: string): TemplateRegistry;
34
+ declare function classifyText(text: string): ClassificationResult;
35
+ declare function getSchema(primitiveType: string): TemplateSchema | undefined;
36
+ declare function getAllSchemas(): TemplateSchema[];
37
+ declare function getSchemaNames(): string[];
38
+ interface FrontmatterOptions {
39
+ title?: string;
40
+ extraFields?: Record<string, unknown>;
41
+ source?: string;
42
+ sessionId?: string;
43
+ }
44
+ declare function generateFrontmatter(primitiveType: string, options?: FrontmatterOptions): Record<string, unknown>;
45
+ declare function validateFrontmatter(primitiveType: string, frontmatter: Record<string, unknown>): {
46
+ valid: boolean;
47
+ errors: string[];
48
+ };
49
+ declare function serializeFrontmatter(frontmatter: Record<string, unknown>): string;
50
+ declare function resetTemplateRegistry(): void;
51
+
52
+ export { type ClassificationResult, type FrontmatterOptions, type TemplateFieldSchema, type TemplateRegistry, type TemplateSchema, classifyText, generateFrontmatter, getAllSchemas, getSchema, getSchemaNames, getTemplateRegistry, initializeTemplateRegistry, resetTemplateRegistry, serializeFrontmatter, validateFrontmatter };
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Template Registry for ClawVault
3
+ *
4
+ * Parses YAML frontmatter from template files and builds an in-memory
5
+ * registry of {primitiveType → schema}. Supports dynamic observation
6
+ * classification and template-aware file writing.
7
+ */
8
+ interface TemplateFieldSchema {
9
+ type: string;
10
+ required?: boolean;
11
+ default?: string | number | boolean;
12
+ enum?: string[];
13
+ description?: string;
14
+ }
15
+ interface TemplateSchema {
16
+ primitive: string;
17
+ description?: string;
18
+ fields: Record<string, TemplateFieldSchema>;
19
+ bodyTemplate?: string;
20
+ keywords?: string[];
21
+ }
22
+ interface TemplateRegistry {
23
+ schemas: Map<string, TemplateSchema>;
24
+ keywordIndex: Map<string, string[]>;
25
+ initialized: boolean;
26
+ }
27
+ interface ClassificationResult {
28
+ primitiveType: string;
29
+ confidence: number;
30
+ matchedKeywords: string[];
31
+ }
32
+ declare function getTemplateRegistry(): TemplateRegistry;
33
+ declare function initializeTemplateRegistry(templatesDir?: string): TemplateRegistry;
34
+ declare function classifyText(text: string): ClassificationResult;
35
+ declare function getSchema(primitiveType: string): TemplateSchema | undefined;
36
+ declare function getAllSchemas(): TemplateSchema[];
37
+ declare function getSchemaNames(): string[];
38
+ interface FrontmatterOptions {
39
+ title?: string;
40
+ extraFields?: Record<string, unknown>;
41
+ source?: string;
42
+ sessionId?: string;
43
+ }
44
+ declare function generateFrontmatter(primitiveType: string, options?: FrontmatterOptions): Record<string, unknown>;
45
+ declare function validateFrontmatter(primitiveType: string, frontmatter: Record<string, unknown>): {
46
+ valid: boolean;
47
+ errors: string[];
48
+ };
49
+ declare function serializeFrontmatter(frontmatter: Record<string, unknown>): string;
50
+ declare function resetTemplateRegistry(): void;
51
+
52
+ export { type ClassificationResult, type FrontmatterOptions, type TemplateFieldSchema, type TemplateRegistry, type TemplateSchema, classifyText, generateFrontmatter, getAllSchemas, getSchema, getSchemaNames, getTemplateRegistry, initializeTemplateRegistry, resetTemplateRegistry, serializeFrontmatter, validateFrontmatter };
@@ -0,0 +1,25 @@
1
+ import {
2
+ classifyText,
3
+ generateFrontmatter,
4
+ getAllSchemas,
5
+ getSchema,
6
+ getSchemaNames,
7
+ getTemplateRegistry,
8
+ initializeTemplateRegistry,
9
+ resetTemplateRegistry,
10
+ serializeFrontmatter,
11
+ validateFrontmatter
12
+ } from "../chunk-GQSLDZTS.js";
13
+ import "../chunk-3RG5ZIWI.js";
14
+ export {
15
+ classifyText,
16
+ generateFrontmatter,
17
+ getAllSchemas,
18
+ getSchema,
19
+ getSchemaNames,
20
+ getTemplateRegistry,
21
+ initializeTemplateRegistry,
22
+ resetTemplateRegistry,
23
+ serializeFrontmatter,
24
+ validateFrontmatter
25
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/plugin/types.ts
17
+ var types_exports = {};
18
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Core types for ClawVault OpenClaw plugin
3
+ */
4
+ interface TemplateFieldSchema {
5
+ type: string;
6
+ required?: boolean;
7
+ default?: string | number | boolean;
8
+ enum?: string[];
9
+ description?: string;
10
+ }
11
+ interface TemplateSchema {
12
+ primitive: string;
13
+ description?: string;
14
+ fields: Record<string, TemplateFieldSchema>;
15
+ bodyTemplate?: string;
16
+ keywords?: string[];
17
+ }
18
+ interface TemplateRegistry {
19
+ schemas: Map<string, TemplateSchema>;
20
+ keywordIndex: Map<string, string[]>;
21
+ initialized: boolean;
22
+ }
23
+ interface ClassificationResult {
24
+ primitiveType: string;
25
+ confidence: number;
26
+ matchedKeywords: string[];
27
+ }
28
+ interface Observation {
29
+ text: string;
30
+ primitiveType: string;
31
+ confidence: number;
32
+ matchedKeywords: string[];
33
+ category: string;
34
+ tags: string[];
35
+ extractedAt: Date;
36
+ }
37
+ interface ObservationResult {
38
+ observations: Observation[];
39
+ skipped: number;
40
+ reason?: string;
41
+ }
42
+ interface VaultFile {
43
+ path: string;
44
+ relativePath: string;
45
+ primitiveType: string;
46
+ frontmatter: Record<string, unknown>;
47
+ content: string;
48
+ modifiedAt: Date;
49
+ createdAt: Date;
50
+ }
51
+ interface WriteOptions {
52
+ primitiveType?: string;
53
+ title?: string;
54
+ content?: string;
55
+ extraFields?: Record<string, unknown>;
56
+ source?: string;
57
+ sessionId?: string;
58
+ directory?: string;
59
+ filename?: string;
60
+ overwrite?: boolean;
61
+ }
62
+ interface WriteResult {
63
+ success: boolean;
64
+ path: string;
65
+ primitiveType: string;
66
+ errors: string[];
67
+ created: boolean;
68
+ updated: boolean;
69
+ }
70
+ interface SessionRecap {
71
+ xml: string;
72
+ fileCount: number;
73
+ primitiveGroups: Record<string, number>;
74
+ timeRange: {
75
+ oldest: Date;
76
+ newest: Date;
77
+ } | null;
78
+ }
79
+ interface PreferenceContext {
80
+ xml: string;
81
+ preferenceCount: number;
82
+ categories: string[];
83
+ }
84
+ interface Message {
85
+ role: 'user' | 'assistant' | 'system';
86
+ content: string;
87
+ timestamp?: string | Date;
88
+ }
89
+ interface SearchResult {
90
+ id: string;
91
+ title: string;
92
+ content: string;
93
+ snippet: string;
94
+ score: number;
95
+ category?: string;
96
+ path?: string;
97
+ modifiedAt?: Date;
98
+ metadata?: Record<string, unknown>;
99
+ }
100
+ interface SearchOptions {
101
+ limit?: number;
102
+ category?: string;
103
+ dateRange?: {
104
+ start?: Date;
105
+ end?: Date;
106
+ };
107
+ threshold?: number;
108
+ queryType?: QueryType;
109
+ }
110
+ type QueryType = 'factual' | 'preference' | 'temporal' | 'semantic' | 'auto';
111
+ interface Preference {
112
+ category: string;
113
+ item: string;
114
+ sentiment: 'positive' | 'negative' | 'neutral';
115
+ confidence: number;
116
+ source?: string;
117
+ extractedAt: Date;
118
+ }
119
+ interface DateIndex {
120
+ date: string;
121
+ documents: string[];
122
+ events: Array<{
123
+ title: string;
124
+ documentId: string;
125
+ type?: string;
126
+ }>;
127
+ }
128
+ interface IngestResult {
129
+ documentsCreated: number;
130
+ preferencesExtracted: number;
131
+ datesIndexed: number;
132
+ sessionId: string;
133
+ }
134
+ interface VaultStatus {
135
+ initialized: boolean;
136
+ documentCount: number;
137
+ categories: Record<string, number>;
138
+ lastActivity?: Date;
139
+ preferencesCount: number;
140
+ datesIndexedCount: number;
141
+ }
142
+ interface PluginConfig {
143
+ vaultPath?: string;
144
+ observer?: {
145
+ enabled?: boolean;
146
+ tokenThreshold?: number;
147
+ model?: string;
148
+ };
149
+ search?: {
150
+ defaultLimit?: number;
151
+ bm25PrefilterK?: number;
152
+ exhaustiveThreshold?: number;
153
+ };
154
+ }
155
+ interface OpenClawApi {
156
+ config?: unknown;
157
+ logger?: Logger;
158
+ registerTool?: (name: string, schema: ToolSchema, handler: ToolHandler) => void;
159
+ registerService?: (service: Service) => void;
160
+ registerCommand?: (command: SlashCommand) => void;
161
+ registerHook?: (hookName: string, handler: HookHandler) => void;
162
+ getPluginConfig?: (pluginId: string) => PluginConfig | undefined;
163
+ }
164
+ interface Logger {
165
+ debug?: (payload: unknown, message?: string) => void;
166
+ info?: (payload: unknown, message?: string) => void;
167
+ warn?: (payload: unknown, message?: string) => void;
168
+ error?: (payload: unknown, message?: string) => void;
169
+ }
170
+ interface ToolSchema {
171
+ name: string;
172
+ description: string;
173
+ parameters: {
174
+ type: 'object';
175
+ properties: Record<string, {
176
+ type: string;
177
+ description?: string;
178
+ enum?: string[];
179
+ default?: unknown;
180
+ }>;
181
+ required?: string[];
182
+ };
183
+ }
184
+ type ToolHandler = (input: Record<string, unknown>) => Promise<unknown> | unknown;
185
+ interface Service {
186
+ id: string;
187
+ start: () => Promise<void>;
188
+ stop: () => Promise<void>;
189
+ }
190
+ interface SlashCommand {
191
+ name: string;
192
+ description?: string;
193
+ handler: (input: {
194
+ args?: string;
195
+ context?: unknown;
196
+ }) => Promise<{
197
+ content: string;
198
+ }>;
199
+ }
200
+ type HookHandler = (event: HookEvent) => Promise<void> | void;
201
+ interface HookEvent {
202
+ type: string;
203
+ sessionId?: string;
204
+ messages?: Message[];
205
+ timestamp?: Date;
206
+ metadata?: Record<string, unknown>;
207
+ }
208
+
209
+ export type { ClassificationResult, DateIndex, HookEvent, HookHandler, IngestResult, Logger, Message, Observation, ObservationResult, OpenClawApi, PluginConfig, Preference, PreferenceContext, QueryType, SearchOptions, SearchResult, Service, SessionRecap, SlashCommand, TemplateFieldSchema, TemplateRegistry, TemplateSchema, ToolHandler, ToolSchema, VaultFile, VaultStatus, WriteOptions, WriteResult };
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Core types for ClawVault OpenClaw plugin
3
+ */
4
+ interface TemplateFieldSchema {
5
+ type: string;
6
+ required?: boolean;
7
+ default?: string | number | boolean;
8
+ enum?: string[];
9
+ description?: string;
10
+ }
11
+ interface TemplateSchema {
12
+ primitive: string;
13
+ description?: string;
14
+ fields: Record<string, TemplateFieldSchema>;
15
+ bodyTemplate?: string;
16
+ keywords?: string[];
17
+ }
18
+ interface TemplateRegistry {
19
+ schemas: Map<string, TemplateSchema>;
20
+ keywordIndex: Map<string, string[]>;
21
+ initialized: boolean;
22
+ }
23
+ interface ClassificationResult {
24
+ primitiveType: string;
25
+ confidence: number;
26
+ matchedKeywords: string[];
27
+ }
28
+ interface Observation {
29
+ text: string;
30
+ primitiveType: string;
31
+ confidence: number;
32
+ matchedKeywords: string[];
33
+ category: string;
34
+ tags: string[];
35
+ extractedAt: Date;
36
+ }
37
+ interface ObservationResult {
38
+ observations: Observation[];
39
+ skipped: number;
40
+ reason?: string;
41
+ }
42
+ interface VaultFile {
43
+ path: string;
44
+ relativePath: string;
45
+ primitiveType: string;
46
+ frontmatter: Record<string, unknown>;
47
+ content: string;
48
+ modifiedAt: Date;
49
+ createdAt: Date;
50
+ }
51
+ interface WriteOptions {
52
+ primitiveType?: string;
53
+ title?: string;
54
+ content?: string;
55
+ extraFields?: Record<string, unknown>;
56
+ source?: string;
57
+ sessionId?: string;
58
+ directory?: string;
59
+ filename?: string;
60
+ overwrite?: boolean;
61
+ }
62
+ interface WriteResult {
63
+ success: boolean;
64
+ path: string;
65
+ primitiveType: string;
66
+ errors: string[];
67
+ created: boolean;
68
+ updated: boolean;
69
+ }
70
+ interface SessionRecap {
71
+ xml: string;
72
+ fileCount: number;
73
+ primitiveGroups: Record<string, number>;
74
+ timeRange: {
75
+ oldest: Date;
76
+ newest: Date;
77
+ } | null;
78
+ }
79
+ interface PreferenceContext {
80
+ xml: string;
81
+ preferenceCount: number;
82
+ categories: string[];
83
+ }
84
+ interface Message {
85
+ role: 'user' | 'assistant' | 'system';
86
+ content: string;
87
+ timestamp?: string | Date;
88
+ }
89
+ interface SearchResult {
90
+ id: string;
91
+ title: string;
92
+ content: string;
93
+ snippet: string;
94
+ score: number;
95
+ category?: string;
96
+ path?: string;
97
+ modifiedAt?: Date;
98
+ metadata?: Record<string, unknown>;
99
+ }
100
+ interface SearchOptions {
101
+ limit?: number;
102
+ category?: string;
103
+ dateRange?: {
104
+ start?: Date;
105
+ end?: Date;
106
+ };
107
+ threshold?: number;
108
+ queryType?: QueryType;
109
+ }
110
+ type QueryType = 'factual' | 'preference' | 'temporal' | 'semantic' | 'auto';
111
+ interface Preference {
112
+ category: string;
113
+ item: string;
114
+ sentiment: 'positive' | 'negative' | 'neutral';
115
+ confidence: number;
116
+ source?: string;
117
+ extractedAt: Date;
118
+ }
119
+ interface DateIndex {
120
+ date: string;
121
+ documents: string[];
122
+ events: Array<{
123
+ title: string;
124
+ documentId: string;
125
+ type?: string;
126
+ }>;
127
+ }
128
+ interface IngestResult {
129
+ documentsCreated: number;
130
+ preferencesExtracted: number;
131
+ datesIndexed: number;
132
+ sessionId: string;
133
+ }
134
+ interface VaultStatus {
135
+ initialized: boolean;
136
+ documentCount: number;
137
+ categories: Record<string, number>;
138
+ lastActivity?: Date;
139
+ preferencesCount: number;
140
+ datesIndexedCount: number;
141
+ }
142
+ interface PluginConfig {
143
+ vaultPath?: string;
144
+ observer?: {
145
+ enabled?: boolean;
146
+ tokenThreshold?: number;
147
+ model?: string;
148
+ };
149
+ search?: {
150
+ defaultLimit?: number;
151
+ bm25PrefilterK?: number;
152
+ exhaustiveThreshold?: number;
153
+ };
154
+ }
155
+ interface OpenClawApi {
156
+ config?: unknown;
157
+ logger?: Logger;
158
+ registerTool?: (name: string, schema: ToolSchema, handler: ToolHandler) => void;
159
+ registerService?: (service: Service) => void;
160
+ registerCommand?: (command: SlashCommand) => void;
161
+ registerHook?: (hookName: string, handler: HookHandler) => void;
162
+ getPluginConfig?: (pluginId: string) => PluginConfig | undefined;
163
+ }
164
+ interface Logger {
165
+ debug?: (payload: unknown, message?: string) => void;
166
+ info?: (payload: unknown, message?: string) => void;
167
+ warn?: (payload: unknown, message?: string) => void;
168
+ error?: (payload: unknown, message?: string) => void;
169
+ }
170
+ interface ToolSchema {
171
+ name: string;
172
+ description: string;
173
+ parameters: {
174
+ type: 'object';
175
+ properties: Record<string, {
176
+ type: string;
177
+ description?: string;
178
+ enum?: string[];
179
+ default?: unknown;
180
+ }>;
181
+ required?: string[];
182
+ };
183
+ }
184
+ type ToolHandler = (input: Record<string, unknown>) => Promise<unknown> | unknown;
185
+ interface Service {
186
+ id: string;
187
+ start: () => Promise<void>;
188
+ stop: () => Promise<void>;
189
+ }
190
+ interface SlashCommand {
191
+ name: string;
192
+ description?: string;
193
+ handler: (input: {
194
+ args?: string;
195
+ context?: unknown;
196
+ }) => Promise<{
197
+ content: string;
198
+ }>;
199
+ }
200
+ type HookHandler = (event: HookEvent) => Promise<void> | void;
201
+ interface HookEvent {
202
+ type: string;
203
+ sessionId?: string;
204
+ messages?: Message[];
205
+ timestamp?: Date;
206
+ metadata?: Record<string, unknown>;
207
+ }
208
+
209
+ export type { ClassificationResult, DateIndex, HookEvent, HookHandler, IngestResult, Logger, Message, Observation, ObservationResult, OpenClawApi, PluginConfig, Preference, PreferenceContext, QueryType, SearchOptions, SearchResult, Service, SessionRecap, SlashCommand, TemplateFieldSchema, TemplateRegistry, TemplateSchema, ToolHandler, ToolSchema, VaultFile, VaultStatus, WriteOptions, WriteResult };
File without changes