@codeledger/insight-api 0.8.9

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/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Intelligent Context AI, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ Note: This license applies to the CLI wrapper, types, repository scanning,
26
+ instrumentation, harness, and report packages (the "Plugin"). The scoring
27
+ engine (packages/core-engine/bin/) is licensed separately under LICENSE-CORE.
@@ -0,0 +1,2 @@
1
+ export * from './server.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './server.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type FastifyInstance } from 'fastify';
2
+ export interface InsightServerOptions {
3
+ cwd: string;
4
+ }
5
+ export declare function createInsightServer(options: InsightServerOptions): Promise<FastifyInstance>;
6
+ export declare function startInsightServer(options: InsightServerOptions & {
7
+ port?: number;
8
+ host?: string;
9
+ }): Promise<FastifyInstance>;
10
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAMxD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4FjG;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,eAAe,CAAC,CAInI"}
package/dist/server.js ADDED
@@ -0,0 +1,253 @@
1
+ import Fastify from 'fastify';
2
+ import { filterEvents, readEvents, runInsightAggregationJob } from '@codeledger/aggregations';
3
+ import { renderInsightPage } from '@codeledger/insight-ui';
4
+ import { DEFAULT_INSIGHT_SCENARIO_ID } from '@codeledger/telemetry';
5
+ export async function createInsightServer(options) {
6
+ const app = Fastify({ logger: false });
7
+ function detectWelcomeState() {
8
+ try {
9
+ const events = readEvents(options.cwd);
10
+ if (events.length === 0)
11
+ return 'empty';
12
+ return events.some((e) => !e.isSynthetic) ? 'has-real-data' : 'auto-seeded';
13
+ }
14
+ catch {
15
+ return 'empty';
16
+ }
17
+ }
18
+ const htmlRoutes = ['/', '/integrity', '/quality', '/knowledge', '/efficiency', '/value'];
19
+ for (const route of htmlRoutes) {
20
+ app.get(route, async (request, reply) => {
21
+ const filters = buildInsightFilters(request.query);
22
+ const welcomeState = detectWelcomeState();
23
+ const snapshot = loadSnapshot(options.cwd, filters, welcomeState);
24
+ reply.type('text/html').send(renderInsightPage(route, snapshot));
25
+ });
26
+ }
27
+ app.get('/api/overview', async (request) => {
28
+ const filters = buildInsightFilters(request.query);
29
+ const snapshot = loadSnapshot(options.cwd, filters);
30
+ return {
31
+ generatedAt: snapshot.generatedAt,
32
+ overview: snapshot.metrics.overview,
33
+ integrity: snapshot.metrics.integrity,
34
+ quality: snapshot.metrics.quality,
35
+ knowledge: snapshot.metrics.knowledge,
36
+ patterns: snapshot.metrics.patterns,
37
+ efficiency: snapshot.metrics.efficiency,
38
+ value: snapshot.value,
39
+ recommendations: snapshot.recommendations,
40
+ insights: snapshot.insights ?? [],
41
+ qualityHotspots: snapshot.qualityHotspots ?? [],
42
+ integrityHotspots: snapshot.integrityHotspots ?? [],
43
+ knowledgePatterns: snapshot.knowledgePatterns ?? [],
44
+ shadowHotspots: snapshot.shadowHotspots ?? [],
45
+ valueTrend: snapshot.valueTrend,
46
+ baseline: snapshot.baseline,
47
+ };
48
+ });
49
+ app.get('/api/integrity', async (request) => {
50
+ const filters = buildInsightFilters(request.query);
51
+ return loadSnapshot(options.cwd, filters).metrics.integrity;
52
+ });
53
+ app.get('/api/quality', async (request) => {
54
+ const filters = buildInsightFilters(request.query);
55
+ return loadSnapshot(options.cwd, filters).metrics.quality;
56
+ });
57
+ app.get('/api/efficiency', async (request) => {
58
+ const filters = buildInsightFilters(request.query);
59
+ return loadSnapshot(options.cwd, filters).metrics.efficiency;
60
+ });
61
+ app.get('/api/knowledge', async (request) => {
62
+ const filters = buildInsightFilters(request.query);
63
+ return loadSnapshot(options.cwd, filters).metrics.knowledge;
64
+ });
65
+ app.get('/api/patterns', async (request) => {
66
+ const filters = buildInsightFilters(request.query);
67
+ return loadSnapshot(options.cwd, filters).metrics.patterns;
68
+ });
69
+ app.get('/api/value', async (request) => {
70
+ const filters = buildInsightFilters(request.query);
71
+ return loadSnapshot(options.cwd, filters).value;
72
+ });
73
+ app.get('/api/evidence', async (request) => {
74
+ const rawQuery = request.query;
75
+ const query = { ...rawQuery, ...buildInsightFilters(rawQuery) };
76
+ const events = readEvents(options.cwd);
77
+ const filtered = filterEvents(events, query);
78
+ const narrowed = filtered.filter((event) => {
79
+ if (query.type && event.type !== query.type)
80
+ return false;
81
+ if (query.metric)
82
+ return eventSupportsMetric(event, query.metric);
83
+ return true;
84
+ });
85
+ const detailedEvents = narrowed.map((event) => ({
86
+ ...event,
87
+ impact: explainEventImpact(event, query.metric),
88
+ sourceLabel: event.isSynthetic ? `synthetic (${event.scenarioId ?? 'unknown'})` : 'observed',
89
+ }));
90
+ return {
91
+ filters: query,
92
+ explanation: explainMetric(query.metric),
93
+ events: detailedEvents,
94
+ };
95
+ });
96
+ return app;
97
+ }
98
+ export async function startInsightServer(options) {
99
+ const app = await createInsightServer(options);
100
+ await app.listen({ port: options.port ?? 7600, host: options.host ?? '127.0.0.1' });
101
+ return app;
102
+ }
103
+ function loadSnapshot(cwd, filters = {}, welcomeState) {
104
+ const snapshot = runInsightAggregationJob({ cwd, filters });
105
+ if (welcomeState)
106
+ snapshot.welcomeState = welcomeState;
107
+ return snapshot;
108
+ }
109
+ function eventSupportsMetric(event, metric) {
110
+ switch (metric) {
111
+ case 'writeSafetySuccessRate':
112
+ return event.type === 'EXECUTION_RESULT' && event.writeSafe !== undefined;
113
+ case 'redactRate':
114
+ return event.type === 'EXECUTION_RESULT' && event.redactApplied !== undefined;
115
+ case 'rejectRate':
116
+ return event.type === 'EXECUTION_RESULT' && event.rejected !== undefined;
117
+ case 'integrityDrift':
118
+ return event.type === 'POLICY_EVALUATION';
119
+ case 'firstPassSuccessRate':
120
+ return event.type === 'EXECUTION_RESULT' && event.firstPass !== undefined;
121
+ case 'reworkRatio':
122
+ return event.type === 'EXECUTION_RESULT' && event.rework !== undefined;
123
+ case 'executionReliability':
124
+ return event.type === 'EXECUTION_RESULT';
125
+ case 'patternReuseRate':
126
+ return event.type === 'PATTERN_REUSE';
127
+ case 'timeToContext':
128
+ return event.type === 'CONTEXT_EVALUATION';
129
+ case 'shadowKnowledgeIndex':
130
+ return event.type === 'SHADOW_KNOWLEDGE_SIGNAL';
131
+ case 'goldenPathAdherence':
132
+ return event.type === 'GOLDEN_PATH_ADHERENCE';
133
+ case 'promptLift':
134
+ return event.type === 'PROMPT_REFINEMENT';
135
+ case 'contextCompression':
136
+ return event.type === 'PROMPT_REFINEMENT';
137
+ case 'wasteAvoided':
138
+ return event.type === 'PROMPT_REFINEMENT' || (event.type === 'EXECUTION_RESULT' && (event.firstPass !== undefined || event.rework !== undefined));
139
+ default:
140
+ return true;
141
+ }
142
+ }
143
+ function explainMetric(metric) {
144
+ switch (metric) {
145
+ case 'writeSafetySuccessRate':
146
+ return 'Share of execution events that completed with explicit write safety confirmation.';
147
+ case 'redactRate':
148
+ return 'Share of execution events where redaction was applied before persistence or output.';
149
+ case 'rejectRate':
150
+ return 'Share of execution events rejected by existing safety or policy surfaces.';
151
+ case 'integrityDrift':
152
+ return 'Share of policy evaluations with one or more violations.';
153
+ case 'firstPassSuccessRate':
154
+ return 'Share of execution events marked first-pass and successful.';
155
+ case 'reworkRatio':
156
+ return 'Share of execution events marked as rework.';
157
+ case 'patternReuseRate':
158
+ return 'Share of pattern reuse events that reused an existing primitive or pattern.';
159
+ case 'timeToContext':
160
+ return 'Approximate minutes to usable context inferred from bundle token size.';
161
+ case 'shadowKnowledgeIndex':
162
+ return 'Average weight of observed shadow knowledge signals.';
163
+ case 'goldenPathAdherence':
164
+ return 'Share of golden path events that followed the expected implementation path.';
165
+ case 'estimatedSavings':
166
+ return 'Rework reduction, context recovery, and pattern reuse combine into the savings estimate.';
167
+ case 'promptLift':
168
+ return 'Blended indicator of prompt refinement adoption: acceptance, bypass avoidance, and edit engagement.';
169
+ case 'contextCompression':
170
+ return 'Average reduction in repo context scope achieved through Prompt Coach refinement.';
171
+ case 'wasteAvoided':
172
+ return 'Estimated retries and rework avoided through better prompts and tighter context (operational proxy).';
173
+ default:
174
+ return 'Evidence-backed events contributing to the selected metric.';
175
+ }
176
+ }
177
+ function explainEventImpact(event, metric) {
178
+ switch (event.type) {
179
+ case 'EXECUTION_RESULT':
180
+ if (metric === 'reworkRatio' && event.rework) {
181
+ return 'Classified as rework—raises the rework ratio.';
182
+ }
183
+ if (metric === 'firstPassSuccessRate' && event.firstPass) {
184
+ return 'First-pass success event supporting the ratio.';
185
+ }
186
+ if (metric === 'executionReliability') {
187
+ return event.status === 'success'
188
+ ? 'Successful execution backs reliability.'
189
+ : 'Failure/warn from this execution weakens reliability.';
190
+ }
191
+ if (metric === 'writeSafetySuccessRate' && event.writeSafe) {
192
+ return 'This execution completed with write safety flag.';
193
+ }
194
+ if (metric === 'shadowKnowledgeIndex' && event.rework) {
195
+ return 'Rework event hints at potential knowledge gaps in the flow.';
196
+ }
197
+ return 'Execution result contributing to the selected metric.';
198
+ case 'POLICY_EVALUATION':
199
+ return event.violations > 0
200
+ ? 'Policy evaluation flagged violations that drive integrity drift.'
201
+ : 'Policy evaluation passed, keeping integrity stable.';
202
+ case 'PATTERN_REUSE':
203
+ return event.reused ? 'Reused pattern supports the reuse rate.' : 'Pattern not reused.';
204
+ case 'GOLDEN_PATH_ADHERENCE':
205
+ return event.adhered ? 'Followed the golden path.' : 'Deviation from the golden path.';
206
+ case 'CONTEXT_EVALUATION':
207
+ return 'Context scan feeds the time-to-context estimate.';
208
+ case 'SHADOW_KNOWLEDGE_SIGNAL':
209
+ return `${event.signal} signal (${event.note}) increases shadow knowledge awareness.`;
210
+ case 'PROMPT_REFINEMENT': {
211
+ const action = event.accepted ? 'Accepted' : event.bypassed ? 'Bypassed' : 'Edited';
212
+ const compression = event.contextReductionPct > 0 ? ` Context reduced ${event.contextReductionPct}%.` : '';
213
+ const outcome = event.firstPassSuccess ? ' First-pass success.' : '';
214
+ const retries = event.retriesAvoided > 0 ? ` ${event.retriesAvoided} retries avoided.` : '';
215
+ return `${action} refinement.${compression}${outcome}${retries}`;
216
+ }
217
+ default:
218
+ return 'Evidence tied to the selected signal.';
219
+ }
220
+ }
221
+ function buildInsightFilters(query) {
222
+ const filters = {};
223
+ if (query.repo)
224
+ filters.repo = query.repo;
225
+ if (query.team)
226
+ filters.team = query.team;
227
+ if (query.dateFrom)
228
+ filters.dateFrom = query.dateFrom;
229
+ if (query.dateTo)
230
+ filters.dateTo = query.dateTo;
231
+ if (isScopeType(query.scopeType))
232
+ filters.scopeType = query.scopeType;
233
+ if (query.scopeId)
234
+ filters.scopeId = query.scopeId;
235
+ const view = resolveViewMode(query.view);
236
+ filters.view = view;
237
+ if (view === 'what-this-becomes') {
238
+ filters.syntheticOnly = true;
239
+ filters.scenarioId = query.scenario ?? DEFAULT_INSIGHT_SCENARIO_ID;
240
+ }
241
+ else {
242
+ filters.syntheticOnly = false;
243
+ filters.scenarioId = undefined;
244
+ }
245
+ return filters;
246
+ }
247
+ function resolveViewMode(value) {
248
+ return value === 'what-this-becomes' ? 'what-this-becomes' : 'your-team';
249
+ }
250
+ function isScopeType(value) {
251
+ return value === 'repo' || value === 'team' || value === 'org';
252
+ }
253
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@codeledger/insight-api",
3
+ "version": "0.8.9",
4
+ "type": "module",
5
+ "description": "Insight API server for CodeLedger",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/codeledgerECF/codeledger.git",
10
+ "directory": "packages/insight-api"
11
+ },
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "main": "./dist/index.js",
19
+ "types": "./dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.ts",
23
+ "import": "./dist/index.js"
24
+ }
25
+ },
26
+ "dependencies": {
27
+ "fastify": "^5.8.4",
28
+ "@codeledger/aggregations": "0.8.9",
29
+ "@codeledger/insight-ui": "0.8.9",
30
+ "@codeledger/types": "0.8.9",
31
+ "@codeledger/telemetry": "0.8.9"
32
+ },
33
+ "devDependencies": {
34
+ "typescript": "^5.4.0"
35
+ },
36
+ "scripts": {
37
+ "build": "tsc",
38
+ "typecheck": "tsc --noEmit",
39
+ "clean": "rm -rf dist"
40
+ }
41
+ }