clawvault 3.1.0 → 3.2.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.
- package/README.md +422 -141
- package/bin/clawvault.js +10 -2
- package/bin/command-registration.test.js +3 -1
- package/bin/command-runtime.js +9 -1
- package/bin/register-core-commands.js +23 -28
- package/bin/register-maintenance-commands.js +39 -3
- package/bin/register-query-commands.js +58 -29
- package/bin/register-tailscale-commands.js +106 -0
- package/bin/register-task-commands.js +18 -1
- package/bin/register-task-commands.test.js +16 -0
- package/bin/register-vault-operations-commands.js +29 -1
- package/bin/register-workgraph-commands.js +1368 -0
- package/dashboard/lib/graph-diff.js +104 -0
- package/dashboard/lib/graph-diff.test.js +75 -0
- package/dashboard/lib/vault-parser.js +556 -0
- package/dashboard/lib/vault-parser.test.js +254 -0
- package/dashboard/public/app.js +796 -0
- package/dashboard/public/index.html +52 -0
- package/dashboard/public/styles.css +221 -0
- package/dashboard/server.js +374 -0
- package/dist/{chunk-F2JEUD4J.js → chunk-23YDQ3QU.js} +6 -8
- package/dist/{chunk-C7OK5WKP.js → chunk-2JQ3O2YL.js} +4 -4
- package/dist/{chunk-VR5NE7PZ.js → chunk-2RAZ4ZFE.js} +1 -1
- package/dist/chunk-2ZDO52B4.js +52 -0
- package/dist/{chunk-ZZA73MFY.js → chunk-33DOSHTA.js} +176 -36
- package/dist/chunk-33VSQP4J.js +37 -0
- package/dist/chunk-4BQTQMJP.js +93 -0
- package/dist/{chunk-GUKMRGM7.js → chunk-4OXMU5S2.js} +1 -1
- package/dist/{chunk-62YTUT6J.js → chunk-4PY655YM.js} +15 -3
- package/dist/chunk-6FH3IULF.js +352 -0
- package/dist/{chunk-3NSBOUT3.js → chunk-77Q5CSPJ.js} +404 -80
- package/dist/{chunk-4VQTUVH7.js → chunk-7YZWHM36.js} +52 -26
- package/dist/chunk-BSJ6RIT7.js +447 -0
- package/dist/chunk-BUEW6IIK.js +364 -0
- package/dist/{chunk-LI4O6NVK.js → chunk-CLJTREDS.js} +74 -14
- package/dist/chunk-EK6S23ZB.js +469 -0
- package/dist/{chunk-LNJA2UGL.js → chunk-ESFLMDRB.js} +9 -86
- package/dist/{chunk-H34S76MB.js → chunk-ESVS6K2B.js} +6 -6
- package/dist/{chunk-WAZ3NLWL.js → chunk-F55HGNU4.js} +0 -47
- package/dist/{chunk-QK3UCXWL.js → chunk-FHFUXL6G.js} +2 -2
- package/dist/{chunk-H62BP7RI.js → chunk-GAOWA7GR.js} +212 -46
- package/dist/chunk-GGA32J2R.js +784 -0
- package/dist/chunk-GNJL4YGR.js +79 -0
- package/dist/chunk-IVRIKYFE.js +520 -0
- package/dist/chunk-MDIH26GC.js +183 -0
- package/dist/{chunk-LYHGEHXG.js → chunk-MFAWT5O5.js} +0 -1
- package/dist/chunk-MM6QGW3P.js +207 -0
- package/dist/{chunk-P5EPF6MB.js → chunk-MW5C6ZQA.js} +110 -13
- package/dist/chunk-NCKFNBHJ.js +257 -0
- package/dist/{chunk-QBLMXKF2.js → chunk-OIWVQYQF.js} +1 -1
- package/dist/{chunk-42MXU7A6.js → chunk-P62WHA27.js} +58 -47
- package/dist/chunk-PBACDKKP.js +66 -0
- package/dist/{chunk-VGLOTGAS.js → chunk-QSHD36LH.js} +2 -2
- package/dist/{chunk-OZ7RIXTO.js → chunk-QSRRMEYM.js} +2 -2
- package/dist/chunk-QVEERJSP.js +152 -0
- package/dist/{chunk-N2AXRYLC.js → chunk-QWQ3TIKS.js} +1 -1
- package/dist/{chunk-3DHXQHYG.js → chunk-R2MIW5G7.js} +1 -1
- package/dist/{chunk-SJSFRIYS.js → chunk-SLXOR3CC.js} +2 -2
- package/dist/chunk-SS4B7P7V.js +99 -0
- package/dist/{chunk-JY6FYXIT.js → chunk-STCQGCEQ.js} +6 -11
- package/dist/chunk-TIGW564L.js +628 -0
- package/dist/chunk-U4O6C46S.js +154 -0
- package/dist/{chunk-ITPEXLHA.js → chunk-URXDAUVH.js} +24 -5
- package/dist/chunk-VSL7KY3M.js +189 -0
- package/dist/{chunk-U55BGUAU.js → chunk-W4SPAEE7.js} +6 -6
- package/dist/chunk-WMGIIABP.js +15 -0
- package/dist/{chunk-33UGEQRT.js → chunk-X3SPPUFG.js} +151 -64
- package/dist/chunk-Y6VJKXGL.js +373 -0
- package/dist/{chunk-3WRJEKN4.js → chunk-ZN54U2OZ.js} +123 -10
- package/dist/cli/index.js +34 -24
- package/dist/commands/archive.js +3 -3
- package/dist/commands/backlog.js +3 -3
- package/dist/commands/blocked.js +3 -3
- package/dist/commands/canvas.d.ts +15 -0
- package/dist/commands/canvas.js +200 -0
- package/dist/commands/checkpoint.js +2 -2
- package/dist/commands/compat.js +2 -2
- package/dist/commands/context.js +8 -6
- package/dist/commands/doctor.d.ts +11 -7
- package/dist/commands/doctor.js +18 -16
- package/dist/commands/embed.js +5 -6
- package/dist/commands/entities.js +2 -2
- package/dist/commands/graph.js +4 -4
- package/dist/commands/inject.d.ts +1 -1
- package/dist/commands/inject.js +5 -6
- package/dist/commands/kanban.js +4 -4
- package/dist/commands/link.js +5 -5
- package/dist/commands/migrate-observations.js +4 -4
- package/dist/commands/observe.d.ts +0 -1
- package/dist/commands/observe.js +14 -13
- package/dist/commands/project.js +5 -5
- package/dist/commands/rebuild-embeddings.d.ts +21 -0
- package/dist/commands/rebuild-embeddings.js +91 -0
- package/dist/commands/rebuild.js +12 -11
- package/dist/commands/recover.js +3 -3
- package/dist/commands/reflect.js +6 -7
- package/dist/commands/repair-session.js +1 -1
- package/dist/commands/replay.js +14 -14
- package/dist/commands/session-recap.js +1 -1
- package/dist/commands/setup.d.ts +2 -89
- package/dist/commands/setup.js +3 -21
- package/dist/commands/shell-init.js +1 -1
- package/dist/commands/sleep.d.ts +1 -1
- package/dist/commands/sleep.js +20 -19
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.js +57 -35
- package/dist/commands/sync-bd.d.ts +10 -0
- package/dist/commands/sync-bd.js +10 -0
- package/dist/commands/tailscale.d.ts +52 -0
- package/dist/commands/tailscale.js +26 -0
- package/dist/commands/task.js +4 -4
- package/dist/commands/template.js +2 -2
- package/dist/commands/wake.d.ts +1 -1
- package/dist/commands/wake.js +11 -10
- package/dist/commands/workgraph.d.ts +124 -0
- package/dist/commands/workgraph.js +38 -0
- package/dist/index.d.ts +341 -191
- package/dist/index.js +446 -116
- package/dist/{inject-Bzi5E-By.d.ts → inject-DYUrDqQO.d.ts} +3 -3
- package/dist/ledger-B7g7jhqG.d.ts +44 -0
- package/dist/lib/auto-linker.js +2 -2
- package/dist/lib/canvas-layout.d.ts +115 -0
- package/dist/lib/canvas-layout.js +35 -0
- package/dist/lib/config.d.ts +27 -3
- package/dist/lib/config.js +4 -2
- package/dist/lib/entity-index.js +1 -1
- package/dist/lib/project-utils.js +4 -4
- package/dist/lib/session-repair.js +1 -1
- package/dist/lib/session-utils.js +1 -1
- package/dist/lib/tailscale.d.ts +225 -0
- package/dist/lib/tailscale.js +50 -0
- package/dist/lib/task-utils.js +3 -3
- package/dist/lib/template-engine.js +1 -1
- package/dist/lib/webdav.d.ts +109 -0
- package/dist/lib/webdav.js +35 -0
- package/dist/onnxruntime_binding-5QEF3SUC.node +0 -0
- package/dist/onnxruntime_binding-BKPKNEGC.node +0 -0
- package/dist/onnxruntime_binding-FMOXGIUT.node +0 -0
- package/dist/onnxruntime_binding-OI2KMXC5.node +0 -0
- package/dist/onnxruntime_binding-UX44MLAZ.node +0 -0
- package/dist/onnxruntime_binding-Y2W7N7WY.node +0 -0
- package/dist/openclaw-plugin.d.ts +8 -0
- package/dist/openclaw-plugin.js +14 -0
- package/dist/registry-BR4326o0.d.ts +30 -0
- package/dist/store-CA-6sKCJ.d.ts +34 -0
- package/dist/thread-B9LhXNU0.d.ts +41 -0
- package/dist/transformers.node-A2ZRORSQ.js +46775 -0
- package/dist/{types-Y2_Um2Ls.d.ts → types-BbWJoC1c.d.ts} +1 -44
- package/dist/workgraph/index.d.ts +5 -0
- package/dist/workgraph/index.js +23 -0
- package/dist/workgraph/ledger.d.ts +2 -0
- package/dist/workgraph/ledger.js +25 -0
- package/dist/workgraph/registry.d.ts +2 -0
- package/dist/workgraph/registry.js +19 -0
- package/dist/workgraph/store.d.ts +2 -0
- package/dist/workgraph/store.js +25 -0
- package/dist/workgraph/thread.d.ts +2 -0
- package/dist/workgraph/thread.js +25 -0
- package/dist/workgraph/types.d.ts +54 -0
- package/dist/workgraph/types.js +7 -0
- package/hooks/clawvault/HOOK.md +113 -0
- package/hooks/clawvault/handler.js +1561 -0
- package/hooks/clawvault/handler.test.js +510 -0
- package/hooks/clawvault/openclaw.plugin.json +72 -0
- package/openclaw.plugin.json +65 -38
- package/package.json +25 -22
- package/dist/chunk-3RG5ZIWI.js +0 -10
- package/dist/chunk-3ZIH425O.js +0 -871
- package/dist/chunk-6U6MK36V.js +0 -205
- package/dist/chunk-CMB7UL7C.js +0 -327
- package/dist/chunk-D2H45LON.js +0 -1074
- package/dist/chunk-E7MFQB6D.js +0 -163
- package/dist/chunk-GQSLDZTS.js +0 -560
- package/dist/chunk-MFM6K7PU.js +0 -374
- package/dist/chunk-MXSSG3QU.js +0 -42
- package/dist/chunk-OCGVIN3L.js +0 -88
- package/dist/chunk-PAH27GSN.js +0 -108
- package/dist/chunk-YCUNCH2I.js +0 -78
- package/dist/cli/index.cjs +0 -8584
- package/dist/cli/index.d.cts +0 -5
- package/dist/commands/archive.cjs +0 -287
- package/dist/commands/archive.d.cts +0 -11
- package/dist/commands/backlog.cjs +0 -721
- package/dist/commands/backlog.d.cts +0 -53
- package/dist/commands/blocked.cjs +0 -204
- package/dist/commands/blocked.d.cts +0 -26
- package/dist/commands/checkpoint.cjs +0 -244
- package/dist/commands/checkpoint.d.cts +0 -41
- package/dist/commands/compat.cjs +0 -294
- package/dist/commands/compat.d.cts +0 -28
- package/dist/commands/context.cjs +0 -2990
- package/dist/commands/context.d.cts +0 -2
- package/dist/commands/doctor.cjs +0 -2986
- package/dist/commands/doctor.d.cts +0 -21
- package/dist/commands/embed.cjs +0 -232
- package/dist/commands/embed.d.cts +0 -17
- package/dist/commands/entities.cjs +0 -141
- package/dist/commands/entities.d.cts +0 -7
- package/dist/commands/graph.cjs +0 -501
- package/dist/commands/graph.d.cts +0 -21
- package/dist/commands/inject.cjs +0 -1636
- package/dist/commands/inject.d.cts +0 -2
- package/dist/commands/kanban.cjs +0 -884
- package/dist/commands/kanban.d.cts +0 -63
- package/dist/commands/link.cjs +0 -965
- package/dist/commands/link.d.cts +0 -11
- package/dist/commands/migrate-observations.cjs +0 -362
- package/dist/commands/migrate-observations.d.cts +0 -19
- package/dist/commands/observe.cjs +0 -4099
- package/dist/commands/observe.d.cts +0 -23
- package/dist/commands/project.cjs +0 -1341
- package/dist/commands/project.d.cts +0 -85
- package/dist/commands/rebuild.cjs +0 -3136
- package/dist/commands/rebuild.d.cts +0 -11
- package/dist/commands/recover.cjs +0 -361
- package/dist/commands/recover.d.cts +0 -38
- package/dist/commands/reflect.cjs +0 -1008
- package/dist/commands/reflect.d.cts +0 -11
- package/dist/commands/repair-session.cjs +0 -457
- package/dist/commands/repair-session.d.cts +0 -38
- package/dist/commands/replay.cjs +0 -4103
- package/dist/commands/replay.d.cts +0 -16
- package/dist/commands/session-recap.cjs +0 -353
- package/dist/commands/session-recap.d.cts +0 -27
- package/dist/commands/setup.cjs +0 -1278
- package/dist/commands/setup.d.cts +0 -99
- package/dist/commands/shell-init.cjs +0 -75
- package/dist/commands/shell-init.d.cts +0 -7
- package/dist/commands/sleep.cjs +0 -6029
- package/dist/commands/sleep.d.cts +0 -36
- package/dist/commands/status.cjs +0 -2737
- package/dist/commands/status.d.cts +0 -52
- package/dist/commands/task.cjs +0 -1236
- package/dist/commands/task.d.cts +0 -97
- package/dist/commands/template.cjs +0 -457
- package/dist/commands/template.d.cts +0 -36
- package/dist/commands/wake.cjs +0 -2627
- package/dist/commands/wake.d.cts +0 -22
- package/dist/context-BUGaWpyL.d.cts +0 -46
- package/dist/index.cjs +0 -12373
- package/dist/index.d.cts +0 -854
- package/dist/inject-Bzi5E-By.d.cts +0 -137
- package/dist/lib/auto-linker.cjs +0 -176
- package/dist/lib/auto-linker.d.cts +0 -26
- package/dist/lib/config.cjs +0 -78
- package/dist/lib/config.d.cts +0 -11
- package/dist/lib/entity-index.cjs +0 -84
- package/dist/lib/entity-index.d.cts +0 -26
- package/dist/lib/project-utils.cjs +0 -864
- package/dist/lib/project-utils.d.cts +0 -97
- package/dist/lib/session-repair.cjs +0 -239
- package/dist/lib/session-repair.d.cts +0 -110
- package/dist/lib/session-utils.cjs +0 -209
- package/dist/lib/session-utils.d.cts +0 -63
- package/dist/lib/task-utils.cjs +0 -1137
- package/dist/lib/task-utils.d.cts +0 -208
- package/dist/lib/template-engine.cjs +0 -47
- package/dist/lib/template-engine.d.cts +0 -11
- package/dist/plugin/index.cjs +0 -1907
- package/dist/plugin/index.d.cts +0 -36
- package/dist/plugin/index.d.ts +0 -36
- package/dist/plugin/index.js +0 -572
- package/dist/plugin/inject.cjs +0 -356
- package/dist/plugin/inject.d.cts +0 -54
- package/dist/plugin/inject.d.ts +0 -54
- package/dist/plugin/inject.js +0 -17
- package/dist/plugin/observe.cjs +0 -631
- package/dist/plugin/observe.d.cts +0 -39
- package/dist/plugin/observe.d.ts +0 -39
- package/dist/plugin/observe.js +0 -18
- package/dist/plugin/templates.cjs +0 -593
- package/dist/plugin/templates.d.cts +0 -52
- package/dist/plugin/templates.d.ts +0 -52
- package/dist/plugin/templates.js +0 -25
- package/dist/plugin/types.cjs +0 -18
- package/dist/plugin/types.d.cts +0 -209
- package/dist/plugin/types.d.ts +0 -209
- package/dist/plugin/types.js +0 -0
- package/dist/plugin/vault.cjs +0 -927
- package/dist/plugin/vault.d.cts +0 -68
- package/dist/plugin/vault.d.ts +0 -68
- package/dist/plugin/vault.js +0 -22
- package/dist/types-Y2_Um2Ls.d.cts +0 -205
- package/templates/memory-event.md +0 -67
- package/templates/party.md +0 -63
- package/templates/primitive-registry.yaml +0 -551
- package/templates/run.md +0 -68
- package/templates/trigger.md +0 -68
- package/templates/workspace.md +0 -50
|
@@ -70,49 +70,6 @@ interface SearchOptions {
|
|
|
70
70
|
fullContent?: boolean;
|
|
71
71
|
/** Boost recent documents in ranking */
|
|
72
72
|
temporalBoost?: boolean;
|
|
73
|
-
/**
|
|
74
|
-
* v2.7 — Enable chunk-level BM25 pre-filtering before semantic search.
|
|
75
|
-
* Chunks documents into ~600-char sentence windows and ranks chunks by
|
|
76
|
-
* keyword overlap so that relevant content deep in long documents isn't
|
|
77
|
-
* silently dropped by fixed-N embedding limits.
|
|
78
|
-
*/
|
|
79
|
-
chunkPrefilter?: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* v2.7 — Exhaustive threshold-based retrieval for aggregation queries.
|
|
82
|
-
* Instead of a fixed top_k, keeps pulling results until the normalised
|
|
83
|
-
* relevance score drops below this threshold (0-1). Set to e.g. 0.01
|
|
84
|
-
* for aggregation / "list all" queries. Overrides `limit` when set.
|
|
85
|
-
*/
|
|
86
|
-
relevanceThreshold?: number;
|
|
87
|
-
/**
|
|
88
|
-
* v2.7 — Maximum results when using relevanceThreshold.
|
|
89
|
-
* Prevents runaway result sets. Default 40.
|
|
90
|
-
*/
|
|
91
|
-
thresholdMaxResults?: number;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* v2.7 — A date reference extracted from document content at ingest time.
|
|
95
|
-
*/
|
|
96
|
-
interface ExtractedDate {
|
|
97
|
-
/** ISO date string (YYYY-MM-DD) or "duration:<value>" */
|
|
98
|
-
date: string;
|
|
99
|
-
/** Surrounding context snippet (~150 chars) */
|
|
100
|
-
context: string;
|
|
101
|
-
/** Document id the date was extracted from */
|
|
102
|
-
documentId: string;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* v2.7 — An extracted user preference from conversation content.
|
|
106
|
-
*/
|
|
107
|
-
interface ExtractedPreference {
|
|
108
|
-
/** The preference category (tool, hobby, brand, etc.) */
|
|
109
|
-
category: string;
|
|
110
|
-
/** The preference value */
|
|
111
|
-
value: string;
|
|
112
|
-
/** Document id it was extracted from */
|
|
113
|
-
documentId: string;
|
|
114
|
-
/** Surrounding context snippet */
|
|
115
|
-
context: string;
|
|
116
73
|
}
|
|
117
74
|
interface StoreOptions {
|
|
118
75
|
/** Category to store in */
|
|
@@ -202,4 +159,4 @@ interface SessionRecap {
|
|
|
202
159
|
}
|
|
203
160
|
declare const DEFAULT_CONFIG: Partial<VaultConfig>;
|
|
204
161
|
|
|
205
|
-
export { type Category as C, type Document as D, type
|
|
162
|
+
export { type Category as C, type Document as D, type HandoffDocument as H, type MemoryType as M, type SessionRecap as S, TYPE_TO_CATEGORY as T, type VaultConfig as V, type StoreOptions as a, type SearchOptions as b, type SearchResult as c, type SyncOptions as d, type SyncResult as e, DEFAULT_CATEGORIES as f, DEFAULT_CONFIG as g, MEMORY_TYPES as h, type VaultMeta as i };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { FieldDefinition, LedgerEntry, LedgerOp, PrimitiveInstance, PrimitiveTypeDefinition, Registry, THREAD_STATUS_TRANSITIONS, ThreadStatus } from './types.js';
|
|
2
|
+
export { r as registry } from '../registry-BR4326o0.js';
|
|
3
|
+
export { l as ledger } from '../ledger-B7g7jhqG.js';
|
|
4
|
+
export { s as store } from '../store-CA-6sKCJ.js';
|
|
5
|
+
export { t as thread } from '../thread-B9LhXNU0.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
thread_exports
|
|
3
|
+
} from "../chunk-VSL7KY3M.js";
|
|
4
|
+
import {
|
|
5
|
+
store_exports
|
|
6
|
+
} from "../chunk-QVEERJSP.js";
|
|
7
|
+
import {
|
|
8
|
+
ledger_exports
|
|
9
|
+
} from "../chunk-4BQTQMJP.js";
|
|
10
|
+
import {
|
|
11
|
+
registry_exports
|
|
12
|
+
} from "../chunk-MM6QGW3P.js";
|
|
13
|
+
import {
|
|
14
|
+
THREAD_STATUS_TRANSITIONS
|
|
15
|
+
} from "../chunk-WMGIIABP.js";
|
|
16
|
+
import "../chunk-2ZDO52B4.js";
|
|
17
|
+
export {
|
|
18
|
+
THREAD_STATUS_TRANSITIONS,
|
|
19
|
+
ledger_exports as ledger,
|
|
20
|
+
registry_exports as registry,
|
|
21
|
+
store_exports as store,
|
|
22
|
+
thread_exports as thread
|
|
23
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
activityOf,
|
|
3
|
+
allClaims,
|
|
4
|
+
append,
|
|
5
|
+
currentOwner,
|
|
6
|
+
historyOf,
|
|
7
|
+
isClaimed,
|
|
8
|
+
ledgerPath,
|
|
9
|
+
readAll,
|
|
10
|
+
readSince,
|
|
11
|
+
recent
|
|
12
|
+
} from "../chunk-4BQTQMJP.js";
|
|
13
|
+
import "../chunk-2ZDO52B4.js";
|
|
14
|
+
export {
|
|
15
|
+
activityOf,
|
|
16
|
+
allClaims,
|
|
17
|
+
append,
|
|
18
|
+
currentOwner,
|
|
19
|
+
historyOf,
|
|
20
|
+
isClaimed,
|
|
21
|
+
ledgerPath,
|
|
22
|
+
readAll,
|
|
23
|
+
readSince,
|
|
24
|
+
recent
|
|
25
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
defineType,
|
|
3
|
+
extendType,
|
|
4
|
+
getType,
|
|
5
|
+
listTypes,
|
|
6
|
+
loadRegistry,
|
|
7
|
+
registryPath,
|
|
8
|
+
saveRegistry
|
|
9
|
+
} from "../chunk-MM6QGW3P.js";
|
|
10
|
+
import "../chunk-2ZDO52B4.js";
|
|
11
|
+
export {
|
|
12
|
+
defineType,
|
|
13
|
+
extendType,
|
|
14
|
+
getType,
|
|
15
|
+
listTypes,
|
|
16
|
+
loadRegistry,
|
|
17
|
+
registryPath,
|
|
18
|
+
saveRegistry
|
|
19
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
activeThreads,
|
|
3
|
+
blockedThreads,
|
|
4
|
+
create,
|
|
5
|
+
findByField,
|
|
6
|
+
list,
|
|
7
|
+
openThreads,
|
|
8
|
+
read,
|
|
9
|
+
remove,
|
|
10
|
+
update
|
|
11
|
+
} from "../chunk-QVEERJSP.js";
|
|
12
|
+
import "../chunk-4BQTQMJP.js";
|
|
13
|
+
import "../chunk-MM6QGW3P.js";
|
|
14
|
+
import "../chunk-2ZDO52B4.js";
|
|
15
|
+
export {
|
|
16
|
+
activeThreads,
|
|
17
|
+
blockedThreads,
|
|
18
|
+
create,
|
|
19
|
+
findByField,
|
|
20
|
+
list,
|
|
21
|
+
openThreads,
|
|
22
|
+
read,
|
|
23
|
+
remove,
|
|
24
|
+
update
|
|
25
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
block,
|
|
3
|
+
cancel,
|
|
4
|
+
claim,
|
|
5
|
+
createThread,
|
|
6
|
+
decompose,
|
|
7
|
+
done,
|
|
8
|
+
release,
|
|
9
|
+
unblock
|
|
10
|
+
} from "../chunk-VSL7KY3M.js";
|
|
11
|
+
import "../chunk-QVEERJSP.js";
|
|
12
|
+
import "../chunk-4BQTQMJP.js";
|
|
13
|
+
import "../chunk-MM6QGW3P.js";
|
|
14
|
+
import "../chunk-WMGIIABP.js";
|
|
15
|
+
import "../chunk-2ZDO52B4.js";
|
|
16
|
+
export {
|
|
17
|
+
block,
|
|
18
|
+
cancel,
|
|
19
|
+
claim,
|
|
20
|
+
createThread,
|
|
21
|
+
decompose,
|
|
22
|
+
done,
|
|
23
|
+
release,
|
|
24
|
+
unblock
|
|
25
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workgraph type definitions.
|
|
3
|
+
*
|
|
4
|
+
* Three layers:
|
|
5
|
+
* 1. Registry — what primitive types exist (agent-extensible)
|
|
6
|
+
* 2. Ledger — what happened (append-only, source of truth for claims/state)
|
|
7
|
+
* 3. Store — the actual markdown files (the primitives themselves)
|
|
8
|
+
*/
|
|
9
|
+
interface FieldDefinition {
|
|
10
|
+
type: 'string' | 'number' | 'boolean' | 'list' | 'date' | 'ref' | 'any';
|
|
11
|
+
required?: boolean;
|
|
12
|
+
default?: unknown;
|
|
13
|
+
description?: string;
|
|
14
|
+
}
|
|
15
|
+
interface PrimitiveTypeDefinition {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
fields: Record<string, FieldDefinition>;
|
|
19
|
+
/** Directory under vault root where instances live (default: `<name>s/`). */
|
|
20
|
+
directory: string;
|
|
21
|
+
/** Whether this type was defined by an agent at runtime vs built-in. */
|
|
22
|
+
builtIn: boolean;
|
|
23
|
+
/** ISO timestamp of when this type was registered. */
|
|
24
|
+
createdAt: string;
|
|
25
|
+
/** Who registered it (agent name or "system"). */
|
|
26
|
+
createdBy: string;
|
|
27
|
+
}
|
|
28
|
+
interface Registry {
|
|
29
|
+
version: number;
|
|
30
|
+
types: Record<string, PrimitiveTypeDefinition>;
|
|
31
|
+
}
|
|
32
|
+
type LedgerOp = 'create' | 'update' | 'delete' | 'claim' | 'release' | 'block' | 'unblock' | 'done' | 'cancel' | 'define' | 'decompose';
|
|
33
|
+
interface LedgerEntry {
|
|
34
|
+
ts: string;
|
|
35
|
+
actor: string;
|
|
36
|
+
op: LedgerOp;
|
|
37
|
+
target: string;
|
|
38
|
+
type?: string;
|
|
39
|
+
data?: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
type ThreadStatus = 'open' | 'active' | 'blocked' | 'done' | 'cancelled';
|
|
42
|
+
declare const THREAD_STATUS_TRANSITIONS: Record<ThreadStatus, ThreadStatus[]>;
|
|
43
|
+
interface PrimitiveInstance {
|
|
44
|
+
/** File path relative to vault root. */
|
|
45
|
+
path: string;
|
|
46
|
+
/** Primitive type name. */
|
|
47
|
+
type: string;
|
|
48
|
+
/** Frontmatter fields. */
|
|
49
|
+
fields: Record<string, unknown>;
|
|
50
|
+
/** Markdown body content. */
|
|
51
|
+
body: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { type FieldDefinition, type LedgerEntry, type LedgerOp, type PrimitiveInstance, type PrimitiveTypeDefinition, type Registry, THREAD_STATUS_TRANSITIONS, type ThreadStatus };
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clawvault
|
|
3
|
+
description: "Context resilience - recovery detection, auto-checkpoint, and session context injection"
|
|
4
|
+
metadata:
|
|
5
|
+
openclaw:
|
|
6
|
+
emoji: "🐘"
|
|
7
|
+
events: ["gateway:startup", "gateway:heartbeat", "command:new", "session:start", "compaction:memoryFlush", "cron.weekly"]
|
|
8
|
+
requires:
|
|
9
|
+
bins: ["clawvault"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# ClawVault Hook
|
|
13
|
+
|
|
14
|
+
Integrates ClawVault's context death resilience into OpenClaw:
|
|
15
|
+
|
|
16
|
+
- **On gateway startup**: Checks for context death, alerts agent
|
|
17
|
+
- **On heartbeat**: Runs cheap threshold checks and observes active sessions when needed
|
|
18
|
+
- **On /new command**: Auto-checkpoints before session reset
|
|
19
|
+
- **On context compaction**: Forces incremental observation flush before context is lost
|
|
20
|
+
- **On session start**: Injects relevant vault context for the initial prompt
|
|
21
|
+
- **On weekly cron**: Runs `clawvault reflect` every Sunday midnight (UTC)
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g clawvault
|
|
27
|
+
openclaw hooks install clawvault
|
|
28
|
+
openclaw hooks enable clawvault
|
|
29
|
+
|
|
30
|
+
# Verify
|
|
31
|
+
openclaw hooks list --verbose
|
|
32
|
+
openclaw hooks info clawvault
|
|
33
|
+
openclaw hooks check
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
After enabling, restart your OpenClaw gateway process so hook registration reloads.
|
|
37
|
+
|
|
38
|
+
## Requirements
|
|
39
|
+
|
|
40
|
+
- ClawVault CLI installed globally
|
|
41
|
+
- Vault initialized (`clawvault setup` or `CLAWVAULT_PATH` set)
|
|
42
|
+
|
|
43
|
+
## What It Does
|
|
44
|
+
|
|
45
|
+
### Gateway Startup
|
|
46
|
+
|
|
47
|
+
1. Runs `clawvault recover --clear`
|
|
48
|
+
2. If context death detected, injects warning into first agent turn
|
|
49
|
+
3. Clears dirty death flag for clean session start
|
|
50
|
+
|
|
51
|
+
### Command: /new
|
|
52
|
+
|
|
53
|
+
1. Creates automatic checkpoint with session info
|
|
54
|
+
2. Captures state even if agent forgot to handoff
|
|
55
|
+
3. Ensures continuity across session resets
|
|
56
|
+
|
|
57
|
+
### Session Start
|
|
58
|
+
|
|
59
|
+
1. Extracts the initial user prompt (`context.initialPrompt` or first user message)
|
|
60
|
+
2. Runs `clawvault context "<prompt>" --format json --profile auto -v <vaultPath>`
|
|
61
|
+
- Delegates profile selection to the shared context intent policy (`incident`, `planning`, `handoff`, or `default`)
|
|
62
|
+
3. Injects up to 4 relevant context bullets into session messages
|
|
63
|
+
|
|
64
|
+
Injection format:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
[ClawVault] Relevant context for this task:
|
|
68
|
+
- <title> (<age>): <snippet>
|
|
69
|
+
- <title> (<age>): <snippet>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Event Compatibility
|
|
73
|
+
|
|
74
|
+
The hook accepts canonical OpenClaw events (`gateway:startup`, `gateway:heartbeat`, `command:new`, `session:start`, `compaction:memoryFlush`, `cron.weekly`) and tolerates alias payload shapes (`event`, `eventName`, `name`, `hook`, `trigger`) to remain robust across runtime wrappers.
|
|
75
|
+
|
|
76
|
+
## Configuration
|
|
77
|
+
|
|
78
|
+
### Plugin Configuration (Recommended)
|
|
79
|
+
|
|
80
|
+
Configure the plugin via OpenClaw's config system:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Set vault path
|
|
84
|
+
openclaw config set plugins.entries.clawvault.config.vaultPath ~/my-vault
|
|
85
|
+
|
|
86
|
+
# View current config
|
|
87
|
+
openclaw config get plugins.entries.clawvault
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Available configuration options:
|
|
91
|
+
|
|
92
|
+
| Key | Type | Default | Description |
|
|
93
|
+
|-----|------|---------|-------------|
|
|
94
|
+
| `vaultPath` | string | (auto-detected) | Path to the ClawVault vault directory |
|
|
95
|
+
| `autoCheckpoint` | boolean | `true` | Enable automatic checkpointing on session events |
|
|
96
|
+
| `contextProfile` | string | `"auto"` | Default context profile (`default`, `planning`, `incident`, `handoff`, `auto`) |
|
|
97
|
+
| `maxContextResults` | integer | `4` | Maximum context results to inject on session start |
|
|
98
|
+
| `observeOnHeartbeat` | boolean | `true` | Enable observation threshold checks on heartbeat |
|
|
99
|
+
| `weeklyReflection` | boolean | `true` | Enable weekly reflection on Sunday midnight UTC |
|
|
100
|
+
|
|
101
|
+
### Vault Path Resolution
|
|
102
|
+
|
|
103
|
+
The hook resolves the vault path in this order:
|
|
104
|
+
|
|
105
|
+
1. Plugin config (`plugins.entries.clawvault.config.vaultPath` set via `openclaw config`)
|
|
106
|
+
2. `OPENCLAW_PLUGIN_CLAWVAULT_VAULTPATH` environment variable
|
|
107
|
+
3. `CLAWVAULT_PATH` environment variable
|
|
108
|
+
4. Walking up from cwd to find `.clawvault.json`
|
|
109
|
+
5. Checking `memory/` subdirectory (OpenClaw convention)
|
|
110
|
+
|
|
111
|
+
### Troubleshooting
|
|
112
|
+
|
|
113
|
+
If `openclaw hooks enable clawvault` fails with hook-not-found, run `openclaw hooks install clawvault` first and verify discovery with `openclaw hooks list --verbose`.
|