@veewo/claw-core 0.1.94 → 0.1.95

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.
@@ -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;
@@ -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 = path.join(project.tasksDir, resolvedTaskName);
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),
@@ -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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"}
@@ -1,4 +1,5 @@
1
1
  export * from "./context.js";
2
+ export * from "./daily-maintenance.js";
2
3
  export * from "./completion-hooks.js";
3
4
  export * from "./errors.js";
4
5
  export * from "./init.js";
package/dist/src/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from "./context.js";
2
+ export * from "./daily-maintenance.js";
2
3
  export * from "./completion-hooks.js";
3
4
  export * from "./errors.js";
4
5
  export * from "./init.js";
@@ -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 taskLayoutMarkerPath = markTaskLayoutMigrationComplete(clawDir);
72
- createdPaths.push(taskLayoutMarkerPath);
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);
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
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
- return path.join(project.clawDir, "runtime", "knowledge-finalization", "jobs", `${finalizeId}.json`);
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
- jobPath = knowledgeFinalizationJobPath(input.project, finalizeId);
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: resolveProjectRelativePlanPath(input.project, registry.pendingTurnOwner.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 jobsDir = path.join(project.clawDir, "runtime", "knowledge-finalization", "jobs");
197
- if (!fs.existsSync(jobsDir)) {
198
- return [];
199
- }
200
- return fs.readdirSync(jobsDir)
201
- .filter((name) => name.endsWith(".json"))
202
- .map((name) => path.join(jobsDir, name))
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 };