@sayoriqwq/effect-harness 0.0.4 → 0.0.5

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderProfile.js","sourceRoot":"","sources":["../../../../src/harness/verify/ProviderProfile.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, FileSystem } from 'effect'\nimport { readJson } from '../../platform/Json.ts'\nimport { HarnessError } from '../Errors.ts'\nimport { isRecord } from './JsonFields.ts'\nimport {\n expectedPackageBaseline,\n expectedPrepareCommand,\n expectedTypecheckCommand,\n strictDiagnosticGate,\n strictDiagnosticSeverity,\n} from './TsgoPolicy.ts'\nimport { verifyStageSpecs } from './VerifyStage.ts'\n\nfunction decodeJsonRecord(value: unknown, source: string): Effect.Effect<Record<string, unknown>, HarnessError> {\n return isRecord(value)\n ? Effect.succeed(value)\n : Effect.fail(new HarnessError({ message: `${source} must be a JSON object` }))\n}\n\nfunction recordField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): Record<string, unknown> | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (!isRecord(value)) {\n errors.push(`${source}.${key} must be an object.`)\n return undefined\n }\n return value\n}\n\nfunction stringField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): string | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (typeof value !== 'string') {\n errors.push(`${source}.${key} must be a string.`)\n return undefined\n }\n return value\n}\n\nfunction booleanField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): boolean | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (typeof value !== 'boolean') {\n errors.push(`${source}.${key} must be a boolean.`)\n return undefined\n }\n return value\n}\n\nfunction arrayField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): ReadonlyArray<unknown> | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (!Array.isArray(value)) {\n errors.push(`${source}.${key} must be an array.`)\n return undefined\n }\n return value\n}\n\nfunction assertStringValue(errors: Array<string>, actual: string | undefined, expected: string, source: string): void {\n if (actual !== undefined && actual !== expected) {\n errors.push(`${source} is ${actual}; expected ${expected}.`)\n }\n}\n\nfunction assertBooleanValue(errors: Array<string>, actual: boolean | undefined, expected: boolean, source: string): void {\n if (actual !== undefined && actual !== expected) {\n errors.push(`${source} is ${String(actual)}; expected ${String(expected)}.`)\n }\n}\n\nfunction assertArrayContainsString(\n errors: Array<string>,\n values: ReadonlyArray<unknown> | undefined,\n expected: string,\n source: string,\n): void {\n if (values !== undefined && !values.includes(expected)) {\n errors.push(`${source} must include ${expected}.`)\n }\n}\n\nfunction assertArrayDoesNotContainText(\n errors: Array<string>,\n values: ReadonlyArray<unknown> | undefined,\n text: string,\n source: string,\n): void {\n if (values?.some(value => typeof value === 'string' && value.includes(text)) === true) {\n errors.push(`${source} must not include text containing ${text}.`)\n }\n}\n\nfunction assertRecordDoesNotContain(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): void {\n if (record !== undefined && key in record) {\n errors.push(`${source} must not contain field ${key}.`)\n }\n}\n\nfunction stableJson(value: unknown): string {\n if (Array.isArray(value)) {\n return `[${value.map(stableJson).join(',')}]`\n }\n if (isRecord(value)) {\n return `{${Object.keys(value).sort().map(key => `${JSON.stringify(key)}:${stableJson(value[key])}`).join(',')}}`\n }\n return JSON.stringify(value)\n}\n\nfunction assertJsonValue(errors: Array<string>, actual: unknown, expected: unknown, source: string): void {\n if (stableJson(actual) !== stableJson(expected)) {\n errors.push(`${source} does not match the expected provider contract value.`)\n }\n}\n\ninterface ExpectedManagedFile {\n readonly id: string\n readonly requiredKeywords?: ReadonlyArray<string>\n readonly sourcePath: string\n readonly targetPath: string\n readonly targetUsage?: string\n}\n\nconst expectedSelfMaterializationForbiddenSurfaces = [\n '.prelude',\n '.prelude/providers',\n '.prelude/providers/effect-harness',\n '.prelude/providers/effect-harness/provider.json',\n '.prelude/providers/effect-harness/docs',\n '.prelude/providers/effect-harness/snippets',\n] as const\n\nfunction fileRecordById(\n files: ReadonlyArray<unknown> | undefined,\n id: string,\n): Record<string, unknown> | undefined {\n return files?.find(file => isRecord(file) && file.id === id) as Record<string, unknown> | undefined\n}\n\nconst forbiddenTargetLocalSourceClaims = [\n 'target SHOULD receive `repos/',\n 'target MUST receive `repos/',\n 'target 应该接收 `repos/',\n 'target 必须接收 `repos/',\n] as const\n\nconst assertManagedFileContribution = Effect.fnUntraced(function* (\n errors: Array<string>,\n harness: string,\n files: ReadonlyArray<unknown> | undefined,\n expected: ExpectedManagedFile,\n source: string,\n) {\n const file = fileRecordById(files, expected.id)\n if (file === undefined) {\n errors.push(`${source}.files must include ${expected.id}.`)\n return\n }\n\n assertStringValue(errors, stringField(errors, file, 'sourcePath', `${source}.files[${expected.id}]`), expected.sourcePath, `${source}.files[${expected.id}].sourcePath`)\n assertStringValue(errors, stringField(errors, file, 'targetPath', `${source}.files[${expected.id}]`), expected.targetPath, `${source}.files[${expected.id}].targetPath`)\n assertStringValue(errors, stringField(errors, file, 'contentType', `${source}.files[${expected.id}]`), 'text/markdown', `${source}.files[${expected.id}].contentType`)\n assertBooleanValue(errors, booleanField(errors, file, 'managed', `${source}.files[${expected.id}]`), true, `${source}.files[${expected.id}].managed`)\n if (expected.targetUsage !== undefined) {\n assertStringValue(errors, stringField(errors, file, 'targetUsage', `${source}.files[${expected.id}]`), expected.targetUsage, `${source}.files[${expected.id}].targetUsage`)\n }\n\n const fs = yield* FileSystem.FileSystem\n const path = `${harness}/${expected.sourcePath}`\n if (!(yield* fs.exists(path))) {\n errors.push(`${source}.files[${expected.id}].sourcePath does not exist: ${expected.sourcePath}.`)\n return\n }\n\n const text = yield* fs.readFileString(path)\n for (const keyword of expected.requiredKeywords ?? []) {\n if (!text.includes(keyword)) {\n errors.push(`${expected.sourcePath} must contain managed docs topic ${keyword}.`)\n }\n }\n for (const phrase of forbiddenTargetLocalSourceClaims) {\n if (text.includes(phrase)) {\n errors.push(`${expected.sourcePath} must not describe provider-internal repos as target-local content.`)\n }\n }\n})\n\nconst assertManagedFileBundle = Effect.fnUntraced(function* (\n errors: Array<string>,\n harness: string,\n bundle: Record<string, unknown> | undefined,\n expectedBasePath: string,\n expectedFiles: ReadonlyArray<ExpectedManagedFile>,\n source: string,\n) {\n if (bundle === undefined) {\n return\n }\n\n assertStringValue(errors, stringField(errors, bundle, 'mode', source), 'managed-files', `${source}.mode`)\n assertStringValue(errors, stringField(errors, bundle, 'targetBasePath', source), expectedBasePath, `${source}.targetBasePath`)\n\n const files = arrayField(errors, bundle, 'files', source)\n for (const expected of expectedFiles) {\n yield* assertManagedFileContribution(errors, harness, files, expected, source)\n }\n})\n\ntype PackageName = keyof typeof expectedPackageBaseline\ntype PackageField = 'dependencies' | 'devDependencies'\n\ninterface ExpectedPackageGroup {\n readonly field: PackageField\n readonly packageNames: ReadonlyArray<PackageName>\n}\n\nconst expectedPackageGroups = {\n runtime: {\n field: 'dependencies',\n packageNames: ['effect', '@effect/platform-node'],\n },\n testing: {\n field: 'devDependencies',\n packageNames: ['@effect/vitest', 'vitest'],\n },\n diagnostics: {\n field: 'devDependencies',\n packageNames: ['@effect/tsgo', '@effect/language-service'],\n },\n nativeBackend: {\n field: 'devDependencies',\n packageNames: ['@typescript/native-preview'],\n },\n linting: {\n field: 'devDependencies',\n packageNames: ['@antfu/eslint-config', 'eslint'],\n },\n} as const satisfies Readonly<Record<string, ExpectedPackageGroup>>\n\nconst expectedLintCommand = 'pnpm lint --max-warnings 0'\nconst expectedLintScript = 'eslint'\nconst expectedTestCommand = 'pnpm test'\nconst expectedTestScript = 'vitest run'\nconst expectedVerifyCommand = 'pnpm verify'\nconst expectedVerifyScript = 'node bin/effect-harness.ts verify --harness .'\n\nfunction assertPackageBaseline(\n errors: Array<string>,\n profileBaseline: Record<string, unknown> | undefined,\n): void {\n if (profileBaseline === undefined) {\n return\n }\n\n for (const [name, expected] of Object.entries(expectedPackageBaseline)) {\n const actual = profileBaseline[name]\n if (actual !== expected) {\n errors.push(`provider profile packageBaseline.${name} is ${String(actual ?? 'missing')}; expected ${expected}.`)\n }\n }\n}\n\nfunction assertSourceEntryEditorPolicy(\n errors: Array<string>,\n sourceContract: Record<string, unknown>,\n sourceEntryId: string,\n filesExclude: 'disabled' | 'enabled',\n): void {\n const editorPolicy = recordField(errors, sourceContract, 'editorPolicy', `${sourceEntryId} source contract`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'autoImportExclude', `${sourceEntryId} source contract.editorPolicy`), 'block', `${sourceEntryId} source contract.editorPolicy.autoImportExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'watcherExclude', `${sourceEntryId} source contract.editorPolicy`), 'recommended', `${sourceEntryId} source contract.editorPolicy.watcherExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'searchExclude', `${sourceEntryId} source contract.editorPolicy`), 'recommended', `${sourceEntryId} source contract.editorPolicy.searchExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'filesExclude', `${sourceEntryId} source contract.editorPolicy`), filesExclude, `${sourceEntryId} source contract.editorPolicy.filesExclude`)\n}\n\nfunction assertEditorPolicyContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n effectContract: Record<string, unknown>,\n tsgoContract: Record<string, unknown>,\n vscodeSettings: Record<string, unknown>,\n): void {\n const editorPolicy = recordField(errors, contributions, 'editorPolicy', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, editorPolicy, 'mode', 'provider profile editorPolicy contribution'), 'structured-merge', 'provider profile editorPolicy.mode')\n assertArrayContainsString(errors, arrayField(errors, editorPolicy, 'targetPaths', 'provider profile editorPolicy contribution'), '.vscode/settings.json', 'provider profile editorPolicy.targetPaths')\n assertArrayContainsString(errors, arrayField(errors, editorPolicy, 'targetPaths', 'provider profile editorPolicy contribution'), '.zed/settings.json', 'provider profile editorPolicy.targetPaths')\n\n const sourceIdentity = recordField(errors, editorPolicy, 'sourceIdentity', 'provider profile editorPolicy contribution')\n assertArrayContainsString(errors, arrayField(errors, sourceIdentity, 'providerInternalPatterns', 'provider profile editorPolicy.sourceIdentity'), 'repos/**', 'provider profile editorPolicy.sourceIdentity.providerInternalPatterns')\n assertBooleanValue(errors, booleanField(errors, sourceIdentity, 'targetReceivesSourceTrees', 'provider profile editorPolicy.sourceIdentity'), false, 'provider profile editorPolicy.sourceIdentity.targetReceivesSourceTrees')\n\n const policies = recordField(errors, editorPolicy, 'policies', 'provider profile editorPolicy contribution')\n const autoImport = recordField(errors, policies, 'autoImportExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, autoImport, 'level', 'provider profile editorPolicy.policies.autoImportExclude'), 'hard-boundary', 'provider profile editorPolicy.policies.autoImportExclude.level')\n assertStringValue(errors, stringField(errors, autoImport, 'sourceEntryContractField', 'provider profile editorPolicy.policies.autoImportExclude'), 'editorPolicy.autoImportExclude', 'provider profile editorPolicy.policies.autoImportExclude.sourceEntryContractField')\n assertStringValue(errors, stringField(errors, autoImport, 'expectedContractValue', 'provider profile editorPolicy.policies.autoImportExclude'), 'block', 'provider profile editorPolicy.policies.autoImportExclude.expectedContractValue')\n assertArrayContainsString(errors, arrayField(errors, autoImport, 'patterns', 'provider profile editorPolicy.policies.autoImportExclude'), 'repos/**', 'provider profile editorPolicy.policies.autoImportExclude.patterns')\n const vscodeAutoImport = recordField(errors, autoImport, 'vscode', 'provider profile editorPolicy.policies.autoImportExclude')\n assertArrayContainsString(errors, arrayField(errors, vscodeAutoImport, 'typescript.preferences.autoImportFileExcludePatterns', 'provider profile editorPolicy.policies.autoImportExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.autoImportExclude.vscode.typescript.preferences.autoImportFileExcludePatterns')\n assertArrayContainsString(errors, arrayField(errors, vscodeAutoImport, 'javascript.preferences.autoImportFileExcludePatterns', 'provider profile editorPolicy.policies.autoImportExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.autoImportExclude.vscode.javascript.preferences.autoImportFileExcludePatterns')\n const zedAutoImport = recordField(errors, autoImport, 'zed', 'provider profile editorPolicy.policies.autoImportExclude')\n assertStringValue(errors, stringField(errors, zedAutoImport, 'settingsPath', 'provider profile editorPolicy.policies.autoImportExclude.zed'), '.zed/settings.json', 'provider profile editorPolicy.policies.autoImportExclude.zed.settingsPath')\n if (recordField(errors, zedAutoImport, 'lsp', 'provider profile editorPolicy.policies.autoImportExclude.zed') === undefined) {\n errors.push('provider profile editorPolicy.policies.autoImportExclude.zed must use a Zed-specific lsp settings shape.')\n }\n\n const watchExclude = recordField(errors, policies, 'watchExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, watchExclude, 'level', 'provider profile editorPolicy.policies.watchExclude'), 'recommended', 'provider profile editorPolicy.policies.watchExclude.level')\n assertStringValue(errors, stringField(errors, watchExclude, 'sourceEntryContractField', 'provider profile editorPolicy.policies.watchExclude'), 'editorPolicy.watcherExclude', 'provider profile editorPolicy.policies.watchExclude.sourceEntryContractField')\n assertStringValue(errors, stringField(errors, watchExclude, 'expectedContractValue', 'provider profile editorPolicy.policies.watchExclude'), 'recommended', 'provider profile editorPolicy.policies.watchExclude.expectedContractValue')\n assertBooleanValue(errors, booleanField(errors, watchExclude, 'requiresConfiguration', 'provider profile editorPolicy.policies.watchExclude'), true, 'provider profile editorPolicy.policies.watchExclude.requiresConfiguration')\n assertArrayContainsString(errors, arrayField(errors, watchExclude, 'patterns', 'provider profile editorPolicy.policies.watchExclude'), 'repos/**', 'provider profile editorPolicy.policies.watchExclude.patterns')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, recordField(errors, watchExclude, 'vscode', 'provider profile editorPolicy.policies.watchExclude'), 'files.watcherExclude', 'provider profile editorPolicy.policies.watchExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.watchExclude.vscode.files.watcherExclude'), true, 'provider profile editorPolicy.policies.watchExclude.vscode.files.watcherExclude[\"repos/**\"]')\n\n const searchExclude = recordField(errors, policies, 'searchExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, searchExclude, 'level', 'provider profile editorPolicy.policies.searchExclude'), 'recommended', 'provider profile editorPolicy.policies.searchExclude.level')\n assertStringValue(errors, stringField(errors, searchExclude, 'sourceEntryContractField', 'provider profile editorPolicy.policies.searchExclude'), 'editorPolicy.searchExclude', 'provider profile editorPolicy.policies.searchExclude.sourceEntryContractField')\n assertStringValue(errors, stringField(errors, searchExclude, 'expectedContractValue', 'provider profile editorPolicy.policies.searchExclude'), 'recommended', 'provider profile editorPolicy.policies.searchExclude.expectedContractValue')\n assertBooleanValue(errors, booleanField(errors, searchExclude, 'requiresConfiguration', 'provider profile editorPolicy.policies.searchExclude'), true, 'provider profile editorPolicy.policies.searchExclude.requiresConfiguration')\n assertArrayContainsString(errors, arrayField(errors, searchExclude, 'patterns', 'provider profile editorPolicy.policies.searchExclude'), 'repos/**', 'provider profile editorPolicy.policies.searchExclude.patterns')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, recordField(errors, searchExclude, 'vscode', 'provider profile editorPolicy.policies.searchExclude'), 'search.exclude', 'provider profile editorPolicy.policies.searchExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.searchExclude.vscode.search.exclude'), true, 'provider profile editorPolicy.policies.searchExclude.vscode.search.exclude[\"repos/**\"]')\n\n const filesExclude = recordField(errors, policies, 'filesExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, filesExclude, 'level', 'provider profile editorPolicy.policies.filesExclude'), 'preference', 'provider profile editorPolicy.policies.filesExclude.level')\n assertStringValue(errors, stringField(errors, filesExclude, 'sourceEntryContractField', 'provider profile editorPolicy.policies.filesExclude'), 'editorPolicy.filesExclude', 'provider profile editorPolicy.policies.filesExclude.sourceEntryContractField')\n assertBooleanValue(errors, booleanField(errors, filesExclude, 'requiresExplicitOptIn', 'provider profile editorPolicy.policies.filesExclude'), true, 'provider profile editorPolicy.policies.filesExclude.requiresExplicitOptIn')\n const sourceEntryDefaults = recordField(errors, filesExclude, 'sourceEntryDefaults', 'provider profile editorPolicy.policies.filesExclude')\n assertStringValue(errors, stringField(errors, sourceEntryDefaults, 'effect-official-source', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults'), 'enabled', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults.effect-official-source')\n assertStringValue(errors, stringField(errors, sourceEntryDefaults, 'tsgo-official-source', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults'), 'disabled', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults.tsgo-official-source')\n const contributionFilesExclude = recordField(errors, recordField(errors, filesExclude, 'vscode', 'provider profile editorPolicy.policies.filesExclude'), 'files.exclude', 'provider profile editorPolicy.policies.filesExclude.vscode')\n assertBooleanValue(errors, booleanField(errors, contributionFilesExclude, 'repos/effect/**', 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude'), true, 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude[\"repos/effect/**\"]')\n assertRecordDoesNotContain(errors, contributionFilesExclude, 'repos/tsgo/**', 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude')\n assertRecordDoesNotContain(errors, contributionFilesExclude, 'repos/**', 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude')\n\n assertArrayContainsString(errors, arrayField(errors, vscodeSettings, 'typescript.preferences.autoImportFileExcludePatterns', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.typescript.preferences.autoImportFileExcludePatterns')\n assertArrayContainsString(errors, arrayField(errors, vscodeSettings, 'javascript.preferences.autoImportFileExcludePatterns', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.javascript.preferences.autoImportFileExcludePatterns')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, vscodeSettings, 'files.watcherExclude', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.files.watcherExclude'), true, '.vscode/settings.json.files.watcherExclude[\"repos/**\"]')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, vscodeSettings, 'search.exclude', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.search.exclude'), true, '.vscode/settings.json.search.exclude[\"repos/**\"]')\n const vscodeFilesExclude = recordField(errors, vscodeSettings, 'files.exclude', '.vscode/settings.json')\n assertBooleanValue(errors, booleanField(errors, vscodeFilesExclude, 'repos/effect/**', '.vscode/settings.json.files.exclude'), true, '.vscode/settings.json.files.exclude[\"repos/effect/**\"]')\n assertRecordDoesNotContain(errors, vscodeFilesExclude, 'repos/tsgo/**', '.vscode/settings.json.files.exclude')\n assertRecordDoesNotContain(errors, vscodeFilesExclude, 'repos/**', '.vscode/settings.json.files.exclude')\n\n assertSourceEntryEditorPolicy(errors, effectContract, 'effect-official-source', 'enabled')\n assertSourceEntryEditorPolicy(errors, tsgoContract, 'tsgo-official-source', 'disabled')\n}\n\nfunction assertEslintConfigContains(errors: Array<string>, eslintText: string, marker: string): void {\n if (!eslintText.includes(marker)) {\n errors.push(`eslint.config.mjs must contain ${marker}.`)\n }\n}\n\nfunction assertLintGuardrailsContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n eslintText: string,\n): void {\n const lintGuardrails = recordField(errors, contributions, 'lintGuardrails', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, lintGuardrails, 'mode', 'provider profile lintGuardrails contribution'), 'command-policy', 'provider profile lintGuardrails.mode')\n assertStringValue(errors, stringField(errors, lintGuardrails, 'stage', 'provider profile lintGuardrails contribution'), 'lint', 'provider profile lintGuardrails.stage')\n assertStringValue(errors, stringField(errors, lintGuardrails, 'command', 'provider profile lintGuardrails contribution'), expectedLintCommand, 'provider profile lintGuardrails.command')\n assertArrayContainsString(errors, arrayField(errors, lintGuardrails, 'configFiles', 'provider profile lintGuardrails contribution'), 'eslint.config.mjs', 'provider profile lintGuardrails.configFiles')\n\n const scripts = recordField(errors, packageManifest, 'scripts', 'package.json')\n assertStringValue(errors, stringField(errors, scripts, 'lint', 'package.json.scripts'), expectedLintScript, 'package.json.scripts.lint')\n\n const layers = recordField(errors, lintGuardrails, 'layers', 'provider profile lintGuardrails contribution')\n const owns = arrayField(errors, layers, 'owns', 'provider profile lintGuardrails.layers')\n assertArrayContainsString(errors, owns, 'repository import boundary', 'provider profile lintGuardrails.layers.owns')\n assertArrayContainsString(errors, owns, 'Effect v4 CLI import boundary', 'provider profile lintGuardrails.layers.owns')\n assertArrayContainsString(errors, owns, 'Effect test entry', 'provider profile lintGuardrails.layers.owns')\n assertArrayContainsString(errors, owns, 'syntax-level Effect guardrails', 'provider profile lintGuardrails.layers.owns')\n const doesNotOwn = arrayField(errors, layers, 'doesNotOwn', 'provider profile lintGuardrails.layers')\n assertArrayContainsString(errors, doesNotOwn, 'Effect semantic diagnostics', 'provider profile lintGuardrails.layers.doesNotOwn')\n assertArrayContainsString(errors, doesNotOwn, 'tsgo rule severity map', 'provider profile lintGuardrails.layers.doesNotOwn')\n\n const rules = recordField(errors, lintGuardrails, 'rules', 'provider profile lintGuardrails contribution')\n const restrictedImports = arrayField(errors, rules, 'restrictedImports', 'provider profile lintGuardrails.rules')\n for (const source of ['node:test', '@effect/cli', '@effect/cli/*', 'repos/effect/**', 'repos/tsgo/**']) {\n assertArrayContainsString(errors, restrictedImports, source, 'provider profile lintGuardrails.rules.restrictedImports')\n const eslintMarker = source.endsWith('/**')\n ? source.slice(0, -3)\n : source.endsWith('/*')\n ? source.slice(0, -2)\n : source\n assertEslintConfigContains(errors, eslintText, eslintMarker)\n }\n const restrictedVitestImports = arrayField(errors, rules, 'restrictedVitestImports', 'provider profile lintGuardrails.rules')\n for (const importName of ['describe', 'it', 'test']) {\n assertArrayContainsString(errors, restrictedVitestImports, importName, 'provider profile lintGuardrails.rules.restrictedVitestImports')\n }\n const allowedVitestImports = arrayField(errors, rules, 'allowedVitestImports', 'provider profile lintGuardrails.rules')\n for (const importName of ['vi', 'beforeEach', 'afterEach', 'beforeAll', 'afterAll']) {\n assertArrayContainsString(errors, allowedVitestImports, importName, 'provider profile lintGuardrails.rules.allowedVitestImports')\n }\n assertEslintConfigContains(errors, eslintText, 'vitest')\n assertEslintConfigContains(errors, eslintText, 'importNames')\n\n const restrictedSyntax = arrayField(errors, rules, 'restrictedSyntax', 'provider profile lintGuardrails.rules')\n for (const syntax of ['Context.Tag', 'Effect.catchAllCause', 'Effect.ignore', 'Effect.serviceOption', '{ disableValidation: true }', 'plain it() in tests']) {\n assertArrayContainsString(errors, restrictedSyntax, syntax, 'provider profile lintGuardrails.rules.restrictedSyntax')\n }\n for (const marker of [\n 'MemberExpression[object.name=\"Context\"][property.name=\"Tag\"]',\n 'catchAllCause|ignore|serviceOption',\n 'disableValidation',\n 'CallExpression[callee.name=\"it\"]',\n ]) {\n assertEslintConfigContains(errors, eslintText, marker)\n }\n}\n\nfunction assertTestPolicyContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n): void {\n const testPolicy = recordField(errors, contributions, 'testPolicy', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, testPolicy, 'mode', 'provider profile testPolicy contribution'), 'command-policy', 'provider profile testPolicy.mode')\n assertStringValue(errors, stringField(errors, testPolicy, 'stage', 'provider profile testPolicy contribution'), 'tests', 'provider profile testPolicy.stage')\n assertStringValue(errors, stringField(errors, testPolicy, 'command', 'provider profile testPolicy contribution'), expectedTestCommand, 'provider profile testPolicy.command')\n assertStringValue(errors, stringField(errors, testPolicy, 'packageScript', 'provider profile testPolicy contribution'), expectedTestScript, 'provider profile testPolicy.packageScript')\n assertStringValue(errors, stringField(errors, testPolicy, 'framework', 'provider profile testPolicy contribution'), '@effect/vitest', 'provider profile testPolicy.framework')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'expectedEntries', 'provider profile testPolicy contribution'), 'tests/**/*.test.ts', 'provider profile testPolicy.expectedEntries')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'effectEntrypoints', 'provider profile testPolicy contribution'), 'it.effect', 'provider profile testPolicy.effectEntrypoints')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'effectEntrypoints', 'provider profile testPolicy contribution'), 'it.live', 'provider profile testPolicy.effectEntrypoints')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'effectEntrypoints', 'provider profile testPolicy contribution'), 'layer', 'provider profile testPolicy.effectEntrypoints')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'disallowedImports', 'provider profile testPolicy contribution'), 'node:test', 'provider profile testPolicy.disallowedImports')\n const disallowedVitestImports = arrayField(errors, testPolicy, 'disallowedVitestImports', 'provider profile testPolicy contribution')\n for (const importName of ['describe', 'it', 'test']) {\n assertArrayContainsString(errors, disallowedVitestImports, importName, 'provider profile testPolicy.disallowedVitestImports')\n }\n}\n\nfunction stageRecordByTag(\n stages: ReadonlyArray<unknown> | undefined,\n tag: string,\n): Record<string, unknown> | undefined {\n return stages?.find(stage => isRecord(stage) && stage.tag === tag) as Record<string, unknown> | undefined\n}\n\nfunction assertVerificationPolicyContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n): void {\n const verificationPolicy = recordField(errors, contributions, 'verificationPolicy', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'mode', 'provider profile verificationPolicy contribution'), 'pipeline-policy', 'provider profile verificationPolicy.mode')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'completionGate', 'provider profile verificationPolicy contribution'), expectedVerifyCommand, 'provider profile verificationPolicy.completionGate')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'packageScript', 'provider profile verificationPolicy contribution'), expectedVerifyScript, 'provider profile verificationPolicy.packageScript')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'lifecycleOwner', 'provider profile verificationPolicy contribution'), 'prelude', 'provider profile verificationPolicy.lifecycleOwner')\n\n const scripts = recordField(errors, packageManifest, 'scripts', 'package.json')\n assertStringValue(errors, stringField(errors, scripts, 'verify', 'package.json.scripts'), expectedVerifyScript, 'package.json.scripts.verify')\n\n const localCommands = recordField(errors, verificationPolicy, 'localCommands', 'provider profile verificationPolicy contribution')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'diagnostics', 'provider profile verificationPolicy.localCommands'), 'pnpm typecheck', 'provider profile verificationPolicy.localCommands.diagnostics')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'tests', 'provider profile verificationPolicy.localCommands'), expectedTestCommand, 'provider profile verificationPolicy.localCommands.tests')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'lint', 'provider profile verificationPolicy.localCommands'), expectedLintCommand, 'provider profile verificationPolicy.localCommands.lint')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'completion', 'provider profile verificationPolicy.localCommands'), expectedVerifyCommand, 'provider profile verificationPolicy.localCommands.completion')\n\n const stages = arrayField(errors, verificationPolicy, 'stages', 'provider profile verificationPolicy contribution')\n for (const spec of verifyStageSpecs) {\n const stage = stageRecordByTag(stages, spec.tag)\n if (stage === undefined) {\n errors.push(`provider profile verificationPolicy.stages must include ${spec.tag}.`)\n continue\n }\n assertStringValue(errors, stringField(errors, stage, 'summary', `provider profile verificationPolicy.stages[${spec.tag}]`), spec.summary, `provider profile verificationPolicy.stages[${spec.tag}].summary`)\n }\n}\n\nfunction assertPackageGroup(\n errors: Array<string>,\n dependencyGroups: Record<string, unknown> | undefined,\n groupName: string,\n expected: ExpectedPackageGroup,\n): void {\n const group = recordField(errors, dependencyGroups, groupName, 'provider profile packageJson.dependencyGroups')\n assertStringValue(errors, stringField(errors, group, 'field', `provider profile packageJson.dependencyGroups.${groupName}`), expected.field, `provider profile packageJson.dependencyGroups.${groupName}.field`)\n const packages = recordField(errors, group, 'packages', `provider profile packageJson.dependencyGroups.${groupName}`)\n if (packages === undefined) {\n return\n }\n\n const expectedNames = new Set<string>(expected.packageNames)\n for (const name of Object.keys(packages)) {\n if (!expectedNames.has(name)) {\n errors.push(`provider profile packageJson.dependencyGroups.${groupName}.packages must not include ${name}.`)\n }\n }\n\n for (const name of expected.packageNames) {\n assertStringValue(\n errors,\n stringField(errors, packages, name, `provider profile packageJson.dependencyGroups.${groupName}.packages`),\n expectedPackageBaseline[name],\n `provider profile packageJson.dependencyGroups.${groupName}.packages.${name}`,\n )\n }\n}\n\nfunction assertWorkspaceCatalogEntry(\n errors: Array<string>,\n workspaceText: string,\n name: PackageName,\n): void {\n const escapedName = name.replace(/[.*+?^${}()|[\\]\\\\]/gu, String.raw`\\$&`)\n const escapedVersion = expectedPackageBaseline[name].replace(/[.*+?^${}()|[\\]\\\\]/gu, String.raw`\\$&`)\n const pattern = new RegExp(`(?:^|\\\\n)\\\\s*['\"]?${escapedName}['\"]?:\\\\s*${escapedVersion}(?:\\\\n|$)`, 'u')\n if (!pattern.test(workspaceText)) {\n errors.push(`pnpm-workspace.yaml catalog must pin ${name} to ${expectedPackageBaseline[name]}.`)\n }\n}\n\nfunction assertPackageGroupSelfConformance(\n errors: Array<string>,\n dependencyGroups: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n workspaceText: string,\n groupName: keyof typeof expectedPackageGroups,\n selfConformanceSpecifier: string,\n): void {\n const expected = expectedPackageGroups[groupName]\n assertPackageGroup(errors, dependencyGroups, groupName, expected)\n\n const packageSection = recordField(errors, packageManifest, expected.field, 'package.json')\n for (const name of expected.packageNames) {\n assertStringValue(\n errors,\n stringField(errors, packageSection, name, `package.json.${expected.field}`),\n selfConformanceSpecifier,\n `package.json.${expected.field}.${name}`,\n )\n assertWorkspaceCatalogEntry(errors, workspaceText, name)\n }\n}\n\nfunction assertPackageScriptsContribution(\n errors: Array<string>,\n packageContribution: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n): void {\n const contributionScripts = recordField(errors, packageContribution, 'scripts', 'provider profile packageJson contribution')\n const prepare = recordField(errors, contributionScripts, 'prepare', 'provider profile packageJson.scripts')\n const typecheck = recordField(errors, contributionScripts, 'typecheck', 'provider profile packageJson.scripts')\n const test = recordField(errors, contributionScripts, 'test', 'provider profile packageJson.scripts')\n const lint = recordField(errors, contributionScripts, 'lint', 'provider profile packageJson.scripts')\n assertStringValue(errors, stringField(errors, prepare, 'defaultCommand', 'provider profile packageJson.scripts.prepare'), expectedPrepareCommand, 'provider profile packageJson.scripts.prepare.defaultCommand')\n assertStringValue(errors, stringField(errors, typecheck, 'defaultCommand', 'provider profile packageJson.scripts.typecheck'), expectedTypecheckCommand, 'provider profile packageJson.scripts.typecheck.defaultCommand')\n assertStringValue(errors, stringField(errors, test, 'defaultCommand', 'provider profile packageJson.scripts.test'), expectedTestScript, 'provider profile packageJson.scripts.test.defaultCommand')\n assertStringValue(errors, stringField(errors, lint, 'defaultCommand', 'provider profile packageJson.scripts.lint'), expectedLintScript, 'provider profile packageJson.scripts.lint.defaultCommand')\n\n const manifestScripts = recordField(errors, packageManifest, 'scripts', 'package.json')\n assertStringValue(errors, stringField(errors, manifestScripts, 'prepare', 'package.json.scripts'), expectedPrepareCommand, 'package.json.scripts.prepare')\n assertStringValue(errors, stringField(errors, manifestScripts, 'typecheck', 'package.json.scripts'), expectedTypecheckCommand, 'package.json.scripts.typecheck')\n assertStringValue(errors, stringField(errors, manifestScripts, 'lint', 'package.json.scripts'), expectedLintScript, 'package.json.scripts.lint')\n}\n\nfunction assertPackageJsonContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n workspaceText: string,\n): void {\n const packageJson = recordField(errors, contributions, 'packageJson', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, packageJson, 'mode', 'provider profile packageJson contribution'), 'structured-merge', 'provider profile packageJson.mode')\n assertStringValue(errors, stringField(errors, packageJson, 'targetPath', 'provider profile packageJson contribution'), 'package.json', 'provider profile packageJson.targetPath')\n const selfConformanceSpecifier = stringField(errors, packageJson, 'selfConformanceSpecifier', 'provider profile packageJson contribution')\n assertStringValue(errors, selfConformanceSpecifier, 'catalog:', 'provider profile packageJson.selfConformanceSpecifier')\n assertRecordDoesNotContain(errors, packageJson, 'dependencies', 'provider profile packageJson contribution')\n assertRecordDoesNotContain(errors, packageJson, 'devDependencies', 'provider profile packageJson contribution')\n\n const dependencyGroups = recordField(errors, packageJson, 'dependencyGroups', 'provider profile packageJson contribution')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'runtime', selfConformanceSpecifier ?? '')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'testing', selfConformanceSpecifier ?? '')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'diagnostics', selfConformanceSpecifier ?? '')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'nativeBackend', selfConformanceSpecifier ?? '')\n assertPackageScriptsContribution(errors, packageJson, packageManifest)\n}\n\nfunction assertTsconfigContributionMetadata(errors: Array<string>, contributions: Record<string, unknown> | undefined): void {\n const tsconfig = recordField(errors, contributions, 'tsconfig', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, tsconfig, 'mode', 'provider profile tsconfig contribution'), 'structured-merge', 'provider profile tsconfig.mode')\n assertStringValue(errors, stringField(errors, tsconfig, 'targetPath', 'provider profile tsconfig contribution'), 'tsconfig.json', 'provider profile tsconfig.targetPath')\n\n const tsgo = recordField(errors, tsconfig, 'tsgo', 'provider profile tsconfig contribution')\n assertStringValue(errors, stringField(errors, tsgo, 'diagnosticCommand', 'provider profile tsconfig.tsgo'), expectedTypecheckCommand, 'provider profile tsconfig.tsgo.diagnosticCommand')\n\n const nativeBackend = recordField(errors, tsgo, 'nativeBackend', 'provider profile tsconfig.tsgo')\n assertStringValue(errors, stringField(errors, nativeBackend, 'package', 'provider profile tsconfig.tsgo.nativeBackend'), '@typescript/native-preview', 'provider profile tsconfig.tsgo.nativeBackend.package')\n assertStringValue(errors, stringField(errors, nativeBackend, 'version', 'provider profile tsconfig.tsgo.nativeBackend'), expectedPackageBaseline['@typescript/native-preview'], 'provider profile tsconfig.tsgo.nativeBackend.version')\n assertStringValue(errors, stringField(errors, nativeBackend, 'setupCommand', 'provider profile tsconfig.tsgo.nativeBackend'), expectedPrepareCommand, 'provider profile tsconfig.tsgo.nativeBackend.setupCommand')\n\n assertJsonValue(errors, recordField(errors, tsgo, 'diagnosticGate', 'provider profile tsconfig.tsgo'), strictDiagnosticGate, 'provider profile tsconfig.tsgo.diagnosticGate')\n\n const ruleMapSource = recordField(errors, tsgo, 'ruleMapSource', 'provider profile tsconfig.tsgo')\n assertStringValue(errors, stringField(errors, ruleMapSource, 'metadata', 'provider profile tsconfig.tsgo.ruleMapSource'), 'repos/tsgo/_packages/tsgo/src/metadata.json', 'provider profile tsconfig.tsgo.ruleMapSource.metadata')\n assertStringValue(errors, stringField(errors, ruleMapSource, 'policy', 'provider profile tsconfig.tsgo.ruleMapSource'), 'harness/tsgo.md', 'provider profile tsconfig.tsgo.ruleMapSource.policy')\n assertStringValue(errors, stringField(errors, ruleMapSource, 'supportedEffect', 'provider profile tsconfig.tsgo.ruleMapSource'), 'v4', 'provider profile tsconfig.tsgo.ruleMapSource.supportedEffect')\n if (ruleMapSource?.ruleCount !== Object.keys(strictDiagnosticSeverity).length) {\n errors.push(`provider profile tsconfig.tsgo.ruleMapSource.ruleCount is ${String(ruleMapSource?.ruleCount ?? 'missing')}; expected ${Object.keys(strictDiagnosticSeverity).length}.`)\n }\n}\n\nfunction assertDeliveryModes(errors: Array<string>, providerProfile: Record<string, unknown>): void {\n const deliveryModes = recordField(errors, providerProfile, 'deliveryModes', 'provider profile')\n const internalHarness = recordField(errors, deliveryModes, 'internalHarness', 'provider profile.deliveryModes')\n const artifactReference = recordField(errors, deliveryModes, 'providerArtifactReference', 'provider profile.deliveryModes')\n const exportedHarness = recordField(errors, deliveryModes, 'exportedHarness', 'provider profile.deliveryModes')\n\n assertStringValue(errors, stringField(errors, internalHarness, 'mode', 'provider profile.deliveryModes.internalHarness'), 'internal-harness', 'provider profile.deliveryModes.internalHarness.mode')\n assertStringValue(errors, stringField(errors, artifactReference, 'mode', 'provider profile.deliveryModes.providerArtifactReference'), 'provider-artifact-reference', 'provider profile.deliveryModes.providerArtifactReference.mode')\n assertStringValue(errors, stringField(errors, exportedHarness, 'mode', 'provider profile.deliveryModes.exportedHarness'), 'exported-harness', 'provider profile.deliveryModes.exportedHarness.mode')\n}\n\nfunction assertSelfConformanceContract(errors: Array<string>, providerProfile: Record<string, unknown>): void {\n const selfConformance = recordField(errors, providerProfile, 'selfConformance', 'provider profile')\n assertStringValue(errors, stringField(errors, selfConformance, 'mode', 'provider profile.selfConformance'), 'provider-repository', 'provider profile.selfConformance.mode')\n assertStringValue(errors, stringField(errors, selfConformance, 'conformsTo', 'provider profile.selfConformance'), 'exported-harness', 'provider profile.selfConformance.conformsTo')\n assertStringValue(errors, stringField(errors, selfConformance, 'completionGate', 'provider profile.selfConformance'), 'pnpm verify', 'provider profile.selfConformance.completionGate')\n assertBooleanValue(errors, booleanField(errors, selfConformance, 'selfMaterialization', 'provider profile.selfConformance'), false, 'provider profile.selfConformance.selfMaterialization')\n assertStringValue(errors, stringField(errors, selfConformance, 'lifecycleOwner', 'provider profile.selfConformance'), 'prelude', 'provider profile.selfConformance.lifecycleOwner')\n\n const forbiddenSurfaces = arrayField(errors, selfConformance, 'forbiddenProviderRepositorySurfaces', 'provider profile.selfConformance')\n for (const surface of expectedSelfMaterializationForbiddenSurfaces) {\n assertArrayContainsString(errors, forbiddenSurfaces, surface, 'provider profile.selfConformance.forbiddenProviderRepositorySurfaces')\n }\n}\n\ninterface ExpectedArtifactReference {\n readonly id: string\n readonly path: string\n readonly sourceEntry: string\n}\n\nfunction assertArtifactReference(\n errors: Array<string>,\n references: Record<string, unknown> | undefined,\n expected: ExpectedArtifactReference,\n): void {\n const reference = recordField(errors, references, expected.id, 'provider profile.artifactReferences.references')\n assertStringValue(errors, stringField(errors, reference, 'sourceEntry', `provider profile.artifactReferences.references.${expected.id}`), expected.sourceEntry, `provider profile.artifactReferences.references.${expected.id}.sourceEntry`)\n assertStringValue(errors, stringField(errors, reference, 'path', `provider profile.artifactReferences.references.${expected.id}`), expected.path, `provider profile.artifactReferences.references.${expected.id}.path`)\n assertStringValue(errors, stringField(errors, reference, 'targetDelivery', `provider profile.artifactReferences.references.${expected.id}`), 'artifact-only', `provider profile.artifactReferences.references.${expected.id}.targetDelivery`)\n}\n\nfunction assertArtifactReferencesContract(\n errors: Array<string>,\n providerProfile: Record<string, unknown>,\n packageManifest: Record<string, unknown>,\n): void {\n const artifactReferences = recordField(errors, providerProfile, 'artifactReferences', 'provider profile')\n assertStringValue(errors, stringField(errors, artifactReferences, 'mode', 'provider profile.artifactReferences'), 'provider-artifact-reference', 'provider profile.artifactReferences.mode')\n assertStringValue(errors, stringField(errors, artifactReferences, 'targetDelivery', 'provider profile.artifactReferences'), 'identity-only', 'provider profile.artifactReferences.targetDelivery')\n\n const packageFiles = arrayField(errors, packageManifest, 'files', 'package.json')\n const packageSurface = arrayField(errors, artifactReferences, 'packageSurface', 'provider profile.artifactReferences')\n for (const path of ['provider', 'harness', 'repos', 'repos/effect.subtree.json', 'repos/tsgo.subtree.json']) {\n assertArrayContainsString(errors, packageFiles, path, 'package.json.files')\n assertArrayContainsString(errors, packageSurface, path, 'provider profile.artifactReferences.packageSurface')\n }\n\n const references = recordField(errors, artifactReferences, 'references', 'provider profile.artifactReferences')\n assertArtifactReference(errors, references, {\n id: 'effect-source-tree',\n path: 'repos/effect',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'effect-source-contract',\n path: 'repos/effect.subtree.json',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'effect-anchor-doc',\n path: 'repos/effect/LLMS.md',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'effect-route-doc',\n path: 'harness/effect-routes.md',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-source-tree',\n path: 'repos/tsgo',\n sourceEntry: 'tsgo-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-source-contract',\n path: 'repos/tsgo.subtree.json',\n sourceEntry: 'tsgo-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-anchor-doc',\n path: 'repos/tsgo/README.md',\n sourceEntry: 'tsgo-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-route-doc',\n path: 'harness/tsgo-routes.md',\n sourceEntry: 'tsgo-official-source',\n })\n}\n\nexport const verifyProviderProfileContract = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const fs = yield* FileSystem.FileSystem\n const providerProfile = yield* readJson(`${harness}/provider/effect-harness.provider.json`, decodeJsonRecord)\n const effectContract = yield* readJson(`${harness}/repos/effect.subtree.json`, decodeJsonRecord)\n const tsgoContract = yield* readJson(`${harness}/repos/tsgo.subtree.json`, decodeJsonRecord)\n const packageManifest = yield* readJson(`${harness}/package.json`, decodeJsonRecord)\n const vscodeSettings = yield* readJson(`${harness}/.vscode/settings.json`, decodeJsonRecord)\n const eslintText = yield* fs.readFileString(`${harness}/eslint.config.mjs`)\n const workspaceText = yield* fs.readFileString(`${harness}/pnpm-workspace.yaml`)\n\n const provider = recordField(errors, providerProfile, 'provider', 'provider profile')\n assertStringValue(errors, stringField(errors, provider, 'id', 'provider profile.provider'), 'effect-harness', 'provider profile.provider.id')\n assertStringValue(errors, stringField(errors, provider, 'defaultProfile', 'provider profile.provider'), 'codex-effect-v4', 'provider profile.provider.defaultProfile')\n assertDeliveryModes(errors, providerProfile)\n assertSelfConformanceContract(errors, providerProfile)\n assertArtifactReferencesContract(errors, providerProfile, packageManifest)\n\n const sourceEntries = recordField(errors, providerProfile, 'sourceEntries', 'provider profile')\n const profiles = recordField(errors, providerProfile, 'profiles', 'provider profile')\n const profile = recordField(errors, profiles, 'codex-effect-v4', 'provider profile.profiles')\n const sourceEntryId = stringField(errors, profile, 'sourceEntry', 'provider profile.profiles.codex-effect-v4')\n assertStringValue(errors, sourceEntryId, 'effect-official-source', 'provider profile.profiles.codex-effect-v4.sourceEntry')\n\n assertProviderSourceEntry(errors, sourceEntries, {\n contractPath: 'repos/effect.subtree.json',\n id: 'effect-official-source',\n updateCommand: 'partita pin update --contract repos/effect.subtree.json --name effect --prefix repos/effect --dry-run',\n verifyCommand: 'partita pin verify --contract repos/effect.subtree.json --name effect --prefix repos/effect',\n })\n assertProviderSourceEntry(errors, sourceEntries, {\n contractPath: 'repos/tsgo.subtree.json',\n id: 'tsgo-official-source',\n updateCommand: 'partita pin update --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo --dry-run',\n verifyCommand: 'partita pin verify --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo',\n })\n assertPartitaSubtreeContract(errors, effectContract, {\n anchor: 'repos/effect/LLMS.md',\n contractPath: 'repos/effect.subtree.json',\n filesExclude: 'enabled',\n name: 'effect',\n prefix: 'repos/effect',\n repository: 'https://github.com/Effect-TS/effect-smol',\n route: 'harness/effect-routes.md',\n updateCommand: 'partita pin update --contract repos/effect.subtree.json --name effect --prefix repos/effect --dry-run',\n verifyCommand: 'partita pin verify --contract repos/effect.subtree.json --name effect --prefix repos/effect',\n })\n assertPartitaSubtreeContract(errors, tsgoContract, {\n anchor: 'repos/tsgo/README.md',\n contractPath: 'repos/tsgo.subtree.json',\n filesExclude: 'disabled',\n name: 'tsgo',\n prefix: 'repos/tsgo',\n repository: 'https://github.com/Effect-TS/tsgo',\n route: 'harness/tsgo-routes.md',\n updateCommand: 'partita pin update --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo --dry-run',\n verifyCommand: 'partita pin verify --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo',\n })\n\n const providerRecord = recordField(errors, providerProfile, 'providerRecord', 'provider profile')\n const sourceDelivery = recordField(errors, providerRecord, 'sourceDelivery', 'provider profile.providerRecord')\n assertStringValue(errors, stringField(errors, sourceDelivery, 'mode', 'provider profile.providerRecord.sourceDelivery'), 'artifact-identity-only', 'provider profile.providerRecord.sourceDelivery.mode')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'artifact.sourceIdentity', 'provider profile.providerRecord.requiredFields')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'artifact.sourceIdentities', 'provider profile.providerRecord.requiredFields')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'surfaces.documentationBundle', 'provider profile.providerRecord.requiredFields')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'surfaces.snippets', 'provider profile.providerRecord.requiredFields')\n\n const sourceBoundary = recordField(errors, profile, 'sourceBoundary', 'provider profile.profiles.codex-effect-v4')\n assertBooleanValue(errors, booleanField(errors, sourceBoundary, 'providerRepoInternal', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), true, 'provider profile.profiles.codex-effect-v4.sourceBoundary.providerRepoInternal')\n assertStringValue(errors, stringField(errors, sourceBoundary, 'targetDelivery', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'identity-only', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetDelivery')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'repos/effect', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'repos/tsgo', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'harness/effect-routes.md', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'harness/tsgo-routes.md', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n\n const options = recordField(errors, profile, 'options', 'provider profile.profiles.codex-effect-v4')\n assertRecordDoesNotContain(errors, options, 'runtime', 'provider profile.profiles.codex-effect-v4.options')\n assertRecordDoesNotContain(errors, options, 'editorPolicy', 'provider profile.profiles.codex-effect-v4.options')\n\n assertPackageBaseline(errors, recordField(errors, profile, 'packageBaseline', 'provider profile.profiles.codex-effect-v4'))\n\n const managedSurfaces = recordField(errors, profile, 'managedSurfaces', 'provider profile.profiles.codex-effect-v4')\n const targetReceives = arrayField(errors, managedSurfaces, 'targetReceives', 'provider profile.profiles.codex-effect-v4.managedSurfaces')\n assertArrayContainsString(errors, targetReceives, 'provider record at .prelude/providers/effect-harness/provider.json', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'provider-managed docs bundle at .prelude/providers/effect-harness/docs', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'provider-managed snippets at .prelude/providers/effect-harness/snippets', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'editor policy structured pointer for target editor settings', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'lint, test, and verification policy records', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, 'runtime assets', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, 'AGENTS.md managed block', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, 'feedback', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, '.effect-harness.json', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n const targetDoesNotReceive = arrayField(errors, managedSurfaces, 'targetDoesNotReceive', 'provider profile.profiles.codex-effect-v4.managedSurfaces')\n assertArrayContainsString(errors, targetDoesNotReceive, 'provider repo internal Effect route harness/effect-routes.md', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetDoesNotReceive')\n assertArrayContainsString(errors, targetDoesNotReceive, 'provider repo internal tsgo route harness/tsgo-routes.md', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetDoesNotReceive')\n\n assertRecordDoesNotContain(errors, profile, 'state', 'provider profile.profiles.codex-effect-v4')\n assertRecordDoesNotContain(errors, profile, 'officialSource', 'provider profile.profiles.codex-effect-v4')\n const contributions = recordField(errors, profile, 'contributions', 'provider profile.profiles.codex-effect-v4')\n assertRecordDoesNotContain(errors, contributions, 'runtimeAssets', 'provider profile.profiles.codex-effect-v4.contributions')\n assertRecordDoesNotContain(errors, contributions, 'agentsBlock', 'provider profile.profiles.codex-effect-v4.contributions')\n assertRecordDoesNotContain(errors, contributions, 'codexAssets', 'provider profile.profiles.codex-effect-v4.contributions')\n assertPackageJsonContribution(errors, contributions, packageManifest, workspaceText)\n assertTsconfigContributionMetadata(errors, contributions)\n assertEditorPolicyContribution(errors, contributions, effectContract, tsgoContract, vscodeSettings)\n assertLintGuardrailsContribution(errors, contributions, packageManifest, eslintText)\n assertTestPolicyContribution(errors, contributions)\n assertVerificationPolicyContribution(errors, contributions, packageManifest)\n\n yield* assertManagedFileBundle(\n errors,\n harness,\n recordField(errors, contributions, 'documentationBundle', 'provider profile.profiles.codex-effect-v4.contributions'),\n '.prelude/providers/effect-harness/docs',\n [\n {\n id: 'effect-code',\n requiredKeywords: ['Effect Code', '@effect/vitest', 'Context.Service', 'effect/unstable/cli'],\n sourcePath: 'provider/docs/effect-code.md',\n targetPath: 'effect-code.md',\n },\n {\n id: 'diagnostics',\n requiredKeywords: ['tsgo --noEmit', '@effect/language-service', 'diagnostic gate', 'drift'],\n sourcePath: 'provider/docs/diagnostics.md',\n targetPath: 'diagnostics.md',\n },\n {\n id: 'editor-policy',\n requiredKeywords: ['auto-import', 'watch exclusion', 'search exclusion', 'file visibility'],\n sourcePath: 'provider/docs/editor-policy.md',\n targetPath: 'editor-policy.md',\n },\n {\n id: 'managed-surfaces',\n requiredKeywords: ['Managed Surfaces', 'target-managed surfaces', 'Artifact-Only', 'Snippets', 'Feedback Loop', 'local drift'],\n sourcePath: 'provider/docs/managed-surfaces.md',\n targetPath: 'managed-surfaces.md',\n },\n {\n id: 'discovery',\n requiredKeywords: ['Provider Discovery', 'provider-discover', 'Prelude', 'target-managed surfaces', 'artifact-only', 'internal harness'],\n sourcePath: 'provider/docs/discovery.md',\n targetPath: 'discovery.md',\n },\n {\n id: 'package-config',\n requiredKeywords: ['Package', 'effect-tsgo patch', 'tsgo --noEmit', 'tsconfig.json'],\n sourcePath: 'provider/docs/package-config.md',\n targetPath: 'package-config.md',\n },\n {\n id: 'quality-policy',\n requiredKeywords: ['lint policy', 'test policy', 'verification policy', 'Prelude'],\n sourcePath: 'provider/docs/quality-policy.md',\n targetPath: 'quality-policy.md',\n },\n {\n id: 'source-identity',\n requiredKeywords: ['Source Identity', 'artifact-only', 'target delivery', 'source pin lifecycle', 'Partita', 'provider record'],\n sourcePath: 'provider/docs/source-identity.md',\n targetPath: 'source-identity.md',\n },\n ],\n 'provider profile.profiles.codex-effect-v4.contributions.documentationBundle',\n )\n yield* assertManagedFileBundle(\n errors,\n harness,\n recordField(errors, contributions, 'snippets', 'provider profile.profiles.codex-effect-v4.contributions'),\n '.prelude/providers/effect-harness/snippets',\n [\n {\n id: 'agents-effect-harness',\n requiredKeywords: ['Effect Harness Snippet', 'provider-managed source content', 'target `AGENTS.md` block'],\n sourcePath: 'provider/snippets/agents.md',\n targetPath: 'agents.md',\n targetUsage: 'manual-copy-or-include-only',\n },\n ],\n 'provider profile.profiles.codex-effect-v4.contributions.snippets',\n )\n})\n\ninterface ExpectedProviderSourceEntry {\n readonly id: string\n readonly contractPath: string\n readonly updateCommand: string\n readonly verifyCommand: string\n}\n\nfunction assertProviderSourceEntry(\n errors: Array<string>,\n sourceEntries: Record<string, unknown> | undefined,\n expected: ExpectedProviderSourceEntry,\n): void {\n const sourceEntry = recordField(errors, sourceEntries, expected.id, 'provider profile.sourceEntries')\n assertStringValue(errors, stringField(errors, sourceEntry, 'kind', `provider profile.sourceEntries.${expected.id}`), 'provider-internal-github-subtree', `provider profile.sourceEntries.${expected.id}.kind`)\n const contract = recordField(errors, sourceEntry, 'contract', `provider profile.sourceEntries.${expected.id}`)\n assertStringValue(errors, stringField(errors, contract, 'path', `provider profile.sourceEntries.${expected.id}.contract`), expected.contractPath, `provider profile.sourceEntries.${expected.id}.contract.path`)\n assertStringValue(errors, stringField(errors, contract, 'owner', `provider profile.sourceEntries.${expected.id}.contract`), 'partita', `provider profile.sourceEntries.${expected.id}.contract.owner`)\n assertStringValue(errors, stringField(errors, contract, 'format', `provider profile.sourceEntries.${expected.id}.contract`), 'github-subtree', `provider profile.sourceEntries.${expected.id}.contract.format`)\n const commands = recordField(errors, sourceEntry, 'commands', `provider profile.sourceEntries.${expected.id}`)\n assertStringValue(errors, stringField(errors, commands, 'update', `provider profile.sourceEntries.${expected.id}.commands`), expected.updateCommand, `provider profile.sourceEntries.${expected.id}.commands.update`)\n assertStringValue(errors, stringField(errors, commands, 'verify', `provider profile.sourceEntries.${expected.id}.commands`), expected.verifyCommand, `provider profile.sourceEntries.${expected.id}.commands.verify`)\n assertRecordDoesNotContain(errors, commands, 'status', `provider profile.sourceEntries.${expected.id}.commands`)\n assertRecordDoesNotContain(errors, sourceEntry, 'repository', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'branch', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'prefix', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'anchor', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'llmDocument', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'agentRoute', `provider profile.sourceEntries.${expected.id}`)\n}\n\ninterface ExpectedPartitaSubtreeContract {\n readonly anchor: string\n readonly contractPath: string\n readonly filesExclude: string\n readonly name: string\n readonly prefix: string\n readonly repository: string\n readonly route: string\n readonly updateCommand: string\n readonly verifyCommand: string\n}\n\nfunction assertPartitaSubtreeContract(\n errors: Array<string>,\n sourceContract: Record<string, unknown>,\n expected: ExpectedPartitaSubtreeContract,\n): void {\n assertStringValue(errors, stringField(errors, sourceContract, 'name', expected.contractPath), expected.name, `${expected.contractPath}.name`)\n assertStringValue(errors, stringField(errors, sourceContract, 'mechanism', expected.contractPath), 'git-subtree', `${expected.contractPath}.mechanism`)\n\n const github = recordField(errors, sourceContract, 'github', expected.contractPath)\n const local = recordField(errors, sourceContract, 'local', expected.contractPath)\n const subtree = recordField(errors, sourceContract, 'subtree', expected.contractPath)\n const anchor = recordField(errors, sourceContract, 'anchor', expected.contractPath)\n const agent = recordField(errors, sourceContract, 'agent', expected.contractPath)\n const commands = recordField(errors, sourceContract, 'commands', expected.contractPath)\n const editorPolicy = recordField(errors, sourceContract, 'editorPolicy', expected.contractPath)\n const boundaries = recordField(errors, sourceContract, 'boundaries', expected.contractPath)\n const ownership = recordField(errors, sourceContract, 'ownership', expected.contractPath)\n\n const split = stringField(errors, subtree, 'split', `${expected.contractPath}.subtree`)\n assertStringValue(errors, stringField(errors, github, 'repository', `${expected.contractPath}.github`), expected.repository, `${expected.contractPath}.github.repository`)\n assertStringValue(errors, stringField(errors, github, 'branch', `${expected.contractPath}.github`), 'main', `${expected.contractPath}.github.branch`)\n assertStringValue(errors, stringField(errors, github, 'ref', `${expected.contractPath}.github`), split ?? '', `${expected.contractPath}.github.ref`)\n assertStringValue(errors, stringField(errors, local, 'prefix', `${expected.contractPath}.local`), expected.prefix, `${expected.contractPath}.local.prefix`)\n assertStringValue(errors, stringField(errors, subtree, 'trailer', `${expected.contractPath}.subtree`), `git-subtree-split: ${split ?? ''}`, `${expected.contractPath}.subtree.trailer`)\n assertStringValue(errors, stringField(errors, anchor, 'llmDocument', `${expected.contractPath}.anchor`), expected.anchor, `${expected.contractPath}.anchor.llmDocument`)\n assertStringValue(errors, stringField(errors, agent, 'route', `${expected.contractPath}.agent`), expected.route, `${expected.contractPath}.agent.route`)\n assertStringValue(errors, stringField(errors, commands, 'update', `${expected.contractPath}.commands`), expected.updateCommand, `${expected.contractPath}.commands.update`)\n assertStringValue(errors, stringField(errors, commands, 'verify', `${expected.contractPath}.commands`), expected.verifyCommand, `${expected.contractPath}.commands.verify`)\n assertRecordDoesNotContain(errors, commands, 'status', `${expected.contractPath}.commands`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'autoImportExclude', `${expected.contractPath}.editorPolicy`), 'block', `${expected.contractPath}.editorPolicy.autoImportExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'watcherExclude', `${expected.contractPath}.editorPolicy`), 'recommended', `${expected.contractPath}.editorPolicy.watcherExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'searchExclude', `${expected.contractPath}.editorPolicy`), 'recommended', `${expected.contractPath}.editorPolicy.searchExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'filesExclude', `${expected.contractPath}.editorPolicy`), expected.filesExclude, `${expected.contractPath}.editorPolicy.filesExclude`)\n assertStringValue(errors, stringField(errors, ownership, 'mode', `${expected.contractPath}.ownership`), 'provider', `${expected.contractPath}.ownership.mode`)\n assertBooleanValue(errors, booleanField(errors, boundaries, 'readOnly', `${expected.contractPath}.boundaries`), true, `${expected.contractPath}.boundaries.readOnly`)\n assertBooleanValue(errors, booleanField(errors, boundaries, 'importBlock', `${expected.contractPath}.boundaries`), true, `${expected.contractPath}.boundaries.importBlock`)\n}\n"]}
1
+ {"version":3,"file":"ProviderProfile.js","sourceRoot":"","sources":["../../../../src/harness/verify/ProviderProfile.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, FileSystem } from 'effect'\nimport { readJson } from '../../platform/Json.ts'\nimport { HarnessError } from '../Errors.ts'\nimport { isRecord } from './JsonFields.ts'\nimport {\n expectedPackageBaseline,\n expectedPrepareCommand,\n expectedTypecheckCommand,\n strictDiagnosticGate,\n strictDiagnosticSeverity,\n} from './TsgoPolicy.ts'\nimport { verifyStageSpecs } from './VerifyStage.ts'\n\nfunction decodeJsonRecord(value: unknown, source: string): Effect.Effect<Record<string, unknown>, HarnessError> {\n return isRecord(value)\n ? Effect.succeed(value)\n : Effect.fail(new HarnessError({ message: `${source} must be a JSON object` }))\n}\n\nfunction recordField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): Record<string, unknown> | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (!isRecord(value)) {\n errors.push(`${source}.${key} must be an object.`)\n return undefined\n }\n return value\n}\n\nfunction stringField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): string | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (typeof value !== 'string') {\n errors.push(`${source}.${key} must be a string.`)\n return undefined\n }\n return value\n}\n\nfunction booleanField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): boolean | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (typeof value !== 'boolean') {\n errors.push(`${source}.${key} must be a boolean.`)\n return undefined\n }\n return value\n}\n\nfunction arrayField(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): ReadonlyArray<unknown> | undefined {\n if (record === undefined) {\n return undefined\n }\n const value = record[key]\n if (!Array.isArray(value)) {\n errors.push(`${source}.${key} must be an array.`)\n return undefined\n }\n return value\n}\n\nfunction assertStringValue(errors: Array<string>, actual: string | undefined, expected: string, source: string): void {\n if (actual !== undefined && actual !== expected) {\n errors.push(`${source} is ${actual}; expected ${expected}.`)\n }\n}\n\nfunction assertBooleanValue(errors: Array<string>, actual: boolean | undefined, expected: boolean, source: string): void {\n if (actual !== undefined && actual !== expected) {\n errors.push(`${source} is ${String(actual)}; expected ${String(expected)}.`)\n }\n}\n\nfunction assertArrayContainsString(\n errors: Array<string>,\n values: ReadonlyArray<unknown> | undefined,\n expected: string,\n source: string,\n): void {\n if (values !== undefined && !values.includes(expected)) {\n errors.push(`${source} must include ${expected}.`)\n }\n}\n\nfunction assertArrayDoesNotContainText(\n errors: Array<string>,\n values: ReadonlyArray<unknown> | undefined,\n text: string,\n source: string,\n): void {\n if (values?.some(value => typeof value === 'string' && value.includes(text)) === true) {\n errors.push(`${source} must not include text containing ${text}.`)\n }\n}\n\nfunction assertRecordDoesNotContain(\n errors: Array<string>,\n record: Record<string, unknown> | undefined,\n key: string,\n source: string,\n): void {\n if (record !== undefined && key in record) {\n errors.push(`${source} must not contain field ${key}.`)\n }\n}\n\nfunction stableJson(value: unknown): string {\n if (Array.isArray(value)) {\n return `[${value.map(stableJson).join(',')}]`\n }\n if (isRecord(value)) {\n return `{${Object.keys(value).sort().map(key => `${JSON.stringify(key)}:${stableJson(value[key])}`).join(',')}}`\n }\n return JSON.stringify(value)\n}\n\nfunction assertJsonValue(errors: Array<string>, actual: unknown, expected: unknown, source: string): void {\n if (stableJson(actual) !== stableJson(expected)) {\n errors.push(`${source} does not match the expected provider contract value.`)\n }\n}\n\ninterface ExpectedManagedFile {\n readonly id: string\n readonly requiredKeywords?: ReadonlyArray<string>\n readonly sourcePath: string\n readonly targetPath: string\n readonly targetUsage?: string\n}\n\nconst expectedSelfMaterializationForbiddenSurfaces = [\n '.prelude',\n '.prelude/providers',\n '.prelude/providers/effect-harness',\n '.prelude/providers/effect-harness/provider.json',\n '.prelude/providers/effect-harness/docs',\n '.prelude/providers/effect-harness/snippets',\n] as const\n\nfunction fileRecordById(\n files: ReadonlyArray<unknown> | undefined,\n id: string,\n): Record<string, unknown> | undefined {\n return files?.find(file => isRecord(file) && file.id === id) as Record<string, unknown> | undefined\n}\n\nconst forbiddenTargetLocalSourceClaims = [\n 'target SHOULD receive `repos/',\n 'target MUST receive `repos/',\n 'target 应该接收 `repos/',\n 'target 必须接收 `repos/',\n] as const\n\nconst assertManagedFileContribution = Effect.fnUntraced(function* (\n errors: Array<string>,\n harness: string,\n files: ReadonlyArray<unknown> | undefined,\n expected: ExpectedManagedFile,\n source: string,\n) {\n const file = fileRecordById(files, expected.id)\n if (file === undefined) {\n errors.push(`${source}.files must include ${expected.id}.`)\n return\n }\n\n assertStringValue(errors, stringField(errors, file, 'sourcePath', `${source}.files[${expected.id}]`), expected.sourcePath, `${source}.files[${expected.id}].sourcePath`)\n assertStringValue(errors, stringField(errors, file, 'targetPath', `${source}.files[${expected.id}]`), expected.targetPath, `${source}.files[${expected.id}].targetPath`)\n assertStringValue(errors, stringField(errors, file, 'contentType', `${source}.files[${expected.id}]`), 'text/markdown', `${source}.files[${expected.id}].contentType`)\n assertBooleanValue(errors, booleanField(errors, file, 'managed', `${source}.files[${expected.id}]`), true, `${source}.files[${expected.id}].managed`)\n if (expected.targetUsage !== undefined) {\n assertStringValue(errors, stringField(errors, file, 'targetUsage', `${source}.files[${expected.id}]`), expected.targetUsage, `${source}.files[${expected.id}].targetUsage`)\n }\n\n const fs = yield* FileSystem.FileSystem\n const path = `${harness}/${expected.sourcePath}`\n if (!(yield* fs.exists(path))) {\n errors.push(`${source}.files[${expected.id}].sourcePath does not exist: ${expected.sourcePath}.`)\n return\n }\n\n const text = yield* fs.readFileString(path)\n for (const keyword of expected.requiredKeywords ?? []) {\n if (!text.includes(keyword)) {\n errors.push(`${expected.sourcePath} must contain managed docs topic ${keyword}.`)\n }\n }\n for (const phrase of forbiddenTargetLocalSourceClaims) {\n if (text.includes(phrase)) {\n errors.push(`${expected.sourcePath} must not describe provider-internal repos as target-local content.`)\n }\n }\n})\n\nconst assertManagedFileBundle = Effect.fnUntraced(function* (\n errors: Array<string>,\n harness: string,\n bundle: Record<string, unknown> | undefined,\n expectedBasePath: string,\n expectedFiles: ReadonlyArray<ExpectedManagedFile>,\n source: string,\n) {\n if (bundle === undefined) {\n return\n }\n\n assertStringValue(errors, stringField(errors, bundle, 'mode', source), 'managed-files', `${source}.mode`)\n assertStringValue(errors, stringField(errors, bundle, 'targetBasePath', source), expectedBasePath, `${source}.targetBasePath`)\n\n const files = arrayField(errors, bundle, 'files', source)\n for (const expected of expectedFiles) {\n yield* assertManagedFileContribution(errors, harness, files, expected, source)\n }\n})\n\ntype PackageName = keyof typeof expectedPackageBaseline\ntype PackageField = 'dependencies' | 'devDependencies'\n\ninterface ExpectedPackageGroup {\n readonly field: PackageField\n readonly packageNames: ReadonlyArray<PackageName>\n}\n\nconst expectedPackageGroups = {\n runtime: {\n field: 'dependencies',\n packageNames: ['effect', '@effect/platform-node'],\n },\n testing: {\n field: 'devDependencies',\n packageNames: ['@effect/vitest', 'vitest'],\n },\n diagnostics: {\n field: 'devDependencies',\n packageNames: ['@effect/tsgo', '@effect/language-service'],\n },\n nativeBackend: {\n field: 'devDependencies',\n packageNames: ['@typescript/native-preview'],\n },\n linting: {\n field: 'devDependencies',\n packageNames: ['@antfu/eslint-config', 'eslint'],\n },\n} as const satisfies Readonly<Record<string, ExpectedPackageGroup>>\n\nconst expectedLintCommand = 'pnpm lint --max-warnings 0'\nconst expectedLintScript = 'eslint'\nconst expectedTestCommand = 'pnpm test'\nconst expectedTestScript = 'vitest run'\nconst expectedVerifyCommand = 'pnpm verify'\nconst expectedVerifyScript = 'node bin/effect-harness.ts verify --harness .'\n\nfunction assertPackageBaseline(\n errors: Array<string>,\n profileBaseline: Record<string, unknown> | undefined,\n): void {\n if (profileBaseline === undefined) {\n return\n }\n\n for (const [name, expected] of Object.entries(expectedPackageBaseline)) {\n const actual = profileBaseline[name]\n if (actual !== expected) {\n errors.push(`provider profile packageBaseline.${name} is ${String(actual ?? 'missing')}; expected ${expected}.`)\n }\n }\n}\n\nfunction assertSourceEntryEditorPolicy(\n errors: Array<string>,\n sourceContract: Record<string, unknown>,\n sourceEntryId: string,\n filesExclude: 'disabled' | 'enabled',\n): void {\n const editorPolicy = recordField(errors, sourceContract, 'editorPolicy', `${sourceEntryId} source contract`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'autoImportExclude', `${sourceEntryId} source contract.editorPolicy`), 'block', `${sourceEntryId} source contract.editorPolicy.autoImportExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'watcherExclude', `${sourceEntryId} source contract.editorPolicy`), 'recommended', `${sourceEntryId} source contract.editorPolicy.watcherExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'searchExclude', `${sourceEntryId} source contract.editorPolicy`), 'recommended', `${sourceEntryId} source contract.editorPolicy.searchExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'filesExclude', `${sourceEntryId} source contract.editorPolicy`), filesExclude, `${sourceEntryId} source contract.editorPolicy.filesExclude`)\n}\n\nfunction assertEditorPolicyContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n effectContract: Record<string, unknown>,\n tsgoContract: Record<string, unknown>,\n vscodeSettings: Record<string, unknown>,\n): void {\n const editorPolicy = recordField(errors, contributions, 'editorPolicy', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, editorPolicy, 'mode', 'provider profile editorPolicy contribution'), 'structured-merge', 'provider profile editorPolicy.mode')\n assertArrayContainsString(errors, arrayField(errors, editorPolicy, 'targetPaths', 'provider profile editorPolicy contribution'), '.vscode/settings.json', 'provider profile editorPolicy.targetPaths')\n assertArrayContainsString(errors, arrayField(errors, editorPolicy, 'targetPaths', 'provider profile editorPolicy contribution'), '.zed/settings.json', 'provider profile editorPolicy.targetPaths')\n\n const sourceIdentity = recordField(errors, editorPolicy, 'sourceIdentity', 'provider profile editorPolicy contribution')\n assertArrayContainsString(errors, arrayField(errors, sourceIdentity, 'providerInternalPatterns', 'provider profile editorPolicy.sourceIdentity'), 'repos/**', 'provider profile editorPolicy.sourceIdentity.providerInternalPatterns')\n assertBooleanValue(errors, booleanField(errors, sourceIdentity, 'targetReceivesSourceTrees', 'provider profile editorPolicy.sourceIdentity'), false, 'provider profile editorPolicy.sourceIdentity.targetReceivesSourceTrees')\n\n const policies = recordField(errors, editorPolicy, 'policies', 'provider profile editorPolicy contribution')\n const autoImport = recordField(errors, policies, 'autoImportExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, autoImport, 'level', 'provider profile editorPolicy.policies.autoImportExclude'), 'hard-boundary', 'provider profile editorPolicy.policies.autoImportExclude.level')\n assertStringValue(errors, stringField(errors, autoImport, 'sourceEntryContractField', 'provider profile editorPolicy.policies.autoImportExclude'), 'editorPolicy.autoImportExclude', 'provider profile editorPolicy.policies.autoImportExclude.sourceEntryContractField')\n assertStringValue(errors, stringField(errors, autoImport, 'expectedContractValue', 'provider profile editorPolicy.policies.autoImportExclude'), 'block', 'provider profile editorPolicy.policies.autoImportExclude.expectedContractValue')\n assertArrayContainsString(errors, arrayField(errors, autoImport, 'patterns', 'provider profile editorPolicy.policies.autoImportExclude'), 'repos/**', 'provider profile editorPolicy.policies.autoImportExclude.patterns')\n const vscodeAutoImport = recordField(errors, autoImport, 'vscode', 'provider profile editorPolicy.policies.autoImportExclude')\n assertArrayContainsString(errors, arrayField(errors, vscodeAutoImport, 'typescript.preferences.autoImportFileExcludePatterns', 'provider profile editorPolicy.policies.autoImportExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.autoImportExclude.vscode.typescript.preferences.autoImportFileExcludePatterns')\n assertArrayContainsString(errors, arrayField(errors, vscodeAutoImport, 'javascript.preferences.autoImportFileExcludePatterns', 'provider profile editorPolicy.policies.autoImportExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.autoImportExclude.vscode.javascript.preferences.autoImportFileExcludePatterns')\n const zedAutoImport = recordField(errors, autoImport, 'zed', 'provider profile editorPolicy.policies.autoImportExclude')\n assertStringValue(errors, stringField(errors, zedAutoImport, 'settingsPath', 'provider profile editorPolicy.policies.autoImportExclude.zed'), '.zed/settings.json', 'provider profile editorPolicy.policies.autoImportExclude.zed.settingsPath')\n if (recordField(errors, zedAutoImport, 'lsp', 'provider profile editorPolicy.policies.autoImportExclude.zed') === undefined) {\n errors.push('provider profile editorPolicy.policies.autoImportExclude.zed must use a Zed-specific lsp settings shape.')\n }\n\n const watchExclude = recordField(errors, policies, 'watchExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, watchExclude, 'level', 'provider profile editorPolicy.policies.watchExclude'), 'recommended', 'provider profile editorPolicy.policies.watchExclude.level')\n assertStringValue(errors, stringField(errors, watchExclude, 'sourceEntryContractField', 'provider profile editorPolicy.policies.watchExclude'), 'editorPolicy.watcherExclude', 'provider profile editorPolicy.policies.watchExclude.sourceEntryContractField')\n assertStringValue(errors, stringField(errors, watchExclude, 'expectedContractValue', 'provider profile editorPolicy.policies.watchExclude'), 'recommended', 'provider profile editorPolicy.policies.watchExclude.expectedContractValue')\n assertBooleanValue(errors, booleanField(errors, watchExclude, 'requiresConfiguration', 'provider profile editorPolicy.policies.watchExclude'), true, 'provider profile editorPolicy.policies.watchExclude.requiresConfiguration')\n assertArrayContainsString(errors, arrayField(errors, watchExclude, 'patterns', 'provider profile editorPolicy.policies.watchExclude'), 'repos/**', 'provider profile editorPolicy.policies.watchExclude.patterns')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, recordField(errors, watchExclude, 'vscode', 'provider profile editorPolicy.policies.watchExclude'), 'files.watcherExclude', 'provider profile editorPolicy.policies.watchExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.watchExclude.vscode.files.watcherExclude'), true, 'provider profile editorPolicy.policies.watchExclude.vscode.files.watcherExclude[\"repos/**\"]')\n\n const searchExclude = recordField(errors, policies, 'searchExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, searchExclude, 'level', 'provider profile editorPolicy.policies.searchExclude'), 'recommended', 'provider profile editorPolicy.policies.searchExclude.level')\n assertStringValue(errors, stringField(errors, searchExclude, 'sourceEntryContractField', 'provider profile editorPolicy.policies.searchExclude'), 'editorPolicy.searchExclude', 'provider profile editorPolicy.policies.searchExclude.sourceEntryContractField')\n assertStringValue(errors, stringField(errors, searchExclude, 'expectedContractValue', 'provider profile editorPolicy.policies.searchExclude'), 'recommended', 'provider profile editorPolicy.policies.searchExclude.expectedContractValue')\n assertBooleanValue(errors, booleanField(errors, searchExclude, 'requiresConfiguration', 'provider profile editorPolicy.policies.searchExclude'), true, 'provider profile editorPolicy.policies.searchExclude.requiresConfiguration')\n assertArrayContainsString(errors, arrayField(errors, searchExclude, 'patterns', 'provider profile editorPolicy.policies.searchExclude'), 'repos/**', 'provider profile editorPolicy.policies.searchExclude.patterns')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, recordField(errors, searchExclude, 'vscode', 'provider profile editorPolicy.policies.searchExclude'), 'search.exclude', 'provider profile editorPolicy.policies.searchExclude.vscode'), 'repos/**', 'provider profile editorPolicy.policies.searchExclude.vscode.search.exclude'), true, 'provider profile editorPolicy.policies.searchExclude.vscode.search.exclude[\"repos/**\"]')\n\n const filesExclude = recordField(errors, policies, 'filesExclude', 'provider profile editorPolicy.policies')\n assertStringValue(errors, stringField(errors, filesExclude, 'level', 'provider profile editorPolicy.policies.filesExclude'), 'preference', 'provider profile editorPolicy.policies.filesExclude.level')\n assertStringValue(errors, stringField(errors, filesExclude, 'sourceEntryContractField', 'provider profile editorPolicy.policies.filesExclude'), 'editorPolicy.filesExclude', 'provider profile editorPolicy.policies.filesExclude.sourceEntryContractField')\n assertBooleanValue(errors, booleanField(errors, filesExclude, 'requiresExplicitOptIn', 'provider profile editorPolicy.policies.filesExclude'), true, 'provider profile editorPolicy.policies.filesExclude.requiresExplicitOptIn')\n const sourceEntryDefaults = recordField(errors, filesExclude, 'sourceEntryDefaults', 'provider profile editorPolicy.policies.filesExclude')\n assertStringValue(errors, stringField(errors, sourceEntryDefaults, 'effect-official-source', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults'), 'enabled', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults.effect-official-source')\n assertStringValue(errors, stringField(errors, sourceEntryDefaults, 'tsgo-official-source', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults'), 'disabled', 'provider profile editorPolicy.policies.filesExclude.sourceEntryDefaults.tsgo-official-source')\n const contributionFilesExclude = recordField(errors, recordField(errors, filesExclude, 'vscode', 'provider profile editorPolicy.policies.filesExclude'), 'files.exclude', 'provider profile editorPolicy.policies.filesExclude.vscode')\n assertBooleanValue(errors, booleanField(errors, contributionFilesExclude, 'repos/effect/**', 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude'), true, 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude[\"repos/effect/**\"]')\n assertRecordDoesNotContain(errors, contributionFilesExclude, 'repos/tsgo/**', 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude')\n assertRecordDoesNotContain(errors, contributionFilesExclude, 'repos/**', 'provider profile editorPolicy.policies.filesExclude.vscode.files.exclude')\n\n assertArrayContainsString(errors, arrayField(errors, vscodeSettings, 'typescript.preferences.autoImportFileExcludePatterns', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.typescript.preferences.autoImportFileExcludePatterns')\n assertArrayContainsString(errors, arrayField(errors, vscodeSettings, 'javascript.preferences.autoImportFileExcludePatterns', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.javascript.preferences.autoImportFileExcludePatterns')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, vscodeSettings, 'files.watcherExclude', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.files.watcherExclude'), true, '.vscode/settings.json.files.watcherExclude[\"repos/**\"]')\n assertBooleanValue(errors, booleanField(errors, recordField(errors, vscodeSettings, 'search.exclude', '.vscode/settings.json'), 'repos/**', '.vscode/settings.json.search.exclude'), true, '.vscode/settings.json.search.exclude[\"repos/**\"]')\n const vscodeFilesExclude = recordField(errors, vscodeSettings, 'files.exclude', '.vscode/settings.json')\n assertBooleanValue(errors, booleanField(errors, vscodeFilesExclude, 'repos/effect/**', '.vscode/settings.json.files.exclude'), true, '.vscode/settings.json.files.exclude[\"repos/effect/**\"]')\n assertRecordDoesNotContain(errors, vscodeFilesExclude, 'repos/tsgo/**', '.vscode/settings.json.files.exclude')\n assertRecordDoesNotContain(errors, vscodeFilesExclude, 'repos/**', '.vscode/settings.json.files.exclude')\n\n assertSourceEntryEditorPolicy(errors, effectContract, 'effect-official-source', 'enabled')\n assertSourceEntryEditorPolicy(errors, tsgoContract, 'tsgo-official-source', 'disabled')\n}\n\nfunction assertEslintConfigContains(errors: Array<string>, eslintText: string, marker: string): void {\n if (!eslintText.includes(marker)) {\n errors.push(`eslint.config.mjs must contain ${marker}.`)\n }\n}\n\nfunction assertLintGuardrailsContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n eslintText: string,\n): void {\n const lintGuardrails = recordField(errors, contributions, 'lintGuardrails', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, lintGuardrails, 'mode', 'provider profile lintGuardrails contribution'), 'command-policy', 'provider profile lintGuardrails.mode')\n assertStringValue(errors, stringField(errors, lintGuardrails, 'stage', 'provider profile lintGuardrails contribution'), 'lint', 'provider profile lintGuardrails.stage')\n assertStringValue(errors, stringField(errors, lintGuardrails, 'command', 'provider profile lintGuardrails contribution'), expectedLintCommand, 'provider profile lintGuardrails.command')\n assertArrayContainsString(errors, arrayField(errors, lintGuardrails, 'configFiles', 'provider profile lintGuardrails contribution'), 'eslint.config.mjs', 'provider profile lintGuardrails.configFiles')\n\n const scripts = recordField(errors, packageManifest, 'scripts', 'package.json')\n assertStringValue(errors, stringField(errors, scripts, 'lint', 'package.json.scripts'), expectedLintScript, 'package.json.scripts.lint')\n\n const layers = recordField(errors, lintGuardrails, 'layers', 'provider profile lintGuardrails contribution')\n const owns = arrayField(errors, layers, 'owns', 'provider profile lintGuardrails.layers')\n assertArrayContainsString(errors, owns, 'repository import boundary', 'provider profile lintGuardrails.layers.owns')\n assertArrayContainsString(errors, owns, 'Effect v4 CLI import boundary', 'provider profile lintGuardrails.layers.owns')\n assertArrayContainsString(errors, owns, 'Effect test entry', 'provider profile lintGuardrails.layers.owns')\n assertArrayContainsString(errors, owns, 'syntax-level Effect guardrails', 'provider profile lintGuardrails.layers.owns')\n const doesNotOwn = arrayField(errors, layers, 'doesNotOwn', 'provider profile lintGuardrails.layers')\n assertArrayContainsString(errors, doesNotOwn, 'Effect semantic diagnostics', 'provider profile lintGuardrails.layers.doesNotOwn')\n assertArrayContainsString(errors, doesNotOwn, 'tsgo rule severity map', 'provider profile lintGuardrails.layers.doesNotOwn')\n\n const rules = recordField(errors, lintGuardrails, 'rules', 'provider profile lintGuardrails contribution')\n const restrictedImports = arrayField(errors, rules, 'restrictedImports', 'provider profile lintGuardrails.rules')\n for (const source of ['node:test', '@effect/cli', '@effect/cli/*', 'repos/effect/**', 'repos/tsgo/**']) {\n assertArrayContainsString(errors, restrictedImports, source, 'provider profile lintGuardrails.rules.restrictedImports')\n const eslintMarker = source.endsWith('/**')\n ? source.slice(0, -3)\n : source.endsWith('/*')\n ? source.slice(0, -2)\n : source\n assertEslintConfigContains(errors, eslintText, eslintMarker)\n }\n const restrictedVitestImports = arrayField(errors, rules, 'restrictedVitestImports', 'provider profile lintGuardrails.rules')\n for (const importName of ['describe', 'it', 'test']) {\n assertArrayContainsString(errors, restrictedVitestImports, importName, 'provider profile lintGuardrails.rules.restrictedVitestImports')\n }\n const allowedVitestImports = arrayField(errors, rules, 'allowedVitestImports', 'provider profile lintGuardrails.rules')\n for (const importName of ['vi', 'beforeEach', 'afterEach', 'beforeAll', 'afterAll']) {\n assertArrayContainsString(errors, allowedVitestImports, importName, 'provider profile lintGuardrails.rules.allowedVitestImports')\n }\n assertEslintConfigContains(errors, eslintText, 'vitest')\n assertEslintConfigContains(errors, eslintText, 'importNames')\n\n const restrictedSyntax = arrayField(errors, rules, 'restrictedSyntax', 'provider profile lintGuardrails.rules')\n for (const syntax of ['Context.Tag', 'Effect.catchAllCause', 'Effect.ignore', 'Effect.serviceOption', '{ disableValidation: true }', 'plain it() in tests']) {\n assertArrayContainsString(errors, restrictedSyntax, syntax, 'provider profile lintGuardrails.rules.restrictedSyntax')\n }\n for (const marker of [\n 'MemberExpression[object.name=\"Context\"][property.name=\"Tag\"]',\n 'catchAllCause|ignore|serviceOption',\n 'disableValidation',\n 'CallExpression[callee.name=\"it\"]',\n ]) {\n assertEslintConfigContains(errors, eslintText, marker)\n }\n}\n\nfunction assertTestPolicyContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n): void {\n const testPolicy = recordField(errors, contributions, 'testPolicy', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, testPolicy, 'mode', 'provider profile testPolicy contribution'), 'command-policy', 'provider profile testPolicy.mode')\n assertStringValue(errors, stringField(errors, testPolicy, 'stage', 'provider profile testPolicy contribution'), 'tests', 'provider profile testPolicy.stage')\n assertStringValue(errors, stringField(errors, testPolicy, 'command', 'provider profile testPolicy contribution'), expectedTestCommand, 'provider profile testPolicy.command')\n assertStringValue(errors, stringField(errors, testPolicy, 'packageScript', 'provider profile testPolicy contribution'), expectedTestScript, 'provider profile testPolicy.packageScript')\n assertStringValue(errors, stringField(errors, testPolicy, 'framework', 'provider profile testPolicy contribution'), '@effect/vitest', 'provider profile testPolicy.framework')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'expectedEntries', 'provider profile testPolicy contribution'), 'tests/**/*.test.ts', 'provider profile testPolicy.expectedEntries')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'effectEntrypoints', 'provider profile testPolicy contribution'), 'it.effect', 'provider profile testPolicy.effectEntrypoints')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'effectEntrypoints', 'provider profile testPolicy contribution'), 'it.live', 'provider profile testPolicy.effectEntrypoints')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'effectEntrypoints', 'provider profile testPolicy contribution'), 'layer', 'provider profile testPolicy.effectEntrypoints')\n assertArrayContainsString(errors, arrayField(errors, testPolicy, 'disallowedImports', 'provider profile testPolicy contribution'), 'node:test', 'provider profile testPolicy.disallowedImports')\n const disallowedVitestImports = arrayField(errors, testPolicy, 'disallowedVitestImports', 'provider profile testPolicy contribution')\n for (const importName of ['describe', 'it', 'test']) {\n assertArrayContainsString(errors, disallowedVitestImports, importName, 'provider profile testPolicy.disallowedVitestImports')\n }\n}\n\nfunction stageRecordByTag(\n stages: ReadonlyArray<unknown> | undefined,\n tag: string,\n): Record<string, unknown> | undefined {\n return stages?.find(stage => isRecord(stage) && stage.tag === tag) as Record<string, unknown> | undefined\n}\n\nfunction assertVerificationPolicyContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n): void {\n const verificationPolicy = recordField(errors, contributions, 'verificationPolicy', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'mode', 'provider profile verificationPolicy contribution'), 'pipeline-policy', 'provider profile verificationPolicy.mode')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'completionGate', 'provider profile verificationPolicy contribution'), expectedVerifyCommand, 'provider profile verificationPolicy.completionGate')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'packageScript', 'provider profile verificationPolicy contribution'), expectedVerifyScript, 'provider profile verificationPolicy.packageScript')\n assertStringValue(errors, stringField(errors, verificationPolicy, 'lifecycleOwner', 'provider profile verificationPolicy contribution'), 'prelude', 'provider profile verificationPolicy.lifecycleOwner')\n\n const scripts = recordField(errors, packageManifest, 'scripts', 'package.json')\n assertStringValue(errors, stringField(errors, scripts, 'verify', 'package.json.scripts'), expectedVerifyScript, 'package.json.scripts.verify')\n\n const localCommands = recordField(errors, verificationPolicy, 'localCommands', 'provider profile verificationPolicy contribution')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'diagnostics', 'provider profile verificationPolicy.localCommands'), 'pnpm typecheck', 'provider profile verificationPolicy.localCommands.diagnostics')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'tests', 'provider profile verificationPolicy.localCommands'), expectedTestCommand, 'provider profile verificationPolicy.localCommands.tests')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'lint', 'provider profile verificationPolicy.localCommands'), expectedLintCommand, 'provider profile verificationPolicy.localCommands.lint')\n assertArrayContainsString(errors, arrayField(errors, localCommands, 'completion', 'provider profile verificationPolicy.localCommands'), expectedVerifyCommand, 'provider profile verificationPolicy.localCommands.completion')\n\n const stages = arrayField(errors, verificationPolicy, 'stages', 'provider profile verificationPolicy contribution')\n for (const spec of verifyStageSpecs) {\n const stage = stageRecordByTag(stages, spec.tag)\n if (stage === undefined) {\n errors.push(`provider profile verificationPolicy.stages must include ${spec.tag}.`)\n continue\n }\n assertStringValue(errors, stringField(errors, stage, 'summary', `provider profile verificationPolicy.stages[${spec.tag}]`), spec.summary, `provider profile verificationPolicy.stages[${spec.tag}].summary`)\n }\n}\n\nfunction assertPackageGroup(\n errors: Array<string>,\n dependencyGroups: Record<string, unknown> | undefined,\n groupName: string,\n expected: ExpectedPackageGroup,\n): void {\n const group = recordField(errors, dependencyGroups, groupName, 'provider profile packageJson.dependencyGroups')\n assertStringValue(errors, stringField(errors, group, 'field', `provider profile packageJson.dependencyGroups.${groupName}`), expected.field, `provider profile packageJson.dependencyGroups.${groupName}.field`)\n const packages = recordField(errors, group, 'packages', `provider profile packageJson.dependencyGroups.${groupName}`)\n if (packages === undefined) {\n return\n }\n\n const expectedNames = new Set<string>(expected.packageNames)\n for (const name of Object.keys(packages)) {\n if (!expectedNames.has(name)) {\n errors.push(`provider profile packageJson.dependencyGroups.${groupName}.packages must not include ${name}.`)\n }\n }\n\n for (const name of expected.packageNames) {\n assertStringValue(\n errors,\n stringField(errors, packages, name, `provider profile packageJson.dependencyGroups.${groupName}.packages`),\n expectedPackageBaseline[name],\n `provider profile packageJson.dependencyGroups.${groupName}.packages.${name}`,\n )\n }\n}\n\nfunction assertWorkspaceCatalogEntry(\n errors: Array<string>,\n workspaceText: string,\n name: PackageName,\n): void {\n const escapedName = name.replace(/[.*+?^${}()|[\\]\\\\]/gu, String.raw`\\$&`)\n const escapedVersion = expectedPackageBaseline[name].replace(/[.*+?^${}()|[\\]\\\\]/gu, String.raw`\\$&`)\n const pattern = new RegExp(`(?:^|\\\\n)\\\\s*['\"]?${escapedName}['\"]?:\\\\s*${escapedVersion}(?:\\\\n|$)`, 'u')\n if (!pattern.test(workspaceText)) {\n errors.push(`pnpm-workspace.yaml catalog must pin ${name} to ${expectedPackageBaseline[name]}.`)\n }\n}\n\nfunction assertPackageGroupSelfConformance(\n errors: Array<string>,\n dependencyGroups: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n workspaceText: string,\n groupName: keyof typeof expectedPackageGroups,\n selfConformanceSpecifier: string,\n): void {\n const expected = expectedPackageGroups[groupName]\n assertPackageGroup(errors, dependencyGroups, groupName, expected)\n\n const packageSection = recordField(errors, packageManifest, expected.field, 'package.json')\n for (const name of expected.packageNames) {\n assertStringValue(\n errors,\n stringField(errors, packageSection, name, `package.json.${expected.field}`),\n selfConformanceSpecifier,\n `package.json.${expected.field}.${name}`,\n )\n assertWorkspaceCatalogEntry(errors, workspaceText, name)\n }\n}\n\nfunction assertPackageScriptsContribution(\n errors: Array<string>,\n packageContribution: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n): void {\n const contributionScripts = recordField(errors, packageContribution, 'scripts', 'provider profile packageJson contribution')\n const prepare = recordField(errors, contributionScripts, 'prepare', 'provider profile packageJson.scripts')\n const typecheck = recordField(errors, contributionScripts, 'typecheck', 'provider profile packageJson.scripts')\n const test = recordField(errors, contributionScripts, 'test', 'provider profile packageJson.scripts')\n const lint = recordField(errors, contributionScripts, 'lint', 'provider profile packageJson.scripts')\n assertStringValue(errors, stringField(errors, prepare, 'defaultCommand', 'provider profile packageJson.scripts.prepare'), expectedPrepareCommand, 'provider profile packageJson.scripts.prepare.defaultCommand')\n assertStringValue(errors, stringField(errors, typecheck, 'defaultCommand', 'provider profile packageJson.scripts.typecheck'), expectedTypecheckCommand, 'provider profile packageJson.scripts.typecheck.defaultCommand')\n assertStringValue(errors, stringField(errors, test, 'defaultCommand', 'provider profile packageJson.scripts.test'), expectedTestScript, 'provider profile packageJson.scripts.test.defaultCommand')\n assertStringValue(errors, stringField(errors, lint, 'defaultCommand', 'provider profile packageJson.scripts.lint'), expectedLintScript, 'provider profile packageJson.scripts.lint.defaultCommand')\n\n const manifestScripts = recordField(errors, packageManifest, 'scripts', 'package.json')\n assertStringValue(errors, stringField(errors, manifestScripts, 'prepare', 'package.json.scripts'), expectedPrepareCommand, 'package.json.scripts.prepare')\n assertStringValue(errors, stringField(errors, manifestScripts, 'typecheck', 'package.json.scripts'), expectedTypecheckCommand, 'package.json.scripts.typecheck')\n assertStringValue(errors, stringField(errors, manifestScripts, 'lint', 'package.json.scripts'), expectedLintScript, 'package.json.scripts.lint')\n}\n\nfunction assertPackageJsonContribution(\n errors: Array<string>,\n contributions: Record<string, unknown> | undefined,\n packageManifest: Record<string, unknown>,\n workspaceText: string,\n): void {\n const packageJson = recordField(errors, contributions, 'packageJson', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, packageJson, 'mode', 'provider profile packageJson contribution'), 'structured-merge', 'provider profile packageJson.mode')\n assertStringValue(errors, stringField(errors, packageJson, 'targetPath', 'provider profile packageJson contribution'), 'package.json', 'provider profile packageJson.targetPath')\n const selfConformanceSpecifier = stringField(errors, packageJson, 'selfConformanceSpecifier', 'provider profile packageJson contribution')\n assertStringValue(errors, selfConformanceSpecifier, 'catalog:', 'provider profile packageJson.selfConformanceSpecifier')\n assertRecordDoesNotContain(errors, packageJson, 'dependencies', 'provider profile packageJson contribution')\n assertRecordDoesNotContain(errors, packageJson, 'devDependencies', 'provider profile packageJson contribution')\n\n const dependencyGroups = recordField(errors, packageJson, 'dependencyGroups', 'provider profile packageJson contribution')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'runtime', selfConformanceSpecifier ?? '')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'testing', selfConformanceSpecifier ?? '')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'diagnostics', selfConformanceSpecifier ?? '')\n assertPackageGroupSelfConformance(errors, dependencyGroups, packageManifest, workspaceText, 'nativeBackend', selfConformanceSpecifier ?? '')\n assertPackageScriptsContribution(errors, packageJson, packageManifest)\n}\n\nfunction assertTsconfigContributionMetadata(errors: Array<string>, contributions: Record<string, unknown> | undefined): void {\n const tsconfig = recordField(errors, contributions, 'tsconfig', 'provider profile.profiles.codex-effect-v4.contributions')\n assertStringValue(errors, stringField(errors, tsconfig, 'mode', 'provider profile tsconfig contribution'), 'structured-merge', 'provider profile tsconfig.mode')\n assertStringValue(errors, stringField(errors, tsconfig, 'targetPath', 'provider profile tsconfig contribution'), 'tsconfig.json', 'provider profile tsconfig.targetPath')\n\n const tsgo = recordField(errors, tsconfig, 'tsgo', 'provider profile tsconfig contribution')\n assertStringValue(errors, stringField(errors, tsgo, 'diagnosticCommand', 'provider profile tsconfig.tsgo'), expectedTypecheckCommand, 'provider profile tsconfig.tsgo.diagnosticCommand')\n\n const nativeBackend = recordField(errors, tsgo, 'nativeBackend', 'provider profile tsconfig.tsgo')\n assertStringValue(errors, stringField(errors, nativeBackend, 'package', 'provider profile tsconfig.tsgo.nativeBackend'), '@typescript/native-preview', 'provider profile tsconfig.tsgo.nativeBackend.package')\n assertStringValue(errors, stringField(errors, nativeBackend, 'version', 'provider profile tsconfig.tsgo.nativeBackend'), expectedPackageBaseline['@typescript/native-preview'], 'provider profile tsconfig.tsgo.nativeBackend.version')\n assertStringValue(errors, stringField(errors, nativeBackend, 'setupCommand', 'provider profile tsconfig.tsgo.nativeBackend'), expectedPrepareCommand, 'provider profile tsconfig.tsgo.nativeBackend.setupCommand')\n\n assertJsonValue(errors, recordField(errors, tsgo, 'diagnosticGate', 'provider profile tsconfig.tsgo'), strictDiagnosticGate, 'provider profile tsconfig.tsgo.diagnosticGate')\n\n const ruleMapSource = recordField(errors, tsgo, 'ruleMapSource', 'provider profile tsconfig.tsgo')\n assertStringValue(errors, stringField(errors, ruleMapSource, 'metadata', 'provider profile tsconfig.tsgo.ruleMapSource'), 'repos/tsgo/_packages/tsgo/src/metadata.json', 'provider profile tsconfig.tsgo.ruleMapSource.metadata')\n assertStringValue(errors, stringField(errors, ruleMapSource, 'policy', 'provider profile tsconfig.tsgo.ruleMapSource'), 'harness/tsgo.md', 'provider profile tsconfig.tsgo.ruleMapSource.policy')\n assertStringValue(errors, stringField(errors, ruleMapSource, 'supportedEffect', 'provider profile tsconfig.tsgo.ruleMapSource'), 'v4', 'provider profile tsconfig.tsgo.ruleMapSource.supportedEffect')\n if (ruleMapSource?.ruleCount !== Object.keys(strictDiagnosticSeverity).length) {\n errors.push(`provider profile tsconfig.tsgo.ruleMapSource.ruleCount is ${String(ruleMapSource?.ruleCount ?? 'missing')}; expected ${Object.keys(strictDiagnosticSeverity).length}.`)\n }\n}\n\nfunction assertDeliveryModes(errors: Array<string>, providerProfile: Record<string, unknown>): void {\n const deliveryModes = recordField(errors, providerProfile, 'deliveryModes', 'provider profile')\n const internalHarness = recordField(errors, deliveryModes, 'internalHarness', 'provider profile.deliveryModes')\n const artifactReference = recordField(errors, deliveryModes, 'providerArtifactReference', 'provider profile.deliveryModes')\n const exportedHarness = recordField(errors, deliveryModes, 'exportedHarness', 'provider profile.deliveryModes')\n\n assertStringValue(errors, stringField(errors, internalHarness, 'mode', 'provider profile.deliveryModes.internalHarness'), 'internal-harness', 'provider profile.deliveryModes.internalHarness.mode')\n assertStringValue(errors, stringField(errors, artifactReference, 'mode', 'provider profile.deliveryModes.providerArtifactReference'), 'provider-artifact-reference', 'provider profile.deliveryModes.providerArtifactReference.mode')\n assertStringValue(errors, stringField(errors, exportedHarness, 'mode', 'provider profile.deliveryModes.exportedHarness'), 'exported-harness', 'provider profile.deliveryModes.exportedHarness.mode')\n}\n\nfunction assertSelfConformanceContract(errors: Array<string>, providerProfile: Record<string, unknown>): void {\n const selfConformance = recordField(errors, providerProfile, 'selfConformance', 'provider profile')\n assertStringValue(errors, stringField(errors, selfConformance, 'mode', 'provider profile.selfConformance'), 'provider-repository', 'provider profile.selfConformance.mode')\n assertStringValue(errors, stringField(errors, selfConformance, 'conformsTo', 'provider profile.selfConformance'), 'exported-harness', 'provider profile.selfConformance.conformsTo')\n assertStringValue(errors, stringField(errors, selfConformance, 'completionGate', 'provider profile.selfConformance'), 'pnpm verify', 'provider profile.selfConformance.completionGate')\n assertBooleanValue(errors, booleanField(errors, selfConformance, 'selfMaterialization', 'provider profile.selfConformance'), false, 'provider profile.selfConformance.selfMaterialization')\n assertStringValue(errors, stringField(errors, selfConformance, 'lifecycleOwner', 'provider profile.selfConformance'), 'prelude', 'provider profile.selfConformance.lifecycleOwner')\n\n const forbiddenSurfaces = arrayField(errors, selfConformance, 'forbiddenProviderRepositorySurfaces', 'provider profile.selfConformance')\n for (const surface of expectedSelfMaterializationForbiddenSurfaces) {\n assertArrayContainsString(errors, forbiddenSurfaces, surface, 'provider profile.selfConformance.forbiddenProviderRepositorySurfaces')\n }\n}\n\ninterface ExpectedArtifactReference {\n readonly id: string\n readonly path: string\n readonly sourceEntry: string\n}\n\nfunction assertArtifactReference(\n errors: Array<string>,\n references: Record<string, unknown> | undefined,\n expected: ExpectedArtifactReference,\n): void {\n const reference = recordField(errors, references, expected.id, 'provider profile.artifactReferences.references')\n assertStringValue(errors, stringField(errors, reference, 'sourceEntry', `provider profile.artifactReferences.references.${expected.id}`), expected.sourceEntry, `provider profile.artifactReferences.references.${expected.id}.sourceEntry`)\n assertStringValue(errors, stringField(errors, reference, 'path', `provider profile.artifactReferences.references.${expected.id}`), expected.path, `provider profile.artifactReferences.references.${expected.id}.path`)\n assertStringValue(errors, stringField(errors, reference, 'targetDelivery', `provider profile.artifactReferences.references.${expected.id}`), 'artifact-only', `provider profile.artifactReferences.references.${expected.id}.targetDelivery`)\n}\n\nfunction assertArtifactReferencesContract(\n errors: Array<string>,\n providerProfile: Record<string, unknown>,\n packageManifest: Record<string, unknown>,\n): void {\n assertStringValue(errors, stringField(errors, packageManifest, 'main', 'package.json'), 'dist/src/index.js', 'package.json.main')\n assertStringValue(errors, stringField(errors, packageManifest, 'types', 'package.json'), 'dist/src/index.d.ts', 'package.json.types')\n const packageExports = recordField(errors, packageManifest, 'exports', 'package.json')\n const rootExport = recordField(errors, packageExports, '.', 'package.json.exports')\n assertStringValue(errors, stringField(errors, rootExport, 'import', 'package.json.exports[\".\"]'), './dist/src/index.js', 'package.json.exports[\".\"].import')\n assertStringValue(errors, stringField(errors, rootExport, 'types', 'package.json.exports[\".\"]'), './dist/src/index.d.ts', 'package.json.exports[\".\"].types')\n\n const artifactReferences = recordField(errors, providerProfile, 'artifactReferences', 'provider profile')\n assertStringValue(errors, stringField(errors, artifactReferences, 'mode', 'provider profile.artifactReferences'), 'provider-artifact-reference', 'provider profile.artifactReferences.mode')\n assertStringValue(errors, stringField(errors, artifactReferences, 'targetDelivery', 'provider profile.artifactReferences'), 'identity-only', 'provider profile.artifactReferences.targetDelivery')\n\n const packageFiles = arrayField(errors, packageManifest, 'files', 'package.json')\n const packageSurface = arrayField(errors, artifactReferences, 'packageSurface', 'provider profile.artifactReferences')\n for (const path of ['dist', 'provider', 'harness', 'repos', 'repos/effect.subtree.json', 'repos/tsgo.subtree.json']) {\n assertArrayContainsString(errors, packageFiles, path, 'package.json.files')\n assertArrayContainsString(errors, packageSurface, path, 'provider profile.artifactReferences.packageSurface')\n }\n\n const references = recordField(errors, artifactReferences, 'references', 'provider profile.artifactReferences')\n assertArtifactReference(errors, references, {\n id: 'effect-source-tree',\n path: 'repos/effect',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'effect-source-contract',\n path: 'repos/effect.subtree.json',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'effect-anchor-doc',\n path: 'repos/effect/LLMS.md',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'effect-route-doc',\n path: 'harness/effect-routes.md',\n sourceEntry: 'effect-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-source-tree',\n path: 'repos/tsgo',\n sourceEntry: 'tsgo-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-source-contract',\n path: 'repos/tsgo.subtree.json',\n sourceEntry: 'tsgo-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-anchor-doc',\n path: 'repos/tsgo/README.md',\n sourceEntry: 'tsgo-official-source',\n })\n assertArtifactReference(errors, references, {\n id: 'tsgo-route-doc',\n path: 'harness/tsgo-routes.md',\n sourceEntry: 'tsgo-official-source',\n })\n}\n\nexport const verifyProviderProfileContract = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const fs = yield* FileSystem.FileSystem\n const providerProfile = yield* readJson(`${harness}/provider/effect-harness.provider.json`, decodeJsonRecord)\n const effectContract = yield* readJson(`${harness}/repos/effect.subtree.json`, decodeJsonRecord)\n const tsgoContract = yield* readJson(`${harness}/repos/tsgo.subtree.json`, decodeJsonRecord)\n const packageManifest = yield* readJson(`${harness}/package.json`, decodeJsonRecord)\n const vscodeSettings = yield* readJson(`${harness}/.vscode/settings.json`, decodeJsonRecord)\n const eslintText = yield* fs.readFileString(`${harness}/eslint.config.mjs`)\n const workspaceText = yield* fs.readFileString(`${harness}/pnpm-workspace.yaml`)\n\n const provider = recordField(errors, providerProfile, 'provider', 'provider profile')\n assertStringValue(errors, stringField(errors, provider, 'id', 'provider profile.provider'), 'effect-harness', 'provider profile.provider.id')\n assertStringValue(errors, stringField(errors, provider, 'defaultProfile', 'provider profile.provider'), 'codex-effect-v4', 'provider profile.provider.defaultProfile')\n assertDeliveryModes(errors, providerProfile)\n assertSelfConformanceContract(errors, providerProfile)\n assertArtifactReferencesContract(errors, providerProfile, packageManifest)\n\n const sourceEntries = recordField(errors, providerProfile, 'sourceEntries', 'provider profile')\n const profiles = recordField(errors, providerProfile, 'profiles', 'provider profile')\n const profile = recordField(errors, profiles, 'codex-effect-v4', 'provider profile.profiles')\n const sourceEntryId = stringField(errors, profile, 'sourceEntry', 'provider profile.profiles.codex-effect-v4')\n assertStringValue(errors, sourceEntryId, 'effect-official-source', 'provider profile.profiles.codex-effect-v4.sourceEntry')\n\n assertProviderSourceEntry(errors, sourceEntries, {\n contractPath: 'repos/effect.subtree.json',\n id: 'effect-official-source',\n updateCommand: 'npx --yes @sayoriqwq/partita pin update --contract repos/effect.subtree.json --name effect --prefix repos/effect --dry-run',\n verifyCommand: 'npx --yes @sayoriqwq/partita pin verify --contract repos/effect.subtree.json --name effect --prefix repos/effect',\n })\n assertProviderSourceEntry(errors, sourceEntries, {\n contractPath: 'repos/tsgo.subtree.json',\n id: 'tsgo-official-source',\n updateCommand: 'npx --yes @sayoriqwq/partita pin update --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo --dry-run',\n verifyCommand: 'npx --yes @sayoriqwq/partita pin verify --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo',\n })\n assertPartitaSubtreeContract(errors, effectContract, {\n anchor: 'repos/effect/LLMS.md',\n contractPath: 'repos/effect.subtree.json',\n filesExclude: 'enabled',\n name: 'effect',\n prefix: 'repos/effect',\n repository: 'https://github.com/Effect-TS/effect-smol',\n route: 'harness/effect-routes.md',\n updateCommand: 'npx --yes @sayoriqwq/partita pin update --contract repos/effect.subtree.json --name effect --prefix repos/effect --dry-run',\n verifyCommand: 'npx --yes @sayoriqwq/partita pin verify --contract repos/effect.subtree.json --name effect --prefix repos/effect',\n })\n assertPartitaSubtreeContract(errors, tsgoContract, {\n anchor: 'repos/tsgo/README.md',\n contractPath: 'repos/tsgo.subtree.json',\n filesExclude: 'disabled',\n name: 'tsgo',\n prefix: 'repos/tsgo',\n repository: 'https://github.com/Effect-TS/tsgo',\n route: 'harness/tsgo-routes.md',\n updateCommand: 'npx --yes @sayoriqwq/partita pin update --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo --dry-run',\n verifyCommand: 'npx --yes @sayoriqwq/partita pin verify --contract repos/tsgo.subtree.json --name tsgo --prefix repos/tsgo',\n })\n\n const providerRecord = recordField(errors, providerProfile, 'providerRecord', 'provider profile')\n const sourceDelivery = recordField(errors, providerRecord, 'sourceDelivery', 'provider profile.providerRecord')\n assertStringValue(errors, stringField(errors, sourceDelivery, 'mode', 'provider profile.providerRecord.sourceDelivery'), 'artifact-identity-only', 'provider profile.providerRecord.sourceDelivery.mode')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'artifact.sourceIdentity', 'provider profile.providerRecord.requiredFields')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'artifact.sourceIdentities', 'provider profile.providerRecord.requiredFields')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'surfaces.documentationBundle', 'provider profile.providerRecord.requiredFields')\n assertArrayContainsString(errors, arrayField(errors, providerRecord, 'requiredFields', 'provider profile.providerRecord'), 'surfaces.snippets', 'provider profile.providerRecord.requiredFields')\n\n const sourceBoundary = recordField(errors, profile, 'sourceBoundary', 'provider profile.profiles.codex-effect-v4')\n assertBooleanValue(errors, booleanField(errors, sourceBoundary, 'providerRepoInternal', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), true, 'provider profile.profiles.codex-effect-v4.sourceBoundary.providerRepoInternal')\n assertStringValue(errors, stringField(errors, sourceBoundary, 'targetDelivery', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'identity-only', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetDelivery')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'repos/effect', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'repos/tsgo', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'harness/effect-routes.md', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n assertArrayContainsString(errors, arrayField(errors, sourceBoundary, 'targetMustNotReceive', 'provider profile.profiles.codex-effect-v4.sourceBoundary'), 'harness/tsgo-routes.md', 'provider profile.profiles.codex-effect-v4.sourceBoundary.targetMustNotReceive')\n\n const options = recordField(errors, profile, 'options', 'provider profile.profiles.codex-effect-v4')\n assertRecordDoesNotContain(errors, options, 'runtime', 'provider profile.profiles.codex-effect-v4.options')\n assertRecordDoesNotContain(errors, options, 'editorPolicy', 'provider profile.profiles.codex-effect-v4.options')\n\n assertPackageBaseline(errors, recordField(errors, profile, 'packageBaseline', 'provider profile.profiles.codex-effect-v4'))\n\n const managedSurfaces = recordField(errors, profile, 'managedSurfaces', 'provider profile.profiles.codex-effect-v4')\n const targetReceives = arrayField(errors, managedSurfaces, 'targetReceives', 'provider profile.profiles.codex-effect-v4.managedSurfaces')\n assertArrayContainsString(errors, targetReceives, 'provider record at .prelude/providers/effect-harness/provider.json', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'provider-managed docs bundle at .prelude/providers/effect-harness/docs', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'provider-managed snippets at .prelude/providers/effect-harness/snippets', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'editor policy structured pointer for target editor settings', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayContainsString(errors, targetReceives, 'lint, test, and verification policy records', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, 'runtime assets', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, 'AGENTS.md managed block', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, 'feedback', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n assertArrayDoesNotContainText(errors, targetReceives, '.effect-harness.json', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetReceives')\n const targetDoesNotReceive = arrayField(errors, managedSurfaces, 'targetDoesNotReceive', 'provider profile.profiles.codex-effect-v4.managedSurfaces')\n assertArrayContainsString(errors, targetDoesNotReceive, 'provider repo internal Effect route harness/effect-routes.md', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetDoesNotReceive')\n assertArrayContainsString(errors, targetDoesNotReceive, 'provider repo internal tsgo route harness/tsgo-routes.md', 'provider profile.profiles.codex-effect-v4.managedSurfaces.targetDoesNotReceive')\n\n assertRecordDoesNotContain(errors, profile, 'state', 'provider profile.profiles.codex-effect-v4')\n assertRecordDoesNotContain(errors, profile, 'officialSource', 'provider profile.profiles.codex-effect-v4')\n const contributions = recordField(errors, profile, 'contributions', 'provider profile.profiles.codex-effect-v4')\n assertRecordDoesNotContain(errors, contributions, 'runtimeAssets', 'provider profile.profiles.codex-effect-v4.contributions')\n assertRecordDoesNotContain(errors, contributions, 'agentsBlock', 'provider profile.profiles.codex-effect-v4.contributions')\n assertRecordDoesNotContain(errors, contributions, 'codexAssets', 'provider profile.profiles.codex-effect-v4.contributions')\n assertPackageJsonContribution(errors, contributions, packageManifest, workspaceText)\n assertTsconfigContributionMetadata(errors, contributions)\n assertEditorPolicyContribution(errors, contributions, effectContract, tsgoContract, vscodeSettings)\n assertLintGuardrailsContribution(errors, contributions, packageManifest, eslintText)\n assertTestPolicyContribution(errors, contributions)\n assertVerificationPolicyContribution(errors, contributions, packageManifest)\n\n yield* assertManagedFileBundle(\n errors,\n harness,\n recordField(errors, contributions, 'documentationBundle', 'provider profile.profiles.codex-effect-v4.contributions'),\n '.prelude/providers/effect-harness/docs',\n [\n {\n id: 'effect-code',\n requiredKeywords: ['Effect Code', '@effect/vitest', 'Context.Service', 'effect/unstable/cli'],\n sourcePath: 'provider/docs/effect-code.md',\n targetPath: 'effect-code.md',\n },\n {\n id: 'diagnostics',\n requiredKeywords: ['tsgo --noEmit', '@effect/language-service', 'diagnostic gate', 'drift'],\n sourcePath: 'provider/docs/diagnostics.md',\n targetPath: 'diagnostics.md',\n },\n {\n id: 'editor-policy',\n requiredKeywords: ['auto-import', 'watch exclusion', 'search exclusion', 'file visibility'],\n sourcePath: 'provider/docs/editor-policy.md',\n targetPath: 'editor-policy.md',\n },\n {\n id: 'managed-surfaces',\n requiredKeywords: ['Managed Surfaces', 'target-managed surfaces', 'Artifact-Only', 'Snippets', 'Feedback Loop', 'local drift'],\n sourcePath: 'provider/docs/managed-surfaces.md',\n targetPath: 'managed-surfaces.md',\n },\n {\n id: 'discovery',\n requiredKeywords: ['Provider Discovery', 'provider-discover', 'Prelude', 'target-managed surfaces', 'artifact-only', 'internal harness', 'npm selects the artifact', 'effect-harness owns desired semantics', 'Prelude projects the artifact', 'Prelude lifecycle commands', 'npm same-name cwd short-circuit'],\n sourcePath: 'provider/docs/discovery.md',\n targetPath: 'discovery.md',\n },\n {\n id: 'package-config',\n requiredKeywords: ['Package', 'effect-tsgo patch', 'tsgo --noEmit', 'tsconfig.json'],\n sourcePath: 'provider/docs/package-config.md',\n targetPath: 'package-config.md',\n },\n {\n id: 'quality-policy',\n requiredKeywords: ['lint policy', 'test policy', 'verification policy', 'Prelude'],\n sourcePath: 'provider/docs/quality-policy.md',\n targetPath: 'quality-policy.md',\n },\n {\n id: 'source-identity',\n requiredKeywords: ['Source Identity', 'artifact-only', 'target delivery', 'source pin lifecycle', 'Partita', 'provider record'],\n sourcePath: 'provider/docs/source-identity.md',\n targetPath: 'source-identity.md',\n },\n ],\n 'provider profile.profiles.codex-effect-v4.contributions.documentationBundle',\n )\n yield* assertManagedFileBundle(\n errors,\n harness,\n recordField(errors, contributions, 'snippets', 'provider profile.profiles.codex-effect-v4.contributions'),\n '.prelude/providers/effect-harness/snippets',\n [\n {\n id: 'agents-effect-harness',\n requiredKeywords: ['Effect Harness Snippet', 'provider-managed source content', 'target `AGENTS.md` block'],\n sourcePath: 'provider/snippets/agents.md',\n targetPath: 'agents.md',\n targetUsage: 'manual-copy-or-include-only',\n },\n ],\n 'provider profile.profiles.codex-effect-v4.contributions.snippets',\n )\n})\n\ninterface ExpectedProviderSourceEntry {\n readonly id: string\n readonly contractPath: string\n readonly updateCommand: string\n readonly verifyCommand: string\n}\n\nfunction assertProviderSourceEntry(\n errors: Array<string>,\n sourceEntries: Record<string, unknown> | undefined,\n expected: ExpectedProviderSourceEntry,\n): void {\n const sourceEntry = recordField(errors, sourceEntries, expected.id, 'provider profile.sourceEntries')\n assertStringValue(errors, stringField(errors, sourceEntry, 'kind', `provider profile.sourceEntries.${expected.id}`), 'provider-internal-github-subtree', `provider profile.sourceEntries.${expected.id}.kind`)\n const contract = recordField(errors, sourceEntry, 'contract', `provider profile.sourceEntries.${expected.id}`)\n assertStringValue(errors, stringField(errors, contract, 'path', `provider profile.sourceEntries.${expected.id}.contract`), expected.contractPath, `provider profile.sourceEntries.${expected.id}.contract.path`)\n assertStringValue(errors, stringField(errors, contract, 'owner', `provider profile.sourceEntries.${expected.id}.contract`), 'partita', `provider profile.sourceEntries.${expected.id}.contract.owner`)\n assertStringValue(errors, stringField(errors, contract, 'format', `provider profile.sourceEntries.${expected.id}.contract`), 'github-subtree', `provider profile.sourceEntries.${expected.id}.contract.format`)\n const commands = recordField(errors, sourceEntry, 'commands', `provider profile.sourceEntries.${expected.id}`)\n assertStringValue(errors, stringField(errors, commands, 'update', `provider profile.sourceEntries.${expected.id}.commands`), expected.updateCommand, `provider profile.sourceEntries.${expected.id}.commands.update`)\n assertStringValue(errors, stringField(errors, commands, 'verify', `provider profile.sourceEntries.${expected.id}.commands`), expected.verifyCommand, `provider profile.sourceEntries.${expected.id}.commands.verify`)\n assertRecordDoesNotContain(errors, commands, 'status', `provider profile.sourceEntries.${expected.id}.commands`)\n assertRecordDoesNotContain(errors, sourceEntry, 'repository', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'branch', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'prefix', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'anchor', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'llmDocument', `provider profile.sourceEntries.${expected.id}`)\n assertRecordDoesNotContain(errors, sourceEntry, 'agentRoute', `provider profile.sourceEntries.${expected.id}`)\n}\n\ninterface ExpectedPartitaSubtreeContract {\n readonly anchor: string\n readonly contractPath: string\n readonly filesExclude: string\n readonly name: string\n readonly prefix: string\n readonly repository: string\n readonly route: string\n readonly updateCommand: string\n readonly verifyCommand: string\n}\n\nfunction assertPartitaSubtreeContract(\n errors: Array<string>,\n sourceContract: Record<string, unknown>,\n expected: ExpectedPartitaSubtreeContract,\n): void {\n assertStringValue(errors, stringField(errors, sourceContract, 'name', expected.contractPath), expected.name, `${expected.contractPath}.name`)\n assertStringValue(errors, stringField(errors, sourceContract, 'mechanism', expected.contractPath), 'git-subtree', `${expected.contractPath}.mechanism`)\n\n const github = recordField(errors, sourceContract, 'github', expected.contractPath)\n const local = recordField(errors, sourceContract, 'local', expected.contractPath)\n const subtree = recordField(errors, sourceContract, 'subtree', expected.contractPath)\n const anchor = recordField(errors, sourceContract, 'anchor', expected.contractPath)\n const agent = recordField(errors, sourceContract, 'agent', expected.contractPath)\n const commands = recordField(errors, sourceContract, 'commands', expected.contractPath)\n const editorPolicy = recordField(errors, sourceContract, 'editorPolicy', expected.contractPath)\n const boundaries = recordField(errors, sourceContract, 'boundaries', expected.contractPath)\n const ownership = recordField(errors, sourceContract, 'ownership', expected.contractPath)\n\n const split = stringField(errors, subtree, 'split', `${expected.contractPath}.subtree`)\n assertStringValue(errors, stringField(errors, github, 'repository', `${expected.contractPath}.github`), expected.repository, `${expected.contractPath}.github.repository`)\n assertStringValue(errors, stringField(errors, github, 'branch', `${expected.contractPath}.github`), 'main', `${expected.contractPath}.github.branch`)\n assertStringValue(errors, stringField(errors, github, 'ref', `${expected.contractPath}.github`), split ?? '', `${expected.contractPath}.github.ref`)\n assertStringValue(errors, stringField(errors, local, 'prefix', `${expected.contractPath}.local`), expected.prefix, `${expected.contractPath}.local.prefix`)\n assertStringValue(errors, stringField(errors, subtree, 'trailer', `${expected.contractPath}.subtree`), `git-subtree-split: ${split ?? ''}`, `${expected.contractPath}.subtree.trailer`)\n assertStringValue(errors, stringField(errors, anchor, 'llmDocument', `${expected.contractPath}.anchor`), expected.anchor, `${expected.contractPath}.anchor.llmDocument`)\n assertStringValue(errors, stringField(errors, agent, 'route', `${expected.contractPath}.agent`), expected.route, `${expected.contractPath}.agent.route`)\n assertStringValue(errors, stringField(errors, commands, 'update', `${expected.contractPath}.commands`), expected.updateCommand, `${expected.contractPath}.commands.update`)\n assertStringValue(errors, stringField(errors, commands, 'verify', `${expected.contractPath}.commands`), expected.verifyCommand, `${expected.contractPath}.commands.verify`)\n assertRecordDoesNotContain(errors, commands, 'status', `${expected.contractPath}.commands`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'autoImportExclude', `${expected.contractPath}.editorPolicy`), 'block', `${expected.contractPath}.editorPolicy.autoImportExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'watcherExclude', `${expected.contractPath}.editorPolicy`), 'recommended', `${expected.contractPath}.editorPolicy.watcherExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'searchExclude', `${expected.contractPath}.editorPolicy`), 'recommended', `${expected.contractPath}.editorPolicy.searchExclude`)\n assertStringValue(errors, stringField(errors, editorPolicy, 'filesExclude', `${expected.contractPath}.editorPolicy`), expected.filesExclude, `${expected.contractPath}.editorPolicy.filesExclude`)\n assertStringValue(errors, stringField(errors, ownership, 'mode', `${expected.contractPath}.ownership`), 'provider', `${expected.contractPath}.ownership.mode`)\n assertBooleanValue(errors, booleanField(errors, boundaries, 'readOnly', `${expected.contractPath}.boundaries`), true, `${expected.contractPath}.boundaries.readOnly`)\n assertBooleanValue(errors, booleanField(errors, boundaries, 'importBlock', `${expected.contractPath}.boundaries`), true, `${expected.contractPath}.boundaries.importBlock`)\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { ProviderDiscovery, ProviderDiscoveryFailure, ProviderDiscoveryFailureInput } from './harness/ProviderDiscovery.ts';
2
+ import { classifyProviderDiscoveryFailure, discoverProvider, resolvePackageArtifactRoot } from './harness/ProviderDiscovery.ts';
3
+ export type { ProviderDiscovery, ProviderDiscoveryFailure, ProviderDiscoveryFailureInput, };
4
+ export { classifyProviderDiscoveryFailure, discoverProvider, resolvePackageArtifactRoot, };
5
+ export interface DiscoverProviderArtifactOptions {
6
+ readonly artifactRoot?: string;
7
+ }
8
+ export declare function discoverProviderArtifact(options?: DiscoverProviderArtifactOptions): Promise<ProviderDiscovery>;