@gluecharm-lab/easyspecs-cli 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/main.cjs.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../scripts/vscode-stub.cjs", "../../../node_modules/ajv/lib/compile/codegen/code.ts", "../../../node_modules/ajv/lib/compile/codegen/scope.ts", "../../../node_modules/ajv/lib/compile/codegen/index.ts", "../../../node_modules/ajv/lib/compile/util.ts", "../../../node_modules/ajv/lib/compile/names.ts", "../../../node_modules/ajv/lib/compile/errors.ts", "../../../node_modules/ajv/lib/compile/validate/boolSchema.ts", "../../../node_modules/ajv/lib/compile/rules.ts", "../../../node_modules/ajv/lib/compile/validate/applicability.ts", "../../../node_modules/ajv/lib/compile/validate/dataType.ts", "../../../node_modules/ajv/lib/compile/validate/defaults.ts", "../../../node_modules/ajv/lib/vocabularies/code.ts", "../../../node_modules/ajv/lib/compile/validate/keyword.ts", "../../../node_modules/ajv/lib/compile/validate/subschema.ts", "../../../node_modules/fast-deep-equal/index.js", "../../../node_modules/json-schema-traverse/index.js", "../../../node_modules/ajv/lib/compile/resolve.ts", "../../../node_modules/ajv/lib/compile/validate/index.ts", "../../../node_modules/ajv/lib/runtime/validation_error.ts", "../../../node_modules/ajv/lib/compile/ref_error.ts", "../../../node_modules/ajv/lib/compile/index.ts", "../../../node_modules/ajv/dist/refs/data.json", "../../../node_modules/fast-uri/lib/utils.js", "../../../node_modules/fast-uri/lib/schemes.js", "../../../node_modules/fast-uri/index.js", "../../../node_modules/ajv/lib/runtime/uri.ts", "../../../node_modules/ajv/lib/core.ts", "../../../node_modules/ajv/lib/vocabularies/core/id.ts", "../../../node_modules/ajv/lib/vocabularies/core/ref.ts", "../../../node_modules/ajv/lib/vocabularies/core/index.ts", "../../../node_modules/ajv/lib/vocabularies/validation/limitNumber.ts", "../../../node_modules/ajv/lib/vocabularies/validation/multipleOf.ts", "../../../node_modules/ajv/lib/runtime/ucs2length.ts", "../../../node_modules/ajv/lib/vocabularies/validation/limitLength.ts", "../../../node_modules/ajv/lib/vocabularies/validation/pattern.ts", "../../../node_modules/ajv/lib/vocabularies/validation/limitProperties.ts", "../../../node_modules/ajv/lib/vocabularies/validation/required.ts", "../../../node_modules/ajv/lib/vocabularies/validation/limitItems.ts", "../../../node_modules/ajv/lib/runtime/equal.ts", "../../../node_modules/ajv/lib/vocabularies/validation/uniqueItems.ts", "../../../node_modules/ajv/lib/vocabularies/validation/const.ts", "../../../node_modules/ajv/lib/vocabularies/validation/enum.ts", "../../../node_modules/ajv/lib/vocabularies/validation/index.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/additionalItems.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/items.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/prefixItems.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/items2020.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/contains.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/dependencies.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/propertyNames.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/additionalProperties.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/properties.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/patternProperties.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/not.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/anyOf.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/oneOf.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/allOf.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/if.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/thenElse.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/index.ts", "../../../node_modules/ajv/lib/vocabularies/dynamic/dynamicAnchor.ts", "../../../node_modules/ajv/lib/vocabularies/dynamic/dynamicRef.ts", "../../../node_modules/ajv/lib/vocabularies/dynamic/recursiveAnchor.ts", "../../../node_modules/ajv/lib/vocabularies/dynamic/recursiveRef.ts", "../../../node_modules/ajv/lib/vocabularies/dynamic/index.ts", "../../../node_modules/ajv/lib/vocabularies/validation/dependentRequired.ts", "../../../node_modules/ajv/lib/vocabularies/applicator/dependentSchemas.ts", "../../../node_modules/ajv/lib/vocabularies/validation/limitContains.ts", "../../../node_modules/ajv/lib/vocabularies/next.ts", "../../../node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedProperties.ts", "../../../node_modules/ajv/lib/vocabularies/unevaluated/unevaluatedItems.ts", "../../../node_modules/ajv/lib/vocabularies/unevaluated/index.ts", "../../../node_modules/ajv/lib/vocabularies/format/format.ts", "../../../node_modules/ajv/lib/vocabularies/format/index.ts", "../../../node_modules/ajv/lib/vocabularies/metadata.ts", "../../../node_modules/ajv/lib/vocabularies/draft2020.ts", "../../../node_modules/ajv/lib/vocabularies/discriminator/types.ts", "../../../node_modules/ajv/lib/vocabularies/discriminator/index.ts", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/schema.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/applicator.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/unevaluated.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/content.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/core.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/format-annotation.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/meta-data.json", "../../../node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json", "../../../node_modules/ajv/lib/refs/json-schema-2020-12/index.ts", "../../../node_modules/ajv/lib/2020.ts", "../../../src/cli/main.ts", "../../../src/cli/argv.ts", "../../../src/cli/exitCodes.ts", "../../../src/cli/jsonReporter.ts", "../../../src/cli/cliContext.ts", "../../../src/repositoryProvenance.ts", "../../../src/apiBaseUrlResolve.ts", "../../../src/easyspecsBuiltInApiUrls.ts", "../../../src/easyspecsApiBaseUrlCli.ts", "../../../src/config/openCodeProviderEnv.ts", "../../../src/cli/cliSettings.ts", "../../../src/cli/cliSettingsDump.ts", "../../../src/config/easyspecsConfigFile.ts", "../../../src/easySpecsWorkspaceSettingsCore.ts", "../../../src/analysis/easySpecsWorktreeMarker.ts", "../../../src/config/easyspecsConfigJson.ts", "../../../src/config/easyspecsConfigRedact.ts", "../../../src/cli/cliFileWorkspaceState.ts", "../../../src/analysis/contextArtefactPipeline.ts", "../../../src/analysis/analysisDynamicTestSteps.ts", "../../../src/analysis/materializeOpenCodeAgents.ts", "../../../src/analysis/applyAceMaterializedAgents.ts", "../../../src/analysis/acePaths.ts", "../../../src/analysis/aceJsonValidate.ts", "../../../src/analysis/openCodeTestAgent.ts", "../../../src/analysis/promptTemplates.ts", "../../../src/analysis/contextSynthesis.ts", "../../../src/analysis/aceTracePhase.ts", "../../../src/opencodeCli.ts", "../../../src/analysis/openCodeSessionStewardship.ts", "../../../src/analysis/aceTraceNormalize.ts", "../../../src/analysis/aceOfflineLearn.ts", "../../../src/analysis/aceCuratorApplier.ts", "../../../src/analysis/aceOfflineLearnFallbacks.ts", "../../../src/analysis/coordinationListJsonValidate.ts", "../../../src/analysis/markdownEvidenceIndexValidate.ts", "../../../src/analysis/openQuestionResolution.ts", "../../../src/analysis/openQuestionsSectionValidate.ts", "../../../src/analysis/worktreeManager.ts", "../../../src/stores/analysisArtefactRunStore.ts", "../../../src/stores/analysisDiscoveriesStore.ts", "../../../src/contextIndexAssembler.ts", "../../../src/srsModel.ts", "../../../src/indexApplicationContextValidate.ts", "../../../src/shared/repoResourcesRoot.ts", "../../../src/analysis/aceAnalysisConfig.ts", "../../../src/config/easyspecsAceConfigRead.ts", "../../../src/analysis/repoSurfaceAssessment.ts", "../../../src/workspaceContextPromote.ts", "../../../src/shared/macroPhaseExitConditions.ts", "../../../src/analysis/macroAnalysisOrchestrator.ts", "../../../src/analysis/macroHeadlessHost.ts", "../../../src/stores/analysisPipelineStore.ts", "../../../src/stores/analysisWorkspaceStore.ts", "../../../src/analysis/missingArtefacts.ts", "../../../src/analysis/analysisDetailMarkdownDiscovery.ts", "../../../src/analysis/remediationArtefactPool.ts", "../../../src/analysis/coverageReferenceValidation.ts", "../../../src/analysis/coverageReferenceValidationSchemaValidate.ts", "../../../src/analysis/zeroReferenceRemediation.ts", "../../../src/analysis/zeroReferenceRemediationSchemaValidate.ts", "../../../src/analysis/referenceCoverageExecutionReport.ts", "../../../src/analysis/contextSrsDiscoveryUpload.ts", "../../../src/auth/authProtocol.ts", "../../../src/analysis/contextSrsDiscoveryIdMap.ts", "../../../src/analysis/indexApplicationContextMergeUploadIds.ts", "../../../src/analysis/coordinationDuplicatesDiagnosis.ts", "../../../src/auth/authApi.ts", "../../../src/auth/gluecharmContentNegotiation.ts", "../../../src/auth/authenticatedFetch.ts", "../../../src/cli/cliSession.ts", "../../../src/analysis/acePendingTraces.ts", "../../../src/analysis/aceAutoLearnPool.ts", "../../../src/cli/parseTailFlags.ts", "../../../src/cli/parseDoctorFlags.ts", "../../../src/cli/parseAuthLoginTail.ts"],
4
4
  "sourcesContent": ["/**\n * Minimal `vscode` API surface for headless `@gluecharm-lab/easyspecs-cli` bundle (esbuild inject).\n * Real extension host provides the full module.\n */\nmodule.exports = {\n workspace: {\n workspaceFolders: undefined,\n getConfiguration() {\n return {\n get() {\n return undefined;\n },\n };\n },\n },\n window: {},\n ProgressLocation: { Notification: 1 },\n ExtensionMode: { Development: 1, Production: 2 },\n Uri: { file: (p) => ({ fsPath: p }) },\n};\n", "// eslint-disable-next-line @typescript-eslint/no-extraneous-class\nexport abstract class _CodeOrName {\n abstract readonly str: string\n abstract readonly names: UsedNames\n abstract toString(): string\n abstract emptyStr(): boolean\n}\n\nexport const IDENTIFIER = /^[a-z$_][a-z$_0-9]*$/i\n\nexport class Name extends _CodeOrName {\n readonly str: string\n constructor(s: string) {\n super()\n if (!IDENTIFIER.test(s)) throw new Error(\"CodeGen: name must be a valid identifier\")\n this.str = s\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n return false\n }\n\n get names(): UsedNames {\n return {[this.str]: 1}\n }\n}\n\nexport class _Code extends _CodeOrName {\n readonly _items: readonly CodeItem[]\n private _str?: string\n private _names?: UsedNames\n\n constructor(code: string | readonly CodeItem[]) {\n super()\n this._items = typeof code === \"string\" ? [code] : code\n }\n\n toString(): string {\n return this.str\n }\n\n emptyStr(): boolean {\n if (this._items.length > 1) return false\n const item = this._items[0]\n return item === \"\" || item === '\"\"'\n }\n\n get str(): string {\n return (this._str ??= this._items.reduce((s: string, c: CodeItem) => `${s}${c}`, \"\"))\n }\n\n get names(): UsedNames {\n return (this._names ??= this._items.reduce((names: UsedNames, c) => {\n if (c instanceof Name) names[c.str] = (names[c.str] || 0) + 1\n return names\n }, {}))\n }\n}\n\nexport type CodeItem = Name | string | number | boolean | null\n\nexport type UsedNames = Record<string, number | undefined>\n\nexport type Code = _Code | Name\n\nexport type SafeExpr = Code | number | boolean | null\n\nexport const nil = new _Code(\"\")\n\ntype CodeArg = SafeExpr | string | undefined\n\nexport function _(strs: TemplateStringsArray, ...args: CodeArg[]): _Code {\n const code: CodeItem[] = [strs[0]]\n let i = 0\n while (i < args.length) {\n addCodeArg(code, args[i])\n code.push(strs[++i])\n }\n return new _Code(code)\n}\n\nconst plus = new _Code(\"+\")\n\nexport function str(strs: TemplateStringsArray, ...args: (CodeArg | string[])[]): _Code {\n const expr: CodeItem[] = [safeStringify(strs[0])]\n let i = 0\n while (i < args.length) {\n expr.push(plus)\n addCodeArg(expr, args[i])\n expr.push(plus, safeStringify(strs[++i]))\n }\n optimize(expr)\n return new _Code(expr)\n}\n\nexport function addCodeArg(code: CodeItem[], arg: CodeArg | string[]): void {\n if (arg instanceof _Code) code.push(...arg._items)\n else if (arg instanceof Name) code.push(arg)\n else code.push(interpolate(arg))\n}\n\nfunction optimize(expr: CodeItem[]): void {\n let i = 1\n while (i < expr.length - 1) {\n if (expr[i] === plus) {\n const res = mergeExprItems(expr[i - 1], expr[i + 1])\n if (res !== undefined) {\n expr.splice(i - 1, 3, res)\n continue\n }\n expr[i++] = \"+\"\n }\n i++\n }\n}\n\nfunction mergeExprItems(a: CodeItem, b: CodeItem): CodeItem | undefined {\n if (b === '\"\"') return a\n if (a === '\"\"') return b\n if (typeof a == \"string\") {\n if (b instanceof Name || a[a.length - 1] !== '\"') return\n if (typeof b != \"string\") return `${a.slice(0, -1)}${b}\"`\n if (b[0] === '\"') return a.slice(0, -1) + b.slice(1)\n return\n }\n if (typeof b == \"string\" && b[0] === '\"' && !(a instanceof Name)) return `\"${a}${b.slice(1)}`\n return\n}\n\nexport function strConcat(c1: Code, c2: Code): Code {\n return c2.emptyStr() ? c1 : c1.emptyStr() ? c2 : str`${c1}${c2}`\n}\n\n// TODO do not allow arrays here\nfunction interpolate(x?: string | string[] | number | boolean | null): SafeExpr | string {\n return typeof x == \"number\" || typeof x == \"boolean\" || x === null\n ? x\n : safeStringify(Array.isArray(x) ? x.join(\",\") : x)\n}\n\nexport function stringify(x: unknown): Code {\n return new _Code(safeStringify(x))\n}\n\nexport function safeStringify(x: unknown): string {\n return JSON.stringify(x)\n .replace(/\\u2028/g, \"\\\\u2028\")\n .replace(/\\u2029/g, \"\\\\u2029\")\n}\n\nexport function getProperty(key: Code | string | number): Code {\n return typeof key == \"string\" && IDENTIFIER.test(key) ? new _Code(`.${key}`) : _`[${key}]`\n}\n\n//Does best effort to format the name properly\nexport function getEsmExportName(key: Code | string | number): Code {\n if (typeof key == \"string\" && IDENTIFIER.test(key)) {\n return new _Code(`${key}`)\n }\n throw new Error(`CodeGen: invalid export name: ${key}, use explicit $id name mapping`)\n}\n\nexport function regexpCode(rx: RegExp): Code {\n return new _Code(rx.toString())\n}\n", "import {_, nil, Code, Name} from \"./code\"\n\ninterface NameGroup {\n prefix: string\n index: number\n}\n\nexport interface NameValue {\n ref: ValueReference // this is the reference to any value that can be referred to from generated code via `globals` var in the closure\n key?: unknown // any key to identify a global to avoid duplicates, if not passed ref is used\n code?: Code // this is the code creating the value needed for standalone code wit_out closure - can be a primitive value, function or import (`require`)\n}\n\nexport type ValueReference = unknown // possibly make CodeGen parameterized type on this type\n\nclass ValueError extends Error {\n readonly value?: NameValue\n constructor(name: ValueScopeName) {\n super(`CodeGen: \"code\" for ${name} not defined`)\n this.value = name.value\n }\n}\n\ninterface ScopeOptions {\n prefixes?: Set<string>\n parent?: Scope\n}\n\ninterface ValueScopeOptions extends ScopeOptions {\n scope: ScopeStore\n es5?: boolean\n lines?: boolean\n}\n\nexport type ScopeStore = Record<string, ValueReference[] | undefined>\n\ntype ScopeValues = {\n [Prefix in string]?: Map<unknown, ValueScopeName>\n}\n\nexport type ScopeValueSets = {\n [Prefix in string]?: Set<ValueScopeName>\n}\n\nexport enum UsedValueState {\n Started,\n Completed,\n}\n\nexport type UsedScopeValues = {\n [Prefix in string]?: Map<ValueScopeName, UsedValueState | undefined>\n}\n\nexport const varKinds = {\n const: new Name(\"const\"),\n let: new Name(\"let\"),\n var: new Name(\"var\"),\n}\n\nexport class Scope {\n protected readonly _names: {[Prefix in string]?: NameGroup} = {}\n protected readonly _prefixes?: Set<string>\n protected readonly _parent?: Scope\n\n constructor({prefixes, parent}: ScopeOptions = {}) {\n this._prefixes = prefixes\n this._parent = parent\n }\n\n toName(nameOrPrefix: Name | string): Name {\n return nameOrPrefix instanceof Name ? nameOrPrefix : this.name(nameOrPrefix)\n }\n\n name(prefix: string): Name {\n return new Name(this._newName(prefix))\n }\n\n protected _newName(prefix: string): string {\n const ng = this._names[prefix] || this._nameGroup(prefix)\n return `${prefix}${ng.index++}`\n }\n\n private _nameGroup(prefix: string): NameGroup {\n if (this._parent?._prefixes?.has(prefix) || (this._prefixes && !this._prefixes.has(prefix))) {\n throw new Error(`CodeGen: prefix \"${prefix}\" is not allowed in this scope`)\n }\n return (this._names[prefix] = {prefix, index: 0})\n }\n}\n\ninterface ScopePath {\n property: string\n itemIndex: number\n}\n\nexport class ValueScopeName extends Name {\n readonly prefix: string\n value?: NameValue\n scopePath?: Code\n\n constructor(prefix: string, nameStr: string) {\n super(nameStr)\n this.prefix = prefix\n }\n\n setValue(value: NameValue, {property, itemIndex}: ScopePath): void {\n this.value = value\n this.scopePath = _`.${new Name(property)}[${itemIndex}]`\n }\n}\n\ninterface VSOptions extends ValueScopeOptions {\n _n: Code\n}\n\nconst line = _`\\n`\n\nexport class ValueScope extends Scope {\n protected readonly _values: ScopeValues = {}\n protected readonly _scope: ScopeStore\n readonly opts: VSOptions\n\n constructor(opts: ValueScopeOptions) {\n super(opts)\n this._scope = opts.scope\n this.opts = {...opts, _n: opts.lines ? line : nil}\n }\n\n get(): ScopeStore {\n return this._scope\n }\n\n name(prefix: string): ValueScopeName {\n return new ValueScopeName(prefix, this._newName(prefix))\n }\n\n value(nameOrPrefix: ValueScopeName | string, value: NameValue): ValueScopeName {\n if (value.ref === undefined) throw new Error(\"CodeGen: ref must be passed in value\")\n const name = this.toName(nameOrPrefix) as ValueScopeName\n const {prefix} = name\n const valueKey = value.key ?? value.ref\n let vs = this._values[prefix]\n if (vs) {\n const _name = vs.get(valueKey)\n if (_name) return _name\n } else {\n vs = this._values[prefix] = new Map()\n }\n vs.set(valueKey, name)\n\n const s = this._scope[prefix] || (this._scope[prefix] = [])\n const itemIndex = s.length\n s[itemIndex] = value.ref\n name.setValue(value, {property: prefix, itemIndex})\n return name\n }\n\n getValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n const vs = this._values[prefix]\n if (!vs) return\n return vs.get(keyOrRef)\n }\n\n scopeRefs(scopeName: Name, values: ScopeValues | ScopeValueSets = this._values): Code {\n return this._reduceValues(values, (name: ValueScopeName) => {\n if (name.scopePath === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return _`${scopeName}${name.scopePath}`\n })\n }\n\n scopeCode(\n values: ScopeValues | ScopeValueSets = this._values,\n usedValues?: UsedScopeValues,\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n return this._reduceValues(\n values,\n (name: ValueScopeName) => {\n if (name.value === undefined) throw new Error(`CodeGen: name \"${name}\" has no value`)\n return name.value.code\n },\n usedValues,\n getCode\n )\n }\n\n private _reduceValues(\n values: ScopeValues | ScopeValueSets,\n valueCode: (n: ValueScopeName) => Code | undefined,\n usedValues: UsedScopeValues = {},\n getCode?: (n: ValueScopeName) => Code | undefined\n ): Code {\n let code: Code = nil\n for (const prefix in values) {\n const vs = values[prefix]\n if (!vs) continue\n const nameSet = (usedValues[prefix] = usedValues[prefix] || new Map())\n vs.forEach((name: ValueScopeName) => {\n if (nameSet.has(name)) return\n nameSet.set(name, UsedValueState.Started)\n let c = valueCode(name)\n if (c) {\n const def = this.opts.es5 ? varKinds.var : varKinds.const\n code = _`${code}${def} ${name} = ${c};${this.opts._n}`\n } else if ((c = getCode?.(name))) {\n code = _`${code}${c}${this.opts._n}`\n } else {\n throw new ValueError(name)\n }\n nameSet.set(name, UsedValueState.Completed)\n })\n }\n return code\n }\n}\n", "import type {ScopeValueSets, NameValue, ValueScope, ValueScopeName} from \"./scope\"\nimport {_, nil, _Code, Code, Name, UsedNames, CodeItem, addCodeArg, _CodeOrName} from \"./code\"\nimport {Scope, varKinds} from \"./scope\"\n\nexport {_, str, strConcat, nil, getProperty, stringify, regexpCode, Name, Code} from \"./code\"\nexport {Scope, ScopeStore, ValueScope, ValueScopeName, ScopeValueSets, varKinds} from \"./scope\"\n\n// type for expressions that can be safely inserted in code without quotes\nexport type SafeExpr = Code | number | boolean | null\n\n// type that is either Code of function that adds code to CodeGen instance using its methods\nexport type Block = Code | (() => void)\n\nexport const operators = {\n GT: new _Code(\">\"),\n GTE: new _Code(\">=\"),\n LT: new _Code(\"<\"),\n LTE: new _Code(\"<=\"),\n EQ: new _Code(\"===\"),\n NEQ: new _Code(\"!==\"),\n NOT: new _Code(\"!\"),\n OR: new _Code(\"||\"),\n AND: new _Code(\"&&\"),\n ADD: new _Code(\"+\"),\n}\n\nabstract class Node {\n abstract readonly names: UsedNames\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n return this\n }\n\n optimizeNames(_names: UsedNames, _constants: Constants): this | undefined {\n return this\n }\n\n // get count(): number {\n // return 1\n // }\n}\n\nclass Def extends Node {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private rhs?: SafeExpr\n ) {\n super()\n }\n\n render({es5, _n}: CGOptions): string {\n const varKind = es5 ? varKinds.var : this.varKind\n const rhs = this.rhs === undefined ? \"\" : ` = ${this.rhs}`\n return `${varKind} ${this.name}${rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!names[this.name.str]) return\n if (this.rhs) this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.rhs instanceof _CodeOrName ? this.rhs.names : {}\n }\n}\n\nclass Assign extends Node {\n constructor(\n readonly lhs: Code,\n public rhs: SafeExpr,\n private readonly sideEffects?: boolean\n ) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} = ${this.rhs};` + _n\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (this.lhs instanceof Name && !names[this.lhs.str] && !this.sideEffects) return\n this.rhs = optimizeExpr(this.rhs, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = this.lhs instanceof Name ? {} : {...this.lhs.names}\n return addExprNames(names, this.rhs)\n }\n}\n\nclass AssignOp extends Assign {\n constructor(\n lhs: Code,\n private readonly op: Code,\n rhs: SafeExpr,\n sideEffects?: boolean\n ) {\n super(lhs, rhs, sideEffects)\n }\n\n render({_n}: CGOptions): string {\n return `${this.lhs} ${this.op}= ${this.rhs};` + _n\n }\n}\n\nclass Label extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label: Name) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.label}:` + _n\n }\n}\n\nclass Break extends Node {\n readonly names: UsedNames = {}\n constructor(readonly label?: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n const label = this.label ? ` ${this.label}` : \"\"\n return `break${label};` + _n\n }\n}\n\nclass Throw extends Node {\n constructor(readonly error: Code) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `throw ${this.error};` + _n\n }\n\n get names(): UsedNames {\n return this.error.names\n }\n}\n\nclass AnyCode extends Node {\n constructor(private code: SafeExpr) {\n super()\n }\n\n render({_n}: CGOptions): string {\n return `${this.code};` + _n\n }\n\n optimizeNodes(): this | undefined {\n return `${this.code}` ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n this.code = optimizeExpr(this.code, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return this.code instanceof _CodeOrName ? this.code.names : {}\n }\n}\n\nabstract class ParentNode extends Node {\n constructor(readonly nodes: ChildNode[] = []) {\n super()\n }\n\n render(opts: CGOptions): string {\n return this.nodes.reduce((code, n) => code + n.render(opts), \"\")\n }\n\n optimizeNodes(): this | ChildNode | ChildNode[] | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n const n = nodes[i].optimizeNodes()\n if (Array.isArray(n)) nodes.splice(i, 1, ...n)\n else if (n) nodes[i] = n\n else nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n const {nodes} = this\n let i = nodes.length\n while (i--) {\n // iterating backwards improves 1-pass optimization\n const n = nodes[i]\n if (n.optimizeNames(names, constants)) continue\n subtractNames(names, n.names)\n nodes.splice(i, 1)\n }\n return nodes.length > 0 ? this : undefined\n }\n\n get names(): UsedNames {\n return this.nodes.reduce((names: UsedNames, n) => addNames(names, n.names), {})\n }\n\n // get count(): number {\n // return this.nodes.reduce((c, n) => c + n.count, 1)\n // }\n}\n\nabstract class BlockNode extends ParentNode {\n render(opts: CGOptions): string {\n return \"{\" + opts._n + super.render(opts) + \"}\" + opts._n\n }\n}\n\nclass Root extends ParentNode {}\n\nclass Else extends BlockNode {\n static readonly kind = \"else\"\n}\n\nclass If extends BlockNode {\n static readonly kind = \"if\"\n else?: If | Else\n constructor(\n private condition: Code | boolean,\n nodes?: ChildNode[]\n ) {\n super(nodes)\n }\n\n render(opts: CGOptions): string {\n let code = `if(${this.condition})` + super.render(opts)\n if (this.else) code += \"else \" + this.else.render(opts)\n return code\n }\n\n optimizeNodes(): If | ChildNode[] | undefined {\n super.optimizeNodes()\n const cond = this.condition\n if (cond === true) return this.nodes // else is ignored here\n let e = this.else\n if (e) {\n const ns = e.optimizeNodes()\n e = this.else = Array.isArray(ns) ? new Else(ns) : (ns as Else | undefined)\n }\n if (e) {\n if (cond === false) return e instanceof If ? e : e.nodes\n if (this.nodes.length) return this\n return new If(not(cond), e instanceof If ? [e] : e.nodes)\n }\n if (cond === false || !this.nodes.length) return undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n this.else = this.else?.optimizeNames(names, constants)\n if (!(super.optimizeNames(names, constants) || this.else)) return\n this.condition = optimizeExpr(this.condition, names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n addExprNames(names, this.condition)\n if (this.else) addNames(names, this.else.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.else?.count || 0)\n // }\n}\n\nabstract class For extends BlockNode {\n static readonly kind = \"for\"\n}\n\nclass ForLoop extends For {\n constructor(private iteration: Code) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.iteration})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iteration = optimizeExpr(this.iteration, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iteration.names)\n }\n}\n\nclass ForRange extends For {\n constructor(\n private readonly varKind: Name,\n private readonly name: Name,\n private readonly from: SafeExpr,\n private readonly to: SafeExpr\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const varKind = opts.es5 ? varKinds.var : this.varKind\n const {name, from, to} = this\n return `for(${varKind} ${name}=${from}; ${name}<${to}; ${name}++)` + super.render(opts)\n }\n\n get names(): UsedNames {\n const names = addExprNames(super.names, this.from)\n return addExprNames(names, this.to)\n }\n}\n\nclass ForIter extends For {\n constructor(\n private readonly loop: \"of\" | \"in\",\n private readonly varKind: Name,\n private readonly name: Name,\n private iterable: Code\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})` + super.render(opts)\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this | undefined {\n if (!super.optimizeNames(names, constants)) return\n this.iterable = optimizeExpr(this.iterable, names, constants)\n return this\n }\n\n get names(): UsedNames {\n return addNames(super.names, this.iterable.names)\n }\n}\n\nclass Func extends BlockNode {\n static readonly kind = \"func\"\n constructor(\n public name: Name,\n public args: Code,\n public async?: boolean\n ) {\n super()\n }\n\n render(opts: CGOptions): string {\n const _async = this.async ? \"async \" : \"\"\n return `${_async}function ${this.name}(${this.args})` + super.render(opts)\n }\n}\n\nclass Return extends ParentNode {\n static readonly kind = \"return\"\n\n render(opts: CGOptions): string {\n return \"return \" + super.render(opts)\n }\n}\n\nclass Try extends BlockNode {\n catch?: Catch\n finally?: Finally\n\n render(opts: CGOptions): string {\n let code = \"try\" + super.render(opts)\n if (this.catch) code += this.catch.render(opts)\n if (this.finally) code += this.finally.render(opts)\n return code\n }\n\n optimizeNodes(): this {\n super.optimizeNodes()\n this.catch?.optimizeNodes() as Catch | undefined\n this.finally?.optimizeNodes() as Finally | undefined\n return this\n }\n\n optimizeNames(names: UsedNames, constants: Constants): this {\n super.optimizeNames(names, constants)\n this.catch?.optimizeNames(names, constants)\n this.finally?.optimizeNames(names, constants)\n return this\n }\n\n get names(): UsedNames {\n const names = super.names\n if (this.catch) addNames(names, this.catch.names)\n if (this.finally) addNames(names, this.finally.names)\n return names\n }\n\n // get count(): number {\n // return super.count + (this.catch?.count || 0) + (this.finally?.count || 0)\n // }\n}\n\nclass Catch extends BlockNode {\n static readonly kind = \"catch\"\n constructor(readonly error: Name) {\n super()\n }\n\n render(opts: CGOptions): string {\n return `catch(${this.error})` + super.render(opts)\n }\n}\n\nclass Finally extends BlockNode {\n static readonly kind = \"finally\"\n render(opts: CGOptions): string {\n return \"finally\" + super.render(opts)\n }\n}\n\ntype StartBlockNode = If | For | Func | Return | Try\n\ntype LeafNode = Def | Assign | Label | Break | Throw | AnyCode\n\ntype ChildNode = StartBlockNode | LeafNode\n\ntype EndBlockNodeType =\n | typeof If\n | typeof Else\n | typeof For\n | typeof Func\n | typeof Return\n | typeof Catch\n | typeof Finally\n\ntype Constants = Record<string, SafeExpr | undefined>\n\nexport interface CodeGenOptions {\n es5?: boolean\n lines?: boolean\n ownProperties?: boolean\n}\n\ninterface CGOptions extends CodeGenOptions {\n _n: \"\\n\" | \"\"\n}\n\nexport class CodeGen {\n readonly _scope: Scope\n readonly _extScope: ValueScope\n readonly _values: ScopeValueSets = {}\n private readonly _nodes: ParentNode[]\n private readonly _blockStarts: number[] = []\n private readonly _constants: Constants = {}\n private readonly opts: CGOptions\n\n constructor(extScope: ValueScope, opts: CodeGenOptions = {}) {\n this.opts = {...opts, _n: opts.lines ? \"\\n\" : \"\"}\n this._extScope = extScope\n this._scope = new Scope({parent: extScope})\n this._nodes = [new Root()]\n }\n\n toString(): string {\n return this._root.render(this.opts)\n }\n\n // returns unique name in the internal scope\n name(prefix: string): Name {\n return this._scope.name(prefix)\n }\n\n // reserves unique name in the external scope\n scopeName(prefix: string): ValueScopeName {\n return this._extScope.name(prefix)\n }\n\n // reserves unique name in the external scope and assigns value to it\n scopeValue(prefixOrName: ValueScopeName | string, value: NameValue): Name {\n const name = this._extScope.value(prefixOrName, value)\n const vs = this._values[name.prefix] || (this._values[name.prefix] = new Set())\n vs.add(name)\n return name\n }\n\n getScopeValue(prefix: string, keyOrRef: unknown): ValueScopeName | undefined {\n return this._extScope.getValue(prefix, keyOrRef)\n }\n\n // return code that assigns values in the external scope to the names that are used internally\n // (same names that were returned by gen.scopeName or gen.scopeValue)\n scopeRefs(scopeName: Name): Code {\n return this._extScope.scopeRefs(scopeName, this._values)\n }\n\n scopeCode(): Code {\n return this._extScope.scopeCode(this._values)\n }\n\n private _def(\n varKind: Name,\n nameOrPrefix: Name | string,\n rhs?: SafeExpr,\n constant?: boolean\n ): Name {\n const name = this._scope.toName(nameOrPrefix)\n if (rhs !== undefined && constant) this._constants[name.str] = rhs\n this._leafNode(new Def(varKind, name, rhs))\n return name\n }\n\n // `const` declaration (`var` in es5 mode)\n const(nameOrPrefix: Name | string, rhs: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.const, nameOrPrefix, rhs, _constant)\n }\n\n // `let` declaration with optional assignment (`var` in es5 mode)\n let(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.let, nameOrPrefix, rhs, _constant)\n }\n\n // `var` declaration with optional assignment\n var(nameOrPrefix: Name | string, rhs?: SafeExpr, _constant?: boolean): Name {\n return this._def(varKinds.var, nameOrPrefix, rhs, _constant)\n }\n\n // assignment code\n assign(lhs: Code, rhs: SafeExpr, sideEffects?: boolean): CodeGen {\n return this._leafNode(new Assign(lhs, rhs, sideEffects))\n }\n\n // `+=` code\n add(lhs: Code, rhs: SafeExpr): CodeGen {\n return this._leafNode(new AssignOp(lhs, operators.ADD, rhs))\n }\n\n // appends passed SafeExpr to code or executes Block\n code(c: Block | SafeExpr): CodeGen {\n if (typeof c == \"function\") c()\n else if (c !== nil) this._leafNode(new AnyCode(c))\n return this\n }\n\n // returns code for object literal for the passed argument list of key-value pairs\n object(...keyValues: [Name | string, SafeExpr | string][]): _Code {\n const code: CodeItem[] = [\"{\"]\n for (const [key, value] of keyValues) {\n if (code.length > 1) code.push(\",\")\n code.push(key)\n if (key !== value || this.opts.es5) {\n code.push(\":\")\n addCodeArg(code, value)\n }\n }\n code.push(\"}\")\n return new _Code(code)\n }\n\n // `if` clause (or statement if `thenBody` and, optionally, `elseBody` are passed)\n if(condition: Code | boolean, thenBody?: Block, elseBody?: Block): CodeGen {\n this._blockNode(new If(condition))\n\n if (thenBody && elseBody) {\n this.code(thenBody).else().code(elseBody).endIf()\n } else if (thenBody) {\n this.code(thenBody).endIf()\n } else if (elseBody) {\n throw new Error('CodeGen: \"else\" body without \"then\" body')\n }\n return this\n }\n\n // `else if` clause - invalid without `if` or after `else` clauses\n elseIf(condition: Code | boolean): CodeGen {\n return this._elseNode(new If(condition))\n }\n\n // `else` clause - only valid after `if` or `else if` clauses\n else(): CodeGen {\n return this._elseNode(new Else())\n }\n\n // end `if` statement (needed if gen.if was used only with condition)\n endIf(): CodeGen {\n return this._endBlockNode(If, Else)\n }\n\n private _for(node: For, forBody?: Block): CodeGen {\n this._blockNode(node)\n if (forBody) this.code(forBody).endFor()\n return this\n }\n\n // a generic `for` clause (or statement if `forBody` is passed)\n for(iteration: Code, forBody?: Block): CodeGen {\n return this._for(new ForLoop(iteration), forBody)\n }\n\n // `for` statement for a range of values\n forRange(\n nameOrPrefix: Name | string,\n from: SafeExpr,\n to: SafeExpr,\n forBody: (index: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.let\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForRange(varKind, name, from, to), () => forBody(name))\n }\n\n // `for-of` statement (in es5 mode replace with a normal for loop)\n forOf(\n nameOrPrefix: Name | string,\n iterable: Code,\n forBody: (item: Name) => void,\n varKind: Code = varKinds.const\n ): CodeGen {\n const name = this._scope.toName(nameOrPrefix)\n if (this.opts.es5) {\n const arr = iterable instanceof Name ? iterable : this.var(\"_arr\", iterable)\n return this.forRange(\"_i\", 0, _`${arr}.length`, (i) => {\n this.var(name, _`${arr}[${i}]`)\n forBody(name)\n })\n }\n return this._for(new ForIter(\"of\", varKind, name, iterable), () => forBody(name))\n }\n\n // `for-in` statement.\n // With option `ownProperties` replaced with a `for-of` loop for object keys\n forIn(\n nameOrPrefix: Name | string,\n obj: Code,\n forBody: (item: Name) => void,\n varKind: Code = this.opts.es5 ? varKinds.var : varKinds.const\n ): CodeGen {\n if (this.opts.ownProperties) {\n return this.forOf(nameOrPrefix, _`Object.keys(${obj})`, forBody)\n }\n const name = this._scope.toName(nameOrPrefix)\n return this._for(new ForIter(\"in\", varKind, name, obj), () => forBody(name))\n }\n\n // end `for` loop\n endFor(): CodeGen {\n return this._endBlockNode(For)\n }\n\n // `label` statement\n label(label: Name): CodeGen {\n return this._leafNode(new Label(label))\n }\n\n // `break` statement\n break(label?: Code): CodeGen {\n return this._leafNode(new Break(label))\n }\n\n // `return` statement\n return(value: Block | SafeExpr): CodeGen {\n const node = new Return()\n this._blockNode(node)\n this.code(value)\n if (node.nodes.length !== 1) throw new Error('CodeGen: \"return\" should have one node')\n return this._endBlockNode(Return)\n }\n\n // `try` statement\n try(tryBody: Block, catchCode?: (e: Name) => void, finallyCode?: Block): CodeGen {\n if (!catchCode && !finallyCode) throw new Error('CodeGen: \"try\" without \"catch\" and \"finally\"')\n const node = new Try()\n this._blockNode(node)\n this.code(tryBody)\n if (catchCode) {\n const error = this.name(\"e\")\n this._currNode = node.catch = new Catch(error)\n catchCode(error)\n }\n if (finallyCode) {\n this._currNode = node.finally = new Finally()\n this.code(finallyCode)\n }\n return this._endBlockNode(Catch, Finally)\n }\n\n // `throw` statement\n throw(error: Code): CodeGen {\n return this._leafNode(new Throw(error))\n }\n\n // start self-balancing block\n block(body?: Block, nodeCount?: number): CodeGen {\n this._blockStarts.push(this._nodes.length)\n if (body) this.code(body).endBlock(nodeCount)\n return this\n }\n\n // end the current self-balancing block\n endBlock(nodeCount?: number): CodeGen {\n const len = this._blockStarts.pop()\n if (len === undefined) throw new Error(\"CodeGen: not in self-balancing block\")\n const toClose = this._nodes.length - len\n if (toClose < 0 || (nodeCount !== undefined && toClose !== nodeCount)) {\n throw new Error(`CodeGen: wrong number of nodes: ${toClose} vs ${nodeCount} expected`)\n }\n this._nodes.length = len\n return this\n }\n\n // `function` heading (or definition if funcBody is passed)\n func(name: Name, args: Code = nil, async?: boolean, funcBody?: Block): CodeGen {\n this._blockNode(new Func(name, args, async))\n if (funcBody) this.code(funcBody).endFunc()\n return this\n }\n\n // end function definition\n endFunc(): CodeGen {\n return this._endBlockNode(Func)\n }\n\n optimize(n = 1): void {\n while (n-- > 0) {\n this._root.optimizeNodes()\n this._root.optimizeNames(this._root.names, this._constants)\n }\n }\n\n private _leafNode(node: LeafNode): CodeGen {\n this._currNode.nodes.push(node)\n return this\n }\n\n private _blockNode(node: StartBlockNode): void {\n this._currNode.nodes.push(node)\n this._nodes.push(node)\n }\n\n private _endBlockNode(N1: EndBlockNodeType, N2?: EndBlockNodeType): CodeGen {\n const n = this._currNode\n if (n instanceof N1 || (N2 && n instanceof N2)) {\n this._nodes.pop()\n return this\n }\n throw new Error(`CodeGen: not in block \"${N2 ? `${N1.kind}/${N2.kind}` : N1.kind}\"`)\n }\n\n private _elseNode(node: If | Else): CodeGen {\n const n = this._currNode\n if (!(n instanceof If)) {\n throw new Error('CodeGen: \"else\" without \"if\"')\n }\n this._currNode = n.else = node\n return this\n }\n\n private get _root(): Root {\n return this._nodes[0] as Root\n }\n\n private get _currNode(): ParentNode {\n const ns = this._nodes\n return ns[ns.length - 1]\n }\n\n private set _currNode(node: ParentNode) {\n const ns = this._nodes\n ns[ns.length - 1] = node\n }\n\n // get nodeCount(): number {\n // return this._root.count\n // }\n}\n\nfunction addNames(names: UsedNames, from: UsedNames): UsedNames {\n for (const n in from) names[n] = (names[n] || 0) + (from[n] || 0)\n return names\n}\n\nfunction addExprNames(names: UsedNames, from: SafeExpr): UsedNames {\n return from instanceof _CodeOrName ? addNames(names, from.names) : names\n}\n\nfunction optimizeExpr<T extends SafeExpr | Code>(expr: T, names: UsedNames, constants: Constants): T\nfunction optimizeExpr(expr: SafeExpr, names: UsedNames, constants: Constants): SafeExpr {\n if (expr instanceof Name) return replaceName(expr)\n if (!canOptimize(expr)) return expr\n return new _Code(\n expr._items.reduce((items: CodeItem[], c: SafeExpr | string) => {\n if (c instanceof Name) c = replaceName(c)\n if (c instanceof _Code) items.push(...c._items)\n else items.push(c)\n return items\n }, [])\n )\n\n function replaceName(n: Name): SafeExpr {\n const c = constants[n.str]\n if (c === undefined || names[n.str] !== 1) return n\n delete names[n.str]\n return c\n }\n\n function canOptimize(e: SafeExpr): e is _Code {\n return (\n e instanceof _Code &&\n e._items.some(\n (c) => c instanceof Name && names[c.str] === 1 && constants[c.str] !== undefined\n )\n )\n }\n}\n\nfunction subtractNames(names: UsedNames, from: UsedNames): void {\n for (const n in from) names[n] = (names[n] || 0) - (from[n] || 0)\n}\n\nexport function not<T extends Code | SafeExpr>(x: T): T\nexport function not(x: Code | SafeExpr): Code | SafeExpr {\n return typeof x == \"boolean\" || typeof x == \"number\" || x === null ? !x : _`!${par(x)}`\n}\n\nconst andCode = mappend(operators.AND)\n\n// boolean AND (&&) expression with the passed arguments\nexport function and(...args: Code[]): Code {\n return args.reduce(andCode)\n}\n\nconst orCode = mappend(operators.OR)\n\n// boolean OR (||) expression with the passed arguments\nexport function or(...args: Code[]): Code {\n return args.reduce(orCode)\n}\n\ntype MAppend = (x: Code, y: Code) => Code\n\nfunction mappend(op: Code): MAppend {\n return (x, y) => (x === nil ? y : y === nil ? x : _`${par(x)} ${op} ${par(y)}`)\n}\n\nfunction par(x: Code): Code {\n return x instanceof Name ? x : _`(${x})`\n}\n", "import type {AnySchema, EvaluatedProperties, EvaluatedItems} from \"../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \".\"\nimport {_, getProperty, Code, Name, CodeGen} from \"./codegen\"\nimport {_Code} from \"./codegen/code\"\nimport type {Rule, ValidationRules} from \"./rules\"\n\n// TODO refactor to use Set\nexport function toHash<T extends string = string>(arr: T[]): {[K in T]?: true} {\n const hash: {[K in T]?: true} = {}\n for (const item of arr) hash[item] = true\n return hash\n}\n\nexport function alwaysValidSchema(it: SchemaCxt, schema: AnySchema): boolean | void {\n if (typeof schema == \"boolean\") return schema\n if (Object.keys(schema).length === 0) return true\n checkUnknownRules(it, schema)\n return !schemaHasRules(schema, it.self.RULES.all)\n}\n\nexport function checkUnknownRules(it: SchemaCxt, schema: AnySchema = it.schema): void {\n const {opts, self} = it\n if (!opts.strictSchema) return\n if (typeof schema === \"boolean\") return\n const rules = self.RULES.keywords\n for (const key in schema) {\n if (!rules[key]) checkStrictMode(it, `unknown keyword: \"${key}\"`)\n }\n}\n\nexport function schemaHasRules(\n schema: AnySchema,\n rules: {[Key in string]?: boolean | Rule}\n): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (rules[key]) return true\n return false\n}\n\nexport function schemaHasRulesButRef(schema: AnySchema, RULES: ValidationRules): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (key !== \"$ref\" && RULES.all[key]) return true\n return false\n}\n\nexport function schemaRefOrVal(\n {topSchemaRef, schemaPath}: SchemaObjCxt,\n schema: unknown,\n keyword: string,\n $data?: string | false\n): Code | number | boolean {\n if (!$data) {\n if (typeof schema == \"number\" || typeof schema == \"boolean\") return schema\n if (typeof schema == \"string\") return _`${schema}`\n }\n return _`${topSchemaRef}${schemaPath}${getProperty(keyword)}`\n}\n\nexport function unescapeFragment(str: string): string {\n return unescapeJsonPointer(decodeURIComponent(str))\n}\n\nexport function escapeFragment(str: string | number): string {\n return encodeURIComponent(escapeJsonPointer(str))\n}\n\nexport function escapeJsonPointer(str: string | number): string {\n if (typeof str == \"number\") return `${str}`\n return str.replace(/~/g, \"~0\").replace(/\\//g, \"~1\")\n}\n\nexport function unescapeJsonPointer(str: string): string {\n return str.replace(/~1/g, \"/\").replace(/~0/g, \"~\")\n}\n\nexport function eachItem<T>(xs: T | T[], f: (x: T) => void): void {\n if (Array.isArray(xs)) {\n for (const x of xs) f(x)\n } else {\n f(xs)\n }\n}\n\ntype SomeEvaluated = EvaluatedProperties | EvaluatedItems\n\ntype MergeEvaluatedFunc<T extends SomeEvaluated> = (\n gen: CodeGen,\n from: Name | T,\n to: Name | Exclude<T, true> | undefined,\n toName?: typeof Name\n) => Name | T\n\ninterface MakeMergeFuncArgs<T extends SomeEvaluated> {\n mergeNames: (gen: CodeGen, from: Name, to: Name) => void\n mergeToName: (gen: CodeGen, from: T, to: Name) => void\n mergeValues: (from: T, to: Exclude<T, true>) => T\n resultToName: (gen: CodeGen, res?: T) => Name\n}\n\nfunction makeMergeEvaluated<T extends SomeEvaluated>({\n mergeNames,\n mergeToName,\n mergeValues,\n resultToName,\n}: MakeMergeFuncArgs<T>): MergeEvaluatedFunc<T> {\n return (gen, from, to, toName) => {\n const res =\n to === undefined\n ? from\n : to instanceof Name\n ? (from instanceof Name ? mergeNames(gen, from, to) : mergeToName(gen, from, to), to)\n : from instanceof Name\n ? (mergeToName(gen, to, from), from)\n : mergeValues(from, to)\n return toName === Name && !(res instanceof Name) ? resultToName(gen, res) : res\n }\n}\n\ninterface MergeEvaluated {\n props: MergeEvaluatedFunc<EvaluatedProperties>\n items: MergeEvaluatedFunc<EvaluatedItems>\n}\n\nexport const mergeEvaluated: MergeEvaluated = {\n props: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () => {\n gen.if(\n _`${from} === true`,\n () => gen.assign(to, true),\n () => gen.assign(to, _`${to} || {}`).code(_`Object.assign(${to}, ${from})`)\n )\n }),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () => {\n if (from === true) {\n gen.assign(to, true)\n } else {\n gen.assign(to, _`${to} || {}`)\n setEvaluated(gen, to, from)\n }\n }),\n mergeValues: (from, to) => (from === true ? true : {...from, ...to}),\n resultToName: evaluatedPropsToName,\n }),\n items: makeMergeEvaluated({\n mergeNames: (gen, from, to) =>\n gen.if(_`${to} !== true && ${from} !== undefined`, () =>\n gen.assign(to, _`${from} === true ? true : ${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeToName: (gen, from, to) =>\n gen.if(_`${to} !== true`, () =>\n gen.assign(to, from === true ? true : _`${to} > ${from} ? ${to} : ${from}`)\n ),\n mergeValues: (from, to) => (from === true ? true : Math.max(from, to)),\n resultToName: (gen, items) => gen.var(\"items\", items),\n }),\n}\n\nexport function evaluatedPropsToName(gen: CodeGen, ps?: EvaluatedProperties): Name {\n if (ps === true) return gen.var(\"props\", true)\n const props = gen.var(\"props\", _`{}`)\n if (ps !== undefined) setEvaluated(gen, props, ps)\n return props\n}\n\nexport function setEvaluated(gen: CodeGen, props: Name, ps: {[K in string]?: true}): void {\n Object.keys(ps).forEach((p) => gen.assign(_`${props}${getProperty(p)}`, true))\n}\n\nconst snippets: {[S in string]?: _Code} = {}\n\nexport function useFunc(gen: CodeGen, f: {code: string}): Name {\n return gen.scopeValue(\"func\", {\n ref: f,\n code: snippets[f.code] || (snippets[f.code] = new _Code(f.code)),\n })\n}\n\nexport enum Type {\n Num,\n Str,\n}\n\nexport function getErrorPath(\n dataProp: Name | string | number,\n dataPropType?: Type,\n jsPropertySyntax?: boolean\n): Code | string {\n // let path\n if (dataProp instanceof Name) {\n const isNumber = dataPropType === Type.Num\n return jsPropertySyntax\n ? isNumber\n ? _`\"[\" + ${dataProp} + \"]\"`\n : _`\"['\" + ${dataProp} + \"']\"`\n : isNumber\n ? _`\"/\" + ${dataProp}`\n : _`\"/\" + ${dataProp}.replace(/~/g, \"~0\").replace(/\\\\//g, \"~1\")` // TODO maybe use global escapePointer\n }\n return jsPropertySyntax ? getProperty(dataProp).toString() : \"/\" + escapeJsonPointer(dataProp)\n}\n\nexport function checkStrictMode(\n it: SchemaCxt,\n msg: string,\n mode: boolean | \"log\" = it.opts.strictSchema\n): void {\n if (!mode) return\n msg = `strict mode: ${msg}`\n if (mode === true) throw new Error(msg)\n it.self.logger.warn(msg)\n}\n", "import {Name} from \"./codegen\"\n\nconst names = {\n // validation function arguments\n data: new Name(\"data\"), // data passed to validation function\n // args passed from referencing schema\n valCxt: new Name(\"valCxt\"), // validation/data context - should not be used directly, it is destructured to the names below\n instancePath: new Name(\"instancePath\"),\n parentData: new Name(\"parentData\"),\n parentDataProperty: new Name(\"parentDataProperty\"),\n rootData: new Name(\"rootData\"), // root data - same as the data passed to the first/top validation function\n dynamicAnchors: new Name(\"dynamicAnchors\"), // used to support recursiveRef and dynamicRef\n // function scoped variables\n vErrors: new Name(\"vErrors\"), // null or array of validation errors\n errors: new Name(\"errors\"), // counter of validation errors\n this: new Name(\"this\"),\n // \"globals\"\n self: new Name(\"self\"),\n scope: new Name(\"scope\"),\n // JTD serialize/parse name for JSON string and position\n json: new Name(\"json\"),\n jsonPos: new Name(\"jsonPos\"),\n jsonLen: new Name(\"jsonLen\"),\n jsonPart: new Name(\"jsonPart\"),\n}\n\nexport default names\n", "import type {KeywordErrorCxt, KeywordErrorDefinition} from \"../types\"\nimport type {SchemaCxt} from \"./index\"\nimport {CodeGen, _, str, strConcat, Code, Name} from \"./codegen\"\nimport {SafeExpr} from \"./codegen/code\"\nimport {getErrorPath, Type} from \"./util\"\nimport N from \"./names\"\n\nexport const keywordError: KeywordErrorDefinition = {\n message: ({keyword}) => str`must pass \"${keyword}\" keyword validation`,\n}\n\nexport const keyword$DataError: KeywordErrorDefinition = {\n message: ({keyword, schemaType}) =>\n schemaType\n ? str`\"${keyword}\" keyword must be ${schemaType} ($data)`\n : str`\"${keyword}\" keyword is invalid ($data)`,\n}\n\nexport interface ErrorPaths {\n instancePath?: Code\n schemaPath?: string\n parentSchema?: boolean\n}\n\nexport function reportError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths,\n overrideAllErrors?: boolean\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n if (overrideAllErrors ?? (compositeRule || allErrors)) {\n addError(gen, errObj)\n } else {\n returnErrors(it, _`[${errObj}]`)\n }\n}\n\nexport function reportExtraError(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition = keywordError,\n errorPaths?: ErrorPaths\n): void {\n const {it} = cxt\n const {gen, compositeRule, allErrors} = it\n const errObj = errorObjectCode(cxt, error, errorPaths)\n addError(gen, errObj)\n if (!(compositeRule || allErrors)) {\n returnErrors(it, N.vErrors)\n }\n}\n\nexport function resetErrorsCount(gen: CodeGen, errsCount: Name): void {\n gen.assign(N.errors, errsCount)\n gen.if(_`${N.vErrors} !== null`, () =>\n gen.if(\n errsCount,\n () => gen.assign(_`${N.vErrors}.length`, errsCount),\n () => gen.assign(N.vErrors, null)\n )\n )\n}\n\nexport function extendErrors({\n gen,\n keyword,\n schemaValue,\n data,\n errsCount,\n it,\n}: KeywordErrorCxt): void {\n /* istanbul ignore if */\n if (errsCount === undefined) throw new Error(\"ajv implementation error\")\n const err = gen.name(\"err\")\n gen.forRange(\"i\", errsCount, N.errors, (i) => {\n gen.const(err, _`${N.vErrors}[${i}]`)\n gen.if(_`${err}.instancePath === undefined`, () =>\n gen.assign(_`${err}.instancePath`, strConcat(N.instancePath, it.errorPath))\n )\n gen.assign(_`${err}.schemaPath`, str`${it.errSchemaPath}/${keyword}`)\n if (it.opts.verbose) {\n gen.assign(_`${err}.schema`, schemaValue)\n gen.assign(_`${err}.data`, data)\n }\n })\n}\n\nfunction addError(gen: CodeGen, errObj: Code): void {\n const err = gen.const(\"err\", errObj)\n gen.if(\n _`${N.vErrors} === null`,\n () => gen.assign(N.vErrors, _`[${err}]`),\n _`${N.vErrors}.push(${err})`\n )\n gen.code(_`${N.errors}++`)\n}\n\nfunction returnErrors(it: SchemaCxt, errs: Code): void {\n const {gen, validateName, schemaEnv} = it\n if (schemaEnv.$async) {\n gen.throw(_`new ${it.ValidationError as Name}(${errs})`)\n } else {\n gen.assign(_`${validateName}.errors`, errs)\n gen.return(false)\n }\n}\n\nconst E = {\n keyword: new Name(\"keyword\"),\n schemaPath: new Name(\"schemaPath\"), // also used in JTD errors\n params: new Name(\"params\"),\n propertyName: new Name(\"propertyName\"),\n message: new Name(\"message\"),\n schema: new Name(\"schema\"),\n parentSchema: new Name(\"parentSchema\"),\n}\n\nfunction errorObjectCode(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths?: ErrorPaths\n): Code {\n const {createErrors} = cxt.it\n if (createErrors === false) return _`{}`\n return errorObject(cxt, error, errorPaths)\n}\n\nfunction errorObject(\n cxt: KeywordErrorCxt,\n error: KeywordErrorDefinition,\n errorPaths: ErrorPaths = {}\n): Code {\n const {gen, it} = cxt\n const keyValues: [Name, SafeExpr | string][] = [\n errorInstancePath(it, errorPaths),\n errorSchemaPath(cxt, errorPaths),\n ]\n extraErrorProps(cxt, error, keyValues)\n return gen.object(...keyValues)\n}\n\nfunction errorInstancePath({errorPath}: SchemaCxt, {instancePath}: ErrorPaths): [Name, Code] {\n const instPath = instancePath\n ? str`${errorPath}${getErrorPath(instancePath, Type.Str)}`\n : errorPath\n return [N.instancePath, strConcat(N.instancePath, instPath)]\n}\n\nfunction errorSchemaPath(\n {keyword, it: {errSchemaPath}}: KeywordErrorCxt,\n {schemaPath, parentSchema}: ErrorPaths\n): [Name, string | Code] {\n let schPath = parentSchema ? errSchemaPath : str`${errSchemaPath}/${keyword}`\n if (schemaPath) {\n schPath = str`${schPath}${getErrorPath(schemaPath, Type.Str)}`\n }\n return [E.schemaPath, schPath]\n}\n\nfunction extraErrorProps(\n cxt: KeywordErrorCxt,\n {params, message}: KeywordErrorDefinition,\n keyValues: [Name, SafeExpr | string][]\n): void {\n const {keyword, data, schemaValue, it} = cxt\n const {opts, propertyName, topSchemaRef, schemaPath} = it\n keyValues.push(\n [E.keyword, keyword],\n [E.params, typeof params == \"function\" ? params(cxt) : params || _`{}`]\n )\n if (opts.messages) {\n keyValues.push([E.message, typeof message == \"function\" ? message(cxt) : message])\n }\n if (opts.verbose) {\n keyValues.push(\n [E.schema, schemaValue],\n [E.parentSchema, _`${topSchemaRef}${schemaPath}`],\n [N.data, data]\n )\n }\n if (propertyName) keyValues.push([E.propertyName, propertyName])\n}\n", "import type {KeywordErrorDefinition, KeywordErrorCxt} from \"../../types\"\nimport type {SchemaCxt} from \"..\"\nimport {reportError} from \"../errors\"\nimport {_, Name} from \"../codegen\"\nimport N from \"../names\"\n\nconst boolError: KeywordErrorDefinition = {\n message: \"boolean schema is false\",\n}\n\nexport function topBoolOrEmptySchema(it: SchemaCxt): void {\n const {gen, schema, validateName} = it\n if (schema === false) {\n falseSchemaError(it, false)\n } else if (typeof schema == \"object\" && schema.$async === true) {\n gen.return(N.data)\n } else {\n gen.assign(_`${validateName}.errors`, null)\n gen.return(true)\n }\n}\n\nexport function boolOrEmptySchema(it: SchemaCxt, valid: Name): void {\n const {gen, schema} = it\n if (schema === false) {\n gen.var(valid, false) // TODO var\n falseSchemaError(it)\n } else {\n gen.var(valid, true) // TODO var\n }\n}\n\nfunction falseSchemaError(it: SchemaCxt, overrideAllErrors?: boolean): void {\n const {gen, data} = it\n // TODO maybe some other interface should be used for non-keyword validation errors...\n const cxt: KeywordErrorCxt = {\n gen,\n keyword: \"false schema\",\n data,\n schema: false,\n schemaCode: false,\n schemaValue: false,\n params: {},\n it,\n }\n reportError(cxt, boolError, undefined, overrideAllErrors)\n}\n", "import type {AddedKeywordDefinition} from \"../types\"\n\nconst _jsonTypes = [\"string\", \"number\", \"integer\", \"boolean\", \"null\", \"object\", \"array\"] as const\n\nexport type JSONType = (typeof _jsonTypes)[number]\n\nconst jsonTypes: Set<string> = new Set(_jsonTypes)\n\nexport function isJSONType(x: unknown): x is JSONType {\n return typeof x == \"string\" && jsonTypes.has(x)\n}\n\ntype ValidationTypes = {\n [K in JSONType]: boolean | RuleGroup | undefined\n}\n\nexport interface ValidationRules {\n rules: RuleGroup[]\n post: RuleGroup\n all: {[Key in string]?: boolean | Rule} // rules that have to be validated\n keywords: {[Key in string]?: boolean} // all known keywords (superset of \"all\")\n types: ValidationTypes\n}\n\nexport interface RuleGroup {\n type?: JSONType\n rules: Rule[]\n}\n\n// This interface wraps KeywordDefinition because definition can have multiple keywords\nexport interface Rule {\n keyword: string\n definition: AddedKeywordDefinition\n}\n\nexport function getRules(): ValidationRules {\n const groups: Record<\"number\" | \"string\" | \"array\" | \"object\", RuleGroup> = {\n number: {type: \"number\", rules: []},\n string: {type: \"string\", rules: []},\n array: {type: \"array\", rules: []},\n object: {type: \"object\", rules: []},\n }\n return {\n types: {...groups, integer: true, boolean: true, null: true},\n rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object],\n post: {rules: []},\n all: {},\n keywords: {},\n }\n}\n", "import type {AnySchemaObject} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport type {JSONType, RuleGroup, Rule} from \"../rules\"\n\nexport function schemaHasRulesForType(\n {schema, self}: SchemaObjCxt,\n type: JSONType\n): boolean | undefined {\n const group = self.RULES.types[type]\n return group && group !== true && shouldUseGroup(schema, group)\n}\n\nexport function shouldUseGroup(schema: AnySchemaObject, group: RuleGroup): boolean {\n return group.rules.some((rule) => shouldUseRule(schema, rule))\n}\n\nexport function shouldUseRule(schema: AnySchemaObject, rule: Rule): boolean | undefined {\n return (\n schema[rule.keyword] !== undefined ||\n rule.definition.implements?.some((kwd) => schema[kwd] !== undefined)\n )\n}\n", "import type {\n KeywordErrorDefinition,\n KeywordErrorCxt,\n ErrorObject,\n AnySchemaObject,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {isJSONType, JSONType} from \"../rules\"\nimport {schemaHasRulesForType} from \"./applicability\"\nimport {reportError} from \"../errors\"\nimport {_, nil, and, not, operators, Code, Name} from \"../codegen\"\nimport {toHash, schemaRefOrVal} from \"../util\"\n\nexport enum DataType {\n Correct,\n Wrong,\n}\n\nexport function getSchemaTypes(schema: AnySchemaObject): JSONType[] {\n const types = getJSONTypes(schema.type)\n const hasNull = types.includes(\"null\")\n if (hasNull) {\n if (schema.nullable === false) throw new Error(\"type: null contradicts nullable: false\")\n } else {\n if (!types.length && schema.nullable !== undefined) {\n throw new Error('\"nullable\" cannot be used without \"type\"')\n }\n if (schema.nullable === true) types.push(\"null\")\n }\n return types\n}\n\n// eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\nexport function getJSONTypes(ts: unknown | unknown[]): JSONType[] {\n const types: unknown[] = Array.isArray(ts) ? ts : ts ? [ts] : []\n if (types.every(isJSONType)) return types\n throw new Error(\"type must be JSONType or JSONType[]: \" + types.join(\",\"))\n}\n\nexport function coerceAndCheckDataType(it: SchemaObjCxt, types: JSONType[]): boolean {\n const {gen, data, opts} = it\n const coerceTo = coerceToTypes(types, opts.coerceTypes)\n const checkTypes =\n types.length > 0 &&\n !(coerceTo.length === 0 && types.length === 1 && schemaHasRulesForType(it, types[0]))\n if (checkTypes) {\n const wrongType = checkDataTypes(types, data, opts.strictNumbers, DataType.Wrong)\n gen.if(wrongType, () => {\n if (coerceTo.length) coerceData(it, types, coerceTo)\n else reportTypeError(it)\n })\n }\n return checkTypes\n}\n\nconst COERCIBLE: Set<JSONType> = new Set([\"string\", \"number\", \"integer\", \"boolean\", \"null\"])\nfunction coerceToTypes(types: JSONType[], coerceTypes?: boolean | \"array\"): JSONType[] {\n return coerceTypes\n ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === \"array\" && t === \"array\"))\n : []\n}\n\nfunction coerceData(it: SchemaObjCxt, types: JSONType[], coerceTo: JSONType[]): void {\n const {gen, data, opts} = it\n const dataType = gen.let(\"dataType\", _`typeof ${data}`)\n const coerced = gen.let(\"coerced\", _`undefined`)\n if (opts.coerceTypes === \"array\") {\n gen.if(_`${dataType} == 'object' && Array.isArray(${data}) && ${data}.length == 1`, () =>\n gen\n .assign(data, _`${data}[0]`)\n .assign(dataType, _`typeof ${data}`)\n .if(checkDataTypes(types, data, opts.strictNumbers), () => gen.assign(coerced, data))\n )\n }\n gen.if(_`${coerced} !== undefined`)\n for (const t of coerceTo) {\n if (COERCIBLE.has(t) || (t === \"array\" && opts.coerceTypes === \"array\")) {\n coerceSpecificType(t)\n }\n }\n gen.else()\n reportTypeError(it)\n gen.endIf()\n\n gen.if(_`${coerced} !== undefined`, () => {\n gen.assign(data, coerced)\n assignParentData(it, coerced)\n })\n\n function coerceSpecificType(t: string): void {\n switch (t) {\n case \"string\":\n gen\n .elseIf(_`${dataType} == \"number\" || ${dataType} == \"boolean\"`)\n .assign(coerced, _`\"\" + ${data}`)\n .elseIf(_`${data} === null`)\n .assign(coerced, _`\"\"`)\n return\n case \"number\":\n gen\n .elseIf(\n _`${dataType} == \"boolean\" || ${data} === null\n || (${dataType} == \"string\" && ${data} && ${data} == +${data})`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"integer\":\n gen\n .elseIf(\n _`${dataType} === \"boolean\" || ${data} === null\n || (${dataType} === \"string\" && ${data} && ${data} == +${data} && !(${data} % 1))`\n )\n .assign(coerced, _`+${data}`)\n return\n case \"boolean\":\n gen\n .elseIf(_`${data} === \"false\" || ${data} === 0 || ${data} === null`)\n .assign(coerced, false)\n .elseIf(_`${data} === \"true\" || ${data} === 1`)\n .assign(coerced, true)\n return\n case \"null\":\n gen.elseIf(_`${data} === \"\" || ${data} === 0 || ${data} === false`)\n gen.assign(coerced, null)\n return\n\n case \"array\":\n gen\n .elseIf(\n _`${dataType} === \"string\" || ${dataType} === \"number\"\n || ${dataType} === \"boolean\" || ${data} === null`\n )\n .assign(coerced, _`[${data}]`)\n }\n }\n}\n\nfunction assignParentData({gen, parentData, parentDataProperty}: SchemaObjCxt, expr: Name): void {\n // TODO use gen.property\n gen.if(_`${parentData} !== undefined`, () =>\n gen.assign(_`${parentData}[${parentDataProperty}]`, expr)\n )\n}\n\nexport function checkDataType(\n dataType: JSONType,\n data: Name,\n strictNums?: boolean | \"log\",\n correct = DataType.Correct\n): Code {\n const EQ = correct === DataType.Correct ? operators.EQ : operators.NEQ\n let cond: Code\n switch (dataType) {\n case \"null\":\n return _`${data} ${EQ} null`\n case \"array\":\n cond = _`Array.isArray(${data})`\n break\n case \"object\":\n cond = _`${data} && typeof ${data} == \"object\" && !Array.isArray(${data})`\n break\n case \"integer\":\n cond = numCond(_`!(${data} % 1) && !isNaN(${data})`)\n break\n case \"number\":\n cond = numCond()\n break\n default:\n return _`typeof ${data} ${EQ} ${dataType}`\n }\n return correct === DataType.Correct ? cond : not(cond)\n\n function numCond(_cond: Code = nil): Code {\n return and(_`typeof ${data} == \"number\"`, _cond, strictNums ? _`isFinite(${data})` : nil)\n }\n}\n\nexport function checkDataTypes(\n dataTypes: JSONType[],\n data: Name,\n strictNums?: boolean | \"log\",\n correct?: DataType\n): Code {\n if (dataTypes.length === 1) {\n return checkDataType(dataTypes[0], data, strictNums, correct)\n }\n let cond: Code\n const types = toHash(dataTypes)\n if (types.array && types.object) {\n const notObj = _`typeof ${data} != \"object\"`\n cond = types.null ? notObj : _`!${data} || ${notObj}`\n delete types.null\n delete types.array\n delete types.object\n } else {\n cond = nil\n }\n if (types.number) delete types.integer\n for (const t in types) cond = and(cond, checkDataType(t as JSONType, data, strictNums, correct))\n return cond\n}\n\nexport type TypeError = ErrorObject<\"type\", {type: string}>\n\nconst typeError: KeywordErrorDefinition = {\n message: ({schema}) => `must be ${schema}`,\n params: ({schema, schemaValue}) =>\n typeof schema == \"string\" ? _`{type: ${schema}}` : _`{type: ${schemaValue}}`,\n}\n\nexport function reportTypeError(it: SchemaObjCxt): void {\n const cxt = getTypeErrorContext(it)\n reportError(cxt, typeError)\n}\n\nfunction getTypeErrorContext(it: SchemaObjCxt): KeywordErrorCxt {\n const {gen, data, schema} = it\n const schemaCode = schemaRefOrVal(it, schema, \"type\")\n return {\n gen,\n keyword: \"type\",\n data,\n schema: schema.type,\n schemaCode,\n schemaValue: schemaCode,\n parentSchema: schema,\n params: {},\n it,\n }\n}\n", "import type {SchemaObjCxt} from \"..\"\nimport {_, getProperty, stringify} from \"../codegen\"\nimport {checkStrictMode} from \"../util\"\n\nexport function assignDefaults(it: SchemaObjCxt, ty?: string): void {\n const {properties, items} = it.schema\n if (ty === \"object\" && properties) {\n for (const key in properties) {\n assignDefault(it, key, properties[key].default)\n }\n } else if (ty === \"array\" && Array.isArray(items)) {\n items.forEach((sch, i: number) => assignDefault(it, i, sch.default))\n }\n}\n\nfunction assignDefault(it: SchemaObjCxt, prop: string | number, defaultValue: unknown): void {\n const {gen, compositeRule, data, opts} = it\n if (defaultValue === undefined) return\n const childData = _`${data}${getProperty(prop)}`\n if (compositeRule) {\n checkStrictMode(it, `default is ignored for: ${childData}`)\n return\n }\n\n let condition = _`${childData} === undefined`\n if (opts.useDefaults === \"empty\") {\n condition = _`${condition} || ${childData} === null || ${childData} === \"\"`\n }\n // `${childData} === undefined` +\n // (opts.useDefaults === \"empty\" ? ` || ${childData} === null || ${childData} === \"\"` : \"\")\n gen.if(condition, _`${childData} = ${stringify(defaultValue)}`)\n}\n", "import type {AnySchema, SchemaMap} from \"../types\"\nimport type {SchemaCxt} from \"../compile\"\nimport type {KeywordCxt} from \"../compile/validate\"\nimport {CodeGen, _, and, or, not, nil, strConcat, getProperty, Code, Name} from \"../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../compile/util\"\nimport N from \"../compile/names\"\nimport {useFunc} from \"../compile/util\"\nexport function checkReportMissingProp(cxt: KeywordCxt, prop: string): void {\n const {gen, data, it} = cxt\n gen.if(noPropertyInData(gen, data, prop, it.opts.ownProperties), () => {\n cxt.setParams({missingProperty: _`${prop}`}, true)\n cxt.error()\n })\n}\n\nexport function checkMissingProp(\n {gen, data, it: {opts}}: KeywordCxt,\n properties: string[],\n missing: Name\n): Code {\n return or(\n ...properties.map((prop) =>\n and(noPropertyInData(gen, data, prop, opts.ownProperties), _`${missing} = ${prop}`)\n )\n )\n}\n\nexport function reportMissingProp(cxt: KeywordCxt, missing: Name): void {\n cxt.setParams({missingProperty: missing}, true)\n cxt.error()\n}\n\nexport function hasPropFunc(gen: CodeGen): Name {\n return gen.scopeValue(\"func\", {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ref: Object.prototype.hasOwnProperty,\n code: _`Object.prototype.hasOwnProperty`,\n })\n}\n\nexport function isOwnProperty(gen: CodeGen, data: Name, property: Name | string): Code {\n return _`${hasPropFunc(gen)}.call(${data}, ${property})`\n}\n\nexport function propertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} !== undefined`\n return ownProperties ? _`${cond} && ${isOwnProperty(gen, data, property)}` : cond\n}\n\nexport function noPropertyInData(\n gen: CodeGen,\n data: Name,\n property: Name | string,\n ownProperties?: boolean\n): Code {\n const cond = _`${data}${getProperty(property)} === undefined`\n return ownProperties ? or(cond, not(isOwnProperty(gen, data, property))) : cond\n}\n\nexport function allSchemaProperties(schemaMap?: SchemaMap): string[] {\n return schemaMap ? Object.keys(schemaMap).filter((p) => p !== \"__proto__\") : []\n}\n\nexport function schemaProperties(it: SchemaCxt, schemaMap: SchemaMap): string[] {\n return allSchemaProperties(schemaMap).filter(\n (p) => !alwaysValidSchema(it, schemaMap[p] as AnySchema)\n )\n}\n\nexport function callValidateCode(\n {schemaCode, data, it: {gen, topSchemaRef, schemaPath, errorPath}, it}: KeywordCxt,\n func: Code,\n context: Code,\n passSchema?: boolean\n): Code {\n const dataAndSchema = passSchema ? _`${schemaCode}, ${data}, ${topSchemaRef}${schemaPath}` : data\n const valCxt: [Name, Code | number][] = [\n [N.instancePath, strConcat(N.instancePath, errorPath)],\n [N.parentData, it.parentData],\n [N.parentDataProperty, it.parentDataProperty],\n [N.rootData, N.rootData],\n ]\n if (it.opts.dynamicRef) valCxt.push([N.dynamicAnchors, N.dynamicAnchors])\n const args = _`${dataAndSchema}, ${gen.object(...valCxt)}`\n return context !== nil ? _`${func}.call(${context}, ${args})` : _`${func}(${args})`\n}\n\nconst newRegExp = _`new RegExp`\n\nexport function usePattern({gen, it: {opts}}: KeywordCxt, pattern: string): Name {\n const u = opts.unicodeRegExp ? \"u\" : \"\"\n const {regExp} = opts.code\n const rx = regExp(pattern, u)\n\n return gen.scopeValue(\"pattern\", {\n key: rx.toString(),\n ref: rx,\n code: _`${regExp.code === \"new RegExp\" ? newRegExp : useFunc(gen, regExp)}(${pattern}, ${u})`,\n })\n}\n\nexport function validateArray(cxt: KeywordCxt): Name {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n if (it.allErrors) {\n const validArr = gen.let(\"valid\", true)\n validateItems(() => gen.assign(validArr, false))\n return validArr\n }\n gen.var(valid, true)\n validateItems(() => gen.break())\n return valid\n\n function validateItems(notValid: () => void): void {\n const len = gen.const(\"len\", _`${data}.length`)\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword,\n dataProp: i,\n dataPropType: Type.Num,\n },\n valid\n )\n gen.if(not(valid), notValid)\n })\n }\n}\n\nexport function validateUnion(cxt: KeywordCxt): void {\n const {gen, schema, keyword, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const alwaysValid = schema.some((sch: AnySchema) => alwaysValidSchema(it, sch))\n if (alwaysValid && !it.opts.unevaluated) return\n\n const valid = gen.let(\"valid\", false)\n const schValid = gen.name(\"_valid\")\n\n gen.block(() =>\n schema.forEach((_sch: AnySchema, i: number) => {\n const schCxt = cxt.subschema(\n {\n keyword,\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n gen.assign(valid, _`${valid} || ${schValid}`)\n const merged = cxt.mergeValidEvaluated(schCxt, schValid)\n // can short-circuit if `unevaluatedProperties/Items` not supported (opts.unevaluated !== true)\n // or if all properties and items were evaluated (it.props === true && it.items === true)\n if (!merged) gen.if(not(valid))\n })\n )\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n}\n", "import type {KeywordCxt} from \".\"\nimport type {\n AnySchema,\n SchemaValidateFunction,\n AnyValidateFunction,\n AddedKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, nil, not, stringify, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport type {JSONType} from \"../rules\"\nimport {callValidateCode} from \"../../vocabularies/code\"\nimport {extendErrors} from \"../errors\"\n\ntype KeywordCompilationResult = AnySchema | SchemaValidateFunction | AnyValidateFunction\n\nexport function macroKeywordCode(cxt: KeywordCxt, def: MacroKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, it} = cxt\n const macroSchema = def.macro.call(it.self, schema, parentSchema, it)\n const schemaRef = useKeyword(gen, keyword, macroSchema)\n if (it.opts.validateSchema !== false) it.self.validateSchema(macroSchema, true)\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n schema: macroSchema,\n schemaPath: nil,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n topSchemaRef: schemaRef,\n compositeRule: true,\n },\n valid\n )\n cxt.pass(valid, () => cxt.error(true))\n}\n\nexport function funcKeywordCode(cxt: KeywordCxt, def: FuncKeywordDefinition): void {\n const {gen, keyword, schema, parentSchema, $data, it} = cxt\n checkAsyncKeyword(it, def)\n const validate =\n !$data && def.compile ? def.compile.call(it.self, schema, parentSchema, it) : def.validate\n const validateRef = useKeyword(gen, keyword, validate)\n const valid = gen.let(\"valid\")\n cxt.block$data(valid, validateKeyword)\n cxt.ok(def.valid ?? valid)\n\n function validateKeyword(): void {\n if (def.errors === false) {\n assignValid()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => cxt.error())\n } else {\n const ruleErrs = def.async ? validateAsync() : validateSync()\n if (def.modifying) modifyData(cxt)\n reportErrs(() => addErrs(cxt, ruleErrs))\n }\n }\n\n function validateAsync(): Name {\n const ruleErrs = gen.let(\"ruleErrs\", null)\n gen.try(\n () => assignValid(_`await `),\n (e) =>\n gen.assign(valid, false).if(\n _`${e} instanceof ${it.ValidationError as Name}`,\n () => gen.assign(ruleErrs, _`${e}.errors`),\n () => gen.throw(e)\n )\n )\n return ruleErrs\n }\n\n function validateSync(): Code {\n const validateErrs = _`${validateRef}.errors`\n gen.assign(validateErrs, null)\n assignValid(nil)\n return validateErrs\n }\n\n function assignValid(_await: Code = def.async ? _`await ` : nil): void {\n const passCxt = it.opts.passContext ? N.this : N.self\n const passSchema = !((\"compile\" in def && !$data) || def.schema === false)\n gen.assign(\n valid,\n _`${_await}${callValidateCode(cxt, validateRef, passCxt, passSchema)}`,\n def.modifying\n )\n }\n\n function reportErrs(errors: () => void): void {\n gen.if(not(def.valid ?? valid), errors)\n }\n}\n\nfunction modifyData(cxt: KeywordCxt): void {\n const {gen, data, it} = cxt\n gen.if(it.parentData, () => gen.assign(data, _`${it.parentData}[${it.parentDataProperty}]`))\n}\n\nfunction addErrs(cxt: KeywordCxt, errs: Code): void {\n const {gen} = cxt\n gen.if(\n _`Array.isArray(${errs})`,\n () => {\n gen\n .assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`)\n .assign(N.errors, _`${N.vErrors}.length`)\n extendErrors(cxt)\n },\n () => cxt.error()\n )\n}\n\nfunction checkAsyncKeyword({schemaEnv}: SchemaObjCxt, def: FuncKeywordDefinition): void {\n if (def.async && !schemaEnv.$async) throw new Error(\"async keyword in sync schema\")\n}\n\nfunction useKeyword(gen: CodeGen, keyword: string, result?: KeywordCompilationResult): Name {\n if (result === undefined) throw new Error(`keyword \"${keyword}\" failed to compile`)\n return gen.scopeValue(\n \"keyword\",\n typeof result == \"function\" ? {ref: result} : {ref: result, code: stringify(result)}\n )\n}\n\nexport function validSchemaType(\n schema: unknown,\n schemaType: JSONType[],\n allowUndefined = false\n): boolean {\n // TODO add tests\n return (\n !schemaType.length ||\n schemaType.some((st) =>\n st === \"array\"\n ? Array.isArray(schema)\n : st === \"object\"\n ? schema && typeof schema == \"object\" && !Array.isArray(schema)\n : typeof schema == st || (allowUndefined && typeof schema == \"undefined\")\n )\n )\n}\n\nexport function validateKeywordUsage(\n {schema, opts, self, errSchemaPath}: SchemaObjCxt,\n def: AddedKeywordDefinition,\n keyword: string\n): void {\n /* istanbul ignore if */\n if (Array.isArray(def.keyword) ? !def.keyword.includes(keyword) : def.keyword !== keyword) {\n throw new Error(\"ajv implementation error\")\n }\n\n const deps = def.dependencies\n if (deps?.some((kwd) => !Object.prototype.hasOwnProperty.call(schema, kwd))) {\n throw new Error(`parent schema must have dependencies of ${keyword}: ${deps.join(\",\")}`)\n }\n\n if (def.validateSchema) {\n const valid = def.validateSchema(schema[keyword])\n if (!valid) {\n const msg =\n `keyword \"${keyword}\" value is invalid at path \"${errSchemaPath}\": ` +\n self.errorsText(def.validateSchema.errors)\n if (opts.validateSchema === \"log\") self.logger.error(msg)\n else throw new Error(msg)\n }\n }\n}\n", "import type {AnySchema} from \"../../types\"\nimport type {SchemaObjCxt} from \"..\"\nimport {_, str, getProperty, Code, Name} from \"../codegen\"\nimport {escapeFragment, getErrorPath, Type} from \"../util\"\nimport type {JSONType} from \"../rules\"\n\nexport interface SubschemaContext {\n // TODO use Optional? align with SchemCxt property types\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef?: Code\n errorPath?: Code\n dataLevel?: number\n dataTypes?: JSONType[]\n data?: Name\n parentData?: Name\n parentDataProperty?: Code | number\n dataNames?: Name[]\n dataPathArr?: (Code | number)[]\n propertyName?: Name\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n compositeRule?: true\n createErrors?: boolean\n allErrors?: boolean\n}\n\nexport type SubschemaArgs = Partial<{\n keyword: string\n schemaProp: string | number\n schema: AnySchema\n schemaPath: Code\n errSchemaPath: string\n topSchemaRef: Code\n data: Name | Code\n dataProp: Code | string | number\n dataTypes: JSONType[]\n definedProperties: Set<string>\n propertyName: Name\n dataPropType: Type\n jtdDiscriminator: string\n jtdMetadata: boolean\n compositeRule: true\n createErrors: boolean\n allErrors: boolean\n}>\n\nexport function getSubschema(\n it: SchemaObjCxt,\n {keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef}: SubschemaArgs\n): SubschemaContext {\n if (keyword !== undefined && schema !== undefined) {\n throw new Error('both \"keyword\" and \"schema\" passed, only one allowed')\n }\n\n if (keyword !== undefined) {\n const sch = it.schema[keyword]\n return schemaProp === undefined\n ? {\n schema: sch,\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}`,\n }\n : {\n schema: sch[schemaProp],\n schemaPath: _`${it.schemaPath}${getProperty(keyword)}${getProperty(schemaProp)}`,\n errSchemaPath: `${it.errSchemaPath}/${keyword}/${escapeFragment(schemaProp)}`,\n }\n }\n\n if (schema !== undefined) {\n if (schemaPath === undefined || errSchemaPath === undefined || topSchemaRef === undefined) {\n throw new Error('\"schemaPath\", \"errSchemaPath\" and \"topSchemaRef\" are required with \"schema\"')\n }\n return {\n schema,\n schemaPath,\n topSchemaRef,\n errSchemaPath,\n }\n }\n\n throw new Error('either \"keyword\" or \"schema\" must be passed')\n}\n\nexport function extendSubschemaData(\n subschema: SubschemaContext,\n it: SchemaObjCxt,\n {dataProp, dataPropType: dpType, data, dataTypes, propertyName}: SubschemaArgs\n): void {\n if (data !== undefined && dataProp !== undefined) {\n throw new Error('both \"data\" and \"dataProp\" passed, only one allowed')\n }\n\n const {gen} = it\n\n if (dataProp !== undefined) {\n const {errorPath, dataPathArr, opts} = it\n const nextData = gen.let(\"data\", _`${it.data}${getProperty(dataProp)}`, true)\n dataContextProps(nextData)\n subschema.errorPath = str`${errorPath}${getErrorPath(dataProp, dpType, opts.jsPropertySyntax)}`\n subschema.parentDataProperty = _`${dataProp}`\n subschema.dataPathArr = [...dataPathArr, subschema.parentDataProperty]\n }\n\n if (data !== undefined) {\n const nextData = data instanceof Name ? data : gen.let(\"data\", data, true) // replaceable if used once?\n dataContextProps(nextData)\n if (propertyName !== undefined) subschema.propertyName = propertyName\n // TODO something is possibly wrong here with not changing parentDataProperty and not appending dataPathArr\n }\n\n if (dataTypes) subschema.dataTypes = dataTypes\n\n function dataContextProps(_nextData: Name): void {\n subschema.data = _nextData\n subschema.dataLevel = it.dataLevel + 1\n subschema.dataTypes = []\n it.definedProperties = new Set<string>()\n subschema.parentData = it.data\n subschema.dataNames = [...it.dataNames, _nextData]\n }\n}\n\nexport function extendSubschemaMode(\n subschema: SubschemaContext,\n {jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors}: SubschemaArgs\n): void {\n if (compositeRule !== undefined) subschema.compositeRule = compositeRule\n if (createErrors !== undefined) subschema.createErrors = createErrors\n if (allErrors !== undefined) subschema.allErrors = allErrors\n subschema.jtdDiscriminator = jtdDiscriminator // not inherited\n subschema.jtdMetadata = jtdMetadata // not inherited\n}\n", "'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n", "'use strict';\n\nvar traverse = module.exports = function (schema, opts, cb) {\n // Legacy support for v0.3.1 and earlier.\n if (typeof opts == 'function') {\n cb = opts;\n opts = {};\n }\n\n cb = opts.cb || cb;\n var pre = (typeof cb == 'function') ? cb : cb.pre || function() {};\n var post = cb.post || function() {};\n\n _traverse(opts, pre, post, schema, '', schema);\n};\n\n\ntraverse.keywords = {\n additionalItems: true,\n items: true,\n contains: true,\n additionalProperties: true,\n propertyNames: true,\n not: true,\n if: true,\n then: true,\n else: true\n};\n\ntraverse.arrayKeywords = {\n items: true,\n allOf: true,\n anyOf: true,\n oneOf: true\n};\n\ntraverse.propsKeywords = {\n $defs: true,\n definitions: true,\n properties: true,\n patternProperties: true,\n dependencies: true\n};\n\ntraverse.skipKeywords = {\n default: true,\n enum: true,\n const: true,\n required: true,\n maximum: true,\n minimum: true,\n exclusiveMaximum: true,\n exclusiveMinimum: true,\n multipleOf: true,\n maxLength: true,\n minLength: true,\n pattern: true,\n format: true,\n maxItems: true,\n minItems: true,\n uniqueItems: true,\n maxProperties: true,\n minProperties: true\n};\n\n\nfunction _traverse(opts, pre, post, schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex) {\n if (schema && typeof schema == 'object' && !Array.isArray(schema)) {\n pre(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n for (var key in schema) {\n var sch = schema[key];\n if (Array.isArray(sch)) {\n if (key in traverse.arrayKeywords) {\n for (var i=0; i<sch.length; i++)\n _traverse(opts, pre, post, sch[i], jsonPtr + '/' + key + '/' + i, rootSchema, jsonPtr, key, schema, i);\n }\n } else if (key in traverse.propsKeywords) {\n if (sch && typeof sch == 'object') {\n for (var prop in sch)\n _traverse(opts, pre, post, sch[prop], jsonPtr + '/' + key + '/' + escapeJsonPtr(prop), rootSchema, jsonPtr, key, schema, prop);\n }\n } else if (key in traverse.keywords || (opts.allKeys && !(key in traverse.skipKeywords))) {\n _traverse(opts, pre, post, sch, jsonPtr + '/' + key, rootSchema, jsonPtr, key, schema);\n }\n }\n post(schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex);\n }\n}\n\n\nfunction escapeJsonPtr(str) {\n return str.replace(/~/g, '~0').replace(/\\//g, '~1');\n}\n", "import type {AnySchema, AnySchemaObject, UriResolver} from \"../types\"\nimport type Ajv from \"../ajv\"\nimport type {URIComponent} from \"fast-uri\"\nimport {eachItem} from \"./util\"\nimport * as equal from \"fast-deep-equal\"\nimport * as traverse from \"json-schema-traverse\"\n\n// the hash of local references inside the schema (created by getSchemaRefs), used for inline resolution\nexport type LocalRefs = {[Ref in string]?: AnySchemaObject}\n\n// TODO refactor to use keyword definitions\nconst SIMPLE_INLINED = new Set([\n \"type\",\n \"format\",\n \"pattern\",\n \"maxLength\",\n \"minLength\",\n \"maxProperties\",\n \"minProperties\",\n \"maxItems\",\n \"minItems\",\n \"maximum\",\n \"minimum\",\n \"uniqueItems\",\n \"multipleOf\",\n \"required\",\n \"enum\",\n \"const\",\n])\n\nexport function inlineRef(schema: AnySchema, limit: boolean | number = true): boolean {\n if (typeof schema == \"boolean\") return true\n if (limit === true) return !hasRef(schema)\n if (!limit) return false\n return countKeys(schema) <= limit\n}\n\nconst REF_KEYWORDS = new Set([\n \"$ref\",\n \"$recursiveRef\",\n \"$recursiveAnchor\",\n \"$dynamicRef\",\n \"$dynamicAnchor\",\n])\n\nfunction hasRef(schema: AnySchemaObject): boolean {\n for (const key in schema) {\n if (REF_KEYWORDS.has(key)) return true\n const sch = schema[key]\n if (Array.isArray(sch) && sch.some(hasRef)) return true\n if (typeof sch == \"object\" && hasRef(sch)) return true\n }\n return false\n}\n\nfunction countKeys(schema: AnySchemaObject): number {\n let count = 0\n for (const key in schema) {\n if (key === \"$ref\") return Infinity\n count++\n if (SIMPLE_INLINED.has(key)) continue\n if (typeof schema[key] == \"object\") {\n eachItem(schema[key], (sch) => (count += countKeys(sch)))\n }\n if (count === Infinity) return Infinity\n }\n return count\n}\n\nexport function getFullPath(resolver: UriResolver, id = \"\", normalize?: boolean): string {\n if (normalize !== false) id = normalizeId(id)\n const p = resolver.parse(id)\n return _getFullPath(resolver, p)\n}\n\nexport function _getFullPath(resolver: UriResolver, p: URIComponent): string {\n const serialized = resolver.serialize(p)\n return serialized.split(\"#\")[0] + \"#\"\n}\n\nconst TRAILING_SLASH_HASH = /#\\/?$/\nexport function normalizeId(id: string | undefined): string {\n return id ? id.replace(TRAILING_SLASH_HASH, \"\") : \"\"\n}\n\nexport function resolveUrl(resolver: UriResolver, baseId: string, id: string): string {\n id = normalizeId(id)\n return resolver.resolve(baseId, id)\n}\n\nconst ANCHOR = /^[a-z_][-a-z0-9._]*$/i\n\nexport function getSchemaRefs(this: Ajv, schema: AnySchema, baseId: string): LocalRefs {\n if (typeof schema == \"boolean\") return {}\n const {schemaId, uriResolver} = this.opts\n const schId = normalizeId(schema[schemaId] || baseId)\n const baseIds: {[JsonPtr in string]?: string} = {\"\": schId}\n const pathPrefix = getFullPath(uriResolver, schId, false)\n const localRefs: LocalRefs = {}\n const schemaRefs: Set<string> = new Set()\n\n traverse(schema, {allKeys: true}, (sch, jsonPtr, _, parentJsonPtr) => {\n if (parentJsonPtr === undefined) return\n const fullPath = pathPrefix + jsonPtr\n let innerBaseId = baseIds[parentJsonPtr]\n if (typeof sch[schemaId] == \"string\") innerBaseId = addRef.call(this, sch[schemaId])\n addAnchor.call(this, sch.$anchor)\n addAnchor.call(this, sch.$dynamicAnchor)\n baseIds[jsonPtr] = innerBaseId\n\n function addRef(this: Ajv, ref: string): string {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const _resolve = this.opts.uriResolver.resolve\n ref = normalizeId(innerBaseId ? _resolve(innerBaseId, ref) : ref)\n if (schemaRefs.has(ref)) throw ambiguos(ref)\n schemaRefs.add(ref)\n let schOrRef = this.refs[ref]\n if (typeof schOrRef == \"string\") schOrRef = this.refs[schOrRef]\n if (typeof schOrRef == \"object\") {\n checkAmbiguosRef(sch, schOrRef.schema, ref)\n } else if (ref !== normalizeId(fullPath)) {\n if (ref[0] === \"#\") {\n checkAmbiguosRef(sch, localRefs[ref], ref)\n localRefs[ref] = sch\n } else {\n this.refs[ref] = fullPath\n }\n }\n return ref\n }\n\n function addAnchor(this: Ajv, anchor: unknown): void {\n if (typeof anchor == \"string\") {\n if (!ANCHOR.test(anchor)) throw new Error(`invalid anchor \"${anchor}\"`)\n addRef.call(this, `#${anchor}`)\n }\n }\n })\n\n return localRefs\n\n function checkAmbiguosRef(sch1: AnySchema, sch2: AnySchema | undefined, ref: string): void {\n if (sch2 !== undefined && !equal(sch1, sch2)) throw ambiguos(ref)\n }\n\n function ambiguos(ref: string): Error {\n return new Error(`reference \"${ref}\" resolves to more than one schema`)\n }\n}\n", "import type {\n AddedKeywordDefinition,\n AnySchema,\n AnySchemaObject,\n KeywordErrorCxt,\n KeywordCxtParams,\n} from \"../../types\"\nimport type {SchemaCxt, SchemaObjCxt} from \"..\"\nimport type {InstanceOptions} from \"../../core\"\nimport {boolOrEmptySchema, topBoolOrEmptySchema} from \"./boolSchema\"\nimport {coerceAndCheckDataType, getSchemaTypes} from \"./dataType\"\nimport {shouldUseGroup, shouldUseRule} from \"./applicability\"\nimport {checkDataType, checkDataTypes, reportTypeError, DataType} from \"./dataType\"\nimport {assignDefaults} from \"./defaults\"\nimport {funcKeywordCode, macroKeywordCode, validateKeywordUsage, validSchemaType} from \"./keyword\"\nimport {getSubschema, extendSubschemaData, SubschemaArgs, extendSubschemaMode} from \"./subschema\"\nimport {_, nil, str, or, not, getProperty, Block, Code, Name, CodeGen} from \"../codegen\"\nimport N from \"../names\"\nimport {resolveUrl} from \"../resolve\"\nimport {\n schemaRefOrVal,\n schemaHasRulesButRef,\n checkUnknownRules,\n checkStrictMode,\n unescapeJsonPointer,\n mergeEvaluated,\n} from \"../util\"\nimport type {JSONType, Rule, RuleGroup} from \"../rules\"\nimport {\n ErrorPaths,\n reportError,\n reportExtraError,\n resetErrorsCount,\n keyword$DataError,\n} from \"../errors\"\n\n// schema compilation - generates validation function, subschemaCode (below) is used for subschemas\nexport function validateFunctionCode(it: SchemaCxt): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n topSchemaObjCode(it)\n return\n }\n }\n validateFunction(it, () => topBoolOrEmptySchema(it))\n}\n\nfunction validateFunction(\n {gen, validateName, schema, schemaEnv, opts}: SchemaCxt,\n body: Block\n): void {\n if (opts.code.es5) {\n gen.func(validateName, _`${N.data}, ${N.valCxt}`, schemaEnv.$async, () => {\n gen.code(_`\"use strict\"; ${funcSourceUrl(schema, opts)}`)\n destructureValCxtES5(gen, opts)\n gen.code(body)\n })\n } else {\n gen.func(validateName, _`${N.data}, ${destructureValCxt(opts)}`, schemaEnv.$async, () =>\n gen.code(funcSourceUrl(schema, opts)).code(body)\n )\n }\n}\n\nfunction destructureValCxt(opts: InstanceOptions): Code {\n return _`{${N.instancePath}=\"\", ${N.parentData}, ${N.parentDataProperty}, ${N.rootData}=${\n N.data\n }${opts.dynamicRef ? _`, ${N.dynamicAnchors}={}` : nil}}={}`\n}\n\nfunction destructureValCxtES5(gen: CodeGen, opts: InstanceOptions): void {\n gen.if(\n N.valCxt,\n () => {\n gen.var(N.instancePath, _`${N.valCxt}.${N.instancePath}`)\n gen.var(N.parentData, _`${N.valCxt}.${N.parentData}`)\n gen.var(N.parentDataProperty, _`${N.valCxt}.${N.parentDataProperty}`)\n gen.var(N.rootData, _`${N.valCxt}.${N.rootData}`)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`${N.valCxt}.${N.dynamicAnchors}`)\n },\n () => {\n gen.var(N.instancePath, _`\"\"`)\n gen.var(N.parentData, _`undefined`)\n gen.var(N.parentDataProperty, _`undefined`)\n gen.var(N.rootData, N.data)\n if (opts.dynamicRef) gen.var(N.dynamicAnchors, _`{}`)\n }\n )\n}\n\nfunction topSchemaObjCode(it: SchemaObjCxt): void {\n const {schema, opts, gen} = it\n validateFunction(it, () => {\n if (opts.$comment && schema.$comment) commentKeyword(it)\n checkNoDefault(it)\n gen.let(N.vErrors, null)\n gen.let(N.errors, 0)\n if (opts.unevaluated) resetEvaluated(it)\n typeAndKeywords(it)\n returnResults(it)\n })\n return\n}\n\nfunction resetEvaluated(it: SchemaObjCxt): void {\n // TODO maybe some hook to execute it in the end to check whether props/items are Name, as in assignEvaluated\n const {gen, validateName} = it\n it.evaluated = gen.const(\"evaluated\", _`${validateName}.evaluated`)\n gen.if(_`${it.evaluated}.dynamicProps`, () => gen.assign(_`${it.evaluated}.props`, _`undefined`))\n gen.if(_`${it.evaluated}.dynamicItems`, () => gen.assign(_`${it.evaluated}.items`, _`undefined`))\n}\n\nfunction funcSourceUrl(schema: AnySchema, opts: InstanceOptions): Code {\n const schId = typeof schema == \"object\" && schema[opts.schemaId]\n return schId && (opts.code.source || opts.code.process) ? _`/*# sourceURL=${schId} */` : nil\n}\n\n// schema compilation - this function is used recursively to generate code for sub-schemas\nfunction subschemaCode(it: SchemaCxt, valid: Name): void {\n if (isSchemaObj(it)) {\n checkKeywords(it)\n if (schemaCxtHasRules(it)) {\n subSchemaObjCode(it, valid)\n return\n }\n }\n boolOrEmptySchema(it, valid)\n}\n\nfunction schemaCxtHasRules({schema, self}: SchemaCxt): boolean {\n if (typeof schema == \"boolean\") return !schema\n for (const key in schema) if (self.RULES.all[key]) return true\n return false\n}\n\nfunction isSchemaObj(it: SchemaCxt): it is SchemaObjCxt {\n return typeof it.schema != \"boolean\"\n}\n\nfunction subSchemaObjCode(it: SchemaObjCxt, valid: Name): void {\n const {schema, gen, opts} = it\n if (opts.$comment && schema.$comment) commentKeyword(it)\n updateContext(it)\n checkAsyncSchema(it)\n const errsCount = gen.const(\"_errs\", N.errors)\n typeAndKeywords(it, errsCount)\n // TODO var\n gen.var(valid, _`${errsCount} === ${N.errors}`)\n}\n\nfunction checkKeywords(it: SchemaObjCxt): void {\n checkUnknownRules(it)\n checkRefsAndKeywords(it)\n}\n\nfunction typeAndKeywords(it: SchemaObjCxt, errsCount?: Name): void {\n if (it.opts.jtd) return schemaKeywords(it, [], false, errsCount)\n const types = getSchemaTypes(it.schema)\n const checkedTypes = coerceAndCheckDataType(it, types)\n schemaKeywords(it, types, !checkedTypes, errsCount)\n}\n\nfunction checkRefsAndKeywords(it: SchemaObjCxt): void {\n const {schema, errSchemaPath, opts, self} = it\n if (schema.$ref && opts.ignoreKeywordsWithRef && schemaHasRulesButRef(schema, self.RULES)) {\n self.logger.warn(`$ref: keywords ignored in schema at path \"${errSchemaPath}\"`)\n }\n}\n\nfunction checkNoDefault(it: SchemaObjCxt): void {\n const {schema, opts} = it\n if (schema.default !== undefined && opts.useDefaults && opts.strictSchema) {\n checkStrictMode(it, \"default is ignored in the schema root\")\n }\n}\n\nfunction updateContext(it: SchemaObjCxt): void {\n const schId = it.schema[it.opts.schemaId]\n if (schId) it.baseId = resolveUrl(it.opts.uriResolver, it.baseId, schId)\n}\n\nfunction checkAsyncSchema(it: SchemaObjCxt): void {\n if (it.schema.$async && !it.schemaEnv.$async) throw new Error(\"async schema in sync schema\")\n}\n\nfunction commentKeyword({gen, schemaEnv, schema, errSchemaPath, opts}: SchemaObjCxt): void {\n const msg = schema.$comment\n if (opts.$comment === true) {\n gen.code(_`${N.self}.logger.log(${msg})`)\n } else if (typeof opts.$comment == \"function\") {\n const schemaPath = str`${errSchemaPath}/$comment`\n const rootName = gen.scopeValue(\"root\", {ref: schemaEnv.root})\n gen.code(_`${N.self}.opts.$comment(${msg}, ${schemaPath}, ${rootName}.schema)`)\n }\n}\n\nfunction returnResults(it: SchemaCxt): void {\n const {gen, schemaEnv, validateName, ValidationError, opts} = it\n if (schemaEnv.$async) {\n // TODO assign unevaluated\n gen.if(\n _`${N.errors} === 0`,\n () => gen.return(N.data),\n () => gen.throw(_`new ${ValidationError as Name}(${N.vErrors})`)\n )\n } else {\n gen.assign(_`${validateName}.errors`, N.vErrors)\n if (opts.unevaluated) assignEvaluated(it)\n gen.return(_`${N.errors} === 0`)\n }\n}\n\nfunction assignEvaluated({gen, evaluated, props, items}: SchemaCxt): void {\n if (props instanceof Name) gen.assign(_`${evaluated}.props`, props)\n if (items instanceof Name) gen.assign(_`${evaluated}.items`, items)\n}\n\nfunction schemaKeywords(\n it: SchemaObjCxt,\n types: JSONType[],\n typeErrors: boolean,\n errsCount?: Name\n): void {\n const {gen, schema, data, allErrors, opts, self} = it\n const {RULES} = self\n if (schema.$ref && (opts.ignoreKeywordsWithRef || !schemaHasRulesButRef(schema, RULES))) {\n gen.block(() => keywordCode(it, \"$ref\", (RULES.all.$ref as Rule).definition)) // TODO typecast\n return\n }\n if (!opts.jtd) checkStrictTypes(it, types)\n gen.block(() => {\n for (const group of RULES.rules) groupKeywords(group)\n groupKeywords(RULES.post)\n })\n\n function groupKeywords(group: RuleGroup): void {\n if (!shouldUseGroup(schema, group)) return\n if (group.type) {\n gen.if(checkDataType(group.type, data, opts.strictNumbers))\n iterateKeywords(it, group)\n if (types.length === 1 && types[0] === group.type && typeErrors) {\n gen.else()\n reportTypeError(it)\n }\n gen.endIf()\n } else {\n iterateKeywords(it, group)\n }\n // TODO make it \"ok\" call?\n if (!allErrors) gen.if(_`${N.errors} === ${errsCount || 0}`)\n }\n}\n\nfunction iterateKeywords(it: SchemaObjCxt, group: RuleGroup): void {\n const {\n gen,\n schema,\n opts: {useDefaults},\n } = it\n if (useDefaults) assignDefaults(it, group.type)\n gen.block(() => {\n for (const rule of group.rules) {\n if (shouldUseRule(schema, rule)) {\n keywordCode(it, rule.keyword, rule.definition, group.type)\n }\n }\n })\n}\n\nfunction checkStrictTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (it.schemaEnv.meta || !it.opts.strictTypes) return\n checkContextTypes(it, types)\n if (!it.opts.allowUnionTypes) checkMultipleTypes(it, types)\n checkKeywordTypes(it, it.dataTypes)\n}\n\nfunction checkContextTypes(it: SchemaObjCxt, types: JSONType[]): void {\n if (!types.length) return\n if (!it.dataTypes.length) {\n it.dataTypes = types\n return\n }\n types.forEach((t) => {\n if (!includesType(it.dataTypes, t)) {\n strictTypesError(it, `type \"${t}\" not allowed by context \"${it.dataTypes.join(\",\")}\"`)\n }\n })\n narrowSchemaTypes(it, types)\n}\n\nfunction checkMultipleTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n if (ts.length > 1 && !(ts.length === 2 && ts.includes(\"null\"))) {\n strictTypesError(it, \"use allowUnionTypes to allow union type keyword\")\n }\n}\n\nfunction checkKeywordTypes(it: SchemaObjCxt, ts: JSONType[]): void {\n const rules = it.self.RULES.all\n for (const keyword in rules) {\n const rule = rules[keyword]\n if (typeof rule == \"object\" && shouldUseRule(it.schema, rule)) {\n const {type} = rule.definition\n if (type.length && !type.some((t) => hasApplicableType(ts, t))) {\n strictTypesError(it, `missing type \"${type.join(\",\")}\" for keyword \"${keyword}\"`)\n }\n }\n }\n}\n\nfunction hasApplicableType(schTs: JSONType[], kwdT: JSONType): boolean {\n return schTs.includes(kwdT) || (kwdT === \"number\" && schTs.includes(\"integer\"))\n}\n\nfunction includesType(ts: JSONType[], t: JSONType): boolean {\n return ts.includes(t) || (t === \"integer\" && ts.includes(\"number\"))\n}\n\nfunction narrowSchemaTypes(it: SchemaObjCxt, withTypes: JSONType[]): void {\n const ts: JSONType[] = []\n for (const t of it.dataTypes) {\n if (includesType(withTypes, t)) ts.push(t)\n else if (withTypes.includes(\"integer\") && t === \"number\") ts.push(\"integer\")\n }\n it.dataTypes = ts\n}\n\nfunction strictTypesError(it: SchemaObjCxt, msg: string): void {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n msg += ` at \"${schemaPath}\" (strictTypes)`\n checkStrictMode(it, msg, it.opts.strictTypes)\n}\n\nexport class KeywordCxt implements KeywordErrorCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean\n readonly keyword: string\n readonly data: Name // Name referencing the current level of the data instance\n readonly $data?: string | false\n schema: any // keyword value in the schema\n readonly schemaValue: Code | number | boolean // Code reference to keyword schema value or primitive value\n readonly schemaCode: Code | number | boolean // Code reference to resolved schema value (different if schema is $data)\n readonly schemaType: JSONType[] // allowed type(s) of keyword value in the schema\n readonly parentSchema: AnySchemaObject\n readonly errsCount?: Name // Name reference to the number of validation errors collected before this keyword,\n // requires option trackErrors in keyword definition\n params: KeywordCxtParams // object to pass parameters to error messages from keyword code\n readonly it: SchemaObjCxt // schema compilation context (schema is guaranteed to be an object, not boolean)\n readonly def: AddedKeywordDefinition\n\n constructor(it: SchemaObjCxt, def: AddedKeywordDefinition, keyword: string) {\n validateKeywordUsage(it, def, keyword)\n this.gen = it.gen\n this.allErrors = it.allErrors\n this.keyword = keyword\n this.data = it.data\n this.schema = it.schema[keyword]\n this.$data = def.$data && it.opts.$data && this.schema && this.schema.$data\n this.schemaValue = schemaRefOrVal(it, this.schema, keyword, this.$data)\n this.schemaType = def.schemaType\n this.parentSchema = it.schema\n this.params = {}\n this.it = it\n this.def = def\n\n if (this.$data) {\n this.schemaCode = it.gen.const(\"vSchema\", getData(this.$data, it))\n } else {\n this.schemaCode = this.schemaValue\n if (!validSchemaType(this.schema, def.schemaType, def.allowUndefined)) {\n throw new Error(`${keyword} value must be ${JSON.stringify(def.schemaType)}`)\n }\n }\n\n if (\"code\" in def ? def.trackErrors : def.errors !== false) {\n this.errsCount = it.gen.const(\"_errs\", N.errors)\n }\n }\n\n result(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.failResult(not(condition), successAction, failAction)\n }\n\n failResult(condition: Code, successAction?: () => void, failAction?: () => void): void {\n this.gen.if(condition)\n if (failAction) failAction()\n else this.error()\n if (successAction) {\n this.gen.else()\n successAction()\n if (this.allErrors) this.gen.endIf()\n } else {\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n }\n\n pass(condition: Code, failAction?: () => void): void {\n this.failResult(not(condition), undefined, failAction)\n }\n\n fail(condition?: Code): void {\n if (condition === undefined) {\n this.error()\n if (!this.allErrors) this.gen.if(false) // this branch will be removed by gen.optimize\n return\n }\n this.gen.if(condition)\n this.error()\n if (this.allErrors) this.gen.endIf()\n else this.gen.else()\n }\n\n fail$data(condition: Code): void {\n if (!this.$data) return this.fail(condition)\n const {schemaCode} = this\n this.fail(_`${schemaCode} !== undefined && (${or(this.invalid$data(), condition)})`)\n }\n\n error(append?: boolean, errorParams?: KeywordCxtParams, errorPaths?: ErrorPaths): void {\n if (errorParams) {\n this.setParams(errorParams)\n this._error(append, errorPaths)\n this.setParams({})\n return\n }\n this._error(append, errorPaths)\n }\n\n private _error(append?: boolean, errorPaths?: ErrorPaths): void {\n ;(append ? reportExtraError : reportError)(this, this.def.error, errorPaths)\n }\n\n $dataError(): void {\n reportError(this, this.def.$dataError || keyword$DataError)\n }\n\n reset(): void {\n if (this.errsCount === undefined) throw new Error('add \"trackErrors\" to keyword definition')\n resetErrorsCount(this.gen, this.errsCount)\n }\n\n ok(cond: Code | boolean): void {\n if (!this.allErrors) this.gen.if(cond)\n }\n\n setParams(obj: KeywordCxtParams, assign?: true): void {\n if (assign) Object.assign(this.params, obj)\n else this.params = obj\n }\n\n block$data(valid: Name, codeBlock: () => void, $dataValid: Code = nil): void {\n this.gen.block(() => {\n this.check$data(valid, $dataValid)\n codeBlock()\n })\n }\n\n check$data(valid: Name = nil, $dataValid: Code = nil): void {\n if (!this.$data) return\n const {gen, schemaCode, schemaType, def} = this\n gen.if(or(_`${schemaCode} === undefined`, $dataValid))\n if (valid !== nil) gen.assign(valid, true)\n if (schemaType.length || def.validateSchema) {\n gen.elseIf(this.invalid$data())\n this.$dataError()\n if (valid !== nil) gen.assign(valid, false)\n }\n gen.else()\n }\n\n invalid$data(): Code {\n const {gen, schemaCode, schemaType, def, it} = this\n return or(wrong$DataType(), invalid$DataSchema())\n\n function wrong$DataType(): Code {\n if (schemaType.length) {\n /* istanbul ignore if */\n if (!(schemaCode instanceof Name)) throw new Error(\"ajv implementation error\")\n const st = Array.isArray(schemaType) ? schemaType : [schemaType]\n return _`${checkDataTypes(st, schemaCode, it.opts.strictNumbers, DataType.Wrong)}`\n }\n return nil\n }\n\n function invalid$DataSchema(): Code {\n if (def.validateSchema) {\n const validateSchemaRef = gen.scopeValue(\"validate$data\", {ref: def.validateSchema}) // TODO value.code for standalone\n return _`!${validateSchemaRef}(${schemaCode})`\n }\n return nil\n }\n }\n\n subschema(appl: SubschemaArgs, valid: Name): SchemaCxt {\n const subschema = getSubschema(this.it, appl)\n extendSubschemaData(subschema, this.it, appl)\n extendSubschemaMode(subschema, appl)\n const nextContext = {...this.it, ...subschema, items: undefined, props: undefined}\n subschemaCode(nextContext, valid)\n return nextContext\n }\n\n mergeEvaluated(schemaCxt: SchemaCxt, toName?: typeof Name): void {\n const {it, gen} = this\n if (!it.opts.unevaluated) return\n if (it.props !== true && schemaCxt.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schemaCxt.props, it.props, toName)\n }\n if (it.items !== true && schemaCxt.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schemaCxt.items, it.items, toName)\n }\n }\n\n mergeValidEvaluated(schemaCxt: SchemaCxt, valid: Name): boolean | void {\n const {it, gen} = this\n if (it.opts.unevaluated && (it.props !== true || it.items !== true)) {\n gen.if(valid, () => this.mergeEvaluated(schemaCxt, Name))\n return true\n }\n }\n}\n\nfunction keywordCode(\n it: SchemaObjCxt,\n keyword: string,\n def: AddedKeywordDefinition,\n ruleType?: JSONType\n): void {\n const cxt = new KeywordCxt(it, def, keyword)\n if (\"code\" in def) {\n def.code(cxt, ruleType)\n } else if (cxt.$data && def.validate) {\n funcKeywordCode(cxt, def)\n } else if (\"macro\" in def) {\n macroKeywordCode(cxt, def)\n } else if (def.compile || def.validate) {\n funcKeywordCode(cxt, def)\n }\n}\n\nconst JSON_POINTER = /^\\/(?:[^~]|~0|~1)*$/\nconst RELATIVE_JSON_POINTER = /^([0-9]+)(#|\\/(?:[^~]|~0|~1)*)?$/\nexport function getData(\n $data: string,\n {dataLevel, dataNames, dataPathArr}: SchemaCxt\n): Code | number {\n let jsonPointer\n let data: Code\n if ($data === \"\") return N.rootData\n if ($data[0] === \"/\") {\n if (!JSON_POINTER.test($data)) throw new Error(`Invalid JSON-pointer: ${$data}`)\n jsonPointer = $data\n data = N.rootData\n } else {\n const matches = RELATIVE_JSON_POINTER.exec($data)\n if (!matches) throw new Error(`Invalid JSON-pointer: ${$data}`)\n const up: number = +matches[1]\n jsonPointer = matches[2]\n if (jsonPointer === \"#\") {\n if (up >= dataLevel) throw new Error(errorMsg(\"property/index\", up))\n return dataPathArr[dataLevel - up]\n }\n if (up > dataLevel) throw new Error(errorMsg(\"data\", up))\n data = dataNames[dataLevel - up]\n if (!jsonPointer) return data\n }\n\n let expr = data\n const segments = jsonPointer.split(\"/\")\n for (const segment of segments) {\n if (segment) {\n data = _`${data}${getProperty(unescapeJsonPointer(segment))}`\n expr = _`${expr} && ${data}`\n }\n }\n return expr\n\n function errorMsg(pointerType: string, up: number): string {\n return `Cannot access ${pointerType} ${up} levels up, current level is ${dataLevel}`\n }\n}\n", "import type {ErrorObject} from \"../types\"\n\nexport default class ValidationError extends Error {\n readonly errors: Partial<ErrorObject>[]\n readonly ajv: true\n readonly validation: true\n\n constructor(errors: Partial<ErrorObject>[]) {\n super(\"validation failed\")\n this.errors = errors\n this.ajv = this.validation = true\n }\n}\n", "import {resolveUrl, normalizeId, getFullPath} from \"./resolve\"\nimport type {UriResolver} from \"../types\"\n\nexport default class MissingRefError extends Error {\n readonly missingRef: string\n readonly missingSchema: string\n\n constructor(resolver: UriResolver, baseId: string, ref: string, msg?: string) {\n super(msg || `can't resolve reference ${ref} from id ${baseId}`)\n this.missingRef = resolveUrl(resolver, baseId, ref)\n this.missingSchema = normalizeId(getFullPath(resolver, this.missingRef))\n }\n}\n", "import type {\n AnySchema,\n AnySchemaObject,\n AnyValidateFunction,\n AsyncValidateFunction,\n EvaluatedProperties,\n EvaluatedItems,\n} from \"../types\"\nimport type Ajv from \"../core\"\nimport type {InstanceOptions} from \"../core\"\nimport {CodeGen, _, nil, stringify, Name, Code, ValueScopeName} from \"./codegen\"\nimport ValidationError from \"../runtime/validation_error\"\nimport N from \"./names\"\nimport {LocalRefs, getFullPath, _getFullPath, inlineRef, normalizeId, resolveUrl} from \"./resolve\"\nimport {schemaHasRulesButRef, unescapeFragment} from \"./util\"\nimport {validateFunctionCode} from \"./validate\"\nimport {URIComponent} from \"fast-uri\"\nimport {JSONType} from \"./rules\"\n\nexport type SchemaRefs = {\n [Ref in string]?: SchemaEnv | AnySchema\n}\n\nexport interface SchemaCxt {\n readonly gen: CodeGen\n readonly allErrors?: boolean // validation mode - whether to collect all errors or break on error\n readonly data: Name // Name with reference to the current part of data instance\n readonly parentData: Name // should be used in keywords modifying data\n readonly parentDataProperty: Code | number // should be used in keywords modifying data\n readonly dataNames: Name[]\n readonly dataPathArr: (Code | number)[]\n readonly dataLevel: number // the level of the currently validated data,\n // it can be used to access both the property names and the data on all levels from the top.\n dataTypes: JSONType[] // data types applied to the current part of data instance\n definedProperties: Set<string> // set of properties to keep track of for required checks\n readonly topSchemaRef: Code\n readonly validateName: Name\n evaluated?: Name\n readonly ValidationError?: Name\n readonly schema: AnySchema // current schema object - equal to parentSchema passed via KeywordCxt\n readonly schemaEnv: SchemaEnv\n readonly rootId: string\n baseId: string // the current schema base URI that should be used as the base for resolving URIs in references (\\$ref)\n readonly schemaPath: Code // the run-time expression that evaluates to the property name of the current schema\n readonly errSchemaPath: string // this is actual string, should not be changed to Code\n readonly errorPath: Code\n readonly propertyName?: Name\n readonly compositeRule?: boolean // true indicates that the current schema is inside the compound keyword,\n // where failing some rule doesn't mean validation failure (`anyOf`, `oneOf`, `not`, `if`).\n // This flag is used to determine whether you can return validation result immediately after any error in case the option `allErrors` is not `true.\n // You only need to use it if you have many steps in your keywords and potentially can define multiple errors.\n props?: EvaluatedProperties | Name // properties evaluated by this schema - used by parent schema or assigned to validation function\n items?: EvaluatedItems | Name // last item evaluated by this schema - used by parent schema or assigned to validation function\n jtdDiscriminator?: string\n jtdMetadata?: boolean\n readonly createErrors?: boolean\n readonly opts: InstanceOptions // Ajv instance option.\n readonly self: Ajv // current Ajv instance\n}\n\nexport interface SchemaObjCxt extends SchemaCxt {\n readonly schema: AnySchemaObject\n}\ninterface SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root?: SchemaEnv\n readonly baseId?: string\n readonly schemaPath?: string\n readonly localRefs?: LocalRefs\n readonly meta?: boolean\n}\n\nexport class SchemaEnv implements SchemaEnvArgs {\n readonly schema: AnySchema\n readonly schemaId?: \"$id\" | \"id\"\n readonly root: SchemaEnv\n baseId: string // TODO possibly, it should be readonly\n schemaPath?: string\n localRefs?: LocalRefs\n readonly meta?: boolean\n readonly $async?: boolean // true if the current schema is asynchronous.\n readonly refs: SchemaRefs = {}\n readonly dynamicAnchors: {[Ref in string]?: true} = {}\n validate?: AnyValidateFunction\n validateName?: ValueScopeName\n serialize?: (data: unknown) => string\n serializeName?: ValueScopeName\n parse?: (data: string) => unknown\n parseName?: ValueScopeName\n\n constructor(env: SchemaEnvArgs) {\n let schema: AnySchemaObject | undefined\n if (typeof env.schema == \"object\") schema = env.schema\n this.schema = env.schema\n this.schemaId = env.schemaId\n this.root = env.root || this\n this.baseId = env.baseId ?? normalizeId(schema?.[env.schemaId || \"$id\"])\n this.schemaPath = env.schemaPath\n this.localRefs = env.localRefs\n this.meta = env.meta\n this.$async = schema?.$async\n this.refs = {}\n }\n}\n\n// let codeSize = 0\n// let nodeCount = 0\n\n// Compiles schema in SchemaEnv\nexport function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv {\n // TODO refactor - remove compilations\n const _sch = getCompilingSchema.call(this, sch)\n if (_sch) return _sch\n const rootId = getFullPath(this.opts.uriResolver, sch.root.baseId) // TODO if getFullPath removed 1 tests fails\n const {es5, lines} = this.opts.code\n const {ownProperties} = this.opts\n const gen = new CodeGen(this.scope, {es5, lines, ownProperties})\n let _ValidationError\n if (sch.$async) {\n _ValidationError = gen.scopeValue(\"Error\", {\n ref: ValidationError,\n code: _`require(\"ajv/dist/runtime/validation_error\").default`,\n })\n }\n\n const validateName = gen.scopeName(\"validate\")\n sch.validateName = validateName\n\n const schemaCxt: SchemaCxt = {\n gen,\n allErrors: this.opts.allErrors,\n data: N.data,\n parentData: N.parentData,\n parentDataProperty: N.parentDataProperty,\n dataNames: [N.data],\n dataPathArr: [nil], // TODO can its length be used as dataLevel if nil is removed?\n dataLevel: 0,\n dataTypes: [],\n definedProperties: new Set<string>(),\n topSchemaRef: gen.scopeValue(\n \"schema\",\n this.opts.code.source === true\n ? {ref: sch.schema, code: stringify(sch.schema)}\n : {ref: sch.schema}\n ),\n validateName,\n ValidationError: _ValidationError,\n schema: sch.schema,\n schemaEnv: sch,\n rootId,\n baseId: sch.baseId || rootId,\n schemaPath: nil,\n errSchemaPath: sch.schemaPath || (this.opts.jtd ? \"\" : \"#\"),\n errorPath: _`\"\"`,\n opts: this.opts,\n self: this,\n }\n\n let sourceCode: string | undefined\n try {\n this._compilations.add(sch)\n validateFunctionCode(schemaCxt)\n gen.optimize(this.opts.code.optimize)\n // gen.optimize(1)\n const validateCode = gen.toString()\n sourceCode = `${gen.scopeRefs(N.scope)}return ${validateCode}`\n // console.log((codeSize += sourceCode.length), (nodeCount += gen.nodeCount))\n if (this.opts.code.process) sourceCode = this.opts.code.process(sourceCode, sch)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode)\n const makeValidate = new Function(`${N.self}`, `${N.scope}`, sourceCode)\n const validate: AnyValidateFunction = makeValidate(this, this.scope.get())\n this.scope.value(validateName, {ref: validate})\n\n validate.errors = null\n validate.schema = sch.schema\n validate.schemaEnv = sch\n if (sch.$async) (validate as AsyncValidateFunction).$async = true\n if (this.opts.code.source === true) {\n validate.source = {validateName, validateCode, scopeValues: gen._values}\n }\n if (this.opts.unevaluated) {\n const {props, items} = schemaCxt\n validate.evaluated = {\n props: props instanceof Name ? undefined : props,\n items: items instanceof Name ? undefined : items,\n dynamicProps: props instanceof Name,\n dynamicItems: items instanceof Name,\n }\n if (validate.source) validate.source.evaluated = stringify(validate.evaluated)\n }\n sch.validate = validate\n return sch\n } catch (e) {\n delete sch.validate\n delete sch.validateName\n if (sourceCode) this.logger.error(\"Error compiling schema, function code:\", sourceCode)\n // console.log(\"\\n\\n\\n *** \\n\", sourceCode, this.opts)\n throw e\n } finally {\n this._compilations.delete(sch)\n }\n}\n\nexport function resolveRef(\n this: Ajv,\n root: SchemaEnv,\n baseId: string,\n ref: string\n): AnySchema | SchemaEnv | undefined {\n ref = resolveUrl(this.opts.uriResolver, baseId, ref)\n const schOrFunc = root.refs[ref]\n if (schOrFunc) return schOrFunc\n\n let _sch = resolve.call(this, root, ref)\n if (_sch === undefined) {\n const schema = root.localRefs?.[ref] // TODO maybe localRefs should hold SchemaEnv\n const {schemaId} = this.opts\n if (schema) _sch = new SchemaEnv({schema, schemaId, root, baseId})\n }\n\n if (_sch === undefined) return\n return (root.refs[ref] = inlineOrCompile.call(this, _sch))\n}\n\nfunction inlineOrCompile(this: Ajv, sch: SchemaEnv): AnySchema | SchemaEnv {\n if (inlineRef(sch.schema, this.opts.inlineRefs)) return sch.schema\n return sch.validate ? sch : compileSchema.call(this, sch)\n}\n\n// Index of schema compilation in the currently compiled list\nexport function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void {\n for (const sch of this._compilations) {\n if (sameSchemaEnv(sch, schEnv)) return sch\n }\n}\n\nfunction sameSchemaEnv(s1: SchemaEnv, s2: SchemaEnv): boolean {\n return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId\n}\n\n// resolve and compile the references ($ref)\n// TODO returns AnySchemaObject (if the schema can be inlined) or validation function\nfunction resolve(\n this: Ajv,\n root: SchemaEnv, // information about the root schema for the current schema\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n let sch\n while (typeof (sch = this.refs[ref]) == \"string\") ref = sch\n return sch || this.schemas[ref] || resolveSchema.call(this, root, ref)\n}\n\n// Resolve schema, its root and baseId\nexport function resolveSchema(\n this: Ajv,\n root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it\n ref: string // reference to resolve\n): SchemaEnv | undefined {\n const p = this.opts.uriResolver.parse(ref)\n const refPath = _getFullPath(this.opts.uriResolver, p)\n let baseId = getFullPath(this.opts.uriResolver, root.baseId, undefined)\n // TODO `Object.keys(root.schema).length > 0` should not be needed - but removing breaks 2 tests\n if (Object.keys(root.schema).length > 0 && refPath === baseId) {\n return getJsonPointer.call(this, p, root)\n }\n\n const id = normalizeId(refPath)\n const schOrRef = this.refs[id] || this.schemas[id]\n if (typeof schOrRef == \"string\") {\n const sch = resolveSchema.call(this, root, schOrRef)\n if (typeof sch?.schema !== \"object\") return\n return getJsonPointer.call(this, p, sch)\n }\n\n if (typeof schOrRef?.schema !== \"object\") return\n if (!schOrRef.validate) compileSchema.call(this, schOrRef)\n if (id === normalizeId(ref)) {\n const {schema} = schOrRef\n const {schemaId} = this.opts\n const schId = schema[schemaId]\n if (schId) baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n return new SchemaEnv({schema, schemaId, root, baseId})\n }\n return getJsonPointer.call(this, p, schOrRef)\n}\n\nconst PREVENT_SCOPE_CHANGE = new Set([\n \"properties\",\n \"patternProperties\",\n \"enum\",\n \"dependencies\",\n \"definitions\",\n])\n\nfunction getJsonPointer(\n this: Ajv,\n parsedRef: URIComponent,\n {baseId, schema, root}: SchemaEnv\n): SchemaEnv | undefined {\n if (parsedRef.fragment?.[0] !== \"/\") return\n for (const part of parsedRef.fragment.slice(1).split(\"/\")) {\n if (typeof schema === \"boolean\") return\n const partSchema = schema[unescapeFragment(part)]\n if (partSchema === undefined) return\n schema = partSchema\n // TODO PREVENT_SCOPE_CHANGE could be defined in keyword def?\n const schId = typeof schema === \"object\" && schema[this.opts.schemaId]\n if (!PREVENT_SCOPE_CHANGE.has(part) && schId) {\n baseId = resolveUrl(this.opts.uriResolver, baseId, schId)\n }\n }\n let env: SchemaEnv | undefined\n if (typeof schema != \"boolean\" && schema.$ref && !schemaHasRulesButRef(schema, this.RULES)) {\n const $ref = resolveUrl(this.opts.uriResolver, baseId, schema.$ref)\n env = resolveSchema.call(this, root, $ref)\n }\n // even though resolution failed we need to return SchemaEnv to throw exception\n // so that compileAsync loads missing schema.\n const {schemaId} = this.opts\n env = env || new SchemaEnv({schema, schemaId, root, baseId})\n if (env.schema !== env.root.schema) return env\n return undefined\n}\n", "{\n \"$id\": \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n \"description\": \"Meta-schema for $data reference (JSON AnySchema extension proposal)\",\n \"type\": \"object\",\n \"required\": [\"$data\"],\n \"properties\": {\n \"$data\": {\n \"type\": \"string\",\n \"anyOf\": [{\"format\": \"relative-json-pointer\"}, {\"format\": \"json-pointer\"}]\n }\n },\n \"additionalProperties\": false\n}\n", "'use strict'\n\n/** @type {(value: string) => boolean} */\nconst isUUID = RegExp.prototype.test.bind(/^[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}$/iu)\n\n/** @type {(value: string) => boolean} */\nconst isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]\\d|\\d)$/u)\n\n/**\n * @param {Array<string>} input\n * @returns {string}\n */\nfunction stringArrayToHexStripped (input) {\n let acc = ''\n let code = 0\n let i = 0\n\n for (i = 0; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (code === 48) {\n continue\n }\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n break\n }\n\n for (i += 1; i < input.length; i++) {\n code = input[i].charCodeAt(0)\n if (!((code >= 48 && code <= 57) || (code >= 65 && code <= 70) || (code >= 97 && code <= 102))) {\n return ''\n }\n acc += input[i]\n }\n return acc\n}\n\n/**\n * @typedef {Object} GetIPV6Result\n * @property {boolean} error - Indicates if there was an error parsing the IPv6 address.\n * @property {string} address - The parsed IPv6 address.\n * @property {string} [zone] - The zone identifier, if present.\n */\n\n/**\n * @param {string} value\n * @returns {boolean}\n */\nconst nonSimpleDomain = RegExp.prototype.test.bind(/[^!\"$&'()*+,\\-.;=_`a-z{}~]/u)\n\n/**\n * @param {Array<string>} buffer\n * @returns {boolean}\n */\nfunction consumeIsZone (buffer) {\n buffer.length = 0\n return true\n}\n\n/**\n * @param {Array<string>} buffer\n * @param {Array<string>} address\n * @param {GetIPV6Result} output\n * @returns {boolean}\n */\nfunction consumeHextets (buffer, address, output) {\n if (buffer.length) {\n const hex = stringArrayToHexStripped(buffer)\n if (hex !== '') {\n address.push(hex)\n } else {\n output.error = true\n return false\n }\n buffer.length = 0\n }\n return true\n}\n\n/**\n * @param {string} input\n * @returns {GetIPV6Result}\n */\nfunction getIPV6 (input) {\n let tokenCount = 0\n const output = { error: false, address: '', zone: '' }\n /** @type {Array<string>} */\n const address = []\n /** @type {Array<string>} */\n const buffer = []\n let endipv6Encountered = false\n let endIpv6 = false\n\n let consume = consumeHextets\n\n for (let i = 0; i < input.length; i++) {\n const cursor = input[i]\n if (cursor === '[' || cursor === ']') { continue }\n if (cursor === ':') {\n if (endipv6Encountered === true) {\n endIpv6 = true\n }\n if (!consume(buffer, address, output)) { break }\n if (++tokenCount > 7) {\n // not valid\n output.error = true\n break\n }\n if (i > 0 && input[i - 1] === ':') {\n endipv6Encountered = true\n }\n address.push(':')\n continue\n } else if (cursor === '%') {\n if (!consume(buffer, address, output)) { break }\n // switch to zone detection\n consume = consumeIsZone\n } else {\n buffer.push(cursor)\n continue\n }\n }\n if (buffer.length) {\n if (consume === consumeIsZone) {\n output.zone = buffer.join('')\n } else if (endIpv6) {\n address.push(buffer.join(''))\n } else {\n address.push(stringArrayToHexStripped(buffer))\n }\n }\n output.address = address.join('')\n return output\n}\n\n/**\n * @typedef {Object} NormalizeIPv6Result\n * @property {string} host - The normalized host.\n * @property {string} [escapedHost] - The escaped host.\n * @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.\n */\n\n/**\n * @param {string} host\n * @returns {NormalizeIPv6Result}\n */\nfunction normalizeIPv6 (host) {\n if (findToken(host, ':') < 2) { return { host, isIPV6: false } }\n const ipv6 = getIPV6(host)\n\n if (!ipv6.error) {\n let newHost = ipv6.address\n let escapedHost = ipv6.address\n if (ipv6.zone) {\n newHost += '%' + ipv6.zone\n escapedHost += '%25' + ipv6.zone\n }\n return { host: newHost, isIPV6: true, escapedHost }\n } else {\n return { host, isIPV6: false }\n }\n}\n\n/**\n * @param {string} str\n * @param {string} token\n * @returns {number}\n */\nfunction findToken (str, token) {\n let ind = 0\n for (let i = 0; i < str.length; i++) {\n if (str[i] === token) ind++\n }\n return ind\n}\n\n/**\n * @param {string} path\n * @returns {string}\n *\n * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5.2.4\n */\nfunction removeDotSegments (path) {\n let input = path\n const output = []\n let nextSlash = -1\n let len = 0\n\n // eslint-disable-next-line no-cond-assign\n while (len = input.length) {\n if (len === 1) {\n if (input === '.') {\n break\n } else if (input === '/') {\n output.push('/')\n break\n } else {\n output.push(input)\n break\n }\n } else if (len === 2) {\n if (input[0] === '.') {\n if (input[1] === '.') {\n break\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.' || input[1] === '/') {\n output.push('/')\n break\n }\n }\n } else if (len === 3) {\n if (input === '/..') {\n if (output.length !== 0) {\n output.pop()\n }\n output.push('/')\n break\n }\n }\n if (input[0] === '.') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(3)\n continue\n }\n } else if (input[1] === '/') {\n input = input.slice(2)\n continue\n }\n } else if (input[0] === '/') {\n if (input[1] === '.') {\n if (input[2] === '/') {\n input = input.slice(2)\n continue\n } else if (input[2] === '.') {\n if (input[3] === '/') {\n input = input.slice(3)\n if (output.length !== 0) {\n output.pop()\n }\n continue\n }\n }\n }\n }\n\n // Rule 2E: Move normal path segment to output\n if ((nextSlash = input.indexOf('/', 1)) === -1) {\n output.push(input)\n break\n } else {\n output.push(input.slice(0, nextSlash))\n input = input.slice(nextSlash)\n }\n }\n\n return output.join('')\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @param {boolean} esc\n * @returns {import('../types/index').URIComponent}\n */\nfunction normalizeComponentEncoding (component, esc) {\n const func = esc !== true ? escape : unescape\n if (component.scheme !== undefined) {\n component.scheme = func(component.scheme)\n }\n if (component.userinfo !== undefined) {\n component.userinfo = func(component.userinfo)\n }\n if (component.host !== undefined) {\n component.host = func(component.host)\n }\n if (component.path !== undefined) {\n component.path = func(component.path)\n }\n if (component.query !== undefined) {\n component.query = func(component.query)\n }\n if (component.fragment !== undefined) {\n component.fragment = func(component.fragment)\n }\n return component\n}\n\n/**\n * @param {import('../types/index').URIComponent} component\n * @returns {string|undefined}\n */\nfunction recomposeAuthority (component) {\n const uriTokens = []\n\n if (component.userinfo !== undefined) {\n uriTokens.push(component.userinfo)\n uriTokens.push('@')\n }\n\n if (component.host !== undefined) {\n let host = unescape(component.host)\n if (!isIPv4(host)) {\n const ipV6res = normalizeIPv6(host)\n if (ipV6res.isIPV6 === true) {\n host = `[${ipV6res.escapedHost}]`\n } else {\n host = component.host\n }\n }\n uriTokens.push(host)\n }\n\n if (typeof component.port === 'number' || typeof component.port === 'string') {\n uriTokens.push(':')\n uriTokens.push(String(component.port))\n }\n\n return uriTokens.length ? uriTokens.join('') : undefined\n};\n\nmodule.exports = {\n nonSimpleDomain,\n recomposeAuthority,\n normalizeComponentEncoding,\n removeDotSegments,\n isIPv4,\n isUUID,\n normalizeIPv6,\n stringArrayToHexStripped\n}\n", "'use strict'\n\nconst { isUUID } = require('./utils')\nconst URN_REG = /([\\da-z][\\d\\-a-z]{0,31}):((?:[\\w!$'()*+,\\-.:;=@]|%[\\da-f]{2})+)/iu\n\nconst supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',\n 'wss', 'urn', 'urn:uuid'])\n\n/** @typedef {supportedSchemeNames[number]} SchemeName */\n\n/**\n * @param {string} name\n * @returns {name is SchemeName}\n */\nfunction isValidSchemeName (name) {\n return supportedSchemeNames.indexOf(/** @type {*} */ (name)) !== -1\n}\n\n/**\n * @callback SchemeFn\n * @param {import('../types/index').URIComponent} component\n * @param {import('../types/index').Options} options\n * @returns {import('../types/index').URIComponent}\n */\n\n/**\n * @typedef {Object} SchemeHandler\n * @property {SchemeName} scheme - The scheme name.\n * @property {boolean} [domainHost] - Indicates if the scheme supports domain hosts.\n * @property {SchemeFn} parse - Function to parse the URI component for this scheme.\n * @property {SchemeFn} serialize - Function to serialize the URI component for this scheme.\n * @property {boolean} [skipNormalize] - Indicates if normalization should be skipped for this scheme.\n * @property {boolean} [absolutePath] - Indicates if the scheme uses absolute paths.\n * @property {boolean} [unicodeSupport] - Indicates if the scheme supports Unicode.\n */\n\n/**\n * @param {import('../types/index').URIComponent} wsComponent\n * @returns {boolean}\n */\nfunction wsIsSecure (wsComponent) {\n if (wsComponent.secure === true) {\n return true\n } else if (wsComponent.secure === false) {\n return false\n } else if (wsComponent.scheme) {\n return (\n wsComponent.scheme.length === 3 &&\n (wsComponent.scheme[0] === 'w' || wsComponent.scheme[0] === 'W') &&\n (wsComponent.scheme[1] === 's' || wsComponent.scheme[1] === 'S') &&\n (wsComponent.scheme[2] === 's' || wsComponent.scheme[2] === 'S')\n )\n } else {\n return false\n }\n}\n\n/** @type {SchemeFn} */\nfunction httpParse (component) {\n if (!component.host) {\n component.error = component.error || 'HTTP URIs must have a host.'\n }\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction httpSerialize (component) {\n const secure = String(component.scheme).toLowerCase() === 'https'\n\n // normalize the default port\n if (component.port === (secure ? 443 : 80) || component.port === '') {\n component.port = undefined\n }\n\n // normalize the empty path\n if (!component.path) {\n component.path = '/'\n }\n\n // NOTE: We do not parse query strings for HTTP URIs\n // as WWW Form Url Encoded query strings are part of the HTML4+ spec,\n // and not the HTTP spec.\n\n return component\n}\n\n/** @type {SchemeFn} */\nfunction wsParse (wsComponent) {\n// indicate if the secure flag is set\n wsComponent.secure = wsIsSecure(wsComponent)\n\n // construct resouce name\n wsComponent.resourceName = (wsComponent.path || '/') + (wsComponent.query ? '?' + wsComponent.query : '')\n wsComponent.path = undefined\n wsComponent.query = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction wsSerialize (wsComponent) {\n// normalize the default port\n if (wsComponent.port === (wsIsSecure(wsComponent) ? 443 : 80) || wsComponent.port === '') {\n wsComponent.port = undefined\n }\n\n // ensure scheme matches secure flag\n if (typeof wsComponent.secure === 'boolean') {\n wsComponent.scheme = (wsComponent.secure ? 'wss' : 'ws')\n wsComponent.secure = undefined\n }\n\n // reconstruct path from resource name\n if (wsComponent.resourceName) {\n const [path, query] = wsComponent.resourceName.split('?')\n wsComponent.path = (path && path !== '/' ? path : undefined)\n wsComponent.query = query\n wsComponent.resourceName = undefined\n }\n\n // forbid fragment component\n wsComponent.fragment = undefined\n\n return wsComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnParse (urnComponent, options) {\n if (!urnComponent.path) {\n urnComponent.error = 'URN can not be parsed'\n return urnComponent\n }\n const matches = urnComponent.path.match(URN_REG)\n if (matches) {\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n urnComponent.nid = matches[1].toLowerCase()\n urnComponent.nss = matches[2]\n const urnScheme = `${scheme}:${options.nid || urnComponent.nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n urnComponent.path = undefined\n\n if (schemeHandler) {\n urnComponent = schemeHandler.parse(urnComponent, options)\n }\n } else {\n urnComponent.error = urnComponent.error || 'URN can not be parsed.'\n }\n\n return urnComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnSerialize (urnComponent, options) {\n if (urnComponent.nid === undefined) {\n throw new Error('URN without nid cannot be serialized')\n }\n const scheme = options.scheme || urnComponent.scheme || 'urn'\n const nid = urnComponent.nid.toLowerCase()\n const urnScheme = `${scheme}:${options.nid || nid}`\n const schemeHandler = getSchemeHandler(urnScheme)\n\n if (schemeHandler) {\n urnComponent = schemeHandler.serialize(urnComponent, options)\n }\n\n const uriComponent = urnComponent\n const nss = urnComponent.nss\n uriComponent.path = `${nid || options.nid}:${nss}`\n\n options.skipEscape = true\n return uriComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidParse (urnComponent, options) {\n const uuidComponent = urnComponent\n uuidComponent.uuid = uuidComponent.nss\n uuidComponent.nss = undefined\n\n if (!options.tolerant && (!uuidComponent.uuid || !isUUID(uuidComponent.uuid))) {\n uuidComponent.error = uuidComponent.error || 'UUID is not valid.'\n }\n\n return uuidComponent\n}\n\n/** @type {SchemeFn} */\nfunction urnuuidSerialize (uuidComponent) {\n const urnComponent = uuidComponent\n // normalize UUID\n urnComponent.nss = (uuidComponent.uuid || '').toLowerCase()\n return urnComponent\n}\n\nconst http = /** @type {SchemeHandler} */ ({\n scheme: 'http',\n domainHost: true,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst https = /** @type {SchemeHandler} */ ({\n scheme: 'https',\n domainHost: http.domainHost,\n parse: httpParse,\n serialize: httpSerialize\n})\n\nconst ws = /** @type {SchemeHandler} */ ({\n scheme: 'ws',\n domainHost: true,\n parse: wsParse,\n serialize: wsSerialize\n})\n\nconst wss = /** @type {SchemeHandler} */ ({\n scheme: 'wss',\n domainHost: ws.domainHost,\n parse: ws.parse,\n serialize: ws.serialize\n})\n\nconst urn = /** @type {SchemeHandler} */ ({\n scheme: 'urn',\n parse: urnParse,\n serialize: urnSerialize,\n skipNormalize: true\n})\n\nconst urnuuid = /** @type {SchemeHandler} */ ({\n scheme: 'urn:uuid',\n parse: urnuuidParse,\n serialize: urnuuidSerialize,\n skipNormalize: true\n})\n\nconst SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({\n http,\n https,\n ws,\n wss,\n urn,\n 'urn:uuid': urnuuid\n})\n\nObject.setPrototypeOf(SCHEMES, null)\n\n/**\n * @param {string|undefined} scheme\n * @returns {SchemeHandler|undefined}\n */\nfunction getSchemeHandler (scheme) {\n return (\n scheme && (\n SCHEMES[/** @type {SchemeName} */ (scheme)] ||\n SCHEMES[/** @type {SchemeName} */(scheme.toLowerCase())])\n ) ||\n undefined\n}\n\nmodule.exports = {\n wsIsSecure,\n SCHEMES,\n isValidSchemeName,\n getSchemeHandler,\n}\n", "'use strict'\n\nconst { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizeComponentEncoding, isIPv4, nonSimpleDomain } = require('./lib/utils')\nconst { SCHEMES, getSchemeHandler } = require('./lib/schemes')\n\n/**\n * @template {import('./types/index').URIComponent|string} T\n * @param {T} uri\n * @param {import('./types/index').Options} [options]\n * @returns {T}\n */\nfunction normalize (uri, options) {\n if (typeof uri === 'string') {\n uri = /** @type {T} */ (serialize(parse(uri, options), options))\n } else if (typeof uri === 'object') {\n uri = /** @type {T} */ (parse(serialize(uri, options), options))\n }\n return uri\n}\n\n/**\n * @param {string} baseURI\n * @param {string} relativeURI\n * @param {import('./types/index').Options} [options]\n * @returns {string}\n */\nfunction resolve (baseURI, relativeURI, options) {\n const schemelessOptions = options ? Object.assign({ scheme: 'null' }, options) : { scheme: 'null' }\n const resolved = resolveComponent(parse(baseURI, schemelessOptions), parse(relativeURI, schemelessOptions), schemelessOptions, true)\n schemelessOptions.skipEscape = true\n return serialize(resolved, schemelessOptions)\n}\n\n/**\n * @param {import ('./types/index').URIComponent} base\n * @param {import ('./types/index').URIComponent} relative\n * @param {import('./types/index').Options} [options]\n * @param {boolean} [skipNormalization=false]\n * @returns {import ('./types/index').URIComponent}\n */\nfunction resolveComponent (base, relative, options, skipNormalization) {\n /** @type {import('./types/index').URIComponent} */\n const target = {}\n if (!skipNormalization) {\n base = parse(serialize(base, options), options) // normalize base component\n relative = parse(serialize(relative, options), options) // normalize relative component\n }\n options = options || {}\n\n if (!options.tolerant && relative.scheme) {\n target.scheme = relative.scheme\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (relative.userinfo !== undefined || relative.host !== undefined || relative.port !== undefined) {\n // target.authority = relative.authority;\n target.userinfo = relative.userinfo\n target.host = relative.host\n target.port = relative.port\n target.path = removeDotSegments(relative.path || '')\n target.query = relative.query\n } else {\n if (!relative.path) {\n target.path = base.path\n if (relative.query !== undefined) {\n target.query = relative.query\n } else {\n target.query = base.query\n }\n } else {\n if (relative.path[0] === '/') {\n target.path = removeDotSegments(relative.path)\n } else {\n if ((base.userinfo !== undefined || base.host !== undefined || base.port !== undefined) && !base.path) {\n target.path = '/' + relative.path\n } else if (!base.path) {\n target.path = relative.path\n } else {\n target.path = base.path.slice(0, base.path.lastIndexOf('/') + 1) + relative.path\n }\n target.path = removeDotSegments(target.path)\n }\n target.query = relative.query\n }\n // target.authority = base.authority;\n target.userinfo = base.userinfo\n target.host = base.host\n target.port = base.port\n }\n target.scheme = base.scheme\n }\n\n target.fragment = relative.fragment\n\n return target\n}\n\n/**\n * @param {import ('./types/index').URIComponent|string} uriA\n * @param {import ('./types/index').URIComponent|string} uriB\n * @param {import ('./types/index').Options} options\n * @returns {boolean}\n */\nfunction equal (uriA, uriB, options) {\n if (typeof uriA === 'string') {\n uriA = unescape(uriA)\n uriA = serialize(normalizeComponentEncoding(parse(uriA, options), true), { ...options, skipEscape: true })\n } else if (typeof uriA === 'object') {\n uriA = serialize(normalizeComponentEncoding(uriA, true), { ...options, skipEscape: true })\n }\n\n if (typeof uriB === 'string') {\n uriB = unescape(uriB)\n uriB = serialize(normalizeComponentEncoding(parse(uriB, options), true), { ...options, skipEscape: true })\n } else if (typeof uriB === 'object') {\n uriB = serialize(normalizeComponentEncoding(uriB, true), { ...options, skipEscape: true })\n }\n\n return uriA.toLowerCase() === uriB.toLowerCase()\n}\n\n/**\n * @param {Readonly<import('./types/index').URIComponent>} cmpts\n * @param {import('./types/index').Options} [opts]\n * @returns {string}\n */\nfunction serialize (cmpts, opts) {\n const component = {\n host: cmpts.host,\n scheme: cmpts.scheme,\n userinfo: cmpts.userinfo,\n port: cmpts.port,\n path: cmpts.path,\n query: cmpts.query,\n nid: cmpts.nid,\n nss: cmpts.nss,\n uuid: cmpts.uuid,\n fragment: cmpts.fragment,\n reference: cmpts.reference,\n resourceName: cmpts.resourceName,\n secure: cmpts.secure,\n error: ''\n }\n const options = Object.assign({}, opts)\n const uriTokens = []\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || component.scheme)\n\n // perform scheme specific serialization\n if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options)\n\n if (component.path !== undefined) {\n if (!options.skipEscape) {\n component.path = escape(component.path)\n\n if (component.scheme !== undefined) {\n component.path = component.path.split('%3A').join(':')\n }\n } else {\n component.path = unescape(component.path)\n }\n }\n\n if (options.reference !== 'suffix' && component.scheme) {\n uriTokens.push(component.scheme, ':')\n }\n\n const authority = recomposeAuthority(component)\n if (authority !== undefined) {\n if (options.reference !== 'suffix') {\n uriTokens.push('//')\n }\n\n uriTokens.push(authority)\n\n if (component.path && component.path[0] !== '/') {\n uriTokens.push('/')\n }\n }\n if (component.path !== undefined) {\n let s = component.path\n\n if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) {\n s = removeDotSegments(s)\n }\n\n if (\n authority === undefined &&\n s[0] === '/' &&\n s[1] === '/'\n ) {\n // don't allow the path to start with \"//\"\n s = '/%2F' + s.slice(2)\n }\n\n uriTokens.push(s)\n }\n\n if (component.query !== undefined) {\n uriTokens.push('?', component.query)\n }\n\n if (component.fragment !== undefined) {\n uriTokens.push('#', component.fragment)\n }\n return uriTokens.join('')\n}\n\nconst URI_PARSE = /^(?:([^#/:?]+):)?(?:\\/\\/((?:([^#/?@]*)@)?(\\[[^#/?\\]]+\\]|[^#/:?]*)(?::(\\d*))?))?([^#?]*)(?:\\?([^#]*))?(?:#((?:.|[\\n\\r])*))?/u\n\n/**\n * @param {string} uri\n * @param {import('./types/index').Options} [opts]\n * @returns\n */\nfunction parse (uri, opts) {\n const options = Object.assign({}, opts)\n /** @type {import('./types/index').URIComponent} */\n const parsed = {\n scheme: undefined,\n userinfo: undefined,\n host: '',\n port: undefined,\n path: '',\n query: undefined,\n fragment: undefined\n }\n\n let isIP = false\n if (options.reference === 'suffix') {\n if (options.scheme) {\n uri = options.scheme + ':' + uri\n } else {\n uri = '//' + uri\n }\n }\n\n const matches = uri.match(URI_PARSE)\n\n if (matches) {\n // store each component\n parsed.scheme = matches[1]\n parsed.userinfo = matches[3]\n parsed.host = matches[4]\n parsed.port = parseInt(matches[5], 10)\n parsed.path = matches[6] || ''\n parsed.query = matches[7]\n parsed.fragment = matches[8]\n\n // fix port number\n if (isNaN(parsed.port)) {\n parsed.port = matches[5]\n }\n if (parsed.host) {\n const ipv4result = isIPv4(parsed.host)\n if (ipv4result === false) {\n const ipv6result = normalizeIPv6(parsed.host)\n parsed.host = ipv6result.host.toLowerCase()\n isIP = ipv6result.isIPV6\n } else {\n isIP = true\n }\n }\n if (parsed.scheme === undefined && parsed.userinfo === undefined && parsed.host === undefined && parsed.port === undefined && parsed.query === undefined && !parsed.path) {\n parsed.reference = 'same-document'\n } else if (parsed.scheme === undefined) {\n parsed.reference = 'relative'\n } else if (parsed.fragment === undefined) {\n parsed.reference = 'absolute'\n } else {\n parsed.reference = 'uri'\n }\n\n // check for reference errors\n if (options.reference && options.reference !== 'suffix' && options.reference !== parsed.reference) {\n parsed.error = parsed.error || 'URI is not a ' + options.reference + ' reference.'\n }\n\n // find scheme handler\n const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme)\n\n // check if scheme can't handle IRIs\n if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {\n // if host component is a domain name\n if (parsed.host && (options.domainHost || (schemeHandler && schemeHandler.domainHost)) && isIP === false && nonSimpleDomain(parsed.host)) {\n // convert Unicode IDN -> ASCII IDN\n try {\n parsed.host = URL.domainToASCII(parsed.host.toLowerCase())\n } catch (e) {\n parsed.error = parsed.error || \"Host's domain name can not be converted to ASCII: \" + e\n }\n }\n // convert IRI -> URI\n }\n\n if (!schemeHandler || (schemeHandler && !schemeHandler.skipNormalize)) {\n if (uri.indexOf('%') !== -1) {\n if (parsed.scheme !== undefined) {\n parsed.scheme = unescape(parsed.scheme)\n }\n if (parsed.host !== undefined) {\n parsed.host = unescape(parsed.host)\n }\n }\n if (parsed.path) {\n parsed.path = escape(unescape(parsed.path))\n }\n if (parsed.fragment) {\n parsed.fragment = encodeURI(decodeURIComponent(parsed.fragment))\n }\n }\n\n // perform scheme specific parsing\n if (schemeHandler && schemeHandler.parse) {\n schemeHandler.parse(parsed, options)\n }\n } else {\n parsed.error = parsed.error || 'URI can not be parsed.'\n }\n return parsed\n}\n\nconst fastUri = {\n SCHEMES,\n normalize,\n resolve,\n resolveComponent,\n equal,\n serialize,\n parse\n}\n\nmodule.exports = fastUri\nmodule.exports.default = fastUri\nmodule.exports.fastUri = fastUri\n", "import * as uri from \"fast-uri\"\n\ntype URI = typeof uri & {code: string}\n;(uri as URI).code = 'require(\"ajv/dist/runtime/uri\").default'\n\nexport default uri as URI\n", "export {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n AnyValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport interface Plugin<Opts> {\n (ajv: Ajv, options?: Opts): Ajv\n [prop: string]: any\n}\n\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\n\nimport type {\n Schema,\n AnySchema,\n AnySchemaObject,\n SchemaObject,\n AsyncSchema,\n Vocabulary,\n KeywordDefinition,\n AddedKeywordDefinition,\n AnyValidateFunction,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n Format,\n AddedFormat,\n RegExpEngine,\n UriResolver,\n} from \"./types\"\nimport type {JSONSchemaType} from \"./types/json-schema\"\nimport type {JTDSchemaType, SomeJTDSchemaType, JTDDataType} from \"./types/jtd-schema\"\nimport ValidationError from \"./runtime/validation_error\"\nimport MissingRefError from \"./compile/ref_error\"\nimport {getRules, ValidationRules, Rule, RuleGroup, JSONType} from \"./compile/rules\"\nimport {SchemaEnv, compileSchema, resolveSchema} from \"./compile\"\nimport {Code, ValueScope} from \"./compile/codegen\"\nimport {normalizeId, getSchemaRefs} from \"./compile/resolve\"\nimport {getJSONTypes} from \"./compile/validate/dataType\"\nimport {eachItem} from \"./compile/util\"\nimport * as $dataRefSchema from \"./refs/data.json\"\n\nimport DefaultUriResolver from \"./runtime/uri\"\n\nconst defaultRegExp: RegExpEngine = (str, flags) => new RegExp(str, flags)\ndefaultRegExp.code = \"new RegExp\"\n\nconst META_IGNORE_OPTIONS: (keyof Options)[] = [\"removeAdditional\", \"useDefaults\", \"coerceTypes\"]\nconst EXT_SCOPE_NAMES = new Set([\n \"validate\",\n \"serialize\",\n \"parse\",\n \"wrapper\",\n \"root\",\n \"schema\",\n \"keyword\",\n \"pattern\",\n \"formats\",\n \"validate$data\",\n \"func\",\n \"obj\",\n \"Error\",\n])\n\nexport type Options = CurrentOptions & DeprecatedOptions\n\nexport interface CurrentOptions {\n // strict mode options (NEW)\n strict?: boolean | \"log\"\n strictSchema?: boolean | \"log\"\n strictNumbers?: boolean | \"log\"\n strictTypes?: boolean | \"log\"\n strictTuples?: boolean | \"log\"\n strictRequired?: boolean | \"log\"\n allowMatchingProperties?: boolean // disables a strict mode restriction\n allowUnionTypes?: boolean\n validateFormats?: boolean\n // validation and reporting options:\n $data?: boolean\n allErrors?: boolean\n verbose?: boolean\n discriminator?: boolean\n unicodeRegExp?: boolean\n timestamp?: \"string\" | \"date\" // JTD only\n parseDate?: boolean // JTD only\n allowDate?: boolean // JTD only\n specialNumbers?: \"fast\" | \"null\" // JTD only\n $comment?:\n | true\n | ((comment: string, schemaPath?: string, rootSchema?: AnySchemaObject) => unknown)\n formats?: {[Name in string]?: Format}\n keywords?: Vocabulary\n schemas?: AnySchema[] | {[Key in string]?: AnySchema}\n logger?: Logger | false\n loadSchema?: (uri: string) => Promise<AnySchemaObject>\n // options to modify validated data:\n removeAdditional?: boolean | \"all\" | \"failing\"\n useDefaults?: boolean | \"empty\"\n coerceTypes?: boolean | \"array\"\n // advanced options:\n next?: boolean // NEW\n unevaluated?: boolean // NEW\n dynamicRef?: boolean // NEW\n schemaId?: \"id\" | \"$id\"\n jtd?: boolean // NEW\n meta?: SchemaObject | boolean\n defaultMeta?: string | AnySchemaObject\n validateSchema?: boolean | \"log\"\n addUsedSchema?: boolean\n inlineRefs?: boolean | number\n passContext?: boolean\n loopRequired?: number\n loopEnum?: number // NEW\n ownProperties?: boolean\n multipleOfPrecision?: number\n int32range?: boolean // JTD only\n messages?: boolean\n code?: CodeOptions // NEW\n uriResolver?: UriResolver\n}\n\nexport interface CodeOptions {\n es5?: boolean\n esm?: boolean\n lines?: boolean\n optimize?: boolean | number\n formats?: Code // code to require (or construct) map of available formats - for standalone code\n source?: boolean\n process?: (code: string, schema?: SchemaEnv) => string\n regExp?: RegExpEngine\n}\n\ninterface InstanceCodeOptions extends CodeOptions {\n regExp: RegExpEngine\n optimize: number\n}\n\ninterface DeprecatedOptions {\n /** @deprecated */\n ignoreKeywordsWithRef?: boolean\n /** @deprecated */\n jsPropertySyntax?: boolean // added instead of jsonPointers\n /** @deprecated */\n unicode?: boolean\n}\n\ninterface RemovedOptions {\n format?: boolean\n errorDataPath?: \"object\" | \"property\"\n nullable?: boolean // \"nullable\" keyword is supported by default\n jsonPointers?: boolean\n extendRefs?: true | \"ignore\" | \"fail\"\n missingRefs?: true | \"ignore\" | \"fail\"\n processCode?: (code: string, schema?: SchemaEnv) => string\n sourceCode?: boolean\n strictDefaults?: boolean\n strictKeywords?: boolean\n uniqueItems?: boolean\n unknownFormats?: true | string[] | \"ignore\"\n cache?: any\n serialize?: (schema: AnySchema) => unknown\n ajvErrors?: boolean\n}\n\ntype OptionsInfo<T extends RemovedOptions | DeprecatedOptions> = {\n [K in keyof T]-?: string | undefined\n}\n\nconst removedOptions: OptionsInfo<RemovedOptions> = {\n errorDataPath: \"\",\n format: \"`validateFormats: false` can be used instead.\",\n nullable: '\"nullable\" keyword is supported by default.',\n jsonPointers: \"Deprecated jsPropertySyntax can be used instead.\",\n extendRefs: \"Deprecated ignoreKeywordsWithRef can be used instead.\",\n missingRefs: \"Pass empty schema with $id that should be ignored to ajv.addSchema.\",\n processCode: \"Use option `code: {process: (code, schemaEnv: object) => string}`\",\n sourceCode: \"Use option `code: {source: true}`\",\n strictDefaults: \"It is default now, see option `strict`.\",\n strictKeywords: \"It is default now, see option `strict`.\",\n uniqueItems: '\"uniqueItems\" keyword is always validated.',\n unknownFormats: \"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).\",\n cache: \"Map is used as cache, schema object as key.\",\n serialize: \"Map is used as cache, schema object as key.\",\n ajvErrors: \"It is default now.\",\n}\n\nconst deprecatedOptions: OptionsInfo<DeprecatedOptions> = {\n ignoreKeywordsWithRef: \"\",\n jsPropertySyntax: \"\",\n unicode: '\"minLength\"/\"maxLength\" account for unicode characters by default.',\n}\n\ntype RequiredInstanceOptions = {\n [K in\n | \"strictSchema\"\n | \"strictNumbers\"\n | \"strictTypes\"\n | \"strictTuples\"\n | \"strictRequired\"\n | \"inlineRefs\"\n | \"loopRequired\"\n | \"loopEnum\"\n | \"meta\"\n | \"messages\"\n | \"schemaId\"\n | \"addUsedSchema\"\n | \"validateSchema\"\n | \"validateFormats\"\n | \"int32range\"\n | \"unicodeRegExp\"\n | \"uriResolver\"]: NonNullable<Options[K]>\n} & {code: InstanceCodeOptions}\n\nexport type InstanceOptions = Options & RequiredInstanceOptions\n\nconst MAX_EXPRESSION = 200\n\n// eslint-disable-next-line complexity\nfunction requiredOptions(o: Options): RequiredInstanceOptions {\n const s = o.strict\n const _optz = o.code?.optimize\n const optimize = _optz === true || _optz === undefined ? 1 : _optz || 0\n const regExp = o.code?.regExp ?? defaultRegExp\n const uriResolver = o.uriResolver ?? DefaultUriResolver\n return {\n strictSchema: o.strictSchema ?? s ?? true,\n strictNumbers: o.strictNumbers ?? s ?? true,\n strictTypes: o.strictTypes ?? s ?? \"log\",\n strictTuples: o.strictTuples ?? s ?? \"log\",\n strictRequired: o.strictRequired ?? s ?? false,\n code: o.code ? {...o.code, optimize, regExp} : {optimize, regExp},\n loopRequired: o.loopRequired ?? MAX_EXPRESSION,\n loopEnum: o.loopEnum ?? MAX_EXPRESSION,\n meta: o.meta ?? true,\n messages: o.messages ?? true,\n inlineRefs: o.inlineRefs ?? true,\n schemaId: o.schemaId ?? \"$id\",\n addUsedSchema: o.addUsedSchema ?? true,\n validateSchema: o.validateSchema ?? true,\n validateFormats: o.validateFormats ?? true,\n unicodeRegExp: o.unicodeRegExp ?? true,\n int32range: o.int32range ?? true,\n uriResolver: uriResolver,\n }\n}\n\nexport interface Logger {\n log(...args: unknown[]): unknown\n warn(...args: unknown[]): unknown\n error(...args: unknown[]): unknown\n}\n\nexport default class Ajv {\n opts: InstanceOptions\n errors?: ErrorObject[] | null // errors from the last validation\n logger: Logger\n // shared external scope values for compiled functions\n readonly scope: ValueScope\n readonly schemas: {[Key in string]?: SchemaEnv} = {}\n readonly refs: {[Ref in string]?: SchemaEnv | string} = {}\n readonly formats: {[Name in string]?: AddedFormat} = {}\n readonly RULES: ValidationRules\n readonly _compilations: Set<SchemaEnv> = new Set()\n private readonly _loading: {[Ref in string]?: Promise<AnySchemaObject>} = {}\n private readonly _cache: Map<AnySchema, SchemaEnv> = new Map()\n private readonly _metaOpts: InstanceOptions\n\n static ValidationError = ValidationError\n static MissingRefError = MissingRefError\n\n constructor(opts: Options = {}) {\n opts = this.opts = {...opts, ...requiredOptions(opts)}\n const {es5, lines} = this.opts.code\n\n this.scope = new ValueScope({scope: {}, prefixes: EXT_SCOPE_NAMES, es5, lines})\n this.logger = getLogger(opts.logger)\n const formatOpt = opts.validateFormats\n opts.validateFormats = false\n\n this.RULES = getRules()\n checkOptions.call(this, removedOptions, opts, \"NOT SUPPORTED\")\n checkOptions.call(this, deprecatedOptions, opts, \"DEPRECATED\", \"warn\")\n this._metaOpts = getMetaSchemaOptions.call(this)\n\n if (opts.formats) addInitialFormats.call(this)\n this._addVocabularies()\n this._addDefaultMetaSchema()\n if (opts.keywords) addInitialKeywords.call(this, opts.keywords)\n if (typeof opts.meta == \"object\") this.addMetaSchema(opts.meta)\n addInitialSchemas.call(this)\n opts.validateFormats = formatOpt\n }\n\n _addVocabularies(): void {\n this.addKeyword(\"$async\")\n }\n\n _addDefaultMetaSchema(): void {\n const {$data, meta, schemaId} = this.opts\n let _dataRefSchema: SchemaObject = $dataRefSchema\n if (schemaId === \"id\") {\n _dataRefSchema = {...$dataRefSchema}\n _dataRefSchema.id = _dataRefSchema.$id\n delete _dataRefSchema.$id\n }\n if (meta && $data) this.addMetaSchema(_dataRefSchema, _dataRefSchema[schemaId], false)\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n const {meta, schemaId} = this.opts\n return (this.opts.defaultMeta = typeof meta == \"object\" ? meta[schemaId] || meta : undefined)\n }\n\n // Validate data using schema\n // AnySchema will be compiled and cached using schema itself as a key for Map\n validate(schema: Schema | string, data: unknown): boolean\n validate(schemaKeyRef: AnySchema | string, data: unknown): boolean | Promise<unknown>\n validate<T>(schema: Schema | JSONSchemaType<T> | string, data: unknown): data is T\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n validate<T>(schema: JTDSchemaType<T>, data: unknown): data is T\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n validate<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n data: unknown\n ): data is JTDDataType<T>\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n validate<T>(schema: AsyncSchema, data: unknown | T): Promise<T>\n validate<T>(schemaKeyRef: AnySchema | string, data: unknown): data is T | Promise<T>\n validate<T>(\n schemaKeyRef: AnySchema | string, // key, ref or schema object\n // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents\n data: unknown | T // to be validated\n ): boolean | Promise<T> {\n let v: AnyValidateFunction | undefined\n if (typeof schemaKeyRef == \"string\") {\n v = this.getSchema<T>(schemaKeyRef)\n if (!v) throw new Error(`no schema with key or ref \"${schemaKeyRef}\"`)\n } else {\n v = this.compile<T>(schemaKeyRef)\n }\n\n const valid = v(data)\n if (!(\"$async\" in v)) this.errors = v.errors\n return valid\n }\n\n // Create validation function for passed schema\n // _meta: true if schema is a meta-schema. Used internally to compile meta schemas of user-defined keywords.\n compile<T = unknown>(schema: Schema | JSONSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compile<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): ValidateFunction<T>\n // This overload is only intended for typescript inference, the first\n // argument prevents manual type annotation from matching this overload\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n compile<N extends never, T extends SomeJTDSchemaType>(\n schema: T,\n _meta?: boolean\n ): ValidateFunction<JTDDataType<T>>\n compile<T = unknown>(schema: AsyncSchema, _meta?: boolean): AsyncValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T>\n compile<T = unknown>(schema: AnySchema, _meta?: boolean): AnyValidateFunction<T> {\n const sch = this._addSchema(schema, _meta)\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T>\n }\n\n // Creates validating function for passed schema with asynchronous loading of missing schemas.\n // `loadSchema` option should be a function that accepts schema uri and returns promise that resolves with the schema.\n // TODO allow passing schema URI\n // meta - optional true to compile meta-schema\n compileAsync<T = unknown>(\n schema: SchemaObject | JSONSchemaType<T>,\n _meta?: boolean\n ): Promise<ValidateFunction<T>>\n // Separated for type inference to work\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(schema: JTDSchemaType<T>, _meta?: boolean): Promise<ValidateFunction<T>>\n compileAsync<T = unknown>(schema: AsyncSchema, meta?: boolean): Promise<AsyncValidateFunction<T>>\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>>\n compileAsync<T = unknown>(\n schema: AnySchemaObject,\n meta?: boolean\n ): Promise<AnyValidateFunction<T>> {\n if (typeof this.opts.loadSchema != \"function\") {\n throw new Error(\"options.loadSchema should be a function\")\n }\n const {loadSchema} = this.opts\n return runCompileAsync.call(this, schema, meta)\n\n async function runCompileAsync(\n this: Ajv,\n _schema: AnySchemaObject,\n _meta?: boolean\n ): Promise<AnyValidateFunction> {\n await loadMetaSchema.call(this, _schema.$schema)\n const sch = this._addSchema(_schema, _meta)\n return sch.validate || _compileAsync.call(this, sch)\n }\n\n async function loadMetaSchema(this: Ajv, $ref?: string): Promise<void> {\n if ($ref && !this.getSchema($ref)) {\n await runCompileAsync.call(this, {$ref}, true)\n }\n }\n\n async function _compileAsync(this: Ajv, sch: SchemaEnv): Promise<AnyValidateFunction> {\n try {\n return this._compileSchemaEnv(sch)\n } catch (e) {\n if (!(e instanceof MissingRefError)) throw e\n checkLoaded.call(this, e)\n await loadMissingSchema.call(this, e.missingSchema)\n return _compileAsync.call(this, sch)\n }\n }\n\n function checkLoaded(this: Ajv, {missingSchema: ref, missingRef}: MissingRefError): void {\n if (this.refs[ref]) {\n throw new Error(`AnySchema ${ref} is loaded but ${missingRef} cannot be resolved`)\n }\n }\n\n async function loadMissingSchema(this: Ajv, ref: string): Promise<void> {\n const _schema = await _loadSchema.call(this, ref)\n if (!this.refs[ref]) await loadMetaSchema.call(this, _schema.$schema)\n if (!this.refs[ref]) this.addSchema(_schema, ref, meta)\n }\n\n async function _loadSchema(this: Ajv, ref: string): Promise<AnySchemaObject> {\n const p = this._loading[ref]\n if (p) return p\n try {\n return await (this._loading[ref] = loadSchema(ref))\n } finally {\n delete this._loading[ref]\n }\n }\n }\n\n // Adds schema to the instance\n addSchema(\n schema: AnySchema | AnySchema[], // If array is passed, `key` will be ignored\n key?: string, // Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`.\n _meta?: boolean, // true if schema is a meta-schema. Used internally, addMetaSchema should be used instead.\n _validateSchema = this.opts.validateSchema // false to skip schema validation. Used internally, option validateSchema should be used instead.\n ): Ajv {\n if (Array.isArray(schema)) {\n for (const sch of schema) this.addSchema(sch, undefined, _meta, _validateSchema)\n return this\n }\n let id: string | undefined\n if (typeof schema === \"object\") {\n const {schemaId} = this.opts\n id = schema[schemaId]\n if (id !== undefined && typeof id != \"string\") {\n throw new Error(`schema ${schemaId} must be string`)\n }\n }\n key = normalizeId(key || id)\n this._checkUnique(key)\n this.schemas[key] = this._addSchema(schema, _meta, key, _validateSchema, true)\n return this\n }\n\n // Add schema that will be used to validate other schemas\n // options in META_IGNORE_OPTIONS are alway set to false\n addMetaSchema(\n schema: AnySchemaObject,\n key?: string, // schema key\n _validateSchema = this.opts.validateSchema // false to skip schema validation, can be used to override validateSchema option for meta-schema\n ): Ajv {\n this.addSchema(schema, key, true, _validateSchema)\n return this\n }\n\n // Validate schema against its meta-schema\n validateSchema(schema: AnySchema, throwOrLogError?: boolean): boolean | Promise<unknown> {\n if (typeof schema == \"boolean\") return true\n let $schema: string | AnySchemaObject | undefined\n $schema = schema.$schema\n if ($schema !== undefined && typeof $schema != \"string\") {\n throw new Error(\"$schema must be a string\")\n }\n $schema = $schema || this.opts.defaultMeta || this.defaultMeta()\n if (!$schema) {\n this.logger.warn(\"meta-schema not available\")\n this.errors = null\n return true\n }\n const valid = this.validate($schema, schema)\n if (!valid && throwOrLogError) {\n const message = \"schema is invalid: \" + this.errorsText()\n if (this.opts.validateSchema === \"log\") this.logger.error(message)\n else throw new Error(message)\n }\n return valid\n }\n\n // Get compiled schema by `key` or `ref`.\n // (`key` that was passed to `addSchema` or full schema reference - `schema.$id` or resolved id)\n getSchema<T = unknown>(keyRef: string): AnyValidateFunction<T> | undefined {\n let sch\n while (typeof (sch = getSchEnv.call(this, keyRef)) == \"string\") keyRef = sch\n if (sch === undefined) {\n const {schemaId} = this.opts\n const root = new SchemaEnv({schema: {}, schemaId})\n sch = resolveSchema.call(this, root, keyRef)\n if (!sch) return\n this.refs[keyRef] = sch\n }\n return (sch.validate || this._compileSchemaEnv(sch)) as AnyValidateFunction<T> | undefined\n }\n\n // Remove cached schema(s).\n // If no parameter is passed all schemas but meta-schemas are removed.\n // If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.\n // Even if schema is referenced by other schemas it still can be removed as other schemas have local references.\n removeSchema(schemaKeyRef?: AnySchema | string | RegExp): Ajv {\n if (schemaKeyRef instanceof RegExp) {\n this._removeAllSchemas(this.schemas, schemaKeyRef)\n this._removeAllSchemas(this.refs, schemaKeyRef)\n return this\n }\n switch (typeof schemaKeyRef) {\n case \"undefined\":\n this._removeAllSchemas(this.schemas)\n this._removeAllSchemas(this.refs)\n this._cache.clear()\n return this\n case \"string\": {\n const sch = getSchEnv.call(this, schemaKeyRef)\n if (typeof sch == \"object\") this._cache.delete(sch.schema)\n delete this.schemas[schemaKeyRef]\n delete this.refs[schemaKeyRef]\n return this\n }\n case \"object\": {\n const cacheKey = schemaKeyRef\n this._cache.delete(cacheKey)\n let id = schemaKeyRef[this.opts.schemaId]\n if (id) {\n id = normalizeId(id)\n delete this.schemas[id]\n delete this.refs[id]\n }\n return this\n }\n default:\n throw new Error(\"ajv.removeSchema: invalid parameter\")\n }\n }\n\n // add \"vocabulary\" - a collection of keywords\n addVocabulary(definitions: Vocabulary): Ajv {\n for (const def of definitions) this.addKeyword(def)\n return this\n }\n\n addKeyword(\n kwdOrDef: string | KeywordDefinition,\n def?: KeywordDefinition // deprecated\n ): Ajv {\n let keyword: string | string[]\n if (typeof kwdOrDef == \"string\") {\n keyword = kwdOrDef\n if (typeof def == \"object\") {\n this.logger.warn(\"these parameters are deprecated, see docs for addKeyword\")\n def.keyword = keyword\n }\n } else if (typeof kwdOrDef == \"object\" && def === undefined) {\n def = kwdOrDef\n keyword = def.keyword\n if (Array.isArray(keyword) && !keyword.length) {\n throw new Error(\"addKeywords: keyword must be string or non-empty array\")\n }\n } else {\n throw new Error(\"invalid addKeywords parameters\")\n }\n\n checkKeyword.call(this, keyword, def)\n if (!def) {\n eachItem(keyword, (kwd) => addRule.call(this, kwd))\n return this\n }\n keywordMetaschema.call(this, def)\n const definition: AddedKeywordDefinition = {\n ...def,\n type: getJSONTypes(def.type),\n schemaType: getJSONTypes(def.schemaType),\n }\n eachItem(\n keyword,\n definition.type.length === 0\n ? (k) => addRule.call(this, k, definition)\n : (k) => definition.type.forEach((t) => addRule.call(this, k, definition, t))\n )\n return this\n }\n\n getKeyword(keyword: string): AddedKeywordDefinition | boolean {\n const rule = this.RULES.all[keyword]\n return typeof rule == \"object\" ? rule.definition : !!rule\n }\n\n // Remove keyword\n removeKeyword(keyword: string): Ajv {\n // TODO return type should be Ajv\n const {RULES} = this\n delete RULES.keywords[keyword]\n delete RULES.all[keyword]\n for (const group of RULES.rules) {\n const i = group.rules.findIndex((rule) => rule.keyword === keyword)\n if (i >= 0) group.rules.splice(i, 1)\n }\n return this\n }\n\n // Add format\n addFormat(name: string, format: Format): Ajv {\n if (typeof format == \"string\") format = new RegExp(format)\n this.formats[name] = format\n return this\n }\n\n errorsText(\n errors: ErrorObject[] | null | undefined = this.errors, // optional array of validation errors\n {separator = \", \", dataVar = \"data\"}: ErrorsTextOptions = {} // optional options with properties `separator` and `dataVar`\n ): string {\n if (!errors || errors.length === 0) return \"No errors\"\n return errors\n .map((e) => `${dataVar}${e.instancePath} ${e.message}`)\n .reduce((text, msg) => text + separator + msg)\n }\n\n $dataMetaSchema(metaSchema: AnySchemaObject, keywordsJsonPointers: string[]): AnySchemaObject {\n const rules = this.RULES.all\n metaSchema = JSON.parse(JSON.stringify(metaSchema))\n for (const jsonPointer of keywordsJsonPointers) {\n const segments = jsonPointer.split(\"/\").slice(1) // first segment is an empty string\n let keywords = metaSchema\n for (const seg of segments) keywords = keywords[seg] as AnySchemaObject\n\n for (const key in rules) {\n const rule = rules[key]\n if (typeof rule != \"object\") continue\n const {$data} = rule.definition\n const schema = keywords[key] as AnySchemaObject | undefined\n if ($data && schema) keywords[key] = schemaOrData(schema)\n }\n }\n\n return metaSchema\n }\n\n private _removeAllSchemas(schemas: {[Ref in string]?: SchemaEnv | string}, regex?: RegExp): void {\n for (const keyRef in schemas) {\n const sch = schemas[keyRef]\n if (!regex || regex.test(keyRef)) {\n if (typeof sch == \"string\") {\n delete schemas[keyRef]\n } else if (sch && !sch.meta) {\n this._cache.delete(sch.schema)\n delete schemas[keyRef]\n }\n }\n }\n }\n\n _addSchema(\n schema: AnySchema,\n meta?: boolean,\n baseId?: string,\n validateSchema = this.opts.validateSchema,\n addSchema = this.opts.addUsedSchema\n ): SchemaEnv {\n let id: string | undefined\n const {schemaId} = this.opts\n if (typeof schema == \"object\") {\n id = schema[schemaId]\n } else {\n if (this.opts.jtd) throw new Error(\"schema must be object\")\n else if (typeof schema != \"boolean\") throw new Error(\"schema must be object or boolean\")\n }\n let sch = this._cache.get(schema)\n if (sch !== undefined) return sch\n\n baseId = normalizeId(id || baseId)\n const localRefs = getSchemaRefs.call(this, schema, baseId)\n sch = new SchemaEnv({schema, schemaId, meta, baseId, localRefs})\n this._cache.set(sch.schema, sch)\n if (addSchema && !baseId.startsWith(\"#\")) {\n // TODO atm it is allowed to overwrite schemas without id (instead of not adding them)\n if (baseId) this._checkUnique(baseId)\n this.refs[baseId] = sch\n }\n if (validateSchema) this.validateSchema(schema, true)\n return sch\n }\n\n private _checkUnique(id: string): void {\n if (this.schemas[id] || this.refs[id]) {\n throw new Error(`schema with key or id \"${id}\" already exists`)\n }\n }\n\n private _compileSchemaEnv(sch: SchemaEnv): AnyValidateFunction {\n if (sch.meta) this._compileMetaSchema(sch)\n else compileSchema.call(this, sch)\n\n /* istanbul ignore if */\n if (!sch.validate) throw new Error(\"ajv implementation error\")\n return sch.validate\n }\n\n private _compileMetaSchema(sch: SchemaEnv): void {\n const currentOpts = this.opts\n this.opts = this._metaOpts\n try {\n compileSchema.call(this, sch)\n } finally {\n this.opts = currentOpts\n }\n }\n}\n\nexport interface ErrorsTextOptions {\n separator?: string\n dataVar?: string\n}\n\nfunction checkOptions(\n this: Ajv,\n checkOpts: OptionsInfo<RemovedOptions | DeprecatedOptions>,\n options: Options & RemovedOptions,\n msg: string,\n log: \"warn\" | \"error\" = \"error\"\n): void {\n for (const key in checkOpts) {\n const opt = key as keyof typeof checkOpts\n if (opt in options) this.logger[log](`${msg}: option ${key}. ${checkOpts[opt]}`)\n }\n}\n\nfunction getSchEnv(this: Ajv, keyRef: string): SchemaEnv | string | undefined {\n keyRef = normalizeId(keyRef) // TODO tests fail without this line\n return this.schemas[keyRef] || this.refs[keyRef]\n}\n\nfunction addInitialSchemas(this: Ajv): void {\n const optsSchemas = this.opts.schemas\n if (!optsSchemas) return\n if (Array.isArray(optsSchemas)) this.addSchema(optsSchemas)\n else for (const key in optsSchemas) this.addSchema(optsSchemas[key] as AnySchema, key)\n}\n\nfunction addInitialFormats(this: Ajv): void {\n for (const name in this.opts.formats) {\n const format = this.opts.formats[name]\n if (format) this.addFormat(name, format)\n }\n}\n\nfunction addInitialKeywords(\n this: Ajv,\n defs: Vocabulary | {[K in string]?: KeywordDefinition}\n): void {\n if (Array.isArray(defs)) {\n this.addVocabulary(defs)\n return\n }\n this.logger.warn(\"keywords option as map is deprecated, pass array\")\n for (const keyword in defs) {\n const def = defs[keyword] as KeywordDefinition\n if (!def.keyword) def.keyword = keyword\n this.addKeyword(def)\n }\n}\n\nfunction getMetaSchemaOptions(this: Ajv): InstanceOptions {\n const metaOpts = {...this.opts}\n for (const opt of META_IGNORE_OPTIONS) delete metaOpts[opt]\n return metaOpts\n}\n\nconst noLogs = {log() {}, warn() {}, error() {}}\n\nfunction getLogger(logger?: Partial<Logger> | false): Logger {\n if (logger === false) return noLogs\n if (logger === undefined) return console\n if (logger.log && logger.warn && logger.error) return logger as Logger\n throw new Error(\"logger must implement log, warn and error methods\")\n}\n\nconst KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i\n\nfunction checkKeyword(this: Ajv, keyword: string | string[], def?: KeywordDefinition): void {\n const {RULES} = this\n eachItem(keyword, (kwd) => {\n if (RULES.keywords[kwd]) throw new Error(`Keyword ${kwd} is already defined`)\n if (!KEYWORD_NAME.test(kwd)) throw new Error(`Keyword ${kwd} has invalid name`)\n })\n if (!def) return\n if (def.$data && !(\"code\" in def || \"validate\" in def)) {\n throw new Error('$data keyword must have \"code\" or \"validate\" function')\n }\n}\n\nfunction addRule(\n this: Ajv,\n keyword: string,\n definition?: AddedKeywordDefinition,\n dataType?: JSONType\n): void {\n const post = definition?.post\n if (dataType && post) throw new Error('keyword with \"post\" flag cannot have \"type\"')\n const {RULES} = this\n let ruleGroup = post ? RULES.post : RULES.rules.find(({type: t}) => t === dataType)\n if (!ruleGroup) {\n ruleGroup = {type: dataType, rules: []}\n RULES.rules.push(ruleGroup)\n }\n RULES.keywords[keyword] = true\n if (!definition) return\n\n const rule: Rule = {\n keyword,\n definition: {\n ...definition,\n type: getJSONTypes(definition.type),\n schemaType: getJSONTypes(definition.schemaType),\n },\n }\n if (definition.before) addBeforeRule.call(this, ruleGroup, rule, definition.before)\n else ruleGroup.rules.push(rule)\n RULES.all[keyword] = rule\n definition.implements?.forEach((kwd) => this.addKeyword(kwd))\n}\n\nfunction addBeforeRule(this: Ajv, ruleGroup: RuleGroup, rule: Rule, before: string): void {\n const i = ruleGroup.rules.findIndex((_rule) => _rule.keyword === before)\n if (i >= 0) {\n ruleGroup.rules.splice(i, 0, rule)\n } else {\n ruleGroup.rules.push(rule)\n this.logger.warn(`rule ${before} is not defined`)\n }\n}\n\nfunction keywordMetaschema(this: Ajv, def: KeywordDefinition): void {\n let {metaSchema} = def\n if (metaSchema === undefined) return\n if (def.$data && this.opts.$data) metaSchema = schemaOrData(metaSchema)\n def.validateSchema = this.compile(metaSchema, true)\n}\n\nconst $dataRef = {\n $ref: \"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#\",\n}\n\nfunction schemaOrData(schema: AnySchema): AnySchemaObject {\n return {anyOf: [schema, $dataRef]}\n}\n", "import type {CodeKeywordDefinition} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"id\",\n code() {\n throw new Error('NOT SUPPORTED: keyword \"id\", use \"$id\" for schema ID')\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {callValidateCode} from \"../code\"\nimport {_, nil, stringify, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, resolveRef} from \"../../compile\"\nimport {mergeEvaluated} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$ref\",\n schemaType: \"string\",\n code(cxt: KeywordCxt): void {\n const {gen, schema: $ref, it} = cxt\n const {baseId, schemaEnv: env, validateName, opts, self} = it\n const {root} = env\n if (($ref === \"#\" || $ref === \"#/\") && baseId === root.baseId) return callRootRef()\n const schOrEnv = resolveRef.call(self, root, baseId, $ref)\n if (schOrEnv === undefined) throw new MissingRefError(it.opts.uriResolver, baseId, $ref)\n if (schOrEnv instanceof SchemaEnv) return callValidate(schOrEnv)\n return inlineRefSchema(schOrEnv)\n\n function callRootRef(): void {\n if (env === root) return callRef(cxt, validateName, env, env.$async)\n const rootName = gen.scopeValue(\"root\", {ref: root})\n return callRef(cxt, _`${rootName}.validate`, root, root.$async)\n }\n\n function callValidate(sch: SchemaEnv): void {\n const v = getValidate(cxt, sch)\n callRef(cxt, v, sch, sch.$async)\n }\n\n function inlineRefSchema(sch: AnySchema): void {\n const schName = gen.scopeValue(\n \"schema\",\n opts.code.source === true ? {ref: sch, code: stringify(sch)} : {ref: sch}\n )\n const valid = gen.name(\"valid\")\n const schCxt = cxt.subschema(\n {\n schema: sch,\n dataTypes: [],\n schemaPath: nil,\n topSchemaRef: schName,\n errSchemaPath: $ref,\n },\n valid\n )\n cxt.mergeEvaluated(schCxt)\n cxt.ok(valid)\n }\n },\n}\n\nexport function getValidate(cxt: KeywordCxt, sch: SchemaEnv): Code {\n const {gen} = cxt\n return sch.validate\n ? gen.scopeValue(\"validate\", {ref: sch.validate})\n : _`${gen.scopeValue(\"wrapper\", {ref: sch})}.validate`\n}\n\nexport function callRef(cxt: KeywordCxt, v: Code, sch?: SchemaEnv, $async?: boolean): void {\n const {gen, it} = cxt\n const {allErrors, schemaEnv: env, opts} = it\n const passCxt = opts.passContext ? N.this : nil\n if ($async) callAsyncRef()\n else callSyncRef()\n\n function callAsyncRef(): void {\n if (!env.$async) throw new Error(\"async schema referenced by sync schema\")\n const valid = gen.let(\"valid\")\n gen.try(\n () => {\n gen.code(_`await ${callValidateCode(cxt, v, passCxt)}`)\n addEvaluatedFrom(v) // TODO will not work with async, it has to be returned with the result\n if (!allErrors) gen.assign(valid, true)\n },\n (e) => {\n gen.if(_`!(${e} instanceof ${it.ValidationError as Name})`, () => gen.throw(e))\n addErrorsFrom(e)\n if (!allErrors) gen.assign(valid, false)\n }\n )\n cxt.ok(valid)\n }\n\n function callSyncRef(): void {\n cxt.result(\n callValidateCode(cxt, v, passCxt),\n () => addEvaluatedFrom(v),\n () => addErrorsFrom(v)\n )\n }\n\n function addErrorsFrom(source: Code): void {\n const errs = _`${source}.errors`\n gen.assign(N.vErrors, _`${N.vErrors} === null ? ${errs} : ${N.vErrors}.concat(${errs})`) // TODO tagged\n gen.assign(N.errors, _`${N.vErrors}.length`)\n }\n\n function addEvaluatedFrom(source: Code): void {\n if (!it.opts.unevaluated) return\n const schEvaluated = sch?.validate?.evaluated\n // TODO refactor\n if (it.props !== true) {\n if (schEvaluated && !schEvaluated.dynamicProps) {\n if (schEvaluated.props !== undefined) {\n it.props = mergeEvaluated.props(gen, schEvaluated.props, it.props)\n }\n } else {\n const props = gen.var(\"props\", _`${source}.evaluated.props`)\n it.props = mergeEvaluated.props(gen, props, it.props, Name)\n }\n }\n if (it.items !== true) {\n if (schEvaluated && !schEvaluated.dynamicItems) {\n if (schEvaluated.items !== undefined) {\n it.items = mergeEvaluated.items(gen, schEvaluated.items, it.items)\n }\n } else {\n const items = gen.var(\"items\", _`${source}.evaluated.items`)\n it.items = mergeEvaluated.items(gen, items, it.items, Name)\n }\n }\n }\n}\n\nexport default def\n", "import type {Vocabulary} from \"../../types\"\nimport idKeyword from \"./id\"\nimport refKeyword from \"./ref\"\n\nconst core: Vocabulary = [\n \"$schema\",\n \"$id\",\n \"$defs\",\n \"$vocabulary\",\n {keyword: \"$comment\"},\n \"definitions\",\n idKeyword,\n refKeyword,\n]\n\nexport default core\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators, Code} from \"../../compile/codegen\"\n\nconst ops = operators\n\ntype Kwd = \"maximum\" | \"minimum\" | \"exclusiveMaximum\" | \"exclusiveMinimum\"\n\ntype Comparison = \"<=\" | \">=\" | \"<\" | \">\"\n\nconst KWDs: {[K in Kwd]: {okStr: Comparison; ok: Code; fail: Code}} = {\n maximum: {okStr: \"<=\", ok: ops.LTE, fail: ops.GT},\n minimum: {okStr: \">=\", ok: ops.GTE, fail: ops.LT},\n exclusiveMaximum: {okStr: \"<\", ok: ops.LT, fail: ops.GTE},\n exclusiveMinimum: {okStr: \">\", ok: ops.GT, fail: ops.LTE},\n}\n\nexport type LimitNumberError = ErrorObject<\n Kwd,\n {limit: number; comparison: Comparison},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({keyword, schemaCode}) => str`must be ${KWDs[keyword as Kwd].okStr} ${schemaCode}`,\n params: ({keyword, schemaCode}) =>\n _`{comparison: ${KWDs[keyword as Kwd].okStr}, limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: Object.keys(KWDs),\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n cxt.fail$data(_`${data} ${KWDs[keyword as Kwd].fail} ${schemaCode} || isNaN(${data})`)\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type MultipleOfError = ErrorObject<\n \"multipleOf\",\n {multipleOf: number},\n number | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must be multiple of ${schemaCode}`,\n params: ({schemaCode}) => _`{multipleOf: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"multipleOf\",\n type: \"number\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schemaCode, it} = cxt\n // const bdt = bad$DataType(schemaCode, <string>def.schemaType, $data)\n const prec = it.opts.multipleOfPrecision\n const res = gen.let(\"res\")\n const invalid = prec\n ? _`Math.abs(Math.round(${res}) - ${res}) > 1e-${prec}`\n : _`${res} !== parseInt(${res})`\n cxt.fail$data(_`(${schemaCode} === 0 || (${res} = ${data}/${schemaCode}, ${invalid}))`)\n },\n}\n\nexport default def\n", "// https://mathiasbynens.be/notes/javascript-encoding\n// https://github.com/bestiejs/punycode.js - punycode.ucs2.decode\nexport default function ucs2length(str: string): number {\n const len = str.length\n let length = 0\n let pos = 0\n let value: number\n while (pos < len) {\n length++\n value = str.charCodeAt(pos++)\n if (value >= 0xd800 && value <= 0xdbff && pos < len) {\n // high surrogate, and there is a next character\n value = str.charCodeAt(pos)\n if ((value & 0xfc00) === 0xdc00) pos++ // low surrogate\n }\n }\n return length\n}\n\nucs2length.code = 'require(\"ajv/dist/runtime/ucs2length\").default'\n", "import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport ucs2length from \"../../runtime/ucs2length\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxLength\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} characters`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxLength\", \"minLength\"],\n type: \"string\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode, it} = cxt\n const op = keyword === \"maxLength\" ? operators.GT : operators.LT\n const len =\n it.opts.unicode === false ? _`${data}.length` : _`${useFunc(cxt.gen, ucs2length)}(${data})`\n cxt.fail$data(_`${len} ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {usePattern} from \"../code\"\nimport {useFunc} from \"../../compile/util\"\nimport {_, str} from \"../../compile/codegen\"\n\nexport type PatternError = ErrorObject<\"pattern\", {pattern: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match pattern \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{pattern: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"pattern\",\n type: \"string\",\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const u = it.opts.unicodeRegExp ? \"u\" : \"\"\n if ($data) {\n const {regExp} = it.opts.code\n const regExpCode = regExp.code === \"new RegExp\" ? _`new RegExp` : useFunc(gen, regExp)\n const valid = gen.let(\"valid\")\n gen.try(\n () => gen.assign(valid, _`${regExpCode}(${schemaCode}, ${u}).test(${data})`),\n () => gen.assign(valid, false)\n )\n cxt.fail$data(_`!${valid}`)\n } else {\n const regExp = usePattern(cxt, schema)\n cxt.fail$data(_`!${regExp}.test(${data})`)\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxProperties\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} properties`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxProperties\", \"minProperties\"],\n type: \"object\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxProperties\" ? operators.GT : operators.LT\n cxt.fail$data(_`Object.keys(${data}).length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {\n checkReportMissingProp,\n checkMissingProp,\n reportMissingProp,\n propertyInData,\n noPropertyInData,\n} from \"../code\"\nimport {_, str, nil, not, Name, Code} from \"../../compile/codegen\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nexport type RequiredError = ErrorObject<\n \"required\",\n {missingProperty: string},\n string[] | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {missingProperty}}) => str`must have required property '${missingProperty}'`,\n params: ({params: {missingProperty}}) => _`{missingProperty: ${missingProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"required\",\n type: \"object\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, schemaCode, data, $data, it} = cxt\n const {opts} = it\n if (!$data && schema.length === 0) return\n const useLoop = schema.length >= opts.loopRequired\n if (it.allErrors) allErrorsMode()\n else exitOnErrorMode()\n\n if (opts.strictRequired) {\n const props = cxt.parentSchema.properties\n const {definedProperties} = cxt.it\n for (const requiredKey of schema) {\n if (props?.[requiredKey] === undefined && !definedProperties.has(requiredKey)) {\n const schemaPath = it.schemaEnv.baseId + it.errSchemaPath\n const msg = `required property \"${requiredKey}\" is not defined at \"${schemaPath}\" (strictRequired)`\n checkStrictMode(it, msg, it.opts.strictRequired)\n }\n }\n }\n\n function allErrorsMode(): void {\n if (useLoop || $data) {\n cxt.block$data(nil, loopAllRequired)\n } else {\n for (const prop of schema) {\n checkReportMissingProp(cxt, prop)\n }\n }\n }\n\n function exitOnErrorMode(): void {\n const missing = gen.let(\"missing\")\n if (useLoop || $data) {\n const valid = gen.let(\"valid\", true)\n cxt.block$data(valid, () => loopUntilMissing(missing, valid))\n cxt.ok(valid)\n } else {\n gen.if(checkMissingProp(cxt, schema, missing))\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n\n function loopAllRequired(): void {\n gen.forOf(\"prop\", schemaCode as Code, (prop) => {\n cxt.setParams({missingProperty: prop})\n gen.if(noPropertyInData(gen, data, prop, opts.ownProperties), () => cxt.error())\n })\n }\n\n function loopUntilMissing(missing: Name, valid: Name): void {\n cxt.setParams({missingProperty: missing})\n gen.forOf(\n missing,\n schemaCode as Code,\n () => {\n gen.assign(valid, propertyInData(gen, data, missing, opts.ownProperties))\n gen.if(not(valid), () => {\n cxt.error()\n gen.break()\n })\n },\n nil\n )\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, operators} from \"../../compile/codegen\"\n\nconst error: KeywordErrorDefinition = {\n message({keyword, schemaCode}) {\n const comp = keyword === \"maxItems\" ? \"more\" : \"fewer\"\n return str`must NOT have ${comp} than ${schemaCode} items`\n },\n params: ({schemaCode}) => _`{limit: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxItems\", \"minItems\"],\n type: \"array\",\n schemaType: \"number\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {keyword, data, schemaCode} = cxt\n const op = keyword === \"maxItems\" ? operators.GT : operators.LT\n cxt.fail$data(_`${data}.length ${op} ${schemaCode}`)\n },\n}\n\nexport default def\n", "// https://github.com/ajv-validator/ajv/issues/889\nimport * as equal from \"fast-deep-equal\"\n\ntype Equal = typeof equal & {code: string}\n;(equal as Equal).code = 'require(\"ajv/dist/runtime/equal\").default'\n\nexport default equal as Equal\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkDataTypes, getSchemaTypes, DataType} from \"../../compile/validate/dataType\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type UniqueItemsError = ErrorObject<\n \"uniqueItems\",\n {i: number; j: number},\n boolean | {$data: string}\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {i, j}}) =>\n str`must NOT have duplicate items (items ## ${j} and ${i} are identical)`,\n params: ({params: {i, j}}) => _`{i: ${i}, j: ${j}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"uniqueItems\",\n type: \"array\",\n schemaType: \"boolean\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, parentSchema, schemaCode, it} = cxt\n if (!$data && !schema) return\n const valid = gen.let(\"valid\")\n const itemTypes = parentSchema.items ? getSchemaTypes(parentSchema.items) : []\n cxt.block$data(valid, validateUniqueItems, _`${schemaCode} === false`)\n cxt.ok(valid)\n\n function validateUniqueItems(): void {\n const i = gen.let(\"i\", _`${data}.length`)\n const j = gen.let(\"j\")\n cxt.setParams({i, j})\n gen.assign(valid, true)\n gen.if(_`${i} > 1`, () => (canOptimize() ? loopN : loopN2)(i, j))\n }\n\n function canOptimize(): boolean {\n return itemTypes.length > 0 && !itemTypes.some((t) => t === \"object\" || t === \"array\")\n }\n\n function loopN(i: Name, j: Name): void {\n const item = gen.name(\"item\")\n const wrongType = checkDataTypes(itemTypes, item, it.opts.strictNumbers, DataType.Wrong)\n const indices = gen.const(\"indices\", _`{}`)\n gen.for(_`;${i}--;`, () => {\n gen.let(item, _`${data}[${i}]`)\n gen.if(wrongType, _`continue`)\n if (itemTypes.length > 1) gen.if(_`typeof ${item} == \"string\"`, _`${item} += \"_\"`)\n gen\n .if(_`typeof ${indices}[${item}] == \"number\"`, () => {\n gen.assign(j, _`${indices}[${item}]`)\n cxt.error()\n gen.assign(valid, false).break()\n })\n .code(_`${indices}[${item}] = ${i}`)\n })\n }\n\n function loopN2(i: Name, j: Name): void {\n const eql = useFunc(gen, equal)\n const outer = gen.name(\"outer\")\n gen.label(outer).for(_`;${i}--;`, () =>\n gen.for(_`${j} = ${i}; ${j}--;`, () =>\n gen.if(_`${eql}(${data}[${i}], ${data}[${j}])`, () => {\n cxt.error()\n gen.assign(valid, false).break(outer)\n })\n )\n )\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type ConstError = ErrorObject<\"const\", {allowedValue: any}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to constant\",\n params: ({schemaCode}) => _`{allowedValue: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"const\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schemaCode, schema} = cxt\n if ($data || (schema && typeof schema == \"object\")) {\n cxt.fail$data(_`!${useFunc(gen, equal)}(${data}, ${schemaCode})`)\n } else {\n cxt.fail(_`${schema} !== ${data}`)\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, or, Name, Code} from \"../../compile/codegen\"\nimport {useFunc} from \"../../compile/util\"\nimport equal from \"../../runtime/equal\"\n\nexport type EnumError = ErrorObject<\"enum\", {allowedValues: any[]}, any[] | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: \"must be equal to one of the allowed values\",\n params: ({schemaCode}) => _`{allowedValues: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"enum\",\n schemaType: \"array\",\n $data: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n if (!$data && schema.length === 0) throw new Error(\"enum must have non-empty array\")\n const useLoop = schema.length >= it.opts.loopEnum\n let eql: Name | undefined\n const getEql = (): Name => (eql ??= useFunc(gen, equal))\n\n let valid: Code\n if (useLoop || $data) {\n valid = gen.let(\"valid\")\n cxt.block$data(valid, loopEnum)\n } else {\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const vSchema = gen.const(\"vSchema\", schemaCode)\n valid = or(...schema.map((_x: unknown, i: number) => equalCode(vSchema, i)))\n }\n cxt.pass(valid)\n\n function loopEnum(): void {\n gen.assign(valid, false)\n gen.forOf(\"v\", schemaCode as Code, (v) =>\n gen.if(_`${getEql()}(${data}, ${v})`, () => gen.assign(valid, true).break())\n )\n }\n\n function equalCode(vSchema: Name, i: number): Code {\n const sch = schema[i]\n return typeof sch === \"object\" && sch !== null\n ? _`${getEql()}(${data}, ${vSchema}[${i}])`\n : _`${data} === ${sch}`\n }\n },\n}\n\nexport default def\n", "import type {ErrorObject, Vocabulary} from \"../../types\"\nimport limitNumber, {LimitNumberError} from \"./limitNumber\"\nimport multipleOf, {MultipleOfError} from \"./multipleOf\"\nimport limitLength from \"./limitLength\"\nimport pattern, {PatternError} from \"./pattern\"\nimport limitProperties from \"./limitProperties\"\nimport required, {RequiredError} from \"./required\"\nimport limitItems from \"./limitItems\"\nimport uniqueItems, {UniqueItemsError} from \"./uniqueItems\"\nimport constKeyword, {ConstError} from \"./const\"\nimport enumKeyword, {EnumError} from \"./enum\"\n\nconst validation: Vocabulary = [\n // number\n limitNumber,\n multipleOf,\n // string\n limitLength,\n pattern,\n // object\n limitProperties,\n required,\n // array\n limitItems,\n uniqueItems,\n // any\n {keyword: \"type\", schemaType: [\"string\", \"array\"]},\n {keyword: \"nullable\", schemaType: \"boolean\"},\n constKeyword,\n enumKeyword,\n]\n\nexport default validation\n\ntype LimitError = ErrorObject<\n \"maxItems\" | \"minItems\" | \"minProperties\" | \"maxProperties\" | \"minLength\" | \"maxLength\",\n {limit: number},\n number | {$data: string}\n>\n\nexport type ValidationKeywordError =\n | LimitError\n | LimitNumberError\n | MultipleOfError\n | PatternError\n | RequiredError\n | UniqueItemsError\n | ConstError\n | EnumError\n", "import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type AdditionalItemsError = ErrorObject<\"additionalItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"additionalItems\" as const,\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {parentSchema, it} = cxt\n const {items} = parentSchema\n if (!Array.isArray(items)) {\n checkStrictMode(it, '\"additionalItems\" is ignored when \"items\" is not an array of schemas')\n return\n }\n validateAdditionalItems(cxt, items)\n },\n}\n\nexport function validateAdditionalItems(cxt: KeywordCxt, items: AnySchema[]): void {\n const {gen, schema, data, keyword, it} = cxt\n it.items = true\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items.length})\n cxt.pass(_`${len} <= ${items.length}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items.length}`) // TODO var\n gen.if(not(valid), () => validateItems(valid))\n cxt.ok(valid)\n }\n\n function validateItems(valid: Name): void {\n gen.forRange(\"i\", items.length, len, (i) => {\n cxt.subschema({keyword, dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, AnySchema, AnySchemaObject} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_} from \"../../compile/codegen\"\nimport {alwaysValidSchema, mergeEvaluated, checkStrictMode} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"array\", \"boolean\"],\n before: \"uniqueItems\",\n code(cxt: KeywordCxt) {\n const {schema, it} = cxt\n if (Array.isArray(schema)) return validateTuple(cxt, \"additionalItems\", schema)\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n cxt.ok(validateArray(cxt))\n },\n}\n\nexport function validateTuple(\n cxt: KeywordCxt,\n extraItems: string,\n schArr: AnySchema[] = cxt.schema\n): void {\n const {gen, parentSchema, data, keyword, it} = cxt\n checkStrictTuple(parentSchema)\n if (it.opts.unevaluated && schArr.length && it.items !== true) {\n it.items = mergeEvaluated.items(gen, schArr.length, it.items)\n }\n const valid = gen.name(\"valid\")\n const len = gen.const(\"len\", _`${data}.length`)\n schArr.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n gen.if(_`${len} > ${i}`, () =>\n cxt.subschema(\n {\n keyword,\n schemaProp: i,\n dataProp: i,\n },\n valid\n )\n )\n cxt.ok(valid)\n })\n\n function checkStrictTuple(sch: AnySchemaObject): void {\n const {opts, errSchemaPath} = it\n const l = schArr.length\n const fullTuple = l === sch.minItems && (l === sch.maxItems || sch[extraItems] === false)\n if (opts.strictTuples && !fullTuple) {\n const msg = `\"${keyword}\" is ${l}-tuple, but minItems or maxItems/${extraItems} are not specified or different at path \"${errSchemaPath}\"`\n checkStrictMode(it, msg, opts.strictTuples)\n }\n }\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateTuple} from \"./items\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"prefixItems\",\n type: \"array\",\n schemaType: [\"array\"],\n before: \"uniqueItems\",\n code: (cxt) => validateTuple(cxt, \"items\"),\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {validateArray} from \"../code\"\nimport {validateAdditionalItems} from \"./additionalItems\"\n\nexport type ItemsError = ErrorObject<\"items\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"items\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n error,\n code(cxt: KeywordCxt) {\n const {schema, parentSchema, it} = cxt\n const {prefixItems} = parentSchema\n it.items = true\n if (alwaysValidSchema(it, schema)) return\n if (prefixItems) validateAdditionalItems(cxt, prefixItems)\n else cxt.ok(validateArray(cxt))\n },\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode, Type} from \"../../compile/util\"\n\nexport type ContainsError = ErrorObject<\n \"contains\",\n {minContains: number; maxContains?: number},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {min, max}}) =>\n max === undefined\n ? str`must contain at least ${min} valid item(s)`\n : str`must contain at least ${min} and no more than ${max} valid item(s)`,\n params: ({params: {min, max}}) =>\n max === undefined ? _`{minContains: ${min}}` : _`{minContains: ${min}, maxContains: ${max}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"contains\",\n type: \"array\",\n schemaType: [\"object\", \"boolean\"],\n before: \"uniqueItems\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n let min: number\n let max: number | undefined\n const {minContains, maxContains} = parentSchema\n if (it.opts.next) {\n min = minContains === undefined ? 1 : minContains\n max = maxContains\n } else {\n min = 1\n }\n const len = gen.const(\"len\", _`${data}.length`)\n cxt.setParams({min, max})\n if (max === undefined && min === 0) {\n checkStrictMode(it, `\"minContains\" == 0 without \"maxContains\": \"contains\" keyword ignored`)\n return\n }\n if (max !== undefined && min > max) {\n checkStrictMode(it, `\"minContains\" > \"maxContains\" is always invalid`)\n cxt.fail()\n return\n }\n if (alwaysValidSchema(it, schema)) {\n let cond = _`${len} >= ${min}`\n if (max !== undefined) cond = _`${cond} && ${len} <= ${max}`\n cxt.pass(cond)\n return\n }\n\n it.items = true\n const valid = gen.name(\"valid\")\n if (max === undefined && min === 1) {\n validateItems(valid, () => gen.if(valid, () => gen.break()))\n } else if (min === 0) {\n gen.let(valid, true)\n if (max !== undefined) gen.if(_`${data}.length > 0`, validateItemsWithCount)\n } else {\n gen.let(valid, false)\n validateItemsWithCount()\n }\n cxt.result(valid, () => cxt.reset())\n\n function validateItemsWithCount(): void {\n const schValid = gen.name(\"_valid\")\n const count = gen.let(\"count\", 0)\n validateItems(schValid, () => gen.if(schValid, () => checkLimits(count)))\n }\n\n function validateItems(_valid: Name, block: () => void): void {\n gen.forRange(\"i\", 0, len, (i) => {\n cxt.subschema(\n {\n keyword: \"contains\",\n dataProp: i,\n dataPropType: Type.Num,\n compositeRule: true,\n },\n _valid\n )\n block()\n })\n }\n\n function checkLimits(count: Name): void {\n gen.code(_`${count}++`)\n if (max === undefined) {\n gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true).break())\n } else {\n gen.if(_`${count} > ${max}`, () => gen.assign(valid, false).break())\n if (min === 1) gen.assign(valid, true)\n else gen.if(_`${count} >= ${min}`, () => gen.assign(valid, true))\n }\n }\n },\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n SchemaMap,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {checkReportMissingProp, checkMissingProp, reportMissingProp, propertyInData} from \"../code\"\n\nexport type PropertyDependencies = {[K in string]?: string[]}\n\nexport interface DependenciesErrorParams {\n property: string\n missingProperty: string\n depsCount: number\n deps: string // TODO change to string[]\n}\n\ntype SchemaDependencies = SchemaMap\n\nexport type DependenciesError = ErrorObject<\n \"dependencies\",\n DependenciesErrorParams,\n {[K in string]?: string[] | AnySchema}\n>\n\nexport const error: KeywordErrorDefinition = {\n message: ({params: {property, depsCount, deps}}) => {\n const property_ies = depsCount === 1 ? \"property\" : \"properties\"\n return str`must have ${property_ies} ${deps} when property ${property} is present`\n },\n params: ({params: {property, depsCount, deps, missingProperty}}) =>\n _`{property: ${property},\n missingProperty: ${missingProperty},\n depsCount: ${depsCount},\n deps: ${deps}}`, // TODO change to reference\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependencies\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const [propDeps, schDeps] = splitDependencies(cxt)\n validatePropertyDeps(cxt, propDeps)\n validateSchemaDeps(cxt, schDeps)\n },\n}\n\nfunction splitDependencies({schema}: KeywordCxt): [PropertyDependencies, SchemaDependencies] {\n const propertyDeps: PropertyDependencies = {}\n const schemaDeps: SchemaDependencies = {}\n for (const key in schema) {\n if (key === \"__proto__\") continue\n const deps = Array.isArray(schema[key]) ? propertyDeps : schemaDeps\n deps[key] = schema[key]\n }\n return [propertyDeps, schemaDeps]\n}\n\nexport function validatePropertyDeps(\n cxt: KeywordCxt,\n propertyDeps: {[K in string]?: string[]} = cxt.schema\n): void {\n const {gen, data, it} = cxt\n if (Object.keys(propertyDeps).length === 0) return\n const missing = gen.let(\"missing\")\n for (const prop in propertyDeps) {\n const deps = propertyDeps[prop] as string[]\n if (deps.length === 0) continue\n const hasProperty = propertyInData(gen, data, prop, it.opts.ownProperties)\n cxt.setParams({\n property: prop,\n depsCount: deps.length,\n deps: deps.join(\", \"),\n })\n if (it.allErrors) {\n gen.if(hasProperty, () => {\n for (const depProp of deps) {\n checkReportMissingProp(cxt, depProp)\n }\n })\n } else {\n gen.if(_`${hasProperty} && (${checkMissingProp(cxt, deps, missing)})`)\n reportMissingProp(cxt, missing)\n gen.else()\n }\n }\n}\n\nexport function validateSchemaDeps(cxt: KeywordCxt, schemaDeps: SchemaMap = cxt.schema): void {\n const {gen, data, keyword, it} = cxt\n const valid = gen.name(\"valid\")\n for (const prop in schemaDeps) {\n if (alwaysValidSchema(it, schemaDeps[prop] as AnySchema)) continue\n gen.if(\n propertyInData(gen, data, prop, it.opts.ownProperties),\n () => {\n const schCxt = cxt.subschema({keyword, schemaProp: prop}, valid)\n cxt.mergeValidEvaluated(schCxt, valid)\n },\n () => gen.var(valid, true) // TODO var\n )\n cxt.ok(valid)\n }\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, not} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type PropertyNamesError = ErrorObject<\"propertyNames\", {propertyName: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: \"property name must be valid\",\n params: ({params}) => _`{propertyName: ${params.propertyName}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"propertyNames\",\n type: \"object\",\n schemaType: [\"object\", \"boolean\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n if (alwaysValidSchema(it, schema)) return\n const valid = gen.name(\"valid\")\n\n gen.forIn(\"key\", data, (key) => {\n cxt.setParams({propertyName: key})\n cxt.subschema(\n {\n keyword: \"propertyNames\",\n data: key,\n dataTypes: [\"string\"],\n propertyName: key,\n compositeRule: true,\n },\n valid\n )\n gen.if(not(valid), () => {\n cxt.error(true)\n if (!it.allErrors) gen.break()\n })\n })\n\n cxt.ok(valid)\n },\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n AddedKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport {allSchemaProperties, usePattern, isOwnProperty} from \"../code\"\nimport {_, nil, or, not, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport type {SubschemaArgs} from \"../../compile/validate/subschema\"\nimport {alwaysValidSchema, schemaRefOrVal, Type} from \"../../compile/util\"\n\nexport type AdditionalPropertiesError = ErrorObject<\n \"additionalProperties\",\n {additionalProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have additional properties\",\n params: ({params}) => _`{additionalProperty: ${params.additionalProperty}}`,\n}\n\nconst def: CodeKeywordDefinition & AddedKeywordDefinition = {\n keyword: \"additionalProperties\",\n type: [\"object\"],\n schemaType: [\"boolean\", \"object\"],\n allowUndefined: true,\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, parentSchema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, opts} = it\n it.props = true\n if (opts.removeAdditional !== \"all\" && alwaysValidSchema(it, schema)) return\n const props = allSchemaProperties(parentSchema.properties)\n const patProps = allSchemaProperties(parentSchema.patternProperties)\n checkAdditionalProperties()\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function checkAdditionalProperties(): void {\n gen.forIn(\"key\", data, (key: Name) => {\n if (!props.length && !patProps.length) additionalPropertyCode(key)\n else gen.if(isAdditional(key), () => additionalPropertyCode(key))\n })\n }\n\n function isAdditional(key: Name): Code {\n let definedProp: Code\n if (props.length > 8) {\n // TODO maybe an option instead of hard-coded 8?\n const propsSchema = schemaRefOrVal(it, parentSchema.properties, \"properties\")\n definedProp = isOwnProperty(gen, propsSchema as Code, key)\n } else if (props.length) {\n definedProp = or(...props.map((p) => _`${key} === ${p}`))\n } else {\n definedProp = nil\n }\n if (patProps.length) {\n definedProp = or(definedProp, ...patProps.map((p) => _`${usePattern(cxt, p)}.test(${key})`))\n }\n return not(definedProp)\n }\n\n function deleteAdditional(key: Name): void {\n gen.code(_`delete ${data}[${key}]`)\n }\n\n function additionalPropertyCode(key: Name): void {\n if (opts.removeAdditional === \"all\" || (opts.removeAdditional && schema === false)) {\n deleteAdditional(key)\n return\n }\n\n if (schema === false) {\n cxt.setParams({additionalProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n if (opts.removeAdditional === \"failing\") {\n applyAdditionalSchema(key, valid, false)\n gen.if(not(valid), () => {\n cxt.reset()\n deleteAdditional(key)\n })\n } else {\n applyAdditionalSchema(key, valid)\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n }\n\n function applyAdditionalSchema(key: Name, valid: Name, errors?: false): void {\n const subschema: SubschemaArgs = {\n keyword: \"additionalProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n }\n if (errors === false) {\n Object.assign(subschema, {\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n })\n }\n cxt.subschema(subschema, valid)\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport {KeywordCxt} from \"../../compile/validate\"\nimport {propertyInData, allSchemaProperties} from \"../code\"\nimport {alwaysValidSchema, toHash, mergeEvaluated} from \"../../compile/util\"\nimport apDef from \"./additionalProperties\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"properties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, data, it} = cxt\n if (it.opts.removeAdditional === \"all\" && parentSchema.additionalProperties === undefined) {\n apDef.code(new KeywordCxt(it, apDef, \"additionalProperties\"))\n }\n const allProps = allSchemaProperties(schema)\n for (const prop of allProps) {\n it.definedProperties.add(prop)\n }\n if (it.opts.unevaluated && allProps.length && it.props !== true) {\n it.props = mergeEvaluated.props(gen, toHash(allProps), it.props)\n }\n const properties = allProps.filter((p) => !alwaysValidSchema(it, schema[p]))\n if (properties.length === 0) return\n const valid = gen.name(\"valid\")\n\n for (const prop of properties) {\n if (hasDefault(prop)) {\n applyPropertySchema(prop)\n } else {\n gen.if(propertyInData(gen, data, prop, it.opts.ownProperties))\n applyPropertySchema(prop)\n if (!it.allErrors) gen.else().var(valid, true)\n gen.endIf()\n }\n cxt.it.definedProperties.add(prop)\n cxt.ok(valid)\n }\n\n function hasDefault(prop: string): boolean | undefined {\n return it.opts.useDefaults && !it.compositeRule && schema[prop].default !== undefined\n }\n\n function applyPropertySchema(prop: string): void {\n cxt.subschema(\n {\n keyword: \"properties\",\n schemaProp: prop,\n dataProp: prop,\n },\n valid\n )\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {allSchemaProperties, usePattern} from \"../code\"\nimport {_, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\nimport {evaluatedPropsToName, Type} from \"../../compile/util\"\nimport {AnySchema} from \"../../types\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"patternProperties\",\n type: \"object\",\n schemaType: \"object\",\n code(cxt: KeywordCxt) {\n const {gen, schema, data, parentSchema, it} = cxt\n const {opts} = it\n const patterns = allSchemaProperties(schema)\n const alwaysValidPatterns = patterns.filter((p) =>\n alwaysValidSchema(it, schema[p] as AnySchema)\n )\n\n if (\n patterns.length === 0 ||\n (alwaysValidPatterns.length === patterns.length &&\n (!it.opts.unevaluated || it.props === true))\n ) {\n return\n }\n\n const checkProperties =\n opts.strictSchema && !opts.allowMatchingProperties && parentSchema.properties\n const valid = gen.name(\"valid\")\n if (it.props !== true && !(it.props instanceof Name)) {\n it.props = evaluatedPropsToName(gen, it.props)\n }\n const {props} = it\n validatePatternProperties()\n\n function validatePatternProperties(): void {\n for (const pat of patterns) {\n if (checkProperties) checkMatchingProperties(pat)\n if (it.allErrors) {\n validateProperties(pat)\n } else {\n gen.var(valid, true) // TODO var\n validateProperties(pat)\n gen.if(valid)\n }\n }\n }\n\n function checkMatchingProperties(pat: string): void {\n for (const prop in checkProperties) {\n if (new RegExp(pat).test(prop)) {\n checkStrictMode(\n it,\n `property ${prop} matches pattern ${pat} (use allowMatchingProperties)`\n )\n }\n }\n }\n\n function validateProperties(pat: string): void {\n gen.forIn(\"key\", data, (key) => {\n gen.if(_`${usePattern(cxt, pat)}.test(${key})`, () => {\n const alwaysValid = alwaysValidPatterns.includes(pat)\n if (!alwaysValid) {\n cxt.subschema(\n {\n keyword: \"patternProperties\",\n schemaProp: pat,\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n }\n\n if (it.opts.unevaluated && props !== true) {\n gen.assign(_`${props}[${key}]`, true)\n } else if (!alwaysValid && !it.allErrors) {\n // can short-circuit if `unevaluatedProperties` is not supported (opts.next === false)\n // or if all properties were evaluated (props === true)\n gen.if(not(valid), () => gen.break())\n }\n })\n })\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nexport type NotKeywordError = ErrorNoParams<\"not\", AnySchema>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"not\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n if (alwaysValidSchema(it, schema)) {\n cxt.fail()\n return\n }\n\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"not\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n valid\n )\n\n cxt.failResult(\n valid,\n () => cxt.reset(),\n () => cxt.error()\n )\n },\n error: {message: \"must NOT be valid\"},\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, ErrorNoParams, AnySchema} from \"../../types\"\nimport {validateUnion} from \"../code\"\n\nexport type AnyOfError = ErrorNoParams<\"anyOf\", AnySchema[]>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"anyOf\",\n schemaType: \"array\",\n trackErrors: true,\n code: validateUnion,\n error: {message: \"must match a schema in anyOf\"},\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema} from \"../../compile/util\"\nimport {SchemaCxt} from \"../../compile\"\n\nexport type OneOfError = ErrorObject<\n \"oneOf\",\n {passingSchemas: [number, number] | null},\n AnySchema[]\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must match exactly one schema in oneOf\",\n params: ({params}) => _`{passingSchemas: ${params.passing}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"oneOf\",\n schemaType: \"array\",\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, parentSchema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n if (it.opts.discriminator && parentSchema.discriminator) return\n const schArr: AnySchema[] = schema\n const valid = gen.let(\"valid\", false)\n const passing = gen.let(\"passing\", null)\n const schValid = gen.name(\"_valid\")\n cxt.setParams({passing})\n // TODO possibly fail straight away (with warning or exception) if there are two empty always valid schemas\n\n gen.block(validateOneOf)\n\n cxt.result(\n valid,\n () => cxt.reset(),\n () => cxt.error(true)\n )\n\n function validateOneOf(): void {\n schArr.forEach((sch: AnySchema, i: number) => {\n let schCxt: SchemaCxt | undefined\n if (alwaysValidSchema(it, sch)) {\n gen.var(schValid, true)\n } else {\n schCxt = cxt.subschema(\n {\n keyword: \"oneOf\",\n schemaProp: i,\n compositeRule: true,\n },\n schValid\n )\n }\n\n if (i > 0) {\n gen\n .if(_`${schValid} && ${valid}`)\n .assign(valid, false)\n .assign(passing, _`[${passing}, ${i}]`)\n .else()\n }\n\n gen.if(schValid, () => {\n gen.assign(valid, true)\n gen.assign(passing, i)\n if (schCxt) cxt.mergeEvaluated(schCxt, Name)\n })\n })\n }\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition, AnySchema} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {alwaysValidSchema} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"allOf\",\n schemaType: \"array\",\n code(cxt: KeywordCxt) {\n const {gen, schema, it} = cxt\n /* istanbul ignore if */\n if (!Array.isArray(schema)) throw new Error(\"ajv implementation error\")\n const valid = gen.name(\"valid\")\n schema.forEach((sch: AnySchema, i: number) => {\n if (alwaysValidSchema(it, sch)) return\n const schCxt = cxt.subschema({keyword: \"allOf\", schemaProp: i}, valid)\n cxt.ok(valid)\n cxt.mergeEvaluated(schCxt)\n })\n },\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {SchemaObjCxt} from \"../../compile\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, checkStrictMode} from \"../../compile/util\"\n\nexport type IfKeywordError = ErrorObject<\"if\", {failingKeyword: string}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params}) => str`must match \"${params.ifClause}\" schema`,\n params: ({params}) => _`{failingKeyword: ${params.ifClause}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"if\",\n schemaType: [\"object\", \"boolean\"],\n trackErrors: true,\n error,\n code(cxt: KeywordCxt) {\n const {gen, parentSchema, it} = cxt\n if (parentSchema.then === undefined && parentSchema.else === undefined) {\n checkStrictMode(it, '\"if\" without \"then\" and \"else\" is ignored')\n }\n const hasThen = hasSchema(it, \"then\")\n const hasElse = hasSchema(it, \"else\")\n if (!hasThen && !hasElse) return\n\n const valid = gen.let(\"valid\", true)\n const schValid = gen.name(\"_valid\")\n validateIf()\n cxt.reset()\n\n if (hasThen && hasElse) {\n const ifClause = gen.let(\"ifClause\")\n cxt.setParams({ifClause})\n gen.if(schValid, validateClause(\"then\", ifClause), validateClause(\"else\", ifClause))\n } else if (hasThen) {\n gen.if(schValid, validateClause(\"then\"))\n } else {\n gen.if(not(schValid), validateClause(\"else\"))\n }\n\n cxt.pass(valid, () => cxt.error(true))\n\n function validateIf(): void {\n const schCxt = cxt.subschema(\n {\n keyword: \"if\",\n compositeRule: true,\n createErrors: false,\n allErrors: false,\n },\n schValid\n )\n cxt.mergeEvaluated(schCxt)\n }\n\n function validateClause(keyword: string, ifClause?: Name): () => void {\n return () => {\n const schCxt = cxt.subschema({keyword}, schValid)\n gen.assign(valid, schValid)\n cxt.mergeValidEvaluated(schCxt, valid)\n if (ifClause) gen.assign(ifClause, _`${keyword}`)\n else cxt.setParams({ifClause: keyword})\n }\n }\n },\n}\n\nfunction hasSchema(it: SchemaObjCxt, keyword: string): boolean {\n const schema = it.schema[keyword]\n return schema !== undefined && !alwaysValidSchema(it, schema)\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"then\", \"else\"],\n schemaType: [\"object\", \"boolean\"],\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.if === undefined) checkStrictMode(it, `\"${keyword}\" without \"if\" is ignored`)\n },\n}\n\nexport default def\n", "import type {ErrorNoParams, Vocabulary} from \"../../types\"\nimport additionalItems, {AdditionalItemsError} from \"./additionalItems\"\nimport prefixItems from \"./prefixItems\"\nimport items from \"./items\"\nimport items2020, {ItemsError} from \"./items2020\"\nimport contains, {ContainsError} from \"./contains\"\nimport dependencies, {DependenciesError} from \"./dependencies\"\nimport propertyNames, {PropertyNamesError} from \"./propertyNames\"\nimport additionalProperties, {AdditionalPropertiesError} from \"./additionalProperties\"\nimport properties from \"./properties\"\nimport patternProperties from \"./patternProperties\"\nimport notKeyword, {NotKeywordError} from \"./not\"\nimport anyOf, {AnyOfError} from \"./anyOf\"\nimport oneOf, {OneOfError} from \"./oneOf\"\nimport allOf from \"./allOf\"\nimport ifKeyword, {IfKeywordError} from \"./if\"\nimport thenElse from \"./thenElse\"\n\nexport default function getApplicator(draft2020 = false): Vocabulary {\n const applicator = [\n // any\n notKeyword,\n anyOf,\n oneOf,\n allOf,\n ifKeyword,\n thenElse,\n // object\n propertyNames,\n additionalProperties,\n dependencies,\n properties,\n patternProperties,\n ]\n // array\n if (draft2020) applicator.push(prefixItems, items2020)\n else applicator.push(additionalItems, items)\n applicator.push(contains)\n return applicator\n}\n\nexport type ApplicatorKeywordError =\n | ErrorNoParams<\"false schema\">\n | AdditionalItemsError\n | ItemsError\n | ContainsError\n | AdditionalPropertiesError\n | DependenciesError\n | IfKeywordError\n | AnyOfError\n | OneOfError\n | NotKeywordError\n | PropertyNamesError\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Code} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {SchemaEnv, compileSchema} from \"../../compile\"\nimport {getValidate} from \"../core/ref\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$dynamicAnchor\",\n schemaType: \"string\",\n code: (cxt) => dynamicAnchor(cxt, cxt.schema),\n}\n\nexport function dynamicAnchor(cxt: KeywordCxt, anchor: string): void {\n const {gen, it} = cxt\n it.schemaEnv.root.dynamicAnchors[anchor] = true\n const v = _`${N.dynamicAnchors}${getProperty(anchor)}`\n const validate = it.errSchemaPath === \"#\" ? it.validateName : _getValidate(cxt)\n gen.if(_`!${v}`, () => gen.assign(v, validate))\n}\n\nfunction _getValidate(cxt: KeywordCxt): Code {\n const {schemaEnv, schema, self} = cxt.it\n const {root, baseId, localRefs, meta} = schemaEnv.root\n const {schemaId} = self.opts\n const sch = new SchemaEnv({schema, schemaId, root, baseId, localRefs, meta})\n compileSchema.call(self, sch)\n return getValidate(cxt, sch)\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Code, Name} from \"../../compile/codegen\"\nimport N from \"../../compile/names\"\nimport {callRef} from \"../core/ref\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$dynamicRef\",\n schemaType: \"string\",\n code: (cxt) => dynamicRef(cxt, cxt.schema),\n}\n\nexport function dynamicRef(cxt: KeywordCxt, ref: string): void {\n const {gen, keyword, it} = cxt\n if (ref[0] !== \"#\") throw new Error(`\"${keyword}\" only supports hash fragment reference`)\n const anchor = ref.slice(1)\n if (it.allErrors) {\n _dynamicRef()\n } else {\n const valid = gen.let(\"valid\", false)\n _dynamicRef(valid)\n cxt.ok(valid)\n }\n\n function _dynamicRef(valid?: Name): void {\n // TODO the assumption here is that `recursiveRef: #` always points to the root\n // of the schema object, which is not correct, because there may be $id that\n // makes # point to it, and the target schema may not contain dynamic/recursiveAnchor.\n // Because of that 2 tests in recursiveRef.json fail.\n // This is a similar problem to #815 (`$id` doesn't alter resolution scope for `{ \"$ref\": \"#\" }`).\n // (This problem is not tested in JSON-Schema-Test-Suite)\n if (it.schemaEnv.root.dynamicAnchors[anchor]) {\n const v = gen.let(\"_v\", _`${N.dynamicAnchors}${getProperty(anchor)}`)\n gen.if(v, _callRef(v, valid), _callRef(it.validateName, valid))\n } else {\n _callRef(it.validateName, valid)()\n }\n }\n\n function _callRef(validate: Code, valid?: Name): () => void {\n return valid\n ? () =>\n gen.block(() => {\n callRef(cxt, validate)\n gen.let(valid, true)\n })\n : () => callRef(cxt, validate)\n }\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport {dynamicAnchor} from \"./dynamicAnchor\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$recursiveAnchor\",\n schemaType: \"boolean\",\n code(cxt) {\n if (cxt.schema) dynamicAnchor(cxt, \"\")\n else checkStrictMode(cxt.it, \"$recursiveAnchor: false is ignored\")\n },\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport {dynamicRef} from \"./dynamicRef\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"$recursiveRef\",\n schemaType: \"string\",\n code: (cxt) => dynamicRef(cxt, cxt.schema),\n}\n\nexport default def\n", "import type {Vocabulary} from \"../../types\"\nimport dynamicAnchor from \"./dynamicAnchor\"\nimport dynamicRef from \"./dynamicRef\"\nimport recursiveAnchor from \"./recursiveAnchor\"\nimport recursiveRef from \"./recursiveRef\"\n\nconst dynamic: Vocabulary = [dynamicAnchor, dynamicRef, recursiveAnchor, recursiveRef]\n\nexport default dynamic\n", "import type {CodeKeywordDefinition, ErrorObject} from \"../../types\"\nimport {\n validatePropertyDeps,\n error,\n DependenciesErrorParams,\n PropertyDependencies,\n} from \"../applicator/dependencies\"\n\nexport type DependentRequiredError = ErrorObject<\n \"dependentRequired\",\n DependenciesErrorParams,\n PropertyDependencies\n>\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependentRequired\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code: (cxt) => validatePropertyDeps(cxt),\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport {validateSchemaDeps} from \"./dependencies\"\n\nconst def: CodeKeywordDefinition = {\n keyword: \"dependentSchemas\",\n type: \"object\",\n schemaType: \"object\",\n code: (cxt) => validateSchemaDeps(cxt),\n}\n\nexport default def\n", "import type {CodeKeywordDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {checkStrictMode} from \"../../compile/util\"\n\nconst def: CodeKeywordDefinition = {\n keyword: [\"maxContains\", \"minContains\"],\n type: \"array\",\n schemaType: \"number\",\n code({keyword, parentSchema, it}: KeywordCxt) {\n if (parentSchema.contains === undefined) {\n checkStrictMode(it, `\"${keyword}\" without \"contains\" is ignored`)\n }\n },\n}\n\nexport default def\n", "import type {Vocabulary} from \"../types\"\nimport dependentRequired from \"./validation/dependentRequired\"\nimport dependentSchemas from \"./applicator/dependentSchemas\"\nimport limitContains from \"./validation/limitContains\"\n\nconst next: Vocabulary = [dependentRequired, dependentSchemas, limitContains]\n\nexport default next\n", "import type {\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n AnySchema,\n} from \"../../types\"\nimport {_, not, and, Name, Code} from \"../../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../../compile/util\"\nimport N from \"../../compile/names\"\n\nexport type UnevaluatedPropertiesError = ErrorObject<\n \"unevaluatedProperties\",\n {unevaluatedProperty: string},\n AnySchema\n>\n\nconst error: KeywordErrorDefinition = {\n message: \"must NOT have unevaluated properties\",\n params: ({params}) => _`{unevaluatedProperty: ${params.unevaluatedProperty}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"unevaluatedProperties\",\n type: \"object\",\n schemaType: [\"boolean\", \"object\"],\n trackErrors: true,\n error,\n code(cxt) {\n const {gen, schema, data, errsCount, it} = cxt\n /* istanbul ignore if */\n if (!errsCount) throw new Error(\"ajv implementation error\")\n const {allErrors, props} = it\n if (props instanceof Name) {\n gen.if(_`${props} !== true`, () =>\n gen.forIn(\"key\", data, (key: Name) =>\n gen.if(unevaluatedDynamic(props, key), () => unevaluatedPropCode(key))\n )\n )\n } else if (props !== true) {\n gen.forIn(\"key\", data, (key: Name) =>\n props === undefined\n ? unevaluatedPropCode(key)\n : gen.if(unevaluatedStatic(props, key), () => unevaluatedPropCode(key))\n )\n }\n it.props = true\n cxt.ok(_`${errsCount} === ${N.errors}`)\n\n function unevaluatedPropCode(key: Name): void {\n if (schema === false) {\n cxt.setParams({unevaluatedProperty: key})\n cxt.error()\n if (!allErrors) gen.break()\n return\n }\n\n if (!alwaysValidSchema(it, schema)) {\n const valid = gen.name(\"valid\")\n cxt.subschema(\n {\n keyword: \"unevaluatedProperties\",\n dataProp: key,\n dataPropType: Type.Str,\n },\n valid\n )\n if (!allErrors) gen.if(not(valid), () => gen.break())\n }\n }\n\n function unevaluatedDynamic(evaluatedProps: Name, key: Name): Code {\n return _`!${evaluatedProps} || !${evaluatedProps}[${key}]`\n }\n\n function unevaluatedStatic(evaluatedProps: {[K in string]?: true}, key: Name): Code {\n const ps: Code[] = []\n for (const p in evaluatedProps) {\n if (evaluatedProps[p] === true) ps.push(_`${key} !== ${p}`)\n }\n return and(...ps)\n }\n },\n}\n\nexport default def\n", "import type {\n CodeKeywordDefinition,\n ErrorObject,\n KeywordErrorDefinition,\n AnySchema,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, not, Name} from \"../../compile/codegen\"\nimport {alwaysValidSchema, Type} from \"../../compile/util\"\n\nexport type UnevaluatedItemsError = ErrorObject<\"unevaluatedItems\", {limit: number}, AnySchema>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {len}}) => str`must NOT have more than ${len} items`,\n params: ({params: {len}}) => _`{limit: ${len}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"unevaluatedItems\",\n type: \"array\",\n schemaType: [\"boolean\", \"object\"],\n error,\n code(cxt: KeywordCxt) {\n const {gen, schema, data, it} = cxt\n const items = it.items || 0\n if (items === true) return\n const len = gen.const(\"len\", _`${data}.length`)\n if (schema === false) {\n cxt.setParams({len: items})\n cxt.fail(_`${len} > ${items}`)\n } else if (typeof schema == \"object\" && !alwaysValidSchema(it, schema)) {\n const valid = gen.var(\"valid\", _`${len} <= ${items}`)\n gen.if(not(valid), () => validateItems(valid, items))\n cxt.ok(valid)\n }\n it.items = true\n\n function validateItems(valid: Name, from: Name | number): void {\n gen.forRange(\"i\", from, len, (i) => {\n cxt.subschema({keyword: \"unevaluatedItems\", dataProp: i, dataPropType: Type.Num}, valid)\n if (!it.allErrors) gen.if(not(valid), () => gen.break())\n })\n }\n },\n}\n\nexport default def\n", "import type {Vocabulary} from \"../../types\"\nimport unevaluatedProperties from \"./unevaluatedProperties\"\nimport unevaluatedItems from \"./unevaluatedItems\"\n\nconst unevaluated: Vocabulary = [unevaluatedProperties, unevaluatedItems]\n\nexport default unevaluated\n", "import type {\n AddedFormat,\n FormatValidator,\n AsyncFormatValidator,\n CodeKeywordDefinition,\n KeywordErrorDefinition,\n ErrorObject,\n} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, str, nil, or, Code, getProperty, regexpCode} from \"../../compile/codegen\"\n\ntype FormatValidate =\n | FormatValidator<string>\n | FormatValidator<number>\n | AsyncFormatValidator<string>\n | AsyncFormatValidator<number>\n | RegExp\n | string\n | true\n\nexport type FormatError = ErrorObject<\"format\", {format: string}, string | {$data: string}>\n\nconst error: KeywordErrorDefinition = {\n message: ({schemaCode}) => str`must match format \"${schemaCode}\"`,\n params: ({schemaCode}) => _`{format: ${schemaCode}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"format\",\n type: [\"number\", \"string\"],\n schemaType: \"string\",\n $data: true,\n error,\n code(cxt: KeywordCxt, ruleType?: string) {\n const {gen, data, $data, schema, schemaCode, it} = cxt\n const {opts, errSchemaPath, schemaEnv, self} = it\n if (!opts.validateFormats) return\n\n if ($data) validate$DataFormat()\n else validateFormat()\n\n function validate$DataFormat(): void {\n const fmts = gen.scopeValue(\"formats\", {\n ref: self.formats,\n code: opts.code.formats,\n })\n const fDef = gen.const(\"fDef\", _`${fmts}[${schemaCode}]`)\n const fType = gen.let(\"fType\")\n const format = gen.let(\"format\")\n // TODO simplify\n gen.if(\n _`typeof ${fDef} == \"object\" && !(${fDef} instanceof RegExp)`,\n () => gen.assign(fType, _`${fDef}.type || \"string\"`).assign(format, _`${fDef}.validate`),\n () => gen.assign(fType, _`\"string\"`).assign(format, fDef)\n )\n cxt.fail$data(or(unknownFmt(), invalidFmt()))\n\n function unknownFmt(): Code {\n if (opts.strictSchema === false) return nil\n return _`${schemaCode} && !${format}`\n }\n\n function invalidFmt(): Code {\n const callFormat = schemaEnv.$async\n ? _`(${fDef}.async ? await ${format}(${data}) : ${format}(${data}))`\n : _`${format}(${data})`\n const validData = _`(typeof ${format} == \"function\" ? ${callFormat} : ${format}.test(${data}))`\n return _`${format} && ${format} !== true && ${fType} === ${ruleType} && !${validData}`\n }\n }\n\n function validateFormat(): void {\n const formatDef: AddedFormat | undefined = self.formats[schema]\n if (!formatDef) {\n unknownFormat()\n return\n }\n if (formatDef === true) return\n const [fmtType, format, fmtRef] = getFormat(formatDef)\n if (fmtType === ruleType) cxt.pass(validCondition())\n\n function unknownFormat(): void {\n if (opts.strictSchema === false) {\n self.logger.warn(unknownMsg())\n return\n }\n throw new Error(unknownMsg())\n\n function unknownMsg(): string {\n return `unknown format \"${schema as string}\" ignored in schema at path \"${errSchemaPath}\"`\n }\n }\n\n function getFormat(fmtDef: AddedFormat): [string, FormatValidate, Code] {\n const code =\n fmtDef instanceof RegExp\n ? regexpCode(fmtDef)\n : opts.code.formats\n ? _`${opts.code.formats}${getProperty(schema)}`\n : undefined\n const fmt = gen.scopeValue(\"formats\", {key: schema, ref: fmtDef, code})\n if (typeof fmtDef == \"object\" && !(fmtDef instanceof RegExp)) {\n return [fmtDef.type || \"string\", fmtDef.validate, _`${fmt}.validate`]\n }\n\n return [\"string\", fmtDef, fmt]\n }\n\n function validCondition(): Code {\n if (typeof formatDef == \"object\" && !(formatDef instanceof RegExp) && formatDef.async) {\n if (!schemaEnv.$async) throw new Error(\"async format in sync schema\")\n return _`await ${fmtRef}(${data})`\n }\n return typeof format == \"function\" ? _`${fmtRef}(${data})` : _`${fmtRef}.test(${data})`\n }\n }\n },\n}\n\nexport default def\n", "import type {Vocabulary} from \"../../types\"\nimport formatKeyword from \"./format\"\n\nconst format: Vocabulary = [formatKeyword]\n\nexport default format\n", "import type {Vocabulary} from \"../types\"\n\nexport const metadataVocabulary: Vocabulary = [\n \"title\",\n \"description\",\n \"default\",\n \"deprecated\",\n \"readOnly\",\n \"writeOnly\",\n \"examples\",\n]\n\nexport const contentVocabulary: Vocabulary = [\n \"contentMediaType\",\n \"contentEncoding\",\n \"contentSchema\",\n]\n", "import type {Vocabulary} from \"../types\"\nimport coreVocabulary from \"./core\"\nimport validationVocabulary from \"./validation\"\nimport getApplicatorVocabulary from \"./applicator\"\nimport dynamicVocabulary from \"./dynamic\"\nimport nextVocabulary from \"./next\"\nimport unevaluatedVocabulary from \"./unevaluated\"\nimport formatVocabulary from \"./format\"\nimport {metadataVocabulary, contentVocabulary} from \"./metadata\"\n\nconst draft2020Vocabularies: Vocabulary[] = [\n dynamicVocabulary,\n coreVocabulary,\n validationVocabulary,\n getApplicatorVocabulary(true),\n formatVocabulary,\n metadataVocabulary,\n contentVocabulary,\n nextVocabulary,\n unevaluatedVocabulary,\n]\n\nexport default draft2020Vocabularies\n", "import type {ErrorObject} from \"../../types\"\n\nexport enum DiscrError {\n Tag = \"tag\",\n Mapping = \"mapping\",\n}\n\nexport type DiscrErrorObj<E extends DiscrError> = ErrorObject<\n \"discriminator\",\n {error: E; tag: string; tagValue: unknown},\n string\n>\n", "import type {CodeKeywordDefinition, AnySchemaObject, KeywordErrorDefinition} from \"../../types\"\nimport type {KeywordCxt} from \"../../compile/validate\"\nimport {_, getProperty, Name} from \"../../compile/codegen\"\nimport {DiscrError, DiscrErrorObj} from \"../discriminator/types\"\nimport {resolveRef, SchemaEnv} from \"../../compile\"\nimport MissingRefError from \"../../compile/ref_error\"\nimport {schemaHasRulesButRef} from \"../../compile/util\"\n\nexport type DiscriminatorError = DiscrErrorObj<DiscrError.Tag> | DiscrErrorObj<DiscrError.Mapping>\n\nconst error: KeywordErrorDefinition = {\n message: ({params: {discrError, tagName}}) =>\n discrError === DiscrError.Tag\n ? `tag \"${tagName}\" must be string`\n : `value of tag \"${tagName}\" must be in oneOf`,\n params: ({params: {discrError, tag, tagName}}) =>\n _`{error: ${discrError}, tag: ${tagName}, tagValue: ${tag}}`,\n}\n\nconst def: CodeKeywordDefinition = {\n keyword: \"discriminator\",\n type: \"object\",\n schemaType: \"object\",\n error,\n code(cxt: KeywordCxt) {\n const {gen, data, schema, parentSchema, it} = cxt\n const {oneOf} = parentSchema\n if (!it.opts.discriminator) {\n throw new Error(\"discriminator: requires discriminator option\")\n }\n const tagName = schema.propertyName\n if (typeof tagName != \"string\") throw new Error(\"discriminator: requires propertyName\")\n if (schema.mapping) throw new Error(\"discriminator: mapping is not supported\")\n if (!oneOf) throw new Error(\"discriminator: requires oneOf keyword\")\n const valid = gen.let(\"valid\", false)\n const tag = gen.const(\"tag\", _`${data}${getProperty(tagName)}`)\n gen.if(\n _`typeof ${tag} == \"string\"`,\n () => validateMapping(),\n () => cxt.error(false, {discrError: DiscrError.Tag, tag, tagName})\n )\n cxt.ok(valid)\n\n function validateMapping(): void {\n const mapping = getMapping()\n gen.if(false)\n for (const tagValue in mapping) {\n gen.elseIf(_`${tag} === ${tagValue}`)\n gen.assign(valid, applyTagSchema(mapping[tagValue]))\n }\n gen.else()\n cxt.error(false, {discrError: DiscrError.Mapping, tag, tagName})\n gen.endIf()\n }\n\n function applyTagSchema(schemaProp?: number): Name {\n const _valid = gen.name(\"valid\")\n const schCxt = cxt.subschema({keyword: \"oneOf\", schemaProp}, _valid)\n cxt.mergeEvaluated(schCxt, Name)\n return _valid\n }\n\n function getMapping(): {[T in string]?: number} {\n const oneOfMapping: {[T in string]?: number} = {}\n const topRequired = hasRequired(parentSchema)\n let tagRequired = true\n for (let i = 0; i < oneOf.length; i++) {\n let sch = oneOf[i]\n if (sch?.$ref && !schemaHasRulesButRef(sch, it.self.RULES)) {\n const ref = sch.$ref\n sch = resolveRef.call(it.self, it.schemaEnv.root, it.baseId, ref)\n if (sch instanceof SchemaEnv) sch = sch.schema\n if (sch === undefined) throw new MissingRefError(it.opts.uriResolver, it.baseId, ref)\n }\n const propSch = sch?.properties?.[tagName]\n if (typeof propSch != \"object\") {\n throw new Error(\n `discriminator: oneOf subschemas (or referenced schemas) must have \"properties/${tagName}\"`\n )\n }\n tagRequired = tagRequired && (topRequired || hasRequired(sch))\n addMappings(propSch, i)\n }\n if (!tagRequired) throw new Error(`discriminator: \"${tagName}\" must be required`)\n return oneOfMapping\n\n function hasRequired({required}: AnySchemaObject): boolean {\n return Array.isArray(required) && required.includes(tagName)\n }\n\n function addMappings(sch: AnySchemaObject, i: number): void {\n if (sch.const) {\n addMapping(sch.const, i)\n } else if (sch.enum) {\n for (const tagValue of sch.enum) {\n addMapping(tagValue, i)\n }\n } else {\n throw new Error(`discriminator: \"properties/${tagName}\" must have \"const\" or \"enum\"`)\n }\n }\n\n function addMapping(tagValue: unknown, i: number): void {\n if (typeof tagValue != \"string\" || tagValue in oneOfMapping) {\n throw new Error(`discriminator: \"${tagName}\" values must be unique strings`)\n }\n oneOfMapping[tagValue] = i\n }\n }\n },\n}\n\nexport default def\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/core\": true,\n \"https://json-schema.org/draft/2020-12/vocab/applicator\": true,\n \"https://json-schema.org/draft/2020-12/vocab/unevaluated\": true,\n \"https://json-schema.org/draft/2020-12/vocab/validation\": true,\n \"https://json-schema.org/draft/2020-12/vocab/meta-data\": true,\n \"https://json-schema.org/draft/2020-12/vocab/format-annotation\": true,\n \"https://json-schema.org/draft/2020-12/vocab/content\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Core and Validation specifications meta-schema\",\n \"allOf\": [\n {\"$ref\": \"meta/core\"},\n {\"$ref\": \"meta/applicator\"},\n {\"$ref\": \"meta/unevaluated\"},\n {\"$ref\": \"meta/validation\"},\n {\"$ref\": \"meta/meta-data\"},\n {\"$ref\": \"meta/format-annotation\"},\n {\"$ref\": \"meta/content\"}\n ],\n \"type\": [\"object\", \"boolean\"],\n \"$comment\": \"This meta-schema also defines keywords that have appeared in previous drafts in order to prevent incompatible extensions as they remain in common use.\",\n \"properties\": {\n \"definitions\": {\n \"$comment\": \"\\\"definitions\\\" has been replaced by \\\"$defs\\\".\",\n \"type\": \"object\",\n \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n \"deprecated\": true,\n \"default\": {}\n },\n \"dependencies\": {\n \"$comment\": \"\\\"dependencies\\\" has been split and replaced by \\\"dependentSchemas\\\" and \\\"dependentRequired\\\" in order to serve their differing semantics.\",\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [{\"$dynamicRef\": \"#meta\"}, {\"$ref\": \"meta/validation#/$defs/stringArray\"}]\n },\n \"deprecated\": true,\n \"default\": {}\n },\n \"$recursiveAnchor\": {\n \"$comment\": \"\\\"$recursiveAnchor\\\" has been replaced by \\\"$dynamicAnchor\\\".\",\n \"$ref\": \"meta/core#/$defs/anchorString\",\n \"deprecated\": true\n },\n \"$recursiveRef\": {\n \"$comment\": \"\\\"$recursiveRef\\\" has been replaced by \\\"$dynamicRef\\\".\",\n \"$ref\": \"meta/core#/$defs/uriReferenceString\",\n \"deprecated\": true\n }\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/applicator\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/applicator\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Applicator vocabulary meta-schema\",\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"prefixItems\": {\"$ref\": \"#/$defs/schemaArray\"},\n \"items\": {\"$dynamicRef\": \"#meta\"},\n \"contains\": {\"$dynamicRef\": \"#meta\"},\n \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n \"properties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n \"default\": {}\n },\n \"patternProperties\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n \"propertyNames\": {\"format\": \"regex\"},\n \"default\": {}\n },\n \"dependentSchemas\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$dynamicRef\": \"#meta\"},\n \"default\": {}\n },\n \"propertyNames\": {\"$dynamicRef\": \"#meta\"},\n \"if\": {\"$dynamicRef\": \"#meta\"},\n \"then\": {\"$dynamicRef\": \"#meta\"},\n \"else\": {\"$dynamicRef\": \"#meta\"},\n \"allOf\": {\"$ref\": \"#/$defs/schemaArray\"},\n \"anyOf\": {\"$ref\": \"#/$defs/schemaArray\"},\n \"oneOf\": {\"$ref\": \"#/$defs/schemaArray\"},\n \"not\": {\"$dynamicRef\": \"#meta\"}\n },\n \"$defs\": {\n \"schemaArray\": {\n \"type\": \"array\",\n \"minItems\": 1,\n \"items\": {\"$dynamicRef\": \"#meta\"}\n }\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/unevaluated\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/unevaluated\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Unevaluated applicator vocabulary meta-schema\",\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"unevaluatedItems\": {\"$dynamicRef\": \"#meta\"},\n \"unevaluatedProperties\": {\"$dynamicRef\": \"#meta\"}\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/content\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/content\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Content vocabulary meta-schema\",\n\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"contentEncoding\": {\"type\": \"string\"},\n \"contentMediaType\": {\"type\": \"string\"},\n \"contentSchema\": {\"$dynamicRef\": \"#meta\"}\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/core\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/core\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Core vocabulary meta-schema\",\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"$id\": {\n \"$ref\": \"#/$defs/uriReferenceString\",\n \"$comment\": \"Non-empty fragments not allowed.\",\n \"pattern\": \"^[^#]*#?$\"\n },\n \"$schema\": {\"$ref\": \"#/$defs/uriString\"},\n \"$ref\": {\"$ref\": \"#/$defs/uriReferenceString\"},\n \"$anchor\": {\"$ref\": \"#/$defs/anchorString\"},\n \"$dynamicRef\": {\"$ref\": \"#/$defs/uriReferenceString\"},\n \"$dynamicAnchor\": {\"$ref\": \"#/$defs/anchorString\"},\n \"$vocabulary\": {\n \"type\": \"object\",\n \"propertyNames\": {\"$ref\": \"#/$defs/uriString\"},\n \"additionalProperties\": {\n \"type\": \"boolean\"\n }\n },\n \"$comment\": {\n \"type\": \"string\"\n },\n \"$defs\": {\n \"type\": \"object\",\n \"additionalProperties\": {\"$dynamicRef\": \"#meta\"}\n }\n },\n \"$defs\": {\n \"anchorString\": {\n \"type\": \"string\",\n \"pattern\": \"^[A-Za-z_][-A-Za-z0-9._]*$\"\n },\n \"uriString\": {\n \"type\": \"string\",\n \"format\": \"uri\"\n },\n \"uriReferenceString\": {\n \"type\": \"string\",\n \"format\": \"uri-reference\"\n }\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/format-annotation\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/format-annotation\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Format vocabulary meta-schema for annotation results\",\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"format\": {\"type\": \"string\"}\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/meta-data\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/meta-data\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Meta-data vocabulary meta-schema\",\n\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"title\": {\n \"type\": \"string\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"default\": true,\n \"deprecated\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"readOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"writeOnly\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"examples\": {\n \"type\": \"array\",\n \"items\": true\n }\n }\n}\n", "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"$id\": \"https://json-schema.org/draft/2020-12/meta/validation\",\n \"$vocabulary\": {\n \"https://json-schema.org/draft/2020-12/vocab/validation\": true\n },\n \"$dynamicAnchor\": \"meta\",\n\n \"title\": \"Validation vocabulary meta-schema\",\n \"type\": [\"object\", \"boolean\"],\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\"$ref\": \"#/$defs/simpleTypes\"},\n {\n \"type\": \"array\",\n \"items\": {\"$ref\": \"#/$defs/simpleTypes\"},\n \"minItems\": 1,\n \"uniqueItems\": true\n }\n ]\n },\n \"const\": true,\n \"enum\": {\n \"type\": \"array\",\n \"items\": true\n },\n \"multipleOf\": {\n \"type\": \"number\",\n \"exclusiveMinimum\": 0\n },\n \"maximum\": {\n \"type\": \"number\"\n },\n \"exclusiveMaximum\": {\n \"type\": \"number\"\n },\n \"minimum\": {\n \"type\": \"number\"\n },\n \"exclusiveMinimum\": {\n \"type\": \"number\"\n },\n \"maxLength\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n \"minLength\": {\"$ref\": \"#/$defs/nonNegativeIntegerDefault0\"},\n \"pattern\": {\n \"type\": \"string\",\n \"format\": \"regex\"\n },\n \"maxItems\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n \"minItems\": {\"$ref\": \"#/$defs/nonNegativeIntegerDefault0\"},\n \"uniqueItems\": {\n \"type\": \"boolean\",\n \"default\": false\n },\n \"maxContains\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n \"minContains\": {\n \"$ref\": \"#/$defs/nonNegativeInteger\",\n \"default\": 1\n },\n \"maxProperties\": {\"$ref\": \"#/$defs/nonNegativeInteger\"},\n \"minProperties\": {\"$ref\": \"#/$defs/nonNegativeIntegerDefault0\"},\n \"required\": {\"$ref\": \"#/$defs/stringArray\"},\n \"dependentRequired\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/$defs/stringArray\"\n }\n }\n },\n \"$defs\": {\n \"nonNegativeInteger\": {\n \"type\": \"integer\",\n \"minimum\": 0\n },\n \"nonNegativeIntegerDefault0\": {\n \"$ref\": \"#/$defs/nonNegativeInteger\",\n \"default\": 0\n },\n \"simpleTypes\": {\n \"enum\": [\"array\", \"boolean\", \"integer\", \"null\", \"number\", \"object\", \"string\"]\n },\n \"stringArray\": {\n \"type\": \"array\",\n \"items\": {\"type\": \"string\"},\n \"uniqueItems\": true,\n \"default\": []\n }\n }\n}\n", "import type Ajv from \"../../core\"\nimport type {AnySchemaObject} from \"../../types\"\nimport * as metaSchema from \"./schema.json\"\nimport * as applicator from \"./meta/applicator.json\"\nimport * as unevaluated from \"./meta/unevaluated.json\"\nimport * as content from \"./meta/content.json\"\nimport * as core from \"./meta/core.json\"\nimport * as format from \"./meta/format-annotation.json\"\nimport * as metadata from \"./meta/meta-data.json\"\nimport * as validation from \"./meta/validation.json\"\n\nconst META_SUPPORT_DATA = [\"/properties\"]\n\nexport default function addMetaSchema2020(this: Ajv, $data?: boolean): Ajv {\n ;[\n metaSchema,\n applicator,\n unevaluated,\n content,\n core,\n with$data(this, format),\n metadata,\n with$data(this, validation),\n ].forEach((sch) => this.addMetaSchema(sch, undefined, false))\n return this\n\n function with$data(ajv: Ajv, sch: AnySchemaObject): AnySchemaObject {\n return $data ? ajv.$dataMetaSchema(sch, META_SUPPORT_DATA) : sch\n }\n}\n", "import type {AnySchemaObject} from \"./types\"\nimport AjvCore, {Options} from \"./core\"\n\nimport draft2020Vocabularies from \"./vocabularies/draft2020\"\nimport discriminator from \"./vocabularies/discriminator\"\nimport addMetaSchema2020 from \"./refs/json-schema-2020-12\"\n\nconst META_SCHEMA_ID = \"https://json-schema.org/draft/2020-12/schema\"\n\nexport class Ajv2020 extends AjvCore {\n constructor(opts: Options = {}) {\n super({\n ...opts,\n dynamicRef: true,\n next: true,\n unevaluated: true,\n })\n }\n\n _addVocabularies(): void {\n super._addVocabularies()\n draft2020Vocabularies.forEach((v) => this.addVocabulary(v))\n if (this.opts.discriminator) this.addKeyword(discriminator)\n }\n\n _addDefaultMetaSchema(): void {\n super._addDefaultMetaSchema()\n const {$data, meta} = this.opts\n if (!meta) return\n addMetaSchema2020.call(this, $data)\n this.refs[\"http://json-schema.org/schema\"] = META_SCHEMA_ID\n }\n\n defaultMeta(): string | AnySchemaObject | undefined {\n return (this.opts.defaultMeta =\n super.defaultMeta() || (this.getSchema(META_SCHEMA_ID) ? META_SCHEMA_ID : undefined))\n }\n}\n\nmodule.exports = exports = Ajv2020\nmodule.exports.Ajv2020 = Ajv2020\nObject.defineProperty(exports, \"__esModule\", {value: true})\n\nexport default Ajv2020\n\nexport {\n Format,\n FormatDefinition,\n AsyncFormatDefinition,\n KeywordDefinition,\n KeywordErrorDefinition,\n CodeKeywordDefinition,\n MacroKeywordDefinition,\n FuncKeywordDefinition,\n Vocabulary,\n Schema,\n SchemaObject,\n AnySchemaObject,\n AsyncSchema,\n AnySchema,\n ValidateFunction,\n AsyncValidateFunction,\n ErrorObject,\n ErrorNoParams,\n} from \"./types\"\n\nexport {Plugin, Options, CodeOptions, InstanceOptions, Logger, ErrorsTextOptions} from \"./core\"\nexport {SchemaCxt, SchemaObjCxt} from \"./compile\"\nexport {KeywordCxt} from \"./compile/validate\"\nexport {DefinedError} from \"./vocabularies/errors\"\nexport {JSONType} from \"./compile/rules\"\nexport {JSONSchemaType} from \"./types/json-schema\"\nexport {_, str, stringify, nil, Name, Code, CodeGen, CodeGenOptions} from \"./compile/codegen\"\nexport {default as ValidationError} from \"./runtime/validation_error\"\nexport {default as MissingRefError} from \"./compile/ref_error\"\n", "#!/usr/bin/env node\n/**\n * @gluecharm-lab/easyspecs-cli entry (SRS-39). Run via `node out/cli/main.js` after compile, or bundled `easyspecs-cli`.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { parseArgv } from \"./argv\";\nimport { ExitCode } from \"./exitCodes\";\nimport { printJsonLine, type JsonReportEnvelope } from \"./jsonReporter\";\nimport {\n assertAgentsDirExists,\n initApiBaseUrlForCli,\n resolveOpenCodeAgentsDir,\n resolveRepoRoot,\n} from \"./cliContext\";\nimport { mergeEasyspecsCliSettings } from \"./cliSettings\";\nimport { redactMergedCliSettingsForDump } from \"./cliSettingsDump\";\nimport {\n EasyspecsConfigInvalidJsonError,\n easyspecsConfigPath,\n ensureEasyspecsConfig,\n initEasyspecsConfigFile,\n updateEasyspecsConfig,\n} from \"../config/easyspecsConfigFile\";\nimport { redactEasyspecsConfigRootForDump } from \"../config/easyspecsConfigRedact\";\nimport { createFileBackedWorkspaceState } from \"./cliFileWorkspaceState\";\nimport { runContextArtefactPipelineAsync } from \"../analysis/contextArtefactPipeline\";\nimport { getOpenCodeReadiness } from \"../opencodeCli\";\nimport { promoteContextDirectoryToWorkspaceFs } from \"../workspaceContextPromote\";\nimport {\n getAceAnalysisEnabledForCheckout,\n getAceOfflineLearnAfterSameSessionTrace,\n setAceCliHeadlessMode,\n setAceCliWorkspaceRoot,\n} from \"../analysis/aceAnalysisConfig\";\nimport { runMacroAnalysisOrchestration } from \"../analysis/macroAnalysisOrchestrator\";\nimport { buildMacroOrchestrationDepsHeadless } from \"../analysis/macroHeadlessHost\";\nimport { runCoverageReferenceValidation } from \"../analysis/coverageReferenceValidation\";\nimport {\n COORDINATION_DUPLICATES_REPORT_BASENAME,\n runCoordinationDuplicatesDiagnosis,\n} from \"../analysis/coordinationDuplicatesDiagnosis\";\nimport { runReferenceCoverageExecutionReport } from \"../analysis/referenceCoverageExecutionReport\";\nimport { listMissingArtefacts, toMissingArtefactUiRows } from \"../analysis/missingArtefacts\";\nimport { readArtefactRunSnapshot } from \"../stores/analysisArtefactRunStore\";\nimport {\n noteAgentsMaterialized,\n readAnalysisWorkspaceSnapshot,\n writeAnalysisWorkspaceSnapshot,\n} from \"../stores/analysisWorkspaceStore\";\nimport {\n getEasyspecsProjectIdFromRepoConfig,\n listContextFilesForUpload,\n runContextSrsDiscoveryUpload,\n validateApplicationExists,\n} from \"../analysis/contextSrsDiscoveryUpload\";\nimport { loginWithApi, refreshTokenWithApi, toFetchErrorMessage } from \"../auth/authApi\";\nimport { createAuthenticatedRequestJson } from \"../auth/authenticatedFetch\";\nimport {\n applyCliSessionPathFromRepoConfig,\n clearCliSession,\n normalizeCliSessionPathForConfig,\n readCliSession,\n setCliSessionPathFromConfig,\n writeCliSession,\n type CliSessionFile,\n} from \"./cliSession\";\nimport { listAceTraceFiles, runAceOfflineLearnFromTrace } from \"../analysis/aceOfflineLearn\";\nimport { listPendingAceTraceFiles } from \"../analysis/acePendingTraces\";\nimport { runAceAutoLearnPool } from \"../analysis/aceAutoLearnPool\";\nimport { startPipelineRun, finishPipelineRun } from \"../stores/analysisPipelineStore\";\nimport { runMissingArtefactsRemediationPool } from \"../analysis/remediationArtefactPool\";\nimport {\n readNonReferencedFilesFromRepositoryRoot,\n runZeroReferenceRemediationPool,\n} from \"../analysis/zeroReferenceRemediation\";\nimport { noteOpenCodeAgentLaunched } from \"../stores/analysisDiscoveriesStore\";\nimport { parseTailFlags } from \"./parseTailFlags\";\nimport { parseDoctorFlags } from \"./parseDoctorFlags\";\nimport { extractAuthLoginSessionPathFromTail, parseAuthLoginTail } from \"./parseAuthLoginTail\";\nimport type { ParsedGlobalFlags } from \"./argv\";\nimport type { MergedCliSettings } from \"./cliSettings\";\nimport type { EasyspecsConfigRoot } from \"../config/easyspecsConfigJson\";\nimport type { AnalysisStorageContext } from \"../stores/workspaceStatePort\";\nimport { mergeUploadIdsIntoIndexOnDisk } from \"../analysis/indexApplicationContextMergeUploadIds\";\n\nconst PKG_VERSION = \"0.0.9\";\n\nfunction logErr(flags: { verbose?: boolean; json?: boolean }, ...a: unknown[]): void {\n if (!flags.json) {\n console.error(...a);\n } else if (flags.verbose) {\n console.error(...a);\n }\n}\n\nfunction buildDoctorInspectPayload(\n merged: MergedCliSettings,\n repoConfig: EasyspecsConfigRoot,\n): { merged: Record<string, unknown>; easyspecsConfig: Record<string, unknown> } {\n return {\n merged: redactMergedCliSettingsForDump(merged),\n easyspecsConfig: redactEasyspecsConfigRootForDump(repoConfig),\n };\n}\n\nfunction formatCommand(positionals: readonly string[]): string {\n return positionals.join(\" \").trim() || \"help\";\n}\n\nfunction printHelp(): void {\n console.log(`@gluecharm-lab/easyspecs-cli ${PKG_VERSION}\n\nUsage:\n easyspecs-cli [global-options] <command> ...\n\nGlobal options:\n --cwd <dir> Repository root (default: current directory)\n --ci Non-interactive; fail fast if configuration is missing\n --json Print one JSON summary line on stdout\n --verbose Extra stderr logging\n --api-base-url <url> System Manager API origin (overrides config)\n --session-path <file> Session JSON for this run (overrides easyspecs.cliSessionPath; e.g. extension delegate)\n --environment production|staging Effective deployment (alias: --env); overrides easyspecs.deploymentEnvironment\n --promote / --no-promote Copy generated context into workspace after run synthesis (default: promote)\n\nCommands:\n help | --help\n version\n doctor [--readiness] [--inspect-config]\n auth login --email <email> --password <password> [--session-path <path>]\n auth logout | status\n run synthesis\n run synthesis resume-missing [--worktree <path>]\n run synthesis resume-synthesis [--worktree <path>]\n analysis [--synthesis-only] [--upload] [--skip-upload]\n diagnose reference-coverage --root workspace|worktree [--worktree <path>]\n diagnose coordination-duplicates --root workspace|worktree [--worktree <path>]\n diagnose coverage-report --root workspace|worktree [--worktree <path>]\n diagnose missing-artefacts --root workspace|worktree [--worktree <path>]\n diagnose zero-reference [--worktree <path>]\n upload context | upload republish\n ace clear | ace learn | ace auto-learn [--worktree <path>]\n config init [--overwrite]\n config set-project-id <easyspecsProjectId>\n config set-git-remote <url>\n`);\n}\n\n/** Parse \\`--worktree <path>\\` from tail tokens. */\nfunction parseWorktreeFlag(rest: readonly string[]): { worktree?: string } {\n for (let i = 0; i < rest.length; i += 1) {\n if (rest[i] === \"--worktree\" && rest[i + 1]) {\n return { worktree: rest[i + 1] };\n }\n }\n return {};\n}\n\nfunction resolveAnalysisRoot(repoRoot: string, rootKind: \"workspace\" | \"worktree\", worktreePath?: string): string {\n if (rootKind === \"workspace\") {\n return repoRoot;\n }\n const wt = worktreePath?.trim();\n if (wt && fs.existsSync(path.join(wt, \".git\"))) {\n return path.resolve(wt);\n }\n throw new Error(\"worktree mode requires --worktree <path> to an existing analysis checkout.\");\n}\n\nfunction resolveAdHocCheckoutRoot(\n _repoRoot: string,\n storage: AnalysisStorageContext,\n worktreeFlag?: string,\n): string {\n const w = worktreeFlag?.trim();\n if (w) {\n const abs = path.resolve(w);\n if (fs.existsSync(path.join(abs, \".git\"))) {\n return abs;\n }\n throw new Error(`Invalid --worktree (not a git checkout): ${abs}`);\n }\n const snap = readAnalysisWorkspaceSnapshot(storage);\n const p = snap?.adHocWorktreePath?.trim();\n if (p && fs.existsSync(path.join(p, \".git\"))) {\n return p;\n }\n throw new Error(\"No analysis checkout: run `easyspecs-cli run synthesis` first or pass `--worktree <path>`.\");\n}\n\nfunction requireOpenCode(\n merged: MergedCliSettings,\n flags: ParsedGlobalFlags,\n): ReturnType<typeof getOpenCodeReadiness> {\n const readiness = getOpenCodeReadiness({\n executable: merged.openCodeExecutable,\n skipCredentialsCheck: merged.openCodeSkipCredentialsCheck,\n providerEnvFromConfig: merged.openCodeChildEnv,\n });\n if (!readiness.installed) {\n throw new Error(\n \"OpenCode not on PATH (set `easyspecs.openCode.executable` or `easyspecs.openCodeRuntime.executable` in `.easyspecs/config.json`, or install `opencode`).\",\n );\n }\n if (!readiness.credentialsReady) {\n throw new Error(\n \"OpenCode credentials not ready: configure provider `apiKey` values under `easyspecs.openCodeRuntime.providers` in `.easyspecs/config.json`, or sign in with OpenCode using your usual shell.\",\n );\n }\n return readiness;\n}\n\nasync function runResumeRemediationPool(\n storage: ReturnType<typeof createFileBackedWorkspaceState>,\n repoRoot: string,\n analysisRoot: string,\n merged: MergedCliSettings,\n flags: ParsedGlobalFlags,\n): Promise<{ cancelled: boolean; indexOk: boolean; indexError?: string }> {\n requireOpenCode(merged, flags);\n const agentsDir = resolveOpenCodeAgentsDir();\n assertAgentsDirExists(agentsDir);\n const ctxDir = path.join(analysisRoot, \".gluecharm\", \"context\");\n const snap = readArtefactRunSnapshot(storage);\n const rows = listMissingArtefacts(ctxDir, analysisRoot, snap);\n if (rows.length === 0) {\n logErr(flags, \"No missing artefacts to remediate.\");\n return { cancelled: false, indexOk: true };\n }\n const wsSnap = readAnalysisWorkspaceSnapshot(storage);\n const oc = {\n ...merged.pipelineOpenCode,\n aceEnabled: getAceAnalysisEnabledForCheckout(analysisRoot),\n offlineLearnAfterSameSessionTrace: getAceOfflineLearnAfterSameSessionTrace(analysisRoot),\n };\n await startPipelineRun(storage, repoRoot);\n const poolRes = await runMissingArtefactsRemediationPool({\n storageContext: storage,\n repositoryRoot: repoRoot,\n worktreeRoot: analysisRoot,\n workspaceLabel: path.basename(analysisRoot),\n oc,\n log: (line) => logErr(flags, line),\n abortSignal: undefined,\n rows,\n sourceBranchAtWorktreeCreation: wsSnap?.adHocSourceBranchAtCreation,\n });\n await finishPipelineRun(storage, !poolRes.cancelled);\n return {\n cancelled: poolRes.cancelled,\n indexOk: poolRes.indexOk,\n indexError: poolRes.indexError,\n };\n}\n\nasync function main(): Promise<void> {\n const t0 = Date.now();\n let parsed;\n try {\n parsed = parseArgv(process.argv.slice(2));\n } catch (e) {\n console.error(e instanceof Error ? e.message : String(e));\n process.exit(ExitCode.usage);\n }\n const { flags, positionals } = parsed;\n const cmd = formatCommand(positionals);\n\n if (flags.help || cmd === \"help\" || cmd === \"--help\") {\n printHelp();\n process.exit(ExitCode.ok);\n }\n if (flags.version || positionals[0] === \"version\") {\n console.log(PKG_VERSION);\n process.exit(ExitCode.ok);\n }\n\n const repoRoot = resolveRepoRoot(flags);\n setAceCliHeadlessMode(true);\n setAceCliWorkspaceRoot(repoRoot);\n\n if (positionals[0] === \"config\" && positionals[1] === \"init\") {\n const tail = positionals.slice(2);\n const overwrite = tail.includes(\"--overwrite\");\n const unknown = tail.filter((t) => t !== \"--overwrite\");\n if (unknown.length > 0) {\n logErr(flags, `Unknown arguments for config init: ${unknown.join(\", \")}`);\n process.exit(ExitCode.usage);\n }\n try {\n const r = initEasyspecsConfigFile(repoRoot, {\n overwrite,\n warnMigration: (m) => logErr(flags, `[EasySpecs] ${m}`),\n });\n if (flags.json) {\n printJsonLine({\n command: \"config init\",\n durationMs: Date.now() - t0,\n ok: true,\n outcome: r.outcome,\n path: r.path,\n });\n } else {\n const msg =\n r.outcome === \"created\"\n ? `Wrote ${r.path}`\n : r.outcome === \"overwritten\"\n ? `Overwrote ${r.path} with defaults (merged legacy cli.json / settings.json when present).`\n : `Already exists \u2014 ${r.path} (use --overwrite to replace with defaults).`;\n console.log(msg);\n }\n process.exit(ExitCode.ok);\n } catch (e) {\n if (e instanceof EasyspecsConfigInvalidJsonError) {\n console.error(e.message);\n process.exit(ExitCode.misconfiguration);\n }\n throw e;\n }\n }\n\n if (positionals[0] === \"config\" && positionals[1] === \"set-project-id\") {\n const rest = positionals.slice(2);\n const id = rest[0]?.trim();\n const extra = rest.slice(1).filter((t) => t.length > 0);\n if (!id || extra.length > 0) {\n logErr(flags, \"Usage: easyspecs-cli config set-project-id <easyspecsProjectId>\");\n process.exit(ExitCode.usage);\n }\n try {\n const cfg = updateEasyspecsConfig(\n repoRoot,\n { easyspecs: { easyspecsProjectId: id } },\n { warnMigration: (m) => logErr(flags, `[EasySpecs] ${m}`) },\n );\n const configJsonPath = easyspecsConfigPath(repoRoot);\n if (flags.json) {\n printJsonLine({\n command: \"config set-project-id\",\n durationMs: Date.now() - t0,\n ok: true,\n path: configJsonPath,\n easyspecsProjectId: cfg.easyspecs?.easyspecsProjectId ?? \"\",\n });\n } else {\n console.log(`Updated ${configJsonPath} \u2014 easyspecs.easyspecsProjectId`);\n }\n process.exit(ExitCode.ok);\n } catch (e) {\n if (e instanceof EasyspecsConfigInvalidJsonError) {\n console.error(e.message);\n process.exit(ExitCode.misconfiguration);\n }\n throw e;\n }\n }\n\n if (positionals[0] === \"config\" && positionals[1] === \"set-git-remote\") {\n const rest = positionals.slice(2);\n const url = rest[0]?.trim();\n const extra = rest.slice(1).filter((t) => t.length > 0);\n if (!url || extra.length > 0) {\n logErr(flags, \"Usage: easyspecs-cli config set-git-remote <url>\");\n process.exit(ExitCode.usage);\n }\n try {\n const cfg = updateEasyspecsConfig(\n repoRoot,\n { easyspecs: { defaultGitRemoteUrl: url } },\n { warnMigration: (m) => logErr(flags, `[EasySpecs] ${m}`) },\n );\n const path = easyspecsConfigPath(repoRoot);\n if (flags.json) {\n printJsonLine({\n command: \"config set-git-remote\",\n durationMs: Date.now() - t0,\n ok: true,\n path,\n defaultGitRemoteUrl: cfg.easyspecs?.defaultGitRemoteUrl ?? \"\",\n });\n } else {\n console.log(`Updated ${path} \u2014 easyspecs.defaultGitRemoteUrl`);\n }\n process.exit(ExitCode.ok);\n } catch (e) {\n if (e instanceof EasyspecsConfigInvalidJsonError) {\n console.error(e.message);\n process.exit(ExitCode.misconfiguration);\n }\n throw e;\n }\n }\n\n const allowCreateConfig = positionals[0] !== \"doctor\";\n let repoConfig;\n try {\n repoConfig = ensureEasyspecsConfig(repoRoot, {\n allowCreate: allowCreateConfig,\n warnMigration: (m) => logErr(flags, `[EasySpecs] ${m}`),\n });\n } catch (e) {\n if (e instanceof EasyspecsConfigInvalidJsonError) {\n console.error(e.message);\n process.exit(ExitCode.misconfiguration);\n }\n throw e;\n }\n\n applyCliSessionPathFromRepoConfig(repoRoot, repoConfig);\n if (flags.sessionPath?.trim()) {\n const sp = flags.sessionPath.trim();\n const abs = path.isAbsolute(sp) ? path.normalize(sp) : path.resolve(repoRoot, sp);\n setCliSessionPathFromConfig(abs);\n }\n\n const apiResolved = initApiBaseUrlForCli(repoRoot, flags, repoConfig);\n const merged = mergeEasyspecsCliSettings(repoConfig, {\n ci: flags.ci,\n apiBaseUrl: flags.apiBaseUrl,\n promote: flags.promote,\n repoRoot,\n });\n\n const finish = (code: number, envelope: Partial<JsonReportEnvelope> & { ok: boolean }): never => {\n if (flags.json) {\n printJsonLine({\n command: cmd,\n durationMs: Date.now() - t0,\n ...envelope,\n });\n }\n process.exit(code);\n // Control-flow for TypeScript (`process.exit` is not typed as `never`).\n throw new Error(\"unreachable\");\n };\n\n const pos = positionals;\n\n try {\n if (pos[0] === \"doctor\") {\n let modes;\n try {\n modes = parseDoctorFlags(pos.slice(1));\n } catch (e) {\n logErr(flags, e instanceof Error ? e.message : String(e));\n logErr(flags, \"Usage: easyspecs-cli doctor [--readiness] [--inspect-config]\");\n process.exit(ExitCode.usage);\n }\n const agentsDir = resolveOpenCodeAgentsDir();\n const agentsOk = fs.existsSync(agentsDir);\n const oc = getOpenCodeReadiness({\n executable: merged.openCodeExecutable,\n skipCredentialsCheck: merged.openCodeSkipCredentialsCheck,\n providerEnvFromConfig: merged.openCodeChildEnv,\n });\n const lines = [\n `repoRoot=${repoRoot}`,\n `apiBaseUrl=${apiResolved || \"(empty \u2014 stub auth only)\"}`,\n `opencode installed=${String(oc.installed)} credentialsReady=${String(oc.credentialsReady)}`,\n `agentsDir=${agentsDir} exists=${String(agentsOk)}`,\n ];\n const inspectPayload = buildDoctorInspectPayload(merged, repoConfig);\n if (!flags.json) {\n const parts: string[] = [];\n if (modes.readiness) {\n parts.push(lines.join(\"\\n\"));\n }\n if (modes.inspectConfig) {\n parts.push(JSON.stringify(inspectPayload, null, 2));\n }\n console.log(parts.join(parts.length === 2 ? \"\\n\\n\" : \"\"));\n }\n const envelope: Record<string, unknown> = { ok: true };\n if (modes.readiness) {\n envelope.lines = lines;\n }\n if (modes.inspectConfig) {\n envelope.config = inspectPayload;\n }\n finish(ExitCode.ok, envelope as Partial<JsonReportEnvelope> & { ok: boolean });\n }\n\n if (pos[0] === \"config\" && pos[1] === \"dump\") {\n logErr(flags, \"[EasySpecs] `config dump` is deprecated; use `easyspecs-cli doctor --inspect-config`.\");\n const redacted = buildDoctorInspectPayload(merged, repoConfig);\n if (!flags.json) {\n console.log(JSON.stringify(redacted, null, 2));\n }\n finish(ExitCode.ok, { ok: true, config: redacted });\n }\n\n if (pos[0] === \"auth\" && pos[1] === \"logout\") {\n clearCliSession();\n finish(ExitCode.ok, { ok: true, message: \"Session cleared.\" });\n }\n\n if (pos[0] === \"auth\" && pos[1] === \"status\") {\n const s = readCliSession();\n if (!flags.json) {\n console.log(s ? `session: apiBaseUrl=${s.apiBaseUrl} (tokens present)` : \"no cli-session.json\");\n }\n finish(ExitCode.ok, { ok: true, authenticated: Boolean(s) });\n }\n\n if (pos[0] === \"auth\" && pos[1] === \"login\") {\n const tailFull = pos.slice(2);\n let sessionPathRaw: string | undefined;\n let tailForCreds: readonly string[];\n try {\n const extracted = extractAuthLoginSessionPathFromTail(tailFull);\n tailForCreds = extracted.rest;\n sessionPathRaw = extracted.sessionPath;\n } catch (e) {\n logErr(flags, e instanceof Error ? e.message : String(e));\n process.exit(ExitCode.usage);\n }\n const parsedCli = parseAuthLoginTail(tailForCreds);\n const envEmail = process.env.EASYSPECS_EMAIL?.trim();\n const envPassword = process.env.EASYSPECS_PASSWORD?.trim();\n const useLegacyCiEnv =\n !parsedCli.ok &&\n (flags.ci || tailFull.includes(\"--ci\")) &&\n Boolean(envEmail) &&\n Boolean(envPassword);\n\n let email: string;\n let password: string;\n if (parsedCli.ok) {\n email = parsedCli.creds.email;\n password = parsedCli.creds.password;\n } else if (useLegacyCiEnv) {\n email = envEmail!;\n password = envPassword!;\n } else {\n logErr(flags, parsedCli.error);\n logErr(\n flags,\n \"Usage: easyspecs-cli auth login --email <email> --password <password> [--session-path <path>]\",\n );\n logErr(\n flags,\n \"Legacy: easyspecs-cli --ci auth login (requires EASYSPECS_EMAIL and EASYSPECS_PASSWORD)\",\n );\n process.exit(ExitCode.usage);\n }\n\n if (sessionPathRaw !== undefined) {\n const stored = normalizeCliSessionPathForConfig(repoRoot, sessionPathRaw);\n const updatedCfg = updateEasyspecsConfig(\n repoRoot,\n { easyspecs: { cliSessionPath: stored } },\n { warnMigration: (m) => logErr(flags, `[EasySpecs] ${m}`) },\n );\n applyCliSessionPathFromRepoConfig(repoRoot, updatedCfg);\n }\n\n const base = apiResolved;\n if (!base) {\n if (!flags.json) {\n console.error(\"KO: apiBaseUrl missing (set easyspecs.apiBaseUrl or use --api-base-url / --environment)\");\n }\n finish(ExitCode.misconfiguration, {\n ok: false,\n error: \"apiBaseUrl missing\",\n outcome: \"KO\",\n });\n }\n\n try {\n const tokens = await loginWithApi(base, fetch, email, password);\n writeCliSession({\n apiBaseUrl: base,\n accessToken: tokens.accessToken,\n refreshToken: tokens.refreshToken,\n });\n if (!flags.json) {\n console.log(\"OK\");\n }\n finish(ExitCode.ok, { ok: true, outcome: \"OK\", message: \"Logged in.\" });\n } catch (e) {\n const err = toFetchErrorMessage(e);\n const detail = err.message || \"Login failed.\";\n if (!flags.json) {\n console.error(`KO: ${detail}`);\n }\n finish(ExitCode.auth, {\n ok: false,\n outcome: \"KO\",\n error: detail,\n status: err.status,\n });\n }\n }\n\n if (pos[0] === \"run\" && pos[1] === \"synthesis\" && pos[2] === \"resume-missing\") {\n const storage = createFileBackedWorkspaceState(repoRoot);\n const { worktree } = parseWorktreeFlag(pos.slice(3));\n const analysisRoot = resolveAdHocCheckoutRoot(repoRoot, storage, worktree);\n const poolRes = await runResumeRemediationPool(storage, repoRoot, analysisRoot, merged, flags);\n if (poolRes.cancelled) {\n finish(ExitCode.cancelled, { ok: false, error: \"Remediation cancelled.\", analysisWorktreePath: analysisRoot });\n }\n if (!poolRes.indexOk) {\n finish(ExitCode.validation, {\n ok: false,\n error: poolRes.indexError ?? \"Index failed after remediation.\",\n analysisWorktreePath: analysisRoot,\n });\n }\n finish(ExitCode.ok, { ok: true, analysisWorktreePath: analysisRoot });\n }\n\n if (pos[0] === \"run\" && pos[1] === \"synthesis\" && pos[2] === \"resume-synthesis\") {\n const storage = createFileBackedWorkspaceState(repoRoot);\n const { worktree } = parseWorktreeFlag(pos.slice(3));\n const analysisRoot = resolveAdHocCheckoutRoot(repoRoot, storage, worktree);\n const poolRes = await runResumeRemediationPool(storage, repoRoot, analysisRoot, merged, flags);\n if (poolRes.cancelled) {\n finish(ExitCode.cancelled, { ok: false, error: \"Remediation cancelled.\", analysisWorktreePath: analysisRoot });\n }\n if (!poolRes.indexOk) {\n finish(ExitCode.validation, {\n ok: false,\n error: poolRes.indexError ?? \"Index failed after remediation.\",\n analysisWorktreePath: analysisRoot,\n });\n }\n finish(ExitCode.ok, { ok: true, analysisWorktreePath: analysisRoot });\n }\n\n if (pos[0] === \"run\" && pos[1] === \"synthesis\" && pos.length === 2) {\n requireOpenCode(merged, flags);\n const agentsDir = resolveOpenCodeAgentsDir();\n assertAgentsDirExists(agentsDir);\n const storage = createFileBackedWorkspaceState(repoRoot);\n const result = await runContextArtefactPipelineAsync(\n storage,\n repoRoot,\n path.basename(repoRoot),\n agentsDir,\n {\n ...merged.pipelineOpenCode,\n },\n {\n log: (line) => logErr(flags, line),\n },\n );\n if (result.ok) {\n await writeAnalysisWorkspaceSnapshot(storage, {\n adHocWorktreePath: result.handle.path,\n adHocRepositoryRoot: result.handle.repoRoot,\n adHocCreatedAtIso: new Date().toISOString(),\n });\n await noteAgentsMaterialized(storage);\n if (merged.promoteContextToWorkspace && result.contextDir) {\n const n = promoteContextDirectoryToWorkspaceFs(result.contextDir, repoRoot);\n logErr(flags, `[SRS-8] promoted ${String(n.filesCopied)} file(s) \u2192 ${repoRoot}`);\n }\n const idx = result.indexApplicationContext;\n finish(ExitCode.ok, {\n ok: true,\n analysisWorktreePath: result.handle.path,\n adHocRepositoryRoot: result.handle.repoRoot,\n skippedWorkItemCount: result.skippedWorkItemIds.length,\n indexAssemblyOk: idx.ok,\n ...(idx.ok ? {} : { indexAssemblyError: idx.error }),\n });\n } else {\n if (result.retainedWorktree) {\n await writeAnalysisWorkspaceSnapshot(storage, {\n adHocWorktreePath: result.retainedWorktree.path,\n adHocRepositoryRoot: result.retainedWorktree.repoRoot,\n adHocCreatedAtIso: new Date().toISOString(),\n });\n }\n finish(result.cancelled ? ExitCode.cancelled : ExitCode.validation, {\n ok: false,\n error: result.error ?? \"run synthesis failed\",\n cancelled: result.cancelled === true,\n analysisWorktreePath: result.retainedWorktree?.path,\n adHocRepositoryRoot: result.retainedWorktree?.repoRoot,\n });\n }\n }\n\n if (pos[0] === \"diagnose\") {\n const sub = pos[1];\n const tail = pos.slice(2);\n const { rootKind, worktree: wtFromRoot } = parseTailFlags(tail);\n const { worktree: wtExplicit } = parseWorktreeFlag(tail);\n const worktree = wtExplicit ?? wtFromRoot;\n\n if (sub === \"reference-coverage\") {\n const rootAbs = resolveAnalysisRoot(repoRoot, rootKind, worktree);\n const contextDir = path.join(rootAbs, \".gluecharm\", \"context\");\n const res = runCoverageReferenceValidation({\n repositoryRootAbs: rootAbs,\n contextDirAbs: contextDir,\n write: true,\n });\n if (res.ok) {\n const d = res.document;\n const maxPct = Number(process.env.EASYSPECS_MAX_PERCENT_NON_REFERENCED ?? \"\");\n if (Number.isFinite(maxPct) && d.metrics.percentNonReferenced > maxPct) {\n finish(ExitCode.validation, {\n ok: false,\n error: `percentNonReferenced ${String(d.metrics.percentNonReferenced)} > ${String(maxPct)}`,\n });\n }\n finish(ExitCode.ok, { ok: true, percentNonReferenced: d.metrics.percentNonReferenced });\n } else {\n finish(ExitCode.validation, { ok: false, error: res.error ?? \"coverage failed\" });\n }\n }\n\n if (sub === \"coordination-duplicates\") {\n const rootAbs = resolveAnalysisRoot(repoRoot, rootKind, worktree);\n const contextDir = path.join(rootAbs, \".gluecharm\", \"context\");\n const res = runCoordinationDuplicatesDiagnosis({\n contextDirAbsolute: contextDir,\n sourceRoot: rootKind === \"worktree\" ? \"worktree\" : \"workspace\",\n });\n if (res.ok) {\n const strict = process.env.EASYSPECS_DUPLICATES_STRICT !== \"0\";\n const bad =\n strict && ((res.groupCount ?? 0) > 0 || (res.orphanMarkdownCount ?? 0) > 0);\n finish(bad ? ExitCode.validation : ExitCode.ok, {\n ok: !bad,\n groupCount: res.groupCount,\n orphanMarkdownCount: res.orphanMarkdownCount,\n message: res.message,\n reportAbsolutePath: res.reportAbsolutePath,\n reportRelativePath: `.gluecharm/context/${COORDINATION_DUPLICATES_REPORT_BASENAME}`,\n groupsByList: res.groupsByList,\n });\n }\n finish(ExitCode.validation, { ok: false, error: res.message ?? \"duplicates failed\" });\n }\n\n if (sub === \"coverage-report\") {\n const rootAbs = resolveAnalysisRoot(repoRoot, rootKind, worktree);\n const rep = await runReferenceCoverageExecutionReport({\n repositoryRootAbs: rootAbs,\n diagnosticLog: (line) => logErr(flags, line),\n });\n if (rep.ok) {\n finish(ExitCode.ok, { ok: true, reportPath: rep.outputAbsolutePath });\n } else {\n finish(ExitCode.validation, { ok: false, error: rep.error ?? \"report failed\" });\n }\n }\n\n if (sub === \"missing-artefacts\") {\n const rootAbs = resolveAnalysisRoot(repoRoot, rootKind, worktree);\n const ctxDir = path.join(rootAbs, \".gluecharm\", \"context\");\n const storage = createFileBackedWorkspaceState(repoRoot);\n const snap = readArtefactRunSnapshot(storage);\n const rows = listMissingArtefacts(ctxDir, rootAbs, snap);\n const ui = toMissingArtefactUiRows(rows, ctxDir, rootAbs);\n if (!flags.json) {\n console.log(JSON.stringify(ui, null, 2));\n }\n finish(ExitCode.ok, { ok: true, missingCount: rows.length });\n }\n\n if (sub === \"zero-reference\") {\n logErr(\n flags,\n \"[SRS-30] zero-reference remediation runs OpenCode agents per file; expect cost and runtime similar to the extension macro phase.\",\n );\n requireOpenCode(merged, flags);\n const agentsDir = resolveOpenCodeAgentsDir();\n assertAgentsDirExists(agentsDir);\n const storage = createFileBackedWorkspaceState(repoRoot);\n const { worktree: wtAce } = parseWorktreeFlag(pos.slice(2));\n const analysisRoot = resolveAdHocCheckoutRoot(repoRoot, storage, wtAce);\n const cov = readNonReferencedFilesFromRepositoryRoot(analysisRoot);\n if (!cov.ok) {\n finish(ExitCode.validation, { ok: false, error: cov.error });\n } else {\n const zrPaths = cov.paths;\n if (zrPaths.length === 0) {\n finish(ExitCode.ok, {\n ok: true,\n zeroReferenceCount: 0,\n message: \"No zero-reference paths in coverage JSON.\",\n });\n }\n const ctrl = new AbortController();\n const poolRes = await runZeroReferenceRemediationPool({\n workspaceRootAbs: repoRoot,\n coverageRepositoryRootAbs: analysisRoot,\n worktreeRoot: analysisRoot,\n paths: zrPaths,\n maxConcurrent: merged.pipelineOpenCode.maxConcurrentOpenCodeAgents,\n executable: merged.pipelineOpenCode.executable,\n argvTemplate: [...merged.pipelineOpenCode.argvTemplate],\n timeoutMs: merged.pipelineOpenCode.timeoutMs,\n abortSignal: ctrl.signal,\n diagnosticLog: (line) => logErr(flags, line),\n onAgentLaunched: () => noteOpenCodeAgentLaunched(),\n });\n const bad = poolRes.cancelled || poolRes.failures > 0;\n finish(bad ? ExitCode.validation : ExitCode.ok, {\n ok: !bad,\n completed: poolRes.completed,\n failures: poolRes.failures,\n cancelled: poolRes.cancelled,\n });\n }\n }\n\n finish(ExitCode.usage, { ok: false, error: `Unknown diagnose subcommand: ${sub ?? \"\"}` });\n }\n\n if (pos[0] === \"analysis\") {\n requireOpenCode(merged, flags);\n const synthesisOnly = positionals.includes(\"--synthesis-only\");\n const wantsUpload = positionals.includes(\"--upload\");\n const uploadSession = wantsUpload ? readCliSession() : undefined;\n if (wantsUpload && !uploadSession) {\n finish(ExitCode.auth, {\n ok: false,\n error:\n \"analysis --upload requires `easyspecs-cli auth login --email \u2026 --password \u2026` (or legacy `--ci` + EASYSPECS_EMAIL/PASSWORD).\",\n });\n }\n const skipBackendSync = !wantsUpload;\n const agentsDir = resolveOpenCodeAgentsDir();\n assertAgentsDirExists(agentsDir);\n const storage = createFileBackedWorkspaceState(repoRoot);\n const runBackendSyncImpl =\n wantsUpload && uploadSession\n ? async (): Promise<{ ok: boolean; message?: string }> => {\n const s = uploadSession;\n const snap = readAnalysisWorkspaceSnapshot(storage);\n const wsContextDir = path.join(repoRoot, \".gluecharm\", \"context\");\n const wtContextDir =\n snap?.adHocWorktreePath &&\n fs.existsSync(path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\"))\n ? path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\")\n : \"\";\n if (!wtContextDir) {\n return { ok: false, message: \"No worktree context to upload.\" };\n }\n const appId = getEasyspecsProjectIdFromRepoConfig(repoConfig)?.trim();\n if (!appId) {\n return {\n ok: false,\n message: \"Missing easyspecs.easyspecsProjectId in .easyspecs/config.json.\",\n };\n }\n let access = s.accessToken;\n const refresh = s.refreshToken;\n const requestJson = createAuthenticatedRequestJson({\n getApiBaseUrl: () => s.apiBaseUrl,\n getAccessToken: () => access,\n getRefreshToken: () => refresh,\n refreshSession: async () => {\n try {\n const r = await refreshTokenWithApi(s.apiBaseUrl, fetch, refresh);\n access = r.accessToken;\n writeCliSession({ ...s, accessToken: r.accessToken, refreshToken: r.refreshToken });\n return true;\n } catch {\n return false;\n }\n },\n });\n await validateApplicationExists(requestJson, appId);\n const paths = listContextFilesForUpload(wtContextDir);\n const up = await runContextSrsDiscoveryUpload({\n requestJson,\n applicationId: appId,\n useBatch: true,\n contextDir: wtContextDir,\n filePaths: paths,\n log: (line) => logErr(flags, line),\n });\n if (up.failed.length > 0) {\n return { ok: false, message: `${String(up.failed.length)} file(s) failed to upload.` };\n }\n return { ok: true, message: `Uploaded ${String(up.succeeded.length)} file(s).` };\n }\n : undefined;\n const ctrl = new AbortController();\n const deps = buildMacroOrchestrationDepsHeadless({\n storageContext: storage,\n repoRoot,\n agentsDirFs: agentsDir,\n macroConfig: merged.macroOrchestration,\n buildOpenCodeOptions: (checkout) => ({\n ...merged.pipelineOpenCode,\n }),\n log: (line) => logErr(flags, line),\n signal: ctrl.signal,\n synthesisOnly,\n skipBackendSync,\n runBackendSyncImpl,\n });\n const res = await runMacroAnalysisOrchestration(deps);\n finish(res.ok ? ExitCode.ok : res.cancelled ? ExitCode.cancelled : ExitCode.validation, {\n ok: res.ok,\n error: res.message,\n cancelled: res.cancelled,\n totalElapsedMs: res.totalElapsedMs,\n });\n }\n\n if (pos[0] === \"upload\" && (pos[1] === \"context\" || pos[1] === \"republish\")) {\n const sessRaw = readCliSession();\n if (sessRaw === undefined) {\n finish(ExitCode.auth, {\n ok: false,\n error: \"auth login first (`auth login --email \u2026 --password \u2026`, or legacy `--ci` + env)\",\n });\n }\n const sess = sessRaw as CliSessionFile;\n let ctxDir = path.join(repoRoot, \".gluecharm\", \"context\");\n if (pos[1] === \"republish\") {\n const fromEnv = process.env.EASYSPECS_UPLOAD_CONTEXT_DIR?.trim();\n if (fromEnv && fs.existsSync(path.join(fromEnv, \"..\"))) {\n ctxDir = path.resolve(fromEnv);\n } else {\n const storage = createFileBackedWorkspaceState(repoRoot);\n const snap = readAnalysisWorkspaceSnapshot(storage);\n const wt =\n snap?.adHocWorktreePath && fs.existsSync(path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\"))\n ? path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\")\n : \"\";\n if (!wt) {\n finish(ExitCode.misconfiguration, {\n ok: false,\n error:\n \"upload republish requires an analysis worktree with .gluecharm/context (`easyspecs-cli run synthesis` first), or set EASYSPECS_UPLOAD_CONTEXT_DIR.\",\n });\n }\n ctxDir = wt;\n }\n }\n const appIdRaw = getEasyspecsProjectIdFromRepoConfig(repoConfig)?.trim();\n if (!appIdRaw) {\n finish(ExitCode.misconfiguration, {\n ok: false,\n error: \"Missing easyspecs.easyspecsProjectId in .easyspecs/config.json.\",\n });\n }\n const applicationId = appIdRaw as string;\n let access = sess.accessToken;\n const refresh = sess.refreshToken;\n const requestJson = createAuthenticatedRequestJson({\n getApiBaseUrl: () => sess.apiBaseUrl,\n getAccessToken: () => access,\n getRefreshToken: () => refresh,\n refreshSession: async () => {\n try {\n const r = await refreshTokenWithApi(sess.apiBaseUrl, fetch, refresh);\n access = r.accessToken;\n writeCliSession({\n apiBaseUrl: sess.apiBaseUrl,\n accessToken: r.accessToken,\n refreshToken: r.refreshToken,\n });\n return true;\n } catch {\n return false;\n }\n },\n });\n await validateApplicationExists(requestJson, applicationId);\n const paths = listContextFilesForUpload(ctxDir);\n const up = await runContextSrsDiscoveryUpload({\n requestJson,\n applicationId,\n useBatch: true,\n contextDir: ctxDir,\n filePaths: paths,\n log: (line) => logErr(flags, line),\n });\n const failed = up.failed.length;\n if (failed === 0 && Object.keys(up.succeededIds).length > 0) {\n const mergeRes = mergeUploadIdsIntoIndexOnDisk(ctxDir, up.succeededIds);\n if (!mergeRes.ok) {\n logErr(flags, `[SRS-26] merge upload ids into index failed: ${mergeRes.message}`);\n }\n }\n finish(failed ? ExitCode.upload : ExitCode.ok, {\n ok: failed === 0,\n uploaded: up.succeeded.length,\n failed,\n });\n }\n\n if (pos[0] === \"ace\" && pos[1] === \"clear\") {\n const learnings = path.join(repoRoot, \".gluecharm\", \"context\", \"learnings\");\n if (!fs.existsSync(learnings)) {\n finish(ExitCode.ok, { ok: true, message: \"nothing to clear\" });\n }\n fs.rmSync(learnings, { recursive: true, force: true });\n finish(ExitCode.ok, { ok: true, message: `cleared ${learnings}` });\n }\n\n if (pos[0] === \"ace\" && pos[1] === \"learn\") {\n requireOpenCode(merged, flags);\n const { worktree } = parseWorktreeFlag(pos.slice(2));\n const root =\n worktree && fs.existsSync(path.join(worktree, \".opencode\", \"schemas\", \"ace\")) ? worktree : repoRoot;\n const contextDir = path.join(root, \".gluecharm\", \"context\");\n const traces = listAceTraceFiles(contextDir);\n if (traces.length === 0) {\n finish(ExitCode.ok, { ok: true, message: \"no traces\", traceCount: 0 });\n }\n let okCount = 0;\n for (const traceAbs of traces) {\n const res = await runAceOfflineLearnFromTrace(traceAbs, {\n worktreeRoot: root,\n executable: merged.openCodeExecutable,\n argvTemplate: [...merged.pipelineOpenCode.argvTemplate],\n timeoutMs: merged.pipelineOpenCode.timeoutMs,\n diagnosticLog: (line) => logErr(flags, line),\n });\n if (!res.ok) {\n finish(ExitCode.validation, { ok: false, error: res.message });\n }\n okCount += 1;\n }\n finish(ExitCode.ok, { ok: true, traceCount: okCount });\n }\n\n if (pos[0] === \"ace\" && pos[1] === \"auto-learn\") {\n requireOpenCode(merged, flags);\n const { worktree } = parseWorktreeFlag(pos.slice(2));\n const root = worktree && fs.existsSync(path.join(worktree, \".git\")) ? worktree : repoRoot;\n const contextDir = path.join(root, \".gluecharm\", \"context\");\n const pending = listPendingAceTraceFiles(contextDir, root);\n if (pending.length === 0) {\n finish(ExitCode.ok, { ok: true, pending: 0 });\n }\n const pool = await runAceAutoLearnPool({\n traceAbsolutePaths: pending,\n maxConcurrentOpenCodeAgents: merged.pipelineOpenCode.maxConcurrentOpenCodeAgents,\n baseOpts: {\n worktreeRoot: root,\n executable: merged.openCodeExecutable,\n argvTemplate: [...merged.pipelineOpenCode.argvTemplate],\n timeoutMs: merged.pipelineOpenCode.timeoutMs,\n diagnosticLog: (line) => logErr(flags, line),\n },\n });\n finish(pool.failed ? ExitCode.validation : ExitCode.ok, {\n ok: pool.failed === 0,\n completed: pool.completed,\n failed: pool.failed,\n cancelled: pool.cancelled,\n });\n }\n\n printHelp();\n finish(ExitCode.usage, { ok: false, error: `unknown command: ${cmd}` });\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n logErr(flags, msg);\n finish(ExitCode.internal, { ok: false, error: msg });\n }\n}\n\nvoid main();\n", "import type { DeploymentEnvironment } from \"../config/easyspecsConfigJson\";\n\nexport type ParsedGlobalFlags = {\n cwd: string;\n ci: boolean;\n json: boolean;\n verbose: boolean;\n configPath?: string;\n apiBaseUrl?: string;\n /** Overrides `easyspecs.deploymentEnvironment` for this process (SRS-43). */\n environment?: DeploymentEnvironment;\n /** Absolute or repo-relative path to `cli-session.json` for this run (wins over config; e.g. extension delegate). */\n sessionPath?: string;\n promote?: boolean;\n help: boolean;\n version: boolean;\n};\n\nexport type ParsedCli = {\n flags: ParsedGlobalFlags;\n /** Remaining tokens after global flags (e.g. `[\"diagnose\",\"reference-coverage\"]`). */\n positionals: string[];\n};\n\nfunction isGlobalFlag(s: string): boolean {\n return (\n s === \"--cwd\" ||\n s === \"--ci\" ||\n s === \"--json\" ||\n s === \"--verbose\" ||\n s === \"--config\" ||\n s === \"--api-base-url\" ||\n s === \"--session-path\" ||\n s === \"--environment\" ||\n s === \"--env\" ||\n s === \"--promote\" ||\n s === \"--no-promote\" ||\n s === \"--help\" ||\n s === \"-h\" ||\n s === \"--version\" ||\n s === \"-V\"\n );\n}\n\nfunction parseEnvironmentToken(raw: string | undefined): DeploymentEnvironment {\n const t = raw?.trim().toLowerCase();\n if (t === \"production\" || t === \"staging\") {\n return t;\n }\n throw new Error(`Invalid --environment: ${raw ?? \"(missing)\"} (expected production or staging)`);\n}\n\nexport function parseArgv(argv: readonly string[]): ParsedCli {\n const flags: ParsedGlobalFlags = {\n cwd: process.cwd(),\n ci: false,\n json: false,\n verbose: false,\n help: false,\n version: false,\n };\n const positionals: string[] = [];\n for (let i = 0; i < argv.length; i += 1) {\n const a = argv[i] ?? \"\";\n if (!isGlobalFlag(a) && !a.startsWith(\"-\")) {\n positionals.push(...argv.slice(i));\n break;\n }\n if (a === \"--cwd\" && argv[i + 1]) {\n flags.cwd = argv[i + 1] ?? flags.cwd;\n i += 1;\n continue;\n }\n if (a === \"--config\" && argv[i + 1]) {\n flags.configPath = argv[i + 1];\n i += 1;\n continue;\n }\n if (a === \"--api-base-url\" && argv[i + 1]) {\n flags.apiBaseUrl = argv[i + 1];\n i += 1;\n continue;\n }\n if (a === \"--session-path\" && argv[i + 1]) {\n flags.sessionPath = argv[i + 1];\n i += 1;\n continue;\n }\n if ((a === \"--environment\" || a === \"--env\") && argv[i + 1]) {\n flags.environment = parseEnvironmentToken(argv[i + 1]);\n i += 1;\n continue;\n }\n if (a === \"--ci\") {\n flags.ci = true;\n continue;\n }\n if (a === \"--json\") {\n flags.json = true;\n continue;\n }\n if (a === \"--verbose\") {\n flags.verbose = true;\n continue;\n }\n if (a === \"--promote\") {\n flags.promote = true;\n continue;\n }\n if (a === \"--no-promote\") {\n flags.promote = false;\n continue;\n }\n if (a === \"--help\" || a === \"-h\") {\n flags.help = true;\n continue;\n }\n if (a === \"--version\" || a === \"-V\") {\n flags.version = true;\n continue;\n }\n if (a.startsWith(\"-\")) {\n throw new Error(`Unknown flag: ${a}`);\n }\n }\n return { flags, positionals };\n}\n", "/** @gluecharm-lab/easyspecs-cli exit codes (SRS-39 R1.3). */\nexport const ExitCode = {\n ok: 0,\n usage: 2,\n misconfiguration: 3,\n opencode: 4,\n validation: 5,\n auth: 6,\n upload: 7,\n cancelled: 8,\n internal: 99,\n} as const;\n", "export type JsonReportEnvelope = {\n ok: boolean;\n command: string;\n durationMs: number;\n analysisWorktreePath?: string;\n error?: string;\n [key: string]: unknown;\n};\n\nexport function printJsonLine(envelope: JsonReportEnvelope): void {\n process.stdout.write(`${JSON.stringify(envelope)}\\n`);\n}\n", "import * as fs from \"node:fs\";\nimport * as path from \"path\";\nimport { findGitRepoRoot } from \"../repositoryProvenance\";\nimport { setApiBaseUrlExtensionRoot } from \"../apiBaseUrlResolve\";\nimport type { ParsedGlobalFlags } from \"./argv\";\nimport type { EasyspecsConfigRoot } from \"../config/easyspecsConfigJson\";\nimport { resolveEasyspecsApiBaseUrlForCli } from \"../easyspecsApiBaseUrlCli\";\n\nfunction thisDir(): string {\n return __dirname;\n}\n\n/** Repository root (Git) for `--cwd`. */\nexport function resolveRepoRoot(flags: ParsedGlobalFlags): string {\n const abs = path.resolve(flags.cwd);\n const git = findGitRepoRoot(abs);\n return git ?? abs;\n}\n\n/**\n * Extension / monorepo root (for `<root>/.env` and `resources/opencode-agents` when running from `out/cli`).\n */\nexport function resolveExtensionRoot(): string {\n const env = process.env.EASYSPECS_EXTENSION_ROOT?.trim();\n if (env) {\n return path.resolve(env);\n }\n const here = thisDir();\n if (here.includes(`${path.sep}packages${path.sep}cli${path.sep}dist`)) {\n return path.resolve(here, \"..\", \"..\", \"..\");\n }\n return path.resolve(here, \"..\", \"..\");\n}\n\n/** OpenCode agent templates: `resources/opencode-agents` next to built CLI or extension. */\nexport function resolveOpenCodeAgentsDir(): string {\n const resEnv = process.env.EASYSPECS_CLI_RESOURCES?.trim();\n if (resEnv) {\n return path.join(path.resolve(resEnv), \"opencode-agents\");\n }\n const here = thisDir();\n if (here.includes(`${path.sep}packages${path.sep}cli${path.sep}dist`)) {\n return path.join(here, \"..\", \"resources\", \"opencode-agents\");\n }\n return path.join(resolveExtensionRoot(), \"resources\", \"opencode-agents\");\n}\n\nexport function initApiBaseUrlForCli(repoRoot: string, flags: ParsedGlobalFlags, config: EasyspecsConfigRoot): string {\n const extensionRoot = resolveExtensionRoot();\n setApiBaseUrlExtensionRoot(extensionRoot);\n return resolveEasyspecsApiBaseUrlForCli({\n flagApiBaseUrl: flags.apiBaseUrl,\n flagEnvironment: flags.environment,\n config,\n });\n}\n\nexport function assertAgentsDirExists(agentsDir: string): void {\n if (!fs.existsSync(agentsDir)) {\n throw new Error(\n `OpenCode agents directory missing: ${agentsDir}. Set EASYSPECS_EXTENSION_ROOT or EASYSPECS_CLI_RESOURCES, or run \\`npm run build:cli\\` to copy resources.`,\n );\n }\n}\n", "/**\n * SRS-15: resolve Git metadata for `index-application-context.json` `repository` block.\n */\n\nimport { execFileSync } from \"node:child_process\";\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { ApplicationContextFile, RemoteProvider, RepositoryProvenance } from \"./srsModel\";\n\nexport function runGit(cwd: string, args: string[]): string | undefined {\n try {\n return execFileSync(\"git\", args, {\n cwd,\n encoding: \"utf8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n maxBuffer: 1024 * 1024,\n }).trim();\n } catch {\n return undefined;\n }\n}\n\nexport function findGitRepoRoot(startDir: string): string | undefined {\n let dir = path.resolve(startDir);\n for (;;) {\n const gitEntry = path.join(dir, \".git\");\n if (fs.existsSync(gitEntry)) {\n return dir;\n }\n const parent = path.dirname(dir);\n if (parent === dir) {\n return undefined;\n }\n dir = parent;\n }\n}\n\nfunction stripDotGit(s: string): string {\n return s.replace(/\\.git$/i, \"\").replace(/\\/$/, \"\");\n}\n\nfunction hostToProvider(host: string): RemoteProvider {\n const h = host.toLowerCase();\n if (h === \"github.com\" || h.endsWith(\".github.com\")) {\n return \"github\";\n }\n if (h === \"gitlab.com\" || h.endsWith(\".gitlab.com\") || h.includes(\"gitlab\")) {\n return \"gitlab\";\n }\n if (h === \"bitbucket.org\" || h.endsWith(\".bitbucket.org\")) {\n return \"bitbucket\";\n }\n if (h === \"dev.azure.com\" || h === \"ssh.dev.azure.com\" || h.endsWith(\".visualstudio.com\")) {\n return \"azure_devops\";\n }\n return \"other\";\n}\n\n/**\n * Best-effort parse of `git remote get-url` output \u2192 provider + canonical path (`org/repo` style).\n */\nexport function parseRemoteUrl(raw: string): { remoteProvider: RemoteProvider; remoteRepository: string } {\n const trimmed = raw.trim();\n if (!trimmed) {\n return { remoteProvider: \"unknown\", remoteRepository: \"unknown\" };\n }\n\n const scp = /^git@([^:]+):(.+)$/.exec(trimmed);\n if (scp) {\n const host = scp[1].toLowerCase();\n const repoPath = stripDotGit(scp[2].replace(/^\\/+/, \"\"));\n const remoteProvider = hostToProvider(host);\n return { remoteProvider, remoteRepository: repoPath || \"unknown\" };\n }\n\n if (trimmed.startsWith(\"ssh://\")) {\n try {\n const u = new URL(trimmed);\n const host = u.hostname.toLowerCase();\n let p = u.pathname.replace(/^\\/+/, \"\");\n p = stripDotGit(p);\n const remoteProvider = hostToProvider(host);\n if (remoteProvider === \"azure_devops\") {\n return { remoteProvider: \"azure_devops\", remoteRepository: p || \"unknown\" };\n }\n return { remoteProvider, remoteRepository: p || \"unknown\" };\n } catch {\n return { remoteProvider: \"unknown\", remoteRepository: \"unknown\" };\n }\n }\n\n if (trimmed.startsWith(\"http://\") || trimmed.startsWith(\"https://\")) {\n try {\n const u = new URL(trimmed);\n const host = u.hostname.toLowerCase();\n const remoteProvider = hostToProvider(host);\n if (remoteProvider === \"azure_devops\") {\n return parseAzureDevOpsHttps(u);\n }\n let p = u.pathname.replace(/^\\/+/, \"\");\n p = stripDotGit(p);\n return { remoteProvider, remoteRepository: p || \"unknown\" };\n } catch {\n return { remoteProvider: \"unknown\", remoteRepository: \"unknown\" };\n }\n }\n\n return { remoteProvider: \"unknown\", remoteRepository: \"unknown\" };\n}\n\nfunction parseAzureDevOpsHttps(u: URL): { remoteProvider: RemoteProvider; remoteRepository: string } {\n const host = u.hostname.toLowerCase();\n const pathPart = u.pathname.replace(/^\\/+/, \"\").replace(/\\.git$/i, \"\");\n if (host === \"dev.azure.com\") {\n return { remoteProvider: \"azure_devops\", remoteRepository: pathPart || \"unknown\" };\n }\n if (host.endsWith(\".visualstudio.com\")) {\n const org = host.replace(/\\.visualstudio\\.com$/i, \"\");\n return {\n remoteProvider: \"azure_devops\",\n remoteRepository: pathPart ? `${org}/${pathPart}` : org || \"unknown\",\n };\n }\n return { remoteProvider: \"unknown\", remoteRepository: \"unknown\" };\n}\n\nexport interface BuildRepositoryProvenanceOptions {\n /**\n * Branch short name in the **primary** repository when the EasySpecs analysis worktree was created\n * (`HEAD` before `git worktree add --detach`). When set, overrides `symbolic-ref` on the checkout\n * (which would reflect a later branch checkout inside the worktree, or nothing when still detached).\n */\n sourceBranchAtWorktreeCreation?: string;\n}\n\nexport function buildRepositoryProvenance(\n repoRoot: string,\n opts?: BuildRepositoryProvenanceOptions,\n): RepositoryProvenance | undefined {\n const topRaw = runGit(repoRoot, [\"rev-parse\", \"--show-toplevel\"]);\n if (!topRaw) {\n return undefined;\n }\n const topResolved = path.resolve(topRaw.trim());\n const localName = path.basename(topResolved);\n\n const headRaw = runGit(repoRoot, [\"rev-parse\", \"HEAD\"]);\n if (!headRaw) {\n return undefined;\n }\n const commit = headRaw.toLowerCase();\n if (!/^[0-9a-f]{40}$/.test(commit)) {\n return undefined;\n }\n\n const fromCreation = opts?.sourceBranchAtWorktreeCreation?.trim();\n let branch: string | undefined;\n if (fromCreation && fromCreation.length > 0) {\n branch = fromCreation;\n } else {\n const branchRaw = runGit(repoRoot, [\"symbolic-ref\", \"--short\", \"-q\", \"HEAD\"]);\n branch = branchRaw && branchRaw.length > 0 ? branchRaw : undefined;\n }\n\n let remoteProvider: RemoteProvider = \"unknown\";\n let remoteRepository = \"unknown\";\n let originUrl: string | undefined;\n\n const urlRaw = runGit(repoRoot, [\"remote\", \"get-url\", \"origin\"]);\n if (urlRaw) {\n originUrl = urlRaw;\n const parsed = parseRemoteUrl(urlRaw);\n remoteProvider = parsed.remoteProvider;\n remoteRepository = parsed.remoteRepository;\n }\n\n const out: RepositoryProvenance = {\n localName,\n remoteProvider,\n remoteRepository,\n commit,\n };\n if (branch) {\n out.branch = branch;\n }\n if (originUrl) {\n out.originUrl = originUrl;\n }\n return out;\n}\n\nexport function attachRepositoryProvenance(\n doc: ApplicationContextFile,\n contextDir: string,\n opts?: BuildRepositoryProvenanceOptions,\n): void {\n const repoRoot = findGitRepoRoot(contextDir);\n if (!repoRoot) {\n return;\n }\n const p = buildRepositoryProvenance(repoRoot, opts);\n if (p) {\n doc.repository = p;\n }\n}\n", "import * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as vscode from \"vscode\";\nimport { parseDotEnvContent } from \"./envDotEnvParse\";\n\n/** Same env keys as easyspecs.ai-frontend `getApiBaseUrl()` (Vite). */\nconst ENV_KEYS = [\"VITE_SYSTEM_MANAGER_API_URL\", \"VITE_API_BASE_URL\"] as const;\n\nlet extensionRoot: string | undefined;\n/** Parsed `<extensionRoot>/.env` once per root (empty object if missing). */\nlet cachedExtensionDotEnv: Record<string, string> | null = null;\n\nexport function setApiBaseUrlExtensionRoot(extensionFsPath: string): void {\n extensionRoot = extensionFsPath;\n cachedExtensionDotEnv = null;\n}\n\nfunction stripTrailingSlash(url: string): string {\n return url.replace(/\\/$/, \"\");\n}\n\nfunction pickFromMap(map: Record<string, string> | undefined): string {\n if (!map) {\n return \"\";\n }\n for (const key of ENV_KEYS) {\n const v = map[key]?.trim();\n if (v) {\n return stripTrailingSlash(v);\n }\n }\n return \"\";\n}\n\nfunction readDotEnvFile(filePath: string): Record<string, string> | undefined {\n try {\n if (!fs.existsSync(filePath)) {\n return undefined;\n }\n const content = fs.readFileSync(filePath, \"utf8\");\n return parseDotEnvContent(content);\n } catch {\n return undefined;\n }\n}\n\n/** Headless resolver (CLI, tests). Extension {@link resolveApiBaseUrl} delegates here. */\nexport type ResolveApiBaseUrlHeadlessInput = {\n /** VS Code `easyspecs.apiBaseUrl` or CLI `--api-base-url` / `EASYSPECS_API_BASE_URL`. */\n readonly settingsApiBaseUrl?: string;\n /**\n * Pre-parsed `<extensionRoot>/.env` (optional). When omitted and **extensionRoot** is set,\n * callers may rely on extension global cache via {@link resolveApiBaseUrl} only.\n */\n readonly extensionDotEnv?: Record<string, string>;\n /** Installed extension directory \u2014 used with **extensionDotEnv** or read from disk when map absent. */\n readonly extensionRoot?: string;\n /** Repository / workspace root \u2014 `<root>/.env` last (matches first workspace folder). */\n readonly workspaceFolderPath?: string;\n};\n\n/**\n * API origin for system manager (auth + uploads).\n * Precedence: **settingsApiBaseUrl** \u2192 `process.env` (Vite keys + `EASYSPECS_API_BASE_URL`) \u2192 extension `.env` \u2192 workspace `.env`.\n */\nexport function resolveApiBaseUrlHeadless(input: ResolveApiBaseUrlHeadlessInput): string {\n const fromSettings = input.settingsApiBaseUrl?.trim() ?? \"\";\n if (fromSettings.length > 0) {\n return stripTrailingSlash(fromSettings);\n }\n\n const easyspecsEnv = process.env.EASYSPECS_API_BASE_URL?.trim();\n if (easyspecsEnv) {\n return stripTrailingSlash(easyspecsEnv);\n }\n\n for (const key of ENV_KEYS) {\n const v = process.env[key]?.trim();\n if (v) {\n return stripTrailingSlash(v);\n }\n }\n\n const extMap =\n input.extensionDotEnv ??\n (input.extensionRoot ? readDotEnvFile(path.join(input.extensionRoot, \".env\")) : undefined);\n const fromExt = pickFromMap(extMap);\n if (fromExt) {\n return fromExt;\n }\n\n if (input.workspaceFolderPath) {\n const fromWs = pickFromMap(readDotEnvFile(path.join(input.workspaceFolderPath, \".env\")));\n if (fromWs) {\n return fromWs;\n }\n }\n\n return \"\";\n}\n\n/**\n * API origin for system manager (auth + future calls).\n * Precedence: `easyspecs.apiBaseUrl` \u2192 `process.env` (Vite keys) \u2192 `<extension>/.env` \u2192 first workspace `/.env`.\n */\nexport function resolveApiBaseUrl(): string {\n const fromSettings = vscode.workspace\n .getConfiguration(\"easyspecs\")\n .get<string>(\"apiBaseUrl\", \"\")\n .trim();\n\n if (extensionRoot) {\n if (cachedExtensionDotEnv === null) {\n const parsed = readDotEnvFile(path.join(extensionRoot, \".env\"));\n cachedExtensionDotEnv = parsed ?? {};\n }\n }\n\n const wf = vscode.workspace.workspaceFolders?.[0]?.uri.fsPath;\n\n return resolveApiBaseUrlHeadless({\n settingsApiBaseUrl: fromSettings,\n extensionDotEnv: extensionRoot ? (cachedExtensionDotEnv ?? undefined) : undefined,\n extensionRoot: extensionRoot ?? undefined,\n workspaceFolderPath: wf,\n });\n}\n", "/**\n * Built-in EasySpecs System Manager origins (SRS-43 R33, D9).\n * No trailing slash.\n */\nexport const PRODUCTION_SYSTEM_MANAGER_URL = \"https://api.easyspecs.ai\";\n\n/** Gluecharm staging System Manager (matches frontend `.env.staging` conventions). */\nexport const STAGING_SYSTEM_MANAGER_URL = \"https://system-manager-api.staging.gluecharm.info:8092\";\n", "/**\n * CLI-only System Manager origin resolution (SRS-43 R30, R34): flags + config.json + built-in table \u2014 no `.env` / process.env product keys.\n */\n\nimport type { DeploymentEnvironment, EasyspecsConfigRoot } from \"./config/easyspecsConfigJson\";\nimport { PRODUCTION_SYSTEM_MANAGER_URL, STAGING_SYSTEM_MANAGER_URL } from \"./easyspecsBuiltInApiUrls\";\n\nfunction stripTrailingSlash(url: string): string {\n return url.replace(/\\/$/, \"\");\n}\n\nexport type ResolveEasyspecsApiBaseUrlCliInput = {\n readonly flagApiBaseUrl?: string;\n readonly flagEnvironment?: DeploymentEnvironment;\n readonly config: EasyspecsConfigRoot;\n};\n\nexport function resolveEasyspecsApiBaseUrlForCli(input: ResolveEasyspecsApiBaseUrlCliInput): string {\n const fromFlag = input.flagApiBaseUrl?.trim();\n if (fromFlag) {\n return stripTrailingSlash(fromFlag);\n }\n const fromFile = input.config.easyspecs?.apiBaseUrl?.trim();\n if (fromFile) {\n return stripTrailingSlash(fromFile);\n }\n const eff: DeploymentEnvironment =\n input.flagEnvironment ?? input.config.easyspecs?.deploymentEnvironment ?? \"production\";\n return eff === \"staging\" ? STAGING_SYSTEM_MANAGER_URL : PRODUCTION_SYSTEM_MANAGER_URL;\n}\n", "/**\n * Map `easyspecs.openCodeRuntime` into OpenCode child process env (SRS-43 R13).\n */\n\nimport * as path from \"node:path\";\nimport type { EasyspecsConfigRoot, ProviderId } from \"./easyspecsConfigJson\";\n\nconst PROVIDER_TO_ENV: Record<ProviderId, string> = {\n anthropic: \"ANTHROPIC_API_KEY\",\n openai: \"OPENAI_API_KEY\",\n openrouter: \"OPENROUTER_API_KEY\",\n google: \"GOOGLE_API_KEY\",\n opencode: \"OPENCODE_API_KEY\",\n};\n\n/**\n * Non-empty entries suitable for `spawn` env merge (keys only when apiKey set).\n * When **repoRoot** is set and **`credentialsPath`** is a non-empty string, sets **`OPENCODE_AUTH_PATH`**\n * to an absolute path so OpenCode reads/writes auth beside the repo (see OpenCode `OPENCODE_AUTH_PATH`).\n */\nexport function buildOpenCodeProviderEnvFromConfig(\n cfg: EasyspecsConfigRoot,\n repoRoot?: string,\n): Record<string, string> {\n const out: Record<string, string> = {};\n const prov = cfg.easyspecs?.openCodeRuntime?.providers;\n if (prov) {\n for (const id of Object.keys(PROVIDER_TO_ENV) as ProviderId[]) {\n const envName = PROVIDER_TO_ENV[id];\n const key = prov[id]?.apiKey?.trim();\n if (key) {\n out[envName] = key;\n }\n }\n }\n\n const raw = cfg.easyspecs?.openCodeRuntime?.credentialsPath;\n if (repoRoot && typeof raw === \"string\") {\n const t = raw.trim();\n if (t.length > 0) {\n out.OPENCODE_AUTH_PATH = path.isAbsolute(t) ? path.normalize(t) : path.resolve(repoRoot, t);\n }\n }\n\n return out;\n}\n", "import type { ContextArtefactPipelineOpenCodeOptions } from \"../analysis/contextArtefactPipeline\";\nimport type { MacroOrchestrationConfig } from \"../analysis/macroAnalysisOrchestrator\";\nimport type { EasyspecsConfigRoot } from \"../config/easyspecsConfigJson\";\nimport { buildOpenCodeProviderEnvFromConfig } from \"../config/openCodeProviderEnv\";\n\n/** Keep in sync with `package.json` default `easyspecs.analysis.openCodeTestArgv`. */\nexport const DEFAULT_OPEN_CODE_TEST_ARGV = [\n \"run\",\n \"--agent\",\n \"{agentId}\",\n \"Execute the task described in the attached EasySpecs prompt file.\",\n \"-f\",\n \"{promptFile}\",\n] as const;\n\nexport type CliJsonFile = {\n apiBaseUrl?: string;\n easyspecs?: {\n apiBaseUrl?: string;\n /** EasySpecs application (project) UUID \u2014 persisted in **`.easyspecs/config.json`** by tooling. */\n easyspecsProjectId?: string;\n /** Optional primary remote URL for reference (git remote\u2013style). */\n defaultGitRemoteUrl?: string;\n /**\n * Repo-relative or absolute path to **`cli-session.json`** (access/refresh tokens after **`auth login`**).\n * Empty uses **`~/.easyspecs/cli-session.json`**. Global **`--session-path`** on the CLI overrides for that process (extension delegate).\n */\n cliSessionPath?: string;\n openCode?: { executable?: string; skipCredentialsCheck?: boolean };\n analysis?: {\n /** SRS-35 / config.json \u2014 optional; when absent, VS Code settings apply. */\n ace?: {\n enabled?: boolean;\n offlineLearnAfterSameSessionTrace?: boolean;\n };\n openCodeTestArgv?: string[];\n openCodeTestTimeoutMs?: number;\n listJsonSchemaRepairAttempts?: number;\n markdownEvidenceRepairAttempts?: number;\n markdownOpenQuestionIterations?: number;\n maxConcurrentOpenCodeAgents?: number;\n promoteContextToWorkspace?: boolean;\n };\n orchestration?: {\n initialDelayMs?: number;\n backoffMultiplier?: number;\n maxDelayMs?: number;\n maxOuterIterationsPerPhase?: number;\n maxMacroPingPongCycles?: number;\n synthesisRemediationShareBackoff?: boolean;\n };\n };\n};\n\nexport type MergedCliSettings = {\n readonly apiBaseUrl: string;\n readonly openCodeExecutable: string;\n readonly openCodeSkipCredentialsCheck: boolean;\n readonly promoteContextToWorkspace: boolean;\n readonly ci: boolean;\n /** Injected into OpenCode child `process.env` (SRS-43 R13); never log values. */\n readonly openCodeChildEnv: Record<string, string>;\n readonly pipelineOpenCode: Pick<\n ContextArtefactPipelineOpenCodeOptions,\n | \"executable\"\n | \"argvTemplate\"\n | \"timeoutMs\"\n | \"listJsonSchemaRepairAttempts\"\n | \"markdownEvidenceRepairAttempts\"\n | \"markdownOpenQuestionIterations\"\n | \"maxConcurrentOpenCodeAgents\"\n | \"openCodeChildEnv\"\n | \"projectConfigOverlay\"\n >;\n readonly macroOrchestration: MacroOrchestrationConfig;\n};\n\nconst CI_DEFAULT_MAX_OUTER = 3;\n\n/**\n * Merge **SRS-43** `config.json` (loaded + defaulted) with CLI flag overrides only \u2014 **no** `process.env` product keys (**R34**).\n */\nexport function mergeEasyspecsCliSettings(\n cfg: EasyspecsConfigRoot,\n overrides: {\n ci?: boolean;\n apiBaseUrl?: string;\n openCodeExecutable?: string;\n argvTemplate?: string[];\n timeoutMs?: number;\n maxConcurrentOpenCodeAgents?: number;\n maxOuterIterationsPerPhase?: number;\n promote?: boolean;\n /** Resolves `easyspecs.openCodeRuntime.credentialsPath` for `OPENCODE_AUTH_PATH`. */\n repoRoot?: string;\n } = {},\n): MergedCliSettings {\n const es = cfg.easyspecs ?? {};\n const analysis = es.analysis ?? {};\n const orch = es.orchestration ?? {};\n const rt = es.openCodeRuntime;\n\n const ci = overrides.ci === true;\n\n const apiBaseUrl =\n overrides.apiBaseUrl?.trim() ||\n (typeof es.apiBaseUrl === \"string\" ? es.apiBaseUrl.trim() : \"\") ||\n \"\";\n\n const openCodeExecutable =\n overrides.openCodeExecutable?.trim() ||\n es.openCode?.executable?.trim() ||\n rt?.executable?.trim() ||\n \"opencode\";\n\n const openCodeSkipCredentialsCheck =\n es.openCode?.skipCredentialsCheck === true || rt?.skipCredentialsCheck === true;\n\n let argvTemplate =\n overrides.argvTemplate ??\n (rt?.run?.argvTemplate &&\n rt.run.argvTemplate.length > 0 &&\n rt.run.argvTemplate.every((x) => typeof x === \"string\")\n ? [...rt.run.argvTemplate]\n : undefined) ??\n (Array.isArray(analysis.openCodeTestArgv) &&\n analysis.openCodeTestArgv.length > 0 &&\n analysis.openCodeTestArgv.every((x) => typeof x === \"string\")\n ? (analysis.openCodeTestArgv as string[])\n : [...DEFAULT_OPEN_CODE_TEST_ARGV]);\n\n const timeoutMs =\n overrides.timeoutMs ??\n rt?.run?.timeoutMs ??\n analysis.openCodeTestTimeoutMs ??\n 600_000;\n\n const listJsonSchemaRepairAttempts =\n rt?.coordinationRepairs?.listJsonSchemaRepairAttempts ??\n analysis.listJsonSchemaRepairAttempts ??\n 1;\n const markdownEvidenceRepairAttempts =\n rt?.coordinationRepairs?.markdownEvidenceRepairAttempts ??\n analysis.markdownEvidenceRepairAttempts ??\n 2;\n const markdownOpenQuestionIterations =\n rt?.coordinationRepairs?.markdownOpenQuestionIterations ??\n analysis.markdownOpenQuestionIterations ??\n 5;\n\n const maxConcurrentOpenCodeAgents =\n overrides.maxConcurrentOpenCodeAgents ??\n rt?.pool?.maxConcurrentAgents ??\n analysis.maxConcurrentOpenCodeAgents ??\n 30;\n\n const promoteContextToWorkspace =\n overrides.promote === false\n ? false\n : overrides.promote === true\n ? true\n : analysis.promoteContextToWorkspace !== false;\n\n let maxOuter = overrides.maxOuterIterationsPerPhase ?? orch.maxOuterIterationsPerPhase ?? 0;\n\n if (ci && maxOuter === 0) {\n maxOuter = CI_DEFAULT_MAX_OUTER;\n }\n\n const macroOrchestration: MacroOrchestrationConfig = {\n initialDelayMs: orch.initialDelayMs ?? 30_000,\n backoffMultiplier: orch.backoffMultiplier ?? 2,\n maxDelayMs: orch.maxDelayMs ?? 480_000,\n maxOuterIterationsPerPhase: maxOuter,\n maxMacroPingPongCycles: orch.maxMacroPingPongCycles ?? 5,\n synthesisRemediationShareBackoff: orch.synthesisRemediationShareBackoff !== false,\n };\n\n const openCodeChildEnv = buildOpenCodeProviderEnvFromConfig(cfg, overrides.repoRoot);\n const projectConfigOverlay = cfg.easyspecs?.openCodeRuntime?.projectConfigOverlay;\n\n return {\n apiBaseUrl,\n openCodeExecutable,\n openCodeSkipCredentialsCheck,\n promoteContextToWorkspace,\n ci,\n openCodeChildEnv,\n pipelineOpenCode: {\n executable: openCodeExecutable,\n argvTemplate,\n timeoutMs,\n listJsonSchemaRepairAttempts,\n markdownEvidenceRepairAttempts,\n markdownOpenQuestionIterations,\n maxConcurrentOpenCodeAgents,\n openCodeChildEnv,\n projectConfigOverlay,\n },\n macroOrchestration,\n };\n}\n", "import type { MergedCliSettings } from \"./cliSettings\";\n\n/** Public-safe merged settings snapshot for `doctor --inspect-config` / `--json` (SRS-43 R17). */\nexport function redactMergedCliSettingsForDump(merged: MergedCliSettings): Record<string, unknown> {\n const child = merged.openCodeChildEnv;\n const childRedacted =\n child && Object.keys(child).length > 0\n ? Object.fromEntries(Object.keys(child).map((k) => [k, \"(redacted)\"]))\n : {};\n return {\n ...merged,\n apiBaseUrl: merged.apiBaseUrl ? \"(set)\" : \"\",\n openCodeChildEnv: childRedacted,\n pipelineOpenCode: {\n ...merged.pipelineOpenCode,\n openCodeChildEnv: childRedacted,\n },\n };\n}\n", "/**\n * Read/write `<repoRoot>/.easyspecs/config.json` (SRS-43 R3, R6, \u00A76 M2).\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { CliJsonFile } from \"../cli/cliSettings\";\nimport {\n EASYSPECS_SETTINGS_ACE_KEY,\n EASYSPECS_SETTINGS_ACE_OFFLINE_AFTER_TRACE_KEY,\n} from \"../easySpecsWorkspaceSettingsCore\";\nimport {\n getDefaultEasyspecsConfig,\n mergeEasyspecsConfigDefaults,\n type EasyspecsConfigRoot,\n} from \"./easyspecsConfigJson\";\n\nconst DIRNAME = \".easyspecs\";\nconst CONFIG_BASENAME = \"config.json\";\nconst LEGACY_CLI_JSON = \"cli.json\";\nconst LEGACY_SETTINGS_JSON = \"settings.json\";\n\nexport function easyspecsConfigPath(repoRoot: string): string {\n return path.join(repoRoot, DIRNAME, CONFIG_BASENAME);\n}\n\nexport function easyspecsLegacyCliJsonPath(repoRoot: string): string {\n return path.join(repoRoot, DIRNAME, LEGACY_CLI_JSON);\n}\n\nexport function easyspecsLegacySettingsJsonPath(repoRoot: string): string {\n return path.join(repoRoot, DIRNAME, LEGACY_SETTINGS_JSON);\n}\n\nfunction easyspecsDir(repoRoot: string): string {\n return path.join(repoRoot, DIRNAME);\n}\n\nfunction stripTrailingSlash(url: string): string {\n return url.replace(/\\/$/, \"\");\n}\n\nexport class EasyspecsConfigInvalidJsonError extends Error {\n constructor(\n readonly filePath: string,\n readonly cause?: unknown,\n ) {\n super(`Invalid JSON in ${filePath}${cause instanceof Error ? `: ${cause.message}` : \"\"}`);\n this.name = \"EasyspecsConfigInvalidJsonError\";\n }\n}\n\n/**\n * Parse raw UTF-8 JSON or throw {@link EasyspecsConfigInvalidJsonError}.\n */\nexport function parseEasyspecsConfigJson(raw: string, filePath: string): EasyspecsConfigRoot {\n try {\n const parsed = JSON.parse(raw) as unknown;\n if (parsed === null || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n throw new EasyspecsConfigInvalidJsonError(filePath);\n }\n return mergeEasyspecsConfigDefaults(getDefaultEasyspecsConfig(), parsed as Partial<EasyspecsConfigRoot>);\n } catch (e) {\n if (e instanceof EasyspecsConfigInvalidJsonError) {\n throw e;\n }\n throw new EasyspecsConfigInvalidJsonError(filePath, e);\n }\n}\n\n/** Read and merge defaults. Throws on invalid JSON or unreadable file. */\nexport function readEasyspecsConfig(repoRoot: string): EasyspecsConfigRoot {\n const p = easyspecsConfigPath(repoRoot);\n const raw = fs.readFileSync(p, \"utf8\");\n return parseEasyspecsConfigJson(raw, p);\n}\n\n/**\n * Convert legacy `.easyspecs/cli.json` into a partial {@link EasyspecsConfigRoot} for M2 import.\n */\nexport function cliJsonFileToConfigPartial(legacy: CliJsonFile): Partial<EasyspecsConfigRoot> {\n const es = legacy.easyspecs ?? {};\n const analysis = es.analysis ?? {};\n const orch = es.orchestration ?? {};\n const partial: Partial<EasyspecsConfigRoot> = {\n easyspecs: {\n apiBaseUrl: legacy.apiBaseUrl ?? es.apiBaseUrl ?? \"\",\n openCode: es.openCode,\n analysis: {\n openCodeTestArgv: analysis.openCodeTestArgv,\n openCodeTestTimeoutMs: analysis.openCodeTestTimeoutMs,\n listJsonSchemaRepairAttempts: analysis.listJsonSchemaRepairAttempts,\n markdownEvidenceRepairAttempts: analysis.markdownEvidenceRepairAttempts,\n markdownOpenQuestionIterations: analysis.markdownOpenQuestionIterations,\n maxConcurrentOpenCodeAgents: analysis.maxConcurrentOpenCodeAgents,\n promoteContextToWorkspace: analysis.promoteContextToWorkspace,\n },\n orchestration: {\n initialDelayMs: orch.initialDelayMs,\n backoffMultiplier: orch.backoffMultiplier,\n maxDelayMs: orch.maxDelayMs,\n maxOuterIterationsPerPhase: orch.maxOuterIterationsPerPhase,\n maxMacroPingPongCycles: orch.maxMacroPingPongCycles,\n synthesisRemediationShareBackoff: orch.synthesisRemediationShareBackoff,\n },\n },\n };\n return partial;\n}\n\nfunction atomicWriteFile(targetPath: string, contents: string): void {\n const dir = path.dirname(targetPath);\n fs.mkdirSync(dir, { recursive: true });\n const tmp = path.join(dir, `.${path.basename(targetPath)}.${process.pid}.${Date.now()}.tmp`);\n fs.writeFileSync(tmp, contents, \"utf8\");\n fs.renameSync(tmp, targetPath);\n}\n\n/**\n * Full defaults merged with legacy **`cli.json`** / **`settings.json`** (same as first-time **`ensureEasyspecsConfig`** write).\n */\nexport function buildFreshEasyspecsConfigFromLegacy(\n repoRoot: string,\n warnMigration?: (message: string) => void,\n): EasyspecsConfigRoot {\n let base = getDefaultEasyspecsConfig();\n const legacyPath = easyspecsLegacyCliJsonPath(repoRoot);\n\n if (fs.existsSync(legacyPath)) {\n try {\n const rawLegacy = fs.readFileSync(legacyPath, \"utf8\");\n const legacyParsed = JSON.parse(rawLegacy) as CliJsonFile;\n base = mergeEasyspecsConfigDefaults(base, cliJsonFileToConfigPartial(legacyParsed));\n warnMigration?.(`Imported settings from ${LEGACY_CLI_JSON} into ${CONFIG_BASENAME} (SRS-43 migration).`);\n } catch (e) {\n warnMigration?.(`Could not import ${LEGACY_CLI_JSON}: ${e instanceof Error ? e.message : String(e)}`);\n }\n }\n\n const settingsLegacyPath = easyspecsLegacySettingsJsonPath(repoRoot);\n if (fs.existsSync(settingsLegacyPath)) {\n try {\n const rawS = fs.readFileSync(settingsLegacyPath, \"utf8\");\n const leg = JSON.parse(rawS) as Record<string, unknown>;\n const ace: { enabled?: boolean; offlineLearnAfterSameSessionTrace?: boolean } = {};\n if (Object.prototype.hasOwnProperty.call(leg, EASYSPECS_SETTINGS_ACE_KEY)) {\n const v = leg[EASYSPECS_SETTINGS_ACE_KEY];\n if (typeof v === \"boolean\") {\n ace.enabled = v;\n }\n }\n if (Object.prototype.hasOwnProperty.call(leg, EASYSPECS_SETTINGS_ACE_OFFLINE_AFTER_TRACE_KEY)) {\n const v = leg[EASYSPECS_SETTINGS_ACE_OFFLINE_AFTER_TRACE_KEY];\n if (typeof v === \"boolean\") {\n ace.offlineLearnAfterSameSessionTrace = v;\n }\n }\n if (Object.keys(ace).length > 0) {\n base = mergeEasyspecsConfigDefaults(base, { easyspecs: { analysis: { ace } } });\n warnMigration?.(`Imported ACE toggles from ${LEGACY_SETTINGS_JSON} into ${CONFIG_BASENAME}.`);\n }\n } catch (e) {\n warnMigration?.(\n `Could not import ${LEGACY_SETTINGS_JSON}: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n\n return base;\n}\n\nexport type InitEasyspecsConfigResult = {\n readonly outcome: \"created\" | \"unchanged\" | \"overwritten\";\n readonly path: string;\n readonly config: EasyspecsConfigRoot;\n};\n\n/**\n * Write **`<repoRoot>/.easyspecs/config.json`** using defaults + legacy imports (same bootstrap as first **`ensureEasyspecsConfig`**).\n * When the file already exists and **overwrite** is false, returns **`unchanged`** without writing.\n */\nexport function initEasyspecsConfigFile(\n repoRoot: string,\n opts: { readonly overwrite: boolean; readonly warnMigration?: (message: string) => void },\n): InitEasyspecsConfigResult {\n const configPath = easyspecsConfigPath(repoRoot);\n const existed = fs.existsSync(configPath);\n\n if (existed && !opts.overwrite) {\n return { outcome: \"unchanged\", path: configPath, config: readEasyspecsConfig(repoRoot) };\n }\n\n const base = buildFreshEasyspecsConfigFromLegacy(repoRoot, opts.warnMigration);\n atomicWriteFile(configPath, `${JSON.stringify(base, null, 2)}\\n`);\n return {\n outcome: existed ? \"overwritten\" : \"created\",\n path: configPath,\n config: readEasyspecsConfig(repoRoot),\n };\n}\n\nexport type EnsureEasyspecsConfigOptions = {\n /** When false, do not create missing file or dirs (help/version). */\n readonly allowCreate: boolean;\n /** When true, stderr one-line notice if legacy cli.json was imported (M2). */\n readonly warnMigration?: (message: string) => void;\n};\n\n/**\n * Ensure `.easyspecs/config.json` exists with full defaults (R4), optionally importing legacy `cli.json` once (\u00A76).\n * When **allowCreate** is false, returns merged defaults + disk state unchanged if missing.\n */\nexport function ensureEasyspecsConfig(repoRoot: string, opts: EnsureEasyspecsConfigOptions): EasyspecsConfigRoot {\n const configPath = easyspecsConfigPath(repoRoot);\n const legacyPath = easyspecsLegacyCliJsonPath(repoRoot);\n\n if (fs.existsSync(configPath)) {\n if (fs.existsSync(legacyPath)) {\n opts.warnMigration?.(\n `${legacyPath} is deprecated alongside ${configPath}; prefer editing ${CONFIG_BASENAME} only.`,\n );\n }\n const settingsLegacy = easyspecsLegacySettingsJsonPath(repoRoot);\n if (fs.existsSync(settingsLegacy)) {\n opts.warnMigration?.(\n `${settingsLegacy} is deprecated; use easyspecs.analysis.ace in ${CONFIG_BASENAME} (see USER-MANUAL-SRS-35).`,\n );\n }\n return readEasyspecsConfig(repoRoot);\n }\n\n const base = buildFreshEasyspecsConfigFromLegacy(repoRoot, opts.warnMigration);\n\n if (!opts.allowCreate) {\n return base;\n }\n\n const body = `${JSON.stringify(base, null, 2)}\\n`;\n atomicWriteFile(configPath, body);\n return readEasyspecsConfig(repoRoot);\n}\n\nexport type UpdateEasyspecsConfigOptions = {\n readonly warnMigration?: (message: string) => void;\n};\n\n/**\n * Merge **patch** into the current **`config.json`** (or bootstrap from defaults + legacy imports if missing) and write atomically.\n */\nexport function updateEasyspecsConfig(\n repoRoot: string,\n patch: Partial<EasyspecsConfigRoot>,\n opts?: UpdateEasyspecsConfigOptions,\n): EasyspecsConfigRoot {\n const configPath = easyspecsConfigPath(repoRoot);\n const base = fs.existsSync(configPath)\n ? readEasyspecsConfig(repoRoot)\n : buildFreshEasyspecsConfigFromLegacy(repoRoot, opts?.warnMigration);\n const merged = mergeEasyspecsConfigDefaults(base, patch);\n atomicWriteFile(configPath, `${JSON.stringify(merged, null, 2)}\\n`);\n return merged;\n}\n", "/**\n * Legacy flat-key readers for `.easyspecs/settings.json` (SRS-35).\n * Prefer **`easyspecs.analysis.ace`** in **`.easyspecs/config.json`**; these remain as fallback during migration.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { EASYSPECS_LOCAL_DIR } from \"./analysis/easySpecsWorktreeMarker\";\n\nexport const EASYSPECS_WORKSPACE_DIR = EASYSPECS_LOCAL_DIR;\nexport const EASYSPECS_SETTINGS_JSON = \"settings.json\";\n\nexport const EASYSPECS_SETTINGS_ACE_KEY = \"easyspecs.analysis.ace.enabled\" as const;\nexport const EASYSPECS_SETTINGS_ACE_OFFLINE_AFTER_TRACE_KEY =\n \"easyspecs.analysis.ace.offlineLearnAfterSameSessionTrace\" as const;\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n\n/** Default shipped on first bootstrap: same boolean default as `package.json` for ACE (`false`). */\nexport function defaultEasySpecsSettingsFileContent(): string {\n return `${JSON.stringify({ [EASYSPECS_SETTINGS_ACE_KEY]: false }, null, 2)}\\n`;\n}\n\n/**\n * If `.easyspecs/settings.json` exists and contains `easyspecs.analysis.ace.enabled`, return that boolean.\n * Otherwise `undefined` (caller should use VS Code configuration).\n */\nexport function readAceEnabledFromEasySpecsSettingsFile(workspaceRootFsPath: string): boolean | undefined {\n const filePath = path.join(workspaceRootFsPath, EASYSPECS_WORKSPACE_DIR, EASYSPECS_SETTINGS_JSON);\n let raw: string;\n try {\n raw = fs.readFileSync(filePath, \"utf8\");\n } catch {\n return undefined;\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n if (!isRecord(parsed) || !Object.prototype.hasOwnProperty.call(parsed, EASYSPECS_SETTINGS_ACE_KEY)) {\n return undefined;\n }\n const v = parsed[EASYSPECS_SETTINGS_ACE_KEY];\n return typeof v === \"boolean\" ? v : undefined;\n}\n\n/**\n * If `.easyspecs/settings.json` contains `easyspecs.analysis.ace.offlineLearnAfterSameSessionTrace`, return it.\n */\nexport function readAceOfflineLearnAfterSameSessionTraceFromEasySpecsSettingsFile(\n workspaceRootFsPath: string,\n): boolean | undefined {\n const filePath = path.join(workspaceRootFsPath, EASYSPECS_WORKSPACE_DIR, EASYSPECS_SETTINGS_JSON);\n let raw: string;\n try {\n raw = fs.readFileSync(filePath, \"utf8\");\n } catch {\n return undefined;\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return undefined;\n }\n if (!isRecord(parsed) || !Object.prototype.hasOwnProperty.call(parsed, EASYSPECS_SETTINGS_ACE_OFFLINE_AFTER_TRACE_KEY)) {\n return undefined;\n }\n const v = parsed[EASYSPECS_SETTINGS_ACE_OFFLINE_AFTER_TRACE_KEY];\n return typeof v === \"boolean\" ? v : undefined;\n}\n", "/**\n * Marks EasySpecs analysis git worktrees on disk so a VS Code window opened on that\n * folder (File \u2192 Open Folder) can run Materialize / OpenCode tests without the in-memory\n * handle from Create worktree in another window.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\n/** Workspace / worktree-local EasySpecs dot-dir (`config.json`, legacy `settings.json`, `analysis-worktree.json`, \u2026). */\nexport const EASYSPECS_LOCAL_DIR = \".easyspecs\";\n\nexport const EASYSPECS_WORKTREE_MARKER_REL = path.join(EASYSPECS_LOCAL_DIR, \"analysis-worktree.json\");\n\nconst MARKER_KIND = \"easyspecs-analysis-worktree\";\n\nexport interface AnalysisWorktreeMarker {\n readonly kind: typeof MARKER_KIND;\n /** Primary repository that `git worktree add` was run from. */\n readonly repositoryRoot: string;\n}\n\nexport function writeAnalysisWorktreeMarker(worktreeRoot: string, repositoryRoot: string): void {\n const dir = path.join(worktreeRoot, EASYSPECS_LOCAL_DIR);\n fs.mkdirSync(dir, { recursive: true });\n const payload: AnalysisWorktreeMarker = {\n kind: MARKER_KIND,\n repositoryRoot: path.resolve(repositoryRoot),\n };\n fs.writeFileSync(path.join(dir, \"analysis-worktree.json\"), `${JSON.stringify(payload)}\\n`, \"utf-8\");\n}\n\nexport function readAnalysisWorktreeMarker(folderRoot: string): AnalysisWorktreeMarker | undefined {\n const p = path.join(folderRoot, EASYSPECS_WORKTREE_MARKER_REL);\n if (!fs.existsSync(p)) {\n return undefined;\n }\n try {\n const j = JSON.parse(fs.readFileSync(p, \"utf-8\")) as unknown;\n if (\n j &&\n typeof j === \"object\" &&\n (j as AnalysisWorktreeMarker).kind === MARKER_KIND &&\n typeof (j as AnalysisWorktreeMarker).repositoryRoot === \"string\"\n ) {\n return j as AnalysisWorktreeMarker;\n }\n } catch {\n /* ignore */\n }\n return undefined;\n}\n\n/**\n * True if `folderRoot` is an EasySpecs analysis worktree checkout (marker file), or\n * looks like a legacy temp worktree under `\u2026/easyspecs-analysis/<id>` with `.git`.\n */\nexport function isAnalysisWorktreeFolder(folderRoot: string): boolean {\n if (readAnalysisWorktreeMarker(folderRoot)) {\n return true;\n }\n const normalized = path.resolve(folderRoot);\n const parts = normalized.split(path.sep);\n const idx = parts.lastIndexOf(\"easyspecs-analysis\");\n if (idx >= 0 && idx < parts.length - 1) {\n return fs.existsSync(path.join(normalized, \".git\"));\n }\n return false;\n}\n", "/**\n * `.easyspecs/config.json` document shape (SRS-43).\n */\n\nimport type { CliJsonFile } from \"../cli/cliSettings\";\nimport { PRODUCTION_SYSTEM_MANAGER_URL } from \"../easyspecsBuiltInApiUrls\";\n\nexport type DeploymentEnvironment = \"production\" | \"staging\";\n\nexport type OpenCodeProviderConfig = {\n readonly apiKey?: string;\n readonly defaultModel?: string;\n};\n\n/** Annex-aligned runtime block (providers, run argv, pool, overlay). */\nexport type EasyspecsOpenCodeRuntime = {\n readonly executable?: string;\n readonly skipCredentialsCheck?: boolean;\n /**\n * Repo-relative path to the OpenCode credentials JSON file (aligned with `OPENCODE_AUTH_PATH`).\n * Default `.opencode/auth.json` \u2014 create this path under your project root or run `opencode login` with that env set.\n * Set to empty string to use OpenCode\u2019s global default only (no `OPENCODE_AUTH_PATH` from EasySpecs).\n */\n readonly credentialsPath?: string;\n readonly providers?: Partial<Record<ProviderId, OpenCodeProviderConfig>>;\n readonly run?: {\n readonly argvTemplate?: readonly string[];\n readonly timeoutMs?: number;\n };\n readonly coordinationRepairs?: {\n readonly listJsonSchemaRepairAttempts?: number;\n readonly markdownEvidenceRepairAttempts?: number;\n readonly markdownOpenQuestionIterations?: number;\n };\n readonly pool?: {\n readonly maxConcurrentAgents?: number;\n };\n readonly projectConfigOverlay?: Record<string, unknown>;\n};\n\nexport type ProviderId = \"anthropic\" | \"openai\" | \"openrouter\" | \"google\" | \"opencode\";\n\nexport type EasyspecsConfigEasyspecsBlock = NonNullable<CliJsonFile[\"easyspecs\"]> & {\n readonly deploymentEnvironment?: DeploymentEnvironment;\n /**\n * EasySpecs **project** id (Content application UUID). **Only** persisted store for SRS-13 / SRS-21\n * uploads and Sync \u2014 set via **`Send context to EasySpecs`**, **`Changes \u2192 Sync`**, or **`easyspecs-cli config set-project-id`**.\n */\n readonly easyspecsProjectId?: string;\n /**\n * Optional **`git remote`** URL (e.g. `https://github.com/org/repo.git` or `git@github.com:org/repo.git`).\n * For reference only; analysis still resolves remotes from the working tree. Complements\n * **`index-application-context.json`** `repository` and **`.easyspecs/analysis-worktree.json`** `repositoryRoot`.\n */\n readonly defaultGitRemoteUrl?: string;\n /**\n * Repo-relative or absolute path to CLI **`cli-session.json`** (**`auth login`** tokens).\n * Empty **`\"\"`** \u2192 **`~/.easyspecs/cli-session.json`**. Global **`--session-path`** on the CLI overrides for that process (extension delegate).\n */\n readonly cliSessionPath?: string;\n /** Legacy path reserved; prefer `easyspecs.openCodeRuntime`. */\n readonly openCodeRuntime?: EasyspecsOpenCodeRuntime;\n};\n\nexport type EasyspecsConfigRoot = {\n readonly schemaVersion?: number;\n readonly easyspecs?: EasyspecsConfigEasyspecsBlock;\n};\n\n/** Deep-merge partial config onto defaults (immutable result). */\nexport function mergeEasyspecsConfigDefaults(\n defaults: EasyspecsConfigRoot,\n partial: Partial<EasyspecsConfigRoot> | undefined,\n): EasyspecsConfigRoot {\n if (!partial) {\n return defaults;\n }\n const esInRaw = partial.easyspecs ?? {};\n const legacyProjectId = (esInRaw as { applicationId?: string }).applicationId;\n const { applicationId: _omitLegacyApplicationIdKey, ...esIn } = esInRaw as typeof esInRaw & {\n applicationId?: string;\n };\n void _omitLegacyApplicationIdKey;\n const defEs = defaults.easyspecs!;\n const mergedEs: EasyspecsConfigEasyspecsBlock = {\n ...defEs,\n ...esIn,\n deploymentEnvironment: esIn.deploymentEnvironment ?? defEs.deploymentEnvironment,\n apiBaseUrl: esIn.apiBaseUrl ?? defEs.apiBaseUrl,\n easyspecsProjectId:\n esIn.easyspecsProjectId !== undefined\n ? esIn.easyspecsProjectId\n : legacyProjectId !== undefined\n ? legacyProjectId\n : defEs.easyspecsProjectId,\n defaultGitRemoteUrl:\n esIn.defaultGitRemoteUrl !== undefined ? esIn.defaultGitRemoteUrl : defEs.defaultGitRemoteUrl,\n cliSessionPath: esIn.cliSessionPath !== undefined ? esIn.cliSessionPath : defEs.cliSessionPath,\n openCode: { ...defEs.openCode, ...esIn.openCode },\n analysis: mergeAnalysisBlock(\n defEs.analysis ?? { promoteContextToWorkspace: true },\n esIn.analysis,\n ),\n orchestration: { ...defEs.orchestration, ...esIn.orchestration },\n openCodeRuntime: mergeOpenCodeRuntime(defEs.openCodeRuntime, esIn.openCodeRuntime),\n };\n return {\n schemaVersion: partial.schemaVersion ?? defaults.schemaVersion,\n easyspecs: mergedEs,\n };\n}\n\nfunction mergeAnalysisBlock(\n base: NonNullable<EasyspecsConfigEasyspecsBlock[\"analysis\"]>,\n over: Partial<NonNullable<EasyspecsConfigEasyspecsBlock[\"analysis\"]>> | undefined,\n): NonNullable<EasyspecsConfigEasyspecsBlock[\"analysis\"]> {\n if (!over || Object.keys(over).length === 0) {\n return { ...base };\n }\n const merged: NonNullable<EasyspecsConfigEasyspecsBlock[\"analysis\"]> = {\n ...base,\n ...over,\n };\n if (base.ace || over.ace) {\n merged.ace = { ...base.ace, ...over.ace };\n }\n return merged;\n}\n\nfunction mergeOpenCodeRuntime(\n base: EasyspecsOpenCodeRuntime | undefined,\n over: EasyspecsOpenCodeRuntime | undefined,\n): EasyspecsOpenCodeRuntime | undefined {\n if (!over && !base) {\n return undefined;\n }\n const b = base ?? {};\n const o = over ?? {};\n return {\n ...b,\n ...o,\n executable: o.executable ?? b.executable,\n skipCredentialsCheck: o.skipCredentialsCheck ?? b.skipCredentialsCheck,\n credentialsPath: o.credentialsPath !== undefined ? o.credentialsPath : b.credentialsPath,\n providers: { ...b.providers, ...o.providers },\n run: { ...b.run, ...o.run },\n coordinationRepairs: { ...b.coordinationRepairs, ...o.coordinationRepairs },\n pool: { ...b.pool, ...o.pool },\n projectConfigOverlay:\n b.projectConfigOverlay || o.projectConfigOverlay\n ? { ...(b.projectConfigOverlay ?? {}), ...(o.projectConfigOverlay ?? {}) }\n : undefined,\n };\n}\n\nexport function getDefaultEasyspecsConfig(): EasyspecsConfigRoot {\n const openCodeRuntime: EasyspecsOpenCodeRuntime = {\n executable: \"opencode\",\n skipCredentialsCheck: false,\n credentialsPath: \".opencode/auth.json\",\n providers: {},\n run: {\n argvTemplate: [\n \"run\",\n \"--agent\",\n \"{agentId}\",\n \"Execute the task described in the attached EasySpecs prompt file.\",\n \"-f\",\n \"{promptFile}\",\n ],\n timeoutMs: 600_000,\n },\n coordinationRepairs: {\n listJsonSchemaRepairAttempts: 1,\n markdownEvidenceRepairAttempts: 2,\n markdownOpenQuestionIterations: 5,\n },\n pool: {\n maxConcurrentAgents: 30,\n },\n projectConfigOverlay: {},\n };\n\n return {\n schemaVersion: 1,\n easyspecs: {\n deploymentEnvironment: \"production\",\n apiBaseUrl: PRODUCTION_SYSTEM_MANAGER_URL,\n easyspecsProjectId: \"\",\n defaultGitRemoteUrl: \"\",\n cliSessionPath: \"\",\n openCode: {\n executable: \"opencode\",\n skipCredentialsCheck: false,\n },\n analysis: {\n promoteContextToWorkspace: true,\n },\n orchestration: {},\n openCodeRuntime,\n },\n };\n}\n", "import type { EasyspecsConfigRoot } from \"./easyspecsConfigJson\";\n\n/** Deep clone config for stdout / `doctor --inspect-config` \u2014 masks provider api keys (SRS-43 R17). */\nexport function redactEasyspecsConfigRootForDump(cfg: EasyspecsConfigRoot): Record<string, unknown> {\n const o = JSON.parse(JSON.stringify(cfg)) as Record<string, unknown>;\n const es = o.easyspecs as Record<string, unknown> | undefined;\n const rt = es?.openCodeRuntime as Record<string, unknown> | undefined;\n const prov = rt?.providers as Record<string, Record<string, unknown>> | undefined;\n if (prov && typeof prov === \"object\") {\n for (const p of Object.values(prov)) {\n if (p && typeof p === \"object\" && \"apiKey\" in p) {\n p.apiKey = \"(redacted)\";\n }\n }\n }\n return o;\n}\n", "import * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { AnalysisStorageContext, WorkspaceStatePort } from \"../stores/workspaceStatePort\";\n\n/** File-backed `workspaceState` for CLI resume flows (JSON object of key \u2192 value). */\nexport function createFileBackedWorkspaceState(repoRoot: string): AnalysisStorageContext {\n const dir = path.join(repoRoot, \".gluecharm\", \"logs\");\n const file = path.join(dir, \"easyspecs-cli-workspace-state.json\");\n fs.mkdirSync(dir, { recursive: true });\n\n const load = (): Record<string, unknown> => {\n try {\n if (!fs.existsSync(file)) {\n return {};\n }\n const j = JSON.parse(fs.readFileSync(file, \"utf8\")) as unknown;\n return typeof j === \"object\" && j !== null && !Array.isArray(j) ? (j as Record<string, unknown>) : {};\n } catch {\n return {};\n }\n };\n const save = (m: Record<string, unknown>): void => {\n fs.writeFileSync(file, `${JSON.stringify(m, null, 2)}\\n`, \"utf8\");\n };\n\n const workspaceState: WorkspaceStatePort = {\n get<T>(key: string): T | undefined {\n return load()[key] as T | undefined;\n },\n update(key: string, value: unknown): Promise<void> {\n const m = load();\n if (value === undefined) {\n delete m[key];\n } else {\n m[key] = value;\n }\n save(m);\n return Promise.resolve();\n },\n };\n return { workspaceState };\n}\n", "/**\n * SRS-9: worktree + materialize \u2192 pooled OpenCode queue (coordination lists + detail markdown).\n * After a successful queue drain, programmatic index assembly runs (SRS-10); optional promotion is handled by the caller.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport type { AnalysisStorageContext } from \"../stores/workspaceStatePort\";\nimport type { ContextSynthesisTestStep } from \"./contextSynthesis\";\nimport {\n discoverExperienceTreeRows,\n discoverServiceTreeRows,\n discoverTechStackToolRows,\n} from \"./analysisDynamicTestSteps\";\nimport type { DetailMarkdownTarget } from \"./analysisDetailMarkdownDiscovery\";\nimport { materializeOpenCodeAgentsWithAce } from \"./materializeOpenCodeAgents\";\nimport {\n type OpenCodeListTarget,\n type OpenCodeTestRunOptions,\n type PoolItemRemediationUiPhase,\n runOpenCodeMarkdownDetailStep,\n runOpenCodeTestAgentStep,\n} from \"./openCodeTestAgent\";\nimport { createAnalysisWorktree, type WorktreeHandle } from \"./worktreeManager\";\nimport {\n clearArtefactRun,\n finishArtefactRun,\n readArtefactRunSnapshot,\n type StoredArtefactWorkItem,\n startArtefactRun,\n updateArtefactRunSnapshot,\n} from \"../stores/analysisArtefactRunStore\";\nimport { noteOpenCodeAgentLaunched } from \"../stores/analysisDiscoveriesStore\";\nimport { writeIndexApplicationContext } from \"../contextIndexAssembler\";\nimport {\n getAceAnalysisEnabledForCheckout,\n getAceOfflineLearnAfterSameSessionTrace,\n} from \"./aceAnalysisConfig\";\nimport { readRepoSurfaceAssessment, writeEmptyExperiencesListJson } from \"./repoSurfaceAssessment\";\n\nconst FE = /^FE-\\d+$/;\nconst UC = /^UC-\\d+$/;\nconst SC = /^SC-\\d+$/;\nconst XP = /^XP-\\d+$/;\nconst DM = /^DM-\\d+$/;\nconst FD = /^FD-\\d+$/;\nconst SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nexport interface ContextArtefactPipelineOpenCodeOptions {\n readonly executable: string;\n readonly argvTemplate: string[];\n readonly timeoutMs: number;\n readonly listJsonSchemaRepairAttempts: number;\n /** SRS-16: markdown Evidence index repair (0\u20135). */\n readonly markdownEvidenceRepairAttempts: number;\n /** SRS-28: open-question resolution / producer feedback rounds per markdown file (0\u201310). Default 5. */\n readonly markdownOpenQuestionIterations: number;\n readonly maxConcurrentOpenCodeAgents: number;\n /** SRS-43: merged into OpenCode child `process.env` for provider keys from config.json. */\n readonly openCodeChildEnv?: Record<string, string>;\n /** SRS-43: merged into worktree `opencode.json` after permission merge. */\n readonly projectConfigOverlay?: Record<string, unknown>;\n /** SRS-35: ACE trace + materialize-time playbook merge. */\n readonly aceEnabled?: boolean;\n /** SRS-35: Reflector/Curator immediately after each validated trace. */\n readonly offlineLearnAfterSameSessionTrace?: boolean;\n}\n\nexport interface ContextArtefactPipelineCallbacks {\n readonly log: (line: string) => void;\n /** Fired after worktree + materialize + context dir exist, before the OpenCode queue starts (UI can show \u201Copen folder\u201D). */\n readonly onBootstrapReady?: (paths: { worktreeRoot: string; contextDir: string }) => void | Promise<void>;\n /** When aborted, queued pending work is skipped and in-flight OpenCode runs receive SIGTERM; the worktree is kept for debugging. */\n readonly abortSignal?: AbortSignal;\n /** SRS-35 R16: per pool item OpenCode UI phase (includes ACE trace). */\n readonly onItemRemediationPhase?: (id: string, phase: PoolItemRemediationUiPhase) => void;\n}\n\n/** Result of programmatic `index-application-context.json` write after the artefact queue drains (SRS-10). */\nexport type IndexApplicationContextAssemblyResult =\n | { readonly ok: true }\n | { readonly ok: false; readonly error: string };\n\nexport type ContextArtefactPipelineResult =\n | {\n ok: true;\n readonly contextDir: string;\n readonly handle: WorktreeHandle;\n readonly finalize: () => void;\n readonly skippedWorkItemIds: string[];\n /** Always set after queue drain: index write runs immediately after OpenCode synthesis completes. */\n readonly indexApplicationContext: IndexApplicationContextAssemblyResult;\n }\n | {\n ok: false;\n readonly error: string;\n readonly cancelled?: boolean;\n /** When the user stopped mid-run, the checkout is left on disk (caller should persist {@link WorktreeHandle}). */\n readonly retainedWorktree?: WorktreeHandle;\n /** Non-cancel failures after worktree creation: caller may invoke to remove checkout. */\n readonly finalize?: () => void;\n };\n\nfunction stripBom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nfunction readJson<T>(filePath: string): T | null {\n try {\n const raw = stripBom(fs.readFileSync(filePath, \"utf-8\"));\n return JSON.parse(raw) as T;\n } catch {\n return null;\n }\n}\n\nfunction safeStr(v: unknown): string {\n return typeof v === \"string\" ? v.trim() : \"\";\n}\n\nfunction slugOrFallback(row: { slug?: unknown; code?: unknown; name?: unknown }): string | null {\n const s = safeStr(row.slug);\n if (s && SLUG.test(s)) {\n return s;\n }\n const code = safeStr(row.code);\n const fb = code.replace(/[^A-Za-z0-9]/g, \"\").toLowerCase();\n if (fb && SLUG.test(fb)) {\n return fb;\n }\n const name = safeStr(row.name);\n const fromName = name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n if (fromName && SLUG.test(fromName)) {\n return fromName;\n }\n return null;\n}\n\nfunction clampConcurrency(n: number): number {\n if (!Number.isFinite(n)) {\n return 30;\n }\n return Math.min(64, Math.max(1, Math.floor(n)));\n}\n\n/** SRS-20: `listRepoSurface` after features; SRS-27: `reviewFeaturesList` after `listFeatures`; SRS-34: review after each root `list*`. */\nexport const ROOT_STEP_DEFS: readonly {\n id: string;\n step: ContextSynthesisTestStep;\n parentIds: readonly string[];\n}[] = [\n { id: \"root:docsProject\", step: \"docsProject\", parentIds: [] },\n { id: \"root:architecture\", step: \"architecture\", parentIds: [] },\n { id: \"root:listFeatures\", step: \"listFeatures\", parentIds: [] },\n { id: \"root:reviewFeaturesList\", step: \"reviewFeaturesList\", parentIds: [\"root:listFeatures\"] },\n { id: \"root:listRepoSurface\", step: \"listRepoSurface\", parentIds: [\"root:reviewFeaturesList\"] },\n { id: \"root:listExperiences\", step: \"listExperiences\", parentIds: [\"root:listRepoSurface\"] },\n { id: \"root:reviewExperiencesList\", step: \"reviewExperiencesList\", parentIds: [\"root:listExperiences\"] },\n { id: \"root:listServices\", step: \"listServices\", parentIds: [] },\n { id: \"root:reviewServicesList\", step: \"reviewServicesList\", parentIds: [\"root:listServices\"] },\n { id: \"root:listDataModel\", step: \"listDataModel\", parentIds: [] },\n { id: \"root:reviewDataModelList\", step: \"reviewDataModelList\", parentIds: [\"root:listDataModel\"] },\n { id: \"root:listTechStack\", step: \"listTechStack\", parentIds: [] },\n { id: \"root:reviewTechStackList\", step: \"reviewTechStackList\", parentIds: [\"root:listTechStack\"] },\n] as const;\n\nfunction buildRootItems(): Record<string, StoredArtefactWorkItem> {\n const out: Record<string, StoredArtefactWorkItem> = {};\n for (const { id, step, parentIds } of ROOT_STEP_DEFS) {\n out[id] = {\n id,\n kind: \"coord\",\n parentIds: [...parentIds],\n status: \"pending\",\n executionAttempts: 0,\n payload: { step },\n };\n }\n return out;\n}\n\nfunction coordItem(\n id: string,\n parentIds: string[],\n step: ContextSynthesisTestStep,\n listTarget?: OpenCodeListTarget,\n): StoredArtefactWorkItem {\n return {\n id,\n kind: \"coord\",\n parentIds,\n status: \"pending\",\n executionAttempts: 0,\n payload: { step, ...(listTarget ? { listTarget } : {}) },\n };\n}\n\nfunction mdItem(id: string, parentIds: string[], t: DetailMarkdownTarget): StoredArtefactWorkItem {\n return {\n id,\n kind: \"markdown\",\n parentIds,\n status: \"pending\",\n executionAttempts: 0,\n payload: {\n openCodeAgentStem: t.openCodeAgentStem,\n outputBasename: t.outputBasename,\n agentId: t.agentId,\n displayName: t.displayName,\n taskDescription: t.taskDescription,\n },\n };\n}\n\nfunction featureDetailTarget(contextDir: string, code: string, name: string, slug: string): DetailMarkdownTarget {\n const basename = `${code}-${slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-feature-detail\",\n agentId: \"ctx-md-feature-detail\",\n displayName: \"Feature detail\",\n outputBasename: basename,\n taskDescription: `Document feature **${code}** (**${name}**, slug **${slug}**) per \\`.gluecharm/context/features-list.json\\`: scope, behaviour, main dependencies, entry points, and links to code under the worktree. Write exactly one markdown file at the output path; cite substantive claims with file and line (or range).`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction viewDetailTarget(row: { code: string; name: string; slug: string }, contextDir: string): DetailMarkdownTarget {\n const basename = `${row.code}-${row.slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-view-detail\",\n agentId: \"ctx-md-view-detail\",\n displayName: \"View detail\",\n outputBasename: basename,\n taskDescription: `Describe view **${row.code}** (**${row.name}**, slug **${row.slug}**) per \\`.gluecharm/context/experiences-list.json\\`: purpose, layout, controls, navigation, data shown; ground in components and routes.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction interactionDetailTarget(\n viewCode: string,\n ix: { code: string; name: string; slug: string },\n contextDir: string,\n): DetailMarkdownTarget {\n const basename = `${viewCode}_${ix.code}-${ix.slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-interaction-detail\",\n agentId: \"ctx-md-interaction-detail\",\n displayName: \"Interaction detail\",\n outputBasename: basename,\n taskDescription: `Document interaction **${ix.code}** (**${ix.name}**) on view **${viewCode}** per \\`.gluecharm/context/experiences-list.json\\`.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction serviceDetailTarget(row: { code: string; name: string; slug: string }, contextDir: string): DetailMarkdownTarget {\n const basename = `${row.code}-${row.slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-service-detail\",\n agentId: \"ctx-md-service-detail\",\n displayName: \"Service detail\",\n outputBasename: basename,\n taskDescription: `Describe service **${row.code}** (**${row.name}**, slug **${row.slug}**) per \\`.gluecharm/context/services-list.json\\`: responsibilities, consumers, errors, integration points.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction methodDetailTarget(\n svc: { code: string; name: string; slug: string },\n m: { code: string; name: string; slug: string },\n contextDir: string,\n): DetailMarkdownTarget {\n const basename = `${svc.code}_${m.code}-${m.slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-method-detail\",\n agentId: \"ctx-md-method-detail\",\n displayName: \"Method detail\",\n outputBasename: basename,\n taskDescription: `Document method **${m.code}** (**${m.name}**) on service **${svc.code}** per \\`.gluecharm/context/services-list.json\\`.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction entityDetailTarget(\n dmCode: string,\n ename: string,\n slug: string,\n contextDir: string,\n): DetailMarkdownTarget {\n const basename = `${dmCode}-${slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-entity-detail\",\n agentId: \"ctx-md-entity-detail\",\n displayName: \"Entity detail\",\n outputBasename: basename,\n taskDescription: `Describe entity **${dmCode}** (**${ename}**, slug **${slug}**) per \\`.gluecharm/context/data-model-list.json\\`: lifecycle, invariants, storage, ORM/schema mapping.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction fieldDetailTarget(\n dmCode: string,\n fdCode: string,\n fname: string,\n fSlug: string,\n contextDir: string,\n): DetailMarkdownTarget {\n const basename = `${dmCode}_${fdCode}-${fSlug}.md`;\n return {\n openCodeAgentStem: \"agent-md-field-detail\",\n agentId: \"ctx-md-field-detail\",\n displayName: \"Field detail\",\n outputBasename: basename,\n taskDescription: `Document field **${fdCode}** (**${fname}**) on entity **${dmCode}** per \\`.gluecharm/context/${dmCode}-fields-list.json\\`. Cite types and constraints with file and line.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction toolDetailTarget(\n row: { code: string; name: string; slug: string },\n contextDir: string,\n): DetailMarkdownTarget {\n const basename = `${row.code}-${row.slug}.md`;\n return {\n openCodeAgentStem: \"agent-md-tool-detail\",\n agentId: \"ctx-md-tool-detail\",\n displayName: \"Tool detail\",\n outputBasename: basename,\n taskDescription: `Describe tool **${row.code}** (**${row.name}**, slug **${row.slug}**) per \\`.gluecharm/context/tech-stack-list.json\\`: role, version hints, configuration, boundaries.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nfunction useCaseDetailTarget(\n feCode: string,\n ucCode: string,\n ucName: string,\n ucSlug: string | undefined,\n contextDir: string,\n): DetailMarkdownTarget {\n const ucBase =\n ucSlug && SLUG.test(ucSlug) ? `${feCode}_${ucCode}-${ucSlug}.md` : `${feCode}_${ucCode}.md`;\n return {\n openCodeAgentStem: \"agent-md-use-case-detail\",\n agentId: \"ctx-md-use-case-detail\",\n displayName: \"Use case detail\",\n outputBasename: ucBase,\n taskDescription: `Document use case **${ucCode}** (**${ucName}**) under feature **${feCode}** per \\`.gluecharm/context/${feCode}-use-cases-list.json\\`. Do not change stable codes.\n\nFollow bundled agent **agent-md-use-case-detail**: include **## Data inputs and validation** (concrete fields, mandatory vs optional, rules, failure behaviour). **## Code flow** must trace **implementation order** (entrypoint \u2192 validation \u2192 business rules \u2192 persistence \u2192 response) with **real** symbols and files\u2014not generic \u201Cuser does X\u201D. Add a **Mermaid** fenced diagram under Code flow when there are **two or more** implementation stages. **## Evidence index** must cite **each major stage** (validation, persistence, response), not only the outer entrypoint.`,\n exists: fs.existsSync(path.join(contextDir, ucBase)) && fs.statSync(path.join(contextDir, ucBase)).size > 0,\n };\n}\n\nfunction scenarioDetailTarget(\n feCode: string,\n ucCode: string,\n scCode: string,\n scName: string,\n contextDir: string,\n): DetailMarkdownTarget {\n const basename = `${feCode}_${ucCode}_${scCode}.md`;\n return {\n openCodeAgentStem: \"agent-md-scenario-detail\",\n agentId: \"ctx-md-scenario-detail\",\n displayName: \"Scenario detail\",\n outputBasename: basename,\n taskDescription: `Document scenario **${scCode}** (**${scName}**) for **${feCode}** / **${ucCode}** per \\`.gluecharm/context/${feCode}_${ucCode}-scenarios-list.json\\`. Cite steps with file and line where possible.`,\n exists: fs.existsSync(path.join(contextDir, basename)) && fs.statSync(path.join(contextDir, basename)).size > 0,\n };\n}\n\nexport function parentsDone(item: StoredArtefactWorkItem, byId: Map<string, StoredArtefactWorkItem>): boolean {\n for (const pid of item.parentIds) {\n const p = byId.get(pid);\n if (!p || p.status !== \"done\") {\n return false;\n }\n }\n return true;\n}\n\n/** When a parent is `skipped`, dependents must not stay `pending` or the pool never drains (they never enqueue and waitTurn() deadlocks). */\nexport function skipPendingBlockedBySkippedParents(\n byId: Map<string, StoredArtefactWorkItem>,\n skippedWorkItemIds: string[],\n log: (line: string) => void,\n): void {\n let progressed = true;\n while (progressed) {\n progressed = false;\n for (const [id, item] of byId) {\n if (item.status !== \"pending\") {\n continue;\n }\n for (const pid of item.parentIds) {\n const p = byId.get(pid);\n if (p?.status === \"skipped\") {\n item.status = \"skipped\";\n item.lastError = `Skipped: dependency ${pid} did not complete (parent step was skipped).`;\n skippedWorkItemIds.push(id);\n log(`[SRS-9] cascade skip ${id} \u2014 blocked by skipped parent ${pid}`);\n progressed = true;\n break;\n }\n }\n }\n }\n}\n\n/** Exported for SRS-27 pipeline tests (fan-out only after semantic review). */\nexport function expandAfterSuccess(\n completed: StoredArtefactWorkItem,\n contextDir: string,\n byId: Map<string, StoredArtefactWorkItem>,\n fifo: string[],\n): void {\n const add = (it: StoredArtefactWorkItem): void => {\n if (byId.has(it.id)) {\n return;\n }\n byId.set(it.id, it);\n if (parentsDone(it, byId)) {\n fifo.push(it.id);\n }\n };\n\n if (completed.status !== \"done\") {\n return;\n }\n\n if (completed.kind === \"coord\") {\n const { step, listTarget } = completed.payload;\n switch (step) {\n case \"listFeatures\":\n break;\n case \"reviewFeaturesList\": {\n const flPath = path.join(contextDir, \"features-list.json\");\n const fl = readJson<{ features?: Array<{ code?: unknown; name?: unknown; slug?: unknown }> }>(flPath);\n const features = Array.isArray(fl?.features) ? fl.features! : [];\n for (const row of features) {\n const code = safeStr(row.code);\n if (!FE.test(code)) {\n continue;\n }\n const slug = slugOrFallback(row);\n if (!slug) {\n continue;\n }\n const name = safeStr(row.name) || code;\n const mdId = `md:${code}-${slug}.md`;\n add(mdItem(mdId, [completed.id], featureDetailTarget(contextDir, code, name, slug)));\n }\n break;\n }\n case \"listExperiences\":\n break;\n case \"reviewExperiencesList\": {\n for (const row of discoverExperienceTreeRows(contextDir)) {\n const mdId = `md:${row.code}-${row.slug}.md`;\n add(mdItem(mdId, [completed.id], viewDetailTarget(row, contextDir)));\n }\n break;\n }\n case \"listServices\":\n break;\n case \"reviewServicesList\": {\n for (const row of discoverServiceTreeRows(contextDir)) {\n const mdId = `md:${row.code}-${row.slug}.md`;\n add(mdItem(mdId, [completed.id], serviceDetailTarget(row, contextDir)));\n }\n break;\n }\n case \"listDataModel\":\n break;\n case \"reviewDataModelList\": {\n const dmPath = path.join(contextDir, \"data-model-list.json\");\n const dmFile = readJson<{ entities?: Array<{ code?: unknown; name?: unknown; slug?: unknown }> }>(dmPath);\n const ents = Array.isArray(dmFile?.entities) ? dmFile.entities! : [];\n for (const erow of ents) {\n const dmCode = safeStr(erow.code);\n if (!DM.test(dmCode)) {\n continue;\n }\n const slug = slugOrFallback(erow);\n if (!slug) {\n continue;\n }\n const ename = safeStr(erow.name) || dmCode;\n const mdId = `md:${dmCode}-${slug}.md`;\n add(mdItem(mdId, [completed.id], entityDetailTarget(dmCode, ename, slug, contextDir)));\n }\n break;\n }\n case \"listTechStack\":\n break;\n case \"reviewTechStackList\": {\n for (const row of discoverTechStackToolRows(contextDir)) {\n const mdId = `md:${row.code}-${row.slug}.md`;\n add(mdItem(mdId, [completed.id], toolDetailTarget(row, contextDir)));\n }\n break;\n }\n case \"listUseCases\": {\n const fe = listTarget?.featureCode;\n if (!fe || !FE.test(fe)) {\n break;\n }\n add(coordItem(`coord:reviewUc:${fe}`, [completed.id], \"reviewUseCasesList\", { featureCode: fe }));\n break;\n }\n case \"reviewUseCasesList\": {\n const fe = listTarget?.featureCode;\n if (!fe || !FE.test(fe)) {\n break;\n }\n const ucListPath = path.join(contextDir, `${fe}-use-cases-list.json`);\n const ucFile = readJson<{ useCases?: Array<{ code?: unknown; name?: unknown; slug?: unknown }> }>(ucListPath);\n const ucs = Array.isArray(ucFile?.useCases) ? ucFile.useCases! : [];\n for (const ucRow of ucs) {\n const ucCode = safeStr(ucRow.code);\n if (!UC.test(ucCode)) {\n continue;\n }\n const ucSlug = safeStr(ucRow.slug);\n const ucName = safeStr(ucRow.name) || ucCode;\n const ucTarget = useCaseDetailTarget(fe, ucCode, ucName, ucSlug || undefined, contextDir);\n const ucMdId = `md:${ucTarget.outputBasename}`;\n add(mdItem(ucMdId, [completed.id], ucTarget));\n const scCoordId = `coord:sc:${fe}_${ucCode}`;\n add(\n coordItem(scCoordId, [completed.id], \"listScenarios\", {\n featureCode: fe,\n useCaseCode: ucCode,\n }),\n );\n }\n break;\n }\n case \"listScenarios\": {\n const fe = listTarget?.featureCode;\n const uc = listTarget?.useCaseCode;\n if (!fe || !uc || !FE.test(fe) || !UC.test(uc)) {\n break;\n }\n add(\n coordItem(`coord:reviewSc:${fe}_${uc}`, [completed.id], \"reviewScenariosList\", {\n featureCode: fe,\n useCaseCode: uc,\n }),\n );\n break;\n }\n case \"reviewScenariosList\": {\n const fe = listTarget?.featureCode;\n const uc = listTarget?.useCaseCode;\n if (!fe || !uc || !FE.test(fe) || !UC.test(uc)) {\n break;\n }\n const scPath = path.join(contextDir, `${fe}_${uc}-scenarios-list.json`);\n const scFile = readJson<{ scenarios?: Array<{ code?: unknown; name?: unknown }> }>(scPath);\n const scs = Array.isArray(scFile?.scenarios) ? scFile.scenarios! : [];\n for (const scRow of scs) {\n const scCode = safeStr(scRow.code);\n if (!SC.test(scCode)) {\n continue;\n }\n const scName = safeStr(scRow.name) || scCode;\n const mdId = `md:${fe}_${uc}_${scCode}.md`;\n add(mdItem(mdId, [completed.id], scenarioDetailTarget(fe, uc, scCode, scName, contextDir)));\n }\n break;\n }\n case \"listEntityFields\": {\n const dm = listTarget?.entityCode;\n if (!dm || !DM.test(dm)) {\n break;\n }\n add(coordItem(`coord:reviewEf:${dm}`, [completed.id], \"reviewEntityFieldsList\", { entityCode: dm }));\n break;\n }\n case \"reviewEntityFieldsList\": {\n const dm = listTarget?.entityCode;\n if (!dm || !DM.test(dm)) {\n break;\n }\n const flPath = path.join(contextDir, `${dm}-fields-list.json`);\n const flFile = readJson<{ fields?: Array<{ code?: unknown; name?: unknown; slug?: unknown }> }>(flPath);\n const flds = Array.isArray(flFile?.fields) ? flFile.fields! : [];\n for (const frow of flds) {\n const fdCode = safeStr(frow.code);\n if (!FD.test(fdCode)) {\n continue;\n }\n const fSlug = safeStr(frow.slug);\n if (!fSlug || !SLUG.test(fSlug)) {\n continue;\n }\n const fname = safeStr(frow.name) || fdCode;\n const mdId = `md:${dm}_${fdCode}-${fSlug}.md`;\n add(mdItem(mdId, [completed.id], fieldDetailTarget(dm, fdCode, fname, fSlug, contextDir)));\n }\n break;\n }\n default:\n break;\n }\n return;\n }\n\n if (completed.kind === \"markdown\") {\n const basename = completed.payload.outputBasename;\n const mdId = completed.id;\n const feFromFeatureMd = basename.match(/^(FE-\\d+)-[^/]+\\.md$/);\n if (feFromFeatureMd) {\n const fe = feFromFeatureMd[1]!;\n add(coordItem(`coord:uc:${fe}`, [mdId], \"listUseCases\", { featureCode: fe }));\n return;\n }\n const xpFromView = basename.match(/^(XP-\\d+)-[^/]+\\.md$/);\n if (xpFromView) {\n const xp = xpFromView[1]!;\n const row = discoverExperienceTreeRows(contextDir).find((r) => r.code === xp);\n if (row) {\n for (const ix of row.interactions) {\n const ixMdId = `md:${row.code}_${ix.code}-${ix.slug}.md`;\n add(mdItem(ixMdId, [mdId], interactionDetailTarget(row.code, ix, contextDir)));\n }\n }\n return;\n }\n const svFromSvc = basename.match(/^(SV-\\d+)-[^/]+\\.md$/);\n if (svFromSvc) {\n const sv = svFromSvc[1]!;\n const srow = discoverServiceTreeRows(contextDir).find((r) => r.code === sv);\n if (srow) {\n for (const m of srow.methods) {\n const meMdId = `md:${srow.code}_${m.code}-${m.slug}.md`;\n add(mdItem(meMdId, [mdId], methodDetailTarget(srow, m, contextDir)));\n }\n }\n return;\n }\n const dmFromEnt = basename.match(/^(DM-\\d+)-[^/]+\\.md$/);\n if (dmFromEnt) {\n const dm = dmFromEnt[1]!;\n add(coordItem(`coord:ef:${dm}`, [mdId], \"listEntityFields\", { entityCode: dm }));\n return;\n }\n }\n}\n\nfunction requeueIfUnblocked(byId: Map<string, StoredArtefactWorkItem>, fifo: string[], log: (line: string) => void): void {\n for (const [id, it] of byId) {\n if (it.status !== \"pending\") {\n continue;\n }\n if (!parentsDone(it, byId)) {\n continue;\n }\n if (fifo.includes(id)) {\n continue;\n }\n fifo.push(id);\n log(`[SRS-9] queue: unblocked ${id} (dependency satisfied)`);\n }\n}\n\n/**\n * Single OpenCode pass for one persisted work item (coord list/markdown detail), including internal JSON / Evidence-index repair loops inside the OpenCode helpers.\n * SRS-9 pool uses two of these per item before marking skipped; SRS-17 remediation reuses the same call.\n */\nexport async function runArtefactWorkItemOpenCode(\n item: StoredArtefactWorkItem,\n worktreeRoot: string,\n workspaceLabel: string,\n oc: ContextArtefactPipelineOpenCodeOptions,\n log: (line: string) => void,\n abortSignal?: AbortSignal,\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void,\n artefactRunId?: string,\n): Promise<{\n ok: boolean;\n message: string;\n cancelled?: boolean;\n openCodeSessionId?: string;\n openCodeSessionTitle?: string;\n openCodeSessionCapturedAtIso?: string;\n}> {\n const base: Pick<\n OpenCodeTestRunOptions,\n | \"worktreeRoot\"\n | \"executable\"\n | \"argvTemplate\"\n | \"timeoutMs\"\n | \"listJsonSchemaRepairAttempts\"\n | \"markdownEvidenceRepairAttempts\"\n | \"markdownOpenQuestionIterations\"\n | \"diagnosticLog\"\n | \"onAgentLaunched\"\n | \"abortSignal\"\n | \"onRemediationPhase\"\n | \"artefactRunId\"\n | \"artefactWorkItemId\"\n | \"aceEnabled\"\n | \"offlineLearnAfterSameSessionTrace\"\n | \"openCodeChildEnv\"\n > = {\n worktreeRoot,\n executable: oc.executable,\n argvTemplate: oc.argvTemplate,\n timeoutMs: oc.timeoutMs,\n listJsonSchemaRepairAttempts: oc.listJsonSchemaRepairAttempts,\n markdownEvidenceRepairAttempts: oc.markdownEvidenceRepairAttempts,\n markdownOpenQuestionIterations: oc.markdownOpenQuestionIterations,\n diagnosticLog: log,\n onAgentLaunched: noteOpenCodeAgentLaunched,\n abortSignal,\n onRemediationPhase,\n artefactRunId,\n artefactWorkItemId: item.id,\n aceEnabled: oc.aceEnabled === true,\n offlineLearnAfterSameSessionTrace: oc.offlineLearnAfterSameSessionTrace === true,\n openCodeChildEnv: oc.openCodeChildEnv,\n };\n\n if (item.kind === \"coord\") {\n const { step, listTarget } = item.payload;\n const contextDir = path.join(worktreeRoot, \".gluecharm\", \"context\");\n\n if (step === \"listExperiences\") {\n const assessment = readRepoSurfaceAssessment(contextDir);\n if (assessment === null) {\n return {\n ok: false,\n message:\n \"repo-surface-scan.json is missing or invalid (expected boolean hasUi and hasBackend). Ensure root:listRepoSurface completed successfully (after root:reviewFeaturesList per SRS-27).\",\n };\n }\n if (assessment.hasUi === false) {\n writeEmptyExperiencesListJson(contextDir);\n log(\n \"[SRS-20] listExperiences: hasUi=false \u2014 wrote empty experiences-list.json (skipped OpenCode experiences agent).\",\n );\n return {\n ok: true,\n message: \"Skipped experiences list agent (no UI); wrote empty views array per SRS-20.\",\n };\n }\n }\n\n const r = await runOpenCodeTestAgentStep({\n ...base,\n workspaceLabel,\n step,\n listTarget,\n });\n return {\n ok: r.ok,\n message: r.message,\n ...(r.cancelled ? { cancelled: true } : {}),\n ...(r.openCodeSessionId\n ? {\n openCodeSessionId: r.openCodeSessionId,\n openCodeSessionTitle: r.openCodeSessionTitle,\n openCodeSessionCapturedAtIso: r.openCodeSessionCapturedAtIso,\n }\n : {}),\n };\n }\n\n const p = item.payload;\n const r = await runOpenCodeMarkdownDetailStep({\n worktreeRoot,\n executable: oc.executable,\n argvTemplate: oc.argvTemplate,\n timeoutMs: oc.timeoutMs,\n markdownEvidenceRepairAttempts: oc.markdownEvidenceRepairAttempts,\n markdownOpenQuestionIterations: oc.markdownOpenQuestionIterations,\n diagnosticLog: log,\n onAgentLaunched: noteOpenCodeAgentLaunched,\n abortSignal,\n onRemediationPhase,\n artefactRunId,\n artefactWorkItemId: item.id,\n aceEnabled: oc.aceEnabled === true,\n offlineLearnAfterSameSessionTrace: oc.offlineLearnAfterSameSessionTrace === true,\n openCodeChildEnv: oc.openCodeChildEnv,\n target: {\n openCodeAgentStem: p.openCodeAgentStem,\n agentId: p.agentId,\n displayName: p.displayName,\n outputBasename: p.outputBasename,\n taskDescription: p.taskDescription,\n },\n });\n return {\n ok: r.ok,\n message: r.message,\n ...(r.cancelled ? { cancelled: true } : {}),\n ...(r.openCodeSessionId\n ? {\n openCodeSessionId: r.openCodeSessionId,\n openCodeSessionTitle: r.openCodeSessionTitle,\n openCodeSessionCapturedAtIso: r.openCodeSessionCapturedAtIso,\n }\n : {}),\n };\n}\n\n/** Two outer attempts, matching {@link runContextArtefactPipelineAsync} pool behaviour (SRS-9 R17). */\nexport async function runArtefactWorkItemWithPipelineRetries(\n item: StoredArtefactWorkItem,\n worktreeRoot: string,\n workspaceLabel: string,\n oc: ContextArtefactPipelineOpenCodeOptions,\n log: (line: string) => void,\n abortSignal?: AbortSignal,\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void,\n artefactRunId?: string,\n): Promise<{\n ok: boolean;\n message: string;\n outerAttempts: number;\n cancelled?: boolean;\n openCodeSessionId?: string;\n openCodeSessionTitle?: string;\n openCodeSessionCapturedAtIso?: string;\n}> {\n let result = await runArtefactWorkItemOpenCode(\n item,\n worktreeRoot,\n workspaceLabel,\n oc,\n log,\n abortSignal,\n onRemediationPhase,\n artefactRunId,\n );\n let outerAttempts = 1;\n if (abortSignal?.aborted || result.cancelled) {\n return { ok: false, message: result.message || \"Remediation stopped.\", outerAttempts, cancelled: true };\n }\n if (!result.ok) {\n log(`[SRS-9] pool: retry ${item.id} after first failure`);\n result = await runArtefactWorkItemOpenCode(\n item,\n worktreeRoot,\n workspaceLabel,\n oc,\n log,\n abortSignal,\n onRemediationPhase,\n artefactRunId,\n );\n outerAttempts = 2;\n }\n if (abortSignal?.aborted || result.cancelled) {\n return { ok: false, message: result.message || \"Remediation stopped.\", outerAttempts, cancelled: true };\n }\n return {\n ok: result.ok,\n message: result.message,\n outerAttempts,\n ...(result.openCodeSessionId\n ? {\n openCodeSessionId: result.openCodeSessionId,\n openCodeSessionTitle: result.openCodeSessionTitle,\n openCodeSessionCapturedAtIso: result.openCodeSessionCapturedAtIso,\n }\n : {}),\n };\n}\n\nexport interface DrainArtefactWorkPoolParams {\n readonly storageContext: AnalysisStorageContext;\n readonly worktreeRoot: string;\n readonly workspaceLabel: string;\n readonly contextDir: string;\n readonly byId: Map<string, StoredArtefactWorkItem>;\n readonly fifo: string[];\n readonly oc: ContextArtefactPipelineOpenCodeOptions;\n readonly log: (line: string) => void;\n readonly abortSignal?: AbortSignal;\n readonly onItemComplete?: (id: string) => void | Promise<void>;\n readonly onItemRemediationPhase?: (id: string, phase: PoolItemRemediationUiPhase) => void;\n}\n\nexport interface DrainArtefactWorkPoolResult {\n readonly cancelled: boolean;\n readonly skippedWorkItemIds: readonly string[];\n}\n\n/**\n * SRS-9 concurrent queue drain: shared by full onboarding pipeline and Diagnosis parallel remediation.\n */\nexport async function drainArtefactWorkPool(p: DrainArtefactWorkPoolParams): Promise<DrainArtefactWorkPoolResult> {\n const maxC = clampConcurrency(p.oc.maxConcurrentOpenCodeAgents);\n const { storageContext, worktreeRoot, workspaceLabel, contextDir, byId, fifo, oc, log, abortSignal } = p;\n const artefactRunId = readArtefactRunSnapshot(storageContext)?.runId ?? \"unknown-run\";\n let active = 0;\n let wake: (() => void) | undefined;\n const waitTurn = (): Promise<void> =>\n new Promise<void>((resolve) => {\n wake = resolve;\n });\n\n const persist = async (): Promise<void> => {\n const items: Record<string, StoredArtefactWorkItem> = {};\n for (const [k, v] of byId) {\n items[k] = v;\n }\n await updateArtefactRunSnapshot(storageContext, (prev) => (prev ? { ...prev, items } : prev));\n };\n\n const skippedWorkItemIds: string[] = [];\n\n const pump = (): void => {\n wake?.();\n wake = undefined;\n };\n\n const pushSkippedOnce = (kid: string): void => {\n if (!skippedWorkItemIds.includes(kid)) {\n skippedWorkItemIds.push(kid);\n }\n };\n\n const onPipelineAbort = (): void => {\n fifo.length = 0;\n for (const [kid, vit] of byId) {\n if (vit.status === \"pending\") {\n vit.status = \"skipped\";\n pushSkippedOnce(kid);\n }\n }\n void persist();\n pump();\n };\n\n if (abortSignal) {\n if (abortSignal.aborted) {\n onPipelineAbort();\n } else {\n abortSignal.addEventListener(\"abort\", onPipelineAbort, { once: true });\n }\n }\n\n const runOne = async (id: string): Promise<void> => {\n if (abortSignal?.aborted) {\n active -= 1;\n pump();\n return;\n }\n const item = byId.get(id);\n if (!item || item.status !== \"pending\" || !parentsDone(item, byId)) {\n active -= 1;\n pump();\n return;\n }\n\n item.status = \"running\";\n await persist();\n log(`[SRS-9] pool: start ${id} (active ${active}/${maxC})`);\n\n const r = await runArtefactWorkItemWithPipelineRetries(\n item,\n worktreeRoot,\n workspaceLabel,\n oc,\n log,\n abortSignal,\n p.onItemRemediationPhase\n ? (phase) => {\n p.onItemRemediationPhase?.(id, phase);\n }\n : undefined,\n artefactRunId,\n );\n item.executionAttempts = r.outerAttempts;\n const result = { ok: r.ok, message: r.message };\n\n if (abortSignal?.aborted || r.cancelled) {\n item.status = \"skipped\";\n pushSkippedOnce(id);\n item.lastError = (r.message || \"Stopped by user.\").slice(0, 4000);\n log(`[SRS-9] pool: stopped ${id}`);\n await persist();\n active -= 1;\n await p.onItemComplete?.(id);\n pump();\n return;\n }\n\n if (result.ok) {\n item.status = \"done\";\n item.lastError = undefined;\n if (r.openCodeSessionId) {\n item.openCodeSessionId = r.openCodeSessionId;\n item.openCodeSessionTitle = r.openCodeSessionTitle;\n item.openCodeSessionCapturedAtIso = r.openCodeSessionCapturedAtIso;\n item.openCodeSessionPhase = \"primary\";\n }\n log(`[SRS-9] pool: complete ${id}`);\n if (!abortSignal?.aborted) {\n expandAfterSuccess(item, contextDir, byId, fifo);\n requeueIfUnblocked(byId, fifo, log);\n }\n } else {\n item.status = \"skipped\";\n item.lastError = result.message.slice(0, 4000);\n pushSkippedOnce(id);\n log(`[SRS-9] pool: skipped ${id} after 2 attempts \u2014 ${item.lastError.slice(0, 500)}`);\n if (!abortSignal?.aborted) {\n skipPendingBlockedBySkippedParents(byId, skippedWorkItemIds, log);\n requeueIfUnblocked(byId, fifo, log);\n }\n }\n\n await persist();\n active -= 1;\n await p.onItemComplete?.(id);\n pump();\n };\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n while (fifo.length > 0 && active < maxC && !abortSignal?.aborted) {\n const id = fifo.shift()!;\n const it = byId.get(id);\n if (!it || it.status !== \"pending\" || !parentsDone(it, byId)) {\n continue;\n }\n active += 1;\n void runOne(id);\n }\n\n const pendingOrRunning =\n active > 0 || [...byId.values()].some((v) => v.status === \"pending\") || fifo.length > 0;\n\n if (!pendingOrRunning) {\n break;\n }\n\n if (abortSignal?.aborted) {\n if (active === 0) {\n break;\n }\n await waitTurn();\n continue;\n }\n\n if (fifo.length === 0 || active >= maxC) {\n await waitTurn();\n }\n }\n\n return { cancelled: abortSignal?.aborted === true, skippedWorkItemIds };\n}\n\nexport type PrepareContextArtefactWorktreeResult =\n | {\n readonly ok: true;\n readonly handle: WorktreeHandle;\n readonly finalize: () => void;\n readonly sourceBranchAtCreation?: string;\n }\n | { readonly ok: false; readonly error: string; readonly finalize?: () => void };\n\n/**\n * SRS-9 bootstrap step 1: clear prior run state and create the git analysis worktree (no agents, no queue).\n * Pair with {@link materializeOpenCodeAgents} and {@link runContextArtefactPipelineDrainFromPreparedWorktree}.\n */\nexport async function prepareContextArtefactWorktreeOnly(\n storageContext: AnalysisStorageContext,\n repoRoot: string,\n log: (line: string) => void,\n options?: { readonly clearPriorArtefactRun?: boolean },\n): Promise<PrepareContextArtefactWorktreeResult> {\n if (options?.clearPriorArtefactRun !== false) {\n await clearArtefactRun(storageContext);\n }\n\n const wt = createAnalysisWorktree(repoRoot);\n if (!wt.ok) {\n return { ok: false, error: wt.error };\n }\n const handle = wt.handle;\n let finalized = false;\n const finalize = (): void => {\n if (finalized) {\n return;\n }\n finalized = true;\n try {\n handle.remove();\n log(`[SRS-9] worktree removed: ${handle.path}`);\n } catch (e) {\n log(`[SRS-9] worktree remove error: ${e instanceof Error ? e.message : String(e)}`);\n }\n };\n\n return { ok: true, handle, finalize, sourceBranchAtCreation: wt.sourceBranchAtCreation };\n}\n\n/**\n * SRS-9 bootstrap steps 2\u2013n: context dir, artefact run snapshot, OpenCode pool drain, index write.\n * **Pre:** worktree exists and {@link materializeOpenCodeAgents} has been run for **handle.path**.\n */\nexport async function runContextArtefactPipelineDrainFromPreparedWorktree(\n storageContext: AnalysisStorageContext,\n repoRoot: string,\n workspaceLabel: string,\n handle: WorktreeHandle,\n sourceBranchAtCreation: string | undefined,\n oc: ContextArtefactPipelineOpenCodeOptions,\n cb: ContextArtefactPipelineCallbacks,\n finalize: () => void,\n): Promise<ContextArtefactPipelineResult> {\n const log = cb.log;\n const abortSignal = cb.abortSignal;\n\n const ocEffective: ContextArtefactPipelineOpenCodeOptions = {\n ...oc,\n aceEnabled: getAceAnalysisEnabledForCheckout(handle.path),\n offlineLearnAfterSameSessionTrace: getAceOfflineLearnAfterSameSessionTrace(handle.path),\n };\n\n const contextDir = path.join(handle.path, \".gluecharm\", \"context\");\n fs.mkdirSync(contextDir, { recursive: true });\n\n const initialItems = buildRootItems();\n await startArtefactRun(storageContext, repoRoot, handle.path, initialItems);\n\n await cb.onBootstrapReady?.({ worktreeRoot: handle.path, contextDir });\n\n const byId = new Map<string, StoredArtefactWorkItem>(Object.entries(initialItems));\n /** Only roots with no parents \u2014 dependents enter via {@link requeueIfUnblocked} after parents finish (avoids shift+drop when parent still pending). */\n const fifo: string[] = ROOT_STEP_DEFS.filter((r) => r.parentIds.length === 0).map((r) => r.id);\n\n try {\n const { cancelled, skippedWorkItemIds } = await drainArtefactWorkPool({\n storageContext,\n worktreeRoot: handle.path,\n workspaceLabel,\n contextDir,\n byId,\n fifo,\n oc: ocEffective,\n log,\n abortSignal,\n onItemRemediationPhase: cb.onItemRemediationPhase,\n });\n\n if (cancelled) {\n await finishArtefactRun(storageContext, false);\n log(`[SRS-9] pipeline stopped by user \u2014 worktree retained at ${handle.path} for debugging`);\n return {\n ok: false,\n error: \"Analysis stopped by user.\",\n cancelled: true,\n retainedWorktree: handle,\n };\n }\n\n await finishArtefactRun(storageContext, true);\n log(\n `[SRS-9] queue drained \u2014 done=${[...byId.values()].filter((x) => x.status === \"done\").length} skipped=${skippedWorkItemIds.length}`,\n );\n\n let indexApplicationContext: IndexApplicationContextAssemblyResult;\n try {\n writeIndexApplicationContext(contextDir, undefined, {\n sourceBranchAtWorktreeCreation: sourceBranchAtCreation,\n });\n log(\n `[SRS-10] After synthesis: index-application-context.json written under ${contextDir} (JSON Schema validated)`,\n );\n indexApplicationContext = { ok: true };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n log(`[SRS-10] After synthesis: index assembly / validation failed \u2014 ${msg}`);\n indexApplicationContext = { ok: false, error: msg };\n }\n\n return {\n ok: true,\n contextDir,\n handle,\n finalize,\n skippedWorkItemIds: [...skippedWorkItemIds],\n indexApplicationContext,\n };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n log(`[SRS-9] pipeline error: ${msg}`);\n await finishArtefactRun(storageContext, false);\n finalize();\n return { ok: false, error: msg };\n }\n}\n\n/**\n * Full SRS-9 artefact pipeline: bootstrap, concurrent queue, fan-out, two tries per item then skip.\n */\nexport async function runContextArtefactPipelineAsync(\n storageContext: AnalysisStorageContext,\n repoRoot: string,\n workspaceLabel: string,\n extensionAgentsDirFs: string,\n oc: ContextArtefactPipelineOpenCodeOptions,\n cb: ContextArtefactPipelineCallbacks,\n): Promise<ContextArtefactPipelineResult> {\n const log = cb.log;\n\n const prep = await prepareContextArtefactWorktreeOnly(storageContext, repoRoot, log);\n if (!prep.ok) {\n return { ok: false, error: prep.error };\n }\n const { handle, finalize, sourceBranchAtCreation } = prep;\n\n const aceEnabled = getAceAnalysisEnabledForCheckout(handle.path);\n\n try {\n materializeOpenCodeAgentsWithAce(extensionAgentsDirFs, handle.path, {\n enabled: aceEnabled,\n diagnosticLog: log,\n projectConfigOverlay: oc.projectConfigOverlay,\n });\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n finalize();\n return { ok: false, error: `Materialize agents failed: ${msg}` };\n }\n\n return runContextArtefactPipelineDrainFromPreparedWorktree(\n storageContext,\n repoRoot,\n workspaceLabel,\n handle,\n sourceBranchAtCreation,\n { ...oc, aceEnabled },\n cb,\n finalize,\n );\n}\n", "/**\n * Derives Analysis view OpenCode test rows from coordination list JSON under `.gluecharm/context/`.\n */\n\nimport type { DetailMarkdownGroup } from \"./analysisDetailMarkdownDiscovery\";\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\nconst FE_CODE = /^FE-\\d+$/;\nconst UC_CODE = /^UC-\\d+$/;\nconst DM_CODE = /^DM-\\d+$/;\n\nexport interface AnalysisDynamicUseCaseRun {\n featureCode: string;\n featureName: string;\n /** Non-empty `FE-nn-use-cases-list.json` on disk. */\n useCasesListExists: boolean;\n}\n\nexport interface AnalysisDynamicScenarioRun {\n featureCode: string;\n useCaseCode: string;\n useCaseName: string;\n featureName: string;\n /** Non-empty `FE-nn_UC-uu-scenarios-list.json` on disk. */\n scenariosListExists: boolean;\n}\n\nexport interface AnalysisDynamicEntityFieldsRun {\n entityCode: string;\n entityName: string;\n /** Non-empty `DM-nn-fields-list.json` on disk. */\n fieldsListExists: boolean;\n}\n\nexport interface AnalysisDynamicTestStepsPayload {\n staticOutputs: AnalysisStaticOutputStatus[];\n entityFieldsRuns: AnalysisDynamicEntityFieldsRun[];\n experienceViewRuns: AnalysisExperienceViewRun[];\n serviceRuns: AnalysisServiceRun[];\n techStackToolRuns: AnalysisTechStackToolRun[];\n useCaseRuns: AnalysisDynamicUseCaseRun[];\n scenarioRuns: AnalysisDynamicScenarioRun[];\n entityFieldsEmptyHint: string;\n experienceEmptyHint: string;\n servicesEmptyHint: string;\n techStackEmptyHint: string;\n useCaseEmptyHint: string;\n scenarioEmptyHint: string;\n /** Per-node detail markdown targets (SRS-8 \u00A74.3\u2013\u00A74.5); merged in provider with list discovery. */\n detailMarkdownGroups?: DetailMarkdownGroup[];\n}\n\ninterface FeatureRow {\n code?: unknown;\n name?: unknown;\n}\n\ninterface FeaturesListFile {\n features?: FeatureRow[];\n}\n\ninterface EntityRow {\n code?: unknown;\n name?: unknown;\n}\n\ninterface DataModelListFile {\n entities?: EntityRow[];\n}\n\ninterface UseCaseRow {\n code?: unknown;\n name?: unknown;\n}\n\ninterface UseCasesListFile {\n featureCode?: unknown;\n useCases?: UseCaseRow[];\n}\n\nfunction stripUtf8Bom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nfunction readJson<T>(filePath: string): T | null {\n try {\n const raw = stripUtf8Bom(fs.readFileSync(filePath, \"utf-8\"));\n return JSON.parse(raw) as T;\n } catch {\n return null;\n }\n}\n\nconst SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\nconst XP_ROW = /^XP-\\d+$/;\nconst BH_ROW = /^BH-\\d+$/;\nconst SV_ROW = /^SV-\\d+$/;\nconst ME_ROW = /^ME-\\d+$/;\nconst TS_ROW = /^TS-\\d+$/;\n\nfunction safeCoordStr(v: unknown): string {\n return typeof v === \"string\" ? v.trim() : \"\";\n}\n\n/** Same rules as analysisDetailMarkdownDiscovery.slugOrFallback (coordination list rows). */\nfunction slugOrFallbackCoord(row: { slug?: unknown; code?: unknown; name?: unknown }): string | null {\n const s = safeCoordStr(row.slug);\n if (s && SLUG_RE.test(s)) {\n return s;\n }\n const code = safeCoordStr(row.code);\n const fb = code.replace(/[^A-Za-z0-9]/g, \"\").toLowerCase();\n if (fb && SLUG_RE.test(fb)) {\n return fb;\n }\n const name = safeCoordStr(row.name);\n const fromName = name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n if (fromName && SLUG_RE.test(fromName)) {\n return fromName;\n }\n return null;\n}\n\nexport interface ExperienceTreeInteractionRow {\n code: string;\n name: string;\n slug: string;\n}\n\nexport interface ExperienceTreeViewRow {\n code: string;\n name: string;\n slug: string;\n interactions: ExperienceTreeInteractionRow[];\n}\n\n/**\n * Parses `experiences-list.json` for Analysis UI and markdown discovery (XP/BH rows with resolvable slugs).\n */\nexport function discoverExperienceTreeRows(contextDir: string): ExperienceTreeViewRow[] {\n const expPath = path.join(contextDir, \"experiences-list.json\");\n const exp = readJson<{\n views?: Array<{\n code?: unknown;\n name?: unknown;\n slug?: unknown;\n interactions?: Array<{ code?: unknown; name?: unknown; slug?: unknown }>;\n }>;\n }>(expPath);\n const views = Array.isArray(exp?.views) ? exp!.views! : [];\n const out: ExperienceTreeViewRow[] = [];\n for (const v of views) {\n const xpCode = safeCoordStr(v.code);\n if (!XP_ROW.test(xpCode)) {\n continue;\n }\n const slug = slugOrFallbackCoord(v);\n if (!slug) {\n continue;\n }\n const vname = safeCoordStr(v.name) || xpCode;\n const row: ExperienceTreeViewRow = { code: xpCode, name: vname, slug, interactions: [] };\n const ixs = Array.isArray(v.interactions) ? v.interactions : [];\n for (const ix of ixs) {\n const bhCode = safeCoordStr(ix.code);\n if (!BH_ROW.test(bhCode)) {\n continue;\n }\n const ixSlug = slugOrFallbackCoord(ix);\n if (!ixSlug) {\n continue;\n }\n const iname = safeCoordStr(ix.name) || bhCode;\n row.interactions.push({ code: bhCode, name: iname, slug: ixSlug });\n }\n out.push(row);\n }\n return out;\n}\n\nexport interface ServiceTreeMethodRow {\n code: string;\n name: string;\n slug: string;\n}\n\nexport interface ServiceTreeRow {\n code: string;\n name: string;\n slug: string;\n methods: ServiceTreeMethodRow[];\n}\n\n/** Parses `services-list.json` for Analysis UI and markdown discovery (SV/ME rows with resolvable slugs). */\nexport function discoverServiceTreeRows(contextDir: string): ServiceTreeRow[] {\n const svcPath = path.join(contextDir, \"services-list.json\");\n const svcFile = readJson<{\n services?: Array<{\n code?: unknown;\n name?: unknown;\n slug?: unknown;\n methods?: Array<{ code?: unknown; name?: unknown; slug?: unknown }>;\n }>;\n }>(svcPath);\n const svcs = Array.isArray(svcFile?.services) ? svcFile!.services! : [];\n const out: ServiceTreeRow[] = [];\n for (const srow of svcs) {\n const svCode = safeCoordStr(srow.code);\n if (!SV_ROW.test(svCode)) {\n continue;\n }\n const slug = slugOrFallbackCoord(srow);\n if (!slug) {\n continue;\n }\n const sname = safeCoordStr(srow.name) || svCode;\n const row: ServiceTreeRow = { code: svCode, name: sname, slug, methods: [] };\n const methods = Array.isArray(srow.methods) ? srow.methods : [];\n for (const m of methods) {\n const meCode = safeCoordStr(m.code);\n if (!ME_ROW.test(meCode)) {\n continue;\n }\n const mSlug = slugOrFallbackCoord(m);\n if (!mSlug) {\n continue;\n }\n const mname = safeCoordStr(m.name) || meCode;\n row.methods.push({ code: meCode, name: mname, slug: mSlug });\n }\n out.push(row);\n }\n return out;\n}\n\nexport interface TechStackToolRow {\n code: string;\n name: string;\n slug: string;\n}\n\n/** Parses `tech-stack-list.json` for Analysis UI and markdown discovery (TS rows with resolvable slugs). */\nexport function discoverTechStackToolRows(contextDir: string): TechStackToolRow[] {\n const tsPath = path.join(contextDir, \"tech-stack-list.json\");\n const tsFile = readJson<{\n tools?: Array<{ code?: unknown; name?: unknown; slug?: unknown }>;\n }>(tsPath);\n const tools = Array.isArray(tsFile?.tools) ? tsFile!.tools! : [];\n const out: TechStackToolRow[] = [];\n for (const trow of tools) {\n const tsCode = safeCoordStr(trow.code);\n if (!TS_ROW.test(tsCode)) {\n continue;\n }\n const slug = slugOrFallbackCoord(trow);\n if (!slug) {\n continue;\n }\n const tname = safeCoordStr(trow.name) || tsCode;\n out.push({ code: tsCode, name: tname, slug });\n }\n return out;\n}\n\nexport interface AnalysisExperienceViewRun {\n code: string;\n name: string;\n slug: string;\n viewDetailExists: boolean;\n interactions: Array<{\n code: string;\n name: string;\n slug: string;\n detailExists: boolean;\n }>;\n}\n\nexport interface AnalysisServiceRun {\n code: string;\n name: string;\n slug: string;\n serviceDetailExists: boolean;\n methods: Array<{\n code: string;\n name: string;\n slug: string;\n detailExists: boolean;\n }>;\n}\n\nexport interface AnalysisTechStackToolRun {\n code: string;\n name: string;\n slug: string;\n toolDetailExists: boolean;\n}\n\nfunction safeFeatureName(v: unknown): string {\n return typeof v === \"string\" && v.trim() ? v.trim() : \"\";\n}\n\n/** True if path is a regular file with size > 0 (matches OpenCode test artefact expectations). */\nexport function nonEmptyContextFile(absolutePath: string): boolean {\n try {\n const st = fs.statSync(absolutePath);\n return st.isFile() && st.size > 0;\n } catch {\n return false;\n }\n}\n\n/** Basenames under `contextDir` produced by the global OpenCode coordination steps (SRS-20 adds repo surface scan). */\nexport const ANALYSIS_STATIC_CONTEXT_OUTPUTS: readonly string[] = [\n \"project.md\",\n \"architecture.md\",\n \"features-list.json\",\n \"repo-surface-scan.json\",\n \"experiences-list.json\",\n \"services-list.json\",\n \"data-model-list.json\",\n \"tech-stack-list.json\",\n] as const;\n\nexport interface AnalysisStaticOutputStatus {\n basename: string;\n exists: boolean;\n}\n\n/**\n * One use-case list run per feature row in `features-list.json`.\n * One scenarios list run per use-case row in each existing `FE-nn-use-cases-list.json`.\n */\nexport function discoverDynamicAnalysisTestSteps(contextDir: string): AnalysisDynamicTestStepsPayload {\n const staticOutputs: AnalysisStaticOutputStatus[] = ANALYSIS_STATIC_CONTEXT_OUTPUTS.map((basename) => ({\n basename,\n exists: nonEmptyContextFile(path.join(contextDir, basename)),\n }));\n\n const featuresPath = path.join(contextDir, \"features-list.json\");\n const featuresData = readJson<FeaturesListFile>(featuresPath);\n const rawFeatures = Array.isArray(featuresData?.features) ? featuresData!.features! : [];\n\n const entityFieldsRuns: AnalysisDynamicEntityFieldsRun[] = [];\n const useCaseRuns: AnalysisDynamicUseCaseRun[] = [];\n const scenarioRuns: AnalysisDynamicScenarioRun[] = [];\n\n const dmPath = path.join(contextDir, \"data-model-list.json\");\n const dmData = readJson<DataModelListFile>(dmPath);\n const rawEntities = Array.isArray(dmData?.entities) ? dmData!.entities! : [];\n for (const erow of rawEntities) {\n const dm = typeof erow.code === \"string\" ? erow.code.trim() : \"\";\n if (!DM_CODE.test(dm)) {\n continue;\n }\n const ename = safeFeatureName(erow.name);\n const fieldsListPath = path.join(contextDir, `${dm}-fields-list.json`);\n entityFieldsRuns.push({\n entityCode: dm,\n entityName: ename,\n fieldsListExists: nonEmptyContextFile(fieldsListPath),\n });\n }\n\n for (const row of rawFeatures) {\n const code = typeof row.code === \"string\" ? row.code.trim() : \"\";\n if (!FE_CODE.test(code)) {\n continue;\n }\n const name = safeFeatureName(row.name);\n const useCasesListPath = path.join(contextDir, `${code}-use-cases-list.json`);\n useCaseRuns.push({\n featureCode: code,\n featureName: name,\n useCasesListExists: nonEmptyContextFile(useCasesListPath),\n });\n\n const ucData = readJson<UseCasesListFile>(useCasesListPath);\n const ucs = Array.isArray(ucData?.useCases) ? ucData!.useCases! : [];\n for (const uc of ucs) {\n const ucc = typeof uc.code === \"string\" ? uc.code.trim() : \"\";\n if (!UC_CODE.test(ucc)) {\n continue;\n }\n const ucName = safeFeatureName(uc.name);\n const scenariosBasename = `${code}_${ucc}-scenarios-list.json`;\n scenarioRuns.push({\n featureCode: code,\n useCaseCode: ucc,\n useCaseName: ucName,\n featureName: name,\n scenariosListExists: nonEmptyContextFile(path.join(contextDir, scenariosBasename)),\n });\n }\n }\n\n const entityFieldsEmptyHint =\n !fs.existsSync(dmPath) || dmData === null\n ? \"No data-model-list.json yet \u2014 run the data model list step after Materialize agents.\"\n : entityFieldsRuns.length === 0\n ? \"data-model-list.json has no valid DM-nn rows \u2014 run the data model step or edit that file.\"\n : \"\";\n\n const expPath = path.join(contextDir, \"experiences-list.json\");\n const expFileData = readJson<{ views?: unknown }>(expPath);\n const expTreeRows = discoverExperienceTreeRows(contextDir);\n const experienceViewRuns: AnalysisExperienceViewRun[] = expTreeRows.map((row) => ({\n code: row.code,\n name: row.name,\n slug: row.slug,\n viewDetailExists: nonEmptyContextFile(path.join(contextDir, `${row.code}-${row.slug}.md`)),\n interactions: row.interactions.map((ix) => ({\n code: ix.code,\n name: ix.name,\n slug: ix.slug,\n detailExists: nonEmptyContextFile(path.join(contextDir, `${row.code}_${ix.code}-${ix.slug}.md`)),\n })),\n }));\n\n const experienceEmptyHint =\n !fs.existsSync(expPath) || expFileData === null\n ? \"No experiences-list.json yet \u2014 run the experiences list step after Materialize agents.\"\n : experienceViewRuns.length === 0\n ? \"experiences-list.json has no valid XP-* views with resolvable URL-safe slugs (check code/slug fields and JSON syntax, including UTF-8 BOM).\"\n : \"\";\n\n const svcPath = path.join(contextDir, \"services-list.json\");\n const svcFileData = readJson<{ services?: unknown }>(svcPath);\n const svcTreeRows = discoverServiceTreeRows(contextDir);\n const serviceRuns: AnalysisServiceRun[] = svcTreeRows.map((row) => ({\n code: row.code,\n name: row.name,\n slug: row.slug,\n serviceDetailExists: nonEmptyContextFile(path.join(contextDir, `${row.code}-${row.slug}.md`)),\n methods: row.methods.map((m) => ({\n code: m.code,\n name: m.name,\n slug: m.slug,\n detailExists: nonEmptyContextFile(path.join(contextDir, `${row.code}_${m.code}-${m.slug}.md`)),\n })),\n }));\n\n const servicesEmptyHint =\n !fs.existsSync(svcPath) || svcFileData === null\n ? \"No services-list.json yet \u2014 run the services list step after Materialize agents.\"\n : serviceRuns.length === 0\n ? \"services-list.json has no valid SV-* services with resolvable URL-safe slugs (check code/slug fields and JSON syntax, including UTF-8 BOM).\"\n : \"\";\n\n const tsListPath = path.join(contextDir, \"tech-stack-list.json\");\n const tsListFileData = readJson<{ tools?: unknown }>(tsListPath);\n const toolTreeRows = discoverTechStackToolRows(contextDir);\n const techStackToolRuns: AnalysisTechStackToolRun[] = toolTreeRows.map((row) => ({\n code: row.code,\n name: row.name,\n slug: row.slug,\n toolDetailExists: nonEmptyContextFile(path.join(contextDir, `${row.code}-${row.slug}.md`)),\n }));\n\n const techStackEmptyHint =\n !fs.existsSync(tsListPath) || tsListFileData === null\n ? \"No tech-stack-list.json yet \u2014 run the tech stack list step after Materialize agents.\"\n : techStackToolRuns.length === 0\n ? \"tech-stack-list.json has no valid TS-* tools with resolvable URL-safe slugs (check code/slug fields and JSON syntax, including UTF-8 BOM).\"\n : \"\";\n\n const useCaseEmptyHint =\n !fs.existsSync(featuresPath) || featuresData === null\n ? \"No features-list.json yet \u2014 run step 3 (features list) after Materialize agents.\"\n : useCaseRuns.length === 0\n ? \"features-list.json has no valid FE-nn rows \u2014 run step 3 or edit that file.\"\n : \"\";\n\n const scenarioEmptyHint =\n scenarioRuns.length === 0\n ? useCaseRuns.length === 0\n ? \"Scenario runs appear after features exist and per-feature use-case lists define UC rows.\"\n : \"Run a per-feature use case list (above) or add UC rows to each FE-nn-use-cases-list.json.\"\n : \"\";\n\n return {\n staticOutputs,\n entityFieldsRuns,\n experienceViewRuns,\n serviceRuns,\n techStackToolRuns,\n useCaseRuns,\n scenarioRuns,\n entityFieldsEmptyHint,\n experienceEmptyHint,\n servicesEmptyHint,\n techStackEmptyHint,\n useCaseEmptyHint,\n scenarioEmptyHint,\n };\n}\n", "/**\n * SRS-8 R3: copy bundled agent definitions into `<analysisCheckout>/.opencode/agents/` (OpenCode project layout),\n * and list JSON Schemas into `<analysisCheckout>/.opencode/schemas/context-lists/` for `{{LIST_SCHEMA_REF}}`.\n * `analysisCheckout` is the detached analysis worktree path (EasySpecs workspace store `adHocWorktreePath`).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { applyAceToMaterializedAgents, type ApplyAceToMaterializedAgentsOptions } from \"./applyAceMaterializedAgents\";\n\nfunction posixFsPath(absPath: string): string {\n return path.resolve(absPath).split(path.sep).join(\"/\");\n}\n\nfunction mergeStringKeyedObject(\n permission: Record<string, unknown>,\n key: string,\n additions: Record<string, string>,\n): void {\n const cur = permission[key];\n const base: Record<string, string> =\n cur && typeof cur === \"object\" && !Array.isArray(cur)\n ? Object.fromEntries(\n Object.entries(cur as Record<string, unknown>).filter(\n (entry): entry is [string, string] => typeof entry[1] === \"string\",\n ),\n )\n : {};\n Object.assign(base, additions);\n permission[key] = base;\n}\n\n/**\n * Path-scoped OpenCode tools: merge allow rules, or replace a string value (`\"ask\"` / `\"deny\"` / `\"allow\"`)\n * with an object so non-interactive **`opencode run`** does not stall on global **`permission.read: \"ask\"`**-style config.\n */\nfunction ensurePathToolAllows(\n permission: Record<string, unknown>,\n tool: string,\n rules: Record<string, string>,\n): void {\n const cur = permission[tool];\n if (typeof cur === \"string\") {\n permission[tool] = { ...rules };\n return;\n }\n mergeStringKeyedObject(permission, tool, rules);\n}\n\n/**\n * Merge **`permission`** rules for the analysis checkout so non-interactive **`opencode run`**\n * does not **auto-reject** tools (defaults: **`external_directory`** \u2192 ask; see [OpenCode permissions](https://opencode.ai/docs/permissions)).\n *\n * Some builds request **`external_directory`** for patterns like **`.gluecharm/context/*`** even when a single\n * **`ROOT/**`** rule exists \u2014 we add redundant explicit patterns under **`ROOT/.gluecharm/`**.\n *\n * We **`allow`** reading and searching the **entire worktree** (`read`, `glob`, `list`, `grep`) via **`*`** plus\n * absolute **`ROOT/**`** patterns (covers relative paths from cwd and edge cases). **`edit`** is allowed under\n * **`ROOT/**`** only for this throwaway tree.\n */\nfunction mergeDeepUnknown(\n base: Record<string, unknown>,\n over: Record<string, unknown>,\n): Record<string, unknown> {\n const out: Record<string, unknown> = { ...base };\n for (const [k, v] of Object.entries(over)) {\n const cur = out[k];\n if (\n v &&\n typeof v === \"object\" &&\n !Array.isArray(v) &&\n cur &&\n typeof cur === \"object\" &&\n !Array.isArray(cur)\n ) {\n out[k] = mergeDeepUnknown(cur as Record<string, unknown>, v as Record<string, unknown>);\n } else {\n out[k] = v;\n }\n }\n return out;\n}\n\nfunction ensureAnalysisOpenCodePermissionsConfig(\n analysisCheckoutRoot: string,\n projectConfigOverlay?: Record<string, unknown>,\n): void {\n const root = path.resolve(analysisCheckoutRoot);\n const r = posixFsPath(root);\n const contextDir = posixFsPath(path.join(root, \".gluecharm\", \"context\"));\n\n const externalAllows: Record<string, string> = {\n [`${r}/**`]: \"allow\",\n [`${r}/.gluecharm/**`]: \"allow\",\n [`${r}/.gluecharm/context/**`]: \"allow\",\n [`${r}/.gluecharm/context/*`]: \"allow\",\n [`${contextDir}/**`]: \"allow\",\n [`${contextDir}/*`]: \"allow\",\n };\n\n const readAndSearchAllows: Record<string, string> = {\n \"*\": \"allow\",\n [`${r}/**`]: \"allow\",\n [`${r}/*`]: \"allow\",\n };\n\n const editAllows: Record<string, string> = {\n [`${r}/**`]: \"allow\",\n [`${r}/*`]: \"allow\",\n };\n\n const configPath = path.join(root, \"opencode.json\");\n let cfg: Record<string, unknown> = {};\n if (fs.existsSync(configPath)) {\n try {\n const raw = fs.readFileSync(configPath, \"utf-8\");\n const parsed = JSON.parse(raw) as unknown;\n if (parsed && typeof parsed === \"object\" && !Array.isArray(parsed)) {\n cfg = { ...(parsed as Record<string, unknown>) };\n }\n } catch {\n cfg = {};\n }\n }\n const permissionIn = cfg.permission;\n const permission: Record<string, unknown> =\n permissionIn && typeof permissionIn === \"object\" && !Array.isArray(permissionIn)\n ? { ...(permissionIn as Record<string, unknown>) }\n : {};\n\n mergeStringKeyedObject(permission, \"external_directory\", externalAllows);\n\n for (const tool of [\"read\", \"glob\", \"list\", \"grep\"] as const) {\n ensurePathToolAllows(permission, tool, readAndSearchAllows);\n }\n ensurePathToolAllows(permission, \"edit\", editAllows);\n\n cfg.permission = permission;\n if (cfg.$schema === undefined) {\n cfg.$schema = \"https://opencode.ai/config.json\";\n }\n if (projectConfigOverlay && Object.keys(projectConfigOverlay).length > 0) {\n cfg = mergeDeepUnknown(cfg, projectConfigOverlay);\n }\n fs.writeFileSync(configPath, `${JSON.stringify(cfg, null, 2)}\\n`, \"utf-8\");\n}\n\nfunction copyRecursive(src: string, dest: string): void {\n fs.mkdirSync(dest, { recursive: true });\n const entries = fs.readdirSync(src, { withFileTypes: true });\n for (const e of entries) {\n const s = path.join(src, e.name);\n const d = path.join(dest, e.name);\n if (e.isDirectory()) {\n copyRecursive(s, d);\n } else {\n fs.copyFileSync(s, d);\n }\n }\n}\n\n/**\n * @param extensionResourcesAgents absolute path to `resources/opencode-agents` (or extensionUri/fsPath joined).\n * @param analysisCheckoutRoot absolute path to the analysis git worktree checkout\n */\nexport function materializeOpenCodeAgents(\n extensionResourcesAgents: string,\n analysisCheckoutRoot: string,\n projectConfigOverlay?: Record<string, unknown>,\n): void {\n const dest = path.join(analysisCheckoutRoot, \".opencode\", \"agents\");\n if (!fs.existsSync(extensionResourcesAgents)) {\n fs.mkdirSync(dest, { recursive: true });\n fs.writeFileSync(\n path.join(dest, \"README.md\"),\n \"# OpenCode agents\\n\\nPlaceholder: add agent configs here. Bundled folder was missing at materialize time.\\n\",\n \"utf-8\",\n );\n ensureAnalysisOpenCodePermissionsConfig(analysisCheckoutRoot, projectConfigOverlay);\n return;\n }\n copyRecursive(extensionResourcesAgents, dest);\n\n const schemasSrc = path.join(path.dirname(extensionResourcesAgents), \"schemas\", \"context-lists\");\n if (fs.existsSync(schemasSrc)) {\n const schemasDest = path.join(analysisCheckoutRoot, \".opencode\", \"schemas\", \"context-lists\");\n copyRecursive(schemasSrc, schemasDest);\n }\n\n const aceSchemasSrc = path.join(path.dirname(extensionResourcesAgents), \"schemas\", \"ace\");\n if (fs.existsSync(aceSchemasSrc)) {\n const aceSchemasDest = path.join(analysisCheckoutRoot, \".opencode\", \"schemas\", \"ace\");\n copyRecursive(aceSchemasSrc, aceSchemasDest);\n }\n\n ensureAnalysisOpenCodePermissionsConfig(analysisCheckoutRoot, projectConfigOverlay);\n}\n\n/**\n * SRS-35: materialize bundled agents + list schemas + ACE schemas, then optionally merge playbook/overlay into agents.\n */\nexport function materializeOpenCodeAgentsWithAce(\n extensionResourcesAgents: string,\n analysisCheckoutRoot: string,\n ace: ApplyAceToMaterializedAgentsOptions & { readonly projectConfigOverlay?: Record<string, unknown> },\n): void {\n materializeOpenCodeAgents(extensionResourcesAgents, analysisCheckoutRoot, ace.projectConfigOverlay);\n applyAceToMaterializedAgents(analysisCheckoutRoot, ace);\n}\n\nexport type { ApplyAceToMaterializedAgentsOptions };\n", "/**\n * SRS-35 \u00A72.7 / R4\u2013R5: after baseline materialize, merge playbook + overlay into each `agent-*.md` under `.opencode/agents/`.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport {\n ACE_SCHEMA_OVERLAY,\n ACE_SCHEMA_PLAYBOOK,\n gluecharmContextDir,\n aceLearningsRoot,\n aceOverlayPath,\n acePlaybookPath,\n opencodeAceSchemaPath,\n} from \"./acePaths\";\nimport { validateAceJsonFile } from \"./aceJsonValidate\";\n\nexport interface ApplyAceToMaterializedAgentsOptions {\n /** When false, no filesystem changes (baseline agents only). */\n readonly enabled: boolean;\n readonly diagnosticLog?: (line: string) => void;\n}\n\nfunction splitYamlFrontmatter(raw: string): { frontmatter: string; body: string } | null {\n if (!raw.startsWith(\"---\\n\")) {\n return { frontmatter: \"\", body: raw };\n }\n const end = raw.indexOf(\"\\n---\\n\", 4);\n if (end === -1) {\n return null;\n }\n return {\n frontmatter: raw.slice(4, end),\n body: raw.slice(end + 5),\n };\n}\n\ninterface PlaybookRule {\n ruleId: string;\n statement: string;\n priority?: number;\n}\n\ninterface PlaybookDoc {\n rules: PlaybookRule[];\n}\n\ninterface OverlayDoc {\n instructionAppend?: string;\n systemPromptSuffix?: string;\n negativeConstraints?: string[];\n emphasisBullets?: string[];\n}\n\nfunction renderPlaybookSection(doc: PlaybookDoc): string {\n const rules = [...doc.rules].sort((a, b) => {\n const pa = a.priority ?? 1_000_000;\n const pb = b.priority ?? 1_000_000;\n if (pa !== pb) {\n return pa - pb;\n }\n return a.ruleId.localeCompare(b.ruleId);\n });\n const lines = rules.map((r) => `- **${r.ruleId}**: ${r.statement}`);\n return `## Repo playbook (ACE)\\n\\n${lines.join(\"\\n\")}\\n`;\n}\n\nfunction renderOverlaySection(o: OverlayDoc): string {\n const parts: string[] = [];\n if (o.emphasisBullets?.length) {\n parts.push(`### ACE emphasis\\n\\n${o.emphasisBullets.map((x) => `- ${x}`).join(\"\\n\")}\\n`);\n }\n if (o.negativeConstraints?.length) {\n parts.push(\n `### ACE constraints (do not)\\n\\n${o.negativeConstraints.map((x) => `- ${x}`).join(\"\\n\")}\\n`,\n );\n }\n if (o.instructionAppend?.trim()) {\n parts.push(`### ACE instruction append\\n\\n${o.instructionAppend.trim()}\\n`);\n }\n if (o.systemPromptSuffix?.trim()) {\n parts.push(`### ACE system suffix\\n\\n${o.systemPromptSuffix.trim()}\\n`);\n }\n if (parts.length === 0) {\n return \"\";\n }\n return `## Repo overlay (ACE)\\n\\n${parts.join(\"\\n\")}`;\n}\n\n/**\n * Reads playbook and overlay from `contextDir` (`.gluecharm/context`), validates, rewrites each `agent-*.md` in `.opencode/agents/`.\n */\nexport function applyAceToMaterializedAgents(\n worktreeRoot: string,\n options: ApplyAceToMaterializedAgentsOptions,\n): void {\n const log = options.diagnosticLog ?? ((): void => {});\n if (!options.enabled) {\n return;\n }\n const agentsDir = path.join(worktreeRoot, \".opencode\", \"agents\");\n if (!fs.existsSync(agentsDir) || !fs.statSync(agentsDir).isDirectory()) {\n log(`[ace] skip apply \u2014 missing agents dir: ${agentsDir}`);\n return;\n }\n const contextDir = gluecharmContextDir(worktreeRoot);\n const learningsRoot = aceLearningsRoot(contextDir);\n fs.mkdirSync(learningsRoot, { recursive: true });\n\n const playbookSchema = opencodeAceSchemaPath(worktreeRoot, ACE_SCHEMA_PLAYBOOK);\n const overlaySchema = opencodeAceSchemaPath(worktreeRoot, ACE_SCHEMA_OVERLAY);\n\n const entries = fs.readdirSync(agentsDir, { withFileTypes: true });\n for (const e of entries) {\n if (!e.isFile() || !e.name.endsWith(\".md\") || e.name === \"README.md\") {\n continue;\n }\n const stem = e.name.replace(/\\.md$/i, \"\");\n const agentPath = path.join(agentsDir, e.name);\n let raw: string;\n try {\n raw = fs.readFileSync(agentPath, \"utf-8\");\n } catch (err) {\n log(`[ace] skip ${stem} \u2014 read failed: ${err instanceof Error ? err.message : String(err)}`);\n continue;\n }\n const split = splitYamlFrontmatter(raw);\n if (!split) {\n log(`[ace] skip ${stem} \u2014 could not parse YAML frontmatter`);\n continue;\n }\n\n const pbPath = acePlaybookPath(contextDir, stem);\n const ovPath = aceOverlayPath(contextDir, stem);\n\n let playbookDoc: PlaybookDoc | undefined;\n if (fs.existsSync(pbPath)) {\n const v = validateAceJsonFile(pbPath, playbookSchema);\n if (v.ok) {\n const d = v.data as { rules?: PlaybookRule[] };\n if (Array.isArray(d.rules)) {\n playbookDoc = { rules: d.rules };\n }\n } else {\n log(\n `[ace] skip playbook merge for ${stem} \u2014 ${v.kind}: ${v.message}${v.errorsText ? `\\n${v.errorsText.slice(0, 500)}` : \"\"}`,\n );\n }\n }\n\n let overlayDoc: OverlayDoc | undefined;\n if (fs.existsSync(ovPath)) {\n const v = validateAceJsonFile(ovPath, overlaySchema);\n if (v.ok) {\n overlayDoc = v.data as OverlayDoc;\n } else {\n log(\n `[ace] skip overlay merge for ${stem} \u2014 ${v.kind}: ${v.message}${v.errorsText ? `\\n${v.errorsText.slice(0, 500)}` : \"\"}`,\n );\n }\n }\n\n if (!playbookDoc && !overlayDoc) {\n continue;\n }\n\n const pbText = playbookDoc && playbookDoc.rules.length > 0 ? renderPlaybookSection(playbookDoc) : \"\";\n const ovText = overlayDoc ? renderOverlaySection(overlayDoc) : \"\";\n const extra = [pbText, ovText].filter(Boolean).join(\"\\n\");\n if (!extra) {\n continue;\n }\n\n const trimmedBody = split.body.replace(/\\s+$/, \"\");\n const out =\n split.frontmatter.length > 0\n ? `---\\n${split.frontmatter}\\n---\\n${trimmedBody}\\n\\n${extra}\\n`\n : `${trimmedBody}\\n\\n${extra}\\n`;\n fs.writeFileSync(agentPath, out, \"utf-8\");\n log(`[ace] merged playbook/overlay into materialized agent: ${e.name}`);\n }\n}\n", "/**\n * SRS-35: normative paths under `<worktree>/.gluecharm/context/learnings/`.\n */\n\nimport * as path from \"path\";\n\nexport const ACE_LEARNINGS_DIR = \"learnings\";\nexport const ACE_OVERLAYS_SUBDIR = \"overlays\";\nexport const ACE_TRACES_SUBDIR = \"traces\";\nexport const ACE_REFLECTIONS_SUBDIR = \"reflections\";\nexport const ACE_CURATIONS_SUBDIR = \"curations\";\n/** Append-only audit log of completed offline learn runs (trace \u2192 reflector \u2192 curator \u2192 apply). */\nexport const ACE_CONSOLIDATED_SESSIONS_JSONL = \"ace-consolidated-sessions.jsonl\";\n\nexport const ACE_SCHEMA_PLAYBOOK = \"ace-playbook.schema.json\";\nexport const ACE_SCHEMA_OVERLAY = \"ace-agent-overlay.schema.json\";\nexport const ACE_SCHEMA_TRACE = \"ace-generator-trace.schema.json\";\nexport const ACE_SCHEMA_REFLECTOR = \"ace-reflector-lessons.schema.json\";\nexport const ACE_SCHEMA_CURATOR = \"ace-curator-delta.schema.json\";\n\nexport function gluecharmContextDir(worktreeRoot: string): string {\n return path.join(worktreeRoot, \".gluecharm\", \"context\");\n}\n\nexport function aceLearningsRoot(contextDir: string): string {\n return path.join(contextDir, ACE_LEARNINGS_DIR);\n}\n\n/** Safe single segment for trace/reflection filenames (no path separators). */\nexport function sanitizeAcePathSegment(s: string): string {\n return s.replace(/[^a-zA-Z0-9_.-]+/g, \"_\").slice(0, 200) || \"id\";\n}\n\n/**\n * Unique stem for `*-trace.json` per OpenCode session. Re-using only the analysis `runId` overwrites\n * traces when the same step is run again; appending the session id keeps one file per session.\n */\nexport function aceTraceFileRunStem(artefactRunId: string, openCodeSessionId: string): string {\n const a = sanitizeAcePathSegment(artefactRunId);\n const sessRaw =\n typeof openCodeSessionId === \"string\" && openCodeSessionId.trim().length > 0\n ? openCodeSessionId.trim()\n : `t${Date.now()}`;\n const b = sanitizeAcePathSegment(sessRaw);\n const joined = `${a}__${b}`;\n return joined.length <= 240 ? joined : joined.slice(0, 240);\n}\n\nexport function acePlaybookPath(contextDir: string, agentStem: string): string {\n return path.join(aceLearningsRoot(contextDir), `${agentStem}.json`);\n}\n\nexport function aceOverlayPath(contextDir: string, agentStem: string): string {\n return path.join(aceLearningsRoot(contextDir), ACE_OVERLAYS_SUBDIR, `${agentStem}.json`);\n}\n\nexport function aceTracePath(contextDir: string, agentStem: string, runId: string): string {\n return path.join(aceLearningsRoot(contextDir), ACE_TRACES_SUBDIR, agentStem, `${runId}-trace.json`);\n}\n\nexport function aceReflectionPath(contextDir: string, agentStem: string, runId: string): string {\n return path.join(aceLearningsRoot(contextDir), ACE_REFLECTIONS_SUBDIR, agentStem, `${runId}-lessons.json`);\n}\n\nexport function aceCurationPath(contextDir: string, agentStem: string, runId: string): string {\n return path.join(aceLearningsRoot(contextDir), ACE_CURATIONS_SUBDIR, agentStem, `${runId}-delta.json`);\n}\n\nexport function aceConsolidatedSessionsJsonlPath(contextDir: string): string {\n return path.join(aceLearningsRoot(contextDir), ACE_CONSOLIDATED_SESSIONS_JSONL);\n}\n\nexport function opencodeAceSchemaPath(worktreeRoot: string, basename: string): string {\n return path.join(worktreeRoot, \".opencode\", \"schemas\", \"ace\", basename);\n}\n", "/**\n * SRS-35 R10: validate ACE JSON instances against `resources/schemas/ace/*.schema.json`\n * (mirrors coordination list validation style).\n */\n\nimport * as fs from \"fs\";\nimport Ajv2020 from \"ajv/dist/2020\";\nimport type { ErrorObject } from \"ajv\";\n\nfunction stripUtf8Bom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nfunction formatAjvErrors(errors: ErrorObject[] | null | undefined): string {\n if (!errors?.length) {\n return \"(no error details)\";\n }\n return errors\n .slice(0, 40)\n .map((e) => {\n const p = e.instancePath?.length ? e.instancePath : \"(root)\";\n const msg = e.message ?? e.keyword ?? \"?\";\n return `- **${p}**: ${msg}`;\n })\n .join(\"\\n\");\n}\n\nexport type AceJsonValidationResult =\n | { ok: true; data: unknown }\n | { ok: false; kind: \"read\" | \"parse\" | \"schema\"; message: string; errorsText?: string };\n\n/**\n * Read JSON from disk and validate against the schema file (Draft 2020-12).\n */\nexport function validateAceJsonFile(jsonAbsolutePath: string, schemaAbsolutePath: string): AceJsonValidationResult {\n let raw: string;\n try {\n raw = stripUtf8Bom(fs.readFileSync(jsonAbsolutePath, \"utf-8\"));\n } catch (e) {\n return { ok: false, kind: \"read\", message: e instanceof Error ? e.message : String(e) };\n }\n let data: unknown;\n try {\n data = JSON.parse(raw) as unknown;\n } catch (e) {\n return { ok: false, kind: \"parse\", message: e instanceof Error ? e.message : String(e) };\n }\n const v = validateAceJsonValue(data, schemaAbsolutePath);\n if (!v.ok) {\n return v;\n }\n return { ok: true, data };\n}\n\n/**\n * Extract a single JSON object from mixed CLI output (stdout/stderr). OpenCode sometimes prints the\n * assistant\u2019s JSON to the terminal instead of writing the file via tools.\n *\n * Scans `{` positions from the end; returns the first balanced object (strings: `\"` + `\\\\`) that\n * parses and contains `requiredTopLevelKey` at the root.\n */\nexport function extractJsonObjectWithTopLevelKey(text: string, requiredTopLevelKey: string): string | null {\n const s = text;\n if (!s || !requiredTopLevelKey) {\n return null;\n }\n let searchEnd = s.length;\n while (searchEnd > 0) {\n const start = s.lastIndexOf(\"{\", searchEnd - 1);\n if (start < 0) {\n return null;\n }\n const chunk = balancedJsonObjectFrom(s, start);\n if (chunk) {\n try {\n const o = JSON.parse(chunk) as unknown;\n if (\n o &&\n typeof o === \"object\" &&\n !Array.isArray(o) &&\n Object.prototype.hasOwnProperty.call(o, requiredTopLevelKey)\n ) {\n return chunk;\n }\n } catch {\n /* try earlier `{` */\n }\n }\n searchEnd = start;\n }\n return null;\n}\n\n/**\n * Like {@link extractJsonObjectWithTopLevelKey}, but the parsed root object must own **every** key\n * in `requiredKeys` (discriminates trace vs reflector vs curator JSON in one stdout).\n */\nexport function extractJsonObjectWithTopLevelKeys(\n text: string,\n requiredKeys: readonly string[],\n): string | null {\n const s = text;\n if (!s || requiredKeys.length === 0) {\n return null;\n }\n let searchEnd = s.length;\n while (searchEnd > 0) {\n const start = s.lastIndexOf(\"{\", searchEnd - 1);\n if (start < 0) {\n return null;\n }\n const chunk = balancedJsonObjectFrom(s, start);\n if (chunk) {\n try {\n const o = JSON.parse(chunk) as unknown;\n if (!o || typeof o !== \"object\" || Array.isArray(o)) {\n searchEnd = start;\n continue;\n }\n const rec = o as Record<string, unknown>;\n const hasAll = requiredKeys.every((k) => Object.prototype.hasOwnProperty.call(rec, k));\n if (hasAll) {\n return chunk;\n }\n } catch {\n /* try earlier `{` */\n }\n }\n searchEnd = start;\n }\n return null;\n}\n\n/** From `start` at `{`, return balanced `...}` slice or null (respects `\"` strings). */\nfunction balancedJsonObjectFrom(s: string, start: number): string | null {\n if (s[start] !== \"{\") {\n return null;\n }\n let depth = 0;\n let inStr = false;\n let esc = false;\n for (let i = start; i < s.length; i++) {\n const c = s[i]!;\n if (inStr) {\n if (esc) {\n esc = false;\n continue;\n }\n if (c === \"\\\\\") {\n esc = true;\n continue;\n }\n if (c === '\"') {\n inStr = false;\n }\n continue;\n }\n if (c === '\"') {\n inStr = true;\n continue;\n }\n if (c === \"{\") {\n depth += 1;\n } else if (c === \"}\") {\n depth -= 1;\n if (depth === 0) {\n return s.slice(start, i + 1);\n }\n }\n }\n return null;\n}\n\nexport function validateAceJsonValue(data: unknown, schemaAbsolutePath: string): AceJsonValidationResult {\n let schemaRaw: string;\n try {\n schemaRaw = stripUtf8Bom(fs.readFileSync(schemaAbsolutePath, \"utf-8\"));\n } catch (e) {\n return { ok: false, kind: \"read\", message: `Schema read failed: ${e instanceof Error ? e.message : String(e)}` };\n }\n let schema: unknown;\n try {\n schema = JSON.parse(schemaRaw) as unknown;\n } catch (e) {\n return { ok: false, kind: \"parse\", message: `Schema JSON.parse: ${e instanceof Error ? e.message : String(e)}` };\n }\n const ajv = new Ajv2020({ allErrors: true, strict: false });\n let validate: ReturnType<Ajv2020[\"compile\"]>;\n try {\n validate = ajv.compile(schema as object);\n } catch (e) {\n return { ok: false, kind: \"schema\", message: `Schema compile failed: ${e instanceof Error ? e.message : String(e)}` };\n }\n if (validate(data)) {\n return { ok: true, data };\n }\n const errorsText = formatAjvErrors(validate.errors);\n return { ok: false, kind: \"schema\", message: \"ACE JSON Schema validation failed\", errorsText };\n}\n", "/**\n * Analysis view: run a single logical agent via the real OpenCode CLI + \u00A73.5 prompt file.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { fillListJsonPrompt, fillMarkdownPrompt, fillResolveOpenQuestionPrompt } from \"./promptTemplates\";\nimport { CONTEXT_SYNTHESIS_TEST_STEP_ORDER, type ContextSynthesisTestStep } from \"./contextSynthesis\";\nimport {\n aceArtefactKindForCoordinationStep,\n aceArtefactKindForDetailMarkdown,\n runAceTracePhase,\n} from \"./aceTracePhase\";\nimport { runOpenCodeAgent } from \"../opencodeCli\";\nimport {\n buildFollowUpOpenCodeArgv,\n buildOpenCodeSessionTitle,\n injectPrimaryOpenCodeSessionArgv,\n logOpenCodeSessionFollowUpStart,\n logOpenCodeSessionPrimaryComplete,\n} from \"./openCodeSessionStewardship\";\nimport {\n coordinationListSchemaBasenameForOutputBasename,\n formatCoordinationJsonMissingArtefactRepairAppendix,\n formatCoordinationJsonRepairAppendix,\n readCoordinationJsonPreview,\n validateCoordinationListJson,\n} from \"./coordinationListJsonValidate\";\nimport {\n formatMarkdownEvidenceRepairAppendix,\n validateMarkdownEvidenceIndexFile,\n} from \"./markdownEvidenceIndexValidate\";\nimport {\n deleteOpenQuestionResolutionFile,\n openQuestionResolutionJsonAbsolute,\n readOpenQuestionResolutionFile,\n} from \"./openQuestionResolution\";\nimport {\n formatOpenQuestionsProducerRepairAppendix,\n openQuestionsValidationPasses,\n validateOpenQuestionsSectionFile,\n} from \"./openQuestionsSectionValidate\";\n\nconst CITATION_EXAMPLE = \"`src/example.ts:42` or `src/example.ts:10-25`\";\n\n/** SRS-9 / SRS-17 / SRS-35: UI phases for pool items and remediation rows. */\nexport type PoolItemRemediationUiPhase =\n | \"generating\"\n | \"validating\"\n | \"aceTracing\"\n | \"aceTraceComplete\";\n\n/** Scope for per-feature, per\u2013use-case, or per-entity coordination list outputs. */\nexport type OpenCodeListTarget = {\n featureCode?: string;\n useCaseCode?: string;\n entityCode?: string;\n};\n\nexport interface OpenCodeTestRunOptions {\n worktreeRoot: string;\n workspaceLabel: string;\n step: ContextSynthesisTestStep;\n /** Required for `listUseCases` / `listScenarios` / `listEntityFields` (matches coordination basenames). */\n listTarget?: OpenCodeListTarget;\n executable: string;\n /** Argv after the binary; substitute `{promptFile}`, `{agentId}` (OpenCode agent file stem), `{worktree}`. */\n argvTemplate: string[];\n timeoutMs: number;\n /** Optional; logs prompt path/size and OpenCode spawn diagnostics (EasySpecs \u2014 Analysis channel). */\n diagnosticLog?: (line: string) => void;\n /** Optional; SRS-9 Discoveries counter \u2014 once per OpenCode process spawn. */\n onAgentLaunched?: () => void;\n /**\n * Coordination list JSON only: extra OpenCode runs after JSON.parse / JSON Schema validation failure (0\u20135).\n * Default 1 when omitted (one repair retry).\n */\n listJsonSchemaRepairAttempts?: number;\n /**\n * SRS-16: markdown only (`docsProject`, `architecture`): extra OpenCode runs when `## Evidence index` is empty (0\u20135).\n * Default 2 when omitted.\n */\n markdownEvidenceRepairAttempts?: number;\n /**\n * SRS-28: max rounds of open-question resolution / producer feedback per markdown file (0\u201310).\n * Default 5. **0** = fail if **## Open Questions** is non-empty (no remediation runs).\n */\n markdownOpenQuestionIterations?: number;\n /** When aborted, OpenCode is terminated and the step returns with `cancelled: true` (SRS-17 stop). */\n abortSignal?: AbortSignal;\n /**\n * SRS-17 remediation UI: **generating** / **validating**; SRS-35 **aceTracing** during same-session trace; **aceTraceComplete** after trace ends.\n */\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void;\n /** SRS-36: durable analysis run id (workspace artefact snapshot `runId`). */\n artefactRunId?: string;\n /** SRS-36: persisted pool item id (e.g. `root:docsProject`). */\n artefactWorkItemId?: string;\n /** SRS-35: when true and session id captured, run ACE trace phase after primary success. */\n aceEnabled?: boolean;\n /** SRS-35: after validated trace, run Reflector \u2192 Curator \u2192 apply in the same worktree. */\n offlineLearnAfterSameSessionTrace?: boolean;\n /** SRS-43: provider keys from config merged into OpenCode child env. */\n openCodeChildEnv?: Record<string, string>;\n}\n\nexport interface OpenCodeTestRunResult {\n ok: boolean;\n message: string;\n outputPath: string;\n promptPath: string;\n step: ContextSynthesisTestStep;\n cancelled?: boolean;\n /** SRS-36: last session id captured from primary `opencode run --format json` for this step. */\n openCodeSessionId?: string;\n openCodeSessionTitle?: string;\n openCodeSessionCapturedAtIso?: string;\n}\n\nfunction contextDir(worktreeRoot: string): string {\n return path.join(worktreeRoot, \".gluecharm\", \"context\");\n}\n\nfunction schemaRef(worktreeRoot: string, schemaBasename: string): string {\n return path.join(worktreeRoot, \".opencode\", \"schemas\", \"context-lists\", schemaBasename);\n}\n\nfunction expandArgvTemplate(template: string[], vars: Record<string, string>): string[] {\n return template.map((part) => {\n let s = part;\n for (const [k, v] of Object.entries(vars)) {\n s = s.split(`{${k}}`).join(v);\n }\n return s;\n });\n}\n\nfunction buildCoordStepLabel(step: ContextSynthesisTestStep, listTarget?: OpenCodeListTarget): string {\n const parts: string[] = [step];\n if (listTarget?.featureCode) {\n parts.push(listTarget.featureCode);\n }\n if (listTarget?.useCaseCode) {\n parts.push(listTarget.useCaseCode);\n }\n if (listTarget?.entityCode) {\n parts.push(listTarget.entityCode);\n }\n return parts.join(\"\u00B7\");\n}\n\nfunction applyOpenCodeStewardshipToExpandedArgv(\n expandedArgv: string[],\n p: {\n followUpSessionId: string | undefined;\n runId: string;\n workItemId: string;\n stepLabel: string;\n diagnosticLog?: (line: string) => void;\n },\n): string[] {\n const title = buildOpenCodeSessionTitle({\n runId: p.runId,\n workItemId: p.workItemId,\n stepLabel: p.stepLabel,\n });\n if (p.followUpSessionId) {\n logOpenCodeSessionFollowUpStart(p.diagnosticLog, {\n workItemId: p.workItemId,\n runId: p.runId,\n sessionId: p.followUpSessionId,\n });\n return buildFollowUpOpenCodeArgv(expandedArgv, p.followUpSessionId);\n }\n return injectPrimaryOpenCodeSessionArgv(expandedArgv, title);\n}\n\nfunction buildPromptBody(\n step: ContextSynthesisTestStep,\n worktreeRoot: string,\n workspaceLabel: string,\n outputFileAbsolute: string,\n outputBasename: string,\n listTarget?: OpenCodeListTarget,\n listRepairAppendix?: string,\n markdownRepairAppendix?: string,\n): { body: string; listSchemaFile?: string } {\n switch (step) {\n case \"docsProject\":\n return {\n body: fillMarkdownPrompt({\n agentId: \"ctx-md-docs-project\",\n agentDisplayName: \"Docs \u2014 project overview\",\n worktreeRoot,\n taskDescription:\n \"Create or overwrite the output markdown file with a contributor-facing **project overview**: purpose, repository role, tech stack table, npm/scripts table, high-level source layout, configuration/env notes, pointer to sibling **architecture.md** in the same `.gluecharm/context/` folder when relevant, and out-of-scope notes. Ground claims in the repository.\",\n outputFileAbsolute,\n outputBasename,\n citationFormatExample: CITATION_EXAMPLE,\n repairAppendix: markdownRepairAppendix,\n }),\n };\n case \"architecture\":\n return {\n body: fillMarkdownPrompt({\n agentId: \"ctx-md-architecture\",\n agentDisplayName: \"Architecture narrative\",\n worktreeRoot,\n taskDescription:\n \"Document application architecture: components, boundaries, data flow, integrations, deployment. This file lives under `.gluecharm/context/` for SRS-8 context assembly.\",\n outputFileAbsolute,\n outputBasename,\n citationFormatExample: CITATION_EXAMPLE,\n repairAppendix: markdownRepairAppendix,\n }),\n };\n case \"listFeatures\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-features\",\n agentDisplayName: \"Features list\",\n worktreeRoot,\n listTaskDescription:\n `Enumerate application-level features with stable FE-<nn> codes, names, URL-safe slugs, and **sourceReferences** (**minItems: 1** per feature). Workspace label hint: **${workspaceLabel}**.`,\n listSchemaRef: schemaRef(worktreeRoot, \"features-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"features-list.schema.json\",\n };\n case \"reviewFeaturesList\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-features-list\",\n agentDisplayName: \"Features list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription:\n \"Semantically review the **existing** features list at the output path: merge duplicates, remove false features, split overloaded rows, consolidate test-only duplicates of product capabilities (e.g. test login vs login), set **featureKind** per row (**product** | **infrastructure** | **testing**); every feature row **must** have **sourceReferences** with **minItems: 1** (add evidence or **drop** the row). Renumber **FE-** only when splitting (new codes at end). Append **revisionLog** entries for substantive edits. Follow the bundled agent instructions.\",\n listSchemaRef: schemaRef(worktreeRoot, \"features-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock:\n \"\\n## Parent context\\n- The file at the output path was produced by **listFeatures** and already passes schema; your job is to **overwrite** it with the **reviewed canonical** document.\\n- Optional context: **.gluecharm/context/project.md** and **architecture.md** (if present) may disambiguate product vs infrastructure.\\n\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"features-list.schema.json\",\n };\n case \"listRepoSurface\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-repo-surface-scan\",\n agentDisplayName: \"Repo surface scan\",\n worktreeRoot,\n listTaskDescription:\n \"Assess whether the repository has meaningful user-facing UI and whether it has backend/server code. Set **hasUi** / **hasBackend**; when true, add non-empty **uiSourceReferences** / **backendSourceReferences** (file paths + line ranges); when false, add **uiAbsenceReason** / **backendAbsenceReason** (short text). Do not invent file paths for a false dimension.\",\n listSchemaRef: schemaRef(worktreeRoot, \"repo-surface-scan.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"repo-surface-scan.schema.json\",\n };\n case \"listExperiences\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-experiences\",\n agentDisplayName: \"Experiences list\",\n worktreeRoot,\n listTaskDescription:\n \"Follow **agent-list-experiences** (reasoning workflow): infer UI paradigm(s) from the repo (web, desktop, CLI/TUI, hybrid\u2014not an assumed SPA). List only real user-facing surfaces; every XP-* and BH-* **must** include **sourceReferences** with **minItems: 1** to concrete files (e.g. Delphi `.dfm`+`.pas`, CLI dispatch/help, extension contributes). Omit invented routes/screens. Emit views (XP-*) with nested interactions (BH-*) per the bundled schema.\",\n listSchemaRef: schemaRef(worktreeRoot, \"experiences-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"experiences-list.schema.json\",\n };\n case \"reviewExperiencesList\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-experiences-list\",\n agentDisplayName: \"Experiences list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription:\n \"Semantically review **experiences-list.json** per **agent-review-experiences-list** (classify UI paradigm, drop ungrounded views, Delphi/CLI as applicable): merge duplicate XP/BH rows, remove false views, fix split/merge mistakes; every surviving view/interaction **must** have **sourceReferences** with **minItems: 1**. Keep stable **XP-*** / **BH-*** codes. Overwrite the file.\",\n listSchemaRef: schemaRef(worktreeRoot, \"experiences-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock:\n \"\\n## Parent context\\n- The file was produced by **listExperiences** and passes schema; **overwrite** with the reviewed canonical list.\\n\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"experiences-list.schema.json\",\n };\n case \"listServices\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-services\",\n agentDisplayName: \"Services list\",\n worktreeRoot,\n listTaskDescription:\n \"Emit services (SV-*) and methods (ME-*) per the bundled schema; each **service** and **method** row **must** include **sourceReferences** with **minItems: 1**.\",\n listSchemaRef: schemaRef(worktreeRoot, \"services-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"services-list.schema.json\",\n };\n case \"reviewServicesList\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-services-list\",\n agentDisplayName: \"Services list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription:\n \"Semantically review **services-list.json**: normalize SV/ME rows (duplicates, splits, false services); each **service** and **method** **must** keep **sourceReferences** with **minItems: 1**. Stable codes. Overwrite; follow bundled agent.\",\n listSchemaRef: schemaRef(worktreeRoot, \"services-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock:\n \"\\n## Parent context\\n- Output path was written by **listServices**; **overwrite** with reviewed canonical JSON.\\n\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"services-list.schema.json\",\n };\n case \"listDataModel\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-data-model\",\n agentDisplayName: \"Data model list\",\n worktreeRoot,\n listTaskDescription:\n \"Emit `data-model-list.json`: entities (DM-*) with **code**, **name**, **slug**, and **sourceReferences** (**minItems: 1** per entity)\u2014no nested fields/relationships unless the schema allows inline rows (each inline row also needs **sourceReferences**). If the repo has no ORM/migrations/persistent schema, emit `{ \\\"entities\\\": [] }` or minimal entities grounded in files that exist\u2014do not fail on missing `prisma/`, `src/models/`, etc.\",\n listSchemaRef: schemaRef(worktreeRoot, \"data-model-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"data-model-list.schema.json\",\n };\n case \"reviewDataModelList\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-data-model-list\",\n agentDisplayName: \"Data model list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription:\n \"Semantically review **data-model-list.json**: normalize DM entity rows (duplicates, vague entities, split/merge); each **entity** (and any inline field/relationship rows) **must** keep **sourceReferences** with **minItems: 1**. Stable **DM-*** codes. Overwrite; follow bundled agent.\",\n listSchemaRef: schemaRef(worktreeRoot, \"data-model-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock:\n \"\\n## Parent context\\n- File from **listDataModel**; **overwrite** with reviewed canonical list.\\n\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"data-model-list.schema.json\",\n };\n case \"listTechStack\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-tech-stack\",\n agentDisplayName: \"Tech stack list\",\n worktreeRoot,\n listTaskDescription:\n \"Emit tools (TS-*) per the bundled schema; each tool **must** include **sourceReferences** with **minItems: 1**.\",\n listSchemaRef: schemaRef(worktreeRoot, \"tech-stack-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"tech-stack-list.schema.json\",\n };\n case \"reviewTechStackList\":\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-tech-stack-list\",\n agentDisplayName: \"Tech stack list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription:\n \"Semantically review **tech-stack-list.json**: normalize TS tool rows (duplicates, false tools); every tool must keep **sourceReferences** with at least one entry; stable **TS-*** codes. Overwrite; follow bundled agent.\",\n listSchemaRef: schemaRef(worktreeRoot, \"tech-stack-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock:\n \"\\n## Parent context\\n- File from **listTechStack**; **overwrite** with reviewed canonical list.\\n\",\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"tech-stack-list.schema.json\",\n };\n case \"listUseCases\": {\n const fe = listTarget?.featureCode;\n if (!fe) {\n throw new Error(\"listUseCases requires listTarget.featureCode\");\n }\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-use-cases\",\n agentDisplayName: \"Use cases list\",\n worktreeRoot,\n listTaskDescription: `For feature **${fe}**, list all use cases (UC-*) with stable codes, names, and **sourceReferences** (**minItems: 1** per row). Set featureCode to **${fe}** in the JSON.`,\n listSchemaRef: schemaRef(worktreeRoot, \"use-cases-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: `\\n## Parent context\\n- featureCode: **${fe}** (must match the feature row in \\`.gluecharm/context/features-list.json\\`).\\n`,\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"use-cases-list.schema.json\",\n };\n }\n case \"reviewUseCasesList\": {\n const fe = listTarget?.featureCode;\n if (!fe) {\n throw new Error(\"reviewUseCasesList requires listTarget.featureCode\");\n }\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-use-cases-list\",\n agentDisplayName: \"Use cases list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription: `Semantically review **${fe}-use-cases-list.json**: merge duplicate UC rows, remove false use cases, fix split/merge for feature **${fe}**, preserve **sourceReferences**, stable **UC-*** codes. Overwrite; follow bundled agent.`,\n listSchemaRef: schemaRef(worktreeRoot, \"use-cases-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: `\\n## Parent context\\n- featureCode: **${fe}** \u2014 file from **listUseCases**; **overwrite** with reviewed canonical JSON.\\n`,\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"use-cases-list.schema.json\",\n };\n }\n case \"listScenarios\": {\n const fe = listTarget?.featureCode;\n const uc = listTarget?.useCaseCode;\n if (!fe || !uc) {\n throw new Error(\"listScenarios requires listTarget.featureCode and useCaseCode\");\n }\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-scenarios\",\n agentDisplayName: \"Scenarios list\",\n worktreeRoot,\n listTaskDescription: `For feature **${fe}** and use case **${uc}**, list scenarios (SC-*) with stable codes, names, and **sourceReferences** (**minItems: 1** per row).`,\n listSchemaRef: schemaRef(worktreeRoot, \"scenarios-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: `\\n## Parent context\\n- featureCode: **${fe}**\\n- useCaseCode: **${uc}**\\n`,\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"scenarios-list.schema.json\",\n };\n }\n case \"reviewScenariosList\": {\n const fe = listTarget?.featureCode;\n const uc = listTarget?.useCaseCode;\n if (!fe || !uc) {\n throw new Error(\"reviewScenariosList requires listTarget.featureCode and useCaseCode\");\n }\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-scenarios-list\",\n agentDisplayName: \"Scenarios list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription: `Semantically review **${fe}_${uc}-scenarios-list.json**: normalize SC rows for **${fe}** / **${uc}**; each scenario **must** keep **sourceReferences** with **minItems: 1**. Stable **SC-*** codes. Overwrite; follow bundled agent.`,\n listSchemaRef: schemaRef(worktreeRoot, \"scenarios-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: `\\n## Parent context\\n- featureCode: **${fe}**, useCaseCode: **${uc}** \u2014 file from **listScenarios**.\\n`,\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"scenarios-list.schema.json\",\n };\n }\n case \"listEntityFields\": {\n const dm = listTarget?.entityCode;\n if (!dm) {\n throw new Error(\"listEntityFields requires listTarget.entityCode\");\n }\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-list-entity-fields\",\n agentDisplayName: \"Entity fields list\",\n worktreeRoot,\n listTaskDescription: `For entity **${dm}**, list all fields (FD-*) with stable codes, names, and slugs. Set entityCode to **${dm}** in the JSON. **Each field row must include sourceReferences** (non-empty array): repo-relative file path + startLine/endLine per evidence span, same shape as other coordination lists \u2014 never a directory path, never a readme.md basename.`,\n listSchemaRef: schemaRef(worktreeRoot, \"entity-fields-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: `\\n## Parent context\\n- entityCode: **${dm}** (must match the entity row in \\`.gluecharm/context/data-model-list.json\\`).\\n`,\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"entity-fields-list.schema.json\",\n };\n }\n case \"reviewEntityFieldsList\": {\n const dm = listTarget?.entityCode;\n if (!dm) {\n throw new Error(\"reviewEntityFieldsList requires listTarget.entityCode\");\n }\n return {\n body: fillListJsonPrompt({\n agentId: \"ctx-review-entity-fields-list\",\n agentDisplayName: \"Entity fields list \u2014 semantic review\",\n worktreeRoot,\n listTaskDescription: `Semantically review **${dm}-fields-list.json**: normalize FD rows for entity **${dm}**, preserve **sourceReferences**, stable **FD-*** codes and slugs. Overwrite; follow bundled agent.`,\n listSchemaRef: schemaRef(worktreeRoot, \"entity-fields-list.schema.json\"),\n outputFileAbsolute,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: `\\n## Parent context\\n- entityCode: **${dm}** \u2014 file from **listEntityFields**.\\n`,\n repairAppendix: listRepairAppendix,\n }),\n listSchemaFile: \"entity-fields-list.schema.json\",\n };\n }\n default: {\n const _u: never = step;\n throw new Error(`Unknown step: ${_u}`);\n }\n }\n}\n\n/**\n * Id for `opencode run --agent` \u2014 must match OpenCode\u2019s rule: **markdown basename in `.opencode/agents/` without `.md`**\n * ([OpenCode agents](https://opencode.ai/docs/agents)). Not the same as the SRS **`AGENT_ID`** row inside each agent file (`ctx-*`).\n */\nconst STEP_OPEN_CODE_AGENT_IDS: Record<ContextSynthesisTestStep, string> = {\n docsProject: \"agent-md-docs-project\",\n architecture: \"agent-md-architecture\",\n listFeatures: \"agent-list-features\",\n reviewFeaturesList: \"agent-review-features-list\",\n listRepoSurface: \"agent-repo-surface-scan\",\n listExperiences: \"agent-list-experiences\",\n reviewExperiencesList: \"agent-review-experiences-list\",\n listServices: \"agent-list-services\",\n reviewServicesList: \"agent-review-services-list\",\n listDataModel: \"agent-list-data-model\",\n reviewDataModelList: \"agent-review-data-model-list\",\n listTechStack: \"agent-list-tech-stack\",\n reviewTechStackList: \"agent-review-tech-stack-list\",\n listEntityFields: \"agent-list-entity-fields\",\n reviewEntityFieldsList: \"agent-review-entity-fields-list\",\n listUseCases: \"agent-list-use-cases\",\n reviewUseCasesList: \"agent-review-use-cases-list\",\n listScenarios: \"agent-list-scenarios\",\n reviewScenariosList: \"agent-review-scenarios-list\",\n};\n\nconst RESOLVE_OPEN_QUESTION_AGENT_STEM = \"agent-resolve-open-question\";\n\nfunction clampMarkdownOpenQuestionIterations(raw: number | undefined): number {\n let n = raw === undefined ? 5 : Math.floor(Number(raw));\n if (!Number.isFinite(n)) {\n n = 5;\n }\n return Math.min(10, Math.max(0, n));\n}\n\n/** Whether OpenCode produced the expected file (exists, regular file, non-empty). */\nfunction getExpectedOutputArtefactStatus(absolutePath: string): {\n generated: boolean;\n bytes?: number;\n reason?: \"missing\" | \"empty\" | \"not_a_file\";\n} {\n try {\n const st = fs.statSync(absolutePath);\n if (!st.isFile()) {\n return { generated: false, reason: \"not_a_file\" };\n }\n if (st.size === 0) {\n return { generated: false, reason: \"empty\" };\n }\n return { generated: true, bytes: st.size };\n } catch {\n return { generated: false, reason: \"missing\" };\n }\n}\n\nfunction outputPaths(\n step: ContextSynthesisTestStep,\n worktreeRoot: string,\n listTarget?: OpenCodeListTarget,\n): { absolute: string; basename: string } {\n const ctx = contextDir(worktreeRoot);\n switch (step) {\n case \"docsProject\":\n return { absolute: path.join(contextDir(worktreeRoot), \"project.md\"), basename: \"project.md\" };\n case \"architecture\":\n return { absolute: path.join(ctx, \"architecture.md\"), basename: \"architecture.md\" };\n case \"listFeatures\":\n return { absolute: path.join(ctx, \"features-list.json\"), basename: \"features-list.json\" };\n case \"reviewFeaturesList\":\n return { absolute: path.join(ctx, \"features-list.json\"), basename: \"features-list.json\" };\n case \"listRepoSurface\":\n return { absolute: path.join(ctx, \"repo-surface-scan.json\"), basename: \"repo-surface-scan.json\" };\n case \"listExperiences\":\n return { absolute: path.join(ctx, \"experiences-list.json\"), basename: \"experiences-list.json\" };\n case \"reviewExperiencesList\":\n return { absolute: path.join(ctx, \"experiences-list.json\"), basename: \"experiences-list.json\" };\n case \"listServices\":\n return { absolute: path.join(ctx, \"services-list.json\"), basename: \"services-list.json\" };\n case \"reviewServicesList\":\n return { absolute: path.join(ctx, \"services-list.json\"), basename: \"services-list.json\" };\n case \"listDataModel\":\n return { absolute: path.join(ctx, \"data-model-list.json\"), basename: \"data-model-list.json\" };\n case \"reviewDataModelList\":\n return { absolute: path.join(ctx, \"data-model-list.json\"), basename: \"data-model-list.json\" };\n case \"listTechStack\":\n return { absolute: path.join(ctx, \"tech-stack-list.json\"), basename: \"tech-stack-list.json\" };\n case \"reviewTechStackList\":\n return { absolute: path.join(ctx, \"tech-stack-list.json\"), basename: \"tech-stack-list.json\" };\n case \"listUseCases\": {\n const fe = listTarget?.featureCode;\n if (!fe) {\n throw new Error(\"listUseCases requires listTarget.featureCode\");\n }\n const basename = `${fe}-use-cases-list.json`;\n return { absolute: path.join(ctx, basename), basename };\n }\n case \"reviewUseCasesList\": {\n const fe = listTarget?.featureCode;\n if (!fe) {\n throw new Error(\"reviewUseCasesList requires listTarget.featureCode\");\n }\n const basename = `${fe}-use-cases-list.json`;\n return { absolute: path.join(ctx, basename), basename };\n }\n case \"listScenarios\": {\n const fe = listTarget?.featureCode;\n const uc = listTarget?.useCaseCode;\n if (!fe || !uc) {\n throw new Error(\"listScenarios requires listTarget.featureCode and useCaseCode\");\n }\n const basename = `${fe}_${uc}-scenarios-list.json`;\n return { absolute: path.join(ctx, basename), basename };\n }\n case \"reviewScenariosList\": {\n const fe = listTarget?.featureCode;\n const uc = listTarget?.useCaseCode;\n if (!fe || !uc) {\n throw new Error(\"reviewScenariosList requires listTarget.featureCode and useCaseCode\");\n }\n const basename = `${fe}_${uc}-scenarios-list.json`;\n return { absolute: path.join(ctx, basename), basename };\n }\n case \"listEntityFields\": {\n const dm = listTarget?.entityCode;\n if (!dm) {\n throw new Error(\"listEntityFields requires listTarget.entityCode\");\n }\n const basename = `${dm}-fields-list.json`;\n return { absolute: path.join(ctx, basename), basename };\n }\n case \"reviewEntityFieldsList\": {\n const dm = listTarget?.entityCode;\n if (!dm) {\n throw new Error(\"reviewEntityFieldsList requires listTarget.entityCode\");\n }\n const basename = `${dm}-fields-list.json`;\n return { absolute: path.join(ctx, basename), basename };\n }\n default: {\n const _u: never = step;\n throw new Error(`Unknown step: ${_u}`);\n }\n }\n}\n\nexport interface OpenCodeResolveOpenQuestionRunOptions {\n worktreeRoot: string;\n executable: string;\n argvTemplate: string[];\n timeoutMs: number;\n diagnosticLog?: (line: string) => void;\n onAgentLaunched?: () => void;\n abortSignal?: AbortSignal;\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void;\n targetMarkdownAbsolute: string;\n targetBasename: string;\n questionText: string;\n /** SRS-36: when set, argv uses `-s` only (no new session). */\n followUpOpenCodeSessionId?: string;\n artefactRunId?: string;\n artefactWorkItemId?: string;\n stewardshipStepLabel?: string;\n openCodeChildEnv?: Record<string, string>;\n}\n\nexport interface OpenCodeResolveOpenQuestionRunResult {\n ok: boolean;\n message: string;\n promptPath: string;\n cancelled?: boolean;\n}\n\nexport async function runOpenCodeResolveOpenQuestionStep(\n opts: OpenCodeResolveOpenQuestionRunOptions,\n): Promise<OpenCodeResolveOpenQuestionRunResult> {\n const runDir = path.join(opts.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const resolutionJsonAbsolute = openQuestionResolutionJsonAbsolute(opts.worktreeRoot);\n const body = fillResolveOpenQuestionPrompt({\n worktreeRoot: opts.worktreeRoot,\n targetMarkdownAbsolute: opts.targetMarkdownAbsolute,\n targetBasename: opts.targetBasename,\n questionText: opts.questionText,\n resolutionJsonAbsolute,\n });\n const promptPath = path.join(runDir, `resolve-open-question-${Date.now()}.prompt.txt`);\n fs.writeFileSync(promptPath, body, \"utf-8\");\n const vars = {\n promptFile: promptPath,\n agentId: RESOLVE_OPEN_QUESTION_AGENT_STEM,\n worktree: opts.worktreeRoot,\n };\n const expanded = expandArgvTemplate(opts.argvTemplate, vars);\n const runId = opts.artefactRunId ?? \"unknown-run\";\n const workItemId = opts.artefactWorkItemId ?? \"unknown-item\";\n const stepLabel = opts.stewardshipStepLabel ?? \"resolve-open-question\";\n const argv = applyOpenCodeStewardshipToExpandedArgv(expanded, {\n followUpSessionId: opts.followUpOpenCodeSessionId,\n runId,\n workItemId,\n stepLabel,\n diagnosticLog: opts.diagnosticLog,\n });\n opts.diagnosticLog?.(\n `[OpenCode] resolve open question \u2014 prompt: ${promptPath} (${Buffer.byteLength(body, \"utf8\")} bytes)`,\n );\n opts.onRemediationPhase?.(\"generating\");\n const cli = await runOpenCodeAgent(opts.worktreeRoot, argv, {\n timeoutMs: opts.timeoutMs,\n executable: opts.executable,\n diagnosticLog: opts.diagnosticLog,\n onAgentLaunched: opts.onAgentLaunched,\n signal: opts.abortSignal,\n parseOpenCodeSessionFromJsonStdout: opts.followUpOpenCodeSessionId === undefined,\n childEnv: opts.openCodeChildEnv,\n });\n opts.onRemediationPhase?.(\"validating\");\n if (cli.cancelled || opts.abortSignal?.aborted) {\n return {\n ok: false,\n cancelled: true,\n message: \"Remediation stopped.\",\n promptPath,\n };\n }\n if (!cli.ok) {\n const tail =\n cli.message.length > 12_000 ? `${cli.message.slice(0, 12_000)}\\n\\n\u2026 (truncated)` : cli.message;\n return {\n ok: false,\n message: `OpenCode failed (resolve open question).\\n\\n${tail}\\n\\nPrompt: ${promptPath}`,\n promptPath,\n };\n }\n return {\n ok: true,\n message: `OpenCode exited 0.\\n\\n${cli.message}`,\n promptPath,\n };\n}\n\ntype MarkdownDetailTargetShape = {\n openCodeAgentStem: string;\n agentId: string;\n displayName: string;\n outputBasename: string;\n taskDescription: string;\n};\n\ntype MarkdownRemediationCommon = {\n worktreeRoot: string;\n executable: string;\n argvTemplate: string[];\n timeoutMs: number;\n diagnosticLog?: (line: string) => void;\n abortSignal?: AbortSignal;\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void;\n onAgentLaunched?: () => void;\n maxMarkdownEvidenceRepairs: number;\n outputFileAbsolute: string;\n outputBasename: string;\n /** SRS-36 */\n artefactRunId: string;\n artefactWorkItemId: string;\n stewardshipStepLabel: string;\n producerOpenCodeSessionId?: string;\n openCodeChildEnv?: Record<string, string>;\n};\n\nasync function runSynthesisMarkdownRemediationChain(\n common: MarkdownRemediationCommon,\n step: \"docsProject\" | \"architecture\",\n workspaceLabel: string,\n initialMarkdownAppendix: string | undefined,\n): Promise<{ ok: boolean; message: string; promptPath: string; cancelled?: boolean }> {\n const totalMarkdownRuns = 1 + common.maxMarkdownEvidenceRepairs;\n const runDir = path.join(common.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n let markdownEvidenceRepairAppendix: string | undefined = initialMarkdownAppendix;\n let lastPromptPath = \"\";\n let lastCliMessage = \"\";\n\n for (let attempt = 0; attempt < totalMarkdownRuns; attempt++) {\n if (common.abortSignal?.aborted) {\n return { ok: false, cancelled: true, message: \"Remediation stopped.\", promptPath: lastPromptPath };\n }\n const { body } = buildPromptBody(\n step,\n common.worktreeRoot,\n workspaceLabel,\n common.outputFileAbsolute,\n common.outputBasename,\n undefined,\n undefined,\n markdownEvidenceRepairAppendix,\n );\n const promptPath = path.join(runDir, `${step}-oqrem-a${attempt}-${Date.now()}.prompt.txt`);\n lastPromptPath = promptPath;\n fs.writeFileSync(promptPath, body, \"utf-8\");\n const vars = {\n promptFile: promptPath,\n agentId: STEP_OPEN_CODE_AGENT_IDS[step],\n worktree: common.worktreeRoot,\n };\n const expanded = expandArgvTemplate(common.argvTemplate, vars);\n const argv = applyOpenCodeStewardshipToExpandedArgv(expanded, {\n followUpSessionId: common.producerOpenCodeSessionId,\n runId: common.artefactRunId,\n workItemId: common.artefactWorkItemId,\n stepLabel: common.stewardshipStepLabel,\n diagnosticLog: common.diagnosticLog,\n });\n common.diagnosticLog?.(`[OpenCode] prompt file: ${promptPath} (${Buffer.byteLength(body, \"utf8\")} bytes)`);\n common.onRemediationPhase?.(\"generating\");\n const cli = await runOpenCodeAgent(common.worktreeRoot, argv, {\n timeoutMs: common.timeoutMs,\n executable: common.executable,\n diagnosticLog: common.diagnosticLog,\n onAgentLaunched: common.onAgentLaunched,\n signal: common.abortSignal,\n parseOpenCodeSessionFromJsonStdout: common.producerOpenCodeSessionId === undefined,\n childEnv: common.openCodeChildEnv,\n });\n common.onRemediationPhase?.(\"validating\");\n lastCliMessage = cli.message;\n if (cli.cancelled || common.abortSignal?.aborted) {\n return { ok: false, cancelled: true, message: \"Remediation stopped.\", promptPath: lastPromptPath };\n }\n if (!cli.ok) {\n const tail =\n lastCliMessage.length > 12_000\n ? `${lastCliMessage.slice(0, 12_000)}\\n\\n\u2026 (truncated)`\n : lastCliMessage;\n return {\n ok: false,\n message: `OpenCode failed.\\n\\n${tail}\\n\\nPrompt: ${lastPromptPath}`,\n promptPath: lastPromptPath,\n };\n }\n const artefact = getExpectedOutputArtefactStatus(common.outputFileAbsolute);\n if (!artefact.generated) {\n return {\n ok: false,\n message: `OpenCode exited 0, but **expected output file is missing or empty**.\\n\\n${common.outputFileAbsolute}`,\n promptPath: lastPromptPath,\n };\n }\n const ev = validateMarkdownEvidenceIndexFile(common.outputFileAbsolute);\n if (ev.ok) {\n return { ok: true, message: cli.message, promptPath: lastPromptPath };\n }\n if (ev.reason === \"read\") {\n return { ok: false, message: ev.message, promptPath: lastPromptPath };\n }\n if (ev.reason === \"forbidden_evidence_reference\") {\n if (attempt >= common.maxMarkdownEvidenceRepairs) {\n return {\n ok: false,\n message: `**## Evidence index** cites forbidden sources: ${ev.message}`,\n promptPath: lastPromptPath,\n };\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(\n common.outputFileAbsolute,\n \"forbidden\",\n ev.message,\n );\n common.diagnosticLog?.(\n `[markdown evidence repair] re-running after forbidden Evidence index citation(s) (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n continue;\n }\n if (attempt >= common.maxMarkdownEvidenceRepairs) {\n return {\n ok: false,\n message:\n \"OpenCode wrote a file, but **`## Evidence index`** is missing or empty (SRS-16). Add substantive `path:line` (or range) bullets under **`## Evidence index`**, or add **`Status: hallucination?`** on its own line immediately under the `#` title if grounding is impossible.\",\n promptPath: lastPromptPath,\n };\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(common.outputFileAbsolute, \"empty\");\n common.diagnosticLog?.(\n `[markdown evidence repair] re-running after empty or missing Evidence index (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n }\n return {\n ok: false,\n message: `Markdown remediation chain exhausted (${totalMarkdownRuns} run(s)).`,\n promptPath: lastPromptPath,\n };\n}\n\nasync function runDetailMarkdownRemediationChain(\n common: MarkdownRemediationCommon,\n target: MarkdownDetailTargetShape,\n initialMarkdownAppendix: string | undefined,\n): Promise<{ ok: boolean; message: string; promptPath: string; cancelled?: boolean }> {\n const totalMarkdownRuns = 1 + common.maxMarkdownEvidenceRepairs;\n const runDir = path.join(common.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const safeStem = target.outputBasename.replace(/[^A-Za-z0-9_.-]+/g, \"_\").slice(0, 120);\n let markdownEvidenceRepairAppendix: string | undefined = initialMarkdownAppendix;\n let lastPromptPath = \"\";\n let lastCliMessage = \"\";\n\n for (let attempt = 0; attempt < totalMarkdownRuns; attempt++) {\n if (common.abortSignal?.aborted) {\n return { ok: false, cancelled: true, message: \"Remediation stopped.\", promptPath: lastPromptPath };\n }\n const body = fillMarkdownPrompt({\n agentId: target.agentId,\n agentDisplayName: target.displayName,\n worktreeRoot: common.worktreeRoot,\n taskDescription: target.taskDescription,\n outputFileAbsolute: common.outputFileAbsolute,\n outputBasename: common.outputBasename,\n citationFormatExample: CITATION_EXAMPLE,\n repairAppendix: markdownEvidenceRepairAppendix,\n });\n const promptPath = path.join(\n runDir,\n `markdownDetail-${target.openCodeAgentStem}-${safeStem}-oqrem-a${attempt}-${Date.now()}.prompt.txt`,\n );\n lastPromptPath = promptPath;\n fs.writeFileSync(promptPath, body, \"utf-8\");\n const vars = {\n promptFile: promptPath,\n agentId: target.openCodeAgentStem,\n worktree: common.worktreeRoot,\n };\n const expanded = expandArgvTemplate(common.argvTemplate, vars);\n const argv = applyOpenCodeStewardshipToExpandedArgv(expanded, {\n followUpSessionId: common.producerOpenCodeSessionId,\n runId: common.artefactRunId,\n workItemId: common.artefactWorkItemId,\n stepLabel: common.stewardshipStepLabel,\n diagnosticLog: common.diagnosticLog,\n });\n common.diagnosticLog?.(`[OpenCode] prompt file: ${promptPath} (${Buffer.byteLength(body, \"utf8\")} bytes)`);\n common.onRemediationPhase?.(\"generating\");\n const cli = await runOpenCodeAgent(common.worktreeRoot, argv, {\n timeoutMs: common.timeoutMs,\n executable: common.executable,\n diagnosticLog: common.diagnosticLog,\n onAgentLaunched: common.onAgentLaunched,\n signal: common.abortSignal,\n parseOpenCodeSessionFromJsonStdout: common.producerOpenCodeSessionId === undefined,\n childEnv: common.openCodeChildEnv,\n });\n common.onRemediationPhase?.(\"validating\");\n lastCliMessage = cli.message;\n if (cli.cancelled || common.abortSignal?.aborted) {\n return { ok: false, cancelled: true, message: \"Remediation stopped.\", promptPath: lastPromptPath };\n }\n if (!cli.ok) {\n const tail =\n lastCliMessage.length > 12_000\n ? `${lastCliMessage.slice(0, 12_000)}\\n\\n\u2026 (truncated)`\n : lastCliMessage;\n return {\n ok: false,\n message: `OpenCode failed.\\n\\n${tail}\\n\\nPrompt: ${lastPromptPath}`,\n promptPath: lastPromptPath,\n };\n }\n const artefact = getExpectedOutputArtefactStatus(common.outputFileAbsolute);\n if (!artefact.generated) {\n return {\n ok: false,\n message: `OpenCode exited 0, but **expected output file is missing or empty**.\\n\\n${common.outputFileAbsolute}`,\n promptPath: lastPromptPath,\n };\n }\n const ev = validateMarkdownEvidenceIndexFile(common.outputFileAbsolute);\n if (ev.ok) {\n return { ok: true, message: cli.message, promptPath: lastPromptPath };\n }\n if (ev.reason === \"read\") {\n return { ok: false, message: ev.message, promptPath: lastPromptPath };\n }\n if (ev.reason === \"forbidden_evidence_reference\") {\n if (attempt >= common.maxMarkdownEvidenceRepairs) {\n return {\n ok: false,\n message: `**## Evidence index** cites forbidden sources: ${ev.message}`,\n promptPath: lastPromptPath,\n };\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(\n common.outputFileAbsolute,\n \"forbidden\",\n ev.message,\n );\n common.diagnosticLog?.(\n `[markdown evidence repair] re-running after forbidden Evidence index citation(s) (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n continue;\n }\n if (attempt >= common.maxMarkdownEvidenceRepairs) {\n return {\n ok: false,\n message:\n \"OpenCode wrote a file, but **`## Evidence index`** is missing or empty (SRS-16). Add substantive `path:line` (or range) bullets under **`## Evidence index`**, or add **`Status: hallucination?`** on its own line immediately under the `#` title if grounding is impossible.\",\n promptPath: lastPromptPath,\n };\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(common.outputFileAbsolute, \"empty\");\n common.diagnosticLog?.(\n `[markdown evidence repair] re-running after empty or missing Evidence index (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n }\n return {\n ok: false,\n message: `Markdown remediation chain exhausted (${totalMarkdownRuns} run(s)).`,\n promptPath: lastPromptPath,\n };\n}\n\nexport type OpenQuestionsMarkdownRemediationMode =\n | { type: \"synthesis\"; step: \"docsProject\" | \"architecture\"; workspaceLabel: string }\n | { type: \"detail\"; target: MarkdownDetailTargetShape };\n\nexport async function remediateOpenQuestionsForContextMarkdown(\n mode: OpenQuestionsMarkdownRemediationMode,\n producerStepLabel: string,\n outputFileAbsolute: string,\n outputBasename: string,\n worktreeRoot: string,\n markdownOpenQuestionIterations: number | undefined,\n markdownEvidenceRepairAttempts: number | undefined,\n executable: string,\n argvTemplate: string[],\n timeoutMs: number,\n diagnosticLog?: (line: string) => void,\n abortSignal?: AbortSignal,\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void,\n onAgentLaunched?: () => void,\n stewardship?: {\n artefactRunId?: string;\n artefactWorkItemId?: string;\n producerOpenCodeSessionId?: string;\n },\n openCodeChildEnv?: Record<string, string>,\n): Promise<{ ok: boolean; message?: string; cancelled?: boolean }> {\n const maxOq = clampMarkdownOpenQuestionIterations(markdownOpenQuestionIterations);\n let maxMdEv =\n markdownEvidenceRepairAttempts === undefined ? 2 : Math.floor(Number(markdownEvidenceRepairAttempts));\n if (!Number.isFinite(maxMdEv)) {\n maxMdEv = 2;\n }\n maxMdEv = Math.min(5, Math.max(0, maxMdEv));\n\n const runId = stewardship?.artefactRunId ?? \"unknown-run\";\n const workItemId = stewardship?.artefactWorkItemId ?? \"unknown-item\";\n const common: MarkdownRemediationCommon = {\n worktreeRoot,\n executable,\n argvTemplate,\n timeoutMs,\n diagnosticLog,\n abortSignal,\n onRemediationPhase,\n onAgentLaunched,\n maxMarkdownEvidenceRepairs: maxMdEv,\n outputFileAbsolute,\n outputBasename,\n artefactRunId: runId,\n artefactWorkItemId: workItemId,\n stewardshipStepLabel: `${producerStepLabel}|open-questions-chain`,\n producerOpenCodeSessionId: stewardship?.producerOpenCodeSessionId,\n openCodeChildEnv,\n };\n\n const first = validateOpenQuestionsSectionFile(outputFileAbsolute, { worktreeRoot });\n if (!first.ok) {\n if (first.reason === \"out_of_scope\") {\n return { ok: true };\n }\n return { ok: false, message: first.message };\n }\n if (openQuestionsValidationPasses(first.parse)) {\n return { ok: true };\n }\n\n if (maxOq === 0) {\n const qs =\n first.parse.kind === \"hasResidualQuestions\" ? first.parse.questions.join(\"; \") : \"(unknown)\";\n return {\n ok: false,\n message: `SRS-28: **## Open Questions** is non-empty but **markdownOpenQuestionIterations** is 0. Questions: ${qs}`,\n };\n }\n\n let round = 0;\n while (round < maxOq) {\n round++;\n if (abortSignal?.aborted) {\n return { ok: false, cancelled: true, message: \"Remediation stopped.\" };\n }\n\n const fr = validateOpenQuestionsSectionFile(outputFileAbsolute, { worktreeRoot });\n if (!fr.ok) {\n return { ok: false, message: fr.message };\n }\n if (openQuestionsValidationPasses(fr.parse)) {\n diagnosticLog?.(`[open questions] section passes validation (after round ${round})`);\n return { ok: true };\n }\n if (fr.parse.kind !== \"hasResidualQuestions\") {\n return { ok: true };\n }\n\n const question = fr.parse.questions[0] ?? \"\";\n diagnosticLog?.(\n `[open questions] round ${round}/${maxOq} \u2014 resolving first item (${producerStepLabel}): ${question.slice(0, 160)}${question.length > 160 ? \"\u2026\" : \"\"}`,\n );\n\n deleteOpenQuestionResolutionFile(worktreeRoot);\n const resolveRes = await runOpenCodeResolveOpenQuestionStep({\n worktreeRoot,\n executable,\n argvTemplate,\n timeoutMs,\n diagnosticLog,\n onAgentLaunched,\n abortSignal,\n onRemediationPhase,\n targetMarkdownAbsolute: outputFileAbsolute,\n targetBasename: outputBasename,\n questionText: question,\n followUpOpenCodeSessionId: stewardship?.producerOpenCodeSessionId,\n artefactRunId: runId,\n artefactWorkItemId: workItemId,\n stewardshipStepLabel: `${producerStepLabel}|resolve-oq`,\n openCodeChildEnv,\n });\n\n if (resolveRes.cancelled || abortSignal?.aborted) {\n return { ok: false, cancelled: true, message: resolveRes.message };\n }\n if (!resolveRes.ok) {\n return { ok: false, message: resolveRes.message };\n }\n\n const parsed = readOpenQuestionResolutionFile(worktreeRoot);\n const outcome = parsed.ok ? parsed.outcome : \"cannot_resolve\";\n const reasonText = parsed.ok ? parsed.reason : parsed.error;\n\n let ev = validateMarkdownEvidenceIndexFile(outputFileAbsolute);\n if (!ev.ok) {\n diagnosticLog?.(\n `[open questions] evidence validation failed after resolution \u2014 running evidence repair chain (${ev.reason ?? \"unknown\"})`,\n );\n const evOnlyAppendix =\n ev.reason === \"forbidden_evidence_reference\"\n ? formatMarkdownEvidenceRepairAppendix(outputFileAbsolute, \"forbidden\", ev.message)\n : formatMarkdownEvidenceRepairAppendix(outputFileAbsolute, \"empty\");\n const chain =\n mode.type === \"synthesis\"\n ? await runSynthesisMarkdownRemediationChain(\n common,\n mode.step,\n mode.workspaceLabel,\n evOnlyAppendix,\n )\n : await runDetailMarkdownRemediationChain(common, mode.target, evOnlyAppendix);\n if (!chain.ok) {\n return { ok: false, message: chain.message, cancelled: chain.cancelled };\n }\n ev = validateMarkdownEvidenceIndexFile(outputFileAbsolute);\n if (!ev.ok) {\n return {\n ok: false,\n message: `After open-question resolution, **## Evidence index** is still invalid (${ev.reason ?? \"unknown\"}).`,\n };\n }\n }\n\n if (outcome === \"cannot_resolve\" || !parsed.ok) {\n diagnosticLog?.(\n `[open questions] RED FLAG \u2014 cannot_resolve for **${producerStepLabel}** \u2014 ${outputFileAbsolute} \u2014 ${reasonText ?? \"\"}`,\n );\n const oqApp = formatOpenQuestionsProducerRepairAppendix(\n outputFileAbsolute,\n producerStepLabel,\n question,\n reasonText ?? \"Resolution JSON missing or invalid\",\n );\n const prod =\n mode.type === \"synthesis\"\n ? await runSynthesisMarkdownRemediationChain(common, mode.step, mode.workspaceLabel, oqApp)\n : await runDetailMarkdownRemediationChain(common, mode.target, oqApp);\n if (!prod.ok) {\n return { ok: false, message: prod.message, cancelled: prod.cancelled };\n }\n ev = validateMarkdownEvidenceIndexFile(outputFileAbsolute);\n if (!ev.ok) {\n return {\n ok: false,\n message: `After producer open-question repair, **## Evidence index** is invalid (${ev.reason ?? \"unknown\"}).`,\n };\n }\n continue;\n }\n\n diagnosticLog?.(`[open questions] resolution agent reported **answered** \u2014 re-validating section`);\n }\n\n const last = validateOpenQuestionsSectionFile(outputFileAbsolute, { worktreeRoot });\n if (last.ok && openQuestionsValidationPasses(last.parse)) {\n return { ok: true };\n }\n const leftover =\n last.ok && last.parse.kind === \"hasResidualQuestions\" ? last.parse.questions.join(\"; \") : \"(see file)\";\n return {\n ok: false,\n message: `SRS-28: open-question remediation exceeded **${maxOq}** round(s). Remaining: ${leftover}`,\n };\n}\n\n/**\n * Writes prompt under `.opencode/_run/` and spawns OpenCode with expanded argv.\n */\nexport async function runOpenCodeTestAgentStep(opts: OpenCodeTestRunOptions): Promise<OpenCodeTestRunResult> {\n if (opts.step === \"listUseCases\" && !opts.listTarget?.featureCode) {\n return {\n ok: false,\n message:\n \"Internal error: listUseCases requires featureCode (per-feature use case list). Use the dynamic Run row from the Analysis panel.\",\n outputPath: \"\",\n promptPath: \"\",\n step: opts.step,\n };\n }\n if (\n opts.step === \"listScenarios\" &&\n (!opts.listTarget?.featureCode || !opts.listTarget?.useCaseCode)\n ) {\n return {\n ok: false,\n message:\n \"Internal error: listScenarios requires featureCode and useCaseCode. Use the dynamic Run row from the Analysis panel.\",\n outputPath: \"\",\n promptPath: \"\",\n step: opts.step,\n };\n }\n if (opts.step === \"listEntityFields\" && !opts.listTarget?.entityCode) {\n return {\n ok: false,\n message:\n \"Internal error: listEntityFields requires entityCode (DM-nn). Use the dynamic Run row from the Analysis panel.\",\n outputPath: \"\",\n promptPath: \"\",\n step: opts.step,\n };\n }\n if (opts.step === \"reviewUseCasesList\" && !opts.listTarget?.featureCode) {\n return {\n ok: false,\n message:\n \"Internal error: reviewUseCasesList requires featureCode. Use the dynamic Run row from the Analysis panel.\",\n outputPath: \"\",\n promptPath: \"\",\n step: opts.step,\n };\n }\n if (\n opts.step === \"reviewScenariosList\" &&\n (!opts.listTarget?.featureCode || !opts.listTarget?.useCaseCode)\n ) {\n return {\n ok: false,\n message:\n \"Internal error: reviewScenariosList requires featureCode and useCaseCode. Use the dynamic Run row from the Analysis panel.\",\n outputPath: \"\",\n promptPath: \"\",\n step: opts.step,\n };\n }\n if (opts.step === \"reviewEntityFieldsList\" && !opts.listTarget?.entityCode) {\n return {\n ok: false,\n message:\n \"Internal error: reviewEntityFieldsList requires entityCode (DM-nn). Use the dynamic Run row from the Analysis panel.\",\n outputPath: \"\",\n promptPath: \"\",\n step: opts.step,\n };\n }\n\n const { absolute: outputFileAbsolute, basename: outputBasename } = outputPaths(\n opts.step,\n opts.worktreeRoot,\n opts.listTarget,\n );\n const { listSchemaFile } = buildPromptBody(\n opts.step,\n opts.worktreeRoot,\n opts.workspaceLabel,\n outputFileAbsolute,\n outputBasename,\n opts.listTarget,\n undefined,\n undefined,\n );\n\n /** Every coordination list JSON output should use `listSchemaFile`; basename inference is a fallback for parity tests / future steps. */\n const effectiveListSchemaFile =\n listSchemaFile ?? coordinationListSchemaBasenameForOutputBasename(outputBasename);\n\n let schemaAbsoluteForList: string | undefined;\n if (effectiveListSchemaFile) {\n schemaAbsoluteForList = schemaRef(opts.worktreeRoot, effectiveListSchemaFile);\n if (!fs.existsSync(schemaAbsoluteForList)) {\n return {\n ok: false,\n message: `JSON Schema not found: ${schemaAbsoluteForList}\\nRun **Materialize agents** first (copies list schemas into this folder\u2019s \\`.opencode/schemas/context-lists/\\`).`,\n outputPath: outputFileAbsolute,\n promptPath: \"\",\n step: opts.step,\n };\n }\n }\n\n /** SRS-34: empty experiences list (SRS-20 hasUi=false) \u2014 skip OpenCode for semantic review. */\n if (opts.step === \"reviewExperiencesList\" && effectiveListSchemaFile) {\n const schemaAbs = schemaRef(opts.worktreeRoot, effectiveListSchemaFile);\n if (fs.existsSync(outputFileAbsolute)) {\n const v = validateCoordinationListJson(outputFileAbsolute, schemaAbs);\n if (v.ok) {\n try {\n const raw = fs.readFileSync(outputFileAbsolute, \"utf-8\");\n const data = JSON.parse(raw) as { views?: unknown };\n if (Array.isArray(data.views) && data.views.length === 0) {\n return {\n ok: true,\n message:\n \"Skipped experiences semantic review (empty views list after SRS-20 no-UI path); file already valid.\",\n outputPath: outputFileAbsolute,\n promptPath: \"\",\n step: opts.step,\n };\n }\n } catch {\n /* fall through to normal OpenCode path */\n }\n }\n }\n }\n\n /** Ensure output parent dir exists so OpenCode tools can write without an extra mkdir step (list agents often omit it). */\n fs.mkdirSync(path.dirname(outputFileAbsolute), { recursive: true });\n\n const runDir = path.join(opts.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const scopeSuffix =\n (opts.step === \"listUseCases\" || opts.step === \"reviewUseCasesList\") && opts.listTarget?.featureCode\n ? `-${opts.listTarget.featureCode}`\n : (opts.step === \"listScenarios\" || opts.step === \"reviewScenariosList\") &&\n opts.listTarget?.featureCode &&\n opts.listTarget?.useCaseCode\n ? `-${opts.listTarget.featureCode}_${opts.listTarget.useCaseCode}`\n : (opts.step === \"listEntityFields\" || opts.step === \"reviewEntityFieldsList\") &&\n opts.listTarget?.entityCode\n ? `-${opts.listTarget.entityCode}`\n : \"\";\n\n const rawRepair = opts.listJsonSchemaRepairAttempts;\n let maxRepairAttempts = rawRepair === undefined ? 1 : Math.floor(Number(rawRepair));\n if (!Number.isFinite(maxRepairAttempts)) {\n maxRepairAttempts = 1;\n }\n maxRepairAttempts = Math.min(5, Math.max(0, maxRepairAttempts));\n\n const rawMdEv = opts.markdownEvidenceRepairAttempts;\n let maxMarkdownEvidenceRepairs =\n rawMdEv === undefined ? 2 : Math.floor(Number(rawMdEv));\n if (!Number.isFinite(maxMarkdownEvidenceRepairs)) {\n maxMarkdownEvidenceRepairs = 2;\n }\n maxMarkdownEvidenceRepairs = Math.min(5, Math.max(0, maxMarkdownEvidenceRepairs));\n const totalMarkdownRuns = 1 + maxMarkdownEvidenceRepairs;\n\n const totalRuns = effectiveListSchemaFile ? 1 + maxRepairAttempts : totalMarkdownRuns;\n\n let repairAppendix: string | undefined;\n let markdownEvidenceRepairAppendix: string | undefined;\n let lastPromptPath = \"\";\n let lastCliMessage = \"\";\n let cliProcessOk = false;\n let artefactOk = false;\n /** For coordination list JSON: false until artefact exists and schema validation passes. For markdown: set in evidence loop. */\n let validationOk = false;\n let validationFailureText: string | undefined;\n let lastArtefactBytes: number | undefined;\n let capturedOpenCodeSessionId: string | undefined;\n /** Session id after primary artefact + validation (before open-question remediation follow-ups). */\n let sessionIdForAceTrace: string | undefined;\n\n const stewardshipRunId = opts.artefactRunId ?? \"unknown-run\";\n const stewardshipWorkItemId = opts.artefactWorkItemId ?? \"unknown-item\";\n const stewardshipStepLabelCoord = buildCoordStepLabel(opts.step, opts.listTarget);\n\n for (let attempt = 0; attempt < totalRuns; attempt++) {\n if (opts.abortSignal?.aborted) {\n return {\n ok: false,\n message: \"Remediation stopped.\",\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: opts.step,\n cancelled: true,\n };\n }\n const { body } = buildPromptBody(\n opts.step,\n opts.worktreeRoot,\n opts.workspaceLabel,\n outputFileAbsolute,\n outputBasename,\n opts.listTarget,\n effectiveListSchemaFile ? repairAppendix : undefined,\n effectiveListSchemaFile ? undefined : markdownEvidenceRepairAppendix,\n );\n\n const promptPath = path.join(runDir, `${opts.step}${scopeSuffix}-a${attempt}-${Date.now()}.prompt.txt`);\n lastPromptPath = promptPath;\n fs.writeFileSync(promptPath, body, \"utf-8\");\n\n const vars = {\n promptFile: promptPath,\n agentId: STEP_OPEN_CODE_AGENT_IDS[opts.step],\n worktree: opts.worktreeRoot,\n };\n const expandedArgv = expandArgvTemplate(opts.argvTemplate, vars);\n const followUpSid = attempt > 0 ? capturedOpenCodeSessionId : undefined;\n const argv = applyOpenCodeStewardshipToExpandedArgv(expandedArgv, {\n followUpSessionId: followUpSid,\n runId: stewardshipRunId,\n workItemId: stewardshipWorkItemId,\n stepLabel: stewardshipStepLabelCoord,\n diagnosticLog: opts.diagnosticLog,\n });\n const byteLen = Buffer.byteLength(body, \"utf8\");\n opts.diagnosticLog?.(`[OpenCode] prompt file: ${promptPath} (${byteLen} bytes)`);\n\n opts.onRemediationPhase?.(\"generating\");\n const isFollowUpSpawn = followUpSid !== undefined;\n const cli = await runOpenCodeAgent(opts.worktreeRoot, argv, {\n timeoutMs: opts.timeoutMs,\n executable: opts.executable,\n diagnosticLog: opts.diagnosticLog,\n onAgentLaunched: opts.onAgentLaunched,\n signal: opts.abortSignal,\n parseOpenCodeSessionFromJsonStdout: !isFollowUpSpawn,\n childEnv: opts.openCodeChildEnv,\n });\n\n if (cli.cancelled || opts.abortSignal?.aborted) {\n return {\n ok: false,\n message: \"Remediation stopped.\",\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: opts.step,\n cancelled: true,\n };\n }\n\n opts.onRemediationPhase?.(\"validating\");\n lastCliMessage = cli.message;\n cliProcessOk = cli.ok;\n if (cli.openCodeSessionId) {\n capturedOpenCodeSessionId = cli.openCodeSessionId;\n }\n if (attempt === 0 && cli.ok) {\n logOpenCodeSessionPrimaryComplete(opts.diagnosticLog, {\n workItemId: stewardshipWorkItemId,\n runId: stewardshipRunId,\n title: buildOpenCodeSessionTitle({\n runId: stewardshipRunId,\n workItemId: stewardshipWorkItemId,\n stepLabel: stewardshipStepLabelCoord,\n }),\n sessionId: cli.openCodeSessionId,\n });\n }\n const artefact = getExpectedOutputArtefactStatus(outputFileAbsolute);\n artefactOk = artefact.generated;\n lastArtefactBytes = artefact.bytes;\n\n const artefactReason =\n artefact.reason === \"missing\"\n ? \"file does not exist\"\n : artefact.reason === \"empty\"\n ? \"file exists but is empty (0 bytes)\"\n : artefact.reason === \"not_a_file\"\n ? \"path exists but is not a regular file\"\n : \"\";\n opts.diagnosticLog?.(\n artefactOk\n ? `[OpenCode] expected output in worktree: FOUND \u2014 ${outputFileAbsolute} (${artefact.bytes} bytes)`\n : `[OpenCode] expected output in worktree: NOT FOUND \u2014 ${outputFileAbsolute} (${artefactReason})`,\n );\n\n if (!cliProcessOk) {\n break;\n }\n\n if (!artefactOk) {\n validationOk = false;\n validationFailureText = effectiveListSchemaFile\n ? `Expected JSON output ${artefactReason ? `(${artefactReason})` : \"missing or invalid\"}`\n : `Expected markdown output ${artefactReason ? `(${artefactReason})` : \"missing or invalid\"}`;\n if (!effectiveListSchemaFile || !schemaAbsoluteForList || attempt >= maxRepairAttempts) {\n break;\n }\n const r = artefact.reason;\n const artefactReasonKey: \"missing\" | \"empty\" | \"not_a_file\" =\n r === \"empty\" || r === \"not_a_file\" ? r : \"missing\";\n repairAppendix = formatCoordinationJsonMissingArtefactRepairAppendix(outputBasename, artefactReasonKey);\n opts.diagnosticLog?.(\n `[OpenCode] list JSON artefact missing or empty \u2014 re-running with repair appendix (run ${attempt + 2} of ${totalRuns})`,\n );\n continue;\n }\n\n if (!effectiveListSchemaFile || !schemaAbsoluteForList) {\n const ev = validateMarkdownEvidenceIndexFile(outputFileAbsolute);\n if (ev.ok) {\n validationOk = true;\n sessionIdForAceTrace = capturedOpenCodeSessionId;\n opts.diagnosticLog?.(`[OpenCode] markdown Evidence index validation passed \u2014 ${outputFileAbsolute}`);\n if (opts.step !== \"docsProject\" && opts.step !== \"architecture\") {\n validationOk = false;\n validationFailureText = `Internal error: expected docsProject or architecture in markdown path, got **${opts.step}**.`;\n break;\n }\n const oqRes = await remediateOpenQuestionsForContextMarkdown(\n { type: \"synthesis\", step: opts.step, workspaceLabel: opts.workspaceLabel },\n opts.step,\n outputFileAbsolute,\n outputBasename,\n opts.worktreeRoot,\n opts.markdownOpenQuestionIterations,\n opts.markdownEvidenceRepairAttempts,\n opts.executable,\n opts.argvTemplate,\n opts.timeoutMs,\n opts.diagnosticLog,\n opts.abortSignal,\n opts.onRemediationPhase,\n opts.onAgentLaunched,\n {\n artefactRunId: stewardshipRunId,\n artefactWorkItemId: stewardshipWorkItemId,\n producerOpenCodeSessionId: capturedOpenCodeSessionId,\n },\n opts.openCodeChildEnv,\n );\n if (oqRes.cancelled) {\n return {\n ok: false,\n message: oqRes.message ?? \"Remediation stopped.\",\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: opts.step,\n cancelled: true,\n };\n }\n if (!oqRes.ok) {\n validationOk = false;\n validationFailureText =\n oqRes.message ??\n \"SRS-28: open questions remediation failed after **## Evidence index** passed.\";\n }\n break;\n }\n if (ev.reason === \"read\") {\n validationOk = false;\n validationFailureText = ev.message;\n break;\n }\n if (ev.reason === \"forbidden_evidence_reference\") {\n validationOk = false;\n validationFailureText = `**## Evidence index** cites forbidden sources: ${ev.message}`;\n if (attempt >= maxMarkdownEvidenceRepairs) {\n break;\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(\n outputFileAbsolute,\n \"forbidden\",\n ev.message,\n );\n opts.diagnosticLog?.(\n `[markdown evidence repair] re-running after forbidden Evidence index citation(s) (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n continue;\n }\n validationOk = false;\n validationFailureText =\n \"OpenCode wrote a file, but **`## Evidence index`** is missing or empty (SRS-16). Add substantive `path:line` (or range) bullets under **`## Evidence index`**, or add **`Status: hallucination?`** on its own line immediately under the `#` title if grounding is impossible.\";\n if (attempt >= maxMarkdownEvidenceRepairs) {\n break;\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(outputFileAbsolute, \"empty\");\n opts.diagnosticLog?.(\n `[markdown evidence repair] re-running after empty or missing Evidence index (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n continue;\n }\n\n const val = validateCoordinationListJson(outputFileAbsolute, schemaAbsoluteForList);\n if (val.ok) {\n validationOk = true;\n sessionIdForAceTrace = capturedOpenCodeSessionId;\n opts.diagnosticLog?.(`[OpenCode] list JSON passed schema validation \u2014 ${outputFileAbsolute}`);\n break;\n }\n\n validationOk = false;\n const f = val.failure;\n validationFailureText =\n f.kind === \"schema\" ? f.errorsText : f.kind === \"parse\" ? f.message : f.message;\n opts.diagnosticLog?.(\n `[OpenCode] list JSON validation failed (${f.kind}) \u2014 ${validationFailureText.slice(0, 600)}${validationFailureText.length > 600 ? \"\u2026\" : \"\"}`,\n );\n\n if (attempt >= maxRepairAttempts) {\n break;\n }\n\n const preview = f.kind === \"parse\" ? readCoordinationJsonPreview(outputFileAbsolute) : undefined;\n repairAppendix = formatCoordinationJsonRepairAppendix(outputBasename, f, preview);\n opts.diagnosticLog?.(\n `[OpenCode] re-running coordination list agent with schema repair appendix (run ${attempt + 2} of ${totalRuns})`,\n );\n }\n\n const tail =\n lastCliMessage.length > 12_000\n ? `${lastCliMessage.slice(0, 12_000)}\\n\\n\u2026 (truncated)`\n : lastCliMessage;\n\n const permissionHint =\n /\\bpermission\\b/i.test(lastCliMessage) && /\\b(auto-reject|rejected)\\b/i.test(lastCliMessage)\n ? \"\\n\\n**Likely cause:** OpenCode **auto-rejected a tool permission** in non-interactive mode (often **`external_directory`**, or **`read`/`glob`/`list`/`grep`** if global config uses **`ask`**). EasySpecs merges **`opencode.json`** at the analysis checkout (**`Materialize agents`**) with **`external_directory`** and whole-worktree **`read`/`glob`/`list`/`grep`/`edit`** rules \u2014 run **Materialize agents** again, or widen rules in your global OpenCode config. See **opencodeCLI.md** and [OpenCode permissions](https://opencode.ai/docs/permissions).\"\n : \"\";\n\n let message: string;\n if (!cliProcessOk) {\n message = `OpenCode failed.\\n\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else if (!artefactOk) {\n message = `OpenCode exited 0, but the **expected output file is missing or empty**.\\n\\n${outputFileAbsolute}${permissionHint}\\n\\n--- OpenCode output ---\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else if (effectiveListSchemaFile && !validationOk) {\n const detail = validationFailureText ?? \"(no validation details)\";\n message = `OpenCode finished, but **coordination list JSON did not succeed** after ${totalRuns} run(s) (missing/empty file, JSON.parse, or JSON Schema).\\n\\n${detail}\\n\\n--- OpenCode output ---\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else if (!effectiveListSchemaFile && !validationOk && cliProcessOk && artefactOk) {\n const detail = validationFailureText ?? \"(no validation details)\";\n message = `OpenCode finished, but **markdown context validation did not succeed** after ${totalMarkdownRuns} producer run(s) (SRS-16 **## Evidence index**) and/or SRS-28 **## Open Questions** remediation.\\n\\n${detail}\\n\\n--- OpenCode output ---\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else {\n message = `OpenCode exited 0.\\n\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n }\n\n const ok = cliProcessOk && artefactOk && validationOk;\n\n if (ok && opts.aceEnabled && sessionIdForAceTrace) {\n const orderSet = new Set(CONTEXT_SYNTHESIS_TEST_STEP_ORDER);\n if (orderSet.has(opts.step)) {\n const ctx = contextDir(opts.worktreeRoot);\n const rel = path.relative(ctx, outputFileAbsolute).split(path.sep).join(\"/\");\n opts.onRemediationPhase?.(\"aceTracing\");\n try {\n await runAceTracePhase({\n worktreeRoot: opts.worktreeRoot,\n followUpSessionId: sessionIdForAceTrace,\n artefactRunId: stewardshipRunId,\n artefactWorkItemId: stewardshipWorkItemId,\n stepLabel: stewardshipStepLabelCoord,\n producerAgentStem: STEP_OPEN_CODE_AGENT_IDS[opts.step],\n primaryRelativePathUnderContext: rel,\n primaryBasename: outputBasename,\n artefactKind: aceArtefactKindForCoordinationStep(opts.step),\n executable: opts.executable,\n argvTemplate: opts.argvTemplate,\n timeoutMs: opts.timeoutMs,\n diagnosticLog: opts.diagnosticLog,\n abortSignal: opts.abortSignal,\n onAgentLaunched: opts.onAgentLaunched,\n offlineLearnAfterSameSessionTrace: opts.offlineLearnAfterSameSessionTrace === true,\n });\n } finally {\n opts.onRemediationPhase?.(\"aceTraceComplete\");\n }\n }\n }\n\n const titleForStore = buildOpenCodeSessionTitle({\n runId: stewardshipRunId,\n workItemId: stewardshipWorkItemId,\n stepLabel: stewardshipStepLabelCoord,\n });\n\n return {\n ok,\n message,\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: opts.step,\n ...(capturedOpenCodeSessionId\n ? {\n openCodeSessionId: capturedOpenCodeSessionId,\n openCodeSessionTitle: titleForStore,\n openCodeSessionCapturedAtIso: new Date().toISOString(),\n }\n : {}),\n };\n}\n\nexport const MARKDOWN_DETAIL_RUN_STEP = \"markdownDetail\" as const;\n\nexport interface OpenCodeMarkdownDetailRunOptions {\n worktreeRoot: string;\n executable: string;\n argvTemplate: string[];\n timeoutMs: number;\n diagnosticLog?: (line: string) => void;\n onAgentLaunched?: () => void;\n /** SRS-16: extra runs when `## Evidence index` is empty (0\u20135). Default 2. */\n markdownEvidenceRepairAttempts?: number;\n /** SRS-28: open-question remediation rounds (0\u201310). Default 5. */\n markdownOpenQuestionIterations?: number;\n abortSignal?: AbortSignal;\n onRemediationPhase?: (phase: PoolItemRemediationUiPhase) => void;\n target: {\n openCodeAgentStem: string;\n agentId: string;\n displayName: string;\n outputBasename: string;\n taskDescription: string;\n };\n /** SRS-36 */\n artefactRunId?: string;\n artefactWorkItemId?: string;\n /** SRS-35 */\n aceEnabled?: boolean;\n /** SRS-35: after validated trace, run Reflector \u2192 Curator \u2192 apply in the same worktree. */\n offlineLearnAfterSameSessionTrace?: boolean;\n /** SRS-43 */\n openCodeChildEnv?: Record<string, string>;\n}\n\nexport interface OpenCodeMarkdownDetailRunResult {\n ok: boolean;\n message: string;\n outputPath: string;\n promptPath: string;\n step: typeof MARKDOWN_DETAIL_RUN_STEP;\n cancelled?: boolean;\n openCodeSessionId?: string;\n openCodeSessionTitle?: string;\n openCodeSessionCapturedAtIso?: string;\n}\n\n/**\n * OpenCode run for SRS-8 \u00A74.3\u2013\u00A74.5 per-node detail markdown (`agent-md-*-detail` stems).\n */\nexport async function runOpenCodeMarkdownDetailStep(\n opts: OpenCodeMarkdownDetailRunOptions,\n): Promise<OpenCodeMarkdownDetailRunResult> {\n const ctx = contextDir(opts.worktreeRoot);\n const outputFileAbsolute = path.join(ctx, opts.target.outputBasename);\n const outputBasename = opts.target.outputBasename;\n\n const rawMdEv = opts.markdownEvidenceRepairAttempts;\n let maxMarkdownEvidenceRepairs =\n rawMdEv === undefined ? 2 : Math.floor(Number(rawMdEv));\n if (!Number.isFinite(maxMarkdownEvidenceRepairs)) {\n maxMarkdownEvidenceRepairs = 2;\n }\n maxMarkdownEvidenceRepairs = Math.min(5, Math.max(0, maxMarkdownEvidenceRepairs));\n const totalMarkdownRuns = 1 + maxMarkdownEvidenceRepairs;\n\n fs.mkdirSync(path.dirname(outputFileAbsolute), { recursive: true });\n const runDir = path.join(opts.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const safeStem = opts.target.outputBasename.replace(/[^A-Za-z0-9_.-]+/g, \"_\").slice(0, 120);\n\n let markdownEvidenceRepairAppendix: string | undefined;\n let lastPromptPath = \"\";\n let lastCliMessage = \"\";\n let cliProcessOk = false;\n let artefactOk = false;\n let validationOk = false;\n let validationFailureText: string | undefined;\n let capturedOpenCodeSessionId: string | undefined;\n let sessionIdForAceTrace: string | undefined;\n\n const mdRunId = opts.artefactRunId ?? \"unknown-run\";\n const mdWorkItemId = opts.artefactWorkItemId ?? \"unknown-item\";\n const mdStepLabel = `${MARKDOWN_DETAIL_RUN_STEP}\u00B7${opts.target.displayName}\u00B7${outputBasename}`;\n\n for (let attempt = 0; attempt < totalMarkdownRuns; attempt++) {\n if (opts.abortSignal?.aborted) {\n return {\n ok: false,\n message: \"Remediation stopped.\",\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: MARKDOWN_DETAIL_RUN_STEP,\n cancelled: true,\n };\n }\n const body = fillMarkdownPrompt({\n agentId: opts.target.agentId,\n agentDisplayName: opts.target.displayName,\n worktreeRoot: opts.worktreeRoot,\n taskDescription: opts.target.taskDescription,\n outputFileAbsolute,\n outputBasename,\n citationFormatExample: CITATION_EXAMPLE,\n repairAppendix: markdownEvidenceRepairAppendix,\n });\n\n const promptPath = path.join(\n runDir,\n `markdownDetail-${opts.target.openCodeAgentStem}-${safeStem}-a${attempt}-${Date.now()}.prompt.txt`,\n );\n lastPromptPath = promptPath;\n fs.writeFileSync(promptPath, body, \"utf-8\");\n\n const vars = {\n promptFile: promptPath,\n agentId: opts.target.openCodeAgentStem,\n worktree: opts.worktreeRoot,\n };\n const expandedArgv = expandArgvTemplate(opts.argvTemplate, vars);\n const followUpSid = attempt > 0 ? capturedOpenCodeSessionId : undefined;\n const argv = applyOpenCodeStewardshipToExpandedArgv(expandedArgv, {\n followUpSessionId: followUpSid,\n runId: mdRunId,\n workItemId: mdWorkItemId,\n stepLabel: mdStepLabel,\n diagnosticLog: opts.diagnosticLog,\n });\n\n const byteLen = Buffer.byteLength(body, \"utf8\");\n opts.diagnosticLog?.(`[OpenCode] prompt file: ${promptPath} (${byteLen} bytes)`);\n\n opts.onRemediationPhase?.(\"generating\");\n const isFollowUpSpawn = followUpSid !== undefined;\n const cli = await runOpenCodeAgent(opts.worktreeRoot, argv, {\n timeoutMs: opts.timeoutMs,\n executable: opts.executable,\n diagnosticLog: opts.diagnosticLog,\n onAgentLaunched: opts.onAgentLaunched,\n signal: opts.abortSignal,\n parseOpenCodeSessionFromJsonStdout: !isFollowUpSpawn,\n childEnv: opts.openCodeChildEnv,\n });\n\n if (cli.cancelled || opts.abortSignal?.aborted) {\n return {\n ok: false,\n message: \"Remediation stopped.\",\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: MARKDOWN_DETAIL_RUN_STEP,\n cancelled: true,\n };\n }\n\n opts.onRemediationPhase?.(\"validating\");\n lastCliMessage = cli.message;\n cliProcessOk = cli.ok;\n if (cli.openCodeSessionId) {\n capturedOpenCodeSessionId = cli.openCodeSessionId;\n }\n if (attempt === 0 && cli.ok) {\n logOpenCodeSessionPrimaryComplete(opts.diagnosticLog, {\n workItemId: mdWorkItemId,\n runId: mdRunId,\n title: buildOpenCodeSessionTitle({\n runId: mdRunId,\n workItemId: mdWorkItemId,\n stepLabel: mdStepLabel,\n }),\n sessionId: cli.openCodeSessionId,\n });\n }\n const artefact = getExpectedOutputArtefactStatus(outputFileAbsolute);\n artefactOk = artefact.generated;\n\n const artefactReason =\n artefact.reason === \"missing\"\n ? \"file does not exist\"\n : artefact.reason === \"empty\"\n ? \"file exists but is empty (0 bytes)\"\n : artefact.reason === \"not_a_file\"\n ? \"path exists but is not a regular file\"\n : \"\";\n opts.diagnosticLog?.(\n artefactOk\n ? `[OpenCode] expected output in worktree: FOUND \u2014 ${outputFileAbsolute} (${artefact.bytes} bytes)`\n : `[OpenCode] expected output in worktree: NOT FOUND \u2014 ${outputFileAbsolute} (${artefactReason})`,\n );\n\n if (!cliProcessOk) {\n break;\n }\n if (!artefactOk) {\n break;\n }\n\n const ev = validateMarkdownEvidenceIndexFile(outputFileAbsolute);\n if (ev.ok) {\n validationOk = true;\n sessionIdForAceTrace = capturedOpenCodeSessionId;\n opts.diagnosticLog?.(`[OpenCode] markdown Evidence index validation passed \u2014 ${outputFileAbsolute}`);\n const producerLabel = `${MARKDOWN_DETAIL_RUN_STEP} \u00B7 ${opts.target.displayName} \u00B7 ${outputBasename}`;\n const oqRes = await remediateOpenQuestionsForContextMarkdown(\n { type: \"detail\", target: opts.target },\n producerLabel,\n outputFileAbsolute,\n outputBasename,\n opts.worktreeRoot,\n opts.markdownOpenQuestionIterations,\n opts.markdownEvidenceRepairAttempts,\n opts.executable,\n opts.argvTemplate,\n opts.timeoutMs,\n opts.diagnosticLog,\n opts.abortSignal,\n opts.onRemediationPhase,\n opts.onAgentLaunched,\n {\n artefactRunId: mdRunId,\n artefactWorkItemId: mdWorkItemId,\n producerOpenCodeSessionId: capturedOpenCodeSessionId,\n },\n opts.openCodeChildEnv,\n );\n if (oqRes.cancelled) {\n return {\n ok: false,\n message: oqRes.message ?? \"Remediation stopped.\",\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: MARKDOWN_DETAIL_RUN_STEP,\n cancelled: true,\n };\n }\n if (!oqRes.ok) {\n validationOk = false;\n validationFailureText =\n oqRes.message ??\n \"SRS-28: open questions remediation failed after **## Evidence index** passed.\";\n }\n break;\n }\n if (ev.reason === \"read\") {\n validationOk = false;\n validationFailureText = ev.message;\n break;\n }\n if (ev.reason === \"forbidden_evidence_reference\") {\n validationOk = false;\n validationFailureText = `**## Evidence index** cites forbidden sources: ${ev.message}`;\n if (attempt >= maxMarkdownEvidenceRepairs) {\n break;\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(\n outputFileAbsolute,\n \"forbidden\",\n ev.message,\n );\n opts.diagnosticLog?.(\n `[markdown evidence repair] re-running after forbidden Evidence index citation(s) (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n continue;\n }\n validationOk = false;\n validationFailureText =\n \"OpenCode wrote a file, but **`## Evidence index`** is missing or empty (SRS-16). Add substantive `path:line` (or range) bullets under **`## Evidence index`**, or add **`Status: hallucination?`** on its own line immediately under the `#` title if grounding is impossible.\";\n if (attempt >= maxMarkdownEvidenceRepairs) {\n break;\n }\n markdownEvidenceRepairAppendix = formatMarkdownEvidenceRepairAppendix(outputFileAbsolute, \"empty\");\n opts.diagnosticLog?.(\n `[markdown evidence repair] re-running after empty or missing Evidence index (run ${attempt + 2} of ${totalMarkdownRuns})`,\n );\n }\n\n const tail =\n lastCliMessage.length > 12_000\n ? `${lastCliMessage.slice(0, 12_000)}\\n\\n\u2026 (truncated)`\n : lastCliMessage;\n\n const permissionHint =\n /\\bpermission\\b/i.test(lastCliMessage) && /\\b(auto-reject|rejected)\\b/i.test(lastCliMessage)\n ? \"\\n\\n**Likely cause:** OpenCode **auto-rejected a tool permission** in non-interactive mode. Run **Materialize agents** again or widen global OpenCode config. See **opencodeCLI.md**.\"\n : \"\";\n\n let message: string;\n if (!cliProcessOk) {\n message = `OpenCode failed.\\n\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else if (!artefactOk) {\n message = `OpenCode exited 0, but the **expected output file is missing or empty**.\\n\\n${outputFileAbsolute}${permissionHint}\\n\\n--- OpenCode output ---\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else if (!validationOk) {\n const detail = validationFailureText ?? \"(no validation details)\";\n message = `OpenCode finished, but **markdown context validation did not succeed** after ${totalMarkdownRuns} producer run(s) (SRS-16 **## Evidence index**) and/or SRS-28 **## Open Questions** remediation.\\n\\n${detail}\\n\\n--- OpenCode output ---\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n } else {\n message = `OpenCode exited 0.\\n\\n${tail}\\n\\nPrompt: ${lastPromptPath}\\nExpected output: ${outputFileAbsolute}`;\n }\n\n const ok = cliProcessOk && artefactOk && validationOk;\n\n if (ok && opts.aceEnabled && sessionIdForAceTrace) {\n const rel = path.relative(ctx, outputFileAbsolute).split(path.sep).join(\"/\");\n opts.onRemediationPhase?.(\"aceTracing\");\n try {\n await runAceTracePhase({\n worktreeRoot: opts.worktreeRoot,\n followUpSessionId: sessionIdForAceTrace,\n artefactRunId: mdRunId,\n artefactWorkItemId: mdWorkItemId,\n stepLabel: mdStepLabel,\n producerAgentStem: opts.target.openCodeAgentStem,\n primaryRelativePathUnderContext: rel,\n primaryBasename: outputBasename,\n artefactKind: aceArtefactKindForDetailMarkdown(),\n executable: opts.executable,\n argvTemplate: opts.argvTemplate,\n timeoutMs: opts.timeoutMs,\n diagnosticLog: opts.diagnosticLog,\n abortSignal: opts.abortSignal,\n onAgentLaunched: opts.onAgentLaunched,\n offlineLearnAfterSameSessionTrace: opts.offlineLearnAfterSameSessionTrace === true,\n });\n } finally {\n opts.onRemediationPhase?.(\"aceTraceComplete\");\n }\n }\n\n const mdTitleForStore = buildOpenCodeSessionTitle({\n runId: mdRunId,\n workItemId: mdWorkItemId,\n stepLabel: mdStepLabel,\n });\n\n return {\n ok,\n message,\n outputPath: outputFileAbsolute,\n promptPath: lastPromptPath,\n step: MARKDOWN_DETAIL_RUN_STEP,\n ...(capturedOpenCodeSessionId\n ? {\n openCodeSessionId: capturedOpenCodeSessionId,\n openCodeSessionTitle: mdTitleForStore,\n openCodeSessionCapturedAtIso: new Date().toISOString(),\n }\n : {}),\n };\n}\n", "/**\n * SRS-8 \u00A73.5 \u2014 canonical prompt bodies (placeholders filled by orchestrator).\n */\n\nexport interface MarkdownPromptParams {\n agentId: string;\n agentDisplayName: string;\n worktreeRoot: string;\n taskDescription: string;\n outputFileAbsolute: string;\n outputBasename: string;\n citationFormatExample: string;\n /** SRS-16: evidence-index repair appendix before **## Output**. */\n repairAppendix?: string;\n}\n\nexport interface ListJsonPromptParams {\n agentId: string;\n agentDisplayName: string;\n worktreeRoot: string;\n listTaskDescription: string;\n listSchemaRef: string;\n outputFileAbsolute: string;\n outputBasename: string;\n allowJsonFence: boolean;\n parentContextBlock: string;\n /** When set (schema-repair retry), inserted before **Output** so the agent fixes the file. */\n repairAppendix?: string;\n}\n\nexport function fillMarkdownPrompt(p: MarkdownPromptParams): string {\n return [\n `You are OpenCode agent \"${p.agentId}\" (display name: ${p.agentDisplayName}).`,\n \"\",\n \"## Repository under analysis\",\n `- **Worktree root (read and explore the codebase here):** ${p.worktreeRoot}`,\n \"- Analyze **only** this repository snapshot for this task.\",\n \"\",\n \"## Tools\",\n \"- Use **reading** tools to ground every claim.\",\n \"- Use **writing** tools to create or overwrite **exactly one** markdown file at the path below.\",\n \"- Do **not** write `index-application-context.json`.\",\n \"\",\n \"## Task\",\n p.taskDescription,\n \"\",\n \"## Evidence and citation rules\",\n `- For substantive statements, cite file path and line or range (format: ${p.citationFormatExample}).`,\n \"\",\n \"## Open Questions (SRS-28)\",\n \"- **Do not** leave a non-empty **## Open Questions** section. Handle uncertainty with evidence-backed statements, scoped limitations in the body, or **Status: hallucination?** under the title when grounding is impossible (per SRS-16). Omit **## Open Questions** or leave it empty with a placeholder like **None** only if there are truly no open items.\",\n \"\",\n ...(p.repairAppendix ? [p.repairAppendix.trimEnd(), \"\"] : []),\n \"## Output\",\n `- **Output file (absolute path):** ${p.outputFileAbsolute}`,\n `- **Expected basename:** ${p.outputBasename}`,\n \"\",\n ].join(\"\\n\");\n}\n\nexport interface ResolveOpenQuestionPromptParams {\n worktreeRoot: string;\n targetMarkdownAbsolute: string;\n targetBasename: string;\n questionText: string;\n resolutionJsonAbsolute: string;\n}\n\n/** SRS-28 \u2014 single-question resolution agent prompt. */\nexport function fillResolveOpenQuestionPrompt(p: ResolveOpenQuestionPromptParams): string {\n return [\n `You are OpenCode agent \"ctx-resolve-open-question\" (display name: Open question resolver).`,\n \"\",\n \"## Repository under analysis\",\n `- **Worktree root:** ${p.worktreeRoot}`,\n \"- Use **read** / **grep** / **glob** to ground answers in repository files only.\",\n \"\",\n \"## Tools\",\n \"- **Edit** the **one** markdown file at the path below: integrate answers, **remove** the addressed item from **## Open Questions**, or **remove/empty** that section when done.\",\n \"- **Do not** add new open questions. **Preserve** the top-level `#` title, **## Evidence index** (keep it non-empty and valid per SRS-16), and **## Revision** if present.\",\n \"\",\n \"## Task\",\n `Answer **one** open question using the repository, or report that it **cannot** be resolved from the codebase.`,\n \"\",\n \"### Open question\",\n p.questionText,\n \"\",\n \"## Mandatory JSON outcome (separate file)\",\n `After editing the markdown (or if you cannot edit), write **valid UTF-8 JSON** (no comments, no markdown fences) to **exactly** this path:`,\n \"\",\n `- **${p.resolutionJsonAbsolute}**`,\n \"\",\n \"Shape:\",\n \"```json\",\n '{ \"outcome\": \"answered\" | \"cannot_resolve\", \"question\": \"<repeat the question text briefly>\", \"reason\": \"<only when cannot_resolve: why repo evidence is insufficient>\" }',\n \"```\",\n \"\",\n \"- Use **answered** only if you **updated** the markdown and removed/resolved this question in the document.\",\n \"- Use **cannot_resolve** when the answer is not findable in this repository; **reason** is required (non-empty).\",\n \"\",\n \"## Output markdown\",\n `- **File (absolute):** ${p.targetMarkdownAbsolute}`,\n `- **Basename:** ${p.targetBasename}`,\n \"\",\n ].join(\"\\n\");\n}\n\nexport function fillListJsonPrompt(p: ListJsonPromptParams): string {\n return [\n `You are OpenCode agent \"${p.agentId}\" (display name: ${p.agentDisplayName}).`,\n \"\",\n \"## Repository under analysis\",\n `- **Worktree root (read and explore the codebase here):** ${p.worktreeRoot}`,\n \"- Analyze **only** this repository snapshot for this task.\",\n \"\",\n \"## Tools\",\n \"- Use **reading** tools to ground the JSON content in the repository.\",\n \"- **Paths:** Before **glob** or **list** on a concrete subdirectory (e.g. `src/models`, `prisma`, `src/schemas`), confirm that path exists from the worktree root (e.g. list the parent directory). **Missing folders are normal**\u2014do not treat absent paths as fatal; skip them and continue.\",\n \"- Use **writing** or **edit** tools to create or overwrite **exactly one** JSON file at the **absolute path** in **Output** below (do not only reply in chat \u2014 the file must exist on disk when you finish).\",\n `- Valid UTF-8 JSON only, no comments; markdown code fences around the file body: ${p.allowJsonFence ? \"allowed if your tool requires it\" : \"not allowed \u2014 raw JSON only in the file\"}.`,\n \"- Do **not** write `index-application-context.json`.\",\n \"\",\n \"## Task\",\n p.listTaskDescription,\n \"\",\n \"## Schema / shape\",\n `- Conform to: ${p.listSchemaRef}`,\n p.parentContextBlock,\n \"\",\n ...(p.repairAppendix ? [p.repairAppendix.trimEnd(), \"\"] : []),\n \"## Output\",\n `- **Output file (absolute path):** ${p.outputFileAbsolute}`,\n `- **Expected basename:** ${p.outputBasename}`,\n \"- The parent directory already exists; write this file directly.\",\n \"\",\n ].join(\"\\n\");\n}\n", "/**\n * SRS-8 v1: deterministic scaffold of coordination JSON + detail markdown under `contextDir`.\n * Used when OpenCode per-job CLI is unavailable; produces valid assembler input (AC4\u2013AC6, AC9).\n * Individual steps are exported for Analysis view \"test agent\" buttons.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\nfunction write(p: string, body: string): void {\n fs.mkdirSync(path.dirname(p), { recursive: true });\n fs.writeFileSync(p, body, \"utf-8\");\n}\n\nfunction writeJson(p: string, obj: unknown): void {\n write(p, `${JSON.stringify(obj, null, 2)}\\n`);\n}\n\n/** One file+line span for scaffold coordination JSON (schema requires `sourceReferences` on list rows). */\nconst SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES = [\n { path: \"package.json\", startLine: 1, endLine: 40, note: \"synthesis scaffold evidence\" },\n] as const;\n\n/** Logical agent keys for ordered test runs (Analysis view). */\nexport type ContextSynthesisTestStep =\n | \"docsProject\"\n | \"architecture\"\n | \"listFeatures\"\n | \"reviewFeaturesList\"\n | \"listRepoSurface\"\n | \"listExperiences\"\n | \"reviewExperiencesList\"\n | \"listServices\"\n | \"reviewServicesList\"\n | \"listDataModel\"\n | \"reviewDataModelList\"\n | \"listTechStack\"\n | \"reviewTechStackList\"\n | \"listEntityFields\"\n | \"reviewEntityFieldsList\"\n | \"listUseCases\"\n | \"reviewUseCasesList\"\n | \"listScenarios\"\n | \"reviewScenariosList\";\n\nexport const CONTEXT_SYNTHESIS_TEST_STEP_ORDER: readonly ContextSynthesisTestStep[] = [\n \"docsProject\",\n \"architecture\",\n \"listFeatures\",\n \"reviewFeaturesList\",\n \"listRepoSurface\",\n \"listExperiences\",\n \"reviewExperiencesList\",\n \"listServices\",\n \"reviewServicesList\",\n \"listDataModel\",\n \"reviewDataModelList\",\n \"listTechStack\",\n \"reviewTechStackList\",\n \"listEntityFields\",\n \"reviewEntityFieldsList\",\n \"listUseCases\",\n \"reviewUseCasesList\",\n \"listScenarios\",\n \"reviewScenariosList\",\n] as const;\n\n/** Optional scope for per-feature / per\u2013use-case / per-entity list steps (OpenCode test runs). */\nexport type SynthesisStepLabelContext = {\n featureCode?: string;\n useCaseCode?: string;\n entityCode?: string;\n};\n\nexport function synthesisStepLabel(step: ContextSynthesisTestStep, ctx?: SynthesisStepLabelContext): string {\n if (step === \"listUseCases\" || step === \"reviewUseCasesList\") {\n return ctx?.featureCode ? `${ctx.featureCode}-use-cases-list.json` : \"FE-<nn>-use-cases-list.json (per feature)\";\n }\n if (step === \"listScenarios\" || step === \"reviewScenariosList\") {\n return ctx?.featureCode && ctx?.useCaseCode\n ? `${ctx.featureCode}_${ctx.useCaseCode}-scenarios-list.json`\n : \"FE-<nn>_UC-<uu>-scenarios-list.json (per use case)\";\n }\n if (step === \"listEntityFields\" || step === \"reviewEntityFieldsList\") {\n return ctx?.entityCode ? `${ctx.entityCode}-fields-list.json` : \"DM-<nn>-fields-list.json (per entity)\";\n }\n const m: Record<\n Exclude<\n ContextSynthesisTestStep,\n | \"listUseCases\"\n | \"listScenarios\"\n | \"listEntityFields\"\n | \"reviewUseCasesList\"\n | \"reviewScenariosList\"\n | \"reviewEntityFieldsList\"\n >,\n string\n > = {\n docsProject: \"project.md\",\n architecture: \"architecture.md\",\n listFeatures: \"features-list.json\",\n reviewFeaturesList: \"features-list.json\",\n listRepoSurface: \"repo-surface-scan.json\",\n listExperiences: \"experiences-list.json\",\n reviewExperiencesList: \"experiences-list.json\",\n listServices: \"services-list.json\",\n reviewServicesList: \"services-list.json\",\n listDataModel: \"data-model-list.json\",\n reviewDataModelList: \"data-model-list.json\",\n listTechStack: \"tech-stack-list.json\",\n reviewTechStackList: \"tech-stack-list.json\",\n };\n return m[\n step as Exclude<\n ContextSynthesisTestStep,\n | \"listUseCases\"\n | \"listScenarios\"\n | \"listEntityFields\"\n | \"reviewUseCasesList\"\n | \"reviewScenariosList\"\n | \"reviewEntityFieldsList\"\n >\n ];\n}\n\nfunction contextDirFor(worktreeRoot: string): string {\n return path.join(worktreeRoot, \".gluecharm\", \"context\");\n}\n\nexport function synthesizeDocsProjectMarkdown(worktreeRoot: string, workspaceLabel: string): string {\n const p = path.join(contextDirFor(worktreeRoot), \"project.md\");\n write(\n p,\n [\n `# Project overview (scaffold)`,\n ``,\n `**Workspace label:** ${workspaceLabel}`,\n ``,\n `This file was written by **EasySpecs \u2192 Analysis \u2192 Run test step** into **\\`.gluecharm/context/project.md\\`**. ` +\n `It mirrors the **ctx-md-docs-project** agent target. Replace with OpenCode-generated content when the CLI is wired.`,\n ``,\n \"Evidence: `package.json:1` (placeholder citation format).\",\n ``,\n ].join(\"\\n\"),\n );\n return p;\n}\n\nexport function synthesizeContextArchitectureMarkdown(contextDir: string, workspaceLabel: string): string {\n const p = path.join(contextDir, \"architecture.md\");\n fs.mkdirSync(contextDir, { recursive: true });\n write(\n p,\n `# Architecture\\n\\nWorkspace: **${workspaceLabel}**.\\n\\n` +\n `This file was generated by the EasySpecs SRS-8 scaffold (test step). ` +\n `Replace with OpenCode-generated content when per-agent CLI is wired.\\n\\n` +\n `Evidence: \\`src/analysis/contextSynthesis.ts:1\\` (placeholder citation format).\\n`,\n );\n return p;\n}\n\nexport function synthesizeListFeatures(contextDir: string, workspaceLabel: string): string {\n const p = path.join(contextDir, \"features-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.features-list\",\n version: 1,\n features: [\n {\n code: \"FE-01\",\n name: `Workspace analysis (${workspaceLabel})`,\n slug: \"workspace-analysis\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n });\n return p;\n}\n\nexport function synthesizeListUseCasesFe01(contextDir: string): string {\n const p = path.join(contextDir, \"FE-01-use-cases-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.use-cases-list\",\n version: 1,\n featureCode: \"FE-01\",\n useCases: [\n {\n code: \"UC-01\",\n name: \"Explore repository context\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n });\n return p;\n}\n\nexport function synthesizeListScenariosFe01Uc01(contextDir: string): string {\n const p = path.join(contextDir, \"FE-01_UC-01-scenarios-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.scenarios-list\",\n version: 1,\n featureCode: \"FE-01\",\n useCaseCode: \"UC-01\",\n scenarios: [\n {\n code: \"SC-01\",\n name: \"Run EasySpecs context pipeline\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n });\n return p;\n}\n\n/** Schema-valid placeholder for OpenCode-offline scaffold (SRS-20 AC5). */\nexport function synthesizeRepoSurfaceScan(contextDir: string): string {\n const p = path.join(contextDir, \"repo-surface-scan.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n const worktreeRoot = path.dirname(path.dirname(contextDir));\n let evPath = \"package.json\";\n for (const c of [\"package.json\", \"src/extension.ts\", \"tsconfig.json\"] as const) {\n if (fs.existsSync(path.join(worktreeRoot, c))) {\n evPath = c;\n break;\n }\n }\n writeJson(p, {\n kind: \"easyspecs.repo-surface-scan\",\n version: 1,\n hasUi: true,\n hasBackend: true,\n uiSourceReferences: [{ path: evPath, startLine: 1, endLine: 5, note: \"Scaffold \u2014 replace via OpenCode.\" }],\n backendSourceReferences: [{ path: evPath, startLine: 1, endLine: 5, note: \"Scaffold \u2014 replace via OpenCode.\" }],\n });\n return p;\n}\n\nexport function synthesizeListExperiences(contextDir: string): string {\n const p = path.join(contextDir, \"experiences-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.experiences-list\",\n version: 1,\n views: [\n {\n code: \"XP-01\",\n name: \"EasySpecs sidebar\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n interactions: [\n {\n code: \"BH-01\",\n name: \"Navigate tree\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n },\n ],\n });\n return p;\n}\n\nexport function synthesizeListServices(contextDir: string): string {\n const p = path.join(contextDir, \"services-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.services-list\",\n version: 1,\n services: [\n {\n code: \"SV-01\",\n name: \"Analysis orchestrator\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n methods: [\n {\n code: \"ME-01\",\n name: \"runPipeline()\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n },\n ],\n });\n return p;\n}\n\nexport function synthesizeListDataModel(contextDir: string): string {\n const p = path.join(contextDir, \"data-model-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.data-model-list\",\n version: 1,\n entities: [\n {\n code: \"DM-01\",\n name: \"ApplicationContextFile\",\n slug: \"application-context-file\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n });\n return p;\n}\n\nexport function synthesizeListEntityFieldsDm01(contextDir: string): string {\n const p = path.join(contextDir, \"DM-01-fields-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n entityCode: \"DM-01\",\n fields: [\n {\n code: \"FD-01\",\n name: \"scopes\",\n slug: \"scopes\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n });\n return p;\n}\n\nexport function synthesizeListTechStack(contextDir: string): string {\n const p = path.join(contextDir, \"tech-stack-list.json\");\n fs.mkdirSync(contextDir, { recursive: true });\n writeJson(p, {\n kind: \"easyspecs.tech-stack-list\",\n version: 1,\n tools: [\n {\n code: \"TS-01\",\n name: \"TypeScript\",\n sourceReferences: [...SYNTHESIS_SCAFFOLD_SOURCE_REFERENCES],\n },\n ],\n });\n return p;\n}\n\n/**\n * Run one scaffold step (deterministic). Returns absolute path of primary output file.\n */\nexport function runContextSynthesisTestStep(\n worktreeRoot: string,\n workspaceLabel: string,\n step: ContextSynthesisTestStep,\n): string {\n const ctx = contextDirFor(worktreeRoot);\n switch (step) {\n case \"docsProject\":\n return synthesizeDocsProjectMarkdown(worktreeRoot, workspaceLabel);\n case \"architecture\":\n return synthesizeContextArchitectureMarkdown(ctx, workspaceLabel);\n case \"listFeatures\":\n return synthesizeListFeatures(ctx, workspaceLabel);\n case \"reviewFeaturesList\": {\n const p = path.join(ctx, \"features-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListFeatures(ctx, workspaceLabel);\n }\n return p;\n }\n case \"listRepoSurface\":\n return synthesizeRepoSurfaceScan(ctx);\n case \"listExperiences\":\n return synthesizeListExperiences(ctx);\n case \"reviewExperiencesList\": {\n const p = path.join(ctx, \"experiences-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListExperiences(ctx);\n }\n return p;\n }\n case \"listServices\":\n return synthesizeListServices(ctx);\n case \"reviewServicesList\": {\n const p = path.join(ctx, \"services-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListServices(ctx);\n }\n return p;\n }\n case \"listDataModel\":\n return synthesizeListDataModel(ctx);\n case \"reviewDataModelList\": {\n const p = path.join(ctx, \"data-model-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListDataModel(ctx);\n }\n return p;\n }\n case \"listTechStack\":\n return synthesizeListTechStack(ctx);\n case \"reviewTechStackList\": {\n const p = path.join(ctx, \"tech-stack-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListTechStack(ctx);\n }\n return p;\n }\n case \"listEntityFields\":\n return synthesizeListEntityFieldsDm01(ctx);\n case \"reviewEntityFieldsList\": {\n const p = path.join(ctx, \"DM-01-fields-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListEntityFieldsDm01(ctx);\n }\n return p;\n }\n case \"listUseCases\":\n return synthesizeListUseCasesFe01(ctx);\n case \"reviewUseCasesList\": {\n const p = path.join(ctx, \"FE-01-use-cases-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListUseCasesFe01(ctx);\n }\n return p;\n }\n case \"listScenarios\":\n return synthesizeListScenariosFe01Uc01(ctx);\n case \"reviewScenariosList\": {\n const p = path.join(ctx, \"FE-01_UC-01-scenarios-list.json\");\n if (!fs.existsSync(p)) {\n return synthesizeListScenariosFe01Uc01(ctx);\n }\n return p;\n }\n default: {\n const _x: never = step;\n throw new Error(`Unknown synthesis step: ${_x}`);\n }\n }\n}\n\n/**\n * Writes minimal \u00A74.6 + \u00A74.2\u2013\u00A74.5 artefacts for one synthetic feature tree and other scopes.\n */\nexport function synthesizeContextArtefacts(contextDir: string, workspaceLabel: string): void {\n fs.mkdirSync(contextDir, { recursive: true });\n const worktreeRoot = path.dirname(path.dirname(contextDir));\n\n synthesizeListFeatures(contextDir, workspaceLabel);\n synthesizeListUseCasesFe01(contextDir);\n synthesizeListScenariosFe01Uc01(contextDir);\n synthesizeRepoSurfaceScan(contextDir);\n synthesizeListExperiences(contextDir);\n synthesizeListServices(contextDir);\n synthesizeListDataModel(contextDir);\n synthesizeListEntityFieldsDm01(contextDir);\n synthesizeListTechStack(contextDir);\n synthesizeContextArchitectureMarkdown(contextDir, workspaceLabel);\n\n write(\n path.join(contextDir, \"FE-01-workspace-analysis.md\"),\n `# FE-01: Workspace analysis\\n\\nFunctional and technical summary (scaffold).\\n\\n` +\n `Evidence: \\`package.json:1\\` (placeholder).\\n`,\n );\n\n write(\n path.join(contextDir, \"FE-01_UC-01.md\"),\n `# FE-01 UC-01: Explore repository context\\n\\nScaffold detail.\\n\\nEvidence: \\`README.md:1\\` (placeholder).\\n`,\n );\n\n write(\n path.join(contextDir, \"FE-01_UC-01_SC-01.md\"),\n `# FE-01 UC-01 SC-01: Run EasySpecs context pipeline\\n\\nScaffold scenario.\\n\\nEvidence: \\`src/extension.ts:1\\` (placeholder).\\n`,\n );\n\n write(\n path.join(contextDir, \"XP-01-sidebar.md\"),\n `# XP-01: EasySpecs sidebar\\n\\nScaffold view description.\\n`,\n );\n\n write(\n path.join(contextDir, \"XP-01_BH-01-navigate.md\"),\n `# XP-01 BH-01: Navigate tree\\n\\nScaffold interaction.\\n`,\n );\n\n write(\n path.join(contextDir, \"SV-01-orchestrator.md\"),\n `# SV-01: Analysis orchestrator\\n\\nScaffold service.\\n`,\n );\n\n write(\n path.join(contextDir, \"SV-01_ME-01-runPipeline.md\"),\n `# SV-01 ME-01: runPipeline()\\n\\nScaffold method.\\n`,\n );\n\n write(\n path.join(contextDir, \"DM-01-application-context-file.md\"),\n `# DM-01: ApplicationContextFile\\n\\nScaffold entity.\\n`,\n );\n\n write(\n path.join(contextDir, \"DM-01_FD-01-scopes.md\"),\n `# DM-01 FD-01: scopes\\n\\nScaffold field.\\n`,\n );\n\n write(\n path.join(contextDir, \"DM-01_RL-01-nested-nodes.md\"),\n `# DM-01 RL-01: nested nodes\\n\\nScaffold relationship.\\n`,\n );\n\n write(path.join(contextDir, \"TS-01-typescript.md\"), `# TS-01: TypeScript\\n\\nScaffold tool.\\n`);\n\n synthesizeDocsProjectMarkdown(worktreeRoot, workspaceLabel);\n}\n", "/**\n * SRS-35 R7: ACE trace phase as a follow-up `opencode run` in the same session (`-s`).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { runOpenCodeAgent } from \"../opencodeCli\";\nimport { buildFollowUpOpenCodeArgv } from \"./openCodeSessionStewardship\";\nimport {\n ACE_SCHEMA_TRACE,\n aceTraceFileRunStem,\n gluecharmContextDir,\n aceTracePath,\n opencodeAceSchemaPath,\n} from \"./acePaths\";\nimport { rewriteAceTraceFileWithCanonicalEnvelope } from \"./aceTraceNormalize\";\nimport { extractJsonObjectWithTopLevelKeys, validateAceJsonFile } from \"./aceJsonValidate\";\nimport { runAceOfflineLearnFromTrace } from \"./aceOfflineLearn\";\nimport type { ContextSynthesisTestStep } from \"./contextSynthesis\";\n\nexport const ACE_TRACE_RECORDER_AGENT_STEM = \"agent-ace-trace-recorder\";\n\nfunction expandArgvTemplate(template: string[], vars: Record<string, string>): string[] {\n return template.map((part) => {\n let s = part;\n for (const [k, v] of Object.entries(vars)) {\n s = s.split(`{${k}}`).join(v);\n }\n return s;\n });\n}\n\nexport function aceArtefactKindForCoordinationStep(\n step: ContextSynthesisTestStep,\n): \"coordination-md\" | \"coordination-list-json\" | \"repo-surface-json\" {\n if (step === \"docsProject\" || step === \"architecture\") {\n return \"coordination-md\";\n }\n if (step === \"listRepoSurface\") {\n return \"repo-surface-json\";\n }\n return \"coordination-list-json\";\n}\n\nexport function aceArtefactKindForDetailMarkdown(): \"detail-md\" {\n return \"detail-md\";\n}\n\nexport interface RunAceTracePhaseParams {\n readonly worktreeRoot: string;\n readonly followUpSessionId: string;\n readonly artefactRunId: string;\n readonly artefactWorkItemId: string;\n readonly stepLabel: string;\n /** Bundled agent stem e.g. `agent-list-features`. */\n readonly producerAgentStem: string;\n readonly primaryRelativePathUnderContext: string;\n readonly primaryBasename: string;\n readonly artefactKind: string;\n readonly executable: string;\n readonly argvTemplate: string[];\n readonly timeoutMs: number;\n readonly diagnosticLog?: (line: string) => void;\n readonly abortSignal?: AbortSignal;\n readonly onAgentLaunched?: () => void;\n /** When true, run Reflector \u2192 Curator \u2192 apply for this trace immediately after validation (SRS-35). */\n readonly offlineLearnAfterSameSessionTrace?: boolean;\n}\n\nexport async function runAceTracePhase(params: RunAceTracePhaseParams): Promise<{\n ok: boolean;\n message: string;\n traceAbsolutePath?: string;\n}> {\n const contextDir = gluecharmContextDir(params.worktreeRoot);\n const traceStem = aceTraceFileRunStem(params.artefactRunId, params.followUpSessionId);\n const traceAbs = aceTracePath(contextDir, params.producerAgentStem, traceStem);\n fs.mkdirSync(path.dirname(traceAbs), { recursive: true });\n\n const schemaAbs = opencodeAceSchemaPath(params.worktreeRoot, ACE_SCHEMA_TRACE);\n if (!fs.existsSync(schemaAbs)) {\n const msg = `[ace] trace skipped \u2014 schema missing: ${schemaAbs}`;\n params.diagnosticLog?.(msg);\n return { ok: false, message: msg };\n }\n\n const startedAt = new Date().toISOString();\n const primaryAbs = path.join(contextDir, params.primaryRelativePathUnderContext.split(\"/\").join(path.sep));\n const promptBody = [\n `# ACE trace (same session)`,\n ``,\n `## Required action`,\n ``,\n `Use a **file tool** (**write** or **edit**) to create or overwrite the trace file on disk at the exact path below.`,\n `Replying with JSON in chat **only** is **not** enough \u2014 EasySpecs checks that file exists after OpenCode exits.`,\n ``,\n `- **Producer agent stem:** \\`${params.producerAgentStem}\\``,\n `- **Step label:** \\`${params.stepLabel}\\``,\n `- **Primary artefact (relative to .gluecharm/context):** \\`${params.primaryRelativePathUnderContext}\\``,\n `- **Primary artefact (absolute \u2014 use \\`read\\` if you need exact Evidence index / headings):** \\`${primaryAbs}\\``,\n `- **Basename:** \\`${params.primaryBasename}\\``,\n `- **Artefact kind:** \\`${params.artefactKind}\\``,\n `- **Analysis artefact run id (correlation):** \\`${params.artefactRunId}\\``,\n `- **Trace file \\`sessionMeta.runId\\` (must match exactly):** \\`${traceStem}\\` \u2014 unique per OpenCode session so re-runs do not overwrite prior traces.`,\n `- **Work item:** \\`${params.artefactWorkItemId}\\``,\n `- **Session id (must match this continuation):** \\`${params.followUpSessionId}\\``,\n `- **Trace file (absolute path \u2014 write UTF-8 JSON here):** \\`${traceAbs}\\``,\n ``,\n `## Richness (feeds Reflector \u2192 Curator \u2192 playbook)`,\n ``,\n `A thin trace yields **empty lessons** and **no playbook updates**. Be specific and grounded in **this session** only:`,\n ``,\n `- **reasoningSteps:** Prefer **at least 3** entries when the run involved real exploration (cover phases from \\`explore\\` through \\`finalize\\`). Each \\`summary\\` should name **what** you did and **why** (files, tools, validation). **Decisions** belong **inside** the step where they were taken: optional per-step \\`decisions\\` array (\\`{ decisionId, topic, choice, rationale }\\` each). No root-level \\`decisions\\` array.`,\n `- **failuresAndRetries:** If Evidence-index repair, open-question rounds, JSON repair, or permission/tool errors occurred, record them here (and resolutions in \\`resolution\\` when known).`,\n `- **evidenceIndex:** For markdown outputs, **mirror** paths/roles from the primary file\u2019s **## Evidence index** section when present (re-read \\`${primaryAbs}\\` if needed).`,\n `- **toolsUsed** on steps: cite tool names you actually used (\\`read\\`, \\`glob\\`, \\`grep\\`, etc.) when relevant.`,\n ``,\n `## JSON shape (must match \\`.opencode/schemas/ace/ace-generator-trace.schema.json\\`; \\`additionalProperties: false\\`)`,\n ``,\n `- Root: \\`aceSchemaVersion\\` (\\`1.0.0-draft\\`), \\`sessionMeta\\`, \\`primaryArtefact\\`, \\`reasoningSteps\\`, \\`failuresAndRetries\\`, \\`evidenceIndex\\` \u2014 **no** root \\`decisions\\`.`,\n `- **reasoningSteps** (array): each item \\`{ \"stepId\", \"phase\", \"summary\" }\\` \u2014 optional \\`toolsUsed\\` (string[]), \\`backtracked\\` (boolean), \\`decisions\\` (\\`[{ \"decisionId\", \"topic\", \"choice\", \"rationale\" }]\\` scoped to **that** step).`,\n `- **Do not** invent keys like \\`step\\`, \\`tool_code\\`, or prose stack traces inside JSON strings with broken quoting \u2014 that produces invalid JSON and fails validation.`,\n `- **failuresAndRetries**: \\`[{ \"failureId\", \"description\" }]\\` or \\`[]\\`.`,\n `- **evidenceIndex**: \\`[{ \"path\", \"role\" }]\\` or \\`[]\\` (prefer bullets from the primary artefact\u2019s Evidence index when present).`,\n `- **primaryArtefact** (exact keys only): \\`{ \"relativePath\": \"${params.primaryRelativePathUnderContext}\", \"artefactKind\": \"${params.artefactKind}\", \"basename\": \"${params.primaryBasename}\" }\\` \u2014 use **relativePath**, not \\`path\\` or \\`file\\`.`,\n ``,\n `sessionMeta must include \\`openCodeSessionId\\` = the session id above, \\`runId\\` = **exactly** \\`${traceStem}\\`, \\`agentStem\\` = producer stem, \\`startedAt\\` = \\`${startedAt}\\`.`,\n `Use only evidence from this session's transcript and tool history.`,\n ].join(\"\\n\");\n\n const runDir = path.join(params.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const promptPath = path.join(runDir, `ace-trace-${traceStem}-${Date.now()}.prompt.txt`);\n fs.writeFileSync(promptPath, promptBody, \"utf-8\");\n\n const vars = {\n promptFile: promptPath,\n agentId: ACE_TRACE_RECORDER_AGENT_STEM,\n worktree: params.worktreeRoot,\n };\n const expanded = expandArgvTemplate(params.argvTemplate, vars);\n const argv = buildFollowUpOpenCodeArgv(expanded, params.followUpSessionId);\n\n params.diagnosticLog?.(`[ace] trace phase \u2014 session=${params.followUpSessionId} \u2014 prompt=${promptPath}`);\n\n const cli = await runOpenCodeAgent(params.worktreeRoot, argv, {\n timeoutMs: params.timeoutMs,\n executable: params.executable,\n diagnosticLog: params.diagnosticLog,\n onAgentLaunched: params.onAgentLaunched,\n signal: params.abortSignal,\n parseOpenCodeSessionFromJsonStdout: false,\n });\n\n if (cli.cancelled || params.abortSignal?.aborted) {\n return { ok: false, message: \"[ace] trace cancelled\" };\n }\n if (!cli.ok) {\n return { ok: false, message: `[ace] trace OpenCode failed: ${cli.message}` };\n }\n if (!fs.existsSync(traceAbs)) {\n const recovered = extractJsonObjectWithTopLevelKeys(cli.message, [\n \"aceSchemaVersion\",\n \"sessionMeta\",\n \"primaryArtefact\",\n ]);\n if (recovered) {\n try {\n fs.writeFileSync(traceAbs, `${recovered}\\n`, \"utf-8\");\n params.diagnosticLog?.(`[ace] trace recovered from OpenCode stdout/stderr \u2192 ${traceAbs}`);\n } catch (e) {\n params.diagnosticLog?.(\n `[ace] trace recovery write failed: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n }\n if (!fs.existsSync(traceAbs)) {\n const msg = `[ace] trace file missing after run: ${traceAbs}`;\n params.diagnosticLog?.(msg);\n return { ok: false, message: msg };\n }\n let val = validateAceJsonFile(traceAbs, schemaAbs);\n if (!val.ok) {\n const firstMsg = `[ace] trace JSON invalid (${val.kind}): ${val.message}${val.errorsText ? ` \u2014 ${val.errorsText.slice(0, 800)}` : \"\"}`;\n params.diagnosticLog?.(firstMsg);\n const normalized = rewriteAceTraceFileWithCanonicalEnvelope(\n traceAbs,\n {\n openCodeSessionId: params.followUpSessionId,\n runId: traceStem,\n agentStem: params.producerAgentStem,\n startedAt,\n relativePath: params.primaryRelativePathUnderContext,\n artefactKind: params.artefactKind,\n basename: params.primaryBasename,\n },\n params.diagnosticLog,\n );\n if (normalized) {\n val = validateAceJsonFile(traceAbs, schemaAbs);\n }\n }\n if (!val.ok) {\n const msg = `[ace] trace JSON invalid (${val.kind}): ${val.message}${val.errorsText ? ` \u2014 ${val.errorsText.slice(0, 800)}` : \"\"}`;\n params.diagnosticLog?.(msg);\n return { ok: false, message: msg };\n }\n\n try {\n const rawAlign = fs.readFileSync(traceAbs, \"utf-8\");\n const docAlign = JSON.parse(rawAlign) as { sessionMeta?: { runId?: unknown } };\n const smRun = docAlign.sessionMeta?.runId;\n if (typeof smRun !== \"string\" || smRun !== traceStem) {\n params.diagnosticLog?.(`[ace] trace sessionMeta.runId aligned to trace stem (${traceStem})`);\n if (\n rewriteAceTraceFileWithCanonicalEnvelope(\n traceAbs,\n {\n openCodeSessionId: params.followUpSessionId,\n runId: traceStem,\n agentStem: params.producerAgentStem,\n startedAt,\n relativePath: params.primaryRelativePathUnderContext,\n artefactKind: params.artefactKind,\n basename: params.primaryBasename,\n },\n params.diagnosticLog,\n )\n ) {\n val = validateAceJsonFile(traceAbs, schemaAbs);\n }\n }\n } catch {\n /* ignore */\n }\n if (!val.ok) {\n const msg = `[ace] trace JSON invalid after runId alignment (${val.kind}): ${val.message}${val.errorsText ? ` \u2014 ${val.errorsText.slice(0, 800)}` : \"\"}`;\n params.diagnosticLog?.(msg);\n return { ok: false, message: msg };\n }\n\n params.diagnosticLog?.(`[ace] trace written and validated \u2014 ${traceAbs}`);\n\n if (params.offlineLearnAfterSameSessionTrace === true) {\n params.diagnosticLog?.(\"[ace] offline learn after trace (Reflector \u2192 Curator \u2192 apply) \u2026\");\n const learn = await runAceOfflineLearnFromTrace(traceAbs, {\n worktreeRoot: params.worktreeRoot,\n executable: params.executable,\n argvTemplate: params.argvTemplate,\n timeoutMs: params.timeoutMs,\n diagnosticLog: params.diagnosticLog,\n abortSignal: params.abortSignal,\n onAgentLaunched: params.onAgentLaunched,\n });\n if (!learn.ok) {\n params.diagnosticLog?.(`[ace] WARN: offline learn after trace failed (trace file is still valid): ${learn.message}`);\n } else {\n params.diagnosticLog?.(\n \"[ace] offline learn after trace OK \u2014 learnings/reflections/, learnings/curations/, learnings/ace-consolidated-sessions.jsonl\",\n );\n }\n } else {\n params.diagnosticLog?.(\n '[ace] Reflector/Curator not run automatically. Set easyspecs.analysis.ace.offlineLearnAfterSameSessionTrace in .easyspecs/config.json (or legacy .easyspecs/settings.json), or Command Palette: \"EasySpecs: ACE \u2014 Learn from traces\".',\n );\n }\n\n return { ok: true, message: \"ACE trace OK\", traceAbsolutePath: traceAbs };\n}\n", "/**\n * OpenCode CLI integration for EasySpecs (extension host).\n *\n * **Living doc:** Repo-root **`opencodeCLI.md`** \u2014 user-facing settings, worktree layout, troubleshooting.\n * **Official references:** [CLI](https://opencode.ai/docs/cli/), [agents](https://opencode.ai/docs/agents), [permissions](https://opencode.ai/docs/permissions).\n *\n * ---\n *\n * **Spawn:** `spawn` / `spawnSync` use **`shell: true` on Windows only** (`USE_SHELL`) so `opencode` on PATH resolves like an interactive shell; Unix uses a direct argv spawn.\n *\n * **Subcommands in this file**\n * - **`opencode analyze`** \u2014 `runOpenCodeAnalyze` (legacy / onboarding \u201Cfirst context analysis\u201D), sync, **cwd = workspace root**, 180s cap.\n * - **`opencode run \u2026`** \u2014 `runOpenCodeAgent` (async); argv built by callers (e.g. **`easyspecs.analysis.openCodeTestArgv`** in `package.json`). Typical Analysis shape:\n * `run --agent <id> \"<short user message>\" -f <promptFile>`.\n *\n * **`opencode run` contract (integration lessons)**\n * 1. **`[message..]` is required** \u2014 a run with only `-f` / `--file` fails with *You must provide a message or a command*.\n * 2. **Message before `-f`** \u2014 tokens **after** `-f` are treated as **additional file paths** on many builds (`File not found: <your sentence>`).\n * 3. **`--agent`** \u2014 selects the agent; OpenCode registers project agents from **`.opencode/agents/<name>.md`** as **`<name>`** (stem = filename without `.md`). Not the same as SRS **`AGENT_ID`** (`ctx-*`) inside the markdown.\n * 4. **`-f` / `--file`** \u2014 attaches files to the message (filled \u00A73.5 prompt under **`.opencode/_run/*.prompt.txt`** for test steps).\n * 5. **Non-interactive permissions** \u2014 `external_directory` defaults to **ask**; without a TUI, OpenCode often **auto-rejects**, so `glob`/`list`/`read`/`grep` can fail. Materialize merges **`opencode.json`** for the analysis checkout: **`external_directory`**, plus **`read`**, **`glob`**, **`list`**, **`grep`**, **`edit`** path allows for the whole worktree (see `materializeOpenCodeAgents.ts`).\n * 6. **Exit code 0 \u2260 product success** \u2014 the CLI can exit 0 while tools failed or produced no file. Callers (e.g. **`runOpenCodeTestAgentStep`** in `openCodeTestAgent.ts`) must check the **expected output artefact**; they log FOUND / NOT FOUND after this process returns.\n *\n * **`runOpenCodeAgent` diagnostics** (`diagnosticLog`): pretty-printed **command line**, **cwd**, **argv JSON**, **exit summary**; full **stderr/stdout** only on **non-zero exit**, **timeout**, or **spawn error** (avoid flooding on successful LLM runs). Never pass `diagnosticLog` from credential / install probes (no accidental secret leakage \u2014 see R22-style discipline).\n * **SRS-36:** optional **`parseOpenCodeSessionFromJsonStdout`** \u2014 stream-parse JSONL for **`sessionID`**, omit raw stdout from success **`message`**, set **`openCodeSessionId`** on **`AnalyzeResult`**.\n */\n\nimport { spawn, spawnSync } from \"child_process\";\nimport { parseOpenCodeSessionIdFromJsonLine } from \"./analysis/openCodeSessionStewardship\";\n\n/** Windows: resolve `opencode` on PATH via shell; POSIX: direct executable argv. */\nconst USE_SHELL = process.platform === \"win32\";\n\nfunction resolveExecutable(executable?: string): string {\n const t = executable?.trim();\n return t && t.length > 0 ? t : \"opencode\";\n}\n\nfunction spawnCliSync(\n executable: string,\n args: string[],\n cwd: string | undefined,\n timeoutMs: number,\n env?: NodeJS.ProcessEnv,\n): ReturnType<typeof spawnSync> {\n const mergedEnv = env ? { ...process.env, ...env } : process.env;\n return spawnSync(executable, args, {\n encoding: \"utf-8\",\n cwd,\n shell: USE_SHELL,\n timeout: timeoutMs,\n env: mergedEnv,\n });\n}\n\n/**\n * True if the OpenCode CLI responds (SRS-7: installed check).\n * Tries `--version` then `-h` because CLI flags may vary.\n */\nexport function isOpenCodeOnPath(executable = \"opencode\", probeEnv?: Record<string, string>): boolean {\n const cmd = resolveExecutable(executable);\n const extra = probeEnv ? ({ ...probeEnv } as NodeJS.ProcessEnv) : undefined;\n for (const args of [[\"--version\"], [\"-h\"], [\"help\"]]) {\n const r = spawnCliSync(cmd, args, undefined, 12_000, extra);\n if (r.status === 0) {\n return true;\n }\n }\n return false;\n}\n\n/** Env vars that often indicate a provider key is configured (presence only; never logged \u2014 SRS-7 R22). */\nconst PROVIDER_ENV_KEYS = [\n \"ANTHROPIC_API_KEY\",\n \"OPENAI_API_KEY\",\n \"OPENROUTER_API_KEY\",\n \"GOOGLE_API_KEY\",\n \"OPENCODE_API_KEY\",\n] as const;\n\nfunction hasProviderEnvConfigured(): boolean {\n for (const k of PROVIDER_ENV_KEYS) {\n const v = process.env[k];\n if (typeof v === \"string\" && v.trim().length > 0) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * CLI subcommands to probe authenticated / ready state (SRS-7 v0.2 / PLAN-SRS-7).\n * Exit code 0 is treated as credentials ready. Align with shipping OpenCode when documented.\n */\nconst CREDENTIAL_PROBE_ARG_SETS: string[][] = [[\"auth\", \"status\"], [\"whoami\"], [\"auth\", \"whoami\"]];\n\n/**\n * True if OpenCode appears to have usable credentials (SRS-7 R21).\n * Does not log stdout/stderr (R22). Call only when `isOpenCodeOnPath()` is already true.\n */\nexport function isOpenCodeCredentialsReady(\n executable = \"opencode\",\n options?: { readonly mergedEnv?: NodeJS.ProcessEnv },\n): boolean {\n const cmd = resolveExecutable(executable);\n const mergedEnv = options?.mergedEnv ? { ...process.env, ...options.mergedEnv } : undefined;\n for (const args of CREDENTIAL_PROBE_ARG_SETS) {\n const r = spawnCliSync(cmd, args, undefined, 15_000, mergedEnv);\n if (r.status === 0) {\n return true;\n }\n const merged = `${r.stdout ?? \"\"}\\n${r.stderr ?? \"\"}`.toLowerCase();\n if (\n merged.includes(\"not logged in\") ||\n merged.includes(\"not authenticated\") ||\n merged.includes(\"no credentials\") ||\n merged.includes(\"login required\") ||\n merged.includes(\"unauthorized\")\n ) {\n return false;\n }\n }\n if (hasProviderEnvConfigured()) {\n return true;\n }\n if (mergedEnv) {\n for (const k of PROVIDER_ENV_KEYS) {\n const v = mergedEnv[k];\n if (typeof v === \"string\" && v.trim().length > 0) {\n return true;\n }\n }\n }\n return false;\n}\n\nexport interface OpenCodeReadiness {\n installed: boolean;\n /** When true, onboarding step 2 may complete (SRS-7 R21). */\n credentialsReady: boolean;\n}\n\n/**\n * Combined install + credentials check for onboarding (SRS-7 v0.2).\n * @param skipCredentialsCheck Dev escape hatch (PLAN-SRS-7 / R16); when true and CLI is installed, credentials count as ready.\n */\nexport function getOpenCodeReadiness(options?: {\n skipCredentialsCheck?: boolean;\n /** Binary name or absolute path (default `opencode`). */\n executable?: string;\n /**\n * SRS-43: provider API keys from `.easyspecs/config.json` merged into probe runs (not logged).\n */\n providerEnvFromConfig?: Record<string, string>;\n}): OpenCodeReadiness {\n const exe = resolveExecutable(options?.executable);\n const probeEnv = options?.providerEnvFromConfig;\n const mergedProbe =\n probeEnv && Object.keys(probeEnv).length > 0\n ? ({ ...probeEnv } as NodeJS.ProcessEnv)\n : undefined;\n const installed = isOpenCodeOnPath(exe, probeEnv);\n if (!installed) {\n return { installed: false, credentialsReady: false };\n }\n if (options?.skipCredentialsCheck) {\n return { installed: true, credentialsReady: true };\n }\n return {\n installed: true,\n credentialsReady: isOpenCodeCredentialsReady(exe, { mergedEnv: mergedProbe }),\n };\n}\n\nexport interface AnalyzeResult {\n ok: boolean;\n message: string;\n /** Set when the run was ended by {@link AbortSignal} (user stopped remediation). */\n cancelled?: boolean;\n /** SRS-36: last `sessionID` seen in `opencode run --format json` line-delimited stdout. */\n openCodeSessionId?: string;\n}\n\n/**\n * Legacy / onboarding path: **`opencode analyze`** with **cwd = workspace root** (sync, 180s).\n * On success the caller should write **`.gluecharm/logs/log.json`**. Distinct from **`opencode run`** (`runOpenCodeAgent`).\n */\nexport function runOpenCodeAnalyze(workspaceRootFsPath: string, executable = \"opencode\"): AnalyzeResult {\n const cmd = resolveExecutable(executable);\n const r = spawnCliSync(cmd, [\"analyze\"], workspaceRootFsPath, 180_000);\n const msg = [r.stderr, r.stdout].filter(Boolean).join(\"\\n\").trim();\n if (r.status === 0) {\n return { ok: true, message: msg || \"OpenCode analyze finished.\" };\n }\n const err = r.error ? String(r.error.message) : \"\";\n return {\n ok: false,\n message: [msg, err].filter(Boolean).join(\"\\n\") || `OpenCode exited with code ${r.status ?? \"unknown\"}.`,\n };\n}\n\n/** Max chars of stderr / stdout appended to diagnostics on failure or timeout. */\nconst DIAG_STDERR_MAX = 16_384;\nconst DIAG_STDOUT_MAX = 12_288;\n\nfunction truncateForDiag(text: string, max: number): string {\n const t = text;\n if (t.length <= max) {\n return t;\n }\n return `${t.slice(0, max)}\\n\u2026 (${t.length - max} more characters truncated)`;\n}\n\n/**\n * Pretty-print executable + argv as one shell-style line for logs (POSIX single-quote rules).\n * Actual invocation uses `spawn(executable, args)` \u2014 this is for copy/paste and support only.\n */\nfunction formatCliCommandForLog(executable: string, argv: string[]): string {\n const safeUnquoted = /^[\\w./:@%+_,=-]+$/;\n const q = (s: string): string => {\n if (s === \"\") {\n return \"''\";\n }\n if (safeUnquoted.test(s)) {\n return s;\n }\n return `'${s.replace(/'/g, `'\\\\''`)}'`;\n };\n return [q(executable), ...argv.map(q)].join(\" \");\n}\n\n/**\n * Async **`opencode <args...>`** with **`spawn(exe, args, { cwd, shell: USE_SHELL })`** \u2014 used for **`opencode run`** and similar long jobs (SRS-8).\n *\n * - **`cwd`:** For Analysis test steps this is the **temp analysis checkout** (same root as **`.opencode/`** and materialized **`opencode.json`**).\n * - **`ok`:** `true` only when the child exits with code **0**. Does **not** imply expected files were written \u2014 validate artefacts in the caller.\n * - **Concurrency:** Single `settle()` guard so timeout + `close` cannot double-resolve or duplicate diagnostics.\n *\n * @param cwd Process working directory (OpenCode project root for discovery of `.opencode/agents`, `opencode.json`, etc.).\n * @param args Argument vector **after** the binary (e.g. `[\"run\",\"--agent\",\"agent-md-docs-project\",\"msg\",\"-f\",\"/path/prompt.txt\"]`).\n */\nexport function runOpenCodeAgent(\n cwd: string,\n args: string[],\n options?: {\n timeoutMs?: number;\n executable?: string;\n /**\n * If set, logs: shell-style **command** line, **cwd**, **argv** JSON, **exit** byte counts;\n * dumps **stderr/stdout** (truncated) only on failure, timeout, or spawn error \u2014 not on exit 0.\n * Do **not** wire this for `isOpenCodeCredentialsReady` / install checks.\n */\n diagnosticLog?: (line: string) => void;\n /** Fired once per spawned OpenCode process (after `spawn` returns). */\n onAgentLaunched?: () => void;\n /** SRS-43: merged into child env (provider keys from config.json). */\n childEnv?: Record<string, string>;\n /** When aborted, the child is sent SIGTERM and the promise resolves with `cancelled: true`. */\n signal?: AbortSignal;\n /**\n * When true, stdout is JSONL (`opencode run --format json`): scan lines for `sessionID`, keep the last match,\n * and omit raw stdout from {@link AnalyzeResult.message} (SRS-36).\n */\n parseOpenCodeSessionFromJsonStdout?: boolean;\n },\n): Promise<AnalyzeResult> {\n const timeoutMs = options?.timeoutMs ?? 600_000;\n const cmd = resolveExecutable(options?.executable);\n const log = options?.diagnosticLog;\n const sig = options?.signal;\n\n log?.(`[OpenCode] command: ${formatCliCommandForLog(cmd, args)}`);\n log?.(`[OpenCode] cwd: ${JSON.stringify(cwd)}`);\n log?.(`[OpenCode] argv: ${JSON.stringify(args)}`);\n\n return new Promise((resolve) => {\n if (sig?.aborted) {\n resolve({ ok: false, message: \"Stopped by user.\", cancelled: true });\n return;\n }\n\n const spawnEnv =\n options?.childEnv && Object.keys(options.childEnv).length > 0\n ? { ...process.env, ...options.childEnv }\n : process.env;\n const child = spawn(cmd, args, {\n cwd,\n shell: USE_SHELL,\n env: spawnEnv,\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n options?.onAgentLaunched?.();\n let stdout = \"\";\n let stderr = \"\";\n let settled = false;\n const jsonStdout = options?.parseOpenCodeSessionFromJsonStdout === true;\n let jsonLineBuf = \"\";\n let jsonSessionId: string | undefined;\n /** Bound partial line buffer so pathological single lines cannot grow without limit. */\n const JSON_LINE_BUF_MAX = 2_000_000;\n\n child.stdout?.on(\"data\", (chunk) => {\n const s = String(chunk);\n if (jsonStdout) {\n jsonLineBuf += s;\n if (jsonLineBuf.length > JSON_LINE_BUF_MAX) {\n jsonLineBuf = jsonLineBuf.slice(-JSON_LINE_BUF_MAX);\n }\n const lines = jsonLineBuf.split(/\\r?\\n/);\n jsonLineBuf = lines.pop() ?? \"\";\n for (const line of lines) {\n const id = parseOpenCodeSessionIdFromJsonLine(line);\n if (id) {\n jsonSessionId = id;\n }\n }\n return;\n }\n stdout += s;\n });\n child.stderr?.on(\"data\", (chunk) => {\n stderr += String(chunk);\n });\n const finishDiag = (label: string, code: number | null, dumpStreams: boolean) => {\n log?.(\n `[OpenCode] ${label} exitCode=${code === null ? \"null\" : String(code)} stderrBytes=${stderr.length} stdoutBytes=${stdout.length}`,\n );\n if (!dumpStreams) {\n return;\n }\n const errBody = stderr.trim();\n const outBody = stdout.trim();\n if (errBody) {\n log?.(`[OpenCode] stderr:\\n${truncateForDiag(errBody, DIAG_STDERR_MAX)}`);\n } else {\n log?.(\"[OpenCode] stderr: (empty)\");\n }\n if (outBody) {\n log?.(`[OpenCode] stdout:\\n${truncateForDiag(outBody, DIAG_STDOUT_MAX)}`);\n } else {\n log?.(\"[OpenCode] stdout: (empty)\");\n }\n };\n\n const settle = (\n result: AnalyzeResult,\n diag?: { label: string; code: number | null; dumpStreams: boolean },\n ) => {\n if (settled) {\n return;\n }\n settled = true;\n if (diag) {\n finishDiag(diag.label, diag.code, diag.dumpStreams);\n }\n resolve(result);\n };\n\n let onAbort: (() => void) | undefined;\n const clearAbortHandler = (): void => {\n if (sig && onAbort) {\n sig.removeEventListener(\"abort\", onAbort);\n onAbort = undefined;\n }\n };\n if (sig) {\n onAbort = () => {\n child.kill(\"SIGTERM\");\n settle(\n { ok: false, message: \"Stopped by user.\", cancelled: true },\n { label: \"aborted\", code: null, dumpStreams: false },\n );\n };\n sig.addEventListener(\"abort\", onAbort);\n }\n\n const timer = setTimeout(() => {\n clearAbortHandler();\n child.kill(\"SIGTERM\");\n settle(\n {\n ok: false,\n message: `OpenCode timed out after ${timeoutMs}ms.`,\n },\n { label: \"timeout\", code: null, dumpStreams: true },\n );\n }, timeoutMs);\n child.on(\"error\", (err) => {\n clearTimeout(timer);\n clearAbortHandler();\n log?.(`[OpenCode] spawn error: ${err.message}`);\n settle({\n ok: false,\n message: err.message,\n });\n });\n child.on(\"close\", (code) => {\n clearTimeout(timer);\n clearAbortHandler();\n if (jsonStdout && jsonLineBuf.trim()) {\n const id = parseOpenCodeSessionIdFromJsonLine(jsonLineBuf);\n if (id) {\n jsonSessionId = id;\n }\n }\n const stdoutForMessage = jsonStdout\n ? `(JSON event stream, ${jsonSessionId ? \"session id captured\" : \"session id not found in stream\"})`\n : stdout;\n const msg = [stderr, stdoutForMessage].filter(Boolean).join(\"\\n\").trim();\n const ok = code === 0;\n if (ok) {\n settle(\n {\n ok: true,\n message: msg || \"OpenCode finished.\",\n ...(jsonSessionId ? { openCodeSessionId: jsonSessionId } : {}),\n },\n { label: \"close\", code, dumpStreams: false },\n );\n return;\n }\n settle(\n {\n ok: false,\n message: msg || `OpenCode exited with code ${code ?? \"unknown\"}.`,\n ...(jsonSessionId ? { openCodeSessionId: jsonSessionId } : {}),\n },\n { label: \"close\", code, dumpStreams: true },\n );\n });\n });\n}\n", "/**\n * SRS-36: OpenCode session titles, `--format json` argv injection, session id parsing,\n * and follow-up argv that uses `-s` / `--session` only (never `-c` / `--continue` for binding).\n *\n * JSON event shape: `opencode run --format json` emits one JSON object per line (JSONL).\n * Events include top-level `sessionID` (and often `part.sessionID`). See opencodeCLI.md.\n */\n\nconst TITLE_MAX_LEN = 80;\n\nfunction isNonEmptyString(v: unknown): v is string {\n return typeof v === \"string\" && v.trim().length > 0;\n}\n\nfunction sessionIdFromParsedObject(o: unknown): string | undefined {\n if (!o || typeof o !== \"object\") {\n return undefined;\n }\n const r = o as Record<string, unknown>;\n const top = r.sessionID ?? r.session_id ?? r.sessionId;\n if (isNonEmptyString(top)) {\n return top.trim();\n }\n const part = r.part;\n if (part && typeof part === \"object\") {\n const p = part as Record<string, unknown>;\n const pid = p.sessionID ?? p.session_id ?? p.sessionId;\n if (isNonEmptyString(pid)) {\n return pid.trim();\n }\n }\n return undefined;\n}\n\n/**\n * Parses one line from `opencode run --format json` stdout.\n * Returns the session id if the line is a JSON object carrying `sessionID` / `part.sessionID`.\n */\nexport function parseOpenCodeSessionIdFromJsonLine(line: string): string | undefined {\n const t = line.trim();\n if (!t) {\n return undefined;\n }\n try {\n return sessionIdFromParsedObject(JSON.parse(t) as unknown);\n } catch {\n return undefined;\n }\n}\n\n/** Full stdout (for tests and offline fixtures). Last matching id wins (stream order). */\nexport function parseOpenCodeSessionIdFromJsonStdout(stdout: string): string | undefined {\n let last: string | undefined;\n for (const line of stdout.split(/\\r?\\n/)) {\n const id = parseOpenCodeSessionIdFromJsonLine(line);\n if (id) {\n last = id;\n }\n }\n return last;\n}\n\nexport function buildOpenCodeSessionTitle(p: { runId: string; workItemId: string; stepLabel: string }): string {\n const raw = `${p.runId}|${p.workItemId}|${p.stepLabel}`;\n if (raw.length <= TITLE_MAX_LEN) {\n return raw;\n }\n return raw.slice(0, TITLE_MAX_LEN);\n}\n\nfunction argvHasFormatJson(argv: readonly string[]): boolean {\n for (let i = 0; i < argv.length - 1; i++) {\n if (argv[i] === \"--format\" && argv[i + 1] === \"json\") {\n return true;\n }\n }\n return false;\n}\n\nfunction argvHasTitle(argv: readonly string[]): boolean {\n return argv.includes(\"--title\");\n}\n\n/**\n * After expanding the user argv template: insert `--format json` and `--title` immediately after `run`\n * when missing (idempotent).\n */\nexport function injectPrimaryOpenCodeSessionArgv(argv: string[], title: string): string[] {\n const out = [...argv];\n let runIdx = out.indexOf(\"run\");\n if (runIdx < 0) {\n out.unshift(\"run\");\n runIdx = 0;\n }\n const toInsert: string[] = [];\n if (!argvHasFormatJson(out)) {\n toInsert.push(\"--format\", \"json\");\n }\n if (!argvHasTitle(out)) {\n toInsert.push(\"--title\", title);\n }\n if (toInsert.length > 0) {\n out.splice(runIdx + 1, 0, ...toInsert);\n }\n return out;\n}\n\n/** Removes `-s` / `--session` and their values so a new session id can be applied. */\nexport function stripSessionBindingArgs(argv: string[]): string[] {\n const out: string[] = [];\n for (let i = 0; i < argv.length; i++) {\n const a = argv[i]!;\n if (a === \"-s\" || a === \"--session\") {\n i += 1;\n continue;\n }\n out.push(a);\n }\n return out;\n}\n\n/** Removes `-c` / `--continue` (boolean flags; no value). */\nexport function stripContinueBindingFlags(argv: string[]): string[] {\n return argv.filter((a) => a !== \"-c\" && a !== \"--continue\");\n}\n\n/**\n * Follow-up argv for the same OpenCode session: drop continue-binding flags, replace session id with `-s`.\n * Exported for SRS-35 / tests (SRS-36 R4, R10).\n */\nexport function buildFollowUpOpenCodeArgv(argv: string[], sessionId: string): string[] {\n let out = stripContinueBindingFlags(argv);\n out = stripSessionBindingArgs(out);\n let runIdx = out.indexOf(\"run\");\n if (runIdx < 0) {\n out.unshift(\"run\");\n runIdx = 0;\n }\n out.splice(runIdx + 1, 0, \"-s\", sessionId);\n return out;\n}\n\nexport function formatOpenCodeSessionLogSuffix(sessionId: string): string {\n if (sessionId.length <= 16) {\n return sessionId;\n }\n return `${sessionId.slice(0, 8)}\u2026${sessionId.slice(-4)}`;\n}\n\nfunction truncateTitleForLog(title: string, max = 72): string {\n if (title.length <= max) {\n return title;\n }\n return `${title.slice(0, max - 1)}\u2026`;\n}\n\nexport function logOpenCodeSessionPrimaryComplete(\n diagnosticLog: ((line: string) => void) | undefined,\n p: { workItemId: string; runId: string; title: string; sessionId?: string },\n): void {\n const sid = p.sessionId ? formatOpenCodeSessionLogSuffix(p.sessionId) : \"(not found)\";\n diagnosticLog?.(\n `[opencode-session] primary complete workItem=${JSON.stringify(p.workItemId)} runId=${JSON.stringify(p.runId)} title=${JSON.stringify(truncateTitleForLog(p.title))} session=${sid}`,\n );\n}\n\nexport function logOpenCodeSessionFollowUpStart(\n diagnosticLog: ((line: string) => void) | undefined,\n p: { workItemId: string; runId: string; sessionId: string },\n): void {\n diagnosticLog?.(\n `[opencode-session] follow-up start workItem=${JSON.stringify(p.workItemId)} runId=${JSON.stringify(p.runId)} session=${formatOpenCodeSessionLogSuffix(p.sessionId)}`,\n );\n}\n", "/**\n * SRS-35: deterministic cleanup of model-produced ACE trace JSON so it can pass\n * `ace-generator-trace.schema.json` when the recorder uses wrong property names or array shapes.\n */\n\nimport * as fs from \"fs\";\n\nconst ACE_VERSION = \"1.0.0-draft\";\n\nconst REASONING_PHASES = new Set([\n \"explore\",\n \"hypothesis\",\n \"draft\",\n \"validate\",\n \"repair\",\n \"finalize\",\n]);\n\nexport interface AceTraceCanonicalEnvelope {\n readonly openCodeSessionId: string;\n readonly runId: string;\n readonly agentStem: string;\n readonly startedAt: string;\n readonly relativePath: string;\n readonly artefactKind: string;\n readonly basename: string;\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return v !== null && typeof v === \"object\" && !Array.isArray(v);\n}\n\nfunction sanitizeReasoningSteps(\n input: unknown,\n legacyTopLevelDecisions?: unknown,\n): Array<Record<string, unknown>> {\n if (!Array.isArray(input)) {\n input = [];\n }\n const steps = (input as unknown[]).map((item, idx) => {\n if (!isRecord(item)) {\n return { stepId: `auto-${idx}`, phase: \"explore\", summary: \"(invalid reasoningSteps entry)\" };\n }\n const stepId =\n typeof item.stepId === \"string\" && item.stepId.trim()\n ? item.stepId\n : typeof item.step === \"string\"\n ? `legacy-${idx}`\n : `s${idx}`;\n const rawPhase = typeof item.phase === \"string\" ? item.phase : \"\";\n const phase = REASONING_PHASES.has(rawPhase) ? rawPhase : \"explore\";\n const summary =\n typeof item.summary === \"string\" && item.summary.trim()\n ? item.summary\n : typeof item.step === \"string\"\n ? item.step.slice(0, 4000)\n : \"(no summary)\";\n const out: Record<string, unknown> = { stepId, phase, summary };\n if (Array.isArray(item.toolsUsed) && item.toolsUsed.every((x) => typeof x === \"string\")) {\n out.toolsUsed = item.toolsUsed;\n }\n if (typeof item.backtracked === \"boolean\") {\n out.backtracked = item.backtracked;\n }\n const stepDecisions = sanitizeDecisions(item.decisions);\n if (stepDecisions.length > 0) {\n out.decisions = stepDecisions;\n }\n return out;\n });\n\n const legacy = sanitizeDecisions(legacyTopLevelDecisions);\n if (legacy.length === 0) {\n return steps;\n }\n if (steps.length === 0) {\n return [\n {\n stepId: \"legacy-top-level-decisions\",\n phase: \"finalize\",\n summary:\n \"Migrated: trace used a prior schema with root-level `decisions`; attach decisions on the step where they belong in new traces.\",\n decisions: legacy,\n },\n ];\n }\n const lastIdx = steps.length - 1;\n const last = steps[lastIdx]!;\n const existing = Array.isArray(last.decisions)\n ? (last.decisions as Record<string, unknown>[])\n : [];\n const merged = [...existing, ...legacy];\n const next = { ...last, decisions: merged };\n steps[lastIdx] = next;\n return steps;\n}\n\nfunction sanitizeDecisions(input: unknown): Array<Record<string, unknown>> {\n if (!Array.isArray(input)) {\n return [];\n }\n return input.map((item, idx) => {\n if (!isRecord(item)) {\n return {\n decisionId: `d${idx}`,\n topic: \"\",\n choice: \"\",\n rationale: \"(invalid decisions entry)\",\n };\n }\n const decisionId =\n typeof item.decisionId === \"string\" && item.decisionId.trim() ? item.decisionId : `d${idx}`;\n const topic = typeof item.topic === \"string\" ? item.topic : \"\";\n const choice = typeof item.choice === \"string\" ? item.choice : \"\";\n const rationale =\n typeof item.rationale === \"string\" && item.rationale.trim()\n ? item.rationale\n : \"(no rationale)\";\n const out: Record<string, unknown> = { decisionId, topic, choice, rationale };\n if (\n Array.isArray(item.alternativesConsidered) &&\n item.alternativesConsidered.every((x) => typeof x === \"string\")\n ) {\n out.alternativesConsidered = item.alternativesConsidered;\n }\n return out;\n });\n}\n\nfunction sanitizeFailures(input: unknown): Array<Record<string, unknown>> {\n if (!Array.isArray(input)) {\n return [];\n }\n return input.map((item, idx) => {\n if (!isRecord(item)) {\n return { failureId: `f${idx}`, description: \"(invalid failuresAndRetries entry)\" };\n }\n const failureId =\n typeof item.failureId === \"string\" && item.failureId.trim() ? item.failureId : `f${idx}`;\n const description =\n typeof item.description === \"string\" && item.description.trim()\n ? item.description\n : \"(no description)\";\n const out: Record<string, unknown> = { failureId, description };\n if (typeof item.resolution === \"string\" && item.resolution.trim()) {\n out.resolution = item.resolution;\n }\n return out;\n });\n}\n\nfunction sanitizeEvidenceIndex(input: unknown): Array<Record<string, unknown>> {\n if (!Array.isArray(input)) {\n return [];\n }\n const out: Array<Record<string, unknown>> = [];\n for (const item of input) {\n if (!isRecord(item)) {\n continue;\n }\n const pathStr =\n typeof item.path === \"string\"\n ? item.path\n : typeof item.filePath === \"string\"\n ? item.filePath\n : \"\";\n if (!pathStr.trim()) {\n continue;\n }\n const role = typeof item.role === \"string\" && item.role.trim() ? item.role : \"citation\";\n const row: Record<string, unknown> = { path: pathStr, role };\n if (Array.isArray(item.symbols) && item.symbols.every((x) => typeof x === \"string\")) {\n row.symbols = item.symbols;\n }\n out.push(row);\n }\n return out;\n}\n\nfunction sanitizePlaybookHooks(input: unknown): Array<Record<string, unknown>> | undefined {\n if (!Array.isArray(input) || input.length === 0) {\n return undefined;\n }\n const effects = new Set([\"applied\", \"violated\", \"absent\"]);\n const out: Array<Record<string, unknown>> = [];\n for (const item of input) {\n if (!isRecord(item)) {\n continue;\n }\n const ruleRef = typeof item.ruleRef === \"string\" ? item.ruleRef : \"\";\n const effectRaw = typeof item.effect === \"string\" ? item.effect : \"\";\n if (!ruleRef || !effects.has(effectRaw)) {\n continue;\n }\n out.push({ ruleRef, effect: effectRaw });\n }\n return out.length > 0 ? out : undefined;\n}\n\n/**\n * Re-reads the trace file, replaces envelope fields the extension already knows, and normalizes arrays\n * so schema validation is likely to pass. Call when the first `validateAceJsonFile` fails.\n */\nexport function rewriteAceTraceFileWithCanonicalEnvelope(\n traceAbsolutePath: string,\n canonical: AceTraceCanonicalEnvelope,\n diagnosticLog?: (line: string) => void,\n): boolean {\n let raw: string;\n try {\n raw = fs.readFileSync(traceAbsolutePath, \"utf-8\");\n } catch (e) {\n diagnosticLog?.(`[ace] trace normalize read failed: ${e instanceof Error ? e.message : String(e)}`);\n return false;\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch (e) {\n diagnosticLog?.(`[ace] trace normalize JSON.parse failed: ${e instanceof Error ? e.message : String(e)}`);\n return false;\n }\n const prev = isRecord(parsed) ? parsed : {};\n\n const sessionMeta: Record<string, unknown> = {\n openCodeSessionId: canonical.openCodeSessionId,\n runId: canonical.runId,\n agentStem: canonical.agentStem,\n startedAt: canonical.startedAt,\n };\n const prevSm = prev.sessionMeta;\n if (isRecord(prevSm)) {\n if (typeof prevSm.sessionTitle === \"string\") {\n sessionMeta.sessionTitle = prevSm.sessionTitle;\n }\n if (typeof prevSm.modelId === \"string\") {\n sessionMeta.modelId = prevSm.modelId;\n }\n }\n\n const doc: Record<string, unknown> = {\n aceSchemaVersion: ACE_VERSION,\n sessionMeta,\n primaryArtefact: {\n relativePath: canonical.relativePath,\n artefactKind: canonical.artefactKind,\n basename: canonical.basename,\n },\n reasoningSteps: sanitizeReasoningSteps(prev.reasoningSteps, prev.decisions),\n failuresAndRetries: sanitizeFailures(prev.failuresAndRetries),\n evidenceIndex: sanitizeEvidenceIndex(prev.evidenceIndex),\n };\n const hooks = sanitizePlaybookHooks(prev.playbookHooks);\n if (hooks) {\n doc.playbookHooks = hooks;\n }\n\n try {\n fs.writeFileSync(traceAbsolutePath, `${JSON.stringify(doc, null, 2)}\\n`, \"utf-8\");\n } catch (e) {\n diagnosticLog?.(`[ace] trace normalize write failed: ${e instanceof Error ? e.message : String(e)}`);\n return false;\n }\n diagnosticLog?.(`[ace] trace normalized with canonical envelope \u2192 ${traceAbsolutePath}`);\n return true;\n}\n", "/**\n * SRS-35 R14: offline Reflector \u2192 Curator \u2192 deterministic applier (new OpenCode sessions per phase).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { runOpenCodeAgent } from \"../opencodeCli\";\nimport { buildOpenCodeSessionTitle, injectPrimaryOpenCodeSessionArgv } from \"./openCodeSessionStewardship\";\nimport {\n ACE_SCHEMA_CURATOR,\n ACE_SCHEMA_REFLECTOR,\n ACE_SCHEMA_TRACE,\n gluecharmContextDir,\n aceCurationPath,\n aceLearningsRoot,\n aceReflectionPath,\n opencodeAceSchemaPath,\n} from \"./acePaths\";\nimport { extractJsonObjectWithTopLevelKeys, validateAceJsonFile } from \"./aceJsonValidate\";\nimport { applyAceCuratorDeltaFile } from \"./aceCuratorApplier\";\nimport {\n appendAceConsolidatedSessionRecord,\n buildEmptyCuratorDelta,\n buildEmptyReflectorLessons,\n} from \"./aceOfflineLearnFallbacks\";\n\nexport const ACE_REFLECTOR_AGENT_STEM = \"agent-ace-reflector\";\nexport const ACE_CURATOR_AGENT_STEM = \"agent-ace-curator\";\n\nfunction expandArgvTemplate(template: string[], vars: Record<string, string>): string[] {\n return template.map((part) => {\n let s = part;\n for (const [k, v] of Object.entries(vars)) {\n s = s.split(`{${k}}`).join(v);\n }\n return s;\n });\n}\n\nfunction safeRunIdSegment(runId: string): string {\n return runId.replace(/[^a-zA-Z0-9_.-]+/g, \"_\").slice(0, 200) || \"run\";\n}\n\nfunction readHead(p: string, max: number): string {\n try {\n const raw = fs.readFileSync(p, \"utf-8\");\n return raw.length <= max ? raw : `${raw.slice(0, max)}\\n\u2026 (truncated)`;\n } catch {\n return \"(unreadable)\";\n }\n}\n\n/** Walk `learnings/traces` recursively for `*.json` under context dir. */\nexport function listAceTraceFiles(contextDir: string): string[] {\n const root = path.join(aceLearningsRoot(contextDir), \"traces\");\n if (!fs.existsSync(root)) {\n return [];\n }\n const out: string[] = [];\n const walk = (dir: string): void => {\n for (const e of fs.readdirSync(dir, { withFileTypes: true })) {\n const full = path.join(dir, e.name);\n if (e.isDirectory()) {\n walk(full);\n } else if (e.isFile() && e.name.endsWith(\".json\")) {\n out.push(full);\n }\n }\n };\n walk(root);\n return out.sort();\n}\n\nexport interface AceOfflineLearnOptions {\n readonly worktreeRoot: string;\n readonly executable: string;\n readonly argvTemplate: string[];\n readonly timeoutMs: number;\n readonly diagnosticLog?: (line: string) => void;\n readonly abortSignal?: AbortSignal;\n readonly onAgentLaunched?: () => void;\n /** Defaults to basename of trace file without the trace suffix. */\n readonly agentStemOverride?: string;\n readonly artefactRunId?: string;\n /** SRS-43: provider keys + `OPENCODE_AUTH_PATH` from `.easyspecs/config.json`. */\n readonly openCodeChildEnv?: Record<string, string>;\n}\n\n/**\n * Run Reflector + Curator + applier for one trace file (must be schema-valid).\n */\nexport async function runAceOfflineLearnFromTrace(\n traceAbsolutePath: string,\n opts: AceOfflineLearnOptions,\n): Promise<{ ok: boolean; message: string }> {\n const contextDir = gluecharmContextDir(opts.worktreeRoot);\n const traceSchema = opencodeAceSchemaPath(opts.worktreeRoot, ACE_SCHEMA_TRACE);\n const reflectorSchema = opencodeAceSchemaPath(opts.worktreeRoot, ACE_SCHEMA_REFLECTOR);\n const curatorSchema = opencodeAceSchemaPath(opts.worktreeRoot, ACE_SCHEMA_CURATOR);\n\n const tv = validateAceJsonFile(traceAbsolutePath, traceSchema);\n if (!tv.ok) {\n return { ok: false, message: `Trace invalid: ${tv.message}` };\n }\n const traceData = tv.data as { sessionMeta?: { runId?: string; agentStem?: string } };\n const runId =\n opts.artefactRunId ??\n (typeof traceData.sessionMeta?.runId === \"string\" ? traceData.sessionMeta.runId : undefined) ??\n path.basename(traceAbsolutePath).replace(/-trace\\.json$/i, \"\") ??\n \"unknown\";\n const agentStem =\n opts.agentStemOverride ??\n (typeof traceData.sessionMeta?.agentStem === \"string\"\n ? traceData.sessionMeta.agentStem\n : path.basename(path.dirname(traceAbsolutePath)));\n\n const safeId = safeRunIdSegment(runId);\n const traceRel = path.relative(contextDir, traceAbsolutePath).split(path.sep).join(\"/\");\n const lessonsAbs = aceReflectionPath(contextDir, agentStem, safeId);\n const deltaAbs = aceCurationPath(contextDir, agentStem, safeId);\n fs.mkdirSync(path.dirname(lessonsAbs), { recursive: true });\n fs.mkdirSync(path.dirname(deltaAbs), { recursive: true });\n\n const pbPath = path.join(aceLearningsRoot(contextDir), `${agentStem}.json`);\n const ovPath = path.join(aceLearningsRoot(contextDir), \"overlays\", `${agentStem}.json`);\n const pbExcerpt = fs.existsSync(pbPath) ? readHead(pbPath, 6000) : \"(no playbook yet)\";\n const ovExcerpt = fs.existsSync(ovPath) ? readHead(ovPath, 4000) : \"(no overlay yet)\";\n\n const runDir = path.join(opts.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n\n let reflectorUsedEmptyFallback = false;\n let curatorUsedEmptyFallback = false;\n\n /* --- Reflector --- */\n const reflectPrompt = [\n \"# ACE Reflector (offline)\",\n \"\",\n \"## Required action\",\n \"\",\n \"Use a **file tool** (**write** or **edit**) to create or overwrite the lessons file on disk at the path below.\",\n \"Chat-only JSON is not enough \u2014 EasySpecs checks that the file exists after OpenCode exits.\",\n \"\",\n `- Trace JSON (read): ${traceAbsolutePath}`,\n `- sourceTrace.relativePath (for output JSON): ${traceRel}`,\n `- sessionRunId (for output JSON): ${runId}`,\n `- Lessons file (absolute path \u2014 UTF-8 ace-reflector-lessons JSON): ${lessonsAbs}`,\n \"\",\n \"Schema: `aceSchemaVersion` **1.0.0-draft**, `sourceTrace`, `lessons` (see ace-reflector-lessons schema).\",\n ].join(\"\\n\");\n const reflectPromptPath = path.join(runDir, `ace-reflect-${safeId}-${Date.now()}.prompt.txt`);\n fs.writeFileSync(reflectPromptPath, reflectPrompt, \"utf-8\");\n\n const reflectVars = {\n promptFile: reflectPromptPath,\n agentId: ACE_REFLECTOR_AGENT_STEM,\n worktree: opts.worktreeRoot,\n };\n const reflectArgv = injectPrimaryOpenCodeSessionArgv(\n expandArgvTemplate(opts.argvTemplate, reflectVars),\n buildOpenCodeSessionTitle({\n runId: safeId,\n workItemId: \"ace:reflector\",\n stepLabel: agentStem,\n }),\n );\n\n opts.diagnosticLog?.(`[ace] offline reflector \u2014 ${reflectPromptPath}`);\n const rCli = await runOpenCodeAgent(opts.worktreeRoot, reflectArgv, {\n timeoutMs: opts.timeoutMs,\n executable: opts.executable,\n diagnosticLog: opts.diagnosticLog,\n onAgentLaunched: opts.onAgentLaunched,\n signal: opts.abortSignal,\n /** Keep raw stdout in `message` so we can recover lessons JSON if the model prints it instead of writing the file. */\n parseOpenCodeSessionFromJsonStdout: false,\n ...(opts.openCodeChildEnv ? { childEnv: opts.openCodeChildEnv } : {}),\n });\n if (rCli.cancelled || opts.abortSignal?.aborted) {\n return { ok: false, message: \"[ace] reflector cancelled\" };\n }\n if (!rCli.ok) {\n return { ok: false, message: `[ace] reflector OpenCode failed: ${rCli.message}` };\n }\n if (!fs.existsSync(lessonsAbs)) {\n const recovered = extractJsonObjectWithTopLevelKeys(rCli.message, [\"aceSchemaVersion\", \"sourceTrace\", \"lessons\"]);\n if (recovered) {\n try {\n fs.writeFileSync(lessonsAbs, `${recovered}\\n`, \"utf-8\");\n opts.diagnosticLog?.(`[ace] reflector recovered from OpenCode stdout/stderr \u2192 ${lessonsAbs}`);\n } catch (e) {\n opts.diagnosticLog?.(\n `[ace] reflector recovery write failed: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n }\n if (!fs.existsSync(lessonsAbs)) {\n return { ok: false, message: `[ace] reflector output missing: ${lessonsAbs}` };\n }\n let lv = validateAceJsonFile(lessonsAbs, reflectorSchema);\n if (!lv.ok) {\n const recoveredAgain = extractJsonObjectWithTopLevelKeys(rCli.message, [\n \"aceSchemaVersion\",\n \"sourceTrace\",\n \"lessons\",\n ]);\n if (recoveredAgain) {\n try {\n fs.writeFileSync(lessonsAbs, `${recoveredAgain}\\n`, \"utf-8\");\n opts.diagnosticLog?.(`[ace] reflector re-recovered from CLI output after schema failure \u2192 ${lessonsAbs}`);\n lv = validateAceJsonFile(lessonsAbs, reflectorSchema);\n } catch (e) {\n opts.diagnosticLog?.(\n `[ace] reflector re-recovery write failed: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n }\n if (!lv.ok) {\n const hint = lv.message.length > 220 ? `${lv.message.slice(0, 220)}\u2026` : lv.message;\n opts.diagnosticLog?.(`[ace] reflector lessons failed schema \u2014 writing valid empty lessons \u2014 ${hint}`);\n fs.writeFileSync(\n lessonsAbs,\n `${JSON.stringify(buildEmptyReflectorLessons(traceRel, runId), null, 2)}\\n`,\n \"utf-8\",\n );\n reflectorUsedEmptyFallback = true;\n lv = validateAceJsonFile(lessonsAbs, reflectorSchema);\n }\n if (!lv.ok) {\n return { ok: false, message: `[ace] lessons invalid after empty fallback: ${lv.message}` };\n }\n\n const lessonsRel = path.relative(contextDir, lessonsAbs).split(path.sep).join(\"/\");\n\n /* --- Curator --- */\n const curPrompt = [\n \"# ACE Curator (offline)\",\n \"\",\n \"## Required action\",\n \"\",\n \"Use a **file tool** (**write** or **edit**) to create or overwrite the delta file on disk at the path below.\",\n \"Chat-only JSON is not enough \u2014 EasySpecs checks that the file exists after OpenCode exits.\",\n \"\",\n `- Lessons JSON (read): ${lessonsAbs}`,\n `- sourceLessons.relativePath (for delta JSON): ${lessonsRel}`,\n `- Agent stem: ${agentStem}`,\n \"- Current playbook (excerpt):\",\n \"```json\",\n pbExcerpt,\n \"```\",\n \"- Current overlay (excerpt):\",\n \"```json\",\n ovExcerpt,\n \"```\",\n `- Delta file (absolute path \u2014 UTF-8 ace-curator-delta JSON): ${deltaAbs}`,\n \"\",\n \"## Guidance \u2014 learnings that worked \u2192 rules / overlay\",\n \"\",\n \"Read the **full** lessons file (path above). Lessons encode what **worked** or **was corrected** in a real run; **bias toward** promoting them into durable context:\",\n \"\",\n \"- **`confirmedPattern`**, **`nonObviousDecision`**, **`failureCorrection`** with **`high`** or **`medium`** confidence \u2192 strong candidates for **`target: \\\"learning\\\"`** + **`op: \\\"append\\\"`** with a new **`ruleId`** and **`payload`** (`ruleId`, `statement`, optional `priority`) unless the same intent already exists in the playbook (use full playbook file if the excerpt is incomplete).\",\n \"- **`noise`** or **`low`** confidence \u2192 usually skip unless the statement is clearly actionable and non-generic.\",\n \"- Prefer **`target: \\\"overlay\\\"`** for tone, emphasis, or \u201Cdo not\u201D guidance (`instructionAppend`, `emphasisBullets`, `negativeConstraints` in `payload`) when that fits better than a playbook rule.\",\n \"- Every **`append`** / **`merge`** / **`prune`** must set **`sourceLessonIds`** to the relevant **`lessonId`** strings and a short **`rationale`** linking the lesson to the operation.\",\n \"- **`operations` may be `[]`** only when no lesson warrants a new rule or overlay change (all noise, or redundant with existing playbook/overlay).\",\n \"\",\n \"Schema: `aceSchemaVersion` **1.0.0-draft**, `agentStem`, `sourceLessons`, `operations` (see ace-curator-delta schema).\",\n ].join(\"\\n\");\n const curPromptPath = path.join(runDir, `ace-curate-${safeId}-${Date.now()}.prompt.txt`);\n fs.writeFileSync(curPromptPath, curPrompt, \"utf-8\");\n\n const curVars = {\n promptFile: curPromptPath,\n agentId: ACE_CURATOR_AGENT_STEM,\n worktree: opts.worktreeRoot,\n };\n const curArgv = injectPrimaryOpenCodeSessionArgv(\n expandArgvTemplate(opts.argvTemplate, curVars),\n buildOpenCodeSessionTitle({\n runId: safeId,\n workItemId: \"ace:curator\",\n stepLabel: agentStem,\n }),\n );\n\n opts.diagnosticLog?.(`[ace] offline curator \u2014 ${curPromptPath}`);\n const cCli = await runOpenCodeAgent(opts.worktreeRoot, curArgv, {\n timeoutMs: opts.timeoutMs,\n executable: opts.executable,\n diagnosticLog: opts.diagnosticLog,\n onAgentLaunched: opts.onAgentLaunched,\n signal: opts.abortSignal,\n parseOpenCodeSessionFromJsonStdout: false,\n ...(opts.openCodeChildEnv ? { childEnv: opts.openCodeChildEnv } : {}),\n });\n if (cCli.cancelled || opts.abortSignal?.aborted) {\n return { ok: false, message: \"[ace] curator cancelled\" };\n }\n if (!cCli.ok) {\n return { ok: false, message: `[ace] curator OpenCode failed: ${cCli.message}` };\n }\n if (!fs.existsSync(deltaAbs)) {\n const recovered = extractJsonObjectWithTopLevelKeys(cCli.message, [\n \"aceSchemaVersion\",\n \"agentStem\",\n \"sourceLessons\",\n \"operations\",\n ]);\n if (recovered) {\n try {\n fs.writeFileSync(deltaAbs, `${recovered}\\n`, \"utf-8\");\n opts.diagnosticLog?.(`[ace] curator recovered from OpenCode stdout/stderr \u2192 ${deltaAbs}`);\n } catch (e) {\n opts.diagnosticLog?.(\n `[ace] curator recovery write failed: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n }\n if (!fs.existsSync(deltaAbs)) {\n return { ok: false, message: `[ace] curator output missing: ${deltaAbs}` };\n }\n let dv = validateAceJsonFile(deltaAbs, curatorSchema);\n if (!dv.ok) {\n const recoveredCur = extractJsonObjectWithTopLevelKeys(cCli.message, [\n \"aceSchemaVersion\",\n \"agentStem\",\n \"sourceLessons\",\n \"operations\",\n ]);\n if (recoveredCur) {\n try {\n fs.writeFileSync(deltaAbs, `${recoveredCur}\\n`, \"utf-8\");\n opts.diagnosticLog?.(`[ace] curator re-recovered from CLI output after schema failure \u2192 ${deltaAbs}`);\n dv = validateAceJsonFile(deltaAbs, curatorSchema);\n } catch (e) {\n opts.diagnosticLog?.(\n `[ace] curator re-recovery write failed: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n }\n }\n if (!dv.ok) {\n const hint = dv.message.length > 220 ? `${dv.message.slice(0, 220)}\u2026` : dv.message;\n opts.diagnosticLog?.(`[ace] curator delta failed schema \u2014 writing valid empty operations \u2014 ${hint}`);\n fs.writeFileSync(\n deltaAbs,\n `${JSON.stringify(buildEmptyCuratorDelta(agentStem, lessonsRel), null, 2)}\\n`,\n \"utf-8\",\n );\n curatorUsedEmptyFallback = true;\n dv = validateAceJsonFile(deltaAbs, curatorSchema);\n }\n if (!dv.ok) {\n return { ok: false, message: `[ace] delta invalid after empty fallback: ${dv.message}` };\n }\n\n const apply = applyAceCuratorDeltaFile(opts.worktreeRoot, deltaAbs, opts.diagnosticLog);\n if (!apply.ok) {\n return { ok: false, message: apply.message };\n }\n\n let lessonCount = 0;\n let curatorOperationCount = 0;\n try {\n const lessonsDoc = JSON.parse(fs.readFileSync(lessonsAbs, \"utf-8\")) as { lessons?: unknown };\n lessonCount = Array.isArray(lessonsDoc.lessons) ? lessonsDoc.lessons.length : 0;\n const deltaDoc = JSON.parse(fs.readFileSync(deltaAbs, \"utf-8\")) as { operations?: unknown };\n curatorOperationCount = Array.isArray(deltaDoc.operations) ? deltaDoc.operations.length : 0;\n } catch {\n /* ignore */\n }\n const deltaRel = path.relative(contextDir, deltaAbs).split(path.sep).join(\"/\");\n appendAceConsolidatedSessionRecord(\n contextDir,\n {\n recordedAt: new Date().toISOString(),\n agentStem,\n traceRelativePath: traceRel,\n lessonsRelativePath: lessonsRel,\n deltaRelativePath: deltaRel,\n reflectorOpenCodeExitedZero: true,\n curatorOpenCodeExitedZero: true,\n reflectorUsedEmptyFallback,\n curatorUsedEmptyFallback,\n lessonCount,\n curatorOperationCount,\n },\n opts.diagnosticLog,\n );\n\n const flags = [\n reflectorUsedEmptyFallback ? \"reflector=empty-fallback\" : null,\n curatorUsedEmptyFallback ? \"curator=empty-fallback\" : null,\n ]\n .filter(Boolean)\n .join(\", \");\n return {\n ok: true,\n message: `[ace] offline learn complete \u2014 ${deltaAbs}${flags ? ` (${flags})` : \"\"}`,\n };\n}\n", "/**\n * SRS-35 R12\u2013R13: deterministic application of Curator delta JSON to playbook + overlay files.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport {\n ACE_SCHEMA_CURATOR,\n ACE_SCHEMA_OVERLAY,\n ACE_SCHEMA_PLAYBOOK,\n gluecharmContextDir,\n aceOverlayPath,\n acePlaybookPath,\n opencodeAceSchemaPath,\n} from \"./acePaths\";\nimport { validateAceJsonFile, validateAceJsonValue } from \"./aceJsonValidate\";\n\nexport interface AceCuratorApplyResult {\n ok: boolean;\n message: string;\n}\n\ntype PlaybookRule = { ruleId: string; statement: string; priority?: number; tags?: string[]; sourceRunIds?: string[] };\n\ninterface PlaybookState {\n acePlaybookVersion: string;\n agentStem: string;\n rules: PlaybookRule[];\n metadata?: Record<string, unknown>;\n}\n\ninterface OverlayState {\n aceOverlayVersion: string;\n agentStem: string;\n instructionAppend?: string;\n systemPromptSuffix?: string;\n negativeConstraints?: string[];\n emphasisBullets?: string[];\n metadata?: Record<string, unknown>;\n}\n\nfunction readJson(pathAbs: string): unknown {\n const raw = fs.readFileSync(pathAbs, \"utf-8\");\n return JSON.parse(raw) as unknown;\n}\n\nfunction writeJson(pathAbs: string, obj: unknown): void {\n fs.mkdirSync(path.dirname(pathAbs), { recursive: true });\n fs.writeFileSync(pathAbs, `${JSON.stringify(obj, null, 2)}\\n`, \"utf-8\");\n}\n\nfunction emptyPlaybook(agentStem: string): PlaybookState {\n return { acePlaybookVersion: \"1.0.0-draft\", agentStem, rules: [] };\n}\n\nfunction emptyOverlay(agentStem: string): OverlayState {\n return { aceOverlayVersion: \"1.0.0-draft\", agentStem };\n}\n\n/**\n * Apply a validated curator delta file at `deltaAbsolutePath` into playbook + overlay under `contextDir`.\n */\nexport function applyAceCuratorDeltaFile(\n worktreeRoot: string,\n deltaAbsolutePath: string,\n log?: (line: string) => void,\n): AceCuratorApplyResult {\n const contextDir = gluecharmContextDir(worktreeRoot);\n const curatorSchema = opencodeAceSchemaPath(worktreeRoot, ACE_SCHEMA_CURATOR);\n const playbookSchema = opencodeAceSchemaPath(worktreeRoot, ACE_SCHEMA_PLAYBOOK);\n const overlaySchema = opencodeAceSchemaPath(worktreeRoot, ACE_SCHEMA_OVERLAY);\n\n const dv = validateAceJsonFile(deltaAbsolutePath, curatorSchema);\n if (!dv.ok) {\n return { ok: false, message: `Curator delta invalid: ${dv.kind} ${dv.message}` };\n }\n const delta = dv.data as {\n agentStem: string;\n operations?: Array<{\n opId: string;\n op: string;\n target: string;\n ruleId?: string;\n payload?: Record<string, unknown>;\n rationale: string;\n sourceLessonIds: string[];\n }>;\n overlayPatch?: Record<string, unknown>;\n };\n const agentStem = delta.agentStem;\n if (!agentStem || typeof agentStem !== \"string\") {\n return { ok: false, message: \"Curator delta missing agentStem\" };\n }\n\n const pbPath = acePlaybookPath(contextDir, agentStem);\n const ovPath = aceOverlayPath(contextDir, agentStem);\n\n let playbook: PlaybookState;\n if (fs.existsSync(pbPath)) {\n const pv = validateAceJsonFile(pbPath, playbookSchema);\n if (!pv.ok) {\n return { ok: false, message: `Existing playbook invalid: ${pv.message}` };\n }\n playbook = pv.data as PlaybookState;\n } else {\n playbook = emptyPlaybook(agentStem);\n }\n\n let overlay: OverlayState;\n if (fs.existsSync(ovPath)) {\n const ov = validateAceJsonFile(ovPath, overlaySchema);\n if (!ov.ok) {\n return { ok: false, message: `Existing overlay invalid: ${ov.message}` };\n }\n overlay = ov.data as OverlayState;\n } else {\n overlay = emptyOverlay(agentStem);\n }\n\n const ops = Array.isArray(delta.operations) ? delta.operations : [];\n for (const op of ops) {\n if (op.target === \"learning\") {\n if (op.op === \"append\") {\n const rid = typeof op.payload?.ruleId === \"string\" ? op.payload.ruleId : \"\";\n const stmt = typeof op.payload?.statement === \"string\" ? op.payload.statement : \"\";\n if (!rid || !stmt) {\n log?.(`[ace] applier skip append \u2014 missing ruleId/statement in payload`);\n continue;\n }\n const pr =\n typeof op.payload?.priority === \"number\" && Number.isFinite(op.payload.priority)\n ? op.payload.priority\n : undefined;\n playbook.rules.push({\n ruleId: rid,\n statement: stmt,\n ...(pr !== undefined ? { priority: pr } : {}),\n });\n } else if (op.op === \"merge\" && op.ruleId) {\n const idx = playbook.rules.findIndex((r) => r.ruleId === op.ruleId);\n if (idx >= 0 && op.payload && typeof op.payload.statement === \"string\") {\n playbook.rules[idx] = { ...playbook.rules[idx]!, statement: op.payload.statement as string };\n }\n } else if (op.op === \"prune\" && op.ruleId) {\n playbook.rules = playbook.rules.filter((r) => r.ruleId !== op.ruleId);\n }\n } else if (op.target === \"overlay\") {\n const p = op.payload ?? {};\n if (typeof p.instructionAppend === \"string\") {\n overlay.instructionAppend = [overlay.instructionAppend, p.instructionAppend].filter(Boolean).join(\"\\n\\n\");\n }\n if (typeof p.systemPromptSuffix === \"string\") {\n overlay.systemPromptSuffix = [overlay.systemPromptSuffix, p.systemPromptSuffix].filter(Boolean).join(\"\\n\\n\");\n }\n if (Array.isArray(p.emphasisBullets)) {\n overlay.emphasisBullets = [...(overlay.emphasisBullets ?? []), ...(p.emphasisBullets as string[])];\n }\n if (Array.isArray(p.negativeConstraints)) {\n overlay.negativeConstraints = [...(overlay.negativeConstraints ?? []), ...(p.negativeConstraints as string[])];\n }\n }\n }\n\n if (delta.overlayPatch && typeof delta.overlayPatch === \"object\") {\n const patch = delta.overlayPatch as Record<string, unknown>;\n for (const [k, v] of Object.entries(patch)) {\n if (k === \"instructionAppend\" && typeof v === \"string\") {\n overlay.instructionAppend = [overlay.instructionAppend, v].filter(Boolean).join(\"\\n\\n\");\n } else if (k === \"systemPromptSuffix\" && typeof v === \"string\") {\n overlay.systemPromptSuffix = [overlay.systemPromptSuffix, v].filter(Boolean).join(\"\\n\\n\");\n } else if (k === \"emphasisBullets\" && Array.isArray(v)) {\n overlay.emphasisBullets = [...(overlay.emphasisBullets ?? []), ...(v as string[])];\n } else if (k === \"negativeConstraints\" && Array.isArray(v)) {\n overlay.negativeConstraints = [...(overlay.negativeConstraints ?? []), ...(v as string[])];\n }\n }\n }\n\n const pvOut = validateAceJsonValue(playbook, playbookSchema);\n if (!pvOut.ok) {\n return { ok: false, message: `Playbook after apply failed schema: ${pvOut.message}` };\n }\n const ovOut = validateAceJsonValue(overlay, overlaySchema);\n if (!ovOut.ok) {\n return { ok: false, message: `Overlay after apply failed schema: ${ovOut.message}` };\n }\n\n writeJson(pbPath, playbook);\n writeJson(ovPath, overlay);\n log?.(`[ace] curator applier wrote ${path.relative(contextDir, pbPath)} and overlay`);\n return { ok: true, message: \"Applied curator delta\" };\n}\n", "/**\n * SRS-35: schema-valid empty Reflector/Curator artefacts when the model output fails validation,\n * plus append-only consolidated session log (audit trail per offline learn).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { aceConsolidatedSessionsJsonlPath, aceLearningsRoot } from \"./acePaths\";\n\nconst ACE_VERSION = \"1.0.0-draft\" as const;\n\n/** Valid empty Reflector document (`lessons` may be []). */\nexport function buildEmptyReflectorLessons(\n traceRelativePath: string,\n sessionRunId: string,\n): Record<string, unknown> {\n return {\n aceSchemaVersion: ACE_VERSION,\n sourceTrace: {\n relativePath: traceRelativePath,\n sessionRunId,\n },\n lessons: [],\n summaryForHumans:\n \"No lessons extracted or model output failed schema \u2014 EasySpecs wrote a valid empty document so the Curator step can run.\",\n };\n}\n\n/** Valid empty Curator delta (`operations` may be []). */\nexport function buildEmptyCuratorDelta(agentStem: string, lessonsRelativePath: string): Record<string, unknown> {\n return {\n aceSchemaVersion: ACE_VERSION,\n agentStem,\n sourceLessons: { relativePath: lessonsRelativePath },\n operations: [],\n };\n}\n\nexport interface AceConsolidatedSessionRecord {\n readonly recordedAt: string;\n readonly agentStem: string;\n readonly traceRelativePath: string;\n readonly lessonsRelativePath: string;\n readonly deltaRelativePath: string;\n readonly reflectorOpenCodeExitedZero: boolean;\n readonly curatorOpenCodeExitedZero: boolean;\n readonly reflectorUsedEmptyFallback: boolean;\n readonly curatorUsedEmptyFallback: boolean;\n readonly lessonCount: number;\n readonly curatorOperationCount: number;\n}\n\nexport function appendAceConsolidatedSessionRecord(\n contextDir: string,\n record: AceConsolidatedSessionRecord,\n diagnosticLog?: (line: string) => void,\n): void {\n const abs = aceConsolidatedSessionsJsonlPath(contextDir);\n const rel = path.relative(contextDir, abs).split(path.sep).join(\"/\");\n fs.mkdirSync(aceLearningsRoot(contextDir), { recursive: true });\n fs.appendFileSync(abs, `${JSON.stringify(record)}\\n`, \"utf-8\");\n diagnosticLog?.(`[ace] consolidated session record appended \u2014 ${rel}`);\n}\n", "/**\n * Validate coordination list JSON under `.gluecharm/context/` against bundled Draft 2020-12 schemas.\n */\n\nimport * as fs from \"fs\";\nimport Ajv2020 from \"ajv/dist/2020\";\nimport type { ErrorObject } from \"ajv\";\n\nfunction stripUtf8Bom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nexport type CoordinationJsonValidationFailure =\n | { kind: \"read\"; message: string }\n | { kind: \"parse\"; message: string }\n | { kind: \"schema\"; message: string; errorsText: string }\n | { kind: \"forbidden_ref\"; message: string };\n\nexport type CoordinationJsonValidationResult =\n | { ok: true }\n | { ok: false; failure: CoordinationJsonValidationFailure };\n\n/** Same policy as SRS-16 markdown Evidence index: no README basenames; no `.gluecharm/` paths (coordination artefacts are not implementation evidence). */\nexport function describeForbiddenCoordinationSourcePath(repoRelativePath: string): string | null {\n const n = repoRelativePath.replace(/\\\\/g, \"/\").trim();\n if (!n) {\n return null;\n }\n const segments = n.split(\"/\").filter(Boolean);\n const base = segments[segments.length - 1] ?? \"\";\n if (/^readme\\.md$/i.test(base)) {\n return `sourceReferences path must not use a readme basename: \\`${repoRelativePath}\\` \u2014 cite implementation files (e.g. \\`src/\u2026\\`, \\`package.json\\`).`;\n }\n const lower = n.toLowerCase();\n if (lower.includes(\"/.gluecharm/\") || lower.startsWith(\".gluecharm/\")) {\n return `sourceReferences path must not point under \\`.gluecharm/\\`: \\`${repoRelativePath}\\` \u2014 coordination output is not behavioural evidence; cite sources outside that tree.`;\n }\n return null;\n}\n\nfunction collectCoordinationSourceReferencePaths(node: unknown, out: string[]): void {\n if (node === null || typeof node !== \"object\") {\n return;\n }\n if (Array.isArray(node)) {\n for (const x of node) {\n collectCoordinationSourceReferencePaths(x, out);\n }\n return;\n }\n const o = node as Record<string, unknown>;\n if (\n typeof o.path === \"string\" &&\n typeof o.startLine === \"number\" &&\n Number.isFinite(o.startLine) &&\n typeof o.endLine === \"number\" &&\n Number.isFinite(o.endLine)\n ) {\n out.push(o.path);\n }\n for (const v of Object.values(o)) {\n collectCoordinationSourceReferencePaths(v, out);\n }\n}\n\n/** First forbidden path message, or null if all sourceReference paths are allowed. */\nexport function findForbiddenCoordinationSourceReference(data: unknown): string | null {\n const paths: string[] = [];\n collectCoordinationSourceReferencePaths(data, paths);\n for (const p of paths) {\n const msg = describeForbiddenCoordinationSourcePath(p);\n if (msg !== null) {\n return msg;\n }\n }\n return null;\n}\n\nfunction formatAjvErrors(errors: ErrorObject[] | null | undefined): string {\n if (!errors?.length) {\n return \"(no error details)\";\n }\n const lines = errors.slice(0, 40).map((e) => {\n const p = e.instancePath?.length ? e.instancePath : \"(root)\";\n const msg = e.message ?? e.keyword ?? \"?\";\n return `- **${p}**: ${msg}${e.keyword ? ` [\\`${e.keyword}\\`]` : \"\"}`;\n });\n return lines.join(\"\\n\");\n}\n\n/**\n * Reads `jsonAbsolutePath`, parses JSON, validates against JSON Schema at `schemaAbsolutePath`.\n */\nexport function validateCoordinationListJson(\n jsonAbsolutePath: string,\n schemaAbsolutePath: string,\n): CoordinationJsonValidationResult {\n let raw: string;\n try {\n raw = stripUtf8Bom(fs.readFileSync(jsonAbsolutePath, \"utf-8\"));\n } catch (e) {\n return {\n ok: false,\n failure: { kind: \"read\", message: e instanceof Error ? e.message : String(e) },\n };\n }\n\n let data: unknown;\n try {\n data = JSON.parse(raw);\n } catch (e) {\n const msg = e instanceof SyntaxError ? e.message : String(e);\n return { ok: false, failure: { kind: \"parse\", message: msg } };\n }\n\n let schemaRaw: string;\n try {\n schemaRaw = stripUtf8Bom(fs.readFileSync(schemaAbsolutePath, \"utf-8\"));\n } catch (e) {\n return {\n ok: false,\n failure: {\n kind: \"read\",\n message: `Cannot read schema (${schemaAbsolutePath}): ${e instanceof Error ? e.message : String(e)}`,\n },\n };\n }\n\n let schema: object;\n try {\n schema = JSON.parse(schemaRaw) as object;\n } catch (e) {\n return {\n ok: false,\n failure: {\n kind: \"parse\",\n message: `Schema file is not valid JSON (${schemaAbsolutePath}): ${e instanceof SyntaxError ? e.message : String(e)}`,\n },\n };\n }\n\n const ajv = new Ajv2020({ allErrors: true, strict: false });\n let validate: ReturnType<typeof ajv.compile>;\n try {\n validate = ajv.compile(schema);\n } catch (e) {\n return {\n ok: false,\n failure: {\n kind: \"read\",\n message: `Cannot compile schema (${schemaAbsolutePath}): ${e instanceof Error ? e.message : String(e)}`,\n },\n };\n }\n\n if (!validate(data)) {\n const errorsText = formatAjvErrors(validate.errors);\n return {\n ok: false,\n failure: {\n kind: \"schema\",\n message: \"JSON Schema validation failed.\",\n errorsText,\n },\n };\n }\n\n const forbidden = findForbiddenCoordinationSourceReference(data);\n if (forbidden !== null) {\n return {\n ok: false,\n failure: {\n kind: \"forbidden_ref\",\n message: forbidden,\n },\n };\n }\n\n return { ok: true };\n}\n\nconst FILE_PREVIEW_MAX = 4000;\n\n/** First bytes of the file for parse-error prompts (never throws). */\nexport function readCoordinationJsonPreview(jsonAbsolutePath: string): string | undefined {\n try {\n const raw = stripUtf8Bom(fs.readFileSync(jsonAbsolutePath, \"utf-8\"));\n return raw.length <= FILE_PREVIEW_MAX ? raw : `${raw.slice(0, FILE_PREVIEW_MAX)}\\n\\n\u2026 (truncated)`;\n } catch {\n return undefined;\n }\n}\n\n/**\n * Maps coordination list output basenames (under `.gluecharm/context/`) to materialized schema filenames.\n * Used as a safety net so every known list JSON path can be validated even if a caller omits `listSchemaFile`.\n */\nexport function coordinationListSchemaBasenameForOutputBasename(outputBasename: string): string | undefined {\n if (!outputBasename.endsWith(\".json\")) {\n return undefined;\n }\n const exact: Record<string, string> = {\n \"features-list.json\": \"features-list.schema.json\",\n \"repo-surface-scan.json\": \"repo-surface-scan.schema.json\",\n \"experiences-list.json\": \"experiences-list.schema.json\",\n \"services-list.json\": \"services-list.schema.json\",\n \"data-model-list.json\": \"data-model-list.schema.json\",\n \"tech-stack-list.json\": \"tech-stack-list.schema.json\",\n };\n if (exact[outputBasename]) {\n return exact[outputBasename];\n }\n if (/^FE-\\d+-use-cases-list\\.json$/.test(outputBasename)) {\n return \"use-cases-list.schema.json\";\n }\n if (/^FE-\\d+_UC-\\d+-scenarios-list\\.json$/.test(outputBasename)) {\n return \"scenarios-list.schema.json\";\n }\n if (/^DM-\\d+-fields-list\\.json$/.test(outputBasename)) {\n return \"entity-fields-list.schema.json\";\n }\n return undefined;\n}\n\n/** Repair appendix when OpenCode exited 0 but the expected JSON file is missing, empty, or not a file. */\nexport function formatCoordinationJsonMissingArtefactRepairAppendix(\n outputBasename: string,\n reason: \"missing\" | \"empty\" | \"not_a_file\",\n): string {\n const human =\n reason === \"missing\"\n ? \"The expected output file does not exist.\"\n : reason === \"empty\"\n ? \"The output file exists but is empty (0 bytes).\"\n : \"The output path exists but is not a regular file.\";\n return [\n \"## Fix-up required (expected JSON output missing or invalid on disk)\",\n \"\",\n human,\n \"\",\n `Create or overwrite **${outputBasename}** at the **absolute path** given under **Output** in this prompt. The file **must** be non-empty **UTF-8 JSON** and **must** validate against the JSON Schema path already referenced in this prompt.`,\n \"\",\n \"**Instructions:** Use your write/edit tools to produce the file on disk (do not only reply in chat). Then ensure the document parses and validates.\",\n \"\",\n ].join(\"\\n\");\n}\n\nexport function formatCoordinationJsonRepairAppendix(\n outputBasename: string,\n failure: CoordinationJsonValidationFailure,\n rawFilePreview?: string,\n): string {\n const lines: string[] = [\n \"## Fix-up required (previous output failed validation)\",\n \"\",\n `Overwrite **${outputBasename}** with **valid UTF-8 JSON** that **fully validates** against the JSON Schema path already referenced in this prompt (same file path as before).`,\n \"\",\n \"### EasySpecs validation result (use this to fix the file)\",\n \"\",\n ];\n\n if (failure.kind === \"parse\") {\n lines.push(\"**JSON.parse error:**\", \"\", \"```\", failure.message, \"```\", \"\");\n if (rawFilePreview !== undefined) {\n lines.push(\"**Current file content (may be truncated):**\", \"\", \"```\", rawFilePreview, \"```\", \"\");\n }\n } else if (failure.kind === \"schema\") {\n lines.push(failure.errorsText, \"\");\n } else if (failure.kind === \"forbidden_ref\") {\n lines.push(\"**Forbidden sourceReferences path:**\", \"\", failure.message, \"\");\n } else {\n lines.push(`**Read error:** ${failure.message}`, \"\");\n }\n\n lines.push(\n \"**Instructions:** Edit the output file using your tools until it parses and validates. Do not add comments or trailing commas. Preserve stable codes (FE-/UC-/DM-/\u2026) unless a schema error explicitly concerns them.\",\n \"\",\n );\n\n return lines.join(\"\\n\");\n}\n", "/**\n * SRS-16: programmatic check that context markdown has a non-empty `## Evidence index`\n * (or a `Status: hallucination?` waiver under the title).\n */\n\nimport * as fs from \"fs\";\n\nconst EVIDENCE_HEADING = \"## Evidence index\";\n\n/**\n * True if `README.md` appears as a path-like citation (case-insensitive), not as part of a larger\n * token (e.g. `MYREADME.md` is ignored).\n */\nexport function evidenceIndexMentionsReadmeMd(body: string): boolean {\n const re = /README\\.md/gi;\n let m: RegExpExecArray | null;\n while ((m = re.exec(body)) !== null) {\n const i = m.index;\n const before = i > 0 ? body[i - 1]! : \"\";\n if (/[A-Za-z0-9_]/.test(before)) {\n continue;\n }\n const afterIdx = i + m[0].length;\n const after = afterIdx < body.length ? body[afterIdx]! : \"\";\n if (/[A-Za-z0-9_]/.test(after)) {\n continue;\n }\n return true;\n }\n return false;\n}\n\n/** True if the body cites `.gluecharm/context` (any slash style). */\nexport function evidenceIndexMentionsGluecharmContext(body: string): boolean {\n const norm = body.replace(/\\\\/g, \"/\");\n return /(?:^|[^A-Za-z0-9_])\\.gluecharm\\/context\\b/i.test(norm);\n}\n\n/** Human-readable summary for repair prompts, or null if no forbidden citation. */\nexport function describeForbiddenEvidenceReferences(body: string): string | null {\n const parts: string[] = [];\n if (evidenceIndexMentionsReadmeMd(body)) {\n parts.push(\"**README.md** must not be cited\");\n }\n if (evidenceIndexMentionsGluecharmContext(body)) {\n parts.push(\"paths under **.gluecharm/context/** must not be cited\");\n }\n if (parts.length === 0) {\n return null;\n }\n return `${parts.join(\"; \")} (use implementation sources such as \\`src/\u2026\\`, \\`package.json\\`, etc.).`;\n}\n\n/** Remove `<!-- ... -->` comments (non-greedy, repeat until stable). */\nexport function stripHtmlComments(s: string): string {\n let prev = \"\";\n let cur = s;\n while (cur !== prev) {\n prev = cur;\n cur = cur.replace(/<!--[\\s\\S]*?-->/g, \"\");\n }\n return cur;\n}\n\n/** Extract body under `## Evidence index` until next `## ` line or EOF. */\nexport function extractEvidenceIndexBody(content: string): { found: boolean; body: string } {\n const lines = content.split(/\\r?\\n/);\n let start = -1;\n for (let i = 0; i < lines.length; i++) {\n const trimmed = lines[i].replace(/\\s+$/, \"\");\n if (trimmed === EVIDENCE_HEADING) {\n start = i + 1;\n break;\n }\n }\n if (start < 0) {\n return { found: false, body: \"\" };\n }\n let end = lines.length;\n for (let j = start; j < lines.length; j++) {\n if (lines[j].startsWith(\"## \")) {\n end = j;\n break;\n }\n }\n return { found: true, body: lines.slice(start, end).join(\"\\n\") };\n}\n\n/** True if any line has visible text after stripping comments and marker-only lines (SRS-16 \u00A73.3). */\nexport function isEvidenceIndexContentNonEmpty(blockBody: string): boolean {\n const withoutComments = stripHtmlComments(blockBody);\n const lines = withoutComments.split(/\\r?\\n/);\n const markerOnly = /^[\\s>*-]*$/;\n for (const line of lines) {\n const t = line.trim();\n if (t.length === 0) {\n continue;\n }\n if (markerOnly.test(t)) {\n continue;\n }\n return true;\n }\n return false;\n}\n\n/**\n * First non-empty line must be `# ...`. Within the first 25 non-empty lines after it,\n * find `Status: hallucination?` (case-insensitive Status; ignore `*` used for bold).\n */\nexport function hasHallucinationWaiverLine(content: string): boolean {\n const lines = content.split(/\\r?\\n/);\n let i = 0;\n while (i < lines.length && lines[i].trim() === \"\") {\n i++;\n }\n if (i >= lines.length) {\n return false;\n }\n const first = lines[i].replace(/\\s+$/, \"\").trimEnd();\n if (!/^#\\s+\\S/.test(first)) {\n return false;\n }\n i++;\n let nonEmptyAfterTitle = 0;\n while (i < lines.length && nonEmptyAfterTitle < 25) {\n const raw = lines[i];\n i++;\n if (raw.trim() === \"\") {\n continue;\n }\n nonEmptyAfterTitle++;\n const normalized = raw.replace(/\\*/g, \"\").trim();\n if (/^status:\\s*hallucination\\?\\s*$/i.test(normalized)) {\n return true;\n }\n }\n return false;\n}\n\nexport function markdownEvidenceValidationPasses(content: string): boolean {\n const { found, body } = extractEvidenceIndexBody(content);\n const evidenceOk = found && isEvidenceIndexContentNonEmpty(body);\n if (evidenceOk) {\n const bodyForRefCheck = stripHtmlComments(body);\n if (describeForbiddenEvidenceReferences(bodyForRefCheck) !== null) {\n return false;\n }\n return true;\n }\n return hasHallucinationWaiverLine(content);\n}\n\nexport type MarkdownEvidenceFileResult =\n | { ok: true }\n | { ok: false; reason: \"read\"; message: string }\n | { ok: false; reason: \"empty_evidence\" }\n | { ok: false; reason: \"forbidden_evidence_reference\"; message: string };\n\n/** Read file as strict UTF-8; then apply SRS-16 evidence / waiver rules. */\nexport function validateMarkdownEvidenceIndexFile(absolutePath: string): MarkdownEvidenceFileResult {\n let text: string;\n try {\n const buf = fs.readFileSync(absolutePath);\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n text = decoder.decode(buf);\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n return { ok: false, reason: \"read\", message: `Cannot read or decode UTF-8: ${message}` };\n }\n if (markdownEvidenceValidationPasses(text)) {\n return { ok: true };\n }\n const { found, body } = extractEvidenceIndexBody(text);\n if (found && isEvidenceIndexContentNonEmpty(body)) {\n const forbidden = describeForbiddenEvidenceReferences(stripHtmlComments(body));\n if (forbidden !== null) {\n return { ok: false, reason: \"forbidden_evidence_reference\", message: forbidden };\n }\n }\n return { ok: false, reason: \"empty_evidence\" };\n}\n\nexport type MarkdownEvidenceRepairAppendixKind = \"empty\" | \"forbidden\";\n\n/** SRS-16 \u00A75 \u2014 appended before **## Output** on repair runs. */\nexport function formatMarkdownEvidenceRepairAppendix(\n outputFileAbsolute: string,\n kind: MarkdownEvidenceRepairAppendixKind = \"empty\",\n forbiddenDetail?: string,\n): string {\n const problem =\n kind === \"forbidden\" && forbiddenDetail\n ? `Programmatic validation found **forbidden** citations under **\\`## Evidence index\\`**: ${forbiddenDetail}`\n : \"Programmatic validation found that **`## Evidence index`** is **missing** or **empty** (after stripping HTML comments and whitespace-only / marker-only lines per SRS-16).\";\n return [\n \"## Fix-up required (Evidence index \u2014 programmatic validation)\",\n \"\",\n `EasySpecs re-read **${outputFileAbsolute}** after your last write.`,\n \"\",\n problem,\n \"\",\n \"**Always forbidden** in **`## Evidence index`**: citing **`README.md`** (any case) or any path under **`.gluecharm/context/`** \u2014 those are not implementation sources.\",\n \"\",\n \"You **must** do **one** of the following:\",\n \"\",\n \"1. Add or fix **`## Evidence index`** with **at least one** substantive bullet citing repository-relative **file + line** or **line range** (e.g. `src/foo.ts:10` or `src/foo.ts:10-25`) **outside** `.gluecharm/context/`, **or**\",\n \"2. If implementation grounding is truly impossible after searching the worktree, add a line **`Status: hallucination?`** **immediately under** the document\u2019s top-level `#` title, per bundled agent rules (then you may leave Evidence index minimal only if policy allows).\",\n \"\",\n \"Overwrite the same output file; keep all other required sections.\",\n \"\",\n ].join(\"\\n\");\n}\n", "/**\n * SRS-28: machine-readable outcome from the resolve-open-question OpenCode agent.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\nexport const OPEN_QUESTION_RESOLUTION_JSON_BASENAME = \"open-question-resolution.json\";\n\nexport function openQuestionResolutionJsonAbsolute(worktreeRoot: string): string {\n return path.join(worktreeRoot, \".opencode\", \"_run\", OPEN_QUESTION_RESOLUTION_JSON_BASENAME);\n}\n\nexport type OpenQuestionResolutionOutcome = \"answered\" | \"cannot_resolve\";\n\nexport type ParsedOpenQuestionResolution =\n | { ok: true; outcome: OpenQuestionResolutionOutcome; question: string; reason?: string }\n | { ok: false; error: string };\n\nfunction asTrimmedString(v: unknown): string | undefined {\n if (typeof v !== \"string\") {\n return undefined;\n }\n const t = v.trim();\n return t.length > 0 ? t : undefined;\n}\n\n/** Parse JSON body (UTF-8). */\nexport function parseOpenQuestionResolutionJsonText(raw: string): ParsedOpenQuestionResolution {\n let data: unknown;\n try {\n data = JSON.parse(raw) as unknown;\n } catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n return { ok: false, error: `Invalid JSON: ${m}` };\n }\n if (!data || typeof data !== \"object\" || Array.isArray(data)) {\n return { ok: false, error: \"Resolution JSON must be an object\" };\n }\n const o = data as Record<string, unknown>;\n const outcome = o.outcome;\n if (outcome !== \"answered\" && outcome !== \"cannot_resolve\") {\n return { ok: false, error: 'Resolution JSON \"outcome\" must be \"answered\" or \"cannot_resolve\"' };\n }\n const question = asTrimmedString(o.question);\n if (!question) {\n return { ok: false, error: 'Resolution JSON must include non-empty string \"question\"' };\n }\n const reason = asTrimmedString(o.reason);\n return { ok: true, outcome, question, reason };\n}\n\nexport function readOpenQuestionResolutionFile(worktreeRoot: string): ParsedOpenQuestionResolution {\n const p = openQuestionResolutionJsonAbsolute(worktreeRoot);\n try {\n if (!fs.existsSync(p)) {\n return { ok: false, error: `Missing resolution file: ${p}` };\n }\n const raw = fs.readFileSync(p, \"utf-8\");\n return parseOpenQuestionResolutionJsonText(raw);\n } catch (e) {\n const m = e instanceof Error ? e.message : String(e);\n return { ok: false, error: m };\n }\n}\n\nexport function deleteOpenQuestionResolutionFile(worktreeRoot: string): void {\n try {\n const p = openQuestionResolutionJsonAbsolute(worktreeRoot);\n if (fs.existsSync(p)) {\n fs.unlinkSync(p);\n }\n } catch {\n /* ignore */\n }\n}\n", "/**\n * SRS-28: deterministic check for non-empty `## Open Questions` in context markdown.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { stripHtmlComments } from \"./markdownEvidenceIndexValidate\";\n\nconst CANONICAL_NORMALIZED = \"open questions\";\n\n/** Normalize ATX h2 title: trim, collapse Unicode whitespace, case-fold. */\nexport function normalizeOpenQuestionsHeadingTitle(raw: string): string {\n const t = raw.trim().replace(/\\s+/gu, \" \");\n return t.toLowerCase();\n}\n\nfunction isMatchingOpenQuestionsH2(line: string): boolean {\n const m = line.match(/^##\\s+(.+?)\\s*$/);\n if (!m) {\n return false;\n }\n return normalizeOpenQuestionsHeadingTitle(m[1] ?? \"\") === CANONICAL_NORMALIZED;\n}\n\n/** True if line starts a new ATX heading (h1 or h2) ending the Open Questions section. */\nfunction isAtxHeadingBoundary(line: string): boolean {\n return /^#{1,2}\\s+\\S/.test(line);\n}\n\n/**\n * Extract raw body under the first matching `## Open Questions` heading until next `#` / `##` heading or EOF.\n */\nexport function extractOpenQuestionsSectionBody(content: string): { found: boolean; body: string; startLine1Based?: number } {\n const lines = content.split(/\\r?\\n/);\n let start = -1;\n let startLine1Based: number | undefined;\n for (let i = 0; i < lines.length; i++) {\n const trimmedRight = lines[i].replace(/\\s+$/, \"\");\n if (isMatchingOpenQuestionsH2(trimmedRight)) {\n start = i + 1;\n startLine1Based = i + 1;\n break;\n }\n }\n if (start < 0) {\n return { found: false, body: \"\" };\n }\n let end = lines.length;\n for (let j = start; j < lines.length; j++) {\n if (isAtxHeadingBoundary(lines[j])) {\n end = j;\n break;\n }\n }\n return { found: true, body: lines.slice(start, end).join(\"\\n\"), startLine1Based };\n}\n\nconst PLACEHOLDER_LINE = /^(?:none|n\\/a)\\.?$/i;\n\nfunction isPlaceholderOrEmptyLine(s: string): boolean {\n const t = s.trim();\n if (t.length === 0) {\n return true;\n }\n if (PLACEHOLDER_LINE.test(t)) {\n return true;\n }\n if (/^[-*+]\\s*$/.test(t)) {\n return true;\n }\n if (/^\\d+\\.\\s*$/.test(t)) {\n return true;\n }\n return false;\n}\n\n/**\n * Parse section body into discrete question strings (list items or paragraph blocks).\n */\nexport function parseResidualQuestionsFromOpenQuestionsBody(sectionBody: string): string[] {\n const withoutComments = stripHtmlComments(sectionBody);\n const lines = withoutComments.split(/\\r?\\n/);\n const questions: string[] = [];\n let para: string[] = [];\n\n const flushPara = (): void => {\n if (para.length === 0) {\n return;\n }\n const joined = para.join(\" \").replace(/\\s+/g, \" \").trim();\n para = [];\n if (joined.length > 0 && !isPlaceholderOrEmptyLine(joined)) {\n questions.push(joined);\n }\n };\n\n for (const raw of lines) {\n const line = raw.replace(/\\s+$/, \"\");\n const trimmed = line.trim();\n if (trimmed.length === 0) {\n flushPara();\n continue;\n }\n\n const listM = trimmed.match(/^[-*+]\\s+(.+)$/);\n if (listM) {\n flushPara();\n const text = (listM[1] ?? \"\").trim();\n if (text.length > 0 && !isPlaceholderOrEmptyLine(text)) {\n questions.push(text);\n }\n continue;\n }\n\n const numM = trimmed.match(/^\\d+\\.\\s+(.+)$/);\n if (numM) {\n flushPara();\n const text = (numM[1] ?? \"\").trim();\n if (text.length > 0 && !isPlaceholderOrEmptyLine(text)) {\n questions.push(text);\n }\n continue;\n }\n\n const blockquote = trimmed.replace(/^>\\s*/, \"\");\n if (blockquote.length > 0) {\n para.push(blockquote);\n }\n }\n flushPara();\n return questions;\n}\n\nexport type OpenQuestionsParseResult =\n | { kind: \"noSection\" }\n | { kind: \"emptySection\"; startLine1Based?: number }\n | { kind: \"hasResidualQuestions\"; questions: string[]; startLine1Based?: number };\n\n/** Pure parse of full markdown document. */\nexport function parseOpenQuestionsSection(content: string): OpenQuestionsParseResult {\n const { found, body, startLine1Based } = extractOpenQuestionsSectionBody(content);\n if (!found) {\n return { kind: \"noSection\" };\n }\n const questions = parseResidualQuestionsFromOpenQuestionsBody(body);\n if (questions.length === 0) {\n return { kind: \"emptySection\", startLine1Based };\n }\n return { kind: \"hasResidualQuestions\", questions, startLine1Based };\n}\n\nexport type OpenQuestionsFileResult =\n | { ok: true; parse: OpenQuestionsParseResult }\n | { ok: false; reason: \"read\"; message: string }\n | { ok: false; reason: \"out_of_scope\"; message: string };\n\n/**\n * True if `absolutePath` is under `<worktree>/.gluecharm/context/` (SRS-28 scope).\n */\nexport function isContextMarkdownPathForOpenQuestions(worktreeRoot: string, absolutePath: string): boolean {\n const ctx = path.join(path.resolve(worktreeRoot), \".gluecharm\", \"context\");\n const abs = path.resolve(absolutePath);\n const ctxNorm = ctx + path.sep;\n return abs === ctx || abs.startsWith(ctxNorm);\n}\n\n/**\n * Read UTF-8 file and parse Open Questions section. Optionally enforce context path scope.\n */\nexport function validateOpenQuestionsSectionFile(\n absolutePath: string,\n scope?: { worktreeRoot: string },\n): OpenQuestionsFileResult {\n if (scope && !isContextMarkdownPathForOpenQuestions(scope.worktreeRoot, absolutePath)) {\n return {\n ok: false,\n reason: \"out_of_scope\",\n message: `Open Questions validation skipped \u2014 path outside context dir: ${absolutePath}`,\n };\n }\n let text: string;\n try {\n const buf = fs.readFileSync(absolutePath);\n const decoder = new TextDecoder(\"utf-8\", { fatal: true });\n text = decoder.decode(buf);\n } catch (e) {\n const message = e instanceof Error ? e.message : String(e);\n return { ok: false, reason: \"read\", message: `Cannot read or decode UTF-8: ${message}` };\n }\n return { ok: true, parse: parseOpenQuestionsSection(text) };\n}\n\n/** True when the file has no residual open questions (missing section, empty section, or read/scope handled by caller). */\nexport function openQuestionsValidationPasses(parse: OpenQuestionsParseResult): boolean {\n return parse.kind === \"noSection\" || parse.kind === \"emptySection\";\n}\n\n/** SRS-28 \u2014 producer repair after resolution cannot_resolve. */\nexport function formatOpenQuestionsProducerRepairAppendix(\n outputFileAbsolute: string,\n stepLabel: string,\n question: string,\n resolutionReason: string,\n): string {\n return [\n \"## Fix-up required (Open Questions \u2014 could not resolve from repository)\",\n \"\",\n `EasySpecs could not close an item under **## Open Questions** in **${outputFileAbsolute}** using a dedicated resolution pass.`,\n \"\",\n `- **Pipeline step:** ${stepLabel}`,\n `- **Open question:** ${question}`,\n `- **Resolution agent reported:** ${resolutionReason}`,\n \"\",\n \"You **must** revise the markdown:\",\n \"\",\n \"1. **Remove** speculative **## Open Questions** entries that are not grounded in this repository, **or**\",\n \"2. **Answer** the question with evidence elsewhere in the document and a proper **## Evidence index** citation, **or**\",\n \"3. If the uncertainty is real but not code-answerable, state a **scoped** limitation in the main body and leave **## Open Questions** **empty** or **omit** the section entirely \u2014 do **not** leave non-empty open questions after a full analysis pass.\",\n \"\",\n \"Overwrite the same output file; preserve **## Evidence index** and required structure.\",\n \"\",\n ].join(\"\\n\");\n}\n", "/**\n * SRS-8 R1: create a dedicated git worktree for analysis (PLAN-SRS-8).\n */\n\nimport { spawnSync } from \"child_process\";\nimport * as fs from \"fs\";\nimport * as os from \"os\";\nimport * as path from \"path\";\nimport { writeAnalysisWorktreeMarker } from \"./easySpecsWorktreeMarker\";\n\nexport interface WorktreeHandle {\n /** Absolute path to worktree root (checkout). */\n readonly path: string;\n readonly repoRoot: string;\n /** Best-effort remove worktree registration and delete path. */\n remove(): void;\n}\n\nexport type CreateWorktreeResult =\n | {\n ok: true;\n handle: WorktreeHandle;\n /** Primary repo `HEAD` branch when `worktree add` ran (omit if that `HEAD` was detached). */\n sourceBranchAtCreation?: string;\n }\n | { ok: false; error: string };\n\nconst EASYSPECS_WT_DIR_RE = /^easyspecs-(\\d+)$/;\n\nfunction maxEasyspecsWorktreeIndex(parentDir: string): number {\n let max = 0;\n let entries: fs.Dirent[];\n try {\n entries = fs.readdirSync(parentDir, { withFileTypes: true });\n } catch {\n return 0;\n }\n for (const ent of entries) {\n if (!ent.isDirectory()) {\n continue;\n }\n const m = EASYSPECS_WT_DIR_RE.exec(ent.name);\n if (!m) {\n continue;\n }\n const n = parseInt(m[1], 10);\n if (!Number.isNaN(n)) {\n max = Math.max(max, n);\n }\n }\n return max;\n}\n\nfunction formatEasyspecsWorktreeFolderName(index: number): string {\n return `easyspecs-${String(index).padStart(3, \"0\")}`;\n}\n\n/**\n * Next free `easyspecs-001`-style path under the temp parent (skips occupied names).\n */\nfunction allocateEasyspecsWorktreePath(parentDir: string): string | null {\n fs.mkdirSync(parentDir, { recursive: true });\n const start = maxEasyspecsWorktreeIndex(parentDir);\n for (let i = start + 1; i < start + 10_000; i++) {\n const name = formatEasyspecsWorktreeFolderName(i);\n const wt = path.join(parentDir, name);\n if (!fs.existsSync(wt)) {\n return wt;\n }\n }\n return null;\n}\n\nfunction readHeadBranchShort(repoRoot: string): string | undefined {\n const r = spawnSync(\"git\", [\"symbolic-ref\", \"--short\", \"-q\", \"HEAD\"], {\n cwd: repoRoot,\n encoding: \"utf-8\",\n timeout: 30_000,\n });\n if (r.status !== 0) {\n return undefined;\n }\n const b = (r.stdout ?? \"\").trim();\n return b.length > 0 ? b : undefined;\n}\n\n/**\n * Reconstruct a {@link WorktreeHandle} from persisted paths (after window reload).\n * Does not verify the path is still registered with git beyond `remove()` best-effort.\n */\nexport function attachWorktreeHandle(worktreePath: string, repositoryRoot: string): WorktreeHandle {\n const wt = path.resolve(worktreePath);\n const repo = path.resolve(repositoryRoot);\n return {\n path: wt,\n repoRoot: repo,\n remove(): void {\n spawnSync(\"git\", [\"worktree\", \"remove\", \"--force\", wt], {\n cwd: repo,\n encoding: \"utf-8\",\n timeout: 60_000,\n });\n try {\n fs.rmSync(wt, { recursive: true, force: true });\n } catch {\n /* ignore */\n }\n },\n };\n}\n\n/**\n * `git worktree add --detach <path> HEAD` under OS temp (outside workspace UI).\n * Folder names are sequential `easyspecs-001`, `easyspecs-002`, \u2026 under `\u2026/easyspecs-analysis/`.\n */\nexport function createAnalysisWorktree(repoRoot: string): CreateWorktreeResult {\n const parent = path.join(os.tmpdir(), \"easyspecs-analysis\");\n const wt = allocateEasyspecsWorktreePath(parent);\n if (!wt) {\n return {\n ok: false,\n error: \"Could not allocate an easyspecs-NNN worktree path under temp (too many collisions).\",\n };\n }\n\n const sourceBranchAtCreation = readHeadBranchShort(repoRoot);\n\n const r = spawnSync(\"git\", [\"worktree\", \"add\", \"--detach\", wt, \"HEAD\"], {\n cwd: repoRoot,\n encoding: \"utf-8\",\n timeout: 120_000,\n });\n\n if (r.status !== 0) {\n const msg = [r.stderr, r.stdout].filter(Boolean).join(\"\\n\").trim();\n return {\n ok: false,\n error: msg || `git worktree add failed (exit ${r.status ?? \"unknown\"}). Is this folder a Git repository?`,\n };\n }\n\n try {\n writeAnalysisWorktreeMarker(wt, repoRoot);\n } catch {\n /* non-fatal: worktree exists; marker helps Open Folder workflows */\n }\n\n return {\n ok: true,\n handle: attachWorktreeHandle(wt, repoRoot),\n ...(sourceBranchAtCreation ? { sourceBranchAtCreation } : {}),\n };\n}\n", "/**\n * SRS-9 R20\u2013R22: durable context-arteffact pipeline state (per workspace folder).\n */\n\nimport * as path from \"node:path\";\nimport type { ContextSynthesisTestStep } from \"../analysis/contextSynthesis\";\nimport type { AnalysisStorageContext } from \"./workspaceStatePort\";\nimport type { OpenCodeListTarget } from \"../analysis/openCodeTestAgent\";\n\nconst STORAGE_KEY = \"easyspecs.analysis.artefactRun.v1\";\n\nexport type ArtefactWorkItemStatus = \"pending\" | \"running\" | \"done\" | \"skipped\";\n\nexport interface StoredCoordPayload {\n readonly step: ContextSynthesisTestStep;\n readonly listTarget?: OpenCodeListTarget;\n}\n\nexport interface StoredMarkdownPayload {\n readonly openCodeAgentStem: string;\n readonly outputBasename: string;\n readonly agentId: string;\n readonly displayName: string;\n readonly taskDescription: string;\n}\n\n/** SRS-36: optional OpenCode session metadata captured from `opencode run --format json`. */\nexport type StoredOpenCodeSessionFields = {\n openCodeSessionId?: string;\n openCodeSessionTitle?: string;\n openCodeSessionCapturedAtIso?: string;\n openCodeSessionPhase?: \"primary\";\n};\n\nexport type StoredArtefactWorkItem =\n | ({\n readonly id: string;\n readonly kind: \"coord\";\n readonly parentIds: string[];\n /** Mutable at runtime while the pipeline executes; persisted between updates. */\n status: ArtefactWorkItemStatus;\n executionAttempts: number;\n lastError?: string;\n readonly payload: StoredCoordPayload;\n } & StoredOpenCodeSessionFields)\n | ({\n readonly id: string;\n readonly kind: \"markdown\";\n readonly parentIds: string[];\n status: ArtefactWorkItemStatus;\n executionAttempts: number;\n lastError?: string;\n readonly payload: StoredMarkdownPayload;\n } & StoredOpenCodeSessionFields);\n\nexport interface AnalysisArtefactRunSnapshot {\n readonly runId: string;\n readonly repositoryRoot: string;\n readonly analysisRoot: string;\n readonly startedAtIso: string;\n finishedAtIso?: string;\n overallStatus: \"idle\" | \"running\" | \"complete\" | \"failed\";\n items: Record<string, StoredArtefactWorkItem>;\n}\n\nfunction randomRunId(): string {\n return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return v !== null && typeof v === \"object\" && !Array.isArray(v);\n}\n\nexport function readArtefactRunSnapshot(context: AnalysisStorageContext): AnalysisArtefactRunSnapshot | undefined {\n const raw = context.workspaceState.get<unknown>(STORAGE_KEY);\n if (!raw || !isRecord(raw)) {\n return undefined;\n }\n const runId = raw.runId;\n const repositoryRoot = raw.repositoryRoot;\n const analysisRoot = raw.analysisRoot;\n const startedAtIso = raw.startedAtIso;\n const overallStatus = raw.overallStatus;\n const items = raw.items;\n if (\n typeof runId !== \"string\" ||\n typeof repositoryRoot !== \"string\" ||\n typeof analysisRoot !== \"string\" ||\n typeof startedAtIso !== \"string\" ||\n (overallStatus !== \"idle\" &&\n overallStatus !== \"running\" &&\n overallStatus !== \"complete\" &&\n overallStatus !== \"failed\") ||\n !isRecord(items)\n ) {\n return undefined;\n }\n const fin = raw.finishedAtIso;\n return {\n runId,\n repositoryRoot,\n analysisRoot,\n startedAtIso,\n ...(typeof fin === \"string\" ? { finishedAtIso: fin } : {}),\n overallStatus,\n items: items as Record<string, StoredArtefactWorkItem>,\n };\n}\n\nfunction openCodeListTargetKey(lt: OpenCodeListTarget | undefined): string {\n if (!lt) {\n return \"\";\n }\n return `${lt.featureCode ?? \"\"}\\u0000${lt.useCaseCode ?? \"\"}\\u0000${lt.entityCode ?? \"\"}`;\n}\n\n/**\n * Analysis view \u201Ctest agent\u201D runs are outside the pool but should reuse {@link AnalysisArtefactRunSnapshot}\n * when the checkout matches, so OpenCode titles and ACE trace JSON get real artefact `runId` / work-item ids\n * (trace **filenames** also include the OpenCode session id so re-runs do not overwrite prior traces).\n */\nexport function resolveArtefactStewardshipForManualTestRun(\n snapshot: AnalysisArtefactRunSnapshot | undefined,\n analysisRootFs: string,\n options:\n | {\n readonly kind: \"coord\";\n readonly step: ContextSynthesisTestStep;\n readonly listTarget?: OpenCodeListTarget;\n }\n | {\n readonly kind: \"markdown\";\n readonly openCodeAgentStem: string;\n readonly outputBasename: string;\n },\n): { readonly artefactRunId?: string; readonly artefactWorkItemId?: string } {\n if (!snapshot) {\n return {};\n }\n if (path.resolve(snapshot.analysisRoot) !== path.resolve(analysisRootFs)) {\n return {};\n }\n const runId = snapshot.runId;\n\n if (options.kind === \"coord\") {\n const want = openCodeListTargetKey(options.listTarget);\n for (const item of Object.values(snapshot.items)) {\n if (item.kind !== \"coord\") {\n continue;\n }\n if (item.payload.step !== options.step) {\n continue;\n }\n if (openCodeListTargetKey(item.payload.listTarget) !== want) {\n continue;\n }\n return { artefactRunId: runId, artefactWorkItemId: item.id };\n }\n return { artefactRunId: runId };\n }\n\n for (const item of Object.values(snapshot.items)) {\n if (item.kind !== \"markdown\") {\n continue;\n }\n if (item.payload.openCodeAgentStem !== options.openCodeAgentStem) {\n continue;\n }\n if (item.payload.outputBasename !== options.outputBasename) {\n continue;\n }\n return { artefactRunId: runId, artefactWorkItemId: item.id };\n }\n return { artefactRunId: runId };\n}\n\nexport function writeArtefactRunSnapshot(\n context: AnalysisStorageContext,\n snapshot: AnalysisArtefactRunSnapshot | undefined,\n): Thenable<void> {\n return context.workspaceState.update(STORAGE_KEY, snapshot);\n}\n\nexport async function startArtefactRun(\n context: AnalysisStorageContext,\n repositoryRoot: string,\n analysisRoot: string,\n initialItems: Record<string, StoredArtefactWorkItem>,\n): Promise<AnalysisArtefactRunSnapshot> {\n const snap: AnalysisArtefactRunSnapshot = {\n runId: randomRunId(),\n repositoryRoot,\n analysisRoot,\n startedAtIso: new Date().toISOString(),\n overallStatus: \"running\",\n items: initialItems,\n };\n await writeArtefactRunSnapshot(context, snap);\n return snap;\n}\n\nexport async function updateArtefactRunSnapshot(\n context: AnalysisStorageContext,\n updater: (prev: AnalysisArtefactRunSnapshot) => AnalysisArtefactRunSnapshot,\n): Promise<void> {\n const prev = readArtefactRunSnapshot(context);\n if (!prev) {\n return;\n }\n await writeArtefactRunSnapshot(context, updater(prev));\n}\n\nexport async function finishArtefactRun(context: AnalysisStorageContext, ok: boolean): Promise<void> {\n const prev = readArtefactRunSnapshot(context);\n if (!prev) {\n return;\n }\n await writeArtefactRunSnapshot(context, {\n ...prev,\n overallStatus: ok ? \"complete\" : \"failed\",\n finishedAtIso: new Date().toISOString(),\n });\n}\n\nexport async function clearArtefactRun(context: AnalysisStorageContext): Promise<void> {\n await writeArtefactRunSnapshot(context, undefined);\n}\n\nexport function cloneArtefactWorkItem(item: StoredArtefactWorkItem): StoredArtefactWorkItem {\n return JSON.parse(JSON.stringify(item)) as StoredArtefactWorkItem;\n}\n\n/** Replace one work item in the persisted snapshot (e.g. SRS-17 after successful remediation). */\nexport async function replaceArtefactWorkItemInStore(\n context: AnalysisStorageContext,\n workItemId: string,\n next: StoredArtefactWorkItem,\n): Promise<boolean> {\n const prev = readArtefactRunSnapshot(context);\n if (!prev?.items[workItemId]) {\n return false;\n }\n const items = { ...prev.items, [workItemId]: next };\n await writeArtefactRunSnapshot(context, { ...prev, items });\n return true;\n}\n", "/**\n * SRS-9 analyzing view: cumulative count of OpenCode agent processes started (each `spawn` in `runOpenCodeAgent`).\n * The webview receives updates via {@link setAnalysisDiscoveriesSyncHandler}.\n */\n\nlet agentsLaunchedCount = 0;\n\nexport type AnalysisDiscoveriesSyncHandler = (agentsLaunchedCount: number) => void;\n\nlet syncHandler: AnalysisDiscoveriesSyncHandler | undefined;\n\nexport function setAnalysisDiscoveriesSyncHandler(handler: AnalysisDiscoveriesSyncHandler | undefined): void {\n syncHandler = handler;\n}\n\nexport function clearAnalysisDiscoveries(): void {\n agentsLaunchedCount = 0;\n syncHandler?.(agentsLaunchedCount);\n}\n\nexport function getAgentsLaunchedCount(): number {\n return agentsLaunchedCount;\n}\n\n/** Call once per OpenCode child process spawn (includes list-JSON repair retries). */\nexport function noteOpenCodeAgentLaunched(): void {\n agentsLaunchedCount += 1;\n syncHandler?.(agentsLaunchedCount);\n}\n", "/**\n * SRS-8 R9: single programmatic build of `index-application-context.json` from coordination list JSON.\n * Uses Node fs \u2014 extension host only (paths are absolute).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport {\n APPLICATION_CONTEXT_KIND,\n type ApplicationContextFile,\n type ImpactNode,\n type RepositoryProvenance,\n} from \"./srsModel\";\nimport { getDefaultIndexSchemaPath, validateIndexApplicationContextJson } from \"./indexApplicationContextValidate\";\nimport { attachRepositoryProvenance } from \"./repositoryProvenance\";\n\n// --- List file shapes (coordination JSON, SRS-8 \u00A74.6) ---\n\ninterface FeatureListItem {\n code: string;\n name: string;\n slug: string;\n}\n\ninterface FeaturesListFile {\n kind?: string;\n version?: number;\n features: FeatureListItem[];\n}\n\ninterface UseCaseListItem {\n code: string;\n name: string;\n slug?: string;\n}\n\ninterface UseCasesListFile {\n kind?: string;\n version?: number;\n featureCode: string;\n useCases: UseCaseListItem[];\n}\n\ninterface ScenarioListItem {\n code: string;\n name: string;\n}\n\ninterface ScenariosListFile {\n kind?: string;\n version?: number;\n featureCode: string;\n useCaseCode: string;\n scenarios: ScenarioListItem[];\n}\n\ninterface InteractionItem {\n code: string;\n name: string;\n slug?: string;\n}\n\ninterface ViewItem {\n code: string;\n name: string;\n slug?: string;\n interactions?: InteractionItem[];\n}\n\ninterface ExperiencesListFile {\n kind?: string;\n version?: number;\n views: ViewItem[];\n}\n\ninterface MethodItem {\n code: string;\n name: string;\n slug?: string;\n}\n\ninterface ServiceItem {\n code: string;\n name: string;\n slug?: string;\n methods?: MethodItem[];\n}\n\ninterface ServicesListFile {\n kind?: string;\n version?: number;\n services: ServiceItem[];\n}\n\ninterface FieldItem {\n code: string;\n name: string;\n slug?: string;\n}\n\ninterface RelationshipItem {\n code: string;\n name: string;\n slug?: string;\n}\n\ninterface EntityItem {\n code: string;\n name: string;\n slug?: string;\n /** Legacy coordination JSON; index builder still maps them when present. */\n fields?: FieldItem[];\n relationships?: RelationshipItem[];\n}\n\ninterface DataModelListFile {\n kind?: string;\n version?: number;\n entities: EntityItem[];\n}\n\ninterface EntityFieldsListFile {\n entityCode?: string;\n fields?: FieldItem[];\n}\n\ninterface ToolItem {\n code: string;\n name: string;\n slug?: string;\n}\n\ninterface TechStackListFile {\n kind?: string;\n version?: number;\n tools: ToolItem[];\n}\n\nconst SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\nfunction safeStr(v: unknown): string {\n return typeof v === \"string\" ? v.trim() : \"\";\n}\n\n/** Aligns with `contextArtefactPipeline.slugOrFallback` for detail markdown basenames. */\nfunction slugOrFallback(row: { slug?: unknown; code?: unknown; name?: unknown }): string | null {\n const s = safeStr(row.slug);\n if (s && SLUG.test(s)) {\n return s;\n }\n const code = safeStr(row.code);\n const fb = code.replace(/[^A-Za-z0-9]/g, \"\").toLowerCase();\n if (fb && SLUG.test(fb)) {\n return fb;\n }\n const name = safeStr(row.name);\n const fromName = name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n if (fromName && SLUG.test(fromName)) {\n return fromName;\n }\n return null;\n}\n\nfunction tryAttachMarkdown(node: ImpactNode, contextDir: string, relativePath: string): boolean {\n const norm = relativePath.replace(/\\\\/g, \"/\");\n if (!norm || norm.includes(\"..\")) {\n return false;\n }\n const full = path.join(contextDir, norm);\n try {\n if (!fs.existsSync(full) || !fs.statSync(full).isFile()) {\n return false;\n }\n } catch {\n return false;\n }\n node.detailMarkdownPaths = [norm];\n /** SRS-26: single `path`; basename is derived by readers (legacy had redundant `filename`). */\n node.detailMarkdownFile = { path: norm };\n return true;\n}\n\nfunction normalizeRel(p: string): string {\n return p.replace(/\\\\/g, \"/\");\n}\n\n/**\n * SRS-26: after re-assembly, restore `indexSrsDiscoveryId` and per-node `srsDiscoveryId` when the same detail `path` existed on disk.\n */\nexport function mergePersistedIndexUploadMetadata(\n previous: ApplicationContextFile | null,\n next: ApplicationContextFile,\n): void {\n if (!previous) {\n return;\n }\n if (previous.indexSrsDiscoveryId) {\n next.indexSrsDiscoveryId = previous.indexSrsDiscoveryId;\n }\n const byPath = new Map<string, string>();\n const collect = (n: ImpactNode): void => {\n const df = n.detailMarkdownFile;\n if (df?.path && df.srsDiscoveryId) {\n byPath.set(normalizeRel(df.path), df.srsDiscoveryId);\n }\n };\n const apply = (n: ImpactNode): void => {\n const df = n.detailMarkdownFile;\n if (!df?.path) {\n return;\n }\n const p = normalizeRel(df.path);\n const sid = byPath.get(p);\n if (sid) {\n n.detailMarkdownFile = { path: df.path.replace(/\\\\/g, \"/\"), srsDiscoveryId: sid };\n }\n };\n const walk = (nodes: ImpactNode[] | undefined, fn: (x: ImpactNode) => void): void => {\n if (!nodes?.length) {\n return;\n }\n for (const n of nodes) {\n fn(n);\n walk(n.children, fn);\n }\n };\n const walkScopes = (doc: ApplicationContextFile, fn: (x: ImpactNode) => void): void => {\n for (const k of [\"Feature\", \"Experience\", \"Service\", \"DataModel\", \"TechStack\"] as const) {\n walk(doc.scopes[k]?.nodes, fn);\n }\n };\n walkScopes(previous, collect);\n walkScopes(next, apply);\n}\n\nfunction tryReadExistingIndexForMerge(contextDir: string): ApplicationContextFile | null {\n const p = path.join(contextDir, \"index-application-context.json\");\n try {\n if (!fs.existsSync(p)) {\n return null;\n }\n const j = JSON.parse(fs.readFileSync(p, \"utf8\")) as unknown;\n if (j && typeof j === \"object\" && (j as { kind?: string }).kind === APPLICATION_CONTEXT_KIND) {\n return j as ApplicationContextFile;\n }\n } catch {\n /* ignore corrupt / empty */\n }\n return null;\n}\n\n/**\n * Mutates `doc`: adds `detailMarkdownPaths` / `detailMarkdownFile` where matching `.md` exists; sets `version` to 2 if any link attached.\n */\nexport function applyDetailMarkdownToDocument(doc: ApplicationContextFile, contextDir: string): void {\n let anyLink = false;\n\n const fl = safeReadFeaturesList(contextDir);\n if (doc.scopes.Feature?.nodes && fl?.features) {\n for (const feNode of doc.scopes.Feature.nodes) {\n if (feNode.type !== \"Feature\" || !feNode.code) {\n continue;\n }\n const feRow = fl.features.find((f) => f.code === feNode.code);\n const feSlug = feRow ? slugOrFallback(feRow) : slugOrFallback({ code: feNode.code, name: feNode.name });\n if (feSlug && tryAttachMarkdown(feNode, contextDir, `${feNode.code}-${feSlug}.md`)) {\n anyLink = true;\n }\n const ucList = safeReadUseCasesList(contextDir, feNode.code);\n if (!feNode.children || !ucList?.useCases) {\n continue;\n }\n for (const ucNode of feNode.children) {\n if (ucNode.type !== \"UseCase\" || !ucNode.code) {\n continue;\n }\n const ucRow = ucList.useCases.find((u) => u.code === ucNode.code);\n const ucSlug = ucRow && safeStr(ucRow.slug) && SLUG.test(safeStr(ucRow.slug)) ? safeStr(ucRow.slug) : undefined;\n const ucBase =\n ucSlug && SLUG.test(ucSlug)\n ? `${feNode.code}_${ucNode.code}-${ucSlug}.md`\n : `${feNode.code}_${ucNode.code}.md`;\n if (tryAttachMarkdown(ucNode, contextDir, ucBase)) {\n anyLink = true;\n }\n const scFile = readJson<ScenariosListFile>(scenariosListPath(contextDir, feNode.code, ucNode.code));\n if (!ucNode.children || !scFile?.scenarios) {\n continue;\n }\n for (const scNode of ucNode.children) {\n if (scNode.type !== \"Scenario\" || !scNode.code) {\n continue;\n }\n if (\n tryAttachMarkdown(\n scNode,\n contextDir,\n `${feNode.code}_${ucNode.code}_${scNode.code}.md`,\n )\n ) {\n anyLink = true;\n }\n }\n }\n }\n }\n\n const exp = readJson<ExperiencesListFile>(path.join(contextDir, \"experiences-list.json\"));\n if (doc.scopes.Experience?.nodes && exp?.views) {\n for (const vNode of doc.scopes.Experience.nodes) {\n if (vNode.type !== \"View\" || !vNode.code) {\n continue;\n }\n const vRow = exp.views.find((v) => v.code === vNode.code);\n const vSlug = vRow ? slugOrFallback(vRow) : slugOrFallback({ code: vNode.code, name: vNode.name });\n if (vSlug && tryAttachMarkdown(vNode, contextDir, `${vNode.code}-${vSlug}.md`)) {\n anyLink = true;\n }\n if (!vNode.children || !vRow?.interactions) {\n continue;\n }\n for (const ixNode of vNode.children) {\n if (ixNode.type !== \"Interaction\" || !ixNode.code) {\n continue;\n }\n const ixRow = vRow.interactions.find((b) => b.code === ixNode.code);\n const ixSlug = ixRow ? slugOrFallback(ixRow) : slugOrFallback({ code: ixNode.code, name: ixNode.name });\n if (ixSlug && tryAttachMarkdown(ixNode, contextDir, `${vNode.code}_${ixNode.code}-${ixSlug}.md`)) {\n anyLink = true;\n }\n }\n }\n }\n\n const svcData = readJson<ServicesListFile>(path.join(contextDir, \"services-list.json\"));\n if (doc.scopes.Service?.nodes && svcData?.services) {\n for (const sNode of doc.scopes.Service.nodes) {\n if (sNode.type !== \"Service\" || !sNode.code) {\n continue;\n }\n const sRow = svcData.services.find((s) => s.code === sNode.code);\n const sSlug = sRow ? slugOrFallback(sRow) : slugOrFallback({ code: sNode.code, name: sNode.name });\n if (sSlug && tryAttachMarkdown(sNode, contextDir, `${sNode.code}-${sSlug}.md`)) {\n anyLink = true;\n }\n if (!sNode.children || !sRow?.methods) {\n continue;\n }\n for (const mNode of sNode.children) {\n if (mNode.type !== \"Method\" || !mNode.code) {\n continue;\n }\n const mRow = sRow.methods.find((m) => m.code === mNode.code);\n const mSlug = mRow ? slugOrFallback(mRow) : slugOrFallback({ code: mNode.code, name: mNode.name });\n if (mSlug && tryAttachMarkdown(mNode, contextDir, `${sNode.code}_${mNode.code}-${mSlug}.md`)) {\n anyLink = true;\n }\n }\n }\n }\n\n const dmData = readJson<DataModelListFile>(path.join(contextDir, \"data-model-list.json\"));\n if (doc.scopes.DataModel?.nodes && dmData?.entities) {\n for (const eNode of doc.scopes.DataModel.nodes) {\n if (eNode.type !== \"Entity\" || !eNode.code) {\n continue;\n }\n const eRow = dmData.entities.find((e) => e.code === eNode.code);\n const eSlug = eRow ? slugOrFallback(eRow) : slugOrFallback({ code: eNode.code, name: eNode.name });\n if (eSlug && tryAttachMarkdown(eNode, contextDir, `${eNode.code}-${eSlug}.md`)) {\n anyLink = true;\n }\n if (!eNode.children) {\n continue;\n }\n const fieldsSidecar = readEntityFieldsList(contextDir, eNode.code);\n for (const ch of eNode.children) {\n if (ch.type === \"Field\" && ch.code) {\n const fRow =\n fieldsSidecar.find((f) => f.code === ch.code) ?? eRow?.fields?.find((f) => f.code === ch.code);\n const fSlug = fRow ? slugOrFallback(fRow) : slugOrFallback({ code: ch.code, name: ch.name });\n if (fSlug && tryAttachMarkdown(ch, contextDir, `${eNode.code}_${ch.code}-${fSlug}.md`)) {\n anyLink = true;\n }\n } else if (ch.type === \"Relationship\" && ch.code) {\n const rRow = eRow?.relationships?.find((r) => r.code === ch.code);\n const rSlug = rRow ? slugOrFallback(rRow) : slugOrFallback({ code: ch.code, name: ch.name });\n if (rSlug && tryAttachMarkdown(ch, contextDir, `${eNode.code}_${ch.code}-${rSlug}.md`)) {\n anyLink = true;\n }\n }\n }\n }\n }\n\n const tsData = readJson<TechStackListFile>(path.join(contextDir, \"tech-stack-list.json\"));\n if (doc.scopes.TechStack?.nodes && tsData?.tools) {\n for (const tNode of doc.scopes.TechStack.nodes) {\n if (tNode.type !== \"Tool\" || !tNode.code) {\n continue;\n }\n const tRow = tsData.tools.find((t) => t.code === tNode.code);\n const tSlug = tRow ? slugOrFallback(tRow) : slugOrFallback({ code: tNode.code, name: tNode.name });\n if (tSlug && tryAttachMarkdown(tNode, contextDir, `${tNode.code}-${tSlug}.md`)) {\n anyLink = true;\n }\n }\n }\n\n doc.version = anyLink ? 2 : 1;\n}\n\nfunction readJson<T>(filePath: string): T | null {\n try {\n const raw = fs.readFileSync(filePath, \"utf-8\");\n return JSON.parse(raw) as T;\n } catch {\n return null;\n }\n}\n\nfunction safeReadFeaturesList(contextDir: string): FeaturesListFile | null {\n const p = path.join(contextDir, \"features-list.json\");\n const data = readJson<FeaturesListFile>(p);\n if (!data?.features?.length) {\n return null;\n }\n return data;\n}\n\nfunction safeReadUseCasesList(contextDir: string, feCode: string): UseCasesListFile | null {\n const p = path.join(contextDir, `${feCode}-use-cases-list.json`);\n const data = readJson<UseCasesListFile>(p);\n if (!data?.useCases?.length) {\n return null;\n }\n return data;\n}\n\n/** e.g. FE-01 + UC-01 \u2192 FE-01_UC-01-scenarios-list.json */\nfunction scenariosListPath(contextDir: string, feCode: string, ucCode: string): string {\n return path.join(contextDir, `${feCode}_${ucCode}-scenarios-list.json`);\n}\n\nfunction buildFeatureScope(contextDir: string): ImpactNode[] {\n const fl = safeReadFeaturesList(contextDir);\n if (!fl) {\n return [];\n }\n const nodes: ImpactNode[] = [];\n for (const fe of fl.features) {\n const ucList = safeReadUseCasesList(contextDir, fe.code);\n const ucNodes: ImpactNode[] = [];\n if (ucList?.useCases) {\n for (const uc of ucList.useCases) {\n const scFile = readJson<ScenariosListFile>(scenariosListPath(contextDir, fe.code, uc.code));\n const scNodes: ImpactNode[] =\n scFile?.scenarios?.map((s) => ({\n type: \"Scenario\",\n code: s.code,\n name: s.name,\n })) ?? [];\n ucNodes.push({\n type: \"UseCase\",\n code: uc.code,\n name: uc.name,\n children: scNodes.length ? scNodes : undefined,\n });\n }\n }\n nodes.push({\n type: \"Feature\",\n code: fe.code,\n name: fe.name,\n children: ucNodes.length ? ucNodes : undefined,\n });\n }\n return nodes;\n}\n\nfunction buildExperienceScope(contextDir: string): ImpactNode[] {\n const data = readJson<ExperiencesListFile>(path.join(contextDir, \"experiences-list.json\"));\n if (!data?.views?.length) {\n return [];\n }\n return data.views.map((v) => ({\n type: \"View\",\n code: v.code,\n name: v.name,\n children: v.interactions?.map((b) => ({ type: \"Interaction\", code: b.code, name: b.name })),\n }));\n}\n\nfunction buildServiceScope(contextDir: string): ImpactNode[] {\n const data = readJson<ServicesListFile>(path.join(contextDir, \"services-list.json\"));\n if (!data?.services?.length) {\n return [];\n }\n return data.services.map((s) => ({\n type: \"Service\",\n code: s.code,\n name: s.name,\n children: s.methods?.map((m) => ({ type: \"Method\", code: m.code, name: m.name })),\n }));\n}\n\nfunction readEntityFieldsList(contextDir: string, dmCode: string): FieldItem[] {\n const p = path.join(contextDir, `${dmCode}-fields-list.json`);\n const file = readJson<EntityFieldsListFile>(p);\n const rows = Array.isArray(file?.fields) ? file!.fields! : [];\n return rows.filter((f): f is FieldItem => Boolean(f?.code && f?.name));\n}\n\nfunction buildDataModelScope(contextDir: string): ImpactNode[] {\n const data = readJson<DataModelListFile>(path.join(contextDir, \"data-model-list.json\"));\n if (!data?.entities?.length) {\n return [];\n }\n return data.entities.map((e) => {\n const fromList = readEntityFieldsList(contextDir, e.code);\n const fieldNodes: ImpactNode[] =\n fromList.length > 0\n ? fromList.map((f) => ({ type: \"Field\", code: f.code, name: f.name }))\n : e.fields?.map((f) => ({ type: \"Field\", code: f.code, name: f.name })) ?? [];\n const relNodes: ImpactNode[] =\n e.relationships?.map((r) => ({ type: \"Relationship\", code: r.code, name: r.name })) ?? [];\n const children = [...fieldNodes, ...relNodes];\n return {\n type: \"Entity\",\n code: e.code,\n name: e.name,\n children: children.length ? children : undefined,\n };\n });\n}\n\nfunction buildTechStackScope(contextDir: string): ImpactNode[] {\n const data = readJson<TechStackListFile>(path.join(contextDir, \"tech-stack-list.json\"));\n if (!data?.tools?.length) {\n return [];\n }\n return data.tools.map((t) => ({ type: \"Tool\", code: t.code, name: t.name }));\n}\n\nfunction countDriftNodes(nodes: ImpactNode[]): number {\n let n = 0;\n for (const node of nodes) {\n if (node.drift === true) {\n n += 1;\n }\n if (node.children) {\n n += countDriftNodes(node.children);\n }\n }\n return n;\n}\n\nfunction countScopeDrift(nodes: ImpactNode[]): number {\n return countDriftNodes(nodes);\n}\n\n/**\n * Build in-memory `ApplicationContextFile` from coordination JSON under `contextDir`.\n */\nexport function assembleApplicationContextIndex(contextDir: string, title = \"Application context\"): ApplicationContextFile {\n const featureNodes = buildFeatureScope(contextDir);\n const experienceNodes = buildExperienceScope(contextDir);\n const serviceNodes = buildServiceScope(contextDir);\n const dataModelNodes = buildDataModelScope(contextDir);\n const techNodes = buildTechStackScope(contextDir);\n\n const scopes: ApplicationContextFile[\"scopes\"] = {};\n if (featureNodes.length) {\n scopes.Feature = { nodes: featureNodes };\n }\n if (experienceNodes.length) {\n scopes.Experience = { nodes: experienceNodes };\n }\n if (serviceNodes.length) {\n scopes.Service = { nodes: serviceNodes };\n }\n if (dataModelNodes.length) {\n scopes.DataModel = { nodes: dataModelNodes };\n }\n if (techNodes.length) {\n scopes.TechStack = { nodes: techNodes };\n }\n\n const driftCount =\n countScopeDrift(featureNodes) +\n countScopeDrift(experienceNodes) +\n countScopeDrift(serviceNodes) +\n countScopeDrift(dataModelNodes) +\n countScopeDrift(techNodes);\n\n return {\n kind: APPLICATION_CONTEXT_KIND,\n version: 1,\n title,\n generatedAt: new Date().toISOString(),\n driftCount,\n scopes,\n };\n}\n\nexport interface WriteIndexApplicationContextOptions {\n /** Defaults to bundled `resources/schemas/index-application-context.schema.json`. */\n schemaPath?: string;\n /**\n * When set, written as `repository` without resolving git (tests).\n * Otherwise {@link attachRepositoryProvenance} runs from `contextDir`.\n */\n repositoryProvenance?: RepositoryProvenance;\n /**\n * Primary-repo branch when the analysis worktree was created (persisted snapshot).\n * See {@link attachRepositoryProvenance} / **SRS-15** (detached worktrees).\n */\n sourceBranchAtWorktreeCreation?: string;\n}\n\n/**\n * Write `index-application-context.json` atomically (SRS-8 R9, SRS-10 R7).\n * Runs {@link applyDetailMarkdownToDocument}, validates against JSON Schema, then rename.\n * @throws If validation fails or I/O fails (existing final file is left unchanged on validation failure).\n */\nexport function writeIndexApplicationContext(\n contextDir: string,\n title?: string,\n options?: WriteIndexApplicationContextOptions,\n): ApplicationContextFile {\n const doc = assembleApplicationContextIndex(contextDir, title);\n if (options?.repositoryProvenance) {\n doc.repository = options.repositoryProvenance;\n } else {\n attachRepositoryProvenance(doc, contextDir, {\n sourceBranchAtWorktreeCreation: options?.sourceBranchAtWorktreeCreation,\n });\n }\n applyDetailMarkdownToDocument(doc, contextDir);\n mergePersistedIndexUploadMetadata(tryReadExistingIndexForMerge(contextDir), doc);\n const schemaPath = options?.schemaPath ?? getDefaultIndexSchemaPath();\n const validation = validateIndexApplicationContextJson(doc, schemaPath);\n if (!validation.ok) {\n throw new Error(`index-application-context.json schema validation failed: ${validation.errors.join(\"; \")}`);\n }\n const target = path.join(contextDir, \"index-application-context.json\");\n const tmp = `${target}.${process.pid}.tmp`;\n try {\n fs.writeFileSync(tmp, JSON.stringify(doc, null, 2), \"utf-8\");\n fs.renameSync(tmp, target);\n } catch (e) {\n try {\n fs.unlinkSync(tmp);\n } catch {\n /* ignore */\n }\n throw e;\n }\n return doc;\n}\n", "/** When true, the impact pipeline marks this node as having spec/code drift (show in UI). */\nexport interface ImpactNode {\n type: string;\n /** Optional stable id (same conventions as `index-application-context.json`: **FE-***, **UC-***, **SC-***, **XP-***, **BH-***, **SV-***, **ME-***, **DM-***, **FD-***, **RL-***, **TS-*** for Tech **Tool**). */\n code?: string;\n name: string;\n drift?: boolean;\n /** Paths to detail markdown relative to `.gluecharm/context/` (srs-10). */\n detailMarkdownPaths?: string[];\n /** Primary detail doc: legacy `{ filename, path }` or srs-26 `{ path, srsDiscoveryId? }`. */\n detailMarkdownFile?: { filename?: string; path: string; srsDiscoveryId?: string };\n children?: ImpactNode[];\n}\n\nexport interface ScopeBlock {\n nodes: ImpactNode[];\n}\n\nexport interface ImpactFile {\n cr: string;\n title: string;\n status?: string;\n /** Derived when parsing CR `impact.json`: count of nodes with `drift: true` (not stored in the file). */\n driftCount: number;\n scopes?: {\n Feature?: ScopeBlock;\n Experience?: ScopeBlock;\n Service?: ScopeBlock;\n DataModel?: ScopeBlock;\n TechStack?: ScopeBlock;\n };\n}\n\nexport interface CrListItem {\n filename: string;\n crId: string | undefined;\n driftCount: number;\n impact: ImpactFile | null;\n /** SRS-24: `srsName` from paired `.meta.json` for tree title. */\n displayName?: string;\n /** SRS-24: `local` | `remote` from meta. */\n metaOrigin?: string;\n}\n\nexport const APPLICATION_CONTEXT_KIND = \"easyspecs.application-context\" as const;\n\n/** Host category from `origin` URL (srs-15). */\nexport type RemoteProvider = \"github\" | \"gitlab\" | \"bitbucket\" | \"azure_devops\" | \"other\" | \"unknown\";\n\n/** Optional Git / remote identity on the application-context index (srs-15). */\nexport interface RepositoryProvenance {\n localName: string;\n remoteProvider: RemoteProvider;\n remoteRepository: string;\n /** Full SHA-1 of `HEAD` at generation time. */\n commit: string;\n /**\n * Branch the analysis was based on: primary repo `HEAD` **when the EasySpecs worktree was created**\n * (before `git worktree add --detach`), not a later branch checkout inside the temp worktree.\n * Omitted when unknown (e.g. primary repo was detached at creation, or legacy snapshot).\n */\n branch?: string;\n originUrl?: string;\n}\n\n/** Application-wide scope aggregate under `.gluecharm/context/index-application-context.json` (srs-4). */\nexport interface ApplicationContextFile {\n kind: typeof APPLICATION_CONTEXT_KIND;\n version: number;\n title: string;\n generatedAt?: string;\n driftCount: number;\n scopes: NonNullable<ImpactFile[\"scopes\"]>;\n /** Present when the extension resolved Git metadata for the worktree (srs-15). */\n repository?: RepositoryProvenance;\n /** `srs_discovery` id for this index file after upload (srs-26). */\n indexSrsDiscoveryId?: string;\n}\n\nexport interface ContextFileItem {\n filename: string;\n driftCount: number;\n appContext: ApplicationContextFile | null;\n}\n\nconst CR_PREFIX = /^(CR-\\d+)/;\n\nexport function extractCrId(filename: string): string | undefined {\n const base = filename.replace(/\\.md$/i, \"\");\n return CR_PREFIX.exec(base)?.[1];\n}\n\nexport function impactJsonPathSegments(crId: string): string[] {\n return [crId, \"impact.json\"];\n}\n\nexport type DriftBadgeKind = \"none\" | \"warn\" | \"err\";\n\nexport function driftBadgeKind(driftCount: number): DriftBadgeKind {\n if (driftCount <= 0) {\n return \"none\";\n }\n if (driftCount === 1) {\n return \"warn\";\n }\n return \"err\";\n}\n\nfunction countDriftInNodes(nodes: ImpactNode[] | undefined): number {\n if (!nodes?.length) {\n return 0;\n }\n let n = 0;\n for (const node of nodes) {\n if (node.drift === true) {\n n += 1;\n }\n n += countDriftInNodes(node.children);\n }\n return n;\n}\n\n/** Counts `drift: true` nodes across all known scope blocks (used for CR row badges). */\nexport function countDriftInImpactScopes(scopes: ImpactFile[\"scopes\"] | undefined): number {\n if (!scopes) {\n return 0;\n }\n const keys: (keyof NonNullable<ImpactFile[\"scopes\"]>)[] = [\n \"Feature\",\n \"Experience\",\n \"Service\",\n \"DataModel\",\n \"TechStack\",\n ];\n let t = 0;\n for (const k of keys) {\n const block = scopes[k];\n t += countDriftInNodes(block?.nodes);\n }\n return t;\n}\n\nexport function parseImpactJson(text: string): { ok: true; value: ImpactFile } | { ok: false } {\n let data: unknown;\n try {\n data = JSON.parse(text) as unknown;\n } catch {\n return { ok: false };\n }\n if (!data || typeof data !== \"object\") {\n return { ok: false };\n }\n const o = data as Record<string, unknown>;\n const cr = o.cr;\n const title = o.title;\n if (typeof cr !== \"string\" || typeof title !== \"string\") {\n return { ok: false };\n }\n const scopes = isScopes(o.scopes) ? (o.scopes as ImpactFile[\"scopes\"]) : undefined;\n const driftCount = countDriftInImpactScopes(scopes);\n const value: ImpactFile = {\n cr,\n title,\n status: typeof o.status === \"string\" ? o.status : undefined,\n driftCount,\n scopes,\n };\n return { ok: true, value };\n}\n\nfunction isScopes(v: unknown): boolean {\n return v === undefined || (typeof v === \"object\" && v !== null);\n}\n\nexport function parseApplicationContextJson(\n text: string,\n): { ok: true; value: ApplicationContextFile } | { ok: false } {\n let data: unknown;\n try {\n data = JSON.parse(text) as unknown;\n } catch {\n return { ok: false };\n }\n if (!data || typeof data !== \"object\") {\n return { ok: false };\n }\n const o = data as Record<string, unknown>;\n if (o.kind !== APPLICATION_CONTEXT_KIND) {\n return { ok: false };\n }\n const version = o.version;\n const title = o.title;\n const driftRaw = o.driftCount;\n const scopes = o.scopes;\n if (typeof version !== \"number\" || !Number.isFinite(version)) {\n return { ok: false };\n }\n if (typeof title !== \"string\") {\n return { ok: false };\n }\n if (scopes === undefined || scopes === null || typeof scopes !== \"object\") {\n return { ok: false };\n }\n let driftCount = 0;\n if (typeof driftRaw === \"number\" && Number.isFinite(driftRaw)) {\n driftCount = Math.max(0, Math.floor(driftRaw));\n }\n const repository = parseRepositoryField(o.repository);\n const indexSrsDiscoveryId =\n typeof o.indexSrsDiscoveryId === \"string\" && o.indexSrsDiscoveryId.trim().length > 0\n ? o.indexSrsDiscoveryId.trim()\n : undefined;\n const value: ApplicationContextFile = {\n kind: APPLICATION_CONTEXT_KIND,\n version,\n title,\n generatedAt: typeof o.generatedAt === \"string\" ? o.generatedAt : undefined,\n driftCount,\n scopes: scopes as ApplicationContextFile[\"scopes\"],\n ...(repository ? { repository } : {}),\n ...(indexSrsDiscoveryId ? { indexSrsDiscoveryId } : {}),\n };\n return { ok: true, value };\n}\n\nconst REMOTE_PROVIDERS = new Set<string>([\n \"github\",\n \"gitlab\",\n \"bitbucket\",\n \"azure_devops\",\n \"other\",\n \"unknown\",\n]);\n\nfunction parseRepositoryField(v: unknown): RepositoryProvenance | undefined {\n if (v === undefined || v === null) {\n return undefined;\n }\n if (typeof v !== \"object\") {\n return undefined;\n }\n const r = v as Record<string, unknown>;\n const localName = r.localName;\n const remoteProviderRaw = r.remoteProvider;\n const remoteRepository = r.remoteRepository;\n const commit = r.commit;\n if (typeof localName !== \"string\" || localName.length === 0) {\n return undefined;\n }\n if (typeof remoteProviderRaw !== \"string\" || !REMOTE_PROVIDERS.has(remoteProviderRaw)) {\n return undefined;\n }\n if (typeof remoteRepository !== \"string\" || remoteRepository.length === 0) {\n return undefined;\n }\n if (typeof commit !== \"string\" || !/^[0-9a-f]{40}$/.test(commit)) {\n return undefined;\n }\n const remoteProvider = remoteProviderRaw as RemoteProvider;\n const out: RepositoryProvenance = {\n localName,\n remoteProvider,\n remoteRepository,\n commit,\n };\n if (typeof r.branch === \"string\" && r.branch.length > 0) {\n out.branch = r.branch;\n }\n if (typeof r.originUrl === \"string\" && r.originUrl.length > 0) {\n out.originUrl = r.originUrl;\n }\n return out;\n}\n", "/**\n * SRS-10 R7: validate assembled `index-application-context.json` against bundled JSON Schema (Draft 2020-12).\n */\n\nimport Ajv2020, { type ValidateFunction } from \"ajv/dist/2020\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { resolveIndexApplicationContextSchemaPath } from \"./shared/repoResourcesRoot\";\n\nconst validators = new Map<string, ValidateFunction>();\n\nexport function getDefaultIndexSchemaPath(): string {\n return resolveIndexApplicationContextSchemaPath();\n}\n\nfunction getValidator(schemaPath: string): ValidateFunction {\n const abs = path.resolve(schemaPath);\n let v = validators.get(abs);\n if (!v) {\n const raw = fs.readFileSync(abs, \"utf-8\");\n const schema = JSON.parse(raw) as object;\n const ajv = new Ajv2020({ allErrors: true, strict: false });\n v = ajv.compile(schema);\n validators.set(abs, v);\n }\n return v;\n}\n\nfunction formatAjvErrors(validate: ValidateFunction): string[] {\n const errs = validate.errors;\n if (!errs?.length) {\n return [\"Unknown schema validation error\"];\n }\n return errs.map((e) => {\n const p = e.instancePath || \"(root)\";\n return `${p} ${e.message ?? \"\"}`.trim();\n });\n}\n\n/**\n * Validates a parsed index document. Safe: never throws from Ajv (schema load failures throw).\n */\nexport function validateIndexApplicationContextJson(\n doc: unknown,\n schemaPath: string = getDefaultIndexSchemaPath(),\n): { ok: true } | { ok: false; errors: string[] } {\n const validate = getValidator(schemaPath);\n if (validate(doc)) {\n return { ok: true };\n }\n return { ok: false, errors: formatAjvErrors(validate) };\n}\n", "/**\n * Resolve the extension repo's **`resources/`** directory when code runs from **`out/**`** (tsc),\n * from **`packages/cli/dist/*.cjs`** (esbuild bundle), or from a global **`node_modules/@gluecharm-lab/easyspecs-cli/dist`** install.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nconst CONTEXT_LIST_MARKER = path.join(\"schemas\", \"context-lists\", \"zero-reference-classifier-record.schema.json\");\n\nfunction hasMarker(resourcesRoot: string): boolean {\n return fs.existsSync(path.join(resourcesRoot, CONTEXT_LIST_MARKER));\n}\n\n/**\n * Absolute path to the directory that contains **`schemas/`**, **`opencode-agents/`**, etc.\n */\nexport function resolveRepoResourcesRoot(): string {\n const env = process.env.EASYSPECS_EXTENSION_ROOT?.trim();\n if (env) {\n const r = path.join(path.resolve(env), \"resources\");\n if (hasMarker(r)) {\n return r;\n }\n }\n const candidates = [path.join(__dirname, \"..\", \"resources\"), path.join(__dirname, \"..\", \"..\", \"resources\")];\n for (const c of candidates) {\n const abs = path.resolve(c);\n if (hasMarker(abs)) {\n return abs;\n }\n }\n throw new Error(\n `Could not find EasySpecs bundled resources (e.g. ${CONTEXT_LIST_MARKER}). ` +\n `Set EASYSPECS_EXTENSION_ROOT to your easyspecs.ai-vsc-extension repo root, or reinstall @gluecharm-lab/easyspecs-cli ` +\n `after \\`npm run build:cli\\` so packages/cli/resources contains the full resources tree.`,\n );\n}\n\nexport function resolveContextListSchemasDir(): string {\n return path.join(resolveRepoResourcesRoot(), \"schemas\", \"context-lists\");\n}\n\nexport function resolveIndexApplicationContextSchemaPath(): string {\n return path.join(resolveRepoResourcesRoot(), \"schemas\", \"index-application-context.schema.json\");\n}\n", "/**\n * SRS-35 R17 / SRS-43: ACE toggles resolve from **`.easyspecs/config.json`** (`easyspecs.analysis.ace.*`)\n * first, then legacy **`.easyspecs/settings.json`** (flat keys), then VS Code settings.\n *\n * **Analysis worktree:** Diagnosis / Run Analysis use a separate git checkout (e.g. `easyspecs-001`).\n * That path is tried **first** so overrides in `<worktree>/.easyspecs/config.json` are honored even when\n * the VS Code window is opened on the main repo.\n */\n\nimport * as path from \"node:path\";\nimport * as vscode from \"vscode\";\nimport {\n readAceEnabledFromEasyspecsConfigFile,\n readAceOfflineLearnAfterSameSessionTraceFromEasyspecsConfigFile,\n} from \"../config/easyspecsAceConfigRead\";\nimport {\n readAceEnabledFromEasySpecsSettingsFile,\n readAceOfflineLearnAfterSameSessionTraceFromEasySpecsSettingsFile,\n} from \"../easySpecsWorkspaceSettingsCore\";\n\nconst SECTION = \"easyspecs\";\n\n/** When set by `@gluecharm-lab/easyspecs-cli`, use this instead of `vscode.workspace.workspaceFolders[0]`. */\nlet cliWorkspaceRootOverride: string | undefined;\n/** Headless CLI: skip VS Code `getConfiguration` and use file-backed ACE only (`config.json` / legacy `settings.json`). */\nlet cliHeadlessMode = false;\n\nexport function setAceCliWorkspaceRoot(fsPath: string | undefined): void {\n cliWorkspaceRootOverride = fsPath?.trim() || undefined;\n}\n\nexport function setAceCliHeadlessMode(enabled: boolean): void {\n cliHeadlessMode = enabled;\n}\n\nfunction normFs(p: string): string {\n return path.resolve(p.trim());\n}\n\n/**\n * Resolves ACE on/off: for each root in order \u2014 `analysisCheckoutRoot` (if set), then first workspace folder \u2014\n * if `.easyspecs/config.json` defines `easyspecs.analysis.ace.enabled`, that boolean wins; else legacy\n * `.easyspecs/settings.json` flat key; else VS Code `easyspecs.analysis.ace.enabled`.\n */\nexport function getAceAnalysisEnabledForCheckout(analysisCheckoutRoot?: string | null): boolean {\n const seen = new Set<string>();\n const roots: string[] = [];\n const push = (raw: string | undefined | null): void => {\n const t = typeof raw === \"string\" ? raw.trim() : \"\";\n if (!t) {\n return;\n }\n const n = normFs(t);\n if (seen.has(n)) {\n return;\n }\n seen.add(n);\n roots.push(n);\n };\n push(analysisCheckoutRoot);\n push(cliWorkspaceRootOverride);\n push(vscode.workspace.workspaceFolders?.[0]?.uri.fsPath);\n\n for (const root of roots) {\n const fromConfig = readAceEnabledFromEasyspecsConfigFile(root);\n if (fromConfig !== undefined) {\n return fromConfig;\n }\n const fromLegacy = readAceEnabledFromEasySpecsSettingsFile(root);\n if (fromLegacy !== undefined) {\n return fromLegacy;\n }\n }\n if (cliHeadlessMode) {\n return false;\n }\n return vscode.workspace.getConfiguration(SECTION).get<boolean>(\"analysis.ace.enabled\") === true;\n}\n\n/** When the analysis checkout path is unknown (e.g. webview bootstrap), only workspace folder + VS Code apply. */\nexport function getAceAnalysisEnabled(): boolean {\n return getAceAnalysisEnabledForCheckout(undefined);\n}\n\n/**\n * When true, after a validated same-session trace, EasySpecs runs Reflector \u2192 Curator \u2192 apply for that trace\n * in the analysis worktree (extra OpenCode runs). Resolved like ACE on/off: analysis checkout, then workspace\n * `.easyspecs/config.json`, then legacy `.easyspecs/settings.json`, then VS Code\n * `easyspecs.analysis.ace.offlineLearnAfterSameSessionTrace`.\n */\nexport function getAceOfflineLearnAfterSameSessionTrace(analysisCheckoutRoot?: string | null): boolean {\n const seen = new Set<string>();\n const roots: string[] = [];\n const push = (raw: string | undefined | null): void => {\n const t = typeof raw === \"string\" ? raw.trim() : \"\";\n if (!t) {\n return;\n }\n const n = normFs(t);\n if (seen.has(n)) {\n return;\n }\n seen.add(n);\n roots.push(n);\n };\n push(analysisCheckoutRoot);\n push(cliWorkspaceRootOverride);\n push(vscode.workspace.workspaceFolders?.[0]?.uri.fsPath);\n\n for (const root of roots) {\n const fromConfig = readAceOfflineLearnAfterSameSessionTraceFromEasyspecsConfigFile(root);\n if (fromConfig !== undefined) {\n return fromConfig;\n }\n const fromLegacy = readAceOfflineLearnAfterSameSessionTraceFromEasySpecsSettingsFile(root);\n if (fromLegacy !== undefined) {\n return fromLegacy;\n }\n }\n if (cliHeadlessMode) {\n return false;\n }\n return vscode.workspace.getConfiguration(SECTION).get<boolean>(\"analysis.ace.offlineLearnAfterSameSessionTrace\") === true;\n}\n", "/**\n * Raw reads of optional `easyspecs.analysis.ace.*` from `.easyspecs/config.json` (no merge with defaults),\n * so omitted keys still defer to VS Code settings \u2014 same semantics as legacy `settings.json`.\n */\n\nimport * as fs from \"node:fs\";\nimport { easyspecsConfigPath } from \"./easyspecsConfigFile\";\n\nfunction readRawConfigJson(repoRoot: string): Record<string, unknown> | undefined {\n const p = easyspecsConfigPath(repoRoot);\n if (!fs.existsSync(p)) {\n return undefined;\n }\n let raw: string;\n try {\n raw = fs.readFileSync(p, \"utf8\");\n } catch {\n return undefined;\n }\n try {\n const parsed = JSON.parse(raw) as unknown;\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n return undefined;\n }\n return parsed as Record<string, unknown>;\n } catch {\n return undefined;\n }\n}\n\nexport function readAceEnabledFromEasyspecsConfigFile(repoRoot: string): boolean | undefined {\n const parsed = readRawConfigJson(repoRoot);\n const es = parsed?.easyspecs;\n if (!es || typeof es !== \"object\" || Array.isArray(es)) {\n return undefined;\n }\n const analysis = (es as Record<string, unknown>).analysis;\n if (!analysis || typeof analysis !== \"object\" || Array.isArray(analysis)) {\n return undefined;\n }\n const ace = (analysis as Record<string, unknown>).ace;\n if (!ace || typeof ace !== \"object\" || Array.isArray(ace)) {\n return undefined;\n }\n if (!Object.prototype.hasOwnProperty.call(ace, \"enabled\")) {\n return undefined;\n }\n const v = (ace as Record<string, unknown>).enabled;\n return typeof v === \"boolean\" ? v : undefined;\n}\n\nexport function readAceOfflineLearnAfterSameSessionTraceFromEasyspecsConfigFile(\n repoRoot: string,\n): boolean | undefined {\n const parsed = readRawConfigJson(repoRoot);\n const es = parsed?.easyspecs;\n if (!es || typeof es !== \"object\" || Array.isArray(es)) {\n return undefined;\n }\n const analysis = (es as Record<string, unknown>).analysis;\n if (!analysis || typeof analysis !== \"object\" || Array.isArray(analysis)) {\n return undefined;\n }\n const ace = (analysis as Record<string, unknown>).ace;\n if (!ace || typeof ace !== \"object\" || Array.isArray(ace)) {\n return undefined;\n }\n if (!Object.prototype.hasOwnProperty.call(ace, \"offlineLearnAfterSameSessionTrace\")) {\n return undefined;\n }\n const v = (ace as Record<string, unknown>).offlineLearnAfterSameSessionTrace;\n return typeof v === \"boolean\" ? v : undefined;\n}\n", "/**\n * SRS-20: read repo-surface-scan.json and write empty experiences when hasUi is false.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\n\nexport const REPO_SURFACE_SCAN_BASENAME = \"repo-surface-scan.json\";\n\nexport type RepoSurfaceScanPayload = {\n hasUi: boolean;\n hasBackend: boolean;\n uiAbsenceReason?: string;\n backendAbsenceReason?: string;\n};\n\nfunction stripBom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\n/**\n * Reads assessment JSON; returns null if missing, unreadable, or `hasUi` not a boolean.\n */\nexport function readRepoSurfaceAssessment(contextDir: string): RepoSurfaceScanPayload | null {\n const p = path.join(contextDir, REPO_SURFACE_SCAN_BASENAME);\n try {\n const raw = stripBom(fs.readFileSync(p, \"utf-8\"));\n const data = JSON.parse(raw) as unknown;\n if (!data || typeof data !== \"object\") {\n return null;\n }\n const o = data as Record<string, unknown>;\n if (typeof o.hasUi !== \"boolean\" || typeof o.hasBackend !== \"boolean\") {\n return null;\n }\n return {\n hasUi: o.hasUi,\n hasBackend: o.hasBackend,\n ...(typeof o.uiAbsenceReason === \"string\" ? { uiAbsenceReason: o.uiAbsenceReason } : {}),\n ...(typeof o.backendAbsenceReason === \"string\" ? { backendAbsenceReason: o.backendAbsenceReason } : {}),\n };\n } catch {\n return null;\n }\n}\n\n/** Schema-valid empty experiences list (SRS-20 skip path). */\nexport function writeEmptyExperiencesListJson(contextDir: string): void {\n const p = path.join(contextDir, \"experiences-list.json\");\n fs.mkdirSync(path.dirname(p), { recursive: true });\n fs.writeFileSync(\n p,\n `${JSON.stringify(\n {\n kind: \"easyspecs.experiences-list\",\n version: 1,\n views: [],\n },\n null,\n 2,\n )}\\n`,\n \"utf-8\",\n );\n}\n", "/**\n * Copy generated `.gluecharm/context/*` from disk into the opened workspace (PLAN-SRS-8 promotion).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport * as vscode from \"vscode\";\n\n/**\n * Headless promotion: copy regular files from **sourceContextDir** into **workspaceRootFs**`/.gluecharm/context/`.\n */\nexport function promoteContextDirectoryToWorkspaceFs(\n sourceContextDir: string,\n workspaceRootFs: string,\n): { filesCopied: number } {\n const dest = path.join(workspaceRootFs, \".gluecharm\", \"context\");\n fs.mkdirSync(path.join(workspaceRootFs, \".gluecharm\"), { recursive: true });\n fs.mkdirSync(dest, { recursive: true });\n\n let names: string[];\n try {\n names = fs.readdirSync(sourceContextDir);\n } catch {\n return { filesCopied: 0 };\n }\n\n let filesCopied = 0;\n for (const name of names) {\n const srcPath = path.join(sourceContextDir, name);\n if (!fs.statSync(srcPath).isFile()) {\n continue;\n }\n const buf = fs.readFileSync(srcPath);\n const target = path.join(dest, name);\n fs.writeFileSync(target, buf);\n filesCopied += 1;\n }\n return { filesCopied };\n}\n\n/**\n * Overwrites / creates matching files under `workspaceRoot/.gluecharm/context/`.\n * Only regular files directly under `sourceContextDir` are copied (same layout as analysis output today).\n */\nexport async function promoteContextDirectoryToWorkspace(\n sourceContextDir: string,\n workspaceRoot: vscode.Uri,\n): Promise<{ filesCopied: number }> {\n return promoteContextDirectoryToWorkspaceFs(sourceContextDir, workspaceRoot.fsPath);\n}\n", "/**\n * SRS-32: static exit-condition copy for macro phase rows (orchestrator + Diagnosis table).\n * Keep in sync with {@link MACRO_PHASE_KEYS} in macroAnalysisOrchestrator.ts.\n */\n\nexport const MACRO_PHASE_EXIT_CONDITIONS: Record<string, string> = {\n create_analysis_worktree:\n \"Git analysis checkout exists under the configured temp parent (SRS-8); ready for agent materialization.\",\n materialize_opencode_agents:\n \"Bundled OpenCode agent definitions are copied into the analysis worktree (`.opencode/` tree).\",\n synthesis_convergence:\n \"Missing artefact count is 0. May run again after remediation (R5) if a refreshed check finds new expected outputs.\",\n reference_coverage:\n \"coverage-reference-validation.json written for the analysis worktree. Runs again silently after remediation before the R5 check.\",\n zero_reference_remediation_convergence:\n \"Remediation pool reports 0 failing paths (or cancel / outer-iteration cap).\",\n reference_coverage_execution_report:\n \"reference-coverage-execution-report.md written from current coverage + routing inputs.\",\n assemble_application_context_index:\n \"index-application-context.json written and schema-valid under the worktree context.\",\n backend_context_sync:\n \"Context upload finished with no failures (quiet SRS-13 path; or cancel).\",\n};\n", "/**\n * SRS-32: macro analysis orchestration \u2014 phase order, exponential backoff between outer passes,\n * R5 ping-pong cap. VS Code\u2013free; {@link SrsPanelProvider} injects I/O.\n */\n\nimport { MACRO_PHASE_EXIT_CONDITIONS } from \"../shared/macroPhaseExitConditions\";\n\nexport type MacroPhaseStatus = \"pending\" | \"running\" | \"waiting\" | \"succeeded\" | \"failed\" | \"cancelled\" | \"skipped\";\n\nexport interface MacroPhaseRow {\n readonly key: string;\n status: MacroPhaseStatus;\n /** Static copy for Diagnosis table (exit / convergence criterion for this phase). */\n readonly exitCondition?: string;\n /** Wall time for this phase visit: live while running/waiting; frozen when terminal. Milliseconds. */\n elapsedMs?: number;\n /** Cumulative invocations of this phase\u2019s primary action this macro (incl. R5 re-entries). */\n runCount?: number;\n detail?: string;\n waitingMs?: number;\n iteration?: number;\n}\n\n/** Host / webview payload for each macro state tick. */\nexport interface MacroOrchestrationPostPayload {\n readonly phases: MacroPhaseRow[];\n readonly totalElapsedMs: number;\n}\n\nexport interface MacroOrchestrationConfig {\n readonly initialDelayMs: number;\n readonly backoffMultiplier: number;\n readonly maxDelayMs: number;\n /** 0 = unlimited until cancel */\n readonly maxOuterIterationsPerPhase: number;\n readonly maxMacroPingPongCycles: number;\n readonly synthesisRemediationShareBackoff: boolean;\n readonly synthesisOnly?: boolean;\n}\n\nexport const MACRO_PHASE_KEYS = [\n \"create_analysis_worktree\",\n \"materialize_opencode_agents\",\n \"synthesis_convergence\",\n \"reference_coverage\",\n \"zero_reference_remediation_convergence\",\n \"reference_coverage_execution_report\",\n \"assemble_application_context_index\",\n \"backend_context_sync\",\n] as const;\n\nexport type MacroPhaseKey = (typeof MACRO_PHASE_KEYS)[number];\n\nexport interface MacroOrchestrationDeps {\n readonly signal: AbortSignal;\n readonly config: MacroOrchestrationConfig;\n readonly sleep: (ms: number) => Promise<void>;\n readonly post: (payload: MacroOrchestrationPostPayload) => void | Promise<void>;\n /**\n * SRS-32 / SRS-8: git analysis worktree only (no agent materialize, no OpenCode queue).\n * When **resume** is true, **shall** reuse the existing analysis checkout (macro backoff or R5 re-entry).\n */\n readonly runPrepareAnalysisWorktree: (resume: boolean) => Promise<{ ok: boolean; error?: string }>;\n /** Copy bundled `.opencode` agent definitions into the analysis checkout. No-op when **resume** is true. */\n readonly runMaterializeOpenCodeAgents: (resume: boolean) => Promise<{ ok: boolean; error?: string }>;\n /**\n * **resume** false: full SRS-9 drain from root steps on the prepared checkout.\n * **resume** true: same parallel pool as Diagnosis **Resume synthesis** \u2014 continues from snapshot + missing rows.\n */\n readonly runSynthesisPass: (resume: boolean) => Promise<{ ok: boolean; cancelled?: boolean; error?: string }>;\n readonly getMissingArtefactCount: () => Promise<number>;\n readonly runReferenceCoverage: () => Promise<{ ok: boolean; message?: string }>;\n /**\n * One zero-reference pool pass. Return **failures** = items still failing after this pass;\n * orchestrator applies backoff when failures > 0.\n */\n readonly runRemediationPass: () => Promise<{ ok: boolean; cancelled?: boolean; failures: number; message?: string }>;\n readonly runExecutionReport: () => Promise<{ ok: boolean; cancelled?: boolean; message?: string }>;\n readonly runIndexAssembly: () => Promise<{ ok: boolean; message?: string }>;\n readonly runBackendSync: () => Promise<{ ok: boolean; message?: string }>;\n}\n\nfunction isAborted(signal: AbortSignal): boolean {\n return signal.aborted;\n}\n\nexport function createInitialMacroPhaseRows(): MacroPhaseRow[] {\n return MACRO_PHASE_KEYS.map((key) => ({\n key,\n status: \"pending\" as MacroPhaseStatus,\n exitCondition: MACRO_PHASE_EXIT_CONDITIONS[key] ?? \"\",\n }));\n}\n\nexport function computeNextBackoffDelay(currentMs: number, multiplier: number, maxMs: number): number {\n const next = currentMs * multiplier;\n return Math.min(next, maxMs);\n}\n\n/**\n * Wall-clock sleep; rejects with **AbortError** DOMException when **signal** aborts.\n */\nexport function macroSleep(ms: number, signal: AbortSignal): Promise<void> {\n if (signal.aborted) {\n return Promise.reject(new DOMException(\"The operation was aborted.\", \"AbortError\"));\n }\n return new Promise((resolve, reject) => {\n const onAbort = (): void => {\n clearTimeout(t);\n signal.removeEventListener(\"abort\", onAbort);\n reject(new DOMException(\"The operation was aborted.\", \"AbortError\"));\n };\n const t = setTimeout(() => {\n signal.removeEventListener(\"abort\", onAbort);\n resolve();\n }, ms);\n signal.addEventListener(\"abort\", onAbort, { once: true });\n });\n}\n\nfunction row(phases: MacroPhaseRow[], key: string): MacroPhaseRow | undefined {\n return phases.find((p) => p.key === key);\n}\n\n/**\n * Full SRS-32 \u00A73.2 flow (simplified **macro_loop** row: not surfaced; R5 increments ping-pong only).\n */\nexport async function runMacroAnalysisOrchestration(deps: MacroOrchestrationDeps): Promise<{\n ok: boolean;\n message?: string;\n cancelled?: boolean;\n totalElapsedMs: number;\n}> {\n const phases = createInitialMacroPhaseRows();\n const { signal, config } = deps;\n const macroStartMs = Date.now();\n const macroEnd = (): number => Date.now() - macroStartMs;\n const phaseVisitStartMs = new Map<string, number>();\n\n function bumpPhaseRunCount(key: string): void {\n const r = row(phases, key);\n if (!r) {\n return;\n }\n r.runCount = (r.runCount ?? 0) + 1;\n }\n\n function refreshLiveElapsedMs(): void {\n const now = Date.now();\n for (const p of phases) {\n if (p.status === \"running\" || p.status === \"waiting\") {\n const t0 = phaseVisitStartMs.get(p.key);\n p.elapsedMs = t0 !== undefined ? now - t0 : undefined;\n }\n }\n }\n\n function setRowTimed(\n key: string,\n status: MacroPhaseStatus,\n detail?: string,\n waitingMs?: number,\n iteration?: number,\n ): void {\n const r = row(phases, key);\n if (!r) {\n return;\n }\n const prev = r.status;\n\n if (status === \"pending\") {\n phaseVisitStartMs.delete(key);\n r.elapsedMs = undefined;\n } else if (status === \"running\" || status === \"waiting\") {\n if (prev === \"pending\" || !phaseVisitStartMs.has(key)) {\n phaseVisitStartMs.set(key, Date.now());\n }\n } else if (\n status === \"succeeded\" ||\n status === \"failed\" ||\n status === \"cancelled\" ||\n status === \"skipped\"\n ) {\n const t0 = phaseVisitStartMs.get(key);\n if (t0 !== undefined) {\n r.elapsedMs = Date.now() - t0;\n }\n phaseVisitStartMs.delete(key);\n }\n\n r.status = status;\n r.detail = detail;\n r.waitingMs = waitingMs;\n r.iteration = iteration;\n if (status !== \"waiting\") {\n r.waitingMs = undefined;\n }\n\n refreshLiveElapsedMs();\n }\n\n const post = async (): Promise<void> => {\n refreshLiveElapsedMs();\n const payload: MacroOrchestrationPostPayload = {\n phases: phases.map((p) => ({ ...p })),\n totalElapsedMs: macroEnd(),\n };\n await Promise.resolve(deps.post(payload));\n };\n\n const fail = async (message: string): Promise<{ ok: false; message: string; totalElapsedMs: number }> => {\n await post();\n return { ok: false, message, totalElapsedMs: macroEnd() };\n };\n\n let pingPong = 0;\n\n try {\n outer: while (true) {\n if (isAborted(signal)) {\n setRowTimed( \"synthesis_convergence\", \"cancelled\", \"Stopped.\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n // --- Phase block: worktree \u2192 materialize \u2192 synthesis convergence (R2 outer loop) ---\n let delayMs = config.initialDelayMs;\n let outerIter = 0;\n /** First inner iteration after R5 uses resume; every iteration after backoff uses resume (same checkout + snapshot). */\n let resumeSynthesis = pingPong > 0;\n\n while (true) {\n if (isAborted(signal)) {\n setRowTimed( \"synthesis_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n if (!resumeSynthesis) {\n setRowTimed(\"create_analysis_worktree\", \"running\", \"Creating git analysis worktree\u2026\");\n await post();\n const wtRes = await deps.runPrepareAnalysisWorktree(false);\n if (!wtRes.ok) {\n setRowTimed(\"create_analysis_worktree\", \"failed\", wtRes.error);\n await post();\n return fail(wtRes.error ?? \"Worktree creation failed.\");\n }\n setRowTimed(\"create_analysis_worktree\", \"succeeded\", \"Analysis checkout ready.\");\n await post();\n\n if (isAborted(signal)) {\n setRowTimed(\"materialize_opencode_agents\", \"cancelled\");\n setRowTimed(\"synthesis_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n setRowTimed(\"materialize_opencode_agents\", \"running\", \"Materializing OpenCode agents\u2026\");\n await post();\n const matRes = await deps.runMaterializeOpenCodeAgents(false);\n if (!matRes.ok) {\n setRowTimed(\"materialize_opencode_agents\", \"failed\", matRes.error);\n await post();\n return fail(matRes.error ?? \"Materialize agents failed.\");\n }\n setRowTimed(\"materialize_opencode_agents\", \"succeeded\", \"Agents copied into checkout.\");\n await post();\n } else {\n const wtResume = await deps.runPrepareAnalysisWorktree(true);\n if (!wtResume.ok) {\n setRowTimed(\"create_analysis_worktree\", \"failed\", wtResume.error);\n await post();\n return fail(wtResume.error ?? \"Cannot resume: no analysis checkout.\");\n }\n setRowTimed(\"create_analysis_worktree\", \"skipped\", \"Reusing analysis checkout.\");\n await post();\n const matResume = await deps.runMaterializeOpenCodeAgents(true);\n if (!matResume.ok) {\n setRowTimed(\"materialize_opencode_agents\", \"failed\", matResume.error);\n await post();\n return fail(matResume.error ?? \"Materialize step failed while resuming.\");\n }\n setRowTimed(\"materialize_opencode_agents\", \"skipped\", \"Reusing agents from previous pass.\");\n await post();\n }\n\n if (isAborted(signal)) {\n setRowTimed(\"synthesis_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n setRowTimed(\n \"synthesis_convergence\",\n \"running\",\n resumeSynthesis\n ? \"Resuming parallel pool on same checkout (missing artefacts)\u2026\"\n : \"Running full synthesis pass\u2026\",\n );\n bumpPhaseRunCount(\"synthesis_convergence\");\n await post();\n const syn = await deps.runSynthesisPass(resumeSynthesis);\n if (syn.cancelled || isAborted(signal)) {\n setRowTimed( \"synthesis_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: syn.error ?? \"Synthesis cancelled.\", totalElapsedMs: macroEnd() };\n }\n if (!syn.ok) {\n setRowTimed( \"synthesis_convergence\", \"failed\", syn.error ?? \"Synthesis failed.\");\n await post();\n return fail(syn.error ?? \"Synthesis failed.\");\n }\n\n const missing = await deps.getMissingArtefactCount();\n if (missing === 0) {\n break;\n }\n\n outerIter += 1;\n if (config.maxOuterIterationsPerPhase > 0 && outerIter >= config.maxOuterIterationsPerPhase) {\n setRowTimed(\n \"synthesis_convergence\",\n \"failed\",\n `Still ${String(missing)} missing artefact(s) after ${String(config.maxOuterIterationsPerPhase)} outer iteration(s).`,\n );\n await post();\n return fail(`Synthesis did not converge (missing count ${String(missing)}).`);\n }\n\n setRowTimed(\n \"synthesis_convergence\",\n \"waiting\",\n `Missing ${String(missing)} \u2014 waiting before retry\u2026`,\n delayMs,\n outerIter,\n );\n await post();\n\n try {\n await deps.sleep(delayMs);\n } catch {\n setRowTimed( \"synthesis_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n delayMs = computeNextBackoffDelay(delayMs, config.backoffMultiplier, config.maxDelayMs);\n /** Clear **waiting**; next iteration **resumes** on the same checkout (no new worktree). */\n setRowTimed(\"synthesis_convergence\", \"pending\", \"Next pass: resume parallel pool on same checkout\u2026\");\n resumeSynthesis = true;\n await post();\n }\n\n setRowTimed( \"synthesis_convergence\", \"succeeded\", \"No missing artefacts.\");\n await post();\n\n if (config.synthesisOnly) {\n return { ok: true, message: \"Synthesis-only analysis complete.\", totalElapsedMs: macroEnd() };\n }\n\n // --- Phase 2: reference coverage ---\n if (isAborted(signal)) {\n setRowTimed( \"reference_coverage\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n setRowTimed( \"reference_coverage\", \"running\");\n bumpPhaseRunCount(\"reference_coverage\");\n await post();\n const cov = await deps.runReferenceCoverage();\n if (!cov.ok) {\n setRowTimed( \"reference_coverage\", \"failed\", cov.message);\n await post();\n return fail(cov.message ?? \"Reference coverage failed.\");\n }\n setRowTimed( \"reference_coverage\", \"succeeded\", cov.message);\n await post();\n\n // --- Phase 3: zero-reference remediation convergence ---\n if (isAborted(signal)) {\n setRowTimed( \"zero_reference_remediation_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n /** When false, remediation backoff starts from initialDelayMs instead of carrying synthesis delay. */\n let remDelay = config.synthesisRemediationShareBackoff ? delayMs : config.initialDelayMs;\n let remIter = 0;\n\n while (true) {\n if (isAborted(signal)) {\n setRowTimed( \"zero_reference_remediation_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n\n setRowTimed(\"zero_reference_remediation_convergence\", \"running\");\n bumpPhaseRunCount(\"zero_reference_remediation_convergence\");\n await post();\n const rem = await deps.runRemediationPass();\n if (rem.cancelled || isAborted(signal)) {\n setRowTimed( \"zero_reference_remediation_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: rem.message ?? \"Remediation cancelled.\", totalElapsedMs: macroEnd() };\n }\n if (!rem.ok) {\n setRowTimed( \"zero_reference_remediation_convergence\", \"failed\", rem.message);\n await post();\n return fail(rem.message ?? \"Remediation failed.\");\n }\n if (rem.failures === 0) {\n break;\n }\n\n remIter += 1;\n if (config.maxOuterIterationsPerPhase > 0 && remIter >= config.maxOuterIterationsPerPhase) {\n setRowTimed(\n \"zero_reference_remediation_convergence\",\n \"failed\",\n `${String(rem.failures)} path(s) still failing after ${String(config.maxOuterIterationsPerPhase)} attempt(s).`,\n );\n await post();\n return fail(\"Zero-reference remediation did not converge.\");\n }\n\n setRowTimed(\n \"zero_reference_remediation_convergence\",\n \"waiting\",\n `${String(rem.failures)} failing \u2014 waiting before retry\u2026`,\n remDelay,\n remIter,\n );\n await post();\n try {\n await deps.sleep(remDelay);\n } catch {\n setRowTimed( \"zero_reference_remediation_convergence\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n remDelay = computeNextBackoffDelay(remDelay, config.backoffMultiplier, config.maxDelayMs);\n }\n\n setRowTimed( \"zero_reference_remediation_convergence\", \"succeeded\");\n await post();\n\n // --- Recompute reference coverage on disk after remediation (new citations may change expected synthesis work) ---\n if (isAborted(signal)) {\n setRowTimed( \"reference_coverage\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n setRowTimed( \"reference_coverage\", \"running\", \"Refreshing coverage after remediation\u2026\");\n bumpPhaseRunCount(\"reference_coverage\");\n await post();\n const covAfterRem = await deps.runReferenceCoverage();\n if (!covAfterRem.ok) {\n setRowTimed( \"reference_coverage\", \"failed\", covAfterRem.message);\n await post();\n return fail(covAfterRem.message ?? \"Reference coverage refresh after remediation failed.\");\n }\n setRowTimed( \"reference_coverage\", \"succeeded\", covAfterRem.message ?? \"Coverage refreshed post-remediation.\");\n await post();\n\n // --- R5: re-check missing after remediation (uses refreshed tree + coverage context) ---\n const missingAfter = await deps.getMissingArtefactCount();\n if (missingAfter > 0) {\n pingPong += 1;\n if (pingPong > config.maxMacroPingPongCycles) {\n setRowTimed( \"synthesis_convergence\", \"failed\", \"Unstable convergence (R5).\");\n await post();\n return fail(\n `Unstable convergence: missing artefacts returned (${String(missingAfter)}) after remediation \u2014 exceeded ${String(config.maxMacroPingPongCycles)} macro cycle(s).`,\n );\n }\n // Reset downstream phase rows for re-run (keep worktree + materialize rows \u2014 same checkout)\n setRowTimed( \"reference_coverage\", \"pending\");\n setRowTimed( \"zero_reference_remediation_convergence\", \"pending\");\n setRowTimed( \"reference_coverage_execution_report\", \"pending\");\n setRowTimed( \"assemble_application_context_index\", \"pending\");\n setRowTimed( \"backend_context_sync\", \"pending\");\n setRowTimed( \"synthesis_convergence\", \"pending\", `R5: ${String(missingAfter)} missing \u2014 re-entering synthesis (cycle ${String(pingPong)})`);\n await post();\n continue outer;\n }\n\n break outer;\n }\n\n // --- Phase 5: execution report ---\n if (isAborted(signal)) {\n setRowTimed( \"reference_coverage_execution_report\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n setRowTimed( \"reference_coverage_execution_report\", \"running\");\n bumpPhaseRunCount(\"reference_coverage_execution_report\");\n await post();\n const rep = await deps.runExecutionReport();\n if (rep.cancelled || isAborted(signal)) {\n setRowTimed( \"reference_coverage_execution_report\", \"cancelled\", rep.message);\n await post();\n return { ok: false, cancelled: true, message: rep.message ?? \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n if (!rep.ok) {\n setRowTimed( \"reference_coverage_execution_report\", \"failed\", rep.message);\n await post();\n return fail(rep.message ?? \"Execution report failed.\");\n }\n setRowTimed( \"reference_coverage_execution_report\", \"succeeded\", rep.message);\n await post();\n\n // --- Phase 6: index assembly ---\n if (isAborted(signal)) {\n setRowTimed( \"assemble_application_context_index\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n setRowTimed( \"assemble_application_context_index\", \"running\");\n bumpPhaseRunCount(\"assemble_application_context_index\");\n await post();\n const idx = await deps.runIndexAssembly();\n if (!idx.ok) {\n setRowTimed( \"assemble_application_context_index\", \"failed\", idx.message);\n await post();\n return fail(idx.message ?? \"Index assembly failed.\");\n }\n setRowTimed( \"assemble_application_context_index\", \"succeeded\", idx.message);\n await post();\n\n // --- Phase 7: backend sync ---\n if (isAborted(signal)) {\n setRowTimed( \"backend_context_sync\", \"cancelled\");\n await post();\n return { ok: false, cancelled: true, message: \"Macro stopped.\", totalElapsedMs: macroEnd() };\n }\n setRowTimed( \"backend_context_sync\", \"running\");\n bumpPhaseRunCount(\"backend_context_sync\");\n await post();\n const up = await deps.runBackendSync();\n if (!up.ok) {\n setRowTimed( \"backend_context_sync\", \"failed\", up.message);\n await post();\n return fail(up.message ?? \"Backend sync failed.\");\n }\n setRowTimed( \"backend_context_sync\", \"succeeded\", up.message);\n await post();\n\n return { ok: true, message: \"Analysis complete.\", totalElapsedMs: macroEnd() };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return fail(msg);\n }\n}\n", "/**\n * SRS-32: build {@link MacroOrchestrationDeps} without VS Code UI (CLI / tests).\n * Mirrors `SrsPanelProvider` macro wiring using filesystem paths and {@link AnalysisStorageContext}.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport type { AnalysisStorageContext } from \"../stores/workspaceStatePort\";\nimport { finishPipelineRun, startPipelineRun } from \"../stores/analysisPipelineStore\";\nimport { noteAgentsMaterialized, readAnalysisWorkspaceSnapshot, writeAnalysisWorkspaceSnapshot } from \"../stores/analysisWorkspaceStore\";\nimport { readArtefactRunSnapshot } from \"../stores/analysisArtefactRunStore\";\nimport {\n prepareContextArtefactWorktreeOnly,\n runContextArtefactPipelineDrainFromPreparedWorktree,\n type ContextArtefactPipelineOpenCodeOptions,\n} from \"./contextArtefactPipeline\";\nimport { materializeOpenCodeAgentsWithAce } from \"./materializeOpenCodeAgents\";\nimport { attachWorktreeHandle, type WorktreeHandle } from \"./worktreeManager\";\nimport { listMissingArtefacts } from \"./missingArtefacts\";\nimport { runMissingArtefactsRemediationPool } from \"./remediationArtefactPool\";\nimport { runCoverageReferenceValidation } from \"./coverageReferenceValidation\";\nimport { readNonReferencedFilesFromRepositoryRoot, runZeroReferenceRemediationPool } from \"./zeroReferenceRemediation\";\nimport { runReferenceCoverageExecutionReport } from \"./referenceCoverageExecutionReport\";\nimport { writeIndexApplicationContext } from \"../contextIndexAssembler\";\nimport { getEasyspecsProjectIdFromRepoConfig } from \"./contextSrsDiscoveryUpload\";\nimport { readEasyspecsConfig } from \"../config/easyspecsConfigFile\";\nimport { noteOpenCodeAgentLaunched } from \"../stores/analysisDiscoveriesStore\";\nimport type { MacroOrchestrationConfig, MacroOrchestrationDeps, MacroOrchestrationPostPayload } from \"./macroAnalysisOrchestrator\";\nimport { macroSleep } from \"./macroAnalysisOrchestrator\";\nimport {\n getAceAnalysisEnabledForCheckout,\n getAceOfflineLearnAfterSameSessionTrace,\n} from \"./aceAnalysisConfig\";\n\nexport type MacroHeadlessHostInput = {\n readonly storageContext: AnalysisStorageContext;\n readonly repoRoot: string;\n readonly agentsDirFs: string;\n readonly macroConfig: MacroOrchestrationConfig;\n readonly buildOpenCodeOptions: (analysisCheckoutRoot: string) => ContextArtefactPipelineOpenCodeOptions;\n readonly log: (line: string) => void;\n readonly signal: AbortSignal;\n /** When true, macro stops after synthesis convergence (SRS-32). */\n readonly synthesisOnly?: boolean;\n /** Skip backend upload phase (no auth / no mapping). */\n readonly skipBackendSync?: boolean;\n /** Custom upload; when omitted and **skipBackendSync**, phase returns ok with \"skipped\". */\n readonly runBackendSyncImpl?: () => Promise<{ ok: boolean; message?: string }>;\n};\n\nexport function buildMacroOrchestrationDepsHeadless(input: MacroHeadlessHostInput): MacroOrchestrationDeps {\n const { storageContext, repoRoot, agentsDirFs, buildOpenCodeOptions, log, signal, macroConfig } = input;\n let adHocWorktree: WorktreeHandle | undefined;\n let macroFinalize: (() => void) | undefined;\n let macroSourceBranch: string | undefined;\n\n const analysisRoot = (): string | undefined => adHocWorktree?.path;\n\n return {\n signal,\n config: { ...macroConfig, ...(input.synthesisOnly ? { synthesisOnly: true } : {}) },\n sleep: (ms) => macroSleep(ms, signal),\n post: (payload: MacroOrchestrationPostPayload) => {\n if (process.env.EASYSPECS_CLI_MACRO_DEBUG === \"1\") {\n log(`[macro] phases=${payload.phases.map((p) => `${p.key}:${p.status}`).join(\",\")} elapsed=${String(payload.totalElapsedMs)}ms`);\n }\n },\n runPrepareAnalysisWorktree: async (resume: boolean) => {\n if (resume) {\n if (adHocWorktree && fs.existsSync(path.join(adHocWorktree.path, \".git\"))) {\n return { ok: true };\n }\n const snap = readAnalysisWorkspaceSnapshot(storageContext);\n const wtPath = snap?.adHocWorktreePath?.trim();\n const repo = snap?.adHocRepositoryRoot?.trim() || repoRoot;\n if (wtPath && fs.existsSync(path.join(wtPath, \".git\"))) {\n adHocWorktree = attachWorktreeHandle(wtPath, repo);\n macroSourceBranch = snap?.adHocSourceBranchAtCreation;\n macroFinalize = (): void => {\n try {\n adHocWorktree?.remove();\n } catch {\n /* ignore */\n }\n };\n return { ok: true };\n }\n return { ok: false, error: \"No analysis checkout \u2014 cannot resume.\" };\n }\n if (adHocWorktree) {\n try {\n adHocWorktree.remove();\n } catch {\n /* ignore */\n }\n adHocWorktree = undefined;\n await writeAnalysisWorkspaceSnapshot(storageContext, undefined);\n }\n macroFinalize = undefined;\n macroSourceBranch = undefined;\n log(`[SRS-32] macro \u2014 create analysis worktree \u2014 ${new Date().toISOString()}`);\n const prep = await prepareContextArtefactWorktreeOnly(storageContext, repoRoot, log);\n if (!prep.ok) {\n prep.finalize?.();\n return { ok: false, error: prep.error };\n }\n adHocWorktree = prep.handle;\n macroFinalize = prep.finalize;\n macroSourceBranch = prep.sourceBranchAtCreation;\n return { ok: true };\n },\n runMaterializeOpenCodeAgents: async (resume: boolean) => {\n if (resume) {\n return { ok: true };\n }\n const h = adHocWorktree;\n if (!h) {\n return { ok: false, error: \"No analysis worktree.\" };\n }\n log(`[SRS-32] macro \u2014 materialize OpenCode agents \u2014 ${new Date().toISOString()}`);\n try {\n materializeOpenCodeAgentsWithAce(agentsDirFs, h.path, {\n enabled: getAceAnalysisEnabledForCheckout(h.path),\n diagnosticLog: log,\n });\n return { ok: true };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n macroFinalize?.();\n macroFinalize = undefined;\n macroSourceBranch = undefined;\n adHocWorktree = undefined;\n await writeAnalysisWorkspaceSnapshot(storageContext, undefined);\n return { ok: false, error: `Materialize agents failed: ${msg}` };\n }\n },\n runSynthesisPass: async (resume: boolean) => {\n const ar = analysisRoot();\n if (!ar) {\n return { ok: false, error: \"No analysis checkout.\" };\n }\n if (resume) {\n const ctxDir = path.join(ar, \".gluecharm\", \"context\");\n if (!fs.existsSync(ctxDir)) {\n return { ok: false, error: \"Missing .gluecharm/context in the analysis worktree.\" };\n }\n const snap = readArtefactRunSnapshot(storageContext);\n const rows = listMissingArtefacts(ctxDir, ar, snap);\n if (rows.length === 0) {\n return { ok: true };\n }\n log(`[SRS-32] macro \u2014 resume synthesis \u2014 ${rows.length} missing row(s)`);\n const wsSnap = readAnalysisWorkspaceSnapshot(storageContext);\n const oc = buildOpenCodeOptions(ar);\n await startPipelineRun(storageContext, repoRoot);\n const poolRes = await runMissingArtefactsRemediationPool({\n storageContext,\n repositoryRoot: repoRoot,\n worktreeRoot: ar,\n workspaceLabel: path.basename(ar),\n oc: {\n ...oc,\n aceEnabled: getAceAnalysisEnabledForCheckout(ar),\n offlineLearnAfterSameSessionTrace: getAceOfflineLearnAfterSameSessionTrace(ar),\n },\n log,\n abortSignal: signal,\n rows,\n sourceBranchAtWorktreeCreation: wsSnap?.adHocSourceBranchAtCreation ?? macroSourceBranch,\n });\n await finishPipelineRun(storageContext, !poolRes.cancelled);\n if (poolRes.cancelled) {\n return { ok: false, cancelled: true, error: \"Synthesis stopped.\" };\n }\n if (!poolRes.indexOk) {\n return { ok: false, error: poolRes.indexError ?? \"Index assembly failed after resume pool.\" };\n }\n return { ok: true };\n }\n const finalize = macroFinalize;\n const handle = adHocWorktree;\n const sourceBranch = macroSourceBranch;\n if (!finalize || !handle) {\n return { ok: false, error: \"No prepared worktree for synthesis drain.\" };\n }\n try {\n await startPipelineRun(storageContext, repoRoot);\n const folderName = path.basename(repoRoot);\n const oc = buildOpenCodeOptions(handle.path);\n const result = await runContextArtefactPipelineDrainFromPreparedWorktree(\n storageContext,\n repoRoot,\n folderName,\n handle,\n sourceBranch,\n {\n ...oc,\n aceEnabled: getAceAnalysisEnabledForCheckout(handle.path),\n offlineLearnAfterSameSessionTrace: getAceOfflineLearnAfterSameSessionTrace(handle.path),\n },\n { log, abortSignal: signal },\n finalize,\n );\n if (!result.ok) {\n await finishPipelineRun(storageContext, false);\n const cancelled = result.cancelled === true;\n if (cancelled && result.retainedWorktree) {\n adHocWorktree = result.retainedWorktree;\n await writeAnalysisWorkspaceSnapshot(storageContext, {\n adHocWorktreePath: result.retainedWorktree.path,\n adHocRepositoryRoot: result.retainedWorktree.repoRoot,\n adHocCreatedAtIso: new Date().toISOString(),\n ...(macroSourceBranch ? { adHocSourceBranchAtCreation: macroSourceBranch } : {}),\n });\n } else if (!cancelled) {\n result.finalize?.();\n adHocWorktree = undefined;\n macroFinalize = undefined;\n macroSourceBranch = undefined;\n await writeAnalysisWorkspaceSnapshot(storageContext, undefined);\n }\n return cancelled\n ? { ok: false, cancelled: true, error: result.error ?? \"Stopped.\" }\n : { ok: false, error: result.error ?? \"Synthesis failed.\" };\n }\n const handleRes = result.handle;\n adHocWorktree = handleRes;\n await writeAnalysisWorkspaceSnapshot(storageContext, {\n adHocWorktreePath: handleRes.path,\n adHocRepositoryRoot: handleRes.repoRoot,\n adHocCreatedAtIso: new Date().toISOString(),\n ...(macroSourceBranch ? { adHocSourceBranchAtCreation: macroSourceBranch } : {}),\n });\n await noteAgentsMaterialized(storageContext);\n await finishPipelineRun(storageContext, true);\n return { ok: true };\n } catch (e) {\n await finishPipelineRun(storageContext, false);\n return { ok: false, error: e instanceof Error ? e.message : String(e) };\n }\n },\n getMissingArtefactCount: async () => {\n const ar = analysisRoot();\n if (!ar) {\n return 0;\n }\n const ctxDir = path.join(ar, \".gluecharm\", \"context\");\n const snap = readArtefactRunSnapshot(storageContext);\n return listMissingArtefacts(ctxDir, ar, snap).length;\n },\n runReferenceCoverage: async () => {\n const ar = analysisRoot();\n if (!ar) {\n return { ok: false, message: \"No analysis worktree.\" };\n }\n const contextDir = path.join(ar, \".gluecharm\", \"context\");\n if (!fs.existsSync(contextDir)) {\n return { ok: false, message: \"Missing .gluecharm/context.\" };\n }\n log(`[SRS-32] macro \u2014 reference coverage (worktree) \u2014 ${ar}`);\n const res = runCoverageReferenceValidation({\n repositoryRootAbs: ar,\n contextDirAbs: contextDir,\n write: true,\n });\n if (!res.ok) {\n return { ok: false, message: res.error ?? \"Reference coverage failed.\" };\n }\n return { ok: true, message: \"Reference coverage updated.\" };\n },\n runRemediationPass: async () => {\n const ar = analysisRoot();\n if (!ar) {\n return { ok: false, failures: 0, message: \"No analysis checkout.\" };\n }\n const cov = readNonReferencedFilesFromRepositoryRoot(ar);\n if (!cov.ok) {\n return { ok: false, failures: 0, message: cov.error };\n }\n const paths = [...cov.paths];\n if (paths.length === 0) {\n return { ok: true, failures: 0, message: \"No zero-reference paths.\" };\n }\n const oc = buildOpenCodeOptions(ar);\n const poolRes = await runZeroReferenceRemediationPool({\n workspaceRootAbs: repoRoot,\n coverageRepositoryRootAbs: ar,\n worktreeRoot: ar,\n paths,\n maxConcurrent: oc.maxConcurrentOpenCodeAgents,\n executable: oc.executable,\n argvTemplate: oc.argvTemplate,\n timeoutMs: oc.timeoutMs,\n abortSignal: signal,\n diagnosticLog: log,\n onAgentLaunched: () => noteOpenCodeAgentLaunched(),\n });\n if (poolRes.cancelled) {\n return { ok: false, cancelled: true, failures: poolRes.failures, message: \"Remediation stopped.\" };\n }\n return { ok: true, failures: poolRes.failures };\n },\n runExecutionReport: async () => {\n const ar = analysisRoot();\n if (!ar) {\n return { ok: false, message: \"No analysis worktree.\" };\n }\n log(`[SRS-32] macro \u2014 reference coverage execution report \u2014 ${new Date().toISOString()}`);\n const res = await runReferenceCoverageExecutionReport({\n repositoryRootAbs: ar,\n abortSignal: signal,\n diagnosticLog: log,\n });\n if (res.ok) {\n return { ok: true, message: `Report: ${path.basename(res.outputAbsolutePath)}` };\n }\n if (res.cancelled) {\n return { ok: false, cancelled: true, message: \"Report generation stopped.\" };\n }\n return { ok: false, message: res.error ?? \"Report failed.\" };\n },\n runIndexAssembly: async () => {\n const snap = readAnalysisWorkspaceSnapshot(storageContext);\n if (!snap?.adHocWorktreePath) {\n return { ok: false, message: \"No analysis worktree for index assembly.\" };\n }\n const contextDir = path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\");\n if (!fs.existsSync(contextDir)) {\n return { ok: false, message: \"Missing .gluecharm/context.\" };\n }\n try {\n writeIndexApplicationContext(contextDir, undefined, {\n sourceBranchAtWorktreeCreation: snap.adHocSourceBranchAtCreation,\n });\n log(`[SRS-32] macro \u2014 index written \u2014 ${contextDir}`);\n return { ok: true, message: \"Index generated and validated.\" };\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n },\n runBackendSync: async () => {\n if (input.skipBackendSync) {\n return { ok: true, message: \"Backend sync skipped (CLI).\" };\n }\n if (input.runBackendSyncImpl) {\n return input.runBackendSyncImpl();\n }\n const snap = readAnalysisWorkspaceSnapshot(storageContext);\n const wtContextDir =\n snap?.adHocWorktreePath && fs.existsSync(path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\"))\n ? path.join(snap.adHocWorktreePath, \".gluecharm\", \"context\")\n : \"\";\n if (!wtContextDir) {\n return { ok: false, message: \"No worktree context to upload.\" };\n }\n let applicationId: string | undefined;\n try {\n applicationId = getEasyspecsProjectIdFromRepoConfig(readEasyspecsConfig(repoRoot))?.trim();\n } catch {\n applicationId = undefined;\n }\n if (!applicationId) {\n return { ok: false, message: \"Missing easyspecs.easyspecsProjectId in .easyspecs/config.json.\" };\n }\n return { ok: false, message: \"Upload from CLI requires `easyspecs upload context` (not wired in macro headless default).\" };\n },\n };\n}\n", "/**\n * Tracks progress of a full context-analysis pipeline run (which phases completed).\n * Uses `workspaceState` per opened folder; safe to extend when orchestration splits into real OpenCode jobs.\n */\n\nimport type { AnalysisStorageContext } from \"./workspaceStatePort\";\nimport type { AnalysisStatusKey } from \"../analysis/analysisStatusCatalog\";\n\nconst STORAGE_KEY = \"easyspecs.analysis.pipelineRun.v1\";\n\nexport type AnalysisPhaseCompletion = \"pending\" | \"running\" | \"done\" | \"failed\" | \"skipped\";\n\nexport interface AnalysisPipelineRunSnapshot {\n readonly runId: string;\n readonly repositoryRoot: string;\n readonly startedAtIso: string;\n finishedAtIso?: string;\n /** High-level outcome once the run ends. */\n overallStatus: \"idle\" | \"running\" | \"complete\" | \"failed\";\n /** Per orchestrator phase key (see {@link AnalysisStatusKey}). */\n phases: Partial<Record<AnalysisStatusKey, AnalysisPhaseCompletion>>;\n}\n\nfunction randomRunId(): string {\n return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;\n}\n\nexport function readPipelineRunSnapshot(context: AnalysisStorageContext): AnalysisPipelineRunSnapshot | undefined {\n const raw = context.workspaceState.get<unknown>(STORAGE_KEY);\n if (!raw || typeof raw !== \"object\") {\n return undefined;\n }\n const o = raw as Record<string, unknown>;\n if (\n typeof o.runId !== \"string\" ||\n typeof o.repositoryRoot !== \"string\" ||\n typeof o.startedAtIso !== \"string\" ||\n (o.overallStatus !== \"idle\" &&\n o.overallStatus !== \"running\" &&\n o.overallStatus !== \"complete\" &&\n o.overallStatus !== \"failed\")\n ) {\n return undefined;\n }\n const phases = o.phases;\n const phaseMap: Partial<Record<AnalysisStatusKey, AnalysisPhaseCompletion>> =\n phases && typeof phases === \"object\" ? { ...(phases as Partial<Record<AnalysisStatusKey, AnalysisPhaseCompletion>>) } : {};\n const fin = o.finishedAtIso;\n return {\n runId: o.runId,\n repositoryRoot: o.repositoryRoot,\n startedAtIso: o.startedAtIso,\n ...(typeof fin === \"string\" ? { finishedAtIso: fin } : {}),\n overallStatus: o.overallStatus,\n phases: phaseMap,\n };\n}\n\nexport function writePipelineRunSnapshot(\n context: AnalysisStorageContext,\n snapshot: AnalysisPipelineRunSnapshot | undefined,\n): Thenable<void> {\n return context.workspaceState.update(STORAGE_KEY, snapshot);\n}\n\n/** Start a new run; replaces any previous snapshot for this workspace. */\nexport async function startPipelineRun(\n context: AnalysisStorageContext,\n repositoryRoot: string,\n): Promise<AnalysisPipelineRunSnapshot> {\n const snap: AnalysisPipelineRunSnapshot = {\n runId: randomRunId(),\n repositoryRoot,\n startedAtIso: new Date().toISOString(),\n overallStatus: \"running\",\n phases: {},\n };\n await writePipelineRunSnapshot(context, snap);\n return snap;\n}\n\n/** Mark the previous phase done (if any) and the current key running. */\nexport async function recordPipelinePhaseKey(\n context: AnalysisStorageContext,\n key: AnalysisStatusKey,\n previousKey: AnalysisStatusKey | undefined,\n): Promise<void> {\n const snap = readPipelineRunSnapshot(context);\n if (!snap || snap.overallStatus !== \"running\") {\n return;\n }\n const phases = { ...snap.phases };\n if (previousKey) {\n phases[previousKey] = \"done\";\n }\n phases[key] = \"running\";\n await writePipelineRunSnapshot(context, { ...snap, phases });\n}\n\n/** Mark every phase still `running` as done or failed; seal run metadata. */\nexport async function finishPipelineRun(context: AnalysisStorageContext, ok: boolean): Promise<void> {\n const snap = readPipelineRunSnapshot(context);\n if (!snap) {\n return;\n }\n const phases = { ...snap.phases };\n for (const [k, v] of Object.entries(phases)) {\n if (v === \"running\") {\n phases[k as AnalysisStatusKey] = ok ? \"done\" : \"failed\";\n }\n }\n await writePipelineRunSnapshot(context, {\n ...snap,\n phases,\n finishedAtIso: new Date().toISOString(),\n overallStatus: ok ? \"complete\" : \"failed\",\n });\n}\n\nexport async function setPhaseCompletion(\n context: AnalysisStorageContext,\n key: AnalysisStatusKey,\n completion: AnalysisPhaseCompletion,\n): Promise<void> {\n const snap = readPipelineRunSnapshot(context);\n if (!snap) {\n return;\n }\n await writePipelineRunSnapshot(context, {\n ...snap,\n phases: { ...snap.phases, [key]: completion },\n });\n}\n\nexport async function clearPipelineRun(context: AnalysisStorageContext): Promise<void> {\n await writePipelineRunSnapshot(context, undefined);\n}\n", "/**\n * Persists EasySpecs Analysis metadata per VS Code workspace (`workspaceState`):\n * **`adHocWorktreePath`** (temp checkout \u2014 target for `.opencode/`), **`adHocRepositoryRoot`**, timestamps.\n */\n\nimport type { AnalysisStorageContext } from \"./workspaceStatePort\";\n\nconst STORAGE_KEY = \"easyspecs.analysis.workspaceState.v1\";\n\nexport interface AnalysisWorkspaceSnapshot {\n /** Absolute path to detached analysis worktree checkout. */\n readonly adHocWorktreePath: string;\n /** Repository `git worktree add` was run from. */\n readonly adHocRepositoryRoot: string;\n readonly adHocCreatedAtIso: string;\n /**\n * Branch short name in the primary repo when the worktree was created (`HEAD` before `worktree add --detach`).\n * Omitted when the primary repo was in detached `HEAD` at creation.\n */\n readonly adHocSourceBranchAtCreation?: string;\n /** Set when **Materialize agents** succeeds for this worktree. */\n readonly lastAgentsMaterializedAtIso?: string;\n}\n\nexport function readAnalysisWorkspaceSnapshot(context: AnalysisStorageContext): AnalysisWorkspaceSnapshot | undefined {\n const raw = context.workspaceState.get<unknown>(STORAGE_KEY);\n if (!raw || typeof raw !== \"object\") {\n return undefined;\n }\n const o = raw as Record<string, unknown>;\n const p = o.adHocWorktreePath;\n const r = o.adHocRepositoryRoot;\n const c = o.adHocCreatedAtIso;\n if (typeof p !== \"string\" || typeof r !== \"string\" || typeof c !== \"string\") {\n return undefined;\n }\n const m = o.lastAgentsMaterializedAtIso;\n const sb = o.adHocSourceBranchAtCreation;\n return {\n adHocWorktreePath: p,\n adHocRepositoryRoot: r,\n adHocCreatedAtIso: c,\n ...(typeof sb === \"string\" && sb.length > 0 ? { adHocSourceBranchAtCreation: sb } : {}),\n ...(typeof m === \"string\" ? { lastAgentsMaterializedAtIso: m } : {}),\n };\n}\n\nexport function writeAnalysisWorkspaceSnapshot(\n context: AnalysisStorageContext,\n snapshot: AnalysisWorkspaceSnapshot | undefined,\n): Thenable<void> {\n return context.workspaceState.update(STORAGE_KEY, snapshot);\n}\n\nexport async function noteAgentsMaterialized(context: AnalysisStorageContext): Promise<void> {\n const cur = readAnalysisWorkspaceSnapshot(context);\n if (!cur) {\n return;\n }\n await writeAnalysisWorkspaceSnapshot(context, {\n ...cur,\n lastAgentsMaterializedAtIso: new Date().toISOString(),\n });\n}\n", "/**\n * SRS-17: list expected context artefacts that are still missing (skipped pipeline items and/or empty files on disk).\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport type { ContextSynthesisTestStep } from \"./contextSynthesis\";\nimport { synthesisStepLabel, type SynthesisStepLabelContext } from \"./contextSynthesis\";\nimport { discoverDetailMarkdownGroups } from \"./analysisDetailMarkdownDiscovery\";\nimport {\n coordinationListSchemaBasenameForOutputBasename,\n validateCoordinationListJson,\n} from \"./coordinationListJsonValidate\";\nimport { validateMarkdownEvidenceIndexFile } from \"./markdownEvidenceIndexValidate\";\nimport {\n discoverDynamicAnalysisTestSteps,\n nonEmptyContextFile,\n type AnalysisDynamicTestStepsPayload,\n} from \"./analysisDynamicTestSteps\";\nimport type {\n AnalysisArtefactRunSnapshot,\n StoredArtefactWorkItem,\n StoredCoordPayload,\n} from \"../stores/analysisArtefactRunStore\";\nimport { cloneArtefactWorkItem } from \"../stores/analysisArtefactRunStore\";\n\nexport type MissingArtefactSource = \"pipelineSkipped\" | \"expectedFileMissing\";\n\n/** Full row (extension host); webview receives {@link MissingArtefactUiRow} without runner payload. */\nexport interface MissingArtefactListRow {\n /** Stable key within the current context dir (usually output basename). */\n readonly key: string;\n readonly title: string;\n /** Basename under `.gluecharm/context/`. */\n readonly relativePath: string;\n readonly lastError?: string;\n readonly source: MissingArtefactSource;\n /** When set, a successful remediation updates durable SRS-9 snapshot. */\n readonly workItemId?: string;\n /** Item passed to {@link runArtefactWorkItemOpenCode} (rebuilt on each remediate from this row). */\n readonly runnerItem: StoredArtefactWorkItem;\n}\n\n/** Programmatic disk + validation state for the expected output path (SRS-17 UI). */\nexport type MissingArtefactFileStatusKind = \"absent\" | \"empty\" | \"invalid\" | \"valid\";\n\nexport interface MissingArtefactFileStatus {\n readonly kind: MissingArtefactFileStatusKind;\n /** Tooltip / aria description (truncated where needed). */\n readonly detail?: string;\n}\n\n/** Non-empty output file on disk (same idea as `nonEmptyContextFile`). */\nexport type MissingArtefactYesNo = \"yes\" | \"no\";\n\n/** Schema / evidence result; **na** when there is no non-empty file to validate. */\nexport type MissingArtefactValidationYesNo = \"yes\" | \"no\" | \"na\";\n\nfunction fileAndValidationFromKind(kind: MissingArtefactFileStatusKind): {\n filePresentYesNo: MissingArtefactYesNo;\n validationYesNo: MissingArtefactValidationYesNo;\n} {\n if (kind === \"valid\") {\n return { filePresentYesNo: \"yes\", validationYesNo: \"yes\" };\n }\n if (kind === \"invalid\") {\n return { filePresentYesNo: \"yes\", validationYesNo: \"no\" };\n }\n return { filePresentYesNo: \"no\", validationYesNo: \"na\" };\n}\n\n/** Subset sent to the webview (`data-key` on Regenerate). */\nexport type MissingArtefactUiRow = Pick<\n MissingArtefactListRow,\n \"key\" | \"title\" | \"relativePath\" | \"lastError\" | \"source\" | \"workItemId\"\n> & {\n readonly fileStatus: MissingArtefactFileStatusKind;\n readonly fileStatusDetail?: string;\n readonly filePresentYesNo: MissingArtefactYesNo;\n readonly validationYesNo: MissingArtefactValidationYesNo;\n};\n\n/**\n * Classifies `.gluecharm/context/{relativePath}` for a missing-artefact row: missing, empty, fails validation, or valid.\n * Coordination JSON uses bundled list schemas under `{worktreeRoot}/.opencode/schemas/context-lists/` when present.\n */\nexport function classifyMissingArtefactFileStatus(\n row: MissingArtefactListRow,\n contextDir: string,\n worktreeRoot: string,\n): MissingArtefactFileStatus {\n const abs = path.join(contextDir, row.relativePath);\n try {\n const st = fs.statSync(abs);\n if (!st.isFile()) {\n return { kind: \"absent\", detail: \"Path exists but is not a regular file.\" };\n }\n if (st.size === 0) {\n return { kind: \"empty\", detail: \"File exists with 0 bytes.\" };\n }\n } catch {\n return { kind: \"absent\", detail: \"File not found under .gluecharm/context/.\" };\n }\n\n const runner = row.runnerItem;\n if (runner.kind === \"markdown\") {\n const r = validateMarkdownEvidenceIndexFile(abs);\n if (r.ok) {\n return {\n kind: \"valid\",\n detail: \"Markdown passes SRS-16 evidence index (or waiver) checks.\",\n };\n }\n if (r.reason === \"read\") {\n return { kind: \"invalid\", detail: r.message.slice(0, 280) };\n }\n if (r.reason === \"forbidden_evidence_reference\") {\n return { kind: \"invalid\", detail: r.message.slice(0, 280) };\n }\n return {\n kind: \"invalid\",\n detail: \"## Evidence index missing, empty, or needs Status: hallucination? waiver (SRS-16).\",\n };\n }\n\n const schemaBn = coordinationListSchemaBasenameForOutputBasename(row.relativePath);\n if (!schemaBn) {\n return {\n kind: \"invalid\",\n detail: \"Unknown coordination list basename \u2014 no JSON Schema mapping.\",\n };\n }\n const schemaAbs = path.join(worktreeRoot, \".opencode\", \"schemas\", \"context-lists\", schemaBn);\n if (!fs.existsSync(schemaAbs)) {\n return {\n kind: \"invalid\",\n detail: `Schema not found (${schemaBn}). Run **Materialize agents** on this checkout.`,\n };\n }\n const v = validateCoordinationListJson(abs, schemaAbs);\n if (v.ok) {\n return { kind: \"valid\", detail: \"JSON parses and matches the coordination list schema.\" };\n }\n const f = v.failure;\n const snippet =\n f.kind === \"schema\" ? f.errorsText.slice(0, 280) : f.message.slice(0, 280);\n return { kind: \"invalid\", detail: snippet + (snippet.length >= 280 ? \"\u2026\" : \"\") };\n}\n\n/**\n * Same classification as {@link classifyMissingArtefactFileStatus} for a persisted work item (SRS-9 snapshot).\n * Used to reconcile `skipped` parents when outputs are valid on disk (parallel remediation pool).\n */\nexport function classifyWorkItemOutputOnDisk(\n item: StoredArtefactWorkItem,\n contextDir: string,\n worktreeRoot: string,\n): MissingArtefactFileStatusKind {\n const bn =\n item.kind === \"markdown\"\n ? item.payload.outputBasename\n : expectedBasenameForCoordPayload(item.payload);\n if (!bn) {\n return \"absent\";\n }\n const row: MissingArtefactListRow = {\n key: bn,\n title: \"\",\n relativePath: bn,\n source: \"expectedFileMissing\",\n runnerItem: item,\n };\n return classifyMissingArtefactFileStatus(row, contextDir, worktreeRoot).kind;\n}\n\n/** Same `snapOk` rule as {@link listMissingArtefacts} (path + finished run). */\nexport function isArtefactSnapshotForWorktree(\n snapshot: AnalysisArtefactRunSnapshot | undefined,\n worktreeRoot: string,\n): boolean {\n return !!(\n snapshot &&\n snapshot.overallStatus !== \"running\" &&\n snapshot.overallStatus !== \"idle\" &&\n path.resolve(snapshot.analysisRoot) === path.resolve(worktreeRoot)\n );\n}\n\nexport function expectedBasenameForCoordPayload(p: StoredCoordPayload): string | null {\n const { step, listTarget } = p;\n switch (step) {\n case \"docsProject\":\n return \"project.md\";\n case \"architecture\":\n return \"architecture.md\";\n case \"listFeatures\":\n return \"features-list.json\";\n case \"reviewFeaturesList\":\n return \"features-list.json\";\n case \"listRepoSurface\":\n return \"repo-surface-scan.json\";\n case \"listExperiences\":\n return \"experiences-list.json\";\n case \"reviewExperiencesList\":\n return \"experiences-list.json\";\n case \"listServices\":\n return \"services-list.json\";\n case \"reviewServicesList\":\n return \"services-list.json\";\n case \"listDataModel\":\n return \"data-model-list.json\";\n case \"reviewDataModelList\":\n return \"data-model-list.json\";\n case \"listTechStack\":\n return \"tech-stack-list.json\";\n case \"reviewTechStackList\":\n return \"tech-stack-list.json\";\n case \"listUseCases\": {\n const fe = listTarget?.featureCode?.trim();\n return fe ? `${fe}-use-cases-list.json` : null;\n }\n case \"listScenarios\": {\n const fe = listTarget?.featureCode?.trim();\n const uc = listTarget?.useCaseCode?.trim();\n return fe && uc ? `${fe}_${uc}-scenarios-list.json` : null;\n }\n case \"reviewUseCasesList\": {\n const fe = listTarget?.featureCode?.trim();\n return fe ? `${fe}-use-cases-list.json` : null;\n }\n case \"reviewScenariosList\": {\n const fe = listTarget?.featureCode?.trim();\n const uc = listTarget?.useCaseCode?.trim();\n return fe && uc ? `${fe}_${uc}-scenarios-list.json` : null;\n }\n case \"listEntityFields\": {\n const dm = listTarget?.entityCode?.trim();\n return dm ? `${dm}-fields-list.json` : null;\n }\n case \"reviewEntityFieldsList\": {\n const dm = listTarget?.entityCode?.trim();\n return dm ? `${dm}-fields-list.json` : null;\n }\n default:\n return null;\n }\n}\n\nfunction labelContextForCoordPayload(p: StoredCoordPayload): SynthesisStepLabelContext | undefined {\n const lt = p.listTarget;\n if (!lt) {\n return undefined;\n }\n return {\n ...(lt.featureCode ? { featureCode: lt.featureCode } : {}),\n ...(lt.useCaseCode ? { useCaseCode: lt.useCaseCode } : {}),\n ...(lt.entityCode ? { entityCode: lt.entityCode } : {}),\n };\n}\n\nfunction contextPathForWorkItem(item: StoredArtefactWorkItem, contextDir: string): string | null {\n if (item.kind === \"markdown\") {\n return path.join(contextDir, item.payload.outputBasename);\n }\n const bn = expectedBasenameForCoordPayload(item.payload);\n return bn ? path.join(contextDir, bn) : null;\n}\n\nfunction syntheticRunnerId(key: string): string {\n return `remediation:${key}`;\n}\n\nfunction rowFromSkippedItem(item: StoredArtefactWorkItem, contextDir: string): MissingArtefactListRow | null {\n if (item.status !== \"skipped\") {\n return null;\n }\n const abs = contextPathForWorkItem(item, contextDir);\n const rel = abs ? path.basename(abs) : item.kind === \"markdown\" ? item.payload.outputBasename : item.id;\n if (abs && nonEmptyContextFile(abs)) {\n return null;\n }\n const runner = cloneArtefactWorkItem(item);\n runner.status = \"pending\";\n runner.executionAttempts = 0;\n runner.lastError = undefined;\n\n let title: string;\n if (item.kind === \"coord\") {\n const ctx = labelContextForCoordPayload(item.payload);\n title = synthesisStepLabel(item.payload.step, ctx);\n } else {\n title = `${item.payload.displayName}: ${item.payload.outputBasename}`;\n }\n\n return {\n key: rel,\n title,\n relativePath: item.kind === \"markdown\" ? item.payload.outputBasename : rel,\n lastError: item.lastError,\n source: \"pipelineSkipped\",\n workItemId: item.id,\n runnerItem: runner,\n };\n}\n\nfunction addRow(map: Map<string, MissingArtefactListRow>, row: MissingArtefactListRow): void {\n const prev = map.get(row.key);\n if (!prev) {\n map.set(row.key, row);\n return;\n }\n if (prev.source !== \"pipelineSkipped\" && row.source === \"pipelineSkipped\") {\n map.set(row.key, { ...row, lastError: row.lastError ?? prev.lastError });\n return;\n }\n if (prev.source === \"pipelineSkipped\") {\n return;\n }\n map.set(row.key, row);\n}\n\nfunction rowsFromDynamicPayload(contextDir: string, p: AnalysisDynamicTestStepsPayload): MissingArtefactListRow[] {\n const out: MissingArtefactListRow[] = [];\n\n const pushCoord = (step: ContextSynthesisTestStep, key: string, rel: string, title: string, listTarget?: StoredCoordPayload[\"listTarget\"]): void => {\n const payload: StoredCoordPayload = { step, ...(listTarget ? { listTarget } : {}) };\n const runner: StoredArtefactWorkItem = {\n id: syntheticRunnerId(key),\n kind: \"coord\",\n parentIds: [],\n status: \"pending\",\n executionAttempts: 0,\n payload,\n };\n out.push({\n key,\n title,\n relativePath: rel,\n source: \"expectedFileMissing\",\n runnerItem: runner,\n });\n };\n\n for (const st of p.staticOutputs) {\n if (!st.exists) {\n const bn = st.basename;\n const stepMap: Record<string, ContextSynthesisTestStep> = {\n \"project.md\": \"docsProject\",\n \"architecture.md\": \"architecture\",\n \"features-list.json\": \"listFeatures\",\n \"repo-surface-scan.json\": \"listRepoSurface\",\n \"experiences-list.json\": \"listExperiences\",\n \"services-list.json\": \"listServices\",\n \"data-model-list.json\": \"listDataModel\",\n \"tech-stack-list.json\": \"listTechStack\",\n };\n const step = stepMap[bn];\n if (step) {\n pushCoord(step, bn, bn, synthesisStepLabel(step));\n }\n }\n }\n\n for (const r of p.entityFieldsRuns) {\n const rel = `${r.entityCode}-fields-list.json`;\n if (!r.fieldsListExists) {\n pushCoord(\"listEntityFields\", rel, rel, synthesisStepLabel(\"listEntityFields\", { entityCode: r.entityCode }), {\n entityCode: r.entityCode,\n });\n }\n }\n\n for (const r of p.useCaseRuns) {\n const rel = `${r.featureCode}-use-cases-list.json`;\n if (!r.useCasesListExists) {\n pushCoord(\"listUseCases\", rel, rel, synthesisStepLabel(\"listUseCases\", { featureCode: r.featureCode }), {\n featureCode: r.featureCode,\n });\n }\n }\n\n for (const r of p.scenarioRuns) {\n const rel = `${r.featureCode}_${r.useCaseCode}-scenarios-list.json`;\n if (!r.scenariosListExists) {\n pushCoord(\n \"listScenarios\",\n rel,\n rel,\n synthesisStepLabel(\"listScenarios\", { featureCode: r.featureCode, useCaseCode: r.useCaseCode }),\n { featureCode: r.featureCode, useCaseCode: r.useCaseCode },\n );\n }\n }\n\n return out;\n}\n\n/**\n * Lists missing artefacts for the Analysis worktree: SRS-9 **skipped** items (when snapshot matches this root)\n * plus expected outputs from coordination lists that are still empty on disk (same rules as the OpenCode test tree).\n */\nexport function listMissingArtefacts(\n contextDir: string,\n worktreeRoot: string,\n snapshot: AnalysisArtefactRunSnapshot | undefined,\n): MissingArtefactListRow[] {\n const map = new Map<string, MissingArtefactListRow>();\n\n const snapOk = isArtefactSnapshotForWorktree(snapshot, worktreeRoot);\n\n if (snapOk && snapshot) {\n for (const item of Object.values(snapshot.items)) {\n const row = rowFromSkippedItem(item, contextDir);\n if (row) {\n addRow(map, row);\n }\n }\n }\n\n if (!fs.existsSync(contextDir)) {\n return [...map.values()].sort((a, b) => a.key.localeCompare(b.key));\n }\n\n const dynamic = discoverDynamicAnalysisTestSteps(contextDir);\n for (const row of rowsFromDynamicPayload(contextDir, dynamic)) {\n addRow(map, row);\n }\n\n for (const g of discoverDetailMarkdownGroups(contextDir)) {\n for (const t of g.targets) {\n if (!t.exists) {\n addRow(map, {\n key: t.outputBasename,\n title: `${t.displayName}: ${t.outputBasename}`,\n relativePath: t.outputBasename,\n source: \"expectedFileMissing\",\n runnerItem: {\n id: syntheticRunnerId(t.outputBasename),\n kind: \"markdown\",\n parentIds: [],\n status: \"pending\",\n executionAttempts: 0,\n payload: {\n openCodeAgentStem: t.openCodeAgentStem,\n outputBasename: t.outputBasename,\n agentId: t.agentId,\n displayName: t.displayName,\n taskDescription: t.taskDescription,\n },\n },\n });\n }\n }\n }\n\n return [...map.values()].sort((a, b) => a.key.localeCompare(b.key));\n}\n\n/** Webview rows including {@link classifyMissingArtefactFileStatus} for each path. */\nexport function toMissingArtefactUiRows(\n rows: MissingArtefactListRow[],\n contextDir: string,\n worktreeRoot: string,\n): MissingArtefactUiRow[] {\n return rows.map((r) => {\n const st = classifyMissingArtefactFileStatus(r, contextDir, worktreeRoot);\n const yn = fileAndValidationFromKind(st.kind);\n return {\n key: r.key,\n title: r.title,\n relativePath: r.relativePath,\n ...(r.lastError !== undefined ? { lastError: r.lastError } : {}),\n source: r.source,\n ...(r.workItemId !== undefined ? { workItemId: r.workItemId } : {}),\n fileStatus: st.kind,\n ...(st.detail !== undefined ? { fileStatusDetail: st.detail } : {}),\n filePresentYesNo: yn.filePresentYesNo,\n validationYesNo: yn.validationYesNo,\n };\n });\n}\n", "/**\n * SRS-8 \u00A74.3\u2013\u00A74.5: discover per-node detail markdown targets from coordination list JSON\n * under `.gluecharm/context/` for Analysis OpenCode runs.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport {\n discoverExperienceTreeRows,\n discoverServiceTreeRows,\n discoverTechStackToolRows,\n nonEmptyContextFile,\n} from \"./analysisDynamicTestSteps\";\n\nconst SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\nconst FE = /^FE-\\d+$/;\nconst UC = /^UC-\\d+$/;\nconst SC = /^SC-\\d+$/;\nconst XP = /^XP-\\d+$/;\nconst BH = /^BH-\\d+$/;\nconst DM = /^DM-\\d+$/;\nconst FD = /^FD-\\d+$/;\n\nexport const MARKDOWN_DETAIL_OPEN_CODE_STEMS = [\n \"agent-md-feature-detail\",\n \"agent-md-use-case-detail\",\n \"agent-md-scenario-detail\",\n \"agent-md-view-detail\",\n \"agent-md-interaction-detail\",\n \"agent-md-service-detail\",\n \"agent-md-method-detail\",\n \"agent-md-entity-detail\",\n \"agent-md-field-detail\",\n \"agent-md-tool-detail\",\n] as const;\n\nexport type MarkdownDetailOpenCodeStem = (typeof MARKDOWN_DETAIL_OPEN_CODE_STEMS)[number];\n\nconst STEM_TO_AGENT: Record<MarkdownDetailOpenCodeStem, { agentId: string; displayName: string }> = {\n \"agent-md-feature-detail\": { agentId: \"ctx-md-feature-detail\", displayName: \"Feature detail\" },\n \"agent-md-use-case-detail\": { agentId: \"ctx-md-use-case-detail\", displayName: \"Use case detail\" },\n \"agent-md-scenario-detail\": { agentId: \"ctx-md-scenario-detail\", displayName: \"Scenario detail\" },\n \"agent-md-view-detail\": { agentId: \"ctx-md-view-detail\", displayName: \"View detail\" },\n \"agent-md-interaction-detail\": { agentId: \"ctx-md-interaction-detail\", displayName: \"Interaction detail\" },\n \"agent-md-service-detail\": { agentId: \"ctx-md-service-detail\", displayName: \"Service detail\" },\n \"agent-md-method-detail\": { agentId: \"ctx-md-method-detail\", displayName: \"Method detail\" },\n \"agent-md-entity-detail\": { agentId: \"ctx-md-entity-detail\", displayName: \"Entity detail\" },\n \"agent-md-field-detail\": { agentId: \"ctx-md-field-detail\", displayName: \"Field detail\" },\n \"agent-md-tool-detail\": { agentId: \"ctx-md-tool-detail\", displayName: \"Tool detail\" },\n};\n\nexport function isMarkdownDetailOpenCodeStem(s: string): s is MarkdownDetailOpenCodeStem {\n return (MARKDOWN_DETAIL_OPEN_CODE_STEMS as readonly string[]).includes(s);\n}\n\nexport interface DetailMarkdownTarget {\n openCodeAgentStem: MarkdownDetailOpenCodeStem;\n agentId: string;\n displayName: string;\n outputBasename: string;\n taskDescription: string;\n exists: boolean;\n}\n\nexport interface DetailMarkdownGroup {\n id: string;\n label: string;\n targets: DetailMarkdownTarget[];\n}\n\nfunction readJson<T>(filePath: string): T | null {\n try {\n let raw = fs.readFileSync(filePath, \"utf-8\");\n if (raw.length > 0 && raw.charCodeAt(0) === 0xfeff) {\n raw = raw.slice(1);\n }\n return JSON.parse(raw) as T;\n } catch {\n return null;\n }\n}\n\nfunction safeStr(v: unknown): string {\n return typeof v === \"string\" ? v.trim() : \"\";\n}\n\nfunction slugOrFallback(row: { slug?: unknown; code?: unknown; name?: unknown }): string | null {\n const s = safeStr(row.slug);\n if (s && SLUG.test(s)) {\n return s;\n }\n const code = safeStr(row.code);\n const fb = code.replace(/[^A-Za-z0-9]/g, \"\").toLowerCase();\n if (fb && SLUG.test(fb)) {\n return fb;\n }\n const name = safeStr(row.name);\n const fromName = name\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-|-$/g, \"\");\n if (fromName && SLUG.test(fromName)) {\n return fromName;\n }\n return null;\n}\n\n/** Expected `FE-<nn>-<slug>.md` basename for a features-list row, or null if codes/slug are unusable. */\nexport function expectedFeatureDetailBasenameFromRow(row: {\n code?: unknown;\n name?: unknown;\n slug?: unknown;\n}): string | null {\n const code = safeStr(row.code);\n if (!FE.test(code)) {\n return null;\n }\n const slug = slugOrFallback(row);\n if (!slug) {\n return null;\n }\n return `${code}-${slug}.md`;\n}\n\nfunction ctxPath(contextDir: string, basename: string): string {\n return path.join(contextDir, basename);\n}\n\nfunction pushTarget(\n targets: DetailMarkdownTarget[],\n stem: MarkdownDetailOpenCodeStem,\n outputBasename: string,\n taskDescription: string,\n contextDir: string,\n): void {\n const meta = STEM_TO_AGENT[stem];\n targets.push({\n openCodeAgentStem: stem,\n agentId: meta.agentId,\n displayName: meta.displayName,\n outputBasename,\n taskDescription,\n exists: nonEmptyContextFile(ctxPath(contextDir, outputBasename)),\n });\n}\n\n/** Safe coordination markdown basenames only (no path segments). */\nexport function isAllowedDetailMarkdownBasename(basename: string): boolean {\n if (!basename || basename !== path.basename(basename)) {\n return false;\n }\n if (basename.includes(\"..\") || basename.includes(\"/\") || basename.includes(\"\\\\\")) {\n return false;\n }\n return /^[A-Za-z0-9][A-Za-z0-9_.-]*\\.md$/.test(basename);\n}\n\nexport function discoverDetailMarkdownGroups(contextDir: string): DetailMarkdownGroup[] {\n const groups: DetailMarkdownGroup[] = [];\n\n const featureTargets: DetailMarkdownTarget[] = [];\n const flPath = path.join(contextDir, \"features-list.json\");\n const fl = readJson<{ features?: Array<{ code?: unknown; name?: unknown; slug?: unknown }> }>(flPath);\n const features = Array.isArray(fl?.features) ? fl!.features! : [];\n for (const row of features) {\n const code = safeStr(row.code);\n if (!FE.test(code)) {\n continue;\n }\n const slug = slugOrFallback(row);\n if (!slug) {\n continue;\n }\n const name = safeStr(row.name) || code;\n const basename = `${code}-${slug}.md`;\n pushTarget(\n featureTargets,\n \"agent-md-feature-detail\",\n basename,\n `Document feature **${code}** (**${name}**, slug **${slug}**) per \\`.gluecharm/context/features-list.json\\`: scope, behaviour, main dependencies, entry points, and links to code under the worktree. Write exactly one markdown file at the output path; cite substantive claims with file and line (or range).`,\n contextDir,\n );\n }\n groups.push({ id: \"detail-features\", label: \"Detail markdown \u2014 Features\", targets: featureTargets });\n\n const ucTargets: DetailMarkdownTarget[] = [];\n const scTargets: DetailMarkdownTarget[] = [];\n\n for (const row of features) {\n const feCode = safeStr(row.code);\n if (!FE.test(feCode)) {\n continue;\n }\n const ucListPath = path.join(contextDir, `${feCode}-use-cases-list.json`);\n const ucFile = readJson<{\n useCases?: Array<{ code?: unknown; name?: unknown; slug?: unknown }>;\n }>(ucListPath);\n const ucs = Array.isArray(ucFile?.useCases) ? ucFile!.useCases! : [];\n for (const ucRow of ucs) {\n const ucCode = safeStr(ucRow.code);\n if (!UC.test(ucCode)) {\n continue;\n }\n const ucSlug = safeStr(ucRow.slug);\n const ucBase =\n ucSlug && SLUG.test(ucSlug) ? `${feCode}_${ucCode}-${ucSlug}.md` : `${feCode}_${ucCode}.md`;\n const ucName = safeStr(ucRow.name) || ucCode;\n pushTarget(\n ucTargets,\n \"agent-md-use-case-detail\",\n ucBase,\n `Document use case **${ucCode}** (**${ucName}**) under feature **${feCode}** per \\`.gluecharm/context/${feCode}-use-cases-list.json\\`. Do not change stable codes.\n\nFollow bundled agent **agent-md-use-case-detail**: include **## Data inputs and validation** (concrete fields, mandatory vs optional, rules, failure behaviour). **## Code flow** must trace **implementation order** (entrypoint \u2192 validation \u2192 business rules \u2192 persistence \u2192 response) with **real** symbols and files\u2014not generic \u201Cuser does X\u201D. Add a **Mermaid** fenced diagram under Code flow when there are **two or more** implementation stages. **## Evidence index** must cite **each major stage** (validation, persistence, response), not only the outer entrypoint.`,\n contextDir,\n );\n\n const scPath = path.join(contextDir, `${feCode}_${ucCode}-scenarios-list.json`);\n const scFile = readJson<{\n scenarios?: Array<{ code?: unknown; name?: unknown }>;\n }>(scPath);\n const scs = Array.isArray(scFile?.scenarios) ? scFile!.scenarios! : [];\n for (const scRow of scs) {\n const scCode = safeStr(scRow.code);\n if (!SC.test(scCode)) {\n continue;\n }\n const scName = safeStr(scRow.name) || scCode;\n const scBase = `${feCode}_${ucCode}_${scCode}.md`;\n pushTarget(\n scTargets,\n \"agent-md-scenario-detail\",\n scBase,\n `Document scenario **${scCode}** (**${scName}**) for **${feCode}** / **${ucCode}** per \\`.gluecharm/context/${feCode}_${ucCode}-scenarios-list.json\\`. Cite steps with file and line where possible.`,\n contextDir,\n );\n }\n }\n }\n\n groups.push({ id: \"detail-use-cases\", label: \"Detail markdown \u2014 Use cases\", targets: ucTargets });\n groups.push({ id: \"detail-scenarios\", label: \"Detail markdown \u2014 Scenarios\", targets: scTargets });\n\n const viewTargets: DetailMarkdownTarget[] = [];\n const ixTargets: DetailMarkdownTarget[] = [];\n for (const row of discoverExperienceTreeRows(contextDir)) {\n const vBase = `${row.code}-${row.slug}.md`;\n pushTarget(\n viewTargets,\n \"agent-md-view-detail\",\n vBase,\n `Describe view **${row.code}** (**${row.name}**, slug **${row.slug}**) per \\`.gluecharm/context/experiences-list.json\\`: purpose, layout, controls, navigation, data shown; ground in components and routes.`,\n contextDir,\n );\n for (const ix of row.interactions) {\n const ixBase = `${row.code}_${ix.code}-${ix.slug}.md`;\n pushTarget(\n ixTargets,\n \"agent-md-interaction-detail\",\n ixBase,\n `Document interaction **${ix.code}** (**${ix.name}**) on view **${row.code}** per \\`.gluecharm/context/experiences-list.json\\`.`,\n contextDir,\n );\n }\n }\n groups.push({ id: \"detail-views\", label: \"Detail markdown \u2014 Views\", targets: viewTargets });\n groups.push({ id: \"detail-interactions\", label: \"Detail markdown \u2014 Interactions\", targets: ixTargets });\n\n const svcTargets: DetailMarkdownTarget[] = [];\n const meTargets: DetailMarkdownTarget[] = [];\n for (const row of discoverServiceTreeRows(contextDir)) {\n const svBase = `${row.code}-${row.slug}.md`;\n pushTarget(\n svcTargets,\n \"agent-md-service-detail\",\n svBase,\n `Describe service **${row.code}** (**${row.name}**, slug **${row.slug}**) per \\`.gluecharm/context/services-list.json\\`: responsibilities, consumers, errors, integration points.`,\n contextDir,\n );\n for (const m of row.methods) {\n const meBase = `${row.code}_${m.code}-${m.slug}.md`;\n pushTarget(\n meTargets,\n \"agent-md-method-detail\",\n meBase,\n `Document method **${m.code}** (**${m.name}**) on service **${row.code}** per \\`.gluecharm/context/services-list.json\\`.`,\n contextDir,\n );\n }\n }\n groups.push({ id: \"detail-services\", label: \"Detail markdown \u2014 Services\", targets: svcTargets });\n groups.push({ id: \"detail-methods\", label: \"Detail markdown \u2014 Methods\", targets: meTargets });\n\n const entTargets: DetailMarkdownTarget[] = [];\n const dmPath = path.join(contextDir, \"data-model-list.json\");\n const dmFile = readJson<{\n entities?: Array<{ code?: unknown; name?: unknown; slug?: unknown }>;\n }>(dmPath);\n const ents = Array.isArray(dmFile?.entities) ? dmFile!.entities! : [];\n for (const erow of ents) {\n const dmCode = safeStr(erow.code);\n if (!DM.test(dmCode)) {\n continue;\n }\n const slug = slugOrFallback(erow);\n if (!slug) {\n continue;\n }\n const ename = safeStr(erow.name) || dmCode;\n const dmBase = `${dmCode}-${slug}.md`;\n pushTarget(\n entTargets,\n \"agent-md-entity-detail\",\n dmBase,\n `Describe entity **${dmCode}** (**${ename}**, slug **${slug}**) per \\`.gluecharm/context/data-model-list.json\\`: lifecycle, invariants, storage, ORM/schema mapping.`,\n contextDir,\n );\n }\n groups.push({ id: \"detail-entities\", label: \"Detail markdown \u2014 Entities\", targets: entTargets });\n\n const fieldTargets: DetailMarkdownTarget[] = [];\n for (const erow of ents) {\n const dmCode = safeStr(erow.code);\n if (!DM.test(dmCode)) {\n continue;\n }\n const flPath = path.join(contextDir, `${dmCode}-fields-list.json`);\n const flFile = readJson<{\n fields?: Array<{ code?: unknown; name?: unknown; slug?: unknown }>;\n }>(flPath);\n const flds = Array.isArray(flFile?.fields) ? flFile!.fields! : [];\n for (const frow of flds) {\n const fdCode = safeStr(frow.code);\n if (!FD.test(fdCode)) {\n continue;\n }\n const fSlug = safeStr(frow.slug);\n if (!fSlug || !SLUG.test(fSlug)) {\n continue;\n }\n const fname = safeStr(frow.name) || fdCode;\n const fdBase = `${dmCode}_${fdCode}-${fSlug}.md`;\n pushTarget(\n fieldTargets,\n \"agent-md-field-detail\",\n fdBase,\n `Document field **${fdCode}** (**${fname}**) on entity **${dmCode}** per \\`.gluecharm/context/${dmCode}-fields-list.json\\`. Cite types and constraints with file and line.`,\n contextDir,\n );\n }\n }\n groups.push({ id: \"detail-fields\", label: \"Detail markdown \u2014 Fields\", targets: fieldTargets });\n\n const toolTargets: DetailMarkdownTarget[] = [];\n for (const row of discoverTechStackToolRows(contextDir)) {\n const tsBase = `${row.code}-${row.slug}.md`;\n pushTarget(\n toolTargets,\n \"agent-md-tool-detail\",\n tsBase,\n `Describe tool **${row.code}** (**${row.name}**, slug **${row.slug}**) per \\`.gluecharm/context/tech-stack-list.json\\`: role, version hints, configuration, boundaries.`,\n contextDir,\n );\n }\n groups.push({ id: \"detail-tools\", label: \"Detail markdown \u2014 Tech stack\", targets: toolTargets });\n\n return groups;\n}\n\n/** All coordination detail markdown basenames implied by current list JSON under `contextDir` (SRS-8 \u00A74.3\u2013\u00A74.5). */\nexport function collectExpectedDetailMarkdownBasenames(contextDir: string): Set<string> {\n const set = new Set<string>();\n for (const g of discoverDetailMarkdownGroups(contextDir)) {\n for (const t of g.targets) {\n set.add(t.outputBasename);\n }\n }\n return set;\n}\n\nexport function resolveMarkdownDetailTarget(\n contextDir: string,\n openCodeAgentStem: string,\n outputBasename: string,\n): DetailMarkdownTarget | null {\n if (!isMarkdownDetailOpenCodeStem(openCodeAgentStem) || !isAllowedDetailMarkdownBasename(outputBasename)) {\n return null;\n }\n const groups = discoverDetailMarkdownGroups(contextDir);\n for (const g of groups) {\n for (const t of g.targets) {\n if (t.openCodeAgentStem === openCodeAgentStem && t.outputBasename === outputBasename) {\n return t;\n }\n }\n }\n return null;\n}\n", "/**\n * Diagnosis: parallel regeneration of missing artefacts using the same SRS-9 pool as Run Analysis.\n */\n\nimport * as path from \"path\";\nimport type { AnalysisStorageContext } from \"../stores/workspaceStatePort\";\nimport {\n drainArtefactWorkPool,\n skipPendingBlockedBySkippedParents,\n type ContextArtefactPipelineOpenCodeOptions,\n parentsDone,\n} from \"./contextArtefactPipeline\";\nimport {\n classifyWorkItemOutputOnDisk,\n isArtefactSnapshotForWorktree,\n type MissingArtefactListRow,\n} from \"./missingArtefacts\";\nimport { writeIndexApplicationContext } from \"../contextIndexAssembler\";\nimport {\n cloneArtefactWorkItem,\n finishArtefactRun,\n readArtefactRunSnapshot,\n startArtefactRun,\n updateArtefactRunSnapshot,\n type StoredArtefactWorkItem,\n} from \"../stores/analysisArtefactRunStore\";\n\nexport interface RunMissingArtefactsRemediationPoolParams {\n readonly storageContext: AnalysisStorageContext;\n readonly repositoryRoot: string;\n readonly worktreeRoot: string;\n readonly workspaceLabel: string;\n readonly oc: ContextArtefactPipelineOpenCodeOptions;\n readonly log: (line: string) => void;\n readonly abortSignal?: AbortSignal;\n readonly rows: readonly MissingArtefactListRow[];\n readonly onItemComplete?: (id: string) => void | Promise<void>;\n readonly sourceBranchAtWorktreeCreation?: string;\n}\n\nexport interface RunMissingArtefactsRemediationPoolResult {\n readonly cancelled: boolean;\n readonly skippedWorkItemIds: readonly string[];\n readonly indexOk: boolean;\n readonly indexError?: string;\n}\n\n/** Promote `skipped` items to `done` when their output is already valid on disk (unblocks dependents). */\nexport function reconcileSkippedWorkItemsWithDisk(\n byId: Map<string, StoredArtefactWorkItem>,\n contextDir: string,\n worktreeRoot: string,\n): void {\n for (const item of byId.values()) {\n if (item.status !== \"skipped\") {\n continue;\n }\n if (classifyWorkItemOutputOnDisk(item, contextDir, worktreeRoot) === \"valid\") {\n item.status = \"done\";\n item.lastError = undefined;\n }\n }\n}\n\n/** Pending work items whose parents are satisfied, FIFO order (stable id sort). */\nexport function buildInitialRemediationFifo(byId: Map<string, StoredArtefactWorkItem>): string[] {\n const ids: string[] = [];\n for (const [id, it] of byId) {\n if (it.status === \"pending\" && parentsDone(it, byId)) {\n ids.push(id);\n }\n }\n ids.sort((a, b) => a.localeCompare(b));\n return ids;\n}\n\nfunction mapFromSnapshotItems(items: Record<string, StoredArtefactWorkItem>): Map<string, StoredArtefactWorkItem> {\n const m = new Map<string, StoredArtefactWorkItem>();\n for (const [k, v] of Object.entries(items)) {\n m.set(k, cloneArtefactWorkItem(v));\n }\n return m;\n}\n\nfunction applyMissingRowsToWorkMap(\n byId: Map<string, StoredArtefactWorkItem>,\n rows: readonly MissingArtefactListRow[],\n): void {\n for (const row of rows) {\n if (row.workItemId) {\n const it = byId.get(row.workItemId);\n if (it) {\n it.status = \"pending\";\n it.lastError = undefined;\n it.executionAttempts = 0;\n }\n } else {\n const ri = cloneArtefactWorkItem(row.runnerItem);\n ri.status = \"pending\";\n ri.executionAttempts = 0;\n ri.lastError = undefined;\n byId.set(ri.id, ri);\n }\n }\n}\n\nexport async function runMissingArtefactsRemediationPool(\n p: RunMissingArtefactsRemediationPoolParams,\n): Promise<RunMissingArtefactsRemediationPoolResult> {\n const {\n storageContext,\n repositoryRoot,\n worktreeRoot,\n workspaceLabel,\n oc,\n log,\n abortSignal,\n rows,\n onItemComplete,\n sourceBranchAtWorktreeCreation,\n } = p;\n\n const contextDir = path.join(worktreeRoot, \".gluecharm\", \"context\");\n const snap = readArtefactRunSnapshot(storageContext);\n const snapOk = isArtefactSnapshotForWorktree(snap, worktreeRoot);\n\n let byId: Map<string, StoredArtefactWorkItem>;\n\n if (snapOk && snap) {\n byId = mapFromSnapshotItems(snap.items);\n reconcileSkippedWorkItemsWithDisk(byId, contextDir, worktreeRoot);\n applyMissingRowsToWorkMap(byId, rows);\n } else {\n byId = new Map<string, StoredArtefactWorkItem>();\n applyMissingRowsToWorkMap(byId, rows);\n }\n\n const cascadeSkipped: string[] = [];\n skipPendingBlockedBySkippedParents(byId, cascadeSkipped, log);\n const fifo = buildInitialRemediationFifo(byId);\n\n const itemsForStore = Object.fromEntries(byId);\n if (snapOk) {\n await updateArtefactRunSnapshot(storageContext, (prev) =>\n prev ? { ...prev, items: itemsForStore, overallStatus: \"running\" } : prev,\n );\n } else {\n await startArtefactRun(storageContext, repositoryRoot, worktreeRoot, itemsForStore);\n }\n\n log(`[SRS-17] parallel remediation pool \u2014 ${rows.length} missing row(s), ${fifo.length} ready in initial fifo`);\n\n const { cancelled, skippedWorkItemIds } = await drainArtefactWorkPool({\n storageContext,\n worktreeRoot,\n workspaceLabel,\n contextDir,\n byId,\n fifo,\n oc,\n log,\n abortSignal,\n onItemComplete,\n });\n\n if (cancelled) {\n await finishArtefactRun(storageContext, false);\n return { cancelled: true, skippedWorkItemIds, indexOk: false, indexError: \"Stopped by user.\" };\n }\n\n await finishArtefactRun(storageContext, true);\n\n let indexOk = true;\n let indexError: string | undefined;\n try {\n writeIndexApplicationContext(contextDir, undefined, {\n sourceBranchAtWorktreeCreation,\n });\n log(`[SRS-10] After parallel remediation: index-application-context.json written under ${contextDir}`);\n } catch (e) {\n indexOk = false;\n indexError = e instanceof Error ? e.message : String(e);\n log(`[SRS-10] After parallel remediation: index assembly failed \u2014 ${indexError}`);\n }\n\n return { cancelled: false, skippedWorkItemIds, indexOk, ...(indexError ? { indexError } : {}) };\n}\n", "/**\n * SRS-29: reference coverage \u2014 union of citations from `.gluecharm/context` vs repo file enumeration + LOC.\n */\n\nimport { execFileSync } from \"child_process\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { extractEvidenceIndexBody } from \"./markdownEvidenceIndexValidate\";\nimport type { CoverageReferenceInitPayload } from \"../shared/panelProtocol\";\nimport {\n readAndValidateCoverageReferenceValidationFile,\n validateCoverageReferenceValidationData,\n} from \"./coverageReferenceValidationSchemaValidate\";\n\nexport const COVERAGE_REFERENCE_VALIDATION_BASENAME = \"coverage-reference-validation.json\";\n\nconst SKIP_CONTEXT_JSON = new Set([\n COVERAGE_REFERENCE_VALIDATION_BASENAME,\n \"easyspecs-upload-target.json\",\n]);\n\n/** Default directory basenames skipped when walking the repository (v0.1). */\nexport const DEFAULT_IGNORE_DIR_BASENAMES = [\n \".git\",\n \".opencode\",\n \"node_modules\",\n \".hg\",\n \".svn\",\n \"out\",\n \"dist\",\n \"build\",\n \".next\",\n \"coverage\",\n] as const;\n\nconst GIT_LS_FILES_MAX_BUFFER = 64 * 1024 * 1024;\n\n/**\n * When `.git` exists, paths Git would include under **exclude-standard** (i.e. **`.gitignore`**\n * and excludes): **cached** paths plus **untracked** paths that are not ignored.\n * Returns **null** if there is no `.git`, `git` is missing, or the command fails \u2014 caller falls back to a plain walk.\n */\nexport function tryLoadGitNonIgnoredPathSet(repositoryRootAbs: string): Set<string> | null {\n const root = path.resolve(repositoryRootAbs);\n if (!fs.existsSync(path.join(root, \".git\"))) {\n return null;\n }\n const env = { ...process.env, GIT_TERMINAL_PROMPT: \"0\" };\n const opts = {\n cwd: root,\n encoding: \"utf-8\" as const,\n maxBuffer: GIT_LS_FILES_MAX_BUFFER,\n env,\n };\n try {\n const tracked = execFileSync(\"git\", [\"-c\", \"core.quotepath=false\", \"ls-files\", \"-z\"], opts);\n const others = execFileSync(\n \"git\",\n [\"-c\", \"core.quotepath=false\", \"ls-files\", \"-z\", \"--others\", \"--exclude-standard\"],\n opts,\n );\n const out = new Set<string>();\n const ingest = (chunk: string) => {\n if (!chunk) {\n return;\n }\n for (const p of chunk.split(\"\\0\")) {\n if (p.length > 0) {\n out.add(p.replace(/\\\\/g, \"/\"));\n }\n }\n };\n ingest(tracked);\n ingest(others);\n return out;\n } catch {\n return null;\n }\n}\n\nconst MAX_FILE_BYTES = 3 * 1024 * 1024;\n\n/**\n * Extensions for raster/vector icons and image assets \u2014 **not** implementation text for reference coverage.\n * Omitted from LOC and from **`referencedFiles`** / **`nonReferencedFiles`** (SRS-29).\n */\nexport const REFERENCE_COVERAGE_IMAGE_EXTENSIONS: ReadonlySet<string> = new Set([\n \".png\",\n \".apng\",\n \".jpg\",\n \".jpeg\",\n \".jpe\",\n \".jfif\",\n \".gif\",\n \".webp\",\n \".bmp\",\n \".dib\",\n \".tif\",\n \".tiff\",\n \".heic\",\n \".heif\",\n \".avif\",\n \".jxl\",\n \".ico\",\n \".cur\",\n \".icns\",\n \".svg\",\n \".svgz\",\n \".psd\",\n \".ai\",\n \".eps\",\n \".xcf\",\n \".hdr\",\n \".exr\",\n \".wmf\",\n \".emf\",\n]);\n\n/** True if **repo-relative** path ends with a known image / icon extension (case-insensitive). */\nexport function isReferenceCoverageExcludedImagePath(relPosix: string): boolean {\n const ext = path.extname(relPosix).toLowerCase();\n return ext.length > 0 && REFERENCE_COVERAGE_IMAGE_EXTENSIONS.has(ext);\n}\n\n/**\n * Basenames omitted from the implementation corpus \u2014 VCS / tooling config, not product source (**SRS-29**).\n * Any depth (e.g. `packages/a/.gitignore`).\n */\nexport const REFERENCE_COVERAGE_EXCLUDED_FILE_BASENAMES: ReadonlySet<string> = new Set([\".gitignore\"]);\n\n/** True if the file\u2019s basename is a default-excluded config name (case-insensitive). */\nexport function isReferenceCoverageExcludedDefaultBasename(relPosix: string): boolean {\n const base = path.basename(relPosix.replace(/\\\\/g, \"/\")).toLowerCase();\n return REFERENCE_COVERAGE_EXCLUDED_FILE_BASENAMES.has(base);\n}\n\n/** Max paths per host\u2192webview message; full list stays in `coverage-reference-validation.json`. */\nexport const COVERAGE_ZERO_REF_PATHS_WEBVIEW_CAP = 500;\n\nexport function sliceNonReferencedFilesForWebview(\n nonReferencedFiles: readonly string[],\n): { paths: string[]; total: number; truncated: boolean } {\n const total = nonReferencedFiles.length;\n if (total <= COVERAGE_ZERO_REF_PATHS_WEBVIEW_CAP) {\n return { paths: [...nonReferencedFiles], total, truncated: false };\n }\n return {\n paths: nonReferencedFiles.slice(0, COVERAGE_ZERO_REF_PATHS_WEBVIEW_CAP),\n total,\n truncated: true,\n };\n}\n\n/**\n * Decode file bytes for **line counting** and path citation matching.\n * Strict **UTF-8** first (web + modern toolchains). If bytes are not valid UTF-8\n * (e.g. **Windows-1252** / **ISO-8859-1** Delphi or legacy sources), fall back to\n * **ISO-8859-1 (latin1)** \u2014 maps each byte 0x00\u20130xFF to a code unit, never throws,\n * so newlines and LOC stay stable. This is for metrics only, not semantic \u201Csource encoding\u201D proof.\n */\nexport function decodeBufferForLineCount(buf: Buffer): string {\n try {\n return new TextDecoder(\"utf-8\", { fatal: true }).decode(buf);\n } catch {\n return new TextDecoder(\"latin1\").decode(buf);\n }\n}\n\n/**\n * Repo-relative POSIX path is under **`.gluecharm/`** at workspace root (context, docs, logs).\n * Those files are **not** counted toward **totalLoc** / referenced split \u2014 coordination artefacts\n * are excluded from the implementation corpus by design (same policy as forbidding them as evidence targets).\n */\nexport function isRepoRelUnderGluecharm(relPosix: string): boolean {\n const parts = relPosix.split(\"/\").filter(Boolean);\n return parts[0] === \".gluecharm\";\n}\n\nexport interface CoverageReferenceRow {\n readonly path: string;\n readonly startLine?: number;\n readonly endLine?: number;\n readonly sourceArtefact: string;\n readonly sourceKind: string;\n}\n\nexport interface CoverageReferenceValidationDocument {\n readonly version: number;\n readonly generatedAt: string;\n readonly repositoryRoot: string;\n readonly granularity: \"file\";\n readonly ignoreDirs: string[];\n readonly referencedFiles: string[];\n /** In-scope repo files cited **zero** times from context artefacts (same ordering as the LOC walk). */\n readonly nonReferencedFiles: string[];\n readonly references: CoverageReferenceRow[];\n readonly metrics: {\n readonly totalLoc: number;\n readonly referencedLoc: number;\n readonly nonReferencedLoc: number;\n readonly percentNonReferenced: number;\n };\n readonly warnings?: string[];\n readonly excludedFiles?: { path: string; reason: string }[];\n}\n\nexport interface RunCoverageReferenceValidationOptions {\n /** Absolute workspace / repository root. */\n readonly repositoryRootAbs: string;\n /** Absolute `.gluecharm/context` directory. */\n readonly contextDirAbs: string;\n /** When true, write `coverage-reference-validation.json` under contextDirAbs after schema pass. */\n readonly write?: boolean;\n readonly maxFileBytes?: number;\n}\n\nexport type RunCoverageReferenceValidationResult =\n | {\n ok: true;\n document: CoverageReferenceValidationDocument;\n outputAbsolutePath?: string;\n }\n | { ok: false; error: string; warnings?: string[] };\n\nfunction sortKeysDeep(v: unknown): unknown {\n if (v === null || typeof v !== \"object\") {\n return v;\n }\n if (Array.isArray(v)) {\n return v.map(sortKeysDeep);\n }\n const o = v as Record<string, unknown>;\n const out: Record<string, unknown> = {};\n for (const k of Object.keys(o).sort()) {\n out[k] = sortKeysDeep(o[k]);\n }\n return out;\n}\n\nexport function stableStringifyCoverageDocument(doc: CoverageReferenceValidationDocument): string {\n return `${JSON.stringify(sortKeysDeep(doc as unknown), null, 2)}\\n`;\n}\n\n/** Resolve repo-relative POSIX path; reject escapes outside repoRoot. */\nexport function normalizeRepoRelativePath(repoRoot: string, raw: string): string | null {\n const trimmed = raw.trim().replace(/\\\\/g, \"/\");\n if (!trimmed || trimmed.includes(\"\\0\")) {\n return null;\n }\n const abs = path.resolve(repoRoot, trimmed);\n const rel = path.relative(repoRoot, abs);\n if (rel.startsWith(\"..\") || path.isAbsolute(rel)) {\n return null;\n }\n return rel.split(path.sep).join(\"/\");\n}\n\nfunction collectJsonSourceReferences(\n node: unknown,\n out: { path: string; startLine: number; endLine: number }[],\n): void {\n if (node === null || typeof node !== \"object\") {\n return;\n }\n if (Array.isArray(node)) {\n for (const x of node) {\n collectJsonSourceReferences(x, out);\n }\n return;\n }\n const o = node as Record<string, unknown>;\n if (\n typeof o.path === \"string\" &&\n typeof o.startLine === \"number\" &&\n Number.isFinite(o.startLine) &&\n typeof o.endLine === \"number\" &&\n Number.isFinite(o.endLine)\n ) {\n out.push({ path: o.path, startLine: o.startLine, endLine: o.endLine });\n }\n for (const v of Object.values(o)) {\n collectJsonSourceReferences(v, out);\n }\n}\n\n/**\n * Extract `path:line` and `path:start-end` citations from Evidence index body (SRS-16 style).\n */\nexport function extractEvidenceIndexPathCitations(body: string): { path: string; startLine: number; endLine: number }[] {\n const found: { path: string; startLine: number; endLine: number }[] = [];\n const re =\n /(?:^|[\\s>(\\[`\"'])([A-Za-z0-9_.][A-Za-z0-9_.\\-/]*(?:\\/[A-Za-z0-9_.\\-]+)+|[A-Za-z0-9_.\\-]+\\.[A-Za-z0-9]+):(\\d+)(?:-(\\d+))?(?=[\\s)<\\],`\"']|$)/gm;\n let m: RegExpExecArray | null;\n while ((m = re.exec(body)) !== null) {\n const p = m[1]!;\n const a = parseInt(m[2]!, 10);\n const b = m[3] ? parseInt(m[3], 10) : a;\n if (!Number.isFinite(a) || !Number.isFinite(b)) {\n continue;\n }\n const lo = Math.min(a, b);\n const hi = Math.max(a, b);\n found.push({ path: p, startLine: lo, endLine: hi });\n }\n return found;\n}\n\nfunction listContextFilesRecursive(dir: string, acc: string[]): void {\n let entries: fs.Dirent[];\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true });\n } catch {\n return;\n }\n for (const e of entries) {\n const full = path.join(dir, e.name);\n if (e.isDirectory()) {\n listContextFilesRecursive(full, acc);\n } else if (e.isFile()) {\n acc.push(full);\n }\n }\n}\n\nfunction walkRepositoryFiles(\n repoRoot: string,\n ignoreBasenames: Set<string>,\n maxBytes: number,\n excludedOut: { path: string; reason: string }[],\n gitNonIgnoredPaths: ReadonlySet<string> | null,\n): Map<string, number> {\n const locByRel = new Map<string, number>();\n\n const walk = (dir: string): void => {\n let entries: fs.Dirent[];\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true });\n } catch {\n return;\n }\n for (const e of entries) {\n if (ignoreBasenames.has(e.name)) {\n continue;\n }\n const full = path.join(dir, e.name);\n const rel = path.relative(repoRoot, full).split(path.sep).join(\"/\");\n if (rel.startsWith(\"..\")) {\n continue;\n }\n if (isRepoRelUnderGluecharm(rel)) {\n continue;\n }\n if (e.isDirectory()) {\n walk(full);\n } else if (e.isFile()) {\n if (isReferenceCoverageExcludedImagePath(rel)) {\n continue;\n }\n if (isReferenceCoverageExcludedDefaultBasename(rel)) {\n continue;\n }\n if (gitNonIgnoredPaths !== null && !gitNonIgnoredPaths.has(rel)) {\n continue;\n }\n let st: fs.Stats;\n try {\n st = fs.statSync(full);\n } catch {\n continue;\n }\n if (st.size > maxBytes) {\n excludedOut.push({ path: rel, reason: `exceeds max size (${maxBytes} bytes)` });\n continue;\n }\n let buf: Buffer;\n try {\n buf = fs.readFileSync(full);\n } catch {\n excludedOut.push({ path: rel, reason: \"read error\" });\n continue;\n }\n if (buf.length === 0) {\n locByRel.set(rel, 0);\n continue;\n }\n const text = decodeBufferForLineCount(buf);\n const lines = text.split(/\\r?\\n/).length;\n locByRel.set(rel, lines);\n }\n }\n };\n\n walk(repoRoot);\n return locByRel;\n}\n\nfunction collectReferencesFromContext(\n contextDirAbs: string,\n repositoryRootAbs: string,\n warnings: string[],\n): CoverageReferenceRow[] {\n const references: CoverageReferenceRow[] = [];\n if (!fs.existsSync(contextDirAbs)) {\n warnings.push(`Context directory missing: ${contextDirAbs}`);\n return references;\n }\n\n const allFiles: string[] = [];\n listContextFilesRecursive(contextDirAbs, allFiles);\n\n for (const abs of allFiles) {\n const ext = path.extname(abs).toLowerCase();\n const base = path.basename(abs);\n const sourceArtefact = path.relative(contextDirAbs, abs).split(path.sep).join(\"/\");\n\n if (ext === \".json\") {\n if (SKIP_CONTEXT_JSON.has(base)) {\n continue;\n }\n let raw: string;\n try {\n raw = fs.readFileSync(abs, \"utf-8\");\n } catch (e) {\n warnings.push(`Skip JSON (read error): ${sourceArtefact} \u2014 ${e instanceof Error ? e.message : String(e)}`);\n continue;\n }\n let data: unknown;\n try {\n data = JSON.parse(raw);\n } catch (e) {\n warnings.push(`Skip JSON (parse error): ${sourceArtefact} \u2014 ${e instanceof SyntaxError ? e.message : String(e)}`);\n continue;\n }\n const spans: { path: string; startLine: number; endLine: number }[] = [];\n collectJsonSourceReferences(data, spans);\n for (const s of spans) {\n const norm = normalizeRepoRelativePath(repositoryRootAbs, s.path);\n if (!norm) {\n continue;\n }\n references.push({\n path: norm,\n startLine: s.startLine,\n endLine: s.endLine,\n sourceArtefact,\n sourceKind: \"json_source_reference\",\n });\n }\n }\n\n if (ext === \".md\") {\n let text: string;\n try {\n const buf = fs.readFileSync(abs);\n text = decodeBufferForLineCount(buf);\n } catch (e) {\n warnings.push(`Skip markdown (read/decode error): ${sourceArtefact} \u2014 ${e instanceof Error ? e.message : String(e)}`);\n continue;\n }\n const { found, body } = extractEvidenceIndexBody(text);\n if (!found) {\n continue;\n }\n const cites = extractEvidenceIndexPathCitations(body);\n for (const c of cites) {\n const norm = normalizeRepoRelativePath(repositoryRootAbs, c.path);\n if (!norm) {\n continue;\n }\n references.push({\n path: norm,\n startLine: c.startLine,\n endLine: c.endLine,\n sourceArtefact,\n sourceKind: \"markdown_evidence_index\",\n });\n }\n }\n }\n\n return references;\n}\n\nfunction sortReferenceRows(a: CoverageReferenceRow, b: CoverageReferenceRow): number {\n const pa = a.path.localeCompare(b.path);\n if (pa !== 0) {\n return pa;\n }\n const sa = a.sourceArtefact.localeCompare(b.sourceArtefact);\n if (sa !== 0) {\n return sa;\n }\n const ka = a.sourceKind.localeCompare(b.sourceKind);\n if (ka !== 0) {\n return ka;\n }\n return (a.startLine ?? 0) - (b.startLine ?? 0);\n}\n\nexport function buildCoverageReferenceValidationDocument(\n repositoryRootAbs: string,\n contextDirAbs: string,\n options?: { maxFileBytes?: number },\n): { document: CoverageReferenceValidationDocument; warnings: string[] } {\n const repoRoot = path.resolve(repositoryRootAbs);\n const warnings: string[] = [];\n const ignoreDirs = [...DEFAULT_IGNORE_DIR_BASENAMES];\n const ignoreSet = new Set(ignoreDirs);\n const maxBytes = options?.maxFileBytes ?? MAX_FILE_BYTES;\n\n const references = collectReferencesFromContext(path.resolve(contextDirAbs), repoRoot, warnings);\n references.sort(sortReferenceRows);\n\n const referencedSet = new Set<string>();\n for (const r of references) {\n referencedSet.add(r.path);\n }\n\n const excludedFiles: { path: string; reason: string }[] = [];\n const gitNonIgnoredPaths = tryLoadGitNonIgnoredPathSet(repoRoot);\n if (fs.existsSync(path.join(repoRoot, \".git\")) && gitNonIgnoredPaths === null) {\n warnings.push(\n \"Repository has .git but git ls-files failed or git is unavailable; .gitignore / exclude-standard not applied.\",\n );\n }\n const locByRel = walkRepositoryFiles(repoRoot, ignoreSet, maxBytes, excludedFiles, gitNonIgnoredPaths);\n\n const allRelSorted = [...locByRel.keys()].sort((a, b) => a.localeCompare(b));\n const referencedFiles: string[] = [];\n const nonReferencedFiles: string[] = [];\n let totalLoc = 0;\n let referencedLoc = 0;\n\n for (const rel of allRelSorted) {\n const loc = locByRel.get(rel) ?? 0;\n totalLoc += loc;\n if (referencedSet.has(rel)) {\n referencedFiles.push(rel);\n referencedLoc += loc;\n } else {\n nonReferencedFiles.push(rel);\n }\n }\n\n const nonReferencedLoc = totalLoc - referencedLoc;\n const percentNonReferenced =\n totalLoc === 0 ? 0 : Math.round((100 * nonReferencedLoc) / totalLoc);\n\n const doc: CoverageReferenceValidationDocument & {\n warnings?: string[];\n excludedFiles?: { path: string; reason: string }[];\n } = {\n version: 1,\n generatedAt: new Date().toISOString(),\n repositoryRoot: repoRoot,\n granularity: \"file\",\n ignoreDirs,\n referencedFiles,\n nonReferencedFiles,\n references,\n metrics: {\n totalLoc,\n referencedLoc,\n nonReferencedLoc,\n percentNonReferenced,\n },\n };\n\n if (warnings.length > 0) {\n doc.warnings = [...warnings].sort();\n }\n if (excludedFiles.length > 0) {\n excludedFiles.sort((a, b) => a.path.localeCompare(b.path));\n doc.excludedFiles = excludedFiles;\n }\n\n return { document: doc as CoverageReferenceValidationDocument, warnings };\n}\n\n/** Load existing JSON from workspace for Diagnosis preload (schema-validated). */\nexport function readCoverageReferenceInitSnapshot(\n workspaceRootAbs: string,\n): CoverageReferenceInitPayload {\n const p = path.join(\n path.resolve(workspaceRootAbs),\n \".gluecharm\",\n \"context\",\n COVERAGE_REFERENCE_VALIDATION_BASENAME,\n );\n if (!fs.existsSync(p)) {\n return { loaded: false };\n }\n const r = readAndValidateCoverageReferenceValidationFile(p);\n if (!r.ok) {\n return {\n loaded: true,\n valid: false,\n error: r.errors.join(\"; \"),\n };\n }\n const d = r.data as {\n generatedAt?: string;\n nonReferencedFiles?: unknown;\n metrics?: {\n totalLoc?: number;\n referencedLoc?: number;\n nonReferencedLoc?: number;\n percentNonReferenced?: number;\n };\n };\n const m = d.metrics ?? {};\n const nr =\n Array.isArray(d.nonReferencedFiles) && d.nonReferencedFiles.every((x) => typeof x === \"string\")\n ? (d.nonReferencedFiles as string[])\n : [];\n const z = sliceNonReferencedFilesForWebview(nr);\n return {\n loaded: true,\n valid: true,\n generatedAt: typeof d.generatedAt === \"string\" ? d.generatedAt : undefined,\n totalLoc: typeof m.totalLoc === \"number\" ? m.totalLoc : undefined,\n referencedLoc: typeof m.referencedLoc === \"number\" ? m.referencedLoc : undefined,\n nonReferencedLoc: typeof m.nonReferencedLoc === \"number\" ? m.nonReferencedLoc : undefined,\n percentNonReferenced:\n typeof m.percentNonReferenced === \"number\" ? m.percentNonReferenced : undefined,\n zeroReferenceFiles: z.paths,\n zeroReferenceFileCount: z.total,\n ...(z.truncated ? { zeroReferenceFilesTruncated: true as const } : {}),\n };\n}\n\nexport function runCoverageReferenceValidation(\n opts: RunCoverageReferenceValidationOptions,\n): RunCoverageReferenceValidationResult {\n const repoRoot = path.resolve(opts.repositoryRootAbs);\n const contextDir = path.resolve(opts.contextDirAbs);\n\n if (!fs.existsSync(repoRoot)) {\n return { ok: false, error: `Repository root does not exist: ${repoRoot}` };\n }\n if (!fs.existsSync(contextDir)) {\n return {\n ok: false,\n error: `Missing .gluecharm/context: ${contextDir}`,\n };\n }\n\n const { document, warnings } = buildCoverageReferenceValidationDocument(repoRoot, contextDir, {\n maxFileBytes: opts.maxFileBytes,\n });\n\n const schemaCheck = validateCoverageReferenceValidationData(document);\n if (!schemaCheck.ok) {\n return {\n ok: false,\n error: `Internal error: document failed schema validation before write:\\n${schemaCheck.errors.join(\"\\n\")}`,\n warnings,\n };\n }\n\n const outPath = path.join(contextDir, COVERAGE_REFERENCE_VALIDATION_BASENAME);\n\n if (opts.write) {\n try {\n const payload = stableStringifyCoverageDocument(document);\n fs.writeFileSync(outPath, payload, \"utf-8\");\n } catch (e) {\n return {\n ok: false,\n error: `Failed to write ${outPath}: ${e instanceof Error ? e.message : String(e)}`,\n warnings,\n };\n }\n }\n\n return { ok: true, document, outputAbsolutePath: opts.write ? outPath : undefined };\n}\n", "/**\n * SRS-29: validate `coverage-reference-validation.json` against bundled Draft 2020-12 schema.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport Ajv2020 from \"ajv/dist/2020\";\nimport type { ErrorObject } from \"ajv\";\n\nfunction stripUtf8Bom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nexport function bundledCoverageReferenceValidationSchemaPath(): string {\n return path.join(\n __dirname,\n \"..\",\n \"..\",\n \"resources\",\n \"schemas\",\n \"context-lists\",\n \"coverage-reference-validation.schema.json\",\n );\n}\n\nfunction formatAjvErrors(errors: ErrorObject[] | null | undefined): string[] {\n if (!errors?.length) {\n return [\"(no error details)\"];\n }\n return errors.slice(0, 40).map((e) => {\n const p = e.instancePath?.length ? e.instancePath : \"(root)\";\n const msg = e.message ?? e.keyword ?? \"?\";\n return `${p}: ${msg}`;\n });\n}\n\nlet compiledValidate: ReturnType<Ajv2020[\"compile\"]> | undefined;\n\nfunction getValidate(): ReturnType<Ajv2020[\"compile\"]> {\n if (compiledValidate) {\n return compiledValidate;\n }\n const schemaPath = bundledCoverageReferenceValidationSchemaPath();\n const schemaRaw = stripUtf8Bom(fs.readFileSync(schemaPath, \"utf-8\"));\n const schema = JSON.parse(schemaRaw) as object;\n const ajv = new Ajv2020({ allErrors: true, strict: false });\n compiledValidate = ajv.compile(schema);\n return compiledValidate;\n}\n\n/** Validate an in-memory document (extension host or tests). */\nexport function validateCoverageReferenceValidationData(data: unknown): {\n ok: true;\n} | {\n ok: false;\n errors: string[];\n} {\n const validate = getValidate();\n if (validate(data)) {\n return { ok: true };\n }\n return { ok: false, errors: formatAjvErrors(validate.errors) };\n}\n\nexport type CoverageRefJsonFileResult =\n | { ok: true; data: unknown }\n | { ok: false; errors: string[] };\n\n/** Read UTF-8 JSON from disk and schema-validate. */\nexport function readAndValidateCoverageReferenceValidationFile(\n jsonAbsolutePath: string,\n): CoverageRefJsonFileResult {\n let raw: string;\n try {\n raw = stripUtf8Bom(fs.readFileSync(jsonAbsolutePath, \"utf-8\"));\n } catch (e) {\n return {\n ok: false,\n errors: [e instanceof Error ? e.message : String(e)],\n };\n }\n let data: unknown;\n try {\n data = JSON.parse(raw);\n } catch (e) {\n const msg = e instanceof SyntaxError ? e.message : String(e);\n return { ok: false, errors: [`JSON parse: ${msg}`] };\n }\n const v = validateCoverageReferenceValidationData(data);\n if (!v.ok) {\n return { ok: false, errors: v.errors };\n }\n return { ok: true, data };\n}\n", "/**\n * SRS-30: files with zero references \u2014 classifier, routing/triage JSON, feature-list merge (v0.1).\n */\n\nimport * as crypto from \"crypto\";\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { decodeBufferForLineCount, normalizeRepoRelativePath } from \"./coverageReferenceValidation\";\nimport { readAndValidateCoverageReferenceValidationFile } from \"./coverageReferenceValidationSchemaValidate\";\nimport { fillListJsonPrompt } from \"./promptTemplates\";\nimport { runOpenCodeAgent } from \"../opencodeCli\";\nimport {\n formatCoordinationJsonMissingArtefactRepairAppendix,\n formatCoordinationJsonRepairAppendix,\n validateCoordinationListJson,\n type CoordinationJsonValidationFailure,\n} from \"./coordinationListJsonValidate\";\nimport {\n validateZeroReferenceClassifierRecordData,\n validateZeroReferenceRoutingDocumentData,\n validateZeroReferenceTriageDocumentData,\n validateZeroReferenceTriageRecordData,\n} from \"./zeroReferenceRemediationSchemaValidate\";\nimport { resolveContextListSchemasDir } from \"../shared/repoResourcesRoot\";\n\nexport const ZERO_REF_ROUTING_BASENAME = \"zero-reference-routing.json\";\nexport const ZERO_REF_TRIAGE_BASENAME = \"zero-reference-triage.json\";\nexport const ZERO_REF_CLASSIFY_AGENT_STEM = \"agent-classify-unreferenced-file\";\n/** OpenCode agent stem for stage-2 triage (feature / experience / service / data_model lists). */\nexport const ZERO_REF_TRIAGE_COORD_AGENT_STEM = \"agent-triage-unreferenced-coordination\";\n/** @deprecated Use ZERO_REF_TRIAGE_COORD_AGENT_STEM */\nexport const ZERO_REF_TRIAGE_FEATURE_AGENT_STEM = ZERO_REF_TRIAGE_COORD_AGENT_STEM;\nexport const ZERO_REF_ADD_REF_PROJECT_AGENT_STEM = \"agent-add-reference-project-md\";\nexport const ZERO_REF_ADD_REF_ARCH_AGENT_STEM = \"agent-add-reference-architecture-md\";\n\n/** OpenCode runs per staging agent: first attempt + repairs after invalid JSON / schema / semantic checks (aligned with list JSON repair budget). */\nconst ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS = 5;\nconst ZERO_REF_STAGING_FILE_PREVIEW_MAX_CHARS = 6000;\n\nfunction readStagingOutputPreview(outAbs: string): string | undefined {\n try {\n const s = fs.readFileSync(outAbs, \"utf-8\");\n if (s.length <= ZERO_REF_STAGING_FILE_PREVIEW_MAX_CHARS) {\n return s;\n }\n return `${s.slice(0, ZERO_REF_STAGING_FILE_PREVIEW_MAX_CHARS)}\\n\u2026 (truncated)`;\n } catch {\n return undefined;\n }\n}\n\n/** Maps staging validation failures to the same repair block used for coordination list JSON (SRS-8 / openCodeTestAgent). */\nfunction zeroRefStagingFailureToRepairAppendix(\n outputBasename: string,\n failure: CoordinationJsonValidationFailure | { kind: \"semantic\"; errorsText: string },\n rawPreview?: string,\n): string {\n if (failure.kind === \"semantic\") {\n return formatCoordinationJsonRepairAppendix(outputBasename, {\n kind: \"schema\",\n message: \"Validation failed.\",\n errorsText: failure.errorsText,\n });\n }\n return formatCoordinationJsonRepairAppendix(outputBasename, failure, rawPreview);\n}\n\n/** Must match `zero-reference-classifier-record.schema.json` `fileKind` enum. */\nconst CLASSIFIER_FILE_KIND_CANONICAL = new Set([\n \"source\",\n \"test\",\n \"config\",\n \"script\",\n \"data\",\n \"documentation\",\n \"asset_excluded_by_srs29\",\n \"unknown\",\n]);\n\n/** Maps common model outputs to canonical `fileKind` before Ajv validation. */\nconst CLASSIFIER_FILE_KIND_ALIASES: Record<string, string> = {\n csv: \"data\",\n tsv: \"data\",\n tabular: \"data\",\n spreadsheet: \"data\",\n database: \"data\",\n dataset: \"data\",\n data_file: \"data\",\n excel: \"data\",\n xlsx: \"data\",\n xls: \"data\",\n parquet: \"data\",\n json_data: \"data\",\n markdown: \"documentation\",\n md: \"documentation\",\n readme: \"documentation\",\n text: \"documentation\",\n prose: \"documentation\",\n doc: \"documentation\",\n docs: \"documentation\",\n asset: \"asset_excluded_by_srs29\",\n media: \"asset_excluded_by_srs29\",\n binary: \"unknown\",\n};\n\n/**\n * Normalizes `record.fileKind` so OpenCode output passes the classifier schema\n * when the model uses a synonym (e.g. \"csv\" \u2192 \"data\").\n */\n/**\n * Fixes common OpenCode mistakes before triage Ajv validate and before merge:\n * - `targetItemRef: null` or wrong type (models often emit null for optional fields).\n * - `targetItemRef` as number or `{ \"code\": \"FE-01\" }`.\n * - `evidenceNotes` null or non-strings.\n */\nexport function normalizeTriageRecordForSchema(record: Record<string, unknown>): void {\n const d = record.decision;\n if (typeof d === \"string\") {\n const t = d.trim();\n if (t !== d) {\n record.decision = t;\n }\n }\n\n if (record.evidenceNotes === null || record.evidenceNotes === undefined) {\n record.evidenceNotes = [];\n } else if (Array.isArray(record.evidenceNotes)) {\n record.evidenceNotes = record.evidenceNotes\n .map((x) => {\n if (typeof x === \"string\") {\n return x.trim();\n }\n if (x === null || x === undefined) {\n return \"\";\n }\n return String(x).trim();\n })\n .filter((s) => s.length > 0);\n } else {\n record.evidenceNotes = [];\n }\n\n for (const k of [\"proposedSummary\", \"proposedCode\", \"proposedSlug\"] as const) {\n if (record[k] === null || record[k] === undefined) {\n delete record[k];\n } else if (typeof record[k] === \"string\") {\n const s = record[k].trim();\n if (s.length === 0) {\n delete record[k];\n } else {\n record[k] = s;\n }\n }\n }\n\n const decision = typeof record.decision === \"string\" ? record.decision.trim() : \"\";\n const tir = record.targetItemRef;\n\n if (tir === null || tir === undefined) {\n delete record.targetItemRef;\n } else if (typeof tir === \"string\") {\n const s = tir.trim();\n if (s.length === 0) {\n delete record.targetItemRef;\n } else {\n record.targetItemRef = s;\n }\n } else if (typeof tir === \"number\" && Number.isFinite(tir)) {\n if (decision === \"enrich_existing\") {\n record.targetItemRef = String(Math.trunc(tir));\n } else {\n delete record.targetItemRef;\n }\n } else if (typeof tir === \"object\" && !Array.isArray(tir)) {\n const c = (tir as Record<string, unknown>).code;\n if (typeof c === \"string\" && c.trim().length > 0) {\n record.targetItemRef = c.trim();\n } else {\n delete record.targetItemRef;\n }\n } else {\n delete record.targetItemRef;\n }\n\n if (typeof record.filePath === \"string\") {\n const fp = record.filePath.trim();\n if (fp !== record.filePath) {\n record.filePath = fp;\n }\n }\n if (typeof record.coordinationScope === \"string\") {\n let cs = record.coordinationScope.trim();\n const triageScopeSynonyms: Record<string, string> = {\n experiences: \"experience\",\n services: \"service\",\n data_models: \"data_model\",\n };\n cs = triageScopeSynonyms[cs] || cs;\n record.coordinationScope = cs;\n }\n}\n\nexport function normalizeClassifierRecordFileKind(record: Record<string, unknown>): void {\n const fk = record.fileKind;\n if (typeof fk !== \"string\") {\n return;\n }\n const lower = fk.trim().toLowerCase();\n if (lower.length === 0) {\n return;\n }\n if (CLASSIFIER_FILE_KIND_CANONICAL.has(lower)) {\n record.fileKind = lower;\n return;\n }\n const mapped = CLASSIFIER_FILE_KIND_ALIASES[lower];\n if (mapped) {\n record.fileKind = mapped;\n }\n}\n\nexport type CoordinationListTriageKind = \"feature\" | \"experience\" | \"service\" | \"data_model\";\n\nconst ROUTING_LEGACY: Record<string, string> = {\n document_project_md: \"project\",\n document_architecture_md: \"architecture\",\n};\n\n/** Maps legacy coordinationScope (and common singular mistakes) to v0.6 top-level routing. */\nconst COORD_SCOPE_TO_TOP_ROUTING: Record<string, string> = {\n feature: \"feature\",\n experience: \"experiences\",\n experiences: \"experiences\",\n service: \"services\",\n services: \"services\",\n data_model: \"data_models\",\n data_models: \"data_models\",\n use_case: \"feature\",\n scenario: \"feature\",\n behavior: \"experiences\",\n field_domain: \"data_models\",\n};\n\n/** Normalizes stage-1 routing to SRS-30 v0.6 enum; maps legacy classifier output. */\nexport function normalizeClassifierRouting(record: Record<string, unknown>): void {\n const raw = record.routing;\n if (typeof raw !== \"string\") {\n return;\n }\n let r = raw.trim();\n const legacy = ROUTING_LEGACY[r];\n if (legacy) {\n record.routing = legacy;\n delete record.coordinationScope;\n return;\n }\n if (r === \"coordination_follow_up\") {\n const scopeRaw = record.coordinationScope;\n const scope = typeof scopeRaw === \"string\" ? scopeRaw.trim() : \"\";\n record.routing = COORD_SCOPE_TO_TOP_ROUTING[scope] || \"feature\";\n delete record.coordinationScope;\n return;\n }\n if (r === \"data_model\" || r === \"data_models\") {\n record.routing = \"data_models\";\n delete record.coordinationScope;\n return;\n }\n if (r === \"experience\" || r === \"experiences\") {\n record.routing = \"experiences\";\n delete record.coordinationScope;\n return;\n }\n if (r === \"service\" || r === \"services\") {\n record.routing = \"services\";\n delete record.coordinationScope;\n return;\n }\n record.routing = r;\n}\n\nexport function normalizeClassifierStagingRecord(record: Record<string, unknown>): void {\n normalizeClassifierRecordFileKind(record);\n normalizeClassifierRouting(record);\n}\n\n/** Stage-1 routing (+ legacy coordination_follow_up) \u2192 stage-2 list triage kind. */\nexport function resolveListTriageKindFromStaging(staging: Record<string, unknown>): CoordinationListTriageKind | null {\n const routing = typeof staging.routing === \"string\" ? staging.routing.trim() : \"\";\n const scope = typeof staging.coordinationScope === \"string\" ? staging.coordinationScope.trim() : \"\";\n\n if (routing === \"feature\") {\n return \"feature\";\n }\n if (routing === \"experiences\") {\n return \"experience\";\n }\n if (routing === \"services\") {\n return \"service\";\n }\n if (routing === \"data_models\") {\n return \"data_model\";\n }\n if (routing === \"coordination_follow_up\") {\n const top = COORD_SCOPE_TO_TOP_ROUTING[scope] || \"feature\";\n if (top === \"experiences\") {\n return \"experience\";\n }\n if (top === \"services\") {\n return \"service\";\n }\n if (top === \"data_models\") {\n return \"data_model\";\n }\n return \"feature\";\n }\n return null;\n}\n\nconst ROUTING_SCHEMA_VERSION = \"1\";\nconst TRIAGE_SCHEMA_VERSION = \"1\";\n\nfunction expandArgvTemplate(template: string[], vars: Record<string, string>): string[] {\n return template.map((part) => {\n let s = part;\n for (const [k, v] of Object.entries(vars)) {\n s = s.split(`{${k}}`).join(v);\n }\n return s;\n });\n}\n\nfunction schemaRef(worktreeRoot: string, schemaBasename: string): string {\n return path.join(worktreeRoot, \".opencode\", \"schemas\", \"context-lists\", schemaBasename);\n}\n\nfunction stagingDir(contextDirAbs: string): string {\n return path.join(contextDirAbs, \"_zero-ref-staging\");\n}\n\nexport function stagingPathForTarget(\n contextDirAbs: string,\n kind: \"classifier\" | \"triage\",\n targetFilePathPosix: string,\n): string {\n const h = crypto.createHash(\"sha256\").update(targetFilePathPosix, \"utf8\").digest(\"hex\").slice(0, 16);\n return path.join(stagingDir(contextDirAbs), `${kind}-${h}.json`);\n}\n\n/** Read `nonReferencedFiles` from coverage JSON under the given repository root (workspace folder or analysis worktree). */\nexport function readNonReferencedFilesFromRepositoryRoot(\n repositoryRootAbs: string,\n): { ok: true; paths: string[]; generatedAt?: string } | { ok: false; error: string } {\n const p = path.join(repositoryRootAbs, \".gluecharm\", \"context\", \"coverage-reference-validation.json\");\n const r = readAndValidateCoverageReferenceValidationFile(p);\n if (!r.ok) {\n return { ok: false, error: r.errors.join(\"; \") };\n }\n const doc = r.data as { nonReferencedFiles?: unknown; generatedAt?: unknown };\n const raw = doc.nonReferencedFiles;\n if (!Array.isArray(raw)) {\n return { ok: false, error: \"coverage-reference-validation.json missing nonReferencedFiles array.\" };\n }\n const paths: string[] = [];\n for (const x of raw) {\n if (typeof x === \"string\" && x.trim().length > 0) {\n const n = normalizeRepoRelativePath(repositoryRootAbs, x.trim());\n if (n) {\n paths.push(n);\n }\n }\n }\n const generatedAt = typeof doc.generatedAt === \"string\" ? doc.generatedAt : undefined;\n return { ok: true, paths, ...(generatedAt ? { generatedAt } : {}) };\n}\n\nexport function readNonReferencedFilesFromWorkspace(\n workspaceRootAbs: string,\n): { ok: true; paths: string[]; generatedAt?: string } | { ok: false; error: string } {\n return readNonReferencedFilesFromRepositoryRoot(workspaceRootAbs);\n}\n\nexport type RoutingDoc = {\n schemaVersion: string;\n coverageReferenceGeneratedAt?: string;\n records: Record<string, Record<string, unknown>>;\n};\n\nexport type TriageDoc = {\n schemaVersion: string;\n records: Record<string, Record<string, unknown>>;\n};\n\nexport function readOrInitRoutingDoc(routingAbs: string, coverageReferenceGeneratedAt?: string): RoutingDoc {\n if (!fs.existsSync(routingAbs)) {\n return {\n schemaVersion: ROUTING_SCHEMA_VERSION,\n ...(coverageReferenceGeneratedAt ? { coverageReferenceGeneratedAt } : {}),\n records: {},\n };\n }\n const raw = fs.readFileSync(routingAbs, \"utf-8\");\n const data = JSON.parse(raw) as RoutingDoc;\n if (!data.records || typeof data.records !== \"object\") {\n return {\n schemaVersion: ROUTING_SCHEMA_VERSION,\n ...(coverageReferenceGeneratedAt ? { coverageReferenceGeneratedAt } : {}),\n records: {},\n };\n }\n return data;\n}\n\nexport function readOrInitTriageDoc(triageAbs: string): TriageDoc {\n if (!fs.existsSync(triageAbs)) {\n return { schemaVersion: TRIAGE_SCHEMA_VERSION, records: {} };\n }\n const raw = fs.readFileSync(triageAbs, \"utf-8\");\n const data = JSON.parse(raw) as TriageDoc;\n if (!data.records || typeof data.records !== \"object\") {\n return { schemaVersion: TRIAGE_SCHEMA_VERSION, records: {} };\n }\n return data;\n}\n\nexport function buildPersistedRoutingRecord(\n rec: Record<string, unknown>,\n classifierAgentStem: string,\n generatedAtIso: string,\n): Record<string, unknown> {\n return {\n ...rec,\n generatedAt: generatedAtIso,\n classifierAgentStem,\n };\n}\n\nexport function buildPersistedTriageRecord(\n rec: Record<string, unknown>,\n triageAgentStem: string,\n generatedAtIso: string,\n): Record<string, unknown> {\n return {\n ...rec,\n generatedAt: generatedAtIso,\n triageAgentStem,\n };\n}\n\nexport function mergeRoutingRecordIntoDoc(doc: RoutingDoc, filePathKey: string, persisted: Record<string, unknown>): void {\n doc.records[filePathKey] = persisted;\n}\n\nexport function mergeTriageRecordIntoDoc(doc: TriageDoc, filePathKey: string, persisted: Record<string, unknown>): void {\n doc.records[filePathKey] = persisted;\n}\n\nexport function validateAndStringifyRoutingDoc(doc: RoutingDoc): { ok: true; json: string } | { ok: false; errors: string[] } {\n const v = validateZeroReferenceRoutingDocumentData(doc);\n if (!v.ok) {\n return v;\n }\n return { ok: true, json: `${JSON.stringify(doc, null, 2)}\\n` };\n}\n\nexport function validateAndStringifyTriageDoc(doc: TriageDoc): { ok: true; json: string } | { ok: false; errors: string[] } {\n const v = validateZeroReferenceTriageDocumentData(doc);\n if (!v.ok) {\n return v;\n }\n return { ok: true, json: `${JSON.stringify(doc, null, 2)}\\n` };\n}\n\nexport function slugifyFeatureLabel(s: string): string {\n const t = s\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, \"-\")\n .replace(/^-+|-+$/g, \"\")\n .slice(0, 80);\n return t.length > 0 ? t : \"feature\";\n}\n\nfunction lineCountRepoFile(worktreeRootAbs: string, relPosix: string): number {\n const abs = path.join(worktreeRootAbs, ...relPosix.split(\"/\"));\n let buf: Buffer;\n try {\n buf = fs.readFileSync(abs);\n } catch {\n return 1;\n }\n const text = decodeBufferForLineCount(buf);\n const lines = text.split(/\\n/);\n return Math.max(1, lines.length);\n}\n\ntype ListMergeCfg = {\n listBasename: string;\n schemaBasename: string;\n arrayKey: string;\n codeRe: RegExp;\n prefix: string;\n};\n\nconst LIST_MERGE_CFG: Record<CoordinationListTriageKind, ListMergeCfg> = {\n feature: {\n listBasename: \"features-list.json\",\n schemaBasename: \"features-list.schema.json\",\n arrayKey: \"features\",\n codeRe: /^FE-(\\d+)$/,\n prefix: \"FE\",\n },\n experience: {\n listBasename: \"experiences-list.json\",\n schemaBasename: \"experiences-list.schema.json\",\n arrayKey: \"views\",\n codeRe: /^XP-(\\d+)$/,\n prefix: \"XP\",\n },\n service: {\n listBasename: \"services-list.json\",\n schemaBasename: \"services-list.schema.json\",\n arrayKey: \"services\",\n codeRe: /^SV-(\\d+)$/,\n prefix: \"SV\",\n },\n data_model: {\n listBasename: \"data-model-list.json\",\n schemaBasename: \"data-model-list.schema.json\",\n arrayKey: \"entities\",\n codeRe: /^DM-(\\d+)$/,\n prefix: \"DM\",\n },\n};\n\nfunction nextListRowCode(rows: { code?: string }[], codeRe: RegExp, prefix: string): string {\n let maxN = 0;\n for (const row of rows) {\n const c = row.code;\n if (typeof c !== \"string\") {\n continue;\n }\n const m = codeRe.exec(c.trim());\n if (m) {\n maxN = Math.max(maxN, parseInt(m[1], 10));\n }\n }\n return `${prefix}-${maxN + 1}`;\n}\n\nexport interface ApplyCoordinationListTriageInput {\n readonly listKind: CoordinationListTriageKind;\n readonly worktreeRootAbs: string;\n readonly contextDirAbs: string;\n readonly unreferencedFilePathPosix: string;\n readonly triage: {\n decision: string;\n targetItemRef?: string;\n proposedSummary?: string;\n proposedCode?: string;\n proposedSlug?: string;\n };\n}\n\nconst LIST_STEP_HINT: Record<CoordinationListTriageKind, string> = {\n feature: \"listFeatures\",\n experience: \"listExperiences\",\n service: \"listServices\",\n data_model: \"listDataModel\",\n};\n\n/**\n * Programmatic merge into the coordination list for **feature** / **experience** / **service** / **data_model** (SRS-30 v0.6).\n */\nexport function applyCoordinationListTriageMerge(\n input: ApplyCoordinationListTriageInput,\n): { ok: true } | { ok: false; message: string } {\n const cfg = LIST_MERGE_CFG[input.listKind];\n const listPath = path.join(input.contextDirAbs, cfg.listBasename);\n const schemaPath = path.join(resolveContextListSchemasDir(), cfg.schemaBasename);\n if (!fs.existsSync(listPath)) {\n return {\n ok: false,\n message: `${cfg.listBasename} not found \u2014 run coordination step ${LIST_STEP_HINT[input.listKind]} first.`,\n };\n }\n let raw: string;\n try {\n raw = fs.readFileSync(listPath, \"utf-8\");\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n let doc: Record<string, unknown>;\n try {\n doc = JSON.parse(raw) as Record<string, unknown>;\n } catch (e) {\n return { ok: false, message: `${cfg.listBasename} parse error: ${e instanceof Error ? e.message : String(e)}` };\n }\n const arr = doc[cfg.arrayKey];\n if (!Array.isArray(arr)) {\n return { ok: false, message: `${cfg.listBasename} missing ${cfg.arrayKey} array.` };\n }\n const rows = arr as Array<Record<string, unknown>>;\n const pathPosix = input.unreferencedFilePathPosix;\n const endLine = lineCountRepoFile(input.worktreeRootAbs, pathPosix);\n const ref = { path: pathPosix, startLine: 1, endLine };\n\n if (input.triage.decision === \"enrich_existing\") {\n const code = input.triage.targetItemRef?.trim();\n if (!code) {\n return { ok: false, message: \"enrich_existing requires targetItemRef.\" };\n }\n const row = rows.find((f) => f.code === code);\n if (!row) {\n return { ok: false, message: `No row with code ${code} in ${cfg.listBasename}.` };\n }\n const sr = Array.isArray(row.sourceReferences) ? [...(row.sourceReferences as object[])] : [];\n const dup = sr.some((x) => x && typeof x === \"object\" && (x as { path?: string }).path === pathPosix);\n if (!dup) {\n sr.push(ref);\n }\n row.sourceReferences = sr;\n } else if (input.triage.decision === \"new_item\") {\n const summary = input.triage.proposedSummary?.trim();\n if (!summary) {\n return { ok: false, message: \"new_item requires proposedSummary.\" };\n }\n const rowCode = input.triage.proposedCode?.trim() || nextListRowCode(rows as { code?: string }[], cfg.codeRe, cfg.prefix);\n const slug = input.triage.proposedSlug?.trim() || slugifyFeatureLabel(summary);\n rows.push({\n code: rowCode,\n name: summary.slice(0, 200),\n slug,\n description: `Linked from zero-reference remediation for \\`${pathPosix}\\`.`,\n sourceReferences: [ref],\n });\n doc[cfg.arrayKey] = rows;\n } else {\n return { ok: true };\n }\n\n if (!Array.isArray(doc.revisionLog)) {\n doc.revisionLog = [];\n }\n (doc.revisionLog as object[]).push({\n at: new Date().toISOString(),\n summary: `SRS-30 zero-reference remediation: ${input.triage.decision} for ${pathPosix} (${input.listKind})`,\n });\n\n const tmp = `${listPath}.tmp.${process.pid}`;\n try {\n fs.writeFileSync(tmp, `${JSON.stringify(doc, null, 2)}\\n`, \"utf-8\");\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n const v = validateCoordinationListJson(tmp, schemaPath);\n if (!v.ok) {\n try {\n fs.unlinkSync(tmp);\n } catch {\n /* ignore */\n }\n return { ok: false, message: `${cfg.listBasename} validation failed: ${JSON.stringify(v.failure)}` };\n }\n try {\n fs.renameSync(tmp, listPath);\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n return { ok: true };\n}\n\nexport interface ApplyFeatureTriageInput {\n readonly worktreeRootAbs: string;\n readonly contextDirAbs: string;\n readonly unreferencedFilePathPosix: string;\n readonly triage: {\n decision: string;\n targetItemRef?: string;\n proposedSummary?: string;\n proposedCode?: string;\n proposedSlug?: string;\n };\n}\n\n/** @deprecated Prefer {@link applyCoordinationListTriageMerge} with listKind **feature**. */\nexport function applyFeatureTriageToFeaturesList(input: ApplyFeatureTriageInput): { ok: true } | { ok: false; message: string } {\n return applyCoordinationListTriageMerge({\n listKind: \"feature\",\n worktreeRootAbs: input.worktreeRootAbs,\n contextDirAbs: input.contextDirAbs,\n unreferencedFilePathPosix: input.unreferencedFilePathPosix,\n triage: input.triage,\n });\n}\n\nexport interface ZeroRefOpenCodeCommon {\n readonly worktreeRoot: string;\n readonly executable: string;\n readonly argvTemplate: string[];\n readonly timeoutMs: number;\n readonly diagnosticLog?: (line: string) => void;\n readonly onAgentLaunched?: () => void;\n readonly abortSignal?: AbortSignal;\n /** SRS-43: provider keys + `OPENCODE_AUTH_PATH` from `.easyspecs/config.json`. */\n readonly openCodeChildEnv?: Record<string, string>;\n}\n\nasync function runClassifierAgent(\n common: ZeroRefOpenCodeCommon,\n contextDirAbs: string,\n targetFilePathPosix: string,\n workspaceLabel: string,\n): Promise<{ ok: boolean; message: string; stagingPath: string; cancelled?: boolean }> {\n const outAbs = stagingPathForTarget(contextDirAbs, \"classifier\", targetFilePathPosix);\n fs.mkdirSync(path.dirname(outAbs), { recursive: true });\n const runDir = path.join(common.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const outputBasename = path.basename(outAbs);\n const listTaskDescription = [\n `Target file (repo-relative, POSIX): **${targetFilePathPosix}**`,\n `Workspace label hint: **${workspaceLabel}**.`,\n \"Read this file and minimal neighbours (imports, SQL/scripts, docs) \u2014 infer role and product fit.\",\n \"Emit **one** JSON object matching the classifier record schema. **filePath** must exactly match the target path above.\",\n \"**fileKind**: `source`, `test`, `config`, `script`, `data`, `documentation`, `asset_excluded_by_srs29`, `unknown` (CSV \u2192 **data**).\",\n \"Set **routing** to **exactly one** of these literals (top-level remediation bucket \u2014 SRS-30 v0.6):\",\n \"- **`project`** \u2014 product / charter / handbook context; next stage adds a citation in **project.md**.\",\n \"- **`architecture`** \u2014 cross-cutting technical structure; citation in **architecture.md**.\",\n \"- **`feature`** \u2014 user-facing capability / epic; triage against **features-list.json** (FE-*).\",\n \"- **`experiences`** \u2014 UX / journeys / interactions; triage against **experiences-list.json** (XP-* views).\",\n \"- **`services`** \u2014 backend services / APIs; triage against **services-list.json** (SV-*).\",\n \"- **`data_models`** \u2014 ORM entities, table mappers, DAL for domain tables (e.g. Delphi `*.pas` mapping `[dbo].[Table]`, EF entities, SQL DDL consumers) \u2014 triage against **data-model-list.json** (DM-*).\",\n \"- **`no_action`** \u2014 generated noise or out of scope; you **must** add top-level **`rationale`** (non-empty string). For any other `routing`, omit **`rationale**`.\",\n \"**JSON root:** only these keys allowed \u2014 `filePath`, `fileKind`, `projectRelationSummary`, `routing`, and `rationale` when `routing` is `no_action`. No other top-level keys (`reason`, `note`, etc.). The property name must be **`rationale`**, never a synonym.\",\n \"Example: a Delphi unit that maps **ConsumoDia** DB table \u2192 **`data_models`**, not architecture.\",\n ].join(\"\\n\");\n\n let repairAppendix: string | undefined;\n let lastFailureMessage = \"Classifier staging output invalid.\";\n\n for (let attempt = 0; attempt < ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS; attempt++) {\n if (common.abortSignal?.aborted) {\n return { ok: false, message: \"Stopped.\", stagingPath: outAbs, cancelled: true };\n }\n const body = fillListJsonPrompt({\n agentId: \"ctx-classify-unreferenced\",\n agentDisplayName: \"Classify unreferenced file\",\n worktreeRoot: common.worktreeRoot,\n listTaskDescription,\n listSchemaRef: schemaRef(common.worktreeRoot, \"zero-reference-classifier-record.schema.json\"),\n outputFileAbsolute: outAbs,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n ...(repairAppendix ? { repairAppendix } : {}),\n });\n const promptPath = path.join(runDir, `zero-ref-classify-a${attempt}-${Date.now()}.prompt.txt`);\n fs.writeFileSync(promptPath, body, \"utf-8\");\n const argv = expandArgvTemplate(common.argvTemplate, {\n promptFile: promptPath,\n agentId: ZERO_REF_CLASSIFY_AGENT_STEM,\n worktree: common.worktreeRoot,\n });\n common.diagnosticLog?.(\n attempt === 0\n ? `[SRS-30] classifier prompt: ${promptPath}`\n : `[SRS-30] classifier repair run ${attempt + 1}/${ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS}: ${promptPath}`,\n );\n const cli = await runOpenCodeAgent(common.worktreeRoot, argv, {\n timeoutMs: common.timeoutMs,\n executable: common.executable,\n diagnosticLog: common.diagnosticLog,\n onAgentLaunched: common.onAgentLaunched,\n signal: common.abortSignal,\n ...(common.openCodeChildEnv ? { childEnv: common.openCodeChildEnv } : {}),\n });\n if (cli.cancelled || common.abortSignal?.aborted) {\n return { ok: false, message: \"Stopped.\", stagingPath: outAbs, cancelled: true };\n }\n if (!cli.ok) {\n return { ok: false, message: cli.message || \"OpenCode failed.\", stagingPath: outAbs };\n }\n\n const canRetry = attempt < ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS - 1;\n let st: fs.Stats | undefined;\n try {\n st = fs.statSync(outAbs);\n } catch {\n st = undefined;\n }\n if (!st?.isFile()) {\n lastFailureMessage = `Classifier did not write ${outAbs}`;\n if (canRetry) {\n repairAppendix = formatCoordinationJsonMissingArtefactRepairAppendix(outputBasename, \"missing\");\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n if (st.size === 0) {\n lastFailureMessage = `Classifier output empty: ${outAbs}`;\n if (canRetry) {\n repairAppendix = formatCoordinationJsonMissingArtefactRepairAppendix(outputBasename, \"empty\");\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(fs.readFileSync(outAbs, \"utf-8\"));\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n lastFailureMessage = `Classifier output not valid JSON: ${msg}`;\n if (canRetry) {\n repairAppendix = formatCoordinationJsonRepairAppendix(\n outputBasename,\n { kind: \"parse\", message: msg },\n readStagingOutputPreview(outAbs),\n );\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n lastFailureMessage = \"Classifier output must be a single JSON object.\";\n if (canRetry) {\n repairAppendix = zeroRefStagingFailureToRepairAppendix(outputBasename, {\n kind: \"semantic\",\n errorsText: lastFailureMessage,\n });\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n normalizeClassifierStagingRecord(parsed as Record<string, unknown>);\n const v = validateZeroReferenceClassifierRecordData(parsed);\n if (!v.ok) {\n lastFailureMessage = `Classifier JSON invalid: ${v.errors.join(\"; \")}`;\n if (canRetry) {\n repairAppendix = zeroRefStagingFailureToRepairAppendix(outputBasename, {\n kind: \"semantic\",\n errorsText: v.errors.map((x) => `- ${x}`).join(\"\\n\"),\n });\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n const rec = parsed as { filePath?: string };\n if (rec.filePath !== targetFilePathPosix) {\n lastFailureMessage = `Classifier filePath mismatch: expected ${targetFilePathPosix}, got ${String(rec.filePath)}`;\n if (canRetry) {\n repairAppendix = zeroRefStagingFailureToRepairAppendix(outputBasename, {\n kind: \"semantic\",\n errorsText: lastFailureMessage,\n });\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n return { ok: true, message: \"Classifier OK.\", stagingPath: outAbs };\n }\n\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n}\n\nconst TRIAGE_SCOPE_META: Record<\n CoordinationListTriageKind,\n { listFile: string; codeExample: string; codeKind: string; agentLabel: string }\n> = {\n feature: {\n listFile: \"features-list.json\",\n codeExample: \"FE-01\",\n codeKind: \"FE-*\",\n agentLabel: \"feature\",\n },\n experience: {\n listFile: \"experiences-list.json\",\n codeExample: \"XP-01\",\n codeKind: \"XP-* (top-level **views** rows)\",\n agentLabel: \"experience\",\n },\n service: {\n listFile: \"services-list.json\",\n codeExample: \"SV-01\",\n codeKind: \"SV-*\",\n agentLabel: \"service\",\n },\n data_model: {\n listFile: \"data-model-list.json\",\n codeExample: \"DM-01\",\n codeKind: \"DM-* (**entities**)\",\n agentLabel: \"data_model\",\n },\n};\n\nasync function runMarkdownReferenceAgent(\n common: ZeroRefOpenCodeCommon,\n contextDirAbs: string,\n targetFilePathPosix: string,\n routingSummary: string,\n which: \"project\" | \"architecture\",\n): Promise<{ ok: boolean; message: string; cancelled?: boolean }> {\n const mdBasename = which === \"project\" ? \"project.md\" : \"architecture.md\";\n const mdAbs = path.join(contextDirAbs, mdBasename);\n const agentStem = which === \"project\" ? ZERO_REF_ADD_REF_PROJECT_AGENT_STEM : ZERO_REF_ADD_REF_ARCH_AGENT_STEM;\n const runDir = path.join(common.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const lines = [\n `# SRS-30 \u2014 Add reference to ${mdBasename}`,\n ``,\n `Worktree root: \\`${common.worktreeRoot}\\``,\n `Edit this file if it exists (create minimal structure if missing): \\`${mdAbs}\\``,\n ``,\n `**Target (repo-relative):** \\`${targetFilePathPosix}\\``,\n `**Classifier summary:** ${routingSummary}`,\n ``,\n `Add a **source reference** for this file so SRS-29 coverage improves:`,\n `- Prefer a bullet under \\`## Evidence index\\` or \\`## Referenced implementation files\\` using \\`path:startLine-endLine\\` style (SRS-16).`,\n `- If the file is short, \\`${targetFilePathPosix}:1-<lastLine>\\` is acceptable.`,\n `- Do not remove unrelated content; append or extend the most appropriate section.`,\n ];\n const promptPath = path.join(runDir, `zero-ref-md-${which}-${Date.now()}.prompt.txt`);\n fs.writeFileSync(promptPath, lines.join(\"\\n\"), \"utf-8\");\n const argv = expandArgvTemplate(common.argvTemplate, {\n promptFile: promptPath,\n agentId: agentStem,\n worktree: common.worktreeRoot,\n });\n common.diagnosticLog?.(`[SRS-30] ${which} markdown prompt: ${promptPath}`);\n const cli = await runOpenCodeAgent(common.worktreeRoot, argv, {\n timeoutMs: common.timeoutMs,\n executable: common.executable,\n diagnosticLog: common.diagnosticLog,\n onAgentLaunched: common.onAgentLaunched,\n signal: common.abortSignal,\n ...(common.openCodeChildEnv ? { childEnv: common.openCodeChildEnv } : {}),\n });\n if (cli.cancelled || common.abortSignal?.aborted) {\n return { ok: false, message: \"Stopped.\", cancelled: true };\n }\n if (!cli.ok) {\n return { ok: false, message: cli.message || \"OpenCode failed.\" };\n }\n return { ok: true, message: `${mdBasename} reference pass completed.` };\n}\n\nasync function runCoordinationTriageAgent(\n common: ZeroRefOpenCodeCommon,\n contextDirAbs: string,\n targetFilePathPosix: string,\n routingSummary: string,\n workspaceLabel: string,\n triageScope: CoordinationListTriageKind,\n): Promise<{ ok: boolean; message: string; stagingPath: string; cancelled?: boolean }> {\n const meta = TRIAGE_SCOPE_META[triageScope];\n const outAbs = stagingPathForTarget(contextDirAbs, \"triage\", targetFilePathPosix);\n fs.mkdirSync(path.dirname(outAbs), { recursive: true });\n const runDir = path.join(common.worktreeRoot, \".opencode\", \"_run\");\n fs.mkdirSync(runDir, { recursive: true });\n const outputBasename = path.basename(outAbs);\n const listTaskDescription = [\n `Target file: **${targetFilePathPosix}** (${workspaceLabel})`,\n \"**Classifier summary:**\",\n routingSummary,\n \"\",\n `Read **${meta.listFile}** under \\`.gluecharm/context/\\` and decide: **new_item**, **enrich_existing**, **defer**, or **no_action**.`,\n `For **new_item**: **proposedSummary** (name); optional **proposedCode** (${meta.codeKind}, e.g. ${meta.codeExample}), **proposedSlug** (kebab-case).`,\n `For **enrich_existing**: **targetItemRef** must be a **string** matching an existing row **code** (e.g. \\`\"${meta.codeExample}\"\\`). Never null or number.`,\n \"**evidenceNotes**: short bullet strings (escape backslashes in JSON strings as `\\\\\\\\`; do not put unescaped `\\\\` before letters inside strings).\",\n `**coordinationScope** in JSON must be exactly **\"${triageScope}\"** (schema enum). **filePath** must match the target above.`,\n ].join(\"\\n\");\n\n let repairAppendix: string | undefined;\n let lastFailureMessage = \"Triage staging output invalid.\";\n\n for (let attempt = 0; attempt < ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS; attempt++) {\n if (common.abortSignal?.aborted) {\n return { ok: false, message: \"Stopped.\", stagingPath: outAbs, cancelled: true };\n }\n const body = fillListJsonPrompt({\n agentId: `ctx-triage-unreferenced-${triageScope}`,\n agentDisplayName: `Triage unreferenced file \u2014 ${meta.agentLabel}`,\n worktreeRoot: common.worktreeRoot,\n listTaskDescription,\n listSchemaRef: schemaRef(common.worktreeRoot, \"zero-reference-triage-record.schema.json\"),\n outputFileAbsolute: outAbs,\n outputBasename,\n allowJsonFence: false,\n parentContextBlock: \"\",\n ...(repairAppendix ? { repairAppendix } : {}),\n });\n const promptPath = path.join(runDir, `zero-ref-triage-a${attempt}-${Date.now()}.prompt.txt`);\n fs.writeFileSync(promptPath, body, \"utf-8\");\n const argv = expandArgvTemplate(common.argvTemplate, {\n promptFile: promptPath,\n agentId: ZERO_REF_TRIAGE_COORD_AGENT_STEM,\n worktree: common.worktreeRoot,\n });\n common.diagnosticLog?.(\n attempt === 0\n ? `[SRS-30] triage prompt: ${promptPath}`\n : `[SRS-30] triage repair run ${attempt + 1}/${ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS}: ${promptPath}`,\n );\n const cli = await runOpenCodeAgent(common.worktreeRoot, argv, {\n timeoutMs: common.timeoutMs,\n executable: common.executable,\n diagnosticLog: common.diagnosticLog,\n onAgentLaunched: common.onAgentLaunched,\n signal: common.abortSignal,\n ...(common.openCodeChildEnv ? { childEnv: common.openCodeChildEnv } : {}),\n });\n if (cli.cancelled || common.abortSignal?.aborted) {\n return { ok: false, message: \"Stopped.\", stagingPath: outAbs, cancelled: true };\n }\n if (!cli.ok) {\n return { ok: false, message: cli.message || \"OpenCode failed.\", stagingPath: outAbs };\n }\n\n const canRetry = attempt < ZERO_REF_STAGING_JSON_TOTAL_ATTEMPTS - 1;\n let st: fs.Stats | undefined;\n try {\n st = fs.statSync(outAbs);\n } catch {\n st = undefined;\n }\n if (!st?.isFile()) {\n lastFailureMessage = `Triage did not write ${outAbs}`;\n if (canRetry) {\n repairAppendix = formatCoordinationJsonMissingArtefactRepairAppendix(outputBasename, \"missing\");\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n if (st.size === 0) {\n lastFailureMessage = `Triage output empty: ${outAbs}`;\n if (canRetry) {\n repairAppendix = formatCoordinationJsonMissingArtefactRepairAppendix(outputBasename, \"empty\");\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(fs.readFileSync(outAbs, \"utf-8\"));\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n lastFailureMessage = `Triage output not valid JSON: ${msg}`;\n if (canRetry) {\n repairAppendix = formatCoordinationJsonRepairAppendix(\n outputBasename,\n { kind: \"parse\", message: msg },\n readStagingOutputPreview(outAbs),\n );\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n if (!parsed || typeof parsed !== \"object\" || Array.isArray(parsed)) {\n lastFailureMessage = \"Triage output must be a single JSON object.\";\n if (canRetry) {\n repairAppendix = zeroRefStagingFailureToRepairAppendix(outputBasename, {\n kind: \"semantic\",\n errorsText: lastFailureMessage,\n });\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n normalizeTriageRecordForSchema(parsed as Record<string, unknown>);\n const v = validateZeroReferenceTriageRecordData(parsed);\n if (!v.ok) {\n lastFailureMessage = `Triage JSON invalid: ${v.errors.join(\"; \")}`;\n if (canRetry) {\n repairAppendix = zeroRefStagingFailureToRepairAppendix(outputBasename, {\n kind: \"semantic\",\n errorsText: v.errors.map((x) => `- ${x}`).join(\"\\n\"),\n });\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n const rec = parsed as { filePath?: string; coordinationScope?: string };\n if (rec.filePath !== targetFilePathPosix || rec.coordinationScope !== triageScope) {\n lastFailureMessage = `Triage filePath/scope mismatch (expected ${triageScope} + same path).`;\n if (canRetry) {\n repairAppendix = zeroRefStagingFailureToRepairAppendix(outputBasename, {\n kind: \"semantic\",\n errorsText: [\n lastFailureMessage,\n `- **filePath** must be exactly: \\`${targetFilePathPosix}\\``,\n `- **coordinationScope** must be exactly: \\`${triageScope}\\``,\n `- Got filePath=${JSON.stringify(rec.filePath)}, coordinationScope=${JSON.stringify(rec.coordinationScope)}`,\n ].join(\"\\n\"),\n });\n continue;\n }\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n }\n try {\n fs.writeFileSync(outAbs, `${JSON.stringify(parsed, null, 2)}\\n`, \"utf-8\");\n } catch {\n /* staging path best-effort; pipeline re-normalizes on read */\n }\n return { ok: true, message: \"Triage OK.\", stagingPath: outAbs };\n }\n\n return { ok: false, message: lastFailureMessage, stagingPath: outAbs };\n}\n\nexport class AsyncMutex {\n private chain: Promise<void> = Promise.resolve();\n\n run<T>(fn: () => Promise<T>): Promise<T> {\n const next = this.chain.then(() => fn());\n this.chain = next.then(\n () => undefined,\n () => undefined,\n );\n return next;\n }\n}\n\nexport interface RunOneUnreferencedFileParams extends ZeroRefOpenCodeCommon {\n readonly contextDirAbs: string;\n readonly workspaceRootAbs: string;\n readonly workspaceLabel: string;\n readonly targetFilePathPosix: string;\n readonly coverageReferenceGeneratedAt?: string;\n readonly routingMutex: AsyncMutex;\n readonly triageMutex: AsyncMutex;\n /** Serializes all coordination **`*-list.json`** merges (any scope). */\n readonly coordinationListsMutex: AsyncMutex;\n}\n\nexport async function runOneUnreferencedFilePipeline(p: RunOneUnreferencedFileParams): Promise<{\n ok: boolean;\n message: string;\n cancelled?: boolean;\n}> {\n const routingAbs = path.join(p.contextDirAbs, ZERO_REF_ROUTING_BASENAME);\n const triageAbs = path.join(p.contextDirAbs, ZERO_REF_TRIAGE_BASENAME);\n const key = p.targetFilePathPosix;\n\n const cr = await runClassifierAgent(p, p.contextDirAbs, key, p.workspaceLabel);\n if (!cr.ok) {\n return { ok: false, message: cr.message, ...(cr.cancelled ? { cancelled: true } : {}) };\n }\n\n let stagingParsed: Record<string, unknown>;\n try {\n stagingParsed = JSON.parse(fs.readFileSync(cr.stagingPath, \"utf-8\")) as Record<string, unknown>;\n } catch (e) {\n return { ok: false, message: String(e) };\n }\n\n const now = new Date().toISOString();\n const persisted = buildPersistedRoutingRecord(stagingParsed, ZERO_REF_CLASSIFY_AGENT_STEM, now);\n\n await p.routingMutex.run(async () => {\n const doc = readOrInitRoutingDoc(routingAbs, p.coverageReferenceGeneratedAt);\n if (p.coverageReferenceGeneratedAt && !doc.coverageReferenceGeneratedAt) {\n doc.coverageReferenceGeneratedAt = p.coverageReferenceGeneratedAt;\n }\n mergeRoutingRecordIntoDoc(doc, key, persisted);\n const s = validateAndStringifyRoutingDoc(doc);\n if (!s.ok) {\n throw new Error(s.errors.join(\"; \"));\n }\n fs.mkdirSync(path.dirname(routingAbs), { recursive: true });\n fs.writeFileSync(routingAbs, s.json, \"utf-8\");\n });\n\n const routing = stagingParsed.routing as string;\n const routingSummary =\n typeof stagingParsed.projectRelationSummary === \"string\" ? stagingParsed.projectRelationSummary : \"\";\n\n if (routing === \"no_action\") {\n return { ok: true, message: \"no_action recorded.\" };\n }\n\n if (routing === \"project\" || routing === \"document_project_md\") {\n const md = await runMarkdownReferenceAgent(p, p.contextDirAbs, key, routingSummary, \"project\");\n if (!md.ok) {\n return { ok: false, message: md.message, ...(md.cancelled ? { cancelled: true } : {}) };\n }\n return { ok: true, message: `Routing project \u2014 ${md.message}` };\n }\n\n if (routing === \"architecture\" || routing === \"document_architecture_md\") {\n const md = await runMarkdownReferenceAgent(p, p.contextDirAbs, key, routingSummary, \"architecture\");\n if (!md.ok) {\n return { ok: false, message: md.message, ...(md.cancelled ? { cancelled: true } : {}) };\n }\n return { ok: true, message: `Routing architecture \u2014 ${md.message}` };\n }\n\n const listKind = resolveListTriageKindFromStaging(stagingParsed);\n\n if (!listKind) {\n return { ok: true, message: `Routing ${routing} recorded (no automated follow-up).` };\n }\n\n const tr = await runCoordinationTriageAgent(p, p.contextDirAbs, key, routingSummary, p.workspaceLabel, listKind);\n if (!tr.ok) {\n return { ok: false, message: tr.message, ...(tr.cancelled ? { cancelled: true } : {}) };\n }\n\n let triageParsed: Record<string, unknown>;\n try {\n triageParsed = JSON.parse(fs.readFileSync(tr.stagingPath, \"utf-8\")) as Record<string, unknown>;\n } catch (e) {\n return { ok: false, message: String(e) };\n }\n normalizeTriageRecordForSchema(triageParsed);\n\n const triagePersisted = buildPersistedTriageRecord(\n triageParsed,\n ZERO_REF_TRIAGE_COORD_AGENT_STEM,\n new Date().toISOString(),\n );\n await p.triageMutex.run(async () => {\n const doc = readOrInitTriageDoc(triageAbs);\n mergeTriageRecordIntoDoc(doc, key, triagePersisted);\n const s = validateAndStringifyTriageDoc(doc);\n if (!s.ok) {\n throw new Error(s.errors.join(\"; \"));\n }\n fs.mkdirSync(path.dirname(triageAbs), { recursive: true });\n fs.writeFileSync(triageAbs, s.json, \"utf-8\");\n });\n\n const decision = triageParsed.decision as string;\n if (decision === \"new_item\" || decision === \"enrich_existing\") {\n let mergeMsg = \"\";\n await p.coordinationListsMutex.run(async () => {\n const r = applyCoordinationListTriageMerge({\n listKind,\n worktreeRootAbs: p.worktreeRoot,\n contextDirAbs: p.contextDirAbs,\n unreferencedFilePathPosix: key,\n triage: {\n decision,\n targetItemRef: triageParsed.targetItemRef as string | undefined,\n proposedSummary: triageParsed.proposedSummary as string | undefined,\n proposedCode: triageParsed.proposedCode as string | undefined,\n proposedSlug: triageParsed.proposedSlug as string | undefined,\n },\n });\n if (!r.ok) {\n throw new Error(r.message);\n }\n mergeMsg = `${LIST_MERGE_CFG[listKind].listBasename} updated.`;\n });\n return { ok: true, message: `Triage ${decision}. ${mergeMsg}` };\n }\n\n return { ok: true, message: `Triage ${decision}.` };\n}\n\nexport interface RunZeroReferenceRemediationPoolParams extends ZeroRefOpenCodeCommon {\n readonly workspaceRootAbs: string;\n /** Repository root where `coverage-reference-validation.json` was produced (defaults to `workspaceRootAbs`). */\n readonly coverageRepositoryRootAbs?: string;\n readonly worktreeRoot: string;\n readonly paths: readonly string[];\n readonly maxConcurrent: number;\n readonly abortSignal?: AbortSignal;\n readonly onFileDone?: (filePath: string, result: { ok: boolean; message: string; cancelled?: boolean }) => void | Promise<void>;\n}\n\nexport async function runZeroReferenceRemediationPool(\n p: RunZeroReferenceRemediationPoolParams,\n): Promise<{ cancelled: boolean; completed: number; failures: number }> {\n const contextDirAbs = path.join(p.worktreeRoot, \".gluecharm\", \"context\");\n const covRoot = p.coverageRepositoryRootAbs ?? p.workspaceRootAbs;\n const cov = readNonReferencedFilesFromRepositoryRoot(covRoot);\n const coverageAt = cov.ok ? cov.generatedAt : undefined;\n const workspaceLabel = path.basename(p.worktreeRoot);\n\n const routingMutex = new AsyncMutex();\n const triageMutex = new AsyncMutex();\n const coordinationListsMutex = new AsyncMutex();\n\n const paths = [...p.paths];\n let cancelled = false;\n let completed = 0;\n let failures = 0;\n const limit = Math.max(1, Math.min(64, p.maxConcurrent));\n\n let nextIndex = 0;\n\n async function worker(): Promise<void> {\n for (;;) {\n if (p.abortSignal?.aborted) {\n cancelled = true;\n return;\n }\n const idx = nextIndex++;\n if (idx >= paths.length) {\n return;\n }\n const fp = paths[idx]!;\n const one: RunOneUnreferencedFileParams = {\n ...p,\n contextDirAbs,\n workspaceRootAbs: p.workspaceRootAbs,\n workspaceLabel,\n targetFilePathPosix: fp,\n coverageReferenceGeneratedAt: coverageAt,\n routingMutex,\n triageMutex,\n coordinationListsMutex,\n };\n try {\n const r = await runOneUnreferencedFilePipeline(one);\n if (r.cancelled) {\n cancelled = true;\n }\n if (r.ok && !r.cancelled) {\n completed += 1;\n } else if (!r.cancelled) {\n failures += 1;\n }\n await p.onFileDone?.(fp, r);\n } catch (e) {\n failures += 1;\n const msg = e instanceof Error ? e.message : String(e);\n await p.onFileDone?.(fp, { ok: false, message: msg });\n }\n }\n }\n\n const workers = Array.from({ length: Math.min(limit, paths.length) }, () => worker());\n await Promise.all(workers);\n\n if (p.abortSignal?.aborted) {\n cancelled = true;\n }\n\n return { cancelled, completed, failures };\n}\n", "/**\n * SRS-30: validate zero-reference routing / triage JSON against bundled Draft 2020-12 schemas.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport Ajv2020 from \"ajv/dist/2020\";\nimport type { ErrorObject } from \"ajv\";\nimport { resolveContextListSchemasDir } from \"../shared/repoResourcesRoot\";\n\nfunction stripUtf8Bom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nfunction schemasDir(): string {\n return resolveContextListSchemasDir();\n}\n\nfunction formatAjvErrors(errors: ErrorObject[] | null | undefined): string[] {\n if (!errors?.length) {\n return [\"(no error details)\"];\n }\n return errors.slice(0, 40).map((e) => {\n const p = e.instancePath?.length ? e.instancePath : \"(root)\";\n const msg = e.message ?? e.keyword ?? \"?\";\n return `${p}: ${msg}`;\n });\n}\n\nconst ajv = new Ajv2020({ allErrors: true, strict: false });\n\nfunction compileSchema(basename: string): ReturnType<typeof ajv.compile> {\n const schemaPath = path.join(schemasDir(), basename);\n const schemaRaw = stripUtf8Bom(fs.readFileSync(schemaPath, \"utf-8\"));\n const schema = JSON.parse(schemaRaw) as object;\n return ajv.compile(schema);\n}\n\nconst validateClassifierRecord = compileSchema(\"zero-reference-classifier-record.schema.json\");\nconst validateRoutingDoc = compileSchema(\"zero-reference-routing.schema.json\");\nconst validateTriageRecord = compileSchema(\"zero-reference-triage-record.schema.json\");\nconst validateTriageDoc = compileSchema(\"zero-reference-triage.schema.json\");\n\nexport function validateZeroReferenceClassifierRecordData(data: unknown): { ok: true } | { ok: false; errors: string[] } {\n if (validateClassifierRecord(data)) {\n return { ok: true };\n }\n return { ok: false, errors: formatAjvErrors(validateClassifierRecord.errors) };\n}\n\nexport function validateZeroReferenceRoutingDocumentData(data: unknown): { ok: true } | { ok: false; errors: string[] } {\n if (validateRoutingDoc(data)) {\n return { ok: true };\n }\n return { ok: false, errors: formatAjvErrors(validateRoutingDoc.errors) };\n}\n\nexport function validateZeroReferenceTriageRecordData(data: unknown): { ok: true } | { ok: false; errors: string[] } {\n if (validateTriageRecord(data)) {\n return { ok: true };\n }\n return { ok: false, errors: formatAjvErrors(validateTriageRecord.errors) };\n}\n\nexport function validateZeroReferenceTriageDocumentData(data: unknown): { ok: true } | { ok: false; errors: string[] } {\n if (validateTriageDoc(data)) {\n return { ok: true };\n }\n return { ok: false, errors: formatAjvErrors(validateTriageDoc.errors) };\n}\n", "/**\n * SRS-31: reference coverage execution report \u2014 coverage JSON + `no_action` routing rows \u2192 markdown (programmatic).\n *\n * OpenCode is not used: the CLI often exits 0 without writing files (see `opencodeCli.ts`), and all inputs are already structured JSON.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { readAndValidateCoverageReferenceValidationFile } from \"./coverageReferenceValidationSchemaValidate\";\nimport { validateZeroReferenceRoutingDocumentData } from \"./zeroReferenceRemediationSchemaValidate\";\nimport type { RoutingDoc } from \"./zeroReferenceRemediation\";\n\nexport const REFERENCE_COVERAGE_EXECUTION_REPORT_BASENAME = \"reference-coverage-execution-report.md\";\n/** Bundled agent stem (materialize copies to `.opencode/agents/`); optional manual OpenCode use. */\nexport const REFERENCE_COVERAGE_EXECUTION_REPORT_AGENT_STEM = \"agent-reference-coverage-execution-report\";\n\nfunction inlineMdText(s: string): string {\n const t = s.replace(/\\r\\n/g, \"\\n\").replace(/\\n/g, \" \").trim();\n return t.length > 0 ? t : \"\u2014\";\n}\n\nfunction formatMetric(value: unknown): string {\n if (typeof value === \"number\" && Number.isFinite(value)) {\n return String(value);\n }\n return \"\u2014\";\n}\n\n/**\n * Builds SRS-31 markdown that satisfies {@link validateReferenceCoverageExecutionReportMarkdown}.\n */\nexport function formatReferenceCoverageExecutionReportMarkdown(\n coverageData: unknown,\n noActions: readonly NoActionRoutingRow[],\n): string {\n const o = coverageData as Record<string, unknown>;\n const m = (o.metrics as Record<string, unknown> | undefined) ?? {};\n const generatedAt = typeof o.generatedAt === \"string\" ? o.generatedAt : formatMetric(o.generatedAt);\n const repositoryRoot = typeof o.repositoryRoot === \"string\" ? o.repositoryRoot : inlineMdText(String(o.repositoryRoot ?? \"\"));\n const nrCount = Array.isArray(o.nonReferencedFiles) ? o.nonReferencedFiles.length : 0;\n\n const lines: string[] = [\n \"# Reference coverage execution report\",\n \"\",\n \"Snapshot of reference coverage metrics and explicit **`no_action`** classifier decisions from `zero-reference-routing.json`.\",\n \"\",\n \"## Coverage summary\",\n \"\",\n `- **generatedAt:** ${generatedAt}`,\n `- **repositoryRoot:** ${repositoryRoot}`,\n `- **totalLoc:** ${formatMetric(m.totalLoc)}`,\n `- **referencedLoc:** ${formatMetric(m.referencedLoc)}`,\n `- **nonReferencedLoc:** ${formatMetric(m.nonReferencedLoc)}`,\n `- **percentNonReferenced:** ${formatMetric(m.percentNonReferenced)}`,\n `- **nonReferencedFiles count:** ${nrCount}`,\n \"\",\n \"## No-action decisions\",\n \"\",\n ];\n\n if (noActions.length === 0) {\n lines.push(\n \"There are no **`no_action`** classifier decisions in `zero-reference-routing.json`.\",\n \"\",\n );\n } else {\n for (const row of noActions) {\n lines.push(`- **${inlineMdText(row.filePath)}** (${inlineMdText(row.fileKind)})`);\n lines.push(` - **projectRelationSummary:** ${inlineMdText(row.projectRelationSummary)}`);\n lines.push(` - **rationale:** ${inlineMdText(row.rationale)}`);\n }\n lines.push(\"\");\n }\n\n const iso = new Date().toISOString();\n lines.push(\n \"## Revision\",\n \"\",\n `- ${iso} \u2014 generated by EasySpecs extension (SRS-31) from \\`coverage-reference-validation.json\\` and \\`zero-reference-routing.json\\`.`,\n \"\",\n );\n\n return lines.join(\"\\n\");\n}\n\n/** V-A markdown contract (SRS-31 \u00A74): required H1/H2 headings. */\nexport function validateReferenceCoverageExecutionReportMarkdown(\n body: string,\n): { ok: true } | { ok: false; errors: string[] } {\n const errors: string[] = [];\n const checks: { re: RegExp; label: string }[] = [\n { re: /^#\\s+Reference coverage execution report\\s*$/m, label: \"`# Reference coverage execution report`\" },\n { re: /^##\\s+Coverage summary\\s*$/m, label: \"`## Coverage summary`\" },\n { re: /^##\\s+No-action decisions\\s*$/m, label: \"`## No-action decisions`\" },\n ];\n for (const c of checks) {\n if (!c.re.test(body)) {\n errors.push(`Missing required heading ${c.label}`);\n }\n }\n return errors.length === 0 ? { ok: true } : { ok: false, errors };\n}\n\nexport type NoActionRoutingRow = {\n readonly filePath: string;\n readonly fileKind: string;\n readonly projectRelationSummary: string;\n readonly rationale: string;\n};\n\nexport function collectNoActionRowsFromRoutingDoc(doc: RoutingDoc): NoActionRoutingRow[] {\n const rows: NoActionRoutingRow[] = [];\n const recs = doc.records && typeof doc.records === \"object\" ? doc.records : {};\n for (const rec of Object.values(recs)) {\n if (!rec || typeof rec !== \"object\" || Array.isArray(rec)) {\n continue;\n }\n const r = rec as Record<string, unknown>;\n if (r.routing !== \"no_action\") {\n continue;\n }\n const filePath = typeof r.filePath === \"string\" ? r.filePath.trim() : \"\";\n const fileKind = typeof r.fileKind === \"string\" ? r.fileKind : \"\";\n const projectRelationSummary =\n typeof r.projectRelationSummary === \"string\" ? r.projectRelationSummary : \"\";\n const rationale = typeof r.rationale === \"string\" ? r.rationale : \"\";\n if (!filePath) {\n continue;\n }\n rows.push({ filePath, fileKind, projectRelationSummary, rationale });\n }\n rows.sort((a, b) => a.filePath.localeCompare(b.filePath));\n return rows;\n}\n\nfunction readRoutingDocFromDisk(routingAbs: string): { ok: true; doc: RoutingDoc } | { ok: false; error: string } {\n if (!fs.existsSync(routingAbs)) {\n return {\n ok: true,\n doc: { schemaVersion: \"1\", records: {} },\n };\n }\n let raw: string;\n try {\n raw = fs.readFileSync(routingAbs, \"utf-8\");\n } catch (e) {\n return { ok: false, error: e instanceof Error ? e.message : String(e) };\n }\n let data: unknown;\n try {\n data = JSON.parse(raw);\n } catch (e) {\n return { ok: false, error: e instanceof SyntaxError ? e.message : String(e) };\n }\n const v = validateZeroReferenceRoutingDocumentData(data);\n if (!v.ok) {\n return { ok: false, error: `zero-reference-routing.json invalid: ${v.errors.join(\"; \")}` };\n }\n return { ok: true, doc: data as RoutingDoc };\n}\n\nexport interface RunReferenceCoverageExecutionReportParams {\n /** Reads/writes under `.gluecharm/context/` at this root. */\n readonly repositoryRootAbs: string;\n readonly diagnosticLog?: (line: string) => void;\n readonly abortSignal?: AbortSignal;\n}\n\nexport type RunReferenceCoverageExecutionReportResult =\n | { ok: true; outputAbsolutePath: string }\n | { ok: false; error: string; cancelled?: boolean };\n\n/**\n * Writes `reference-coverage-execution-report.md` under `repositoryRootAbs` `.gluecharm/context/`.\n */\nexport async function runReferenceCoverageExecutionReport(\n p: RunReferenceCoverageExecutionReportParams,\n): Promise<RunReferenceCoverageExecutionReportResult> {\n if (p.abortSignal?.aborted) {\n return { ok: false, error: \"Stopped.\", cancelled: true };\n }\n\n const contextDirAbs = path.join(p.repositoryRootAbs, \".gluecharm\", \"context\");\n const coverageAbs = path.join(contextDirAbs, \"coverage-reference-validation.json\");\n const routingAbs = path.join(contextDirAbs, \"zero-reference-routing.json\");\n const outAbs = path.join(contextDirAbs, REFERENCE_COVERAGE_EXECUTION_REPORT_BASENAME);\n\n const cov = readAndValidateCoverageReferenceValidationFile(coverageAbs);\n if (!cov.ok) {\n return { ok: false, error: `Coverage JSON: ${cov.errors.join(\"; \")}` };\n }\n\n const routingRead = readRoutingDocFromDisk(routingAbs);\n if (!routingRead.ok) {\n return { ok: false, error: routingRead.error };\n }\n const noActions = collectNoActionRowsFromRoutingDoc(routingRead.doc);\n\n const md = formatReferenceCoverageExecutionReportMarkdown(cov.data, noActions);\n const val = validateReferenceCoverageExecutionReportMarkdown(md);\n if (!val.ok) {\n return { ok: false, error: `Report markdown invalid: ${val.errors.join(\"; \")}` };\n }\n\n let previous: string | undefined;\n try {\n if (fs.existsSync(outAbs)) {\n previous = fs.readFileSync(outAbs, \"utf-8\");\n }\n } catch {\n previous = undefined;\n }\n\n try {\n fs.mkdirSync(path.dirname(outAbs), { recursive: true });\n fs.writeFileSync(outAbs, md, \"utf-8\");\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n if (previous !== undefined) {\n try {\n fs.writeFileSync(outAbs, previous, \"utf-8\");\n } catch {\n /* best-effort */\n }\n }\n return { ok: false, error: msg };\n }\n\n p.diagnosticLog?.(`[SRS-31] wrote reference coverage execution report \u2014 ${outAbs}`);\n return { ok: true, outputAbsolutePath: outAbs };\n}\n", "/**\n * SRS-13: upload analysis `.gluecharm/context/` files as `srs_discovery` CMS nodes.\n * Pure helpers + orchestration (no VS Code imports).\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\n\nimport type { HttpRequestOptions } from \"../auth/authenticatedFetch\";\nimport { toAuthErrorMessage } from \"../auth/authProtocol\";\nimport type { EasyspecsConfigRoot } from \"../config/easyspecsConfigJson\";\nimport { updateEasyspecsConfig } from \"../config/easyspecsConfigFile\";\n\nimport { INDEX_APPLICATION_CONTEXT_BASENAME, loadSrsDiscoveryIdMapFromContextDir } from \"./contextSrsDiscoveryIdMap\";\n\n/** Basename excluded from **`srs_discovery`** uploads (legacy filename; not written by EasySpecs anymore). */\nexport const UPLOAD_TARGET_FILENAME = \"easyspecs-upload-target.json\";\n\n/** First batch wave size for `POST /api/batch/content/srs_discovery/save` (adaptive B stays within [MIN, MAX]). */\nexport const ADAPTIVE_B_INITIAL = 100;\nexport const ADAPTIVE_B_MIN = 1;\nexport const ADAPTIVE_B_MAX = 500;\nexport const ADAPTIVE_N_INITIAL = 10;\nexport const ADAPTIVE_N_MIN = 1;\nexport const ADAPTIVE_N_MAX = 25;\n/** Rough JSON body cap before reducing batch file count (not truncating content). */\nexport const BATCH_BODY_BYTES_SOFT_MAX = 18_000_000;\n\n/**\n * Batch save can exceed the default API timeout (10s): many rows + DB work. Use a longer client wait\n * so we do not abort with DOMException \"This operation was aborted\" before the server responds.\n */\nexport const SRS_DISCOVERY_BATCH_SAVE_TIMEOUT_MS = 180_000;\n\n/** System Manager `SaveRequest` / `BatchSaveRequest` \u2014 same default as easyspecs.ai-frontend content flows. */\nexport const SRS_DISCOVERY_CONTENT_SCHEMA_PREFIX = \"ag_v0\";\n\n/** Parent linkage on flat `item` (Gluecharm SPA contract). Matches `easyspecs.ai-frontend` `CONTENT_ITEM_BELONGS_KEY`. */\nexport const CONTENT_ITEM_BELONGS_KEY = \":belongs\" as const;\n\nexport interface SrsDiscoveryBelongs {\n readonly target_id: string;\n readonly target_artifact_name: \"application\";\n readonly target_artifact_field_name: \"srs_discovery\";\n readonly direction: \"outgoing\";\n}\n\nexport function srsDiscoveryBelongsToApplication(applicationId: string): SrsDiscoveryBelongs {\n return {\n target_id: applicationId,\n target_artifact_name: \"application\",\n target_artifact_field_name: \"srs_discovery\",\n direction: \"outgoing\",\n };\n}\n\n/** One `srs_discovery` POST (or batch element): flat `item` + `item[CONTENT_ITEM_BELONGS_KEY]`. */\nexport interface SrsDiscoverySavePayload {\n readonly item: Record<string, unknown>;\n readonly disable_events?: boolean;\n readonly content_schema_prefix?: string | null;\n}\n\nfunction srsDiscoveryProperties(\n id: string,\n applicationId: string,\n fileBasename: string,\n contentUtf8: string,\n): Record<string, unknown> {\n return {\n id,\n name: fileBasename,\n status: \"draft\",\n summary: fileBasename,\n long_description: contentUtf8,\n ownership_application_id: applicationId,\n user_story: \"\",\n };\n}\n\n/**\n * `POST /api/content/srs_discovery` \u2014 flat `item` (Gluecharm SPA shape; staging accepts this).\n */\nexport function buildSrsDiscoverySavePayload(\n applicationId: string,\n fileBasename: string,\n contentUtf8: string,\n existingId?: string,\n): SrsDiscoverySavePayload {\n const id = existingId && existingId.trim() ? existingId.trim() : randomUUID();\n const props = srsDiscoveryProperties(id, applicationId, fileBasename, contentUtf8);\n return {\n item: {\n id,\n ...props,\n [CONTENT_ITEM_BELONGS_KEY]: srsDiscoveryBelongsToApplication(applicationId),\n },\n disable_events: false,\n content_schema_prefix: SRS_DISCOVERY_CONTENT_SCHEMA_PREFIX,\n };\n}\n\n/**\n * Batch `/save` uses the **same** envelope as single `POST /api/content/srs_discovery`: flat **`item`**\n * plus **`item[\":belongs\"]`**. A nested **`item.properties`** bag was observed to produce HTTP 400\n * (\u201CId is required\u2026\u201D) on staging even when `item.id` / `properties.id` were set \u2014 the batch path\n * matches the Gluecharm SPA shape, not the legacy `item.properties` pattern (see content-api-guide \u00A76).\n */\nexport function buildSrsDiscoverySavePayloadForBatch(\n applicationId: string,\n fileBasename: string,\n contentUtf8: string,\n existingId?: string,\n): SrsDiscoverySavePayload {\n return buildSrsDiscoverySavePayload(applicationId, fileBasename, contentUtf8, existingId);\n}\n\nfunction normalizeContextRelKey(rel: string): string {\n return rel.replace(/\\\\/g, \"/\");\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return Boolean(v) && typeof v === \"object\" && !Array.isArray(v);\n}\n\nfunction clientItemIdFromPayload(payload: SrsDiscoverySavePayload): string | undefined {\n const id = payload.item.id;\n return typeof id === \"string\" && id.length > 0 ? id : undefined;\n}\n\n/** Assert BasicResponse.success is not false; throws with server error string. */\nexport function assertBasicResponseSuccess(res: unknown): void {\n if (!isRecord(res)) {\n throw new Error(\"Invalid API response.\");\n }\n if (res.success === false) {\n const err = typeof res.error === \"string\" ? res.error : \"Request failed.\";\n throw new Error(err);\n }\n}\n\n/**\n * Unwrap GET /api/content/application/:id (or similar single-node) body.\n */\nexport function parseApplicationPropertiesFromContentGet(\n res: unknown,\n): { id: string; properties: Record<string, unknown> } | null {\n try {\n assertBasicResponseSuccess(res);\n } catch {\n return null;\n }\n let data: unknown = isRecord(res) ? res.data : undefined;\n if (data === null || data === undefined) {\n return null;\n }\n if (isRecord(data) && \"entity\" in data && data.entity !== undefined && !Array.isArray(data.entity)) {\n data = data.entity;\n }\n if (Array.isArray(data) || !isRecord(data)) {\n return null;\n }\n const id = typeof data.id === \"string\" ? data.id : \"\";\n if (!id) {\n return null;\n }\n const props =\n data.properties !== undefined && isRecord(data.properties) ? data.properties : data;\n if (!isRecord(props)) {\n return null;\n }\n return { id, properties: props };\n}\n\n/**\n * Unwrap GET /api/content/application/:id (or similar single-node) body.\n */\nexport function parseApplicationFromContentGet(res: unknown): { id: string; name?: string } | null {\n const full = parseApplicationPropertiesFromContentGet(res);\n if (!full) {\n return null;\n }\n const name = typeof full.properties.name === \"string\" ? full.properties.name : undefined;\n return { id: full.id, name };\n}\n\nexport function listContextFilesForUpload(contextDir: string, excludeBasenames: ReadonlySet<string> = new Set()): string[] {\n if (!fs.existsSync(contextDir) || !fs.statSync(contextDir).isDirectory()) {\n return [];\n }\n const out: string[] = [];\n const walk = (dir: string): void => {\n let entries: fs.Dirent[];\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true });\n } catch {\n return;\n }\n for (const e of entries) {\n const full = path.join(dir, e.name);\n if (e.isDirectory()) {\n if (e.name === \".git\") {\n continue;\n }\n walk(full);\n } else if (e.isFile()) {\n if (excludeBasenames.has(e.name)) {\n continue;\n }\n out.push(full);\n }\n }\n };\n walk(contextDir);\n out.sort((a, b) => a.localeCompare(b));\n return out;\n}\n\n/** EasySpecs project (application) UUID from merged **`repoConfig`** \u2014 **`.easyspecs/config.json`** only (SRS-43). */\nexport function getEasyspecsProjectIdFromRepoConfig(repoConfig: EasyspecsConfigRoot): string | undefined {\n const id = repoConfig.easyspecs?.easyspecsProjectId?.trim();\n return id || undefined;\n}\n\nexport type RequestJsonFn = <T>(path: string, options?: HttpRequestOptions) => Promise<T>;\n\nexport async function validateApplicationExists(\n requestJson: RequestJsonFn,\n applicationId: string,\n): Promise<{ name?: string }> {\n const p = `/api/content/application/${encodeURIComponent(applicationId)}`;\n const body = await requestJson<unknown>(p, { method: \"GET\" });\n const node = parseApplicationFromContentGet(body);\n if (!node || node.id !== applicationId) {\n throw new Error(\"Application not found or unexpected response shape.\");\n }\n return { name: node.name };\n}\n\nexport interface ValidateAndPersistUploadTargetOptions {\n readonly applicationId: string;\n readonly requestJson: RequestJsonFn;\n /** Git/workspace root \u2014 **`.easyspecs/config.json`** receives **`easyspecs.easyspecsProjectId`**. */\n readonly repoRoot: string;\n}\n\n/** SRS-13 / SRS-21: validate GET application, then write **`easyspecs.easyspecsProjectId`** to **`.easyspecs/config.json`**. */\nexport async function validateAndPersistUploadTarget(\n opts: ValidateAndPersistUploadTargetOptions,\n): Promise<{ ok: true; application_name?: string } | { ok: false; message: string }> {\n const { applicationId, requestJson, repoRoot } = opts;\n let appName: string | undefined;\n try {\n const v = await validateApplicationExists(requestJson, applicationId);\n appName = v.name;\n } catch (e) {\n return {\n ok: false,\n message: toAuthErrorMessage(e, \"Could not verify application. Check the project ID and your access.\"),\n };\n }\n try {\n updateEasyspecsConfig(repoRoot, { easyspecs: { easyspecsProjectId: applicationId } });\n } catch (e) {\n return {\n ok: false,\n message: toAuthErrorMessage(e, \"Could not save easyspecs.easyspecsProjectId in .easyspecs/config.json.\"),\n };\n }\n return { ok: true, ...(appName ? { application_name: appName } : {}) };\n}\n\nexport interface FileUploadFailure {\n readonly path: string;\n readonly message: string;\n}\n\n/** Absolute file path \u2192 client `item.id` sent on successful srs_discovery save (SRS-26 Phase B). */\nexport type SucceededSrsDiscoveryIds = Record<string, string>;\n\nexport interface ContextSrsDiscoveryUploadResult {\n readonly succeeded: string[];\n readonly failed: FileUploadFailure[];\n readonly succeededIds: SucceededSrsDiscoveryIds;\n}\n\n/** Invoked after each successful HTTP batch or singles wave (SRS-26 incremental index merge). */\nasync function notifySucceededChunk(\n cb: ((chunk: SucceededSrsDiscoveryIds) => void | Promise<void>) | undefined,\n chunk: SucceededSrsDiscoveryIds,\n): Promise<void> {\n if (!cb) {\n return;\n }\n if (Object.keys(chunk).length === 0) {\n return;\n }\n await Promise.resolve(cb(chunk));\n}\n\nexport interface RunContextSrsDiscoveryUploadOptions {\n readonly requestJson: RequestJsonFn;\n readonly applicationId: string;\n readonly filePaths: readonly string[];\n /**\n * Directory containing context files and `index-application-context.json` (typically worktree\n * `.gluecharm/context`). When set, SRS-33 resolves persisted ids from the index; omit in tests that only need create semantics.\n */\n readonly contextDir?: string;\n /** When false, use parallel single POST only. */\n readonly useBatch: boolean;\n readonly onProgress?: (succeeded: number, total: number) => void;\n readonly log?: (line: string) => void;\n readonly nowMs?: () => number;\n /**\n * After each successful batch `POST .../save`, each successful parallel singles wave, or each large single.\n * Receives only paths \u2192 client `item.id` for that chunk so consumers can persist incrementally (SRS-26).\n */\n readonly onSucceededChunk?: (chunk: SucceededSrsDiscoveryIds) => void | Promise<void>;\n /** When aborted, in-flight HTTP calls reject and remaining files are marked `Cancelled` in the result. */\n readonly signal?: AbortSignal;\n}\n\nconst MAX_LOG_MESSAGE_LEN = 900;\n\n/** Max characters per SRS-13 debug block (Output channel); avoids freezing the editor on huge context files. */\nconst MAX_SRS13_DEBUG_JSON_CHARS = 500_000;\n\nfunction httpApiResponseBody(e: unknown): unknown {\n if (e && typeof e === \"object\" && \"responseBody\" in e) {\n return (e as { responseBody?: unknown }).responseBody;\n }\n return undefined;\n}\n\nfunction truncateForSrs13DebugLog(text: string): string {\n if (text.length <= MAX_SRS13_DEBUG_JSON_CHARS) {\n return text;\n }\n return `${text.slice(0, MAX_SRS13_DEBUG_JSON_CHARS)}\\n\u2026 [SRS-13] truncated: ${String(text.length - MAX_SRS13_DEBUG_JSON_CHARS)} more characters omitted`;\n}\n\nfunction stringifyForSrs13Debug(value: unknown): string {\n try {\n return truncateForSrs13DebugLog(JSON.stringify(value, null, 2));\n } catch {\n return truncateForSrs13DebugLog(String(value));\n }\n}\n\n/**\n * On HTTP failure, log the full request JSON and parsed error response body (when available).\n * Helps diagnose messages like \u201CId is required \u2026 for srs_discovery\u201D (which id field the API means).\n */\nfunction logSrs13HttpDebug(\n log: ((line: string) => void) | undefined,\n path: string,\n method: string,\n requestBody: unknown,\n error: unknown,\n): void {\n if (!log) {\n return;\n }\n let bodyBytes = 0;\n try {\n bodyBytes = Buffer.byteLength(JSON.stringify(requestBody), \"utf8\");\n } catch {\n bodyBytes = 0;\n }\n log(`[SRS-13] debug ${method} ${path} \u2014 request body ~${bodyBytes} bytes (JSON below):`);\n log(stringifyForSrs13Debug(requestBody));\n const raw = httpApiResponseBody(error);\n const status =\n error && typeof error === \"object\" && \"status\" in error\n ? Number((error as { status?: number }).status)\n : undefined;\n log(\n `[SRS-13] debug HTTP error: ${status != null && !Number.isNaN(status) && status > 0 ? `status ${status}` : \"unknown status\"} \u2014 ${errorMessage(error)}`,\n );\n if (raw !== undefined) {\n log(`[SRS-13] debug response body (parsed JSON from server):`);\n log(stringifyForSrs13Debug(raw));\n } else {\n log(`[SRS-13] debug response body: <no parsed JSON on error object>`);\n }\n}\n\nfunction errorMessage(e: unknown): string {\n if (e instanceof Error) {\n const any = e as Error & { status?: number };\n if (typeof any.status === \"number\") {\n return toAuthErrorMessage(any, any.message || \"Request failed.\");\n }\n const m = any.message.trim();\n return m.length > 1200 ? `${m.slice(0, 1200)}\u2026` : m;\n }\n return toAuthErrorMessage(e, \"Request failed.\");\n}\n\n/** True when `fetch` / our upload loop aborted (user Stop or `AbortController`). */\nexport function isUploadCancelledError(e: unknown): boolean {\n if (e instanceof DOMException && e.name === \"AbortError\") {\n return true;\n }\n return e instanceof Error && e.name === \"AbortError\";\n}\n\nfunction throwIfAborted(signal: AbortSignal | undefined): void {\n if (signal?.aborted) {\n throw new DOMException(\"The operation was aborted.\", \"AbortError\");\n }\n}\n\nfunction logSrs13Failure(log: ((line: string) => void) | undefined, operation: string, detail: string): void {\n const d = detail.length > MAX_LOG_MESSAGE_LEN ? `${detail.slice(0, MAX_LOG_MESSAGE_LEN)}\u2026` : detail;\n log?.(`[SRS-13] ${operation} \u2014 ${d}`);\n}\n\nfunction jsonByteLength(obj: unknown): number {\n return Buffer.byteLength(JSON.stringify(obj), \"utf8\");\n}\n\n/**\n * Wire body for `POST /api/batch/content/{node_name}/save` per OpenAPI `BatchSaveRequest`:\n * root **`items`** is an array of **artifact nodes** (same shape as `SaveRequest.item` for a single POST),\n * not an array of full `{ item, disable_events, \u2026 }` envelopes. Root carries **`disable_events`** and\n * **`content_schema_prefix`** once.\n */\nfunction batchSaveWireBody(items: SrsDiscoverySavePayload[]): Record<string, unknown> {\n return {\n items: items.map((p) => p.item),\n disable_events: false,\n content_schema_prefix: SRS_DISCOVERY_CONTENT_SCHEMA_PREFIX,\n };\n}\n\nfunction batchSaveBodyForSizing(items: SrsDiscoverySavePayload[]): Record<string, unknown> {\n return batchSaveWireBody(items);\n}\n\n/** After a batch completes in `durationMs`, adjust B (PLAN D6). */\nexport function nextAdaptiveBatchSize(\n currentB: number,\n durationMs: number,\n recentDurationsMs: number[],\n): number {\n if (recentDurationsMs.length === 0) {\n return Math.min(currentB + 5, ADAPTIVE_B_MAX);\n }\n const sorted = [...recentDurationsMs].sort((a, b) => a - b);\n const mid = sorted[Math.floor(sorted.length / 2)] ?? durationMs;\n if (mid <= 0) {\n return Math.min(currentB + 5, ADAPTIVE_B_MAX);\n }\n if (durationMs >= mid * 1.75) {\n return Math.max(currentB - 5, ADAPTIVE_B_MIN);\n }\n if (durationMs <= mid * 1.25) {\n return Math.min(currentB + 5, ADAPTIVE_B_MAX);\n }\n return currentB;\n}\n\nexport function nextAdaptiveConcurrency(\n currentN: number,\n durationMs: number,\n recentDurationsMs: number[],\n): number {\n return nextAdaptiveBatchSize(currentN, durationMs, recentDurationsMs);\n}\n\nasync function postBatchSave(\n requestJson: RequestJsonFn,\n items: SrsDiscoverySavePayload[],\n log: ((line: string) => void) | undefined,\n): Promise<void> {\n const body = batchSaveWireBody(items);\n try {\n const res = await requestJson<unknown>(\"/api/batch/content/srs_discovery/save\", {\n method: \"POST\",\n body,\n timeoutMs: SRS_DISCOVERY_BATCH_SAVE_TIMEOUT_MS,\n });\n assertBasicResponseSuccess(res);\n } catch (e) {\n logSrs13HttpDebug(log, \"/api/batch/content/srs_discovery/save\", \"POST\", body, e);\n throw e;\n }\n}\n\nasync function postSingleCreate(\n requestJson: RequestJsonFn,\n payload: SrsDiscoverySavePayload,\n log: ((line: string) => void) | undefined,\n): Promise<void> {\n try {\n const res = await requestJson<unknown>(\"/api/content/srs_discovery\", {\n method: \"POST\",\n body: payload,\n });\n assertBasicResponseSuccess(res);\n } catch (e) {\n logSrs13HttpDebug(log, \"/api/content/srs_discovery\", \"POST\", payload, e);\n throw e;\n }\n}\n\nasync function runParallelSinglesIntoAccum(\n requestJson: RequestJsonFn,\n applicationId: string,\n paths: string[],\n onProgress: ((s: number, t: number) => void) | undefined,\n log: ((s: string) => void) | undefined,\n nowMs: () => number,\n totalOverall: number,\n onSucceededChunk: ((chunk: SucceededSrsDiscoveryIds) => void | Promise<void>) | undefined,\n resolveExistingId: (absPath: string) => string | undefined,\n signal: AbortSignal | undefined,\n accum: {\n succeeded: string[];\n failed: FileUploadFailure[];\n succeededIds: SucceededSrsDiscoveryIds;\n },\n): Promise<void> {\n let N = ADAPTIVE_N_INITIAL;\n const recentWaveMs: number[] = [];\n let idx = 0;\n\n const runOne = async (absPath: string): Promise<void> => {\n const basename = path.basename(absPath);\n let content: string;\n try {\n content = fs.readFileSync(absPath, \"utf8\");\n } catch (e) {\n const msg = errorMessage(e);\n logSrs13Failure(log, `read file file=${basename}`, msg);\n accum.failed.push({ path: absPath, message: msg });\n return;\n }\n const existingId = resolveExistingId(absPath);\n const payload = buildSrsDiscoverySavePayload(applicationId, basename, content, existingId);\n try {\n await postSingleCreate(requestJson, payload, log);\n accum.succeeded.push(absPath);\n const cid = clientItemIdFromPayload(payload);\n if (cid) {\n accum.succeededIds[absPath] = cid;\n }\n onProgress?.(accum.succeeded.length, totalOverall);\n } catch (e) {\n if (isUploadCancelledError(e)) {\n throw e;\n }\n const msg = errorMessage(e);\n logSrs13Failure(log, `POST /api/content/srs_discovery file=${basename}`, msg);\n accum.failed.push({ path: absPath, message: msg });\n }\n };\n\n while (idx < paths.length) {\n throwIfAborted(signal);\n const wave = paths.slice(idx, idx + N);\n const tWave = nowMs();\n const settled = await Promise.allSettled(wave.map((p) => runOne(p)));\n const waveChunk: SucceededSrsDiscoveryIds = {};\n for (const p of wave) {\n const id = accum.succeededIds[p];\n if (id) {\n waveChunk[p] = id;\n }\n }\n await notifySucceededChunk(onSucceededChunk, waveChunk);\n let cancelReason: unknown;\n for (const r of settled) {\n if (r.status === \"rejected\" && isUploadCancelledError(r.reason)) {\n cancelReason = r.reason;\n break;\n }\n }\n const waveDt = nowMs() - tWave;\n recentWaveMs.push(waveDt);\n if (recentWaveMs.length > 5) {\n recentWaveMs.shift();\n }\n N = nextAdaptiveConcurrency(N, waveDt, recentWaveMs.slice(0, -1));\n N = Math.min(Math.max(N, ADAPTIVE_N_MIN), ADAPTIVE_N_MAX);\n idx += wave.length;\n log?.(`[SRS-13] singles wave done in ${waveDt}ms, N=${N}`);\n if (cancelReason !== undefined) {\n throw cancelReason;\n }\n }\n}\n\ninterface UploadAccum {\n succeeded: string[];\n failed: FileUploadFailure[];\n succeededIds: SucceededSrsDiscoveryIds;\n}\n\nasync function executeContextSrsDiscoveryUploadPhase(\n filePaths: readonly string[],\n phaseOpts: {\n requestJson: RequestJsonFn;\n applicationId: string;\n initialUseBatch: boolean;\n onProgress?: (succeeded: number, total: number) => void;\n log?: (line: string) => void;\n nowMs: () => number;\n onSucceededChunk?: (chunk: SucceededSrsDiscoveryIds) => void | Promise<void>;\n totalOverall: number;\n resolveExistingId: (absPath: string) => string | undefined;\n signal?: AbortSignal;\n },\n accum: UploadAccum,\n): Promise<void> {\n const {\n requestJson,\n applicationId,\n initialUseBatch,\n onProgress,\n log,\n nowMs,\n onSucceededChunk,\n totalOverall,\n resolveExistingId,\n signal,\n } = phaseOpts;\n\n if (filePaths.length === 0) {\n return;\n }\n\n let useBatch = initialUseBatch;\n const queue = [...filePaths];\n const batchRecent: number[] = [];\n let B = ADAPTIVE_B_INITIAL;\n\n while (queue.length > 0) {\n throwIfAborted(signal);\n if (!useBatch) {\n const rest = queue.splice(0, queue.length);\n await runParallelSinglesIntoAccum(\n requestJson,\n applicationId,\n rest,\n onProgress,\n log,\n nowMs,\n totalOverall,\n onSucceededChunk,\n resolveExistingId,\n signal,\n accum,\n );\n break;\n }\n\n const waveTake = Math.min(B, queue.length);\n const chunk = queue.splice(0, waveTake);\n\n const items: SrsDiscoverySavePayload[] = [];\n const chunkPaths: string[] = [];\n for (const absPath of chunk) {\n const basename = path.basename(absPath);\n let content: string;\n try {\n content = fs.readFileSync(absPath, \"utf8\");\n } catch (e) {\n const msg = errorMessage(e);\n logSrs13Failure(log, `read file file=${basename}`, msg);\n accum.failed.push({ path: absPath, message: msg });\n continue;\n }\n const existingId = resolveExistingId(absPath);\n items.push(buildSrsDiscoverySavePayloadForBatch(applicationId, basename, content, existingId));\n chunkPaths.push(absPath);\n }\n\n if (items.length === 0) {\n B = Math.max(ADAPTIVE_B_MIN, Math.min(B, queue.length || ADAPTIVE_B_MIN));\n continue;\n }\n\n while (jsonByteLength(batchSaveBodyForSizing(items)) > BATCH_BODY_BYTES_SOFT_MAX && items.length > 1) {\n const droppedPath = chunkPaths.pop()!;\n items.pop();\n queue.unshift(droppedPath);\n }\n\n if (jsonByteLength(batchSaveBodyForSizing(items)) > BATCH_BODY_BYTES_SOFT_MAX && items.length === 1) {\n const onlyPath = chunkPaths[0]!;\n const bn = path.basename(onlyPath);\n let singleContent: string;\n try {\n singleContent = fs.readFileSync(onlyPath, \"utf8\");\n } catch (e) {\n const msg = errorMessage(e);\n logSrs13Failure(log, `read file file=${bn}`, msg);\n accum.failed.push({ path: onlyPath, message: msg });\n B = nextAdaptiveBatchSize(B, batchRecent[batchRecent.length - 1] ?? 1000, batchRecent.slice(0, -1));\n B = Math.min(Math.max(B, ADAPTIVE_B_MIN), ADAPTIVE_B_MAX);\n continue;\n }\n const singlePayload = buildSrsDiscoverySavePayload(\n applicationId,\n bn,\n singleContent,\n resolveExistingId(onlyPath),\n );\n try {\n const t0 = nowMs();\n await postSingleCreate(requestJson, singlePayload, log);\n const dt = nowMs() - t0;\n batchRecent.push(dt);\n if (batchRecent.length > 5) {\n batchRecent.shift();\n }\n accum.succeeded.push(onlyPath);\n const sid = clientItemIdFromPayload(singlePayload);\n if (sid) {\n accum.succeededIds[onlyPath] = sid;\n }\n onProgress?.(accum.succeeded.length, totalOverall);\n await notifySucceededChunk(onSucceededChunk, sid ? { [onlyPath]: sid } : {});\n } catch (e) {\n if (isUploadCancelledError(e)) {\n throw e;\n }\n const msg = errorMessage(e);\n logSrs13Failure(\n log,\n `POST /api/content/srs_discovery (large payload) file=${path.basename(onlyPath)}`,\n msg,\n );\n accum.failed.push({ path: onlyPath, message: msg });\n }\n B = nextAdaptiveBatchSize(B, batchRecent[batchRecent.length - 1] ?? 1000, batchRecent.slice(0, -1));\n B = Math.min(Math.max(B, ADAPTIVE_B_MIN), ADAPTIVE_B_MAX);\n continue;\n }\n\n const t0 = nowMs();\n try {\n await postBatchSave(requestJson, items, log);\n const dt = nowMs() - t0;\n batchRecent.push(dt);\n if (batchRecent.length > 5) {\n batchRecent.shift();\n }\n const waveChunk: SucceededSrsDiscoveryIds = {};\n for (let i = 0; i < chunkPaths.length; i++) {\n const p = chunkPaths[i]!;\n accum.succeeded.push(p);\n const cid = clientItemIdFromPayload(items[i]!);\n if (cid) {\n accum.succeededIds[p] = cid;\n waveChunk[p] = cid;\n }\n }\n onProgress?.(accum.succeeded.length, totalOverall);\n await notifySucceededChunk(onSucceededChunk, waveChunk);\n B = nextAdaptiveBatchSize(B, dt, batchRecent.slice(0, -1));\n B = Math.min(Math.max(B, ADAPTIVE_B_MIN), ADAPTIVE_B_MAX);\n log?.(`[SRS-13] batch ok ${items.length} files in ${dt}ms, next B=${B}`);\n } catch (e) {\n if (isUploadCancelledError(e)) {\n throw e;\n }\n const msg = errorMessage(e);\n const first = chunkPaths.length > 0 ? path.basename(chunkPaths[0]!) : \"?\";\n logSrs13Failure(\n log,\n `POST /api/batch/content/srs_discovery/save n=${chunkPaths.length} first=${first}`,\n msg,\n );\n log?.(`[SRS-13] batch failed \u2014 falling back to singles for ${chunkPaths.length} file(s)`);\n useBatch = false;\n queue.unshift(...chunkPaths);\n }\n }\n}\n\n/**\n * Uploads each file path as one `srs_discovery`. Uses batch save when `useBatch` and batch calls succeed;\n * can fall back to parallel singles for the remainder after a batch failure.\n * SRS-33: non-index files run first; `index-application-context.json` runs in a second phase so merges land on disk first.\n */\nexport async function runContextSrsDiscoveryUpload(\n opts: RunContextSrsDiscoveryUploadOptions,\n): Promise<ContextSrsDiscoveryUploadResult> {\n const { requestJson: requestJsonRaw, applicationId, useBatch: initialUseBatch, contextDir, signal } = opts;\n const requestJson: RequestJsonFn =\n signal != null\n ? (p, o) => requestJsonRaw(p, { ...o, signal })\n : requestJsonRaw;\n const paths = [...opts.filePaths];\n const idMap = loadSrsDiscoveryIdMapFromContextDir(contextDir, opts.log);\n\n const resolveExistingId = (absPath: string): string | undefined => {\n if (!contextDir) {\n return undefined;\n }\n const rel = path.relative(contextDir, absPath);\n const key = normalizeContextRelKey(rel);\n if (!key || key.startsWith(\"..\")) {\n return undefined;\n }\n return idMap[key];\n };\n\n const nonIndex = paths.filter((p) => path.basename(p) !== INDEX_APPLICATION_CONTEXT_BASENAME);\n const indexPaths = paths.filter((p) => path.basename(p) === INDEX_APPLICATION_CONTEXT_BASENAME);\n\n const succeeded: string[] = [];\n const failed: FileUploadFailure[] = [];\n const succeededIds: SucceededSrsDiscoveryIds = {};\n const total = paths.length;\n const onProgress = opts.onProgress;\n const log = opts.log;\n const nowMs = opts.nowMs ?? (() => Date.now());\n const onSucceededChunk = opts.onSucceededChunk;\n\n const accum: UploadAccum = { succeeded, failed, succeededIds };\n const phaseCommon = {\n requestJson,\n applicationId,\n onProgress,\n log,\n nowMs,\n onSucceededChunk,\n totalOverall: total,\n resolveExistingId,\n signal,\n };\n\n try {\n await executeContextSrsDiscoveryUploadPhase(nonIndex, { ...phaseCommon, initialUseBatch: initialUseBatch }, accum);\n await executeContextSrsDiscoveryUploadPhase(indexPaths, { ...phaseCommon, initialUseBatch: initialUseBatch }, accum);\n } catch (e) {\n if (!isUploadCancelledError(e)) {\n throw e;\n }\n const terminal = new Set<string>([...succeeded, ...failed.map((f) => f.path)]);\n for (const p of paths) {\n if (!terminal.has(p)) {\n failed.push({ path: p, message: \"Cancelled\" });\n }\n }\n }\n\n return { succeeded, failed, succeededIds };\n}\n", "/** Pure auth helpers aligned with easyspecs.ai-frontend `src/api/auth.ts` and `src/stores/auth.ts`. */\n\nexport const REFRESH_WINDOW_MS = 120_000;\n\nexport interface AuthUser {\n id: string;\n email: string;\n displayName: string;\n}\n\nexport interface LoginResponse {\n accessToken: string;\n refreshToken: string;\n}\n\nexport interface LoginApiPayload {\n access_token?: string;\n refresh_token?: string;\n accessToken?: string;\n refreshToken?: string;\n}\n\ninterface UserApiPayload {\n id?: string;\n email?: string;\n displayName?: string;\n display_name?: string;\n first_name?: string;\n last_name?: string;\n}\n\nexport interface HttpApiError {\n message: string;\n status: number;\n /** Parsed JSON body from a non-OK HTTP response (for diagnostics / SRS-13 logging). */\n responseBody?: unknown;\n}\n\nexport function requireToken(value: string | undefined, key: string): string {\n if (!value) {\n const err: HttpApiError = { status: 500, message: `Missing ${key} in auth response.` };\n throw err;\n }\n return value;\n}\n\nexport function normalizeTokens(payload: LoginApiPayload): LoginResponse {\n return {\n accessToken: requireToken(payload.accessToken ?? payload.access_token, \"access token\"),\n refreshToken: requireToken(payload.refreshToken ?? payload.refresh_token, \"refresh token\"),\n };\n}\n\nexport function resolveDisplayName(user: UserApiPayload): string {\n if (user.displayName) {\n return user.displayName;\n }\n if (user.display_name) {\n return user.display_name;\n }\n const firstName = user.first_name?.trim() ?? \"\";\n const lastName = user.last_name?.trim() ?? \"\";\n const fullName = `${firstName} ${lastName}`.trim();\n if (fullName) {\n return fullName;\n }\n if (user.email) {\n return user.email.split(\"@\")[0] ?? \"User\";\n }\n return \"User\";\n}\n\nexport function normalizeUser(payload: unknown): AuthUser {\n const root = (payload ?? {}) as Record<string, unknown>;\n const data = (root.data as Record<string, unknown> | undefined) ?? root;\n const profile = (data.profile as Record<string, unknown> | undefined) ?? data;\n\n const id = String(profile.id ?? \"\");\n const email = String(profile.email ?? \"\");\n if (!id || !email) {\n const err: HttpApiError = { status: 500, message: \"Missing user id/email in response.\" };\n throw err;\n }\n\n return {\n id,\n email,\n displayName: resolveDisplayName(profile as UserApiPayload),\n };\n}\n\nfunction base64UrlDecode(input: string): string {\n const base64 = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded = base64.padEnd(base64.length + ((4 - (base64.length % 4)) % 4), \"=\");\n return Buffer.from(padded, \"base64\").toString(\"utf8\");\n}\n\nexport function parseJwtExpiry(token: string): number | null {\n const parts = token.split(\".\");\n const payloadPart = parts.length >= 2 ? parts[1] : undefined;\n if (!payloadPart) {\n return null;\n }\n try {\n const payload = JSON.parse(base64UrlDecode(payloadPart)) as { exp?: number };\n if (!payload.exp) {\n return null;\n }\n return payload.exp * 1000;\n } catch {\n return null;\n }\n}\n\n/** Milliseconds until proactive refresh should run (frontend `scheduleRefresh`). */\nexport function computeProactiveRefreshDelayMs(accessToken: string, nowMs: number): number | null {\n const expiryMs = parseJwtExpiry(accessToken);\n if (!expiryMs) {\n return null;\n }\n return Math.max(0, expiryMs - nowMs - REFRESH_WINDOW_MS);\n}\n\nconst MAX_EXTRACTED_DETAIL_LEN = 800;\n\n/**\n * Pull a human-readable error from common API shapes (FastAPI `detail`, BasicResponse `error`, etc.).\n */\nexport function extractErrorDetailFromPayload(payload: unknown): string | null {\n if (payload === null || payload === undefined) {\n return null;\n }\n if (typeof payload === \"string\") {\n const t = payload.trim();\n return t.length > 0 ? t.slice(0, MAX_EXTRACTED_DETAIL_LEN) : null;\n }\n if (typeof payload !== \"object\") {\n return null;\n }\n const o = payload as Record<string, unknown>;\n\n if (typeof o.message === \"string\" && o.message.trim()) {\n return o.message.trim().slice(0, MAX_EXTRACTED_DETAIL_LEN);\n }\n if (typeof o.error === \"string\" && o.error.trim()) {\n return o.error.trim().slice(0, MAX_EXTRACTED_DETAIL_LEN);\n }\n if (typeof o.title === \"string\" && o.title.trim()) {\n return o.title.trim().slice(0, MAX_EXTRACTED_DETAIL_LEN);\n }\n\n const detail = o.detail;\n if (typeof detail === \"string\" && detail.trim()) {\n return detail.trim().slice(0, MAX_EXTRACTED_DETAIL_LEN);\n }\n if (Array.isArray(detail)) {\n const parts: string[] = [];\n for (const item of detail) {\n if (typeof item === \"string\") {\n parts.push(item);\n } else if (item && typeof item === \"object\") {\n const d = item as Record<string, unknown>;\n if (typeof d.msg === \"string\") {\n const loc = Array.isArray(d.loc) ? d.loc.map(String).join(\".\") : \"\";\n parts.push(loc ? `${loc}: ${d.msg}` : d.msg);\n } else {\n parts.push(JSON.stringify(item).slice(0, 200));\n }\n }\n }\n const joined = parts.join(\" \u00B7 \");\n return joined.length > 0 ? joined.slice(0, MAX_EXTRACTED_DETAIL_LEN) : null;\n }\n\n try {\n const s = JSON.stringify(payload);\n if (s === \"{}\" || s === \"[]\") {\n return null;\n }\n return s.length <= 500 ? s : `${s.slice(0, 400)}\u2026`;\n } catch {\n return null;\n }\n}\n\nexport function createApiError(status: number, fallbackMessage: string, payload?: unknown): HttpApiError {\n const extracted = extractErrorDetailFromPayload(payload);\n const message = extracted && extracted.length > 0 ? extracted : fallbackMessage;\n return { status, message, responseBody: payload }\n}\n\nexport function toAuthErrorMessage(error: unknown, fallback: string): string {\n const maybe = error as Partial<HttpApiError> | undefined;\n const raw = (maybe?.message && String(maybe.message).trim()) || fallback;\n if (typeof maybe?.status === \"number\" && maybe.status > 0) {\n if (raw.startsWith(`HTTP ${maybe.status}`)) {\n return raw;\n }\n return `HTTP ${maybe.status}: ${raw}`;\n }\n return raw;\n}\n\n/** SRS-7 / dev stub: non-empty email and password (email replaces legacy \"username\"). */\nexport function validateLoginStub(email: string, password: string): boolean {\n return email.trim().length > 0 && password.length > 0;\n}\n", "/**\n * SRS-33: resolve persisted srs_discovery ids from index-application-context.json for mass upload.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nimport type { ApplicationContextFile, ImpactNode } from \"../srsModel\";\nimport { INDEX_APPLICATION_CONTEXT_BASENAME } from \"./indexApplicationContextMergeUploadIds\";\n\nconst SCOPE_KEYS = [\"Feature\", \"Experience\", \"Service\", \"DataModel\", \"TechStack\"] as const;\n\nfunction normalizeRel(p: string): string {\n return p.replace(/\\\\/g, \"/\");\n}\n\nfunction walkNodes(nodes: ImpactNode[] | undefined, visit: (n: ImpactNode) => void): void {\n if (!nodes?.length) {\n return;\n }\n for (const n of nodes) {\n visit(n);\n walkNodes(n.children, visit);\n }\n}\n\nfunction walkScopes(scopes: ApplicationContextFile[\"scopes\"], visit: (n: ImpactNode) => void): void {\n for (const k of SCOPE_KEYS) {\n walkNodes(scopes[k]?.nodes, visit);\n }\n}\n\nfunction isRecord(v: unknown): v is Record<string, unknown> {\n return Boolean(v) && typeof v === \"object\" && !Array.isArray(v);\n}\n\n/**\n * Load context-relative POSIX keys \u2192 srs_discovery UUID from disk index.\n * - Missing/unreadable index: empty map (caller should log R7 via `log`).\n * - Two different ids for the same key: throws with a clear message (fail-fast).\n */\nexport function loadSrsDiscoveryIdMapFromContextDir(\n contextDir: string | undefined,\n log?: (line: string) => void,\n): Record<string, string> {\n if (!contextDir || !fs.existsSync(contextDir) || !fs.statSync(contextDir).isDirectory()) {\n return {};\n }\n const indexPath = path.join(contextDir, INDEX_APPLICATION_CONTEXT_BASENAME);\n if (!fs.existsSync(indexPath)) {\n log?.(\n `[SRS-33] No local ${INDEX_APPLICATION_CONTEXT_BASENAME} \u2014 id map empty; uploads use create (new UUID) until the index exists.`,\n );\n return {};\n }\n let raw: string;\n try {\n raw = fs.readFileSync(indexPath, \"utf8\");\n } catch (e) {\n log?.(`[SRS-33] Could not read index file \u2014 ${e instanceof Error ? e.message : String(e)}`);\n return {};\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n log?.(`[SRS-33] ${INDEX_APPLICATION_CONTEXT_BASENAME} is not valid JSON \u2014 id map empty.`);\n return {};\n }\n if (!isRecord(parsed)) {\n log?.(`[SRS-33] Index JSON has unexpected shape \u2014 id map empty.`);\n return {};\n }\n const doc = parsed as unknown as ApplicationContextFile;\n if (!doc.scopes || typeof doc.scopes !== \"object\") {\n log?.(`[SRS-33] Index JSON missing scopes \u2014 id map empty.`);\n return {};\n }\n\n const map: Record<string, string> = {};\n\n const put = (key: string, id: string): void => {\n const k = normalizeRel(key);\n if (!k || k.startsWith(\"..\")) {\n return;\n }\n const prev = map[k];\n if (prev !== undefined && prev !== id) {\n throw new Error(\n `[SRS-33] Conflicting srs_discovery ids for context path \"${k}\": ${prev} vs ${id}. Fix index-application-context.json before uploading.`,\n );\n }\n map[k] = id;\n };\n\n const rootIdx = doc.indexSrsDiscoveryId;\n if (typeof rootIdx === \"string\" && rootIdx.trim()) {\n put(INDEX_APPLICATION_CONTEXT_BASENAME, rootIdx.trim());\n }\n\n walkScopes(doc.scopes, (node) => {\n const df = node.detailMarkdownFile;\n if (!df || typeof df.path !== \"string\") {\n return;\n }\n const sid = df.srsDiscoveryId;\n if (typeof sid !== \"string\" || !sid.trim()) {\n return;\n }\n put(normalizeRel(df.path), sid.trim());\n });\n\n return map;\n}\n\n/**\n * For each absolute path under `contextDir`, counts how many have a persisted id in the index map\n * (**update** on upload) vs not (**create**). Uses the same relative-key rules as upload.\n */\nexport function countContextFilesWithPersistedIds(\n contextDir: string,\n absolutePaths: readonly string[],\n): { withId: number; withoutId: number } {\n const idMap = loadSrsDiscoveryIdMapFromContextDir(contextDir);\n let withId = 0;\n let withoutId = 0;\n for (const abs of absolutePaths) {\n const rel = path.relative(contextDir, abs);\n const key = normalizeRel(rel.split(path.sep).join(\"/\"));\n if (!key || key.startsWith(\"..\")) {\n withoutId++;\n continue;\n }\n if (idMap[key]) {\n withId++;\n } else {\n withoutId++;\n }\n }\n return { withId, withoutId };\n}\n\n/** Whether `absPath` had a persisted id in `idMap` before upload (same key rules as `countContextFilesWithPersistedIds`). */\nexport function hadPersistedIdForContextFile(\n contextDir: string,\n absPath: string,\n idMap: Readonly<Record<string, string>>,\n): boolean {\n const rel = path.relative(contextDir, absPath);\n const key = normalizeRel(rel.split(path.sep).join(\"/\"));\n if (!key || key.startsWith(\"..\")) {\n return false;\n }\n return !!idMap[key];\n}\n\nexport { INDEX_APPLICATION_CONTEXT_BASENAME };\n", "/**\n * SRS-26 Phase B: merge successful srs_discovery upload ids into `index-application-context.json`.\n */\n\nimport * as fs from \"node:fs\";\nimport * as path from \"node:path\";\n\nimport type { ApplicationContextFile, ImpactNode } from \"../srsModel\";\nimport { getDefaultIndexSchemaPath, validateIndexApplicationContextJson } from \"../indexApplicationContextValidate\";\nimport type { SucceededSrsDiscoveryIds } from \"./contextSrsDiscoveryUpload\";\n\nexport const INDEX_APPLICATION_CONTEXT_BASENAME = \"index-application-context.json\";\n\nconst SCOPE_KEYS = [\"Feature\", \"Experience\", \"Service\", \"DataModel\", \"TechStack\"] as const;\n\nfunction toContextRelativePosix(contextDir: string, absPath: string): string {\n const rel = path.relative(contextDir, absPath);\n return rel.split(path.sep).join(\"/\");\n}\n\nfunction walkNodes(nodes: ImpactNode[] | undefined, visit: (n: ImpactNode) => void): void {\n if (!nodes?.length) {\n return;\n }\n for (const n of nodes) {\n visit(n);\n walkNodes(n.children, visit);\n }\n}\n\nfunction walkScopes(scopes: ApplicationContextFile[\"scopes\"], visit: (n: ImpactNode) => void): void {\n for (const k of SCOPE_KEYS) {\n walkNodes(scopes[k]?.nodes, visit);\n }\n}\n\nfunction normalizeRel(p: string): string {\n return p.replace(/\\\\/g, \"/\");\n}\n\n/**\n * Deep clone index document (JSON-serializable).\n */\nexport function cloneApplicationContextFile(doc: ApplicationContextFile): ApplicationContextFile {\n return JSON.parse(JSON.stringify(doc)) as ApplicationContextFile;\n}\n\n/**\n * Apply upload ids to a copy of `doc`. Matches nodes by `detailMarkdownFile.path` or `detailMarkdownPaths`.\n * Sets root `indexSrsDiscoveryId` when the uploaded file is the index JSON.\n */\nexport function mergeUploadIdsIntoIndexDocument(\n doc: ApplicationContextFile,\n contextDir: string,\n succeededIds: Readonly<SucceededSrsDiscoveryIds>,\n): ApplicationContextFile {\n const out = cloneApplicationContextFile(doc);\n for (const [absPath, itemId] of Object.entries(succeededIds)) {\n if (!itemId) {\n continue;\n }\n const rel = toContextRelativePosix(contextDir, absPath);\n if (!rel || rel.startsWith(\"..\")) {\n continue;\n }\n if (rel === INDEX_APPLICATION_CONTEXT_BASENAME) {\n out.indexSrsDiscoveryId = itemId;\n continue;\n }\n walkScopes(out.scopes, (node) => {\n const df = node.detailMarkdownFile;\n const dfPath = df && typeof df.path === \"string\" ? normalizeRel(df.path) : \"\";\n if (dfPath === rel) {\n node.detailMarkdownFile = { path: df!.path!.replace(/\\\\/g, \"/\"), srsDiscoveryId: itemId };\n return;\n }\n const paths = node.detailMarkdownPaths;\n if (paths?.some((p) => normalizeRel(p) === rel)) {\n node.detailMarkdownFile = { path: rel, srsDiscoveryId: itemId };\n }\n });\n }\n return out;\n}\n\nfunction atomicWriteJson(targetPath: string, doc: unknown): void {\n const tmp = `${targetPath}.${process.pid}.tmp`;\n try {\n fs.writeFileSync(tmp, `${JSON.stringify(doc, null, 2)}\\n`, \"utf-8\");\n fs.renameSync(tmp, targetPath);\n } catch (e) {\n try {\n fs.unlinkSync(tmp);\n } catch {\n /* ignore */\n }\n throw e;\n }\n}\n\n/**\n * Read index from disk, merge ids, validate, atomic replace. No-op if index file missing.\n */\nexport function mergeUploadIdsIntoIndexOnDisk(\n contextDir: string,\n succeededIds: Readonly<SucceededSrsDiscoveryIds>,\n options?: { schemaPath?: string },\n): { ok: true } | { ok: false; message: string } {\n const schemaPath = options?.schemaPath ?? getDefaultIndexSchemaPath();\n const target = path.join(contextDir, INDEX_APPLICATION_CONTEXT_BASENAME);\n if (!fs.existsSync(target)) {\n return { ok: true };\n }\n let raw: string;\n try {\n raw = fs.readFileSync(target, \"utf-8\");\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return { ok: false, message: \"index-application-context.json is not valid JSON.\" };\n }\n if (!parsed || typeof parsed !== \"object\") {\n return { ok: false, message: \"index-application-context.json has unexpected shape.\" };\n }\n const merged = mergeUploadIdsIntoIndexDocument(parsed as ApplicationContextFile, contextDir, succeededIds);\n const validation = validateIndexApplicationContextJson(merged, schemaPath);\n if (!validation.ok) {\n return { ok: false, message: `Schema validation failed: ${validation.errors.join(\"; \")}` };\n }\n try {\n atomicWriteJson(target, merged);\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n return { ok: true };\n}\n", "/**\n * SRS-38a: read-only scan of coordination *-list.json for duplicate rows (D1 slug / D2 name),\n * plus orphan coordination-shaped detail markdown vs `discoverDetailMarkdownGroups` targets.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport Ajv2020 from \"ajv/dist/2020\";\nimport type { ErrorObject } from \"ajv\";\nimport {\n collectExpectedDetailMarkdownBasenames,\n expectedFeatureDetailBasenameFromRow,\n} from \"./analysisDetailMarkdownDiscovery\";\nimport { resolveContextListSchemasDir } from \"../shared/repoResourcesRoot\";\n\nexport const COORDINATION_DUPLICATES_REPORT_BASENAME = \"coordination-duplicates-report.json\";\n\nexport const COORDINATION_LIST_SCAN_ENTRIES: ReadonlyArray<{\n readonly basename: string;\n readonly arrayKey: string;\n}> = [\n { basename: \"features-list.json\", arrayKey: \"features\" },\n { basename: \"experiences-list.json\", arrayKey: \"views\" },\n { basename: \"services-list.json\", arrayKey: \"services\" },\n { basename: \"data-model-list.json\", arrayKey: \"entities\" },\n];\n\n/** Root context markdown that is never treated as a list-driven detail artefact. */\nexport const STAPLE_CONTEXT_MARKDOWN_BASENAMES = new Set([\n \"project.md\",\n \"architecture.md\",\n \"reference-coverage-execution-report.md\",\n]);\n\nconst RE_MD_FE_UC_SC = /^FE-\\d+_UC-\\d+_SC-\\d+\\.md$/i;\nconst RE_MD_FE_UC_SLUG = /^FE-\\d+_UC-\\d+-.+\\.md$/i;\nconst RE_MD_FE_UC_PLAIN = /^FE-\\d+_UC-\\d+\\.md$/i;\nconst RE_MD_FE_FEATURE = /^FE-\\d+-.+\\.md$/i;\nconst RE_MD_XP_BH = /^XP-\\d+_BH-\\d+-.+\\.md$/i;\nconst RE_MD_XP_VIEW = /^XP-\\d+-.+\\.md$/i;\nconst RE_MD_SV_ME = /^SV-\\d+_ME-\\d+-.+\\.md$/i;\nconst RE_MD_SV = /^SV-\\d+-.+\\.md$/i;\nconst RE_MD_DM_FD = /^DM-\\d+_FD-\\d+-.+\\.md$/i;\nconst RE_MD_DM = /^DM-\\d+-.+\\.md$/i;\nconst RE_MD_TS = /^TS-\\d+-.+\\.md$/i;\n\n/**\n * True if basename looks like EasySpecs coordination detail markdown (SRS-8 \u00A74.3\u2013\u00A74.5 naming),\n * excluding staples \u2014 used to find stale/orphan files without flagging arbitrary notes.\n */\nexport function looksLikeCoordinationDetailMarkdownBasename(basename: string): boolean {\n if (!basename || basename !== path.basename(basename) || !/\\.md$/i.test(basename)) {\n return false;\n }\n if (STAPLE_CONTEXT_MARKDOWN_BASENAMES.has(basename)) {\n return false;\n }\n return (\n RE_MD_FE_UC_SC.test(basename) ||\n RE_MD_FE_UC_SLUG.test(basename) ||\n RE_MD_FE_UC_PLAIN.test(basename) ||\n RE_MD_FE_FEATURE.test(basename) ||\n RE_MD_XP_BH.test(basename) ||\n RE_MD_XP_VIEW.test(basename) ||\n RE_MD_SV_ME.test(basename) ||\n RE_MD_SV.test(basename) ||\n RE_MD_DM_FD.test(basename) ||\n RE_MD_DM.test(basename) ||\n RE_MD_TS.test(basename)\n );\n}\n\nfunction loadRawFeatureRows(contextDirAbs: string): Array<Record<string, unknown>> {\n const p = path.join(contextDirAbs, \"features-list.json\");\n if (!fs.existsSync(p)) {\n return [];\n }\n try {\n const raw = stripUtf8Bom(fs.readFileSync(p, \"utf-8\"));\n const doc = JSON.parse(raw) as { features?: unknown };\n return Array.isArray(doc.features) ? (doc.features as Array<Record<string, unknown>>) : [];\n } catch {\n return [];\n }\n}\n\nfunction hintForOrphanFeatureMarkdown(\n basename: string,\n featureRows: Array<Record<string, unknown>>,\n): string | undefined {\n const m = /^FE-(\\d+)-(.+)\\.md$/i.exec(basename);\n if (!m) {\n return undefined;\n }\n const n = parseInt(m[1], 10);\n for (const row of featureRows) {\n const code = typeof row.code === \"string\" ? row.code.trim() : \"\";\n const fm = /^FE-(\\d+)$/i.exec(code);\n if (!fm || parseInt(fm[1], 10) !== n) {\n continue;\n }\n const expected = expectedFeatureDetailBasenameFromRow(row);\n if (expected && expected !== basename) {\n return `features-list row ${code} currently implies detail file ${expected} (slug/name changed \u2014 ${basename} may be stale).`;\n }\n if (!expected) {\n return `features-list row ${code} has no resolvable slug for a detail markdown basename.`;\n }\n return undefined;\n }\n return `No FE row with numeric id ${n} in features-list.json \u2014 code may have been removed or renumbered.`;\n}\n\nexport type OrphanCoordinationMarkdown = {\n basename: string;\n kind: \"orphan_detail_markdown\";\n hint?: string;\n};\n\nexport function findOrphanCoordinationMarkdown(contextDirAbs: string): OrphanCoordinationMarkdown[] {\n const expected = collectExpectedDetailMarkdownBasenames(contextDirAbs);\n const featureRows = loadRawFeatureRows(contextDirAbs);\n let dirents: fs.Dirent[];\n try {\n dirents = fs.readdirSync(contextDirAbs, { withFileTypes: true });\n } catch {\n return [];\n }\n const orphans: OrphanCoordinationMarkdown[] = [];\n for (const d of dirents) {\n if (!d.isFile()) {\n continue;\n }\n const name = d.name;\n if (!looksLikeCoordinationDetailMarkdownBasename(name)) {\n continue;\n }\n if (expected.has(name)) {\n continue;\n }\n const hint = hintForOrphanFeatureMarkdown(name, featureRows);\n orphans.push({\n basename: name,\n kind: \"orphan_detail_markdown\",\n ...(hint ? { hint } : {}),\n });\n }\n orphans.sort((a, b) => a.basename.localeCompare(b.basename));\n return orphans;\n}\n\nexport function normalizeCoordinationSlug(raw: string): string {\n return raw.trim().toLowerCase();\n}\n\nexport function normalizeCoordinationName(raw: string): string {\n return raw\n .trim()\n .replace(/\\s+/g, \" \")\n .toLowerCase();\n}\n\nexport type ListScanStatus = \"ok\" | \"missing\" | \"parse_error\" | \"invalid_shape\";\n\nexport type CoordinationListRowRef = {\n readonly code: string;\n readonly name: string;\n /** Trimmed from JSON when present; used for report members. */\n readonly slug: string | null;\n readonly sourceReferencePaths: readonly string[];\n};\n\nexport type CoordinationDuplicateGroup = {\n readonly listBasename: string;\n readonly rules: (\"D1\" | \"D2\")[];\n readonly matchOn: \"slug\" | \"name\" | \"slug_and_name\";\n readonly normalizedValue: string;\n readonly members: Array<{\n code: string;\n name: string;\n slug: string | null;\n sourceReferencePaths: string[];\n }>;\n};\n\nexport type CoordinationDuplicatesReport = {\n kind: \"easyspecs.coordination-duplicates-report\";\n version: 1;\n generatedAt: string;\n sourceRoot: \"workspace\" | \"worktree\";\n contextDirAbsolute: string;\n lists: Array<{\n basename: string;\n status: ListScanStatus;\n error?: string;\n rowCount?: number;\n }>;\n duplicateGroups: CoordinationDuplicateGroup[];\n orphanCoordinationMarkdown: OrphanCoordinationMarkdown[];\n};\n\nfunction stripUtf8Bom(s: string): string {\n return s.length > 0 && s.charCodeAt(0) === 0xfeff ? s.slice(1) : s;\n}\n\nfunction ufFind(parent: Map<string, string>, x: string): string {\n let p = parent.get(x);\n if (p === undefined) {\n parent.set(x, x);\n return x;\n }\n if (p !== x) {\n const root = ufFind(parent, p);\n parent.set(x, root);\n return root;\n }\n return x;\n}\n\nfunction ufUnion(parent: Map<string, string>, a: string, b: string): void {\n const ra = ufFind(parent, a);\n const rb = ufFind(parent, b);\n if (ra !== rb) {\n parent.set(ra, rb);\n }\n}\n\nfunction collectSourcePaths(row: Record<string, unknown>): string[] {\n const sr = row.sourceReferences;\n if (!Array.isArray(sr)) {\n return [];\n }\n const out: string[] = [];\n for (const x of sr) {\n if (x && typeof x === \"object\" && typeof (x as { path?: unknown }).path === \"string\") {\n const p = ((x as { path: string }).path || \"\").trim();\n if (p) {\n out.push(p);\n }\n }\n }\n return [...new Set(out)].sort();\n}\n\nfunction parseListRows(doc: Record<string, unknown>, arrayKey: string): CoordinationListRowRef[] | null {\n const arr = doc[arrayKey];\n if (!Array.isArray(arr)) {\n return null;\n }\n const out: CoordinationListRowRef[] = [];\n for (const item of arr) {\n if (!item || typeof item !== \"object\") {\n continue;\n }\n const r = item as Record<string, unknown>;\n if (typeof r.code !== \"string\" || !r.code.trim()) {\n continue;\n }\n const name = typeof r.name === \"string\" ? r.name : \"\";\n const slugRaw = r.slug;\n const slug = typeof slugRaw === \"string\" && slugRaw.trim() ? slugRaw.trim() : null;\n out.push({\n code: r.code.trim(),\n name,\n slug,\n sourceReferencePaths: collectSourcePaths(r),\n });\n }\n return out;\n}\n\nfunction findDuplicateGroupsForList(listBasename: string, rows: CoordinationListRowRef[]): CoordinationDuplicateGroup[] {\n const codes = rows.map((r) => r.code);\n const parent = new Map<string, string>();\n for (const c of codes) {\n parent.set(c, c);\n }\n\n const slugBuckets = new Map<string, string[]>();\n for (const r of rows) {\n if (r.slug === null) {\n continue;\n }\n const k = normalizeCoordinationSlug(r.slug);\n const cur = slugBuckets.get(k);\n if (cur) {\n cur.push(r.code);\n } else {\n slugBuckets.set(k, [r.code]);\n }\n }\n for (const [, bucket] of slugBuckets) {\n const distinct = [...new Set(bucket)];\n if (distinct.length < 2) {\n continue;\n }\n const first = distinct[0];\n for (let i = 1; i < distinct.length; i++) {\n ufUnion(parent, first, distinct[i]);\n }\n }\n\n const nameBuckets = new Map<string, string[]>();\n for (const r of rows) {\n const nk = normalizeCoordinationName(r.name);\n if (!nk) {\n continue;\n }\n const cur = nameBuckets.get(nk);\n if (cur) {\n cur.push(r.code);\n } else {\n nameBuckets.set(nk, [r.code]);\n }\n }\n for (const [, bucket] of nameBuckets) {\n const distinct = [...new Set(bucket)];\n if (distinct.length < 2) {\n continue;\n }\n const first = distinct[0];\n for (let i = 1; i < distinct.length; i++) {\n ufUnion(parent, first, distinct[i]);\n }\n }\n\n const byRoot = new Map<string, string[]>();\n for (const c of codes) {\n const root = ufFind(parent, c);\n const cur = byRoot.get(root);\n if (cur) {\n cur.push(c);\n } else {\n byRoot.set(root, [c]);\n }\n }\n\n const groups: CoordinationDuplicateGroup[] = [];\n const rowByCode = new Map(rows.map((r) => [r.code, r] as const));\n\n for (const [, componentCodes] of byRoot) {\n const distinctCodes = [...new Set(componentCodes)];\n if (distinctCodes.length < 2) {\n continue;\n }\n\n const subset = distinctCodes.map((c) => rowByCode.get(c)).filter((x): x is CoordinationListRowRef => !!x);\n if (subset.length < 2) {\n continue;\n }\n\n let hasD1 = false;\n let hasD2 = false;\n const slugNormsIn = new Set<string>();\n const nameNormsIn = new Set<string>();\n for (const r of subset) {\n if (r.slug !== null) {\n slugNormsIn.add(normalizeCoordinationSlug(r.slug));\n }\n const nn = normalizeCoordinationName(r.name);\n if (nn) {\n nameNormsIn.add(nn);\n }\n }\n for (const s1 of subset) {\n for (const s2 of subset) {\n if (s1.code >= s2.code) {\n continue;\n }\n if (s1.slug !== null && s2.slug !== null && normalizeCoordinationSlug(s1.slug) === normalizeCoordinationSlug(s2.slug)) {\n hasD1 = true;\n }\n const n1 = normalizeCoordinationName(s1.name);\n const n2 = normalizeCoordinationName(s2.name);\n if (n1 && n2 && n1 === n2) {\n hasD2 = true;\n }\n }\n }\n\n const rules: (\"D1\" | \"D2\")[] = [];\n if (hasD1) {\n rules.push(\"D1\");\n }\n if (hasD2) {\n rules.push(\"D2\");\n }\n if (rules.length === 0) {\n continue;\n }\n\n let matchOn: \"slug\" | \"name\" | \"slug_and_name\";\n if (hasD1 && hasD2) {\n matchOn = \"slug_and_name\";\n } else if (hasD1) {\n matchOn = \"slug\";\n } else {\n matchOn = \"name\";\n }\n\n let normalizedValue: string;\n if (matchOn === \"slug_and_name\") {\n const slugPart = [...slugNormsIn].sort()[0] ?? \"\";\n const namePart = [...nameNormsIn].sort()[0] ?? \"\";\n normalizedValue = `${slugPart} / ${namePart}`;\n } else if (matchOn === \"slug\") {\n normalizedValue = [...slugNormsIn].sort()[0] ?? \"\";\n } else {\n normalizedValue = [...nameNormsIn].sort()[0] ?? \"\";\n }\n\n subset.sort((a, b) => a.code.localeCompare(b.code));\n groups.push({\n listBasename,\n rules,\n matchOn,\n normalizedValue,\n members: subset.map((r) => ({\n code: r.code,\n name: r.name,\n slug: r.slug,\n sourceReferencePaths: [...r.sourceReferencePaths],\n })),\n });\n }\n\n groups.sort((a, b) => {\n const c = a.listBasename.localeCompare(b.listBasename);\n if (c !== 0) {\n return c;\n }\n return a.normalizedValue.localeCompare(b.normalizedValue);\n });\n\n return groups;\n}\n\nexport function buildCoordinationDuplicatesReport(input: {\n readonly contextDirAbsolute: string;\n readonly sourceRoot: \"workspace\" | \"worktree\";\n readonly generatedAt?: string;\n}): CoordinationDuplicatesReport {\n const lists: CoordinationDuplicatesReport[\"lists\"] = [];\n const duplicateGroups: CoordinationDuplicateGroup[] = [];\n\n for (const entry of COORDINATION_LIST_SCAN_ENTRIES) {\n const filePath = path.join(input.contextDirAbsolute, entry.basename);\n if (!fs.existsSync(filePath)) {\n lists.push({ basename: entry.basename, status: \"missing\" });\n continue;\n }\n let raw: string;\n try {\n raw = stripUtf8Bom(fs.readFileSync(filePath, \"utf-8\"));\n } catch (e) {\n lists.push({\n basename: entry.basename,\n status: \"parse_error\",\n error: e instanceof Error ? e.message : String(e),\n });\n continue;\n }\n let doc: Record<string, unknown>;\n try {\n doc = JSON.parse(raw) as Record<string, unknown>;\n } catch (e) {\n lists.push({\n basename: entry.basename,\n status: \"parse_error\",\n error: e instanceof Error ? e.message : String(e),\n });\n continue;\n }\n const rows = parseListRows(doc, entry.arrayKey);\n if (rows === null) {\n lists.push({\n basename: entry.basename,\n status: \"invalid_shape\",\n error: `Missing or invalid \"${entry.arrayKey}\" array.`,\n });\n continue;\n }\n lists.push({ basename: entry.basename, status: \"ok\", rowCount: rows.length });\n duplicateGroups.push(...findDuplicateGroupsForList(entry.basename, rows));\n }\n\n const orphanCoordinationMarkdown = findOrphanCoordinationMarkdown(input.contextDirAbsolute);\n\n return {\n kind: \"easyspecs.coordination-duplicates-report\",\n version: 1,\n generatedAt: input.generatedAt ?? new Date().toISOString(),\n sourceRoot: input.sourceRoot,\n contextDirAbsolute: input.contextDirAbsolute,\n lists,\n duplicateGroups,\n orphanCoordinationMarkdown,\n };\n}\n\nlet validateReportCompiled: ReturnType<Ajv2020[\"compile\"]> | undefined;\n\nfunction validateReportData(data: unknown): { ok: true } | { ok: false; errors: string[] } {\n if (!validateReportCompiled) {\n const ajv = new Ajv2020({ allErrors: true, strict: false });\n const schemaPath = path.join(resolveContextListSchemasDir(), \"coordination-duplicates-report.schema.json\");\n const schemaRaw = stripUtf8Bom(fs.readFileSync(schemaPath, \"utf-8\"));\n validateReportCompiled = ajv.compile(JSON.parse(schemaRaw) as object);\n }\n if (validateReportCompiled(data)) {\n return { ok: true };\n }\n const errors = (validateReportCompiled.errors ?? []).slice(0, 40).map((e: ErrorObject) => {\n const p = e.instancePath?.length ? e.instancePath : \"(root)\";\n return `${p}: ${e.message ?? e.keyword ?? \"?\"}`;\n });\n return { ok: false, errors };\n}\n\nexport type RunCoordinationDuplicatesDiagnosisResult =\n | {\n ok: true;\n reportAbsolutePath: string;\n groupCount: number;\n orphanMarkdownCount: number;\n groupsByList: Record<string, number>;\n message: string;\n }\n | { ok: false; message: string };\n\nexport function runCoordinationDuplicatesDiagnosis(input: {\n readonly contextDirAbsolute: string;\n readonly sourceRoot: \"workspace\" | \"worktree\";\n}): RunCoordinationDuplicatesDiagnosisResult {\n const report = buildCoordinationDuplicatesReport(input);\n const v = validateReportData(report);\n if (!v.ok) {\n return { ok: false, message: `Report validation failed: ${v.errors.join(\"; \")}` };\n }\n\n const outPath = path.join(input.contextDirAbsolute, COORDINATION_DUPLICATES_REPORT_BASENAME);\n const payload = `${JSON.stringify(report, null, 2)}\\n`;\n const tmp = `${outPath}.tmp.${process.pid}`;\n try {\n fs.writeFileSync(tmp, payload, \"utf-8\");\n } catch (e) {\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n try {\n fs.renameSync(tmp, outPath);\n } catch (e) {\n try {\n fs.unlinkSync(tmp);\n } catch {\n /* ignore */\n }\n return { ok: false, message: e instanceof Error ? e.message : String(e) };\n }\n\n const groupsByList: Record<string, number> = {};\n for (const g of report.duplicateGroups) {\n groupsByList[g.listBasename] = (groupsByList[g.listBasename] ?? 0) + 1;\n }\n const n = report.duplicateGroups.length;\n const o = report.orphanCoordinationMarkdown.length;\n const parts: string[] = [];\n if (n === 0) {\n parts.push(\"No duplicate list rows (same slug or name, different codes).\");\n } else {\n parts.push(`${n} duplicate list group(s).`);\n }\n if (o === 0) {\n parts.push(\"No orphan coordination-shaped detail markdown files.\");\n } else {\n parts.push(`${o} orphan detail markdown file(s) (on disk but not current list targets).`);\n }\n parts.push(`See ${COORDINATION_DUPLICATES_REPORT_BASENAME}.`);\n\n return {\n ok: true,\n reportAbsolutePath: outPath,\n groupCount: n,\n orphanMarkdownCount: o,\n groupsByList,\n message: parts.join(\" \"),\n };\n}\n", "import {\n createApiError,\n type AuthUser,\n type HttpApiError,\n type LoginApiPayload,\n type LoginResponse,\n normalizeTokens,\n normalizeUser,\n} from \"./authProtocol\";\n\nexport const API_TIMEOUT_MS = 10_000;\n\nexport interface RefreshTokenResponse {\n accessToken: string;\n refreshToken: string;\n}\n\nasync function fetchWithTimeout(url: string, init: RequestInit, fetchImpl: typeof fetch): Promise<Response> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), API_TIMEOUT_MS);\n try {\n return await fetchImpl(url, { ...init, signal: controller.signal });\n } finally {\n clearTimeout(timeoutId);\n }\n}\n\nexport async function loginWithApi(\n apiBaseUrl: string,\n fetchImpl: typeof fetch,\n email: string,\n password: string,\n): Promise<LoginResponse> {\n const url = `${apiBaseUrl}/api/authentication/login`;\n const response = await fetchWithTimeout(\n url,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n body: JSON.stringify({ email, password }),\n },\n fetchImpl,\n );\n const payload = (await response.json().catch(() => null)) as unknown;\n if (!response.ok) {\n const fallback =\n payload == null\n ? `${response.statusText || \"HTTP error\"} (response body empty or not JSON)`\n : \"Request failed.\";\n throw createApiError(response.status, fallback, payload);\n }\n return normalizeTokens(payload as LoginApiPayload);\n}\n\nexport async function refreshTokenWithApi(\n apiBaseUrl: string,\n fetchImpl: typeof fetch,\n refreshToken: string,\n): Promise<RefreshTokenResponse> {\n const url = `${apiBaseUrl}/api/authentication/refresh-token`;\n const response = await fetchWithTimeout(\n url,\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n body: JSON.stringify({ refresh_token: refreshToken }),\n },\n fetchImpl,\n );\n const payload = (await response.json().catch(() => null)) as unknown;\n if (!response.ok) {\n const fallback =\n payload == null\n ? `${response.statusText || \"HTTP error\"} (response body empty or not JSON)`\n : \"Request failed.\";\n throw createApiError(response.status, fallback, payload);\n }\n const tokens = normalizeTokens(payload as LoginApiPayload);\n return { accessToken: tokens.accessToken, refreshToken: tokens.refreshToken };\n}\n\nexport async function getCurrentUserFromApi(\n apiBaseUrl: string,\n fetchImpl: typeof fetch,\n accessToken: string,\n): Promise<AuthUser> {\n const url = `${apiBaseUrl}/api/authentication/user`;\n const response = await fetchWithTimeout(\n url,\n {\n method: \"GET\",\n headers: {\n \"Content-Type\": \"application/json\",\n Accept: \"application/json\",\n Authorization: `Bearer ${accessToken}`,\n },\n },\n fetchImpl,\n );\n const payload = (await response.json().catch(() => null)) as unknown;\n if (!response.ok) {\n const fallback =\n payload == null\n ? `${response.statusText || \"HTTP error\"} (response body empty or not JSON)`\n : \"Request failed.\";\n throw createApiError(response.status, fallback, payload);\n }\n return normalizeUser(payload);\n}\n\nexport function isAbortOrNetworkError(e: unknown): boolean {\n return e instanceof Error && (e.name === \"AbortError\" || e.message.includes(\"fetch\"));\n}\n\nexport function toFetchErrorMessage(e: unknown): HttpApiError {\n if (e && typeof e === \"object\" && \"status\" in e && \"message\" in e) {\n return e as HttpApiError;\n }\n const msg = e instanceof Error ? e.message : String(e);\n return { status: 0, message: msg };\n}\n", "/**\n * System Manager registers content saves on `application/vnd.gluecharm.v1.ws-legacy+json`.\n * Plain `application/json` returns *No representation returned for \u2026*.\n * Remove when the API accepts standard JSON for these paths (SRS-11).\n */\nexport const GLUECHARM_WS_LEGACY_JSON = \"application/vnd.gluecharm.v1.ws-legacy+json\";\n\nexport function pathWithoutQuery(path: string): string {\n const q = path.indexOf(\"?\");\n return q === -1 ? path : path.slice(0, q);\n}\n\nexport function isGluecharmContentApiPath(path: string): boolean {\n const p = pathWithoutQuery(path);\n return p.startsWith(\"/api/content/\") || p.startsWith(\"/api/batch/content/\");\n}\n\nexport function gluecharmContentHeaders(method: string): Record<string, string> {\n const m = method.toUpperCase();\n const headers: Record<string, string> = { Accept: GLUECHARM_WS_LEGACY_JSON };\n if (m === \"POST\" || m === \"PUT\" || m === \"PATCH\") {\n headers[\"Content-Type\"] = GLUECHARM_WS_LEGACY_JSON;\n }\n return headers;\n}\n", "import { createApiError, type HttpApiError } from \"./authProtocol\";\nimport { API_TIMEOUT_MS } from \"./authApi\";\nimport { gluecharmContentHeaders, isGluecharmContentApiPath } from \"./gluecharmContentNegotiation\";\n\nexport interface HttpRequestOptions {\n method?: \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n body?: unknown;\n headers?: Record<string, string>;\n withAuth?: boolean;\n retryOnUnauthorized?: boolean;\n /** Override default `API_TIMEOUT_MS` (e.g. batch content saves that exceed 10s server-side). */\n timeoutMs?: number;\n /** When aborted, in-flight fetch rejects with `AbortError` (e.g. user stops context upload). */\n signal?: AbortSignal;\n}\n\nasync function fetchWithTimeout(\n url: string,\n init: RequestInit,\n fetchImpl: typeof fetch,\n timeoutMs: number,\n externalSignal?: AbortSignal,\n): Promise<Response> {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), timeoutMs);\n\n const onExternalAbort = (): void => {\n clearTimeout(timeoutId);\n controller.abort();\n };\n\n if (externalSignal?.aborted) {\n clearTimeout(timeoutId);\n throw new DOMException(\"The operation was aborted.\", \"AbortError\");\n }\n if (externalSignal) {\n externalSignal.addEventListener(\"abort\", onExternalAbort, { once: true });\n }\n\n try {\n return await fetchImpl(url, { ...init, signal: controller.signal });\n } finally {\n clearTimeout(timeoutId);\n if (externalSignal) {\n externalSignal.removeEventListener(\"abort\", onExternalAbort);\n }\n }\n}\n\nexport interface AuthenticatedFetchDeps {\n getApiBaseUrl: () => string;\n getAccessToken: () => string | null;\n getRefreshToken: () => string | null;\n refreshSession: () => Promise<boolean>;\n fetchImpl?: typeof fetch;\n}\n\nexport function createAuthenticatedRequestJson(deps: AuthenticatedFetchDeps): <T>(path: string, options?: HttpRequestOptions) => Promise<T> {\n const fetchImpl = deps.fetchImpl ?? fetch;\n\n async function requestJson<T>(path: string, options: HttpRequestOptions = {}): Promise<T> {\n const base = deps.getApiBaseUrl();\n if (!base) {\n const err: HttpApiError = { status: 0, message: \"easyspecs.apiBaseUrl is not configured.\" };\n throw err;\n }\n\n const method = options.method ?? \"GET\";\n const headers: Record<string, string> = { ...options.headers };\n if (isGluecharmContentApiPath(path)) {\n Object.assign(headers, gluecharmContentHeaders(method));\n } else {\n if (!headers.Accept) {\n headers.Accept = \"application/json\";\n }\n if (options.body !== undefined && !headers[\"Content-Type\"]) {\n headers[\"Content-Type\"] = \"application/json\";\n }\n }\n\n const access = deps.getAccessToken();\n if (options.withAuth !== false && access) {\n headers.Authorization = `Bearer ${access}`;\n }\n\n const url = `${base}${path}`;\n const timeoutMs = options.timeoutMs ?? API_TIMEOUT_MS;\n const response = await fetchWithTimeout(\n url,\n {\n method,\n headers,\n body: options.body !== undefined ? JSON.stringify(options.body) : undefined,\n },\n fetchImpl,\n timeoutMs,\n options.signal,\n );\n\n const payload = (await response.json().catch(() => null)) as unknown;\n if (response.ok) {\n return payload as T;\n }\n\n const shouldRetryUnauthorized =\n response.status === 401 &&\n options.withAuth !== false &&\n options.retryOnUnauthorized !== false &&\n Boolean(deps.getRefreshToken());\n\n if (shouldRetryUnauthorized) {\n const refreshed = await deps.refreshSession();\n if (refreshed) {\n return requestJson<T>(path, { ...options, retryOnUnauthorized: false });\n }\n }\n\n const fallback =\n payload == null\n ? `${response.statusText || \"HTTP error\"} (response body empty or not JSON)`\n : \"Request failed.\";\n throw createApiError(response.status, fallback, payload);\n }\n\n return requestJson;\n}\n", "import * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport type { EasyspecsConfigRoot } from \"../config/easyspecsConfigJson\";\n\nexport type CliSessionFile = {\n apiBaseUrl: string;\n accessToken: string;\n refreshToken: string;\n};\n\nfunction defaultSessionPath(): string {\n return path.join(os.homedir(), \".easyspecs\", \"cli-session.json\");\n}\n\n/** Set from **`easyspecs.cliSessionPath`** in config after each repo config load (CLI process). */\nlet configSessionPath: string | undefined;\n\nexport function setCliSessionPathFromConfig(absPath: string | undefined): void {\n configSessionPath = absPath?.trim() ? path.resolve(absPath) : undefined;\n}\n\n/** Resolve **`easyspecs.cliSessionPath`** after **`ensureEasyspecsConfig`** (repo-relative paths use **`repoRoot`**). */\nexport function applyCliSessionPathFromRepoConfig(repoRoot: string, cfg: EasyspecsConfigRoot): void {\n const raw = cfg.easyspecs?.cliSessionPath?.trim();\n if (!raw) {\n setCliSessionPathFromConfig(undefined);\n return;\n }\n const abs = path.isAbsolute(raw) ? raw : path.join(repoRoot, raw);\n setCliSessionPathFromConfig(abs);\n}\n\n/**\n * Value to store in **`easyspecs.cliSessionPath`**: repo-relative POSIX path when under **`repoRoot`**, else absolute.\n */\nexport function normalizeCliSessionPathForConfig(repoRoot: string, raw: string): string {\n const t = raw.trim();\n if (!t) {\n return \"\";\n }\n const resolvedRepo = path.resolve(repoRoot);\n const abs = path.isAbsolute(t) ? path.normalize(t) : path.resolve(resolvedRepo, t);\n const rel = path.relative(resolvedRepo, abs);\n if (rel === \"\") {\n return abs;\n }\n const underRepo = !rel.startsWith(\"..\") && !path.isAbsolute(rel);\n if (underRepo) {\n return rel.split(path.sep).join(\"/\");\n }\n return abs;\n}\n\n/**\n * Order: **`easyspecs.cliSessionPath`** from config (or global **`--session-path`** applied in **`main`**) \u2192\n * default **`~/.easyspecs/cli-session.json`**.\n */\nexport function effectiveCliSessionPath(): string {\n if (configSessionPath) {\n return configSessionPath;\n }\n return defaultSessionPath();\n}\n\nexport function readCliSession(): CliSessionFile | undefined {\n const p = effectiveCliSessionPath();\n try {\n if (!fs.existsSync(p)) {\n return undefined;\n }\n const j = JSON.parse(fs.readFileSync(p, \"utf8\")) as Record<string, unknown>;\n const apiBaseUrl = typeof j.apiBaseUrl === \"string\" ? j.apiBaseUrl.trim() : \"\";\n const accessToken = typeof j.accessToken === \"string\" ? j.accessToken : \"\";\n const refreshToken = typeof j.refreshToken === \"string\" ? j.refreshToken : \"\";\n if (!apiBaseUrl || !accessToken) {\n return undefined;\n }\n return { apiBaseUrl, accessToken, refreshToken };\n } catch {\n return undefined;\n }\n}\n\nexport function writeCliSession(s: CliSessionFile): void {\n const p = effectiveCliSessionPath();\n fs.mkdirSync(path.dirname(p), { recursive: true });\n fs.writeFileSync(p, `${JSON.stringify(s, null, 2)}\\n`, \"utf8\");\n}\n\nexport function clearCliSession(): void {\n const p = effectiveCliSessionPath();\n try {\n fs.unlinkSync(p);\n } catch {\n /* ignore */\n }\n}\n", "/**\n * SRS-37: pending ACE traces = schema-valid files under learnings/traces not yet successfully\n * logged in ace-consolidated-sessions.jsonl.\n */\n\nimport * as fs from \"fs\";\nimport * as path from \"path\";\nimport { validateAceJsonFile } from \"./aceJsonValidate\";\nimport { listAceTraceFiles } from \"./aceOfflineLearn\";\nimport { ACE_SCHEMA_TRACE, aceConsolidatedSessionsJsonlPath, opencodeAceSchemaPath } from \"./acePaths\";\n\n/** Normalize to forward slashes for comparison with jsonl `traceRelativePath`. */\nexport function normalizeAceTraceRelativePath(rel: string): string {\n return rel.split(/[/\\\\]/).join(\"/\");\n}\n\n/** Successful consolidated rows: both OpenCode phases exited zero. */\nexport function readCompletedTraceRelativePaths(contextDir: string): Set<string> {\n const set = new Set<string>();\n const jsonlPath = aceConsolidatedSessionsJsonlPath(contextDir);\n if (!fs.existsSync(jsonlPath)) {\n return set;\n }\n let raw: string;\n try {\n raw = fs.readFileSync(jsonlPath, \"utf8\");\n } catch {\n return set;\n }\n for (const line of raw.split(/\\r?\\n/)) {\n const t = line.trim();\n if (!t.length) {\n continue;\n }\n let o: unknown;\n try {\n o = JSON.parse(t) as unknown;\n } catch {\n continue;\n }\n if (!o || typeof o !== \"object\" || Array.isArray(o)) {\n continue;\n }\n const rec = o as Record<string, unknown>;\n if (rec.reflectorOpenCodeExitedZero !== true || rec.curatorOpenCodeExitedZero !== true) {\n continue;\n }\n if (typeof rec.traceRelativePath !== \"string\" || !rec.traceRelativePath.length) {\n continue;\n }\n set.add(normalizeAceTraceRelativePath(rec.traceRelativePath));\n }\n return set;\n}\n\n/**\n * Absolute paths of traces that pass the trace schema and are not in the consolidated success set.\n * Sorted lexicographically by path relative to `contextDir` (posix-style).\n */\nexport function listPendingAceTraceFiles(contextDir: string, worktreeRoot: string): string[] {\n const traceSchema = opencodeAceSchemaPath(worktreeRoot, ACE_SCHEMA_TRACE);\n if (!fs.existsSync(traceSchema)) {\n return [];\n }\n const completed = readCompletedTraceRelativePaths(contextDir);\n const allAbs = listAceTraceFiles(contextDir);\n const pending: { abs: string; rel: string }[] = [];\n for (const abs of allAbs) {\n const rel = normalizeAceTraceRelativePath(path.relative(contextDir, abs));\n const v = validateAceJsonFile(abs, traceSchema);\n if (!v.ok) {\n continue;\n }\n if (completed.has(rel)) {\n continue;\n }\n pending.push({ abs, rel });\n }\n pending.sort((a, b) => a.rel.localeCompare(b.rel));\n return pending.map((x) => x.abs);\n}\n", "/**\n * SRS-37: bounded concurrent offline ACE learn (Reflector \u2192 Curator \u2192 apply) over pending traces.\n */\n\nimport * as path from \"path\";\nimport type { AceOfflineLearnOptions } from \"./aceOfflineLearn\";\nimport { runAceOfflineLearnFromTrace } from \"./aceOfflineLearn\";\nimport { gluecharmContextDir } from \"./acePaths\";\n\nfunction clampConcurrency(n: number): number {\n if (!Number.isFinite(n)) {\n return 30;\n }\n return Math.min(64, Math.max(1, Math.floor(n)));\n}\n\nexport interface AceAutoLearnPoolParams {\n readonly traceAbsolutePaths: readonly string[];\n readonly maxConcurrentOpenCodeAgents: number;\n readonly baseOpts: AceOfflineLearnOptions;\n readonly abortSignal?: AbortSignal;\n readonly onItemStart?: (traceRelativePath: string) => void | Promise<void>;\n readonly onItemComplete?: (traceRelativePath: string, ok: boolean) => void | Promise<void>;\n readonly log?: (line: string) => void;\n /** Test hook. */\n readonly runOfflineLearn?: (\n traceAbsolutePath: string,\n opts: AceOfflineLearnOptions,\n ) => Promise<{ ok: boolean; message: string }>;\n}\n\nexport interface AceAutoLearnPoolResult {\n readonly cancelled: boolean;\n readonly completed: number;\n readonly failed: number;\n}\n\nexport async function runAceAutoLearnPool(p: AceAutoLearnPoolParams): Promise<AceAutoLearnPoolResult> {\n const maxC = clampConcurrency(p.maxConcurrentOpenCodeAgents);\n const contextDir = gluecharmContextDir(p.baseOpts.worktreeRoot);\n const runner = p.runOfflineLearn ?? runAceOfflineLearnFromTrace;\n const fifo = [...p.traceAbsolutePaths];\n let active = 0;\n let wake: (() => void) | undefined;\n const waitTurn = (): Promise<void> =>\n new Promise<void>((resolve) => {\n wake = resolve;\n });\n const pump = (): void => {\n wake?.();\n wake = undefined;\n };\n\n let completed = 0;\n let failed = 0;\n const { abortSignal } = p;\n\n const onPipelineAbort = (): void => {\n fifo.length = 0;\n pump();\n };\n\n if (abortSignal) {\n if (abortSignal.aborted) {\n onPipelineAbort();\n } else {\n abortSignal.addEventListener(\"abort\", onPipelineAbort, { once: true });\n }\n }\n\n const traceRel = (abs: string): string =>\n path.relative(contextDir, abs).split(path.sep).join(\"/\");\n\n const runOne = async (traceAbs: string): Promise<void> => {\n if (abortSignal?.aborted) {\n active -= 1;\n pump();\n return;\n }\n const rel = traceRel(traceAbs);\n p.log?.(`[SRS-37] ace auto-learn: start ${rel} (active ${active}/${maxC})`);\n await p.onItemStart?.(rel);\n const r = await runner(traceAbs, { ...p.baseOpts, abortSignal });\n if (r.ok) {\n completed += 1;\n } else {\n failed += 1;\n p.log?.(`[SRS-37] ace auto-learn: failed ${rel} \u2014 ${r.message}`);\n }\n await p.onItemComplete?.(rel, r.ok);\n active -= 1;\n p.log?.(`[SRS-37] ace auto-learn: finished ${rel} ok=${r.ok}`);\n pump();\n };\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n while (fifo.length > 0 && active < maxC && !abortSignal?.aborted) {\n const traceAbs = fifo.shift()!;\n active += 1;\n void runOne(traceAbs);\n }\n\n const pendingOrRunning = active > 0 || fifo.length > 0;\n\n if (!pendingOrRunning) {\n break;\n }\n\n if (abortSignal?.aborted) {\n if (active === 0) {\n break;\n }\n await waitTurn();\n continue;\n }\n\n if (fifo.length === 0 || active >= maxC) {\n await waitTurn();\n }\n }\n\n return { cancelled: abortSignal?.aborted === true, completed, failed };\n}\n", "/** Parse `--key value` pairs from argv tail (after subcommand words). */\nexport function parseTailFlags(tail: readonly string[]): {\n rootKind: \"workspace\" | \"worktree\";\n worktree?: string;\n} {\n let rootKind: \"workspace\" | \"worktree\" = \"workspace\";\n let worktree: string | undefined;\n for (let i = 0; i < tail.length; i += 1) {\n const a = tail[i] ?? \"\";\n if (a === \"--root\" && tail[i + 1] === \"worktree\") {\n rootKind = \"worktree\";\n i += 1;\n continue;\n }\n if (a === \"--root\" && tail[i + 1] === \"workspace\") {\n rootKind = \"workspace\";\n i += 1;\n continue;\n }\n if (a === \"--worktree\" && tail[i + 1]) {\n worktree = tail[i + 1];\n i += 1;\n continue;\n }\n }\n return { rootKind, worktree };\n}\n", "export type DoctorModeFlags = {\n readonly readiness: boolean;\n readonly inspectConfig: boolean;\n};\n\nconst ALLOWED = new Set([\"--readiness\", \"--inspect-config\"]);\n\n/**\n * Tokens after **`doctor`**. Empty \u2192 readiness only (backward compatible).\n * **`--inspect-config`** alone \u2192 merged config inspect only (redacted).\n * **`--readiness`** explicitly \u2192 readiness lines only.\n * **`--readiness --inspect-config`** \u2192 both.\n */\nexport function parseDoctorFlags(tail: readonly string[]): DoctorModeFlags {\n for (const t of tail) {\n if (!ALLOWED.has(t)) {\n throw new Error(`Unknown doctor flag: ${t}`);\n }\n }\n if (tail.length === 0) {\n return { readiness: true, inspectConfig: false };\n }\n return {\n readiness: tail.includes(\"--readiness\"),\n inspectConfig: tail.includes(\"--inspect-config\"),\n };\n}\n", "/**\n * Tokens after **`auth login`** \u2014 **`--email`**, **`--password`**, optional **`--session-path`**, **`--ci`** (CI ignored here).\n */\n\nexport type ParsedAuthLoginCli = {\n readonly email: string;\n readonly password: string;\n};\n\nexport type ParseAuthLoginTailResult =\n | { readonly ok: true; readonly creds: ParsedAuthLoginCli }\n | { readonly ok: false; readonly error: string };\n\n/** Remove **`--session-path <path>`** from tail (returns that path when present). */\nexport function extractAuthLoginSessionPathFromTail(tail: readonly string[]): {\n readonly rest: string[];\n readonly sessionPath?: string;\n} {\n const rest: string[] = [];\n let sessionPath: string | undefined;\n for (let i = 0; i < tail.length; i += 1) {\n const a = tail[i] ?? \"\";\n if (a === \"--session-path\") {\n const v = tail[i + 1];\n if (v === undefined || v.startsWith(\"-\")) {\n throw new Error(\"--session-path requires a value\");\n }\n sessionPath = v;\n i += 1;\n continue;\n }\n rest.push(a);\n }\n return { rest, sessionPath };\n}\n\nfunction stripCiFlag(tail: readonly string[]): string[] {\n return tail.filter((t) => t !== \"--ci\");\n}\n\nexport function parseAuthLoginTail(tail: readonly string[]): ParseAuthLoginTailResult {\n const tokens = stripCiFlag(tail);\n let email: string | undefined;\n let password: string | undefined;\n\n for (let i = 0; i < tokens.length; i += 1) {\n const a = tokens[i] ?? \"\";\n if (a === \"--email\") {\n const v = tokens[i + 1];\n if (v === undefined || v.startsWith(\"-\")) {\n return { ok: false, error: \"--email requires a value\" };\n }\n email = v;\n i += 1;\n continue;\n }\n if (a === \"--password\") {\n const v = tokens[i + 1];\n if (v === undefined) {\n return { ok: false, error: \"--password requires a value\" };\n }\n password = v;\n i += 1;\n continue;\n }\n return { ok: false, error: `Unexpected argument: ${a}` };\n }\n\n if (!email?.trim()) {\n return { ok: false, error: \"Missing --email (or use --ci with EASYSPECS_EMAIL / EASYSPECS_PASSWORD)\" };\n }\n if (password === undefined) {\n return { ok: false, error: \"Missing --password (or use --ci with EASYSPECS_EMAIL / EASYSPECS_PASSWORD)\" };\n }\n\n return { ok: true, creds: { email: email.trim(), password } };\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["exports", "module", "exports", "UsedValueState", "exports", "exports", "exports", "Type", "exports", "exports", "exports", "exports", "exports", "DataType", "exports", "exports", "exports", "schemaRef", "exports", "_a", "exports", "exports", "module", "exports", "module", "exports", "normalize", "exports", "exports", "exports", "exports", "compileSchema", "resolve", "exports", "module", "exports", "module", "path", "exports", "module", "path", "exports", "module", "normalize", "resolve", "relative", "exports", "exports", "exports", "getValidate", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "exports", "DiscrError", "exports", "exports", "exports", "module", "require_applicator", "exports", "module", "require_unevaluated", "exports", "module", "exports", "module", "require_core", "exports", "module", "exports", "module", "exports", "module", "require_validation", "exports", "module", "ajv", "exports", "Ajv2020", "exports", "module", "fs", "path", "fs", "path", "contextDir", "extensionRoot", "path", "fs", "path", "fs", "path", "fs", "path", "fs", "path", "fs", "path", "fs", "path", "row", "contextDir", "basename", "fs", "path", "fs", "path", "path", "contextDir", "basename", "fs", "stripUtf8Bom", "stripUtf8Bom", "ajv", "Ajv2020", "contextDir", "contextDir", "fs", "path", "fs", "path", "resolve", "fs", "isRecord", "row", "fs", "path", "fs", "path", "contextDir", "fs", "path", "ACE_VERSION", "contextDir", "contextDir", "expandArgvTemplate", "contextDir", "fs", "import__", "stripUtf8Bom", "formatAjvErrors", "ajv", "Ajv2020", "fs", "fs", "path", "fs", "path", "expandArgvTemplate", "basename", "import_child_process", "fs", "path", "isRecord", "fs", "path", "import__", "fs", "path", "fs", "path", "ajv", "Ajv2020", "formatAjvErrors", "row", "contextDir", "walkScopes", "readJson", "path", "vscode", "fs", "fs", "path", "contextDir", "SLUG", "stripBom", "readJson", "safeStr", "slugOrFallback", "row", "contextDir", "basename", "r", "resolve", "fs", "path", "resolve", "fs", "path", "STORAGE_KEY", "randomRunId", "STORAGE_KEY", "fs", "path", "fs", "path", "SLUG", "FE", "UC", "SC", "DM", "FD", "readJson", "safeStr", "slugOrFallback", "row", "SLUG", "FE", "contextDir", "basename", "contextDir", "readJson", "row", "safeStr", "FE", "slugOrFallback", "basename", "UC", "SLUG", "SC", "DM", "flPath", "FD", "row", "contextDir", "path", "contextDir", "row", "import_child_process", "fs", "path", "fs", "path", "import__", "stripUtf8Bom", "formatAjvErrors", "ajv", "Ajv2020", "contextDir", "fs", "path", "fs", "path", "import__", "stripUtf8Bom", "formatAjvErrors", "Ajv2020", "basename", "expandArgvTemplate", "schemaRef", "row", "schemaRef", "expandArgvTemplate", "fs", "path", "row", "fs", "path", "fs", "path", "fs", "path", "contextDir", "normalizeRel", "SCOPE_KEYS", "normalizeRel", "walkNodes", "walkScopes", "isRecord", "contextDir", "isRecord", "contextDir", "path", "basename", "t0", "contextDir", "contextDir", "fs", "path", "import__", "basename", "stripUtf8Bom", "row", "ajv", "Ajv2020", "path", "fetchWithTimeout", "path", "fs", "os", "path", "fs", "path", "contextDir", "path", "clampConcurrency", "contextDir", "resolve", "path", "contextDir"]
7
7
  }