@telora/daemon 0.17.36 → 0.17.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 +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/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 +148 -322
- 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/daemon-process.d.ts +18 -2
- package/dist/daemon-process.d.ts.map +1 -1
- package/dist/daemon-process.js +7 -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 +8 -0
- 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/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/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/session.d.ts +2 -3
- package/dist/types/session.d.ts.map +1 -1
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +21 -12
- package/dist/unified-shell.js.map +1 -1
- package/package.json +2 -2
- 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
|
@@ -10,59 +10,62 @@ import { getDeliveryInjectionPairs, fetchInjectionBundles } from './shared/loop.
|
|
|
10
10
|
* statement and what it becomes in the FRT. Targets lacking overlays are
|
|
11
11
|
* skipped (no expected effect to advertise).
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// targets edges and inspect the targeted nodes' overlays.
|
|
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
|
-
const targetIds = edges
|
|
39
|
-
.filter((e) => e.edgeType === 'targets' && e.fromNodeId === injectionId)
|
|
40
|
-
.map((e) => e.toNodeId);
|
|
41
|
-
const targetLines = [];
|
|
42
|
-
for (const targetId of targetIds) {
|
|
43
|
-
const node = nodeById.get(targetId);
|
|
44
|
-
if (!node)
|
|
13
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
14
|
+
export function registerLoopExpectedEffectsResolver() {
|
|
15
|
+
registerSourceResolver('loop.expected_effects', 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)
|
|
45
27
|
continue;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
28
|
+
// Fetch nodes + edges for this injection's tree so we can walk
|
|
29
|
+
// targets edges and inspect the targeted nodes' overlays.
|
|
30
|
+
const treeId = bundle.injection.realityTreeId;
|
|
31
|
+
const [nodesResp, edgesResp] = await Promise.all([
|
|
32
|
+
callApi('reality_tree_node_list', { treeId, status: 'active' }),
|
|
33
|
+
callApi('reality_tree_edge_list', { treeId }),
|
|
34
|
+
]);
|
|
35
|
+
const nodes = nodesResp.items ?? [];
|
|
36
|
+
const edges = edgesResp.items ?? [];
|
|
37
|
+
const nodeById = new Map();
|
|
38
|
+
for (const n of nodes)
|
|
39
|
+
nodeById.set(n.id, n);
|
|
40
|
+
const targetIds = edges
|
|
41
|
+
.filter((e) => e.edgeType === 'targets' && e.fromNodeId === injectionId)
|
|
42
|
+
.map((e) => e.toNodeId);
|
|
43
|
+
const targetLines = [];
|
|
44
|
+
for (const targetId of targetIds) {
|
|
45
|
+
const node = nodeById.get(targetId);
|
|
46
|
+
if (!node)
|
|
47
|
+
continue;
|
|
48
|
+
const hasOverlay = (node.frtStatement && node.frtStatement.trim().length > 0)
|
|
49
|
+
|| (node.frtNodeType && node.frtNodeType.trim().length > 0);
|
|
50
|
+
if (!hasOverlay)
|
|
51
|
+
continue;
|
|
52
|
+
const currentType = node.nodeType;
|
|
53
|
+
const frtType = node.frtNodeType ?? currentType;
|
|
54
|
+
const frtStatement = node.frtStatement ?? node.statement;
|
|
55
|
+
targetLines.push(`- #${node.seq} **Current (${currentType}):** ${node.statement}\n **FRT (${frtType}):** ${frtStatement}`);
|
|
56
|
+
}
|
|
57
|
+
if (targetLines.length === 0)
|
|
49
58
|
continue;
|
|
50
|
-
|
|
51
|
-
const frtType = node.frtNodeType ?? currentType;
|
|
52
|
-
const frtStatement = node.frtStatement ?? node.statement;
|
|
53
|
-
targetLines.push(`- #${node.seq} **Current (${currentType}):** ${node.statement}\n **FRT (${frtType}):** ${frtStatement}`);
|
|
59
|
+
sections.push(`### ${deliveryName}\n\n${targetLines.join('\n')}`);
|
|
54
60
|
}
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
61
|
+
if (sections.length === 0)
|
|
62
|
+
return '';
|
|
63
|
+
return `## Expected Effects (per delivery)\n\n${sections.join('\n\n')}`;
|
|
58
64
|
}
|
|
59
|
-
|
|
65
|
+
catch (err) {
|
|
66
|
+
console.warn(`[assembly] loop.expected_effects failed: ${err.message}`);
|
|
60
67
|
return '';
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
console.warn(`[assembly] loop.expected_effects failed: ${err.message}`);
|
|
65
|
-
return '';
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
68
71
|
//# sourceMappingURL=loop-expected-effects.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-expected-effects.js","sourceRoot":"","sources":["../../src/resolvers/loop-expected-effects.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,MAAM,kBAAkB,CAAC;AAOpF;;;;;;;;GAQG;AACH,sBAAsB,CAAC,uBAAuB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"loop-expected-effects.js","sourceRoot":"","sources":["../../src/resolvers/loop-expected-effects.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* loop.frt_statement
|
|
3
|
+
*
|
|
4
|
+
* Returns the linked injection's frt_statement field as plain text
|
|
5
|
+
* (no markdown headers). When multiple deliveries are in scope, the
|
|
6
|
+
* statements are joined with blank lines so the agent sees each
|
|
7
|
+
* delivery's target state. Empty string when no delivery has an
|
|
8
|
+
* injection link or no injection has an FRT statement set.
|
|
9
|
+
*/
|
|
10
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
11
|
+
export declare function registerLoopFrtStatementResolver(): void;
|
|
2
12
|
//# sourceMappingURL=loop-frt-statement.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-frt-statement.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-frt-statement.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"loop-frt-statement.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-frt-statement.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AACH,oGAAoG;AACpG,wBAAgB,gCAAgC,IAAI,IAAI,CAwBvD"}
|
|
@@ -9,31 +9,34 @@ import { getDeliveryInjectionPairs, fetchInjectionBundles } from './shared/loop.
|
|
|
9
9
|
* delivery's target state. Empty string when no delivery has an
|
|
10
10
|
* injection link or no injection has an FRT statement set.
|
|
11
11
|
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
12
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
13
|
+
export function registerLoopFrtStatementResolver() {
|
|
14
|
+
registerSourceResolver('loop.frt_statement', async (context) => {
|
|
15
|
+
try {
|
|
16
|
+
const pairs = await getDeliveryInjectionPairs(context);
|
|
17
|
+
if (pairs.length === 0)
|
|
18
|
+
return '';
|
|
19
|
+
const bundles = await fetchInjectionBundles(pairs.map((p) => p.injectionId));
|
|
20
|
+
if (bundles.size === 0)
|
|
21
|
+
return '';
|
|
22
|
+
const lines = [];
|
|
23
|
+
for (const { injectionId } of pairs) {
|
|
24
|
+
const bundle = bundles.get(injectionId);
|
|
25
|
+
if (!bundle)
|
|
26
|
+
continue;
|
|
27
|
+
const frt = bundle.injection.frtStatement;
|
|
28
|
+
if (typeof frt !== 'string' || frt.trim().length === 0)
|
|
29
|
+
continue;
|
|
30
|
+
lines.push(frt.trim());
|
|
31
|
+
}
|
|
32
|
+
if (lines.length === 0)
|
|
33
|
+
return '';
|
|
34
|
+
return lines.join('\n\n');
|
|
29
35
|
}
|
|
30
|
-
|
|
36
|
+
catch (err) {
|
|
37
|
+
console.warn(`[assembly] loop.frt_statement failed: ${err.message}`);
|
|
31
38
|
return '';
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
console.warn(`[assembly] loop.frt_statement failed: ${err.message}`);
|
|
36
|
-
return '';
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
39
42
|
//# sourceMappingURL=loop-frt-statement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-frt-statement.js","sourceRoot":"","sources":["../../src/resolvers/loop-frt-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEpF;;;;;;;;GAQG;AACH,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"loop-frt-statement.js","sourceRoot":"","sources":["../../src/resolvers/loop-frt-statement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEpF;;;;;;;;GAQG;AACH,oGAAoG;AACpG,MAAM,UAAU,gCAAgC;IAC9C,sBAAsB,CAAC,oBAAoB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;QAC/F,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,EAAE,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;gBACpC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;gBAC1C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAS;gBACjE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,yCAA0C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAChF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* loop.injection
|
|
3
|
+
*
|
|
4
|
+
* For each delivery in context.deliveryIds with a linked injection, render
|
|
5
|
+
* the injection node: statement, lifecycle status, what obstacle it
|
|
6
|
+
* dissolves. Plain markdown; no upstream/downstream walk (that lives in
|
|
7
|
+
* loop.upstream_udes / loop.expected_effects).
|
|
8
|
+
*/
|
|
9
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
10
|
+
export declare function registerLoopInjectionResolver(): void;
|
|
2
11
|
//# sourceMappingURL=loop-injection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-injection.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-injection.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"loop-injection.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-injection.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AACH,oGAAoG;AACpG,wBAAgB,6BAA6B,IAAI,IAAI,CAoCpD"}
|
|
@@ -8,41 +8,44 @@ import { getDeliveryInjectionPairs, fetchInjectionBundles } from './shared/loop.
|
|
|
8
8
|
* dissolves. Plain markdown; no upstream/downstream walk (that lives in
|
|
9
9
|
* loop.upstream_udes / loop.expected_effects).
|
|
10
10
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
11
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
12
|
+
export function registerLoopInjectionResolver() {
|
|
13
|
+
registerSourceResolver('loop.injection', async (context) => {
|
|
14
|
+
try {
|
|
15
|
+
const pairs = await getDeliveryInjectionPairs(context);
|
|
16
|
+
if (pairs.length === 0)
|
|
17
|
+
return '';
|
|
18
|
+
const bundles = await fetchInjectionBundles(pairs.map((p) => p.injectionId));
|
|
19
|
+
if (bundles.size === 0)
|
|
20
|
+
return '';
|
|
21
|
+
const sections = [];
|
|
22
|
+
for (const { deliveryName, injectionId } of pairs) {
|
|
23
|
+
const bundle = bundles.get(injectionId);
|
|
24
|
+
if (!bundle)
|
|
25
|
+
continue;
|
|
26
|
+
const inj = bundle.injection;
|
|
27
|
+
const statusTag = inj.injectionStatus ? ` [${inj.injectionStatus}]` : '';
|
|
28
|
+
const dissolvesLine = inj.dissolvesObstacle
|
|
29
|
+
? `- **Dissolves obstacle:** ${inj.dissolvesObstacle}`
|
|
30
|
+
: null;
|
|
31
|
+
const lines = [
|
|
32
|
+
`### ${deliveryName}`,
|
|
33
|
+
'',
|
|
34
|
+
`- **Injection:** ${inj.statement}${statusTag}`,
|
|
35
|
+
`- **Injection status:** ${inj.injectionStatus ?? '_not set_'}`,
|
|
36
|
+
];
|
|
37
|
+
if (dissolvesLine)
|
|
38
|
+
lines.push(dissolvesLine);
|
|
39
|
+
sections.push(lines.join('\n'));
|
|
40
|
+
}
|
|
41
|
+
if (sections.length === 0)
|
|
42
|
+
return '';
|
|
43
|
+
return `## Loop Injection (per delivery)\n\n${sections.join('\n\n')}`;
|
|
38
44
|
}
|
|
39
|
-
|
|
45
|
+
catch (err) {
|
|
46
|
+
console.warn(`[assembly] loop.injection failed: ${err.message}`);
|
|
40
47
|
return '';
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
console.warn(`[assembly] loop.injection failed: ${err.message}`);
|
|
45
|
-
return '';
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
48
51
|
//# sourceMappingURL=loop-injection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-injection.js","sourceRoot":"","sources":["../../src/resolvers/loop-injection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEpF;;;;;;;GAOG;AACH,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"loop-injection.js","sourceRoot":"","sources":["../../src/resolvers/loop-injection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEpF;;;;;;;GAOG;AACH,oGAAoG;AACpG,MAAM,UAAU,6BAA6B;IAC3C,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;QAC3F,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7E,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAElC,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,KAAK,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,KAAK,EAAE,CAAC;gBAClD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACxC,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;gBAC7B,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,MAAM,aAAa,GAAG,GAAG,CAAC,iBAAiB;oBACzC,CAAC,CAAC,6BAA6B,GAAG,CAAC,iBAAiB,EAAE;oBACtD,CAAC,CAAC,IAAI,CAAC;gBAET,MAAM,KAAK,GAAa;oBACtB,OAAO,YAAY,EAAE;oBACrB,EAAE;oBACF,oBAAoB,GAAG,CAAC,SAAS,GAAG,SAAS,EAAE;oBAC/C,2BAA2B,GAAG,CAAC,eAAe,IAAI,WAAW,EAAE;iBAChE,CAAC;gBACF,IAAI,aAAa;oBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YACrC,OAAO,uCAAuC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,qCAAsC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,2 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* loop.persona
|
|
3
|
+
*
|
|
4
|
+
* Fetches the active persona for the entity's loop layer.
|
|
5
|
+
* Returns the raw "You are..." prompt text, or empty string if none set.
|
|
6
|
+
*
|
|
7
|
+
* Stage variants:
|
|
8
|
+
* - `loop.persona(variant=close_loop)` -- returns the close-loop bookkeeper
|
|
9
|
+
* persona (from team-prompt-base.buildCloseLoopBookkeeperPersona). This
|
|
10
|
+
* is a built-in variant; the stored persona on the focus is ignored so
|
|
11
|
+
* close_loop stage spawns always carry the asymmetric, no-third-option
|
|
12
|
+
* bookkeeper framing regardless of what the human persona on the focus
|
|
13
|
+
* looks like. The close_loop stage dispatcher composes its assembly
|
|
14
|
+
* recipe with `loop.persona(variant=close_loop)` so the team lead
|
|
15
|
+
* receives this exact text.
|
|
16
|
+
*
|
|
17
|
+
* No-variant call returns the human-authored persona stored on the focus.
|
|
18
|
+
*/
|
|
19
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
20
|
+
export declare function registerLoopPersonaResolver(): void;
|
|
2
21
|
//# sourceMappingURL=loop-persona.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-persona.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-persona.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"loop-persona.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-persona.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;GAiBG;AACH,oGAAoG;AACpG,wBAAgB,2BAA2B,IAAI,IAAI,CAkBlD"}
|
|
@@ -19,22 +19,25 @@ import { buildCloseLoopBookkeeperPersona } from '../team-prompt-base.js';
|
|
|
19
19
|
*
|
|
20
20
|
* No-variant call returns the human-authored persona stored on the focus.
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
23
|
+
export function registerLoopPersonaResolver() {
|
|
24
|
+
registerSourceResolver('loop.persona', async (context, params) => {
|
|
25
|
+
if (params.variant === 'close_loop') {
|
|
26
|
+
return buildCloseLoopBookkeeperPersona();
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const result = await callApi('loop_persona_get', {
|
|
30
|
+
entityType: 'focus',
|
|
31
|
+
entityId: context.focusId,
|
|
32
|
+
});
|
|
33
|
+
if (!result.persona || !result.persona.content)
|
|
34
|
+
return '';
|
|
35
|
+
return result.persona.content;
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
console.warn(`[assembly-engine] loop.persona: failed: ${err.message}`);
|
|
32
39
|
return '';
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
console.warn(`[assembly-engine] loop.persona: failed: ${err.message}`);
|
|
37
|
-
return '';
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
}
|
|
40
43
|
//# sourceMappingURL=loop-persona.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-persona.js","sourceRoot":"","sources":["../../src/resolvers/loop-persona.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAGzE;;;;;;;;;;;;;;;;;GAiBG;AACH,sBAAsB,CAAC,cAAc,EAAE,KAAK,EAAE,OAAwB,EAAE,MAA8B,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"loop-persona.js","sourceRoot":"","sources":["../../src/resolvers/loop-persona.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAGzE;;;;;;;;;;;;;;;;;GAiBG;AACH,oGAAoG;AACpG,MAAM,UAAU,2BAA2B;IACzC,sBAAsB,CAAC,cAAc,EAAE,KAAK,EAAE,OAAwB,EAAE,MAA8B,EAAmB,EAAE;QACzH,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;YACpC,OAAO,+BAA+B,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAoB,kBAAkB,EAAE;gBAClE,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,OAAO,CAAC,OAAO;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,2CAA4C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* loop.questions
|
|
3
|
+
*
|
|
4
|
+
* Fetches fixed + generated questions with current answers for the entity layer.
|
|
5
|
+
* Returns formatted markdown: fixed questions first, then generated in rank order.
|
|
6
|
+
*/
|
|
7
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
8
|
+
export declare function registerLoopQuestionsResolver(): void;
|
|
2
9
|
//# sourceMappingURL=loop-questions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-questions.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-questions.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"loop-questions.d.ts","sourceRoot":"","sources":["../../src/resolvers/loop-questions.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,oGAAoG;AACpG,wBAAgB,6BAA6B,IAAI,IAAI,CA6CpD"}
|
|
@@ -6,44 +6,47 @@ import { callApi } from '../queries/shared.js';
|
|
|
6
6
|
* Fetches fixed + generated questions with current answers for the entity layer.
|
|
7
7
|
* Returns formatted markdown: fixed questions first, then generated in rank order.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
9
|
+
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
10
|
+
export function registerLoopQuestionsResolver() {
|
|
11
|
+
registerSourceResolver('loop.questions', async (context) => {
|
|
12
|
+
try {
|
|
13
|
+
const result = await callApi('loop_question_list', {
|
|
14
|
+
entityType: 'focus',
|
|
15
|
+
entityId: context.focusId,
|
|
16
|
+
detail: 'full',
|
|
17
|
+
});
|
|
18
|
+
const questions = result.items;
|
|
19
|
+
if (!questions || questions.length === 0)
|
|
20
|
+
return '';
|
|
21
|
+
const fixed = questions.filter((q) => q.questionType === 'fixed');
|
|
22
|
+
const generated = questions.filter((q) => q.questionType === 'generated');
|
|
23
|
+
const formatQuestion = async (q) => {
|
|
24
|
+
try {
|
|
25
|
+
const answerResult = await callApi('loop_answer_get', {
|
|
26
|
+
questionId: q.id,
|
|
27
|
+
});
|
|
28
|
+
const answer = answerResult.answer?.content || '_No answer yet._';
|
|
29
|
+
return `**Q:** ${q.text}\n**A:** ${answer}`;
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return `**Q:** ${q.text}\n**A:** _No answer yet._`;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const parts = [];
|
|
36
|
+
if (fixed.length > 0) {
|
|
37
|
+
const fixedLines = await Promise.all(fixed.map(formatQuestion));
|
|
38
|
+
parts.push(`### Fixed Questions\n\n${fixedLines.join('\n\n')}`);
|
|
28
39
|
}
|
|
29
|
-
|
|
30
|
-
|
|
40
|
+
if (generated.length > 0) {
|
|
41
|
+
const generatedLines = await Promise.all(generated.map(formatQuestion));
|
|
42
|
+
parts.push(`### Generated Questions\n\n${generatedLines.join('\n\n')}`);
|
|
31
43
|
}
|
|
32
|
-
|
|
33
|
-
const parts = [];
|
|
34
|
-
if (fixed.length > 0) {
|
|
35
|
-
const fixedLines = await Promise.all(fixed.map(formatQuestion));
|
|
36
|
-
parts.push(`### Fixed Questions\n\n${fixedLines.join('\n\n')}`);
|
|
44
|
+
return `## Loop Questions\n\n${parts.join('\n\n')}`;
|
|
37
45
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
46
|
+
catch (err) {
|
|
47
|
+
console.warn(`[assembly-engine] loop.questions: failed: ${err.message}`);
|
|
48
|
+
return '';
|
|
41
49
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
catch (err) {
|
|
45
|
-
console.warn(`[assembly-engine] loop.questions: failed: ${err.message}`);
|
|
46
|
-
return '';
|
|
47
|
-
}
|
|
48
|
-
});
|
|
50
|
+
});
|
|
51
|
+
}
|
|
49
52
|
//# sourceMappingURL=loop-questions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-questions.js","sourceRoot":"","sources":["../../src/resolvers/loop-questions.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,gBAAgB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"loop-questions.js","sourceRoot":"","sources":["../../src/resolvers/loop-questions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C;;;;;GAKG;AACH,oGAAoG;AACpG,MAAM,UAAU,6BAA6B;IAC3C,sBAAsB,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAwB,EAAmB,EAAE;QAC3F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAgC,oBAAoB,EAAE;gBAChF,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,OAAO,CAAC,OAAO;gBACzB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAEpD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC;YACpF,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC;YAE5F,MAAM,cAAc,GAAG,KAAK,EAAE,CAAmB,EAAmB,EAAE;gBACpE,IAAI,CAAC;oBACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAmB,iBAAiB,EAAE;wBACtE,UAAU,EAAE,CAAC,CAAC,EAAE;qBACjB,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,IAAI,kBAAkB,CAAC;oBAClE,OAAO,UAAU,CAAC,CAAC,IAAI,YAAY,MAAM,EAAE,CAAC;gBAC9C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,UAAU,CAAC,CAAC,IAAI,2BAA2B,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,0BAA0B,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;gBACxE,KAAK,CAAC,IAAI,CAAC,8BAA8B,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,OAAO,wBAAwB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,6CAA8C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -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"}
|