@codeledger/instrument 0.5.0 → 0.5.1

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/dist/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export { runPreflight, validatePreflight } from './preflight.js';
2
2
  export { validateGitRef, ensureCleanOrFail, resolveRef, getHeadCommit, getShortRef, isRepoDirty, } from './snapshotter.js';
3
3
  export { execCommand, execCommandAsync } from './process-probe.js';
4
4
  export { RunRecorder } from './recorder.js';
5
+ export { ReadTracker } from './read-tracker.js';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -2,4 +2,5 @@ export { runPreflight, validatePreflight } from './preflight.js';
2
2
  export { validateGitRef, ensureCleanOrFail, resolveRef, getHeadCommit, getShortRef, isRepoDirty, } from './snapshotter.js';
3
3
  export { execCommand, execCommandAsync } from './process-probe.js';
4
4
  export { RunRecorder } from './recorder.js';
5
+ export { ReadTracker } from './read-tracker.js';
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { FileReadDepth, ISODateTime } from '@codeledger/types';
2
+ /**
3
+ * Session-level read aggregator. Maintains a running map of files read,
4
+ * their cumulative line coverage, and temporal ordering.
5
+ *
6
+ * Fed by file_read events from the read-log JSONL or ledger.
7
+ * Produces FileReadDepth[] for coverage analysis.
8
+ */
9
+ export declare class ReadTracker {
10
+ private reads;
11
+ /** Record a file read event */
12
+ record(path: string, offset: number, linesRead: number, totalLines: number, ts: ISODateTime): void;
13
+ /** Get cumulative read depth for a file */
14
+ getDepth(path: string): FileReadDepth | null;
15
+ /** Get all read depths */
16
+ getAllDepths(): FileReadDepth[];
17
+ /** Get the set of all file paths that have been read */
18
+ getReadPaths(): Set<string>;
19
+ /** Check if a file was read before a given timestamp */
20
+ wasReadBefore(path: string, beforeTs: ISODateTime): boolean;
21
+ /** Get files first read after a given timestamp (post-hoc detection) */
22
+ getPostHocReads(afterTs: ISODateTime): string[];
23
+ /** Serialize to JSON for persistence */
24
+ toJSON(): Record<string, unknown>;
25
+ /** Restore from persisted JSON */
26
+ static fromJSON(data: Record<string, unknown>): ReadTracker;
27
+ private computeDepth;
28
+ /**
29
+ * Compute the union of all read line ranges for a file.
30
+ * This avoids double-counting overlapping reads.
31
+ */
32
+ private computeCoveredLines;
33
+ private getFirstReadTs;
34
+ }
35
+ //# sourceMappingURL=read-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-tracker.d.ts","sourceRoot":"","sources":["../src/read-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAapE;;;;;;GAMG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAyC;IAEtD,+BAA+B;IAC/B,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,WAAW,GACd,IAAI;IAaP,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAM5C,0BAA0B;IAC1B,YAAY,IAAI,aAAa,EAAE;IAQ/B,wDAAwD;IACxD,YAAY,IAAI,GAAG,CAAC,MAAM,CAAC;IAI3B,wDAAwD;IACxD,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO;IAM3D,wEAAwE;IACxE,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;IAW/C,wCAAwC;IACxC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAWjC,kCAAkC;IAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAuB3D,OAAO,CAAC,YAAY;IAgBpB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,cAAc;CAUvB"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Session-level read aggregator. Maintains a running map of files read,
3
+ * their cumulative line coverage, and temporal ordering.
4
+ *
5
+ * Fed by file_read events from the read-log JSONL or ledger.
6
+ * Produces FileReadDepth[] for coverage analysis.
7
+ */
8
+ export class ReadTracker {
9
+ reads = new Map();
10
+ /** Record a file read event */
11
+ record(path, offset, linesRead, totalLines, ts) {
12
+ let state = this.reads.get(path);
13
+ if (!state) {
14
+ state = { events: [], total_lines: totalLines };
15
+ this.reads.set(path, state);
16
+ }
17
+ // Update total_lines if we get a more accurate value
18
+ if (totalLines > state.total_lines) {
19
+ state.total_lines = totalLines;
20
+ }
21
+ state.events.push({ offset, lines: linesRead, ts });
22
+ }
23
+ /** Get cumulative read depth for a file */
24
+ getDepth(path) {
25
+ const state = this.reads.get(path);
26
+ if (!state)
27
+ return null;
28
+ return this.computeDepth(path, state);
29
+ }
30
+ /** Get all read depths */
31
+ getAllDepths() {
32
+ const result = [];
33
+ for (const [path, state] of this.reads) {
34
+ result.push(this.computeDepth(path, state));
35
+ }
36
+ return result.sort((a, b) => a.path.localeCompare(b.path));
37
+ }
38
+ /** Get the set of all file paths that have been read */
39
+ getReadPaths() {
40
+ return new Set(this.reads.keys());
41
+ }
42
+ /** Check if a file was read before a given timestamp */
43
+ wasReadBefore(path, beforeTs) {
44
+ const state = this.reads.get(path);
45
+ if (!state)
46
+ return false;
47
+ return state.events.some((e) => e.ts < beforeTs);
48
+ }
49
+ /** Get files first read after a given timestamp (post-hoc detection) */
50
+ getPostHocReads(afterTs) {
51
+ const result = [];
52
+ for (const [path, state] of this.reads) {
53
+ const firstReadTs = this.getFirstReadTs(state);
54
+ if (firstReadTs && firstReadTs > afterTs) {
55
+ result.push(path);
56
+ }
57
+ }
58
+ return result.sort();
59
+ }
60
+ /** Serialize to JSON for persistence */
61
+ toJSON() {
62
+ const entries = {};
63
+ for (const [path, state] of this.reads) {
64
+ entries[path] = {
65
+ events: state.events,
66
+ total_lines: state.total_lines,
67
+ };
68
+ }
69
+ return { reads: entries };
70
+ }
71
+ /** Restore from persisted JSON */
72
+ static fromJSON(data) {
73
+ const tracker = new ReadTracker();
74
+ const reads = data['reads'];
75
+ if (!reads || typeof reads !== 'object')
76
+ return tracker;
77
+ for (const [path, raw] of Object.entries(reads)) {
78
+ const entry = raw;
79
+ if (!entry.events || !Array.isArray(entry.events))
80
+ continue;
81
+ const totalLines = typeof entry.total_lines === 'number' ? entry.total_lines : 0;
82
+ for (const evt of entry.events) {
83
+ const e = evt;
84
+ tracker.record(path, typeof e.offset === 'number' ? e.offset : 0, typeof e.lines === 'number' ? e.lines : 0, totalLines, (e.ts ?? new Date().toISOString()));
85
+ }
86
+ }
87
+ return tracker;
88
+ }
89
+ computeDepth(path, state) {
90
+ const totalLines = Math.max(state.total_lines, 1);
91
+ const coveredLines = this.computeCoveredLines(state, totalLines);
92
+ const readDepth = Math.min(coveredLines / totalLines, 1.0);
93
+ const firstReadAt = this.getFirstReadTs(state) ?? '';
94
+ return {
95
+ path,
96
+ total_lines: state.total_lines,
97
+ lines_read: coveredLines,
98
+ read_depth: readDepth,
99
+ first_read_at: firstReadAt,
100
+ read_count: state.events.length,
101
+ };
102
+ }
103
+ /**
104
+ * Compute the union of all read line ranges for a file.
105
+ * This avoids double-counting overlapping reads.
106
+ */
107
+ computeCoveredLines(state, totalLines) {
108
+ if (state.events.length === 0)
109
+ return 0;
110
+ // Build sorted intervals [start, end)
111
+ const intervals = state.events.map((e) => {
112
+ const start = Math.max(e.offset, 0);
113
+ // If lines is 0 or negative, treat as reading nothing
114
+ const end = Math.min(start + Math.max(e.lines, 0), totalLines);
115
+ return [start, end];
116
+ });
117
+ intervals.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
118
+ // Merge overlapping intervals
119
+ let covered = 0;
120
+ let curStart = intervals[0][0];
121
+ let curEnd = intervals[0][1];
122
+ for (let i = 1; i < intervals.length; i++) {
123
+ const [s, e] = intervals[i];
124
+ if (s <= curEnd) {
125
+ // Overlapping — extend
126
+ curEnd = Math.max(curEnd, e);
127
+ }
128
+ else {
129
+ // Gap — flush previous interval
130
+ covered += curEnd - curStart;
131
+ curStart = s;
132
+ curEnd = e;
133
+ }
134
+ }
135
+ covered += curEnd - curStart;
136
+ return covered;
137
+ }
138
+ getFirstReadTs(state) {
139
+ if (state.events.length === 0)
140
+ return null;
141
+ let earliest = state.events[0].ts;
142
+ for (let i = 1; i < state.events.length; i++) {
143
+ if (state.events[i].ts < earliest) {
144
+ earliest = state.events[i].ts;
145
+ }
146
+ }
147
+ return earliest;
148
+ }
149
+ }
150
+ //# sourceMappingURL=read-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-tracker.js","sourceRoot":"","sources":["../src/read-tracker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@codeledger/instrument",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "description": "Runtime instrumentation and recording for CodeLedger",
6
- "license": "Apache-2.0",
6
+ "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "https://github.com/codeledgerECF/codeledger-blackbox.git",
@@ -24,8 +24,8 @@
24
24
  }
25
25
  },
26
26
  "dependencies": {
27
- "@codeledger/types": "0.5.0",
28
- "@codeledger/core": "0.5.0"
27
+ "@codeledger/types": "0.5.1",
28
+ "@codeledger/core": "0.5.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "typescript": "^5.4.0"