@ai-agent-context/core 0.1.0

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.
Files changed (236) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +285 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/adapters/filesystem/fs-adapter.d.ts +50 -0
  5. package/dist/adapters/filesystem/fs-adapter.d.ts.map +1 -0
  6. package/dist/adapters/filesystem/fs-adapter.js +168 -0
  7. package/dist/adapters/filesystem/fs-adapter.js.map +1 -0
  8. package/dist/adapters/filesystem/sensitive.d.ts +26 -0
  9. package/dist/adapters/filesystem/sensitive.d.ts.map +1 -0
  10. package/dist/adapters/filesystem/sensitive.js +67 -0
  11. package/dist/adapters/filesystem/sensitive.js.map +1 -0
  12. package/dist/adapters/git/git-adapter.d.ts +47 -0
  13. package/dist/adapters/git/git-adapter.d.ts.map +1 -0
  14. package/dist/adapters/git/git-adapter.js +109 -0
  15. package/dist/adapters/git/git-adapter.js.map +1 -0
  16. package/dist/adapters/language/json/adapter.d.ts +24 -0
  17. package/dist/adapters/language/json/adapter.d.ts.map +1 -0
  18. package/dist/adapters/language/json/adapter.js +54 -0
  19. package/dist/adapters/language/json/adapter.js.map +1 -0
  20. package/dist/adapters/language/markdown/adapter.d.ts +41 -0
  21. package/dist/adapters/language/markdown/adapter.d.ts.map +1 -0
  22. package/dist/adapters/language/markdown/adapter.js +124 -0
  23. package/dist/adapters/language/markdown/adapter.js.map +1 -0
  24. package/dist/adapters/language/package-json/adapter.d.ts +47 -0
  25. package/dist/adapters/language/package-json/adapter.d.ts.map +1 -0
  26. package/dist/adapters/language/package-json/adapter.js +153 -0
  27. package/dist/adapters/language/package-json/adapter.js.map +1 -0
  28. package/dist/adapters/language/registry.d.ts +35 -0
  29. package/dist/adapters/language/registry.d.ts.map +1 -0
  30. package/dist/adapters/language/registry.js +79 -0
  31. package/dist/adapters/language/registry.js.map +1 -0
  32. package/dist/adapters/language/ts-js/adapter.d.ts +14 -0
  33. package/dist/adapters/language/ts-js/adapter.d.ts.map +1 -0
  34. package/dist/adapters/language/ts-js/adapter.js +59 -0
  35. package/dist/adapters/language/ts-js/adapter.js.map +1 -0
  36. package/dist/adapters/language/ts-js/extractor.d.ts +21 -0
  37. package/dist/adapters/language/ts-js/extractor.d.ts.map +1 -0
  38. package/dist/adapters/language/ts-js/extractor.js +779 -0
  39. package/dist/adapters/language/ts-js/extractor.js.map +1 -0
  40. package/dist/adapters/language/ts-js/lexer.d.ts +30 -0
  41. package/dist/adapters/language/ts-js/lexer.d.ts.map +1 -0
  42. package/dist/adapters/language/ts-js/lexer.js +446 -0
  43. package/dist/adapters/language/ts-js/lexer.js.map +1 -0
  44. package/dist/adapters/language/ts-js/package-signals.d.ts +5 -0
  45. package/dist/adapters/language/ts-js/package-signals.d.ts.map +1 -0
  46. package/dist/adapters/language/ts-js/package-signals.js +113 -0
  47. package/dist/adapters/language/ts-js/package-signals.js.map +1 -0
  48. package/dist/adapters/language/tsconfig/adapter.d.ts +38 -0
  49. package/dist/adapters/language/tsconfig/adapter.d.ts.map +1 -0
  50. package/dist/adapters/language/tsconfig/adapter.js +130 -0
  51. package/dist/adapters/language/tsconfig/adapter.js.map +1 -0
  52. package/dist/adapters/language/types.d.ts +152 -0
  53. package/dist/adapters/language/types.d.ts.map +1 -0
  54. package/dist/adapters/language/types.js +51 -0
  55. package/dist/adapters/language/types.js.map +1 -0
  56. package/dist/agent-context.d.ts +122 -0
  57. package/dist/agent-context.d.ts.map +1 -0
  58. package/dist/agent-context.js +243 -0
  59. package/dist/agent-context.js.map +1 -0
  60. package/dist/config/defaults.d.ts +13 -0
  61. package/dist/config/defaults.d.ts.map +1 -0
  62. package/dist/config/defaults.js +98 -0
  63. package/dist/config/defaults.js.map +1 -0
  64. package/dist/config/load.d.ts +25 -0
  65. package/dist/config/load.d.ts.map +1 -0
  66. package/dist/config/load.js +106 -0
  67. package/dist/config/load.js.map +1 -0
  68. package/dist/config/types.d.ts +95 -0
  69. package/dist/config/types.d.ts.map +1 -0
  70. package/dist/config/types.js +8 -0
  71. package/dist/config/types.js.map +1 -0
  72. package/dist/config/validate.d.ts +15 -0
  73. package/dist/config/validate.d.ts.map +1 -0
  74. package/dist/config/validate.js +202 -0
  75. package/dist/config/validate.js.map +1 -0
  76. package/dist/core/architecture/detector.d.ts +10 -0
  77. package/dist/core/architecture/detector.d.ts.map +1 -0
  78. package/dist/core/architecture/detector.js +37 -0
  79. package/dist/core/architecture/detector.js.map +1 -0
  80. package/dist/core/architecture/entry-points.d.ts +20 -0
  81. package/dist/core/architecture/entry-points.d.ts.map +1 -0
  82. package/dist/core/architecture/entry-points.js +190 -0
  83. package/dist/core/architecture/entry-points.js.map +1 -0
  84. package/dist/core/architecture/role-detector.d.ts +32 -0
  85. package/dist/core/architecture/role-detector.d.ts.map +1 -0
  86. package/dist/core/architecture/role-detector.js +240 -0
  87. package/dist/core/architecture/role-detector.js.map +1 -0
  88. package/dist/core/context/explain.d.ts +36 -0
  89. package/dist/core/context/explain.d.ts.map +1 -0
  90. package/dist/core/context/explain.js +199 -0
  91. package/dist/core/context/explain.js.map +1 -0
  92. package/dist/core/context/repository-context.d.ts +16 -0
  93. package/dist/core/context/repository-context.d.ts.map +1 -0
  94. package/dist/core/context/repository-context.js +134 -0
  95. package/dist/core/context/repository-context.js.map +1 -0
  96. package/dist/core/context/types.d.ts +94 -0
  97. package/dist/core/context/types.d.ts.map +1 -0
  98. package/dist/core/context/types.js +2 -0
  99. package/dist/core/context/types.js.map +1 -0
  100. package/dist/core/conventions/detector.d.ts +55 -0
  101. package/dist/core/conventions/detector.d.ts.map +1 -0
  102. package/dist/core/conventions/detector.js +438 -0
  103. package/dist/core/conventions/detector.js.map +1 -0
  104. package/dist/core/conventions/renderer.d.ts +16 -0
  105. package/dist/core/conventions/renderer.d.ts.map +1 -0
  106. package/dist/core/conventions/renderer.js +42 -0
  107. package/dist/core/conventions/renderer.js.map +1 -0
  108. package/dist/core/decisions/detector.d.ts +45 -0
  109. package/dist/core/decisions/detector.d.ts.map +1 -0
  110. package/dist/core/decisions/detector.js +256 -0
  111. package/dist/core/decisions/detector.js.map +1 -0
  112. package/dist/core/diff/differ.d.ts +26 -0
  113. package/dist/core/diff/differ.d.ts.map +1 -0
  114. package/dist/core/diff/differ.js +159 -0
  115. package/dist/core/diff/differ.js.map +1 -0
  116. package/dist/core/git-analysis/activity.d.ts +35 -0
  117. package/dist/core/git-analysis/activity.d.ts.map +1 -0
  118. package/dist/core/git-analysis/activity.js +123 -0
  119. package/dist/core/git-analysis/activity.js.map +1 -0
  120. package/dist/core/graph/aliases.d.ts +20 -0
  121. package/dist/core/graph/aliases.d.ts.map +1 -0
  122. package/dist/core/graph/aliases.js +99 -0
  123. package/dist/core/graph/aliases.js.map +1 -0
  124. package/dist/core/graph/knowledge-graph.d.ts +91 -0
  125. package/dist/core/graph/knowledge-graph.d.ts.map +1 -0
  126. package/dist/core/graph/knowledge-graph.js +572 -0
  127. package/dist/core/graph/knowledge-graph.js.map +1 -0
  128. package/dist/core/graph/modules.d.ts +28 -0
  129. package/dist/core/graph/modules.d.ts.map +1 -0
  130. package/dist/core/graph/modules.js +139 -0
  131. package/dist/core/graph/modules.js.map +1 -0
  132. package/dist/core/graph/resolver.d.ts +50 -0
  133. package/dist/core/graph/resolver.d.ts.map +1 -0
  134. package/dist/core/graph/resolver.js +180 -0
  135. package/dist/core/graph/resolver.js.map +1 -0
  136. package/dist/core/scanner/cache.d.ts +49 -0
  137. package/dist/core/scanner/cache.d.ts.map +1 -0
  138. package/dist/core/scanner/cache.js +101 -0
  139. package/dist/core/scanner/cache.js.map +1 -0
  140. package/dist/core/scanner/scanner.d.ts +60 -0
  141. package/dist/core/scanner/scanner.d.ts.map +1 -0
  142. package/dist/core/scanner/scanner.js +304 -0
  143. package/dist/core/scanner/scanner.js.map +1 -0
  144. package/dist/core/scanner/types.d.ts +47 -0
  145. package/dist/core/scanner/types.d.ts.map +1 -0
  146. package/dist/core/scanner/types.js +18 -0
  147. package/dist/core/scanner/types.js.map +1 -0
  148. package/dist/core/search/analyzer.d.ts +16 -0
  149. package/dist/core/search/analyzer.d.ts.map +1 -0
  150. package/dist/core/search/analyzer.js +165 -0
  151. package/dist/core/search/analyzer.js.map +1 -0
  152. package/dist/core/search/bm25.d.ts +21 -0
  153. package/dist/core/search/bm25.d.ts.map +1 -0
  154. package/dist/core/search/bm25.js +108 -0
  155. package/dist/core/search/bm25.js.map +1 -0
  156. package/dist/core/search/documents.d.ts +20 -0
  157. package/dist/core/search/documents.d.ts.map +1 -0
  158. package/dist/core/search/documents.js +106 -0
  159. package/dist/core/search/documents.js.map +1 -0
  160. package/dist/core/search/service.d.ts +30 -0
  161. package/dist/core/search/service.d.ts.map +1 -0
  162. package/dist/core/search/service.js +54 -0
  163. package/dist/core/search/service.js.map +1 -0
  164. package/dist/core/search/types.d.ts +44 -0
  165. package/dist/core/search/types.d.ts.map +1 -0
  166. package/dist/core/search/types.js +2 -0
  167. package/dist/core/search/types.js.map +1 -0
  168. package/dist/core/serialization/documents.d.ts +26 -0
  169. package/dist/core/serialization/documents.d.ts.map +1 -0
  170. package/dist/core/serialization/documents.js +224 -0
  171. package/dist/core/serialization/documents.js.map +1 -0
  172. package/dist/core/serialization/reader.d.ts +22 -0
  173. package/dist/core/serialization/reader.d.ts.map +1 -0
  174. package/dist/core/serialization/reader.js +65 -0
  175. package/dist/core/serialization/reader.js.map +1 -0
  176. package/dist/core/serialization/types.d.ts +184 -0
  177. package/dist/core/serialization/types.d.ts.map +1 -0
  178. package/dist/core/serialization/types.js +2 -0
  179. package/dist/core/serialization/types.js.map +1 -0
  180. package/dist/core/serialization/writer.d.ts +17 -0
  181. package/dist/core/serialization/writer.d.ts.map +1 -0
  182. package/dist/core/serialization/writer.js +64 -0
  183. package/dist/core/serialization/writer.js.map +1 -0
  184. package/dist/core/workspace/package-facts.d.ts +12 -0
  185. package/dist/core/workspace/package-facts.d.ts.map +1 -0
  186. package/dist/core/workspace/package-facts.js +50 -0
  187. package/dist/core/workspace/package-facts.js.map +1 -0
  188. package/dist/core/workspace/workspace.d.ts +32 -0
  189. package/dist/core/workspace/workspace.d.ts.map +1 -0
  190. package/dist/core/workspace/workspace.js +167 -0
  191. package/dist/core/workspace/workspace.js.map +1 -0
  192. package/dist/errors.d.ts +50 -0
  193. package/dist/errors.d.ts.map +1 -0
  194. package/dist/errors.js +64 -0
  195. package/dist/errors.js.map +1 -0
  196. package/dist/index.d.ts +80 -0
  197. package/dist/index.d.ts.map +1 -0
  198. package/dist/index.js +66 -0
  199. package/dist/index.js.map +1 -0
  200. package/dist/logging/diagnostics.d.ts +64 -0
  201. package/dist/logging/diagnostics.d.ts.map +1 -0
  202. package/dist/logging/diagnostics.js +92 -0
  203. package/dist/logging/diagnostics.js.map +1 -0
  204. package/dist/model/canonical.d.ts +24 -0
  205. package/dist/model/canonical.d.ts.map +1 -0
  206. package/dist/model/canonical.js +69 -0
  207. package/dist/model/canonical.js.map +1 -0
  208. package/dist/model/schema.d.ts +37 -0
  209. package/dist/model/schema.d.ts.map +1 -0
  210. package/dist/model/schema.js +42 -0
  211. package/dist/model/schema.js.map +1 -0
  212. package/dist/model/types.d.ts +402 -0
  213. package/dist/model/types.d.ts.map +1 -0
  214. package/dist/model/types.js +10 -0
  215. package/dist/model/types.js.map +1 -0
  216. package/dist/pipeline/scan-pipeline.d.ts +69 -0
  217. package/dist/pipeline/scan-pipeline.d.ts.map +1 -0
  218. package/dist/pipeline/scan-pipeline.js +270 -0
  219. package/dist/pipeline/scan-pipeline.js.map +1 -0
  220. package/dist/util/concurrency.d.ts +17 -0
  221. package/dist/util/concurrency.d.ts.map +1 -0
  222. package/dist/util/concurrency.js +46 -0
  223. package/dist/util/concurrency.js.map +1 -0
  224. package/dist/util/glob.d.ts +26 -0
  225. package/dist/util/glob.d.ts.map +1 -0
  226. package/dist/util/glob.js +198 -0
  227. package/dist/util/glob.js.map +1 -0
  228. package/dist/util/paths.d.ts +23 -0
  229. package/dist/util/paths.d.ts.map +1 -0
  230. package/dist/util/paths.js +115 -0
  231. package/dist/util/paths.js.map +1 -0
  232. package/dist/util/text.d.ts +22 -0
  233. package/dist/util/text.d.ts.map +1 -0
  234. package/dist/util/text.js +66 -0
  235. package/dist/util/text.js.map +1 -0
  236. package/package.json +52 -0
@@ -0,0 +1,402 @@
1
+ /**
2
+ * Canonical data model of the repository knowledge graph.
3
+ *
4
+ * Everything in this file is a plain, serializable TypeScript type: the model is
5
+ * the single source of truth for both the analysis pipeline and the `.agent/`
6
+ * serialization layer. Heuristic results are never modelled as facts — they are
7
+ * modelled as {@link Detection} values carrying `confidence` and `evidence`.
8
+ */
9
+ /** Normalized confidence in the `[0, 1]` range. Never `1` for heuristic results. */
10
+ export type Confidence = number;
11
+ /** A single piece of machine-readable justification for a heuristic statement. */
12
+ export interface Evidence {
13
+ /** Where the evidence comes from, for example `package.json` or `src/a/b.ts`. */
14
+ source: string;
15
+ /** Human readable description of what was observed. */
16
+ detail: string;
17
+ }
18
+ /** A heuristic conclusion that is explicitly *not* asserted as an absolute fact. */
19
+ export interface Detection<TValue extends string = string> {
20
+ value: TValue;
21
+ confidence: Confidence;
22
+ evidence: Evidence[];
23
+ }
24
+ /** Edge types supported by the knowledge graph. */
25
+ export type Relationship = 'imports' | 'exports' | 'calls' | 'extends' | 'implements' | 'depends-on' | 'used-by' | 'contains';
26
+ /** Node kinds inside the graph. */
27
+ export type NodeKind = 'repository' | 'package' | 'module' | 'file' | 'symbol';
28
+ /** Classification of a resolved dependency edge. */
29
+ export type DependencyKind = 'internal-file' | 'internal-module' | 'workspace-package' | 'external-package' | 'node-builtin' | 'unresolved';
30
+ /** Coarse file classification, language agnostic. */
31
+ export type FileKind = 'source' | 'test' | 'config' | 'docs' | 'asset' | 'other';
32
+ /** Why a directory/package was treated as an architectural module. */
33
+ export type ModuleBasis = 'workspace-package' | 'index-file' | 'directory' | 'single-file';
34
+ /** Neutral activity bucket. Deliberately avoids words such as "critical". */
35
+ export type ChangeFrequency = 'none' | 'low' | 'medium' | 'high';
36
+ /** Detected architectural roles. Heuristic — always reported with confidence. */
37
+ export type ModuleRole = 'workspace-package' | 'application' | 'domain' | 'service' | 'adapter' | 'repository' | 'controller' | 'api-routes' | 'infrastructure' | 'eventing' | 'worker' | 'cli' | 'ui' | 'shared' | 'configuration' | 'test-support';
38
+ /** Entry point categories. */
39
+ export type EntryPointType = 'application' | 'cli' | 'library' | 'package-main' | 'package-bin' | 'package-export' | 'http-routes' | 'worker' | 'test';
40
+ export interface GitFileSignals {
41
+ /** Commits touching this path inside the analysis window. */
42
+ historicalChanges: number;
43
+ /** Commits touching this path inside the "recent" window. */
44
+ recentChanges: number;
45
+ /** ISO date (`YYYY-MM-DD`) of the last change, if known. */
46
+ lastChanged: string | null;
47
+ /** Bucketed activity derived from the distribution of module activity. */
48
+ changeFrequency: ChangeFrequency;
49
+ /** Number of distinct authors observed for this path. */
50
+ contributorCount: number;
51
+ }
52
+ export interface GitModuleSignals extends GitFileSignals {
53
+ /** Most frequently observed authors (neutral ownership signal). */
54
+ topContributors: Array<{
55
+ name: string;
56
+ commits: number;
57
+ }>;
58
+ /** Commits whose message suggests an architectural change (bounded list). */
59
+ architectureChangeSignals: Array<{
60
+ sha: string;
61
+ date: string;
62
+ subject: string;
63
+ }>;
64
+ }
65
+ export interface FileNode {
66
+ /** POSIX path relative to the repository root. */
67
+ path: string;
68
+ /** SHA-256 of the file content. */
69
+ hash: string;
70
+ size: number;
71
+ /** Modification time in milliseconds since epoch (informational, local). */
72
+ mtimeMs: number;
73
+ /** Language id assigned by a language adapter, for example `typescript`. */
74
+ language: string;
75
+ kind: FileKind;
76
+ /** Owning module id, when the file belongs to a module. */
77
+ moduleId: string | null;
78
+ /** Owning workspace package name, when inside a workspace package. */
79
+ packageName: string | null;
80
+ /** Symbol ids declared in this file. */
81
+ symbolIds: string[];
82
+ /** Outgoing import/dependency specifiers observed in this file. */
83
+ importSpecifiers: string[];
84
+ /** Language-agnostic signals emitted by the language adapter. */
85
+ signals: string[];
86
+ /** `true` when the file was skipped because it matched sensitive patterns. */
87
+ sensitive: boolean;
88
+ parseStatus: ParseStatus;
89
+ }
90
+ export interface ModuleNode {
91
+ /** Stable id: workspace package name or path relative to the repository root. */
92
+ id: string;
93
+ path: string;
94
+ name: string;
95
+ basis: ModuleBasis;
96
+ /** Architectural roles, heuristic, each with confidence and evidence. */
97
+ roles: Detection<ModuleRole>[];
98
+ packageName: string | null;
99
+ isWorkspacePackage: boolean;
100
+ files: string[];
101
+ entryPoints: EntryPoint[];
102
+ /** Ids of modules this module depends on. */
103
+ dependsOn: string[];
104
+ /** Ids of modules that depend on this module. */
105
+ usedBy: string[];
106
+ /** Externally reachable exported symbols (agent-facing API surface). */
107
+ publicExports: Array<{
108
+ name: string;
109
+ kind: SymbolKind;
110
+ file: string;
111
+ }>;
112
+ /** Files of the module that re-export other modules (boundary candidates). */
113
+ boundaries: string[];
114
+ /** Aggregated language-agnostic signals of the module files. */
115
+ signals: string[];
116
+ /** Heuristic responsibilities, never asserted as facts. */
117
+ responsibilities: Detection[];
118
+ git: GitModuleSignals | null;
119
+ /** Test files inside the module. */
120
+ testFiles: string[];
121
+ }
122
+ export interface SymbolNode {
123
+ /** Stable id: `<file path>#<symbol name>`. */
124
+ id: string;
125
+ name: string;
126
+ kind: SymbolKind;
127
+ file: string;
128
+ moduleId: string | null;
129
+ exported: boolean;
130
+ isDefault: boolean;
131
+ extends: string[];
132
+ implements: string[];
133
+ /** 1-based line of the declaration. */
134
+ line: number;
135
+ }
136
+ export interface DependencyEdge {
137
+ /** Stable id: `<from>|<relationship>|<to>`. */
138
+ id: string;
139
+ from: string;
140
+ fromKind: NodeKind;
141
+ to: string;
142
+ toKind: NodeKind;
143
+ relationship: Relationship;
144
+ kind: DependencyKind;
145
+ /** Raw specifier as written in the source, when applicable. */
146
+ specifier?: string;
147
+ /** Import syntax flavour, when applicable. */
148
+ syntax?: ImportSyntax;
149
+ confidence: Confidence;
150
+ evidence: Evidence[];
151
+ }
152
+ export interface EntryPoint {
153
+ path: string;
154
+ moduleId: string | null;
155
+ type: EntryPointType;
156
+ confidence: Confidence;
157
+ evidence: Evidence[];
158
+ /** Additional context, for example the npm script or route method. */
159
+ details?: string;
160
+ }
161
+ export interface Convention {
162
+ id: string;
163
+ category: string;
164
+ statement: string;
165
+ confidence: Confidence;
166
+ evidence: Evidence[];
167
+ /** How the convention was derived. */
168
+ origin: 'observed' | 'config';
169
+ }
170
+ export type ParseStatus = 'ok' | 'partial' | 'failed' | 'skipped';
171
+ export type ImportSyntax = 'static' | 'type-only' | 'dynamic' | 'require' | 'side-effect' | 'reexport' | 'import-equals';
172
+ export type SymbolKind = 'class' | 'interface' | 'type' | 'enum' | 'function' | 'const' | 'variable' | 'method' | 'namespace';
173
+ export type DecisionStatus = 'accepted' | 'proposed' | 'deprecated' | 'superseded' | 'rejected' | 'unknown';
174
+ export interface Decision {
175
+ id: string;
176
+ title: string;
177
+ status: DecisionStatus;
178
+ /** Repository-relative path (or git reference) the decision was found in. */
179
+ source: string;
180
+ /** `explicit` = authored by humans in the repository, `inferred` = derived by heuristics. */
181
+ origin: 'explicit' | 'inferred';
182
+ kind: 'adr' | 'documented-section' | 'git-signal' | 'config-signal' | 'dependency-signal';
183
+ confidence: Confidence;
184
+ evidence: Evidence[];
185
+ excerpt?: string;
186
+ }
187
+ export interface WorkspacePackage {
188
+ name: string;
189
+ /** Repository-relative POSIX path. */
190
+ path: string;
191
+ version: string | null;
192
+ private: boolean;
193
+ type: 'module' | 'commonjs' | null;
194
+ runtimeDependencies: string[];
195
+ developmentDependencies: string[];
196
+ peerDependencies: string[];
197
+ scripts: Record<string, string>;
198
+ /** Declared entry fields from package.json (structural facts). */
199
+ entries: Array<{
200
+ field: 'main' | 'module' | 'types' | 'browser' | 'exports' | 'bin';
201
+ value: string;
202
+ }>;
203
+ }
204
+ export interface WorkspaceInfo {
205
+ packageManager: 'npm' | 'pnpm' | 'yarn' | 'bun' | 'unknown';
206
+ /** Repository signals only: a lockfile is a signal, not proof of runtime usage. */
207
+ packageManagerEvidence: Evidence[];
208
+ lockfiles: string[];
209
+ isMonorepo: boolean;
210
+ workspaceModel: 'npm-workspaces' | 'yarn-workspaces' | 'pnpm-workspaces' | 'bun-workspaces' | 'single-package';
211
+ workspaceGlobs: string[];
212
+ rootPackage: WorkspacePackage | null;
213
+ packages: WorkspacePackage[];
214
+ }
215
+ export interface ExternalDependency {
216
+ name: string;
217
+ scope: 'runtime' | 'development' | 'peer';
218
+ /** Workspace package names declaring this dependency. */
219
+ declaredBy: string[];
220
+ /** Number of internal modules importing it. */
221
+ importedByModules: number;
222
+ /** Heuristic importance classification with evidence. */
223
+ importance: Detection<'infrastructure' | 'framework' | 'tooling' | 'utility'>;
224
+ }
225
+ export interface Repository {
226
+ /** Absolute repository root. */
227
+ root: string;
228
+ name: string;
229
+ schemaVersion: number;
230
+ languages: string[];
231
+ workspace: WorkspaceInfo;
232
+ files: FileNode[];
233
+ modules: ModuleNode[];
234
+ symbols: SymbolNode[];
235
+ dependencies: DependencyEdge[];
236
+ entryPoints: EntryPoint[];
237
+ conventions: Convention[];
238
+ decisions: Decision[];
239
+ externalDependencies: ExternalDependency[];
240
+ /** Module-level dependency cycles (module ids, deterministic order). */
241
+ cycles: string[][];
242
+ }
243
+ export interface ChangeSet {
244
+ added: string[];
245
+ modified: string[];
246
+ deleted: string[];
247
+ unchanged: string[];
248
+ /** `false` when metadata was missing, forcing a cold scan. */
249
+ incremental: boolean;
250
+ }
251
+ export interface ScanReport {
252
+ changes: ChangeSet;
253
+ files: {
254
+ total: number;
255
+ source: number;
256
+ tests: number;
257
+ skipped: number;
258
+ failed: number;
259
+ };
260
+ modules: number;
261
+ dependencies: number;
262
+ externalDependencies: number;
263
+ entryPoints: number;
264
+ conventions: number;
265
+ decisions: number;
266
+ /** Number of files whose content was parsed during this scan. */
267
+ parsed: number;
268
+ /** Number of files whose parse result was reused from the local cache. */
269
+ reused: number;
270
+ /** Subgraph affected by this scan (used for incremental invalidation). */
271
+ affected: {
272
+ files: string[];
273
+ modules: string[];
274
+ dependents: string[];
275
+ };
276
+ durationMs: number;
277
+ warnings: DiagnosticPayload[];
278
+ }
279
+ export interface DiagnosticPayload {
280
+ code: string;
281
+ severity: 'info' | 'warning' | 'error';
282
+ message: string;
283
+ source?: string;
284
+ hint?: string;
285
+ }
286
+ export interface ContextDiff {
287
+ files: {
288
+ added: string[];
289
+ modified: string[];
290
+ removed: string[];
291
+ };
292
+ modules: {
293
+ added: string[];
294
+ removed: string[];
295
+ roleChanges: Array<{
296
+ moduleId: string;
297
+ added: string[];
298
+ removed: string[];
299
+ }>;
300
+ };
301
+ entryPoints: {
302
+ added: string[];
303
+ removed: string[];
304
+ };
305
+ dependencies: {
306
+ added: Array<{
307
+ from: string;
308
+ to: string;
309
+ relationship: Relationship;
310
+ kind: DependencyKind;
311
+ }>;
312
+ removed: Array<{
313
+ from: string;
314
+ to: string;
315
+ relationship: Relationship;
316
+ kind: DependencyKind;
317
+ }>;
318
+ externalAdded: string[];
319
+ externalRemoved: string[];
320
+ };
321
+ conventions: {
322
+ added: string[];
323
+ removed: string[];
324
+ changed: string[];
325
+ };
326
+ decisions: {
327
+ added: string[];
328
+ removed: string[];
329
+ };
330
+ statistics: {
331
+ files: number;
332
+ modules: number;
333
+ dependencies: number;
334
+ entries: number;
335
+ };
336
+ hasChanges: boolean;
337
+ /** Hash of the previously persisted canonical context, when available. */
338
+ baseline: string | null;
339
+ }
340
+ export interface SearchResult {
341
+ type: 'file' | 'module' | 'symbol' | 'decision' | 'convention' | 'entry-point' | 'dependency';
342
+ id: string;
343
+ score: number;
344
+ /** Deterministic explanation of why the node matched. */
345
+ reason: string;
346
+ /** Short, agent-friendly excerpt. */
347
+ snippet?: string;
348
+ }
349
+ export interface ModuleExplanation {
350
+ module: {
351
+ id: string;
352
+ path: string;
353
+ name: string;
354
+ basis: ModuleBasis;
355
+ roles: Detection<ModuleRole>[];
356
+ responsibilities: Detection[];
357
+ };
358
+ summary: string;
359
+ entryPoints: EntryPoint[];
360
+ dependsOn: Array<{
361
+ id: string;
362
+ path: string;
363
+ relationships: Relationship[];
364
+ files: number;
365
+ }>;
366
+ usedBy: Array<{
367
+ id: string;
368
+ path: string;
369
+ relationships: Relationship[];
370
+ files: number;
371
+ }>;
372
+ externalDependencies: Array<{
373
+ name: string;
374
+ scope: ExternalDependency['scope'];
375
+ importance: Detection;
376
+ }>;
377
+ publicApi: Array<{
378
+ name: string;
379
+ kind: SymbolKind;
380
+ file: string;
381
+ }>;
382
+ internalSymbols: Array<{
383
+ name: string;
384
+ kind: SymbolKind;
385
+ file: string;
386
+ }>;
387
+ conventions: Convention[];
388
+ decisions: Decision[];
389
+ tests: {
390
+ files: string[];
391
+ testCount: number;
392
+ };
393
+ git: GitModuleSignals | null;
394
+ /** Modules and files that would be affected by a change in this module. */
395
+ impact: {
396
+ modules: string[];
397
+ files: string[];
398
+ };
399
+ relatedFiles: string[];
400
+ warnings: DiagnosticPayload[];
401
+ }
402
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Canonical data model of the repository knowledge graph.
3
+ *
4
+ * Everything in this file is a plain, serializable TypeScript type: the model is
5
+ * the single source of truth for both the analysis pipeline and the `.agent/`
6
+ * serialization layer. Heuristic results are never modelled as facts — they are
7
+ * modelled as {@link Detection} values carrying `confidence` and `evidence`.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * The scanning pipeline: the single orchestration path used by the CLI, the
3
+ * programmatic API and the MCP adapter.
4
+ *
5
+ * Order matters and is explicit:
6
+ *
7
+ * ```text
8
+ * config в†’ local state в†’ scanner (incremental) в†’ workspace в†’ knowledge graph
9
+ * в†’ architecture roles / entry points в†’ git signals в†’ conventions
10
+ * в†’ decisions в†’ canonical documents в†’ diff в†’ persist в†’ local state
11
+ * ```
12
+ *
13
+ * Nothing here writes to `.agent/` when `dryRun` is set, which is how `status`
14
+ * and `diff` stay side-effect free.
15
+ */
16
+ import type { LanguageRegistry } from '../adapters/language/registry.ts';
17
+ import type { ParsedFile } from '../adapters/language/types.ts';
18
+ import type { KnowledgeGraph } from '../core/graph/knowledge-graph.ts';
19
+ import type { ContextDiff, ScanReport, WorkspaceInfo } from '../model/types.ts';
20
+ import type { AgentContextConfig, ConfigOverrides } from '../config/types.ts';
21
+ import { DiagnosticsCollector, Logger, type ProgressReporter } from '../logging/diagnostics.ts';
22
+ import { GitAdapter, type GitAvailability } from '../adapters/git/git-adapter.ts';
23
+ import { type ScanOutput } from '../core/scanner/scanner.ts';
24
+ import { type LocalState } from '../core/scanner/cache.ts';
25
+ import { type PersistedContext } from '../core/serialization/reader.ts';
26
+ import { type WriteContextResult } from '../core/serialization/writer.ts';
27
+ import type { ContextDocuments } from '../core/serialization/types.ts';
28
+ export interface PipelineOptions {
29
+ root: string;
30
+ /** Configuration overrides coming from CLI flags. */
31
+ overrides?: ConfigOverrides;
32
+ configPath?: string;
33
+ logger?: Logger;
34
+ registry?: LanguageRegistry;
35
+ progress?: ProgressReporter;
36
+ /** Compute everything but write nothing (`status`, `diff`). */
37
+ dryRun?: boolean;
38
+ /** Ignore the local state and re-read every file. */
39
+ force?: boolean;
40
+ /** Injectable clock (tests), used for timestamps and git windows. */
41
+ now?: () => number;
42
+ /** Injectable git adapter (tests, or when git is not on PATH). */
43
+ gitAdapter?: GitAdapter;
44
+ }
45
+ export interface PipelineResult {
46
+ config: AgentContextConfig;
47
+ configHash: string;
48
+ graph: KnowledgeGraph;
49
+ parsed: Map<string, ParsedFile>;
50
+ documents: ContextDocuments;
51
+ report: ScanReport;
52
+ diff: ContextDiff;
53
+ persisted: PersistedContext;
54
+ written: WriteContextResult | null;
55
+ state: LocalState;
56
+ workspace: WorkspaceInfo;
57
+ git: {
58
+ availability: GitAvailability;
59
+ commitsAnalyzed: number;
60
+ };
61
+ diagnostics: DiagnosticsCollector;
62
+ }
63
+ /** Rebuilds the workspace model from the parsed `package.json` files. */
64
+ export declare function detectWorkspaceFromScan(scan: ScanOutput): WorkspaceInfo;
65
+ /** Runs the whole pipeline. */
66
+ export declare function runPipeline(options: PipelineOptions): Promise<PipelineResult>;
67
+ /** Stable hash of the canonical documents; used by `status`. */
68
+ export declare function documentHash(documents: ContextDocuments): string;
69
+ //# sourceMappingURL=scan-pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-pipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/scan-pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIhG,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAC;AASxF,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC9F,OAAO,EAAgB,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAExF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,qEAAqE;IACrE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,kEAAkE;IAClE,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,GAAG,EAAE;QAAE,YAAY,EAAE,eAAe,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAChE,WAAW,EAAE,oBAAoB,CAAC;CACnC;AAED,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,CAmBvE;AA8DD,+BAA+B;AAC/B,wBAAsB,WAAW,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwJnF;AAmDD,gEAAgE;AAChE,wBAAgB,YAAY,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAEhE"}