clawvault 2.4.4 → 2.4.6
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/bin/clawvault.js +9 -0
- package/bin/command-registration.test.js +13 -1
- package/bin/help-contract.test.js +2 -0
- package/bin/register-config-commands.js +153 -0
- package/bin/register-config-route-commands.test.js +114 -0
- package/bin/register-kanban-commands.js +56 -0
- package/bin/register-kanban-commands.test.js +83 -0
- package/bin/register-resilience-commands.js +37 -2
- package/bin/register-resilience-commands.test.js +81 -0
- package/bin/register-route-commands.js +114 -0
- package/bin/register-task-commands.js +58 -7
- package/bin/register-task-commands.test.js +46 -0
- package/bin/test-helpers/cli-command-fixtures.js +20 -0
- package/dist/{chunk-XDCFXFGH.js → chunk-22WE3J4F.js} +1 -1
- package/dist/chunk-3PJIGGWV.js +49 -0
- package/dist/{chunk-FDJIZKCW.js → chunk-6B3JWM7J.js} +12 -48
- package/dist/{chunk-DEFBIVQ3.js → chunk-6QLRSPLZ.js} +170 -7
- package/dist/{chunk-MZZJLQNQ.js → chunk-F55HGNU4.js} +6 -0
- package/dist/{chunk-SNEMCQP7.js → chunk-FD2ZA65C.js} +1 -1
- package/dist/{chunk-GBIDDDSL.js → chunk-FKQJB6XC.js} +1 -1
- package/dist/{chunk-FEFPBHH4.js → chunk-H6WQUUNK.js} +453 -23
- package/dist/{chunk-BMOQI62Q.js → chunk-HNMFXFYP.js} +5 -3
- package/dist/{chunk-DHJPXGC7.js → chunk-JTO7NZLS.js} +1 -1
- package/dist/chunk-LLN5SPGL.js +399 -0
- package/dist/chunk-OIWVQYQF.js +284 -0
- package/dist/{chunk-IFTEGE4D.js → chunk-P2ZH6AN5.js} +4 -2
- package/dist/commands/backlog.js +1 -1
- package/dist/commands/blocked.js +1 -1
- package/dist/commands/canvas.js +1 -1
- package/dist/commands/checkpoint.js +1 -1
- package/dist/commands/context.js +4 -3
- package/dist/commands/doctor.js +6 -5
- package/dist/commands/kanban.d.ts +63 -0
- package/dist/commands/kanban.js +21 -0
- package/dist/commands/observe.js +4 -3
- package/dist/commands/rebuild.js +4 -3
- package/dist/commands/recover.d.ts +13 -1
- package/dist/commands/recover.js +10 -2
- package/dist/commands/replay.js +4 -3
- package/dist/commands/setup.js +3 -2
- package/dist/commands/sleep.js +6 -5
- package/dist/commands/status.js +6 -5
- package/dist/commands/task.d.ts +18 -6
- package/dist/commands/task.js +69 -12
- package/dist/commands/wake.js +5 -4
- package/dist/index.d.ts +29 -1
- package/dist/index.js +60 -15
- package/dist/lib/task-utils.d.ts +41 -10
- package/dist/lib/task-utils.js +5 -1
- package/package.json +2 -2
- package/dist/chunk-IWYZAXKJ.js +0 -146
package/dist/commands/blocked.js
CHANGED
package/dist/commands/canvas.js
CHANGED
package/dist/commands/context.js
CHANGED
|
@@ -3,9 +3,10 @@ import {
|
|
|
3
3
|
contextCommand,
|
|
4
4
|
formatContextMarkdown,
|
|
5
5
|
registerContextCommand
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-22WE3J4F.js";
|
|
7
|
+
import "../chunk-HNMFXFYP.js";
|
|
8
|
+
import "../chunk-6B3JWM7J.js";
|
|
9
|
+
import "../chunk-3PJIGGWV.js";
|
|
9
10
|
import "../chunk-L3DJ36BZ.js";
|
|
10
11
|
import "../chunk-ZZA73MFY.js";
|
|
11
12
|
import "../chunk-FHFUXL6G.js";
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatAge
|
|
3
|
+
} from "../chunk-7ZRP733D.js";
|
|
1
4
|
import {
|
|
2
5
|
scanVaultLinks
|
|
3
6
|
} from "../chunk-4VQTUVH7.js";
|
|
4
7
|
import "../chunk-J7ZWCI2C.js";
|
|
5
|
-
import {
|
|
6
|
-
formatAge
|
|
7
|
-
} from "../chunk-7ZRP733D.js";
|
|
8
8
|
import {
|
|
9
9
|
checkOpenClawCompatibility
|
|
10
10
|
} from "../chunk-PAYUH64O.js";
|
|
11
11
|
import {
|
|
12
12
|
ClawVault,
|
|
13
13
|
findVault
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-HNMFXFYP.js";
|
|
15
15
|
import {
|
|
16
16
|
hasQmd
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-6B3JWM7J.js";
|
|
18
|
+
import "../chunk-3PJIGGWV.js";
|
|
18
19
|
import {
|
|
19
20
|
loadMemoryGraphIndex
|
|
20
21
|
} from "../chunk-ZZA73MFY.js";
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Task } from '../lib/task-utils.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Kanban command for ClawVault.
|
|
5
|
+
* Syncs task frontmatter to/from Obsidian Kanban markdown boards.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
type KanbanGroupBy = 'status' | 'priority' | 'project' | 'owner';
|
|
9
|
+
interface KanbanSyncOptions {
|
|
10
|
+
output?: string;
|
|
11
|
+
groupBy?: KanbanGroupBy | string;
|
|
12
|
+
filterProject?: string;
|
|
13
|
+
filterOwner?: string;
|
|
14
|
+
includeDone?: boolean;
|
|
15
|
+
now?: Date;
|
|
16
|
+
}
|
|
17
|
+
interface KanbanImportOptions {
|
|
18
|
+
output?: string;
|
|
19
|
+
}
|
|
20
|
+
interface KanbanLane {
|
|
21
|
+
name: string;
|
|
22
|
+
cards: string[];
|
|
23
|
+
}
|
|
24
|
+
interface KanbanSyncResult {
|
|
25
|
+
outputPath: string;
|
|
26
|
+
groupBy: KanbanGroupBy;
|
|
27
|
+
markdown: string;
|
|
28
|
+
lanes: KanbanLane[];
|
|
29
|
+
taskCount: number;
|
|
30
|
+
}
|
|
31
|
+
interface KanbanImportChange {
|
|
32
|
+
slug: string;
|
|
33
|
+
field: KanbanGroupBy;
|
|
34
|
+
from: string | null;
|
|
35
|
+
to: string | null;
|
|
36
|
+
}
|
|
37
|
+
interface KanbanImportResult {
|
|
38
|
+
outputPath: string;
|
|
39
|
+
groupBy: KanbanGroupBy;
|
|
40
|
+
changes: KanbanImportChange[];
|
|
41
|
+
missingSlugs: string[];
|
|
42
|
+
}
|
|
43
|
+
interface ParsedKanbanLane {
|
|
44
|
+
name: string;
|
|
45
|
+
slugs: string[];
|
|
46
|
+
}
|
|
47
|
+
interface ParsedKanbanBoard {
|
|
48
|
+
groupBy: KanbanGroupBy;
|
|
49
|
+
lanes: ParsedKanbanLane[];
|
|
50
|
+
}
|
|
51
|
+
declare function formatKanbanCard(task: Task): string;
|
|
52
|
+
declare function buildKanbanLanes(tasks: Task[], groupBy: KanbanGroupBy): KanbanLane[];
|
|
53
|
+
declare function generateKanbanMarkdown(tasks: Task[], options?: {
|
|
54
|
+
groupBy?: KanbanGroupBy | string;
|
|
55
|
+
now?: Date;
|
|
56
|
+
}): string;
|
|
57
|
+
declare function syncKanbanBoard(vaultPath: string, options?: KanbanSyncOptions): KanbanSyncResult;
|
|
58
|
+
declare function extractCardSlug(line: string): string | null;
|
|
59
|
+
declare function parseKanbanMarkdown(markdown: string): ParsedKanbanBoard;
|
|
60
|
+
declare function importKanbanBoard(vaultPath: string, options?: KanbanImportOptions): KanbanImportResult;
|
|
61
|
+
declare function kanbanCommand(vaultPath: string, action: 'sync' | 'import', options?: KanbanSyncOptions & KanbanImportOptions): Promise<void>;
|
|
62
|
+
|
|
63
|
+
export { type KanbanGroupBy, type KanbanImportChange, type KanbanImportOptions, type KanbanImportResult, type KanbanLane, type KanbanSyncOptions, type KanbanSyncResult, type ParsedKanbanBoard, type ParsedKanbanLane, buildKanbanLanes, extractCardSlug, formatKanbanCard, generateKanbanMarkdown, importKanbanBoard, kanbanCommand, parseKanbanMarkdown, syncKanbanBoard };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildKanbanLanes,
|
|
3
|
+
extractCardSlug,
|
|
4
|
+
formatKanbanCard,
|
|
5
|
+
generateKanbanMarkdown,
|
|
6
|
+
importKanbanBoard,
|
|
7
|
+
kanbanCommand,
|
|
8
|
+
parseKanbanMarkdown,
|
|
9
|
+
syncKanbanBoard
|
|
10
|
+
} from "../chunk-LLN5SPGL.js";
|
|
11
|
+
import "../chunk-6QLRSPLZ.js";
|
|
12
|
+
export {
|
|
13
|
+
buildKanbanLanes,
|
|
14
|
+
extractCardSlug,
|
|
15
|
+
formatKanbanCard,
|
|
16
|
+
generateKanbanMarkdown,
|
|
17
|
+
importKanbanBoard,
|
|
18
|
+
kanbanCommand,
|
|
19
|
+
parseKanbanMarkdown,
|
|
20
|
+
syncKanbanBoard
|
|
21
|
+
};
|
package/dist/commands/observe.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
observeCommand,
|
|
3
3
|
registerObserveCommand
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-FD2ZA65C.js";
|
|
5
5
|
import "../chunk-HRLWZGMA.js";
|
|
6
6
|
import "../chunk-P5EPF6MB.js";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-H6WQUUNK.js";
|
|
8
8
|
import "../chunk-MXSSG3QU.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-6QLRSPLZ.js";
|
|
10
|
+
import "../chunk-3PJIGGWV.js";
|
|
10
11
|
import "../chunk-FHFUXL6G.js";
|
|
11
12
|
import "../chunk-NAMFB7ZA.js";
|
|
12
13
|
export {
|
package/dist/commands/rebuild.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
rebuildCommand,
|
|
3
3
|
registerRebuildCommand
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-JTO7NZLS.js";
|
|
5
|
+
import "../chunk-H6WQUUNK.js";
|
|
6
6
|
import "../chunk-MXSSG3QU.js";
|
|
7
|
-
import "../chunk-
|
|
7
|
+
import "../chunk-6QLRSPLZ.js";
|
|
8
|
+
import "../chunk-3PJIGGWV.js";
|
|
8
9
|
import "../chunk-FHFUXL6G.js";
|
|
9
10
|
import "../chunk-NAMFB7ZA.js";
|
|
10
11
|
export {
|
|
@@ -12,10 +12,22 @@ interface RecoveryInfo {
|
|
|
12
12
|
handoffContent: string | null;
|
|
13
13
|
recoveryMessage: string;
|
|
14
14
|
}
|
|
15
|
+
interface RecoveryCheckInfo {
|
|
16
|
+
died: boolean;
|
|
17
|
+
deathTime: string | null;
|
|
18
|
+
checkpoint: CheckpointData | null;
|
|
19
|
+
}
|
|
20
|
+
interface ListedCheckpoint extends CheckpointData {
|
|
21
|
+
filePath: string;
|
|
22
|
+
}
|
|
23
|
+
declare function checkRecoveryStatus(vaultPath: string): Promise<RecoveryCheckInfo>;
|
|
24
|
+
declare function listCheckpoints(vaultPath: string): ListedCheckpoint[];
|
|
15
25
|
declare function recover(vaultPath: string, options?: {
|
|
16
26
|
clearFlag?: boolean;
|
|
17
27
|
verbose?: boolean;
|
|
18
28
|
}): Promise<RecoveryInfo>;
|
|
29
|
+
declare function formatRecoveryCheckStatus(info: RecoveryCheckInfo): string;
|
|
30
|
+
declare function formatCheckpointList(checkpoints: ListedCheckpoint[]): string;
|
|
19
31
|
/**
|
|
20
32
|
* Format recovery info for CLI output
|
|
21
33
|
*/
|
|
@@ -23,4 +35,4 @@ declare function formatRecoveryInfo(info: RecoveryInfo, options?: {
|
|
|
23
35
|
verbose?: boolean;
|
|
24
36
|
}): string;
|
|
25
37
|
|
|
26
|
-
export { type RecoveryInfo, formatRecoveryInfo, recover };
|
|
38
|
+
export { type ListedCheckpoint, type RecoveryCheckInfo, type RecoveryInfo, checkRecoveryStatus, formatCheckpointList, formatRecoveryCheckStatus, formatRecoveryInfo, listCheckpoints, recover };
|
package/dist/commands/recover.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
+
checkRecoveryStatus,
|
|
3
|
+
formatCheckpointList,
|
|
4
|
+
formatRecoveryCheckStatus,
|
|
2
5
|
formatRecoveryInfo,
|
|
6
|
+
listCheckpoints,
|
|
3
7
|
recover
|
|
4
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-OIWVQYQF.js";
|
|
5
9
|
import "../chunk-7ZRP733D.js";
|
|
6
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-F55HGNU4.js";
|
|
7
11
|
export {
|
|
12
|
+
checkRecoveryStatus,
|
|
13
|
+
formatCheckpointList,
|
|
14
|
+
formatRecoveryCheckStatus,
|
|
8
15
|
formatRecoveryInfo,
|
|
16
|
+
listCheckpoints,
|
|
9
17
|
recover
|
|
10
18
|
};
|
package/dist/commands/replay.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
registerReplayCommand,
|
|
3
3
|
replayCommand
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-FKQJB6XC.js";
|
|
5
5
|
import "../chunk-AHGUJG76.js";
|
|
6
|
-
import "../chunk-
|
|
6
|
+
import "../chunk-H6WQUUNK.js";
|
|
7
7
|
import "../chunk-QALB2V3E.js";
|
|
8
8
|
import "../chunk-MXSSG3QU.js";
|
|
9
|
-
import "../chunk-
|
|
9
|
+
import "../chunk-6QLRSPLZ.js";
|
|
10
|
+
import "../chunk-3PJIGGWV.js";
|
|
10
11
|
import "../chunk-FHFUXL6G.js";
|
|
11
12
|
import "../chunk-NAMFB7ZA.js";
|
|
12
13
|
export {
|
package/dist/commands/setup.js
CHANGED
package/dist/commands/sleep.js
CHANGED
|
@@ -6,18 +6,19 @@ import {
|
|
|
6
6
|
} from "../chunk-P5EPF6MB.js";
|
|
7
7
|
import {
|
|
8
8
|
Observer
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-H6WQUUNK.js";
|
|
10
10
|
import "../chunk-QALB2V3E.js";
|
|
11
|
-
import "../chunk-
|
|
11
|
+
import "../chunk-6QLRSPLZ.js";
|
|
12
12
|
import {
|
|
13
13
|
clearDirtyFlag
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-F55HGNU4.js";
|
|
15
15
|
import {
|
|
16
16
|
ClawVault
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-HNMFXFYP.js";
|
|
18
18
|
import {
|
|
19
19
|
qmdUpdate
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-6B3JWM7J.js";
|
|
21
|
+
import "../chunk-3PJIGGWV.js";
|
|
21
22
|
import "../chunk-ZZA73MFY.js";
|
|
22
23
|
import "../chunk-FHFUXL6G.js";
|
|
23
24
|
import "../chunk-NAMFB7ZA.js";
|
package/dist/commands/status.js
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatAge
|
|
3
|
+
} from "../chunk-7ZRP733D.js";
|
|
1
4
|
import {
|
|
2
5
|
scanVaultLinks
|
|
3
6
|
} from "../chunk-4VQTUVH7.js";
|
|
4
7
|
import "../chunk-J7ZWCI2C.js";
|
|
5
|
-
import {
|
|
6
|
-
formatAge
|
|
7
|
-
} from "../chunk-7ZRP733D.js";
|
|
8
8
|
import {
|
|
9
9
|
ClawVault
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-HNMFXFYP.js";
|
|
11
11
|
import {
|
|
12
12
|
QmdUnavailableError,
|
|
13
13
|
hasQmd
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-6B3JWM7J.js";
|
|
15
|
+
import "../chunk-3PJIGGWV.js";
|
|
15
16
|
import {
|
|
16
17
|
loadMemoryGraphIndex
|
|
17
18
|
} from "../chunk-ZZA73MFY.js";
|
package/dist/commands/task.d.ts
CHANGED
|
@@ -12,23 +12,35 @@ interface TaskAddOptions {
|
|
|
12
12
|
due?: string;
|
|
13
13
|
content?: string;
|
|
14
14
|
tags?: string[];
|
|
15
|
+
description?: string;
|
|
16
|
+
estimate?: string;
|
|
17
|
+
parent?: string;
|
|
18
|
+
dependsOn?: string[];
|
|
15
19
|
}
|
|
16
20
|
interface TaskListOptions {
|
|
17
21
|
status?: TaskStatus;
|
|
18
22
|
owner?: string;
|
|
19
23
|
project?: string;
|
|
20
24
|
priority?: TaskPriority;
|
|
25
|
+
due?: boolean;
|
|
26
|
+
tag?: string;
|
|
27
|
+
overdue?: boolean;
|
|
21
28
|
json?: boolean;
|
|
22
29
|
}
|
|
23
30
|
interface TaskUpdateOptions {
|
|
24
31
|
status?: TaskStatus;
|
|
25
|
-
owner?: string;
|
|
26
|
-
project?: string;
|
|
27
|
-
priority?: TaskPriority;
|
|
28
|
-
blockedBy?: string;
|
|
29
|
-
due?: string;
|
|
32
|
+
owner?: string | null;
|
|
33
|
+
project?: string | null;
|
|
34
|
+
priority?: TaskPriority | null;
|
|
35
|
+
blockedBy?: string | null;
|
|
36
|
+
due?: string | null;
|
|
37
|
+
tags?: string[] | null;
|
|
38
|
+
description?: string | null;
|
|
39
|
+
estimate?: string | null;
|
|
40
|
+
parent?: string | null;
|
|
41
|
+
dependsOn?: string[] | null;
|
|
30
42
|
confidence?: number;
|
|
31
|
-
reason?: string;
|
|
43
|
+
reason?: string | null;
|
|
32
44
|
}
|
|
33
45
|
interface TaskTransitionsOptions {
|
|
34
46
|
agent?: string;
|
package/dist/commands/task.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
listTasks,
|
|
14
14
|
readTask,
|
|
15
15
|
updateTask
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-6QLRSPLZ.js";
|
|
17
17
|
|
|
18
18
|
// src/commands/task.ts
|
|
19
19
|
import matter from "gray-matter";
|
|
@@ -25,7 +25,11 @@ function taskAdd(vaultPath, title, options = {}) {
|
|
|
25
25
|
priority: options.priority,
|
|
26
26
|
due: options.due,
|
|
27
27
|
content: options.content,
|
|
28
|
-
tags: options.tags
|
|
28
|
+
tags: options.tags,
|
|
29
|
+
description: options.description,
|
|
30
|
+
estimate: options.estimate,
|
|
31
|
+
parent: options.parent,
|
|
32
|
+
depends_on: options.dependsOn
|
|
29
33
|
});
|
|
30
34
|
}
|
|
31
35
|
function taskList(vaultPath, options = {}) {
|
|
@@ -34,11 +38,14 @@ function taskList(vaultPath, options = {}) {
|
|
|
34
38
|
if (options.owner) filters.owner = options.owner;
|
|
35
39
|
if (options.project) filters.project = options.project;
|
|
36
40
|
if (options.priority) filters.priority = options.priority;
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
if (options.due) filters.due = true;
|
|
42
|
+
if (options.tag) filters.tag = options.tag;
|
|
43
|
+
if (options.overdue) filters.overdue = true;
|
|
44
|
+
const listed = listTasks(vaultPath, filters);
|
|
45
|
+
if (!options.status && !options.overdue) {
|
|
46
|
+
return listed.filter((t) => t.frontmatter.status !== "done");
|
|
40
47
|
}
|
|
41
|
-
return
|
|
48
|
+
return listed;
|
|
42
49
|
}
|
|
43
50
|
function taskUpdate(vaultPath, slug, options) {
|
|
44
51
|
const before = readTask(vaultPath, slug);
|
|
@@ -49,10 +56,20 @@ function taskUpdate(vaultPath, slug, options) {
|
|
|
49
56
|
project: options.project,
|
|
50
57
|
priority: options.priority,
|
|
51
58
|
blocked_by: options.blockedBy,
|
|
52
|
-
due: options.due
|
|
59
|
+
due: options.due,
|
|
60
|
+
tags: options.tags,
|
|
61
|
+
description: options.description,
|
|
62
|
+
estimate: options.estimate,
|
|
63
|
+
parent: options.parent,
|
|
64
|
+
depends_on: options.dependsOn,
|
|
65
|
+
confidence: options.confidence,
|
|
66
|
+
reason: options.reason
|
|
53
67
|
});
|
|
54
68
|
if (options.status && oldStatus && options.status !== oldStatus) {
|
|
55
|
-
emitTransition(vaultPath, slug, oldStatus, options.status,
|
|
69
|
+
emitTransition(vaultPath, slug, oldStatus, options.status, {
|
|
70
|
+
confidence: options.confidence,
|
|
71
|
+
reason: options.reason ?? void 0
|
|
72
|
+
});
|
|
56
73
|
}
|
|
57
74
|
return task;
|
|
58
75
|
}
|
|
@@ -105,8 +122,12 @@ function formatTaskList(tasks) {
|
|
|
105
122
|
if (tasks.length === 0) {
|
|
106
123
|
return "No tasks found.\n";
|
|
107
124
|
}
|
|
108
|
-
const headers = ["STATUS", "OWNER", "PRIORITY", "PROJECT", "TITLE"];
|
|
109
|
-
const widths = [10, 12, 8,
|
|
125
|
+
const headers = ["STATUS", "OWNER", "PRIORITY", "PROJECT", "META", "TITLE"];
|
|
126
|
+
const widths = [10, 12, 8, 14, 64, 32];
|
|
127
|
+
const truncate = (value, width) => {
|
|
128
|
+
if (value.length <= width) return value;
|
|
129
|
+
return value.slice(0, width - 3) + "...";
|
|
130
|
+
};
|
|
110
131
|
let output = headers.map((h, i) => h.padEnd(widths[i])).join(" ") + "\n";
|
|
111
132
|
for (const task of tasks) {
|
|
112
133
|
const icon = getStatusIcon(task.frontmatter.status);
|
|
@@ -115,12 +136,21 @@ function formatTaskList(tasks) {
|
|
|
115
136
|
const owner = task.frontmatter.owner || "-";
|
|
116
137
|
const priority = task.frontmatter.priority || "low";
|
|
117
138
|
const project = task.frontmatter.project || "-";
|
|
118
|
-
const
|
|
139
|
+
const metaParts = [];
|
|
140
|
+
if (task.frontmatter.due) metaParts.push(`due:${task.frontmatter.due.split("T")[0]}`);
|
|
141
|
+
if (task.frontmatter.tags?.length) metaParts.push(task.frontmatter.tags.map((tag) => `#${tag}`).join(","));
|
|
142
|
+
if (task.frontmatter.parent) metaParts.push(`parent:${task.frontmatter.parent}`);
|
|
143
|
+
if (task.frontmatter.depends_on?.length) {
|
|
144
|
+
metaParts.push(`deps:${task.frontmatter.depends_on.join("|")}`);
|
|
145
|
+
}
|
|
146
|
+
const meta = metaParts.length > 0 ? metaParts.join(" ") : "-";
|
|
147
|
+
const title = truncate(task.title, widths[5]);
|
|
119
148
|
const row = [
|
|
120
149
|
status.padEnd(widths[0]),
|
|
121
150
|
owner.padEnd(widths[1]),
|
|
122
151
|
priority.padEnd(widths[2]),
|
|
123
152
|
project.padEnd(widths[3]),
|
|
153
|
+
truncate(meta, widths[4]).padEnd(widths[4]),
|
|
124
154
|
title
|
|
125
155
|
];
|
|
126
156
|
output += row.join(" ") + "\n";
|
|
@@ -144,6 +174,22 @@ function formatTaskDetails(task) {
|
|
|
144
174
|
}
|
|
145
175
|
if (task.frontmatter.priority) {
|
|
146
176
|
output += `Priority: ${task.frontmatter.priority}
|
|
177
|
+
`;
|
|
178
|
+
}
|
|
179
|
+
if (task.frontmatter.description) {
|
|
180
|
+
output += `Description: ${task.frontmatter.description}
|
|
181
|
+
`;
|
|
182
|
+
}
|
|
183
|
+
if (task.frontmatter.estimate) {
|
|
184
|
+
output += `Estimate: ${task.frontmatter.estimate}
|
|
185
|
+
`;
|
|
186
|
+
}
|
|
187
|
+
if (task.frontmatter.parent) {
|
|
188
|
+
output += `Parent: ${task.frontmatter.parent}
|
|
189
|
+
`;
|
|
190
|
+
}
|
|
191
|
+
if (task.frontmatter.depends_on && task.frontmatter.depends_on.length > 0) {
|
|
192
|
+
output += `Depends on: ${task.frontmatter.depends_on.join(", ")}
|
|
147
193
|
`;
|
|
148
194
|
}
|
|
149
195
|
if (task.frontmatter.due) {
|
|
@@ -156,6 +202,17 @@ function formatTaskDetails(task) {
|
|
|
156
202
|
}
|
|
157
203
|
if (task.frontmatter.tags && task.frontmatter.tags.length > 0) {
|
|
158
204
|
output += `Tags: ${task.frontmatter.tags.join(", ")}
|
|
205
|
+
`;
|
|
206
|
+
}
|
|
207
|
+
if (task.frontmatter.escalation) {
|
|
208
|
+
output += "Escalation: true\n";
|
|
209
|
+
}
|
|
210
|
+
if (task.frontmatter.confidence !== void 0) {
|
|
211
|
+
output += `Confidence: ${task.frontmatter.confidence}
|
|
212
|
+
`;
|
|
213
|
+
}
|
|
214
|
+
if (task.frontmatter.reason) {
|
|
215
|
+
output += `Reason: ${task.frontmatter.reason}
|
|
159
216
|
`;
|
|
160
217
|
}
|
|
161
218
|
output += `Created: ${task.frontmatter.created}
|
|
@@ -210,7 +267,7 @@ async function taskCommand(vaultPath, action, args) {
|
|
|
210
267
|
}
|
|
211
268
|
const task = taskDone(vaultPath, args.slug, {
|
|
212
269
|
confidence: options.confidence,
|
|
213
|
-
reason: options.reason
|
|
270
|
+
reason: options.reason ?? void 0
|
|
214
271
|
});
|
|
215
272
|
console.log(`\u2713 Completed task: ${task.slug}`);
|
|
216
273
|
break;
|
package/dist/commands/wake.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
recover
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-OIWVQYQF.js";
|
|
4
4
|
import "../chunk-7ZRP733D.js";
|
|
5
5
|
import {
|
|
6
6
|
clearDirtyFlag
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-F55HGNU4.js";
|
|
8
8
|
import {
|
|
9
9
|
ClawVault
|
|
10
|
-
} from "../chunk-
|
|
11
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-HNMFXFYP.js";
|
|
11
|
+
import "../chunk-6B3JWM7J.js";
|
|
12
|
+
import "../chunk-3PJIGGWV.js";
|
|
12
13
|
import "../chunk-ZZA73MFY.js";
|
|
13
14
|
import {
|
|
14
15
|
parseObservationMarkdown
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export { f as DEFAULT_CATEGORIES, g as DEFAULT_CONFIG, h as MEMORY_TYPES, T as T
|
|
|
4
4
|
export { setupCommand } from './commands/setup.js';
|
|
5
5
|
export { CompatCheck, CompatCommandOptions, CompatReport, CompatStatus, checkOpenClawCompatibility, compatCommand, compatibilityExitCode } from './commands/compat.js';
|
|
6
6
|
export { GraphSummary, graphCommand, graphSummary } from './commands/graph.js';
|
|
7
|
+
export { KanbanGroupBy, KanbanImportChange, KanbanImportOptions, KanbanImportResult, KanbanLane, KanbanSyncOptions, KanbanSyncResult, ParsedKanbanBoard, ParsedKanbanLane, buildKanbanLanes, extractCardSlug, formatKanbanCard, generateKanbanMarkdown, importKanbanBoard, kanbanCommand, parseKanbanMarkdown, syncKanbanBoard } from './commands/kanban.js';
|
|
7
8
|
export { C as ContextEntry, a as ContextFormat, b as ContextOptions, c as ContextProfile, d as ContextProfileInput, e as ContextProfileOption, f as ContextResult, R as ResolvedContextProfile, g as buildContext, h as contextCommand, i as formatContextMarkdown, j as inferContextProfile, n as normalizeContextProfileInput, r as registerContextCommand, k as resolveContextProfile } from './context-BUGaWpyL.js';
|
|
8
9
|
export { ObserveCommandOptions, observeCommand, registerObserveCommand } from './commands/observe.js';
|
|
9
10
|
export { ReflectCommandOptions, reflectCommand, registerReflectCommand } from './commands/reflect.js';
|
|
@@ -15,6 +16,7 @@ export { SyncBdCommandOptions, registerSyncBdCommand, syncBdCommand } from './co
|
|
|
15
16
|
export { SessionRecapFormat, SessionRecapOptions, SessionRecapResult, SessionTurn, buildSessionRecap, formatSessionRecapMarkdown, sessionRecapCommand } from './commands/session-recap.js';
|
|
16
17
|
export { findNearestVaultPath, getVaultPath, resolveVaultPath } from './lib/config.js';
|
|
17
18
|
import { TaskStatus } from './lib/task-utils.js';
|
|
19
|
+
export { listDependentTasks, listSubtasks } from './lib/task-utils.js';
|
|
18
20
|
export { CLAWVAULT_SERVE_PATH, DEFAULT_SERVE_PORT, ServeInstance, TailscalePeer, TailscaleServeConfig, TailscaleStatus, TailscaleSyncOptions, TailscaleSyncResult, VaultFileEntry, VaultManifest, checkPeerClawVault, compareManifests, configureTailscaleServe, discoverClawVaultPeers, fetchRemoteFile, fetchRemoteManifest, findPeer, generateVaultManifest, getOnlinePeers, getTailscaleStatus, getTailscaleVersion, hasTailscale, pushFileToRemote, resolvePeerIP, serveVault, stopTailscaleServe, syncWithPeer } from './lib/tailscale.js';
|
|
19
21
|
export { TailscaleDiscoverCommandOptions, TailscaleServeCommandOptions, TailscaleStatusCommandOptions, TailscaleSyncCommandOptions, registerTailscaleCommands, registerTailscaleDiscoverCommand, registerTailscaleServeCommand, registerTailscaleStatusCommand, registerTailscaleSyncCommand, tailscaleDiscoverCommand, tailscaleServeCommand, tailscaleStatusCommand, tailscaleSyncCommand } from './commands/tailscale.js';
|
|
20
22
|
export { TemplateVariables, buildTemplateVariables, renderTemplate } from './lib/template-engine.js';
|
|
@@ -288,6 +290,32 @@ declare function extractWikiLinks(content: string): string[];
|
|
|
288
290
|
*/
|
|
289
291
|
declare function extractTags(content: string): string[];
|
|
290
292
|
|
|
293
|
+
declare const OBSERVE_PROVIDERS: readonly ["anthropic", "openai", "gemini"];
|
|
294
|
+
declare const THEMES: readonly ["neural", "minimal", "none"];
|
|
295
|
+
declare const CONTEXT_PROFILES: readonly ["default", "planning", "incident", "handoff", "auto"];
|
|
296
|
+
type ObserveProvider = (typeof OBSERVE_PROVIDERS)[number];
|
|
297
|
+
type Theme = (typeof THEMES)[number];
|
|
298
|
+
type ContextProfile = (typeof CONTEXT_PROFILES)[number];
|
|
299
|
+
type ManagedConfigKey = 'name' | 'categories' | 'theme' | 'observe.model' | 'observe.provider' | 'context.maxResults' | 'context.defaultProfile' | 'graph.maxHops';
|
|
300
|
+
interface RouteRule {
|
|
301
|
+
pattern: string;
|
|
302
|
+
target: string;
|
|
303
|
+
priority: number;
|
|
304
|
+
}
|
|
305
|
+
declare const SUPPORTED_CONFIG_KEYS: ManagedConfigKey[];
|
|
306
|
+
declare function listConfig(vaultPath: string): Record<string, unknown>;
|
|
307
|
+
declare function getConfigValue(vaultPath: string, key: ManagedConfigKey): unknown;
|
|
308
|
+
declare function setConfigValue(vaultPath: string, key: ManagedConfigKey, value: unknown): {
|
|
309
|
+
value: unknown;
|
|
310
|
+
config: Record<string, unknown>;
|
|
311
|
+
};
|
|
312
|
+
declare function resetConfig(vaultPath: string): Record<string, unknown>;
|
|
313
|
+
declare function listRouteRules(vaultPath: string): RouteRule[];
|
|
314
|
+
declare function addRouteRule(vaultPath: string, pattern: string, target: string): RouteRule;
|
|
315
|
+
declare function removeRouteRule(vaultPath: string, pattern: string): boolean;
|
|
316
|
+
declare function matchRouteRule(text: string, routes: RouteRule[]): RouteRule | null;
|
|
317
|
+
declare function testRouteRule(vaultPath: string, text: string): RouteRule | null;
|
|
318
|
+
|
|
291
319
|
declare const MEMORY_GRAPH_SCHEMA_VERSION = 1;
|
|
292
320
|
type NodeCategory = 'note' | 'daily' | 'observation' | 'handoff' | 'decision' | 'lesson' | 'project' | 'person' | 'commitment' | 'tag' | 'unresolved';
|
|
293
321
|
type MemoryGraphNodeType = NodeCategory;
|
|
@@ -597,4 +625,4 @@ declare function runReflection(options: ReflectOptions): Promise<ReflectResult>;
|
|
|
597
625
|
declare const VERSION: string;
|
|
598
626
|
declare function registerCommanderCommands(program: Command): Command;
|
|
599
627
|
|
|
600
|
-
export { type ArchiveObservationsOptions, type ArchiveObservationsResult, Category, ClawVault, Compressor, type CompressorOptions, Document, HandoffDocument, MEMORY_GRAPH_SCHEMA_VERSION, type MemoryGraph, type MemoryGraphEdge, type MemoryGraphEdgeType, type MemoryGraphIndex, type MemoryGraphNode, type MemoryGraphNodeType, type MemoryGraphStats, MemoryType, Observer, type ObserverCompressor, type ObserverOptions, type ObserverReflector, QMD_INSTALL_COMMAND, QMD_INSTALL_URL, QmdUnavailableError, type ReflectOptions, type ReflectResult, Reflector, type ReflectorOptions, SearchEngine, SearchOptions, SearchResult, SessionRecap, SessionWatcher, type SessionWatcherOptions, StoreOptions, SyncOptions, SyncResult, type TransitionEvent, VERSION, VaultConfig, appendTransition, archiveObservations, buildOrUpdateMemoryGraphIndex, buildTransitionEvent, countBlockedTransitions, createVault, extractTags, extractWikiLinks, findVault, formatTransitionsTable, getMemoryGraph, hasQmd, isRegression, loadMemoryGraphIndex, parseSessionFile, qmdEmbed, qmdUpdate, queryTransitions, readAllTransitions, registerCommanderCommands, runReflection };
|
|
628
|
+
export { type ArchiveObservationsOptions, type ArchiveObservationsResult, Category, ClawVault, Compressor, type CompressorOptions, type ContextProfile as ConfigDefaultProfile, Document, HandoffDocument, MEMORY_GRAPH_SCHEMA_VERSION, type ManagedConfigKey, type MemoryGraph, type MemoryGraphEdge, type MemoryGraphEdgeType, type MemoryGraphIndex, type MemoryGraphNode, type MemoryGraphNodeType, type MemoryGraphStats, MemoryType, type ObserveProvider, Observer, type ObserverCompressor, type ObserverOptions, type ObserverReflector, QMD_INSTALL_COMMAND, QMD_INSTALL_URL, QmdUnavailableError, type ReflectOptions, type ReflectResult, Reflector, type ReflectorOptions, type RouteRule, SUPPORTED_CONFIG_KEYS, SearchEngine, SearchOptions, SearchResult, SessionRecap, SessionWatcher, type SessionWatcherOptions, StoreOptions, SyncOptions, SyncResult, type Theme, type TransitionEvent, VERSION, VaultConfig, addRouteRule, appendTransition, archiveObservations, buildOrUpdateMemoryGraphIndex, buildTransitionEvent, countBlockedTransitions, createVault, extractTags, extractWikiLinks, findVault, formatTransitionsTable, getConfigValue, getMemoryGraph, hasQmd, isRegression, listConfig, listRouteRules, loadMemoryGraphIndex, matchRouteRule, parseSessionFile, qmdEmbed, qmdUpdate, queryTransitions, readAllTransitions, registerCommanderCommands, removeRouteRule, resetConfig, runReflection, setConfigValue, testRouteRule };
|