@veewo/claw-core 0.1.99 → 0.2.3

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.
Files changed (51) hide show
  1. package/README.md +16 -16
  2. package/dist/src/context.js +4 -0
  3. package/dist/src/context.js.map +1 -1
  4. package/dist/src/daily-maintenance.d.ts +4 -0
  5. package/dist/src/daily-maintenance.js +93 -85
  6. package/dist/src/daily-maintenance.js.map +1 -1
  7. package/dist/src/index.d.ts +2 -0
  8. package/dist/src/index.js +2 -0
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/init.js +1 -0
  11. package/dist/src/init.js.map +1 -1
  12. package/dist/src/knowledge-assignments.d.ts +30 -0
  13. package/dist/src/knowledge-assignments.js +128 -0
  14. package/dist/src/knowledge-assignments.js.map +1 -0
  15. package/dist/src/knowledge-sidecar.d.ts +42 -2
  16. package/dist/src/knowledge-sidecar.js +111 -15
  17. package/dist/src/knowledge-sidecar.js.map +1 -1
  18. package/dist/src/plan-templates.js +6 -2
  19. package/dist/src/plan-templates.js.map +1 -1
  20. package/dist/src/plan.js +6 -1
  21. package/dist/src/plan.js.map +1 -1
  22. package/dist/src/project-check.js +15 -0
  23. package/dist/src/project-check.js.map +1 -1
  24. package/dist/src/resources/delegate-writer/TEMPLATE.json +57 -0
  25. package/dist/src/resources/knowledge-writer/CONTENT-COVERAGE.md +30 -0
  26. package/dist/src/resources/knowledge-writer/SKILL.md +9 -0
  27. package/dist/src/resources/knowledge-writer/TEMPLATE.json +178 -0
  28. package/dist/src/resources/knowledge-writer/agents/openai.yaml +4 -0
  29. package/dist/src/resources/knowledge-writer/knowledge-format.md +47 -0
  30. package/dist/src/resources/knowledge-writer/non-claw-fallback.md +53 -0
  31. package/dist/src/session-bindings.d.ts +2 -1
  32. package/dist/src/session-bindings.js +22 -1
  33. package/dist/src/session-bindings.js.map +1 -1
  34. package/dist/src/task-lifecycle.d.ts +13 -0
  35. package/dist/src/task-lifecycle.js +142 -0
  36. package/dist/src/task-lifecycle.js.map +1 -0
  37. package/dist/src/templates/plans/default.js +1 -1
  38. package/dist/src/templates/plans/default.js.map +1 -1
  39. package/dist/src/types.d.ts +3 -0
  40. package/dist/src/workflow-guidance.codex.config.json +363 -0
  41. package/dist/src/workflow-guidance.config.json +363 -363
  42. package/dist/src/workflow-guidance.js +3 -1
  43. package/dist/src/workflow-guidance.js.map +1 -1
  44. package/dist/src/workflow-guidance.qoder.config.json +362 -0
  45. package/package.json +48 -48
  46. package/dist/src/embedding-config.d.ts +0 -9
  47. package/dist/src/embedding-config.js +0 -21
  48. package/dist/src/embedding-config.js.map +0 -1
  49. package/dist/src/project-config-defaults.d.ts +0 -6
  50. package/dist/src/project-config-defaults.js +0 -5
  51. package/dist/src/project-config-defaults.js.map +0 -1
@@ -0,0 +1,128 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ export function knowledgeDelegateTemplatePath() {
5
+ return path.join(path.dirname(fileURLToPath(import.meta.url)), "resources", "delegate-writer", "TEMPLATE.json");
6
+ }
7
+ export function buildKnowledgeDelegateDispatch(input) {
8
+ const templatePath = knowledgeDelegateTemplatePath();
9
+ const delegateTitle = `knowledge-finalizer-${input.finalizeId.slice(0, 12)}`;
10
+ return {
11
+ schemaVersion: 1,
12
+ policy: input.policy,
13
+ finalizeId: input.finalizeId,
14
+ ...(input.writer?.model ? { model: input.writer.model } : {}),
15
+ ...(input.writer?.reasoningEffort ? { reasoningEffort: input.writer.reasoningEffort } : {}),
16
+ prompt: [
17
+ "Execute this claw knowledge-finalization job directly and unattended.",
18
+ `First run: claw plan create --template-file "${templatePath}" --title "${delegateTitle}"`,
19
+ "Then follow the returned workflowGuidance until the internal session plan is complete.",
20
+ `Finalization id: ${input.finalizeId}`,
21
+ "Do not invoke a user-facing delegate skill, background finalizer, writer proxy, or collaboration subagent.",
22
+ ].join("\n"),
23
+ };
24
+ }
25
+ export function buildKnowledgeWriterAssignments(job) {
26
+ const configured = job.writer?.externalSkills?.map((skill) => skill.trim()).filter(Boolean) ?? [];
27
+ if (configured.length === 0) {
28
+ return [{
29
+ index: 0,
30
+ kind: "builtin",
31
+ promptVersion: 1,
32
+ prompt: buildBuiltinKnowledgePrompt(job),
33
+ }];
34
+ }
35
+ return configured.map((skill, index) => ({
36
+ index,
37
+ kind: "external_skill",
38
+ skill,
39
+ promptVersion: 1,
40
+ prompt: buildExternalSkillPrompt(job, skill),
41
+ }));
42
+ }
43
+ export function buildKnowledgeAssignmentTemplate(input) {
44
+ if (input.assignments.length === 1 && input.assignments[0]?.kind === "builtin") {
45
+ return buildBuiltinKnowledgeTemplate(input);
46
+ }
47
+ return {
48
+ id: `knowledge-assignments-${input.finalizeId.slice(0, 12)}`,
49
+ version: input.version,
50
+ scope: "session",
51
+ title: "knowledge-writer assignments",
52
+ status: "process.active",
53
+ goal: {
54
+ text: "Execute every claimed knowledge-writer assignment sequentially.",
55
+ },
56
+ requirements: {
57
+ summary: "Execute the immutable assignments returned by knowledge claim without interaction or delegation.",
58
+ openQuestions: [],
59
+ acceptanceCriteria: [
60
+ "Assignments run sequentially in their configured order.",
61
+ "Every assignment follows its supplied prompt exactly.",
62
+ "No assignment launches another finalizer or writer agent.",
63
+ ],
64
+ },
65
+ tasks: input.assignments.map((assignment) => ({
66
+ id: assignment.index + 1,
67
+ title: assignment.kind === "builtin"
68
+ ? "Execute built-in knowledge governance"
69
+ : `Execute ${assignment.skill}`,
70
+ detail: assignment.prompt,
71
+ status: "pending",
72
+ })),
73
+ references: [],
74
+ rules: [
75
+ "Run assignments sequentially; later assignments may depend on earlier documentation changes.",
76
+ "Do not invoke a background finalizer, collaboration subagent, or other writer proxy.",
77
+ ],
78
+ keyDecisions: [],
79
+ retrospective: {
80
+ summary: "",
81
+ },
82
+ };
83
+ }
84
+ function buildBuiltinKnowledgeTemplate(input) {
85
+ const contractRoot = path.join(path.dirname(fileURLToPath(import.meta.url)), "resources", "knowledge-writer");
86
+ const source = JSON.parse(fs.readFileSync(path.join(contractRoot, "TEMPLATE.json"), "utf-8"));
87
+ const template = structuredClone(source);
88
+ template.id = `knowledge-assignments-${input.finalizeId.slice(0, 12)}`;
89
+ template.version = input.version;
90
+ template.scope = "session";
91
+ template.title = "built-in knowledge governance";
92
+ template.status = "process.active";
93
+ const firstTask = template.tasks[0];
94
+ if (firstTask) {
95
+ firstTask.detail = `${input.assignments[0].prompt}\n\n${firstTask.detail ?? ""}`.trim();
96
+ }
97
+ template.references = (template.references ?? []).map((reference) => ({
98
+ ...reference,
99
+ path: path.join(contractRoot, path.basename(reference.path)),
100
+ }));
101
+ return template;
102
+ }
103
+ function buildBuiltinKnowledgePrompt(job) {
104
+ return [
105
+ "Execute the built-in knowledge-governance contract supplied by claw-kit.",
106
+ "Maintain canonical Truth first and ADR second from conclusion-bearing content in the supplied materials.",
107
+ `For every canonical document changed by this pass, keep at most ${job.writer?.datedSectionsToKeep ?? 6} complete evolution sections marked by \`<!-- dated: YYYY-MM-DD -->\`; do not truncate current prose or untouched documents.`,
108
+ commonMaterialPrompt(job),
109
+ ].join("\n");
110
+ }
111
+ function buildExternalSkillPrompt(job, skill) {
112
+ return [
113
+ `Invoke the ${skill} skill and apply it to the supplied materials.`,
114
+ "Run unattended and non-interactively. Do not ask questions, request confirmation or review, pause for user input, or wait for approval. If a change is ambiguous or unsafe, skip it and report the reason.",
115
+ commonMaterialPrompt(job),
116
+ ].join("\n");
117
+ }
118
+ function commonMaterialPrompt(job) {
119
+ return [
120
+ "Use task status to distinguish completed work from pending or blocked intent; never present requirements or intentions as completed results.",
121
+ "Materials:",
122
+ `- ${job.planPath}`,
123
+ `- ${job.reportPath}`,
124
+ `Finalization id: ${job.finalizeId}`,
125
+ "Interpret inputs by content regardless of filename or schema. Treat them as read-only and transient: do not modify, reference, or link to them in governed documentation. Do not delegate, reimplement completed work, or rerun tests.",
126
+ ].join("\n");
127
+ }
128
+ //# sourceMappingURL=knowledge-assignments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-assignments.js","sourceRoot":"","sources":["../../src/knowledge-assignments.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,17 @@ import type { KnowledgeWriterConfig, ProjectContext } from "./types.js";
3
3
  export type KnowledgeReportTarget = {
4
4
  planPath: string;
5
5
  reportPath: string;
6
+ finalizeId?: string;
7
+ writer?: KnowledgeWriterConfig;
6
8
  endedAt?: string;
7
9
  /** Legacy field retained for registries written before every end.* boundary was eligible. */
8
10
  completedAt?: string;
9
11
  };
10
- export type KnowledgeFinalizationHost = "codex" | "opencode";
12
+ /**
13
+ * The host which owns execution of a queued writer job. Core only persists
14
+ * the lifecycle; each adapter supplies its own runner.
15
+ */
16
+ export type KnowledgeFinalizationHost = "codex" | "opencode" | "cindy";
11
17
  export type KnowledgeSessionRegistry = {
12
18
  schemaVersion: 1;
13
19
  sessionId: string;
@@ -37,6 +43,9 @@ export type KnowledgeFinalizationJob = {
37
43
  queuedAt: string;
38
44
  startedAt?: string;
39
45
  finishedAt?: string;
46
+ /** Opaque ownership token issued by the exclusive claim operation. */
47
+ claimToken?: string;
48
+ claimedAt?: string;
40
49
  truthThreadId?: string;
41
50
  adrThreadId?: string;
42
51
  truthResponse?: string;
@@ -87,6 +96,9 @@ export type KnowledgeSidecarResult = {
87
96
  ok: boolean;
88
97
  error?: string;
89
98
  };
99
+ export type KnowledgePlanEndResult = KnowledgeSidecarResult & {
100
+ finalizeId?: string;
101
+ };
90
102
  export type KnowledgeStopResult = KnowledgeSidecarResult & {
91
103
  captured?: boolean;
92
104
  duplicate?: boolean;
@@ -97,6 +109,21 @@ export type KnowledgeStopResult = KnowledgeSidecarResult & {
97
109
  export declare function deriveKnowledgeReportPath(planPath: string): string;
98
110
  export declare function knowledgeSessionRegistryPath(project: ProjectContext, sessionId: string): string;
99
111
  export declare function knowledgeFinalizationJobPath(project: ProjectContext, taskName: string, finalizeId: string): string;
112
+ export declare function findKnowledgeFinalizationJobPath(project: ProjectContext, finalizeId: string): string | null;
113
+ export declare function waitForKnowledgeFinalizationJobReady(input: {
114
+ project: ProjectContext;
115
+ finalizeId: string;
116
+ timeoutMs?: number;
117
+ pollIntervalMs?: number;
118
+ }): {
119
+ jobPath: string;
120
+ job: KnowledgeFinalizationJob;
121
+ };
122
+ export declare function deriveKnowledgeFinalizeId(input: {
123
+ sessionId: string;
124
+ planPath: string;
125
+ endedAt: string;
126
+ }): string;
100
127
  export declare function tryRegisterKnowledgePlan(input: {
101
128
  project: ProjectContext;
102
129
  sessionId?: string;
@@ -108,7 +135,8 @@ export declare function tryEndKnowledgePlan(input: {
108
135
  endedPlanPath: string;
109
136
  resumedPlanPath?: string;
110
137
  endedAt: string;
111
- }): KnowledgeSidecarResult;
138
+ writer?: KnowledgeWriterConfig;
139
+ }): KnowledgePlanEndResult;
112
140
  /** @deprecated Use tryEndKnowledgePlan for lifecycle-neutral end.* finalization. */
113
141
  export declare function tryCompleteKnowledgePlan(input: {
114
142
  project: ProjectContext;
@@ -127,6 +155,18 @@ export declare function tryCaptureKnowledgeStop(input: {
127
155
  }): KnowledgeStopResult;
128
156
  export declare function readKnowledgeFinalizationJob(jobPath: string): KnowledgeFinalizationJob;
129
157
  export declare function claimKnowledgeFinalizationJob(jobPath: string): KnowledgeFinalizationJob | null;
158
+ export declare function doneKnowledgeFinalizationJob(input: {
159
+ jobPath: string;
160
+ claimToken: string;
161
+ status: "succeeded" | "failed";
162
+ result?: string;
163
+ error?: string;
164
+ finishedAt?: string;
165
+ patch?: Partial<KnowledgeFinalizationJob>;
166
+ }): {
167
+ job: KnowledgeFinalizationJob;
168
+ alreadyDone: boolean;
169
+ };
130
170
  export declare function listRetryableKnowledgeFinalizationJobs(project: ProjectContext): string[];
131
171
  /** Remove obsolete legacy runtime records left by releases before task-local jobs. */
132
172
  export declare function pruneLegacyKnowledgeRuntime(project: ProjectContext): {
@@ -1,4 +1,4 @@
1
- import { createHash } from "node:crypto";
1
+ import { createHash, randomUUID } from "node:crypto";
2
2
  import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { readJsonFile, withFileLock, writeJsonFile } from "./io.js";
@@ -18,6 +18,45 @@ export function knowledgeFinalizationJobPath(project, taskName, finalizeId) {
18
18
  throw new Error(`Knowledge finalization task does not exist: ${taskName}`);
19
19
  return path.join(task.taskDir, ".runtime", "knowledge-finalization", `${finalizeId}.json`);
20
20
  }
21
+ export function findKnowledgeFinalizationJobPath(project, finalizeId) {
22
+ const normalizedId = finalizeId.trim();
23
+ if (!/^[a-f0-9]{64}$/i.test(normalizedId)) {
24
+ throw new Error("Knowledge finalization id must be a 64-character hexadecimal value.");
25
+ }
26
+ for (const task of listTaskDirectories(project)) {
27
+ const candidate = path.join(task.taskDir, ".runtime", "knowledge-finalization", `${normalizedId}.json`);
28
+ if (fs.existsSync(candidate)) {
29
+ return candidate;
30
+ }
31
+ }
32
+ return null;
33
+ }
34
+ export function waitForKnowledgeFinalizationJobReady(input) {
35
+ const timeoutMs = input.timeoutMs ?? 300_000;
36
+ const pollIntervalMs = input.pollIntervalMs ?? 100;
37
+ if (!Number.isInteger(timeoutMs) || timeoutMs < 0) {
38
+ throw new Error("Knowledge finalization wait timeout must be a non-negative integer.");
39
+ }
40
+ const deadline = Date.now() + timeoutMs;
41
+ const signal = new Int32Array(new SharedArrayBuffer(4));
42
+ do {
43
+ const jobPath = findKnowledgeFinalizationJobPath(input.project, input.finalizeId);
44
+ if (jobPath) {
45
+ return { jobPath, job: readKnowledgeFinalizationJob(jobPath) };
46
+ }
47
+ const remaining = deadline - Date.now();
48
+ if (remaining <= 0) {
49
+ break;
50
+ }
51
+ Atomics.wait(signal, 0, 0, Math.min(pollIntervalMs, remaining));
52
+ } while (Date.now() <= deadline);
53
+ throw new Error(`Timed out waiting for knowledge finalization ${input.finalizeId}.`);
54
+ }
55
+ export function deriveKnowledgeFinalizeId(input) {
56
+ return createHash("sha256")
57
+ .update(`${input.sessionId}\n${input.planPath}\n${input.endedAt}`)
58
+ .digest("hex");
59
+ }
21
60
  export function tryRegisterKnowledgePlan(input) {
22
61
  const sessionId = input.sessionId?.trim();
23
62
  if (!sessionId) {
@@ -52,6 +91,11 @@ export function tryEndKnowledgePlan(input) {
52
91
  const resumedReportPath = input.resumedPlanPath
53
92
  ? toProjectRelativeReportPath(input.project, deriveKnowledgeReportPath(input.resumedPlanPath))
54
93
  : undefined;
94
+ const finalizeId = deriveKnowledgeFinalizeId({
95
+ sessionId,
96
+ planPath: endedPlanPath,
97
+ endedAt: input.endedAt,
98
+ });
55
99
  updateKnowledgeRegistry(input.project, sessionId, (registry) => ({
56
100
  ...registry,
57
101
  ...(resumedPlanPath
@@ -60,11 +104,13 @@ export function tryEndKnowledgePlan(input) {
60
104
  pendingTurnOwner: {
61
105
  planPath: endedPlanPath,
62
106
  reportPath,
107
+ finalizeId,
108
+ ...(input.writer ? { writer: input.writer } : {}),
63
109
  endedAt: input.endedAt,
64
110
  },
65
111
  updatedAt: new Date().toISOString(),
66
112
  }));
67
- return { ok: true };
113
+ return { ok: true, finalizeId };
68
114
  }
69
115
  catch (error) {
70
116
  return { ok: false, error: errorMessage(error) };
@@ -125,9 +171,11 @@ export function tryCaptureKnowledgeStop(input) {
125
171
  let jobPath;
126
172
  let finalizeId;
127
173
  if (registry.pendingTurnOwner) {
128
- finalizeId = createHash("sha256")
129
- .update(`${sessionId}\n${registry.pendingTurnOwner.planPath}\n${registry.pendingTurnOwner.endedAt ?? registry.pendingTurnOwner.completedAt ?? ""}`)
130
- .digest("hex");
174
+ finalizeId = registry.pendingTurnOwner.finalizeId ?? deriveKnowledgeFinalizeId({
175
+ sessionId,
176
+ planPath: registry.pendingTurnOwner.planPath,
177
+ endedAt: registry.pendingTurnOwner.endedAt ?? registry.pendingTurnOwner.completedAt ?? "",
178
+ });
131
179
  const planPath = resolveProjectRelativePlanPath(input.project, registry.pendingTurnOwner.planPath);
132
180
  jobPath = knowledgeFinalizationJobPathForPlan(input.project, planPath, finalizeId);
133
181
  if (!fs.existsSync(jobPath)) {
@@ -138,10 +186,21 @@ export function tryCaptureKnowledgeStop(input) {
138
186
  projectRoot: input.project.projectRoot,
139
187
  taskName: taskNameFromPlanPath(registry.pendingTurnOwner.planPath),
140
188
  writer: {
141
- externalSkills: input.project.projectConfig?.knowledgeWriter?.externalSkills ?? [],
142
- model: input.project.projectConfig?.knowledgeWriter?.model ?? null,
143
- reasoningEffort: input.project.projectConfig?.knowledgeWriter?.reasoningEffort ?? "medium",
144
- datedSectionsToKeep: input.project.projectConfig?.knowledgeWriter?.datedSectionsToKeep ?? 6,
189
+ executionPolicy: registry.pendingTurnOwner.writer?.executionPolicy
190
+ ?? input.project.projectConfig?.knowledgeWriter?.executionPolicy
191
+ ?? "background",
192
+ externalSkills: registry.pendingTurnOwner.writer?.externalSkills
193
+ ?? input.project.projectConfig?.knowledgeWriter?.externalSkills
194
+ ?? [],
195
+ model: registry.pendingTurnOwner.writer?.model
196
+ ?? input.project.projectConfig?.knowledgeWriter?.model
197
+ ?? null,
198
+ reasoningEffort: registry.pendingTurnOwner.writer?.reasoningEffort
199
+ ?? input.project.projectConfig?.knowledgeWriter?.reasoningEffort
200
+ ?? "medium",
201
+ datedSectionsToKeep: registry.pendingTurnOwner.writer?.datedSectionsToKeep
202
+ ?? input.project.projectConfig?.knowledgeWriter?.datedSectionsToKeep
203
+ ?? 6,
145
204
  },
146
205
  host: input.host ?? null,
147
206
  planPath,
@@ -181,15 +240,18 @@ export function readKnowledgeFinalizationJob(jobPath) {
181
240
  }
182
241
  export function claimKnowledgeFinalizationJob(jobPath) {
183
242
  return withFileLock(jobPath, () => {
184
- const job = readJsonFile(jobPath);
185
- if (job.status === "succeeded" || job.status === "running" || job.attempts >= 3) {
243
+ const current = readJsonFile(jobPath);
244
+ if (current.status === "succeeded" || current.status === "running" || current.attempts >= 3) {
186
245
  return null;
187
246
  }
247
+ const now = new Date().toISOString();
188
248
  const running = {
189
- ...job,
249
+ ...current,
190
250
  status: "running",
191
- attempts: job.attempts + 1,
192
- startedAt: new Date().toISOString(),
251
+ attempts: current.attempts + 1,
252
+ startedAt: now,
253
+ claimedAt: now,
254
+ claimToken: randomUUID(),
193
255
  finishedAt: undefined,
194
256
  error: undefined,
195
257
  };
@@ -197,6 +259,39 @@ export function claimKnowledgeFinalizationJob(jobPath) {
197
259
  return running;
198
260
  });
199
261
  }
262
+ export function doneKnowledgeFinalizationJob(input) {
263
+ return withFileLock(input.jobPath, () => {
264
+ const current = readJsonFile(input.jobPath);
265
+ if (!current.claimToken
266
+ || current.claimToken !== input.claimToken) {
267
+ throw new Error("Knowledge finalization done does not match the active claim.");
268
+ }
269
+ if (current.status === "succeeded" || current.status === "failed") {
270
+ const sameResult = input.status === "succeeded"
271
+ ? current.status === "succeeded" && current.finalResponse === (input.result ?? "")
272
+ : current.status === "failed" && current.error?.message === (input.error ?? "");
273
+ if (!sameResult) {
274
+ throw new Error("Knowledge finalization job already has a different terminal result.");
275
+ }
276
+ return { job: current, alreadyDone: true };
277
+ }
278
+ if (current.status !== "running") {
279
+ throw new Error("Knowledge finalization job must be claimed before done.");
280
+ }
281
+ const finishedAt = input.finishedAt ?? new Date().toISOString();
282
+ const terminal = {
283
+ ...current,
284
+ ...(input.patch ?? {}),
285
+ status: input.status,
286
+ finishedAt,
287
+ ...(input.status === "succeeded"
288
+ ? { finalResponse: input.result ?? "", error: undefined }
289
+ : { error: { message: input.error ?? "Knowledge finalization failed." } }),
290
+ };
291
+ writeJsonFile(input.jobPath, terminal);
292
+ return { job: terminal, alreadyDone: false };
293
+ });
294
+ }
200
295
  export function listRetryableKnowledgeFinalizationJobs(project) {
201
296
  const taskJobs = listTaskDirectories(project)
202
297
  .flatMap((task) => listKnowledgeJobs(path.join(task.taskDir, ".runtime", "knowledge-finalization")));
@@ -423,7 +518,8 @@ function resolveProjectRelativeReportPath(project, reportPath) {
423
518
  }
424
519
  function taskNameFromPlanPath(planPath) {
425
520
  const taskRelativePath = planPath.startsWith("tasks/") ? planPath.slice("tasks/".length) : "";
426
- const taskName = taskRelativePath.split("/")[0];
521
+ const segments = taskRelativePath.split("/").filter(Boolean);
522
+ const taskName = segments.at(-2);
427
523
  if (!taskName) {
428
524
  throw new Error(`Invalid knowledge plan path: ${planPath}`);
429
525
  }
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-sidecar.js","sourceRoot":"","sources":["../../src/knowledge-sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-sidecar.js","sourceRoot":"","sources":["../../src/knowledge-sidecar.ts"],"names":[],"mappings":"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"}
@@ -614,6 +614,9 @@ function normalizeTemplateConfigOverride(value) {
614
614
  ? truthSkill === adrSkill ? [truthSkill] : [truthSkill, adrSkill]
615
615
  : [truthSkill ?? adrSkill].filter((skill) => skill !== null);
616
616
  const normalizedWriter = {
617
+ ...(writer && (writer.executionPolicy === "background" || writer.executionPolicy === "subagent")
618
+ ? { executionPolicy: writer.executionPolicy }
619
+ : {}),
617
620
  ...(hasCanonicalExternalSkills
618
621
  ? { externalSkills: normalizeTemplateSkills(writer?.externalSkills) }
619
622
  : {}),
@@ -640,7 +643,7 @@ function isTemplateKnowledgeWriterConfig(value) {
640
643
  return false;
641
644
  }
642
645
  const candidate = value;
643
- if (Object.keys(candidate).some((key) => !["externalSkills", "model", "reasoningEffort", "datedSectionsToKeep"].includes(key))) {
646
+ if (Object.keys(candidate).some((key) => !["executionPolicy", "externalSkills", "model", "reasoningEffort", "datedSectionsToKeep"].includes(key))) {
644
647
  return false;
645
648
  }
646
649
  for (const key of ["model"]) {
@@ -653,7 +656,8 @@ function isTemplateKnowledgeWriterConfig(value) {
653
656
  || candidate.externalSkills.some((skill) => typeof skill !== "string"))) {
654
657
  return false;
655
658
  }
656
- return (candidate.reasoningEffort === undefined || isKnowledgeWriterReasoningEffort(candidate.reasoningEffort))
659
+ return (candidate.executionPolicy === undefined || candidate.executionPolicy === "background" || candidate.executionPolicy === "subagent")
660
+ && (candidate.reasoningEffort === undefined || isKnowledgeWriterReasoningEffort(candidate.reasoningEffort))
657
661
  && (candidate.datedSectionsToKeep === undefined
658
662
  || (Number.isInteger(candidate.datedSectionsToKeep) && candidate.datedSectionsToKeep >= 0));
659
663
  }