@timiagama/ecr 0.0.1 → 0.1.0
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/LICENSE +202 -0
- package/NOTICE +16 -0
- package/README.md +411 -7
- package/dist/bin.d.ts +20 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +26 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/corpus-loader.d.ts +198 -0
- package/dist/cli/corpus-loader.d.ts.map +1 -0
- package/dist/cli/corpus-loader.js +351 -0
- package/dist/cli/corpus-loader.js.map +1 -0
- package/dist/cli/corpus-statistics.d.ts +113 -0
- package/dist/cli/corpus-statistics.d.ts.map +1 -0
- package/dist/cli/corpus-statistics.js +119 -0
- package/dist/cli/corpus-statistics.js.map +1 -0
- package/dist/cli/diagnostic-reporter.d.ts +103 -0
- package/dist/cli/diagnostic-reporter.d.ts.map +1 -0
- package/dist/cli/diagnostic-reporter.js +254 -0
- package/dist/cli/diagnostic-reporter.js.map +1 -0
- package/dist/cli/project-ignore.d.ts +113 -0
- package/dist/cli/project-ignore.d.ts.map +1 -0
- package/dist/cli/project-ignore.js +199 -0
- package/dist/cli/project-ignore.js.map +1 -0
- package/dist/cli/safe-text.d.ts +25 -0
- package/dist/cli/safe-text.d.ts.map +1 -0
- package/dist/cli/safe-text.js +34 -0
- package/dist/cli/safe-text.js.map +1 -0
- package/dist/cli/supervisor.d.ts +108 -0
- package/dist/cli/supervisor.d.ts.map +1 -0
- package/dist/cli/supervisor.js +139 -0
- package/dist/cli/supervisor.js.map +1 -0
- package/dist/cli.d.ts +247 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +591 -0
- package/dist/cli.js.map +1 -0
- package/dist/corpus-validator.d.ts +183 -0
- package/dist/corpus-validator.d.ts.map +1 -0
- package/dist/corpus-validator.js +479 -0
- package/dist/corpus-validator.js.map +1 -0
- package/dist/document-identity-rule.d.ts +198 -0
- package/dist/document-identity-rule.d.ts.map +1 -0
- package/dist/document-identity-rule.js +244 -0
- package/dist/document-identity-rule.js.map +1 -0
- package/dist/ecr.d.ts +103 -0
- package/dist/ecr.d.ts.map +1 -0
- package/dist/ecr.js +216 -0
- package/dist/ecr.js.map +1 -0
- package/dist/glob-pattern.d.ts +94 -0
- package/dist/glob-pattern.d.ts.map +1 -0
- package/dist/glob-pattern.js +188 -0
- package/dist/glob-pattern.js.map +1 -0
- package/dist/heading-source-form.d.ts +77 -0
- package/dist/heading-source-form.d.ts.map +1 -0
- package/dist/heading-source-form.js +129 -0
- package/dist/heading-source-form.js.map +1 -0
- package/dist/identifier-grammar.d.ts +212 -0
- package/dist/identifier-grammar.d.ts.map +1 -0
- package/dist/identifier-grammar.js +273 -0
- package/dist/identifier-grammar.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/inline-reference-rule.d.ts +557 -0
- package/dist/inline-reference-rule.d.ts.map +1 -0
- package/dist/inline-reference-rule.js +802 -0
- package/dist/inline-reference-rule.js.map +1 -0
- package/dist/meta-documents.d.ts +91 -0
- package/dist/meta-documents.d.ts.map +1 -0
- package/dist/meta-documents.js +133 -0
- package/dist/meta-documents.js.map +1 -0
- package/dist/per-document-visitor.d.ts +510 -0
- package/dist/per-document-visitor.d.ts.map +1 -0
- package/dist/per-document-visitor.js +1032 -0
- package/dist/per-document-visitor.js.map +1 -0
- package/dist/references-section-rule.d.ts +482 -0
- package/dist/references-section-rule.d.ts.map +1 -0
- package/dist/references-section-rule.js +777 -0
- package/dist/references-section-rule.js.map +1 -0
- package/dist/section-hierarchy-rule.d.ts +299 -0
- package/dist/section-hierarchy-rule.d.ts.map +1 -0
- package/dist/section-hierarchy-rule.js +482 -0
- package/dist/section-hierarchy-rule.js.map +1 -0
- package/dist/source-alignment.d.ts +41 -0
- package/dist/source-alignment.d.ts.map +1 -0
- package/dist/source-alignment.js +166 -0
- package/dist/source-alignment.js.map +1 -0
- package/dist/source-lines.d.ts +69 -0
- package/dist/source-lines.d.ts.map +1 -0
- package/dist/source-lines.js +104 -0
- package/dist/source-lines.js.map +1 -0
- package/dist/spec-version.d.ts +19 -0
- package/dist/spec-version.d.ts.map +1 -0
- package/dist/spec-version.js +19 -0
- package/dist/spec-version.js.map +1 -0
- package/dist/types.d.ts +219 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/examples/docs/0. Orientation/0.0 - System Overview.md +34 -0
- package/examples/docs/0. Orientation/0.0.1 - Glossary.md +21 -0
- package/examples/docs/0. Orientation/0.0.2 - Quality Gates.md +22 -0
- package/examples/docs/3. Ingestion/3.1 - Ingestion - Validation Rules.md +33 -0
- package/examples/docs/4. Payments/4.10 - Settlement.md +22 -0
- package/examples/docs/4. Payments/4.2 - Payment Processing Contract.md +33 -0
- package/examples/docs/8. Orchestration/8.1 - Workflow Orchestration Contract.md +38 -0
- package/examples/docs/8. Orchestration/8.1.3 - Retry Policy.md +17 -0
- package/examples/docs/8. Orchestration/8.10 - Dead Letter Queue.md +20 -0
- package/examples/docs/README.md +7 -0
- package/package.json +65 -7
- package/protocol/navigation-protocol.md +223 -0
- package/spec/v2/1 - ECR - Structural Specification.md +1467 -0
- package/spec/v2/2 - ECR - User Guide.md +845 -0
- package/spec/v2/3 - Design Rationale - The Section Separator.md +243 -0
- package/src/bin.ts +30 -0
- package/src/cli/corpus-loader.ts +482 -0
- package/src/cli/corpus-statistics.ts +196 -0
- package/src/cli/diagnostic-reporter.ts +344 -0
- package/src/cli/project-ignore.ts +238 -0
- package/src/cli/safe-text.ts +39 -0
- package/src/cli/supervisor.ts +204 -0
- package/src/cli.ts +836 -0
- package/src/corpus-validator.ts +642 -0
- package/src/document-identity-rule.ts +422 -0
- package/src/ecr.ts +298 -0
- package/src/glob-pattern.ts +242 -0
- package/src/heading-source-form.ts +173 -0
- package/src/identifier-grammar.ts +380 -0
- package/src/index.ts +78 -0
- package/src/inline-reference-rule.ts +1235 -0
- package/src/meta-documents.ts +159 -0
- package/src/per-document-visitor.ts +1528 -0
- package/src/references-section-rule.ts +1182 -0
- package/src/section-hierarchy-rule.ts +705 -0
- package/src/source-alignment.ts +209 -0
- package/src/source-lines.ts +123 -0
- package/src/spec-version.ts +19 -0
- package/src/types.ts +267 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-reference-rule.js","sourceRoot":"","sources":["../src/inline-reference-rule.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meta-Document Filtering
|
|
3
|
+
*
|
|
4
|
+
* ECR governs *architectural* documents — those that carry a DocID and
|
|
5
|
+
* participate in the reference graph. A corpus also contains documents that
|
|
6
|
+
* deliberately sit outside that graph: READMEs, agent instruction files,
|
|
7
|
+
* contributing guides, changelogs and licences. These have no DocID by design
|
|
8
|
+
* and must not be reported as structurally invalid.
|
|
9
|
+
*
|
|
10
|
+
* File discovery is the host's responsibility (spec 1#3.2), so this module is
|
|
11
|
+
* offered for hosts to apply when assembling a corpus rather than being
|
|
12
|
+
* enforced inside the rules themselves.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Filenames that are conventionally outside the ECR reference graph.
|
|
16
|
+
*
|
|
17
|
+
* Matching is case-insensitive and ignores the file extension, so `README.md`,
|
|
18
|
+
* `readme.MD` and `Readme` are all treated alike.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_META_DOCUMENT_NAMES: readonly string[];
|
|
21
|
+
/**
|
|
22
|
+
* Decides which documents in a corpus are meta-documents and therefore exempt
|
|
23
|
+
* from ECR structural validation.
|
|
24
|
+
*
|
|
25
|
+
* A document is exempt when its filename matches a known meta-document name, or
|
|
26
|
+
* when its path matches one of the caller-supplied ignore patterns.
|
|
27
|
+
*
|
|
28
|
+
* Ignore patterns use a minimal glob syntax: `*` matches any run of characters
|
|
29
|
+
* except `/`, and `**` matches any run of characters including `/`. Patterns are
|
|
30
|
+
* matched against the document's corpus-relative path using forward slashes.
|
|
31
|
+
*/
|
|
32
|
+
export declare class MetaDocumentFilter {
|
|
33
|
+
/** Lower-cased filenames treated as meta-documents. */
|
|
34
|
+
private readonly metaDocumentNames;
|
|
35
|
+
/** Compiled ignore patterns supplied by the caller. */
|
|
36
|
+
private readonly ignorePatterns;
|
|
37
|
+
/**
|
|
38
|
+
* Compiled directory parts of the ignore patterns that exclude everything
|
|
39
|
+
* beneath a directory: those ending in slash-double-star, and `**` itself.
|
|
40
|
+
*/
|
|
41
|
+
private readonly ignoredDirectoryPatterns;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a filter.
|
|
44
|
+
*
|
|
45
|
+
* @param ignorePatterns - Additional glob patterns to exclude, matched against the corpus-relative path
|
|
46
|
+
* @param metaDocumentNames - Filenames treated as meta-documents; defaults to {@link DEFAULT_META_DOCUMENT_NAMES}
|
|
47
|
+
*/
|
|
48
|
+
constructor(ignorePatterns?: readonly string[], metaDocumentNames?: readonly string[]);
|
|
49
|
+
/**
|
|
50
|
+
* Determines whether a document should be excluded from ECR validation.
|
|
51
|
+
*
|
|
52
|
+
* @param corpusRelativePath - The document's path relative to the corpus root, using forward slashes
|
|
53
|
+
* @returns `true` when the document is a meta-document or matches an ignore pattern
|
|
54
|
+
*/
|
|
55
|
+
shouldExclude(corpusRelativePath: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Determines whether a path names a conventional meta-document.
|
|
58
|
+
*
|
|
59
|
+
* @param corpusRelativePath - The document's path relative to the corpus root
|
|
60
|
+
* @returns `true` when the filename, without extension, is a known meta-document name
|
|
61
|
+
*/
|
|
62
|
+
isMetaDocument(corpusRelativePath: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Determines whether a path matches any caller-supplied ignore pattern.
|
|
65
|
+
*
|
|
66
|
+
* @param corpusRelativePath - The document's path relative to the corpus root
|
|
67
|
+
* @returns `true` when at least one ignore pattern matches
|
|
68
|
+
*/
|
|
69
|
+
matchesIgnorePattern(corpusRelativePath: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Determines whether an ignore pattern excludes every path beneath a
|
|
72
|
+
* directory, so that the directory need not be walked at all.
|
|
73
|
+
*
|
|
74
|
+
* Only a pattern ending in slash-double-star (or `**` alone) says so: `vendor/**`
|
|
75
|
+
* excludes all of `vendor`, but `vendor/*` excludes only the files directly
|
|
76
|
+
* inside it, so `vendor` must still be walked for `vendor/a/b.md`.
|
|
77
|
+
*
|
|
78
|
+
* @param corpusRelativeDirectory - The directory's path relative to the corpus root, using forward slashes, without a trailing slash
|
|
79
|
+
* @returns `true` when no path beneath the directory could be included
|
|
80
|
+
*/
|
|
81
|
+
excludesDirectory(corpusRelativeDirectory: string): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Reads the directory part of an ignore pattern that excludes a whole
|
|
84
|
+
* directory.
|
|
85
|
+
*
|
|
86
|
+
* @param pattern - An ignore pattern
|
|
87
|
+
* @returns The pattern for the excluded directories, or `undefined` when the pattern does not exclude whole directories
|
|
88
|
+
*/
|
|
89
|
+
private static readIgnoredDirectory;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=meta-documents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-documents.d.ts","sourceRoot":"","sources":["../src/meta-documents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,SAAS,MAAM,EAgBxD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,qBAAa,kBAAkB;IAC7B,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IAExD,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyB;IAExD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAyB;IAElE;;;;;OAKG;gBAED,cAAc,GAAE,SAAS,MAAM,EAAO,EACtC,iBAAiB,GAAE,SAAS,MAAM,EAAgC;IAcpE;;;;;OAKG;IACI,aAAa,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAOzD;;;;;OAKG;IACI,cAAc,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAU1D;;;;;OAKG;IACI,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,GAAG,OAAO;IAMhE;;;;;;;;;;OAUG;IACI,iBAAiB,CAAC,uBAAuB,EAAE,MAAM,GAAG,OAAO;IAMlE;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAOpC"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meta-Document Filtering
|
|
3
|
+
*
|
|
4
|
+
* ECR governs *architectural* documents — those that carry a DocID and
|
|
5
|
+
* participate in the reference graph. A corpus also contains documents that
|
|
6
|
+
* deliberately sit outside that graph: READMEs, agent instruction files,
|
|
7
|
+
* contributing guides, changelogs and licences. These have no DocID by design
|
|
8
|
+
* and must not be reported as structurally invalid.
|
|
9
|
+
*
|
|
10
|
+
* File discovery is the host's responsibility (spec 1#3.2), so this module is
|
|
11
|
+
* offered for hosts to apply when assembling a corpus rather than being
|
|
12
|
+
* enforced inside the rules themselves.
|
|
13
|
+
*/
|
|
14
|
+
import { GlobPattern } from './glob-pattern.js';
|
|
15
|
+
/**
|
|
16
|
+
* Filenames that are conventionally outside the ECR reference graph.
|
|
17
|
+
*
|
|
18
|
+
* Matching is case-insensitive and ignores the file extension, so `README.md`,
|
|
19
|
+
* `readme.MD` and `Readme` are all treated alike.
|
|
20
|
+
*/
|
|
21
|
+
export const DEFAULT_META_DOCUMENT_NAMES = [
|
|
22
|
+
// The name `ecr init` once gave the navigation protocol when it wrote it into
|
|
23
|
+
// a corpus. The protocol carries no DocID by design, so a copy kept in a
|
|
24
|
+
// corpus under that name must not be reported as an invalid document.
|
|
25
|
+
'ecr-navigation-protocol',
|
|
26
|
+
'readme',
|
|
27
|
+
'claude',
|
|
28
|
+
'agents',
|
|
29
|
+
'contributing',
|
|
30
|
+
'changelog',
|
|
31
|
+
'license',
|
|
32
|
+
'licence',
|
|
33
|
+
'code_of_conduct',
|
|
34
|
+
'security',
|
|
35
|
+
'authors',
|
|
36
|
+
'notice',
|
|
37
|
+
];
|
|
38
|
+
/**
|
|
39
|
+
* Decides which documents in a corpus are meta-documents and therefore exempt
|
|
40
|
+
* from ECR structural validation.
|
|
41
|
+
*
|
|
42
|
+
* A document is exempt when its filename matches a known meta-document name, or
|
|
43
|
+
* when its path matches one of the caller-supplied ignore patterns.
|
|
44
|
+
*
|
|
45
|
+
* Ignore patterns use a minimal glob syntax: `*` matches any run of characters
|
|
46
|
+
* except `/`, and `**` matches any run of characters including `/`. Patterns are
|
|
47
|
+
* matched against the document's corpus-relative path using forward slashes.
|
|
48
|
+
*/
|
|
49
|
+
export class MetaDocumentFilter {
|
|
50
|
+
/** Lower-cased filenames treated as meta-documents. */
|
|
51
|
+
metaDocumentNames;
|
|
52
|
+
/** Compiled ignore patterns supplied by the caller. */
|
|
53
|
+
ignorePatterns;
|
|
54
|
+
/**
|
|
55
|
+
* Compiled directory parts of the ignore patterns that exclude everything
|
|
56
|
+
* beneath a directory: those ending in slash-double-star, and `**` itself.
|
|
57
|
+
*/
|
|
58
|
+
ignoredDirectoryPatterns;
|
|
59
|
+
/**
|
|
60
|
+
* Creates a filter.
|
|
61
|
+
*
|
|
62
|
+
* @param ignorePatterns - Additional glob patterns to exclude, matched against the corpus-relative path
|
|
63
|
+
* @param metaDocumentNames - Filenames treated as meta-documents; defaults to {@link DEFAULT_META_DOCUMENT_NAMES}
|
|
64
|
+
*/
|
|
65
|
+
constructor(ignorePatterns = [], metaDocumentNames = DEFAULT_META_DOCUMENT_NAMES) {
|
|
66
|
+
this.metaDocumentNames = new Set(metaDocumentNames.map((name) => name.toLowerCase()));
|
|
67
|
+
this.ignorePatterns = ignorePatterns.map((pattern) => new GlobPattern(pattern));
|
|
68
|
+
this.ignoredDirectoryPatterns = ignorePatterns
|
|
69
|
+
.map((pattern) => MetaDocumentFilter.readIgnoredDirectory(pattern))
|
|
70
|
+
.filter((directory) => directory !== undefined)
|
|
71
|
+
.map((directory) => new GlobPattern(directory));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Determines whether a document should be excluded from ECR validation.
|
|
75
|
+
*
|
|
76
|
+
* @param corpusRelativePath - The document's path relative to the corpus root, using forward slashes
|
|
77
|
+
* @returns `true` when the document is a meta-document or matches an ignore pattern
|
|
78
|
+
*/
|
|
79
|
+
shouldExclude(corpusRelativePath) {
|
|
80
|
+
return (this.isMetaDocument(corpusRelativePath) ||
|
|
81
|
+
this.matchesIgnorePattern(corpusRelativePath));
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Determines whether a path names a conventional meta-document.
|
|
85
|
+
*
|
|
86
|
+
* @param corpusRelativePath - The document's path relative to the corpus root
|
|
87
|
+
* @returns `true` when the filename, without extension, is a known meta-document name
|
|
88
|
+
*/
|
|
89
|
+
isMetaDocument(corpusRelativePath) {
|
|
90
|
+
const lastSlashIndex = corpusRelativePath.lastIndexOf('/');
|
|
91
|
+
const fileName = corpusRelativePath.substring(lastSlashIndex + 1);
|
|
92
|
+
const lastDotIndex = fileName.lastIndexOf('.');
|
|
93
|
+
const baseName = lastDotIndex > 0 ? fileName.substring(0, lastDotIndex) : fileName;
|
|
94
|
+
return this.metaDocumentNames.has(baseName.toLowerCase());
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Determines whether a path matches any caller-supplied ignore pattern.
|
|
98
|
+
*
|
|
99
|
+
* @param corpusRelativePath - The document's path relative to the corpus root
|
|
100
|
+
* @returns `true` when at least one ignore pattern matches
|
|
101
|
+
*/
|
|
102
|
+
matchesIgnorePattern(corpusRelativePath) {
|
|
103
|
+
return this.ignorePatterns.some((pattern) => pattern.matches(corpusRelativePath));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Determines whether an ignore pattern excludes every path beneath a
|
|
107
|
+
* directory, so that the directory need not be walked at all.
|
|
108
|
+
*
|
|
109
|
+
* Only a pattern ending in slash-double-star (or `**` alone) says so: `vendor/**`
|
|
110
|
+
* excludes all of `vendor`, but `vendor/*` excludes only the files directly
|
|
111
|
+
* inside it, so `vendor` must still be walked for `vendor/a/b.md`.
|
|
112
|
+
*
|
|
113
|
+
* @param corpusRelativeDirectory - The directory's path relative to the corpus root, using forward slashes, without a trailing slash
|
|
114
|
+
* @returns `true` when no path beneath the directory could be included
|
|
115
|
+
*/
|
|
116
|
+
excludesDirectory(corpusRelativeDirectory) {
|
|
117
|
+
return this.ignoredDirectoryPatterns.some((pattern) => pattern.matches(corpusRelativeDirectory));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Reads the directory part of an ignore pattern that excludes a whole
|
|
121
|
+
* directory.
|
|
122
|
+
*
|
|
123
|
+
* @param pattern - An ignore pattern
|
|
124
|
+
* @returns The pattern for the excluded directories, or `undefined` when the pattern does not exclude whole directories
|
|
125
|
+
*/
|
|
126
|
+
static readIgnoredDirectory(pattern) {
|
|
127
|
+
if (pattern === '**') {
|
|
128
|
+
return pattern;
|
|
129
|
+
}
|
|
130
|
+
return pattern.endsWith('/**') ? pattern.slice(0, -'/**'.length) : undefined;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=meta-documents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-documents.js","sourceRoot":"","sources":["../src/meta-documents.ts"],"names":[],"mappings":"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"}
|