briefops 1.0.0

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 (255) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/CODE_OF_CONDUCT.md +13 -0
  3. package/CONTRIBUTING.md +53 -0
  4. package/LICENSE +21 -0
  5. package/README.md +801 -0
  6. package/SECURITY.md +59 -0
  7. package/dist/cli.d.ts +3 -0
  8. package/dist/cli.js +54 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/approve.d.ts +2 -0
  11. package/dist/commands/approve.js +38 -0
  12. package/dist/commands/approve.js.map +1 -0
  13. package/dist/commands/brief.d.ts +2 -0
  14. package/dist/commands/brief.js +81 -0
  15. package/dist/commands/brief.js.map +1 -0
  16. package/dist/commands/codex.d.ts +2 -0
  17. package/dist/commands/codex.js +163 -0
  18. package/dist/commands/codex.js.map +1 -0
  19. package/dist/commands/compare.d.ts +2 -0
  20. package/dist/commands/compare.js +48 -0
  21. package/dist/commands/compare.js.map +1 -0
  22. package/dist/commands/continue.d.ts +2 -0
  23. package/dist/commands/continue.js +66 -0
  24. package/dist/commands/continue.js.map +1 -0
  25. package/dist/commands/doctor.d.ts +2 -0
  26. package/dist/commands/doctor.js +90 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/eval.d.ts +2 -0
  29. package/dist/commands/eval.js +89 -0
  30. package/dist/commands/eval.js.map +1 -0
  31. package/dist/commands/export.d.ts +2 -0
  32. package/dist/commands/export.js +105 -0
  33. package/dist/commands/export.js.map +1 -0
  34. package/dist/commands/finish.d.ts +2 -0
  35. package/dist/commands/finish.js +71 -0
  36. package/dist/commands/finish.js.map +1 -0
  37. package/dist/commands/handoff.d.ts +2 -0
  38. package/dist/commands/handoff.js +77 -0
  39. package/dist/commands/handoff.js.map +1 -0
  40. package/dist/commands/inbox.d.ts +2 -0
  41. package/dist/commands/inbox.js +36 -0
  42. package/dist/commands/inbox.js.map +1 -0
  43. package/dist/commands/init.d.ts +2 -0
  44. package/dist/commands/init.js +13 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/inspect.d.ts +2 -0
  47. package/dist/commands/inspect.js +226 -0
  48. package/dist/commands/inspect.js.map +1 -0
  49. package/dist/commands/log.d.ts +2 -0
  50. package/dist/commands/log.js +96 -0
  51. package/dist/commands/log.js.map +1 -0
  52. package/dist/commands/memory.d.ts +2 -0
  53. package/dist/commands/memory.js +236 -0
  54. package/dist/commands/memory.js.map +1 -0
  55. package/dist/commands/pack.d.ts +2 -0
  56. package/dist/commands/pack.js +42 -0
  57. package/dist/commands/pack.js.map +1 -0
  58. package/dist/commands/prime.d.ts +4 -0
  59. package/dist/commands/prime.js +44 -0
  60. package/dist/commands/prime.js.map +1 -0
  61. package/dist/commands/project.d.ts +2 -0
  62. package/dist/commands/project.js +50 -0
  63. package/dist/commands/project.js.map +1 -0
  64. package/dist/commands/shared.d.ts +3 -0
  65. package/dist/commands/shared.js +24 -0
  66. package/dist/commands/shared.js.map +1 -0
  67. package/dist/commands/skill.d.ts +2 -0
  68. package/dist/commands/skill.js +146 -0
  69. package/dist/commands/skill.js.map +1 -0
  70. package/dist/commands/worker.d.ts +2 -0
  71. package/dist/commands/worker.js +128 -0
  72. package/dist/commands/worker.js.map +1 -0
  73. package/dist/core/adapter.d.ts +22 -0
  74. package/dist/core/adapter.js +167 -0
  75. package/dist/core/adapter.js.map +1 -0
  76. package/dist/core/approval.d.ts +26 -0
  77. package/dist/core/approval.js +86 -0
  78. package/dist/core/approval.js.map +1 -0
  79. package/dist/core/brief.d.ts +47 -0
  80. package/dist/core/brief.js +411 -0
  81. package/dist/core/brief.js.map +1 -0
  82. package/dist/core/codex.d.ts +53 -0
  83. package/dist/core/codex.js +286 -0
  84. package/dist/core/codex.js.map +1 -0
  85. package/dist/core/codexPlugin.d.ts +51 -0
  86. package/dist/core/codexPlugin.js +228 -0
  87. package/dist/core/codexPlugin.js.map +1 -0
  88. package/dist/core/compatibility.d.ts +2 -0
  89. package/dist/core/compatibility.js +16 -0
  90. package/dist/core/compatibility.js.map +1 -0
  91. package/dist/core/config.d.ts +19 -0
  92. package/dist/core/config.js +77 -0
  93. package/dist/core/config.js.map +1 -0
  94. package/dist/core/contextBudget.d.ts +12 -0
  95. package/dist/core/contextBudget.js +22 -0
  96. package/dist/core/contextBudget.js.map +1 -0
  97. package/dist/core/contextCompare.d.ts +27 -0
  98. package/dist/core/contextCompare.js +97 -0
  99. package/dist/core/contextCompare.js.map +1 -0
  100. package/dist/core/continuity.d.ts +25 -0
  101. package/dist/core/continuity.js +73 -0
  102. package/dist/core/continuity.js.map +1 -0
  103. package/dist/core/errors.d.ts +4 -0
  104. package/dist/core/errors.js +12 -0
  105. package/dist/core/errors.js.map +1 -0
  106. package/dist/core/eval.d.ts +38 -0
  107. package/dist/core/eval.js +180 -0
  108. package/dist/core/eval.js.map +1 -0
  109. package/dist/core/exportPolicy.d.ts +7 -0
  110. package/dist/core/exportPolicy.js +17 -0
  111. package/dist/core/exportPolicy.js.map +1 -0
  112. package/dist/core/exportTargets.d.ts +25 -0
  113. package/dist/core/exportTargets.js +292 -0
  114. package/dist/core/exportTargets.js.map +1 -0
  115. package/dist/core/handoff.d.ts +48 -0
  116. package/dist/core/handoff.js +611 -0
  117. package/dist/core/handoff.js.map +1 -0
  118. package/dist/core/inbox.d.ts +15 -0
  119. package/dist/core/inbox.js +56 -0
  120. package/dist/core/inbox.js.map +1 -0
  121. package/dist/core/lock.d.ts +11 -0
  122. package/dist/core/lock.js +99 -0
  123. package/dist/core/lock.js.map +1 -0
  124. package/dist/core/log.d.ts +38 -0
  125. package/dist/core/log.js +93 -0
  126. package/dist/core/log.js.map +1 -0
  127. package/dist/core/memory.d.ts +86 -0
  128. package/dist/core/memory.js +353 -0
  129. package/dist/core/memory.js.map +1 -0
  130. package/dist/core/memoryHygiene.d.ts +25 -0
  131. package/dist/core/memoryHygiene.js +95 -0
  132. package/dist/core/memoryHygiene.js.map +1 -0
  133. package/dist/core/memoryProposal.d.ts +40 -0
  134. package/dist/core/memoryProposal.js +279 -0
  135. package/dist/core/memoryProposal.js.map +1 -0
  136. package/dist/core/output.d.ts +7 -0
  137. package/dist/core/output.js +18 -0
  138. package/dist/core/output.js.map +1 -0
  139. package/dist/core/patch.d.ts +37 -0
  140. package/dist/core/patch.js +220 -0
  141. package/dist/core/patch.js.map +1 -0
  142. package/dist/core/paths.d.ts +33 -0
  143. package/dist/core/paths.js +84 -0
  144. package/dist/core/paths.js.map +1 -0
  145. package/dist/core/prime.d.ts +17 -0
  146. package/dist/core/prime.js +298 -0
  147. package/dist/core/prime.js.map +1 -0
  148. package/dist/core/privacyDoctor.d.ts +14 -0
  149. package/dist/core/privacyDoctor.js +59 -0
  150. package/dist/core/privacyDoctor.js.map +1 -0
  151. package/dist/core/project.d.ts +16 -0
  152. package/dist/core/project.js +73 -0
  153. package/dist/core/project.js.map +1 -0
  154. package/dist/core/securityDoctor.d.ts +14 -0
  155. package/dist/core/securityDoctor.js +96 -0
  156. package/dist/core/securityDoctor.js.map +1 -0
  157. package/dist/core/skill.d.ts +16 -0
  158. package/dist/core/skill.js +81 -0
  159. package/dist/core/skill.js.map +1 -0
  160. package/dist/core/storage.d.ts +20 -0
  161. package/dist/core/storage.js +112 -0
  162. package/dist/core/storage.js.map +1 -0
  163. package/dist/core/tokens.d.ts +5 -0
  164. package/dist/core/tokens.js +24 -0
  165. package/dist/core/tokens.js.map +1 -0
  166. package/dist/core/worker.d.ts +51 -0
  167. package/dist/core/worker.js +312 -0
  168. package/dist/core/worker.js.map +1 -0
  169. package/dist/core/workflow.d.ts +61 -0
  170. package/dist/core/workflow.js +308 -0
  171. package/dist/core/workflow.js.map +1 -0
  172. package/dist/core/workspace.d.ts +7 -0
  173. package/dist/core/workspace.js +214 -0
  174. package/dist/core/workspace.js.map +1 -0
  175. package/dist/index.d.ts +2 -0
  176. package/dist/index.js +16 -0
  177. package/dist/index.js.map +1 -0
  178. package/dist/schemas/brief.d.ts +12 -0
  179. package/dist/schemas/brief.js +2 -0
  180. package/dist/schemas/brief.js.map +1 -0
  181. package/dist/schemas/eval.d.ts +96 -0
  182. package/dist/schemas/eval.js +30 -0
  183. package/dist/schemas/eval.js.map +1 -0
  184. package/dist/schemas/handoff.d.ts +33 -0
  185. package/dist/schemas/handoff.js +13 -0
  186. package/dist/schemas/handoff.js.map +1 -0
  187. package/dist/schemas/log.d.ts +51 -0
  188. package/dist/schemas/log.js +19 -0
  189. package/dist/schemas/log.js.map +1 -0
  190. package/dist/schemas/memory.d.ts +112 -0
  191. package/dist/schemas/memory.js +21 -0
  192. package/dist/schemas/memory.js.map +1 -0
  193. package/dist/schemas/memoryProposal.d.ts +181 -0
  194. package/dist/schemas/memoryProposal.js +46 -0
  195. package/dist/schemas/memoryProposal.js.map +1 -0
  196. package/dist/schemas/patch.d.ts +38 -0
  197. package/dist/schemas/patch.js +15 -0
  198. package/dist/schemas/patch.js.map +1 -0
  199. package/dist/schemas/project.d.ts +23 -0
  200. package/dist/schemas/project.js +8 -0
  201. package/dist/schemas/project.js.map +1 -0
  202. package/dist/schemas/skill.d.ts +26 -0
  203. package/dist/schemas/skill.js +9 -0
  204. package/dist/schemas/skill.js.map +1 -0
  205. package/dist/schemas/worker.d.ts +29 -0
  206. package/dist/schemas/worker.js +12 -0
  207. package/dist/schemas/worker.js.map +1 -0
  208. package/dist/version.d.ts +1 -0
  209. package/dist/version.js +3 -0
  210. package/dist/version.js.map +1 -0
  211. package/docs/codex-resume.md +13 -0
  212. package/docs/compatibility.md +49 -0
  213. package/docs/concept.md +13 -0
  214. package/docs/evals.md +18 -0
  215. package/docs/file-format.md +67 -0
  216. package/docs/handoff-briefs.md +9 -0
  217. package/docs/integrations/harnesses.md +74 -0
  218. package/docs/memory-lifecycle.md +23 -0
  219. package/docs/persistent-worker.md +15 -0
  220. package/docs/privacy-model.md +40 -0
  221. package/docs/quickstart.md +74 -0
  222. package/docs/release-checklist.md +68 -0
  223. package/docs/roadmap.md +33 -0
  224. package/docs/superpowers/plans/2026-06-08-briefops-oss-readiness.md +1272 -0
  225. package/docs/superpowers/plans/2026-06-08-codex-first-context-optimization.md +1176 -0
  226. package/docs/token-budget.md +63 -0
  227. package/examples/atlas-q/README.md +15 -0
  228. package/examples/codex-first-context/README.md +48 -0
  229. package/examples/codex-first-context/after-briefops-prime.md +40 -0
  230. package/examples/codex-first-context/before-manual-history-dump.md +18 -0
  231. package/examples/persistent-worker-demo/README.md +15 -0
  232. package/examples/persistent-worker-demo/after-codex-resume.md +17 -0
  233. package/examples/persistent-worker-demo/before-context-dump.md +5 -0
  234. package/examples/persistent-worker-demo/briefops-workspace/codex/prompts/resume_demo.md +29 -0
  235. package/examples/persistent-worker-demo/briefops-workspace/handoffs/handoff_demo.md +50 -0
  236. package/examples/persistent-worker-demo/briefops-workspace/logs/log_20260604_001.yaml +14 -0
  237. package/examples/persistent-worker-demo/briefops-workspace/logs/log_20260604_002.yaml +12 -0
  238. package/examples/persistent-worker-demo/briefops-workspace/memory/decisions.yaml +12 -0
  239. package/examples/persistent-worker-demo/briefops-workspace/memory/deprecated.yaml +1 -0
  240. package/examples/persistent-worker-demo/briefops-workspace/memory/facts.yaml +12 -0
  241. package/examples/persistent-worker-demo/briefops-workspace/memory/incidents.yaml +12 -0
  242. package/examples/persistent-worker-demo/briefops-workspace/memory/lessons.yaml +12 -0
  243. package/examples/persistent-worker-demo/briefops-workspace/memory-proposals/memprop_demo_001.memory-proposal.yaml +23 -0
  244. package/examples/persistent-worker-demo/briefops-workspace/projects/atlas-q.project.md +18 -0
  245. package/examples/persistent-worker-demo/briefops-workspace/skills/backtest-validation.skill.md +13 -0
  246. package/examples/persistent-worker-demo/briefops-workspace/skills/risk-review.skill.md +15 -0
  247. package/examples/persistent-worker-demo/briefops-workspace/workers/quant-reviewer.worker.yaml +12 -0
  248. package/examples/persistent-worker-demo/briefops-workspace/workers/summaries/quant-reviewer.summary.md +44 -0
  249. package/package.json +59 -0
  250. package/plugins/briefops-codex/.codex-plugin/plugin.json +39 -0
  251. package/plugins/briefops-codex/README.md +44 -0
  252. package/plugins/briefops-codex/skills/briefops-continue-worker/SKILL.md +22 -0
  253. package/plugins/briefops-codex/skills/briefops-finish-task/SKILL.md +22 -0
  254. package/plugins/briefops-codex/skills/briefops-prime-context/SKILL.md +24 -0
  255. package/plugins/briefops-codex/skills/briefops-review-memory/SKILL.md +27 -0
@@ -0,0 +1,312 @@
1
+ import { BriefOpsError } from "./errors.js";
2
+ import { withWorkspaceLock } from "./lock.js";
3
+ import { listWorkLogs } from "./log.js";
4
+ import { listMemory } from "./memory.js";
5
+ import { estimateTokens, truncateToTokenBudget } from "./tokens.js";
6
+ import { normalizeName, workerFilePath, workerSummaryFilePath, workspacePaths } from "./paths.js";
7
+ import { listFilesBySuffix, parseCommaList, readTextFile, writeTextFile, writeYamlFile } from "./storage.js";
8
+ import { requireWorkspace } from "./workspace.js";
9
+ import { workerProfileSchema } from "../schemas/worker.js";
10
+ import YAML from "yaml";
11
+ function normalizeList(value) {
12
+ if (Array.isArray(value)) {
13
+ return value.map(normalizeName);
14
+ }
15
+ return parseCommaList(value).map(normalizeName);
16
+ }
17
+ async function writeWorker(cwd, worker, force = true) {
18
+ const filePath = workerFilePath(cwd, worker.name);
19
+ if (!force) {
20
+ try {
21
+ await readTextFile(filePath);
22
+ throw new BriefOpsError(`File already exists: ${filePath}`);
23
+ }
24
+ catch (error) {
25
+ if (error instanceof BriefOpsError && error.message.startsWith("File not found")) {
26
+ await writeYamlFile(filePath, worker);
27
+ return filePath;
28
+ }
29
+ throw error;
30
+ }
31
+ }
32
+ await writeYamlFile(filePath, worker);
33
+ return filePath;
34
+ }
35
+ export async function createWorker(options) {
36
+ const cwd = options.cwd ?? process.cwd();
37
+ await requireWorkspace(cwd);
38
+ const name = normalizeName(options.name);
39
+ const worker = workerProfileSchema.parse({
40
+ name,
41
+ description: options.description ?? "",
42
+ project: options.project ? normalizeName(options.project) : undefined,
43
+ default_skills: normalizeList(options.skills),
44
+ style: Array.isArray(options.style) ? options.style : parseCommaList(options.style),
45
+ max_tokens: options.maxTokens ?? 300,
46
+ status: "active"
47
+ });
48
+ const filePath = await writeWorker(cwd, worker, Boolean(options.force));
49
+ return { path: filePath, worker };
50
+ }
51
+ export async function readWorker(cwd, name) {
52
+ await requireWorkspace(cwd);
53
+ const normalized = normalizeName(name);
54
+ const filePath = workerFilePath(cwd, normalized);
55
+ try {
56
+ const raw = await readTextFile(filePath);
57
+ const parsed = YAML.parse(raw);
58
+ const result = workerProfileSchema.safeParse(parsed);
59
+ if (!result.success) {
60
+ throw new BriefOpsError(`Invalid worker ${filePath}: ${result.error.message}`);
61
+ }
62
+ return result.data;
63
+ }
64
+ catch (error) {
65
+ if (error instanceof BriefOpsError && error.message.startsWith("File not found")) {
66
+ throw new BriefOpsError(`Worker not found: ${normalized}`);
67
+ }
68
+ throw error;
69
+ }
70
+ }
71
+ export async function showWorker(cwd, name) {
72
+ await requireWorkspace(cwd);
73
+ const normalized = normalizeName(name);
74
+ try {
75
+ return await readTextFile(workerFilePath(cwd, normalized));
76
+ }
77
+ catch (error) {
78
+ if (error instanceof BriefOpsError && error.message.startsWith("File not found")) {
79
+ throw new BriefOpsError(`Worker not found: ${normalized}`);
80
+ }
81
+ throw error;
82
+ }
83
+ }
84
+ export async function listWorkers(filters = {}) {
85
+ const cwd = filters.cwd ?? process.cwd();
86
+ await requireWorkspace(cwd);
87
+ const files = await listFilesBySuffix(workspacePaths(cwd).workers, ".worker.yaml");
88
+ const workers = await Promise.all(files.map(async (filePath) => {
89
+ const raw = await readTextFile(filePath);
90
+ const parsed = YAML.parse(raw);
91
+ const result = workerProfileSchema.safeParse(parsed);
92
+ if (!result.success) {
93
+ throw new BriefOpsError(`Invalid worker ${filePath}: ${result.error.message}`);
94
+ }
95
+ return result.data;
96
+ }));
97
+ return workers.filter((worker) => (filters.status ? worker.status === filters.status : true));
98
+ }
99
+ export async function summarizeWorker(cwd, name, limit = 5) {
100
+ const worker = await readWorker(cwd, name);
101
+ const directLogs = await listWorkLogs({ cwd, worker: worker.name, limit });
102
+ const skillLogs = directLogs.length > 0 || worker.default_skills.length === 0
103
+ ? []
104
+ : (await Promise.all(worker.default_skills.map((skill) => listWorkLogs({ cwd, skill, limit })))).flat();
105
+ const logs = [...directLogs, ...skillLogs]
106
+ .sort((a, b) => b.created_at.localeCompare(a.created_at))
107
+ .slice(0, limit);
108
+ if (logs.length === 0) {
109
+ return "No work history found for this worker yet.";
110
+ }
111
+ return logs
112
+ .map((log) => {
113
+ const skill = log.skill ? `/${log.skill}` : "";
114
+ return `- ${log.created_at}: ${log.project ?? "global"}${skill} - ${log.result}`;
115
+ })
116
+ .join("\n");
117
+ }
118
+ export async function refreshWorkerSummary(options) {
119
+ const cwd = options.cwd ?? process.cwd();
120
+ return withWorkspaceLock({ cwd, name: "worker-summary" }, async () => refreshWorkerSummaryUnlocked({
121
+ ...options,
122
+ cwd
123
+ }));
124
+ }
125
+ export async function refreshWorkerSummaryUnlocked(options) {
126
+ const cwd = options.cwd ?? process.cwd();
127
+ const worker = await readWorker(cwd, options.name);
128
+ const limit = options.limit ?? 20;
129
+ const logs = await listWorkLogs({ cwd, worker: worker.name, limit });
130
+ const skillLogs = logs.length > 0 || worker.default_skills.length === 0
131
+ ? []
132
+ : (await Promise.all(worker.default_skills.map((skill) => listWorkLogs({ cwd, skill, limit })))).flat();
133
+ const recentLogs = [...logs, ...skillLogs]
134
+ .sort((a, b) => b.created_at.localeCompare(a.created_at))
135
+ .slice(0, limit);
136
+ const skillSet = new Set(worker.default_skills);
137
+ const memories = await listMemory({
138
+ cwd,
139
+ project: worker.project,
140
+ status: "active"
141
+ });
142
+ const workerMemories = memories.filter((item) => !item.skill || skillSet.size === 0 || skillSet.has(item.skill));
143
+ const lessons = workerMemories
144
+ .filter((item) => item.type === "lesson")
145
+ .map((item) => item.content)
146
+ .slice(0, 10);
147
+ const incidents = workerMemories
148
+ .filter((item) => item.type === "incident")
149
+ .map((item) => item.content)
150
+ .slice(0, 8);
151
+ const rules = [
152
+ ...worker.style.map((style) => `Apply operating style: ${style}.`),
153
+ ...lessons.slice(0, 5).map((lesson) => `Use lesson: ${lesson}`)
154
+ ];
155
+ const content = [
156
+ `# Worker Summary: ${worker.name}`,
157
+ "",
158
+ "## Identity",
159
+ "",
160
+ worker.description || "No worker description recorded.",
161
+ "",
162
+ "## Default Project",
163
+ "",
164
+ worker.project ?? "No default project recorded.",
165
+ "",
166
+ "## Default Skills",
167
+ "",
168
+ worker.default_skills.length > 0
169
+ ? worker.default_skills.map((skill) => `- ${skill}`).join("\n")
170
+ : "- No default skills recorded.",
171
+ "",
172
+ "## Operating Style",
173
+ "",
174
+ worker.style.length > 0
175
+ ? worker.style.map((style) => `- ${style}`).join("\n")
176
+ : "- No operating style recorded.",
177
+ "",
178
+ "## Recent Work",
179
+ "",
180
+ recentLogs.length > 0
181
+ ? recentLogs
182
+ .map((log) => `- ${log.created_at.slice(0, 10)}: ${log.task}; ${log.result}`)
183
+ .join("\n")
184
+ : "- No recent work recorded.",
185
+ "",
186
+ "## Accumulated Lessons",
187
+ "",
188
+ lessons.length > 0 ? lessons.map((lesson) => `- ${lesson}`).join("\n") : "- No active lessons recorded.",
189
+ "",
190
+ "## Known Failure Patterns",
191
+ "",
192
+ incidents.length > 0
193
+ ? incidents.map((incident) => `- ${incident}`).join("\n")
194
+ : "- No active incidents recorded.",
195
+ "",
196
+ "## Active Judgment Rules",
197
+ "",
198
+ rules.length > 0 ? rules.map((rule) => `- ${rule}`).join("\n") : "- Verify before completion.",
199
+ "",
200
+ "## Last Refreshed",
201
+ "",
202
+ new Date().toISOString(),
203
+ ""
204
+ ].join("\n");
205
+ const filePath = workerSummaryFilePath(cwd, worker.name);
206
+ await writeTextFile(filePath, content, { force: true });
207
+ return {
208
+ path: filePath,
209
+ content,
210
+ tokens: estimateTokens(content)
211
+ };
212
+ }
213
+ export async function generateWorkerIntelligence(options) {
214
+ const cwd = options.cwd ?? process.cwd();
215
+ const worker = await readWorker(cwd, options.name);
216
+ const skillSet = new Set(worker.default_skills);
217
+ const memories = await listMemory({
218
+ cwd,
219
+ project: worker.project,
220
+ status: "active"
221
+ });
222
+ const workerMemories = memories.filter((item) => !item.skill || skillSet.size === 0 || skillSet.has(item.skill));
223
+ const logs = await listWorkLogs({ cwd, worker: worker.name, limit: 5 });
224
+ const byType = (type, limit) => workerMemories
225
+ .filter((item) => item.type === type)
226
+ .map((item) => `- ${item.content}`)
227
+ .slice(0, limit)
228
+ .join("\n") || "- No items found yet.";
229
+ const style = worker.style.length > 0
230
+ ? worker.style.map((item) => `- ${item}`).join("\n")
231
+ : "- Verify before completion.";
232
+ const recent = logs.length > 0
233
+ ? logs.map((log) => `- ${log.created_at.slice(0, 10)}: ${log.result}`).join("\n")
234
+ : "- No items found yet.";
235
+ const content = [
236
+ `# Worker Intelligence: ${worker.name}`,
237
+ "",
238
+ "## Identity",
239
+ "",
240
+ worker.description || "No worker description recorded.",
241
+ "",
242
+ "## Default Operating Style",
243
+ "",
244
+ style,
245
+ "",
246
+ "## Skill Bundle",
247
+ "",
248
+ worker.default_skills.length > 0
249
+ ? worker.default_skills.map((skill) => `- ${skill}`).join("\n")
250
+ : "- No default skills recorded.",
251
+ "",
252
+ "## Judgment Profile",
253
+ "",
254
+ "- Prefers explicit verification before merge recommendation.",
255
+ "- Treats unverified risk assumptions as blocking.",
256
+ "- Prioritizes project governance over short-term speed.",
257
+ "",
258
+ "## Accumulated Lessons",
259
+ "",
260
+ byType("lesson", 8),
261
+ "",
262
+ "## Known Failure Patterns",
263
+ "",
264
+ byType("incident", 6),
265
+ "",
266
+ "## Recent Work",
267
+ "",
268
+ recent,
269
+ "",
270
+ "## Active Decisions",
271
+ "",
272
+ byType("decision", 6),
273
+ ""
274
+ ].join("\n");
275
+ const budget = options.budget ?? 800;
276
+ const trimmed = truncateToTokenBudget(content, budget).text;
277
+ return {
278
+ content: trimmed,
279
+ tokens: estimateTokens(trimmed)
280
+ };
281
+ }
282
+ export async function readWorkerSummary(cwd, name) {
283
+ try {
284
+ return await readTextFile(workerSummaryFilePath(cwd, name));
285
+ }
286
+ catch (error) {
287
+ if (error instanceof BriefOpsError && error.message.startsWith("File not found")) {
288
+ return undefined;
289
+ }
290
+ throw error;
291
+ }
292
+ }
293
+ export async function formatWorkerForBrief(cwd, name) {
294
+ const worker = await readWorker(cwd, name);
295
+ const summary = await readWorkerSummary(cwd, name);
296
+ if (summary) {
297
+ return truncateToTokenBudget(summary, worker.max_tokens).text;
298
+ }
299
+ const sections = [
300
+ `Name: ${worker.name}`,
301
+ worker.description ? `Description: ${worker.description}` : undefined,
302
+ worker.project ? `Default project: ${worker.project}` : undefined,
303
+ worker.default_skills.length > 0
304
+ ? `Default skills: ${worker.default_skills.join(", ")}`
305
+ : undefined,
306
+ worker.style.length > 0 ? `Style: ${worker.style.join("; ")}` : undefined,
307
+ "Recent work history:",
308
+ await summarizeWorker(cwd, name, 3)
309
+ ].filter((line) => Boolean(line));
310
+ return sections.join("\n");
311
+ }
312
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/core/worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { type ExportPolicy } from "./exportPolicy.js";
2
+ import { type AddWorkLogOptions } from "./log.js";
3
+ export type FinishWorkOptions = AddWorkLogOptions & {
4
+ importance?: "trivial" | "normal" | "durable" | "incident" | string;
5
+ noMemoryProposal?: boolean;
6
+ proposeSkillPatch?: boolean;
7
+ refreshWorker?: boolean;
8
+ continueTask?: string;
9
+ };
10
+ export type FinishWorkResult = {
11
+ logId: string;
12
+ logPath: string;
13
+ memoryProposalId?: string;
14
+ memoryProposalPath?: string;
15
+ skillPatchId?: string;
16
+ skillPatchPath?: string;
17
+ workerSummaryPath?: string;
18
+ nextCommand: string;
19
+ warnings: string[];
20
+ };
21
+ export type ContinueWorkOptions = {
22
+ cwd?: string;
23
+ project?: string;
24
+ worker: string;
25
+ task: string;
26
+ budget?: number;
27
+ mode?: string;
28
+ completionPromise?: string;
29
+ outputPath?: string;
30
+ force?: boolean;
31
+ pack?: boolean;
32
+ };
33
+ export type ContinueWorkResult = {
34
+ readiness: string;
35
+ pendingMemoryProposals: number;
36
+ workerSummaryPath: string;
37
+ handoffPath?: string;
38
+ resumePath?: string;
39
+ packPath?: string;
40
+ nextCommand: string;
41
+ warnings: string[];
42
+ };
43
+ export type PackResumeOptions = {
44
+ cwd?: string;
45
+ worker: string;
46
+ project?: string;
47
+ task: string;
48
+ budget?: number;
49
+ outputPath?: string;
50
+ force?: boolean;
51
+ exportPolicy?: ExportPolicy;
52
+ };
53
+ export type PackResumeResult = {
54
+ path: string;
55
+ tokens: number;
56
+ content: string;
57
+ warnings: string[];
58
+ };
59
+ export declare function finishWork(options: FinishWorkOptions): Promise<FinishWorkResult>;
60
+ export declare function continueWork(options: ContinueWorkOptions): Promise<ContinueWorkResult>;
61
+ export declare function packResume(options: PackResumeOptions): Promise<PackResumeResult>;