@telora/daemon 0.19.35 → 0.19.38
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 +4 -3
- package/dist/queries/code-metrics.d.ts +4 -0
- package/dist/queries/code-metrics.d.ts.map +1 -1
- package/dist/queries/code-metrics.js.map +1 -1
- package/dist/resolvers/compose/focus-injections-compose.d.ts +61 -0
- package/dist/resolvers/compose/focus-injections-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/focus-injections-compose.js +72 -0
- package/dist/resolvers/compose/focus-injections-compose.js.map +1 -0
- package/dist/resolvers/compose/loop-context-compose.d.ts +51 -0
- package/dist/resolvers/compose/loop-context-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/loop-context-compose.js +66 -0
- package/dist/resolvers/compose/loop-context-compose.js.map +1 -0
- package/dist/resolvers/compose/loop-frt-statement-compose.d.ts +24 -0
- package/dist/resolvers/compose/loop-frt-statement-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/loop-frt-statement-compose.js +30 -0
- package/dist/resolvers/compose/loop-frt-statement-compose.js.map +1 -0
- package/dist/resolvers/compose/loop-injection-compose.d.ts +30 -0
- package/dist/resolvers/compose/loop-injection-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/loop-injection-compose.js +40 -0
- package/dist/resolvers/compose/loop-injection-compose.js.map +1 -0
- package/dist/resolvers/compose/loop-persona-compose.d.ts +24 -0
- package/dist/resolvers/compose/loop-persona-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/loop-persona-compose.js +24 -0
- package/dist/resolvers/compose/loop-persona-compose.js.map +1 -0
- package/dist/resolvers/compose/loop-upstream-udes-compose.d.ts +44 -0
- package/dist/resolvers/compose/loop-upstream-udes-compose.d.ts.map +1 -0
- package/dist/resolvers/compose/loop-upstream-udes-compose.js +75 -0
- package/dist/resolvers/compose/loop-upstream-udes-compose.js.map +1 -0
- package/dist/resolvers/focus-injections.d.ts +4 -0
- package/dist/resolvers/focus-injections.d.ts.map +1 -1
- package/dist/resolvers/focus-injections.js +6 -50
- package/dist/resolvers/focus-injections.js.map +1 -1
- package/dist/resolvers/loop-context.d.ts +12 -9
- package/dist/resolvers/loop-context.d.ts.map +1 -1
- package/dist/resolvers/loop-context.js +87 -102
- package/dist/resolvers/loop-context.js.map +1 -1
- package/dist/resolvers/loop-frt-statement.d.ts +3 -0
- package/dist/resolvers/loop-frt-statement.d.ts.map +1 -1
- package/dist/resolvers/loop-frt-statement.js +7 -8
- package/dist/resolvers/loop-frt-statement.js.map +1 -1
- package/dist/resolvers/loop-injection.d.ts +4 -0
- package/dist/resolvers/loop-injection.d.ts.map +1 -1
- package/dist/resolvers/loop-injection.js +8 -18
- package/dist/resolvers/loop-injection.js.map +1 -1
- package/dist/resolvers/loop-persona.d.ts.map +1 -1
- package/dist/resolvers/loop-persona.js +2 -3
- package/dist/resolvers/loop-persona.js.map +1 -1
- package/dist/resolvers/loop-upstream-udes.d.ts +5 -0
- package/dist/resolvers/loop-upstream-udes.d.ts.map +1 -1
- package/dist/resolvers/loop-upstream-udes.js +14 -51
- package/dist/resolvers/loop-upstream-udes.js.map +1 -1
- package/dist/sensor-sweep.d.ts +58 -6
- package/dist/sensor-sweep.d.ts.map +1 -1
- package/dist/sensor-sweep.js +95 -9
- package/dist/sensor-sweep.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
|
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;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E;;;;;;;;;;;GAWG;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,OAAO,GAAyB,EAAE,CAAC;YACzC,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,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvC,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 +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":"AAOA;;;;;;;;;;;;;;;;;GAiBG;AACH,oGAAoG;AACpG,wBAAgB,2BAA2B,IAAI,IAAI,CAiBlD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
2
|
import { callApi } from '../queries/shared.js';
|
|
3
3
|
import { buildCloseLoopBookkeeperPersona } from '../team-prompt-base.js';
|
|
4
|
+
import { composeLoopPersona } from './compose/loop-persona-compose.js';
|
|
4
5
|
/**
|
|
5
6
|
* loop.persona
|
|
6
7
|
*
|
|
@@ -30,9 +31,7 @@ export function registerLoopPersonaResolver() {
|
|
|
30
31
|
entityType: 'focus',
|
|
31
32
|
entityId: context.focusId,
|
|
32
33
|
});
|
|
33
|
-
|
|
34
|
-
return '';
|
|
35
|
-
return result.persona.content;
|
|
34
|
+
return composeLoopPersona(result.persona);
|
|
36
35
|
}
|
|
37
36
|
catch (err) {
|
|
38
37
|
console.warn(`[assembly-engine] loop.persona: failed: ${err.message}`);
|
|
@@ -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;
|
|
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;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAGvE;;;;;;;;;;;;;;;;;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,OAAO,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5C,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"}
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
* along causal edges ('sufficient' and 'and' edge kinds) up to
|
|
7
7
|
* MAX_UPSTREAM_DEPTH hops. Returns a markdown list of upstream UDE/
|
|
8
8
|
* entity nodes the injection is indirectly meant to address. Cycle-safe.
|
|
9
|
+
*
|
|
10
|
+
* THIN FETCH HALF: this resolver hoists the per-delivery node/edge fetch out
|
|
11
|
+
* up front and hands the already-fetched rows to the shared, drift-mirrored
|
|
12
|
+
* `composeLoopUpstreamUdes`, whose BFS + render runs identically in the
|
|
13
|
+
* inspector's preview.
|
|
9
14
|
*/
|
|
10
15
|
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
11
16
|
export declare function registerLoopUpstreamUdesResolver(): void;
|
|
@@ -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":"AAWA;;;;;;;;;;;;;GAaG;AACH,oGAAoG;AACpG,wBAAgB,gCAAgC,IAAI,IAAI,CAmCvD"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { registerSourceResolver } from '../assembly-engine.js';
|
|
2
2
|
import { callApi } from '../queries/shared.js';
|
|
3
|
-
import { getDeliveryInjectionPairs, fetchInjectionBundles
|
|
3
|
+
import { getDeliveryInjectionPairs, fetchInjectionBundles } from './shared/loop.js';
|
|
4
|
+
import { composeLoopUpstreamUdes } from './compose/loop-upstream-udes-compose.js';
|
|
4
5
|
/**
|
|
5
6
|
* loop.upstream_udes
|
|
6
7
|
*
|
|
@@ -9,6 +10,11 @@ import { getDeliveryInjectionPairs, fetchInjectionBundles, MAX_UPSTREAM_DEPTH }
|
|
|
9
10
|
* along causal edges ('sufficient' and 'and' edge kinds) up to
|
|
10
11
|
* MAX_UPSTREAM_DEPTH hops. Returns a markdown list of upstream UDE/
|
|
11
12
|
* entity nodes the injection is indirectly meant to address. Cycle-safe.
|
|
13
|
+
*
|
|
14
|
+
* THIN FETCH HALF: this resolver hoists the per-delivery node/edge fetch out
|
|
15
|
+
* up front and hands the already-fetched rows to the shared, drift-mirrored
|
|
16
|
+
* `composeLoopUpstreamUdes`, whose BFS + render runs identically in the
|
|
17
|
+
* inspector's preview.
|
|
12
18
|
*/
|
|
13
19
|
/** Register this module's resolver(s). Called from initResolvers() -- not an import side effect. */
|
|
14
20
|
export function registerLoopUpstreamUdesResolver() {
|
|
@@ -20,7 +26,7 @@ export function registerLoopUpstreamUdesResolver() {
|
|
|
20
26
|
const bundles = await fetchInjectionBundles(pairs.map((p) => p.injectionId));
|
|
21
27
|
if (bundles.size === 0)
|
|
22
28
|
return '';
|
|
23
|
-
const
|
|
29
|
+
const entries = [];
|
|
24
30
|
for (const { deliveryName, injectionId } of pairs) {
|
|
25
31
|
const bundle = bundles.get(injectionId);
|
|
26
32
|
if (!bundle)
|
|
@@ -30,57 +36,14 @@ export function registerLoopUpstreamUdesResolver() {
|
|
|
30
36
|
callApi('reality_tree_node_list', { treeId, status: 'active' }),
|
|
31
37
|
callApi('reality_tree_edge_list', { treeId }),
|
|
32
38
|
]);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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;
|
|
71
|
-
}
|
|
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}`;
|
|
39
|
+
entries.push({
|
|
40
|
+
deliveryName,
|
|
41
|
+
injectionId,
|
|
42
|
+
nodes: nodesResp.items ?? [],
|
|
43
|
+
edges: edgesResp.items ?? [],
|
|
78
44
|
});
|
|
79
|
-
sections.push(`### ${deliveryName}\n\n${lines.join('\n')}`);
|
|
80
45
|
}
|
|
81
|
-
|
|
82
|
-
return '';
|
|
83
|
-
return `## Upstream UDEs (per delivery, max depth ${MAX_UPSTREAM_DEPTH})\n\n${sections.join('\n\n')}`;
|
|
46
|
+
return composeLoopUpstreamUdes(entries);
|
|
84
47
|
}
|
|
85
48
|
catch (err) {
|
|
86
49
|
console.warn(`[assembly] loop.upstream_udes failed: ${err.message}`);
|
|
@@ -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,
|
|
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,MAAM,kBAAkB,CAAC;AAKpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF;;;;;;;;;;;;;GAaG;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,OAAO,GAA4B,EAAE,CAAC;YAE5C,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;gBAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC;gBAC9C,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBAC/C,OAAO,CAAmB,wBAAwB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;oBACjF,OAAO,CAAmB,wBAAwB,EAAE,EAAE,MAAM,EAAE,CAAC;iBAChE,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC;oBACX,YAAY;oBACZ,WAAW;oBACX,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;oBAC5B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;iBAC7B,CAAC,CAAC;YACL,CAAC;YAED,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC1C,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"}
|
package/dist/sensor-sweep.d.ts
CHANGED
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
* - git churn + hotspot mass (change frequency x a language-agnostic size /
|
|
9
9
|
* indentation-complexity proxy over the changed set);
|
|
10
10
|
* - lint-gate ratchet exception counts harvested from scripts/lint-config.json;
|
|
11
|
-
* - dependency freshness derived from the package manifests
|
|
11
|
+
* - dependency freshness derived from the package manifests;
|
|
12
|
+
* - intent-aligned churn: the fraction of window churn whose paths fall inside
|
|
13
|
+
* the footprint of active foci/deliveries (the paths their focus branches
|
|
14
|
+
* touch) vs outside any declared intent -- the Telora-native differential
|
|
15
|
+
* metric at the artifact layer (activity without intent reduction is noise).
|
|
12
16
|
*
|
|
13
17
|
* Purely deterministic: git + filesystem reads only, NO LLM and NO network
|
|
14
18
|
* beyond the local repo. Burn is drift-proportional: a product whose repo HEAD
|
|
@@ -21,6 +25,18 @@
|
|
|
21
25
|
* without a real repo. Mirrors the drift-eval-loop.ts dependency-injection
|
|
22
26
|
* pattern.
|
|
23
27
|
*
|
|
28
|
+
* MINING WINDOW IS TIME-BOUNDED, NOT COUNT-BOUNDED. The churn/hotspot window is
|
|
29
|
+
* a fixed real-time span (`DEFAULT_WINDOW_DAYS`), not a fixed commit count. A
|
|
30
|
+
* count-bounded window (e.g. "last 500 commits") makes consecutive snapshots
|
|
31
|
+
* cover different lengths of real time, so cross-snapshot trends partly measure
|
|
32
|
+
* commit velocity rather than code health -- a busy month and a quiet quarter
|
|
33
|
+
* both look like "500 commits." Anchoring the window to calendar time makes
|
|
34
|
+
* consecutive snapshots cover comparable spans, so a rising/falling trend
|
|
35
|
+
* reflects the health of the code (churn, hotspot mass) independent of how fast
|
|
36
|
+
* the team happened to be committing. A large secondary commit-count SAFETY CAP
|
|
37
|
+
* (`COMMIT_SAFETY_CAP`) bounds the worst case so an extremely busy repo cannot
|
|
38
|
+
* blow up the window; it is a defensive backstop, not the primary bound.
|
|
39
|
+
*
|
|
24
40
|
* @module sensor-sweep
|
|
25
41
|
*/
|
|
26
42
|
import type { CodeMetricsSnapshotInput, LatestCodeMetrics } from './queries/code-metrics.js';
|
|
@@ -32,8 +48,10 @@ export interface FileChurn {
|
|
|
32
48
|
lastCommitMs: number;
|
|
33
49
|
}
|
|
34
50
|
/**
|
|
35
|
-
* Parse `git log
|
|
36
|
-
* churn. Pure: no git process. Binary numstat rows (`-\t-`) are
|
|
51
|
+
* Parse `git log --since=<span> --numstat --format=COMMIT:%H %aI` output into
|
|
52
|
+
* per-file churn. Pure: no git process. Binary numstat rows (`-\t-`) are
|
|
53
|
+
* skipped. The `--format` output shape is identical regardless of whether the
|
|
54
|
+
* window was count- or time-bounded, so this parser is unchanged.
|
|
37
55
|
*/
|
|
38
56
|
export declare function parseNumstatPerFile(output: string): Map<string, FileChurn>;
|
|
39
57
|
/**
|
|
@@ -62,6 +80,27 @@ export declare function aggregateAreas(perFile: Map<string, FileChurn>, complexi
|
|
|
62
80
|
totalChurn: number;
|
|
63
81
|
totalHotspotMass: number;
|
|
64
82
|
};
|
|
83
|
+
/** Intent-aligned churn: how much of the window churn served declared intent. */
|
|
84
|
+
export interface IntentAlignedChurn {
|
|
85
|
+
/** Lines of window churn on paths inside the active-intent footprint. */
|
|
86
|
+
alignedChurn: number;
|
|
87
|
+
/** Total lines changed in the window (all paths). */
|
|
88
|
+
totalChurn: number;
|
|
89
|
+
/** alignedChurn / totalChurn, bounded 0-1 (0 when there was no churn). */
|
|
90
|
+
alignedRatio: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* The Telora-native differential metric at the artifact layer: what FRACTION of
|
|
94
|
+
* the window churn landed inside the footprint of active foci/deliveries
|
|
95
|
+
* (`intentPaths`) versus outside any declared intent. Activity without intent
|
|
96
|
+
* reduction is noise -- this makes that noise measurable.
|
|
97
|
+
*
|
|
98
|
+
* Pure over the injected per-file churn + the intent-path set: no git. A file is
|
|
99
|
+
* "aligned" when its exact repo-relative path is in `intentPaths` (the union of
|
|
100
|
+
* paths the active focus branches have changed). The ratio is bounded 0-1 and is
|
|
101
|
+
* scale-free, so it is comparable across snapshots regardless of absolute churn.
|
|
102
|
+
*/
|
|
103
|
+
export declare function computeIntentAlignedChurn(perFile: Map<string, FileChurn>, intentPaths: ReadonlySet<string>): IntentAlignedChurn;
|
|
65
104
|
/**
|
|
66
105
|
* Count lint-gate ratchet exceptions from a parsed scripts/lint-config.json.
|
|
67
106
|
* Each top-level category (except `_comment`) is an array of allowlist entries;
|
|
@@ -97,8 +136,12 @@ export declare function isOutdatedSpec(spec: string): boolean;
|
|
|
97
136
|
/** FNV-1a 32-bit -- a small, dependency-free deterministic string hash. */
|
|
98
137
|
export declare function fnv1a(input: string): string;
|
|
99
138
|
export interface SensorSweepDeps {
|
|
100
|
-
/**
|
|
101
|
-
|
|
139
|
+
/**
|
|
140
|
+
* Raw `git log --since=<windowDays>.days.ago -n<commitCap> --numstat
|
|
141
|
+
* --format=COMMIT:%H %aI` output for a repo. The window is TIME-bounded
|
|
142
|
+
* (`windowDays`) with `commitCap` as a defensive secondary cap.
|
|
143
|
+
*/
|
|
144
|
+
gitNumstat: (repoPath: string, windowDays: number, commitCap: number) => string;
|
|
102
145
|
/** All tracked files (`git ls-files`) -- the cold baseline count + areas. */
|
|
103
146
|
listTrackedFiles: (repoPath: string) => string[];
|
|
104
147
|
/** Read a repo-relative file body, or null when unreadable (deleted/binary). */
|
|
@@ -109,12 +152,21 @@ export interface SensorSweepDeps {
|
|
|
109
152
|
readManifests: (repoPath: string) => Manifest[];
|
|
110
153
|
/** Current HEAD sha, or null when git fails. */
|
|
111
154
|
resolveHeadSha: (repoPath: string) => string | null;
|
|
155
|
+
/**
|
|
156
|
+
* Repo-relative paths inside the footprint of active foci/deliveries -- the
|
|
157
|
+
* union of paths that unmerged focus branches (`agent/<role>/<slug>-<id>`) have
|
|
158
|
+
* changed vs the current mainline. The declared-intent half of the differential.
|
|
159
|
+
*/
|
|
160
|
+
listIntentPaths: (repoPath: string) => string[];
|
|
112
161
|
getLatest: (productId: string) => Promise<LatestCodeMetrics | null>;
|
|
113
162
|
createSnapshot: (productId: string, input: CodeMetricsSnapshotInput) => Promise<{
|
|
114
163
|
id: string;
|
|
115
164
|
}>;
|
|
116
165
|
now: () => number;
|
|
117
|
-
|
|
166
|
+
/** Primary bound: real-time span (days) of the churn/hotspot mining window. */
|
|
167
|
+
windowDays: number;
|
|
168
|
+
/** Secondary defensive cap on the number of commits mined. */
|
|
169
|
+
commitCap: number;
|
|
118
170
|
}
|
|
119
171
|
export interface SensorSweepCounts {
|
|
120
172
|
productsScanned: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor-sweep.d.ts","sourceRoot":"","sources":["../src/sensor-sweep.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sensor-sweep.d.ts","sourceRoot":"","sources":["../src/sensor-sweep.ts"],"names":[],"mappings":"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"}
|
package/dist/sensor-sweep.js
CHANGED
|
@@ -8,7 +8,11 @@
|
|
|
8
8
|
* - git churn + hotspot mass (change frequency x a language-agnostic size /
|
|
9
9
|
* indentation-complexity proxy over the changed set);
|
|
10
10
|
* - lint-gate ratchet exception counts harvested from scripts/lint-config.json;
|
|
11
|
-
* - dependency freshness derived from the package manifests
|
|
11
|
+
* - dependency freshness derived from the package manifests;
|
|
12
|
+
* - intent-aligned churn: the fraction of window churn whose paths fall inside
|
|
13
|
+
* the footprint of active foci/deliveries (the paths their focus branches
|
|
14
|
+
* touch) vs outside any declared intent -- the Telora-native differential
|
|
15
|
+
* metric at the artifact layer (activity without intent reduction is noise).
|
|
12
16
|
*
|
|
13
17
|
* Purely deterministic: git + filesystem reads only, NO LLM and NO network
|
|
14
18
|
* beyond the local repo. Burn is drift-proportional: a product whose repo HEAD
|
|
@@ -21,6 +25,18 @@
|
|
|
21
25
|
* without a real repo. Mirrors the drift-eval-loop.ts dependency-injection
|
|
22
26
|
* pattern.
|
|
23
27
|
*
|
|
28
|
+
* MINING WINDOW IS TIME-BOUNDED, NOT COUNT-BOUNDED. The churn/hotspot window is
|
|
29
|
+
* a fixed real-time span (`DEFAULT_WINDOW_DAYS`), not a fixed commit count. A
|
|
30
|
+
* count-bounded window (e.g. "last 500 commits") makes consecutive snapshots
|
|
31
|
+
* cover different lengths of real time, so cross-snapshot trends partly measure
|
|
32
|
+
* commit velocity rather than code health -- a busy month and a quiet quarter
|
|
33
|
+
* both look like "500 commits." Anchoring the window to calendar time makes
|
|
34
|
+
* consecutive snapshots cover comparable spans, so a rising/falling trend
|
|
35
|
+
* reflects the health of the code (churn, hotspot mass) independent of how fast
|
|
36
|
+
* the team happened to be committing. A large secondary commit-count SAFETY CAP
|
|
37
|
+
* (`COMMIT_SAFETY_CAP`) bounds the worst case so an extremely busy repo cannot
|
|
38
|
+
* blow up the window; it is a defensive backstop, not the primary bound.
|
|
39
|
+
*
|
|
24
40
|
* @module sensor-sweep
|
|
25
41
|
*/
|
|
26
42
|
import { readFileSync, readdirSync, existsSync } from 'node:fs';
|
|
@@ -28,12 +44,27 @@ import { join } from 'node:path';
|
|
|
28
44
|
import { runGitSync } from './git-types.js';
|
|
29
45
|
import { configForProduct } from './config.js';
|
|
30
46
|
import { getLatestCodeMetrics, createCodeMetricsSnapshot } from './queries/code-metrics.js';
|
|
31
|
-
/**
|
|
32
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Real-time span (days) that defines the churn/hotspot mining window. This is
|
|
49
|
+
* the PRIMARY bound: consecutive snapshots cover comparable calendar spans so
|
|
50
|
+
* trends measure code health, not commit velocity. 90 days is one quarter --
|
|
51
|
+
* long enough to capture a meaningful change-frequency signal, short enough to
|
|
52
|
+
* stay responsive to recent activity.
|
|
53
|
+
*/
|
|
54
|
+
const DEFAULT_WINDOW_DAYS = 90;
|
|
55
|
+
/**
|
|
56
|
+
* Secondary defensive bound on the number of commits mined. NOT the primary
|
|
57
|
+
* window -- it only caps the worst case so an extremely busy repo (thousands of
|
|
58
|
+
* commits inside the day window) cannot blow up parsing/memory. Set far above
|
|
59
|
+
* any realistic 90-day commit count.
|
|
60
|
+
*/
|
|
61
|
+
const COMMIT_SAFETY_CAP = 5000;
|
|
33
62
|
const MS_PER_DAY = 86_400_000;
|
|
34
63
|
/**
|
|
35
|
-
* Parse `git log
|
|
36
|
-
* churn. Pure: no git process. Binary numstat rows (`-\t-`) are
|
|
64
|
+
* Parse `git log --since=<span> --numstat --format=COMMIT:%H %aI` output into
|
|
65
|
+
* per-file churn. Pure: no git process. Binary numstat rows (`-\t-`) are
|
|
66
|
+
* skipped. The `--format` output shape is identical regardless of whether the
|
|
67
|
+
* window was count- or time-bounded, so this parser is unchanged.
|
|
37
68
|
*/
|
|
38
69
|
export function parseNumstatPerFile(output) {
|
|
39
70
|
const perFile = new Map();
|
|
@@ -134,6 +165,28 @@ export function aggregateAreas(perFile, complexityFor, nowMs, depth = 2) {
|
|
|
134
165
|
.sort((a, b) => b.hotspotMass - a.hotspotMass);
|
|
135
166
|
return { areas, totalChurn, totalHotspotMass };
|
|
136
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* The Telora-native differential metric at the artifact layer: what FRACTION of
|
|
170
|
+
* the window churn landed inside the footprint of active foci/deliveries
|
|
171
|
+
* (`intentPaths`) versus outside any declared intent. Activity without intent
|
|
172
|
+
* reduction is noise -- this makes that noise measurable.
|
|
173
|
+
*
|
|
174
|
+
* Pure over the injected per-file churn + the intent-path set: no git. A file is
|
|
175
|
+
* "aligned" when its exact repo-relative path is in `intentPaths` (the union of
|
|
176
|
+
* paths the active focus branches have changed). The ratio is bounded 0-1 and is
|
|
177
|
+
* scale-free, so it is comparable across snapshots regardless of absolute churn.
|
|
178
|
+
*/
|
|
179
|
+
export function computeIntentAlignedChurn(perFile, intentPaths) {
|
|
180
|
+
let alignedChurn = 0;
|
|
181
|
+
let totalChurn = 0;
|
|
182
|
+
for (const [file, churn] of perFile) {
|
|
183
|
+
totalChurn += churn.linesChanged;
|
|
184
|
+
if (intentPaths.has(file))
|
|
185
|
+
alignedChurn += churn.linesChanged;
|
|
186
|
+
}
|
|
187
|
+
const alignedRatio = totalChurn > 0 ? alignedChurn / totalChurn : 0;
|
|
188
|
+
return { alignedChurn, totalChurn, alignedRatio };
|
|
189
|
+
}
|
|
137
190
|
/**
|
|
138
191
|
* Count lint-gate ratchet exceptions from a parsed scripts/lint-config.json.
|
|
139
192
|
* Each top-level category (except `_comment`) is an array of allowlist entries;
|
|
@@ -220,8 +273,14 @@ export function fnv1a(input) {
|
|
|
220
273
|
}
|
|
221
274
|
export function defaultSensorSweepDeps() {
|
|
222
275
|
return {
|
|
223
|
-
gitNumstat: (repoPath,
|
|
224
|
-
const result = runGitSync([
|
|
276
|
+
gitNumstat: (repoPath, windowDays, commitCap) => {
|
|
277
|
+
const result = runGitSync([
|
|
278
|
+
'log',
|
|
279
|
+
`--since=${windowDays}.days.ago`,
|
|
280
|
+
`-n${commitCap}`,
|
|
281
|
+
'--numstat',
|
|
282
|
+
'--format=COMMIT:%H %aI',
|
|
283
|
+
], repoPath, { timeoutMs: 60_000 });
|
|
225
284
|
return result.success ? (result.output ?? '') : '';
|
|
226
285
|
},
|
|
227
286
|
listTrackedFiles: (repoPath) => {
|
|
@@ -251,10 +310,34 @@ export function defaultSensorSweepDeps() {
|
|
|
251
310
|
const result = runGitSync(['rev-parse', 'HEAD'], repoPath, { timeoutMs: 15_000 });
|
|
252
311
|
return result.success ? result.output.trim() : null;
|
|
253
312
|
},
|
|
313
|
+
listIntentPaths: (repoPath) => {
|
|
314
|
+
// Enumerate active focus branches (agent/<role>/<slug>-<id>) and union the
|
|
315
|
+
// paths each has changed vs the current mainline (three-dot HEAD...branch,
|
|
316
|
+
// which diffs from their merge-base). Git-only + deterministic; a repo with
|
|
317
|
+
// no active focus branches yields an empty footprint (ratio -> 0).
|
|
318
|
+
const branchResult = runGitSync(['branch', '--list', 'agent/*', '--format=%(refname:short)'], repoPath, { timeoutMs: 15_000 });
|
|
319
|
+
if (!branchResult.success)
|
|
320
|
+
return [];
|
|
321
|
+
const branches = branchResult.output
|
|
322
|
+
.split('\n')
|
|
323
|
+
.map((l) => l.trim())
|
|
324
|
+
.filter(Boolean);
|
|
325
|
+
const paths = new Set();
|
|
326
|
+
for (const branch of branches) {
|
|
327
|
+
const diff = runGitSync(['diff', '--name-only', `HEAD...${branch}`], repoPath, { timeoutMs: 30_000 });
|
|
328
|
+
if (!diff.success)
|
|
329
|
+
continue;
|
|
330
|
+
for (const p of diff.output.split('\n').map((l) => l.trim()).filter(Boolean)) {
|
|
331
|
+
paths.add(p);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
return [...paths];
|
|
335
|
+
},
|
|
254
336
|
getLatest: getLatestCodeMetrics,
|
|
255
337
|
createSnapshot: createCodeMetricsSnapshot,
|
|
256
338
|
now: () => Date.now(),
|
|
257
|
-
|
|
339
|
+
windowDays: DEFAULT_WINDOW_DAYS,
|
|
340
|
+
commitCap: COMMIT_SAFETY_CAP,
|
|
258
341
|
};
|
|
259
342
|
}
|
|
260
343
|
/** Discover package.json manifests at the repo root and one level into packages/ + mcp/. */
|
|
@@ -296,7 +379,7 @@ export function mineRepoSnapshot(repoPath, deps) {
|
|
|
296
379
|
const repoHead = deps.resolveHeadSha(repoPath);
|
|
297
380
|
if (!repoHead)
|
|
298
381
|
return null;
|
|
299
|
-
const perFile = parseNumstatPerFile(deps.gitNumstat(repoPath, deps.
|
|
382
|
+
const perFile = parseNumstatPerFile(deps.gitNumstat(repoPath, deps.windowDays, deps.commitCap));
|
|
300
383
|
const complexityCache = new Map();
|
|
301
384
|
const complexityFor = (file) => {
|
|
302
385
|
if (complexityCache.has(file))
|
|
@@ -310,6 +393,7 @@ export function mineRepoSnapshot(repoPath, deps) {
|
|
|
310
393
|
const ratchets = countRatchets(deps.readLintConfig(repoPath));
|
|
311
394
|
const manifests = analyzeManifests(deps.readManifests(repoPath));
|
|
312
395
|
const fileCount = deps.listTrackedFiles(repoPath).length;
|
|
396
|
+
const intentAligned = computeIntentAlignedChurn(perFile, new Set(deps.listIntentPaths(repoPath)));
|
|
313
397
|
return {
|
|
314
398
|
repoHead,
|
|
315
399
|
manifestHash: manifests.manifestHash,
|
|
@@ -322,6 +406,8 @@ export function mineRepoSnapshot(repoPath, deps) {
|
|
|
322
406
|
areas,
|
|
323
407
|
ratchetDetail: ratchets.detail,
|
|
324
408
|
dependencyDetail: manifests.detail,
|
|
409
|
+
intentAlignedChurn: intentAligned.alignedChurn,
|
|
410
|
+
intentAlignedRatio: intentAligned.alignedRatio,
|
|
325
411
|
};
|
|
326
412
|
}
|
|
327
413
|
/**
|
package/dist/sensor-sweep.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor-sweep.js","sourceRoot":"","sources":["../src/sensor-sweep.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sensor-sweep.js","sourceRoot":"","sources":["../src/sensor-sweep.ts"],"names":[],"mappings":"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"}
|