briefops 1.1.0 → 2.1.1

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 (93) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +88 -49
  3. package/SECURITY.md +4 -3
  4. package/dist/cli.js +6 -0
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/bootstrap.d.ts +2 -0
  7. package/dist/commands/bootstrap.js +59 -0
  8. package/dist/commands/bootstrap.js.map +1 -0
  9. package/dist/commands/continue.js +5 -4
  10. package/dist/commands/continue.js.map +1 -1
  11. package/dist/commands/doctor.js +27 -0
  12. package/dist/commands/doctor.js.map +1 -1
  13. package/dist/commands/finish.js +9 -1
  14. package/dist/commands/finish.js.map +1 -1
  15. package/dist/commands/harness.d.ts +2 -0
  16. package/dist/commands/harness.js +56 -0
  17. package/dist/commands/harness.js.map +1 -0
  18. package/dist/commands/memory.js +20 -3
  19. package/dist/commands/memory.js.map +1 -1
  20. package/dist/commands/obs.d.ts +2 -0
  21. package/dist/commands/obs.js +51 -0
  22. package/dist/commands/obs.js.map +1 -0
  23. package/dist/commands/skill.js +1 -1
  24. package/dist/commands/skill.js.map +1 -1
  25. package/dist/core/bootstrap.d.ts +25 -0
  26. package/dist/core/bootstrap.js +69 -0
  27. package/dist/core/bootstrap.js.map +1 -0
  28. package/dist/core/codex.js +32 -5
  29. package/dist/core/codex.js.map +1 -1
  30. package/dist/core/codexPlugin.js +53 -12
  31. package/dist/core/codexPlugin.js.map +1 -1
  32. package/dist/core/exportTargets.js +21 -18
  33. package/dist/core/exportTargets.js.map +1 -1
  34. package/dist/core/harness.d.ts +27 -0
  35. package/dist/core/harness.js +342 -0
  36. package/dist/core/harness.js.map +1 -0
  37. package/dist/core/lock.d.ts +1 -0
  38. package/dist/core/lock.js +18 -4
  39. package/dist/core/lock.js.map +1 -1
  40. package/dist/core/memory.d.ts +4 -1
  41. package/dist/core/memory.js +54 -2
  42. package/dist/core/memory.js.map +1 -1
  43. package/dist/core/memoryHygiene.d.ts +11 -0
  44. package/dist/core/memoryHygiene.js +93 -0
  45. package/dist/core/memoryHygiene.js.map +1 -1
  46. package/dist/core/memoryProposal.js +21 -8
  47. package/dist/core/memoryProposal.js.map +1 -1
  48. package/dist/core/observability.d.ts +36 -0
  49. package/dist/core/observability.js +70 -0
  50. package/dist/core/observability.js.map +1 -0
  51. package/dist/core/prime.js +16 -9
  52. package/dist/core/prime.js.map +1 -1
  53. package/dist/core/securityDoctor.js +3 -5
  54. package/dist/core/securityDoctor.js.map +1 -1
  55. package/dist/core/strictDoctor.d.ts +22 -0
  56. package/dist/core/strictDoctor.js +95 -0
  57. package/dist/core/strictDoctor.js.map +1 -0
  58. package/dist/core/workflow.d.ts +4 -0
  59. package/dist/core/workflow.js +21 -2
  60. package/dist/core/workflow.js.map +1 -1
  61. package/dist/core/workspace.js +13 -1
  62. package/dist/core/workspace.js.map +1 -1
  63. package/dist/schemas/memory.d.ts +100 -0
  64. package/dist/schemas/memory.js +9 -1
  65. package/dist/schemas/memory.js.map +1 -1
  66. package/dist/schemas/memoryProposal.d.ts +115 -0
  67. package/dist/schemas/memoryProposal.js +2 -1
  68. package/dist/schemas/memoryProposal.js.map +1 -1
  69. package/dist/version.d.ts +1 -1
  70. package/dist/version.js +1 -1
  71. package/docs/codex-resume.md +1 -1
  72. package/docs/compatibility.md +10 -6
  73. package/docs/concept.md +2 -2
  74. package/docs/file-format.md +3 -1
  75. package/docs/handoff-briefs.md +1 -1
  76. package/docs/impact-report.md +140 -0
  77. package/docs/integrations/harnesses.md +14 -6
  78. package/docs/master-harness.md +610 -0
  79. package/docs/memory-lifecycle.md +11 -5
  80. package/docs/privacy-model.md +7 -3
  81. package/docs/quickstart.md +22 -6
  82. package/docs/release-checklist.md +18 -4
  83. package/docs/roadmap.md +12 -5
  84. package/docs/superpowers/plans/2026-06-08-briefops-oss-readiness.md +1 -1
  85. package/docs/token-budget.md +8 -0
  86. package/package.json +2 -2
  87. package/plugins/briefops-codex/.codex-plugin/plugin.json +2 -1
  88. package/plugins/briefops-codex/README.md +8 -6
  89. package/plugins/briefops-codex/skills/briefops-continue-worker/SKILL.md +3 -3
  90. package/plugins/briefops-codex/skills/briefops-finish-task/SKILL.md +4 -4
  91. package/plugins/briefops-codex/skills/briefops-prime-context/SKILL.md +4 -4
  92. package/plugins/briefops-codex/skills/briefops-review-memory/SKILL.md +8 -7
  93. package/plugins/briefops-codex/skills/briefops-route-task/SKILL.md +33 -0
@@ -0,0 +1,342 @@
1
+ import { BriefOpsError } from "./errors.js";
2
+ const routeTable = {
3
+ "small-bug-fix": {
4
+ taskType: "small-bug-fix",
5
+ label: "Small bug fix",
6
+ spec: "No",
7
+ plan: "Light",
8
+ goalLedger: "Optional",
9
+ findings: "Yes if debugging",
10
+ verification: "Level 2 targeted test",
11
+ memoryUpdate: "Work log",
12
+ artifacts: ["work log", "targeted verification evidence"],
13
+ exitCriteria: [
14
+ "Root cause or bounded symptom is understood.",
15
+ "Patch is scoped to the failing behavior.",
16
+ "Targeted verification passes or the limitation is explicit."
17
+ ],
18
+ finalResponse: ["changed behavior", "files changed", "targeted verification", "residual risk"]
19
+ },
20
+ "medium-feature": {
21
+ taskType: "medium-feature",
22
+ label: "Medium feature",
23
+ spec: "Light",
24
+ plan: "Yes",
25
+ goalLedger: "Yes",
26
+ findings: "Optional",
27
+ verification: "Level 2 or 3 based on surface area",
28
+ memoryUpdate: "Work log plus decisions",
29
+ artifacts: ["brief spec", "plan", "goal ledger", "verification evidence"],
30
+ exitCriteria: [
31
+ "Acceptance criteria are explicit.",
32
+ "Implementation follows repo conventions.",
33
+ "Relevant tests or checks pass."
34
+ ],
35
+ finalResponse: ["summary", "files changed", "acceptance coverage", "verification", "risks"]
36
+ },
37
+ "large-feature": {
38
+ taskType: "large-feature",
39
+ label: "Large feature",
40
+ spec: "Yes",
41
+ plan: "Yes",
42
+ goalLedger: "Yes",
43
+ findings: "Yes",
44
+ verification: "Level 3 full project verification",
45
+ memoryUpdate: "Decision, project state, handoff",
46
+ artifacts: ["spec", "plan", "tasks", "goal ledger", "findings log", "handoff"],
47
+ exitCriteria: [
48
+ "Spec and task decomposition exist.",
49
+ "All blocking findings are resolved.",
50
+ "Full relevant project verification has evidence."
51
+ ],
52
+ finalResponse: ["feature outcome", "files changed", "verification evidence", "open risks", "handoff"]
53
+ },
54
+ refactor: {
55
+ taskType: "refactor",
56
+ label: "Refactor",
57
+ spec: "No unless behavior changes",
58
+ plan: "Yes",
59
+ goalLedger: "Yes for multi-file",
60
+ findings: "Optional",
61
+ verification: "Level 3 regression verification",
62
+ memoryUpdate: "Work log plus decision if architecture changes",
63
+ artifacts: ["scope boundary", "risk notes", "goal ledger", "regression evidence"],
64
+ exitCriteria: [
65
+ "Behavior-preservation boundary is clear.",
66
+ "Diff is incremental and reviewable.",
67
+ "Regression checks cover touched behavior."
68
+ ],
69
+ finalResponse: ["refactor scope", "behavior preserved", "verification", "risks"]
70
+ },
71
+ "dependency-upgrade": {
72
+ taskType: "dependency-upgrade",
73
+ label: "Dependency upgrade",
74
+ spec: "No",
75
+ plan: "Yes",
76
+ goalLedger: "Yes",
77
+ findings: "Yes if breakage appears",
78
+ verification: "Level 3 full project verification",
79
+ memoryUpdate: "Decision plus work log",
80
+ artifacts: ["upgrade plan", "compatibility notes", "verification evidence"],
81
+ exitCriteria: [
82
+ "Upgrade scope and migration notes are recorded.",
83
+ "Lockfile/package changes are intentional.",
84
+ "Build, tests, and relevant runtime checks pass."
85
+ ],
86
+ finalResponse: ["dependency changes", "migration notes", "verification", "known risks"]
87
+ },
88
+ "ui-change": {
89
+ taskType: "ui-change",
90
+ label: "UI change",
91
+ spec: "Light",
92
+ plan: "Light",
93
+ goalLedger: "Optional",
94
+ findings: "Yes for visual defects",
95
+ verification: "Level 4 visual evidence",
96
+ memoryUpdate: "Work log, decision if design pattern changes",
97
+ artifacts: ["visual target", "screenshot or render evidence", "verification notes"],
98
+ exitCriteria: [
99
+ "UI renders in its natural environment.",
100
+ "Responsive or target viewport behavior is inspected.",
101
+ "Visual evidence backs the completion claim."
102
+ ],
103
+ finalResponse: ["UI outcome", "files changed", "visual evidence", "remaining visual risk"]
104
+ },
105
+ "test-repair": {
106
+ taskType: "test-repair",
107
+ label: "Test repair",
108
+ spec: "No",
109
+ plan: "Light",
110
+ goalLedger: "Optional",
111
+ findings: "Yes if failure cause is uncertain",
112
+ verification: "Level 2 targeted test",
113
+ memoryUpdate: "Work log",
114
+ artifacts: ["failure reproduction", "targeted test output"],
115
+ exitCriteria: [
116
+ "Failure is reproduced or clearly explained.",
117
+ "The test now asserts intended behavior.",
118
+ "Targeted test command passes."
119
+ ],
120
+ finalResponse: ["failure fixed", "tests changed", "verification", "risk of brittleness"]
121
+ },
122
+ "production-incident": {
123
+ taskType: "production-incident",
124
+ label: "Production incident",
125
+ spec: "No",
126
+ plan: "Incident plan",
127
+ goalLedger: "Yes",
128
+ findings: "Yes",
129
+ verification: "Level 4 evidence-based verification",
130
+ memoryUpdate: "Incident, decision, handoff",
131
+ artifacts: ["incident log", "findings log", "mitigation evidence", "handoff"],
132
+ exitCriteria: [
133
+ "Impact and mitigation are explicit.",
134
+ "Blocking findings are tracked.",
135
+ "Verification evidence matches the incident risk."
136
+ ],
137
+ finalResponse: ["impact", "mitigation", "verification evidence", "follow-up risks"]
138
+ },
139
+ "documentation-task": {
140
+ taskType: "documentation-task",
141
+ label: "Documentation task",
142
+ spec: "No",
143
+ plan: "No or light",
144
+ goalLedger: "No",
145
+ findings: "No",
146
+ verification: "Level 0 or 1 static inspection",
147
+ memoryUpdate: "Work log only if durable",
148
+ artifacts: ["doc diff", "link or render check if relevant"],
149
+ exitCriteria: [
150
+ "Docs match current behavior.",
151
+ "Links, examples, or commands are checked when practical."
152
+ ],
153
+ finalResponse: ["doc change", "files changed", "inspection or skipped verification reason"]
154
+ },
155
+ "architecture-decision": {
156
+ taskType: "architecture-decision",
157
+ label: "Architecture decision",
158
+ spec: "Yes",
159
+ plan: "Yes",
160
+ goalLedger: "Optional",
161
+ findings: "Research findings",
162
+ verification: "Level 1 source inspection",
163
+ memoryUpdate: "Decision plus architecture memory",
164
+ artifacts: ["decision record", "tradeoff table", "source evidence"],
165
+ exitCriteria: [
166
+ "Options and tradeoffs are explicit.",
167
+ "Decision is grounded in repo constraints.",
168
+ "Durable rationale is recorded."
169
+ ],
170
+ finalResponse: ["decision", "rationale", "sources", "follow-up implementation step"]
171
+ },
172
+ "exploratory-research": {
173
+ taskType: "exploratory-research",
174
+ label: "Exploratory research",
175
+ spec: "No",
176
+ plan: "Research plan",
177
+ goalLedger: "Optional",
178
+ findings: "Yes",
179
+ verification: "Level 1 source inspection",
180
+ memoryUpdate: "Findings or decision if durable",
181
+ artifacts: ["source notes", "findings", "recommendation"],
182
+ exitCriteria: [
183
+ "Sources are inspected directly.",
184
+ "Confirmed facts and interpretation are separated.",
185
+ "Recommendation names uncertainty."
186
+ ],
187
+ finalResponse: ["findings", "sources", "recommendation", "open questions"]
188
+ },
189
+ "code-review": {
190
+ taskType: "code-review",
191
+ label: "Code review",
192
+ spec: "No",
193
+ plan: "Review plan",
194
+ goalLedger: "Optional",
195
+ findings: "Yes",
196
+ verification: "Level 1 or 2 depending on reviewed change",
197
+ memoryUpdate: "Known issue if durable",
198
+ artifacts: ["findings log", "file and line evidence"],
199
+ exitCriteria: [
200
+ "Findings are actionable and severity-ordered.",
201
+ "No open finding is hidden in the summary.",
202
+ "Verification gaps are explicit."
203
+ ],
204
+ finalResponse: ["findings first", "open questions", "test gaps", "brief summary"]
205
+ },
206
+ "release-preparation": {
207
+ taskType: "release-preparation",
208
+ label: "Release preparation",
209
+ spec: "No",
210
+ plan: "Yes",
211
+ goalLedger: "Yes",
212
+ findings: "Yes",
213
+ verification: "Level 4 evidence-based verification",
214
+ memoryUpdate: "Project state plus handoff",
215
+ artifacts: ["release checklist", "verification evidence", "handoff"],
216
+ exitCriteria: [
217
+ "Release checklist is complete or exceptions are approved.",
218
+ "Build/test/audit evidence is recorded.",
219
+ "Remaining risks and rollback notes are clear."
220
+ ],
221
+ finalResponse: ["release readiness", "checks run", "evidence", "remaining blockers"]
222
+ }
223
+ };
224
+ const taskTypeAliases = {
225
+ bug: "small-bug-fix",
226
+ fix: "small-bug-fix",
227
+ "small-bug": "small-bug-fix",
228
+ feature: "medium-feature",
229
+ "medium-feature": "medium-feature",
230
+ "large-feature": "large-feature",
231
+ refactor: "refactor",
232
+ dependency: "dependency-upgrade",
233
+ deps: "dependency-upgrade",
234
+ "dependency-upgrade": "dependency-upgrade",
235
+ ui: "ui-change",
236
+ "ui-change": "ui-change",
237
+ test: "test-repair",
238
+ "test-repair": "test-repair",
239
+ incident: "production-incident",
240
+ "production-incident": "production-incident",
241
+ docs: "documentation-task",
242
+ documentation: "documentation-task",
243
+ "documentation-task": "documentation-task",
244
+ architecture: "architecture-decision",
245
+ adr: "architecture-decision",
246
+ "architecture-decision": "architecture-decision",
247
+ research: "exploratory-research",
248
+ "exploratory-research": "exploratory-research",
249
+ review: "code-review",
250
+ "code-review": "code-review",
251
+ release: "release-preparation",
252
+ "release-preparation": "release-preparation"
253
+ };
254
+ export function harnessRoutes() {
255
+ return Object.values(routeTable);
256
+ }
257
+ export function normalizeHarnessTaskType(value) {
258
+ const key = value.trim().toLowerCase().replace(/_/g, "-");
259
+ const taskType = taskTypeAliases[key];
260
+ if (!taskType) {
261
+ throw new BriefOpsError(`Unknown harness task type: ${value}`);
262
+ }
263
+ return taskType;
264
+ }
265
+ function matchTask(task) {
266
+ const text = task.toLowerCase();
267
+ const checks = [
268
+ ["production-incident", /\b(prod|production|incident|outage|rollback|hotfix|sev[0-9])\b/, "incident signal"],
269
+ ["release-preparation", /\b(release|ship|publish|npm pack|changelog|version bump|cut a release)\b/, "release signal"],
270
+ ["code-review", /\b(review|audit|pr|pull request|diff)\b/, "review signal"],
271
+ ["dependency-upgrade", /\b(upgrade|bump|dependency|dependencies|lockfile|package-lock|npm update|pnpm update|yarn upgrade)\b/, "dependency signal"],
272
+ ["ui-change", /\b(ui|visual|css|style|layout|responsive|screenshot|frontend|component)\b/, "ui signal"],
273
+ ["test-repair", /\b(test failure|failing test|flake|vitest|jest|pytest|unit test|integration test)\b/, "test signal"],
274
+ ["refactor", /\b(refactor|cleanup|restructure|rename|extract|split)\b/, "refactor signal"],
275
+ ["architecture-decision", /\b(architecture|adr|design decision|tradeoff|system design)\b/, "architecture signal"],
276
+ ["exploratory-research", /\b(research|investigate|compare|evaluate|look up|survey)\b/, "research signal"],
277
+ ["documentation-task", /\b(docs|documentation|readme|guide|manual)\b/, "documentation signal"],
278
+ ["large-feature", /\b(large feature|new module|major feature|multi-phase|end-to-end)\b/, "large feature signal"],
279
+ ["medium-feature", /\b(feature|add support|implement|build)\b/, "feature signal"],
280
+ ["small-bug-fix", /\b(bug|fix|broken|error|crash|regression)\b/, "bug signal"]
281
+ ];
282
+ for (const [taskType, pattern, signal] of checks) {
283
+ if (pattern.test(text)) {
284
+ return { taskType, signals: [signal] };
285
+ }
286
+ }
287
+ return { taskType: "medium-feature", signals: ["default medium-feature route"] };
288
+ }
289
+ export function routeHarnessTask(options) {
290
+ const task = options.task.trim();
291
+ if (!task) {
292
+ throw new BriefOpsError("Harness routing requires --task.");
293
+ }
294
+ if (options.taskType) {
295
+ const taskType = normalizeHarnessTaskType(options.taskType);
296
+ return {
297
+ task,
298
+ route: routeTable[taskType],
299
+ inferred: false,
300
+ signals: ["explicit task type"]
301
+ };
302
+ }
303
+ const matched = matchTask(task);
304
+ return {
305
+ task,
306
+ route: routeTable[matched.taskType],
307
+ inferred: true,
308
+ signals: matched.signals
309
+ };
310
+ }
311
+ export function renderHarnessRoute(result) {
312
+ return [
313
+ "# BriefOps Harness Route",
314
+ "",
315
+ `Task: ${result.task}`,
316
+ `Route: ${result.route.label}${result.inferred ? " (inferred)" : ""}`,
317
+ `Signals: ${result.signals.join(", ")}`,
318
+ "",
319
+ "## Workflow Depth",
320
+ "",
321
+ `- Spec: ${result.route.spec}`,
322
+ `- Plan: ${result.route.plan}`,
323
+ `- Goal ledger: ${result.route.goalLedger}`,
324
+ `- Findings: ${result.route.findings}`,
325
+ `- Verification: ${result.route.verification}`,
326
+ `- Memory update: ${result.route.memoryUpdate}`,
327
+ "",
328
+ "## Required Artifacts",
329
+ "",
330
+ ...result.route.artifacts.map((artifact) => `- ${artifact}`),
331
+ "",
332
+ "## Exit Criteria",
333
+ "",
334
+ ...result.route.exitCriteria.map((criterion) => `- ${criterion}`),
335
+ "",
336
+ "## Final Response Must Include",
337
+ "",
338
+ ...result.route.finalResponse.map((item) => `- ${item}`),
339
+ ""
340
+ ].join("\n");
341
+ }
342
+ //# sourceMappingURL=harness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harness.js","sourceRoot":"","sources":["../../src/core/harness.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export type WorkspaceLockOptions = {
4
4
  timeoutMs?: number;
5
5
  staleMs?: number;
6
6
  };
7
+ export declare function isStaleLockFile(filePath: string, staleMs: number): Promise<boolean>;
7
8
  export declare function withWorkspaceLock<T>(options: WorkspaceLockOptions, callback: () => Promise<T>): Promise<T>;
8
9
  export declare function cleanStaleLocks(options?: {
9
10
  cwd?: string;
package/dist/core/lock.js CHANGED
@@ -17,7 +17,7 @@ function lockPath(cwd, name) {
17
17
  function lockDir(cwd) {
18
18
  return path.join(workspacePaths(cwd).root, ".locks");
19
19
  }
20
- async function isStale(filePath, staleMs) {
20
+ export async function isStaleLockFile(filePath, staleMs) {
21
21
  if (!(await pathExists(filePath))) {
22
22
  return false;
23
23
  }
@@ -25,9 +25,23 @@ async function isStale(filePath, staleMs) {
25
25
  const raw = await readTextFile(filePath);
26
26
  const createdAt = raw.match(/^created_at: (.+)$/m)?.[1]?.trim();
27
27
  const created = createdAt ? Date.parse(createdAt) : Number.NaN;
28
- return Number.isNaN(created) || Date.now() - created > staleMs;
28
+ if (!Number.isNaN(created)) {
29
+ return Date.now() - created > staleMs;
30
+ }
29
31
  }
30
32
  catch {
33
+ // Fall back to mtime below. A competing writer may have created the lock
34
+ // before its metadata is readable, and fresh malformed locks must not be
35
+ // removed while still active.
36
+ }
37
+ try {
38
+ const stat = await fs.stat(filePath);
39
+ return Date.now() - stat.mtimeMs > staleMs;
40
+ }
41
+ catch (error) {
42
+ if (error.code === "ENOENT") {
43
+ return false;
44
+ }
31
45
  return true;
32
46
  }
33
47
  }
@@ -52,7 +66,7 @@ async function acquireLock(options) {
52
66
  if (error.code !== "EEXIST") {
53
67
  throw error;
54
68
  }
55
- if (await isStale(filePath, options.staleMs)) {
69
+ if (await isStaleLockFile(filePath, options.staleMs)) {
56
70
  await fs.unlink(filePath).catch(() => undefined);
57
71
  continue;
58
72
  }
@@ -89,7 +103,7 @@ export async function cleanStaleLocks(options = {}) {
89
103
  const entries = await fs.readdir(dirPath);
90
104
  for (const entry of entries.filter((item) => item.endsWith(".lock"))) {
91
105
  const filePath = path.join(dirPath, entry);
92
- if (await isStale(filePath, options.staleMs ?? defaultStaleMs)) {
106
+ if (await isStaleLockFile(filePath, options.staleMs ?? defaultStaleMs)) {
93
107
  await fs.unlink(filePath).catch(() => undefined);
94
108
  removed.push(filePath);
95
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/core/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/core/lock.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type MemoryCategory } from "./paths.js";
2
- import { type MemoryItem, type MemoryStatus, type MemoryVisibility } from "../schemas/memory.js";
2
+ import { type MemoryEvidence, type MemoryItem, type MemoryStatus, type MemoryVisibility } from "../schemas/memory.js";
3
3
  export type AddMemoryOptions = {
4
4
  cwd?: string;
5
5
  type: string;
@@ -11,6 +11,7 @@ export type AddMemoryOptions = {
11
11
  source?: string;
12
12
  visibility?: string;
13
13
  exportable?: boolean;
14
+ evidence?: MemoryEvidence[] | string[] | string;
14
15
  };
15
16
  export type ListMemoryFilters = {
16
17
  cwd?: string;
@@ -41,6 +42,7 @@ export type MemorySelection = {
41
42
  export declare function normalizeMemoryCategory(value: string): MemoryCategory;
42
43
  export declare function normalizeMemoryStatus(value?: string): MemoryStatus;
43
44
  export declare function normalizeMemoryVisibility(value?: string): MemoryVisibility;
45
+ export declare function parseMemoryEvidenceRefs(value?: MemoryEvidence[] | string[] | string): MemoryEvidence[];
44
46
  export declare function addMemoryIfMissing(options: AddMemoryOptions): Promise<{
45
47
  item: MemoryItem;
46
48
  created: boolean;
@@ -59,6 +61,7 @@ export declare function updateMemoryStatus(options: {
59
61
  status: string;
60
62
  }): Promise<MemoryItem>;
61
63
  export declare function formatMemoryItem(item: MemoryItem): string;
64
+ export declare function formatEvidenceRef(evidence: MemoryEvidence): string;
62
65
  export declare function taskKeywords(value?: string): Set<string>;
63
66
  export declare function scoreMemoryItem(options: {
64
67
  item: MemoryItem;
@@ -45,6 +45,47 @@ export function normalizeMemoryVisibility(value) {
45
45
  }
46
46
  throw new BriefOpsError(`Invalid memory visibility: ${value}`);
47
47
  }
48
+ function parseEvidenceRef(value) {
49
+ const trimmed = value.trim();
50
+ if (!trimmed) {
51
+ return undefined;
52
+ }
53
+ const [pathAndLines, sha256] = trimmed.split("#", 2);
54
+ const lineMatch = pathAndLines.match(/^(.+):(\d+)(?:-(\d+))?$/);
55
+ if (!lineMatch) {
56
+ return {
57
+ path: pathAndLines,
58
+ sha256: sha256?.trim() || undefined
59
+ };
60
+ }
61
+ const startLine = Number.parseInt(lineMatch[2], 10);
62
+ const endLine = lineMatch[3] ? Number.parseInt(lineMatch[3], 10) : undefined;
63
+ return {
64
+ path: lineMatch[1],
65
+ start_line: startLine,
66
+ end_line: endLine,
67
+ sha256: sha256?.trim() || undefined
68
+ };
69
+ }
70
+ export function parseMemoryEvidenceRefs(value) {
71
+ const refs = Array.isArray(value) ? value : value ? [value] : [];
72
+ const parsed = refs.flatMap((ref) => {
73
+ if (typeof ref === "string") {
74
+ const evidence = parseEvidenceRef(ref);
75
+ return evidence ? [evidence] : [];
76
+ }
77
+ return [ref];
78
+ });
79
+ const seen = new Set();
80
+ return parsed.filter((evidence) => {
81
+ const key = JSON.stringify(evidence);
82
+ if (seen.has(key)) {
83
+ return false;
84
+ }
85
+ seen.add(key);
86
+ return true;
87
+ });
88
+ }
48
89
  async function readMemoryFile(cwd, category) {
49
90
  return readYamlFile(memoryFilePath(cwd, category), memoryFileSchema, { items: [] });
50
91
  }
@@ -105,7 +146,8 @@ export async function addMemoryUnlocked(options) {
105
146
  created_at: createdAt,
106
147
  tags,
107
148
  visibility: normalizeMemoryVisibility(options.visibility),
108
- exportable: options.exportable ?? false
149
+ exportable: options.exportable ?? false,
150
+ evidence: parseMemoryEvidenceRefs(options.evidence)
109
151
  });
110
152
  memoryFile.items.push(item);
111
153
  await writeMemoryFile(cwd, category, memoryFile);
@@ -165,11 +207,21 @@ export function formatMemoryItem(item) {
165
207
  const parts = [
166
208
  item.project ? `project: ${item.project}` : undefined,
167
209
  item.skill ? `skill: ${item.skill}` : undefined,
168
- item.tags.length > 0 ? `tags: ${item.tags.join(",")}` : undefined
210
+ item.tags.length > 0 ? `tags: ${item.tags.join(",")}` : undefined,
211
+ item.evidence.length > 0
212
+ ? `evidence: ${item.evidence.slice(0, 2).map(formatEvidenceRef).join(",")}`
213
+ : undefined
169
214
  ].filter(Boolean);
170
215
  const suffix = parts.length > 0 ? ` (${parts.join("; ")})` : "";
171
216
  return `- [${item.type}] ${item.content}${suffix}`;
172
217
  }
218
+ export function formatEvidenceRef(evidence) {
219
+ const lines = evidence.start_line
220
+ ? `:${evidence.start_line}${evidence.end_line ? `-${evidence.end_line}` : ""}`
221
+ : "";
222
+ const sha = evidence.sha256 ? `#${evidence.sha256.slice(0, 12)}` : "";
223
+ return `${evidence.path}${lines}${sha}`;
224
+ }
173
225
  const typeWeights = {
174
226
  decision: 12,
175
227
  lesson: 10,
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,16 @@ export type MemoryHygieneReport = {
7
7
  ids: string[];
8
8
  content: string;
9
9
  }>;
10
+ potentialConflicts: Array<{
11
+ ids: [string, string];
12
+ sharedTerms: string[];
13
+ first: string;
14
+ second: string;
15
+ }>;
16
+ oldActive: Array<{
17
+ item: MemoryItem;
18
+ ageDays: number;
19
+ }>;
10
20
  stale: MemoryItem[];
11
21
  deprecated: MemoryItem[];
12
22
  };
@@ -19,6 +29,7 @@ export type MemoryPrunePlan = {
19
29
  };
20
30
  export declare function inspectMemoryHygiene(options?: {
21
31
  cwd?: string;
32
+ oldActiveDays?: number;
22
33
  }): Promise<MemoryHygieneReport>;
23
34
  export declare function planMemoryPrune(options?: {
24
35
  cwd?: string;