@agentxm/registry-protocol 0.28.11 → 0.28.13
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 +13 -5
- package/dist/src/unstable/human-handoff.d.ts +16 -0
- package/dist/src/unstable/human-handoff.js +19 -0
- package/dist/src/unstable/publish/index.d.ts +1 -6
- package/dist/src/unstable/publish/index.js +1 -6
- package/dist/src/unstable/publish-authorization.d.ts +26 -0
- package/dist/src/unstable/publish-authorization.js +41 -0
- package/dist/src/unstable/registry/discover-schema.d.ts +4 -4
- package/dist/src/unstable/registry/index.d.ts +1 -0
- package/dist/src/unstable/registry/index.js +1 -0
- package/dist/src/unstable/registry/version-selection.d.ts +22 -0
- package/dist/src/unstable/registry/version-selection.js +39 -0
- package/package.json +19 -190
- package/dist/src/unstable/content/agent-skills-standard.d.ts +0 -17
- package/dist/src/unstable/content/agent-skills-standard.js +0 -24
- package/dist/src/unstable/content/frontmatter.d.ts +0 -52
- package/dist/src/unstable/content/frontmatter.js +0 -115
- package/dist/src/unstable/content/index.d.ts +0 -11
- package/dist/src/unstable/content/index.js +0 -11
- package/dist/src/unstable/content/skill-content.d.ts +0 -43
- package/dist/src/unstable/content/skill-content.js +0 -184
- package/dist/src/unstable/content/skill-types.d.ts +0 -22
- package/dist/src/unstable/content/skill-types.js +0 -9
- package/dist/src/unstable/content/subagent-content.d.ts +0 -58
- package/dist/src/unstable/content/subagent-content.js +0 -101
- package/dist/src/unstable/knowledge/index.d.ts +0 -8
- package/dist/src/unstable/knowledge/index.js +0 -8
- package/dist/src/unstable/knowledge/knowledge-search.d.ts +0 -32
- package/dist/src/unstable/knowledge/knowledge-search.js +0 -147
- package/dist/src/unstable/knowledge/okf.d.ts +0 -86
- package/dist/src/unstable/knowledge/okf.js +0 -1090
- package/dist/src/unstable/lint/catalog/hook/decision-portability.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/hook/decision-portability.js +0 -40
- package/dist/src/unstable/lint/catalog/hook/entrypoint-exists.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/hook/entrypoint-exists.js +0 -39
- package/dist/src/unstable/lint/catalog/hook/envelope.d.ts +0 -6
- package/dist/src/unstable/lint/catalog/hook/envelope.js +0 -15
- package/dist/src/unstable/lint/catalog/hook/matcher-raw-portability.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/hook/matcher-raw-portability.js +0 -51
- package/dist/src/unstable/lint/catalog/hook.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/hook.js +0 -15
- package/dist/src/unstable/lint/catalog/knowledge/diagnostics.d.ts +0 -128
- package/dist/src/unstable/lint/catalog/knowledge/diagnostics.js +0 -78
- package/dist/src/unstable/lint/catalog/knowledge/envelope.d.ts +0 -6
- package/dist/src/unstable/lint/catalog/knowledge/envelope.js +0 -15
- package/dist/src/unstable/lint/catalog/knowledge.d.ts +0 -5
- package/dist/src/unstable/lint/catalog/knowledge.js +0 -9
- package/dist/src/unstable/lint/catalog/mcp-server/envelope.d.ts +0 -6
- package/dist/src/unstable/lint/catalog/mcp-server/envelope.js +0 -15
- package/dist/src/unstable/lint/catalog/mcp-server.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/mcp-server.js +0 -4
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.d.ts +0 -28
- package/dist/src/unstable/lint/catalog/pack/manifest-keys-recognized.js +0 -38
- package/dist/src/unstable/lint/catalog/pack/manifest-present.d.ts +0 -17
- package/dist/src/unstable/lint/catalog/pack/manifest-present.js +0 -24
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.d.ts +0 -25
- package/dist/src/unstable/lint/catalog/pack/manifest-schema-valid.js +0 -33
- package/dist/src/unstable/lint/catalog/pack-accessor/contexts.d.ts +0 -51
- package/dist/src/unstable/lint/catalog/pack-accessor/contexts.js +0 -45
- package/dist/src/unstable/lint/catalog/pack-accessor/vft.d.ts +0 -60
- package/dist/src/unstable/lint/catalog/pack-accessor/vft.js +0 -85
- package/dist/src/unstable/lint/catalog/pack.d.ts +0 -31
- package/dist/src/unstable/lint/catalog/pack.js +0 -36
- package/dist/src/unstable/lint/catalog/rule/envelope.d.ts +0 -6
- package/dist/src/unstable/lint/catalog/rule/envelope.js +0 -15
- package/dist/src/unstable/lint/catalog/rule.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/rule.js +0 -4
- package/dist/src/unstable/lint/catalog/shared/envelope-rules.d.ts +0 -88
- package/dist/src/unstable/lint/catalog/shared/envelope-rules.js +0 -84
- package/dist/src/unstable/lint/catalog/shared/manifest-json.d.ts +0 -18
- package/dist/src/unstable/lint/catalog/shared/manifest-json.js +0 -28
- package/dist/src/unstable/lint/catalog/shared/manifest-present.d.ts +0 -25
- package/dist/src/unstable/lint/catalog/shared/manifest-present.js +0 -37
- package/dist/src/unstable/lint/catalog/shared/recommended-packs-rules.d.ts +0 -70
- package/dist/src/unstable/lint/catalog/shared/recommended-packs-rules.js +0 -139
- package/dist/src/unstable/lint/catalog/shared/schema-rule.d.ts +0 -57
- package/dist/src/unstable/lint/catalog/shared/schema-rule.js +0 -102
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.d.ts +0 -31
- package/dist/src/unstable/lint/catalog/skill/frontmatter-parseable.js +0 -148
- package/dist/src/unstable/lint/catalog/skill/frontmatter-standard-valid.d.ts +0 -13
- package/dist/src/unstable/lint/catalog/skill/frontmatter-standard-valid.js +0 -61
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.d.ts +0 -26
- package/dist/src/unstable/lint/catalog/skill/manifest-keys-recognized.js +0 -41
- package/dist/src/unstable/lint/catalog/skill/manifest-present.d.ts +0 -23
- package/dist/src/unstable/lint/catalog/skill/manifest-present.js +0 -32
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.d.ts +0 -21
- package/dist/src/unstable/lint/catalog/skill/manifest-schema-valid.js +0 -36
- package/dist/src/unstable/lint/catalog/skill/recommended-packs-valid.d.ts +0 -8
- package/dist/src/unstable/lint/catalog/skill/recommended-packs-valid.js +0 -12
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.d.ts +0 -17
- package/dist/src/unstable/lint/catalog/skill/skill-md-present.js +0 -37
- package/dist/src/unstable/lint/catalog/skill/standalone-declaration-valid.d.ts +0 -8
- package/dist/src/unstable/lint/catalog/skill/standalone-declaration-valid.js +0 -12
- package/dist/src/unstable/lint/catalog/skill-accessor/contexts.d.ts +0 -61
- package/dist/src/unstable/lint/catalog/skill-accessor/contexts.js +0 -55
- package/dist/src/unstable/lint/catalog/skill-accessor/vft.d.ts +0 -77
- package/dist/src/unstable/lint/catalog/skill-accessor/vft.js +0 -135
- package/dist/src/unstable/lint/catalog/skill.d.ts +0 -38
- package/dist/src/unstable/lint/catalog/skill.js +0 -53
- package/dist/src/unstable/lint/catalog/subagent/envelope.d.ts +0 -6
- package/dist/src/unstable/lint/catalog/subagent/envelope.js +0 -15
- package/dist/src/unstable/lint/catalog/subagent.d.ts +0 -4
- package/dist/src/unstable/lint/catalog/subagent.js +0 -4
- package/dist/src/unstable/lint/catalog-metadata.d.ts +0 -125
- package/dist/src/unstable/lint/catalog-metadata.js +0 -642
- package/dist/src/unstable/lint/compose-path.d.ts +0 -28
- package/dist/src/unstable/lint/compose-path.js +0 -64
- package/dist/src/unstable/lint/config.d.ts +0 -77
- package/dist/src/unstable/lint/config.js +0 -99
- package/dist/src/unstable/lint/context.d.ts +0 -239
- package/dist/src/unstable/lint/context.js +0 -17
- package/dist/src/unstable/lint/describe-document.d.ts +0 -31
- package/dist/src/unstable/lint/describe-document.js +0 -50
- package/dist/src/unstable/lint/evaluate.d.ts +0 -47
- package/dist/src/unstable/lint/evaluate.js +0 -73
- package/dist/src/unstable/lint/issues-to-findings.d.ts +0 -35
- package/dist/src/unstable/lint/issues-to-findings.js +0 -149
- package/dist/src/unstable/lint/publish.d.ts +0 -49
- package/dist/src/unstable/lint/publish.js +0 -86
- package/dist/src/unstable/lint/rule.d.ts +0 -97
- package/dist/src/unstable/lint/rule.js +0 -17
- package/dist/src/unstable/publish/archive-guardrails.d.ts +0 -39
- package/dist/src/unstable/publish/archive-guardrails.js +0 -250
- package/dist/src/unstable/publish/filtered-package-validation.d.ts +0 -24
- package/dist/src/unstable/publish/filtered-package-validation.js +0 -117
- package/dist/src/unstable/publish/ingest-limits.d.ts +0 -25
- package/dist/src/unstable/publish/ingest-limits.js +0 -41
- package/dist/src/unstable/publish/input-normalization.d.ts +0 -40
- package/dist/src/unstable/publish/input-normalization.js +0 -125
- package/dist/src/unstable/publish/manifest-policy.d.ts +0 -611
- package/dist/src/unstable/publish/manifest-policy.js +0 -196
- package/dist/src/unstable/publish/test-zip-helpers.d.ts +0 -13
- package/dist/src/unstable/publish/test-zip-helpers.js +0 -117
- package/dist/src/unstable/registry/release-age-policy.d.ts +0 -57
- package/dist/src/unstable/registry/release-age-policy.js +0 -117
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `composePath` — render a display path from a rule context's `displayRoot`
|
|
3
|
-
* and a finding's accessor-relative `location.file`.
|
|
4
|
-
*
|
|
5
|
-
* Rules emit accessor-relative `location.file` values only; messages carry no
|
|
6
|
-
* paths or coordinates. The format-time composition here lets the same rule
|
|
7
|
-
* render different paths for publish (`displayRoot: ""`), registry-installed
|
|
8
|
-
* skills, external skills, and workspace-scope findings.
|
|
9
|
-
*
|
|
10
|
-
* Relative rendered paths are posix and prefixed with `./` so logs are
|
|
11
|
-
* unambiguous about relative-ness. Absolute finding paths are preserved for
|
|
12
|
-
* files outside the workspace root. `location.line` / `location.column`
|
|
13
|
-
* append as `:line:column` when present.
|
|
14
|
-
*
|
|
15
|
-
* @experimental This API is unstable and may change without notice.
|
|
16
|
-
* @packageDocumentation
|
|
17
|
-
*/
|
|
18
|
-
// -----------------------------------------------------------------------------
|
|
19
|
-
// composePath
|
|
20
|
-
// -----------------------------------------------------------------------------
|
|
21
|
-
/**
|
|
22
|
-
* Compose the rendered path for a finding.
|
|
23
|
-
*
|
|
24
|
-
* @param displayRoot - Context-supplied posix-relative root (or `""`).
|
|
25
|
-
* @param location - Accessor-relative or absolute file + optional coordinates.
|
|
26
|
-
*
|
|
27
|
-
* @experimental This API is unstable and may change without notice.
|
|
28
|
-
*/
|
|
29
|
-
export const composePath = (displayRoot, location) => {
|
|
30
|
-
const locationFile = location?.file ?? "";
|
|
31
|
-
const base = isAbsolutePath(locationFile) ? locationFile : joinPosix(displayRoot, locationFile);
|
|
32
|
-
const withPrefix = base === "" ? "." : isAbsolutePath(base) || base.startsWith("./") ? base : `./${base}`;
|
|
33
|
-
if (location === undefined) {
|
|
34
|
-
return withPrefix;
|
|
35
|
-
}
|
|
36
|
-
return appendCoordinates(withPrefix, location);
|
|
37
|
-
};
|
|
38
|
-
const isAbsolutePath = (value) => value.startsWith("/") || value.startsWith("\\\\") || /^[A-Za-z]:[\\/]/.test(value);
|
|
39
|
-
const joinPosix = (left, right) => {
|
|
40
|
-
const l = stripTrailingSlash(left);
|
|
41
|
-
const r = stripLeadingSlash(right);
|
|
42
|
-
if (l === "" && r === "") {
|
|
43
|
-
return "";
|
|
44
|
-
}
|
|
45
|
-
if (l === "") {
|
|
46
|
-
return r;
|
|
47
|
-
}
|
|
48
|
-
if (r === "") {
|
|
49
|
-
return l;
|
|
50
|
-
}
|
|
51
|
-
return `${l}/${r}`;
|
|
52
|
-
};
|
|
53
|
-
const stripTrailingSlash = (s) => (s.endsWith("/") ? s.slice(0, -1) : s);
|
|
54
|
-
const stripLeadingSlash = (s) => (s.startsWith("/") ? s.slice(1) : s);
|
|
55
|
-
const appendCoordinates = (path, location) => {
|
|
56
|
-
if (location.line === undefined) {
|
|
57
|
-
return path;
|
|
58
|
-
}
|
|
59
|
-
if (location.column === undefined) {
|
|
60
|
-
return `${path}:${location.line}`;
|
|
61
|
-
}
|
|
62
|
-
return `${path}:${location.line}:${location.column}`;
|
|
63
|
-
};
|
|
64
|
-
//# sourceMappingURL=compose-path.js.map
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `LintConfig` — workspace-settings-level lint configuration.
|
|
3
|
-
*
|
|
4
|
-
* Workspace settings carry a `lint` section whose `rules` map binds rule ids
|
|
5
|
-
* to `"off" | "info" | "warn" | "error"`. The registry publish
|
|
6
|
-
* gate ignores workspace overrides; this config affects `axm lint` only.
|
|
7
|
-
*
|
|
8
|
-
* Keys are **exact** rule ids (`<namespace>/<name>`). No glob, wildcard, or
|
|
9
|
-
* regex syntax is accepted. The accepted-key set comes from the static lint
|
|
10
|
-
* catalog metadata, so validation never depends on which executable catalog
|
|
11
|
-
* modules happened to be imported first.
|
|
12
|
-
*
|
|
13
|
-
* @experimental This API is unstable and may change without notice.
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import * as Schema from "effect/Schema";
|
|
17
|
-
/**
|
|
18
|
-
* Accepted values for a `lint.rules` entry.
|
|
19
|
-
*
|
|
20
|
-
* Note: `"warn"` is the config surface for `Severity` `"warning"`; mirror's
|
|
21
|
-
* ESLint convention. The evaluator treats `"warn"` as equivalent to `warning`
|
|
22
|
-
* severity; `"off"` suppresses emission.
|
|
23
|
-
*
|
|
24
|
-
* @experimental This API is unstable and may change without notice.
|
|
25
|
-
*/
|
|
26
|
-
export declare const LintRuleSeveritySchema: Schema.Literals<readonly ["off", "info", "warn", "error"]>;
|
|
27
|
-
/**
|
|
28
|
-
* Effective severity of a `lint.rules` entry.
|
|
29
|
-
*
|
|
30
|
-
* @experimental This API is unstable and may change without notice.
|
|
31
|
-
*/
|
|
32
|
-
export type LintRuleSeverity = Schema.Schema.Type<typeof LintRuleSeveritySchema>;
|
|
33
|
-
/**
|
|
34
|
-
* Record of `<namespace>/<name>` ids to severity overrides.
|
|
35
|
-
*
|
|
36
|
-
* Unknown / wildcard / regex keys are rejected at decode by the filter — the
|
|
37
|
-
* filter walks the decoded record's keys and checks every key against the
|
|
38
|
-
* registered rule-id set. Wildcard patterns like `"skill/*"` fail the filter
|
|
39
|
-
* because they are not registered ids.
|
|
40
|
-
*
|
|
41
|
-
* @experimental This API is unstable and may change without notice.
|
|
42
|
-
*/
|
|
43
|
-
export declare const LintRulesMapSchema: Schema.$Record<Schema.String, Schema.Literals<readonly ["off", "info", "warn", "error"]>>;
|
|
44
|
-
/**
|
|
45
|
-
* Inferred type for `LintRulesMap`.
|
|
46
|
-
*
|
|
47
|
-
* @experimental This API is unstable and may change without notice.
|
|
48
|
-
*/
|
|
49
|
-
export type LintRulesMap = Schema.Schema.Type<typeof LintRulesMapSchema>;
|
|
50
|
-
/**
|
|
51
|
-
* `lint` section of `axm.json`.
|
|
52
|
-
*
|
|
53
|
-
* Today only `rules` is defined; future fields (per-rule options, reporter
|
|
54
|
-
* selection) extend this struct. The schema rejects excess top-level keys so
|
|
55
|
-
* typos surface at decode.
|
|
56
|
-
*
|
|
57
|
-
* @experimental This API is unstable and may change without notice.
|
|
58
|
-
*/
|
|
59
|
-
export declare const LintConfigSchema: Schema.Struct<{
|
|
60
|
-
readonly rules: Schema.optionalKey<Schema.$Record<Schema.String, Schema.Literals<readonly ["off", "info", "warn", "error"]>>>;
|
|
61
|
-
}>;
|
|
62
|
-
/**
|
|
63
|
-
* Inferred type for `LintConfig`.
|
|
64
|
-
*
|
|
65
|
-
* @experimental This API is unstable and may change without notice.
|
|
66
|
-
*/
|
|
67
|
-
export type LintConfig = Schema.Schema.Type<typeof LintConfigSchema>;
|
|
68
|
-
/**
|
|
69
|
-
* The platform-canonical `LintConfig` — empty rules, no overrides.
|
|
70
|
-
*
|
|
71
|
-
* Registry publish uses this config; it carries no overrides so every rule
|
|
72
|
-
* fires at its catalog severity.
|
|
73
|
-
*
|
|
74
|
-
* @experimental This API is unstable and may change without notice.
|
|
75
|
-
*/
|
|
76
|
-
export declare const platformCanonicalLintConfig: LintConfig;
|
|
77
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `LintConfig` — workspace-settings-level lint configuration.
|
|
3
|
-
*
|
|
4
|
-
* Workspace settings carry a `lint` section whose `rules` map binds rule ids
|
|
5
|
-
* to `"off" | "info" | "warn" | "error"`. The registry publish
|
|
6
|
-
* gate ignores workspace overrides; this config affects `axm lint` only.
|
|
7
|
-
*
|
|
8
|
-
* Keys are **exact** rule ids (`<namespace>/<name>`). No glob, wildcard, or
|
|
9
|
-
* regex syntax is accepted. The accepted-key set comes from the static lint
|
|
10
|
-
* catalog metadata, so validation never depends on which executable catalog
|
|
11
|
-
* modules happened to be imported first.
|
|
12
|
-
*
|
|
13
|
-
* @experimental This API is unstable and may change without notice.
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import * as Schema from "effect/Schema";
|
|
17
|
-
import { allLintCatalogRuleIds } from "./catalog-metadata.js";
|
|
18
|
-
// -----------------------------------------------------------------------------
|
|
19
|
-
// Config value schema
|
|
20
|
-
// -----------------------------------------------------------------------------
|
|
21
|
-
/**
|
|
22
|
-
* Accepted values for a `lint.rules` entry.
|
|
23
|
-
*
|
|
24
|
-
* Note: `"warn"` is the config surface for `Severity` `"warning"`; mirror's
|
|
25
|
-
* ESLint convention. The evaluator treats `"warn"` as equivalent to `warning`
|
|
26
|
-
* severity; `"off"` suppresses emission.
|
|
27
|
-
*
|
|
28
|
-
* @experimental This API is unstable and may change without notice.
|
|
29
|
-
*/
|
|
30
|
-
export const LintRuleSeveritySchema = Schema.Literals(["off", "info", "warn", "error"]).annotate({
|
|
31
|
-
identifier: "LintRuleSeverity",
|
|
32
|
-
title: "Lint Rule Severity",
|
|
33
|
-
description: "Severity override for a lint rule: 'off' silences it, 'info'/'warn'/'error' raise or lower severity.",
|
|
34
|
-
});
|
|
35
|
-
const acceptedRuleIds = new Set(allLintCatalogRuleIds);
|
|
36
|
-
// -----------------------------------------------------------------------------
|
|
37
|
-
// Rules map schema
|
|
38
|
-
// -----------------------------------------------------------------------------
|
|
39
|
-
const ruleIdKeyFilter = Schema.makeFilter((input) => {
|
|
40
|
-
const invalid = [];
|
|
41
|
-
for (const key of Object.keys(input)) {
|
|
42
|
-
if (!acceptedRuleIds.has(key)) {
|
|
43
|
-
invalid.push(key);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
if (invalid.length === 0) {
|
|
47
|
-
return undefined;
|
|
48
|
-
}
|
|
49
|
-
return `Unknown lint rule IDs in lint.rules: ${invalid.join(", ")}. Keys must be exact <namespace>/<name> IDs; wildcards and globs are not supported.`;
|
|
50
|
-
});
|
|
51
|
-
/**
|
|
52
|
-
* Record of `<namespace>/<name>` ids to severity overrides.
|
|
53
|
-
*
|
|
54
|
-
* Unknown / wildcard / regex keys are rejected at decode by the filter — the
|
|
55
|
-
* filter walks the decoded record's keys and checks every key against the
|
|
56
|
-
* registered rule-id set. Wildcard patterns like `"skill/*"` fail the filter
|
|
57
|
-
* because they are not registered ids.
|
|
58
|
-
*
|
|
59
|
-
* @experimental This API is unstable and may change without notice.
|
|
60
|
-
*/
|
|
61
|
-
export const LintRulesMapSchema = Schema.Record(Schema.String, LintRuleSeveritySchema)
|
|
62
|
-
.annotate({
|
|
63
|
-
identifier: "LintRulesMap",
|
|
64
|
-
title: "Lint Rules Map",
|
|
65
|
-
description: "Map of exact <namespace>/<name> rule ids to severity overrides for `axm lint`.",
|
|
66
|
-
})
|
|
67
|
-
.check(ruleIdKeyFilter);
|
|
68
|
-
// -----------------------------------------------------------------------------
|
|
69
|
-
// LintConfig schema
|
|
70
|
-
// -----------------------------------------------------------------------------
|
|
71
|
-
/**
|
|
72
|
-
* `lint` section of `axm.json`.
|
|
73
|
-
*
|
|
74
|
-
* Today only `rules` is defined; future fields (per-rule options, reporter
|
|
75
|
-
* selection) extend this struct. The schema rejects excess top-level keys so
|
|
76
|
-
* typos surface at decode.
|
|
77
|
-
*
|
|
78
|
-
* @experimental This API is unstable and may change without notice.
|
|
79
|
-
*/
|
|
80
|
-
export const LintConfigSchema = Schema.Struct({
|
|
81
|
-
rules: Schema.optionalKey(LintRulesMapSchema.annotate({
|
|
82
|
-
description: "Exact lint rule ids mapped to severity overrides.",
|
|
83
|
-
examples: [{ "workspace/settings-schema-valid": "error" }],
|
|
84
|
-
})),
|
|
85
|
-
}).annotate({
|
|
86
|
-
identifier: "LintConfig",
|
|
87
|
-
title: "Lint Config",
|
|
88
|
-
description: "Lint configuration under `lint` in workspace settings.",
|
|
89
|
-
});
|
|
90
|
-
/**
|
|
91
|
-
* The platform-canonical `LintConfig` — empty rules, no overrides.
|
|
92
|
-
*
|
|
93
|
-
* Registry publish uses this config; it carries no overrides so every rule
|
|
94
|
-
* fires at its catalog severity.
|
|
95
|
-
*
|
|
96
|
-
* @experimental This API is unstable and may change without notice.
|
|
97
|
-
*/
|
|
98
|
-
export const platformCanonicalLintConfig = { rules: {} };
|
|
99
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule-context types and narrow accessors.
|
|
3
|
-
*
|
|
4
|
-
* Each rule-context type bundles a caller-decoded `subject` with a narrow
|
|
5
|
-
* caller-bound accessor and a `displayRoot` used for path rendering. Rules
|
|
6
|
-
* consume accessors as ordinary property access (no Layer wiring); tests pass
|
|
7
|
-
* literal fakes.
|
|
8
|
-
*
|
|
9
|
-
* Accessor surfaces are intentionally minimal — rules SHALL see only the
|
|
10
|
-
* methods the current catalog requires. Extend a surface only for a documented
|
|
11
|
-
* rule consumer.
|
|
12
|
-
*
|
|
13
|
-
* @experimental This API is unstable and may change without notice.
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
import type * as Effect from "effect/Effect";
|
|
17
|
-
import type { KnowledgeInspection } from "../knowledge/okf.js";
|
|
18
|
-
/**
|
|
19
|
-
* Tagged error surfaced by `SkillFileAccessor` / `PackFileAccessor` when a
|
|
20
|
-
* read fails for reasons other than "file not found" (which is represented
|
|
21
|
-
* by `exists -> false`).
|
|
22
|
-
*
|
|
23
|
-
* This interface fixes the error shape rules can rely on.
|
|
24
|
-
*
|
|
25
|
-
* @experimental This API is unstable and may change without notice.
|
|
26
|
-
*/
|
|
27
|
-
export interface FileAccessError {
|
|
28
|
-
readonly _tag: "FileAccessError";
|
|
29
|
-
/** Accessor-relative posix path that failed. */
|
|
30
|
-
readonly path: string;
|
|
31
|
-
/** Machine-readable reason. */
|
|
32
|
-
readonly reason: "path-escape" | "read-error" | "io-error";
|
|
33
|
-
/** Human-readable detail; no rendered display path. */
|
|
34
|
-
readonly message: string;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Narrow skill-rooted file accessor.
|
|
38
|
-
*
|
|
39
|
-
* Root is the directory containing `SKILL.md`. Paths are posix and relative
|
|
40
|
-
* to the root; implementations MUST reject path-traversal attempts (`..`,
|
|
41
|
-
* absolute paths, symlink escapes) by returning `false` from `exists` or
|
|
42
|
-
* failing `readBytes` with `FileAccessError { reason: "path-escape" }`.
|
|
43
|
-
*
|
|
44
|
-
* @experimental This API is unstable and may change without notice.
|
|
45
|
-
*/
|
|
46
|
-
export interface SkillFileAccessor {
|
|
47
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
48
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Narrow pack-rooted file accessor.
|
|
52
|
-
*
|
|
53
|
-
* Root is the directory containing `pack.json`. Same traversal
|
|
54
|
-
* constraints as `SkillFileAccessor`.
|
|
55
|
-
*
|
|
56
|
-
* @experimental This API is unstable and may change without notice.
|
|
57
|
-
*/
|
|
58
|
-
export interface PackFileAccessor {
|
|
59
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
60
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
61
|
-
}
|
|
62
|
-
export interface SubagentFileAccessor {
|
|
63
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
64
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
65
|
-
}
|
|
66
|
-
export interface McpServerFileAccessor {
|
|
67
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
68
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
69
|
-
}
|
|
70
|
-
export interface HookFileAccessor {
|
|
71
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
72
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
73
|
-
}
|
|
74
|
-
export interface RuleFileAccessor {
|
|
75
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
76
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
77
|
-
}
|
|
78
|
-
export interface KnowledgeFileAccessor {
|
|
79
|
-
readonly exists: (path: string) => Effect.Effect<boolean>;
|
|
80
|
-
readonly readBytes: (path: string) => Effect.Effect<Uint8Array, FileAccessError>;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Context passed to `skill/*` rules.
|
|
84
|
-
*
|
|
85
|
-
* `subject` is the caller-decoded skill content (SKILL.md frontmatter +
|
|
86
|
-
* optional skill.json).
|
|
87
|
-
*
|
|
88
|
-
* `displayRoot` is posix and relative; `""` means the accessor root is the
|
|
89
|
-
* rendering base. See `./compose-path.ts` for the four documented cases.
|
|
90
|
-
*
|
|
91
|
-
* @experimental This API is unstable and may change without notice.
|
|
92
|
-
*/
|
|
93
|
-
export interface SkillRuleContext<S = SkillContent> {
|
|
94
|
-
readonly subject: S;
|
|
95
|
-
/**
|
|
96
|
-
* Content-root accessor. Rooted at the directory containing `SKILL.md`.
|
|
97
|
-
* For native (registry-installed) skills this is the `src/` sub-directory
|
|
98
|
-
* of the package; for non-native skills it is the skill's own
|
|
99
|
-
* directory. Rules validating skill content (`skill-md-present`,
|
|
100
|
-
* `frontmatter-parseable`, and any future rule evaluating files that
|
|
101
|
-
* render into agent directories) read through this accessor.
|
|
102
|
-
*/
|
|
103
|
-
readonly files: SkillFileAccessor;
|
|
104
|
-
/**
|
|
105
|
-
* Package-root accessor. Rooted at the skill's package root —
|
|
106
|
-
* the directory containing `skill.json` for native skills. For non-native
|
|
107
|
-
* skills that have no package/content split, this MAY alias `files`.
|
|
108
|
-
* Rules validating package-shape concerns (`manifest-present` and any
|
|
109
|
-
* future rule inspecting files at or above the content root) read through
|
|
110
|
-
* this accessor.
|
|
111
|
-
*/
|
|
112
|
-
readonly packageFiles: SkillFileAccessor;
|
|
113
|
-
readonly displayRoot: string;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Concrete subject shape passed to `skill/*` rules.
|
|
117
|
-
*
|
|
118
|
-
* Rules read `SKILL.md` bytes through `context.files` (the authoritative
|
|
119
|
-
* source shared across publish and `axm lint`). The `subject` carries only
|
|
120
|
-
* what rules can't efficiently re-derive from bytes:
|
|
121
|
-
*
|
|
122
|
-
* - `isNative` — whether the caller expects this skill to carry a
|
|
123
|
-
* `skill.json` manifest. Native (registry-installed) skills set this to
|
|
124
|
-
* `true`; non-native (managed external) skills set it to `false`. Rules
|
|
125
|
-
* that depend on `skill.json` (`skill/manifest-present`,
|
|
126
|
-
* `skill/manifest-schema-valid`, `skill/manifest-keys-recognized`)
|
|
127
|
-
* early-return `[]` when `isNative === false`, so the same catalog covers
|
|
128
|
-
* both.
|
|
129
|
-
* - `skillJson` — the already-decoded `skill.json` contents when present
|
|
130
|
-
* (caller decodes once, rules don't re-read + re-parse). `undefined` when
|
|
131
|
-
* the file is absent. Schema-valid rules pipe this into
|
|
132
|
-
* `Schema.decodeUnknownResult(SkillManifestSchema)`; keys-recognized
|
|
133
|
-
* enumerates top-level keys after narrowing to `Record<string, unknown>`.
|
|
134
|
-
*
|
|
135
|
-
* Workspace consumers build `SkillContent` via `buildSkillRuleContexts`
|
|
136
|
-
* against the lint workspace view; publish builds one `SkillContent` per
|
|
137
|
-
* incoming archive.
|
|
138
|
-
*
|
|
139
|
-
* @experimental This API is unstable and may change without notice.
|
|
140
|
-
*/
|
|
141
|
-
export interface SkillContent {
|
|
142
|
-
readonly isNative: boolean;
|
|
143
|
-
readonly skillJson: unknown;
|
|
144
|
-
/** Agent-facing skill directory name used for the standard name-match check. */
|
|
145
|
-
readonly expectedName?: string;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Context passed to `pack/*` rules.
|
|
149
|
-
*
|
|
150
|
-
* `subject` is the caller-decoded pack content — concrete `PackContent` shape
|
|
151
|
-
* defined below. Packs are registry-only at v1 (no non-native arm), so the
|
|
152
|
-
* subject carries only the already-decoded manifest and rules read
|
|
153
|
-
* `pack.json` bytes through `context.files` as needed.
|
|
154
|
-
*
|
|
155
|
-
* @experimental This API is unstable and may change without notice.
|
|
156
|
-
*/
|
|
157
|
-
export interface PackRuleContext<S = PackContent> {
|
|
158
|
-
readonly subject: S;
|
|
159
|
-
readonly files: PackFileAccessor;
|
|
160
|
-
readonly displayRoot: string;
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* Concrete subject shape passed to `pack/*` rules.
|
|
164
|
-
*
|
|
165
|
-
* Rules read `pack.json` bytes through `context.files` (the
|
|
166
|
-
* authoritative source shared across publish and `axm lint`). The `subject`
|
|
167
|
-
* carries only what rules can't efficiently re-derive from bytes:
|
|
168
|
-
*
|
|
169
|
-
* - `packJson` — the already-decoded `pack.json` contents when
|
|
170
|
-
* present (caller decodes once, rules don't re-read + re-parse).
|
|
171
|
-
* `undefined` when the file is absent. Schema-valid rules pipe this into
|
|
172
|
-
* `Schema.decodeUnknownResult(PackManifestSchema)`;
|
|
173
|
-
* keys-recognized enumerates top-level keys after narrowing to
|
|
174
|
-
* `Record<string, unknown>`.
|
|
175
|
-
*
|
|
176
|
-
* Unlike `SkillContent`, there is no `isNative` discriminator — packs are
|
|
177
|
-
* registry-only and every pack context is expected to expose a manifest.
|
|
178
|
-
* The presence rule (`pack/manifest-present`) owns the absence arm.
|
|
179
|
-
*
|
|
180
|
-
* Workspace consumers build `PackContent` via `buildPackRuleContexts`
|
|
181
|
-
* against the lint workspace view; publish builds one `PackContent` per
|
|
182
|
-
* incoming archive.
|
|
183
|
-
*
|
|
184
|
-
* @experimental This API is unstable and may change without notice.
|
|
185
|
-
*/
|
|
186
|
-
export interface PackContent {
|
|
187
|
-
readonly packJson: unknown;
|
|
188
|
-
}
|
|
189
|
-
export interface SubagentRuleContext<S = SubagentContent> {
|
|
190
|
-
readonly subject: S;
|
|
191
|
-
readonly files: SubagentFileAccessor;
|
|
192
|
-
readonly displayRoot: string;
|
|
193
|
-
}
|
|
194
|
-
export interface SubagentContent {
|
|
195
|
-
readonly subagentJson: unknown;
|
|
196
|
-
}
|
|
197
|
-
export interface McpServerRuleContext<S = McpServerContent> {
|
|
198
|
-
readonly subject: S;
|
|
199
|
-
readonly files: McpServerFileAccessor;
|
|
200
|
-
readonly displayRoot: string;
|
|
201
|
-
}
|
|
202
|
-
export interface McpServerContent {
|
|
203
|
-
readonly mcpServerJson: unknown;
|
|
204
|
-
}
|
|
205
|
-
export interface HookRuleContext<S = HookContent> {
|
|
206
|
-
readonly subject: S;
|
|
207
|
-
readonly files: HookFileAccessor;
|
|
208
|
-
readonly displayRoot: string;
|
|
209
|
-
}
|
|
210
|
-
export interface HookContent {
|
|
211
|
-
readonly hookJson: unknown;
|
|
212
|
-
}
|
|
213
|
-
/**
|
|
214
|
-
* Context passed to `rule/*` rules.
|
|
215
|
-
*
|
|
216
|
-
* The doubled word is unavoidable: `rule` is an extension type and `rule` is
|
|
217
|
-
* also the lint primitive, so the context for the `rule` extension type is a
|
|
218
|
-
* `RuleRuleContext`. Every other name here follows `<Type>RuleContext`.
|
|
219
|
-
*/
|
|
220
|
-
export interface RuleRuleContext<S = RuleContent> {
|
|
221
|
-
readonly subject: S;
|
|
222
|
-
readonly files: RuleFileAccessor;
|
|
223
|
-
readonly displayRoot: string;
|
|
224
|
-
}
|
|
225
|
-
export interface RuleContent {
|
|
226
|
-
readonly ruleJson: unknown;
|
|
227
|
-
}
|
|
228
|
-
export interface KnowledgeRuleContext<S = KnowledgeContent> {
|
|
229
|
-
readonly subject: S;
|
|
230
|
-
readonly files: KnowledgeFileAccessor;
|
|
231
|
-
readonly displayRoot: string;
|
|
232
|
-
/** Absolute package root used once while constructing the cached inspection. */
|
|
233
|
-
readonly packageRoot?: string;
|
|
234
|
-
}
|
|
235
|
-
export interface KnowledgeContent {
|
|
236
|
-
readonly knowledgeJson: unknown;
|
|
237
|
-
readonly inspection?: KnowledgeInspection;
|
|
238
|
-
}
|
|
239
|
-
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Rule-context types and narrow accessors.
|
|
3
|
-
*
|
|
4
|
-
* Each rule-context type bundles a caller-decoded `subject` with a narrow
|
|
5
|
-
* caller-bound accessor and a `displayRoot` used for path rendering. Rules
|
|
6
|
-
* consume accessors as ordinary property access (no Layer wiring); tests pass
|
|
7
|
-
* literal fakes.
|
|
8
|
-
*
|
|
9
|
-
* Accessor surfaces are intentionally minimal — rules SHALL see only the
|
|
10
|
-
* methods the current catalog requires. Extend a surface only for a documented
|
|
11
|
-
* rule consumer.
|
|
12
|
-
*
|
|
13
|
-
* @experimental This API is unstable and may change without notice.
|
|
14
|
-
* @packageDocumentation
|
|
15
|
-
*/
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The one place lint turns a document filename into the human label that opens
|
|
3
|
-
* a finding message ("Skill manifest has unrecognized top-level field ...").
|
|
4
|
-
*
|
|
5
|
-
* Three copies of this switch used to exist — one in `issues-to-findings.ts`,
|
|
6
|
-
* one in `catalog/shared/schema-rule.ts`, one in
|
|
7
|
-
* `catalog/shared/manifest-json.ts` — and they had drifted: only one knew
|
|
8
|
-
* `hook.json`, none knew `rule.json` or `knowledge.json`, and the parse-failure
|
|
9
|
-
* copy defaulted to "Manifest" where the others defaulted to "Document".
|
|
10
|
-
*
|
|
11
|
-
* The manifest labels are derived from `MANIFEST_FILENAME_BY_TYPE` and
|
|
12
|
-
* `extensionTypeSentenceLabels`, both of which are total over `ExtensionType`,
|
|
13
|
-
* so a new extension type gets a label the moment its row lands in
|
|
14
|
-
* `EXTENSION_TYPE_TABLE`.
|
|
15
|
-
*
|
|
16
|
-
* @experimental This API is unstable and may change without notice.
|
|
17
|
-
* @packageDocumentation
|
|
18
|
-
*/
|
|
19
|
-
/** Label used when a filename matches no known document. */
|
|
20
|
-
export declare const UNKNOWN_DOCUMENT_LABEL = "Document";
|
|
21
|
-
/**
|
|
22
|
-
* Describe the document at `file` for use as the subject of a finding message.
|
|
23
|
-
*
|
|
24
|
-
* Keyed by basename, so both bare accessor-relative filenames (`hook.json`,
|
|
25
|
-
* as the per-extension rules pass) and workspace-relative paths
|
|
26
|
-
* (`axm.json`, as `issues-to-findings` passes) resolve.
|
|
27
|
-
*
|
|
28
|
-
* @experimental This API is unstable and may change without notice.
|
|
29
|
-
*/
|
|
30
|
-
export declare const describeSchemaDocument: (file: string) => string;
|
|
31
|
-
//# sourceMappingURL=describe-document.d.ts.map
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The one place lint turns a document filename into the human label that opens
|
|
3
|
-
* a finding message ("Skill manifest has unrecognized top-level field ...").
|
|
4
|
-
*
|
|
5
|
-
* Three copies of this switch used to exist — one in `issues-to-findings.ts`,
|
|
6
|
-
* one in `catalog/shared/schema-rule.ts`, one in
|
|
7
|
-
* `catalog/shared/manifest-json.ts` — and they had drifted: only one knew
|
|
8
|
-
* `hook.json`, none knew `rule.json` or `knowledge.json`, and the parse-failure
|
|
9
|
-
* copy defaulted to "Manifest" where the others defaulted to "Document".
|
|
10
|
-
*
|
|
11
|
-
* The manifest labels are derived from `MANIFEST_FILENAME_BY_TYPE` and
|
|
12
|
-
* `extensionTypeSentenceLabels`, both of which are total over `ExtensionType`,
|
|
13
|
-
* so a new extension type gets a label the moment its row lands in
|
|
14
|
-
* `EXTENSION_TYPE_TABLE`.
|
|
15
|
-
*
|
|
16
|
-
* @experimental This API is unstable and may change without notice.
|
|
17
|
-
* @packageDocumentation
|
|
18
|
-
*/
|
|
19
|
-
import { extensionTypeSentenceLabels, extensionTypes, } from "@agentxm/extension-model/unstable/extensions/common";
|
|
20
|
-
import { LOCKFILE_NAME } from "@agentxm/extension-model/unstable/workspace-files";
|
|
21
|
-
import { MANIFEST_FILENAME_BY_TYPE } from "../publish/manifest-policy.js";
|
|
22
|
-
import { SETTINGS_FILENAME } from "@agentxm/extension-model/unstable/workspace-files";
|
|
23
|
-
/** Label used when a filename matches no known document. */
|
|
24
|
-
export const UNKNOWN_DOCUMENT_LABEL = "Document";
|
|
25
|
-
const capitalizeFirst = (value) => value.length === 0 ? value : `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
|
|
26
|
-
// eslint-disable-next-line no-restricted-syntax -- Immutable lookup over the closed manifest filename vocabulary.
|
|
27
|
-
const documentLabels = new Map([
|
|
28
|
-
...extensionTypes.map((type) => [
|
|
29
|
-
MANIFEST_FILENAME_BY_TYPE[type],
|
|
30
|
-
`${capitalizeFirst(extensionTypeSentenceLabels[type])} manifest`,
|
|
31
|
-
]),
|
|
32
|
-
[SETTINGS_FILENAME, "Workspace settings"],
|
|
33
|
-
[LOCKFILE_NAME, "Lockfile"],
|
|
34
|
-
]);
|
|
35
|
-
const basename = (file) => {
|
|
36
|
-
const normalized = file.replace(/\\/g, "/");
|
|
37
|
-
const parts = normalized.split("/");
|
|
38
|
-
return parts[parts.length - 1] ?? normalized;
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* Describe the document at `file` for use as the subject of a finding message.
|
|
42
|
-
*
|
|
43
|
-
* Keyed by basename, so both bare accessor-relative filenames (`hook.json`,
|
|
44
|
-
* as the per-extension rules pass) and workspace-relative paths
|
|
45
|
-
* (`axm.json`, as `issues-to-findings` passes) resolve.
|
|
46
|
-
*
|
|
47
|
-
* @experimental This API is unstable and may change without notice.
|
|
48
|
-
*/
|
|
49
|
-
export const describeSchemaDocument = (file) => documentLabels.get(basename(file)) ?? UNKNOWN_DOCUMENT_LABEL;
|
|
50
|
-
//# sourceMappingURL=describe-document.js.map
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pure evaluator for the lint engine.
|
|
3
|
-
*
|
|
4
|
-
* `evaluateContexts(rules, contexts, config)` pairs each rule with each context,
|
|
5
|
-
* invokes `rule.check`, applies severity overrides from `config.rules`, and
|
|
6
|
-
* drops findings from rules configured `"off"`.
|
|
7
|
-
*
|
|
8
|
-
* Both functions are plain `Effect` values; neither requires a Layer or an
|
|
9
|
-
* ambient service. See the `lint-engine` design doc §3 for the rationale
|
|
10
|
-
* behind library primitives over a central engine service.
|
|
11
|
-
*
|
|
12
|
-
* @experimental This API is unstable and may change without notice.
|
|
13
|
-
* @packageDocumentation
|
|
14
|
-
*/
|
|
15
|
-
import * as Effect from "effect/Effect";
|
|
16
|
-
import type { LintConfig } from "./config.js";
|
|
17
|
-
import type { LintFinding, LintRule } from "./rule.js";
|
|
18
|
-
/**
|
|
19
|
-
* One `(rule, context, findings)` evaluation result.
|
|
20
|
-
*
|
|
21
|
-
* `findings` is emitted after severity overrides from `config.rules` have been
|
|
22
|
-
* applied; rule-level severity is the platform default, finding-level severity
|
|
23
|
-
* is the effective post-override severity.
|
|
24
|
-
*
|
|
25
|
-
* @experimental This API is unstable and may change without notice.
|
|
26
|
-
*/
|
|
27
|
-
export interface Evaluated<C> {
|
|
28
|
-
readonly rule: LintRule<C>;
|
|
29
|
-
readonly context: C;
|
|
30
|
-
readonly findings: ReadonlyArray<LintFinding>;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Pair each rule with each context, run `rule.check`, apply severity overrides
|
|
34
|
-
* from `config.rules`, and return one `Evaluated<C>` per pair.
|
|
35
|
-
*
|
|
36
|
-
* Findings whose configured severity is `"off"` are suppressed entirely; the
|
|
37
|
-
* `Evaluated` entry still ships (with an empty `findings` array) so consumers
|
|
38
|
-
* that group by rule still see the rule ran.
|
|
39
|
-
*
|
|
40
|
-
* Rules are evaluated in catalog order; contexts are evaluated in caller
|
|
41
|
-
* order. Rule-context invocation is sequential within a single
|
|
42
|
-
* `evaluateContexts` call so tests can observe deterministic ordering.
|
|
43
|
-
*
|
|
44
|
-
* @experimental This API is unstable and may change without notice.
|
|
45
|
-
*/
|
|
46
|
-
export declare const evaluateContexts: <C>(rules: ReadonlyArray<LintRule<C>>, contexts: ReadonlyArray<C>, config: LintConfig) => Effect.Effect<ReadonlyArray<Evaluated<C>>>;
|
|
47
|
-
//# sourceMappingURL=evaluate.d.ts.map
|