@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.
- package/README.md +9 -77
- package/diagnostics/effect-routes.md +6 -0
- package/diagnostics/index.md +10 -0
- package/diagnostics/tsgo-routes.md +5 -0
- package/dist/src/eslint.d.ts +57 -0
- package/dist/src/eslint.js +42 -0
- package/dist/src/eslint.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/prelude.d.ts +6 -0
- package/dist/src/prelude.js +161 -0
- package/dist/src/prelude.js.map +1 -0
- package/package.json +25 -17
- package/prelude-assets/effect/managed/docs/diagnostics.md +6 -0
- package/prelude-assets/effect/managed/docs/editor-policy.md +5 -0
- package/prelude-assets/effect/managed/docs/effect-code.md +5 -0
- package/prelude-assets/effect/managed/docs/index.md +14 -0
- package/prelude-assets/effect/managed/docs/managed-surfaces.md +5 -0
- package/prelude-assets/effect/managed/docs/package-config.md +20 -0
- package/prelude-assets/effect/managed/docs/quality-policy.md +5 -0
- package/prelude-assets/effect/managed/docs/source-identity.md +5 -0
- package/prelude-assets/guidance/eslint.md +15 -0
- package/repos/effect.subtree.json +2 -2
- package/repos/tsgo.subtree.json +2 -2
- package/HARNESS.md +0 -66
- package/dist/bin/effect-harness.d.ts +0 -2
- package/dist/bin/effect-harness.js +0 -34
- package/dist/bin/effect-harness.js.map +0 -1
- package/dist/src/cli/Main.d.ts +0 -7
- package/dist/src/cli/Main.js +0 -45
- package/dist/src/cli/Main.js.map +0 -1
- package/dist/src/harness/Errors.d.ts +0 -24
- package/dist/src/harness/Errors.js +0 -26
- package/dist/src/harness/Errors.js.map +0 -1
- package/dist/src/harness/Guardrails.d.ts +0 -7
- package/dist/src/harness/Guardrails.js +0 -50
- package/dist/src/harness/Guardrails.js.map +0 -1
- package/dist/src/harness/Model.d.ts +0 -52
- package/dist/src/harness/Model.js +0 -170
- package/dist/src/harness/Model.js.map +0 -1
- package/dist/src/harness/ModuleSources.d.ts +0 -5
- package/dist/src/harness/ModuleSources.js +0 -47
- package/dist/src/harness/ModuleSources.js.map +0 -1
- package/dist/src/harness/ProviderDiscovery.d.ts +0 -172
- package/dist/src/harness/ProviderDiscovery.js +0 -157
- package/dist/src/harness/ProviderDiscovery.js.map +0 -1
- package/dist/src/harness/SourcePin.d.ts +0 -4
- package/dist/src/harness/SourcePin.js +0 -214
- package/dist/src/harness/SourcePin.js.map +0 -1
- package/dist/src/harness/verify/JsonFields.d.ts +0 -1
- package/dist/src/harness/verify/JsonFields.js +0 -4
- package/dist/src/harness/verify/JsonFields.js.map +0 -1
- package/dist/src/harness/verify/Pipeline.d.ts +0 -7
- package/dist/src/harness/verify/Pipeline.js +0 -55
- package/dist/src/harness/verify/Pipeline.js.map +0 -1
- package/dist/src/harness/verify/ProviderProfile.d.ts +0 -3
- package/dist/src/harness/verify/ProviderProfile.js +0 -726
- package/dist/src/harness/verify/ProviderProfile.js.map +0 -1
- package/dist/src/harness/verify/ProviderRepository.d.ts +0 -4
- package/dist/src/harness/verify/ProviderRepository.js +0 -127
- package/dist/src/harness/verify/ProviderRepository.js.map +0 -1
- package/dist/src/harness/verify/Tsgo.d.ts +0 -3
- package/dist/src/harness/verify/Tsgo.js +0 -166
- package/dist/src/harness/verify/Tsgo.js.map +0 -1
- package/dist/src/harness/verify/TsgoMetadata.d.ts +0 -4
- package/dist/src/harness/verify/TsgoMetadata.js +0 -50
- package/dist/src/harness/verify/TsgoMetadata.js.map +0 -1
- package/dist/src/harness/verify/TsgoPolicy.d.ts +0 -208
- package/dist/src/harness/verify/TsgoPolicy.js +0 -143
- package/dist/src/harness/verify/TsgoPolicy.js.map +0 -1
- package/dist/src/harness/verify/TsgoSuppressions.d.ts +0 -2
- package/dist/src/harness/verify/TsgoSuppressions.js +0 -24
- package/dist/src/harness/verify/TsgoSuppressions.js.map +0 -1
- package/dist/src/harness/verify/VerifyStage.d.ts +0 -62
- package/dist/src/harness/verify/VerifyStage.js +0 -85
- package/dist/src/harness/verify/VerifyStage.js.map +0 -1
- package/dist/src/platform/Json.d.ts +0 -4
- package/dist/src/platform/Json.js +0 -16
- package/dist/src/platform/Json.js.map +0 -1
- package/dist/src/platform/Process.d.ts +0 -6
- package/dist/src/platform/Process.js +0 -35
- package/dist/src/platform/Process.js.map +0 -1
- package/harness/code.md +0 -83
- package/harness/diagnostic-layers.md +0 -94
- package/harness/effect-routes.md +0 -50
- package/harness/feedback-loop.md +0 -156
- package/harness/index.md +0 -83
- package/harness/offcial-guide.md +0 -50
- package/harness/offcial-migrate.md +0 -220
- package/harness/source.md +0 -91
- package/harness/tsgo-routes.md +0 -58
- package/harness/tsgo.md +0 -241
- package/provider/docs/diagnostics.md +0 -48
- package/provider/docs/discovery.md +0 -104
- package/provider/docs/editor-policy.md +0 -55
- package/provider/docs/effect-code.md +0 -41
- package/provider/docs/index.md +0 -48
- package/provider/docs/managed-surfaces.md +0 -51
- package/provider/docs/package-config.md +0 -71
- package/provider/docs/quality-policy.md +0 -68
- package/provider/docs/source-identity.md +0 -48
- package/provider/effect-harness.provider.json +0 -1020
- package/provider/index.md +0 -189
- package/provider/snippets/agents.md +0 -34
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Tsgo.js","sourceRoot":"","sources":["../../../../src/harness/verify/Tsgo.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect, FileSystem, Result } from 'effect'\nimport { readJson } from '../../platform/Json.ts'\nimport { commandString } from '../../platform/Process.ts'\nimport { errorMessage, HarnessError } from '../Errors.ts'\nimport { isRecord } from './JsonFields.ts'\nimport { readTsgoStrictRuleMap } from './TsgoMetadata.ts'\nimport {\n expectedEffectTsgoVersion,\n expectedPackageBaseline,\n requiredTsgoPolicyKeywords,\n strictDiagnosticGate,\n strictDiagnosticSeverity,\n strictLanguageServicePlugin,\n} from './TsgoPolicy.ts'\nimport { assertNoEffectDiagnosticSuppressions } from './TsgoSuppressions.ts'\n\nfunction decodeJsonRecord(value: unknown, source: string) {\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 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(\n errors: Array<string>,\n actual: unknown,\n expected: string,\n source: string,\n): void {\n if (actual !== expected) {\n errors.push(`${source} is ${String(actual ?? 'missing')}; expected ${expected}.`)\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 assertDeepEqual(errors: Array<string>, actual: unknown, expected: unknown, source: string): void {\n if (stableJson(actual) !== stableJson(expected)) {\n errors.push(`${source} does not match the strict tsgo policy.`)\n }\n}\n\nfunction findLanguageServicePlugin(\n errors: Array<string>,\n plugins: ReadonlyArray<unknown> | undefined,\n source: string,\n): Record<string, unknown> | undefined {\n if (plugins === undefined) {\n return undefined\n }\n\n for (const plugin of plugins) {\n if (isRecord(plugin) && plugin.name === '@effect/language-service') {\n return plugin\n }\n }\n\n errors.push(`${source} must include @effect/language-service plugin.`)\n return undefined\n}\n\nfunction assertLanguageServicePlugin(\n errors: Array<string>,\n plugin: Record<string, unknown> | undefined,\n source: string,\n): void {\n if (plugin === undefined) {\n return\n }\n\n if ('options' in plugin) {\n errors.push(`${source} must use the current @effect/language-service plugin shape.`)\n }\n if ('overrides' in plugin) {\n errors.push(`${source}.overrides must not lower the strict tsgo policy.`)\n }\n if (plugin.diagnosticSeverity === null) {\n errors.push(`${source}.diagnosticSeverity must not be null.`)\n return\n }\n\n assertDeepEqual(errors, plugin, strictLanguageServicePlugin, source)\n}\n\nfunction assertTsconfig(errors: Array<string>, tsconfig: Record<string, unknown>, source: string): void {\n const compilerOptions = recordField(errors, tsconfig, 'compilerOptions', source)\n const plugins = arrayField(errors, compilerOptions, 'plugins', `${source}.compilerOptions`)\n assertLanguageServicePlugin(\n errors,\n findLanguageServicePlugin(errors, plugins, `${source}.compilerOptions.plugins`),\n `${source}.compilerOptions.plugins[@effect/language-service]`,\n )\n}\n\nfunction assertProviderTsgoPolicy(errors: Array<string>, codexProfile: Record<string, unknown> | undefined): void {\n const tsgoPolicy = recordField(errors, codexProfile, 'tsgoPolicy', 'provider profile.profiles.codex-effect-v4')\n assertStringValue(errors, tsgoPolicy?.mode, 'strict-v4', 'provider profile tsgoPolicy.mode')\n assertStringValue(errors, tsgoPolicy?.effectVersion, expectedPackageBaseline.effect, 'provider profile tsgoPolicy.effectVersion')\n assertStringValue(errors, tsgoPolicy?.tsgoVersion, expectedPackageBaseline['@effect/tsgo'], 'provider profile tsgoPolicy.tsgoVersion')\n assertStringValue(errors, tsgoPolicy?.languageServiceVersion, expectedPackageBaseline['@effect/language-service'], 'provider profile tsgoPolicy.languageServiceVersion')\n assertStringValue(errors, tsgoPolicy?.sourceEntry, 'tsgo-official-source', 'provider profile tsgoPolicy.sourceEntry')\n\n const nativeBackend = recordField(errors, tsgoPolicy, 'nativeBackend', 'provider profile tsgoPolicy')\n assertStringValue(errors, nativeBackend?.package, '@typescript/native-preview', 'provider profile tsgoPolicy.nativeBackend.package')\n assertStringValue(errors, nativeBackend?.version, expectedPackageBaseline['@typescript/native-preview'], 'provider profile tsgoPolicy.nativeBackend.version')\n\n const diagnosticGate = recordField(errors, tsgoPolicy, 'diagnosticGate', 'provider profile tsgoPolicy')\n assertDeepEqual(errors, diagnosticGate, strictDiagnosticGate, 'provider profile tsgoPolicy.diagnosticGate')\n\n const ruleMapSource = recordField(errors, tsgoPolicy, 'ruleMapSource', 'provider profile tsgoPolicy')\n assertStringValue(errors, ruleMapSource?.metadata, 'repos/tsgo/_packages/tsgo/src/metadata.json', 'provider profile tsgoPolicy.ruleMapSource.metadata')\n assertStringValue(errors, ruleMapSource?.policy, 'harness/tsgo.md', 'provider profile tsgoPolicy.ruleMapSource.policy')\n assertStringValue(errors, ruleMapSource?.supportedEffect, 'v4', 'provider profile tsgoPolicy.ruleMapSource.supportedEffect')\n if (ruleMapSource?.ruleCount !== Object.keys(strictDiagnosticSeverity).length) {\n errors.push(`provider profile tsgoPolicy.ruleMapSource.ruleCount is ${String(ruleMapSource?.ruleCount ?? 'missing')}; expected ${Object.keys(strictDiagnosticSeverity).length}.`)\n }\n\n assertDeepEqual(\n errors,\n recordField(errors, tsgoPolicy, 'diagnosticSeverity', 'provider profile tsgoPolicy'),\n strictDiagnosticSeverity,\n 'provider profile tsgoPolicy.diagnosticSeverity',\n )\n assertDeepEqual(\n errors,\n recordField(errors, tsgoPolicy, 'languageServicePlugin', 'provider profile tsgoPolicy'),\n strictLanguageServicePlugin,\n 'provider profile tsgoPolicy.languageServicePlugin',\n )\n}\n\nfunction assertProviderTsgoContribution(errors: Array<string>, profile: Record<string, unknown>): void {\n const profiles = recordField(errors, profile, 'profiles', 'provider profile')\n const codexProfile = recordField(errors, profiles, 'codex-effect-v4', 'provider profile.profiles')\n const contributions = recordField(errors, codexProfile, 'contributions', 'provider profile.profiles.codex-effect-v4')\n\n const tsconfig = recordField(errors, contributions, 'tsconfig', 'provider profile.profiles.codex-effect-v4.contributions')\n const compilerOptions = recordField(errors, tsconfig, 'compilerOptions', 'provider profile contributions tsconfig')\n const plugins = arrayField(errors, compilerOptions, 'plugins', 'provider profile contributions tsconfig.compilerOptions')\n assertLanguageServicePlugin(\n errors,\n findLanguageServicePlugin(errors, plugins, 'provider profile contributions tsconfig.compilerOptions.plugins'),\n 'provider profile contributions tsconfig.compilerOptions.plugins[@effect/language-service]',\n )\n assertProviderTsgoPolicy(errors, codexProfile)\n}\n\nfunction assertStrictRuleMap(errors: Array<string>, metadataRuleMap: Readonly<Record<string, string>>): void {\n assertDeepEqual(errors, metadataRuleMap, strictDiagnosticSeverity, 'repos/tsgo metadata derived strict rule map')\n}\n\nfunction assertTsgoPolicyDocument(errors: Array<string>, text: string): void {\n for (const keyword of requiredTsgoPolicyKeywords) {\n if (!text.includes(keyword)) {\n errors.push(`harness/tsgo.md must contain policy keyword ${keyword}.`)\n }\n }\n for (const ruleName of Object.keys(strictDiagnosticSeverity)) {\n if (!text.includes(ruleName)) {\n errors.push(`harness/tsgo.md POLICY_RULE_MAP must record ${ruleName}.`)\n }\n }\n}\n\nconst verifyEffectTsgoBinary = Effect.fnUntraced(function* (errors: Array<string>, root: string) {\n const result = yield* Effect.result(commandString('pnpm', ['exec', 'effect-tsgo', '--version'], { cwd: root }))\n\n if (Result.isFailure(result)) {\n errors.push(`effect-tsgo --version failed: ${errorMessage(result.failure)}`)\n return\n }\n\n if (!result.success.includes(expectedEffectTsgoVersion)) {\n errors.push(`effect-tsgo version output is ${result.success}; expected ${expectedEffectTsgoVersion}.`)\n }\n\n const tsgoResult = yield* Effect.result(commandString('pnpm', ['exec', 'tsgo', '--version'], { cwd: root }))\n\n if (Result.isFailure(tsgoResult)) {\n errors.push(`tsgo --version failed: ${errorMessage(tsgoResult.failure)}`)\n return\n }\n\n if (!tsgoResult.success.includes(`effect-tsgo.${expectedEffectTsgoVersion}`)) {\n errors.push(`tsgo version output is ${tsgoResult.success}; expected Effect TypeScript-Go ${expectedEffectTsgoVersion}.`)\n }\n})\n\nexport const verifyTsgoBaseline = Effect.fnUntraced(function* (errors: Array<string>, harness: string) {\n const fs = yield* FileSystem.FileSystem\n const tsconfig = yield* readJson(`${harness}/tsconfig.json`, decodeJsonRecord)\n const providerProfile = yield* readJson(`${harness}/provider/effect-harness.provider.json`, decodeJsonRecord)\n const tsgoPolicyText = yield* fs.readFileString(`${harness}/harness/tsgo.md`)\n const metadataRuleMap = yield* readTsgoStrictRuleMap(harness)\n\n assertTsconfig(errors, tsconfig, 'tsconfig.json')\n assertProviderTsgoContribution(errors, providerProfile)\n assertStrictRuleMap(errors, metadataRuleMap)\n assertTsgoPolicyDocument(errors, tsgoPolicyText)\n yield* assertNoEffectDiagnosticSuppressions(errors, harness)\n yield* verifyEffectTsgoBinary(errors, harness)\n})\n"]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { TsgoDiagnosticSeverity } from './TsgoPolicy.ts';
|
|
2
|
-
import { Effect } from 'effect';
|
|
3
|
-
import { HarnessError } from '../Errors.ts';
|
|
4
|
-
export declare const readTsgoStrictRuleMap: (root: string) => Effect.Effect<Readonly<Record<string, TsgoDiagnosticSeverity>>, HarnessError | import("effect/PlatformError").PlatformError, import("effect/FileSystem").FileSystem>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Effect } from 'effect';
|
|
2
|
-
import { readJson } from "../../platform/Json.js";
|
|
3
|
-
import { HarnessError } from "../Errors.js";
|
|
4
|
-
import { isRecord } from "./JsonFields.js";
|
|
5
|
-
function decodeTsgoMetadata(value, source) {
|
|
6
|
-
if (!isRecord(value) || !Array.isArray(value.rules)) {
|
|
7
|
-
return Effect.fail(new HarnessError({ message: `${source} must contain a rules array.` }));
|
|
8
|
-
}
|
|
9
|
-
const rules = [];
|
|
10
|
-
for (const [index, rule] of value.rules.entries()) {
|
|
11
|
-
if (!isRecord(rule)) {
|
|
12
|
-
return Effect.fail(new HarnessError({ message: `${source}.rules[${index}] must be an object.` }));
|
|
13
|
-
}
|
|
14
|
-
if (typeof rule.name !== 'string'
|
|
15
|
-
|| typeof rule.group !== 'string'
|
|
16
|
-
|| typeof rule.defaultSeverity !== 'string'
|
|
17
|
-
|| !Array.isArray(rule.supportedEffect)
|
|
18
|
-
|| rule.supportedEffect.some(effect => typeof effect !== 'string')) {
|
|
19
|
-
return Effect.fail(new HarnessError({ message: `${source}.rules[${index}] has an invalid rule shape.` }));
|
|
20
|
-
}
|
|
21
|
-
rules.push({
|
|
22
|
-
defaultSeverity: rule.defaultSeverity,
|
|
23
|
-
group: rule.group,
|
|
24
|
-
name: rule.name,
|
|
25
|
-
supportedEffect: rule.supportedEffect,
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
return Effect.succeed({ rules });
|
|
29
|
-
}
|
|
30
|
-
function strictSeverity(rule) {
|
|
31
|
-
if (rule.group === 'correctness' && rule.defaultSeverity === 'off') {
|
|
32
|
-
return 'error';
|
|
33
|
-
}
|
|
34
|
-
if (rule.group === 'effectNative') {
|
|
35
|
-
return 'warning';
|
|
36
|
-
}
|
|
37
|
-
if ((rule.group === 'antipattern' || rule.group === 'style') && rule.defaultSeverity === 'off') {
|
|
38
|
-
return 'warning';
|
|
39
|
-
}
|
|
40
|
-
return rule.defaultSeverity;
|
|
41
|
-
}
|
|
42
|
-
export const readTsgoStrictRuleMap = Effect.fnUntraced(function* (root) {
|
|
43
|
-
const metadata = yield* readJson(`${root}/repos/tsgo/_packages/tsgo/src/metadata.json`, decodeTsgoMetadata);
|
|
44
|
-
const entries = metadata.rules
|
|
45
|
-
.filter(rule => rule.supportedEffect.includes('v4'))
|
|
46
|
-
.map(rule => [rule.name, strictSeverity(rule)])
|
|
47
|
-
.sort(([left], [right]) => left.localeCompare(right));
|
|
48
|
-
return Object.fromEntries(entries);
|
|
49
|
-
});
|
|
50
|
-
//# sourceMappingURL=TsgoMetadata.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TsgoMetadata.js","sourceRoot":"","sources":["../../../../src/harness/verify/TsgoMetadata.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TsgoDiagnosticSeverity } from './TsgoPolicy.ts'\nimport { Effect } from 'effect'\nimport { readJson } from '../../platform/Json.ts'\nimport { HarnessError } from '../Errors.ts'\nimport { isRecord } from './JsonFields.ts'\n\ninterface TsgoRuleMetadata {\n readonly name: string\n readonly group: string\n readonly defaultSeverity: string\n readonly supportedEffect: ReadonlyArray<string>\n}\n\nfunction decodeTsgoMetadata(value: unknown, source: string) {\n if (!isRecord(value) || !Array.isArray(value.rules)) {\n return Effect.fail(new HarnessError({ message: `${source} must contain a rules array.` }))\n }\n\n const rules: Array<TsgoRuleMetadata> = []\n for (const [index, rule] of value.rules.entries()) {\n if (!isRecord(rule)) {\n return Effect.fail(new HarnessError({ message: `${source}.rules[${index}] must be an object.` }))\n }\n if (\n typeof rule.name !== 'string'\n || typeof rule.group !== 'string'\n || typeof rule.defaultSeverity !== 'string'\n || !Array.isArray(rule.supportedEffect)\n || rule.supportedEffect.some(effect => typeof effect !== 'string')\n ) {\n return Effect.fail(new HarnessError({ message: `${source}.rules[${index}] has an invalid rule shape.` }))\n }\n\n rules.push({\n defaultSeverity: rule.defaultSeverity,\n group: rule.group,\n name: rule.name,\n supportedEffect: rule.supportedEffect as ReadonlyArray<string>,\n })\n }\n\n return Effect.succeed({ rules })\n}\n\nfunction strictSeverity(rule: TsgoRuleMetadata): TsgoDiagnosticSeverity {\n if (rule.group === 'correctness' && rule.defaultSeverity === 'off') {\n return 'error'\n }\n if (rule.group === 'effectNative') {\n return 'warning'\n }\n if ((rule.group === 'antipattern' || rule.group === 'style') && rule.defaultSeverity === 'off') {\n return 'warning'\n }\n return rule.defaultSeverity as TsgoDiagnosticSeverity\n}\n\nexport const readTsgoStrictRuleMap = Effect.fnUntraced(function* (root: string) {\n const metadata = yield* readJson(`${root}/repos/tsgo/_packages/tsgo/src/metadata.json`, decodeTsgoMetadata)\n const entries = metadata.rules\n .filter(rule => rule.supportedEffect.includes('v4'))\n .map(rule => [rule.name, strictSeverity(rule)] as const)\n .sort(([left], [right]) => left.localeCompare(right))\n\n return Object.fromEntries(entries) as Readonly<Record<string, TsgoDiagnosticSeverity>>\n})\n"]}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
export type TsgoDiagnosticSeverity = 'error' | 'message' | 'suggestion' | 'warning';
|
|
2
|
-
export declare const expectedPackageBaseline: {
|
|
3
|
-
readonly effect: "4.0.0-beta.92";
|
|
4
|
-
readonly '@effect/platform-node': "4.0.0-beta.92";
|
|
5
|
-
readonly '@effect/vitest': "4.0.0-beta.92";
|
|
6
|
-
readonly '@effect/tsgo': "0.15.0";
|
|
7
|
-
readonly '@effect/language-service': "0.86.2";
|
|
8
|
-
readonly '@typescript/native-preview': "7.0.0-dev.20260630.1";
|
|
9
|
-
readonly '@antfu/eslint-config': "^9.0.0";
|
|
10
|
-
readonly eslint: "^10.3.0";
|
|
11
|
-
readonly vitest: "^4.1.8";
|
|
12
|
-
};
|
|
13
|
-
export declare const expectedEffectTsgoVersion = "0.15.0";
|
|
14
|
-
export declare const expectedPrepareCommand = "effect-tsgo patch";
|
|
15
|
-
export declare const expectedTypecheckCommand = "tsgo --noEmit";
|
|
16
|
-
export declare const strictDiagnosticSeverity: {
|
|
17
|
-
readonly anyUnknownInErrorContext: "error";
|
|
18
|
-
readonly asyncFunction: "warning";
|
|
19
|
-
readonly catchAllToMapError: "suggestion";
|
|
20
|
-
readonly catchToOrElseSucceed: "suggestion";
|
|
21
|
-
readonly catchUnfailableEffect: "suggestion";
|
|
22
|
-
readonly classSelfMismatch: "error";
|
|
23
|
-
readonly cryptoRandomUUID: "warning";
|
|
24
|
-
readonly cryptoRandomUUIDInEffect: "warning";
|
|
25
|
-
readonly deterministicKeys: "warning";
|
|
26
|
-
readonly duplicatePackage: "warning";
|
|
27
|
-
readonly effectDoNotation: "warning";
|
|
28
|
-
readonly effectFnIife: "warning";
|
|
29
|
-
readonly effectFnImplicitAny: "error";
|
|
30
|
-
readonly effectFnOpportunity: "suggestion";
|
|
31
|
-
readonly effectGenUsesAdapter: "warning";
|
|
32
|
-
readonly effectInFailure: "warning";
|
|
33
|
-
readonly effectInVoidSuccess: "warning";
|
|
34
|
-
readonly effectMapFlatten: "suggestion";
|
|
35
|
-
readonly effectMapVoid: "suggestion";
|
|
36
|
-
readonly effectSucceedWithVoid: "suggestion";
|
|
37
|
-
readonly extendsNativeError: "warning";
|
|
38
|
-
readonly floatingEffect: "error";
|
|
39
|
-
readonly genericEffectServices: "warning";
|
|
40
|
-
readonly globalConsole: "warning";
|
|
41
|
-
readonly globalConsoleInEffect: "warning";
|
|
42
|
-
readonly globalDate: "warning";
|
|
43
|
-
readonly globalDateInEffect: "warning";
|
|
44
|
-
readonly globalErrorInEffectCatch: "warning";
|
|
45
|
-
readonly globalErrorInEffectFailure: "warning";
|
|
46
|
-
readonly globalFetch: "warning";
|
|
47
|
-
readonly globalFetchInEffect: "warning";
|
|
48
|
-
readonly globalRandom: "warning";
|
|
49
|
-
readonly globalRandomInEffect: "warning";
|
|
50
|
-
readonly globalTimers: "warning";
|
|
51
|
-
readonly globalTimersInEffect: "warning";
|
|
52
|
-
readonly instanceOfSchema: "warning";
|
|
53
|
-
readonly layerMergeAllWithDependencies: "warning";
|
|
54
|
-
readonly lazyEffect: "suggestion";
|
|
55
|
-
readonly lazyPromiseInEffectSync: "warning";
|
|
56
|
-
readonly leakingRequirements: "suggestion";
|
|
57
|
-
readonly missedPipeableOpportunity: "warning";
|
|
58
|
-
readonly missingEffectContext: "error";
|
|
59
|
-
readonly missingEffectError: "error";
|
|
60
|
-
readonly missingLayerContext: "error";
|
|
61
|
-
readonly missingReturnYieldStar: "error";
|
|
62
|
-
readonly missingStarInYieldEffectGen: "error";
|
|
63
|
-
readonly multipleCatchTag: "suggestion";
|
|
64
|
-
readonly multipleEffectProvide: "warning";
|
|
65
|
-
readonly nestedEffectGenYield: "warning";
|
|
66
|
-
readonly newPromise: "warning";
|
|
67
|
-
readonly newSchemaClass: "warning";
|
|
68
|
-
readonly nodeBuiltinImport: "warning";
|
|
69
|
-
readonly outdatedApi: "warning";
|
|
70
|
-
readonly overriddenSchemaConstructor: "error";
|
|
71
|
-
readonly preferSchemaOverJson: "warning";
|
|
72
|
-
readonly processEnv: "warning";
|
|
73
|
-
readonly processEnvInEffect: "warning";
|
|
74
|
-
readonly redundantMapError: "suggestion";
|
|
75
|
-
readonly redundantOrDie: "suggestion";
|
|
76
|
-
readonly redundantSchemaTagIdentifier: "suggestion";
|
|
77
|
-
readonly returnEffectInGen: "suggestion";
|
|
78
|
-
readonly runEffectInsideEffect: "suggestion";
|
|
79
|
-
readonly schemaNumber: "suggestion";
|
|
80
|
-
readonly schemaStructWithTag: "suggestion";
|
|
81
|
-
readonly serviceNotAsClass: "warning";
|
|
82
|
-
readonly strictBooleanExpressions: "warning";
|
|
83
|
-
readonly strictEffectProvide: "warning";
|
|
84
|
-
readonly tryCatchInEffectGen: "suggestion";
|
|
85
|
-
readonly unknownInEffectCatch: "warning";
|
|
86
|
-
readonly unnecessaryArrowBlock: "warning";
|
|
87
|
-
readonly unnecessaryEffectGen: "suggestion";
|
|
88
|
-
readonly unnecessaryFailYieldableError: "suggestion";
|
|
89
|
-
readonly unnecessaryPipe: "suggestion";
|
|
90
|
-
readonly unnecessaryPipeChain: "suggestion";
|
|
91
|
-
readonly unnecessaryTypeofType: "suggestion";
|
|
92
|
-
readonly unsafeEffectTypeAssertion: "warning";
|
|
93
|
-
};
|
|
94
|
-
export declare const strictDiagnosticGate: {
|
|
95
|
-
readonly includeSuggestionsInTsc: true;
|
|
96
|
-
readonly ignoreEffectSuggestionsInTscExitCode: false;
|
|
97
|
-
readonly ignoreEffectWarningsInTscExitCode: false;
|
|
98
|
-
readonly ignoreEffectErrorsInTscExitCode: false;
|
|
99
|
-
};
|
|
100
|
-
export declare const strictLanguageServicePlugin: {
|
|
101
|
-
readonly diagnosticSeverity: {
|
|
102
|
-
readonly anyUnknownInErrorContext: "error";
|
|
103
|
-
readonly asyncFunction: "warning";
|
|
104
|
-
readonly catchAllToMapError: "suggestion";
|
|
105
|
-
readonly catchToOrElseSucceed: "suggestion";
|
|
106
|
-
readonly catchUnfailableEffect: "suggestion";
|
|
107
|
-
readonly classSelfMismatch: "error";
|
|
108
|
-
readonly cryptoRandomUUID: "warning";
|
|
109
|
-
readonly cryptoRandomUUIDInEffect: "warning";
|
|
110
|
-
readonly deterministicKeys: "warning";
|
|
111
|
-
readonly duplicatePackage: "warning";
|
|
112
|
-
readonly effectDoNotation: "warning";
|
|
113
|
-
readonly effectFnIife: "warning";
|
|
114
|
-
readonly effectFnImplicitAny: "error";
|
|
115
|
-
readonly effectFnOpportunity: "suggestion";
|
|
116
|
-
readonly effectGenUsesAdapter: "warning";
|
|
117
|
-
readonly effectInFailure: "warning";
|
|
118
|
-
readonly effectInVoidSuccess: "warning";
|
|
119
|
-
readonly effectMapFlatten: "suggestion";
|
|
120
|
-
readonly effectMapVoid: "suggestion";
|
|
121
|
-
readonly effectSucceedWithVoid: "suggestion";
|
|
122
|
-
readonly extendsNativeError: "warning";
|
|
123
|
-
readonly floatingEffect: "error";
|
|
124
|
-
readonly genericEffectServices: "warning";
|
|
125
|
-
readonly globalConsole: "warning";
|
|
126
|
-
readonly globalConsoleInEffect: "warning";
|
|
127
|
-
readonly globalDate: "warning";
|
|
128
|
-
readonly globalDateInEffect: "warning";
|
|
129
|
-
readonly globalErrorInEffectCatch: "warning";
|
|
130
|
-
readonly globalErrorInEffectFailure: "warning";
|
|
131
|
-
readonly globalFetch: "warning";
|
|
132
|
-
readonly globalFetchInEffect: "warning";
|
|
133
|
-
readonly globalRandom: "warning";
|
|
134
|
-
readonly globalRandomInEffect: "warning";
|
|
135
|
-
readonly globalTimers: "warning";
|
|
136
|
-
readonly globalTimersInEffect: "warning";
|
|
137
|
-
readonly instanceOfSchema: "warning";
|
|
138
|
-
readonly layerMergeAllWithDependencies: "warning";
|
|
139
|
-
readonly lazyEffect: "suggestion";
|
|
140
|
-
readonly lazyPromiseInEffectSync: "warning";
|
|
141
|
-
readonly leakingRequirements: "suggestion";
|
|
142
|
-
readonly missedPipeableOpportunity: "warning";
|
|
143
|
-
readonly missingEffectContext: "error";
|
|
144
|
-
readonly missingEffectError: "error";
|
|
145
|
-
readonly missingLayerContext: "error";
|
|
146
|
-
readonly missingReturnYieldStar: "error";
|
|
147
|
-
readonly missingStarInYieldEffectGen: "error";
|
|
148
|
-
readonly multipleCatchTag: "suggestion";
|
|
149
|
-
readonly multipleEffectProvide: "warning";
|
|
150
|
-
readonly nestedEffectGenYield: "warning";
|
|
151
|
-
readonly newPromise: "warning";
|
|
152
|
-
readonly newSchemaClass: "warning";
|
|
153
|
-
readonly nodeBuiltinImport: "warning";
|
|
154
|
-
readonly outdatedApi: "warning";
|
|
155
|
-
readonly overriddenSchemaConstructor: "error";
|
|
156
|
-
readonly preferSchemaOverJson: "warning";
|
|
157
|
-
readonly processEnv: "warning";
|
|
158
|
-
readonly processEnvInEffect: "warning";
|
|
159
|
-
readonly redundantMapError: "suggestion";
|
|
160
|
-
readonly redundantOrDie: "suggestion";
|
|
161
|
-
readonly redundantSchemaTagIdentifier: "suggestion";
|
|
162
|
-
readonly returnEffectInGen: "suggestion";
|
|
163
|
-
readonly runEffectInsideEffect: "suggestion";
|
|
164
|
-
readonly schemaNumber: "suggestion";
|
|
165
|
-
readonly schemaStructWithTag: "suggestion";
|
|
166
|
-
readonly serviceNotAsClass: "warning";
|
|
167
|
-
readonly strictBooleanExpressions: "warning";
|
|
168
|
-
readonly strictEffectProvide: "warning";
|
|
169
|
-
readonly tryCatchInEffectGen: "suggestion";
|
|
170
|
-
readonly unknownInEffectCatch: "warning";
|
|
171
|
-
readonly unnecessaryArrowBlock: "warning";
|
|
172
|
-
readonly unnecessaryEffectGen: "suggestion";
|
|
173
|
-
readonly unnecessaryFailYieldableError: "suggestion";
|
|
174
|
-
readonly unnecessaryPipe: "suggestion";
|
|
175
|
-
readonly unnecessaryPipeChain: "suggestion";
|
|
176
|
-
readonly unnecessaryTypeofType: "suggestion";
|
|
177
|
-
readonly unsafeEffectTypeAssertion: "warning";
|
|
178
|
-
};
|
|
179
|
-
readonly barrelImportPackages: readonly ["effect"];
|
|
180
|
-
readonly topLevelNamedReexports: "follow";
|
|
181
|
-
readonly effectFn: readonly ["span"];
|
|
182
|
-
readonly keyPatterns: readonly [{
|
|
183
|
-
readonly target: "service";
|
|
184
|
-
readonly pattern: "default";
|
|
185
|
-
readonly skipLeadingPath: readonly ["src/"];
|
|
186
|
-
}, {
|
|
187
|
-
readonly target: "error";
|
|
188
|
-
readonly pattern: "default";
|
|
189
|
-
readonly skipLeadingPath: readonly ["src/"];
|
|
190
|
-
}, {
|
|
191
|
-
readonly target: "custom";
|
|
192
|
-
readonly pattern: "default";
|
|
193
|
-
readonly skipLeadingPath: readonly ["src/"];
|
|
194
|
-
}];
|
|
195
|
-
readonly extendedKeyDetection: true;
|
|
196
|
-
readonly layerGraphFollowDepth: 1;
|
|
197
|
-
readonly noExternal: true;
|
|
198
|
-
readonly inlays: true;
|
|
199
|
-
readonly allowedDuplicatedPackages: readonly [];
|
|
200
|
-
readonly pipeableMinArgCount: 2;
|
|
201
|
-
readonly includeSuggestionsInTsc: true;
|
|
202
|
-
readonly ignoreEffectSuggestionsInTscExitCode: false;
|
|
203
|
-
readonly ignoreEffectWarningsInTscExitCode: false;
|
|
204
|
-
readonly ignoreEffectErrorsInTscExitCode: false;
|
|
205
|
-
readonly name: "@effect/language-service";
|
|
206
|
-
readonly diagnostics: true;
|
|
207
|
-
};
|
|
208
|
-
export declare const requiredTsgoPolicyKeywords: readonly ["POLICY_NATIVE_BACKEND", "POLICY_DIAGNOSTIC_GATE", "POLICY_RULE_MAP", "POLICY_IMPORT_STYLE", "POLICY_OVERRIDES", "POLICY_SUPPRESSIONS", "POLICY_KEY_PATTERNS", "POLICY_LAYER_GRAPH", "POLICY_UPGRADE_LOOP", "VERIFIER_CONTRACT"];
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
export const expectedPackageBaseline = {
|
|
2
|
-
'effect': '4.0.0-beta.92',
|
|
3
|
-
'@effect/platform-node': '4.0.0-beta.92',
|
|
4
|
-
'@effect/vitest': '4.0.0-beta.92',
|
|
5
|
-
'@effect/tsgo': '0.15.0',
|
|
6
|
-
'@effect/language-service': '0.86.2',
|
|
7
|
-
'@typescript/native-preview': '7.0.0-dev.20260630.1',
|
|
8
|
-
'@antfu/eslint-config': '^9.0.0',
|
|
9
|
-
'eslint': '^10.3.0',
|
|
10
|
-
'vitest': '^4.1.8',
|
|
11
|
-
};
|
|
12
|
-
export const expectedEffectTsgoVersion = '0.15.0';
|
|
13
|
-
export const expectedPrepareCommand = 'effect-tsgo patch';
|
|
14
|
-
export const expectedTypecheckCommand = 'tsgo --noEmit';
|
|
15
|
-
export const strictDiagnosticSeverity = {
|
|
16
|
-
anyUnknownInErrorContext: 'error',
|
|
17
|
-
asyncFunction: 'warning',
|
|
18
|
-
catchAllToMapError: 'suggestion',
|
|
19
|
-
catchToOrElseSucceed: 'suggestion',
|
|
20
|
-
catchUnfailableEffect: 'suggestion',
|
|
21
|
-
classSelfMismatch: 'error',
|
|
22
|
-
cryptoRandomUUID: 'warning',
|
|
23
|
-
cryptoRandomUUIDInEffect: 'warning',
|
|
24
|
-
deterministicKeys: 'warning',
|
|
25
|
-
duplicatePackage: 'warning',
|
|
26
|
-
effectDoNotation: 'warning',
|
|
27
|
-
effectFnIife: 'warning',
|
|
28
|
-
effectFnImplicitAny: 'error',
|
|
29
|
-
effectFnOpportunity: 'suggestion',
|
|
30
|
-
effectGenUsesAdapter: 'warning',
|
|
31
|
-
effectInFailure: 'warning',
|
|
32
|
-
effectInVoidSuccess: 'warning',
|
|
33
|
-
effectMapFlatten: 'suggestion',
|
|
34
|
-
effectMapVoid: 'suggestion',
|
|
35
|
-
effectSucceedWithVoid: 'suggestion',
|
|
36
|
-
extendsNativeError: 'warning',
|
|
37
|
-
floatingEffect: 'error',
|
|
38
|
-
genericEffectServices: 'warning',
|
|
39
|
-
globalConsole: 'warning',
|
|
40
|
-
globalConsoleInEffect: 'warning',
|
|
41
|
-
globalDate: 'warning',
|
|
42
|
-
globalDateInEffect: 'warning',
|
|
43
|
-
globalErrorInEffectCatch: 'warning',
|
|
44
|
-
globalErrorInEffectFailure: 'warning',
|
|
45
|
-
globalFetch: 'warning',
|
|
46
|
-
globalFetchInEffect: 'warning',
|
|
47
|
-
globalRandom: 'warning',
|
|
48
|
-
globalRandomInEffect: 'warning',
|
|
49
|
-
globalTimers: 'warning',
|
|
50
|
-
globalTimersInEffect: 'warning',
|
|
51
|
-
instanceOfSchema: 'warning',
|
|
52
|
-
layerMergeAllWithDependencies: 'warning',
|
|
53
|
-
lazyEffect: 'suggestion',
|
|
54
|
-
lazyPromiseInEffectSync: 'warning',
|
|
55
|
-
leakingRequirements: 'suggestion',
|
|
56
|
-
missedPipeableOpportunity: 'warning',
|
|
57
|
-
missingEffectContext: 'error',
|
|
58
|
-
missingEffectError: 'error',
|
|
59
|
-
missingLayerContext: 'error',
|
|
60
|
-
missingReturnYieldStar: 'error',
|
|
61
|
-
missingStarInYieldEffectGen: 'error',
|
|
62
|
-
multipleCatchTag: 'suggestion',
|
|
63
|
-
multipleEffectProvide: 'warning',
|
|
64
|
-
nestedEffectGenYield: 'warning',
|
|
65
|
-
newPromise: 'warning',
|
|
66
|
-
newSchemaClass: 'warning',
|
|
67
|
-
nodeBuiltinImport: 'warning',
|
|
68
|
-
outdatedApi: 'warning',
|
|
69
|
-
overriddenSchemaConstructor: 'error',
|
|
70
|
-
preferSchemaOverJson: 'warning',
|
|
71
|
-
processEnv: 'warning',
|
|
72
|
-
processEnvInEffect: 'warning',
|
|
73
|
-
redundantMapError: 'suggestion',
|
|
74
|
-
redundantOrDie: 'suggestion',
|
|
75
|
-
redundantSchemaTagIdentifier: 'suggestion',
|
|
76
|
-
returnEffectInGen: 'suggestion',
|
|
77
|
-
runEffectInsideEffect: 'suggestion',
|
|
78
|
-
schemaNumber: 'suggestion',
|
|
79
|
-
schemaStructWithTag: 'suggestion',
|
|
80
|
-
serviceNotAsClass: 'warning',
|
|
81
|
-
strictBooleanExpressions: 'warning',
|
|
82
|
-
strictEffectProvide: 'warning',
|
|
83
|
-
tryCatchInEffectGen: 'suggestion',
|
|
84
|
-
unknownInEffectCatch: 'warning',
|
|
85
|
-
unnecessaryArrowBlock: 'warning',
|
|
86
|
-
unnecessaryEffectGen: 'suggestion',
|
|
87
|
-
unnecessaryFailYieldableError: 'suggestion',
|
|
88
|
-
unnecessaryPipe: 'suggestion',
|
|
89
|
-
unnecessaryPipeChain: 'suggestion',
|
|
90
|
-
unnecessaryTypeofType: 'suggestion',
|
|
91
|
-
unsafeEffectTypeAssertion: 'warning',
|
|
92
|
-
};
|
|
93
|
-
export const strictDiagnosticGate = {
|
|
94
|
-
includeSuggestionsInTsc: true,
|
|
95
|
-
ignoreEffectSuggestionsInTscExitCode: false,
|
|
96
|
-
ignoreEffectWarningsInTscExitCode: false,
|
|
97
|
-
ignoreEffectErrorsInTscExitCode: false,
|
|
98
|
-
};
|
|
99
|
-
export const strictLanguageServicePlugin = {
|
|
100
|
-
name: '@effect/language-service',
|
|
101
|
-
diagnostics: true,
|
|
102
|
-
...strictDiagnosticGate,
|
|
103
|
-
diagnosticSeverity: strictDiagnosticSeverity,
|
|
104
|
-
barrelImportPackages: ['effect'],
|
|
105
|
-
topLevelNamedReexports: 'follow',
|
|
106
|
-
effectFn: ['span'],
|
|
107
|
-
keyPatterns: [
|
|
108
|
-
{
|
|
109
|
-
target: 'service',
|
|
110
|
-
pattern: 'default',
|
|
111
|
-
skipLeadingPath: ['src/'],
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
target: 'error',
|
|
115
|
-
pattern: 'default',
|
|
116
|
-
skipLeadingPath: ['src/'],
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
target: 'custom',
|
|
120
|
-
pattern: 'default',
|
|
121
|
-
skipLeadingPath: ['src/'],
|
|
122
|
-
},
|
|
123
|
-
],
|
|
124
|
-
extendedKeyDetection: true,
|
|
125
|
-
layerGraphFollowDepth: 1,
|
|
126
|
-
noExternal: true,
|
|
127
|
-
inlays: true,
|
|
128
|
-
allowedDuplicatedPackages: [],
|
|
129
|
-
pipeableMinArgCount: 2,
|
|
130
|
-
};
|
|
131
|
-
export const requiredTsgoPolicyKeywords = [
|
|
132
|
-
'POLICY_NATIVE_BACKEND',
|
|
133
|
-
'POLICY_DIAGNOSTIC_GATE',
|
|
134
|
-
'POLICY_RULE_MAP',
|
|
135
|
-
'POLICY_IMPORT_STYLE',
|
|
136
|
-
'POLICY_OVERRIDES',
|
|
137
|
-
'POLICY_SUPPRESSIONS',
|
|
138
|
-
'POLICY_KEY_PATTERNS',
|
|
139
|
-
'POLICY_LAYER_GRAPH',
|
|
140
|
-
'POLICY_UPGRADE_LOOP',
|
|
141
|
-
'VERIFIER_CONTRACT',
|
|
142
|
-
];
|
|
143
|
-
//# sourceMappingURL=TsgoPolicy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TsgoPolicy.js","sourceRoot":"","sources":["../../../../src/harness/verify/TsgoPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["export type TsgoDiagnosticSeverity = 'error' | 'message' | 'suggestion' | 'warning'\n\nexport const expectedPackageBaseline = {\n 'effect': '4.0.0-beta.92',\n '@effect/platform-node': '4.0.0-beta.92',\n '@effect/vitest': '4.0.0-beta.92',\n '@effect/tsgo': '0.15.0',\n '@effect/language-service': '0.86.2',\n '@typescript/native-preview': '7.0.0-dev.20260630.1',\n '@antfu/eslint-config': '^9.0.0',\n 'eslint': '^10.3.0',\n 'vitest': '^4.1.8',\n} as const\n\nexport const expectedEffectTsgoVersion = '0.15.0'\nexport const expectedPrepareCommand = 'effect-tsgo patch'\nexport const expectedTypecheckCommand = 'tsgo --noEmit'\n\nexport const strictDiagnosticSeverity = {\n anyUnknownInErrorContext: 'error',\n asyncFunction: 'warning',\n catchAllToMapError: 'suggestion',\n catchToOrElseSucceed: 'suggestion',\n catchUnfailableEffect: 'suggestion',\n classSelfMismatch: 'error',\n cryptoRandomUUID: 'warning',\n cryptoRandomUUIDInEffect: 'warning',\n deterministicKeys: 'warning',\n duplicatePackage: 'warning',\n effectDoNotation: 'warning',\n effectFnIife: 'warning',\n effectFnImplicitAny: 'error',\n effectFnOpportunity: 'suggestion',\n effectGenUsesAdapter: 'warning',\n effectInFailure: 'warning',\n effectInVoidSuccess: 'warning',\n effectMapFlatten: 'suggestion',\n effectMapVoid: 'suggestion',\n effectSucceedWithVoid: 'suggestion',\n extendsNativeError: 'warning',\n floatingEffect: 'error',\n genericEffectServices: 'warning',\n globalConsole: 'warning',\n globalConsoleInEffect: 'warning',\n globalDate: 'warning',\n globalDateInEffect: 'warning',\n globalErrorInEffectCatch: 'warning',\n globalErrorInEffectFailure: 'warning',\n globalFetch: 'warning',\n globalFetchInEffect: 'warning',\n globalRandom: 'warning',\n globalRandomInEffect: 'warning',\n globalTimers: 'warning',\n globalTimersInEffect: 'warning',\n instanceOfSchema: 'warning',\n layerMergeAllWithDependencies: 'warning',\n lazyEffect: 'suggestion',\n lazyPromiseInEffectSync: 'warning',\n leakingRequirements: 'suggestion',\n missedPipeableOpportunity: 'warning',\n missingEffectContext: 'error',\n missingEffectError: 'error',\n missingLayerContext: 'error',\n missingReturnYieldStar: 'error',\n missingStarInYieldEffectGen: 'error',\n multipleCatchTag: 'suggestion',\n multipleEffectProvide: 'warning',\n nestedEffectGenYield: 'warning',\n newPromise: 'warning',\n newSchemaClass: 'warning',\n nodeBuiltinImport: 'warning',\n outdatedApi: 'warning',\n overriddenSchemaConstructor: 'error',\n preferSchemaOverJson: 'warning',\n processEnv: 'warning',\n processEnvInEffect: 'warning',\n redundantMapError: 'suggestion',\n redundantOrDie: 'suggestion',\n redundantSchemaTagIdentifier: 'suggestion',\n returnEffectInGen: 'suggestion',\n runEffectInsideEffect: 'suggestion',\n schemaNumber: 'suggestion',\n schemaStructWithTag: 'suggestion',\n serviceNotAsClass: 'warning',\n strictBooleanExpressions: 'warning',\n strictEffectProvide: 'warning',\n tryCatchInEffectGen: 'suggestion',\n unknownInEffectCatch: 'warning',\n unnecessaryArrowBlock: 'warning',\n unnecessaryEffectGen: 'suggestion',\n unnecessaryFailYieldableError: 'suggestion',\n unnecessaryPipe: 'suggestion',\n unnecessaryPipeChain: 'suggestion',\n unnecessaryTypeofType: 'suggestion',\n unsafeEffectTypeAssertion: 'warning',\n} as const satisfies Readonly<Record<string, TsgoDiagnosticSeverity>>\n\nexport const strictDiagnosticGate = {\n includeSuggestionsInTsc: true,\n ignoreEffectSuggestionsInTscExitCode: false,\n ignoreEffectWarningsInTscExitCode: false,\n ignoreEffectErrorsInTscExitCode: false,\n} as const\n\nexport const strictLanguageServicePlugin = {\n name: '@effect/language-service',\n diagnostics: true,\n ...strictDiagnosticGate,\n diagnosticSeverity: strictDiagnosticSeverity,\n barrelImportPackages: ['effect'],\n topLevelNamedReexports: 'follow',\n effectFn: ['span'],\n keyPatterns: [\n {\n target: 'service',\n pattern: 'default',\n skipLeadingPath: ['src/'],\n },\n {\n target: 'error',\n pattern: 'default',\n skipLeadingPath: ['src/'],\n },\n {\n target: 'custom',\n pattern: 'default',\n skipLeadingPath: ['src/'],\n },\n ],\n extendedKeyDetection: true,\n layerGraphFollowDepth: 1,\n noExternal: true,\n inlays: true,\n allowedDuplicatedPackages: [],\n pipeableMinArgCount: 2,\n} as const\n\nexport const requiredTsgoPolicyKeywords = [\n 'POLICY_NATIVE_BACKEND',\n 'POLICY_DIAGNOSTIC_GATE',\n 'POLICY_RULE_MAP',\n 'POLICY_IMPORT_STYLE',\n 'POLICY_OVERRIDES',\n 'POLICY_SUPPRESSIONS',\n 'POLICY_KEY_PATTERNS',\n 'POLICY_LAYER_GRAPH',\n 'POLICY_UPGRADE_LOOP',\n 'VERIFIER_CONTRACT',\n] as const\n"]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { Effect, FileSystem } from 'effect';
|
|
2
|
-
export declare const assertNoEffectDiagnosticSuppressions: (errors: string[], root: string) => Effect.Effect<void, import("../Errors.ts").ProcessError | import("effect/PlatformError").PlatformError, FileSystem.FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Effect, FileSystem } from 'effect';
|
|
2
|
-
import { commandLines } from "../../platform/Process.js";
|
|
3
|
-
const suppressionPattern = /(?:\/\/|\/\*)\s*@effect-diagnostics(?:-next-line)?\s+\S+:off/u;
|
|
4
|
-
const sourceExtensions = ['.js', '.jsx', '.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'];
|
|
5
|
-
function isOrdinarySource(file) {
|
|
6
|
-
return (file.startsWith('bin/')
|
|
7
|
-
|| file.startsWith('src/')
|
|
8
|
-
|| file.startsWith('tests/')) && sourceExtensions.some(extension => file.endsWith(extension));
|
|
9
|
-
}
|
|
10
|
-
export const assertNoEffectDiagnosticSuppressions = Effect.fnUntraced(function* (errors, root) {
|
|
11
|
-
const fs = yield* FileSystem.FileSystem;
|
|
12
|
-
const files = yield* commandLines('git', ['ls-files'], { cwd: root });
|
|
13
|
-
for (const file of files.filter(isOrdinarySource)) {
|
|
14
|
-
const path = `${root}/${file}`;
|
|
15
|
-
if (!(yield* fs.exists(path))) {
|
|
16
|
-
continue;
|
|
17
|
-
}
|
|
18
|
-
const text = yield* fs.readFileString(path);
|
|
19
|
-
if (suppressionPattern.test(text)) {
|
|
20
|
-
errors.push(`${file} must not disable Effect diagnostics with @effect-diagnostics ...:off.`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
//# sourceMappingURL=TsgoSuppressions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TsgoSuppressions.js","sourceRoot":"","sources":["../../../../src/harness/verify/TsgoSuppressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAExD,MAAM,kBAAkB,GAAG,+DAA+D,CAAA;AAC1F,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAU,CAAA;AAEhG,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,CACL,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;WACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;WACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC7B,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AACnE,CAAC;AAED,MAAM,CAAC,MAAM,oCAAoC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC7E,MAAqB,EACrB,IAAY;IAEZ,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;IAErE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,CAAA;QAC9B,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC9B,SAAQ;QACV,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC3C,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,wEAAwE,CAAC,CAAA;QAC9F,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAA","sourcesContent":["import { Effect, FileSystem } from 'effect'\nimport { commandLines } from '../../platform/Process.ts'\n\nconst suppressionPattern = /(?:\\/\\/|\\/\\*)\\s*@effect-diagnostics(?:-next-line)?\\s+\\S+:off/u\nconst sourceExtensions = ['.js', '.jsx', '.mjs', '.cjs', '.ts', '.tsx', '.mts', '.cts'] as const\n\nfunction isOrdinarySource(file: string): boolean {\n return (\n file.startsWith('bin/')\n || file.startsWith('src/')\n || file.startsWith('tests/')\n ) && sourceExtensions.some(extension => file.endsWith(extension))\n}\n\nexport const assertNoEffectDiagnosticSuppressions = Effect.fnUntraced(function* (\n errors: Array<string>,\n root: string,\n) {\n const fs = yield* FileSystem.FileSystem\n const files = yield* commandLines('git', ['ls-files'], { cwd: root })\n\n for (const file of files.filter(isOrdinarySource)) {\n const path = `${root}/${file}`\n if (!(yield* fs.exists(path))) {\n continue\n }\n\n const text = yield* fs.readFileString(path)\n if (suppressionPattern.test(text)) {\n errors.push(`${file} must not disable Effect diagnostics with @effect-diagnostics ...:off.`)\n }\n }\n})\n"]}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Schema } from 'effect';
|
|
2
|
-
export interface VerifyStageSpec {
|
|
3
|
-
readonly tag: VerifyStageTag;
|
|
4
|
-
readonly title: string;
|
|
5
|
-
readonly routes: ReadonlyArray<string>;
|
|
6
|
-
readonly summary: string;
|
|
7
|
-
readonly routeHint: string;
|
|
8
|
-
}
|
|
9
|
-
declare const VerifyStageTagSchema: Schema.Literals<readonly ["source-pins", "harness-contract", "tsgo-diagnostics", "tests", "lint", "knip"]>;
|
|
10
|
-
export type VerifyStageTag = typeof VerifyStageTagSchema.Type;
|
|
11
|
-
export declare const verifyStageSpecs: readonly [{
|
|
12
|
-
readonly tag: "source-pins";
|
|
13
|
-
readonly title: "Source Pins";
|
|
14
|
-
readonly routes: readonly ["harness/source.md"];
|
|
15
|
-
readonly summary: "Verify pinned GitHub subtree source entries.";
|
|
16
|
-
readonly routeHint: "Read the source-entry contract and fix Partita source pin drift.";
|
|
17
|
-
}, {
|
|
18
|
-
readonly tag: "harness-contract";
|
|
19
|
-
readonly title: "Harness Contract";
|
|
20
|
-
readonly routes: readonly ["harness/index.md", "harness/offcial-migrate.md", "harness/feedback-loop.md"];
|
|
21
|
-
readonly summary: "Verify the provider repository contract and current harness baseline.";
|
|
22
|
-
readonly routeHint: "Read the harness index, migrate notes, and feedback loop contract before changing verifier behavior.";
|
|
23
|
-
}, {
|
|
24
|
-
readonly tag: "tsgo-diagnostics";
|
|
25
|
-
readonly title: "Tsgo Diagnostics";
|
|
26
|
-
readonly routes: readonly ["harness/tsgo.md", "harness/tsgo-routes.md"];
|
|
27
|
-
readonly summary: "Run tsgo --noEmit and enforce zero Effect diagnostics.";
|
|
28
|
-
readonly routeHint: "Use the tsgo diagnostic output first; read the tsgo policy and routes only when the diagnostic is not enough.";
|
|
29
|
-
}, {
|
|
30
|
-
readonly tag: "tests";
|
|
31
|
-
readonly title: "Tests";
|
|
32
|
-
readonly routes: readonly ["harness/effect-routes.md"];
|
|
33
|
-
readonly summary: "Run the Effect test suite.";
|
|
34
|
-
readonly routeHint: "Read the Effect testing route and fix behavior through @effect/vitest patterns.";
|
|
35
|
-
}, {
|
|
36
|
-
readonly tag: "lint";
|
|
37
|
-
readonly title: "Lint";
|
|
38
|
-
readonly routes: readonly ["harness/diagnostic-layers.md", "AGENTS.md", "eslint.config.mjs"];
|
|
39
|
-
readonly summary: "Run ESLint with zero warnings.";
|
|
40
|
-
readonly routeHint: "Read the diagnostic layering contract, agent rules, and lint config, then fix repository boundary violations without duplicating tsgo semantics.";
|
|
41
|
-
}, {
|
|
42
|
-
readonly tag: "knip";
|
|
43
|
-
readonly title: "Knip";
|
|
44
|
-
readonly routes: readonly ["package.json"];
|
|
45
|
-
readonly summary: "Run knip and keep the package surface minimal.";
|
|
46
|
-
readonly routeHint: "Read package.json and source imports/exports, then remove unused package surface.";
|
|
47
|
-
}];
|
|
48
|
-
export declare const requiredFeedbackLoopKeywords: readonly ["BASELINE", "ROUTE_TABLE", "VERIFY_PIPELINE", ...string[], "DONE"];
|
|
49
|
-
declare const VerifyStageFailed_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
50
|
-
readonly _tag: "@sayoriqwq/effect-harness/harness/verify/VerifyStage/VerifyStageFailed";
|
|
51
|
-
} & Readonly<A>;
|
|
52
|
-
export declare class VerifyStageFailed extends VerifyStageFailed_base<{
|
|
53
|
-
readonly causeMessage: string;
|
|
54
|
-
readonly routeHint: string;
|
|
55
|
-
readonly routes: ReadonlyArray<string>;
|
|
56
|
-
readonly stageTag: VerifyStageTag;
|
|
57
|
-
readonly stageTitle: string;
|
|
58
|
-
}> {
|
|
59
|
-
get message(): string;
|
|
60
|
-
}
|
|
61
|
-
export declare function stageSpecByTag(tag: VerifyStageTag): VerifyStageSpec;
|
|
62
|
-
export {};
|