@telora/daemon 0.16.33 → 0.16.42

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 (313) 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-executor.d.ts +30 -0
  35. package/dist/directive-executor.d.ts.map +1 -1
  36. package/dist/directive-executor.js +46 -0
  37. package/dist/directive-executor.js.map +1 -1
  38. package/dist/focus-engine.d.ts.map +1 -1
  39. package/dist/focus-engine.js +1 -2
  40. package/dist/focus-engine.js.map +1 -1
  41. package/dist/focus-executor.d.ts +4 -4
  42. package/dist/focus-executor.d.ts.map +1 -1
  43. package/dist/focus-executor.js +5 -5
  44. package/dist/focus-executor.js.map +1 -1
  45. package/dist/focus-merge.js +1 -1
  46. package/dist/focus-merge.js.map +1 -1
  47. package/dist/focus-prompt-builder.d.ts.map +1 -1
  48. package/dist/focus-prompt-builder.js +5 -39
  49. package/dist/focus-prompt-builder.js.map +1 -1
  50. package/dist/listener.js +1 -1
  51. package/dist/listener.js.map +1 -1
  52. package/dist/output-monitor.d.ts +1 -1
  53. package/dist/output-monitor.d.ts.map +1 -1
  54. package/dist/output-monitor.js +1 -1
  55. package/dist/output-monitor.js.map +1 -1
  56. package/dist/prompt-listing.d.ts +26 -0
  57. package/dist/prompt-listing.d.ts.map +1 -0
  58. package/dist/prompt-listing.js +55 -0
  59. package/dist/prompt-listing.js.map +1 -0
  60. package/dist/queries/index.d.ts +13 -0
  61. package/dist/queries/index.d.ts.map +1 -1
  62. package/dist/queries/index.js +9 -0
  63. package/dist/queries/index.js.map +1 -1
  64. package/dist/resolvers/agent-escalations.d.ts +2 -0
  65. package/dist/resolvers/agent-escalations.d.ts.map +1 -0
  66. package/dist/resolvers/agent-escalations.js +33 -0
  67. package/dist/resolvers/agent-escalations.js.map +1 -0
  68. package/dist/resolvers/agent-session-summaries.d.ts +2 -0
  69. package/dist/resolvers/agent-session-summaries.d.ts.map +1 -0
  70. package/dist/resolvers/agent-session-summaries.js +28 -0
  71. package/dist/resolvers/agent-session-summaries.js.map +1 -0
  72. package/dist/resolvers/delivery-acceptance-criteria.d.ts +2 -0
  73. package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -0
  74. package/dist/resolvers/delivery-acceptance-criteria.js +19 -0
  75. package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -0
  76. package/dist/resolvers/delivery-description.d.ts +2 -0
  77. package/dist/resolvers/delivery-description.d.ts.map +1 -0
  78. package/dist/resolvers/delivery-description.js +19 -0
  79. package/dist/resolvers/delivery-description.js.map +1 -0
  80. package/dist/resolvers/delivery-issues.d.ts +2 -0
  81. package/dist/resolvers/delivery-issues.d.ts.map +1 -0
  82. package/dist/resolvers/delivery-issues.js +58 -0
  83. package/dist/resolvers/delivery-issues.js.map +1 -0
  84. package/dist/resolvers/delivery-listing.d.ts +2 -0
  85. package/dist/resolvers/delivery-listing.d.ts.map +1 -0
  86. package/dist/resolvers/delivery-listing.js +54 -0
  87. package/dist/resolvers/delivery-listing.js.map +1 -0
  88. package/dist/resolvers/delivery-tech-context.d.ts +2 -0
  89. package/dist/resolvers/delivery-tech-context.d.ts.map +1 -0
  90. package/dist/resolvers/delivery-tech-context.js +19 -0
  91. package/dist/resolvers/delivery-tech-context.js.map +1 -0
  92. package/dist/resolvers/deployment-profile.d.ts +2 -0
  93. package/dist/resolvers/deployment-profile.d.ts.map +1 -0
  94. package/dist/resolvers/deployment-profile.js +28 -0
  95. package/dist/resolvers/deployment-profile.js.map +1 -0
  96. package/dist/resolvers/focus-anchoring-injections.d.ts +2 -0
  97. package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -0
  98. package/dist/resolvers/focus-anchoring-injections.js +123 -0
  99. package/dist/resolvers/focus-anchoring-injections.js.map +1 -0
  100. package/dist/resolvers/focus-context.d.ts +2 -0
  101. package/dist/resolvers/focus-context.d.ts.map +1 -0
  102. package/dist/resolvers/focus-context.js +47 -0
  103. package/dist/resolvers/focus-context.js.map +1 -0
  104. package/dist/resolvers/focus-injections.d.ts +2 -0
  105. package/dist/resolvers/focus-injections.d.ts.map +1 -0
  106. package/dist/resolvers/focus-injections.js +75 -0
  107. package/dist/resolvers/focus-injections.js.map +1 -0
  108. package/dist/resolvers/focus-last-review-report.d.ts +2 -0
  109. package/dist/resolvers/focus-last-review-report.d.ts.map +1 -0
  110. package/dist/resolvers/focus-last-review-report.js +46 -0
  111. package/dist/resolvers/focus-last-review-report.js.map +1 -0
  112. package/dist/resolvers/focus-reality-tree.d.ts +2 -0
  113. package/dist/resolvers/focus-reality-tree.d.ts.map +1 -0
  114. package/dist/resolvers/focus-reality-tree.js +50 -0
  115. package/dist/resolvers/focus-reality-tree.js.map +1 -0
  116. package/dist/resolvers/git-diff-against-base.d.ts +2 -0
  117. package/dist/resolvers/git-diff-against-base.d.ts.map +1 -0
  118. package/dist/resolvers/git-diff-against-base.js +39 -0
  119. package/dist/resolvers/git-diff-against-base.js.map +1 -0
  120. package/dist/resolvers/guards-evaluation-results.d.ts +2 -0
  121. package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -0
  122. package/dist/resolvers/guards-evaluation-results.js +31 -0
  123. package/dist/resolvers/guards-evaluation-results.js.map +1 -0
  124. package/dist/resolvers/index.d.ts +50 -0
  125. package/dist/resolvers/index.d.ts.map +1 -0
  126. package/dist/resolvers/index.js +51 -0
  127. package/dist/resolvers/index.js.map +1 -0
  128. package/dist/resolvers/loop-context.d.ts +2 -0
  129. package/dist/resolvers/loop-context.d.ts.map +1 -0
  130. package/dist/resolvers/loop-context.js +113 -0
  131. package/dist/resolvers/loop-context.js.map +1 -0
  132. package/dist/resolvers/loop-delivery-index.d.ts +2 -0
  133. package/dist/resolvers/loop-delivery-index.d.ts.map +1 -0
  134. package/dist/resolvers/loop-delivery-index.js +69 -0
  135. package/dist/resolvers/loop-delivery-index.js.map +1 -0
  136. package/dist/resolvers/loop-documents.d.ts +2 -0
  137. package/dist/resolvers/loop-documents.d.ts.map +1 -0
  138. package/dist/resolvers/loop-documents.js +30 -0
  139. package/dist/resolvers/loop-documents.js.map +1 -0
  140. package/dist/resolvers/loop-expected-effects.d.ts +2 -0
  141. package/dist/resolvers/loop-expected-effects.d.ts.map +1 -0
  142. package/dist/resolvers/loop-expected-effects.js +68 -0
  143. package/dist/resolvers/loop-expected-effects.js.map +1 -0
  144. package/dist/resolvers/loop-frt-statement.d.ts +2 -0
  145. package/dist/resolvers/loop-frt-statement.d.ts.map +1 -0
  146. package/dist/resolvers/loop-frt-statement.js +39 -0
  147. package/dist/resolvers/loop-frt-statement.js.map +1 -0
  148. package/dist/resolvers/loop-injection.d.ts +2 -0
  149. package/dist/resolvers/loop-injection.d.ts.map +1 -0
  150. package/dist/resolvers/loop-injection.js +48 -0
  151. package/dist/resolvers/loop-injection.js.map +1 -0
  152. package/dist/resolvers/loop-persona.d.ts +2 -0
  153. package/dist/resolvers/loop-persona.d.ts.map +1 -0
  154. package/dist/resolvers/loop-persona.js +40 -0
  155. package/dist/resolvers/loop-persona.js.map +1 -0
  156. package/dist/resolvers/loop-questions.d.ts +2 -0
  157. package/dist/resolvers/loop-questions.d.ts.map +1 -0
  158. package/dist/resolvers/loop-questions.js +49 -0
  159. package/dist/resolvers/loop-questions.js.map +1 -0
  160. package/dist/resolvers/loop-upstream-udes.d.ts +2 -0
  161. package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -0
  162. package/dist/resolvers/loop-upstream-udes.js +88 -0
  163. package/dist/resolvers/loop-upstream-udes.js.map +1 -0
  164. package/dist/resolvers/reality-metrics.d.ts +2 -0
  165. package/dist/resolvers/reality-metrics.d.ts.map +1 -0
  166. package/dist/resolvers/reality-metrics.js +86 -0
  167. package/dist/resolvers/reality-metrics.js.map +1 -0
  168. package/dist/resolvers/reality-projections.d.ts +2 -0
  169. package/dist/resolvers/reality-projections.d.ts.map +1 -0
  170. package/dist/resolvers/reality-projections.js +44 -0
  171. package/dist/resolvers/reality-projections.js.map +1 -0
  172. package/dist/resolvers/reality-tree-snapshot.d.ts +2 -0
  173. package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -0
  174. package/dist/resolvers/reality-tree-snapshot.js +45 -0
  175. package/dist/resolvers/reality-tree-snapshot.js.map +1 -0
  176. package/dist/resolvers/retired-injections.d.ts +2 -0
  177. package/dist/resolvers/retired-injections.d.ts.map +1 -0
  178. package/dist/resolvers/retired-injections.js +83 -0
  179. package/dist/resolvers/retired-injections.js.map +1 -0
  180. package/dist/resolvers/review-outcomes.d.ts +2 -0
  181. package/dist/resolvers/review-outcomes.d.ts.map +1 -0
  182. package/dist/resolvers/review-outcomes.js +38 -0
  183. package/dist/resolvers/review-outcomes.js.map +1 -0
  184. package/dist/resolvers/security-advisory.d.ts +2 -0
  185. package/dist/resolvers/security-advisory.d.ts.map +1 -0
  186. package/dist/resolvers/security-advisory.js +97 -0
  187. package/dist/resolvers/security-advisory.js.map +1 -0
  188. package/dist/resolvers/shared/audit.d.ts +19 -0
  189. package/dist/resolvers/shared/audit.d.ts.map +1 -0
  190. package/dist/resolvers/shared/audit.js +28 -0
  191. package/dist/resolvers/shared/audit.js.map +1 -0
  192. package/dist/resolvers/shared/format.d.ts +6 -0
  193. package/dist/resolvers/shared/format.d.ts.map +1 -0
  194. package/dist/resolvers/shared/format.js +17 -0
  195. package/dist/resolvers/shared/format.js.map +1 -0
  196. package/dist/resolvers/shared/git-diff.d.ts +14 -0
  197. package/dist/resolvers/shared/git-diff.d.ts.map +1 -0
  198. package/dist/resolvers/shared/git-diff.js +30 -0
  199. package/dist/resolvers/shared/git-diff.js.map +1 -0
  200. package/dist/resolvers/shared/loop-items.d.ts +30 -0
  201. package/dist/resolvers/shared/loop-items.d.ts.map +1 -0
  202. package/dist/resolvers/shared/loop-items.js +7 -0
  203. package/dist/resolvers/shared/loop-items.js.map +1 -0
  204. package/dist/resolvers/shared/loop.d.ts +48 -0
  205. package/dist/resolvers/shared/loop.d.ts.map +1 -0
  206. package/dist/resolvers/shared/loop.js +38 -0
  207. package/dist/resolvers/shared/loop.js.map +1 -0
  208. package/dist/resolvers/shared/reality-metrics.d.ts +63 -0
  209. package/dist/resolvers/shared/reality-metrics.d.ts.map +1 -0
  210. package/dist/resolvers/shared/reality-metrics.js +6 -0
  211. package/dist/resolvers/shared/reality-metrics.js.map +1 -0
  212. package/dist/resolvers/shared/reality-tree.d.ts +51 -0
  213. package/dist/resolvers/shared/reality-tree.d.ts.map +1 -0
  214. package/dist/resolvers/shared/reality-tree.js +125 -0
  215. package/dist/resolvers/shared/reality-tree.js.map +1 -0
  216. package/dist/resolvers/shared/wiki.d.ts +60 -0
  217. package/dist/resolvers/shared/wiki.d.ts.map +1 -0
  218. package/dist/resolvers/shared/wiki.js +122 -0
  219. package/dist/resolvers/shared/wiki.js.map +1 -0
  220. package/dist/resolvers/wiki-search.d.ts +2 -0
  221. package/dist/resolvers/wiki-search.d.ts.map +1 -0
  222. package/dist/resolvers/wiki-search.js +23 -0
  223. package/dist/resolvers/wiki-search.js.map +1 -0
  224. package/dist/resolvers/wiki-topic.d.ts +2 -0
  225. package/dist/resolvers/wiki-topic.d.ts.map +1 -0
  226. package/dist/resolvers/wiki-topic.js +29 -0
  227. package/dist/resolvers/wiki-topic.js.map +1 -0
  228. package/dist/resolvers/workflow-stages.d.ts +2 -0
  229. package/dist/resolvers/workflow-stages.d.ts.map +1 -0
  230. package/dist/resolvers/workflow-stages.js +26 -0
  231. package/dist/resolvers/workflow-stages.js.map +1 -0
  232. package/dist/session-lifecycle.d.ts +2 -2
  233. package/dist/session-lifecycle.d.ts.map +1 -1
  234. package/dist/session-lifecycle.js +3 -3
  235. package/dist/session-lifecycle.js.map +1 -1
  236. package/dist/{pending-spawn-guard.d.ts → spawner/guards.d.ts} +1 -1
  237. package/dist/spawner/guards.d.ts.map +1 -0
  238. package/dist/{pending-spawn-guard.js → spawner/guards.js} +2 -2
  239. package/dist/spawner/guards.js.map +1 -0
  240. package/dist/{focus-spawn-helpers.d.ts → spawner/helpers.d.ts} +6 -6
  241. package/dist/spawner/helpers.d.ts.map +1 -0
  242. package/dist/{focus-spawn-helpers.js → spawner/helpers.js} +8 -8
  243. package/dist/spawner/helpers.js.map +1 -0
  244. package/dist/spawner/index.d.ts +30 -0
  245. package/dist/spawner/index.d.ts.map +1 -0
  246. package/dist/spawner/index.js +32 -0
  247. package/dist/spawner/index.js.map +1 -0
  248. package/dist/{spawner-lifecycle.d.ts → spawner/lifecycle.d.ts} +3 -3
  249. package/dist/spawner/lifecycle.d.ts.map +1 -0
  250. package/dist/{spawner-lifecycle.js → spawner/lifecycle.js} +6 -6
  251. package/dist/spawner/lifecycle.js.map +1 -0
  252. package/dist/{spawner-liveness.d.ts → spawner/liveness.d.ts} +2 -2
  253. package/dist/spawner/liveness.d.ts.map +1 -0
  254. package/dist/{spawner-liveness.js → spawner/liveness.js} +4 -4
  255. package/dist/spawner/liveness.js.map +1 -0
  256. package/dist/{spawner-resolution.d.ts → spawner/resolution.d.ts} +2 -2
  257. package/dist/spawner/resolution.d.ts.map +1 -0
  258. package/dist/{spawner-resolution.js → spawner/resolution.js} +2 -2
  259. package/dist/spawner/resolution.js.map +1 -0
  260. package/dist/{team-spawner.d.ts → spawner/spawn-team.d.ts} +4 -4
  261. package/dist/spawner/spawn-team.d.ts.map +1 -0
  262. package/dist/{team-spawner.js → spawner/spawn-team.js} +19 -19
  263. package/dist/spawner/spawn-team.js.map +1 -0
  264. package/dist/{spawner.d.ts → spawner/state.d.ts} +8 -8
  265. package/dist/spawner/state.d.ts.map +1 -0
  266. package/dist/{spawner.js → spawner/state.js} +8 -8
  267. package/dist/spawner/state.js.map +1 -0
  268. package/dist/{spawner-stream-handlers.d.ts → spawner/stream-handlers.d.ts} +4 -4
  269. package/dist/spawner/stream-handlers.d.ts.map +1 -0
  270. package/dist/{spawner-stream-handlers.js → spawner/stream-handlers.js} +7 -7
  271. package/dist/spawner/stream-handlers.js.map +1 -0
  272. package/dist/{spawner-timeout.d.ts → spawner/timeout.d.ts} +2 -2
  273. package/dist/spawner/timeout.d.ts.map +1 -0
  274. package/dist/{spawner-timeout.js → spawner/timeout.js} +1 -1
  275. package/dist/spawner/timeout.js.map +1 -0
  276. package/dist/team-prompt-base.d.ts.map +1 -1
  277. package/dist/team-prompt-base.js +4 -27
  278. package/dist/team-prompt-base.js.map +1 -1
  279. package/dist/types/focus.d.ts +1 -1
  280. package/dist/types/focus.d.ts.map +1 -1
  281. package/package.json +1 -1
  282. package/dist/completion-detector.d.ts.map +0 -1
  283. package/dist/completion-detector.js.map +0 -1
  284. package/dist/completion-handler.d.ts.map +0 -1
  285. package/dist/completion-handler.js.map +0 -1
  286. package/dist/focus-completion-event.d.ts.map +0 -1
  287. package/dist/focus-completion-event.js.map +0 -1
  288. package/dist/focus-completion.d.ts.map +0 -1
  289. package/dist/focus-completion.js.map +0 -1
  290. package/dist/focus-spawn-helpers.d.ts.map +0 -1
  291. package/dist/focus-spawn-helpers.js.map +0 -1
  292. package/dist/focus-team-lifecycle.d.ts.map +0 -1
  293. package/dist/focus-team-lifecycle.js.map +0 -1
  294. package/dist/pending-spawn-guard.d.ts.map +0 -1
  295. package/dist/pending-spawn-guard.js.map +0 -1
  296. package/dist/prompt-builder.d.ts +0 -14
  297. package/dist/prompt-builder.d.ts.map +0 -1
  298. package/dist/prompt-builder.js +0 -174
  299. package/dist/prompt-builder.js.map +0 -1
  300. package/dist/spawner-lifecycle.d.ts.map +0 -1
  301. package/dist/spawner-lifecycle.js.map +0 -1
  302. package/dist/spawner-liveness.d.ts.map +0 -1
  303. package/dist/spawner-liveness.js.map +0 -1
  304. package/dist/spawner-resolution.d.ts.map +0 -1
  305. package/dist/spawner-resolution.js.map +0 -1
  306. package/dist/spawner-stream-handlers.d.ts.map +0 -1
  307. package/dist/spawner-stream-handlers.js.map +0 -1
  308. package/dist/spawner-timeout.d.ts.map +0 -1
  309. package/dist/spawner-timeout.js.map +0 -1
  310. package/dist/spawner.d.ts.map +0 -1
  311. package/dist/spawner.js.map +0 -1
  312. package/dist/team-spawner.d.ts.map +0 -1
  313. package/dist/team-spawner.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reality-metrics.js","sourceRoot":"","sources":["../../src/resolvers/reality-metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reality-projections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reality-projections.d.ts","sourceRoot":"","sources":["../../src/resolvers/reality-projections.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ import { registerSourceResolver } from '../assembly-engine.js';
2
+ import { callApi } from '../queries/shared.js';
3
+ /**
4
+ * reality.projections
5
+ *
6
+ * Compact format: just the forecasted outcomes for quick delta computation.
7
+ */
8
+ registerSourceResolver('reality.projections', async (context) => {
9
+ try {
10
+ const result = await callApi('reality_metrics_focus', {
11
+ focusId: context.focusId,
12
+ });
13
+ const comp = result.projections?.completion;
14
+ const cost = result.projections?.cost;
15
+ if (!comp && !cost)
16
+ return '';
17
+ const lines = ['## Trajectory Projections\n'];
18
+ if (comp) {
19
+ if (comp.status === 'complete') {
20
+ lines.push('- Completion: **complete**');
21
+ }
22
+ else if (comp.status === 'stalled') {
23
+ lines.push(`- Completion: **stalled** (${comp.remainingIssues} remaining)`);
24
+ }
25
+ else {
26
+ lines.push(`- Completion: ${comp.projectedCompletionDate ? new Date(comp.projectedCompletionDate).toISOString().split('T')[0] : '?'} (${comp.daysRemaining}d, confidence ${comp.confidence})`);
27
+ }
28
+ }
29
+ if (cost) {
30
+ if (cost.projectedTotalCost !== null) {
31
+ lines.push(`- Cost: $${cost.costToDate.toFixed(2)} spent, $${cost.projectedTotalCost.toFixed(2)} projected total`);
32
+ }
33
+ else {
34
+ lines.push(`- Cost: $${cost.costToDate.toFixed(2)} spent (insufficient data to project)`);
35
+ }
36
+ }
37
+ return lines.join('\n');
38
+ }
39
+ catch (err) {
40
+ console.warn(`[assembly-engine] reality.projections: failed: ${err.message}`);
41
+ return '';
42
+ }
43
+ });
44
+ //# sourceMappingURL=reality-projections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reality-projections.js","sourceRoot":"","sources":["../../src/resolvers/reality-projections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;GAIG;AACH,sBAAsB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IAChG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAqB,uBAAuB,EAAE;YACxE,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC;QAEtC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAa,CAAC,6BAA6B,CAAC,CAAC;QAExD,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,eAAe,aAAa,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,aAAa,iBAAiB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACjM,CAAC;QACH,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;YACrH,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,kDAAmD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACzF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reality-tree-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reality-tree-snapshot.d.ts","sourceRoot":"","sources":["../../src/resolvers/reality-tree-snapshot.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import { registerSourceResolver } from '../assembly-engine.js';
2
+ import { callApi } from '../queries/shared.js';
3
+ import { CRT_DUMP_BUDGET_CHARS, renderRealityTreeDump, } from './shared/reality-tree.js';
4
+ /**
5
+ * reality_tree.snapshot
6
+ *
7
+ * Returns the focus's reality tree(s) as a structured text dump for the
8
+ * audit assessor. Same shape as focus.reality_tree but with the "CRT Dump"
9
+ * heading renamed to "Snapshot" so the audit prompt distinguishes its
10
+ * "current graph" input from other tree-related sections. Fails soft.
11
+ */
12
+ registerSourceResolver('reality_tree.snapshot', async (context) => {
13
+ try {
14
+ const treesResp = await callApi('reality_tree_list', {
15
+ focusId: context.focusId,
16
+ });
17
+ const trees = (treesResp.items ?? []).filter((t) => t.status === 'active');
18
+ if (trees.length === 0)
19
+ return '';
20
+ const sections = [];
21
+ let used = 0;
22
+ for (const tree of trees) {
23
+ if (used >= CRT_DUMP_BUDGET_CHARS)
24
+ break;
25
+ const remaining = CRT_DUMP_BUDGET_CHARS - used;
26
+ const [nodesResp, edgesResp] = await Promise.all([
27
+ callApi('reality_tree_node_list', { treeId: tree.id, status: 'active' }),
28
+ callApi('reality_tree_edge_list', { treeId: tree.id }),
29
+ ]);
30
+ const dump = renderRealityTreeDump(tree, nodesResp.items ?? [], edgesResp.items ?? [], remaining);
31
+ if (dump.length === 0)
32
+ continue;
33
+ sections.push(dump);
34
+ used += dump.length;
35
+ }
36
+ if (sections.length === 0)
37
+ return '';
38
+ return `## Reality Tree Snapshot\n\n${sections.join('\n\n')}`;
39
+ }
40
+ catch (err) {
41
+ console.warn(`[assembly] reality_tree.snapshot failed: ${err.message}`);
42
+ return '';
43
+ }
44
+ });
45
+ //# sourceMappingURL=reality-tree-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reality-tree-snapshot.js","sourceRoot":"","sources":["../../src/resolvers/reality-tree-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GAItB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,sBAAsB,CAAC,uBAAuB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IAClG,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAA0B,mBAAmB,EAAE;YAC5E,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QAC3E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,qBAAqB;gBAAE,MAAM;YACzC,MAAM,SAAS,GAAG,qBAAqB,GAAG,IAAI,CAAC;YAC/C,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC/C,OAAO,CAAmB,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;gBAC1F,OAAO,CAAmB,wBAAwB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;aACzE,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,qBAAqB,CAChC,IAAI,EACJ,SAAS,CAAC,KAAK,IAAI,EAAE,EACrB,SAAS,CAAC,KAAK,IAAI,EAAE,EACrB,SAAS,CACV,CAAC;YACF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAChC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,+BAA+B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IAChE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,4CAA6C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=retired-injections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retired-injections.d.ts","sourceRoot":"","sources":["../../src/resolvers/retired-injections.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import { registerSourceResolver } from '../assembly-engine.js';
2
+ import { callApi } from '../queries/shared.js';
3
+ import { getAuditCycleLowerBound } from './shared/audit.js';
4
+ /**
5
+ * retired_injections
6
+ *
7
+ * Lists injections retired in the focus's current audit cycle. Each entry
8
+ * includes the dissolvesObstacle text and the UDE statements the injection
9
+ * targeted (via 'targets' edges, looked up from the retired-injection's
10
+ * tree). Failures fail soft -- return ''.
11
+ */
12
+ registerSourceResolver('retired_injections', async (context) => {
13
+ try {
14
+ const treesResp = await callApi('reality_tree_list', {
15
+ focusId: context.focusId,
16
+ });
17
+ const trees = (treesResp.items ?? []).filter((t) => t.status === 'active');
18
+ if (trees.length === 0)
19
+ return '';
20
+ const since = await getAuditCycleLowerBound(context.focusId);
21
+ const sections = [];
22
+ for (const tree of trees) {
23
+ const [retiredResp, edgesResp, nodesResp] = await Promise.all([
24
+ callApi('reality_tree_node_list', {
25
+ treeId: tree.id, nodeType: 'injection', status: 'retired',
26
+ }),
27
+ callApi('reality_tree_edge_list', { treeId: tree.id }),
28
+ // Pull the active node universe so we can resolve target statements
29
+ // even if a target was itself retired alongside the injection.
30
+ callApi('reality_tree_node_list', { treeId: tree.id, status: 'active' }),
31
+ ]);
32
+ const retired = retiredResp.items ?? [];
33
+ if (retired.length === 0)
34
+ continue;
35
+ const filtered = since
36
+ ? retired.filter((n) => {
37
+ // updated_at is not on the typed surface but the row carries it;
38
+ // fall back to including the node if the field isn't present so
39
+ // we don't accidentally drop a real retirement.
40
+ const updatedAt = n.updatedAt;
41
+ return !updatedAt || updatedAt >= since;
42
+ })
43
+ : retired;
44
+ if (filtered.length === 0)
45
+ continue;
46
+ const allNodes = [...(nodesResp.items ?? []), ...retired];
47
+ const nodeById = new Map();
48
+ for (const n of allNodes)
49
+ nodeById.set(n.id, n);
50
+ const targetsBySource = new Map();
51
+ for (const e of edgesResp.items ?? []) {
52
+ if (e.edgeType !== 'targets')
53
+ continue;
54
+ const list = targetsBySource.get(e.fromNodeId) ?? [];
55
+ list.push(e.toNodeId);
56
+ targetsBySource.set(e.fromNodeId, list);
57
+ }
58
+ const lines = [`### Tree: ${tree.name}`];
59
+ for (const inj of filtered.sort((a, b) => a.seq - b.seq)) {
60
+ lines.push('', `- **#${inj.seq} ${inj.statement}**`);
61
+ if (inj.dissolvesObstacle) {
62
+ lines.push(` - dissolves: ${inj.dissolvesObstacle.replace(/\n/g, ' ')}`);
63
+ }
64
+ const targetIds = targetsBySource.get(inj.id) ?? [];
65
+ for (const tid of targetIds) {
66
+ const t = nodeById.get(tid);
67
+ if (!t)
68
+ continue;
69
+ lines.push(` - target: #${t.seq} (${t.nodeType}) ${t.statement.replace(/\n/g, ' ')}`);
70
+ }
71
+ }
72
+ sections.push(lines.join('\n'));
73
+ }
74
+ if (sections.length === 0)
75
+ return '';
76
+ return `## Retired Injections (current cycle)\n\n${sections.join('\n\n')}`;
77
+ }
78
+ catch (err) {
79
+ console.warn(`[assembly] retired_injections failed: ${err.message}`);
80
+ return '';
81
+ }
82
+ });
83
+ //# sourceMappingURL=retired-injections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retired-injections.js","sourceRoot":"","sources":["../../src/resolvers/retired-injections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=review-outcomes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-outcomes.d.ts","sourceRoot":"","sources":["../../src/resolvers/review-outcomes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,38 @@
1
+ import { registerSourceResolver } from '../assembly-engine.js';
2
+ import { getLatestCompletedFocusReview } from '../queries/focuses.js';
3
+ /**
4
+ * review.outcomes
5
+ *
6
+ * Thin wrapper around the most recent completed focus_review row. Surfaces
7
+ * outcome (approved / gaps_found) and the summary so the close_loop
8
+ * bookkeeper can correlate review findings with the anchored injection
9
+ * sweep. Fails soft -- returns empty string when no completed review
10
+ * exists yet.
11
+ */
12
+ registerSourceResolver('review.outcomes', async (context) => {
13
+ try {
14
+ const review = await getLatestCompletedFocusReview(context.focusId);
15
+ if (!review || !review.completedAt)
16
+ return '';
17
+ const outcome = review.outcome ?? 'unknown';
18
+ const summary = (review.summary ?? '').trim();
19
+ const lines = [
20
+ '## Review Outcomes',
21
+ '',
22
+ `**Outcome:** ${outcome}`,
23
+ `**Completed:** ${review.completedAt}`,
24
+ ];
25
+ if (summary.length > 0) {
26
+ lines.push('', summary);
27
+ }
28
+ else {
29
+ lines.push('', '_No summary provided._');
30
+ }
31
+ return lines.join('\n');
32
+ }
33
+ catch (err) {
34
+ console.warn(`[assembly-engine] review.outcomes: failed: ${err.message}`);
35
+ return '';
36
+ }
37
+ });
38
+ //# sourceMappingURL=review-outcomes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-outcomes.js","sourceRoot":"","sources":["../../src/resolvers/review-outcomes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAEtE;;;;;;;;GAQG;AACH,sBAAsB,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IAC5F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAa;YACtB,oBAAoB;YACpB,EAAE;YACF,gBAAgB,OAAO,EAAE;YACzB,kBAAkB,MAAM,CAAC,WAAW,EAAE;SACvC,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,8CAA+C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=security-advisory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-advisory.d.ts","sourceRoot":"","sources":["../../src/resolvers/security-advisory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,97 @@
1
+ import { registerSourceResolver } from '../assembly-engine.js';
2
+ import { callApi } from '../queries/shared.js';
3
+ function pickString(payload, keys) {
4
+ for (const key of keys) {
5
+ const v = payload[key];
6
+ if (typeof v === 'string' && v.trim().length > 0)
7
+ return v.trim();
8
+ }
9
+ return null;
10
+ }
11
+ const ADVISORY_EVIDENCE_BUDGET = 500;
12
+ const SECURITY_ADVISORY_SECTION_BUDGET_CHARS = 10_000;
13
+ const SECURITY_ADVISORY_TRUNCATION_FOOTER = '\n\n_[truncated: section budget reached]_';
14
+ function formatAdvisorySection(advisory) {
15
+ const payload = advisory.payload ?? {};
16
+ const lines = [];
17
+ lines.push(`### ${advisory.identifier}`);
18
+ lines.push('');
19
+ lines.push(`- **IOC class:** ${advisory.iocClass}`);
20
+ lines.push(`- **Severity:** ${advisory.severity}`);
21
+ const pkg = pickString(payload, ['package', 'affected_package']);
22
+ if (pkg) {
23
+ const currentVersion = pickString(payload, ['current_version', 'installed_version']);
24
+ lines.push(`- **Package:** ${pkg}${currentVersion ? ` @ ${currentVersion}` : ''}`);
25
+ }
26
+ const fixVersion = pickString(payload, ['fix_version', 'fixed_version', 'patched_version']);
27
+ if (fixVersion)
28
+ lines.push(`- **Fix version:** ${fixVersion}`);
29
+ const advisoryUrl = pickString(payload, ['advisory_url', 'url', 'reference']);
30
+ if (advisoryUrl)
31
+ lines.push(`- **Advisory:** ${advisoryUrl}`);
32
+ const exploitClass = pickString(payload, ['exploit_class', 'cwe', 'vulnerability_class']);
33
+ if (exploitClass)
34
+ lines.push(`- **Exploit class:** ${exploitClass}`);
35
+ if (advisory.firstSeenAt)
36
+ lines.push(`- **First seen:** ${advisory.firstSeenAt}`);
37
+ if (advisory.injectionStatement) {
38
+ lines.push('');
39
+ lines.push(`**Injection statement:** ${advisory.injectionStatement}`);
40
+ }
41
+ if (advisory.injectionEvidence) {
42
+ const ev = advisory.injectionEvidence.length > ADVISORY_EVIDENCE_BUDGET
43
+ ? `${advisory.injectionEvidence.slice(0, ADVISORY_EVIDENCE_BUDGET)}...`
44
+ : advisory.injectionEvidence;
45
+ lines.push('');
46
+ lines.push(`**Evidence:** ${ev}`);
47
+ }
48
+ return lines.join('\n');
49
+ }
50
+ registerSourceResolver('security.advisory', async (context) => {
51
+ if (context.deliveryIds.length === 0)
52
+ return '';
53
+ const header = '## Security Advisory\n\n';
54
+ // Reserve the footer length so that even the worst-case truncated output
55
+ // (header + body filled to sectionsBudget + footer) stays within the 10k cap.
56
+ const sectionsBudget = SECURITY_ADVISORY_SECTION_BUDGET_CHARS - header.length - SECURITY_ADVISORY_TRUNCATION_FOOTER.length;
57
+ const sections = [];
58
+ let used = 0;
59
+ let truncated = false;
60
+ for (const deliveryId of context.deliveryIds) {
61
+ if (used >= sectionsBudget) {
62
+ truncated = true;
63
+ break;
64
+ }
65
+ try {
66
+ const result = await callApi('daemon_get_security_advisory_for_delivery', { deliveryId });
67
+ const advisories = result.advisories ?? [];
68
+ if (advisories.length === 0)
69
+ continue;
70
+ let hitBudget = false;
71
+ for (const adv of advisories) {
72
+ const formatted = formatAdvisorySection(adv);
73
+ // Account for the inter-section separator that will be inserted.
74
+ const separator = sections.length > 0 ? 2 : 0;
75
+ if (used + separator + formatted.length > sectionsBudget) {
76
+ truncated = true;
77
+ hitBudget = true;
78
+ break;
79
+ }
80
+ sections.push(formatted);
81
+ used += separator + formatted.length;
82
+ }
83
+ if (hitBudget)
84
+ break;
85
+ }
86
+ catch (err) {
87
+ console.warn(`[assembly-engine] security.advisory for delivery ${deliveryId} failed: ${err.message}`);
88
+ }
89
+ }
90
+ if (sections.length === 0)
91
+ return '';
92
+ const body = sections.join('\n\n');
93
+ return truncated
94
+ ? `${header}${body}${SECURITY_ADVISORY_TRUNCATION_FOOTER}`
95
+ : `${header}${body}`;
96
+ });
97
+ //# sourceMappingURL=security-advisory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-advisory.js","sourceRoot":"","sources":["../../src/resolvers/security-advisory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Audit-cycle window helper shared across resolvers that scope output to the
3
+ * current audit cycle (delivery.listing scope=done_since_last_audit,
4
+ * retired_injections, agent_escalations).
5
+ *
6
+ * The cycle window is "since the previous audit_runs.completed_at" -- the
7
+ * resolvers lookup that lower bound via daemon_get_recent_audit_run_for_focus.
8
+ * If no prior audit exists or the lookup fails, the resolvers fall back
9
+ * to "all since focus start" (no lower bound).
10
+ */
11
+ /**
12
+ * Best-effort cycle window. Returns the previous cycle's completed_at as
13
+ * the lower bound for "things that happened in the current cycle". Null
14
+ * means "no prior cycle, include everything since focus start". Failures
15
+ * fall back to null so a missing audit_runs table or transient API error
16
+ * does not blank out the resolver output.
17
+ */
18
+ export declare function getAuditCycleLowerBound(focusId: string): Promise<string | null>;
19
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/resolvers/shared/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUrF"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Audit-cycle window helper shared across resolvers that scope output to the
3
+ * current audit cycle (delivery.listing scope=done_since_last_audit,
4
+ * retired_injections, agent_escalations).
5
+ *
6
+ * The cycle window is "since the previous audit_runs.completed_at" -- the
7
+ * resolvers lookup that lower bound via daemon_get_recent_audit_run_for_focus.
8
+ * If no prior audit exists or the lookup fails, the resolvers fall back
9
+ * to "all since focus start" (no lower bound).
10
+ */
11
+ import { callApi } from '../../queries/shared.js';
12
+ /**
13
+ * Best-effort cycle window. Returns the previous cycle's completed_at as
14
+ * the lower bound for "things that happened in the current cycle". Null
15
+ * means "no prior cycle, include everything since focus start". Failures
16
+ * fall back to null so a missing audit_runs table or transient API error
17
+ * does not blank out the resolver output.
18
+ */
19
+ export async function getAuditCycleLowerBound(focusId) {
20
+ try {
21
+ const result = await callApi('daemon_get_recent_audit_run_for_focus', { focusId });
22
+ return result.auditRun?.completedAt ?? null;
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/resolvers/shared/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AASlD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAe;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,uCAAuC,EACvC,EAAE,OAAO,EAAE,CACZ,CAAC;QACF,OAAO,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Small formatting helpers shared across resolvers.
3
+ */
4
+ /** Format an issue status as a checkbox marker. */
5
+ export declare function statusCheckbox(status: string): string;
6
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/resolvers/shared/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mDAAmD;AACnD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOrD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Small formatting helpers shared across resolvers.
3
+ */
4
+ /** Format an issue status as a checkbox marker. */
5
+ export function statusCheckbox(status) {
6
+ const lower = status.toLowerCase();
7
+ if (lower === 'done')
8
+ return '[x]';
9
+ if (lower === 'verified')
10
+ return '[v]';
11
+ if (lower === 'in review')
12
+ return '[?]';
13
+ if (lower === 'in progress')
14
+ return '[-]';
15
+ return '[ ]';
16
+ }
17
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/resolvers/shared/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,mDAAmD;AACnD,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,KAAK,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,KAAK,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Git diff helpers shared across resolvers.
3
+ */
4
+ export declare const MAX_DIFF_BYTES: number;
5
+ /**
6
+ * Run git diff in a worktree against the base branch.
7
+ * Returns the raw diff output, or empty string on failure.
8
+ */
9
+ export declare function getGitDiff(worktreePath: string, baseBranch: string): string;
10
+ /**
11
+ * Get a summary of files changed in a diff (for truncation header).
12
+ */
13
+ export declare function getDiffStatSummary(worktreePath: string, baseBranch: string): string;
14
+ //# sourceMappingURL=git-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-diff.d.ts","sourceRoot":"","sources":["../../../src/resolvers/shared/git-diff.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,eAAO,MAAM,cAAc,QAAY,CAAC;AAExC;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAU3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CASnF"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Git diff helpers shared across resolvers.
3
+ */
4
+ import { execSync } from 'node:child_process';
5
+ export const MAX_DIFF_BYTES = 50 * 1024; // 50 KB truncation limit for git diffs
6
+ /**
7
+ * Run git diff in a worktree against the base branch.
8
+ * Returns the raw diff output, or empty string on failure.
9
+ */
10
+ export function getGitDiff(worktreePath, baseBranch) {
11
+ try {
12
+ const diff = execSync(`git diff ${baseBranch}...HEAD`, { cwd: worktreePath, maxBuffer: 10 * 1024 * 1024, encoding: 'utf-8' });
13
+ return diff;
14
+ }
15
+ catch {
16
+ return '';
17
+ }
18
+ }
19
+ /**
20
+ * Get a summary of files changed in a diff (for truncation header).
21
+ */
22
+ export function getDiffStatSummary(worktreePath, baseBranch) {
23
+ try {
24
+ return execSync(`git diff --stat ${baseBranch}...HEAD`, { cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8' });
25
+ }
26
+ catch {
27
+ return '';
28
+ }
29
+ }
30
+ //# sourceMappingURL=git-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-diff.js","sourceRoot":"","sources":["../../../src/resolvers/shared/git-diff.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,uCAAuC;AAEhF;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,UAAkB;IACjE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CACnB,YAAY,UAAU,SAAS,EAC/B,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CACtE,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB,EAAE,UAAkB;IACzE,IAAI,CAAC;QACH,OAAO,QAAQ,CACb,mBAAmB,UAAU,SAAS,EACtC,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CACjE,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * loop_* list-item response types shared by the loop document / question /
3
+ * persona / context resolvers (loop.documents, loop.questions, loop.persona,
4
+ * loop.context).
5
+ */
6
+ export interface LoopDocumentItem {
7
+ id: string;
8
+ title: string;
9
+ content: string;
10
+ sortOrder: number;
11
+ }
12
+ export interface LoopQuestionItem {
13
+ id: string;
14
+ text: string;
15
+ questionType: string;
16
+ sortOrder: number | null;
17
+ isRetired: boolean;
18
+ }
19
+ export interface LoopAnswerResult {
20
+ answer: {
21
+ content: string;
22
+ } | null;
23
+ }
24
+ export interface LoopPersonaResult {
25
+ persona: {
26
+ content: string;
27
+ proposedContent: string | null;
28
+ } | null;
29
+ }
30
+ //# sourceMappingURL=loop-items.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-items.d.ts","sourceRoot":"","sources":["../../../src/resolvers/shared/loop-items.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACrE"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * loop_* list-item response types shared by the loop document / question /
3
+ * persona / context resolvers (loop.documents, loop.questions, loop.persona,
4
+ * loop.context).
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=loop-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loop-items.js","sourceRoot":"","sources":["../../../src/resolvers/shared/loop-items.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}