@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.
- package/build-info.json +2 -2
- package/dist/assembly-resolvers.d.ts +13 -65
- package/dist/assembly-resolvers.d.ts.map +1 -1
- package/dist/assembly-resolvers.js +15 -1915
- package/dist/assembly-resolvers.js.map +1 -1
- package/dist/audit-phase.d.ts +2 -2
- package/dist/audit-phase.d.ts.map +1 -1
- package/dist/audit-phase.js +1 -1
- package/dist/audit-phase.js.map +1 -1
- package/dist/{completion-handler.d.ts → completion/agent-completion.d.ts} +3 -3
- package/dist/completion/agent-completion.d.ts.map +1 -0
- package/dist/{completion-handler.js → completion/agent-completion.js} +7 -7
- package/dist/completion/agent-completion.js.map +1 -0
- package/dist/{completion-detector.d.ts → completion/detector.d.ts} +1 -1
- package/dist/completion/detector.d.ts.map +1 -0
- package/dist/{completion-detector.js → completion/detector.js} +1 -1
- package/dist/completion/detector.js.map +1 -0
- package/dist/{focus-completion-event.d.ts → completion/event.d.ts} +21 -3
- package/dist/completion/event.d.ts.map +1 -0
- package/dist/{focus-completion-event.js → completion/event.js} +55 -9
- package/dist/completion/event.js.map +1 -0
- package/dist/completion/index.d.ts +24 -0
- package/dist/completion/index.d.ts.map +1 -0
- package/dist/completion/index.js +25 -0
- package/dist/completion/index.js.map +1 -0
- package/dist/{focus-completion.d.ts → completion/team-completion.d.ts} +11 -11
- package/dist/completion/team-completion.d.ts.map +1 -0
- package/dist/{focus-completion.js → completion/team-completion.js} +37 -26
- package/dist/completion/team-completion.js.map +1 -0
- package/dist/{focus-team-lifecycle.d.ts → completion/team-lifecycle.d.ts} +2 -2
- package/dist/completion/team-lifecycle.d.ts.map +1 -0
- package/dist/{focus-team-lifecycle.js → completion/team-lifecycle.js} +12 -12
- package/dist/completion/team-lifecycle.js.map +1 -0
- package/dist/directive-executor.d.ts +30 -0
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +46 -0
- package/dist/directive-executor.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +1 -2
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts +4 -4
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +5 -5
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-merge.js +1 -1
- package/dist/focus-merge.js.map +1 -1
- package/dist/focus-prompt-builder.d.ts.map +1 -1
- package/dist/focus-prompt-builder.js +5 -39
- package/dist/focus-prompt-builder.js.map +1 -1
- package/dist/listener.js +1 -1
- package/dist/listener.js.map +1 -1
- package/dist/output-monitor.d.ts +1 -1
- package/dist/output-monitor.d.ts.map +1 -1
- package/dist/output-monitor.js +1 -1
- package/dist/output-monitor.js.map +1 -1
- package/dist/prompt-listing.d.ts +26 -0
- package/dist/prompt-listing.d.ts.map +1 -0
- package/dist/prompt-listing.js +55 -0
- package/dist/prompt-listing.js.map +1 -0
- package/dist/queries/index.d.ts +13 -0
- package/dist/queries/index.d.ts.map +1 -1
- package/dist/queries/index.js +9 -0
- package/dist/queries/index.js.map +1 -1
- package/dist/resolvers/agent-escalations.d.ts +2 -0
- package/dist/resolvers/agent-escalations.d.ts.map +1 -0
- package/dist/resolvers/agent-escalations.js +33 -0
- package/dist/resolvers/agent-escalations.js.map +1 -0
- package/dist/resolvers/agent-session-summaries.d.ts +2 -0
- package/dist/resolvers/agent-session-summaries.d.ts.map +1 -0
- package/dist/resolvers/agent-session-summaries.js +28 -0
- package/dist/resolvers/agent-session-summaries.js.map +1 -0
- package/dist/resolvers/delivery-acceptance-criteria.d.ts +2 -0
- package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -0
- package/dist/resolvers/delivery-acceptance-criteria.js +19 -0
- package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -0
- package/dist/resolvers/delivery-description.d.ts +2 -0
- package/dist/resolvers/delivery-description.d.ts.map +1 -0
- package/dist/resolvers/delivery-description.js +19 -0
- package/dist/resolvers/delivery-description.js.map +1 -0
- package/dist/resolvers/delivery-issues.d.ts +2 -0
- package/dist/resolvers/delivery-issues.d.ts.map +1 -0
- package/dist/resolvers/delivery-issues.js +58 -0
- package/dist/resolvers/delivery-issues.js.map +1 -0
- package/dist/resolvers/delivery-listing.d.ts +2 -0
- package/dist/resolvers/delivery-listing.d.ts.map +1 -0
- package/dist/resolvers/delivery-listing.js +54 -0
- package/dist/resolvers/delivery-listing.js.map +1 -0
- package/dist/resolvers/delivery-tech-context.d.ts +2 -0
- package/dist/resolvers/delivery-tech-context.d.ts.map +1 -0
- package/dist/resolvers/delivery-tech-context.js +19 -0
- package/dist/resolvers/delivery-tech-context.js.map +1 -0
- package/dist/resolvers/deployment-profile.d.ts +2 -0
- package/dist/resolvers/deployment-profile.d.ts.map +1 -0
- package/dist/resolvers/deployment-profile.js +28 -0
- package/dist/resolvers/deployment-profile.js.map +1 -0
- package/dist/resolvers/focus-anchoring-injections.d.ts +2 -0
- package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -0
- package/dist/resolvers/focus-anchoring-injections.js +123 -0
- package/dist/resolvers/focus-anchoring-injections.js.map +1 -0
- package/dist/resolvers/focus-context.d.ts +2 -0
- package/dist/resolvers/focus-context.d.ts.map +1 -0
- package/dist/resolvers/focus-context.js +47 -0
- package/dist/resolvers/focus-context.js.map +1 -0
- package/dist/resolvers/focus-injections.d.ts +2 -0
- package/dist/resolvers/focus-injections.d.ts.map +1 -0
- package/dist/resolvers/focus-injections.js +75 -0
- package/dist/resolvers/focus-injections.js.map +1 -0
- package/dist/resolvers/focus-last-review-report.d.ts +2 -0
- package/dist/resolvers/focus-last-review-report.d.ts.map +1 -0
- package/dist/resolvers/focus-last-review-report.js +46 -0
- package/dist/resolvers/focus-last-review-report.js.map +1 -0
- package/dist/resolvers/focus-reality-tree.d.ts +2 -0
- package/dist/resolvers/focus-reality-tree.d.ts.map +1 -0
- package/dist/resolvers/focus-reality-tree.js +50 -0
- package/dist/resolvers/focus-reality-tree.js.map +1 -0
- package/dist/resolvers/git-diff-against-base.d.ts +2 -0
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -0
- package/dist/resolvers/git-diff-against-base.js +39 -0
- package/dist/resolvers/git-diff-against-base.js.map +1 -0
- package/dist/resolvers/guards-evaluation-results.d.ts +2 -0
- package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -0
- package/dist/resolvers/guards-evaluation-results.js +31 -0
- package/dist/resolvers/guards-evaluation-results.js.map +1 -0
- package/dist/resolvers/index.d.ts +50 -0
- package/dist/resolvers/index.d.ts.map +1 -0
- package/dist/resolvers/index.js +51 -0
- package/dist/resolvers/index.js.map +1 -0
- package/dist/resolvers/loop-context.d.ts +2 -0
- package/dist/resolvers/loop-context.d.ts.map +1 -0
- package/dist/resolvers/loop-context.js +113 -0
- package/dist/resolvers/loop-context.js.map +1 -0
- package/dist/resolvers/loop-delivery-index.d.ts +2 -0
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -0
- package/dist/resolvers/loop-delivery-index.js +69 -0
- package/dist/resolvers/loop-delivery-index.js.map +1 -0
- package/dist/resolvers/loop-documents.d.ts +2 -0
- package/dist/resolvers/loop-documents.d.ts.map +1 -0
- package/dist/resolvers/loop-documents.js +30 -0
- package/dist/resolvers/loop-documents.js.map +1 -0
- package/dist/resolvers/loop-expected-effects.d.ts +2 -0
- package/dist/resolvers/loop-expected-effects.d.ts.map +1 -0
- package/dist/resolvers/loop-expected-effects.js +68 -0
- package/dist/resolvers/loop-expected-effects.js.map +1 -0
- package/dist/resolvers/loop-frt-statement.d.ts +2 -0
- package/dist/resolvers/loop-frt-statement.d.ts.map +1 -0
- package/dist/resolvers/loop-frt-statement.js +39 -0
- package/dist/resolvers/loop-frt-statement.js.map +1 -0
- package/dist/resolvers/loop-injection.d.ts +2 -0
- package/dist/resolvers/loop-injection.d.ts.map +1 -0
- package/dist/resolvers/loop-injection.js +48 -0
- package/dist/resolvers/loop-injection.js.map +1 -0
- package/dist/resolvers/loop-persona.d.ts +2 -0
- package/dist/resolvers/loop-persona.d.ts.map +1 -0
- package/dist/resolvers/loop-persona.js +40 -0
- package/dist/resolvers/loop-persona.js.map +1 -0
- package/dist/resolvers/loop-questions.d.ts +2 -0
- package/dist/resolvers/loop-questions.d.ts.map +1 -0
- package/dist/resolvers/loop-questions.js +49 -0
- package/dist/resolvers/loop-questions.js.map +1 -0
- package/dist/resolvers/loop-upstream-udes.d.ts +2 -0
- package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -0
- package/dist/resolvers/loop-upstream-udes.js +88 -0
- package/dist/resolvers/loop-upstream-udes.js.map +1 -0
- package/dist/resolvers/reality-metrics.d.ts +2 -0
- package/dist/resolvers/reality-metrics.d.ts.map +1 -0
- package/dist/resolvers/reality-metrics.js +86 -0
- package/dist/resolvers/reality-metrics.js.map +1 -0
- package/dist/resolvers/reality-projections.d.ts +2 -0
- package/dist/resolvers/reality-projections.d.ts.map +1 -0
- package/dist/resolvers/reality-projections.js +44 -0
- package/dist/resolvers/reality-projections.js.map +1 -0
- package/dist/resolvers/reality-tree-snapshot.d.ts +2 -0
- package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -0
- package/dist/resolvers/reality-tree-snapshot.js +45 -0
- package/dist/resolvers/reality-tree-snapshot.js.map +1 -0
- package/dist/resolvers/retired-injections.d.ts +2 -0
- package/dist/resolvers/retired-injections.d.ts.map +1 -0
- package/dist/resolvers/retired-injections.js +83 -0
- package/dist/resolvers/retired-injections.js.map +1 -0
- package/dist/resolvers/review-outcomes.d.ts +2 -0
- package/dist/resolvers/review-outcomes.d.ts.map +1 -0
- package/dist/resolvers/review-outcomes.js +38 -0
- package/dist/resolvers/review-outcomes.js.map +1 -0
- package/dist/resolvers/security-advisory.d.ts +2 -0
- package/dist/resolvers/security-advisory.d.ts.map +1 -0
- package/dist/resolvers/security-advisory.js +97 -0
- package/dist/resolvers/security-advisory.js.map +1 -0
- package/dist/resolvers/shared/audit.d.ts +19 -0
- package/dist/resolvers/shared/audit.d.ts.map +1 -0
- package/dist/resolvers/shared/audit.js +28 -0
- package/dist/resolvers/shared/audit.js.map +1 -0
- package/dist/resolvers/shared/format.d.ts +6 -0
- package/dist/resolvers/shared/format.d.ts.map +1 -0
- package/dist/resolvers/shared/format.js +17 -0
- package/dist/resolvers/shared/format.js.map +1 -0
- package/dist/resolvers/shared/git-diff.d.ts +14 -0
- package/dist/resolvers/shared/git-diff.d.ts.map +1 -0
- package/dist/resolvers/shared/git-diff.js +30 -0
- package/dist/resolvers/shared/git-diff.js.map +1 -0
- package/dist/resolvers/shared/loop-items.d.ts +30 -0
- package/dist/resolvers/shared/loop-items.d.ts.map +1 -0
- package/dist/resolvers/shared/loop-items.js +7 -0
- package/dist/resolvers/shared/loop-items.js.map +1 -0
- package/dist/resolvers/shared/loop.d.ts +48 -0
- package/dist/resolvers/shared/loop.d.ts.map +1 -0
- package/dist/resolvers/shared/loop.js +38 -0
- package/dist/resolvers/shared/loop.js.map +1 -0
- package/dist/resolvers/shared/reality-metrics.d.ts +63 -0
- package/dist/resolvers/shared/reality-metrics.d.ts.map +1 -0
- package/dist/resolvers/shared/reality-metrics.js +6 -0
- package/dist/resolvers/shared/reality-metrics.js.map +1 -0
- package/dist/resolvers/shared/reality-tree.d.ts +51 -0
- package/dist/resolvers/shared/reality-tree.d.ts.map +1 -0
- package/dist/resolvers/shared/reality-tree.js +125 -0
- package/dist/resolvers/shared/reality-tree.js.map +1 -0
- package/dist/resolvers/shared/wiki.d.ts +60 -0
- package/dist/resolvers/shared/wiki.d.ts.map +1 -0
- package/dist/resolvers/shared/wiki.js +122 -0
- package/dist/resolvers/shared/wiki.js.map +1 -0
- package/dist/resolvers/wiki-search.d.ts +2 -0
- package/dist/resolvers/wiki-search.d.ts.map +1 -0
- package/dist/resolvers/wiki-search.js +23 -0
- package/dist/resolvers/wiki-search.js.map +1 -0
- package/dist/resolvers/wiki-topic.d.ts +2 -0
- package/dist/resolvers/wiki-topic.d.ts.map +1 -0
- package/dist/resolvers/wiki-topic.js +29 -0
- package/dist/resolvers/wiki-topic.js.map +1 -0
- package/dist/resolvers/workflow-stages.d.ts +2 -0
- package/dist/resolvers/workflow-stages.d.ts.map +1 -0
- package/dist/resolvers/workflow-stages.js +26 -0
- package/dist/resolvers/workflow-stages.js.map +1 -0
- package/dist/session-lifecycle.d.ts +2 -2
- package/dist/session-lifecycle.d.ts.map +1 -1
- package/dist/session-lifecycle.js +3 -3
- package/dist/session-lifecycle.js.map +1 -1
- package/dist/{pending-spawn-guard.d.ts → spawner/guards.d.ts} +1 -1
- package/dist/spawner/guards.d.ts.map +1 -0
- package/dist/{pending-spawn-guard.js → spawner/guards.js} +2 -2
- package/dist/spawner/guards.js.map +1 -0
- package/dist/{focus-spawn-helpers.d.ts → spawner/helpers.d.ts} +6 -6
- package/dist/spawner/helpers.d.ts.map +1 -0
- package/dist/{focus-spawn-helpers.js → spawner/helpers.js} +8 -8
- package/dist/spawner/helpers.js.map +1 -0
- package/dist/spawner/index.d.ts +30 -0
- package/dist/spawner/index.d.ts.map +1 -0
- package/dist/spawner/index.js +32 -0
- package/dist/spawner/index.js.map +1 -0
- package/dist/{spawner-lifecycle.d.ts → spawner/lifecycle.d.ts} +3 -3
- package/dist/spawner/lifecycle.d.ts.map +1 -0
- package/dist/{spawner-lifecycle.js → spawner/lifecycle.js} +6 -6
- package/dist/spawner/lifecycle.js.map +1 -0
- package/dist/{spawner-liveness.d.ts → spawner/liveness.d.ts} +2 -2
- package/dist/spawner/liveness.d.ts.map +1 -0
- package/dist/{spawner-liveness.js → spawner/liveness.js} +4 -4
- package/dist/spawner/liveness.js.map +1 -0
- package/dist/{spawner-resolution.d.ts → spawner/resolution.d.ts} +2 -2
- package/dist/spawner/resolution.d.ts.map +1 -0
- package/dist/{spawner-resolution.js → spawner/resolution.js} +2 -2
- package/dist/spawner/resolution.js.map +1 -0
- package/dist/{team-spawner.d.ts → spawner/spawn-team.d.ts} +4 -4
- package/dist/spawner/spawn-team.d.ts.map +1 -0
- package/dist/{team-spawner.js → spawner/spawn-team.js} +19 -19
- package/dist/spawner/spawn-team.js.map +1 -0
- package/dist/{spawner.d.ts → spawner/state.d.ts} +8 -8
- package/dist/spawner/state.d.ts.map +1 -0
- package/dist/{spawner.js → spawner/state.js} +8 -8
- package/dist/spawner/state.js.map +1 -0
- package/dist/{spawner-stream-handlers.d.ts → spawner/stream-handlers.d.ts} +4 -4
- package/dist/spawner/stream-handlers.d.ts.map +1 -0
- package/dist/{spawner-stream-handlers.js → spawner/stream-handlers.js} +7 -7
- package/dist/spawner/stream-handlers.js.map +1 -0
- package/dist/{spawner-timeout.d.ts → spawner/timeout.d.ts} +2 -2
- package/dist/spawner/timeout.d.ts.map +1 -0
- package/dist/{spawner-timeout.js → spawner/timeout.js} +1 -1
- package/dist/spawner/timeout.js.map +1 -0
- package/dist/team-prompt-base.d.ts.map +1 -1
- package/dist/team-prompt-base.js +4 -27
- package/dist/team-prompt-base.js.map +1 -1
- package/dist/types/focus.d.ts +1 -1
- package/dist/types/focus.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/completion-detector.d.ts.map +0 -1
- package/dist/completion-detector.js.map +0 -1
- package/dist/completion-handler.d.ts.map +0 -1
- package/dist/completion-handler.js.map +0 -1
- package/dist/focus-completion-event.d.ts.map +0 -1
- package/dist/focus-completion-event.js.map +0 -1
- package/dist/focus-completion.d.ts.map +0 -1
- package/dist/focus-completion.js.map +0 -1
- package/dist/focus-spawn-helpers.d.ts.map +0 -1
- package/dist/focus-spawn-helpers.js.map +0 -1
- package/dist/focus-team-lifecycle.d.ts.map +0 -1
- package/dist/focus-team-lifecycle.js.map +0 -1
- package/dist/pending-spawn-guard.d.ts.map +0 -1
- package/dist/pending-spawn-guard.js.map +0 -1
- package/dist/prompt-builder.d.ts +0 -14
- package/dist/prompt-builder.d.ts.map +0 -1
- package/dist/prompt-builder.js +0 -174
- package/dist/prompt-builder.js.map +0 -1
- package/dist/spawner-lifecycle.d.ts.map +0 -1
- package/dist/spawner-lifecycle.js.map +0 -1
- package/dist/spawner-liveness.d.ts.map +0 -1
- package/dist/spawner-liveness.js.map +0 -1
- package/dist/spawner-resolution.d.ts.map +0 -1
- package/dist/spawner-resolution.js.map +0 -1
- package/dist/spawner-stream-handlers.d.ts.map +0 -1
- package/dist/spawner-stream-handlers.js.map +0 -1
- package/dist/spawner-timeout.d.ts.map +0 -1
- package/dist/spawner-timeout.js.map +0 -1
- package/dist/spawner.d.ts.map +0 -1
- package/dist/spawner.js.map +0 -1
- package/dist/team-spawner.d.ts.map +0 -1
- package/dist/team-spawner.js.map +0 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared delivery/issue-listing prompt-section formatters.
|
|
3
|
+
*
|
|
4
|
+
* These leaf line-formatters were duplicated verbatim across the
|
|
5
|
+
* focus-domain prompt builders (team-prompt-base.buildDeliveryListingSection,
|
|
6
|
+
* focus-prompt-builder.buildWakeMessage / buildReEngagementMessage). Each
|
|
7
|
+
* returns a single composed line so callers keep their own loop structure
|
|
8
|
+
* and ordering -- the output is byte-identical to the inlined originals.
|
|
9
|
+
*/
|
|
10
|
+
/** Status buckets, in the fixed display order used across all listing prompts. */
|
|
11
|
+
const ISSUE_STATUS_ORDER = ['To Do', 'In Progress', 'Done', 'Blocked', 'In Review'];
|
|
12
|
+
/**
|
|
13
|
+
* Build the `**Issues (<n status>, ...):**` count line from a set of
|
|
14
|
+
* already-filtered actionable (non-Context-Group) issues.
|
|
15
|
+
*/
|
|
16
|
+
export function buildIssueCountLine(actionableIssues) {
|
|
17
|
+
const statusCounts = new Map();
|
|
18
|
+
for (const issue of actionableIssues) {
|
|
19
|
+
statusCounts.set(issue.status, (statusCounts.get(issue.status) ?? 0) + 1);
|
|
20
|
+
}
|
|
21
|
+
const countParts = [];
|
|
22
|
+
for (const s of ISSUE_STATUS_ORDER) {
|
|
23
|
+
const count = statusCounts.get(s);
|
|
24
|
+
if (count !== undefined) {
|
|
25
|
+
countParts.push(`${count} ${s}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return `**Issues (${countParts.join(', ')}):**`;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Build the one-line summary for a Context Group, including its dependency
|
|
32
|
+
* suffix and (if any) a child-issue summary.
|
|
33
|
+
*
|
|
34
|
+
* `contextGroups` is the set used to resolve dependsOn ids to titles (the
|
|
35
|
+
* Context Groups of the same delivery).
|
|
36
|
+
*/
|
|
37
|
+
export function buildContextGroupLine(group, deliveryIssues, contextGroups) {
|
|
38
|
+
const children = deliveryIssues.filter(i => i.parentIssueId === group.id);
|
|
39
|
+
const depsSuffix = group.dependsOn && group.dependsOn.length > 0
|
|
40
|
+
? ` [depends on: ${group.dependsOn.map(depId => {
|
|
41
|
+
const depCg = contextGroups.find(cg => cg.id === depId);
|
|
42
|
+
return depCg ? `"${depCg.title}"` : depId;
|
|
43
|
+
}).join(', ')}]`
|
|
44
|
+
: '';
|
|
45
|
+
if (children.length > 0) {
|
|
46
|
+
const childSummaries = children.map(c => `${c.key} (${c.status})`).join(', ');
|
|
47
|
+
return ` Context Group: "${group.title}"${depsSuffix} -- children: ${childSummaries}`;
|
|
48
|
+
}
|
|
49
|
+
return ` Context Group: "${group.title}"${depsSuffix}`;
|
|
50
|
+
}
|
|
51
|
+
/** Build the one-line summary for a standalone (non-grouped) issue. */
|
|
52
|
+
export function buildStandaloneIssueLine(issue) {
|
|
53
|
+
return ` - ${issue.key}: ${issue.title} (${issue.status})`;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=prompt-listing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-listing.js","sourceRoot":"","sources":["../src/prompt-listing.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,kFAAkF;AAClF,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAEpF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,gBAAkC;IACpE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,aAAa,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAqB,EACrB,cAAgC,EAChC,aAA+B;IAE/B,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAC9D,CAAC,CAAC,iBAAiB,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;YAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;YACxD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAC5C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAClB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,qBAAqB,KAAK,CAAC,KAAK,IAAI,UAAU,iBAAiB,cAAc,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,qBAAqB,KAAK,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;AAC1D,CAAC;AAED,uEAAuE;AACvE,MAAM,UAAU,wBAAwB,CAAC,KAAqB;IAC5D,OAAO,OAAO,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;AAC9D,CAAC"}
|
package/dist/queries/index.d.ts
CHANGED
|
@@ -22,4 +22,17 @@ export { listDoneWorkArtifacts, upsertDriftFinding } from './drift.js';
|
|
|
22
22
|
export type { DoneWorkItem, UpsertFindingParams, UpsertFindingResult } from './drift.js';
|
|
23
23
|
export { insertAssemblyManifest } from './context-assembly.js';
|
|
24
24
|
export type { InsertAssemblyManifestInput } from './context-assembly.js';
|
|
25
|
+
export { insertAuditRun, updateAuditRun } from './audit-runs.js';
|
|
26
|
+
export type { AuditRunRow, InsertAuditRunInput, UpdateAuditRunInput } from './audit-runs.js';
|
|
27
|
+
export { createFocusCycleEvaluation, getRecentFocusCycleEvaluation } from './focus-cycle-evaluations.js';
|
|
28
|
+
export type { FocusPhase, FocusPhaseOutcome, FocusCycleEvaluation } from './focus-cycle-evaluations.js';
|
|
29
|
+
export { upsertGitActivity, getLatestGitActivityTimestamp } from './git-activity.js';
|
|
30
|
+
export type { GitActivitySnapshot } from './git-activity.js';
|
|
31
|
+
export { getAppliedMigrations } from './migrations.js';
|
|
32
|
+
export { getFocusNeedsInjectionUdes } from './reality-tree.js';
|
|
33
|
+
export type { NeedsInjectionUde, NeedsInjectionDeps } from './reality-tree.js';
|
|
34
|
+
export { getPendingVerifications, recordDeliveryVerificationOutcome, verifyInjectionOnPass, verifyInjectionWithEvidence, } from './verification.js';
|
|
35
|
+
export type { VerificationMethod, VerificationOutcome, PendingVerification, VerifyRestatement, } from './verification.js';
|
|
36
|
+
export { upsertWorktreeRecord, removeWorktreeRecord, listWorktreeRecords } from './worktrees.js';
|
|
37
|
+
export type { WorktreeRecord } from './worktrees.js';
|
|
25
38
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AACzG,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACxG,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AACrF,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACjG,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/queries/index.js
CHANGED
|
@@ -17,4 +17,13 @@ export { getControlStateChanges, setControlStateRunning, } from './control-state
|
|
|
17
17
|
export { getProductBranchConfig } from './products.js';
|
|
18
18
|
export { listDoneWorkArtifacts, upsertDriftFinding } from './drift.js';
|
|
19
19
|
export { insertAssemblyManifest } from './context-assembly.js';
|
|
20
|
+
export { insertAuditRun, updateAuditRun } from './audit-runs.js';
|
|
21
|
+
export { createFocusCycleEvaluation, getRecentFocusCycleEvaluation } from './focus-cycle-evaluations.js';
|
|
22
|
+
export { upsertGitActivity, getLatestGitActivityTimestamp } from './git-activity.js';
|
|
23
|
+
export { getAppliedMigrations } from './migrations.js';
|
|
24
|
+
export { getFocusNeedsInjectionUdes } from './reality-tree.js';
|
|
25
|
+
export { getPendingVerifications, recordDeliveryVerificationOutcome, verifyInjectionOnPass, verifyInjectionWithEvidence, } from './verification.js';
|
|
26
|
+
export { upsertWorktreeRecord, removeWorktreeRecord, listWorktreeRecords } from './worktrees.js';
|
|
27
|
+
// Note: schemas.ts is intentionally NOT re-exported here -- it holds internal
|
|
28
|
+
// Zod response-validation schemas (API plumbing), not the public query surface.
|
|
20
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queries/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,aAAa,EACb,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,qCAAqC,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,GACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,0BAA0B,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAEzG,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EACL,uBAAuB,EACvB,iCAAiC,EACjC,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAEjG,8EAA8E;AAC9E,gFAAgF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-escalations.d.ts","sourceRoot":"","sources":["../../src/resolvers/agent-escalations.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { callApi } from '../queries/shared.js';
|
|
3
|
+
import { getAuditCycleLowerBound } from './shared/audit.js';
|
|
4
|
+
/**
|
|
5
|
+
* agent_escalations
|
|
6
|
+
*
|
|
7
|
+
* Escalations filed against the focus's deliveries in the current cycle.
|
|
8
|
+
* Window lower bound is the prior audit_runs.completed_at (best effort).
|
|
9
|
+
*/
|
|
10
|
+
registerSourceResolver('agent_escalations', async (context) => {
|
|
11
|
+
try {
|
|
12
|
+
const since = await getAuditCycleLowerBound(context.focusId);
|
|
13
|
+
const params = { focusId: context.focusId };
|
|
14
|
+
if (since)
|
|
15
|
+
params.sinceIso = since;
|
|
16
|
+
const result = await callApi('daemon_get_agent_escalations_for_focus', params);
|
|
17
|
+
const escalations = result.escalations ?? [];
|
|
18
|
+
if (escalations.length === 0)
|
|
19
|
+
return '';
|
|
20
|
+
const lines = escalations.map((e) => {
|
|
21
|
+
const kindLabel = e.escalationKind ?? e.reasonType;
|
|
22
|
+
const description = e.description.replace(/\n/g, ' ');
|
|
23
|
+
const truncated = description.length > 240 ? `${description.slice(0, 237)}...` : description;
|
|
24
|
+
return `- **${kindLabel}** [${e.status}] (${e.createdAt}): ${truncated}`;
|
|
25
|
+
});
|
|
26
|
+
return `## Agent Escalations (current cycle)\n\n${lines.join('\n')}`;
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
console.warn(`[assembly] agent_escalations failed: ${err.message}`);
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=agent-escalations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-escalations.js","sourceRoot":"","sources":["../../src/resolvers/agent-escalations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAa5D;;;;;GAKG;AACH,sBAAsB,CAAC,mBAAmB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IAC9F,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAA4B,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACrE,IAAI,KAAK;YAAE,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,wCAAwC,EACxC,MAAM,CACP,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,UAAU,CAAC;YACnD,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7F,OAAO,OAAO,SAAS,OAAO,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,OAAO,2CAA2C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,wCAAyC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session-summaries.d.ts","sourceRoot":"","sources":["../../src/resolvers/agent-session-summaries.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { callApi } from '../queries/shared.js';
|
|
3
|
+
/**
|
|
4
|
+
* agent_session_summaries
|
|
5
|
+
*
|
|
6
|
+
* Returns the most recent agent_sessions.last_narration per delivery
|
|
7
|
+
* within the focus, grouped by delivery name. Fails soft.
|
|
8
|
+
*/
|
|
9
|
+
registerSourceResolver('agent_session_summaries', async (context) => {
|
|
10
|
+
try {
|
|
11
|
+
const result = await callApi('daemon_get_agent_session_summaries_for_focus', { focusId: context.focusId });
|
|
12
|
+
const summaries = result.summaries ?? [];
|
|
13
|
+
if (summaries.length === 0)
|
|
14
|
+
return '';
|
|
15
|
+
summaries.sort((a, b) => a.deliveryName.localeCompare(b.deliveryName));
|
|
16
|
+
const sections = summaries.map((s) => {
|
|
17
|
+
const at = s.lastNarrationAt ? ` (${s.lastNarrationAt})` : '';
|
|
18
|
+
const narration = s.lastNarration.trim() || '_no narration captured_';
|
|
19
|
+
return `### ${s.deliveryName}${at}\n\n${narration}`;
|
|
20
|
+
});
|
|
21
|
+
return `## Team Narrations (per delivery)\n\n${sections.join('\n\n')}`;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
console.warn(`[assembly] agent_session_summaries failed: ${err.message}`);
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=agent-session-summaries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-session-summaries.js","sourceRoot":"","sources":["../../src/resolvers/agent-session-summaries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAS/C;;;;;GAKG;AACH,sBAAsB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IACpG,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,8CAA8C,EAC9C,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC7B,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnC,MAAM,EAAE,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,yBAAyB,CAAC;YACtE,OAAO,OAAO,CAAC,CAAC,YAAY,GAAG,EAAE,OAAO,SAAS,EAAE,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,OAAO,wCAAwC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACzE,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 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-acceptance-criteria.d.ts","sourceRoot":"","sources":["../../src/resolvers/delivery-acceptance-criteria.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
3
|
+
/**
|
|
4
|
+
* delivery.acceptance_criteria
|
|
5
|
+
*
|
|
6
|
+
* Fetches all deliveries for the focus and formats acceptance criteria.
|
|
7
|
+
*/
|
|
8
|
+
registerSourceResolver('delivery.acceptance_criteria', async (context) => {
|
|
9
|
+
const deliveries = await getFocusDeliveries(context.focusId);
|
|
10
|
+
if (deliveries.length === 0)
|
|
11
|
+
return '';
|
|
12
|
+
const sections = deliveries
|
|
13
|
+
.filter((d) => d.acceptanceCriteria)
|
|
14
|
+
.map((d) => `### ${d.name}\n\n${d.acceptanceCriteria}`);
|
|
15
|
+
if (sections.length === 0)
|
|
16
|
+
return '';
|
|
17
|
+
return `## Acceptance Criteria\n\n${sections.join('\n\n')}`;
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=delivery-acceptance-criteria.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-acceptance-criteria.js","sourceRoot":"","sources":["../../src/resolvers/delivery-acceptance-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;GAIG;AACH,sBAAsB,CAAC,8BAA8B,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IACzG,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAG,UAAU;SACxB,MAAM,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;SACtD,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAC5B,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAC3C,CAAC;IAEJ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,6BAA6B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-description.d.ts","sourceRoot":"","sources":["../../src/resolvers/delivery-description.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
3
|
+
/**
|
|
4
|
+
* delivery.description
|
|
5
|
+
*
|
|
6
|
+
* Fetches all deliveries for the focus and formats descriptions.
|
|
7
|
+
*/
|
|
8
|
+
registerSourceResolver('delivery.description', async (context) => {
|
|
9
|
+
const deliveries = await getFocusDeliveries(context.focusId);
|
|
10
|
+
if (deliveries.length === 0)
|
|
11
|
+
return '';
|
|
12
|
+
const sections = deliveries
|
|
13
|
+
.filter((d) => d.description)
|
|
14
|
+
.map((d) => `### ${d.name}\n\n${d.description}`);
|
|
15
|
+
if (sections.length === 0)
|
|
16
|
+
return '';
|
|
17
|
+
return `## Delivery Descriptions\n\n${sections.join('\n\n')}`;
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=delivery-description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-description.js","sourceRoot":"","sources":["../../src/resolvers/delivery-description.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;GAIG;AACH,sBAAsB,CAAC,sBAAsB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IACjG,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAG,UAAU;SACxB,MAAM,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;SAC/C,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAC5B,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CACpC,CAAC;IAEJ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,+BAA+B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-issues.d.ts","sourceRoot":"","sources":["../../src/resolvers/delivery-issues.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getFocusIssues } from '../queries/focuses.js';
|
|
3
|
+
import { statusCheckbox } from './shared/format.js';
|
|
4
|
+
/**
|
|
5
|
+
* delivery.issues
|
|
6
|
+
*
|
|
7
|
+
* Fetches all issues across deliveries and formats as a checklist.
|
|
8
|
+
* Optional param: status (filter by issue status, e.g. "done").
|
|
9
|
+
*/
|
|
10
|
+
registerSourceResolver('delivery.issues', async (context, params) => {
|
|
11
|
+
const issues = await getFocusIssues(context.focusId);
|
|
12
|
+
if (issues.length === 0)
|
|
13
|
+
return '';
|
|
14
|
+
const statusFilter = params.status?.toLowerCase();
|
|
15
|
+
// When filtering by 'done', also include 'Verified' issues — they are
|
|
16
|
+
// semantically closed (confirmed-addressed by a review agent) and should
|
|
17
|
+
// appear in review-context done-lists so the agent knows they were handled.
|
|
18
|
+
const filtered = statusFilter
|
|
19
|
+
? issues.filter((i) => {
|
|
20
|
+
const s = i.status.toLowerCase();
|
|
21
|
+
return s === statusFilter || (statusFilter === 'done' && s === 'verified');
|
|
22
|
+
})
|
|
23
|
+
: issues;
|
|
24
|
+
if (filtered.length === 0)
|
|
25
|
+
return '';
|
|
26
|
+
// Group issues by delivery
|
|
27
|
+
const byDelivery = {};
|
|
28
|
+
for (const issue of filtered) {
|
|
29
|
+
const group = byDelivery[issue.deliveryId] ?? [];
|
|
30
|
+
group.push(issue);
|
|
31
|
+
byDelivery[issue.deliveryId] = group;
|
|
32
|
+
}
|
|
33
|
+
const sections = [];
|
|
34
|
+
for (const deliveryId of Object.keys(byDelivery)) {
|
|
35
|
+
const deliveryIssues = byDelivery[deliveryId];
|
|
36
|
+
const lines = deliveryIssues.map((i) => {
|
|
37
|
+
const check = statusCheckbox(i.status);
|
|
38
|
+
const typeTag = i.issueType !== 'task' ? ` [${i.issueType}]` : '';
|
|
39
|
+
return `- ${check} ${i.title}${typeTag} (${i.status})`;
|
|
40
|
+
});
|
|
41
|
+
sections.push(`### Delivery ${deliveryId.slice(0, 8)}\n\n${lines.join('\n')}`);
|
|
42
|
+
}
|
|
43
|
+
const header = statusFilter
|
|
44
|
+
? `## Issues (${statusFilter})`
|
|
45
|
+
: '## Issues';
|
|
46
|
+
const hasVerified = filtered.some((i) => i.status.toLowerCase() === 'verified');
|
|
47
|
+
const hasInReview = filtered.some((i) => i.status.toLowerCase() === 'in review');
|
|
48
|
+
const legendLines = [];
|
|
49
|
+
if (hasVerified)
|
|
50
|
+
legendLines.push('`[v]` = Verified — confirmed-addressed in a prior review pass. Skip on re-review.');
|
|
51
|
+
if (hasInReview)
|
|
52
|
+
legendLines.push('`[?]` = In Review — dev-complete, awaiting review-agent confirmation. **This is the review agent\'s working set.**');
|
|
53
|
+
const legend = legendLines.length > 0
|
|
54
|
+
? '\n\n' + legendLines.map(l => `> ${l}`).join('\n>\n> ')
|
|
55
|
+
: '';
|
|
56
|
+
return `${header}${legend}\n\n${sections.join('\n\n')}`;
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=delivery-issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-issues.js","sourceRoot":"","sources":["../../src/resolvers/delivery-issues.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;GAKG;AACH,sBAAsB,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAwB,EAAE,MAA8B,EAAmB,EAAE;IAC5H,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;IAClD,sEAAsE;IACtE,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,YAAY;QAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAiB,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,KAAK,YAAY,IAAI,CAAC,YAAY,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;QAC7E,CAAC,CAAC;QACJ,CAAC,CAAC,MAAM,CAAC;IAEX,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,2BAA2B;IAC3B,MAAM,UAAU,GAAqC,EAAE,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAiB,EAAE,EAAE;YACrD,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,OAAO,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,gBAAgB,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,MAAM,GAAG,YAAY;QACzB,CAAC,CAAC,cAAc,YAAY,GAAG;QAC/B,CAAC,CAAC,WAAW,CAAC;IAEhB,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,CAAC;IAChG,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,CAAC;IACjG,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,WAAW;QAAE,WAAW,CAAC,IAAI,CAAC,mFAAmF,CAAC,CAAC;IACvH,IAAI,WAAW;QAAE,WAAW,CAAC,IAAI,CAAC,oHAAoH,CAAC,CAAC;IACxJ,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,GAAG,MAAM,GAAG,MAAM,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-listing.d.ts","sourceRoot":"","sources":["../../src/resolvers/delivery-listing.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getFocusDeliveries, getFocusIssues } from '../queries/focuses.js';
|
|
3
|
+
import { buildDeliveryListingSection } from '../team-prompt-base.js';
|
|
4
|
+
import { getAuditCycleLowerBound } from './shared/audit.js';
|
|
5
|
+
/**
|
|
6
|
+
* delivery.listing
|
|
7
|
+
*
|
|
8
|
+
* Fetches deliveries and issues for the focus and formats as a
|
|
9
|
+
* detailed listing using the same format as the team prompt builder.
|
|
10
|
+
*
|
|
11
|
+
* Optional param: scope
|
|
12
|
+
* - "team" (default): queued + coding deliveries only (building phase)
|
|
13
|
+
* - "all": all deliveries with status
|
|
14
|
+
* - "verify": only verify deliveries (review phase)
|
|
15
|
+
* - "done_since_last_audit": deliveries with executionStatus=done whose
|
|
16
|
+
* updatedAt is at or after the previous audit cycle's completed_at.
|
|
17
|
+
* When no prior audit exists, returns all done deliveries.
|
|
18
|
+
*/
|
|
19
|
+
registerSourceResolver('delivery.listing', async (context, params) => {
|
|
20
|
+
const deliveries = await getFocusDeliveries(context.focusId);
|
|
21
|
+
if (deliveries.length === 0)
|
|
22
|
+
return '';
|
|
23
|
+
const issues = await getFocusIssues(context.focusId);
|
|
24
|
+
const scope = params.scope ?? 'team';
|
|
25
|
+
if (scope === 'verify') {
|
|
26
|
+
// Filter to only verify deliveries for review context
|
|
27
|
+
const verifyDeliveries = deliveries.filter(d => d.executionStatus === 'verify');
|
|
28
|
+
if (verifyDeliveries.length === 0)
|
|
29
|
+
return '';
|
|
30
|
+
const lines = buildDeliveryListingSection(verifyDeliveries, issues);
|
|
31
|
+
return lines.join('\n');
|
|
32
|
+
}
|
|
33
|
+
if (scope === 'done_since_last_audit') {
|
|
34
|
+
const since = await getAuditCycleLowerBound(context.focusId);
|
|
35
|
+
const doneDeliveries = deliveries.filter(d => {
|
|
36
|
+
if (d.executionStatus !== 'done')
|
|
37
|
+
return false;
|
|
38
|
+
if (!since)
|
|
39
|
+
return true;
|
|
40
|
+
// updatedAt is the closest proxy for "moved to done at" -- when the
|
|
41
|
+
// daemon advances a delivery to done, that bumps updated_at. Missing
|
|
42
|
+
// timestamps are included so we don't silently drop a real completion.
|
|
43
|
+
return !d.updatedAt || d.updatedAt >= since;
|
|
44
|
+
});
|
|
45
|
+
if (doneDeliveries.length === 0)
|
|
46
|
+
return '';
|
|
47
|
+
const lines = buildDeliveryListingSection(doneDeliveries, issues);
|
|
48
|
+
return lines.join('\n');
|
|
49
|
+
}
|
|
50
|
+
// Default: use buildDeliveryListingSection which partitions into team/other
|
|
51
|
+
const lines = buildDeliveryListingSection(deliveries, issues);
|
|
52
|
+
return lines.join('\n');
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=delivery-listing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-listing.js","sourceRoot":"","sources":["../../src/resolvers/delivery-listing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,sBAAsB,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAwB,EAAE,MAA8B,EAAmB,EAAE;IAC7H,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC;IAErC,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,sDAAsD;QACtD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC;QAChF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,2BAA2B,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;QACpE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,KAAK,uBAAuB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YAC3C,IAAI,CAAC,CAAC,eAAe,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAC;YACxB,oEAAoE;YACpE,qEAAqE;YACrE,uEAAuE;YACvE,OAAO,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,2BAA2B,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,4EAA4E;IAC5E,MAAM,KAAK,GAAG,2BAA2B,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-tech-context.d.ts","sourceRoot":"","sources":["../../src/resolvers/delivery-tech-context.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
3
|
+
/**
|
|
4
|
+
* delivery.tech_context
|
|
5
|
+
*
|
|
6
|
+
* Concatenates the techContext field of every delivery in the focus.
|
|
7
|
+
*/
|
|
8
|
+
registerSourceResolver('delivery.tech_context', async (context) => {
|
|
9
|
+
const deliveries = await getFocusDeliveries(context.focusId);
|
|
10
|
+
if (deliveries.length === 0)
|
|
11
|
+
return '';
|
|
12
|
+
const sections = deliveries
|
|
13
|
+
.filter((d) => d.techContext)
|
|
14
|
+
.map((d) => `### ${d.name}\n\n${d.techContext}`);
|
|
15
|
+
if (sections.length === 0)
|
|
16
|
+
return '';
|
|
17
|
+
return `## Technical Context\n\n${sections.join('\n\n')}`;
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=delivery-tech-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-tech-context.js","sourceRoot":"","sources":["../../src/resolvers/delivery-tech-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG3D;;;;GAIG;AACH,sBAAsB,CAAC,uBAAuB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IAClG,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,QAAQ,GAAG,UAAU;SACxB,MAAM,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;SAC/C,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAEtE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,2BAA2B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-profile.d.ts","sourceRoot":"","sources":["../../src/resolvers/deployment-profile.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getProductDeploymentProfileSnapshot } from '../queries/focuses.js';
|
|
3
|
+
/**
|
|
4
|
+
* deployment.profile
|
|
5
|
+
*
|
|
6
|
+
* Fetches the deployment profile snapshot for the product and formats
|
|
7
|
+
* the inception prompt and guidelines as markdown.
|
|
8
|
+
*/
|
|
9
|
+
registerSourceResolver('deployment.profile', async (context) => {
|
|
10
|
+
try {
|
|
11
|
+
const snapshot = await getProductDeploymentProfileSnapshot(context.productId);
|
|
12
|
+
if (!snapshot)
|
|
13
|
+
return '';
|
|
14
|
+
const parts = [];
|
|
15
|
+
if (snapshot.inceptionPrompt) {
|
|
16
|
+
parts.push(`## Deployment Profile: Operational Context\n\n${snapshot.inceptionPrompt}`);
|
|
17
|
+
}
|
|
18
|
+
if (snapshot.guidelines) {
|
|
19
|
+
parts.push(`## Deployment Constraints\n\n${snapshot.guidelines}`);
|
|
20
|
+
}
|
|
21
|
+
return parts.join('\n\n');
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
console.warn(`[assembly-engine] deployment.profile: failed: ${err.message}`);
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=deployment-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployment-profile.js","sourceRoot":"","sources":["../../src/resolvers/deployment-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,mCAAmC,EAAE,MAAM,uBAAuB,CAAC;AAE5E;;;;;GAKG;AACH,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;IAC/F,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mCAAmC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAEzB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,KAAK,CAAC,IAAI,CAAC,iDAAiD,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,gCAAgC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,iDAAkD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACxF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-anchoring-injections.d.ts","sourceRoot":"","sources":["../../src/resolvers/focus-anchoring-injections.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
|
+
import { getFocusDeliveries } from '../queries/focuses.js';
|
|
3
|
+
import { callApi } from '../queries/shared.js';
|
|
4
|
+
import { fetchInjectionBundles } from './shared/loop.js';
|
|
5
|
+
/**
|
|
6
|
+
* focus.anchoring_injections
|
|
7
|
+
*
|
|
8
|
+
* Per-delivery report of every injection anchored to a delivery in the
|
|
9
|
+
* focus. Used by the close_loop stage assembly so the bookkeeper team
|
|
10
|
+
* lead can sweep each injection on its own merits:
|
|
11
|
+
*
|
|
12
|
+
* - the delivery the injection is anchored to (name + id)
|
|
13
|
+
* - the injection statement, lifecycle status, and seq number
|
|
14
|
+
* - the UDE(s) the injection targets (via `targets` edges)
|
|
15
|
+
* - the FRT overlay statement on each UDE (what it becomes once verified)
|
|
16
|
+
* - the FRT overlay node type (e.g., UDE -> DE flip)
|
|
17
|
+
* - "expected reality change" -- diff between current statement and FRT
|
|
18
|
+
* overlay statement, surfaced per target so the agent can check whether
|
|
19
|
+
* the worktree evidence supports the flip
|
|
20
|
+
*
|
|
21
|
+
* Query path:
|
|
22
|
+
* org_nodes (type=delivery, focus_id=X) -> injection_id ->
|
|
23
|
+
* reality_tree_nodes (injection) -> reality_tree_edges (targets) ->
|
|
24
|
+
* reality_tree_nodes (UDE / target)
|
|
25
|
+
*
|
|
26
|
+
* Returns empty string when the focus has no deliveries with injection
|
|
27
|
+
* anchors. Fails soft on API errors.
|
|
28
|
+
*/
|
|
29
|
+
registerSourceResolver('focus.anchoring_injections', async (context) => {
|
|
30
|
+
try {
|
|
31
|
+
const deliveries = await getFocusDeliveries(context.focusId);
|
|
32
|
+
const anchored = deliveries.filter((d) => typeof d.injectionId === 'string' && d.injectionId.length > 0);
|
|
33
|
+
if (anchored.length === 0)
|
|
34
|
+
return '';
|
|
35
|
+
const injectionIds = anchored.map((d) => d.injectionId);
|
|
36
|
+
const bundles = await fetchInjectionBundles(injectionIds);
|
|
37
|
+
if (bundles.size === 0)
|
|
38
|
+
return '';
|
|
39
|
+
// Cache nodes+edges per tree so we don't fetch them once per delivery
|
|
40
|
+
// when multiple injections share a tree.
|
|
41
|
+
const treeNodesCache = new Map();
|
|
42
|
+
const treeEdgesCache = new Map();
|
|
43
|
+
async function loadTree(treeId) {
|
|
44
|
+
let nodes = treeNodesCache.get(treeId);
|
|
45
|
+
let edges = treeEdgesCache.get(treeId);
|
|
46
|
+
if (!nodes || !edges) {
|
|
47
|
+
const [nodesResp, edgesResp] = await Promise.all([
|
|
48
|
+
callApi('reality_tree_node_list', { treeId, status: 'active' }),
|
|
49
|
+
callApi('reality_tree_edge_list', { treeId }),
|
|
50
|
+
]);
|
|
51
|
+
nodes = nodesResp.items ?? [];
|
|
52
|
+
edges = edgesResp.items ?? [];
|
|
53
|
+
treeNodesCache.set(treeId, nodes);
|
|
54
|
+
treeEdgesCache.set(treeId, edges);
|
|
55
|
+
}
|
|
56
|
+
return { nodes, edges };
|
|
57
|
+
}
|
|
58
|
+
const sections = [];
|
|
59
|
+
for (const delivery of anchored) {
|
|
60
|
+
const injectionId = delivery.injectionId;
|
|
61
|
+
const bundle = bundles.get(injectionId);
|
|
62
|
+
if (!bundle)
|
|
63
|
+
continue;
|
|
64
|
+
const inj = bundle.injection;
|
|
65
|
+
const treeId = inj.realityTreeId;
|
|
66
|
+
const { nodes, edges } = await loadTree(treeId);
|
|
67
|
+
const nodeById = new Map();
|
|
68
|
+
for (const n of nodes)
|
|
69
|
+
nodeById.set(n.id, n);
|
|
70
|
+
const statusTag = inj.injectionStatus ? ` [${inj.injectionStatus}]` : '';
|
|
71
|
+
const lines = [
|
|
72
|
+
`### ${delivery.name}`,
|
|
73
|
+
'',
|
|
74
|
+
`- **Anchored delivery:** ${delivery.name} (\`${delivery.id}\`)`,
|
|
75
|
+
`- **Injection:** #${inj.seq} ${inj.statement}${statusTag}`,
|
|
76
|
+
`- **Tree:** ${bundle.treeName}`,
|
|
77
|
+
];
|
|
78
|
+
if (inj.dissolvesObstacle) {
|
|
79
|
+
lines.push(`- **Dissolves obstacle:** ${inj.dissolvesObstacle}`);
|
|
80
|
+
}
|
|
81
|
+
// Walk targets edges from this injection -> target UDE/entity nodes.
|
|
82
|
+
const targetIds = edges
|
|
83
|
+
.filter((e) => e.edgeType === 'targets' && e.fromNodeId === injectionId)
|
|
84
|
+
.map((e) => e.toNodeId);
|
|
85
|
+
if (targetIds.length === 0) {
|
|
86
|
+
lines.push('', '_No target UDEs declared. Injection has no `targets` edges._');
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
lines.push('', '**Target UDEs and expected reality change:**');
|
|
90
|
+
for (const targetId of targetIds) {
|
|
91
|
+
const target = nodeById.get(targetId);
|
|
92
|
+
if (!target)
|
|
93
|
+
continue;
|
|
94
|
+
const currentType = target.nodeType;
|
|
95
|
+
const frtStatement = target.frtStatement?.trim() ?? '';
|
|
96
|
+
const frtType = target.frtNodeType?.trim() ?? '';
|
|
97
|
+
const targetHeader = `- **#${target.seq} Target UDE (${currentType}):** ${target.statement}`;
|
|
98
|
+
lines.push(targetHeader);
|
|
99
|
+
if (frtStatement.length > 0) {
|
|
100
|
+
const overlayType = frtType.length > 0 ? frtType : currentType;
|
|
101
|
+
lines.push(` - **FRT overlay (${overlayType}):** ${frtStatement}`);
|
|
102
|
+
lines.push(` - **Expected reality change:** "${target.statement}" -> "${frtStatement}"`);
|
|
103
|
+
}
|
|
104
|
+
else if (frtType.length > 0) {
|
|
105
|
+
lines.push(` - **FRT overlay (${frtType}):** _(type flip only, no statement rewrite)_`);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
lines.push(' - _No FRT overlay set on this target._');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
sections.push(lines.join('\n'));
|
|
113
|
+
}
|
|
114
|
+
if (sections.length === 0)
|
|
115
|
+
return '';
|
|
116
|
+
return `## Anchoring Injections (close-loop sweep)\n\n${sections.join('\n\n')}`;
|
|
117
|
+
}
|
|
118
|
+
catch (err) {
|
|
119
|
+
console.warn(`[assembly-engine] focus.anchoring_injections: failed: ${err.message}`);
|
|
120
|
+
return '';
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
//# sourceMappingURL=focus-anchoring-injections.js.map
|