@veewo/claw-core 0.1.94 → 0.1.96
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/dist/src/context.d.ts +8 -0
- package/dist/src/context.js +47 -5
- package/dist/src/context.js.map +1 -1
- package/dist/src/daily-maintenance.d.ts +18 -0
- package/dist/src/daily-maintenance.js +165 -0
- package/dist/src/daily-maintenance.js.map +1 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/init.js +4 -3
- package/dist/src/init.js.map +1 -1
- package/dist/src/knowledge-sidecar.d.ts +6 -1
- package/dist/src/knowledge-sidecar.js +74 -11
- package/dist/src/knowledge-sidecar.js.map +1 -1
- package/dist/src/plan.js +13 -3
- package/dist/src/plan.js.map +1 -1
- package/dist/src/project-check.js +1 -3
- package/dist/src/project-check.js.map +1 -1
- package/dist/src/session-bindings.d.ts +2 -0
- package/dist/src/session-bindings.js +16 -0
- package/dist/src/session-bindings.js.map +1 -1
- package/dist/src/session-workflows.d.ts +1 -0
- package/dist/src/session-workflows.js +2 -2
- package/dist/src/session-workflows.js.map +1 -1
- package/dist/src/task-layout-migration.js +45 -13
- package/dist/src/task-layout-migration.js.map +1 -1
- package/dist/src/task-retention.d.ts +4 -1
- package/dist/src/task-retention.js +32 -31
- package/dist/src/task-retention.js.map +1 -1
- package/dist/src/templates/plans/default.js +1 -1
- package/dist/src/types.d.ts +2 -1
- package/dist/src/workflow-guidance.d.ts +6 -0
- package/dist/src/workflow-guidance.js +11 -2
- package/dist/src/workflow-guidance.js.map +1 -1
- package/package.json +1 -1
package/dist/src/context.d.ts
CHANGED
|
@@ -3,5 +3,13 @@ export declare function resolveProjectContext(cwd: string): ProjectContext;
|
|
|
3
3
|
export declare function resolveTaskContext(project: ProjectContext, taskName: string, ownerSessionKey?: string): TaskContext;
|
|
4
4
|
export declare function resolveContext(cwd: string, taskName?: string): ResolvedContext;
|
|
5
5
|
export declare function ensureTaskContext(project: ProjectContext, taskName: string): TaskContext;
|
|
6
|
+
/** Returns legacy flat task paths first, then date-grouped task paths. */
|
|
7
|
+
export declare function findTaskDirectory(project: ProjectContext, taskName: string): string | null;
|
|
8
|
+
/** Lists only task directories, supporting both legacy and YYYY-MM-DD layouts. */
|
|
9
|
+
export declare function listTaskDirectories(project: ProjectContext): Array<{
|
|
10
|
+
taskName: string;
|
|
11
|
+
taskDir: string;
|
|
12
|
+
relativePath: string;
|
|
13
|
+
}>;
|
|
6
14
|
export declare function removeLegacyTaskMeta(task: TaskContext): void;
|
|
7
15
|
export declare function resolveTaskName(taskName: string): string;
|
package/dist/src/context.js
CHANGED
|
@@ -29,13 +29,15 @@ export function resolveProjectContext(cwd) {
|
|
|
29
29
|
}
|
|
30
30
|
export function resolveTaskContext(project, taskName, ownerSessionKey) {
|
|
31
31
|
const resolvedTaskName = resolveTaskName(taskName);
|
|
32
|
-
const taskDir =
|
|
32
|
+
const taskDir = findTaskDirectory(project, resolvedTaskName);
|
|
33
|
+
if (!taskDir) {
|
|
34
|
+
throw new ClawError("TASK_NOT_FOUND", `Task "${resolvedTaskName}" does not exist.`, { taskName: resolvedTaskName });
|
|
35
|
+
}
|
|
33
36
|
const metaPath = path.join(taskDir, "meta.json");
|
|
34
37
|
const rootPlanPath = path.join(taskDir, "plan.json");
|
|
35
38
|
const legacyMeta = fs.existsSync(metaPath) ? readJsonFile(metaPath) : undefined;
|
|
36
|
-
if (!fs.existsSync(rootPlanPath) && !legacyMeta)
|
|
39
|
+
if (!fs.existsSync(rootPlanPath) && !legacyMeta)
|
|
37
40
|
throw new ClawError("TASK_NOT_FOUND", `Task "${resolvedTaskName}" does not exist.`, { taskName: resolvedTaskName });
|
|
38
|
-
}
|
|
39
41
|
const boundPlanPath = resolveSessionBoundPlan(project, ownerSessionKey);
|
|
40
42
|
const boundPlanInsideTask = boundPlanPath ? path.relative(taskDir, boundPlanPath) : undefined;
|
|
41
43
|
const activePlan = normalizePlanFile(boundPlanInsideTask && !boundPlanInsideTask.startsWith("..") && !path.isAbsolute(boundPlanInsideTask)
|
|
@@ -74,7 +76,7 @@ export function resolveContext(cwd, taskName) {
|
|
|
74
76
|
}
|
|
75
77
|
export function ensureTaskContext(project, taskName) {
|
|
76
78
|
const resolvedTaskName = resolveTaskName(taskName);
|
|
77
|
-
const taskDir = path.join(project.tasksDir, resolvedTaskName);
|
|
79
|
+
const taskDir = findTaskDirectory(project, resolvedTaskName) ?? path.join(project.tasksDir, currentTaskDate(), resolvedTaskName);
|
|
78
80
|
const metaPath = path.join(taskDir, "meta.json");
|
|
79
81
|
fs.mkdirSync(taskDir, { recursive: true });
|
|
80
82
|
const legacyMeta = fs.existsSync(metaPath) ? readJsonFile(metaPath) : undefined;
|
|
@@ -88,6 +90,47 @@ export function ensureTaskContext(project, taskName) {
|
|
|
88
90
|
...(legacyMeta ? { legacyMetaPath: metaPath, legacyMeta } : {}),
|
|
89
91
|
};
|
|
90
92
|
}
|
|
93
|
+
/** Returns legacy flat task paths first, then date-grouped task paths. */
|
|
94
|
+
export function findTaskDirectory(project, taskName) {
|
|
95
|
+
const legacy = path.join(project.tasksDir, taskName);
|
|
96
|
+
if (fs.existsSync(legacy) && fs.statSync(legacy).isDirectory())
|
|
97
|
+
return legacy;
|
|
98
|
+
if (!fs.existsSync(project.tasksDir))
|
|
99
|
+
return null;
|
|
100
|
+
const matches = fs.readdirSync(project.tasksDir, { withFileTypes: true })
|
|
101
|
+
.filter((entry) => entry.isDirectory() && /^\d{4}-\d{2}-\d{2}$/.test(entry.name))
|
|
102
|
+
.map((entry) => path.join(project.tasksDir, entry.name, taskName))
|
|
103
|
+
.filter((candidate) => fs.existsSync(candidate) && fs.statSync(candidate).isDirectory());
|
|
104
|
+
if (matches.length === 0)
|
|
105
|
+
return null;
|
|
106
|
+
return matches.sort().at(-1) ?? null;
|
|
107
|
+
}
|
|
108
|
+
/** Lists only task directories, supporting both legacy and YYYY-MM-DD layouts. */
|
|
109
|
+
export function listTaskDirectories(project) {
|
|
110
|
+
if (!fs.existsSync(project.tasksDir))
|
|
111
|
+
return [];
|
|
112
|
+
const result = [];
|
|
113
|
+
for (const entry of fs.readdirSync(project.tasksDir, { withFileTypes: true })) {
|
|
114
|
+
if (!entry.isDirectory())
|
|
115
|
+
continue;
|
|
116
|
+
const root = path.join(project.tasksDir, entry.name);
|
|
117
|
+
if (!/^\d{4}-\d{2}-\d{2}$/.test(entry.name)) {
|
|
118
|
+
result.push({ taskName: entry.name, taskDir: root, relativePath: entry.name });
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
for (const child of fs.readdirSync(root, { withFileTypes: true })) {
|
|
122
|
+
if (child.isDirectory())
|
|
123
|
+
result.push({ taskName: child.name, taskDir: path.join(root, child.name), relativePath: path.join(entry.name, child.name) });
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
}
|
|
128
|
+
function currentTaskDate(now = new Date()) {
|
|
129
|
+
const year = now.getFullYear();
|
|
130
|
+
const month = String(now.getMonth() + 1).padStart(2, "0");
|
|
131
|
+
const day = String(now.getDate()).padStart(2, "0");
|
|
132
|
+
return `${year}-${month}-${day}`;
|
|
133
|
+
}
|
|
91
134
|
export function removeLegacyTaskMeta(task) {
|
|
92
135
|
if (task.legacyMetaPath && fs.existsSync(task.legacyMetaPath)) {
|
|
93
136
|
fs.unlinkSync(task.legacyMetaPath);
|
|
@@ -146,7 +189,6 @@ function normalizeProjectConfig(projectConfig) {
|
|
|
146
189
|
: DEFAULT_MAX_TASKS_TO_KEEP,
|
|
147
190
|
planning: projectConfig.planning !== false,
|
|
148
191
|
autoUpdate: projectConfig.autoUpdate === true,
|
|
149
|
-
autoCommitKnowledge: projectConfig.autoCommitKnowledge !== false,
|
|
150
192
|
goalMode: typeof projectConfig.goalMode === "boolean" ? projectConfig.goalMode : true,
|
|
151
193
|
knowledgeWriter: {
|
|
152
194
|
externalSkills: resolveExternalWriterSkills(legacyConfig),
|
package/dist/src/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ProjectContext } from "./types.js";
|
|
2
|
+
export type DailyMaintenanceResult = {
|
|
3
|
+
ran: boolean;
|
|
4
|
+
tmpCleared: boolean;
|
|
5
|
+
legacyTmpRemoved: boolean;
|
|
6
|
+
archivedTasks: number;
|
|
7
|
+
prunedArchivedTasks: number;
|
|
8
|
+
expiredSessionsRemoved: number;
|
|
9
|
+
staleBindingsRemoved: number;
|
|
10
|
+
legacyFinalizerJobsRemoved: number;
|
|
11
|
+
knowledgeSessionsRemoved: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function runDailyMaintenance(project: ProjectContext, options?: {
|
|
14
|
+
now?: Date;
|
|
15
|
+
env?: NodeJS.ProcessEnv;
|
|
16
|
+
excludeSessionKey?: string;
|
|
17
|
+
includeProject?: boolean;
|
|
18
|
+
}): DailyMaintenanceResult;
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { readJsonFile, withFileLock, writeJsonFile } from "./io.js";
|
|
4
|
+
import { listTaskDirectories } from "./context.js";
|
|
5
|
+
import { pruneStaleSessionBindings } from "./session-bindings.js";
|
|
6
|
+
import { pruneLegacyKnowledgeRuntime } from "./knowledge-sidecar.js";
|
|
7
|
+
import { sessionWorkflowBaseDir, sweepExpiredSessionWorkflows } from "./session-workflows.js";
|
|
8
|
+
import { enforceTaskRetention } from "./task-retention.js";
|
|
9
|
+
export function runDailyMaintenance(project, options = {}) {
|
|
10
|
+
const now = options.now ?? new Date();
|
|
11
|
+
const date = localDate(now);
|
|
12
|
+
const projectResult = options.includeProject === false ? { ran: false } : runOncePerDay(path.join(project.clawDir, "runtime", "maintenance.json"), date, () => {
|
|
13
|
+
const runtimeTmp = path.join(project.clawDir, "runtime", "tmp");
|
|
14
|
+
const legacyTmp = path.join(project.clawDir, "tmp");
|
|
15
|
+
clearDirectory(runtimeTmp);
|
|
16
|
+
const legacyTmpRemoved = removeDirectory(legacyTmp);
|
|
17
|
+
const cutoffDate = previousLocalDate(now);
|
|
18
|
+
const archivedDatedTasks = archiveDatedTaskDirectoriesBefore(project, cutoffDate);
|
|
19
|
+
const archivedLegacyTasks = archiveLegacyTaskDirectoriesBefore(project, cutoffDate);
|
|
20
|
+
const retention = enforceTaskRetention(project, undefined, now.getTime(), { includeDatedTasks: false, includeLegacyTasks: false });
|
|
21
|
+
const staleBindingsRemoved = pruneStaleSessionBindings(project).length;
|
|
22
|
+
const legacyRuntime = pruneLegacyKnowledgeRuntime(project);
|
|
23
|
+
return {
|
|
24
|
+
tmpCleared: true,
|
|
25
|
+
legacyTmpRemoved,
|
|
26
|
+
archivedTasks: archivedDatedTasks + archivedLegacyTasks + retention.archivedTasks.length,
|
|
27
|
+
prunedArchivedTasks: retention.prunedArchivedTasks.length,
|
|
28
|
+
staleBindingsRemoved,
|
|
29
|
+
legacyFinalizerJobsRemoved: legacyRuntime.jobsRemoved,
|
|
30
|
+
knowledgeSessionsRemoved: legacyRuntime.sessionsRemoved,
|
|
31
|
+
};
|
|
32
|
+
});
|
|
33
|
+
const sessionBase = sessionWorkflowBaseDir(options.env);
|
|
34
|
+
const sessionResult = runOncePerDay(path.join(sessionBase, ".maintenance.json"), date, () => ({
|
|
35
|
+
expiredSessionsRemoved: sweepExpiredSessionWorkflows({
|
|
36
|
+
now: now.getTime(),
|
|
37
|
+
excludeSessionKey: options.excludeSessionKey,
|
|
38
|
+
env: options.env,
|
|
39
|
+
}).length,
|
|
40
|
+
}));
|
|
41
|
+
return {
|
|
42
|
+
ran: projectResult.ran || sessionResult.ran,
|
|
43
|
+
tmpCleared: projectResult.value?.tmpCleared ?? false,
|
|
44
|
+
legacyTmpRemoved: projectResult.value?.legacyTmpRemoved ?? false,
|
|
45
|
+
archivedTasks: projectResult.value?.archivedTasks ?? 0,
|
|
46
|
+
prunedArchivedTasks: projectResult.value?.prunedArchivedTasks ?? 0,
|
|
47
|
+
expiredSessionsRemoved: sessionResult.value?.expiredSessionsRemoved ?? 0,
|
|
48
|
+
staleBindingsRemoved: projectResult.value?.staleBindingsRemoved ?? 0,
|
|
49
|
+
legacyFinalizerJobsRemoved: projectResult.value?.legacyFinalizerJobsRemoved ?? 0,
|
|
50
|
+
knowledgeSessionsRemoved: projectResult.value?.knowledgeSessionsRemoved ?? 0,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function runOncePerDay(stampPath, date, action) {
|
|
54
|
+
return withFileLock(stampPath, () => {
|
|
55
|
+
const stamp = readStamp(stampPath);
|
|
56
|
+
if (stamp?.lastRunDate === date)
|
|
57
|
+
return { ran: false };
|
|
58
|
+
const value = action();
|
|
59
|
+
writeJsonFile(stampPath, { ...stamp, lastRunDate: date });
|
|
60
|
+
return { ran: true, value };
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function readStamp(stampPath) {
|
|
64
|
+
try {
|
|
65
|
+
const value = readJsonFile(stampPath);
|
|
66
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function clearDirectory(directory) {
|
|
73
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
74
|
+
for (const child of fs.readdirSync(directory))
|
|
75
|
+
fs.rmSync(path.join(directory, child), { recursive: true, force: true });
|
|
76
|
+
}
|
|
77
|
+
function removeDirectory(directory) {
|
|
78
|
+
if (!fs.existsSync(directory))
|
|
79
|
+
return false;
|
|
80
|
+
fs.rmSync(directory, { recursive: true, force: true });
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
function localDate(now) {
|
|
84
|
+
return `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
|
|
85
|
+
}
|
|
86
|
+
function previousLocalDate(now) {
|
|
87
|
+
const previous = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);
|
|
88
|
+
return localDate(previous);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Archive date-scoped task directories before the supplied local date. Moving the
|
|
92
|
+
* date directory (rather than marking individual plans) also handles older tasks
|
|
93
|
+
* that predate completedAt and leaves no empty date directories behind.
|
|
94
|
+
*/
|
|
95
|
+
function archiveDatedTaskDirectoriesBefore(project, cutoffDate) {
|
|
96
|
+
if (!fs.existsSync(project.tasksDir))
|
|
97
|
+
return 0;
|
|
98
|
+
const archiveRoot = path.join(project.clawDir, "archive", "tasks");
|
|
99
|
+
let archivedTaskCount = 0;
|
|
100
|
+
for (const entry of fs.readdirSync(project.tasksDir, { withFileTypes: true })) {
|
|
101
|
+
if (!entry.isDirectory() || !/^\d{4}-\d{2}-\d{2}$/.test(entry.name) || entry.name >= cutoffDate)
|
|
102
|
+
continue;
|
|
103
|
+
const sourceDateDir = path.join(project.tasksDir, entry.name);
|
|
104
|
+
const taskCount = fs.readdirSync(sourceDateDir, { withFileTypes: true }).filter((child) => child.isDirectory()).length;
|
|
105
|
+
moveDateDirectory(sourceDateDir, path.join(archiveRoot, entry.name));
|
|
106
|
+
archivedTaskCount += taskCount;
|
|
107
|
+
}
|
|
108
|
+
return archivedTaskCount;
|
|
109
|
+
}
|
|
110
|
+
function moveDateDirectory(sourceDateDir, targetDateDir) {
|
|
111
|
+
fs.mkdirSync(path.dirname(targetDateDir), { recursive: true });
|
|
112
|
+
if (!fs.existsSync(targetDateDir)) {
|
|
113
|
+
fs.renameSync(sourceDateDir, targetDateDir);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
for (const child of fs.readdirSync(sourceDateDir, { withFileTypes: true })) {
|
|
117
|
+
const source = path.join(sourceDateDir, child.name);
|
|
118
|
+
let target = path.join(targetDateDir, child.name);
|
|
119
|
+
let suffix = 1;
|
|
120
|
+
while (fs.existsSync(target)) {
|
|
121
|
+
target = path.join(targetDateDir, `${child.name}--${suffix}`);
|
|
122
|
+
suffix += 1;
|
|
123
|
+
}
|
|
124
|
+
fs.renameSync(source, target);
|
|
125
|
+
}
|
|
126
|
+
fs.rmdirSync(sourceDateDir);
|
|
127
|
+
}
|
|
128
|
+
function archiveLegacyTaskDirectoriesBefore(project, cutoffDate) {
|
|
129
|
+
const archiveRoot = path.join(project.clawDir, "archive", "tasks");
|
|
130
|
+
let archivedTaskCount = 0;
|
|
131
|
+
for (const task of listTaskDirectories(project)) {
|
|
132
|
+
if (/^\d{4}-\d{2}-\d{2}[\\/]/.test(task.relativePath))
|
|
133
|
+
continue;
|
|
134
|
+
const planPath = path.join(task.taskDir, "plan.json");
|
|
135
|
+
const updatedAt = readPlanUpdatedAt(planPath);
|
|
136
|
+
if (!updatedAt || localDate(new Date(updatedAt)) >= cutoffDate)
|
|
137
|
+
continue;
|
|
138
|
+
moveDirectoryWithCollision(task.taskDir, path.join(archiveRoot, task.relativePath));
|
|
139
|
+
archivedTaskCount += 1;
|
|
140
|
+
}
|
|
141
|
+
return archivedTaskCount;
|
|
142
|
+
}
|
|
143
|
+
function readPlanUpdatedAt(planPath) {
|
|
144
|
+
if (!fs.existsSync(planPath))
|
|
145
|
+
return null;
|
|
146
|
+
try {
|
|
147
|
+
const plan = readJsonFile(planPath);
|
|
148
|
+
const timestamp = typeof plan.updatedAt === "string" ? Date.parse(plan.updatedAt) : Number.NaN;
|
|
149
|
+
return Number.isFinite(timestamp) ? timestamp : fs.statSync(planPath).mtimeMs;
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
return fs.statSync(planPath).mtimeMs;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function moveDirectoryWithCollision(sourceDir, targetDir) {
|
|
156
|
+
fs.mkdirSync(path.dirname(targetDir), { recursive: true });
|
|
157
|
+
let target = targetDir;
|
|
158
|
+
let suffix = 1;
|
|
159
|
+
while (fs.existsSync(target)) {
|
|
160
|
+
target = `${targetDir}--${suffix}`;
|
|
161
|
+
suffix += 1;
|
|
162
|
+
}
|
|
163
|
+
fs.renameSync(sourceDir, target);
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=daily-maintenance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daily-maintenance.js","sourceRoot":"","sources":["../../src/daily-maintenance.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.js
CHANGED
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC"}
|
package/dist/src/init.js
CHANGED
|
@@ -23,6 +23,7 @@ export function initProject(input) {
|
|
|
23
23
|
const memoryPath = path.join(clawDir, "memory.md");
|
|
24
24
|
const truthDir = path.join(clawDir, "truth");
|
|
25
25
|
const tasksDir = path.join(clawDir, "tasks");
|
|
26
|
+
const runtimeTmpDir = path.join(clawDir, "runtime", "tmp");
|
|
26
27
|
const knowledgeDir = path.join(clawDir, ".knowledge");
|
|
27
28
|
const createdPaths = [];
|
|
28
29
|
const exists = fs.existsSync(clawDir);
|
|
@@ -43,7 +44,6 @@ export function initProject(input) {
|
|
|
43
44
|
maxTasksToKeep,
|
|
44
45
|
planning: input.planning ?? true,
|
|
45
46
|
autoUpdate: true,
|
|
46
|
-
autoCommitKnowledge: true,
|
|
47
47
|
goalMode: true,
|
|
48
48
|
knowledgeWriter: {
|
|
49
49
|
externalSkills: externalWriterSkill ? [externalWriterSkill] : [],
|
|
@@ -67,9 +67,10 @@ export function initProject(input) {
|
|
|
67
67
|
ensureDir(clawDir, createdPaths);
|
|
68
68
|
ensureDir(truthDir, createdPaths);
|
|
69
69
|
ensureDir(tasksDir, createdPaths);
|
|
70
|
+
ensureDir(runtimeTmpDir, createdPaths);
|
|
70
71
|
ensureDir(knowledgeDir, createdPaths);
|
|
71
|
-
const
|
|
72
|
-
createdPaths.push(
|
|
72
|
+
const taskLayoutMaintenancePath = markTaskLayoutMigrationComplete(clawDir);
|
|
73
|
+
createdPaths.push(taskLayoutMaintenancePath);
|
|
73
74
|
writeFile(projectJsonPath, `${JSON.stringify(projectConfig, null, 2)}\n`, createdPaths);
|
|
74
75
|
writeFile(memoryPath, `# Project Memory\n\n- Project initialized for claw-kit.\n- Use \`claw plan create\` to establish the first task scope.\n`, createdPaths);
|
|
75
76
|
ensureClawGitignoreRules(gitignorePath, createdPaths);
|
package/dist/src/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,wCAAwC,EACxC,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,+BAA+B,EAAE,MAAM,4BAA4B,CAAC;AAG7E,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;AA2BvC,MAAM,oBAAoB,GAAG;IAC3B,YAAY;IACZ,SAAS;IACT,qBAAqB;IACrB,eAAe;IACf,iBAAiB;IACjB,6BAA6B;CAC9B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,SAAS,CAAC,6BAA6B,EAAE,qCAAqC,OAAO,GAAG,EAAE;YAClG,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC,SAAS,IAAI,WAAW,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,yBAAyB,CAAC;IACzE,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC9E,sBAAsB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACpD,MAAM,aAAa,GAAkB;QACnC,OAAO,EAAE,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,WAAW;QACjB,cAAc;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAChC,UAAU,EAAE,IAAI;QAChB,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,7 +96,7 @@ export type KnowledgeStopResult = KnowledgeSidecarResult & {
|
|
|
96
96
|
};
|
|
97
97
|
export declare function deriveKnowledgeReportPath(planPath: string): string;
|
|
98
98
|
export declare function knowledgeSessionRegistryPath(project: ProjectContext, sessionId: string): string;
|
|
99
|
-
export declare function knowledgeFinalizationJobPath(project: ProjectContext, finalizeId: string): string;
|
|
99
|
+
export declare function knowledgeFinalizationJobPath(project: ProjectContext, taskName: string, finalizeId: string): string;
|
|
100
100
|
export declare function tryRegisterKnowledgePlan(input: {
|
|
101
101
|
project: ProjectContext;
|
|
102
102
|
sessionId?: string;
|
|
@@ -128,6 +128,11 @@ export declare function tryCaptureKnowledgeStop(input: {
|
|
|
128
128
|
export declare function readKnowledgeFinalizationJob(jobPath: string): KnowledgeFinalizationJob;
|
|
129
129
|
export declare function claimKnowledgeFinalizationJob(jobPath: string): KnowledgeFinalizationJob | null;
|
|
130
130
|
export declare function listRetryableKnowledgeFinalizationJobs(project: ProjectContext): string[];
|
|
131
|
+
/** Remove obsolete legacy runtime records left by releases before task-local jobs. */
|
|
132
|
+
export declare function pruneLegacyKnowledgeRuntime(project: ProjectContext): {
|
|
133
|
+
jobsRemoved: number;
|
|
134
|
+
sessionsRemoved: number;
|
|
135
|
+
};
|
|
131
136
|
export declare function normalizeTruthMarkdownEncoding(project: ProjectContext): {
|
|
132
137
|
checkedFiles: number;
|
|
133
138
|
updatedFiles: number;
|
|
@@ -3,6 +3,7 @@ import fs from "node:fs";
|
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { readJsonFile, withFileLock, writeJsonFile } from "./io.js";
|
|
5
5
|
import { ensureInsideDir } from "./paths.js";
|
|
6
|
+
import { listTaskDirectories } from "./context.js";
|
|
6
7
|
import { ensureUtf8Bom, hasUtf8BomPrefix } from "./text-encoding.js";
|
|
7
8
|
export function deriveKnowledgeReportPath(planPath) {
|
|
8
9
|
return planPath.replace(/\.json$/i, ".report");
|
|
@@ -11,8 +12,11 @@ export function knowledgeSessionRegistryPath(project, sessionId) {
|
|
|
11
12
|
const key = createHash("sha256").update(sessionId).digest("hex");
|
|
12
13
|
return path.join(project.clawDir, "runtime", "knowledge-sessions", `${key}.json`);
|
|
13
14
|
}
|
|
14
|
-
export function knowledgeFinalizationJobPath(project, finalizeId) {
|
|
15
|
-
|
|
15
|
+
export function knowledgeFinalizationJobPath(project, taskName, finalizeId) {
|
|
16
|
+
const task = listTaskDirectories(project).find((candidate) => candidate.taskName === taskName);
|
|
17
|
+
if (!task)
|
|
18
|
+
throw new Error(`Knowledge finalization task does not exist: ${taskName}`);
|
|
19
|
+
return path.join(task.taskDir, ".runtime", "knowledge-finalization", `${finalizeId}.json`);
|
|
16
20
|
}
|
|
17
21
|
export function tryRegisterKnowledgePlan(input) {
|
|
18
22
|
const sessionId = input.sessionId?.trim();
|
|
@@ -124,7 +128,8 @@ export function tryCaptureKnowledgeStop(input) {
|
|
|
124
128
|
finalizeId = createHash("sha256")
|
|
125
129
|
.update(`${sessionId}\n${registry.pendingTurnOwner.planPath}\n${registry.pendingTurnOwner.endedAt ?? registry.pendingTurnOwner.completedAt ?? ""}`)
|
|
126
130
|
.digest("hex");
|
|
127
|
-
|
|
131
|
+
const planPath = resolveProjectRelativePlanPath(input.project, registry.pendingTurnOwner.planPath);
|
|
132
|
+
jobPath = knowledgeFinalizationJobPathForPlan(input.project, planPath, finalizeId);
|
|
128
133
|
if (!fs.existsSync(jobPath)) {
|
|
129
134
|
const job = {
|
|
130
135
|
schemaVersion: 1,
|
|
@@ -139,7 +144,7 @@ export function tryCaptureKnowledgeStop(input) {
|
|
|
139
144
|
datedSectionsToKeep: input.project.projectConfig?.knowledgeWriter?.datedSectionsToKeep ?? 6,
|
|
140
145
|
},
|
|
141
146
|
host: input.host ?? null,
|
|
142
|
-
planPath
|
|
147
|
+
planPath,
|
|
143
148
|
reportPath,
|
|
144
149
|
status: "queued",
|
|
145
150
|
attempts: 0,
|
|
@@ -193,13 +198,13 @@ export function claimKnowledgeFinalizationJob(jobPath) {
|
|
|
193
198
|
});
|
|
194
199
|
}
|
|
195
200
|
export function listRetryableKnowledgeFinalizationJobs(project) {
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
201
|
+
const taskJobs = listTaskDirectories(project)
|
|
202
|
+
.flatMap((task) => listKnowledgeJobs(path.join(task.taskDir, ".runtime", "knowledge-finalization")));
|
|
203
|
+
const archivedTaskJobs = listTaskDirectories({ tasksDir: path.join(project.clawDir, "archive", "tasks") })
|
|
204
|
+
.flatMap((task) => listKnowledgeJobs(path.join(task.taskDir, ".runtime", "knowledge-finalization")));
|
|
205
|
+
// Read legacy central jobs so an upgrade does not strand retryable work. New jobs are never written there.
|
|
206
|
+
const legacyJobs = listKnowledgeJobs(path.join(project.clawDir, "runtime", "knowledge-finalization", "jobs"));
|
|
207
|
+
return [...taskJobs, ...archivedTaskJobs, ...legacyJobs]
|
|
203
208
|
.filter((jobPath) => {
|
|
204
209
|
try {
|
|
205
210
|
const job = readKnowledgeFinalizationJob(jobPath);
|
|
@@ -210,6 +215,64 @@ export function listRetryableKnowledgeFinalizationJobs(project) {
|
|
|
210
215
|
}
|
|
211
216
|
});
|
|
212
217
|
}
|
|
218
|
+
/** Remove obsolete legacy runtime records left by releases before task-local jobs. */
|
|
219
|
+
export function pruneLegacyKnowledgeRuntime(project) {
|
|
220
|
+
const legacyJobsDir = path.join(project.clawDir, "runtime", "knowledge-finalization", "jobs");
|
|
221
|
+
let jobsRemoved = 0;
|
|
222
|
+
for (const jobPath of listKnowledgeJobs(legacyJobsDir)) {
|
|
223
|
+
try {
|
|
224
|
+
const job = readKnowledgeFinalizationJob(jobPath);
|
|
225
|
+
if (job.status === "succeeded" || !isActiveProjectPlanPath(project, job.planPath)) {
|
|
226
|
+
fs.unlinkSync(jobPath);
|
|
227
|
+
jobsRemoved += 1;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
fs.unlinkSync(jobPath);
|
|
232
|
+
jobsRemoved += 1;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
const sessionsDir = path.join(project.clawDir, "runtime", "knowledge-sessions");
|
|
236
|
+
let sessionsRemoved = 0;
|
|
237
|
+
if (fs.existsSync(sessionsDir)) {
|
|
238
|
+
for (const entry of fs.readdirSync(sessionsDir, { withFileTypes: true })) {
|
|
239
|
+
if (!entry.isFile() || !entry.name.endsWith(".json"))
|
|
240
|
+
continue;
|
|
241
|
+
const sessionPath = path.join(sessionsDir, entry.name);
|
|
242
|
+
try {
|
|
243
|
+
const registry = readJsonFile(sessionPath);
|
|
244
|
+
if (!registry.activePlanPath || !isActiveProjectPlanPath(project, registry.activePlanPath)) {
|
|
245
|
+
fs.unlinkSync(sessionPath);
|
|
246
|
+
sessionsRemoved += 1;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
catch {
|
|
250
|
+
fs.unlinkSync(sessionPath);
|
|
251
|
+
sessionsRemoved += 1;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return { jobsRemoved, sessionsRemoved };
|
|
256
|
+
}
|
|
257
|
+
function isActiveProjectPlanPath(project, planPath) {
|
|
258
|
+
const candidate = path.isAbsolute(planPath) ? path.resolve(planPath) : path.resolve(project.clawDir, planPath);
|
|
259
|
+
return candidate.startsWith(`${path.resolve(project.tasksDir)}${path.sep}`) && fs.existsSync(candidate);
|
|
260
|
+
}
|
|
261
|
+
function listKnowledgeJobs(directory) {
|
|
262
|
+
if (!fs.existsSync(directory))
|
|
263
|
+
return [];
|
|
264
|
+
return fs.readdirSync(directory)
|
|
265
|
+
.filter((name) => name.endsWith(".json"))
|
|
266
|
+
.map((name) => path.join(directory, name));
|
|
267
|
+
}
|
|
268
|
+
function knowledgeFinalizationJobPathForPlan(project, planPath, finalizeId) {
|
|
269
|
+
const relative = path.relative(project.tasksDir, planPath);
|
|
270
|
+
const segments = relative.split(path.sep).filter(Boolean);
|
|
271
|
+
const taskSegments = /^\d{4}-\d{2}-\d{2}$/.test(segments[0] ?? "") ? segments.slice(0, 2) : segments.slice(0, 1);
|
|
272
|
+
if (taskSegments.length === 0 || taskSegments.some((segment) => !segment))
|
|
273
|
+
throw new Error(`Invalid knowledge plan path: ${planPath}`);
|
|
274
|
+
return path.join(project.tasksDir, ...taskSegments, ".runtime", "knowledge-finalization", `${finalizeId}.json`);
|
|
275
|
+
}
|
|
213
276
|
export function normalizeTruthMarkdownEncoding(project) {
|
|
214
277
|
if (!fs.existsSync(project.truthDir)) {
|
|
215
278
|
return { checkedFiles: 0, updatedFiles: 0 };
|