@agentskit/doc-bridge 1.4.1 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/action.yml +1 -1
- package/dist/cli/program.js +54 -11
- package/dist/cli/program.js.map +1 -1
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/{index-DAeq_OIi.d.ts → index-DhoAG9Ar.d.ts} +14 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +54 -11
- package/dist/index.js.map +1 -1
- package/ecosystem-claims.json +6 -6
- package/ecosystem-upstream.json +2 -2
- package/ecosystem.json +51 -0
- package/mcpb/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/doc-bridge-handoff/scripts/resolve-handoff.mjs +1 -1
- package/src/config/schema.ts +2 -0
- package/src/conformance/ecosystem-contract.ts +6 -3
- package/src/index-builder/human-adapters/plain-markdown.ts +17 -1
- package/src/index-builder/llms-txt.ts +22 -2
- package/src/index-builder/scan-corpus.ts +17 -1
- package/src/version.ts +1 -1
package/dist/config/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { A as AgentCorpusConfig, i as AgentCorpusConfigSchema, C as ConfigNotFoundError, j as ConformanceConfigSchema, D as DocBridgeConfigV1, b as DocBridgeConfigV1Schema, a as DocumentationStandardRuleId, c as DocumentationStandardRuleIdSchema, d as DocumentationStandardV1Config, e as DocumentationStandardV1ConfigSchema, E as EcosystemContractEvidenceSchema, H as HumanCorpusConfigSchema, g as applyConfigDefaults, h as defineConfig, l as loadConfig, p as projectRootFromConfigPath, r as resolveProjectRoot } from '../index-
|
|
1
|
+
export { A as AgentCorpusConfig, i as AgentCorpusConfigSchema, C as ConfigNotFoundError, j as ConformanceConfigSchema, D as DocBridgeConfigV1, b as DocBridgeConfigV1Schema, a as DocumentationStandardRuleId, c as DocumentationStandardRuleIdSchema, d as DocumentationStandardV1Config, e as DocumentationStandardV1ConfigSchema, E as EcosystemContractEvidenceSchema, H as HumanCorpusConfigSchema, g as applyConfigDefaults, h as defineConfig, l as loadConfig, p as projectRootFromConfigPath, r as resolveProjectRoot } from '../index-DhoAG9Ar.js';
|
|
2
2
|
import 'zod';
|
package/dist/config/index.js
CHANGED
|
@@ -87,7 +87,9 @@ var IndexConfigSchema = z.object({
|
|
|
87
87
|
llmsTxt: z.object({
|
|
88
88
|
enabled: z.boolean().optional(),
|
|
89
89
|
outFile: z.string().min(1).max(512).optional(),
|
|
90
|
-
preamble: z.string().max(4e3).optional()
|
|
90
|
+
preamble: z.string().max(4e3).optional(),
|
|
91
|
+
urlPrefix: z.string().url().optional(),
|
|
92
|
+
pathPrefix: z.string().min(1).max(512).optional()
|
|
91
93
|
}).strict().optional(),
|
|
92
94
|
capabilities: z.object({
|
|
93
95
|
enabled: z.boolean().optional(),
|
package/dist/config/index.js.map
CHANGED
|
@@ -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 surfaces: {\n cli: {\n bin: 'ak-docs',\n defaultFormat: 'json',\n ...config.surfaces?.cli,\n },\n mcp: {\n enabled: true,\n tools: ['handoff.resolve', 'doc.search', 'doc.get', 'gate.status'],\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 })\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 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 ]),\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 })\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 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>\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)'}: ${issue.message}`,\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 surfaces: {\n cli: {\n bin: 'ak-docs',\n defaultFormat: 'json',\n ...config.surfaces?.cli,\n },\n mcp: {\n enabled: true,\n tools: ['handoff.resolve', 'doc.search', 'doc.get', 'gate.status'],\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 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 ]),\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 })\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 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>\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)'}: ${issue.message}`,\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":[]}
|
|
@@ -679,14 +679,20 @@ declare const DocBridgeConfigV1Schema: z.ZodObject<{
|
|
|
679
679
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
680
680
|
outFile: z.ZodOptional<z.ZodString>;
|
|
681
681
|
preamble: z.ZodOptional<z.ZodString>;
|
|
682
|
+
urlPrefix: z.ZodOptional<z.ZodString>;
|
|
683
|
+
pathPrefix: z.ZodOptional<z.ZodString>;
|
|
682
684
|
}, "strict", z.ZodTypeAny, {
|
|
683
685
|
outFile?: string | undefined;
|
|
684
686
|
enabled?: boolean | undefined;
|
|
685
687
|
preamble?: string | undefined;
|
|
688
|
+
urlPrefix?: string | undefined;
|
|
689
|
+
pathPrefix?: string | undefined;
|
|
686
690
|
}, {
|
|
687
691
|
outFile?: string | undefined;
|
|
688
692
|
enabled?: boolean | undefined;
|
|
689
693
|
preamble?: string | undefined;
|
|
694
|
+
urlPrefix?: string | undefined;
|
|
695
|
+
pathPrefix?: string | undefined;
|
|
690
696
|
}>>;
|
|
691
697
|
capabilities: z.ZodOptional<z.ZodObject<{
|
|
692
698
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -705,6 +711,8 @@ declare const DocBridgeConfigV1Schema: z.ZodObject<{
|
|
|
705
711
|
outFile?: string | undefined;
|
|
706
712
|
enabled?: boolean | undefined;
|
|
707
713
|
preamble?: string | undefined;
|
|
714
|
+
urlPrefix?: string | undefined;
|
|
715
|
+
pathPrefix?: string | undefined;
|
|
708
716
|
} | undefined;
|
|
709
717
|
capabilities?: {
|
|
710
718
|
outFile?: string | undefined;
|
|
@@ -717,6 +725,8 @@ declare const DocBridgeConfigV1Schema: z.ZodObject<{
|
|
|
717
725
|
outFile?: string | undefined;
|
|
718
726
|
enabled?: boolean | undefined;
|
|
719
727
|
preamble?: string | undefined;
|
|
728
|
+
urlPrefix?: string | undefined;
|
|
729
|
+
pathPrefix?: string | undefined;
|
|
720
730
|
} | undefined;
|
|
721
731
|
capabilities?: {
|
|
722
732
|
outFile?: string | undefined;
|
|
@@ -1495,6 +1505,8 @@ declare const DocBridgeConfigV1Schema: z.ZodObject<{
|
|
|
1495
1505
|
outFile?: string | undefined;
|
|
1496
1506
|
enabled?: boolean | undefined;
|
|
1497
1507
|
preamble?: string | undefined;
|
|
1508
|
+
urlPrefix?: string | undefined;
|
|
1509
|
+
pathPrefix?: string | undefined;
|
|
1498
1510
|
} | undefined;
|
|
1499
1511
|
capabilities?: {
|
|
1500
1512
|
outFile?: string | undefined;
|
|
@@ -1663,6 +1675,8 @@ declare const DocBridgeConfigV1Schema: z.ZodObject<{
|
|
|
1663
1675
|
outFile?: string | undefined;
|
|
1664
1676
|
enabled?: boolean | undefined;
|
|
1665
1677
|
preamble?: string | undefined;
|
|
1678
|
+
urlPrefix?: string | undefined;
|
|
1679
|
+
pathPrefix?: string | undefined;
|
|
1666
1680
|
} | undefined;
|
|
1667
1681
|
capabilities?: {
|
|
1668
1682
|
outFile?: string | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as DocBridgeConfigV1, a as DocumentationStandardRuleId } from './index-
|
|
2
|
-
export { A as AgentCorpusConfig, C as ConfigNotFoundError, b as DocBridgeConfigV1Schema, c as DocumentationStandardRuleIdSchema, d as DocumentationStandardV1Config, e as DocumentationStandardV1ConfigSchema, E as EcosystemContractEvidenceSchema, L as LoadConfigOptions, f as LoadConfigResult, g as applyConfigDefaults, h as defineConfig, l as loadConfig, p as projectRootFromConfigPath, r as resolveProjectRoot } from './index-
|
|
1
|
+
import { D as DocBridgeConfigV1, a as DocumentationStandardRuleId } from './index-DhoAG9Ar.js';
|
|
2
|
+
export { A as AgentCorpusConfig, C as ConfigNotFoundError, b as DocBridgeConfigV1Schema, c as DocumentationStandardRuleIdSchema, d as DocumentationStandardV1Config, e as DocumentationStandardV1ConfigSchema, E as EcosystemContractEvidenceSchema, L as LoadConfigOptions, f as LoadConfigResult, g as applyConfigDefaults, h as defineConfig, l as loadConfig, p as projectRootFromConfigPath, r as resolveProjectRoot } from './index-DhoAG9Ar.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
|
|
5
5
|
declare const HANDOFF_SCHEMA_VERSION: 1;
|
|
@@ -1845,7 +1845,7 @@ declare const chunksFromMarkdown: (property: string, raw: string, sourceUrl: str
|
|
|
1845
1845
|
declare const loadFederatedChunks: (root: string, config: DocBridgeConfigV1, options?: FederatedRetrieverOptions) => Promise<DocBridgeRetrievedChunk[]>;
|
|
1846
1846
|
declare const retrieveHybridChunks: (root: string, config: DocBridgeConfigV1, index: DocBridgeIndexV1, query: string, options?: FederatedRetrieverOptions) => Promise<DocBridgeRetrievedChunk[]>;
|
|
1847
1847
|
|
|
1848
|
-
declare const PACKAGE_VERSION = "1.4.
|
|
1848
|
+
declare const PACKAGE_VERSION = "1.4.3";
|
|
1849
1849
|
|
|
1850
1850
|
type FrontmatterValue = string | boolean | readonly string[];
|
|
1851
1851
|
type FrontmatterData = Record<string, FrontmatterValue>;
|
package/dist/index.js
CHANGED
|
@@ -87,7 +87,9 @@ var IndexConfigSchema = z.object({
|
|
|
87
87
|
llmsTxt: z.object({
|
|
88
88
|
enabled: z.boolean().optional(),
|
|
89
89
|
outFile: z.string().min(1).max(512).optional(),
|
|
90
|
-
preamble: z.string().max(4e3).optional()
|
|
90
|
+
preamble: z.string().max(4e3).optional(),
|
|
91
|
+
urlPrefix: z.string().url().optional(),
|
|
92
|
+
pathPrefix: z.string().min(1).max(512).optional()
|
|
91
93
|
}).strict().optional(),
|
|
92
94
|
capabilities: z.object({
|
|
93
95
|
enabled: z.boolean().optional(),
|
|
@@ -1111,6 +1113,9 @@ var defaultChecksForTarget = (root, opts) => {
|
|
|
1111
1113
|
return opts.strict ? ["npm test", "npm run lint"] : ["npm test"];
|
|
1112
1114
|
};
|
|
1113
1115
|
|
|
1116
|
+
// src/index-builder/scan-corpus.ts
|
|
1117
|
+
import { minimatch } from "minimatch";
|
|
1118
|
+
|
|
1114
1119
|
// src/lib/bounded-text.ts
|
|
1115
1120
|
import { readFileSync as readFileSync3, statSync } from "fs";
|
|
1116
1121
|
var MAX_DOCUMENT_BYTES = 4 * 1024 * 1024;
|
|
@@ -1271,10 +1276,20 @@ var walkFiles = (root, opts) => {
|
|
|
1271
1276
|
};
|
|
1272
1277
|
|
|
1273
1278
|
// src/index-builder/scan-corpus.ts
|
|
1279
|
+
var configuredPathMatches = (relPath, include, exclude) => {
|
|
1280
|
+
const normalize = (pattern) => toPosix(pattern).replace(/^\.\//, "");
|
|
1281
|
+
const included = include?.filter(Boolean).map(normalize) ?? [];
|
|
1282
|
+
const excluded = exclude?.filter(Boolean).map(normalize) ?? [];
|
|
1283
|
+
if (excluded.some((pattern) => minimatch(relPath, pattern, { dot: true }))) return false;
|
|
1284
|
+
return included.length === 0 || included.some((pattern) => minimatch(relPath, pattern, { dot: true }));
|
|
1285
|
+
};
|
|
1274
1286
|
var scanAgentCorpus = (root, config) => {
|
|
1275
1287
|
const agentRoot = containedProjectPath(root, config.corpus.agent.root);
|
|
1276
1288
|
if (!agentRoot) throw new Error("Agent corpus root escapes the project root.");
|
|
1277
|
-
const files = walkFiles(agentRoot, { extensions: [".md", ".mdx"] })
|
|
1289
|
+
const files = walkFiles(agentRoot, { extensions: [".md", ".mdx"] }).filter((abs) => {
|
|
1290
|
+
const relToCorpus = toPosix(abs.replace(`${toPosix(agentRoot)}/`, ""));
|
|
1291
|
+
return configuredPathMatches(relToCorpus, config.corpus.agent.include, config.corpus.agent.exclude);
|
|
1292
|
+
});
|
|
1278
1293
|
const corpusRelRoot = toPosix(config.corpus.agent.root);
|
|
1279
1294
|
const budget = { used: 0 };
|
|
1280
1295
|
return files.map((abs) => {
|
|
@@ -1537,7 +1552,7 @@ var buildLookup = (config, packages, corpus, indexOutFile, humanDocs = {}, root
|
|
|
1537
1552
|
};
|
|
1538
1553
|
|
|
1539
1554
|
// src/version.ts
|
|
1540
|
-
var PACKAGE_VERSION = "1.4.
|
|
1555
|
+
var PACKAGE_VERSION = "1.4.3";
|
|
1541
1556
|
|
|
1542
1557
|
// src/index-builder/capabilities.ts
|
|
1543
1558
|
var renderCapabilitiesJson = (config, index, paths) => {
|
|
@@ -1588,6 +1603,18 @@ var sha256NormalizedV1 = (payload) => {
|
|
|
1588
1603
|
};
|
|
1589
1604
|
|
|
1590
1605
|
// src/index-builder/llms-txt.ts
|
|
1606
|
+
var routePath = (path, pathPrefix) => {
|
|
1607
|
+
const normalizedPath = path.replaceAll("\\", "/").replace(/\.(?:md|mdx)$/, "");
|
|
1608
|
+
const normalizedPrefix = pathPrefix?.replaceAll("\\", "/").replace(/\/$/, "");
|
|
1609
|
+
const relativePath2 = normalizedPrefix && normalizedPath.startsWith(`${normalizedPrefix}/`) ? normalizedPath.slice(normalizedPrefix.length + 1) : normalizedPath;
|
|
1610
|
+
return relativePath2.replace(/^\/+/, "");
|
|
1611
|
+
};
|
|
1612
|
+
var knowledgeUrl = (path, options = {}) => {
|
|
1613
|
+
const relativePath2 = routePath(path, options.pathPrefix);
|
|
1614
|
+
if (!options.urlPrefix) return path;
|
|
1615
|
+
const base = options.urlPrefix.endsWith("/") ? options.urlPrefix : `${options.urlPrefix}/`;
|
|
1616
|
+
return new URL(relativePath2, base).toString();
|
|
1617
|
+
};
|
|
1591
1618
|
var renderLlmsTxt = (config, knowledge, projectName2) => {
|
|
1592
1619
|
const preamble = config.index?.llmsTxt?.preamble ?? `# ${projectName2}
|
|
1593
1620
|
|
|
@@ -1595,7 +1622,8 @@ var renderLlmsTxt = (config, knowledge, projectName2) => {
|
|
|
1595
1622
|
`;
|
|
1596
1623
|
const lines = knowledge.slice(0, 500).map((entry) => {
|
|
1597
1624
|
const desc = entry.description ? `: ${entry.description}` : "";
|
|
1598
|
-
|
|
1625
|
+
const url = knowledgeUrl(entry.path, config.index?.llmsTxt);
|
|
1626
|
+
return `- [${entry.title}](${url})${desc}`;
|
|
1599
1627
|
});
|
|
1600
1628
|
return `${preamble.trim()}
|
|
1601
1629
|
|
|
@@ -1827,11 +1855,23 @@ var nextraAdapter = {
|
|
|
1827
1855
|
};
|
|
1828
1856
|
|
|
1829
1857
|
// src/index-builder/human-adapters/plain-markdown.ts
|
|
1858
|
+
import { minimatch as minimatch2 } from "minimatch";
|
|
1859
|
+
var stringPatterns = (value) => Array.isArray(value) ? value.filter((item) => typeof item === "string" && item.length > 0) : [];
|
|
1860
|
+
var matchesConfiguredPath = (relPath, options) => {
|
|
1861
|
+
const normalize = (pattern) => pattern.replaceAll("\\", "/").replace(/^\.\//, "");
|
|
1862
|
+
const include = stringPatterns(options?.include).map(normalize);
|
|
1863
|
+
const exclude = stringPatterns(options?.exclude).map(normalize);
|
|
1864
|
+
if (exclude.some((pattern) => minimatch2(relPath, pattern, { dot: true }))) return false;
|
|
1865
|
+
return include.length === 0 || include.some((pattern) => minimatch2(relPath, pattern, { dot: true }));
|
|
1866
|
+
};
|
|
1830
1867
|
var plainMarkdownAdapter = {
|
|
1831
1868
|
plugin: "plain-markdown",
|
|
1832
1869
|
scan: ({ root, config }) => {
|
|
1833
1870
|
const humanRoot = optionString(config.options, ["contentDir", "root", "docsDir"]) ?? "docs";
|
|
1834
|
-
return scanMarkdownDocs(root, humanRoot, {
|
|
1871
|
+
return scanMarkdownDocs(root, humanRoot, {
|
|
1872
|
+
urlPrefix: config.options?.urlPrefix,
|
|
1873
|
+
includeRelPath: (relPath) => matchesConfiguredPath(relPath, config.options)
|
|
1874
|
+
});
|
|
1835
1875
|
}
|
|
1836
1876
|
};
|
|
1837
1877
|
|
|
@@ -1860,7 +1900,7 @@ var starlightAdapter = {
|
|
|
1860
1900
|
};
|
|
1861
1901
|
|
|
1862
1902
|
// src/index-builder/human-adapters/vitepress.ts
|
|
1863
|
-
import { minimatch } from "minimatch";
|
|
1903
|
+
import { minimatch as minimatch3 } from "minimatch";
|
|
1864
1904
|
var isVitePressPage = (relPath) => !relPath.split("/").some((part) => part === ".vitepress" || part.startsWith("."));
|
|
1865
1905
|
var srcExcludePatterns = (value) => {
|
|
1866
1906
|
if (value === void 0) return [];
|
|
@@ -1874,7 +1914,7 @@ var srcExcludePatterns = (value) => {
|
|
|
1874
1914
|
return pattern;
|
|
1875
1915
|
});
|
|
1876
1916
|
};
|
|
1877
|
-
var isExcluded = (relPath, patterns) => patterns.some((pattern) =>
|
|
1917
|
+
var isExcluded = (relPath, patterns) => patterns.some((pattern) => minimatch3(relPath, pattern, { dot: true }));
|
|
1878
1918
|
var vitepressSlug = (relPath, cleanUrls) => {
|
|
1879
1919
|
const slug2 = routeSlug(relPath);
|
|
1880
1920
|
if (cleanUrls || /(?:^|\/)index\.mdx?$/.test(relPath)) return slug2;
|
|
@@ -2274,7 +2314,7 @@ var ProductSchema = z5.object({
|
|
|
2274
2314
|
role: NonEmptyStringSchema,
|
|
2275
2315
|
promise: NonEmptyStringSchema,
|
|
2276
2316
|
maturity: z5.enum(["planning", "alpha", "beta", "stable", "deprecated"]),
|
|
2277
|
-
repo: RepoSchema,
|
|
2317
|
+
repo: RepoSchema.nullable(),
|
|
2278
2318
|
accent: z5.string().regex(/^#[0-9A-Fa-f]{6}$/),
|
|
2279
2319
|
surfaces: SurfaceSchema,
|
|
2280
2320
|
navigation: z5.object({
|
|
@@ -2289,7 +2329,7 @@ var LegacyPropertySchema = z5.object({
|
|
|
2289
2329
|
barLabel: NonEmptyStringSchema,
|
|
2290
2330
|
domain: NonEmptyStringSchema,
|
|
2291
2331
|
url: HttpsUrlSchema,
|
|
2292
|
-
repo: RepoSchema,
|
|
2332
|
+
repo: RepoSchema.nullable(),
|
|
2293
2333
|
tagline: NonEmptyStringSchema,
|
|
2294
2334
|
kind: NonEmptyStringSchema,
|
|
2295
2335
|
accent: z5.string().regex(/^#[0-9A-Fa-f]{6}$/),
|
|
@@ -2326,7 +2366,8 @@ var ClaimProductSchema = z5.object({
|
|
|
2326
2366
|
productId: SlugSchema,
|
|
2327
2367
|
source: z5.discriminatedUnion("type", [
|
|
2328
2368
|
z5.object({ type: z5.literal("endpoint"), url: HttpsUrlSchema }).passthrough(),
|
|
2329
|
-
z5.object({ type: z5.literal("repository"), repo: RepoSchema }).passthrough()
|
|
2369
|
+
z5.object({ type: z5.literal("repository"), repo: RepoSchema }).passthrough(),
|
|
2370
|
+
z5.object({ type: z5.literal("declaration"), summary: NonEmptyStringSchema }).passthrough()
|
|
2330
2371
|
]),
|
|
2331
2372
|
verification: z5.enum(["verified", "declared"]),
|
|
2332
2373
|
claims: z5.array(ClaimSchema)
|
|
@@ -2403,8 +2444,10 @@ var parseCanonicalEcosystemContract = (manifestInput, claimsInput) => {
|
|
|
2403
2444
|
if (!claimProduct) throw new Error(`Claims are missing product ${productId}.`);
|
|
2404
2445
|
if (claimProduct.source.type === "endpoint") {
|
|
2405
2446
|
if (claimProduct.source.url !== product.surfaces.stats) throw new Error(`Claims source for ${productId} must match stats.`);
|
|
2406
|
-
} else if (claimProduct.source.repo !== product.repo) {
|
|
2447
|
+
} else if (claimProduct.source.type === "repository" && claimProduct.source.repo !== product.repo) {
|
|
2407
2448
|
throw new Error(`Claims source for ${productId} must match repo.`);
|
|
2449
|
+
} else if (claimProduct.source.type === "declaration" && product.repo !== null) {
|
|
2450
|
+
throw new Error(`Declaration source for ${productId} requires a null repo.`);
|
|
2408
2451
|
}
|
|
2409
2452
|
if (claimProduct.verification === "declared" && claimProduct.claims.length > 0) {
|
|
2410
2453
|
throw new Error(`Declared product ${productId} cannot publish claims.`);
|