@agentskit/doc-bridge 1.7.45 → 1.9.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 (213) hide show
  1. package/CHANGELOG.md +465 -0
  2. package/CONTRIBUTING.md +23 -0
  3. package/README.md +87 -40
  4. package/SECURITY.md +7 -0
  5. package/action.yml +1 -1
  6. package/bin/ak-docs.js +2 -2
  7. package/bin/ak-verify.js +13 -7
  8. package/dist/cli/program.d.ts +3 -1
  9. package/dist/cli/program.js +15861 -6223
  10. package/dist/cli/program.js.map +1 -1
  11. package/dist/config/index.d.ts +1 -1
  12. package/dist/config/index.js +86 -6
  13. package/dist/config/index.js.map +1 -1
  14. package/dist/{index-BUL0q7s8.d.ts → index-Beor6Yhi.d.ts} +133 -1
  15. package/dist/index.d.ts +9871 -1062
  16. package/dist/index.js +16126 -6125
  17. package/dist/index.js.map +1 -1
  18. package/docs/MARKETPLACE.md +1 -1
  19. package/docs/PRD-documentation-efficiency-study.md +406 -0
  20. package/docs/PRD-knowledge-retrieval-and-enrichment.md +466 -0
  21. package/docs/adr/0002-documentation-audit-boundary.md +22 -0
  22. package/docs/adr/0003-study-protocol-and-historical-evidence.md +40 -0
  23. package/docs/adr/0004-controlled-study-runner.md +25 -0
  24. package/docs/adr/0005-documentation-quality-and-criticality.md +20 -0
  25. package/docs/adr/0006-registry-semantic-grounding.md +20 -0
  26. package/docs/adr/0007-longitudinal-study-metrics.md +21 -0
  27. package/docs/adr/0008-study-verification-boundary.md +21 -0
  28. package/docs/adr/0009-study-provider-cli-adapter.md +25 -0
  29. package/docs/agent-corpus/INDEX.md +12 -1
  30. package/docs/agent-corpus/OVERVIEW.md +25 -0
  31. package/docs/agent-corpus/chat.md +5 -1
  32. package/docs/agent-corpus/cli.md +16 -0
  33. package/docs/agent-corpus/conformance.md +12 -0
  34. package/docs/agent-corpus/doc-bridge.md +47 -0
  35. package/docs/agent-corpus/doctor.md +8 -0
  36. package/docs/agent-corpus/gates.md +4 -0
  37. package/docs/agent-corpus/mcp.md +13 -0
  38. package/docs/agent-corpus/memory.md +4 -0
  39. package/docs/agent-corpus/query.md +33 -0
  40. package/docs/bench/README.md +122 -0
  41. package/docs/bench/retrieval-baseline-v1.json +28 -0
  42. package/docs/bench/retrieval-suite-v1.json +1033 -0
  43. package/docs/chat-and-rag.md +3 -2
  44. package/docs/for-agents.md +9 -1
  45. package/docs/getting-started.md +4 -11
  46. package/docs/guides/gate-ci.md +11 -1
  47. package/docs/guides/install-and-run.md +9 -65
  48. package/docs/index.md +22 -1
  49. package/docs/knowledge-engine-runbook.md +38 -3
  50. package/docs/landing/assets/context-payload-reduction.svg +21 -0
  51. package/docs/landing/assets/controlled-ab-comparison.svg +30 -0
  52. package/docs/landing/index.html +119 -5
  53. package/docs/loop-workflow.md +117 -0
  54. package/docs/mcp.md +6 -1
  55. package/docs/parity/public-claims-v1.json +145 -0
  56. package/docs/playbook/doc-bridge-pattern.md +1 -1
  57. package/docs/query.md +90 -2
  58. package/docs/recipes/index-pipeline.md +1 -1
  59. package/docs/schemas/agent-handoff-v1.md +15 -0
  60. package/docs/schemas/doc-bridge-index-v1.md +65 -0
  61. package/docs/spec/benchmark-v1.md +33 -1
  62. package/docs/spec/cli.md +30 -10
  63. package/docs/spec/config-v1.md +147 -8
  64. package/docs/spec/documentation-audit-v1.md +61 -0
  65. package/docs/spec/enrichment-overlay-v1.md +241 -0
  66. package/docs/spec/graph-signals-v1.md +92 -0
  67. package/docs/spec/incremental-scan-v1.md +102 -0
  68. package/docs/spec/markdown-analyzer-v1.md +73 -0
  69. package/docs/spec/mcp-knowledge-tools-v1.md +147 -0
  70. package/docs/spec/measured-enrichment-v1.md +229 -0
  71. package/docs/spec/public-parity-v1.md +119 -0
  72. package/docs/spec/registry-agents.md +6 -0
  73. package/docs/spec/render-v1.md +122 -0
  74. package/docs/spec/retrieval-index-v1.md +164 -0
  75. package/docs/spec/study-metrics-v1.md +58 -0
  76. package/docs/spec/study-protocol-v1.md +46 -0
  77. package/docs/spec/study-provider-cli-v1.md +116 -0
  78. package/docs/spec/study-runner-v1.md +35 -0
  79. package/docs/spec/study-task-suite-v1.md +41 -0
  80. package/docs/spec/study-verification-v1.md +40 -0
  81. package/docs/study/README.md +84 -0
  82. package/docs/study/ab-adjudicated-cost-analysis-v1.md +29 -0
  83. package/docs/study/ab-adjudicated-cost-plan-v1.json +33 -0
  84. package/docs/study/ab-adjudicated-cost-plan-v2-v1.json +33 -0
  85. package/docs/study/ab-adjudicated-cost-result-v1.json +80 -0
  86. package/docs/study/ab-baseline-analysis-v1.md +21 -0
  87. package/docs/study/ab-baseline-plan-v1.json +33 -0
  88. package/docs/study/ab-baseline-recovery-plan-v1.json +33 -0
  89. package/docs/study/ab-baseline-result-v1.json +79 -0
  90. package/docs/study/documentation-audit-round-2026-08-31.json +183 -0
  91. package/docs/study/historical-evidence-v1.json +252 -0
  92. package/docs/study/observation-ledger-v1.json +30632 -0
  93. package/docs/study/phase3-task-coverage-v1.json +34 -0
  94. package/docs/study/phase4-public-pilot-ledger-v1.json +1344 -0
  95. package/docs/study/phase4-public-pilot-result-v1.json +52 -0
  96. package/docs/study/phase4-public-pilot-run-plan-v1.json +26 -0
  97. package/docs/study/phase4-public-pilot-task-suite-v1.json +71 -0
  98. package/docs/study/pilot-round-2026-08-31.json +46 -0
  99. package/docs/study/protocol-v1.json +90 -0
  100. package/docs/study/publication-gate-v1.md +45 -0
  101. package/docs/study/quality-scorecard-cycle-plan.md +545 -0
  102. package/docs/study/quality-scorecard-v1.json +38 -0
  103. package/docs/study/round-1-adjudicated-smoke-v1.json +30642 -0
  104. package/docs/study/round-1-instrumentation-plan-v1.md +39 -0
  105. package/docs/study/round-2-expanded-adjudication-v1.json +91 -0
  106. package/docs/study/round-2-expanded-validation-v1.md +58 -0
  107. package/docs/study/round-3-evidence-contract-v1.json +75 -0
  108. package/docs/study/round-3-evidence-contract-v1.md +57 -0
  109. package/docs/study/round-4-confirmation-v1.json +75 -0
  110. package/docs/study/round-4-confirmation-v1.md +55 -0
  111. package/docs/study/run-plan-v1.json +33 -0
  112. package/docs/study/semantic-adjudication-cycle-8.md +20 -0
  113. package/docs/study/task-suite-v1.json +96 -0
  114. package/docs/study/token-efficiency-plan-v1.md +337 -0
  115. package/docs/study/token-efficiency-protocol-v2.json +62 -0
  116. package/docs/study/verification-binding-v1.json +27 -0
  117. package/docs/validation-cycle-plan.md +14 -0
  118. package/docs/verification-harness.md +11 -6
  119. package/ecosystem-claims.json +2 -2
  120. package/ecosystem-upstream.json +2 -2
  121. package/ecosystem.json +4 -4
  122. package/mcpb/manifest.json +9 -1
  123. package/package.json +25 -6
  124. package/scripts/check-ecosystem-upstream.mjs +34 -6
  125. package/skills/doc-bridge-handoff/fixtures/synthetic-repo/docs/for-agents/packages/payments.md +7 -0
  126. package/skills/doc-bridge-handoff/scripts/resolve-handoff.mjs +1 -1
  127. package/src/agents/registry-adapter.ts +192 -24
  128. package/src/audit/documentation.ts +513 -0
  129. package/src/bench/baseline.ts +198 -0
  130. package/src/bench/overlay-delta.ts +139 -0
  131. package/src/bench/retrieval.ts +319 -0
  132. package/src/budget/compile.ts +91 -0
  133. package/src/budget/sections.ts +70 -0
  134. package/src/cli/program.ts +684 -74
  135. package/src/cli/usage.ts +71 -0
  136. package/src/config/defaults.ts +1 -0
  137. package/src/config/index.ts +4 -0
  138. package/src/config/schema.ts +117 -2
  139. package/src/conformance/documentation-standard-v1.ts +8 -6
  140. package/src/discovery/areas.ts +182 -0
  141. package/src/discovery/documentation.ts +211 -5
  142. package/src/discovery/identity.ts +24 -0
  143. package/src/discovery/incremental.ts +314 -0
  144. package/src/discovery/inputs.ts +110 -0
  145. package/src/discovery/markdown.ts +481 -0
  146. package/src/discovery/repository.ts +484 -101
  147. package/src/doctor/run-doctor.ts +244 -12
  148. package/src/enrich/approvals.ts +190 -0
  149. package/src/enrich/cache.ts +93 -0
  150. package/src/enrich/context-pack.ts +272 -0
  151. package/src/enrich/overlay.ts +255 -0
  152. package/src/enrich/review.ts +106 -0
  153. package/src/enrich/stage.ts +374 -0
  154. package/src/enrich/stats.ts +100 -0
  155. package/src/enrich/validate.ts +410 -0
  156. package/src/federation/llms.ts +2 -4
  157. package/src/findings/report.ts +103 -0
  158. package/src/graph/build.ts +356 -0
  159. package/src/graph/memory.ts +208 -0
  160. package/src/index-builder/build-handoffs.ts +22 -11
  161. package/src/index-builder/build-index.ts +132 -3
  162. package/src/index-builder/llms-txt.ts +48 -8
  163. package/src/index-builder/project-corpus.ts +111 -0
  164. package/src/index.ts +630 -2
  165. package/src/lib/fuzzy-match.ts +235 -0
  166. package/src/mcp/knowledge.ts +554 -0
  167. package/src/mcp/server.ts +113 -18
  168. package/src/metrics/benchmark.ts +21 -0
  169. package/src/parity/check.ts +309 -0
  170. package/src/parity/claims.ts +259 -0
  171. package/src/parity/resolve.ts +160 -0
  172. package/src/query/handoff.ts +326 -0
  173. package/src/query/load-index.ts +53 -1
  174. package/src/query/query.ts +92 -59
  175. package/src/query/search.ts +289 -92
  176. package/src/query/text.ts +155 -0
  177. package/src/reconciliation/reconcile.ts +101 -10
  178. package/src/render/data.ts +356 -0
  179. package/src/render/engine.ts +398 -0
  180. package/src/render/generated.ts +77 -0
  181. package/src/render/render.ts +209 -0
  182. package/src/render/template-source.ts +52 -0
  183. package/src/render/templates.ts +289 -0
  184. package/src/report/html.ts +2 -2
  185. package/src/retrieval/bm25.ts +161 -0
  186. package/src/retrieval/project.ts +495 -0
  187. package/src/retrieval/rank.ts +383 -0
  188. package/src/retrieval/weights.ts +39 -0
  189. package/src/retriever/doc-bridge-retriever.ts +100 -15
  190. package/src/rules/engine.ts +30 -10
  191. package/src/schemas/agent-handoff.ts +56 -0
  192. package/src/schemas/budget.ts +37 -0
  193. package/src/schemas/doc-bridge-index.ts +53 -2
  194. package/src/schemas/enrichment.ts +369 -0
  195. package/src/schemas/json-schemas.ts +39 -2
  196. package/src/schemas/knowledge.ts +14 -1
  197. package/src/schemas/retrieval-index.ts +152 -0
  198. package/src/shims/graphology.d.ts +91 -0
  199. package/src/study/adjudication.ts +196 -0
  200. package/src/study/execution.ts +350 -0
  201. package/src/study/expectations.ts +219 -0
  202. package/src/study/metrics.ts +467 -0
  203. package/src/study/protocol.ts +271 -0
  204. package/src/study/provider-cli.ts +115 -0
  205. package/src/study/provider-telemetry.ts +47 -0
  206. package/src/study/quality-scorecard.ts +164 -0
  207. package/src/study/runner.ts +461 -0
  208. package/src/study/task-suite.ts +321 -0
  209. package/src/study/verification.ts +134 -0
  210. package/src/validate.ts +1 -4
  211. package/src/version.ts +1 -1
  212. package/src/workflow/engine.ts +36 -11
  213. package/scripts/verification-harness.mjs +0 -482
@@ -1,2 +1,2 @@
1
- export { A as AgentCorpusConfig, v as AgentCorpusConfigSchema, C as ConfigNotFoundError, w as ConformanceConfigSchema, D as DocBridgeConfigV1, d as DocBridgeConfigV1Schema, c as DocumentationStandardRuleId, e as DocumentationStandardRuleIdSchema, f as DocumentationStandardV1Config, g as DocumentationStandardV1ConfigSchema, E as EcosystemContractEvidenceSchema, H as HumanCorpusConfigSchema, x as ReconciliationConfig, y as ReconciliationConfigSchema, i as ReportConfig, j as ReportConfigSchema, q as applyConfigDefaults, r as defineConfig, s as loadConfig, t as projectRootFromConfigPath, u as resolveProjectRoot } from '../index-BUL0q7s8.js';
1
+ export { A as AgentCorpusConfig, x as AgentCorpusConfigSchema, C as ConfigNotFoundError, y as ConformanceConfigSchema, D as DocBridgeConfigV1, e as DocBridgeConfigV1Schema, a as DocumentationAuditConfig, f as DocumentationAuditConfigSchema, d as DocumentationStandardRuleId, g as DocumentationStandardRuleIdSchema, h as DocumentationStandardV1Config, i as DocumentationStandardV1ConfigSchema, E as EcosystemContractEvidenceSchema, H as HumanCorpusConfigSchema, z as ReconciliationConfig, B as ReconciliationConfigSchema, k as ReportConfig, l as ReportConfigSchema, F as RetrievalConfig, G as RetrievalConfigSchema, s as applyConfigDefaults, t as defineConfig, u as loadConfig, v as projectRootFromConfigPath, w as resolveProjectRoot } from '../index-Beor6Yhi.js';
2
2
  import 'zod';
@@ -63,7 +63,9 @@ var applyConfigDefaults = (config) => {
63
63
  "docbridge.diagnostics",
64
64
  "docbridge.relations",
65
65
  "docbridge.run",
66
- "docbridge.proposals"
66
+ "docbridge.proposals",
67
+ "knowledge.search",
68
+ "knowledge.lookup"
67
69
  ],
68
70
  transport: "stdio",
69
71
  ...config.surfaces?.mcp
@@ -206,13 +208,31 @@ var RulesConfigSchema = z.object({
206
208
  }).strict();
207
209
  var ReconciliationConfigSchema = z.object({
208
210
  /** Semantic comparison level. Raw discovery always keeps file-level relations. */
209
- scope: z.enum(["file", "module", "package"]).optional(),
211
+ scope: z.enum(["file", "module", "area", "package"]).optional(),
210
212
  /** Relation kinds that must have documentation declarations. Omit to require all observed kinds; [] disables this signal. */
211
213
  requiredRelationKinds: z.array(z.string().min(1).max(128)).max(128).optional(),
212
214
  /** Limit missing-declaration findings to relations whose endpoints are internal project entities. */
213
215
  requiredRelationTargets: z.enum(["all", "internal"]).optional(),
214
216
  includeOrphanedDocuments: z.boolean().optional()
215
217
  }).strict();
218
+ var DocumentationAuditConfigSchema = z.object({
219
+ /** Glob-like paths that should be compared for structure coverage. */
220
+ criticalPaths: z.array(z.string().min(1).max(512)).max(128).optional(),
221
+ /** Generated docs are checked for presence/freshness evidence only; content quality is skipped. */
222
+ generatedPaths: z.array(z.string().min(1).max(512)).max(128).optional(),
223
+ exclude: z.array(z.string().min(1).max(512)).max(128).optional(),
224
+ minWords: z.number().int().nonnegative().max(1e5).optional(),
225
+ requiredSections: z.array(z.string().min(1).max(128)).max(32).optional(),
226
+ requireExamples: z.boolean().optional(),
227
+ exactDuplicates: z.boolean().optional(),
228
+ defaultTier: z.enum(["tier-0", "tier-1", "tier-2"]).optional(),
229
+ tierRules: z.array(z.object({
230
+ pattern: z.string().min(1).max(512),
231
+ tier: z.enum(["tier-0", "tier-1", "tier-2"]),
232
+ critical: z.boolean().optional()
233
+ }).strict()).max(128).optional(),
234
+ requiredCriticalMetadata: z.array(z.enum(["owner", "lifecycle", "sourceOfTruth", "validationPath"])).max(4).optional()
235
+ }).strict();
216
236
  var AnalysisConfigSchema = z.object({
217
237
  plugins: z.array(
218
238
  z.object({
@@ -232,6 +252,15 @@ var AnalysisConfigSchema = z.object({
232
252
  }).strict()
233
253
  ).max(32).optional(),
234
254
  includeTestRuntimeWiring: z.boolean().optional()
255
+ }).strict().optional(),
256
+ /**
257
+ * How code areas are derived — the unit of architecture between a package and a file.
258
+ * `roots` names directories that contain areas rather than being one (`src` holds
259
+ * `src/query`); `depth` is how many levels below such a root an area sits.
260
+ */
261
+ areas: z.object({
262
+ depth: z.number().int().min(1).max(8).optional(),
263
+ roots: z.array(z.string().min(1).max(128)).max(32).optional()
235
264
  }).strict().optional()
236
265
  }).strict();
237
266
  var WorkflowConfigSchema = z.object({
@@ -272,9 +301,11 @@ var SurfacesConfigSchema = z.object({
272
301
  "docbridge.diagnostics",
273
302
  "docbridge.relations",
274
303
  "docbridge.run",
275
- "docbridge.proposals"
304
+ "docbridge.proposals",
305
+ "knowledge.search",
306
+ "knowledge.lookup"
276
307
  ])
277
- ).max(16).optional(),
308
+ ).max(18).optional(),
278
309
  transport: z.enum(["stdio", "http"]).optional(),
279
310
  http: z.object({
280
311
  port: z.number().int().min(1).max(65535).optional(),
@@ -282,6 +313,12 @@ var SurfacesConfigSchema = z.object({
282
313
  }).strict().optional()
283
314
  }).strict().optional()
284
315
  }).strict();
316
+ var EnrichmentRoleSchema = z.object({
317
+ enabled: z.boolean().optional(),
318
+ /** Defaults to `intelligence.registry.agentId`. */
319
+ agentId: z.string().min(1).max(256).optional(),
320
+ promptVersion: z.string().min(1).max(64).optional()
321
+ }).strict();
285
322
  var IntelligenceConfigSchema = z.object({
286
323
  enabled: z.boolean().optional(),
287
324
  adapter: z.object({
@@ -321,11 +358,28 @@ var IntelligenceConfigSchema = z.object({
321
358
  agentId: z.string().min(1).max(256).optional(),
322
359
  agentRoot: z.string().min(1).max(512).optional(),
323
360
  runnerModule: z.string().min(1).max(512).optional(),
361
+ cli: z.object({
362
+ /** Executable name or absolute path. Arguments are passed without a shell. */
363
+ command: z.string().min(1).max(512),
364
+ args: z.array(z.string().max(2048)).max(64).optional()
365
+ }).strict().optional(),
324
366
  deterministic: z.boolean().optional(),
325
367
  timeoutMs: z.number().int().positive().max(6e5).optional(),
368
+ maxInputBytes: z.number().int().positive().max(5e7).optional(),
326
369
  maxTokens: z.number().int().positive().max(1e6).optional(),
327
370
  maxResponseBytes: z.number().int().positive().max(1e7).optional(),
328
- maxConcurrency: z.number().int().positive().max(64).optional()
371
+ maxConcurrency: z.number().int().positive().max(64).optional(),
372
+ /** Byte budget of one enrichment context pack. Default 65536. */
373
+ maxPackBytes: z.number().int().min(4096).max(4e6).optional(),
374
+ /**
375
+ * Which installed agent plays which enrichment role. The default is the configured agent
376
+ * as curator only. The adjudicator must be a different identity from both others.
377
+ */
378
+ roles: z.object({
379
+ curator: EnrichmentRoleSchema.optional(),
380
+ reviewer: EnrichmentRoleSchema.optional(),
381
+ adjudicator: EnrichmentRoleSchema.optional()
382
+ }).strict().optional()
329
383
  }).strict().optional()
330
384
  }).strict();
331
385
  var FederationConfigSchema = z.object({
@@ -400,9 +454,30 @@ var DocumentationStandardV1ConfigSchema = z.object({
400
454
  seen.add(exception.ruleId);
401
455
  }
402
456
  });
457
+ var RetrievalConfigSchema = z.object({
458
+ corpus: z.object({
459
+ /** Project repository documents and modules into the index. On by default. */
460
+ enabled: z.boolean().optional()
461
+ }).strict().optional(),
462
+ weights: z.record(z.string().min(1).max(64), z.number().min(0).max(1e3)).optional(),
463
+ params: z.object({ k1: z.number().min(0).max(100).optional(), b: z.number().min(0).max(1).optional() }).strict().optional(),
464
+ benchmark: z.object({
465
+ /** The golden retrieval suite the doctor measures hit@3 against. `docs/bench/retrieval-suite-v1.json` by default. */
466
+ suite: z.string().min(1).max(512).optional()
467
+ }).strict().optional()
468
+ }).strict();
403
469
  var ConformanceConfigSchema = z.object({
404
470
  documentationStandardV1: DocumentationStandardV1ConfigSchema.optional()
405
471
  }).strict();
472
+ var RenderTemplateNameSchema = z.enum(["llms.txt", "area", "ownership", "change-digest", "overlay-review"]);
473
+ var RenderConfigSchema = z.object({
474
+ /**
475
+ * Project templates that replace the bundled ones, by template name, as paths relative to
476
+ * the project root. `ak-docs render <name> --print-template` prints the bundled template to
477
+ * start from.
478
+ */
479
+ templates: z.partialRecord(RenderTemplateNameSchema, z.string().min(1).max(512)).optional()
480
+ }).strict();
406
481
  var DocBridgeConfigV1Schema = z.object({
407
482
  schemaVersion: z.literal(CONFIG_SCHEMA_VERSION),
408
483
  project: z.object({
@@ -417,6 +492,7 @@ var DocBridgeConfigV1Schema = z.object({
417
492
  routing: RoutingConfigSchema.optional(),
418
493
  gates: GatesConfigSchema.optional(),
419
494
  reconciliation: ReconciliationConfigSchema.optional(),
495
+ audit: z.object({ documentation: DocumentationAuditConfigSchema.optional() }).strict().optional(),
420
496
  analysis: AnalysisConfigSchema.optional(),
421
497
  rules: RulesConfigSchema.optional(),
422
498
  workflow: WorkflowConfigSchema.optional(),
@@ -425,7 +501,9 @@ var DocBridgeConfigV1Schema = z.object({
425
501
  surfaces: SurfacesConfigSchema.optional(),
426
502
  intelligence: IntelligenceConfigSchema.optional(),
427
503
  federation: FederationConfigSchema.optional(),
428
- conformance: ConformanceConfigSchema.optional()
504
+ conformance: ConformanceConfigSchema.optional(),
505
+ retrieval: RetrievalConfigSchema.optional(),
506
+ render: RenderConfigSchema.optional()
429
507
  }).strict();
430
508
 
431
509
  // src/config/define-config.ts
@@ -793,12 +871,14 @@ export {
793
871
  ConfigNotFoundError,
794
872
  ConformanceConfigSchema,
795
873
  DocBridgeConfigV1Schema,
874
+ DocumentationAuditConfigSchema,
796
875
  DocumentationStandardRuleIdSchema,
797
876
  DocumentationStandardV1ConfigSchema,
798
877
  EcosystemContractEvidenceSchema,
799
878
  HumanCorpusConfigSchema,
800
879
  ReconciliationConfigSchema,
801
880
  ReportConfigSchema,
881
+ RetrievalConfigSchema,
802
882
  applyConfigDefaults,
803
883
  defineConfig,
804
884
  loadConfig,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/config/defaults.ts","../../src/config/schema.ts","../../src/config/define-config.ts","../../src/config/load-config.ts","../../src/lib/static-js-literal.ts"],"sourcesContent":["import type { DocBridgeConfigV1 } from './schema.js'\n\nconst DEFAULT_AGENT_EXCLUDE = ['**/node_modules/**', '**/.git/**'] as const\n\nexport const applyConfigDefaults = (config: DocBridgeConfigV1): DocBridgeConfigV1 => {\n const agentRoot = config.corpus.agent.root\n const agentIndex = config.corpus.agent.index ?? `${agentRoot}/INDEX.md`\n\n return {\n ...config,\n corpus: {\n ...config.corpus,\n agent: {\n ...config.corpus.agent,\n index: agentIndex,\n include: config.corpus.agent.include ?? ['**/*.{md,mdx}'],\n exclude: config.corpus.agent.exclude ?? [...DEFAULT_AGENT_EXCLUDE],\n },\n },\n index: {\n outFile: '.doc-bridge/index.json',\n contentHash: 'sha256-normalized-v1',\n llmsTxt: {\n enabled: true,\n outFile: 'llms.txt',\n ...config.index?.llmsTxt,\n },\n capabilities: {\n enabled: true,\n outFile: '.doc-bridge/capabilities.json',\n ...config.index?.capabilities,\n },\n ...config.index,\n },\n gates: {\n preset: 'minimal',\n ...config.gates,\n },\n rules: {\n mode: 'default',\n ...config.rules,\n },\n safety: {\n redactSecrets: true,\n ...config.safety,\n },\n surfaces: {\n cli: {\n bin: 'ak-docs',\n defaultFormat: 'json',\n ...config.surfaces?.cli,\n },\n mcp: {\n enabled: true,\n tools: [\n 'handoff.resolve', 'doc.search', 'doc.get', 'gate.status', 'retriever.query',\n 'memory.classify', 'memory.promoteDraft', 'registry.topology',\n 'docbridge.snapshot', 'docbridge.report', 'docbridge.diagnostics',\n 'docbridge.relations', 'docbridge.run', 'docbridge.proposals',\n ],\n transport: 'stdio',\n ...config.surfaces?.mcp,\n },\n ...config.surfaces,\n },\n intelligence: config.intelligence\n ? {\n enabled: false,\n ...config.intelligence,\n chat: config.intelligence.chat\n ? { handoffFirst: true, ...config.intelligence.chat }\n : undefined,\n }\n : { enabled: false },\n }\n}\n","import { z } from 'zod'\n\nexport const CONFIG_SCHEMA_VERSION = 1 as const\n\nexport const HumanCorpusPluginIdSchema = z.enum([\n 'plain-markdown',\n 'fumadocs',\n 'docusaurus',\n 'mkdocs',\n 'vitepress',\n 'starlight',\n 'nextra',\n 'custom',\n])\n\nexport const AgentCorpusConfigSchema = z\n .object({\n root: z.string().min(1).max(512),\n index: z.string().min(1).max(512).optional(),\n include: z.array(z.string().min(1).max(256)).max(64).optional(),\n exclude: z.array(z.string().min(1).max(256)).max(64).optional(),\n okf: z\n .object({\n requireType: z.boolean().optional(),\n allowedTypes: z.array(z.string().min(1).max(128)).max(64).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const HumanCorpusConfigSchema = z\n .object({\n plugin: HumanCorpusPluginIdSchema,\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n\nexport const IndexConfigSchema = z\n .object({\n outFile: z.string().min(1).max(512).optional(),\n llmsTxt: z\n .object({\n enabled: z.boolean().optional(),\n outFile: z.string().min(1).max(512).optional(),\n preamble: z.string().max(4_000).optional(),\n urlPrefix: z.string().url().optional(),\n pathPrefix: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n capabilities: z\n .object({\n enabled: z.boolean().optional(),\n outFile: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n contentHash: z.literal('sha256-normalized-v1').optional(),\n })\n .strict()\n\nexport const OwnershipEntrySchema = z\n .object({\n path: z.string().min(1).max(512),\n group: z.string().min(1).max(128).optional(),\n layer: z.string().min(1).max(32).optional(),\n purpose: z.string().max(1024).optional(),\n checks: z.array(z.string().min(1).max(256)).max(32).optional(),\n agentDoc: z.string().min(1).max(512).optional(),\n humanDoc: z.string().min(1).max(512).optional(),\n })\n .strict()\n\nexport const RoutingConfigSchema = z\n .object({\n plugin: z\n .enum(['pnpm-monorepo', 'npm-workspaces', 'yarn-workspaces', 'nx', 'pattern-files', 'custom'])\n .optional(),\n options: z\n .object({\n packages: z.array(z.string().min(1).max(256)).max(128).optional(),\n /** Infer ownership from corpus paths/frontmatter (default true). */\n ownershipFromCorpus: z.boolean().optional(),\n ownership: z.record(z.string().min(1).max(256), OwnershipEntrySchema).optional(),\n intents: z\n .array(\n z\n .object({\n id: z.string().min(1).max(128),\n title: z.string().min(1).max(256),\n paths: z.array(z.string().min(1).max(512)).max(32),\n })\n .strict(),\n )\n .max(128)\n .optional(),\n changes: z\n .array(\n z\n .object({\n id: z.string().min(1).max(128),\n title: z.string().min(1).max(256),\n startHere: z.string().min(1).max(512),\n relatedPackages: z.array(z.string().min(1).max(256)).max(32).optional(),\n })\n .strict(),\n )\n .max(128)\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const GatesConfigSchema = z\n .object({\n /** minimal: freshness · standard: + human links · strict: + okf-type · playbook: freshness + okf soft style */\n preset: z.enum(['minimal', 'standard', 'strict', 'playbook']).optional(),\n include: z\n .array(\n z.enum([\n 'index-freshness',\n 'human-guide-links',\n 'link-rot',\n 'okf-type',\n 'docs-style',\n 'routing-currency',\n 'bootstrap-size',\n 'documentation-standard-v1',\n ]),\n )\n .max(16)\n .optional(),\n exclude: z\n .array(\n z.enum([\n 'index-freshness',\n 'human-guide-links',\n 'link-rot',\n 'okf-type',\n 'docs-style',\n 'routing-currency',\n 'bootstrap-size',\n 'documentation-standard-v1',\n ]),\n )\n .max(16)\n .optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n\nexport const RuleIdSchema = z.enum([\n 'documentation-quality',\n 'graph-undocumented-relation',\n 'declared-unobserved-relation',\n 'unresolved-reference',\n 'conflicting-declaration',\n 'not-analyzed-coverage',\n 'stale-documentation',\n 'centrality-risk',\n 'critical-path-risk',\n 'freshness',\n 'ownership',\n])\n\nexport const RuleSeveritySchema = z.enum(['off', 'info', 'warn', 'error'])\n\nexport const RulesConfigSchema = z\n .object({\n mode: z.enum(['default', 'recommended', 'strict']).optional(),\n severity: z.partialRecord(RuleIdSchema, RuleSeveritySchema).optional(),\n ignore: z.array(RuleIdSchema).max(128).optional(),\n criticalEntities: z.array(z.string().min(1).max(256)).max(128).optional(),\n criticalPaths: z.array(z.string().min(1).max(512)).max(128).optional(),\n warningThresholds: z.partialRecord(RuleIdSchema, z.number().int().min(1).max(100_000)).optional(),\n })\n .strict()\n\nexport const ReconciliationConfigSchema = z\n .object({\n /** Semantic comparison level. Raw discovery always keeps file-level relations. */\n scope: z.enum(['file', 'module', 'package']).optional(),\n /** Relation kinds that must have documentation declarations. Omit to require all observed kinds; [] disables this signal. */\n requiredRelationKinds: z.array(z.string().min(1).max(128)).max(128).optional(),\n /** Limit missing-declaration findings to relations whose endpoints are internal project entities. */\n requiredRelationTargets: z.enum(['all', 'internal']).optional(),\n includeOrphanedDocuments: z.boolean().optional(),\n })\n .strict()\n\nexport const AnalysisConfigSchema = z\n .object({\n plugins: z\n .array(\n z\n .object({\n id: z.string().regex(/^[a-z][a-z0-9-]*$/).max(128),\n enabled: z.boolean().optional(),\n order: z.number().int().nonnegative().optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n reason: z.string().min(1).max(1_024).optional(),\n })\n .strict(),\n )\n .max(128)\n .optional(),\n jsTs: z\n .object({\n runtimeWiringMethods: z.array(z.string().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/).max(64)).max(64).optional(),\n runtimeWiringAdapters: z\n .array(\n z\n .object({\n id: z.string().min(1).max(128),\n methods: z.array(z.string().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/).max(64)).min(1).max(64),\n })\n .strict(),\n )\n .max(32)\n .optional(),\n includeTestRuntimeWiring: z.boolean().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const WorkflowConfigSchema = z\n .object({\n stateDir: z.string().min(1).max(512).optional(),\n })\n .strict()\n\nexport const RepositorySafetyConfigSchema = z\n .object({\n exclude: z.array(z.string().min(1).max(512)).max(128).optional(),\n maxFiles: z.number().int().positive().max(1_000_000).optional(),\n maxBytes: z.number().int().positive().max(10_000_000_000).optional(),\n maxTimeMs: z.number().int().positive().max(86_400_000).optional(),\n maxMemoryMb: z.number().int().positive().max(1_048_576).optional(),\n redactSecrets: z.boolean().optional(),\n })\n .strict()\n\nexport const ReportConfigSchema = z\n .object({\n /** Public report privacy mode. Private is the default; anonymized preserves topology without project identity. */\n privacy: z.enum(['private', 'anonymized']).optional(),\n })\n .strict()\n\nexport const SurfacesConfigSchema = z\n .object({\n cli: z\n .object({\n bin: z.string().min(1).max(64).optional(),\n defaultFormat: z.enum(['json', 'text']).optional(),\n })\n .strict()\n .optional(),\n mcp: z\n .object({\n enabled: z.boolean().optional(),\n tools: z\n .array(\n z.enum([\n 'handoff.resolve',\n 'doc.search',\n 'doc.get',\n 'gate.status',\n 'playbook.pattern.get',\n 'retriever.query',\n 'memory.classify',\n 'memory.promoteDraft',\n 'registry.topology',\n 'docbridge.snapshot',\n 'docbridge.report',\n 'docbridge.diagnostics',\n 'docbridge.relations',\n 'docbridge.run',\n 'docbridge.proposals',\n ]),\n )\n .max(16)\n .optional(),\n transport: z.enum(['stdio', 'http']).optional(),\n http: z\n .object({\n port: z.number().int().min(1).max(65_535).optional(),\n path: z.string().min(1).max(256).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const IntelligenceConfigSchema = z\n .object({\n enabled: z.boolean().optional(),\n adapter: z\n .object({\n provider: z.enum(['openai', 'anthropic', 'ollama', 'openrouter', 'custom']),\n model: z.string().min(1).max(128).optional(),\n apiKeyEnv: z.string().min(0).max(128).optional(),\n baseUrl: z.string().url().optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n .optional(),\n chat: z\n .object({\n enabled: z.boolean().optional(),\n sources: z.array(z.enum(['agent', 'human', 'federation'])).max(8).optional(),\n handoffFirst: z.boolean().optional(),\n })\n .strict()\n .optional(),\n retriever: z\n .object({\n enabled: z.boolean().optional(),\n mode: z.enum(['local', 'remote', 'bm25', 'agentskit-rag']).optional(),\n embedModel: z.string().min(1).max(128).optional(),\n chunkSize: z.number().int().min(128).max(16_384).optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n .optional(),\n memory: z\n .object({\n enabled: z.boolean().optional(),\n adapters: z\n .array(z.enum(['playbook-memory', 'cursor-rules', 'session-export', 'bootstrap-delta']))\n .max(8)\n .optional(),\n ingestDir: z.string().min(1).max(512).optional(),\n classify: z.boolean().optional(),\n promote: z\n .object({\n enabled: z.boolean().optional(),\n targets: z.array(z.enum(['agent', 'human', 'agents-md'])).max(8).optional(),\n requireApproval: z.boolean().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n runtime: z.enum(['agentskit', 'custom']).optional(),\n runtimeModule: z.string().min(1).max(512).optional(),\n registry: z\n .object({\n enabled: z.boolean().optional(),\n agentId: z.string().min(1).max(256).optional(),\n agentRoot: z.string().min(1).max(512).optional(),\n runnerModule: z.string().min(1).max(512).optional(),\n deterministic: z.boolean().optional(),\n timeoutMs: z.number().int().positive().max(600_000).optional(),\n maxTokens: z.number().int().positive().max(1_000_000).optional(),\n maxResponseBytes: z.number().int().positive().max(10_000_000).optional(),\n maxConcurrency: z.number().int().positive().max(64).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const FederationConfigSchema = z\n .object({\n enabled: z.boolean().optional(),\n sources: z\n .array(\n z\n .object({\n id: z.string().min(1).max(64),\n llmsTxt: z.string().min(1).max(512).optional(),\n rawBaseUrl: z.string().url().optional(),\n includeInRetriever: z.boolean().optional(),\n includeInChat: z.boolean().optional(),\n })\n .strict(),\n )\n .max(16)\n .optional(),\n })\n .strict()\n\nexport const DocumentationEvidenceFileSchema = z\n .object({\n path: z.string().min(1).max(512),\n contains: z.array(z.string().min(1).max(512)).min(1).max(32),\n })\n .strict()\n\nexport const DocumentationLinkEvidenceSchema = z\n .object({\n url: z.string().url().max(512),\n paths: z.array(z.string().min(1).max(512)).min(1).max(32),\n })\n .strict()\n\nexport const DocumentationQuickstartEvidenceSchema = z\n .object({\n id: z.string().regex(/^[a-z][a-z0-9-]*$/).max(128),\n doc: z.string().min(1).max(512),\n test: z.string().min(1).max(512),\n command: z.string().min(1).max(512),\n testContains: z.array(z.string().min(1).max(256)).min(1).max(16),\n })\n .strict()\n\nexport const EcosystemContractEvidenceSchema = z\n .object({\n manifest: z.string().min(1).max(512),\n claims: z.string().min(1).max(512),\n productId: z.string().regex(/^[a-z][a-z0-9-]*$/).max(128),\n })\n .strict()\n\nexport const DocumentationStandardRuleIdSchema = z.enum([\n 'human-docs',\n 'llms-and-raw-source',\n 'agent-handoffs',\n 'contribution',\n 'metadata',\n 'cross-links',\n 'tested-quickstarts',\n 'visual-explanations',\n 'structured-diagrams',\n])\n\nexport const DocumentationStandardExceptionSchema = z\n .object({\n ruleId: DocumentationStandardRuleIdSchema,\n reason: z.string().min(10).max(1_024),\n approvedBy: z.string().min(1).max(256),\n trackingUrl: z.string().url().max(512),\n })\n .strict()\n\nexport const DocumentationStandardV1ConfigSchema = z\n .object({\n rawSources: z.array(z.string().min(1).max(512)).max(64).optional(),\n contributionPaths: z.array(z.string().min(1).max(512)).max(16).optional(),\n metadata: z.array(DocumentationEvidenceFileSchema).max(32).optional(),\n links: z.array(DocumentationLinkEvidenceSchema).max(64).optional(),\n quickstarts: z.array(DocumentationQuickstartEvidenceSchema).max(32).optional(),\n visuals: z.array(z.string().min(1).max(512)).max(64).optional(),\n diagrams: z.array(DocumentationEvidenceFileSchema).max(32).optional(),\n ecosystemContract: EcosystemContractEvidenceSchema.optional(),\n exceptions: z.array(DocumentationStandardExceptionSchema).max(32).optional(),\n })\n .strict()\n .superRefine((value, context) => {\n const seen = new Set<string>()\n for (const [index, exception] of (value.exceptions ?? []).entries()) {\n if (seen.has(exception.ruleId)) {\n context.addIssue({\n code: 'custom',\n path: ['exceptions', index, 'ruleId'],\n message: `Duplicate exception for rule ${exception.ruleId}`,\n })\n }\n seen.add(exception.ruleId)\n }\n })\n\nexport const ConformanceConfigSchema = z\n .object({\n documentationStandardV1: DocumentationStandardV1ConfigSchema.optional(),\n })\n .strict()\n\nexport const DocBridgeConfigV1Schema = z\n .object({\n schemaVersion: z.literal(CONFIG_SCHEMA_VERSION),\n project: z\n .object({\n name: z.string().min(1).max(128).optional(),\n root: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n corpus: z\n .object({\n agent: AgentCorpusConfigSchema,\n human: z.union([HumanCorpusConfigSchema, z.array(HumanCorpusConfigSchema).max(8)]).optional(),\n })\n .strict(),\n index: IndexConfigSchema.optional(),\n routing: RoutingConfigSchema.optional(),\n gates: GatesConfigSchema.optional(),\n reconciliation: ReconciliationConfigSchema.optional(),\n analysis: AnalysisConfigSchema.optional(),\n rules: RulesConfigSchema.optional(),\n workflow: WorkflowConfigSchema.optional(),\n safety: RepositorySafetyConfigSchema.optional(),\n report: ReportConfigSchema.optional(),\n surfaces: SurfacesConfigSchema.optional(),\n intelligence: IntelligenceConfigSchema.optional(),\n federation: FederationConfigSchema.optional(),\n conformance: ConformanceConfigSchema.optional(),\n })\n .strict()\n\nexport type DocBridgeConfigV1 = z.infer<typeof DocBridgeConfigV1Schema>\nexport type AgentCorpusConfig = z.infer<typeof AgentCorpusConfigSchema>\nexport type HumanCorpusConfig = z.infer<typeof HumanCorpusConfigSchema>\nexport type DocumentationStandardV1Config = z.infer<typeof DocumentationStandardV1ConfigSchema>\nexport type DocumentationStandardRuleId = z.infer<typeof DocumentationStandardRuleIdSchema>\nexport type ReconciliationConfig = z.infer<typeof ReconciliationConfigSchema>\nexport type AnalysisConfig = z.infer<typeof AnalysisConfigSchema>\nexport type RuleId = z.infer<typeof RuleIdSchema>\nexport type RuleSeverity = z.infer<typeof RuleSeveritySchema>\nexport type RulesConfig = z.infer<typeof RulesConfigSchema>\nexport type WorkflowConfig = z.infer<typeof WorkflowConfigSchema>\nexport type RepositorySafetyConfig = z.infer<typeof RepositorySafetyConfigSchema>\nexport type ReportConfig = z.infer<typeof ReportConfigSchema>\n","import { applyConfigDefaults } from './defaults.js'\nimport { DocBridgeConfigV1Schema, type DocBridgeConfigV1 } from './schema.js'\n\n/** Type-safe config helper for `doc-bridge.config.ts`. */\nexport const defineConfig = (config: DocBridgeConfigV1): DocBridgeConfigV1 =>\n applyConfigDefaults(DocBridgeConfigV1Schema.parse(config))","import { existsSync, readFileSync } from 'node:fs'\nimport { basename, dirname, join, resolve } from 'node:path'\n\nimport { parseStaticJsObject } from '../lib/static-js-literal.js'\nimport { applyConfigDefaults } from './defaults.js'\nimport { DocBridgeConfigV1Schema, type DocBridgeConfigV1 } from './schema.js'\n\nconst CONFIG_CANDIDATES = [\n 'doc-bridge.config.ts',\n 'doc-bridge.config.mts',\n 'doc-bridge.config.js',\n 'doc-bridge.config.mjs',\n 'doc-bridge.config.json',\n 'doc-bridge.config.yaml',\n 'doc-bridge.config.yml',\n 'package.json',\n] as const\n\nexport type LoadConfigOptions = {\n readonly cwd?: string\n readonly explicitPath?: string\n}\n\nexport type LoadConfigResult = {\n readonly config: DocBridgeConfigV1\n readonly path: string\n}\n\nexport class ConfigNotFoundError extends Error {\n constructor(readonly cwd: string) {\n super(\n `No doc-bridge config found in ${cwd}. Run: ak-docs init — or pass --config <path>.`,\n )\n this.name = 'ConfigNotFoundError'\n }\n}\n\nconst findConfigPath = (cwd: string, explicitPath?: string): string | null => {\n if (explicitPath) {\n const abs = resolve(cwd, explicitPath)\n return existsSync(abs) ? abs : null\n }\n for (const name of CONFIG_CANDIDATES) {\n const candidate = join(cwd, name)\n if (!existsSync(candidate)) continue\n if (name !== 'package.json') return candidate\n const pkg = parseJsonConfig(readFileSync(candidate, 'utf8'), candidate) as { docBridge?: unknown }\n if (pkg.docBridge) return candidate\n }\n return null\n}\n\nconst parseJsonConfig = (raw: string, path: string): unknown => {\n try {\n return JSON.parse(raw) as unknown\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Failed to parse JSON config at ${path}: ${message}`)\n }\n}\n\nconst parseCodeConfig = (raw: string, path: string): unknown => {\n const unsupportedImports = raw\n .replace(/import\\s+type\\s+[\\s\\S]*?;?\\n/g, '')\n .replace(/import\\s+\\{\\s*defineConfig\\s*\\}\\s+from\\s+['\"]@agentskit\\/doc-bridge(?:\\/config)?['\"];?\\n?/g, '')\n if (/\\bimport\\b/.test(unsupportedImports)) {\n throw new Error(`Unsupported import in ${path}. Static config only supports defineConfig imports.`)\n }\n try {\n return parseStaticJsObject(raw)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Failed to load config at ${path}: ${message}`)\n }\n}\n\nconst parseConfig = (input: unknown): DocBridgeConfigV1 => {\n const result = DocBridgeConfigV1Schema.safeParse(input)\n if (result.success) return result.data\n throw new Error(\n `Invalid doc-bridge config:\\n${result.error.issues.map((issue) =>\n ` - ${issue.path.join('.') || '(root)'}: ${\n issue.code === 'invalid_type' && issue.message.endsWith('received undefined')\n ? 'Required'\n : issue.code === 'invalid_value' && 'values' in issue\n ? 'Invalid enum value'\n : issue.message\n }`,\n ).join('\\n')}`,\n )\n}\n\n/** v0.1 — static JS/TS config, JSON config files, and package.json#docBridge. */\nexport const loadConfig = (opts: LoadConfigOptions = {}): LoadConfigResult => {\n const cwd = resolve(opts.cwd ?? process.cwd())\n const path = findConfigPath(cwd, opts.explicitPath)\n if (!path) throw new ConfigNotFoundError(cwd)\n\n const raw = readFileSync(path, 'utf8')\n const ext = path.split('.').pop()?.toLowerCase()\n if (ext === 'yaml' || ext === 'yml') {\n throw new Error(`YAML config is not supported yet (${path}). Use doc-bridge.config.json for now.`)\n }\n\n const parsed =\n basename(path) === 'package.json'\n ? (parseJsonConfig(raw, path) as { docBridge?: unknown }).docBridge\n : ext === 'ts' || ext === 'mts' || ext === 'js' || ext === 'mjs'\n ? parseCodeConfig(raw, path)\n : parseJsonConfig(raw, path)\n const config = applyConfigDefaults(parseConfig(parsed))\n return { config, path }\n}\n\nexport const resolveProjectRoot = (start = process.cwd()): string => {\n let cur = resolve(start)\n for (let i = 0; i < 12; i += 1) {\n if (findConfigPath(cur)) return cur\n const parent = dirname(cur)\n if (parent === cur) break\n cur = parent\n }\n return resolve(start)\n}\n\n/** Project root for a loaded config file path (directory of the config). */\nexport const projectRootFromConfigPath = (\n configFilePath: string,\n projectRootField?: string,\n): string => {\n const configDir = dirname(resolve(configFilePath))\n if (projectRootField) return resolve(configDir, projectRootField)\n return configDir\n}\n","const stripComments = (source: string): string => {\n let out = ''\n let index = 0\n let quote: string | undefined\n while (index < source.length) {\n const char = source[index] ?? ''\n const next = source[index + 1] ?? ''\n if (quote) {\n out += char\n if (char === '\\\\') {\n out += next\n index += 2\n continue\n }\n if (char === quote) quote = undefined\n index += 1\n continue\n }\n if (char === '\"' || char === \"'\" || char === '`') {\n quote = char\n out += char\n index += 1\n continue\n }\n if (char === '/' && next === '/') {\n while (index < source.length && source[index] !== '\\n') index += 1\n out += '\\n'\n index += 1\n continue\n }\n if (char === '/' && next === '*') {\n index += 2\n while (index < source.length && !(source[index] === '*' && source[index + 1] === '/')) index += 1\n index += 2\n out += ' '\n continue\n }\n out += char\n index += 1\n }\n if (quote) throw new Error('Unterminated string in static JavaScript literal.')\n return out\n}\n\nclass LiteralParser {\n private index = 0\n\n constructor(private readonly source: string) {}\n\n parseAt(index: number): unknown {\n this.index = index\n const value = this.value()\n this.space()\n return value\n }\n\n private space(): void {\n while (/\\s/.test(this.source[this.index] ?? '')) this.index += 1\n }\n\n private value(): unknown {\n this.space()\n const char = this.source[this.index]\n if (char === '{') return this.object()\n if (char === '[') return this.array()\n if (char === '\"' || char === \"'\") return this.string()\n const word = this.word()\n if (word === 'true') return true\n if (word === 'false') return false\n if (word === 'null') return null\n if (/^-?\\d+(?:\\.\\d+)?$/.test(word)) return Number(word)\n throw new Error(`Unsupported dynamic sidebar expression near \"${word || char || 'EOF'}\".`)\n }\n\n private object(): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n this.index += 1\n this.space()\n while (this.source[this.index] !== '}') {\n const key = this.source[this.index] === '\"' || this.source[this.index] === \"'\" ? this.string() : this.word()\n if (!key) throw new Error('Static sidebar object key is required.')\n this.space()\n if (this.source[this.index] !== ':') throw new Error(`Static sidebar key \"${key}\" requires a literal value.`)\n this.index += 1\n result[key] = this.value()\n this.space()\n if (this.source[this.index] === ',') {\n this.index += 1\n this.space()\n continue\n }\n if (this.source[this.index] !== '}') throw new Error('Expected comma or closing brace in static sidebar.')\n }\n this.index += 1\n return result\n }\n\n private array(): unknown[] {\n const result: unknown[] = []\n this.index += 1\n this.space()\n while (this.source[this.index] !== ']') {\n result.push(this.value())\n this.space()\n if (this.source[this.index] === ',') {\n this.index += 1\n this.space()\n continue\n }\n if (this.source[this.index] !== ']') throw new Error('Expected comma or closing bracket in static sidebar.')\n }\n this.index += 1\n return result\n }\n\n private string(): string {\n const quote = this.source[this.index] ?? ''\n this.index += 1\n let result = ''\n while (this.index < this.source.length) {\n const char = this.source[this.index] ?? ''\n if (char === quote) {\n this.index += 1\n return result\n }\n if (char === '\\\\') {\n const escaped = this.source[this.index + 1]\n if (escaped === undefined) break\n const escapes: Record<string, string> = { n: '\\n', r: '\\r', t: '\\t' }\n result += escapes[escaped] ?? escaped\n this.index += 2\n continue\n }\n result += char\n this.index += 1\n }\n throw new Error('Unterminated string in static sidebar.')\n }\n\n private word(): string {\n this.space()\n const start = this.index\n while (/[A-Za-z0-9_$.-]/.test(this.source[this.index] ?? '')) this.index += 1\n return this.source.slice(start, this.index)\n }\n}\n\nconst maskStrings = (source: string): string => {\n const chars = [...source]\n let quote: string | undefined\n let previousToken: string | undefined\n const regexPrefixKeywords = new Set([\n 'await', 'case', 'delete', 'do', 'else', 'in', 'instanceof', 'new',\n 'of', 'return', 'throw', 'typeof', 'void', 'yield',\n ])\n const canStartRegex = (): boolean => previousToken === undefined\n || '=(:,[!&|?{};'.includes(previousToken)\n || previousToken === '=>'\n || regexPrefixKeywords.has(previousToken)\n for (let index = 0; index < chars.length; index += 1) {\n const char = chars[index] ?? ''\n if (quote) {\n chars[index] = ' '\n if (char === '\\\\') {\n if (index + 1 < chars.length) chars[index + 1] = ' '\n index += 1\n } else if (char === quote) {\n quote = undefined\n previousToken = 'literal'\n }\n continue\n }\n if (char === '\"' || char === \"'\" || char === '`') {\n quote = char\n chars[index] = ' '\n continue\n }\n if (char === '/' && canStartRegex()) {\n chars[index] = ' '\n let inClass = false\n for (index += 1; index < chars.length; index += 1) {\n const regexChar = chars[index] ?? ''\n chars[index] = ' '\n if (regexChar === '\\\\') {\n if (index + 1 < chars.length) chars[index + 1] = ' '\n index += 1\n } else if (regexChar === '[') {\n inClass = true\n } else if (regexChar === ']') {\n inClass = false\n } else if (regexChar === '/' && !inClass) {\n while (/[A-Za-z]/.test(chars[index + 1] ?? '')) {\n index += 1\n chars[index] = ' '\n }\n break\n }\n }\n previousToken = 'literal'\n continue\n }\n if (/[A-Za-z_$]/.test(char)) {\n const start = index\n while (/[A-Za-z0-9_$]/.test(chars[index + 1] ?? '')) index += 1\n previousToken = chars.slice(start, index + 1).join('')\n continue\n }\n if (char === '=' && chars[index + 1] === '>') {\n previousToken = '=>'\n index += 1\n continue\n }\n if (!/\\s/.test(char)) previousToken = char\n }\n return chars.join('')\n}\n\nconst nonSpace = (source: string, start: number): number => {\n let index = start\n while (/\\s/.test(source[index] ?? '')) index += 1\n return index\n}\n\nconst escapedRegex = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\nexport const parseStaticJsObject = (source: string): unknown => {\n const clean = stripComments(source)\n const mask = maskStrings(clean)\n const parseBinding = (identifier: string): unknown => {\n const declaration = new RegExp(`\\\\b(?:const|let|var)\\\\s+${escapedRegex(identifier)}(?:\\\\s*:[^=;]+)?\\\\s*=`).exec(mask)\n if (!declaration) throw new Error(`Exported binding \"${identifier}\" must reference a static object declaration.`)\n const start = nonSpace(mask, declaration.index + declaration[0].length)\n if (mask[start] !== '{') throw new Error(`Exported binding \"${identifier}\" must be a static object literal.`)\n return new LiteralParser(clean).parseAt(start)\n }\n const commonJs = /\\bmodule\\.exports\\s*=/.exec(mask)\n if (commonJs) {\n const start = nonSpace(mask, commonJs.index + commonJs[0].length)\n if (mask[start] === '{') return new LiteralParser(clean).parseAt(start)\n const identifier = /^[A-Za-z_$][\\w$]*/.exec(mask.slice(start))?.[0]\n if (identifier) return parseBinding(identifier)\n throw new Error('module.exports must be assigned a static object literal or binding.')\n }\n\n const exported = /\\bexport\\s+default\\b/.exec(mask)\n if (exported) {\n let start = nonSpace(mask, exported.index + exported[0].length)\n if (mask.slice(start).startsWith('defineConfig')) {\n start = nonSpace(mask, start + 'defineConfig'.length)\n if (mask[start] !== '(') throw new Error('defineConfig must be called with a static object literal.')\n start = nonSpace(mask, start + 1)\n if (mask[start] !== '{') throw new Error('defineConfig must be called with a static object literal.')\n return new LiteralParser(clean).parseAt(start)\n }\n if (mask[start] === '{') return new LiteralParser(clean).parseAt(start)\n\n const identifier = /^[A-Za-z_$][\\w$]*/.exec(mask.slice(start))?.[0]\n if (identifier) return parseBinding(identifier)\n }\n throw new Error('Docusaurus sidebar must export a static object or assign one to a const.')\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/config/defaults.ts","../../src/config/schema.ts","../../src/config/define-config.ts","../../src/config/load-config.ts","../../src/lib/static-js-literal.ts"],"sourcesContent":["import type { DocBridgeConfigV1 } from './schema.js'\n\nconst DEFAULT_AGENT_EXCLUDE = ['**/node_modules/**', '**/.git/**'] as const\n\nexport const applyConfigDefaults = (config: DocBridgeConfigV1): DocBridgeConfigV1 => {\n const agentRoot = config.corpus.agent.root\n const agentIndex = config.corpus.agent.index ?? `${agentRoot}/INDEX.md`\n\n return {\n ...config,\n corpus: {\n ...config.corpus,\n agent: {\n ...config.corpus.agent,\n index: agentIndex,\n include: config.corpus.agent.include ?? ['**/*.{md,mdx}'],\n exclude: config.corpus.agent.exclude ?? [...DEFAULT_AGENT_EXCLUDE],\n },\n },\n index: {\n outFile: '.doc-bridge/index.json',\n contentHash: 'sha256-normalized-v1',\n llmsTxt: {\n enabled: true,\n outFile: 'llms.txt',\n ...config.index?.llmsTxt,\n },\n capabilities: {\n enabled: true,\n outFile: '.doc-bridge/capabilities.json',\n ...config.index?.capabilities,\n },\n ...config.index,\n },\n gates: {\n preset: 'minimal',\n ...config.gates,\n },\n rules: {\n mode: 'default',\n ...config.rules,\n },\n safety: {\n redactSecrets: true,\n ...config.safety,\n },\n surfaces: {\n cli: {\n bin: 'ak-docs',\n defaultFormat: 'json',\n ...config.surfaces?.cli,\n },\n mcp: {\n enabled: true,\n tools: [\n 'handoff.resolve', 'doc.search', 'doc.get', 'gate.status', 'retriever.query',\n 'memory.classify', 'memory.promoteDraft', 'registry.topology',\n 'docbridge.snapshot', 'docbridge.report', 'docbridge.diagnostics',\n 'docbridge.relations', 'docbridge.run', 'docbridge.proposals',\n 'knowledge.search', 'knowledge.lookup',\n ],\n transport: 'stdio',\n ...config.surfaces?.mcp,\n },\n ...config.surfaces,\n },\n intelligence: config.intelligence\n ? {\n enabled: false,\n ...config.intelligence,\n chat: config.intelligence.chat\n ? { handoffFirst: true, ...config.intelligence.chat }\n : undefined,\n }\n : { enabled: false },\n }\n}\n","import { z } from 'zod'\n\nexport const CONFIG_SCHEMA_VERSION = 1 as const\n\nexport const HumanCorpusPluginIdSchema = z.enum([\n 'plain-markdown',\n 'fumadocs',\n 'docusaurus',\n 'mkdocs',\n 'vitepress',\n 'starlight',\n 'nextra',\n 'custom',\n])\n\nexport const AgentCorpusConfigSchema = z\n .object({\n root: z.string().min(1).max(512),\n index: z.string().min(1).max(512).optional(),\n include: z.array(z.string().min(1).max(256)).max(64).optional(),\n exclude: z.array(z.string().min(1).max(256)).max(64).optional(),\n okf: z\n .object({\n requireType: z.boolean().optional(),\n allowedTypes: z.array(z.string().min(1).max(128)).max(64).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const HumanCorpusConfigSchema = z\n .object({\n plugin: HumanCorpusPluginIdSchema,\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n\nexport const IndexConfigSchema = z\n .object({\n outFile: z.string().min(1).max(512).optional(),\n llmsTxt: z\n .object({\n enabled: z.boolean().optional(),\n outFile: z.string().min(1).max(512).optional(),\n preamble: z.string().max(4_000).optional(),\n urlPrefix: z.string().url().optional(),\n pathPrefix: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n capabilities: z\n .object({\n enabled: z.boolean().optional(),\n outFile: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n contentHash: z.literal('sha256-normalized-v1').optional(),\n })\n .strict()\n\nexport const OwnershipEntrySchema = z\n .object({\n path: z.string().min(1).max(512),\n group: z.string().min(1).max(128).optional(),\n layer: z.string().min(1).max(32).optional(),\n purpose: z.string().max(1024).optional(),\n checks: z.array(z.string().min(1).max(256)).max(32).optional(),\n agentDoc: z.string().min(1).max(512).optional(),\n humanDoc: z.string().min(1).max(512).optional(),\n })\n .strict()\n\nexport const RoutingConfigSchema = z\n .object({\n plugin: z\n .enum(['pnpm-monorepo', 'npm-workspaces', 'yarn-workspaces', 'nx', 'pattern-files', 'custom'])\n .optional(),\n options: z\n .object({\n packages: z.array(z.string().min(1).max(256)).max(128).optional(),\n /** Infer ownership from corpus paths/frontmatter (default true). */\n ownershipFromCorpus: z.boolean().optional(),\n ownership: z.record(z.string().min(1).max(256), OwnershipEntrySchema).optional(),\n intents: z\n .array(\n z\n .object({\n id: z.string().min(1).max(128),\n title: z.string().min(1).max(256),\n paths: z.array(z.string().min(1).max(512)).max(32),\n })\n .strict(),\n )\n .max(128)\n .optional(),\n changes: z\n .array(\n z\n .object({\n id: z.string().min(1).max(128),\n title: z.string().min(1).max(256),\n startHere: z.string().min(1).max(512),\n relatedPackages: z.array(z.string().min(1).max(256)).max(32).optional(),\n })\n .strict(),\n )\n .max(128)\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const GatesConfigSchema = z\n .object({\n /** minimal: freshness · standard: + human links · strict: + okf-type · playbook: freshness + okf soft style */\n preset: z.enum(['minimal', 'standard', 'strict', 'playbook']).optional(),\n include: z\n .array(\n z.enum([\n 'index-freshness',\n 'human-guide-links',\n 'link-rot',\n 'okf-type',\n 'docs-style',\n 'routing-currency',\n 'bootstrap-size',\n 'documentation-standard-v1',\n ]),\n )\n .max(16)\n .optional(),\n exclude: z\n .array(\n z.enum([\n 'index-freshness',\n 'human-guide-links',\n 'link-rot',\n 'okf-type',\n 'docs-style',\n 'routing-currency',\n 'bootstrap-size',\n 'documentation-standard-v1',\n ]),\n )\n .max(16)\n .optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n\nexport const RuleIdSchema = z.enum([\n 'documentation-quality',\n 'graph-undocumented-relation',\n 'declared-unobserved-relation',\n 'unresolved-reference',\n 'conflicting-declaration',\n 'not-analyzed-coverage',\n 'stale-documentation',\n 'centrality-risk',\n 'critical-path-risk',\n 'freshness',\n 'ownership',\n])\n\nexport const RuleSeveritySchema = z.enum(['off', 'info', 'warn', 'error'])\n\nexport const RulesConfigSchema = z\n .object({\n mode: z.enum(['default', 'recommended', 'strict']).optional(),\n severity: z.partialRecord(RuleIdSchema, RuleSeveritySchema).optional(),\n ignore: z.array(RuleIdSchema).max(128).optional(),\n criticalEntities: z.array(z.string().min(1).max(256)).max(128).optional(),\n criticalPaths: z.array(z.string().min(1).max(512)).max(128).optional(),\n warningThresholds: z.partialRecord(RuleIdSchema, z.number().int().min(1).max(100_000)).optional(),\n })\n .strict()\n\nexport const ReconciliationConfigSchema = z\n .object({\n /** Semantic comparison level. Raw discovery always keeps file-level relations. */\n scope: z.enum(['file', 'module', 'area', 'package']).optional(),\n /** Relation kinds that must have documentation declarations. Omit to require all observed kinds; [] disables this signal. */\n requiredRelationKinds: z.array(z.string().min(1).max(128)).max(128).optional(),\n /** Limit missing-declaration findings to relations whose endpoints are internal project entities. */\n requiredRelationTargets: z.enum(['all', 'internal']).optional(),\n includeOrphanedDocuments: z.boolean().optional(),\n })\n .strict()\n\nexport const DocumentationAuditConfigSchema = z\n .object({\n /** Glob-like paths that should be compared for structure coverage. */\n criticalPaths: z.array(z.string().min(1).max(512)).max(128).optional(),\n /** Generated docs are checked for presence/freshness evidence only; content quality is skipped. */\n generatedPaths: z.array(z.string().min(1).max(512)).max(128).optional(),\n exclude: z.array(z.string().min(1).max(512)).max(128).optional(),\n minWords: z.number().int().nonnegative().max(100_000).optional(),\n requiredSections: z.array(z.string().min(1).max(128)).max(32).optional(),\n requireExamples: z.boolean().optional(),\n exactDuplicates: z.boolean().optional(),\n defaultTier: z.enum(['tier-0', 'tier-1', 'tier-2']).optional(),\n tierRules: z.array(z.object({\n pattern: z.string().min(1).max(512),\n tier: z.enum(['tier-0', 'tier-1', 'tier-2']),\n critical: z.boolean().optional(),\n }).strict()).max(128).optional(),\n requiredCriticalMetadata: z.array(z.enum(['owner', 'lifecycle', 'sourceOfTruth', 'validationPath'])).max(4).optional(),\n })\n .strict()\n\nexport const AnalysisConfigSchema = z\n .object({\n plugins: z\n .array(\n z\n .object({\n id: z.string().regex(/^[a-z][a-z0-9-]*$/).max(128),\n enabled: z.boolean().optional(),\n order: z.number().int().nonnegative().optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n reason: z.string().min(1).max(1_024).optional(),\n })\n .strict(),\n )\n .max(128)\n .optional(),\n jsTs: z\n .object({\n runtimeWiringMethods: z.array(z.string().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/).max(64)).max(64).optional(),\n runtimeWiringAdapters: z\n .array(\n z\n .object({\n id: z.string().min(1).max(128),\n methods: z.array(z.string().regex(/^[A-Za-z_$][A-Za-z0-9_$]*$/).max(64)).min(1).max(64),\n })\n .strict(),\n )\n .max(32)\n .optional(),\n includeTestRuntimeWiring: z.boolean().optional(),\n })\n .strict()\n .optional(),\n /**\n * How code areas are derived — the unit of architecture between a package and a file.\n * `roots` names directories that contain areas rather than being one (`src` holds\n * `src/query`); `depth` is how many levels below such a root an area sits.\n */\n areas: z\n .object({\n depth: z.number().int().min(1).max(8).optional(),\n roots: z.array(z.string().min(1).max(128)).max(32).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const WorkflowConfigSchema = z\n .object({\n stateDir: z.string().min(1).max(512).optional(),\n })\n .strict()\n\nexport const RepositorySafetyConfigSchema = z\n .object({\n exclude: z.array(z.string().min(1).max(512)).max(128).optional(),\n maxFiles: z.number().int().positive().max(1_000_000).optional(),\n maxBytes: z.number().int().positive().max(10_000_000_000).optional(),\n maxTimeMs: z.number().int().positive().max(86_400_000).optional(),\n maxMemoryMb: z.number().int().positive().max(1_048_576).optional(),\n redactSecrets: z.boolean().optional(),\n })\n .strict()\n\nexport const ReportConfigSchema = z\n .object({\n /** Public report privacy mode. Private is the default; anonymized preserves topology without project identity. */\n privacy: z.enum(['private', 'anonymized']).optional(),\n })\n .strict()\n\nexport const SurfacesConfigSchema = z\n .object({\n cli: z\n .object({\n bin: z.string().min(1).max(64).optional(),\n defaultFormat: z.enum(['json', 'text']).optional(),\n })\n .strict()\n .optional(),\n mcp: z\n .object({\n enabled: z.boolean().optional(),\n tools: z\n .array(\n z.enum([\n 'handoff.resolve',\n 'doc.search',\n 'doc.get',\n 'gate.status',\n 'playbook.pattern.get',\n 'retriever.query',\n 'memory.classify',\n 'memory.promoteDraft',\n 'registry.topology',\n 'docbridge.snapshot',\n 'docbridge.report',\n 'docbridge.diagnostics',\n 'docbridge.relations',\n 'docbridge.run',\n 'docbridge.proposals',\n 'knowledge.search',\n 'knowledge.lookup',\n ]),\n )\n .max(18)\n .optional(),\n transport: z.enum(['stdio', 'http']).optional(),\n http: z\n .object({\n port: z.number().int().min(1).max(65_535).optional(),\n path: z.string().min(1).max(256).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\n/** One enrichment role: an installed Registry agent and the prompt version it is run with. */\nexport const EnrichmentRoleSchema = z\n .object({\n enabled: z.boolean().optional(),\n /** Defaults to `intelligence.registry.agentId`. */\n agentId: z.string().min(1).max(256).optional(),\n promptVersion: z.string().min(1).max(64).optional(),\n })\n .strict()\n\nexport const IntelligenceConfigSchema = z\n .object({\n enabled: z.boolean().optional(),\n adapter: z\n .object({\n provider: z.enum(['openai', 'anthropic', 'ollama', 'openrouter', 'custom']),\n model: z.string().min(1).max(128).optional(),\n apiKeyEnv: z.string().min(0).max(128).optional(),\n baseUrl: z.string().url().optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n .optional(),\n chat: z\n .object({\n enabled: z.boolean().optional(),\n sources: z.array(z.enum(['agent', 'human', 'federation'])).max(8).optional(),\n handoffFirst: z.boolean().optional(),\n })\n .strict()\n .optional(),\n retriever: z\n .object({\n enabled: z.boolean().optional(),\n mode: z.enum(['local', 'remote', 'bm25', 'agentskit-rag']).optional(),\n embedModel: z.string().min(1).max(128).optional(),\n chunkSize: z.number().int().min(128).max(16_384).optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n })\n .strict()\n .optional(),\n memory: z\n .object({\n enabled: z.boolean().optional(),\n adapters: z\n .array(z.enum(['playbook-memory', 'cursor-rules', 'session-export', 'bootstrap-delta']))\n .max(8)\n .optional(),\n ingestDir: z.string().min(1).max(512).optional(),\n classify: z.boolean().optional(),\n promote: z\n .object({\n enabled: z.boolean().optional(),\n targets: z.array(z.enum(['agent', 'human', 'agents-md'])).max(8).optional(),\n requireApproval: z.boolean().optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n runtime: z.enum(['agentskit', 'custom']).optional(),\n runtimeModule: z.string().min(1).max(512).optional(),\n registry: z\n .object({\n enabled: z.boolean().optional(),\n agentId: z.string().min(1).max(256).optional(),\n agentRoot: z.string().min(1).max(512).optional(),\n runnerModule: z.string().min(1).max(512).optional(),\n cli: z\n .object({\n /** Executable name or absolute path. Arguments are passed without a shell. */\n command: z.string().min(1).max(512),\n args: z.array(z.string().max(2_048)).max(64).optional(),\n })\n .strict()\n .optional(),\n deterministic: z.boolean().optional(),\n timeoutMs: z.number().int().positive().max(600_000).optional(),\n maxInputBytes: z.number().int().positive().max(50_000_000).optional(),\n maxTokens: z.number().int().positive().max(1_000_000).optional(),\n maxResponseBytes: z.number().int().positive().max(10_000_000).optional(),\n maxConcurrency: z.number().int().positive().max(64).optional(),\n /** Byte budget of one enrichment context pack. Default 65536. */\n maxPackBytes: z.number().int().min(4_096).max(4_000_000).optional(),\n /**\n * Which installed agent plays which enrichment role. The default is the configured agent\n * as curator only. The adjudicator must be a different identity from both others.\n */\n roles: z\n .object({\n curator: EnrichmentRoleSchema.optional(),\n reviewer: EnrichmentRoleSchema.optional(),\n adjudicator: EnrichmentRoleSchema.optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const FederationConfigSchema = z\n .object({\n enabled: z.boolean().optional(),\n sources: z\n .array(\n z\n .object({\n id: z.string().min(1).max(64),\n llmsTxt: z.string().min(1).max(512).optional(),\n rawBaseUrl: z.string().url().optional(),\n includeInRetriever: z.boolean().optional(),\n includeInChat: z.boolean().optional(),\n })\n .strict(),\n )\n .max(16)\n .optional(),\n })\n .strict()\n\nexport const DocumentationEvidenceFileSchema = z\n .object({\n path: z.string().min(1).max(512),\n contains: z.array(z.string().min(1).max(512)).min(1).max(32),\n })\n .strict()\n\nexport const DocumentationLinkEvidenceSchema = z\n .object({\n url: z.string().url().max(512),\n paths: z.array(z.string().min(1).max(512)).min(1).max(32),\n })\n .strict()\n\nexport const DocumentationQuickstartEvidenceSchema = z\n .object({\n id: z.string().regex(/^[a-z][a-z0-9-]*$/).max(128),\n doc: z.string().min(1).max(512),\n test: z.string().min(1).max(512),\n command: z.string().min(1).max(512),\n testContains: z.array(z.string().min(1).max(256)).min(1).max(16),\n })\n .strict()\n\nexport const EcosystemContractEvidenceSchema = z\n .object({\n manifest: z.string().min(1).max(512),\n claims: z.string().min(1).max(512),\n productId: z.string().regex(/^[a-z][a-z0-9-]*$/).max(128),\n })\n .strict()\n\nexport const DocumentationStandardRuleIdSchema = z.enum([\n 'human-docs',\n 'llms-and-raw-source',\n 'agent-handoffs',\n 'contribution',\n 'metadata',\n 'cross-links',\n 'tested-quickstarts',\n 'visual-explanations',\n 'structured-diagrams',\n])\n\nexport const DocumentationStandardExceptionSchema = z\n .object({\n ruleId: DocumentationStandardRuleIdSchema,\n reason: z.string().min(10).max(1_024),\n approvedBy: z.string().min(1).max(256),\n trackingUrl: z.string().url().max(512),\n })\n .strict()\n\nexport const DocumentationStandardV1ConfigSchema = z\n .object({\n rawSources: z.array(z.string().min(1).max(512)).max(64).optional(),\n contributionPaths: z.array(z.string().min(1).max(512)).max(16).optional(),\n metadata: z.array(DocumentationEvidenceFileSchema).max(32).optional(),\n links: z.array(DocumentationLinkEvidenceSchema).max(64).optional(),\n quickstarts: z.array(DocumentationQuickstartEvidenceSchema).max(32).optional(),\n visuals: z.array(z.string().min(1).max(512)).max(64).optional(),\n diagrams: z.array(DocumentationEvidenceFileSchema).max(32).optional(),\n ecosystemContract: EcosystemContractEvidenceSchema.optional(),\n exceptions: z.array(DocumentationStandardExceptionSchema).max(32).optional(),\n })\n .strict()\n .superRefine((value, context) => {\n const seen = new Set<string>()\n for (const [index, exception] of (value.exceptions ?? []).entries()) {\n if (seen.has(exception.ruleId)) {\n context.addIssue({\n code: 'custom',\n path: ['exceptions', index, 'ruleId'],\n message: `Duplicate exception for rule ${exception.ruleId}`,\n })\n }\n seen.add(exception.ruleId)\n }\n })\n\n/**\n * Retrieval tuning. Weights and parameters are configuration rather than code so a repository can\n * change what its agents find first without a release, and so the change is recorded in the index.\n */\nexport const RetrievalConfigSchema = z\n .object({\n corpus: z\n .object({\n /** Project repository documents and modules into the index. On by default. */\n enabled: z.boolean().optional(),\n })\n .strict()\n .optional(),\n weights: z.record(z.string().min(1).max(64), z.number().min(0).max(1_000)).optional(),\n params: z\n .object({ k1: z.number().min(0).max(100).optional(), b: z.number().min(0).max(1).optional() })\n .strict()\n .optional(),\n benchmark: z\n .object({\n /** The golden retrieval suite the doctor measures hit@3 against. `docs/bench/retrieval-suite-v1.json` by default. */\n suite: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n })\n .strict()\n\nexport const ConformanceConfigSchema = z\n .object({\n documentationStandardV1: DocumentationStandardV1ConfigSchema.optional(),\n })\n .strict()\n\nexport const RenderTemplateNameSchema = z.enum(['llms.txt', 'area', 'ownership', 'change-digest', 'overlay-review'])\n\nexport const RenderConfigSchema = z\n .object({\n /**\n * Project templates that replace the bundled ones, by template name, as paths relative to\n * the project root. `ak-docs render <name> --print-template` prints the bundled template to\n * start from.\n */\n templates: z.partialRecord(RenderTemplateNameSchema, z.string().min(1).max(512)).optional(),\n })\n .strict()\n\nexport const DocBridgeConfigV1Schema = z\n .object({\n schemaVersion: z.literal(CONFIG_SCHEMA_VERSION),\n project: z\n .object({\n name: z.string().min(1).max(128).optional(),\n root: z.string().min(1).max(512).optional(),\n })\n .strict()\n .optional(),\n corpus: z\n .object({\n agent: AgentCorpusConfigSchema,\n human: z.union([HumanCorpusConfigSchema, z.array(HumanCorpusConfigSchema).max(8)]).optional(),\n })\n .strict(),\n index: IndexConfigSchema.optional(),\n routing: RoutingConfigSchema.optional(),\n gates: GatesConfigSchema.optional(),\n reconciliation: ReconciliationConfigSchema.optional(),\n audit: z.object({ documentation: DocumentationAuditConfigSchema.optional() }).strict().optional(),\n analysis: AnalysisConfigSchema.optional(),\n rules: RulesConfigSchema.optional(),\n workflow: WorkflowConfigSchema.optional(),\n safety: RepositorySafetyConfigSchema.optional(),\n report: ReportConfigSchema.optional(),\n surfaces: SurfacesConfigSchema.optional(),\n intelligence: IntelligenceConfigSchema.optional(),\n federation: FederationConfigSchema.optional(),\n conformance: ConformanceConfigSchema.optional(),\n retrieval: RetrievalConfigSchema.optional(),\n render: RenderConfigSchema.optional(),\n })\n .strict()\n\nexport type DocBridgeConfigV1 = z.infer<typeof DocBridgeConfigV1Schema>\nexport type RenderConfig = z.infer<typeof RenderConfigSchema>\nexport type AgentCorpusConfig = z.infer<typeof AgentCorpusConfigSchema>\nexport type HumanCorpusConfig = z.infer<typeof HumanCorpusConfigSchema>\nexport type DocumentationStandardV1Config = z.infer<typeof DocumentationStandardV1ConfigSchema>\nexport type DocumentationStandardRuleId = z.infer<typeof DocumentationStandardRuleIdSchema>\nexport type ReconciliationConfig = z.infer<typeof ReconciliationConfigSchema>\nexport type DocumentationAuditConfig = z.infer<typeof DocumentationAuditConfigSchema>\nexport type AnalysisConfig = z.infer<typeof AnalysisConfigSchema>\nexport type RuleId = z.infer<typeof RuleIdSchema>\nexport type RuleSeverity = z.infer<typeof RuleSeveritySchema>\nexport type RulesConfig = z.infer<typeof RulesConfigSchema>\nexport type WorkflowConfig = z.infer<typeof WorkflowConfigSchema>\nexport type RepositorySafetyConfig = z.infer<typeof RepositorySafetyConfigSchema>\nexport type ReportConfig = z.infer<typeof ReportConfigSchema>\nexport type RetrievalConfig = z.infer<typeof RetrievalConfigSchema>\n","import { applyConfigDefaults } from './defaults.js'\nimport { DocBridgeConfigV1Schema, type DocBridgeConfigV1 } from './schema.js'\n\n/** Type-safe config helper for `doc-bridge.config.ts`. */\nexport const defineConfig = (config: DocBridgeConfigV1): DocBridgeConfigV1 =>\n applyConfigDefaults(DocBridgeConfigV1Schema.parse(config))","import { existsSync, readFileSync } from 'node:fs'\nimport { basename, dirname, join, resolve } from 'node:path'\n\nimport { parseStaticJsObject } from '../lib/static-js-literal.js'\nimport { applyConfigDefaults } from './defaults.js'\nimport { DocBridgeConfigV1Schema, type DocBridgeConfigV1 } from './schema.js'\n\nconst CONFIG_CANDIDATES = [\n 'doc-bridge.config.ts',\n 'doc-bridge.config.mts',\n 'doc-bridge.config.js',\n 'doc-bridge.config.mjs',\n 'doc-bridge.config.json',\n 'doc-bridge.config.yaml',\n 'doc-bridge.config.yml',\n 'package.json',\n] as const\n\nexport type LoadConfigOptions = {\n readonly cwd?: string\n readonly explicitPath?: string\n}\n\nexport type LoadConfigResult = {\n readonly config: DocBridgeConfigV1\n readonly path: string\n}\n\nexport class ConfigNotFoundError extends Error {\n constructor(readonly cwd: string) {\n super(\n `No doc-bridge config found in ${cwd}. Run: ak-docs init — or pass --config <path>.`,\n )\n this.name = 'ConfigNotFoundError'\n }\n}\n\nconst findConfigPath = (cwd: string, explicitPath?: string): string | null => {\n if (explicitPath) {\n const abs = resolve(cwd, explicitPath)\n return existsSync(abs) ? abs : null\n }\n for (const name of CONFIG_CANDIDATES) {\n const candidate = join(cwd, name)\n if (!existsSync(candidate)) continue\n if (name !== 'package.json') return candidate\n const pkg = parseJsonConfig(readFileSync(candidate, 'utf8'), candidate) as { docBridge?: unknown }\n if (pkg.docBridge) return candidate\n }\n return null\n}\n\nconst parseJsonConfig = (raw: string, path: string): unknown => {\n try {\n return JSON.parse(raw) as unknown\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Failed to parse JSON config at ${path}: ${message}`)\n }\n}\n\nconst parseCodeConfig = (raw: string, path: string): unknown => {\n const unsupportedImports = raw\n .replace(/import\\s+type\\s+[\\s\\S]*?;?\\n/g, '')\n .replace(/import\\s+\\{\\s*defineConfig\\s*\\}\\s+from\\s+['\"]@agentskit\\/doc-bridge(?:\\/config)?['\"];?\\n?/g, '')\n if (/\\bimport\\b/.test(unsupportedImports)) {\n throw new Error(`Unsupported import in ${path}. Static config only supports defineConfig imports.`)\n }\n try {\n return parseStaticJsObject(raw)\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error)\n throw new Error(`Failed to load config at ${path}: ${message}`)\n }\n}\n\nconst parseConfig = (input: unknown): DocBridgeConfigV1 => {\n const result = DocBridgeConfigV1Schema.safeParse(input)\n if (result.success) return result.data\n throw new Error(\n `Invalid doc-bridge config:\\n${result.error.issues.map((issue) =>\n ` - ${issue.path.join('.') || '(root)'}: ${\n issue.code === 'invalid_type' && issue.message.endsWith('received undefined')\n ? 'Required'\n : issue.code === 'invalid_value' && 'values' in issue\n ? 'Invalid enum value'\n : issue.message\n }`,\n ).join('\\n')}`,\n )\n}\n\n/** v0.1 — static JS/TS config, JSON config files, and package.json#docBridge. */\nexport const loadConfig = (opts: LoadConfigOptions = {}): LoadConfigResult => {\n const cwd = resolve(opts.cwd ?? process.cwd())\n const path = findConfigPath(cwd, opts.explicitPath)\n if (!path) throw new ConfigNotFoundError(cwd)\n\n const raw = readFileSync(path, 'utf8')\n const ext = path.split('.').pop()?.toLowerCase()\n if (ext === 'yaml' || ext === 'yml') {\n throw new Error(`YAML config is not supported yet (${path}). Use doc-bridge.config.json for now.`)\n }\n\n const parsed =\n basename(path) === 'package.json'\n ? (parseJsonConfig(raw, path) as { docBridge?: unknown }).docBridge\n : ext === 'ts' || ext === 'mts' || ext === 'js' || ext === 'mjs'\n ? parseCodeConfig(raw, path)\n : parseJsonConfig(raw, path)\n const config = applyConfigDefaults(parseConfig(parsed))\n return { config, path }\n}\n\nexport const resolveProjectRoot = (start = process.cwd()): string => {\n let cur = resolve(start)\n for (let i = 0; i < 12; i += 1) {\n if (findConfigPath(cur)) return cur\n const parent = dirname(cur)\n if (parent === cur) break\n cur = parent\n }\n return resolve(start)\n}\n\n/** Project root for a loaded config file path (directory of the config). */\nexport const projectRootFromConfigPath = (\n configFilePath: string,\n projectRootField?: string,\n): string => {\n const configDir = dirname(resolve(configFilePath))\n if (projectRootField) return resolve(configDir, projectRootField)\n return configDir\n}\n","const stripComments = (source: string): string => {\n let out = ''\n let index = 0\n let quote: string | undefined\n while (index < source.length) {\n const char = source[index] ?? ''\n const next = source[index + 1] ?? ''\n if (quote) {\n out += char\n if (char === '\\\\') {\n out += next\n index += 2\n continue\n }\n if (char === quote) quote = undefined\n index += 1\n continue\n }\n if (char === '\"' || char === \"'\" || char === '`') {\n quote = char\n out += char\n index += 1\n continue\n }\n if (char === '/' && next === '/') {\n while (index < source.length && source[index] !== '\\n') index += 1\n out += '\\n'\n index += 1\n continue\n }\n if (char === '/' && next === '*') {\n index += 2\n while (index < source.length && !(source[index] === '*' && source[index + 1] === '/')) index += 1\n index += 2\n out += ' '\n continue\n }\n out += char\n index += 1\n }\n if (quote) throw new Error('Unterminated string in static JavaScript literal.')\n return out\n}\n\nclass LiteralParser {\n private index = 0\n\n constructor(private readonly source: string) {}\n\n parseAt(index: number): unknown {\n this.index = index\n const value = this.value()\n this.space()\n return value\n }\n\n private space(): void {\n while (/\\s/.test(this.source[this.index] ?? '')) this.index += 1\n }\n\n private value(): unknown {\n this.space()\n const char = this.source[this.index]\n if (char === '{') return this.object()\n if (char === '[') return this.array()\n if (char === '\"' || char === \"'\") return this.string()\n const word = this.word()\n if (word === 'true') return true\n if (word === 'false') return false\n if (word === 'null') return null\n if (/^-?\\d+(?:\\.\\d+)?$/.test(word)) return Number(word)\n throw new Error(`Unsupported dynamic sidebar expression near \"${word || char || 'EOF'}\".`)\n }\n\n private object(): Record<string, unknown> {\n const result: Record<string, unknown> = {}\n this.index += 1\n this.space()\n while (this.source[this.index] !== '}') {\n const key = this.source[this.index] === '\"' || this.source[this.index] === \"'\" ? this.string() : this.word()\n if (!key) throw new Error('Static sidebar object key is required.')\n this.space()\n if (this.source[this.index] !== ':') throw new Error(`Static sidebar key \"${key}\" requires a literal value.`)\n this.index += 1\n result[key] = this.value()\n this.space()\n if (this.source[this.index] === ',') {\n this.index += 1\n this.space()\n continue\n }\n if (this.source[this.index] !== '}') throw new Error('Expected comma or closing brace in static sidebar.')\n }\n this.index += 1\n return result\n }\n\n private array(): unknown[] {\n const result: unknown[] = []\n this.index += 1\n this.space()\n while (this.source[this.index] !== ']') {\n result.push(this.value())\n this.space()\n if (this.source[this.index] === ',') {\n this.index += 1\n this.space()\n continue\n }\n if (this.source[this.index] !== ']') throw new Error('Expected comma or closing bracket in static sidebar.')\n }\n this.index += 1\n return result\n }\n\n private string(): string {\n const quote = this.source[this.index] ?? ''\n this.index += 1\n let result = ''\n while (this.index < this.source.length) {\n const char = this.source[this.index] ?? ''\n if (char === quote) {\n this.index += 1\n return result\n }\n if (char === '\\\\') {\n const escaped = this.source[this.index + 1]\n if (escaped === undefined) break\n const escapes: Record<string, string> = { n: '\\n', r: '\\r', t: '\\t' }\n result += escapes[escaped] ?? escaped\n this.index += 2\n continue\n }\n result += char\n this.index += 1\n }\n throw new Error('Unterminated string in static sidebar.')\n }\n\n private word(): string {\n this.space()\n const start = this.index\n while (/[A-Za-z0-9_$.-]/.test(this.source[this.index] ?? '')) this.index += 1\n return this.source.slice(start, this.index)\n }\n}\n\nconst maskStrings = (source: string): string => {\n const chars = [...source]\n let quote: string | undefined\n let previousToken: string | undefined\n const regexPrefixKeywords = new Set([\n 'await', 'case', 'delete', 'do', 'else', 'in', 'instanceof', 'new',\n 'of', 'return', 'throw', 'typeof', 'void', 'yield',\n ])\n const canStartRegex = (): boolean => previousToken === undefined\n || '=(:,[!&|?{};'.includes(previousToken)\n || previousToken === '=>'\n || regexPrefixKeywords.has(previousToken)\n for (let index = 0; index < chars.length; index += 1) {\n const char = chars[index] ?? ''\n if (quote) {\n chars[index] = ' '\n if (char === '\\\\') {\n if (index + 1 < chars.length) chars[index + 1] = ' '\n index += 1\n } else if (char === quote) {\n quote = undefined\n previousToken = 'literal'\n }\n continue\n }\n if (char === '\"' || char === \"'\" || char === '`') {\n quote = char\n chars[index] = ' '\n continue\n }\n if (char === '/' && canStartRegex()) {\n chars[index] = ' '\n let inClass = false\n for (index += 1; index < chars.length; index += 1) {\n const regexChar = chars[index] ?? ''\n chars[index] = ' '\n if (regexChar === '\\\\') {\n if (index + 1 < chars.length) chars[index + 1] = ' '\n index += 1\n } else if (regexChar === '[') {\n inClass = true\n } else if (regexChar === ']') {\n inClass = false\n } else if (regexChar === '/' && !inClass) {\n while (/[A-Za-z]/.test(chars[index + 1] ?? '')) {\n index += 1\n chars[index] = ' '\n }\n break\n }\n }\n previousToken = 'literal'\n continue\n }\n if (/[A-Za-z_$]/.test(char)) {\n const start = index\n while (/[A-Za-z0-9_$]/.test(chars[index + 1] ?? '')) index += 1\n previousToken = chars.slice(start, index + 1).join('')\n continue\n }\n if (char === '=' && chars[index + 1] === '>') {\n previousToken = '=>'\n index += 1\n continue\n }\n if (!/\\s/.test(char)) previousToken = char\n }\n return chars.join('')\n}\n\nconst nonSpace = (source: string, start: number): number => {\n let index = start\n while (/\\s/.test(source[index] ?? '')) index += 1\n return index\n}\n\nconst escapedRegex = (value: string): string => value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\nexport const parseStaticJsObject = (source: string): unknown => {\n const clean = stripComments(source)\n const mask = maskStrings(clean)\n const parseBinding = (identifier: string): unknown => {\n const declaration = new RegExp(`\\\\b(?:const|let|var)\\\\s+${escapedRegex(identifier)}(?:\\\\s*:[^=;]+)?\\\\s*=`).exec(mask)\n if (!declaration) throw new Error(`Exported binding \"${identifier}\" must reference a static object declaration.`)\n const start = nonSpace(mask, declaration.index + declaration[0].length)\n if (mask[start] !== '{') throw new Error(`Exported binding \"${identifier}\" must be a static object literal.`)\n return new LiteralParser(clean).parseAt(start)\n }\n const commonJs = /\\bmodule\\.exports\\s*=/.exec(mask)\n if (commonJs) {\n const start = nonSpace(mask, commonJs.index + commonJs[0].length)\n if (mask[start] === '{') return new LiteralParser(clean).parseAt(start)\n const identifier = /^[A-Za-z_$][\\w$]*/.exec(mask.slice(start))?.[0]\n if (identifier) return parseBinding(identifier)\n throw new Error('module.exports must be assigned a static object literal or binding.')\n }\n\n const exported = /\\bexport\\s+default\\b/.exec(mask)\n if (exported) {\n let start = nonSpace(mask, exported.index + exported[0].length)\n if (mask.slice(start).startsWith('defineConfig')) {\n start = nonSpace(mask, start + 'defineConfig'.length)\n if (mask[start] !== '(') throw new Error('defineConfig must be called with a static object literal.')\n start = nonSpace(mask, start + 1)\n if (mask[start] !== '{') throw new Error('defineConfig must be called with a static object literal.')\n return new LiteralParser(clean).parseAt(start)\n }\n if (mask[start] === '{') return new LiteralParser(clean).parseAt(start)\n\n const identifier = /^[A-Za-z_$][\\w$]*/.exec(mask.slice(start))?.[0]\n if (identifier) return parseBinding(identifier)\n }\n throw new Error('Docusaurus sidebar must export a static object or assign one to a const.')\n}\n"],"mappings":"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","names":[]}