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
|
@@ -57,7 +57,7 @@ declare function getMemoryGraph(vaultPath: string, options?: {
|
|
|
57
57
|
refresh?: boolean;
|
|
58
58
|
}): Promise<MemoryGraph>;
|
|
59
59
|
|
|
60
|
-
type LlmProvider = 'anthropic' | 'openai' | 'gemini';
|
|
60
|
+
type LlmProvider = 'anthropic' | 'openai' | 'gemini' | 'xai' | 'openclaw';
|
|
61
61
|
interface LlmCompletionOptions {
|
|
62
62
|
prompt: string;
|
|
63
63
|
provider?: LlmProvider | null;
|
|
@@ -67,7 +67,7 @@ interface LlmCompletionOptions {
|
|
|
67
67
|
maxTokens?: number;
|
|
68
68
|
fetchImpl?: typeof fetch;
|
|
69
69
|
}
|
|
70
|
-
declare function resolveLlmProvider(
|
|
70
|
+
declare function resolveLlmProvider(): LlmProvider | null;
|
|
71
71
|
declare function requestLlmCompletion(options: LlmCompletionOptions): Promise<string>;
|
|
72
72
|
|
|
73
73
|
declare const INJECTABLE_CATEGORIES: readonly ["rules", "decisions", "preferences"];
|
|
@@ -134,4 +134,4 @@ declare function buildInjectionResult(message: string, options: InjectCommandOpt
|
|
|
134
134
|
declare function injectCommand(message: string, options: InjectCommandOptions): Promise<void>;
|
|
135
135
|
declare function registerInjectCommand(program: Command): void;
|
|
136
136
|
|
|
137
|
-
export { runPromptInjection as A, type InjectCommandOptions as I, type
|
|
137
|
+
export { runPromptInjection as A, type InjectCommandOptions as I, type LlmProvider as L, MEMORY_GRAPH_SCHEMA_VERSION as M, type InjectFormat as a, type InjectMatch as b, type InjectMatchReason as c, type InjectMatchSource as d, type InjectResult as e, type InjectRuntimeOptions as f, type InjectSourceCategory as g, type InjectableItem as h, type LlmCompletionOptions as i, type MemoryGraph as j, type MemoryGraphEdge as k, type MemoryGraphEdgeType as l, type MemoryGraphIndex as m, type MemoryGraphNode as n, type MemoryGraphNodeType as o, type MemoryGraphStats as p, buildInjectionResult as q, buildOrUpdateMemoryGraphIndex as r, deterministicInjectMatches as s, getMemoryGraph as t, indexInjectableItems as u, injectCommand as v, loadMemoryGraphIndex as w, registerInjectCommand as x, requestLlmCompletion as y, resolveLlmProvider as z };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { LedgerEntry, LedgerOp } from './workgraph/types.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Append-only event ledger.
|
|
5
|
+
*
|
|
6
|
+
* Every mutation to the workgraph is logged here. This is the source of truth
|
|
7
|
+
* for coordination: who claimed what, when, and what's available.
|
|
8
|
+
*
|
|
9
|
+
* Format: one JSON object per line (.jsonl) in `.clawvault/ledger.jsonl`.
|
|
10
|
+
* Agents read the ledger to know the state of the world.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
declare function ledgerPath(vaultPath: string): string;
|
|
14
|
+
declare function append(vaultPath: string, actor: string, op: LedgerOp, target: string, type?: string, data?: Record<string, unknown>): LedgerEntry;
|
|
15
|
+
declare function readAll(vaultPath: string): LedgerEntry[];
|
|
16
|
+
declare function readSince(vaultPath: string, since: string): LedgerEntry[];
|
|
17
|
+
/** Get the current owner of a target (last claim without a subsequent release/done). */
|
|
18
|
+
declare function currentOwner(vaultPath: string, target: string): string | null;
|
|
19
|
+
/** Check if a target is currently claimed by any agent. */
|
|
20
|
+
declare function isClaimed(vaultPath: string, target: string): boolean;
|
|
21
|
+
/** Get all entries for a specific target. */
|
|
22
|
+
declare function historyOf(vaultPath: string, target: string): LedgerEntry[];
|
|
23
|
+
/** Get all entries by a specific actor. */
|
|
24
|
+
declare function activityOf(vaultPath: string, actor: string): LedgerEntry[];
|
|
25
|
+
/** Get all currently claimed targets and their owners. */
|
|
26
|
+
declare function allClaims(vaultPath: string): Map<string, string>;
|
|
27
|
+
/** Get recent ledger entries (last N). */
|
|
28
|
+
declare function recent(vaultPath: string, count?: number): LedgerEntry[];
|
|
29
|
+
|
|
30
|
+
declare const ledger_activityOf: typeof activityOf;
|
|
31
|
+
declare const ledger_allClaims: typeof allClaims;
|
|
32
|
+
declare const ledger_append: typeof append;
|
|
33
|
+
declare const ledger_currentOwner: typeof currentOwner;
|
|
34
|
+
declare const ledger_historyOf: typeof historyOf;
|
|
35
|
+
declare const ledger_isClaimed: typeof isClaimed;
|
|
36
|
+
declare const ledger_ledgerPath: typeof ledgerPath;
|
|
37
|
+
declare const ledger_readAll: typeof readAll;
|
|
38
|
+
declare const ledger_readSince: typeof readSince;
|
|
39
|
+
declare const ledger_recent: typeof recent;
|
|
40
|
+
declare namespace ledger {
|
|
41
|
+
export { ledger_activityOf as activityOf, ledger_allClaims as allClaims, ledger_append as append, ledger_currentOwner as currentOwner, ledger_historyOf as historyOf, ledger_isClaimed as isClaimed, ledger_ledgerPath as ledgerPath, ledger_readAll as readAll, ledger_readSince as readSince, ledger_recent as recent };
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export { activityOf as a, allClaims as b, append as c, currentOwner as d, ledgerPath as e, readSince as f, recent as g, historyOf as h, isClaimed as i, ledger as l, readAll as r };
|
package/dist/lib/auto-linker.js
CHANGED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas layout utilities for ClawVault
|
|
3
|
+
* Handles JSON Canvas generation with proper positioning and grouping
|
|
4
|
+
*/
|
|
5
|
+
interface CanvasNode {
|
|
6
|
+
id: string;
|
|
7
|
+
type: 'text' | 'file' | 'group';
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
text?: string;
|
|
13
|
+
file?: string;
|
|
14
|
+
label?: string;
|
|
15
|
+
color?: string;
|
|
16
|
+
}
|
|
17
|
+
interface CanvasEdge {
|
|
18
|
+
id: string;
|
|
19
|
+
fromNode: string;
|
|
20
|
+
fromSide: 'top' | 'right' | 'bottom' | 'left';
|
|
21
|
+
toNode: string;
|
|
22
|
+
toSide: 'top' | 'right' | 'bottom' | 'left';
|
|
23
|
+
label?: string;
|
|
24
|
+
color?: string;
|
|
25
|
+
}
|
|
26
|
+
interface Canvas {
|
|
27
|
+
nodes: CanvasNode[];
|
|
28
|
+
edges: CanvasEdge[];
|
|
29
|
+
}
|
|
30
|
+
declare const CANVAS_COLORS: {
|
|
31
|
+
readonly RED: "1";
|
|
32
|
+
readonly ORANGE: "2";
|
|
33
|
+
readonly YELLOW: "3";
|
|
34
|
+
readonly GREEN: "4";
|
|
35
|
+
readonly CYAN: "5";
|
|
36
|
+
readonly PURPLE: "6";
|
|
37
|
+
};
|
|
38
|
+
declare const LAYOUT: {
|
|
39
|
+
readonly LEFT_COLUMN_X: 0;
|
|
40
|
+
readonly LEFT_COLUMN_WIDTH: 500;
|
|
41
|
+
readonly RIGHT_COLUMN_X: 550;
|
|
42
|
+
readonly RIGHT_COLUMN_WIDTH: 450;
|
|
43
|
+
readonly GROUP_PADDING: 20;
|
|
44
|
+
readonly NODE_SPACING: 15;
|
|
45
|
+
readonly GROUP_SPACING: 50;
|
|
46
|
+
readonly DEFAULT_NODE_WIDTH: 280;
|
|
47
|
+
readonly DEFAULT_NODE_HEIGHT: 80;
|
|
48
|
+
readonly FILE_NODE_HEIGHT: 60;
|
|
49
|
+
readonly SMALL_NODE_HEIGHT: 50;
|
|
50
|
+
readonly GROUP_HEADER_HEIGHT: 40;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Generate a 16-character lowercase hex ID
|
|
54
|
+
*/
|
|
55
|
+
declare function generateId(): string;
|
|
56
|
+
/**
|
|
57
|
+
* Create a text node
|
|
58
|
+
*/
|
|
59
|
+
declare function createTextNode(x: number, y: number, width: number, height: number, text: string, color?: string): CanvasNode;
|
|
60
|
+
/**
|
|
61
|
+
* Create a file node
|
|
62
|
+
*/
|
|
63
|
+
declare function createFileNode(x: number, y: number, width: number, height: number, file: string, color?: string): CanvasNode;
|
|
64
|
+
/**
|
|
65
|
+
* Create a group node
|
|
66
|
+
*/
|
|
67
|
+
declare function createGroupNode(x: number, y: number, width: number, height: number, label: string, color?: string): CanvasNode;
|
|
68
|
+
/**
|
|
69
|
+
* Create an edge between nodes
|
|
70
|
+
*/
|
|
71
|
+
declare function createEdge(fromNode: string, fromSide: 'top' | 'right' | 'bottom' | 'left', toNode: string, toSide: 'top' | 'right' | 'bottom' | 'left', label?: string, color?: string): CanvasEdge;
|
|
72
|
+
/**
|
|
73
|
+
* Layout helper for vertical stacking of nodes within a group
|
|
74
|
+
*/
|
|
75
|
+
interface StackedLayout {
|
|
76
|
+
nodes: CanvasNode[];
|
|
77
|
+
totalHeight: number;
|
|
78
|
+
}
|
|
79
|
+
declare function stackNodesVertically(nodes: CanvasNode[], startX: number, startY: number, spacing?: number): StackedLayout;
|
|
80
|
+
/**
|
|
81
|
+
* Create a group with contained nodes
|
|
82
|
+
* Returns the group node and positioned child nodes
|
|
83
|
+
*/
|
|
84
|
+
interface GroupWithNodes {
|
|
85
|
+
group: CanvasNode;
|
|
86
|
+
nodes: CanvasNode[];
|
|
87
|
+
}
|
|
88
|
+
declare function createGroupWithNodes(groupX: number, groupY: number, groupWidth: number, label: string, childNodes: CanvasNode[], color?: string): GroupWithNodes;
|
|
89
|
+
/**
|
|
90
|
+
* Get priority color for a task
|
|
91
|
+
*/
|
|
92
|
+
declare function getPriorityColor(priority?: string): string | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Truncate text to fit within a certain width (approximate)
|
|
95
|
+
*/
|
|
96
|
+
declare function truncateText(text: string, maxChars: number): string;
|
|
97
|
+
/**
|
|
98
|
+
* Format markdown text for canvas node
|
|
99
|
+
* Replaces newlines with \n for JSON Canvas spec
|
|
100
|
+
*/
|
|
101
|
+
declare function formatCanvasText(lines: string[]): string;
|
|
102
|
+
/**
|
|
103
|
+
* Calculate the total height needed for a column of groups
|
|
104
|
+
*/
|
|
105
|
+
declare function calculateColumnHeight(groups: GroupWithNodes[]): number;
|
|
106
|
+
/**
|
|
107
|
+
* Position groups vertically in a column
|
|
108
|
+
*/
|
|
109
|
+
declare function positionGroupsVertically(groups: GroupWithNodes[], startY?: number): GroupWithNodes[];
|
|
110
|
+
/**
|
|
111
|
+
* Flatten groups and nodes into a single array
|
|
112
|
+
*/
|
|
113
|
+
declare function flattenGroups(groups: GroupWithNodes[]): CanvasNode[];
|
|
114
|
+
|
|
115
|
+
export { CANVAS_COLORS, type Canvas, type CanvasEdge, type CanvasNode, type GroupWithNodes, LAYOUT, type StackedLayout, calculateColumnHeight, createEdge, createFileNode, createGroupNode, createGroupWithNodes, createTextNode, flattenGroups, formatCanvasText, generateId, getPriorityColor, positionGroupsVertically, stackNodesVertically, truncateText };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CANVAS_COLORS,
|
|
3
|
+
LAYOUT,
|
|
4
|
+
calculateColumnHeight,
|
|
5
|
+
createEdge,
|
|
6
|
+
createFileNode,
|
|
7
|
+
createGroupNode,
|
|
8
|
+
createGroupWithNodes,
|
|
9
|
+
createTextNode,
|
|
10
|
+
flattenGroups,
|
|
11
|
+
formatCanvasText,
|
|
12
|
+
generateId,
|
|
13
|
+
getPriorityColor,
|
|
14
|
+
positionGroupsVertically,
|
|
15
|
+
stackNodesVertically,
|
|
16
|
+
truncateText
|
|
17
|
+
} from "../chunk-MDIH26GC.js";
|
|
18
|
+
import "../chunk-2ZDO52B4.js";
|
|
19
|
+
export {
|
|
20
|
+
CANVAS_COLORS,
|
|
21
|
+
LAYOUT,
|
|
22
|
+
calculateColumnHeight,
|
|
23
|
+
createEdge,
|
|
24
|
+
createFileNode,
|
|
25
|
+
createGroupNode,
|
|
26
|
+
createGroupWithNodes,
|
|
27
|
+
createTextNode,
|
|
28
|
+
flattenGroups,
|
|
29
|
+
formatCanvasText,
|
|
30
|
+
generateId,
|
|
31
|
+
getPriorityColor,
|
|
32
|
+
positionGroupsVertically,
|
|
33
|
+
stackNodesVertically,
|
|
34
|
+
truncateText
|
|
35
|
+
};
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -1,11 +1,35 @@
|
|
|
1
|
+
interface AgentVaultsConfig {
|
|
2
|
+
[agentName: string]: string;
|
|
3
|
+
}
|
|
4
|
+
interface PluginConfig {
|
|
5
|
+
vaultPath?: string;
|
|
6
|
+
agentVaults?: AgentVaultsConfig;
|
|
7
|
+
}
|
|
1
8
|
/**
|
|
2
9
|
* Get the vault path from CLAWVAULT_PATH env var or throw
|
|
3
10
|
*/
|
|
4
11
|
declare function getVaultPath(): string;
|
|
5
12
|
declare function findNearestVaultPath(startPath?: string): string | null;
|
|
6
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Resolve vault path for a specific agent from agentVaults config
|
|
15
|
+
*/
|
|
16
|
+
declare function resolveAgentVaultPath(agentVaults: AgentVaultsConfig | undefined, agentId: string | undefined): string | null;
|
|
17
|
+
interface ResolveVaultPathOptions {
|
|
7
18
|
explicitPath?: string;
|
|
8
19
|
cwd?: string;
|
|
9
|
-
|
|
20
|
+
agentId?: string;
|
|
21
|
+
pluginConfig?: PluginConfig;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve vault path with support for per-agent vault paths.
|
|
25
|
+
*
|
|
26
|
+
* Resolution order:
|
|
27
|
+
* 1. Explicit path (--vault flag)
|
|
28
|
+
* 2. Per-agent vault from agentVaults config (if agentId provided)
|
|
29
|
+
* 3. Plugin config vaultPath (fallback for all agents)
|
|
30
|
+
* 4. CLAWVAULT_PATH environment variable
|
|
31
|
+
* 5. Walk up from cwd to find nearest vault
|
|
32
|
+
*/
|
|
33
|
+
declare function resolveVaultPath(options?: ResolveVaultPathOptions): string;
|
|
10
34
|
|
|
11
|
-
export { findNearestVaultPath, getVaultPath, resolveVaultPath };
|
|
35
|
+
export { type AgentVaultsConfig, type PluginConfig, type ResolveVaultPathOptions, findNearestVaultPath, getVaultPath, resolveAgentVaultPath, resolveVaultPath };
|
package/dist/lib/config.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
findNearestVaultPath,
|
|
3
3
|
getVaultPath,
|
|
4
|
+
resolveAgentVaultPath,
|
|
4
5
|
resolveVaultPath
|
|
5
|
-
} from "../chunk-
|
|
6
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-GNJL4YGR.js";
|
|
7
|
+
import "../chunk-2ZDO52B4.js";
|
|
7
8
|
export {
|
|
8
9
|
findNearestVaultPath,
|
|
9
10
|
getVaultPath,
|
|
11
|
+
resolveAgentVaultPath,
|
|
10
12
|
resolveVaultPath
|
|
11
13
|
};
|
package/dist/lib/entity-index.js
CHANGED
|
@@ -6,11 +6,11 @@ import {
|
|
|
6
6
|
listProjects,
|
|
7
7
|
readProject,
|
|
8
8
|
updateProject
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-4PY655YM.js";
|
|
10
|
+
import "../chunk-QWQ3TIKS.js";
|
|
11
|
+
import "../chunk-MFAWT5O5.js";
|
|
12
12
|
import "../chunk-7766SIJP.js";
|
|
13
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-2ZDO52B4.js";
|
|
14
14
|
export {
|
|
15
15
|
archiveProject,
|
|
16
16
|
createProject,
|
|
@@ -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 };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CLAWVAULT_SERVE_PATH,
|
|
3
|
+
DEFAULT_SERVE_PORT,
|
|
4
|
+
FILE_ENDPOINT,
|
|
5
|
+
MANIFEST_ENDPOINT,
|
|
6
|
+
SYNC_ENDPOINT,
|
|
7
|
+
checkPeerClawVault,
|
|
8
|
+
compareManifests,
|
|
9
|
+
configureTailscaleServe,
|
|
10
|
+
discoverClawVaultPeers,
|
|
11
|
+
fetchRemoteFile,
|
|
12
|
+
fetchRemoteManifest,
|
|
13
|
+
findPeer,
|
|
14
|
+
generateVaultManifest,
|
|
15
|
+
getOnlinePeers,
|
|
16
|
+
getTailscaleStatus,
|
|
17
|
+
getTailscaleVersion,
|
|
18
|
+
hasTailscale,
|
|
19
|
+
pushFileToRemote,
|
|
20
|
+
resolvePeerIP,
|
|
21
|
+
serveVault,
|
|
22
|
+
stopTailscaleServe,
|
|
23
|
+
syncWithPeer
|
|
24
|
+
} from "../chunk-TIGW564L.js";
|
|
25
|
+
import "../chunk-IVRIKYFE.js";
|
|
26
|
+
import "../chunk-2ZDO52B4.js";
|
|
27
|
+
export {
|
|
28
|
+
CLAWVAULT_SERVE_PATH,
|
|
29
|
+
DEFAULT_SERVE_PORT,
|
|
30
|
+
FILE_ENDPOINT,
|
|
31
|
+
MANIFEST_ENDPOINT,
|
|
32
|
+
SYNC_ENDPOINT,
|
|
33
|
+
checkPeerClawVault,
|
|
34
|
+
compareManifests,
|
|
35
|
+
configureTailscaleServe,
|
|
36
|
+
discoverClawVaultPeers,
|
|
37
|
+
fetchRemoteFile,
|
|
38
|
+
fetchRemoteManifest,
|
|
39
|
+
findPeer,
|
|
40
|
+
generateVaultManifest,
|
|
41
|
+
getOnlinePeers,
|
|
42
|
+
getTailscaleStatus,
|
|
43
|
+
getTailscaleVersion,
|
|
44
|
+
hasTailscale,
|
|
45
|
+
pushFileToRemote,
|
|
46
|
+
resolvePeerIP,
|
|
47
|
+
serveVault,
|
|
48
|
+
stopTailscaleServe,
|
|
49
|
+
syncWithPeer
|
|
50
|
+
};
|
package/dist/lib/task-utils.js
CHANGED
|
@@ -23,10 +23,10 @@ import {
|
|
|
23
23
|
slugify,
|
|
24
24
|
updateBacklogItem,
|
|
25
25
|
updateTask
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
} from "../chunk-QWQ3TIKS.js";
|
|
27
|
+
import "../chunk-MFAWT5O5.js";
|
|
28
28
|
import "../chunk-7766SIJP.js";
|
|
29
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-2ZDO52B4.js";
|
|
30
30
|
export {
|
|
31
31
|
completeTask,
|
|
32
32
|
createBacklogItem,
|