@cat-factory/kernel 0.179.0 → 0.182.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 (35) hide show
  1. package/dist/domain/errors.d.ts +47 -1
  2. package/dist/domain/errors.d.ts.map +1 -1
  3. package/dist/domain/errors.js +55 -0
  4. package/dist/domain/errors.js.map +1 -1
  5. package/dist/domain/validation-detection.d.ts +101 -0
  6. package/dist/domain/validation-detection.d.ts.map +1 -0
  7. package/dist/domain/validation-detection.js +166 -0
  8. package/dist/domain/validation-detection.js.map +1 -0
  9. package/dist/domain/validation-detectors.d.ts +40 -0
  10. package/dist/domain/validation-detectors.d.ts.map +1 -0
  11. package/dist/domain/validation-detectors.js +441 -0
  12. package/dist/domain/validation-detectors.js.map +1 -0
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +3 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/ports/agent-context.d.ts +56 -0
  18. package/dist/ports/agent-context.d.ts.map +1 -1
  19. package/dist/ports/agent-search-queries.d.ts +19 -0
  20. package/dist/ports/agent-search-queries.d.ts.map +1 -1
  21. package/dist/ports/index.d.ts +5 -4
  22. package/dist/ports/index.d.ts.map +1 -1
  23. package/dist/ports/index.js +2 -1
  24. package/dist/ports/index.js.map +1 -1
  25. package/dist/ports/llm-metrics.d.ts +127 -0
  26. package/dist/ports/llm-metrics.d.ts.map +1 -1
  27. package/dist/ports/llm-metrics.js +9 -0
  28. package/dist/ports/llm-metrics.js.map +1 -1
  29. package/dist/ports/provisioning-log-repositories.d.ts +23 -2
  30. package/dist/ports/provisioning-log-repositories.d.ts.map +1 -1
  31. package/dist/ports/repositories.d.ts +72 -1
  32. package/dist/ports/repositories.d.ts.map +1 -1
  33. package/dist/ports/repositories.js +21 -1
  34. package/dist/ports/repositories.js.map +1 -1
  35. package/package.json +2 -2
@@ -0,0 +1,441 @@
1
+ import { parse as parseYaml } from 'yaml';
2
+ import { check, ecosystem } from './validation-detection.js';
3
+ // ---------------------------------------------------------------------------
4
+ // PRE-PR VALIDATION AUTODETECTION — the per-ecosystem rules.
5
+ //
6
+ // One detector per ecosystem, each a pure `RepoView → EcosystemDetection | null`. The
7
+ // composition, ordering and label rules live in `validation-detection.ts`; this file holds
8
+ // only the knowledge of what each ecosystem's conventions ARE, so adding an ecosystem is a
9
+ // new function plus an entry in {@link LANGUAGE_DETECTORS} (and a `ValidationEcosystem`
10
+ // member in `@cat-factory/contracts`, whose picklist the typecheck holds you to).
11
+ //
12
+ // Every rule follows the governing principle stated in `validation-detection.ts`: suggest
13
+ // what the repo DECLARES (a script, a target, a checked-in tool config) or what is the
14
+ // ecosystem's canonical, non-opinionated verification. Opinionated gates the repo has never
15
+ // run are gated on their own config file.
16
+ // ---------------------------------------------------------------------------
17
+ /**
18
+ * The root manifests whose CONTENT the reader fetches (everything else is presence-only).
19
+ * Bounded on purpose: the reader turns this into one file read per entry that actually
20
+ * exists, so a new entry here is a new round trip on every detection.
21
+ */
22
+ export const VALIDATION_DETECTION_CONTENT_FILES = [
23
+ 'package.json',
24
+ 'composer.json',
25
+ 'pyproject.toml',
26
+ 'Makefile',
27
+ 'makefile',
28
+ 'GNUmakefile',
29
+ 'justfile',
30
+ 'Justfile',
31
+ '.justfile',
32
+ 'Taskfile.yml',
33
+ 'Taskfile.yaml',
34
+ ];
35
+ // ---- shared helpers -------------------------------------------------------
36
+ /**
37
+ * Whether a TOML document declares `[section]` or any `[section.sub]` beneath it. Kernel
38
+ * carries no TOML parser and a full one would be a dependency bought for four `pyproject`
39
+ * lookups; a section header is anchored and unambiguous enough to match directly. A header
40
+ * inside a multi-line string would be a false positive — harmless here, since the worst
41
+ * outcome is one extra suggested check the operator deletes.
42
+ */
43
+ function hasTomlSection(content, section) {
44
+ if (!content)
45
+ return false;
46
+ const escaped = section.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
47
+ return new RegExp(String.raw `^\s*\[\s*${escaped}(\.[^\]]*)?\s*\]`, 'm').test(content);
48
+ }
49
+ /** A manifest's `scripts` map, keeping only the string entries (npm and composer share the shape). */
50
+ function scriptsOf(manifest) {
51
+ const raw = manifest?.scripts;
52
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
53
+ return {};
54
+ const out = {};
55
+ for (const [name, value] of Object.entries(raw)) {
56
+ if (typeof value === 'string')
57
+ out[name] = value;
58
+ }
59
+ return out;
60
+ }
61
+ /**
62
+ * The first declared script from `candidates`, skipping `npm init`'s placeholder `test`
63
+ * (`echo "Error: no test specified" && exit 1`) — suggesting it would produce a check that
64
+ * fails every run of a repo that simply has no tests.
65
+ */
66
+ function firstScript(scripts, candidates) {
67
+ for (const name of candidates) {
68
+ const body = scripts[name];
69
+ if (body === undefined)
70
+ continue;
71
+ if (/no test specified/i.test(body))
72
+ continue;
73
+ return name;
74
+ }
75
+ return null;
76
+ }
77
+ // ---- Node -----------------------------------------------------------------
78
+ /**
79
+ * Script names per role, most-specific first.
80
+ *
81
+ * The `test` order is deliberate: a CI/run-once variant is preferred over bare `test`,
82
+ * because a `test` script that is plain `vitest`/`jest --watch` never exits and would be
83
+ * killed by the per-command watchdog 15 minutes later — a repo that has both almost always
84
+ * means the explicit one. A repo with only a watch-mode `test` still gets it suggested; the
85
+ * operator sees the command before saving.
86
+ */
87
+ const NODE_SCRIPTS = {
88
+ format: ['format:check', 'fmt:check', 'format-check', 'check-format', 'prettier:check'],
89
+ lint: ['lint', 'lint:ci', 'eslint', 'oxlint', 'biome:check'],
90
+ typecheck: ['typecheck', 'type-check', 'tsc', 'types'],
91
+ build: ['build', 'compile'],
92
+ test: ['test:ci', 'test:run', 'test', 'test:unit', 'tests'],
93
+ };
94
+ /**
95
+ * Which package manager the repo uses: its own `packageManager` field (corepack's
96
+ * declaration, the strongest evidence) first, then the lockfile, then npm. The install
97
+ * command asks for a REPRODUCIBLE install when a lockfile backs it, because that is what a
98
+ * verification checkout wants — and degrades to a plain install when there is none, rather
99
+ * than suggesting a command that errors out on a lockfile-less repo.
100
+ */
101
+ function nodePackageManager(view, manifest) {
102
+ const declared = typeof manifest?.packageManager === 'string' ? manifest.packageManager : '';
103
+ const named = declared.split('@')[0]?.trim().toLowerCase();
104
+ const isPnpm = named === 'pnpm' || (!named && view.has('pnpm-lock.yaml'));
105
+ if (isPnpm) {
106
+ return {
107
+ install: view.has('pnpm-lock.yaml') ? 'pnpm install --frozen-lockfile' : 'pnpm install',
108
+ run: (s) => `pnpm run ${s}`,
109
+ };
110
+ }
111
+ const isYarn = named === 'yarn' || (!named && view.has('yarn.lock'));
112
+ if (isYarn) {
113
+ // `--immutable` is Yarn 2+; Yarn 1 spells the same thing `--frozen-lockfile` and errors
114
+ // on the modern flag. `.yarnrc.yml` is the berry marker (Yarn 1 uses `.yarnrc`).
115
+ const berry = view.has('.yarnrc.yml') || /^yarn@[2-9]/.test(declared);
116
+ if (!view.has('yarn.lock'))
117
+ return { install: 'yarn install', run: (s) => `yarn run ${s}` };
118
+ return {
119
+ install: berry ? 'yarn install --immutable' : 'yarn install --frozen-lockfile',
120
+ run: (s) => `yarn run ${s}`,
121
+ };
122
+ }
123
+ const isBun = named === 'bun' || (!named && view.hasAny('bun.lockb', 'bun.lock'));
124
+ if (isBun) {
125
+ return {
126
+ install: view.hasAny('bun.lockb', 'bun.lock')
127
+ ? 'bun install --frozen-lockfile'
128
+ : 'bun install',
129
+ run: (s) => `bun run ${s}`,
130
+ };
131
+ }
132
+ return {
133
+ install: view.has('package-lock.json') ? 'npm ci' : 'npm install',
134
+ run: (s) => `npm run ${s}`,
135
+ };
136
+ }
137
+ /**
138
+ * Node: the scripts the repo declares ARE the evidence. Nothing is invented — a repo with
139
+ * no `lint` script gets no lint check, because guessing `npx eslint .` on a project that
140
+ * never configured eslint produces a check that fails for reasons no agent can fix.
141
+ */
142
+ export function detectNode(view) {
143
+ if (!view.has('package.json'))
144
+ return null;
145
+ const manifest = view.json('package.json');
146
+ const scripts = scriptsOf(manifest);
147
+ const pm = nodePackageManager(view, manifest);
148
+ const script = (role) => {
149
+ const name = firstScript(scripts, NODE_SCRIPTS[role]);
150
+ return name ? pm.run(name) : null;
151
+ };
152
+ return ecosystem('node', [
153
+ check('install', 'install', pm.install),
154
+ check('format', 'format', script('format')),
155
+ check('lint', 'lint', script('lint')),
156
+ check('typecheck', 'typecheck', script('typecheck')),
157
+ check('build', 'build', script('build')),
158
+ check('test', 'test', script('test')),
159
+ ]);
160
+ }
161
+ /** The dependency manager, resolved from its lockfile or its `pyproject` section. */
162
+ function pythonToolchain(view, pyproject) {
163
+ if (view.has('uv.lock') || hasTomlSection(pyproject, 'tool.uv')) {
164
+ return { install: view.has('uv.lock') ? 'uv sync --frozen' : 'uv sync', prefix: 'uv run ' };
165
+ }
166
+ if (view.has('poetry.lock') || hasTomlSection(pyproject, 'tool.poetry')) {
167
+ return { install: 'poetry install --no-interaction', prefix: 'poetry run ' };
168
+ }
169
+ if (view.has('pdm.lock') || hasTomlSection(pyproject, 'tool.pdm')) {
170
+ return { install: 'pdm install', prefix: 'pdm run ' };
171
+ }
172
+ if (view.has('Pipfile'))
173
+ return { install: 'pipenv install --dev', prefix: 'pipenv run ' };
174
+ if (view.has('requirements.txt')) {
175
+ return { install: 'pip install -r requirements.txt', prefix: '' };
176
+ }
177
+ if (view.hasAny('pyproject.toml', 'setup.py'))
178
+ return { install: 'pip install -e .', prefix: '' };
179
+ return { install: null, prefix: '' };
180
+ }
181
+ /** Whether the repo carries enough evidence that pytest is its runner. */
182
+ function usesPytest(view, pyproject) {
183
+ return (hasTomlSection(pyproject, 'tool.pytest') ||
184
+ view.hasAny('pytest.ini', 'conftest.py') ||
185
+ view.hasDir('tests') ||
186
+ view.hasDir('test'));
187
+ }
188
+ export function detectPython(view) {
189
+ if (!view.hasAny('pyproject.toml', 'requirements.txt', 'setup.py', 'setup.cfg', 'tox.ini', 'Pipfile')) {
190
+ return null;
191
+ }
192
+ const pyproject = view.read('pyproject.toml');
193
+ const { install, prefix } = pythonToolchain(view, pyproject);
194
+ const ruff = hasTomlSection(pyproject, 'tool.ruff') || view.hasAny('ruff.toml', '.ruff.toml');
195
+ const black = hasTomlSection(pyproject, 'tool.black');
196
+ const mypy = hasTomlSection(pyproject, 'tool.mypy') || view.hasAny('mypy.ini', '.mypy.ini');
197
+ const pyright = hasTomlSection(pyproject, 'tool.pyright') || view.has('pyrightconfig.json');
198
+ // `tox` orchestrates its own envs and typically runs the suite itself, so suggesting it
199
+ // ALONGSIDE a bare pytest would run everything twice.
200
+ const test = view.has('tox.ini') ? 'tox' : usesPytest(view, pyproject) ? `${prefix}pytest` : null;
201
+ return ecosystem('python', [
202
+ check('install', 'install', install),
203
+ check('format', 'format', ruff ? `${prefix}ruff format --check .` : black ? `${prefix}black --check .` : null),
204
+ check('lint', 'lint', ruff ? `${prefix}ruff check .` : null),
205
+ check('typecheck', 'typecheck', mypy ? `${prefix}mypy .` : pyright ? `${prefix}pyright` : null),
206
+ check('test', 'test', test),
207
+ ]);
208
+ }
209
+ // ---- Go / Rust ------------------------------------------------------------
210
+ export function detectGo(view) {
211
+ if (!view.has('go.mod'))
212
+ return null;
213
+ const golangci = view.hasAny('.golangci.yml', '.golangci.yaml', '.golangci.toml', '.golangci.json');
214
+ return ecosystem('go', [
215
+ // `go vet` ships with the toolchain and is deliberately low-false-positive, so it is
216
+ // safe to suggest unconditionally; `golangci-lint` is opinionated and only suggested
217
+ // when the repo checked in its config (and therefore already runs it).
218
+ check('lint', 'lint', golangci ? 'golangci-lint run ./...' : 'go vet ./...'),
219
+ check('build', 'build', 'go build ./...'),
220
+ check('test', 'test', 'go test ./...'),
221
+ ]);
222
+ }
223
+ export function detectRust(view) {
224
+ if (!view.has('Cargo.toml'))
225
+ return null;
226
+ const rustfmt = view.hasAny('rustfmt.toml', '.rustfmt.toml');
227
+ const clippy = view.hasAny('clippy.toml', '.clippy.toml');
228
+ return ecosystem('rust', [
229
+ // Both gates are all-or-nothing on a codebase that never ran them, so each needs the
230
+ // repo's own config as evidence. `cargo test` compiles the crate, so no separate build.
231
+ check('format', 'format', rustfmt ? 'cargo fmt --all -- --check' : null),
232
+ check('lint', 'lint', clippy ? 'cargo clippy --all-targets -- -D warnings' : null),
233
+ check('test', 'test', view.has('Cargo.lock') ? 'cargo test --locked' : 'cargo test'),
234
+ ]);
235
+ }
236
+ // ---- JVM / .NET -----------------------------------------------------------
237
+ export function detectMaven(view) {
238
+ if (!view.has('pom.xml'))
239
+ return null;
240
+ // The wrapper pins the Maven version the repo was built against; prefer it when present.
241
+ const mvn = view.has('mvnw') ? './mvnw' : 'mvn';
242
+ // `verify` is the lifecycle phase that compiles, tests and runs the configured checks —
243
+ // one command covering what separate build/test suggestions would duplicate.
244
+ return ecosystem('maven', [check('test', 'verify', `${mvn} -B --no-transfer-progress verify`)]);
245
+ }
246
+ export function detectGradle(view) {
247
+ if (!view.hasAny('build.gradle', 'build.gradle.kts', 'settings.gradle', 'settings.gradle.kts')) {
248
+ return null;
249
+ }
250
+ const gradle = view.has('gradlew') ? './gradlew' : 'gradle';
251
+ // Gradle's `build` task depends on `check` (which runs the tests), so it is the single
252
+ // verification command; `--no-daemon` keeps the container from leaving a daemon behind.
253
+ return ecosystem('gradle', [check('build', 'build', `${gradle} --no-daemon build`)]);
254
+ }
255
+ export function detectDotnet(view) {
256
+ const hasProject = ['.sln', '.slnx', '.csproj', '.fsproj', '.vbproj'].some((s) => view.hasFileWithSuffix(s));
257
+ if (!hasProject)
258
+ return null;
259
+ // `dotnet test` restores and builds before running the suite, so a separate build check
260
+ // would compile the solution twice for no extra signal.
261
+ return ecosystem('dotnet', [
262
+ check('install', 'restore', 'dotnet restore'),
263
+ check('test', 'test', 'dotnet test --nologo'),
264
+ ]);
265
+ }
266
+ // ---- Ruby / PHP / Elixir --------------------------------------------------
267
+ export function detectRuby(view) {
268
+ if (!view.has('Gemfile'))
269
+ return null;
270
+ const rubocop = view.hasAny('.rubocop.yml', '.rubocop.yaml');
271
+ const rspec = view.has('.rspec') || view.hasDir('spec');
272
+ const rake = view.has('Rakefile') && view.hasDir('test');
273
+ return ecosystem('ruby', [
274
+ check('install', 'install', 'bundle install'),
275
+ check('lint', 'lint', rubocop ? 'bundle exec rubocop' : null),
276
+ check('test', 'test', rspec ? 'bundle exec rspec' : rake ? 'bundle exec rake test' : null),
277
+ ]);
278
+ }
279
+ /** Composer script names per role, most-specific first. */
280
+ const COMPOSER_SCRIPTS = {
281
+ lint: ['lint', 'cs-check', 'phpcs', 'check-style', 'cs'],
282
+ typecheck: ['phpstan', 'psalm', 'analyse', 'analyze', 'static-analysis'],
283
+ test: ['test', 'tests', 'phpunit'],
284
+ };
285
+ export function detectPhp(view) {
286
+ if (!view.has('composer.json'))
287
+ return null;
288
+ const scripts = scriptsOf(view.json('composer.json'));
289
+ const script = (role) => {
290
+ const name = firstScript(scripts, COMPOSER_SCRIPTS[role]);
291
+ return name ? `composer run-script ${name}` : null;
292
+ };
293
+ // A repo with a phpunit config but no composer script still has one obvious command.
294
+ const test = script('test') ?? (view.hasAny('phpunit.xml', 'phpunit.xml.dist') ? 'vendor/bin/phpunit' : null);
295
+ return ecosystem('php', [
296
+ check('install', 'install', 'composer install --no-interaction --prefer-dist'),
297
+ check('lint', 'lint', script('lint')),
298
+ check('typecheck', 'static analysis', script('typecheck')),
299
+ check('test', 'test', test),
300
+ ]);
301
+ }
302
+ export function detectElixir(view) {
303
+ if (!view.has('mix.exs'))
304
+ return null;
305
+ return ecosystem('elixir', [
306
+ check('install', 'deps', 'mix deps.get'),
307
+ check('format', 'format', view.has('.formatter.exs') ? 'mix format --check-formatted' : null),
308
+ check('lint', 'lint', view.has('.credo.exs') ? 'mix credo --strict' : null),
309
+ check('test', 'test', 'mix test'),
310
+ ]);
311
+ }
312
+ // ---- Task runners (the fallback tier) -------------------------------------
313
+ /**
314
+ * Target/recipe names per role. `ci`, `check` and `verify` are UMBRELLA names — a repo that
315
+ * declares one means it to run everything, so it is suggested ALONE (see
316
+ * {@link fromTaskRunner}) rather than beside the individual targets it already invokes.
317
+ */
318
+ const TASK_TARGETS = {
319
+ umbrella: ['ci', 'check', 'verify', 'validate'],
320
+ format: ['format-check', 'fmt-check', 'format', 'fmt'],
321
+ lint: ['lint'],
322
+ typecheck: ['typecheck', 'type-check'],
323
+ build: ['build'],
324
+ test: ['test'],
325
+ };
326
+ /**
327
+ * Shape a task-runner ecosystem from the target names a manifest declares. Shared by make,
328
+ * just and task because the three differ only in how their names are extracted.
329
+ */
330
+ function fromTaskRunner(id, invoke, declared) {
331
+ const pick = (role) => TASK_TARGETS[role].find((t) => declared.has(t)) ?? null;
332
+ const run = (role) => {
333
+ const target = pick(role);
334
+ return target ? invoke(target) : null;
335
+ };
336
+ const umbrella = pick('umbrella');
337
+ if (umbrella)
338
+ return ecosystem(id, [check('test', umbrella, invoke(umbrella))]);
339
+ return ecosystem(id, [
340
+ check('format', 'format', run('format')),
341
+ check('lint', 'lint', run('lint')),
342
+ check('typecheck', 'typecheck', run('typecheck')),
343
+ check('build', 'build', run('build')),
344
+ check('test', 'test', run('test')),
345
+ ]);
346
+ }
347
+ /**
348
+ * Make target names: a line-leading name followed by `:` (but not `:=`, a variable
349
+ * assignment). `.PHONY` and friends are excluded by requiring an alphanumeric first
350
+ * character, and a recipe body is excluded by anchoring at column 0 (recipe lines are
351
+ * tab-indented by definition).
352
+ */
353
+ function makeTargets(content) {
354
+ const names = new Set();
355
+ for (const match of content.matchAll(/^([A-Za-z0-9][A-Za-z0-9._/-]*)\s*:(?!=)/gm)) {
356
+ if (match[1])
357
+ names.add(match[1].toLowerCase());
358
+ }
359
+ return names;
360
+ }
361
+ /** Just recipe names: a line-leading name, optional parameters, then `:`. */
362
+ function justRecipes(content) {
363
+ const names = new Set();
364
+ for (const match of content.matchAll(/^@?([A-Za-z0-9][A-Za-z0-9_-]*)[^:\n]*:(?!=)/gm)) {
365
+ if (match[1])
366
+ names.add(match[1].toLowerCase());
367
+ }
368
+ return names;
369
+ }
370
+ /**
371
+ * Task (Taskfile.dev) task names — the keys of the top-level `tasks:` map. Parsed with the
372
+ * real YAML parser rather than a regex: a Taskfile's task bodies are themselves maps with
373
+ * nested keys, so an indentation-based match would pick up `cmds`/`deps` as task names.
374
+ */
375
+ function taskfileTasks(content) {
376
+ const names = new Set();
377
+ let doc;
378
+ try {
379
+ doc = parseYaml(content);
380
+ }
381
+ catch {
382
+ // silent-catch-ok: an unparseable Taskfile is a detection MISS — the operator still
383
+ // gets every other ecosystem's suggestions rather than an error about their YAML.
384
+ return names;
385
+ }
386
+ const tasks = doc?.tasks;
387
+ if (typeof tasks !== 'object' || tasks === null || Array.isArray(tasks))
388
+ return names;
389
+ for (const name of Object.keys(tasks))
390
+ names.add(name.toLowerCase());
391
+ return names;
392
+ }
393
+ export function detectMake(view) {
394
+ const content = view.readAny('Makefile', 'makefile', 'GNUmakefile');
395
+ if (content === undefined)
396
+ return null;
397
+ return fromTaskRunner('make', (t) => `make ${t}`, makeTargets(content));
398
+ }
399
+ export function detectJust(view) {
400
+ const content = view.readAny('justfile', 'Justfile', '.justfile');
401
+ if (content === undefined)
402
+ return null;
403
+ return fromTaskRunner('just', (t) => `just ${t}`, justRecipes(content));
404
+ }
405
+ export function detectTask(view) {
406
+ const content = view.readAny('Taskfile.yml', 'Taskfile.yaml');
407
+ if (content === undefined)
408
+ return null;
409
+ return fromTaskRunner('task', (t) => `task ${t}`, taskfileTasks(content));
410
+ }
411
+ // ---- registries -----------------------------------------------------------
412
+ /** Language ecosystems, in the order their suggestions are presented. */
413
+ export const LANGUAGE_DETECTORS = [
414
+ detectNode,
415
+ detectPython,
416
+ detectGo,
417
+ detectRust,
418
+ detectMaven,
419
+ detectGradle,
420
+ detectDotnet,
421
+ detectRuby,
422
+ detectPhp,
423
+ detectElixir,
424
+ ];
425
+ /** Generic task runners — consulted only when no language ecosystem matched. */
426
+ export const TASK_RUNNER_DETECTORS = [
427
+ detectMake,
428
+ detectJust,
429
+ detectTask,
430
+ ];
431
+ /**
432
+ * The registries as `detectValidationChecks` takes them. Passed explicitly rather than
433
+ * defaulted inside the composer, which would make `validation-detection.ts` import this
434
+ * module and this module import it back — and which would also hide the seam a deployment
435
+ * would extend to teach the detector its own house convention.
436
+ */
437
+ export const DEFAULT_VALIDATION_DETECTORS = {
438
+ language: LANGUAGE_DETECTORS,
439
+ taskRunner: TASK_RUNNER_DETECTORS,
440
+ };
441
+ //# sourceMappingURL=validation-detectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-detectors.js","sourceRoot":"","sources":["../../src/domain/validation-detectors.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  export * from './domain/types.js';
2
- export { DomainError, NotFoundError, ValidationError, ConflictError, CredentialRequiredError, ForbiddenError, RunContendedError, ReviewContendedError, assertFound, getErrorMessage, getErrorReason, type DomainErrorCode, type CredentialRequiredReason, type ConflictReason, } from './domain/errors.js';
2
+ export { DomainError, NotFoundError, ValidationError, ConflictError, CredentialRequiredError, ForbiddenError, UnavailableError, UnauthorizedError, RateLimitedError, RunContendedError, ReviewContendedError, assertFound, getErrorMessage, getErrorReason, type DomainErrorCode, type CredentialRequiredReason, type ConflictReason, } from './domain/errors.js';
3
3
  export { sameSubtasks, sameSubtaskItems, parseSubtasks } from './domain/subtasks.logic.js';
4
4
  export { type CachePolicy, providerCachePolicy, providerCachesPrompts, } from './domain/cache-policy.js';
5
5
  export { resolveWritebackFlag } from './domain/writeback.js';
6
6
  export { CHANGE_CLASS_RANK, classifyChangedPath, classifyChangedFiles, resolveMergeClassRule, type ChangeClassification, } from './domain/change-class.js';
7
7
  export { extractJson } from './domain/llm-output.js';
8
+ export { detectValidationChecks, RepoView, type DetectedCheck, type ValidationDetectionResult, type EcosystemDetection, type EcosystemDetector, type RepoRootEntry, type RepoSurface, type ValidationCheckRole, } from './domain/validation-detection.js';
9
+ export { DEFAULT_VALIDATION_DETECTORS, LANGUAGE_DETECTORS, TASK_RUNNER_DETECTORS, VALIDATION_DETECTION_CONTENT_FILES, } from './domain/validation-detectors.js';
8
10
  export { UNATTRIBUTED_CALL_PHASE, normalizeCallPhase } from './domain/llm-phase.js';
9
11
  export { bugHuntScore, parseBugHuntVerdicts, rankBugCandidates } from './domain/bug-hunt-logic.js';
10
12
  export { BLOCK_TYPE_LABEL, DEFAULT_RISK_POLICY, DEFAULT_MERGE_CLASS_RULES, RISK_POLICY_SEEDS, seedRiskPolicies, type RiskPolicySeed, DEFAULT_CI_MAX_ATTEMPTS, DEFAULT_MAX_REQUIREMENT_ITERATIONS, CONTEXT_BUDGET, DEFAULT_WORKSPACE_SETTINGS, DEFAULT_MODEL_PRESETS, DEFAULT_MODEL_PRESET, DEFAULT_MODEL_PRESET_ID, MODEL_PRESET_SEED_IDS, seedModelPresets, modelForKindFromPreset, type ModelPresetSeed, } from './domain/catalog.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,GACpB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EACL,KAAK,WAAW,EAChB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,4BAA4B,EAC5B,kBAAkB,EAClB,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAClG,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,cAAc,EACnB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,EAClC,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,iCAAiC,EACjC,6BAA6B,EAC7B,6BAA6B,EAC7B,+BAA+B,EAC/B,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AAG5E,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAIxF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAMzF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAA;AAM1F,OAAO,EACL,KAAK,4BAA4B,EACjC,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,wCAAwC,CAAA;AAM/C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,oCAAoC,CAAA;AAO3C,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAKhC,OAAO,EACL,KAAK,aAAa,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AAMtC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,6BAA6B,CAAA;AAKpC,OAAO,EACL,sBAAsB,EACtB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,6BAA6B,CAAA;AAIpC,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,8BAA8B,EAC9B,kBAAkB,EAClB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,WAAW,EACX,eAAe,EACf,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,4BAA4B,EAC5B,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAG/B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,OAAO,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAIhC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,gCAAgC,CAAA;AAEvC,OAAO,EACL,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC;;;;;;GAMG;AACH,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,UAAU,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAClB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,sBAAsB,EAC3B,YAAY,EACZ,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,EAC5B,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,SAAS,EACT,sBAAsB,GACvB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,GACjC,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -1,12 +1,14 @@
1
1
  // Shared vocabulary, pure logic, and port interfaces for the domain packages
2
2
  // (@cat-factory/orchestration, @cat-factory/integrations, …).
3
3
  export * from './domain/types.js';
4
- export { DomainError, NotFoundError, ValidationError, ConflictError, CredentialRequiredError, ForbiddenError, RunContendedError, ReviewContendedError, assertFound, getErrorMessage, getErrorReason, } from './domain/errors.js';
4
+ export { DomainError, NotFoundError, ValidationError, ConflictError, CredentialRequiredError, ForbiddenError, UnavailableError, UnauthorizedError, RateLimitedError, RunContendedError, ReviewContendedError, assertFound, getErrorMessage, getErrorReason, } from './domain/errors.js';
5
5
  export { sameSubtasks, sameSubtaskItems, parseSubtasks } from './domain/subtasks.logic.js';
6
6
  export { providerCachePolicy, providerCachesPrompts, } from './domain/cache-policy.js';
7
7
  export { resolveWritebackFlag } from './domain/writeback.js';
8
8
  export { CHANGE_CLASS_RANK, classifyChangedPath, classifyChangedFiles, resolveMergeClassRule, } from './domain/change-class.js';
9
9
  export { extractJson } from './domain/llm-output.js';
10
+ export { detectValidationChecks, RepoView, } from './domain/validation-detection.js';
11
+ export { DEFAULT_VALIDATION_DETECTORS, LANGUAGE_DETECTORS, TASK_RUNNER_DETECTORS, VALIDATION_DETECTION_CONTENT_FILES, } from './domain/validation-detectors.js';
10
12
  export { UNATTRIBUTED_CALL_PHASE, normalizeCallPhase } from './domain/llm-phase.js';
11
13
  export { bugHuntScore, parseBugHuntVerdicts, rankBugCandidates } from './domain/bug-hunt-logic.js';
12
14
  export { BLOCK_TYPE_LABEL, DEFAULT_RISK_POLICY, DEFAULT_MERGE_CLASS_RULES, RISK_POLICY_SEEDS, seedRiskPolicies, DEFAULT_CI_MAX_ATTEMPTS, DEFAULT_MAX_REQUIREMENT_ITERATIONS, CONTEXT_BUDGET, DEFAULT_WORKSPACE_SETTINGS, DEFAULT_MODEL_PRESETS, DEFAULT_MODEL_PRESET, DEFAULT_MODEL_PRESET_ID, MODEL_PRESET_SEED_IDS, seedModelPresets, modelForKindFromPreset, } from './domain/catalog.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,67 @@ export type RecordAgentContextInput = Omit<AgentContextSnapshot, 'id' | 'created
14
14
  export interface AgentContextRecorder {
15
15
  record(input: RecordAgentContextInput): Promise<void>;
16
16
  }
17
+ /**
18
+ * A snapshot reduced to its IDENTITY plus the SIZE of each body family — the projection the
19
+ * remote debugging surface pages over.
20
+ *
21
+ * A snapshot row can be megabytes (it holds the whole composed system prompt plus the full
22
+ * content of every injected context file), so a page of them must never carry bodies. Every
23
+ * size here is a SQL `length()`, so listing a run's dispatches reads no body bytes at all;
24
+ * the caller picks the one it wants and point-reads it.
25
+ *
26
+ * Sizes, not element counts: counting the entries of the `fragments` / `contextFiles` JSON
27
+ * columns would mean either parsing them (which reads the very bodies this projection exists
28
+ * to avoid) or calling `json_array_length` on a column that would fail the WHOLE page if a
29
+ * single row were ever malformed. A length answers "is there a lot in here" just as well.
30
+ */
31
+ export interface AgentContextSnapshotIndex {
32
+ id: string;
33
+ agentKind: string;
34
+ stepIndex: number;
35
+ createdAt: number;
36
+ model: string | null;
37
+ harness: string | null;
38
+ systemPromptChars: number;
39
+ userPromptChars: number;
40
+ /** Serialized length of the folded best-practice fragments. */
41
+ fragmentsChars: number;
42
+ /** Serialized length of the injected `.cat-context/*` files (bodies included). */
43
+ contextFilesChars: number;
44
+ }
45
+ /** A bounded, keyset-paginated query over one run's captured dispatches. */
46
+ export interface AgentContextIndexQuery {
47
+ executionId: string;
48
+ /** Narrow to one step's dispatches (a retried step records one snapshot per attempt). */
49
+ stepIndex?: number;
50
+ limit: number;
51
+ /** EXCLUSIVE keyset on the `(createdAt, id)` composite the ordering uses. */
52
+ cursor?: {
53
+ createdAt: number;
54
+ id: string;
55
+ };
56
+ }
17
57
  export interface AgentContextSnapshotRepository {
18
58
  /** Append one captured dispatch context. */
19
59
  record(snapshot: AgentContextSnapshot): Promise<void>;
20
60
  /** Snapshots recorded for a run, newest first. */
21
61
  listByExecution(workspaceId: string, executionId: string): Promise<AgentContextSnapshot[]>;
62
+ /**
63
+ * One BOUNDED page of {@link AgentContextSnapshotIndex} rows for a run, newest first —
64
+ * identity plus sizes, never a body. See the type's note for why this is not just
65
+ * {@link AgentContextSnapshotRepository.listByExecution} with a limit.
66
+ */
67
+ listIndex(workspaceId: string, query: AgentContextIndexQuery): Promise<AgentContextSnapshotIndex[]>;
68
+ /**
69
+ * One snapshot by id, with its bodies. Whole rather than sliced: the fragment and
70
+ * context-file bodies live inside JSON columns, so there is no portable way to budget them
71
+ * per element in SQL — and the recorder already caps a snapshot at a few megabytes, which
72
+ * is an acceptable single point read. The CALLER applies the per-body budget it promised
73
+ * its own client. Workspace-scoped, so a foreign id reads as missing.
74
+ */
75
+ get(workspaceId: string, id: string): Promise<AgentContextSnapshot | null>;
76
+ /** How many dispatches the run captured — one indexed COUNT, no rows read. */
77
+ countByExecution(workspaceId: string, executionId: string): Promise<number>;
22
78
  /**
23
79
  * Retention: delete rows older than `epochMs` (exclusive), returning how many were
24
80
  * removed. The full prompt + injected-file bodies make this heavy, so it is pruned
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../../src/ports/agent-context.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAA;AAEpF;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD;AAED,MAAM,WAAW,8BAA8B;IAC7C,4CAA4C;IAC5C,MAAM,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,kDAAkD;IAClD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAC1F;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD"}
1
+ {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../../src/ports/agent-context.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAA;AAEpF;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,CAAA;IACtB,kFAAkF;IAClF,iBAAiB,EAAE,MAAM,CAAA;CAC1B;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C;AAED,MAAM,WAAW,8BAA8B;IAC7C,4CAA4C;IAC5C,MAAM,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACrD,kDAAkD;IAClD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAA;IAC1F;;;;OAIG;IACH,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAAA;IACvC;;;;;;OAMG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAA;IAC1E,8EAA8E;IAC9E,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3E;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD"}