clawvault 3.1.0 → 3.2.1
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 +451 -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-C7OK5WKP.js → chunk-2JQ3O2YL.js} +4 -4
- package/dist/{chunk-VR5NE7PZ.js → chunk-2RAZ4ZFE.js} +1 -1
- package/dist/{chunk-F2JEUD4J.js → chunk-4ITRXIVT.js} +5 -7
- package/dist/{chunk-GUKMRGM7.js → chunk-4OXMU5S2.js} +1 -1
- package/dist/chunk-5PJ4STIC.js +465 -0
- package/dist/{chunk-62YTUT6J.js → chunk-AZYOKJYC.js} +2 -2
- package/dist/chunk-BSJ6RIT7.js +447 -0
- package/dist/chunk-ECRZL5XR.js +50 -0
- package/dist/chunk-ERNE2FZ5.js +189 -0
- package/dist/{chunk-WAZ3NLWL.js → chunk-F55HGNU4.js} +0 -47
- package/dist/{chunk-VGLOTGAS.js → chunk-FAKNOB7Y.js} +2 -2
- package/dist/{chunk-QK3UCXWL.js → chunk-FHFUXL6G.js} +2 -2
- package/dist/chunk-GNJL4YGR.js +79 -0
- package/dist/chunk-HR4KN6S2.js +152 -0
- package/dist/{chunk-OZ7RIXTO.js → chunk-IIOU45CK.js} +1 -1
- package/dist/chunk-IJBFGPCS.js +33 -0
- package/dist/chunk-IVRIKYFE.js +520 -0
- package/dist/chunk-K7PNYS45.js +93 -0
- package/dist/chunk-MDIH26GC.js +183 -0
- package/dist/{chunk-LYHGEHXG.js → chunk-MFAWT5O5.js} +0 -1
- package/dist/{chunk-H34S76MB.js → chunk-MNPUYCHQ.js} +6 -6
- package/dist/chunk-NTOPJI7W.js +207 -0
- package/dist/{chunk-QBLMXKF2.js → chunk-OIWVQYQF.js} +1 -1
- package/dist/chunk-PG56HX5T.js +154 -0
- package/dist/{chunk-LNJA2UGL.js → chunk-PI4WMLMG.js} +7 -84
- package/dist/chunk-QMHPQYUV.js +363 -0
- package/dist/{chunk-H62BP7RI.js → chunk-QPDDIHXE.js} +209 -43
- 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-S5OJEGFG.js} +2 -2
- package/dist/chunk-SS4B7P7V.js +99 -0
- package/dist/chunk-TIGW564L.js +628 -0
- package/dist/chunk-U67V476Y.js +35 -0
- package/dist/{chunk-JY6FYXIT.js → chunk-UCQAOZHW.js} +6 -11
- package/dist/{chunk-ITPEXLHA.js → chunk-URXDAUVH.js} +24 -5
- package/dist/chunk-WIOLLGAD.js +190 -0
- package/dist/{chunk-3WRJEKN4.js → chunk-WJVWINEM.js} +72 -8
- package/dist/chunk-WMGIIABP.js +15 -0
- package/dist/{chunk-33UGEQRT.js → chunk-X3SPPUFG.js} +151 -64
- package/dist/{chunk-3NSBOUT3.js → chunk-Y3TIJEBP.js} +314 -79
- package/dist/chunk-Y6VJKXGL.js +373 -0
- package/dist/{chunk-LI4O6NVK.js → chunk-YDWHS4LJ.js} +49 -9
- package/dist/{chunk-U55BGUAU.js → chunk-YNIPYN4F.js} +5 -5
- package/dist/chunk-YXQCA6B7.js +226 -0
- package/dist/cli/index.js +26 -22
- 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 +7 -5
- package/dist/commands/doctor.d.ts +11 -7
- package/dist/commands/doctor.js +16 -14
- package/dist/commands/embed.js +5 -6
- package/dist/commands/entities.js +2 -2
- package/dist/commands/graph.js +3 -3
- package/dist/commands/inject.d.ts +1 -1
- package/dist/commands/inject.js +4 -5
- package/dist/commands/kanban.js +4 -4
- package/dist/commands/link.js +2 -2
- package/dist/commands/migrate-observations.js +4 -4
- package/dist/commands/observe.d.ts +0 -1
- package/dist/commands/observe.js +13 -12
- 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 +18 -17
- package/dist/commands/status.d.ts +2 -0
- package/dist/commands/status.js +40 -30
- 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/index.d.ts +334 -191
- package/dist/index.js +432 -108
- 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 +1 -1
- 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/plugin/index.d.ts +344 -28
- package/dist/plugin/index.js +3919 -227
- 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/{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 +1559 -0
- package/hooks/clawvault/handler.test.js +510 -0
- package/hooks/clawvault/openclaw.plugin.json +72 -0
- package/openclaw.plugin.json +235 -30
- package/package.json +20 -20
- 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/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
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FieldDefinition, PrimitiveTypeDefinition, Registry } from './workgraph/types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Dynamic primitive type registry.
|
|
5
|
+
*
|
|
6
|
+
* Agents can define new primitive types at runtime. The registry is stored
|
|
7
|
+
* as `.clawvault/registry.json` in the vault. Built-in types are seeded on
|
|
8
|
+
* first access and cannot be deleted (but CAN be extended with new fields).
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
declare function registryPath(vaultPath: string): string;
|
|
12
|
+
declare function loadRegistry(vaultPath: string): Registry;
|
|
13
|
+
declare function saveRegistry(vaultPath: string, registry: Registry): void;
|
|
14
|
+
declare function defineType(vaultPath: string, name: string, description: string, fields: Record<string, FieldDefinition>, actor: string, directory?: string): PrimitiveTypeDefinition;
|
|
15
|
+
declare function getType(vaultPath: string, name: string): PrimitiveTypeDefinition | undefined;
|
|
16
|
+
declare function listTypes(vaultPath: string): PrimitiveTypeDefinition[];
|
|
17
|
+
declare function extendType(vaultPath: string, name: string, newFields: Record<string, FieldDefinition>, actor: string): PrimitiveTypeDefinition;
|
|
18
|
+
|
|
19
|
+
declare const registry_defineType: typeof defineType;
|
|
20
|
+
declare const registry_extendType: typeof extendType;
|
|
21
|
+
declare const registry_getType: typeof getType;
|
|
22
|
+
declare const registry_listTypes: typeof listTypes;
|
|
23
|
+
declare const registry_loadRegistry: typeof loadRegistry;
|
|
24
|
+
declare const registry_registryPath: typeof registryPath;
|
|
25
|
+
declare const registry_saveRegistry: typeof saveRegistry;
|
|
26
|
+
declare namespace registry {
|
|
27
|
+
export { registry_defineType as defineType, registry_extendType as extendType, registry_getType as getType, registry_listTypes as listTypes, registry_loadRegistry as loadRegistry, registry_registryPath as registryPath, registry_saveRegistry as saveRegistry };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export { loadRegistry as a, registryPath as b, defineType as d, extendType as e, getType as g, listTypes as l, registry as r, saveRegistry as s };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PrimitiveInstance } from './workgraph/types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Workgraph store — CRUD for primitive instances.
|
|
5
|
+
*
|
|
6
|
+
* Primitives are markdown files with YAML frontmatter. The store reads/writes
|
|
7
|
+
* them and logs every mutation to the ledger. Schemas are soft: unknown fields
|
|
8
|
+
* are preserved, missing optional fields get defaults.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
declare function create(vaultPath: string, typeName: string, fields: Record<string, unknown>, body: string, actor: string): PrimitiveInstance;
|
|
12
|
+
declare function read(vaultPath: string, relPath: string): PrimitiveInstance | null;
|
|
13
|
+
declare function list(vaultPath: string, typeName: string): PrimitiveInstance[];
|
|
14
|
+
declare function update(vaultPath: string, relPath: string, fieldUpdates: Record<string, unknown>, bodyUpdate: string | undefined, actor: string): PrimitiveInstance;
|
|
15
|
+
declare function remove(vaultPath: string, relPath: string, actor: string): void;
|
|
16
|
+
declare function findByField(vaultPath: string, typeName: string, field: string, value: unknown): PrimitiveInstance[];
|
|
17
|
+
declare function openThreads(vaultPath: string): PrimitiveInstance[];
|
|
18
|
+
declare function activeThreads(vaultPath: string): PrimitiveInstance[];
|
|
19
|
+
declare function blockedThreads(vaultPath: string): PrimitiveInstance[];
|
|
20
|
+
|
|
21
|
+
declare const store_activeThreads: typeof activeThreads;
|
|
22
|
+
declare const store_blockedThreads: typeof blockedThreads;
|
|
23
|
+
declare const store_create: typeof create;
|
|
24
|
+
declare const store_findByField: typeof findByField;
|
|
25
|
+
declare const store_list: typeof list;
|
|
26
|
+
declare const store_openThreads: typeof openThreads;
|
|
27
|
+
declare const store_read: typeof read;
|
|
28
|
+
declare const store_remove: typeof remove;
|
|
29
|
+
declare const store_update: typeof update;
|
|
30
|
+
declare namespace store {
|
|
31
|
+
export { store_activeThreads as activeThreads, store_blockedThreads as blockedThreads, store_create as create, store_findByField as findByField, store_list as list, store_openThreads as openThreads, store_read as read, store_remove as remove, store_update as update };
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { activeThreads as a, blockedThreads as b, create as c, remove as d, findByField as f, list as l, openThreads as o, read as r, store as s, update as u };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PrimitiveInstance } from './workgraph/types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Thread lifecycle operations.
|
|
5
|
+
*
|
|
6
|
+
* Threads are the core coordination primitive. This module handles the
|
|
7
|
+
* claim/release/block/done lifecycle with ledger-backed exclusivity.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
declare function createThread(vaultPath: string, title: string, goal: string, actor: string, opts?: {
|
|
11
|
+
priority?: string;
|
|
12
|
+
deps?: string[];
|
|
13
|
+
parent?: string;
|
|
14
|
+
context_refs?: string[];
|
|
15
|
+
tags?: string[];
|
|
16
|
+
}): PrimitiveInstance;
|
|
17
|
+
declare function claim(vaultPath: string, threadPath: string, actor: string): PrimitiveInstance;
|
|
18
|
+
declare function release(vaultPath: string, threadPath: string, actor: string, reason?: string): PrimitiveInstance;
|
|
19
|
+
declare function block(vaultPath: string, threadPath: string, actor: string, blockedBy: string, reason?: string): PrimitiveInstance;
|
|
20
|
+
declare function unblock(vaultPath: string, threadPath: string, actor: string): PrimitiveInstance;
|
|
21
|
+
declare function done(vaultPath: string, threadPath: string, actor: string, output?: string): PrimitiveInstance;
|
|
22
|
+
declare function cancel(vaultPath: string, threadPath: string, actor: string, reason?: string): PrimitiveInstance;
|
|
23
|
+
declare function decompose(vaultPath: string, parentPath: string, subthreads: Array<{
|
|
24
|
+
title: string;
|
|
25
|
+
goal: string;
|
|
26
|
+
deps?: string[];
|
|
27
|
+
}>, actor: string): PrimitiveInstance[];
|
|
28
|
+
|
|
29
|
+
declare const thread_block: typeof block;
|
|
30
|
+
declare const thread_cancel: typeof cancel;
|
|
31
|
+
declare const thread_claim: typeof claim;
|
|
32
|
+
declare const thread_createThread: typeof createThread;
|
|
33
|
+
declare const thread_decompose: typeof decompose;
|
|
34
|
+
declare const thread_done: typeof done;
|
|
35
|
+
declare const thread_release: typeof release;
|
|
36
|
+
declare const thread_unblock: typeof unblock;
|
|
37
|
+
declare namespace thread {
|
|
38
|
+
export { thread_block as block, thread_cancel as cancel, thread_claim as claim, thread_createThread as createThread, thread_decompose as decompose, thread_done as done, thread_release as release, thread_unblock as unblock };
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { claim as a, block as b, cancel as c, createThread as d, decompose as e, done as f, release as r, thread as t, unblock as u };
|
|
@@ -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-ERNE2FZ5.js";
|
|
4
|
+
import {
|
|
5
|
+
store_exports
|
|
6
|
+
} from "../chunk-HR4KN6S2.js";
|
|
7
|
+
import {
|
|
8
|
+
ledger_exports
|
|
9
|
+
} from "../chunk-K7PNYS45.js";
|
|
10
|
+
import {
|
|
11
|
+
registry_exports
|
|
12
|
+
} from "../chunk-NTOPJI7W.js";
|
|
13
|
+
import {
|
|
14
|
+
THREAD_STATUS_TRANSITIONS
|
|
15
|
+
} from "../chunk-WMGIIABP.js";
|
|
16
|
+
import "../chunk-U67V476Y.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-K7PNYS45.js";
|
|
13
|
+
import "../chunk-U67V476Y.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-NTOPJI7W.js";
|
|
10
|
+
import "../chunk-U67V476Y.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-HR4KN6S2.js";
|
|
12
|
+
import "../chunk-K7PNYS45.js";
|
|
13
|
+
import "../chunk-NTOPJI7W.js";
|
|
14
|
+
import "../chunk-U67V476Y.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-ERNE2FZ5.js";
|
|
11
|
+
import "../chunk-HR4KN6S2.js";
|
|
12
|
+
import "../chunk-K7PNYS45.js";
|
|
13
|
+
import "../chunk-NTOPJI7W.js";
|
|
14
|
+
import "../chunk-WMGIIABP.js";
|
|
15
|
+
import "../chunk-U67V476Y.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.clawvault.config.vaultPath ~/my-vault
|
|
85
|
+
|
|
86
|
+
# View current config
|
|
87
|
+
openclaw config get plugins.clawvault.config
|
|
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.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`.
|