@telora/daemon 0.17.33 → 0.17.40
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 +5 -3
- package/dist/assembly-engine.d.ts +6 -0
- package/dist/assembly-engine.d.ts.map +1 -1
- package/dist/assembly-engine.js +19 -0
- package/dist/assembly-engine.js.map +1 -1
- package/dist/assembly-resolvers.d.ts +17 -8
- package/dist/assembly-resolvers.d.ts.map +1 -1
- package/dist/assembly-resolvers.js +19 -8
- package/dist/assembly-resolvers.js.map +1 -1
- package/dist/cli/connect.d.ts.map +1 -1
- package/dist/cli/connect.js +4 -0
- package/dist/cli/connect.js.map +1 -1
- package/dist/cli/session-state.d.ts +10 -0
- package/dist/cli/session-state.d.ts.map +1 -1
- package/dist/cli/session-state.js +31 -0
- package/dist/cli/session-state.js.map +1 -1
- package/dist/completion/completion-decision.d.ts +83 -0
- package/dist/completion/completion-decision.d.ts.map +1 -0
- package/dist/completion/completion-decision.js +48 -0
- package/dist/completion/completion-decision.js.map +1 -0
- package/dist/completion/event-escalations.d.ts +97 -0
- package/dist/completion/event-escalations.d.ts.map +1 -0
- package/dist/completion/event-escalations.js +213 -0
- package/dist/completion/event-escalations.js.map +1 -0
- package/dist/completion/event.d.ts +1 -72
- package/dist/completion/event.d.ts.map +1 -1
- package/dist/completion/event.js +149 -329
- package/dist/completion/event.js.map +1 -1
- package/dist/completion/exit-classification.d.ts +82 -0
- package/dist/completion/exit-classification.d.ts.map +1 -0
- package/dist/completion/exit-classification.js +61 -0
- package/dist/completion/exit-classification.js.map +1 -0
- package/dist/completion/index.d.ts +14 -5
- package/dist/completion/index.d.ts.map +1 -1
- package/dist/completion/index.js +14 -5
- package/dist/completion/index.js.map +1 -1
- package/dist/completion/merge-phase.d.ts +114 -0
- package/dist/completion/merge-phase.d.ts.map +1 -0
- package/dist/completion/merge-phase.js +198 -0
- package/dist/completion/merge-phase.js.map +1 -0
- package/dist/completion/review-exit-phase.d.ts +82 -0
- package/dist/completion/review-exit-phase.d.ts.map +1 -0
- package/dist/completion/review-exit-phase.js +228 -0
- package/dist/completion/review-exit-phase.js.map +1 -0
- package/dist/completion/status-advance-phase.d.ts +61 -0
- package/dist/completion/status-advance-phase.d.ts.map +1 -0
- package/dist/completion/status-advance-phase.js +182 -0
- package/dist/completion/status-advance-phase.js.map +1 -0
- package/dist/completion/team-completion.d.ts +28 -269
- package/dist/completion/team-completion.d.ts.map +1 -1
- package/dist/completion/team-completion.js +145 -676
- package/dist/completion/team-completion.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +70 -41
- package/dist/config.js.map +1 -1
- package/dist/daemon-process.d.ts +18 -2
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/daemon-process.js +15 -2
- package/dist/daemon-process.js.map +1 -1
- package/dist/directive/close-loop-stage.d.ts +50 -0
- package/dist/directive/close-loop-stage.d.ts.map +1 -0
- package/dist/directive/close-loop-stage.js +196 -0
- package/dist/directive/close-loop-stage.js.map +1 -0
- package/dist/directive/directive-assembly.d.ts +33 -0
- package/dist/directive/directive-assembly.d.ts.map +1 -0
- package/dist/directive/directive-assembly.js +77 -0
- package/dist/directive/directive-assembly.js.map +1 -0
- package/dist/directive/directive-dispatch.d.ts +103 -0
- package/dist/directive/directive-dispatch.d.ts.map +1 -0
- package/dist/directive/directive-dispatch.js +279 -0
- package/dist/directive/directive-dispatch.js.map +1 -0
- package/dist/directive/phase-sync.d.ts +89 -0
- package/dist/directive/phase-sync.d.ts.map +1 -0
- package/dist/directive/phase-sync.js +173 -0
- package/dist/directive/phase-sync.js.map +1 -0
- package/dist/directive-executor.d.ts +21 -223
- package/dist/directive-executor.d.ts.map +1 -1
- package/dist/directive-executor.js +28 -687
- package/dist/directive-executor.js.map +1 -1
- package/dist/focus-engine.d.ts.map +1 -1
- package/dist/focus-engine.js +16 -10
- package/dist/focus-engine.js.map +1 -1
- package/dist/focus-executor.d.ts +29 -8
- package/dist/focus-executor.d.ts.map +1 -1
- package/dist/focus-executor.js +29 -10
- package/dist/focus-executor.js.map +1 -1
- package/dist/focus-stage-lifecycle.d.ts +7 -5
- package/dist/focus-stage-lifecycle.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle.js +11 -6
- package/dist/focus-stage-lifecycle.js.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/merge-back-loop.d.ts.map +1 -1
- package/dist/merge-back-loop.js +4 -10
- package/dist/merge-back-loop.js.map +1 -1
- package/dist/pipeline-config.d.ts +13 -0
- package/dist/pipeline-config.d.ts.map +1 -1
- package/dist/pipeline-config.js +15 -0
- package/dist/pipeline-config.js.map +1 -1
- package/dist/resolvers/agent-escalations.d.ts +8 -1
- package/dist/resolvers/agent-escalations.d.ts.map +1 -1
- package/dist/resolvers/agent-escalations.js +25 -22
- package/dist/resolvers/agent-escalations.js.map +1 -1
- package/dist/resolvers/agent-session-summaries.d.ts +8 -1
- package/dist/resolvers/agent-session-summaries.d.ts.map +1 -1
- package/dist/resolvers/agent-session-summaries.js +21 -18
- package/dist/resolvers/agent-session-summaries.js.map +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.d.ts +7 -1
- package/dist/resolvers/delivery-acceptance-criteria.d.ts.map +1 -1
- package/dist/resolvers/delivery-acceptance-criteria.js +14 -11
- package/dist/resolvers/delivery-acceptance-criteria.js.map +1 -1
- package/dist/resolvers/delivery-description.d.ts +7 -1
- package/dist/resolvers/delivery-description.d.ts.map +1 -1
- package/dist/resolvers/delivery-description.js +14 -11
- package/dist/resolvers/delivery-description.js.map +1 -1
- package/dist/resolvers/delivery-issues.d.ts +8 -1
- package/dist/resolvers/delivery-issues.d.ts.map +1 -1
- package/dist/resolvers/delivery-issues.js +51 -48
- package/dist/resolvers/delivery-issues.js.map +1 -1
- package/dist/resolvers/delivery-listing.d.ts +16 -1
- package/dist/resolvers/delivery-listing.d.ts.map +1 -1
- package/dist/resolvers/delivery-listing.js +36 -33
- package/dist/resolvers/delivery-listing.js.map +1 -1
- package/dist/resolvers/delivery-tech-context.d.ts +7 -1
- package/dist/resolvers/delivery-tech-context.d.ts.map +1 -1
- package/dist/resolvers/delivery-tech-context.js +14 -11
- package/dist/resolvers/delivery-tech-context.js.map +1 -1
- package/dist/resolvers/deployment-profile.d.ts +8 -1
- package/dist/resolvers/deployment-profile.d.ts.map +1 -1
- package/dist/resolvers/deployment-profile.js +20 -17
- package/dist/resolvers/deployment-profile.js.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.d.ts +26 -1
- package/dist/resolvers/focus-anchoring-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-anchoring-injections.js +91 -88
- package/dist/resolvers/focus-anchoring-injections.js.map +1 -1
- package/dist/resolvers/focus-context.d.ts +9 -1
- package/dist/resolvers/focus-context.d.ts.map +1 -1
- package/dist/resolvers/focus-context.js +38 -35
- package/dist/resolvers/focus-context.js.map +1 -1
- package/dist/resolvers/focus-injections.d.ts +13 -1
- package/dist/resolvers/focus-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-injections.js +60 -57
- package/dist/resolvers/focus-injections.js.map +1 -1
- package/dist/resolvers/focus-last-review-report.d.ts +2 -1
- package/dist/resolvers/focus-last-review-report.d.ts.map +1 -1
- package/dist/resolvers/focus-last-review-report.js +33 -30
- package/dist/resolvers/focus-last-review-report.js.map +1 -1
- package/dist/resolvers/focus-reality-tree.d.ts +15 -1
- package/dist/resolvers/focus-reality-tree.d.ts.map +1 -1
- package/dist/resolvers/focus-reality-tree.js +35 -32
- package/dist/resolvers/focus-reality-tree.js.map +1 -1
- package/dist/resolvers/git-diff-against-base.d.ts +8 -1
- package/dist/resolvers/git-diff-against-base.d.ts.map +1 -1
- package/dist/resolvers/git-diff-against-base.js +33 -30
- package/dist/resolvers/git-diff-against-base.js.map +1 -1
- package/dist/resolvers/guards-evaluation-results.d.ts +7 -1
- package/dist/resolvers/guards-evaluation-results.d.ts.map +1 -1
- package/dist/resolvers/guards-evaluation-results.js +25 -22
- package/dist/resolvers/guards-evaluation-results.js.map +1 -1
- package/dist/resolvers/index.d.ts +22 -40
- package/dist/resolvers/index.d.ts.map +1 -1
- package/dist/resolvers/index.js +112 -41
- package/dist/resolvers/index.js.map +1 -1
- package/dist/resolvers/loop-context.d.ts +18 -1
- package/dist/resolvers/loop-context.d.ts.map +1 -1
- package/dist/resolvers/loop-context.js +21 -18
- package/dist/resolvers/loop-context.js.map +1 -1
- package/dist/resolvers/loop-delivery-index.d.ts +17 -1
- package/dist/resolvers/loop-delivery-index.d.ts.map +1 -1
- package/dist/resolvers/loop-delivery-index.js +51 -48
- package/dist/resolvers/loop-delivery-index.js.map +1 -1
- package/dist/resolvers/loop-documents.d.ts +9 -1
- package/dist/resolvers/loop-documents.d.ts.map +1 -1
- package/dist/resolvers/loop-documents.js +22 -19
- package/dist/resolvers/loop-documents.js.map +1 -1
- package/dist/resolvers/loop-expected-effects.d.ts +11 -1
- package/dist/resolvers/loop-expected-effects.d.ts.map +1 -1
- package/dist/resolvers/loop-expected-effects.js +53 -50
- package/dist/resolvers/loop-expected-effects.js.map +1 -1
- package/dist/resolvers/loop-frt-statement.d.ts +11 -1
- package/dist/resolvers/loop-frt-statement.d.ts.map +1 -1
- package/dist/resolvers/loop-frt-statement.js +28 -25
- package/dist/resolvers/loop-frt-statement.js.map +1 -1
- package/dist/resolvers/loop-injection.d.ts +10 -1
- package/dist/resolvers/loop-injection.d.ts.map +1 -1
- package/dist/resolvers/loop-injection.js +38 -35
- package/dist/resolvers/loop-injection.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts +20 -1
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +20 -17
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/loop-questions.d.ts +8 -1
- package/dist/resolvers/loop-questions.d.ts.map +1 -1
- package/dist/resolvers/loop-questions.js +39 -36
- package/dist/resolvers/loop-questions.js.map +1 -1
- package/dist/resolvers/loop-upstream-udes.d.ts +11 -1
- package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -1
- package/dist/resolvers/loop-upstream-udes.js +74 -71
- package/dist/resolvers/loop-upstream-udes.js.map +1 -1
- package/dist/resolvers/prd-context.d.ts +2 -0
- package/dist/resolvers/prd-context.d.ts.map +1 -1
- package/dist/resolvers/prd-context.js +16 -13
- package/dist/resolvers/prd-context.js.map +1 -1
- package/dist/resolvers/prd-persona.d.ts +2 -0
- package/dist/resolvers/prd-persona.d.ts.map +1 -1
- package/dist/resolvers/prd-persona.js +6 -3
- package/dist/resolvers/prd-persona.js.map +1 -1
- package/dist/resolvers/reality-metrics.d.ts +8 -1
- package/dist/resolvers/reality-metrics.d.ts.map +1 -1
- package/dist/resolvers/reality-metrics.js +73 -70
- package/dist/resolvers/reality-metrics.js.map +1 -1
- package/dist/resolvers/reality-projections.d.ts +7 -1
- package/dist/resolvers/reality-projections.d.ts.map +1 -1
- package/dist/resolvers/reality-projections.js +35 -32
- package/dist/resolvers/reality-projections.js.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.d.ts +10 -1
- package/dist/resolvers/reality-tree-snapshot.d.ts.map +1 -1
- package/dist/resolvers/reality-tree-snapshot.js +34 -31
- package/dist/resolvers/reality-tree-snapshot.js.map +1 -1
- package/dist/resolvers/retired-injections.d.ts +10 -1
- package/dist/resolvers/retired-injections.d.ts.map +1 -1
- package/dist/resolvers/retired-injections.js +68 -65
- package/dist/resolvers/retired-injections.js.map +1 -1
- package/dist/resolvers/review-outcomes.d.ts +11 -1
- package/dist/resolvers/review-outcomes.d.ts.map +1 -1
- package/dist/resolvers/review-outcomes.js +27 -24
- package/dist/resolvers/review-outcomes.js.map +1 -1
- package/dist/resolvers/security-advisory.d.ts +2 -1
- package/dist/resolvers/security-advisory.d.ts.map +1 -1
- package/dist/resolvers/security-advisory.js +47 -44
- package/dist/resolvers/security-advisory.js.map +1 -1
- package/dist/resolvers/wiki-search.d.ts +8 -1
- package/dist/resolvers/wiki-search.d.ts.map +1 -1
- package/dist/resolvers/wiki-search.js +17 -14
- package/dist/resolvers/wiki-search.js.map +1 -1
- package/dist/resolvers/wiki-topic.d.ts +9 -1
- package/dist/resolvers/wiki-topic.d.ts.map +1 -1
- package/dist/resolvers/wiki-topic.js +21 -18
- package/dist/resolvers/wiki-topic.js.map +1 -1
- package/dist/resolvers/workflow-stages.d.ts +7 -1
- package/dist/resolvers/workflow-stages.d.ts.map +1 -1
- package/dist/resolvers/workflow-stages.js +20 -17
- package/dist/resolvers/workflow-stages.js.map +1 -1
- package/dist/review-defect-detector.d.ts +4 -1
- package/dist/review-defect-detector.d.ts.map +1 -1
- package/dist/review-defect-detector.js +6 -8
- package/dist/review-defect-detector.js.map +1 -1
- package/dist/self-update.d.ts +6 -0
- package/dist/self-update.d.ts.map +1 -1
- package/dist/self-update.js +6 -1
- package/dist/self-update.js.map +1 -1
- package/dist/spawner/index.d.ts +2 -1
- package/dist/spawner/index.d.ts.map +1 -1
- package/dist/spawner/index.js +2 -1
- package/dist/spawner/index.js.map +1 -1
- package/dist/spawner/spawn-team.d.ts +14 -52
- package/dist/spawner/spawn-team.d.ts.map +1 -1
- package/dist/spawner/spawn-team.js +14 -469
- package/dist/spawner/spawn-team.js.map +1 -1
- package/dist/staleness.d.ts +124 -0
- package/dist/staleness.d.ts.map +1 -0
- package/dist/staleness.js +215 -0
- package/dist/staleness.js.map +1 -0
- package/dist/state-cascade.d.ts +3 -2
- package/dist/state-cascade.d.ts.map +1 -1
- package/dist/state-cascade.js +7 -3
- package/dist/state-cascade.js.map +1 -1
- package/dist/types/focus.d.ts +5 -4
- package/dist/types/focus.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +0 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/session.d.ts +2 -3
- package/dist/types/session.d.ts.map +1 -1
- package/dist/unified-engine-lifecycle.d.ts.map +1 -1
- package/dist/unified-engine-lifecycle.js +2 -23
- package/dist/unified-engine-lifecycle.js.map +1 -1
- package/dist/unified-shell-config.d.ts +2 -7
- package/dist/unified-shell-config.d.ts.map +1 -1
- package/dist/unified-shell-config.js +2 -23
- package/dist/unified-shell-config.js.map +1 -1
- package/dist/unified-shell-status.d.ts.map +1 -1
- package/dist/unified-shell-status.js +2 -4
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +21 -24
- package/dist/unified-shell.js.map +1 -1
- package/dist/version-check.d.ts.map +1 -1
- package/dist/version-check.js +6 -4
- package/dist/version-check.js.map +1 -1
- package/package.json +3 -3
- package/dist/pm/adaptive-poller.d.ts +0 -26
- package/dist/pm/adaptive-poller.d.ts.map +0 -1
- package/dist/pm/adaptive-poller.js +0 -53
- package/dist/pm/adaptive-poller.js.map +0 -1
- package/dist/pm/cascade-evaluator.d.ts +0 -29
- package/dist/pm/cascade-evaluator.d.ts.map +0 -1
- package/dist/pm/cascade-evaluator.js +0 -135
- package/dist/pm/cascade-evaluator.js.map +0 -1
- package/dist/pm/channel-email.d.ts +0 -42
- package/dist/pm/channel-email.d.ts.map +0 -1
- package/dist/pm/channel-email.js +0 -47
- package/dist/pm/channel-email.js.map +0 -1
- package/dist/pm/channel-slack.d.ts +0 -40
- package/dist/pm/channel-slack.d.ts.map +0 -1
- package/dist/pm/channel-slack.js +0 -46
- package/dist/pm/channel-slack.js.map +0 -1
- package/dist/pm/communication-drafter.d.ts +0 -44
- package/dist/pm/communication-drafter.d.ts.map +0 -1
- package/dist/pm/communication-drafter.js +0 -84
- package/dist/pm/communication-drafter.js.map +0 -1
- package/dist/pm/dialog-handler.d.ts +0 -32
- package/dist/pm/dialog-handler.d.ts.map +0 -1
- package/dist/pm/dialog-handler.js +0 -107
- package/dist/pm/dialog-handler.js.map +0 -1
- package/dist/pm/mitigation-correlator.d.ts +0 -29
- package/dist/pm/mitigation-correlator.d.ts.map +0 -1
- package/dist/pm/mitigation-correlator.js +0 -147
- package/dist/pm/mitigation-correlator.js.map +0 -1
- package/dist/pm/risk-scanner.d.ts +0 -28
- package/dist/pm/risk-scanner.d.ts.map +0 -1
- package/dist/pm/risk-scanner.js +0 -112
- package/dist/pm/risk-scanner.js.map +0 -1
- package/dist/pm-engine.d.ts +0 -96
- package/dist/pm-engine.d.ts.map +0 -1
- package/dist/pm-engine.js +0 -540
- package/dist/pm-engine.js.map +0 -1
- package/dist/pm-process.d.ts +0 -45
- package/dist/pm-process.d.ts.map +0 -1
- package/dist/pm-process.js +0 -195
- package/dist/pm-process.js.map +0 -1
- package/dist/pm-prompt-builder.d.ts +0 -23
- package/dist/pm-prompt-builder.d.ts.map +0 -1
- package/dist/pm-prompt-builder.js +0 -64
- package/dist/pm-prompt-builder.js.map +0 -1
- package/dist/session-lifecycle.d.ts +0 -78
- package/dist/session-lifecycle.d.ts.map +0 -1
- package/dist/session-lifecycle.js +0 -382
- package/dist/session-lifecycle.js.map +0 -1
- package/dist/types/pm.d.ts +0 -53
- package/dist/types/pm.d.ts.map +0 -1
- package/dist/types/pm.js +0 -10
- package/dist/types/pm.js.map +0 -1
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* loop.upstream_udes
|
|
3
|
+
*
|
|
4
|
+
* For each delivery's injection, find the nodes that the injection
|
|
5
|
+
* targets (via 'targets' edges), then BFS upstream from those targets
|
|
6
|
+
* along causal edges ('sufficient' and 'and' edge kinds) up to
|
|
7
|
+
* MAX_UPSTREAM_DEPTH hops. Returns a markdown list of upstream UDE/
|
|
8
|
+
* entity nodes the injection is indirectly meant to address. Cycle-safe.
|
|
9
|
+
*/
|
|
10
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
11
|
+
export declare function registerLoopUpstreamUdesResolver(): void;
|
|
2
12
|
//# sourceMappingURL=loop-upstream-udes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-upstream-udes.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-upstream-udes.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"loop-upstream-udes.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-upstream-udes.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,oGAAoG;AACpG,wBAAgB,gCAAgC,IAAI,IAAI,CA4EvD"}
|
|
@@ -10,79 +10,82 @@ import { getDeliveryInjectionPairs, fetchInjectionBundles, MAX_UPSTREAM_DEPTH }
|
|
|
10
10
|
* MAX_UPSTREAM_DEPTH hops. Returns a markdown list of upstream UDE/
|
|
11
11
|
* entity nodes the injection is indirectly meant to address. Cycle-safe.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
nodeById
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
13
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
14
|
+
export function registerLoopUpstreamUdesResolver() {
|
|
15
|
+
registerSourceResolver('loop.upstream_udes', async (context) => {
|
|
16
|
+
try {
|
|
17
|
+
const pairs = await getDeliveryInjectionPairs(context);
|
|
18
|
+
if (pairs.length === 0)
|
|
19
|
+
return '';
|
|
20
|
+
const bundles = await fetchInjectionBundles(pairs.map((p) => p.injectionId));
|
|
21
|
+
if (bundles.size === 0)
|
|
22
|
+
return '';
|
|
23
|
+
const sections = [];
|
|
24
|
+
for (const { deliveryName, injectionId } of pairs) {
|
|
25
|
+
const bundle = bundles.get(injectionId);
|
|
26
|
+
if (!bundle)
|
|
27
|
+
continue;
|
|
28
|
+
const treeId = bundle.injection.realityTreeId;
|
|
29
|
+
const [nodesResp, edgesResp] = await Promise.all([
|
|
30
|
+
callApi('reality_tree_node_list', { treeId, status: 'active' }),
|
|
31
|
+
callApi('reality_tree_edge_list', { treeId }),
|
|
32
|
+
]);
|
|
33
|
+
const nodes = nodesResp.items ?? [];
|
|
34
|
+
const edges = edgesResp.items ?? [];
|
|
35
|
+
const nodeById = new Map();
|
|
36
|
+
for (const n of nodes)
|
|
37
|
+
nodeById.set(n.id, n);
|
|
38
|
+
// Seed: the nodes the injection targets directly.
|
|
39
|
+
const seeds = edges
|
|
40
|
+
.filter((e) => e.edgeType === 'targets' && e.fromNodeId === injectionId)
|
|
41
|
+
.map((e) => e.toNodeId);
|
|
42
|
+
if (seeds.length === 0)
|
|
43
|
+
continue;
|
|
44
|
+
// BFS upstream along causal edges: walk edges where to_node_id is
|
|
45
|
+
// in the current frontier; the from_node_id of those edges is the
|
|
46
|
+
// upstream node. Bounded by MAX_UPSTREAM_DEPTH and cycle-safe via
|
|
47
|
+
// visited set. Seeds themselves are excluded from output (we want
|
|
48
|
+
// their upstream, not the seeds).
|
|
49
|
+
const visited = new Set(seeds);
|
|
50
|
+
const collected = [];
|
|
51
|
+
let frontier = new Set(seeds);
|
|
52
|
+
for (let depth = 0; depth < MAX_UPSTREAM_DEPTH; depth++) {
|
|
53
|
+
if (frontier.size === 0)
|
|
54
|
+
break;
|
|
55
|
+
const next = new Set();
|
|
56
|
+
for (const edge of edges) {
|
|
57
|
+
if (edge.edgeType !== 'sufficient' && edge.edgeType !== 'and')
|
|
58
|
+
continue;
|
|
59
|
+
if (!frontier.has(edge.toNodeId))
|
|
60
|
+
continue;
|
|
61
|
+
const upId = edge.fromNodeId;
|
|
62
|
+
if (visited.has(upId))
|
|
63
|
+
continue;
|
|
64
|
+
visited.add(upId);
|
|
65
|
+
next.add(upId);
|
|
66
|
+
const upNode = nodeById.get(upId);
|
|
67
|
+
if (upNode)
|
|
68
|
+
collected.push(upNode);
|
|
69
|
+
}
|
|
70
|
+
frontier = next;
|
|
67
71
|
}
|
|
68
|
-
|
|
72
|
+
if (collected.length === 0)
|
|
73
|
+
continue;
|
|
74
|
+
collected.sort((a, b) => a.seq - b.seq);
|
|
75
|
+
const lines = collected.map((n) => {
|
|
76
|
+
const typeTag = n.nodeType !== 'entity' ? ` [${n.nodeType}]` : '';
|
|
77
|
+
return `- #${n.seq} ${n.statement}${typeTag}`;
|
|
78
|
+
});
|
|
79
|
+
sections.push(`### ${deliveryName}\n\n${lines.join('\n')}`);
|
|
69
80
|
}
|
|
70
|
-
if (
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const lines = collected.map((n) => {
|
|
74
|
-
const typeTag = n.nodeType !== 'entity' ? ` [${n.nodeType}]` : '';
|
|
75
|
-
return `- #${n.seq} ${n.statement}${typeTag}`;
|
|
76
|
-
});
|
|
77
|
-
sections.push(`### ${deliveryName}\n\n${lines.join('\n')}`);
|
|
81
|
+
if (sections.length === 0)
|
|
82
|
+
return '';
|
|
83
|
+
return `## Upstream UDEs (per delivery, max depth ${MAX_UPSTREAM_DEPTH})\n\n${sections.join('\n\n')}`;
|
|
78
84
|
}
|
|
79
|
-
|
|
85
|
+
catch (err) {
|
|
86
|
+
console.warn(`[assembly] loop.upstream_udes failed: ${err.message}`);
|
|
80
87
|
return '';
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
console.warn(`[assembly] loop.upstream_udes failed: ${err.message}`);
|
|
85
|
-
return '';
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
88
91
|
//# sourceMappingURL=loop-upstream-udes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-upstream-udes.js","sourceRoot":"","sources":["../../src/resolvers/loop-upstream-udes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAOxG;;;;;;;;GAQG;AACH,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"loop-upstream-udes.js","sourceRoot":"","sources":["../../src/resolvers/loop-upstream-udes.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,4 +27,6 @@ export declare function renderPrdMilestoneContext(input: {
|
|
|
27
27
|
edges: PrtEdge[];
|
|
28
28
|
pathways: Pathway[];
|
|
29
29
|
}): string;
|
|
30
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
31
|
+
export declare function registerPrdContextResolver(): void;
|
|
30
32
|
//# sourceMappingURL=prd-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-context.d.ts","sourceRoot":"","sources":["../../src/resolvers/prd-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5G;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAW/C;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,GAAG,MAAM,CAuET"}
|
|
1
|
+
{"version":3,"file":"prd-context.d.ts","sourceRoot":"","sources":["../../src/resolvers/prd-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5G;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAW/C;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,GAAG,MAAM,CAuET;AAED,oGAAoG;AACpG,wBAAgB,0BAA0B,IAAI,IAAI,CAejD"}
|
|
@@ -84,17 +84,20 @@ export function renderPrdMilestoneContext(input) {
|
|
|
84
84
|
? `${composed.slice(0, PRD_CONTEXT_BUDGET_CHARS).trimEnd()}\n...[truncated]`
|
|
85
85
|
: composed;
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
87
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
88
|
+
export function registerPrdContextResolver() {
|
|
89
|
+
registerSourceResolver('prd.context', async (context, params) => {
|
|
90
|
+
const prdId = params.prdId || context.prdId;
|
|
91
|
+
if (!prdId)
|
|
92
|
+
return '';
|
|
93
|
+
try {
|
|
94
|
+
const { prd, nodes, edges, pathways } = await loadPrdDetail(prdId);
|
|
95
|
+
return renderPrdMilestoneContext({ prd, nodes, edges, pathways });
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
console.warn(`[assembly-engine] prd.context: failed: ${err.message}`);
|
|
99
|
+
return '';
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
100
103
|
//# sourceMappingURL=prd-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-context.js","sourceRoot":"","sources":["../../src/resolvers/prd-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prd-context.js","sourceRoot":"","sources":["../../src/resolvers/prd-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,6 @@
|
|
|
17
17
|
* wording is the contract (asymmetry, differential-not-activity, re-capture).
|
|
18
18
|
*/
|
|
19
19
|
export declare const PRD_STEWARD_PERSONA = "## PRD Persona -- Milestone Steward\n\nYou are the steward of a milestone. You operate one altitude above execution: a PRD is a bounded, verifiable, retire-able goal that decomposes into a prerequisite tree of obstacles and overcomes. Each overcome becomes a focus; the frontier of foci advances as upstream obstacles clear. The focus teams build. **You do not build, scope, or review code.** You hold the milestone's intent and judge whether reality is still tracking it.\n\nYou are a **program lead and control theorist**. Your instrument is the difference between intended and actual state -- `signal = intent - reality`. You read that difference and decide what it means.\n\n**What you hold:**\n- The **goal** -- the milestone's apex intent in the human's terms, unflattened.\n- The **committed pathway** -- the route through the tree the human committed to, plus the alternatives held in reserve.\n- The **frontier** -- which obstacles are cleared, which overcome is arming, where each active focus sits on the path.\n\n**How you judge -- the differential, not the activity:**\n- A focus being busy is not progress; an obstacle clearing is. Assess the milestone by whether *expected completion moved*, never by raw motion.\n- You are **asymmetric**: you move reality toward intent, never the reverse. When work falls short, you never lower the goal to make the signal look better -- you name the gap.\n- Reject common-mode noise: status theater, local optimization, a focus polishing what doesn't unblock the frontier. Of any activity ask: *did it clear an obstacle, or move the frontier toward the goal?*\n\n**On divergence -- the phase-lock re-capture:**\n- When reality leaves the committed path, that reality is the new fact. Never revert work already merged on an abandoned path.\n- Prefer re-acquiring a viable surviving pathway from the *current* tree state over forcing the original.\n- If no pathway can still reach the goal, **the human owns intent** -- escalate, hand control up. Never silently redefine done.\n\n**The boundary you respect:** Humans own intent (what the milestone is, what changes when) and completion (whether it is truly done). You own neither. You compute variance, steward coherence across the active frontier, and make the re-capture-or-escalate call -- and at the edge of human judgment you escalate rather than improvise.";
|
|
20
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
21
|
+
export declare function registerPrdPersonaResolver(): void;
|
|
20
22
|
//# sourceMappingURL=prd-persona.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-persona.d.ts","sourceRoot":"","sources":["../../src/resolvers/prd-persona.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB,8zEAqB6S,CAAC"}
|
|
1
|
+
{"version":3,"file":"prd-persona.d.ts","sourceRoot":"","sources":["../../src/resolvers/prd-persona.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB,8zEAqB6S,CAAC;AAE9U,oGAAoG;AACpG,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
|
|
@@ -39,7 +39,10 @@ You are a **program lead and control theorist**. Your instrument is the differen
|
|
|
39
39
|
- If no pathway can still reach the goal, **the human owns intent** -- escalate, hand control up. Never silently redefine done.
|
|
40
40
|
|
|
41
41
|
**The boundary you respect:** Humans own intent (what the milestone is, what changes when) and completion (whether it is truly done). You own neither. You compute variance, steward coherence across the active frontier, and make the re-capture-or-escalate call -- and at the edge of human judgment you escalate rather than improvise.`;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
43
|
+
export function registerPrdPersonaResolver() {
|
|
44
|
+
registerSourceResolver('prd.persona', async () => {
|
|
45
|
+
return PRD_STEWARD_PERSONA;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
45
48
|
//# sourceMappingURL=prd-persona.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prd-persona.js","sourceRoot":"","sources":["../../src/resolvers/prd-persona.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;6UAqB0S,CAAC;AAE9U,sBAAsB,CAAC,aAAa,EAAE,KAAK,IAAqB,EAAE;
|
|
1
|
+
{"version":3,"file":"prd-persona.js","sourceRoot":"","sources":["../../src/resolvers/prd-persona.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;6UAqB0S,CAAC;AAE9U,oGAAoG;AACpG,MAAM,UAAU,0BAA0B;IACxC,sBAAsB,CAAC,aAAa,EAAE,KAAK,IAAqB,EAAE;QAChE,OAAO,mBAAmB,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* reality.metrics
|
|
3
|
+
*
|
|
4
|
+
* Fetches focus reality metrics + trajectory projections from the edge function.
|
|
5
|
+
* Formats as markdown for agent consumption (Wire B of the differential pair).
|
|
6
|
+
*/
|
|
7
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
8
|
+
export declare function registerRealityMetricsResolver(): void;
|
|
2
9
|
//# sourceMappingURL=reality-metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reality-metrics.d.ts","sourceRoot":"","sources":["../../src/resolvers/reality-metrics.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"reality-metrics.d.ts","sourceRoot":"","sources":["../../src/resolvers/reality-metrics.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,oGAAoG;AACpG,wBAAgB,8BAA8B,IAAI,IAAI,CAqFrD"}
|
|
@@ -6,81 +6,84 @@ import { callApi } from '../queries/shared.js';
|
|
|
6
6
|
* Fetches focus reality metrics + trajectory projections from the edge function.
|
|
7
7
|
* Formats as markdown for agent consumption (Wire B of the differential pair).
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
parts.push(`-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
parts.push(`- Blocked: ${m.blocked_count} issues${m.avg_blocked_duration_days !== null ? `, avg duration ${m.avg_blocked_duration_days} days` : ''}`);
|
|
30
|
-
}
|
|
31
|
-
// Agent cost
|
|
32
|
-
parts.push('\n### Agent Activity');
|
|
33
|
-
parts.push(`- Sessions: ${m.session_count} | Cost: $${m.total_agent_cost.toFixed(2)} | Escalations: ${m.escalation_count}`);
|
|
34
|
-
if (m.last_session_at) {
|
|
35
|
-
parts.push(`- Last session: ${m.last_session_at}`);
|
|
36
|
-
}
|
|
37
|
-
// Git merge metrics
|
|
38
|
-
if (m.merge_count !== undefined) {
|
|
39
|
-
parts.push('\n### Git Activity');
|
|
40
|
-
parts.push(`- Total merges: ${m.merge_count} | Last 7d: ${m.merges_7d ?? 0} | Last 30d: ${m.merges_30d ?? 0}`);
|
|
41
|
-
if (m.last_merge_at) {
|
|
42
|
-
parts.push(`- Last merge: ${m.last_merge_at}`);
|
|
9
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
10
|
+
export function registerRealityMetricsResolver() {
|
|
11
|
+
registerSourceResolver('reality.metrics', async (context) => {
|
|
12
|
+
try {
|
|
13
|
+
const result = await callApi('reality_metrics_focus', {
|
|
14
|
+
focusId: context.focusId,
|
|
15
|
+
});
|
|
16
|
+
const m = result.metrics;
|
|
17
|
+
if (!m)
|
|
18
|
+
return '';
|
|
19
|
+
const parts = ['## Execution Reality\n'];
|
|
20
|
+
// Delivery status breakdown
|
|
21
|
+
parts.push('### Delivery Status');
|
|
22
|
+
parts.push(`- Planning: ${m.deliveries_planning} | Queued: ${m.deliveries_queued} | Coding: ${m.deliveries_coding} | Verify: ${m.deliveries_verify} | Done: ${m.deliveries_done} (${m.total_deliveries} total)`);
|
|
23
|
+
// Issue throughput
|
|
24
|
+
parts.push('\n### Issue Throughput');
|
|
25
|
+
parts.push(`- Total: ${m.total_issues} | To Do: ${m.issues_todo} | In Progress: ${m.issues_in_progress} | Done: ${m.issues_done} | Blocked: ${m.issues_blocked}`);
|
|
26
|
+
parts.push(`- Completed: ${m.issues_done_7d} (7d) | ${m.issues_done_14d} (14d) | ${m.issues_done_30d} (30d)`);
|
|
27
|
+
if (m.avg_cycle_time_days !== null) {
|
|
28
|
+
parts.push(`- Avg cycle time: ${m.avg_cycle_time_days} days`);
|
|
43
29
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const comp = result.projections?.completion;
|
|
47
|
-
const cost = result.projections?.cost;
|
|
48
|
-
if (comp || cost) {
|
|
49
|
-
parts.push('\n## Trajectory Projections\n');
|
|
50
|
-
}
|
|
51
|
-
if (comp) {
|
|
52
|
-
parts.push('### Completion Forecast');
|
|
53
|
-
if (comp.status === 'complete') {
|
|
54
|
-
parts.push('- Status: **complete** (all issues done)');
|
|
30
|
+
if (m.blocked_count > 0) {
|
|
31
|
+
parts.push(`- Blocked: ${m.blocked_count} issues${m.avg_blocked_duration_days !== null ? `, avg duration ${m.avg_blocked_duration_days} days` : ''}`);
|
|
55
32
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
33
|
+
// Agent cost
|
|
34
|
+
parts.push('\n### Agent Activity');
|
|
35
|
+
parts.push(`- Sessions: ${m.session_count} | Cost: $${m.total_agent_cost.toFixed(2)} | Escalations: ${m.escalation_count}`);
|
|
36
|
+
if (m.last_session_at) {
|
|
37
|
+
parts.push(`- Last session: ${m.last_session_at}`);
|
|
59
38
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
parts.push(
|
|
63
|
-
parts.push(`-
|
|
64
|
-
|
|
65
|
-
|
|
39
|
+
// Git merge metrics
|
|
40
|
+
if (m.merge_count !== undefined) {
|
|
41
|
+
parts.push('\n### Git Activity');
|
|
42
|
+
parts.push(`- Total merges: ${m.merge_count} | Last 7d: ${m.merges_7d ?? 0} | Last 30d: ${m.merges_30d ?? 0}`);
|
|
43
|
+
if (m.last_merge_at) {
|
|
44
|
+
parts.push(`- Last merge: ${m.last_merge_at}`);
|
|
45
|
+
}
|
|
66
46
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
47
|
+
// Trajectory projections
|
|
48
|
+
const comp = result.projections?.completion;
|
|
49
|
+
const cost = result.projections?.cost;
|
|
50
|
+
if (comp || cost) {
|
|
51
|
+
parts.push('\n## Trajectory Projections\n');
|
|
52
|
+
}
|
|
53
|
+
if (comp) {
|
|
54
|
+
parts.push('### Completion Forecast');
|
|
55
|
+
if (comp.status === 'complete') {
|
|
56
|
+
parts.push('- Status: **complete** (all issues done)');
|
|
57
|
+
}
|
|
58
|
+
else if (comp.status === 'stalled') {
|
|
59
|
+
parts.push(`- Status: **stalled** -- ${comp.stalledReason || 'no recent throughput'}`);
|
|
60
|
+
parts.push(`- Remaining issues: ${comp.remainingIssues}`);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
parts.push(`- Projected completion: ${comp.projectedCompletionDate ? new Date(comp.projectedCompletionDate).toISOString().split('T')[0] : 'unknown'}`);
|
|
64
|
+
parts.push(`- Days remaining: ${comp.daysRemaining}`);
|
|
65
|
+
parts.push(`- Velocity: ${comp.velocity} issues/day (${comp.windowDays}d window, ${comp.completedInWindow} completed)`);
|
|
66
|
+
parts.push(`- Confidence: ${comp.confidence}`);
|
|
67
|
+
parts.push(`- Remaining issues: ${comp.remainingIssues}`);
|
|
68
|
+
}
|
|
74
69
|
}
|
|
75
|
-
if (cost
|
|
76
|
-
parts.push(
|
|
70
|
+
if (cost) {
|
|
71
|
+
parts.push('\n### Cost Forecast');
|
|
72
|
+
parts.push(`- Cost to date: $${cost.costToDate.toFixed(2)}`);
|
|
73
|
+
parts.push(`- Burn rate: $${cost.burnRatePerDay.toFixed(2)}/day`);
|
|
74
|
+
if (cost.avgCostPerIssue !== null) {
|
|
75
|
+
parts.push(`- Avg cost per issue: $${cost.avgCostPerIssue.toFixed(2)}`);
|
|
76
|
+
}
|
|
77
|
+
if (cost.projectedTotalCost !== null) {
|
|
78
|
+
parts.push(`- Projected total: $${cost.projectedTotalCost.toFixed(2)} ($${cost.projectedRemainingCost?.toFixed(2)} remaining)`);
|
|
79
|
+
}
|
|
77
80
|
}
|
|
81
|
+
return parts.join('\n');
|
|
82
|
+
}
|
|
83
|
+
catch (err) {
|
|
84
|
+
console.warn(`[assembly-engine] reality.metrics: failed: ${err.message}`);
|
|
85
|
+
return '';
|
|
78
86
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
catch (err) {
|
|
82
|
-
console.warn(`[assembly-engine] reality.metrics: failed: ${err.message}`);
|
|
83
|
-
return '';
|
|
84
|
-
}
|
|
85
|
-
});
|
|
87
|
+
});
|
|
88
|
+
}
|
|
86
89
|
//# sourceMappingURL=reality-metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reality-metrics.js","sourceRoot":"","sources":["../../src/resolvers/reality-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;;GAKG;AACH,sBAAsB,CAAC,iBAAiB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"reality-metrics.js","sourceRoot":"","sources":["../../src/resolvers/reality-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* reality.projections
|
|
3
|
+
*
|
|
4
|
+
* Compact format: just the forecasted outcomes for quick delta computation.
|
|
5
|
+
*/
|
|
6
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
7
|
+
export declare function registerRealityProjectionsResolver(): void;
|
|
2
8
|
//# sourceMappingURL=reality-projections.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reality-projections.d.ts","sourceRoot":"","sources":["../../src/resolvers/reality-projections.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"reality-projections.d.ts","sourceRoot":"","sources":["../../src/resolvers/reality-projections.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,oGAAoG;AACpG,wBAAgB,kCAAkC,IAAI,IAAI,CAsCzD"}
|
|
@@ -5,40 +5,43 @@ import { callApi } from '../queries/shared.js';
|
|
|
5
5
|
*
|
|
6
6
|
* Compact format: just the forecasted outcomes for quick delta computation.
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
8
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
9
|
+
export function registerRealityProjectionsResolver() {
|
|
10
|
+
registerSourceResolver('reality.projections', async (context) => {
|
|
11
|
+
try {
|
|
12
|
+
const result = await callApi('reality_metrics_focus', {
|
|
13
|
+
focusId: context.focusId,
|
|
14
|
+
});
|
|
15
|
+
const comp = result.projections?.completion;
|
|
16
|
+
const cost = result.projections?.cost;
|
|
17
|
+
if (!comp && !cost)
|
|
18
|
+
return '';
|
|
19
|
+
const lines = ['## Trajectory Projections\n'];
|
|
20
|
+
if (comp) {
|
|
21
|
+
if (comp.status === 'complete') {
|
|
22
|
+
lines.push('- Completion: **complete**');
|
|
23
|
+
}
|
|
24
|
+
else if (comp.status === 'stalled') {
|
|
25
|
+
lines.push(`- Completion: **stalled** (${comp.remainingIssues} remaining)`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
lines.push(`- Completion: ${comp.projectedCompletionDate ? new Date(comp.projectedCompletionDate).toISOString().split('T')[0] : '?'} (${comp.daysRemaining}d, confidence ${comp.confidence})`);
|
|
29
|
+
}
|
|
24
30
|
}
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
if (cost) {
|
|
32
|
+
if (cost.projectedTotalCost !== null) {
|
|
33
|
+
lines.push(`- Cost: $${cost.costToDate.toFixed(2)} spent, $${cost.projectedTotalCost.toFixed(2)} projected total`);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
lines.push(`- Cost: $${cost.costToDate.toFixed(2)} spent (insufficient data to project)`);
|
|
37
|
+
}
|
|
27
38
|
}
|
|
39
|
+
return lines.join('\n');
|
|
28
40
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
lines.push(`- Cost: $${cost.costToDate.toFixed(2)} spent (insufficient data to project)`);
|
|
35
|
-
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
console.warn(`[assembly-engine] reality.projections: failed: ${err.message}`);
|
|
43
|
+
return '';
|
|
36
44
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
catch (err) {
|
|
40
|
-
console.warn(`[assembly-engine] reality.projections: failed: ${err.message}`);
|
|
41
|
-
return '';
|
|
42
|
-
}
|
|
43
|
-
});
|
|
45
|
+
});
|
|
46
|
+
}
|
|
44
47
|
//# sourceMappingURL=reality-projections.js.map
|