@sayoriqwq/effect-harness 0.0.4 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +9 -77
  2. package/diagnostics/effect-routes.md +6 -0
  3. package/diagnostics/index.md +10 -0
  4. package/diagnostics/tsgo-routes.md +5 -0
  5. package/dist/src/eslint.d.ts +57 -0
  6. package/dist/src/eslint.js +42 -0
  7. package/dist/src/eslint.js.map +1 -0
  8. package/dist/src/index.d.ts +2 -0
  9. package/dist/src/index.js +3 -0
  10. package/dist/src/index.js.map +1 -0
  11. package/dist/src/prelude.d.ts +6 -0
  12. package/dist/src/prelude.js +161 -0
  13. package/dist/src/prelude.js.map +1 -0
  14. package/package.json +25 -17
  15. package/prelude-assets/effect/managed/docs/diagnostics.md +6 -0
  16. package/prelude-assets/effect/managed/docs/editor-policy.md +5 -0
  17. package/prelude-assets/effect/managed/docs/effect-code.md +5 -0
  18. package/prelude-assets/effect/managed/docs/index.md +14 -0
  19. package/prelude-assets/effect/managed/docs/managed-surfaces.md +5 -0
  20. package/prelude-assets/effect/managed/docs/package-config.md +20 -0
  21. package/prelude-assets/effect/managed/docs/quality-policy.md +5 -0
  22. package/prelude-assets/effect/managed/docs/source-identity.md +5 -0
  23. package/prelude-assets/guidance/eslint.md +15 -0
  24. package/repos/effect.subtree.json +2 -2
  25. package/repos/tsgo.subtree.json +2 -2
  26. package/HARNESS.md +0 -66
  27. package/dist/bin/effect-harness.d.ts +0 -2
  28. package/dist/bin/effect-harness.js +0 -34
  29. package/dist/bin/effect-harness.js.map +0 -1
  30. package/dist/src/cli/Main.d.ts +0 -7
  31. package/dist/src/cli/Main.js +0 -45
  32. package/dist/src/cli/Main.js.map +0 -1
  33. package/dist/src/harness/Errors.d.ts +0 -24
  34. package/dist/src/harness/Errors.js +0 -26
  35. package/dist/src/harness/Errors.js.map +0 -1
  36. package/dist/src/harness/Guardrails.d.ts +0 -7
  37. package/dist/src/harness/Guardrails.js +0 -50
  38. package/dist/src/harness/Guardrails.js.map +0 -1
  39. package/dist/src/harness/Model.d.ts +0 -52
  40. package/dist/src/harness/Model.js +0 -170
  41. package/dist/src/harness/Model.js.map +0 -1
  42. package/dist/src/harness/ModuleSources.d.ts +0 -5
  43. package/dist/src/harness/ModuleSources.js +0 -47
  44. package/dist/src/harness/ModuleSources.js.map +0 -1
  45. package/dist/src/harness/ProviderDiscovery.d.ts +0 -172
  46. package/dist/src/harness/ProviderDiscovery.js +0 -157
  47. package/dist/src/harness/ProviderDiscovery.js.map +0 -1
  48. package/dist/src/harness/SourcePin.d.ts +0 -4
  49. package/dist/src/harness/SourcePin.js +0 -214
  50. package/dist/src/harness/SourcePin.js.map +0 -1
  51. package/dist/src/harness/verify/JsonFields.d.ts +0 -1
  52. package/dist/src/harness/verify/JsonFields.js +0 -4
  53. package/dist/src/harness/verify/JsonFields.js.map +0 -1
  54. package/dist/src/harness/verify/Pipeline.d.ts +0 -7
  55. package/dist/src/harness/verify/Pipeline.js +0 -55
  56. package/dist/src/harness/verify/Pipeline.js.map +0 -1
  57. package/dist/src/harness/verify/ProviderProfile.d.ts +0 -3
  58. package/dist/src/harness/verify/ProviderProfile.js +0 -726
  59. package/dist/src/harness/verify/ProviderProfile.js.map +0 -1
  60. package/dist/src/harness/verify/ProviderRepository.d.ts +0 -4
  61. package/dist/src/harness/verify/ProviderRepository.js +0 -127
  62. package/dist/src/harness/verify/ProviderRepository.js.map +0 -1
  63. package/dist/src/harness/verify/Tsgo.d.ts +0 -3
  64. package/dist/src/harness/verify/Tsgo.js +0 -166
  65. package/dist/src/harness/verify/Tsgo.js.map +0 -1
  66. package/dist/src/harness/verify/TsgoMetadata.d.ts +0 -4
  67. package/dist/src/harness/verify/TsgoMetadata.js +0 -50
  68. package/dist/src/harness/verify/TsgoMetadata.js.map +0 -1
  69. package/dist/src/harness/verify/TsgoPolicy.d.ts +0 -208
  70. package/dist/src/harness/verify/TsgoPolicy.js +0 -143
  71. package/dist/src/harness/verify/TsgoPolicy.js.map +0 -1
  72. package/dist/src/harness/verify/TsgoSuppressions.d.ts +0 -2
  73. package/dist/src/harness/verify/TsgoSuppressions.js +0 -24
  74. package/dist/src/harness/verify/TsgoSuppressions.js.map +0 -1
  75. package/dist/src/harness/verify/VerifyStage.d.ts +0 -62
  76. package/dist/src/harness/verify/VerifyStage.js +0 -85
  77. package/dist/src/harness/verify/VerifyStage.js.map +0 -1
  78. package/dist/src/platform/Json.d.ts +0 -4
  79. package/dist/src/platform/Json.js +0 -16
  80. package/dist/src/platform/Json.js.map +0 -1
  81. package/dist/src/platform/Process.d.ts +0 -6
  82. package/dist/src/platform/Process.js +0 -35
  83. package/dist/src/platform/Process.js.map +0 -1
  84. package/harness/code.md +0 -83
  85. package/harness/diagnostic-layers.md +0 -94
  86. package/harness/effect-routes.md +0 -50
  87. package/harness/feedback-loop.md +0 -156
  88. package/harness/index.md +0 -83
  89. package/harness/offcial-guide.md +0 -50
  90. package/harness/offcial-migrate.md +0 -220
  91. package/harness/source.md +0 -91
  92. package/harness/tsgo-routes.md +0 -58
  93. package/harness/tsgo.md +0 -241
  94. package/provider/docs/diagnostics.md +0 -48
  95. package/provider/docs/discovery.md +0 -104
  96. package/provider/docs/editor-policy.md +0 -55
  97. package/provider/docs/effect-code.md +0 -41
  98. package/provider/docs/index.md +0 -48
  99. package/provider/docs/managed-surfaces.md +0 -51
  100. package/provider/docs/package-config.md +0 -71
  101. package/provider/docs/quality-policy.md +0 -68
  102. package/provider/docs/source-identity.md +0 -48
  103. package/provider/effect-harness.provider.json +0 -1020
  104. package/provider/index.md +0 -189
  105. package/provider/snippets/agents.md +0 -34
@@ -1 +0,0 @@
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,4 +0,0 @@
1
- import { Effect, FileSystem } from 'effect';
2
- import { HarnessError } from '../Errors.ts';
3
- export declare const verifyHarnessContract: (harness: string) => Effect.Effect<undefined, HarnessError | import("../Errors.ts").ProcessError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
4
- export declare const verifyProviderRepository: (harness: string) => Effect.Effect<void, HarnessError | import("../Errors.ts").ProcessError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
@@ -1,127 +0,0 @@
1
- import { Console, Effect, FileSystem } from 'effect';
2
- import { readJson } from "../../platform/Json.js";
3
- import { HarnessError } from "../Errors.js";
4
- import { verifyGuardrails } from "../Guardrails.js";
5
- import { verifySourcePin } from "../SourcePin.js";
6
- import { isRecord } from "./JsonFields.js";
7
- import { verifyProviderProfileContract } from "./ProviderProfile.js";
8
- import { verifyTsgoBaseline } from "./Tsgo.js";
9
- import { requiredFeedbackLoopKeywords, verifyStageSpecs } from "./VerifyStage.js";
10
- const removedProviderPaths = [
11
- '.codex',
12
- '.effect-harness.json',
13
- 'guide',
14
- 'harness/default-capabilities.md',
15
- 'harness/exposure.md',
16
- 'harness/feedback',
17
- 'harness/official-inventory.md',
18
- 'harness/provider',
19
- 'harness/runtime',
20
- 'harness/target-agent-contract.md',
21
- ];
22
- function decodeJsonRecord(value, source) {
23
- return isRecord(value)
24
- ? Effect.succeed(value)
25
- : Effect.fail(new HarnessError({ message: `${source} must be a JSON object` }));
26
- }
27
- const readForbiddenSelfMaterializationSurfaces = Effect.fnUntraced(function* (errors, harness) {
28
- const providerProfile = yield* readJson(`${harness}/provider/effect-harness.provider.json`, decodeJsonRecord);
29
- const selfConformance = providerProfile.selfConformance;
30
- if (!isRecord(selfConformance)) {
31
- errors.push('provider profile.selfConformance must be an object.');
32
- return [];
33
- }
34
- const forbiddenSurfaces = selfConformance.forbiddenProviderRepositorySurfaces;
35
- if (!Array.isArray(forbiddenSurfaces)) {
36
- errors.push('provider profile.selfConformance.forbiddenProviderRepositorySurfaces must be an array.');
37
- return [];
38
- }
39
- const strings = [];
40
- for (const surface of forbiddenSurfaces) {
41
- if (typeof surface === 'string') {
42
- strings.push(surface);
43
- }
44
- else {
45
- errors.push('provider profile.selfConformance.forbiddenProviderRepositorySurfaces must contain only strings.');
46
- }
47
- }
48
- return strings;
49
- });
50
- const assertNoLegacyProviderState = Effect.fnUntraced(function* (errors, harness) {
51
- const fs = yield* FileSystem.FileSystem;
52
- for (const path of removedProviderPaths) {
53
- if (yield* fs.exists(`${harness}/${path}`)) {
54
- errors.push(`${path} does not belong to the current provider baseline.`);
55
- }
56
- }
57
- });
58
- const assertNoSelfMaterializedTargetState = Effect.fnUntraced(function* (errors, harness) {
59
- const fs = yield* FileSystem.FileSystem;
60
- const forbiddenSurfaces = yield* readForbiddenSelfMaterializationSurfaces(errors, harness);
61
- for (const surface of forbiddenSurfaces) {
62
- if (yield* fs.exists(`${harness}/${surface}`)) {
63
- errors.push(`${surface} is a Prelude target surface; effect-harness self-conformance must not materialize target lifecycle state.`);
64
- }
65
- }
66
- });
67
- const assertFeedbackLoopDocument = Effect.fnUntraced(function* (errors, harness) {
68
- const fs = yield* FileSystem.FileSystem;
69
- const feedbackLoopPath = `${harness}/harness/feedback-loop.md`;
70
- const agentsPath = `${harness}/AGENTS.md`;
71
- const packageJsonPath = `${harness}/package.json`;
72
- if (!(yield* fs.exists(feedbackLoopPath))) {
73
- errors.push('harness/feedback-loop.md must exist.');
74
- return;
75
- }
76
- const feedbackLoopText = yield* fs.readFileString(feedbackLoopPath);
77
- for (const keyword of requiredFeedbackLoopKeywords) {
78
- if (!feedbackLoopText.includes(keyword)) {
79
- errors.push(`harness/feedback-loop.md must contain ${keyword}.`);
80
- }
81
- }
82
- for (const spec of verifyStageSpecs) {
83
- if (!feedbackLoopText.includes(spec.tag)) {
84
- errors.push(`harness/feedback-loop.md must document verify stage ${spec.tag}.`);
85
- }
86
- if (!feedbackLoopText.includes(spec.summary)) {
87
- errors.push(`harness/feedback-loop.md must include summary for ${spec.tag}.`);
88
- }
89
- if (!feedbackLoopText.includes(spec.routeHint)) {
90
- errors.push(`harness/feedback-loop.md must include route hint for ${spec.tag}.`);
91
- }
92
- for (const route of spec.routes) {
93
- if (!feedbackLoopText.includes(route)) {
94
- errors.push(`harness/feedback-loop.md must include route ${route} for ${spec.tag}.`);
95
- }
96
- }
97
- }
98
- const agentsText = yield* fs.readFileString(agentsPath);
99
- if (!agentsText.includes('harness/feedback-loop.md')) {
100
- errors.push('AGENTS.md must route Codex through harness/feedback-loop.md.');
101
- }
102
- const packageJsonText = yield* fs.readFileString(packageJsonPath);
103
- if (!packageJsonText.includes('"verify": "node bin/effect-harness.ts verify --harness ."')) {
104
- errors.push('package.json scripts.verify must call effect-harness verify --harness .');
105
- }
106
- });
107
- export const verifyHarnessContract = Effect.fnUntraced(function* (harness) {
108
- const errors = [];
109
- yield* verifyProviderProfileContract(errors, harness);
110
- yield* verifyTsgoBaseline(errors, harness);
111
- yield* assertNoLegacyProviderState(errors, harness);
112
- yield* assertNoSelfMaterializedTargetState(errors, harness);
113
- yield* assertFeedbackLoopDocument(errors, harness);
114
- yield* verifyGuardrails({
115
- root: harness,
116
- includes: ['bin', 'src', 'tests'],
117
- });
118
- if (errors.length > 0) {
119
- return yield* new HarnessError({ message: `Effect provider verification failed:\n- ${errors.join('\n- ')}` });
120
- }
121
- yield* Console.log('Effect provider repository verified.');
122
- });
123
- export const verifyProviderRepository = Effect.fnUntraced(function* (harness) {
124
- yield* verifySourcePin(harness);
125
- yield* verifyHarnessContract(harness);
126
- });
127
- //# sourceMappingURL=ProviderRepository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProviderRepository.js","sourceRoot":"","sources":["../../../../src/harness/verify/ProviderRepository.ts"],"names":[],"mappings":"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","sourcesContent":["import { Console, Effect, FileSystem } from 'effect'\nimport { readJson } from '../../platform/Json.ts'\nimport { HarnessError } from '../Errors.ts'\nimport { verifyGuardrails } from '../Guardrails.ts'\nimport { verifySourcePin } from '../SourcePin.ts'\nimport { isRecord } from './JsonFields.ts'\nimport { verifyProviderProfileContract } from './ProviderProfile.ts'\nimport { verifyTsgoBaseline } from './Tsgo.ts'\nimport { requiredFeedbackLoopKeywords, verifyStageSpecs } from './VerifyStage.ts'\n\nconst removedProviderPaths = [\n '.codex',\n '.effect-harness.json',\n 'guide',\n 'harness/default-capabilities.md',\n 'harness/exposure.md',\n 'harness/feedback',\n 'harness/official-inventory.md',\n 'harness/provider',\n 'harness/runtime',\n 'harness/target-agent-contract.md',\n] as const\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\nconst readForbiddenSelfMaterializationSurfaces = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const providerProfile = yield* readJson(`${harness}/provider/effect-harness.provider.json`, decodeJsonRecord)\n const selfConformance = providerProfile.selfConformance\n if (!isRecord(selfConformance)) {\n errors.push('provider profile.selfConformance must be an object.')\n return []\n }\n\n const forbiddenSurfaces = selfConformance.forbiddenProviderRepositorySurfaces\n if (!Array.isArray(forbiddenSurfaces)) {\n errors.push('provider profile.selfConformance.forbiddenProviderRepositorySurfaces must be an array.')\n return []\n }\n\n const strings: Array<string> = []\n for (const surface of forbiddenSurfaces) {\n if (typeof surface === 'string') {\n strings.push(surface)\n }\n else {\n errors.push('provider profile.selfConformance.forbiddenProviderRepositorySurfaces must contain only strings.')\n }\n }\n return strings\n})\n\nconst assertNoLegacyProviderState = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const fs = yield* FileSystem.FileSystem\n for (const path of removedProviderPaths) {\n if (yield* fs.exists(`${harness}/${path}`)) {\n errors.push(`${path} does not belong to the current provider baseline.`)\n }\n }\n})\n\nconst assertNoSelfMaterializedTargetState = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const fs = yield* FileSystem.FileSystem\n const forbiddenSurfaces = yield* readForbiddenSelfMaterializationSurfaces(errors, harness)\n for (const surface of forbiddenSurfaces) {\n if (yield* fs.exists(`${harness}/${surface}`)) {\n errors.push(`${surface} is a Prelude target surface; effect-harness self-conformance must not materialize target lifecycle state.`)\n }\n }\n})\n\nconst assertFeedbackLoopDocument = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const fs = yield* FileSystem.FileSystem\n const feedbackLoopPath = `${harness}/harness/feedback-loop.md`\n const agentsPath = `${harness}/AGENTS.md`\n const packageJsonPath = `${harness}/package.json`\n\n if (!(yield* fs.exists(feedbackLoopPath))) {\n errors.push('harness/feedback-loop.md must exist.')\n return\n }\n\n const feedbackLoopText = yield* fs.readFileString(feedbackLoopPath)\n for (const keyword of requiredFeedbackLoopKeywords) {\n if (!feedbackLoopText.includes(keyword)) {\n errors.push(`harness/feedback-loop.md must contain ${keyword}.`)\n }\n }\n for (const spec of verifyStageSpecs) {\n if (!feedbackLoopText.includes(spec.tag)) {\n errors.push(`harness/feedback-loop.md must document verify stage ${spec.tag}.`)\n }\n if (!feedbackLoopText.includes(spec.summary)) {\n errors.push(`harness/feedback-loop.md must include summary for ${spec.tag}.`)\n }\n if (!feedbackLoopText.includes(spec.routeHint)) {\n errors.push(`harness/feedback-loop.md must include route hint for ${spec.tag}.`)\n }\n for (const route of spec.routes) {\n if (!feedbackLoopText.includes(route)) {\n errors.push(`harness/feedback-loop.md must include route ${route} for ${spec.tag}.`)\n }\n }\n }\n\n const agentsText = yield* fs.readFileString(agentsPath)\n if (!agentsText.includes('harness/feedback-loop.md')) {\n errors.push('AGENTS.md must route Codex through harness/feedback-loop.md.')\n }\n\n const packageJsonText = yield* fs.readFileString(packageJsonPath)\n if (!packageJsonText.includes('\"verify\": \"node bin/effect-harness.ts verify --harness .\"')) {\n errors.push('package.json scripts.verify must call effect-harness verify --harness .')\n }\n})\n\nexport const verifyHarnessContract = Effect.fnUntraced(function* (harness: string) {\n const errors: Array<string> = []\n\n yield* verifyProviderProfileContract(errors, harness)\n yield* verifyTsgoBaseline(errors, harness)\n yield* assertNoLegacyProviderState(errors, harness)\n yield* assertNoSelfMaterializedTargetState(errors, harness)\n yield* assertFeedbackLoopDocument(errors, harness)\n yield* verifyGuardrails({\n root: harness,\n includes: ['bin', 'src', 'tests'],\n })\n\n if (errors.length > 0) {\n return yield* new HarnessError({ message: `Effect provider verification failed:\\n- ${errors.join('\\n- ')}` })\n }\n\n yield* Console.log('Effect provider repository verified.')\n})\n\nexport const verifyProviderRepository = Effect.fnUntraced(function* (harness: string) {\n yield* verifySourcePin(harness)\n yield* verifyHarnessContract(harness)\n})\n"]}
@@ -1,3 +0,0 @@
1
- import { Effect, FileSystem } from 'effect';
2
- import { HarnessError } from '../Errors.ts';
3
- export declare const verifyTsgoBaseline: (errors: string[], harness: string) => Effect.Effect<void, HarnessError | import("../Errors.ts").ProcessError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
@@ -1,166 +0,0 @@
1
- import { Effect, FileSystem, Result } from 'effect';
2
- import { readJson } from "../../platform/Json.js";
3
- import { commandString } from "../../platform/Process.js";
4
- import { errorMessage, HarnessError } from "../Errors.js";
5
- import { isRecord } from "./JsonFields.js";
6
- import { readTsgoStrictRuleMap } from "./TsgoMetadata.js";
7
- import { expectedEffectTsgoVersion, expectedPackageBaseline, requiredTsgoPolicyKeywords, strictDiagnosticGate, strictDiagnosticSeverity, strictLanguageServicePlugin, } from "./TsgoPolicy.js";
8
- import { assertNoEffectDiagnosticSuppressions } from "./TsgoSuppressions.js";
9
- function decodeJsonRecord(value, source) {
10
- return isRecord(value)
11
- ? Effect.succeed(value)
12
- : Effect.fail(new HarnessError({ message: `${source} must be a JSON object` }));
13
- }
14
- function recordField(errors, record, key, source) {
15
- if (record === undefined) {
16
- return undefined;
17
- }
18
- const value = record[key];
19
- if (!isRecord(value)) {
20
- errors.push(`${source}.${key} must be an object.`);
21
- return undefined;
22
- }
23
- return value;
24
- }
25
- function arrayField(errors, record, key, source) {
26
- if (record === undefined) {
27
- return undefined;
28
- }
29
- const value = record[key];
30
- if (!Array.isArray(value)) {
31
- errors.push(`${source}.${key} must be an array.`);
32
- return undefined;
33
- }
34
- return value;
35
- }
36
- function assertStringValue(errors, actual, expected, source) {
37
- if (actual !== expected) {
38
- errors.push(`${source} is ${String(actual ?? 'missing')}; expected ${expected}.`);
39
- }
40
- }
41
- function stableJson(value) {
42
- if (Array.isArray(value)) {
43
- return `[${value.map(stableJson).join(',')}]`;
44
- }
45
- if (isRecord(value)) {
46
- return `{${Object.keys(value).sort().map(key => `${JSON.stringify(key)}:${stableJson(value[key])}`).join(',')}}`;
47
- }
48
- return JSON.stringify(value);
49
- }
50
- function assertDeepEqual(errors, actual, expected, source) {
51
- if (stableJson(actual) !== stableJson(expected)) {
52
- errors.push(`${source} does not match the strict tsgo policy.`);
53
- }
54
- }
55
- function findLanguageServicePlugin(errors, plugins, source) {
56
- if (plugins === undefined) {
57
- return undefined;
58
- }
59
- for (const plugin of plugins) {
60
- if (isRecord(plugin) && plugin.name === '@effect/language-service') {
61
- return plugin;
62
- }
63
- }
64
- errors.push(`${source} must include @effect/language-service plugin.`);
65
- return undefined;
66
- }
67
- function assertLanguageServicePlugin(errors, plugin, source) {
68
- if (plugin === undefined) {
69
- return;
70
- }
71
- if ('options' in plugin) {
72
- errors.push(`${source} must use the current @effect/language-service plugin shape.`);
73
- }
74
- if ('overrides' in plugin) {
75
- errors.push(`${source}.overrides must not lower the strict tsgo policy.`);
76
- }
77
- if (plugin.diagnosticSeverity === null) {
78
- errors.push(`${source}.diagnosticSeverity must not be null.`);
79
- return;
80
- }
81
- assertDeepEqual(errors, plugin, strictLanguageServicePlugin, source);
82
- }
83
- function assertTsconfig(errors, tsconfig, source) {
84
- const compilerOptions = recordField(errors, tsconfig, 'compilerOptions', source);
85
- const plugins = arrayField(errors, compilerOptions, 'plugins', `${source}.compilerOptions`);
86
- assertLanguageServicePlugin(errors, findLanguageServicePlugin(errors, plugins, `${source}.compilerOptions.plugins`), `${source}.compilerOptions.plugins[@effect/language-service]`);
87
- }
88
- function assertProviderTsgoPolicy(errors, codexProfile) {
89
- const tsgoPolicy = recordField(errors, codexProfile, 'tsgoPolicy', 'provider profile.profiles.codex-effect-v4');
90
- assertStringValue(errors, tsgoPolicy?.mode, 'strict-v4', 'provider profile tsgoPolicy.mode');
91
- assertStringValue(errors, tsgoPolicy?.effectVersion, expectedPackageBaseline.effect, 'provider profile tsgoPolicy.effectVersion');
92
- assertStringValue(errors, tsgoPolicy?.tsgoVersion, expectedPackageBaseline['@effect/tsgo'], 'provider profile tsgoPolicy.tsgoVersion');
93
- assertStringValue(errors, tsgoPolicy?.languageServiceVersion, expectedPackageBaseline['@effect/language-service'], 'provider profile tsgoPolicy.languageServiceVersion');
94
- assertStringValue(errors, tsgoPolicy?.sourceEntry, 'tsgo-official-source', 'provider profile tsgoPolicy.sourceEntry');
95
- const nativeBackend = recordField(errors, tsgoPolicy, 'nativeBackend', 'provider profile tsgoPolicy');
96
- assertStringValue(errors, nativeBackend?.package, '@typescript/native-preview', 'provider profile tsgoPolicy.nativeBackend.package');
97
- assertStringValue(errors, nativeBackend?.version, expectedPackageBaseline['@typescript/native-preview'], 'provider profile tsgoPolicy.nativeBackend.version');
98
- const diagnosticGate = recordField(errors, tsgoPolicy, 'diagnosticGate', 'provider profile tsgoPolicy');
99
- assertDeepEqual(errors, diagnosticGate, strictDiagnosticGate, 'provider profile tsgoPolicy.diagnosticGate');
100
- const ruleMapSource = recordField(errors, tsgoPolicy, 'ruleMapSource', 'provider profile tsgoPolicy');
101
- assertStringValue(errors, ruleMapSource?.metadata, 'repos/tsgo/_packages/tsgo/src/metadata.json', 'provider profile tsgoPolicy.ruleMapSource.metadata');
102
- assertStringValue(errors, ruleMapSource?.policy, 'harness/tsgo.md', 'provider profile tsgoPolicy.ruleMapSource.policy');
103
- assertStringValue(errors, ruleMapSource?.supportedEffect, 'v4', 'provider profile tsgoPolicy.ruleMapSource.supportedEffect');
104
- if (ruleMapSource?.ruleCount !== Object.keys(strictDiagnosticSeverity).length) {
105
- errors.push(`provider profile tsgoPolicy.ruleMapSource.ruleCount is ${String(ruleMapSource?.ruleCount ?? 'missing')}; expected ${Object.keys(strictDiagnosticSeverity).length}.`);
106
- }
107
- assertDeepEqual(errors, recordField(errors, tsgoPolicy, 'diagnosticSeverity', 'provider profile tsgoPolicy'), strictDiagnosticSeverity, 'provider profile tsgoPolicy.diagnosticSeverity');
108
- assertDeepEqual(errors, recordField(errors, tsgoPolicy, 'languageServicePlugin', 'provider profile tsgoPolicy'), strictLanguageServicePlugin, 'provider profile tsgoPolicy.languageServicePlugin');
109
- }
110
- function assertProviderTsgoContribution(errors, profile) {
111
- const profiles = recordField(errors, profile, 'profiles', 'provider profile');
112
- const codexProfile = recordField(errors, profiles, 'codex-effect-v4', 'provider profile.profiles');
113
- const contributions = recordField(errors, codexProfile, 'contributions', 'provider profile.profiles.codex-effect-v4');
114
- const tsconfig = recordField(errors, contributions, 'tsconfig', 'provider profile.profiles.codex-effect-v4.contributions');
115
- const compilerOptions = recordField(errors, tsconfig, 'compilerOptions', 'provider profile contributions tsconfig');
116
- const plugins = arrayField(errors, compilerOptions, 'plugins', 'provider profile contributions tsconfig.compilerOptions');
117
- assertLanguageServicePlugin(errors, findLanguageServicePlugin(errors, plugins, 'provider profile contributions tsconfig.compilerOptions.plugins'), 'provider profile contributions tsconfig.compilerOptions.plugins[@effect/language-service]');
118
- assertProviderTsgoPolicy(errors, codexProfile);
119
- }
120
- function assertStrictRuleMap(errors, metadataRuleMap) {
121
- assertDeepEqual(errors, metadataRuleMap, strictDiagnosticSeverity, 'repos/tsgo metadata derived strict rule map');
122
- }
123
- function assertTsgoPolicyDocument(errors, text) {
124
- for (const keyword of requiredTsgoPolicyKeywords) {
125
- if (!text.includes(keyword)) {
126
- errors.push(`harness/tsgo.md must contain policy keyword ${keyword}.`);
127
- }
128
- }
129
- for (const ruleName of Object.keys(strictDiagnosticSeverity)) {
130
- if (!text.includes(ruleName)) {
131
- errors.push(`harness/tsgo.md POLICY_RULE_MAP must record ${ruleName}.`);
132
- }
133
- }
134
- }
135
- const verifyEffectTsgoBinary = Effect.fnUntraced(function* (errors, root) {
136
- const result = yield* Effect.result(commandString('pnpm', ['exec', 'effect-tsgo', '--version'], { cwd: root }));
137
- if (Result.isFailure(result)) {
138
- errors.push(`effect-tsgo --version failed: ${errorMessage(result.failure)}`);
139
- return;
140
- }
141
- if (!result.success.includes(expectedEffectTsgoVersion)) {
142
- errors.push(`effect-tsgo version output is ${result.success}; expected ${expectedEffectTsgoVersion}.`);
143
- }
144
- const tsgoResult = yield* Effect.result(commandString('pnpm', ['exec', 'tsgo', '--version'], { cwd: root }));
145
- if (Result.isFailure(tsgoResult)) {
146
- errors.push(`tsgo --version failed: ${errorMessage(tsgoResult.failure)}`);
147
- return;
148
- }
149
- if (!tsgoResult.success.includes(`effect-tsgo.${expectedEffectTsgoVersion}`)) {
150
- errors.push(`tsgo version output is ${tsgoResult.success}; expected Effect TypeScript-Go ${expectedEffectTsgoVersion}.`);
151
- }
152
- });
153
- export const verifyTsgoBaseline = Effect.fnUntraced(function* (errors, harness) {
154
- const fs = yield* FileSystem.FileSystem;
155
- const tsconfig = yield* readJson(`${harness}/tsconfig.json`, decodeJsonRecord);
156
- const providerProfile = yield* readJson(`${harness}/provider/effect-harness.provider.json`, decodeJsonRecord);
157
- const tsgoPolicyText = yield* fs.readFileString(`${harness}/harness/tsgo.md`);
158
- const metadataRuleMap = yield* readTsgoStrictRuleMap(harness);
159
- assertTsconfig(errors, tsconfig, 'tsconfig.json');
160
- assertProviderTsgoContribution(errors, providerProfile);
161
- assertStrictRuleMap(errors, metadataRuleMap);
162
- assertTsgoPolicyDocument(errors, tsgoPolicyText);
163
- yield* assertNoEffectDiagnosticSuppressions(errors, harness);
164
- yield* verifyEffectTsgoBinary(errors, harness);
165
- });
166
- //# sourceMappingURL=Tsgo.js.map