@telora/daemon 0.16.33 → 0.16.44

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 (345) hide show
  1. package/build-info.json +2 -2
  2. package/dist/assembly-resolvers.d.ts +13 -65
  3. package/dist/assembly-resolvers.d.ts.map +1 -1
  4. package/dist/assembly-resolvers.js +15 -1915
  5. package/dist/assembly-resolvers.js.map +1 -1
  6. package/dist/audit-phase.d.ts +2 -2
  7. package/dist/audit-phase.d.ts.map +1 -1
  8. package/dist/audit-phase.js +1 -1
  9. package/dist/audit-phase.js.map +1 -1
  10. package/dist/{completion-handler.d.ts → completion/agent-completion.d.ts} +3 -3
  11. package/dist/completion/agent-completion.d.ts.map +1 -0
  12. package/dist/{completion-handler.js → completion/agent-completion.js} +7 -7
  13. package/dist/completion/agent-completion.js.map +1 -0
  14. package/dist/{completion-detector.d.ts → completion/detector.d.ts} +1 -1
  15. package/dist/completion/detector.d.ts.map +1 -0
  16. package/dist/{completion-detector.js → completion/detector.js} +1 -1
  17. package/dist/completion/detector.js.map +1 -0
  18. package/dist/{focus-completion-event.d.ts → completion/event.d.ts} +21 -3
  19. package/dist/completion/event.d.ts.map +1 -0
  20. package/dist/{focus-completion-event.js → completion/event.js} +55 -9
  21. package/dist/completion/event.js.map +1 -0
  22. package/dist/completion/index.d.ts +24 -0
  23. package/dist/completion/index.d.ts.map +1 -0
  24. package/dist/completion/index.js +25 -0
  25. package/dist/completion/index.js.map +1 -0
  26. package/dist/{focus-completion.d.ts → completion/team-completion.d.ts} +11 -11
  27. package/dist/completion/team-completion.d.ts.map +1 -0
  28. package/dist/{focus-completion.js → completion/team-completion.js} +37 -26
  29. package/dist/completion/team-completion.js.map +1 -0
  30. package/dist/{focus-team-lifecycle.d.ts → completion/team-lifecycle.d.ts} +2 -2
  31. package/dist/completion/team-lifecycle.d.ts.map +1 -0
  32. package/dist/{focus-team-lifecycle.js → completion/team-lifecycle.js} +12 -12
  33. package/dist/completion/team-lifecycle.js.map +1 -0
  34. package/dist/directive/directive-queue.d.ts +117 -0
  35. package/dist/directive/directive-queue.d.ts.map +1 -0
  36. package/dist/directive/directive-queue.js +114 -0
  37. package/dist/directive/directive-queue.js.map +1 -0
  38. package/dist/directive/stage-tracker.d.ts +23 -0
  39. package/dist/directive/stage-tracker.d.ts.map +1 -0
  40. package/dist/directive/stage-tracker.js +27 -0
  41. package/dist/directive/stage-tracker.js.map +1 -0
  42. package/dist/directive-executor.d.ts +3 -72
  43. package/dist/directive-executor.d.ts.map +1 -1
  44. package/dist/directive-executor.js +31 -83
  45. package/dist/directive-executor.js.map +1 -1
  46. package/dist/focus-engine.d.ts.map +1 -1
  47. package/dist/focus-engine.js +1 -2
  48. package/dist/focus-engine.js.map +1 -1
  49. package/dist/focus-executor.d.ts +4 -4
  50. package/dist/focus-executor.d.ts.map +1 -1
  51. package/dist/focus-executor.js +6 -5
  52. package/dist/focus-executor.js.map +1 -1
  53. package/dist/focus-merge.js +1 -1
  54. package/dist/focus-merge.js.map +1 -1
  55. package/dist/focus-prompt-builder.d.ts.map +1 -1
  56. package/dist/focus-prompt-builder.js +5 -39
  57. package/dist/focus-prompt-builder.js.map +1 -1
  58. package/dist/listener.js +1 -1
  59. package/dist/listener.js.map +1 -1
  60. package/dist/output-monitor.d.ts +1 -1
  61. package/dist/output-monitor.d.ts.map +1 -1
  62. package/dist/output-monitor.js +1 -1
  63. package/dist/output-monitor.js.map +1 -1
  64. package/dist/prompt-listing.d.ts +26 -0
  65. package/dist/prompt-listing.d.ts.map +1 -0
  66. package/dist/prompt-listing.js +55 -0
  67. package/dist/prompt-listing.js.map +1 -0
  68. package/dist/prompt-sections/context-sections.d.ts +32 -0
  69. package/dist/prompt-sections/context-sections.d.ts.map +1 -0
  70. package/dist/prompt-sections/context-sections.js +86 -0
  71. package/dist/prompt-sections/context-sections.js.map +1 -0
  72. package/dist/prompt-sections/execution-sections.d.ts +82 -0
  73. package/dist/prompt-sections/execution-sections.d.ts.map +1 -0
  74. package/dist/prompt-sections/execution-sections.js +601 -0
  75. package/dist/prompt-sections/execution-sections.js.map +1 -0
  76. package/dist/prompt-sections/persona-sections.d.ts +133 -0
  77. package/dist/prompt-sections/persona-sections.d.ts.map +1 -0
  78. package/dist/prompt-sections/persona-sections.js +317 -0
  79. package/dist/prompt-sections/persona-sections.js.map +1 -0
  80. package/dist/prompt-sections/role-sections.d.ts +24 -0
  81. package/dist/prompt-sections/role-sections.d.ts.map +1 -0
  82. package/dist/prompt-sections/role-sections.js +78 -0
  83. package/dist/prompt-sections/role-sections.js.map +1 -0
  84. package/dist/prompt-sections/shared.d.ts +66 -0
  85. package/dist/prompt-sections/shared.d.ts.map +1 -0
  86. package/dist/prompt-sections/shared.js +33 -0
  87. package/dist/prompt-sections/shared.js.map +1 -0
  88. package/dist/queries/index.d.ts +13 -0
  89. package/dist/queries/index.d.ts.map +1 -1
  90. package/dist/queries/index.js +9 -0
  91. package/dist/queries/index.js.map +1 -1
  92. package/dist/resolvers/agent-escalations.d.ts +2 -0
  93. package/dist/resolvers/agent-escalations.d.ts.map +1 -0
  94. package/dist/resolvers/agent-escalations.js +33 -0
  95. package/dist/resolvers/agent-escalations.js.map +1 -0
  96. package/dist/resolvers/agent-session-summaries.d.ts +2 -0
  97. package/dist/resolvers/agent-session-summaries.d.ts.map +1 -0
  98. package/dist/resolvers/agent-session-summaries.js +28 -0
  99. package/dist/resolvers/agent-session-summaries.js.map +1 -0
  100. package/dist/resolvers/delivery-acceptance-criteria.d.ts +2 -0
  101. package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -0
  102. package/dist/resolvers/delivery-acceptance-criteria.js +19 -0
  103. package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -0
  104. package/dist/resolvers/delivery-description.d.ts +2 -0
  105. package/dist/resolvers/delivery-description.d.ts.map +1 -0
  106. package/dist/resolvers/delivery-description.js +19 -0
  107. package/dist/resolvers/delivery-description.js.map +1 -0
  108. package/dist/resolvers/delivery-issues.d.ts +2 -0
  109. package/dist/resolvers/delivery-issues.d.ts.map +1 -0
  110. package/dist/resolvers/delivery-issues.js +58 -0
  111. package/dist/resolvers/delivery-issues.js.map +1 -0
  112. package/dist/resolvers/delivery-listing.d.ts +2 -0
  113. package/dist/resolvers/delivery-listing.d.ts.map +1 -0
  114. package/dist/resolvers/delivery-listing.js +54 -0
  115. package/dist/resolvers/delivery-listing.js.map +1 -0
  116. package/dist/resolvers/delivery-tech-context.d.ts +2 -0
  117. package/dist/resolvers/delivery-tech-context.d.ts.map +1 -0
  118. package/dist/resolvers/delivery-tech-context.js +19 -0
  119. package/dist/resolvers/delivery-tech-context.js.map +1 -0
  120. package/dist/resolvers/deployment-profile.d.ts +2 -0
  121. package/dist/resolvers/deployment-profile.d.ts.map +1 -0
  122. package/dist/resolvers/deployment-profile.js +28 -0
  123. package/dist/resolvers/deployment-profile.js.map +1 -0
  124. package/dist/resolvers/focus-anchoring-injections.d.ts +2 -0
  125. package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -0
  126. package/dist/resolvers/focus-anchoring-injections.js +123 -0
  127. package/dist/resolvers/focus-anchoring-injections.js.map +1 -0
  128. package/dist/resolvers/focus-context.d.ts +2 -0
  129. package/dist/resolvers/focus-context.d.ts.map +1 -0
  130. package/dist/resolvers/focus-context.js +47 -0
  131. package/dist/resolvers/focus-context.js.map +1 -0
  132. package/dist/resolvers/focus-injections.d.ts +2 -0
  133. package/dist/resolvers/focus-injections.d.ts.map +1 -0
  134. package/dist/resolvers/focus-injections.js +75 -0
  135. package/dist/resolvers/focus-injections.js.map +1 -0
  136. package/dist/resolvers/focus-last-review-report.d.ts +2 -0
  137. package/dist/resolvers/focus-last-review-report.d.ts.map +1 -0
  138. package/dist/resolvers/focus-last-review-report.js +46 -0
  139. package/dist/resolvers/focus-last-review-report.js.map +1 -0
  140. package/dist/resolvers/focus-reality-tree.d.ts +2 -0
  141. package/dist/resolvers/focus-reality-tree.d.ts.map +1 -0
  142. package/dist/resolvers/focus-reality-tree.js +50 -0
  143. package/dist/resolvers/focus-reality-tree.js.map +1 -0
  144. package/dist/resolvers/git-diff-against-base.d.ts +2 -0
  145. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -0
  146. package/dist/resolvers/git-diff-against-base.js +39 -0
  147. package/dist/resolvers/git-diff-against-base.js.map +1 -0
  148. package/dist/resolvers/guards-evaluation-results.d.ts +2 -0
  149. package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -0
  150. package/dist/resolvers/guards-evaluation-results.js +31 -0
  151. package/dist/resolvers/guards-evaluation-results.js.map +1 -0
  152. package/dist/resolvers/index.d.ts +50 -0
  153. package/dist/resolvers/index.d.ts.map +1 -0
  154. package/dist/resolvers/index.js +51 -0
  155. package/dist/resolvers/index.js.map +1 -0
  156. package/dist/resolvers/loop-context.d.ts +2 -0
  157. package/dist/resolvers/loop-context.d.ts.map +1 -0
  158. package/dist/resolvers/loop-context.js +113 -0
  159. package/dist/resolvers/loop-context.js.map +1 -0
  160. package/dist/resolvers/loop-delivery-index.d.ts +2 -0
  161. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -0
  162. package/dist/resolvers/loop-delivery-index.js +69 -0
  163. package/dist/resolvers/loop-delivery-index.js.map +1 -0
  164. package/dist/resolvers/loop-documents.d.ts +2 -0
  165. package/dist/resolvers/loop-documents.d.ts.map +1 -0
  166. package/dist/resolvers/loop-documents.js +30 -0
  167. package/dist/resolvers/loop-documents.js.map +1 -0
  168. package/dist/resolvers/loop-expected-effects.d.ts +2 -0
  169. package/dist/resolvers/loop-expected-effects.d.ts.map +1 -0
  170. package/dist/resolvers/loop-expected-effects.js +68 -0
  171. package/dist/resolvers/loop-expected-effects.js.map +1 -0
  172. package/dist/resolvers/loop-frt-statement.d.ts +2 -0
  173. package/dist/resolvers/loop-frt-statement.d.ts.map +1 -0
  174. package/dist/resolvers/loop-frt-statement.js +39 -0
  175. package/dist/resolvers/loop-frt-statement.js.map +1 -0
  176. package/dist/resolvers/loop-injection.d.ts +2 -0
  177. package/dist/resolvers/loop-injection.d.ts.map +1 -0
  178. package/dist/resolvers/loop-injection.js +48 -0
  179. package/dist/resolvers/loop-injection.js.map +1 -0
  180. package/dist/resolvers/loop-persona.d.ts +2 -0
  181. package/dist/resolvers/loop-persona.d.ts.map +1 -0
  182. package/dist/resolvers/loop-persona.js +40 -0
  183. package/dist/resolvers/loop-persona.js.map +1 -0
  184. package/dist/resolvers/loop-questions.d.ts +2 -0
  185. package/dist/resolvers/loop-questions.d.ts.map +1 -0
  186. package/dist/resolvers/loop-questions.js +49 -0
  187. package/dist/resolvers/loop-questions.js.map +1 -0
  188. package/dist/resolvers/loop-upstream-udes.d.ts +2 -0
  189. package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -0
  190. package/dist/resolvers/loop-upstream-udes.js +88 -0
  191. package/dist/resolvers/loop-upstream-udes.js.map +1 -0
  192. package/dist/resolvers/reality-metrics.d.ts +2 -0
  193. package/dist/resolvers/reality-metrics.d.ts.map +1 -0
  194. package/dist/resolvers/reality-metrics.js +86 -0
  195. package/dist/resolvers/reality-metrics.js.map +1 -0
  196. package/dist/resolvers/reality-projections.d.ts +2 -0
  197. package/dist/resolvers/reality-projections.d.ts.map +1 -0
  198. package/dist/resolvers/reality-projections.js +44 -0
  199. package/dist/resolvers/reality-projections.js.map +1 -0
  200. package/dist/resolvers/reality-tree-snapshot.d.ts +2 -0
  201. package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -0
  202. package/dist/resolvers/reality-tree-snapshot.js +45 -0
  203. package/dist/resolvers/reality-tree-snapshot.js.map +1 -0
  204. package/dist/resolvers/retired-injections.d.ts +2 -0
  205. package/dist/resolvers/retired-injections.d.ts.map +1 -0
  206. package/dist/resolvers/retired-injections.js +83 -0
  207. package/dist/resolvers/retired-injections.js.map +1 -0
  208. package/dist/resolvers/review-outcomes.d.ts +2 -0
  209. package/dist/resolvers/review-outcomes.d.ts.map +1 -0
  210. package/dist/resolvers/review-outcomes.js +38 -0
  211. package/dist/resolvers/review-outcomes.js.map +1 -0
  212. package/dist/resolvers/security-advisory.d.ts +2 -0
  213. package/dist/resolvers/security-advisory.d.ts.map +1 -0
  214. package/dist/resolvers/security-advisory.js +97 -0
  215. package/dist/resolvers/security-advisory.js.map +1 -0
  216. package/dist/resolvers/shared/audit.d.ts +19 -0
  217. package/dist/resolvers/shared/audit.d.ts.map +1 -0
  218. package/dist/resolvers/shared/audit.js +28 -0
  219. package/dist/resolvers/shared/audit.js.map +1 -0
  220. package/dist/resolvers/shared/format.d.ts +6 -0
  221. package/dist/resolvers/shared/format.d.ts.map +1 -0
  222. package/dist/resolvers/shared/format.js +17 -0
  223. package/dist/resolvers/shared/format.js.map +1 -0
  224. package/dist/resolvers/shared/git-diff.d.ts +14 -0
  225. package/dist/resolvers/shared/git-diff.d.ts.map +1 -0
  226. package/dist/resolvers/shared/git-diff.js +30 -0
  227. package/dist/resolvers/shared/git-diff.js.map +1 -0
  228. package/dist/resolvers/shared/loop-items.d.ts +30 -0
  229. package/dist/resolvers/shared/loop-items.d.ts.map +1 -0
  230. package/dist/resolvers/shared/loop-items.js +7 -0
  231. package/dist/resolvers/shared/loop-items.js.map +1 -0
  232. package/dist/resolvers/shared/loop.d.ts +48 -0
  233. package/dist/resolvers/shared/loop.d.ts.map +1 -0
  234. package/dist/resolvers/shared/loop.js +38 -0
  235. package/dist/resolvers/shared/loop.js.map +1 -0
  236. package/dist/resolvers/shared/reality-metrics.d.ts +63 -0
  237. package/dist/resolvers/shared/reality-metrics.d.ts.map +1 -0
  238. package/dist/resolvers/shared/reality-metrics.js +6 -0
  239. package/dist/resolvers/shared/reality-metrics.js.map +1 -0
  240. package/dist/resolvers/shared/reality-tree.d.ts +51 -0
  241. package/dist/resolvers/shared/reality-tree.d.ts.map +1 -0
  242. package/dist/resolvers/shared/reality-tree.js +125 -0
  243. package/dist/resolvers/shared/reality-tree.js.map +1 -0
  244. package/dist/resolvers/shared/wiki.d.ts +60 -0
  245. package/dist/resolvers/shared/wiki.d.ts.map +1 -0
  246. package/dist/resolvers/shared/wiki.js +122 -0
  247. package/dist/resolvers/shared/wiki.js.map +1 -0
  248. package/dist/resolvers/wiki-search.d.ts +2 -0
  249. package/dist/resolvers/wiki-search.d.ts.map +1 -0
  250. package/dist/resolvers/wiki-search.js +23 -0
  251. package/dist/resolvers/wiki-search.js.map +1 -0
  252. package/dist/resolvers/wiki-topic.d.ts +2 -0
  253. package/dist/resolvers/wiki-topic.d.ts.map +1 -0
  254. package/dist/resolvers/wiki-topic.js +29 -0
  255. package/dist/resolvers/wiki-topic.js.map +1 -0
  256. package/dist/resolvers/workflow-stages.d.ts +2 -0
  257. package/dist/resolvers/workflow-stages.d.ts.map +1 -0
  258. package/dist/resolvers/workflow-stages.js +26 -0
  259. package/dist/resolvers/workflow-stages.js.map +1 -0
  260. package/dist/session-lifecycle.d.ts +2 -2
  261. package/dist/session-lifecycle.d.ts.map +1 -1
  262. package/dist/session-lifecycle.js +3 -3
  263. package/dist/session-lifecycle.js.map +1 -1
  264. package/dist/{pending-spawn-guard.d.ts → spawner/guards.d.ts} +1 -1
  265. package/dist/spawner/guards.d.ts.map +1 -0
  266. package/dist/{pending-spawn-guard.js → spawner/guards.js} +2 -2
  267. package/dist/spawner/guards.js.map +1 -0
  268. package/dist/{focus-spawn-helpers.d.ts → spawner/helpers.d.ts} +6 -6
  269. package/dist/spawner/helpers.d.ts.map +1 -0
  270. package/dist/{focus-spawn-helpers.js → spawner/helpers.js} +8 -8
  271. package/dist/spawner/helpers.js.map +1 -0
  272. package/dist/spawner/index.d.ts +30 -0
  273. package/dist/spawner/index.d.ts.map +1 -0
  274. package/dist/spawner/index.js +32 -0
  275. package/dist/spawner/index.js.map +1 -0
  276. package/dist/{spawner-lifecycle.d.ts → spawner/lifecycle.d.ts} +3 -3
  277. package/dist/spawner/lifecycle.d.ts.map +1 -0
  278. package/dist/{spawner-lifecycle.js → spawner/lifecycle.js} +6 -6
  279. package/dist/spawner/lifecycle.js.map +1 -0
  280. package/dist/{spawner-liveness.d.ts → spawner/liveness.d.ts} +2 -2
  281. package/dist/spawner/liveness.d.ts.map +1 -0
  282. package/dist/{spawner-liveness.js → spawner/liveness.js} +4 -4
  283. package/dist/spawner/liveness.js.map +1 -0
  284. package/dist/{spawner-resolution.d.ts → spawner/resolution.d.ts} +2 -2
  285. package/dist/spawner/resolution.d.ts.map +1 -0
  286. package/dist/{spawner-resolution.js → spawner/resolution.js} +2 -2
  287. package/dist/spawner/resolution.js.map +1 -0
  288. package/dist/{team-spawner.d.ts → spawner/spawn-team.d.ts} +4 -4
  289. package/dist/spawner/spawn-team.d.ts.map +1 -0
  290. package/dist/{team-spawner.js → spawner/spawn-team.js} +19 -19
  291. package/dist/spawner/spawn-team.js.map +1 -0
  292. package/dist/{spawner.d.ts → spawner/state.d.ts} +8 -8
  293. package/dist/spawner/state.d.ts.map +1 -0
  294. package/dist/{spawner.js → spawner/state.js} +8 -8
  295. package/dist/spawner/state.js.map +1 -0
  296. package/dist/{spawner-stream-handlers.d.ts → spawner/stream-handlers.d.ts} +4 -4
  297. package/dist/spawner/stream-handlers.d.ts.map +1 -0
  298. package/dist/{spawner-stream-handlers.js → spawner/stream-handlers.js} +7 -7
  299. package/dist/spawner/stream-handlers.js.map +1 -0
  300. package/dist/{spawner-timeout.d.ts → spawner/timeout.d.ts} +2 -2
  301. package/dist/spawner/timeout.d.ts.map +1 -0
  302. package/dist/{spawner-timeout.js → spawner/timeout.js} +1 -1
  303. package/dist/spawner/timeout.js.map +1 -0
  304. package/dist/team-prompt-base.d.ts +16 -287
  305. package/dist/team-prompt-base.d.ts.map +1 -1
  306. package/dist/team-prompt-base.js +20 -1112
  307. package/dist/team-prompt-base.js.map +1 -1
  308. package/dist/templates/claude-md.d.ts.map +1 -1
  309. package/dist/templates/claude-md.js +0 -1
  310. package/dist/templates/claude-md.js.map +1 -1
  311. package/dist/types/focus.d.ts +1 -1
  312. package/dist/types/focus.d.ts.map +1 -1
  313. package/package.json +1 -1
  314. package/dist/completion-detector.d.ts.map +0 -1
  315. package/dist/completion-detector.js.map +0 -1
  316. package/dist/completion-handler.d.ts.map +0 -1
  317. package/dist/completion-handler.js.map +0 -1
  318. package/dist/focus-completion-event.d.ts.map +0 -1
  319. package/dist/focus-completion-event.js.map +0 -1
  320. package/dist/focus-completion.d.ts.map +0 -1
  321. package/dist/focus-completion.js.map +0 -1
  322. package/dist/focus-spawn-helpers.d.ts.map +0 -1
  323. package/dist/focus-spawn-helpers.js.map +0 -1
  324. package/dist/focus-team-lifecycle.d.ts.map +0 -1
  325. package/dist/focus-team-lifecycle.js.map +0 -1
  326. package/dist/pending-spawn-guard.d.ts.map +0 -1
  327. package/dist/pending-spawn-guard.js.map +0 -1
  328. package/dist/prompt-builder.d.ts +0 -14
  329. package/dist/prompt-builder.d.ts.map +0 -1
  330. package/dist/prompt-builder.js +0 -174
  331. package/dist/prompt-builder.js.map +0 -1
  332. package/dist/spawner-lifecycle.d.ts.map +0 -1
  333. package/dist/spawner-lifecycle.js.map +0 -1
  334. package/dist/spawner-liveness.d.ts.map +0 -1
  335. package/dist/spawner-liveness.js.map +0 -1
  336. package/dist/spawner-resolution.d.ts.map +0 -1
  337. package/dist/spawner-resolution.js.map +0 -1
  338. package/dist/spawner-stream-handlers.d.ts.map +0 -1
  339. package/dist/spawner-stream-handlers.js.map +0 -1
  340. package/dist/spawner-timeout.d.ts.map +0 -1
  341. package/dist/spawner-timeout.js.map +0 -1
  342. package/dist/spawner.d.ts.map +0 -1
  343. package/dist/spawner.js.map +0 -1
  344. package/dist/team-spawner.d.ts.map +0 -1
  345. package/dist/team-spawner.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Persona and framing section builders: review-defect remediation directive,
3
+ * remediation framing, loop-data maintenance, the close-loop bookkeeper persona
4
+ * + drift check, and the incremental resume-delta message. Extracted from
5
+ * team-prompt-base.ts.
6
+ */
7
+ import type { FocusIssueInfo } from '../types.js';
8
+ /**
9
+ * Build the review-defect remediation directive.
10
+ *
11
+ * Emitted when the team is being respawned to address issues filed by a
12
+ * review pass (see review-defect-detector.ts). The directive orients the
13
+ * team to "fix defects, not expand scope" -- the open issues on this
14
+ * focus are review-filed defects, not net-new product work.
15
+ *
16
+ * Returns an empty array when no review-filed defects are pending. The
17
+ * caller decides when to include the section based on detector state.
18
+ */
19
+ export declare function buildRemediationDirectiveSection(reviewFiledOpenCount: number): string[];
20
+ /**
21
+ * The marker we look for in the assembled stage-directive context to know a
22
+ * review report is being rendered into the prompt. The focus.last_review_report
23
+ * resolver in assembly-resolvers.ts emits this exact heading.
24
+ */
25
+ export declare const LAST_REVIEW_REPORT_HEADING = "## Last Review Report";
26
+ /**
27
+ * Build the remediation framing line for a review-driven dev session.
28
+ *
29
+ * Detection signal: the assembled stage-directive context contains a
30
+ * non-empty `## Last Review Report` section. When present, emit a single
31
+ * framing line that orients the agent toward "you previously shipped this --
32
+ * address the gaps, do not redo correct work". When absent, emit nothing.
33
+ *
34
+ * Reads ONLY from the assembled context string. No DB calls -- the
35
+ * focus.last_review_report resolver is the source of truth for whether a
36
+ * report exists; this section is a renderer of that signal.
37
+ *
38
+ * The caller's responsibility is to render this section BEFORE the
39
+ * assembled context, so the framing line appears above the report content
40
+ * in the final prompt.
41
+ */
42
+ export declare function buildRemediationFramingSection(assembledContext: string): string[];
43
+ /**
44
+ * Build the loop maintenance directive section.
45
+ * Instructs the agent to proactively maintain loop data as it works,
46
+ * making its thinking visible to humans for review and correction.
47
+ */
48
+ export declare function buildLoopMaintenanceSection(): string[];
49
+ /**
50
+ * Build the close_loop bookkeeper persona.
51
+ *
52
+ * The close_loop stage runs a different kind of agent: a "bookkeeper" whose
53
+ * single mandate is to drive every anchored injection to a terminal state
54
+ * (verified or escalated) and emit the residual tree-drift / incomplete-
55
+ * planning signals. The persona is intentionally narrow and asymmetric --
56
+ * the only outcomes for an anchored injection are:
57
+ *
58
+ * - verified -> evidence in the worktree supports the FRT overlay flip;
59
+ * call telora_reality_tree_injection_verify(...).
60
+ * - escalated -> evidence is absent or ambiguous; file an
61
+ * `injection_unverified` escalation. There is NO third
62
+ * option. The bookkeeper does not write code, does not
63
+ * propose new injections, and does not silently lower
64
+ * the bar by leaving an injection in `proposed` or
65
+ * `in_progress` indefinitely.
66
+ *
67
+ * Asymmetric bias: the system moves reality toward intent (verifying
68
+ * injections, retiring closed UDEs) but NEVER lowers intent toward the
69
+ * shipped reality (a delivery that did not actually flip its target UDE
70
+ * must escalate, not have its FRT overlay edited to match what shipped).
71
+ *
72
+ * The literal tokens "verified", "escalated", "no third option", "evidence",
73
+ * and "asymmetric" all appear verbatim so the persona is grep-verifiable
74
+ * by the close_loop directive tests and reviewers.
75
+ *
76
+ * Dispatched per stage `close_loop` -- the `loop.persona` resolver picks
77
+ * this variant when invoked with `variant=close_loop`, and the close_loop
78
+ * stage assembly recipe in the dispatcher uses `loop.persona(variant=close_loop)`.
79
+ */
80
+ export declare function buildCloseLoopBookkeeperPersona(): string;
81
+ /**
82
+ * Build the close_loop drift-check section.
83
+ *
84
+ * The close_loop stage agent (the focus "bookkeeper") propagates verified
85
+ * injection effects back into the CRT and checks the residual tree for drift
86
+ * against the focus statement. There is no stored apex node in the tree --
87
+ * `focus.description` is the implicit apex of the reality tree; UDEs
88
+ * articulate the gap between current reality and that statement.
89
+ *
90
+ * This section renders the focus statement verbatim and instructs the
91
+ * agent to compare residual UDEs against it. It MUST contain both the
92
+ * focus.description text and the literal token `tree_drift` so the
93
+ * directive-executor can confirm the close_loop prompt was assembled
94
+ * correctly (and so reviewers can grep for it).
95
+ *
96
+ * If `focusDescription` is null/empty, the section emits a notice that
97
+ * no apex statement is available and the drift check cannot be performed
98
+ * -- the agent should escalate.
99
+ *
100
+ * See:
101
+ * - Design principle "Tree-Focus Apex" in memory/design-principles.md
102
+ * - Wiki page "reality-trees-crt-frt-planning-layer", section
103
+ * "Tree-Focus Apex Convention"
104
+ */
105
+ export declare function buildCloseLoopDriftCheckSection(focusDescription: string | null | undefined): string[];
106
+ /** Inputs for the incremental resume-delta message. */
107
+ export interface ResumeDeltaContext {
108
+ /** Lineage being resumed (e.g. 'coding', 'review'). */
109
+ lineage: string;
110
+ /** Focus name for the framing line. */
111
+ focusName: string;
112
+ /** Assembled git.diff_against_base content (may be empty). */
113
+ gitDiff: string;
114
+ /**
115
+ * Open review-filed issues from the prior cycle. For the review lineage these
116
+ * are findings to re-verify; for coding they are defects to address.
117
+ */
118
+ priorFindings: FocusIssueInfo[];
119
+ }
120
+ /**
121
+ * Build the incremental delta message sent when a lineage's session is RESUMED
122
+ * (INJ-D). A resumed Claude session already holds its role framework, tools,
123
+ * status rules, and accumulated context -- re-sending the full prompt wastes
124
+ * tokens and re-anchors. The delta carries only what changed since the last
125
+ * cycle (the diff) plus the prior findings, deliberately omitting the
126
+ * role-framework sections.
127
+ *
128
+ * Anti-anchoring: for the review lineage the prior findings are framed as "to
129
+ * VERIFY, not trust" -- the diff and acceptance criteria remain ground truth
130
+ * each cycle, so a resumed reviewer re-examines rather than rubber-stamping.
131
+ */
132
+ export declare function buildResumeDeltaMessage(ctx: ResumeDeltaContext): string;
133
+ //# sourceMappingURL=persona-sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-sections.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/persona-sections.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,gCAAgC,CAC9C,oBAAoB,EAAE,MAAM,GAC3B,MAAM,EAAE,CAqBV;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAQjF;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CA8BtD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,+BAA+B,IAAI,MAAM,CAuDxD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,+BAA+B,CAC7C,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC1C,MAAM,EAAE,CAqCV;AAMD,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,aAAa,EAAE,cAAc,EAAE,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CA+CvE"}
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Persona and framing section builders: review-defect remediation directive,
3
+ * remediation framing, loop-data maintenance, the close-loop bookkeeper persona
4
+ * + drift check, and the incremental resume-delta message. Extracted from
5
+ * team-prompt-base.ts.
6
+ */
7
+ /**
8
+ * Build the review-defect remediation directive.
9
+ *
10
+ * Emitted when the team is being respawned to address issues filed by a
11
+ * review pass (see review-defect-detector.ts). The directive orients the
12
+ * team to "fix defects, not expand scope" -- the open issues on this
13
+ * focus are review-filed defects, not net-new product work.
14
+ *
15
+ * Returns an empty array when no review-filed defects are pending. The
16
+ * caller decides when to include the section based on detector state.
17
+ */
18
+ export function buildRemediationDirectiveSection(reviewFiledOpenCount) {
19
+ if (reviewFiledOpenCount <= 0)
20
+ return [];
21
+ return [
22
+ '### Review-Defect Remediation',
23
+ '',
24
+ `These deliveries contain ${reviewFiledOpenCount} open issue(s) filed by the`,
25
+ 'review team after auditing your prior work. Address them as defects to',
26
+ 'fix, not new scope to expand. Specifically:',
27
+ '',
28
+ '- Do NOT create additional deliveries unless directly required to fix a',
29
+ ' flagged defect.',
30
+ '- Do NOT widen scope. The review identified specific gaps -- close them.',
31
+ '- Issues filed during this review pass are tagged with `created_by_role_id`;',
32
+ ' treat them as the work plan for this remediation cycle.',
33
+ '- When all review-filed issues are Done, the daemon will automatically',
34
+ ' return the focus to verify so the next review pass can run.',
35
+ '',
36
+ 'You are in a remediation cycle. The bound is small (default 3 cycles)',
37
+ 'before escalation -- finish the defects efficiently and accurately.',
38
+ '',
39
+ ];
40
+ }
41
+ /**
42
+ * The marker we look for in the assembled stage-directive context to know a
43
+ * review report is being rendered into the prompt. The focus.last_review_report
44
+ * resolver in assembly-resolvers.ts emits this exact heading.
45
+ */
46
+ export const LAST_REVIEW_REPORT_HEADING = '## Last Review Report';
47
+ /**
48
+ * Build the remediation framing line for a review-driven dev session.
49
+ *
50
+ * Detection signal: the assembled stage-directive context contains a
51
+ * non-empty `## Last Review Report` section. When present, emit a single
52
+ * framing line that orients the agent toward "you previously shipped this --
53
+ * address the gaps, do not redo correct work". When absent, emit nothing.
54
+ *
55
+ * Reads ONLY from the assembled context string. No DB calls -- the
56
+ * focus.last_review_report resolver is the source of truth for whether a
57
+ * report exists; this section is a renderer of that signal.
58
+ *
59
+ * The caller's responsibility is to render this section BEFORE the
60
+ * assembled context, so the framing line appears above the report content
61
+ * in the final prompt.
62
+ */
63
+ export function buildRemediationFramingSection(assembledContext) {
64
+ if (!assembledContext.includes(LAST_REVIEW_REPORT_HEADING))
65
+ return [];
66
+ return [
67
+ '## Remediation Mode',
68
+ '',
69
+ "You previously delivered this focus. Review identified the following gaps. Address them; don't redo already-correct work.",
70
+ '',
71
+ ];
72
+ }
73
+ /**
74
+ * Build the loop maintenance directive section.
75
+ * Instructs the agent to proactively maintain loop data as it works,
76
+ * making its thinking visible to humans for review and correction.
77
+ */
78
+ export function buildLoopMaintenanceSection() {
79
+ return [
80
+ '### Loop Data Maintenance',
81
+ '',
82
+ 'As you work, proactively maintain loop data to make your thinking visible.',
83
+ 'Loop data is how humans review and correct your understanding. Treat it',
84
+ 'as a mirror of your current mental model, not a report to write at the end.',
85
+ '',
86
+ '**When to update loop documents** (`telora_loop_document`):',
87
+ '- When your understanding of the focus or delivery shifts during work',
88
+ '- When you discover architectural constraints or tradeoffs not yet captured',
89
+ '- When a human correction reveals something about intent you did not have',
90
+ '- Re-rank documents when priorities shift (higher rank = more important)',
91
+ '',
92
+ '**When to generate questions** (`telora_loop_question`):',
93
+ '- When you encounter uncertainty or ambiguity in requirements',
94
+ '- When you see tradeoffs that may need human judgment',
95
+ '- When something seems inconsistent between layers (focus vs delivery)',
96
+ '- Use type "generated" and rank by importance (lower sort_order = higher priority)',
97
+ '',
98
+ '**When to answer questions** (`telora_loop_answer`):',
99
+ '- Answer fixed questions when you have a position based on your work',
100
+ '- Update answers when your position changes due to new information',
101
+ '- Answer your own generated questions when you reach conclusions',
102
+ '',
103
+ '**Cadence**: Update loop data at natural work boundaries -- after completing',
104
+ 'an issue, when switching between deliveries, or when a significant insight',
105
+ 'emerges. Do not batch all updates to the end of the session.',
106
+ '',
107
+ ];
108
+ }
109
+ /**
110
+ * Build the close_loop bookkeeper persona.
111
+ *
112
+ * The close_loop stage runs a different kind of agent: a "bookkeeper" whose
113
+ * single mandate is to drive every anchored injection to a terminal state
114
+ * (verified or escalated) and emit the residual tree-drift / incomplete-
115
+ * planning signals. The persona is intentionally narrow and asymmetric --
116
+ * the only outcomes for an anchored injection are:
117
+ *
118
+ * - verified -> evidence in the worktree supports the FRT overlay flip;
119
+ * call telora_reality_tree_injection_verify(...).
120
+ * - escalated -> evidence is absent or ambiguous; file an
121
+ * `injection_unverified` escalation. There is NO third
122
+ * option. The bookkeeper does not write code, does not
123
+ * propose new injections, and does not silently lower
124
+ * the bar by leaving an injection in `proposed` or
125
+ * `in_progress` indefinitely.
126
+ *
127
+ * Asymmetric bias: the system moves reality toward intent (verifying
128
+ * injections, retiring closed UDEs) but NEVER lowers intent toward the
129
+ * shipped reality (a delivery that did not actually flip its target UDE
130
+ * must escalate, not have its FRT overlay edited to match what shipped).
131
+ *
132
+ * The literal tokens "verified", "escalated", "no third option", "evidence",
133
+ * and "asymmetric" all appear verbatim so the persona is grep-verifiable
134
+ * by the close_loop directive tests and reviewers.
135
+ *
136
+ * Dispatched per stage `close_loop` -- the `loop.persona` resolver picks
137
+ * this variant when invoked with `variant=close_loop`, and the close_loop
138
+ * stage assembly recipe in the dispatcher uses `loop.persona(variant=close_loop)`.
139
+ */
140
+ export function buildCloseLoopBookkeeperPersona() {
141
+ return [
142
+ '## Persona: Close-Loop Bookkeeper',
143
+ '',
144
+ 'You are the focus bookkeeper. The focus has reached the `close_loop` stage,',
145
+ 'which means all deliveries are settled and review has converged. Your job',
146
+ 'is NOT to write code, NOT to widen scope, NOT to propose new injections.',
147
+ 'Your job is to drive every anchored injection on this focus to a terminal',
148
+ 'state.',
149
+ '',
150
+ '**Per-injection sweep (asymmetric outcomes):**',
151
+ '',
152
+ 'For each injection anchored to a delivery in this focus, there are exactly',
153
+ 'two outcomes -- no third option:',
154
+ '',
155
+ '1. **verified** -- the worktree evidence supports the FRT overlay flip.',
156
+ ' The target UDE is genuinely retired; downstream effects flipped as',
157
+ ' the injection promised. Call',
158
+ ' `telora_reality_tree_injection_verify(injectionId, evidence)` so the',
159
+ ' injection node is marked verified, its targets edges are deleted, and',
160
+ ' the FRT overlays on targeted UDEs promote to CRT reality.',
161
+ '',
162
+ '2. **escalated** -- evidence is absent, ambiguous, or contradicts the',
163
+ ' expected reality change. File an `injection_unverified` escalation',
164
+ ' with the specific gap: which UDE did not flip, which evidence was',
165
+ ' sought and not found, which delivery shipped without realizing the',
166
+ ' injection. The escalation surfaces to a human; the focus stays at',
167
+ ' `close_loop` until every anchored injection is verified or escalated.',
168
+ '',
169
+ '**Evidence rules.** Evidence MUST be worktree-checkable: files exist,',
170
+ 'tests pass, code matches a pattern, migrations applied, lint clean.',
171
+ 'Evidence is NEVER "the team said they did it" or "an agent narration',
172
+ 'claimed it shipped". If evidence is not in the worktree, it does not',
173
+ 'exist for the purposes of this sweep -- escalate.',
174
+ '',
175
+ '**Asymmetric correction.** The control loop moves reality toward intent,',
176
+ 'never the reverse. If a delivery shipped code that does not actually',
177
+ 'flip its target UDE, you ESCALATE (the intent was missed); you do NOT',
178
+ 'silently rewrite the FRT overlay statement to match what shipped. The',
179
+ 'asymmetric bias is the whole reason the bookkeeper exists.',
180
+ '',
181
+ '**Other checks the dispatcher delegates to you:**',
182
+ '',
183
+ '- `incomplete_planning` -- any deliveries that shipped without anchoring',
184
+ ' an injection, or any "injection-shaped" residual work the focus did',
185
+ ' not declare. File one `incomplete_planning` escalation per gap.',
186
+ '- `tree_drift` -- residual UDEs in the focus tree that no longer relate',
187
+ ' to the focus statement (the implicit apex). See the drift-check',
188
+ ' section below for the procedure.',
189
+ '',
190
+ 'You do not advance the focus to `done` yourself. The daemon advances',
191
+ '`close_loop -> done` automatically once every anchored injection is',
192
+ 'terminal (verified or escalated) and the residual checks are clean.',
193
+ '',
194
+ ].join('\n');
195
+ }
196
+ /**
197
+ * Build the close_loop drift-check section.
198
+ *
199
+ * The close_loop stage agent (the focus "bookkeeper") propagates verified
200
+ * injection effects back into the CRT and checks the residual tree for drift
201
+ * against the focus statement. There is no stored apex node in the tree --
202
+ * `focus.description` is the implicit apex of the reality tree; UDEs
203
+ * articulate the gap between current reality and that statement.
204
+ *
205
+ * This section renders the focus statement verbatim and instructs the
206
+ * agent to compare residual UDEs against it. It MUST contain both the
207
+ * focus.description text and the literal token `tree_drift` so the
208
+ * directive-executor can confirm the close_loop prompt was assembled
209
+ * correctly (and so reviewers can grep for it).
210
+ *
211
+ * If `focusDescription` is null/empty, the section emits a notice that
212
+ * no apex statement is available and the drift check cannot be performed
213
+ * -- the agent should escalate.
214
+ *
215
+ * See:
216
+ * - Design principle "Tree-Focus Apex" in memory/design-principles.md
217
+ * - Wiki page "reality-trees-crt-frt-planning-layer", section
218
+ * "Tree-Focus Apex Convention"
219
+ */
220
+ export function buildCloseLoopDriftCheckSection(focusDescription) {
221
+ const lines = [];
222
+ lines.push('### Tree-Focus Apex Drift Check (tree_drift)');
223
+ lines.push('');
224
+ lines.push('Telora reality trees do NOT have a stored apex/root node.');
225
+ lines.push('The focus statement -- `focus.description` -- IS the implicit');
226
+ lines.push('apex. UDEs articulate the gap between current reality and that');
227
+ lines.push('statement. Classical Goldratt single-apex CRT structure is not');
228
+ lines.push('used here; the focus is the alignment target.');
229
+ lines.push('');
230
+ lines.push('**Focus statement (apex):**');
231
+ lines.push('');
232
+ if (focusDescription && focusDescription.trim()) {
233
+ lines.push('> ' + focusDescription.trim().split('\n').join('\n> '));
234
+ }
235
+ else {
236
+ lines.push('> _(no focus.description set -- escalate; drift check cannot run)_');
237
+ }
238
+ lines.push('');
239
+ lines.push('**tree_drift check:**');
240
+ lines.push('');
241
+ lines.push('1. Enumerate residual UDEs in the CRT (nodeType=undesired_effect,');
242
+ lines.push(' status=active) for this focus.');
243
+ lines.push('2. For each UDE, ask: does it describe a gap that the focus');
244
+ lines.push(' statement above commits to closing?');
245
+ lines.push('3. UDEs that no longer relate to the focus statement are DRIFT.');
246
+ lines.push(' Mark them inactive or escalate for human triage -- do not');
247
+ lines.push(' leave drift in an "active" focus tree.');
248
+ lines.push('4. UDEs that DO relate but remain unaddressed after all anchored');
249
+ lines.push(' injections are verified are the unresolved gap -- file them');
250
+ lines.push(' as escalations so the next focus / human review picks them up.');
251
+ lines.push('');
252
+ lines.push('Reminder: there is no apex node to verify or close. Closing the');
253
+ lines.push('loop means: every anchored injection is terminal, residual UDEs');
254
+ lines.push('have been classified (resolved / drift / escalated), and the');
255
+ lines.push('focus statement is the only thing the tree is judged against.');
256
+ lines.push('');
257
+ return lines;
258
+ }
259
+ /**
260
+ * Build the incremental delta message sent when a lineage's session is RESUMED
261
+ * (INJ-D). A resumed Claude session already holds its role framework, tools,
262
+ * status rules, and accumulated context -- re-sending the full prompt wastes
263
+ * tokens and re-anchors. The delta carries only what changed since the last
264
+ * cycle (the diff) plus the prior findings, deliberately omitting the
265
+ * role-framework sections.
266
+ *
267
+ * Anti-anchoring: for the review lineage the prior findings are framed as "to
268
+ * VERIFY, not trust" -- the diff and acceptance criteria remain ground truth
269
+ * each cycle, so a resumed reviewer re-examines rather than rubber-stamping.
270
+ */
271
+ export function buildResumeDeltaMessage(ctx) {
272
+ const isReview = ctx.lineage === 'review';
273
+ const lines = [];
274
+ lines.push(`## Resuming Your ${isReview ? 'Review' : 'Work'} Session (Incremental Update)`);
275
+ lines.push('');
276
+ lines.push(`You are resuming your prior \`${ctx.lineage}\` session on focus "${ctx.focusName}".`);
277
+ lines.push('Your role, tools, status-update rules, and the context you accumulated in');
278
+ lines.push('earlier cycles are intact -- this message is ONLY what changed since your last');
279
+ lines.push('cycle. Do not restart from scratch and do not re-read the full role framework.');
280
+ lines.push('The diff below and the acceptance criteria (re-read via MCP if needed) are the');
281
+ lines.push('ground truth for this cycle.');
282
+ lines.push('');
283
+ if (ctx.priorFindings.length > 0) {
284
+ if (isReview) {
285
+ lines.push('### Prior findings to VERIFY (do not trust)');
286
+ lines.push('');
287
+ lines.push('Last cycle you filed the issues below. Do NOT assume they were fixed.');
288
+ lines.push('For each, check the diff and the current code to confirm it was actually');
289
+ lines.push('addressed. If it was genuinely resolved, leave it; if not, keep or refile');
290
+ lines.push('the issue with the specific remaining gap. Your memory is not evidence --');
291
+ lines.push('the diff is.');
292
+ }
293
+ else {
294
+ lines.push('### Open items from review to address');
295
+ lines.push('');
296
+ lines.push('Review filed the issues below against your prior work. Address each as a');
297
+ lines.push('defect to fix and confirm the fix in the diff. Do not widen scope.');
298
+ }
299
+ lines.push('');
300
+ for (const f of ctx.priorFindings) {
301
+ lines.push(`- ${f.key}: ${f.title} (${f.status})`);
302
+ }
303
+ lines.push('');
304
+ }
305
+ lines.push('### What changed since your last cycle (diff against base)');
306
+ lines.push('');
307
+ if (ctx.gitDiff.trim()) {
308
+ lines.push(ctx.gitDiff.trim());
309
+ }
310
+ else {
311
+ lines.push('_The diff resolver returned no content. Run `git diff` against the');
312
+ lines.push('integration base yourself to see the current state of the worktree._');
313
+ }
314
+ lines.push('');
315
+ return lines.join('\n');
316
+ }
317
+ //# sourceMappingURL=persona-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-sections.js","sourceRoot":"","sources":["../../src/prompt-sections/persona-sections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Role-framework section builders: role context, domain boundaries, team-lead
3
+ * role description, and the read-only audit notice. Extracted from
4
+ * team-prompt-base.ts.
5
+ */
6
+ import type { AgentRole } from '../types.js';
7
+ /**
8
+ * Build the role context section from the agent role's system prompt template.
9
+ */
10
+ export declare function buildRoleSection(role: AgentRole): string[];
11
+ /**
12
+ * Build the domain boundaries section from allowed file patterns.
13
+ */
14
+ export declare function buildDomainBoundariesSection(role: AgentRole): string[];
15
+ /**
16
+ * Build the team lead role description section.
17
+ */
18
+ export declare function buildTeamLeadRoleSection(engineId?: string): string[];
19
+ /**
20
+ * Build the read-only audit mode notice section.
21
+ * Returns empty array if not in read-only mode.
22
+ */
23
+ export declare function buildReadOnlyAuditSection(readOnly?: boolean): string[];
24
+ //# sourceMappingURL=role-sections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-sections.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/role-sections.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAO1D;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,EAAE,CAWtE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBpE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,EAAE,CAkBtE"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Role-framework section builders: role context, domain boundaries, team-lead
3
+ * role description, and the read-only audit notice. Extracted from
4
+ * team-prompt-base.ts.
5
+ */
6
+ import { orchestrationVocabulary } from './shared.js';
7
+ /**
8
+ * Build the role context section from the agent role's system prompt template.
9
+ */
10
+ export function buildRoleSection(role) {
11
+ const lines = [];
12
+ if (role.system_prompt_template) {
13
+ lines.push(role.system_prompt_template);
14
+ lines.push('');
15
+ }
16
+ return lines;
17
+ }
18
+ /**
19
+ * Build the domain boundaries section from allowed file patterns.
20
+ */
21
+ export function buildDomainBoundariesSection(role) {
22
+ const lines = [];
23
+ if (role.allowed_file_patterns.length > 0) {
24
+ lines.push('## Domain Boundaries');
25
+ lines.push('You are authorized to work on files matching these patterns:');
26
+ for (const pattern of role.allowed_file_patterns) {
27
+ lines.push(`- ${pattern}`);
28
+ }
29
+ lines.push('');
30
+ }
31
+ return lines;
32
+ }
33
+ /**
34
+ * Build the team lead role description section.
35
+ */
36
+ export function buildTeamLeadRoleSection(engineId) {
37
+ const vocab = orchestrationVocabulary(engineId);
38
+ return [
39
+ '## Your Role: Focus Team Lead',
40
+ '',
41
+ 'You are the team lead for this focus. You coordinate all deliveries',
42
+ 'and their issues, spawning workers for parallel execution where possible.',
43
+ '',
44
+ '**Core responsibilities:**',
45
+ '1. Read all deliveries and issues for the focus',
46
+ '2. Build a task execution plan respecting delivery priority and file overlap',
47
+ vocab.spawnStep,
48
+ '4. Track issue completion and advance delivery stages',
49
+ '5. Poll for new deliveries added during execution',
50
+ '6. Handle errors, escalate blockers, and report progress',
51
+ '',
52
+ ];
53
+ }
54
+ /**
55
+ * Build the read-only audit mode notice section.
56
+ * Returns empty array if not in read-only mode.
57
+ */
58
+ export function buildReadOnlyAuditSection(readOnly) {
59
+ if (!readOnly)
60
+ return [];
61
+ return [
62
+ '## READ-ONLY AUDIT MODE',
63
+ '',
64
+ 'This is a read-only audit session. The filesystem allows reading but commits',
65
+ 'are blocked by a pre-commit hook. Your job is DISCOVERY ONLY:',
66
+ '',
67
+ '- Identify and document problems by creating issues via MCP tools',
68
+ '- Create exactly ONE remediation delivery per audit delivery via',
69
+ ' telora_product_delivery_create (execution_status: "planning")',
70
+ '- Use Context Groups to organize findings within remediation deliveries',
71
+ '- Do NOT modify, fix, or commit any code changes',
72
+ '- Do NOT attempt to bypass the pre-commit hook',
73
+ '',
74
+ 'If you try to commit, the hook will reject it with a reminder of these rules.',
75
+ '',
76
+ ];
77
+ }
78
+ //# sourceMappingURL=role-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-sections.js","sourceRoot":"","sources":["../../src/prompt-sections/role-sections.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAe;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAe;IAC1D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC3E,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAAiB;IACxD,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO;QACL,+BAA+B;QAC/B,EAAE;QACF,qEAAqE;QACrE,2EAA2E;QAC3E,EAAE;QACF,4BAA4B;QAC5B,iDAAiD;QACjD,8EAA8E;QAC9E,KAAK,CAAC,SAAS;QACf,uDAAuD;QACvD,mDAAmD;QACnD,0DAA0D;QAC1D,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,QAAkB;IAC1D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO;QACL,yBAAyB;QACzB,EAAE;QACF,8EAA8E;QAC9E,+DAA+D;QAC/D,EAAE;QACF,mEAAmE;QACnE,kEAAkE;QAClE,iEAAiE;QACjE,yEAAyE;QACzE,kDAAkD;QAClD,gDAAgD;QAChD,EAAE;QACF,+EAA+E;QAC/E,EAAE;KACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Shared types and private helpers for the focus team prompt section builders.
3
+ *
4
+ * Extracted from team-prompt-base.ts. Holds the prompt-context interfaces and
5
+ * the engine-specific orchestration vocabulary helper used by 2+ section
6
+ * modules, so the section modules and the team-prompt-base aggregator import
7
+ * from one place (avoids circular imports).
8
+ */
9
+ import type { FocusDeliveryInfo, FocusIssueInfo, FocusExecutionConfig, PipelineConfig } from '../types.js';
10
+ import type { ProductContextDoc } from '../queries/focuses.js';
11
+ export interface DeploymentProfileSnapshotContext {
12
+ name: string;
13
+ inceptionPrompt: string | null;
14
+ guidelines: string | null;
15
+ }
16
+ export interface FocusTeamPromptContext {
17
+ focusId: string;
18
+ focusName: string;
19
+ organizationId: string;
20
+ productId: string;
21
+ deliveries: FocusDeliveryInfo[];
22
+ issues: FocusIssueInfo[];
23
+ executionConfig: FocusExecutionConfig;
24
+ pipelineConfig: PipelineConfig | null;
25
+ productContextDocs?: ProductContextDoc[];
26
+ deploymentProfileSnapshot?: DeploymentProfileSnapshotContext | null;
27
+ readOnly?: boolean;
28
+ loopContext?: string;
29
+ /**
30
+ * Number of open review-filed issues across all deliveries on this
31
+ * focus. When > 0, the team prompt includes a remediation directive
32
+ * orienting the team to "fix flagged defects, do not expand scope".
33
+ */
34
+ reviewFiledOpenCount?: number;
35
+ /**
36
+ * Focus.description -- the focus statement that serves as the implicit
37
+ * apex of the reality tree. Surfaced to the close_loop stage agent as
38
+ * the alignment target for the tree-drift check. See the design
39
+ * principle "Tree-Focus Apex" and the wiki page
40
+ * "reality-trees-crt-frt-planning-layer".
41
+ */
42
+ focusDescription?: string | null;
43
+ /**
44
+ * Resolved engine backend id ('claude' | 'codex' | ...). Selects the
45
+ * engine-specific orchestration vocabulary in the lead prompt (how the lead
46
+ * spawns workers). Defaults to 'claude' when absent.
47
+ */
48
+ engineId?: string;
49
+ }
50
+ /**
51
+ * The lead spawns workers differently per engine. Portable task content (what
52
+ * to build, status protocol, MCP rules) is identical; only the orchestration
53
+ * verbs differ. Codex also needs an explicit caveat about clean subagent
54
+ * spawns (the spike hit a router error when a full-history fork carried
55
+ * agent_type/model/reasoning_effort).
56
+ */
57
+ export interface OrchestrationVocabulary {
58
+ /** One-line description of how to spawn parallel work (role section step 3). */
59
+ spawnStep: string;
60
+ /** Opening of the Phase 2 worker-management section. */
61
+ workerMechanism: string;
62
+ /** Optional extra caveat lines appended to worker-management (Codex). */
63
+ caveat: string[];
64
+ }
65
+ export declare function orchestrationVocabulary(engineId: string | undefined): OrchestrationVocabulary;
66
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/prompt-sections/shared.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,EAAE,oBAAoB,CAAC;IACtC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,yBAAyB,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB;IACtC,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,uBAAuB,CAyB7F"}