@agent-teams/engineering-foundation 0.2.0 → 0.3.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/README.md +6 -2
- package/dist/capabilities/source-dependencies/adapters/outbound/filesystem/filesystem-source-tree-reader.d.ts +6 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/filesystem/filesystem-source-tree-reader.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/filesystem/filesystem-source-tree-reader.js +133 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/filesystem/filesystem-source-tree-reader.js.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.d.ts +6 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.js +151 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/node/node-source-dependency-resolver.js.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.d.ts +6 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.js +96 -0
- package/dist/capabilities/source-dependencies/adapters/outbound/oxc/oxc-source-dependency-parser.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts +69 -0
- package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/model/source-workspace.js +13 -0
- package/dist/capabilities/source-dependencies/application/model/source-workspace.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.d.ts +14 -0
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.js +223 -0
- package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.d.ts +5 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.js +2 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-parser.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.d.ts +12 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.js +2 -0
- package/dist/capabilities/source-dependencies/application/ports/source-dependency-resolver.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-tree-reader.d.ts +5 -0
- package/dist/capabilities/source-dependencies/application/ports/source-tree-reader.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/ports/source-tree-reader.js +2 -0
- package/dist/capabilities/source-dependencies/application/ports/source-tree-reader.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/rules.d.ts +26 -0
- package/dist/capabilities/source-dependencies/application/rules.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/rules.js +27 -0
- package/dist/capabilities/source-dependencies/application/rules.js.map +1 -0
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.d.ts +19 -0
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.js +69 -0
- package/dist/capabilities/source-dependencies/application/use-cases/analyze-source-dependencies.js.map +1 -0
- package/dist/capabilities/source-dependencies/contract/config.d.ts +5 -0
- package/dist/capabilities/source-dependencies/contract/config.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/contract/config.js +108 -0
- package/dist/capabilities/source-dependencies/contract/config.js.map +1 -0
- package/dist/capabilities/source-dependencies/module.d.ts +5 -0
- package/dist/capabilities/source-dependencies/module.d.ts.map +1 -0
- package/dist/capabilities/source-dependencies/module.js +61 -0
- package/dist/capabilities/source-dependencies/module.js.map +1 -0
- package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.d.ts +2 -1
- package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.d.ts.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js +4 -195
- package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.d.ts +6 -0
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.d.ts.map +1 -0
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.js +2 -0
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-dependency-policy.js.map +1 -0
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.d.ts +1 -26
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.d.ts.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.js +1 -6
- package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.js.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.d.ts +2 -2
- package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.d.ts.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.js +6 -6
- package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.js.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/application/ports/workspace-reader.d.ts +1 -1
- package/dist/capabilities/workspace-dependency-declarations/application/ports/workspace-reader.d.ts.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/contract/config.d.ts +6 -15
- package/dist/capabilities/workspace-dependency-declarations/contract/config.d.ts.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/contract/config.js +16 -1
- package/dist/capabilities/workspace-dependency-declarations/contract/config.js.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/module.d.ts +2 -0
- package/dist/capabilities/workspace-dependency-declarations/module.d.ts.map +1 -1
- package/dist/capabilities/workspace-dependency-declarations/module.js +4 -2
- package/dist/capabilities/workspace-dependency-declarations/module.js.map +1 -1
- package/dist/capability-runtime.d.ts +1 -5
- package/dist/capability-runtime.d.ts.map +1 -1
- package/dist/capability-runtime.js +4 -4
- package/dist/capability-runtime.js.map +1 -1
- package/dist/check-contract.d.ts +3 -2
- package/dist/check-contract.d.ts.map +1 -1
- package/dist/check-runner.d.ts +0 -2
- package/dist/check-runner.d.ts.map +1 -1
- package/dist/check-runner.js +5 -11
- package/dist/check-runner.js.map +1 -1
- package/dist/cli.js +46 -13
- package/dist/cli.js.map +1 -1
- package/dist/composition/capability-registry.d.ts.map +1 -1
- package/dist/composition/capability-registry.js +2 -0
- package/dist/composition/capability-registry.js.map +1 -1
- package/dist/composition/rule-registry.d.ts +8 -0
- package/dist/composition/rule-registry.d.ts.map +1 -0
- package/dist/composition/rule-registry.js +7 -0
- package/dist/composition/rule-registry.js.map +1 -0
- package/dist/filesystem-path-safety.d.ts +2 -0
- package/dist/filesystem-path-safety.d.ts.map +1 -0
- package/dist/filesystem-path-safety.js +19 -0
- package/dist/filesystem-path-safety.js.map +1 -0
- package/dist/foundation-config.d.ts +11 -13
- package/dist/foundation-config.d.ts.map +1 -1
- package/dist/foundation-config.js +52 -3
- package/dist/foundation-config.js.map +1 -1
- package/dist/local-mode/adapters/outbound/time/system-clock.d.ts +2 -0
- package/dist/local-mode/adapters/outbound/time/system-clock.d.ts.map +1 -0
- package/dist/local-mode/adapters/outbound/time/system-clock.js +4 -0
- package/dist/local-mode/adapters/outbound/time/system-clock.js.map +1 -0
- package/dist/local-mode/consumer-policy.js +1 -1
- package/dist/local-mode/consumer-policy.js.map +1 -1
- package/dist/local-mode/service.d.ts +1 -1
- package/dist/local-mode/service.d.ts.map +1 -1
- package/dist/local-mode/service.js +1 -1
- package/dist/local-mode/service.js.map +1 -1
- package/dist/package-self-check.d.ts +1 -0
- package/dist/package-self-check.d.ts.map +1 -1
- package/dist/package-self-check.js +25 -20
- package/dist/package-self-check.js.map +1 -1
- package/dist/schema-catalog.d.ts +2 -2
- package/dist/schema-catalog.d.ts.map +1 -1
- package/dist/schema-catalog.js +3 -2
- package/dist/schema-catalog.js.map +1 -1
- package/dist/strict-yaml.d.ts +0 -2
- package/dist/strict-yaml.d.ts.map +1 -1
- package/dist/strict-yaml.js +16 -3
- package/dist/strict-yaml.js.map +1 -1
- package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts +6 -0
- package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts.map +1 -0
- package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js +288 -0
- package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js.map +1 -0
- package/dist/workspace-inventory/application/model/workspace-inventory.d.ts +38 -0
- package/dist/workspace-inventory/application/model/workspace-inventory.d.ts.map +1 -0
- package/dist/workspace-inventory/application/model/workspace-inventory.js +7 -0
- package/dist/workspace-inventory/application/model/workspace-inventory.js.map +1 -0
- package/dist/workspace-inventory/application/ports/workspace-inventory-reader.d.ts +5 -0
- package/dist/workspace-inventory/application/ports/workspace-inventory-reader.d.ts.map +1 -0
- package/dist/workspace-inventory/application/ports/workspace-inventory-reader.js +2 -0
- package/dist/workspace-inventory/application/ports/workspace-inventory-reader.js.map +1 -0
- package/package.json +5 -1
- package/presets/oxlint/base.json +2 -0
- package/presets/oxlint/type-aware.json +39 -0
- package/schemas/architecture-source-dependencies/v1.schema.json +97 -0
- package/schemas/foundation-config/v1.schema.json +10 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { CapabilityReport,
|
|
2
|
-
export declare const OUTCOME_PRECEDENCE: Readonly<Record<FoundationOutcome, number>>;
|
|
1
|
+
import type { CapabilityReport, FoundationCheckReport, FoundationDiagnostic, FoundationOutcome, FoundationProblem } from "./check-contract.js";
|
|
3
2
|
export declare class CapabilityInputError extends Error {
|
|
4
3
|
readonly problem: FoundationProblem;
|
|
5
4
|
constructor(problem: FoundationProblem, options?: ErrorOptions);
|
|
@@ -14,9 +13,6 @@ export interface CapabilityDefinition {
|
|
|
14
13
|
readonly configSchemaVersion: number;
|
|
15
14
|
readonly run: (invocation: CapabilityInvocation) => Promise<CapabilityReport>;
|
|
16
15
|
}
|
|
17
|
-
export declare function emptySummary(): DiagnosticSummary;
|
|
18
|
-
export declare function summarizeDiagnostics(diagnostics: readonly FoundationDiagnostic[]): DiagnosticSummary;
|
|
19
|
-
export declare function sortDiagnostics(diagnostics: readonly FoundationDiagnostic[]): readonly FoundationDiagnostic[];
|
|
20
16
|
export declare function capabilityReport(input: {
|
|
21
17
|
readonly capabilityId: string;
|
|
22
18
|
readonly capabilityConfigSchemaVersion: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../src/capability-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../src/capability-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAEhB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAW7B,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAEpC,YAAY,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,YAAY,EAI7D;CACF;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/E;AAmCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC,GAAG,gBAAgB,CAYnB;AAYD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC,GAAG,qBAAqB,CAsBxB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAarE"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FOUNDATION_REPORT_SCHEMA_VERSION } from "./check-contract.js";
|
|
2
|
-
|
|
2
|
+
const OUTCOME_PRECEDENCE = {
|
|
3
3
|
passed: 0,
|
|
4
4
|
violations: 1,
|
|
5
5
|
"invalid-input": 2,
|
|
@@ -14,17 +14,17 @@ export class CapabilityInputError extends Error {
|
|
|
14
14
|
this.problem = problem;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
function emptySummary() {
|
|
18
18
|
return { errors: 0, warnings: 0, infos: 0 };
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
function summarizeDiagnostics(diagnostics) {
|
|
21
21
|
return diagnostics.reduce((summary, diagnostic) => ({
|
|
22
22
|
errors: summary.errors + (diagnostic.severity === "error" ? 1 : 0),
|
|
23
23
|
warnings: summary.warnings + (diagnostic.severity === "warning" ? 1 : 0),
|
|
24
24
|
infos: summary.infos + (diagnostic.severity === "info" ? 1 : 0)
|
|
25
25
|
}), emptySummary());
|
|
26
26
|
}
|
|
27
|
-
|
|
27
|
+
function sortDiagnostics(diagnostics) {
|
|
28
28
|
return diagnostics.toSorted((left, right) => {
|
|
29
29
|
const leftStart = left.location.start;
|
|
30
30
|
const rightStart = right.location.start;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../src/capability-runtime.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,
|
|
1
|
+
{"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../src/capability-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/check-contract.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const FOUNDATION_REPORT_SCHEMA_VERSION: 1;
|
|
2
2
|
export type FoundationOutcome = "passed" | "violations" | "invalid-input" | "failed" | "cancelled";
|
|
3
3
|
export type DiagnosticSeverity = "error" | "warning" | "info";
|
|
4
|
-
|
|
4
|
+
interface DiagnosticPosition {
|
|
5
5
|
readonly line: number;
|
|
6
6
|
readonly column: number;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface DiagnosticLocation {
|
|
9
9
|
readonly path: string;
|
|
10
10
|
readonly start?: DiagnosticPosition;
|
|
11
11
|
readonly end?: DiagnosticPosition;
|
|
@@ -53,4 +53,5 @@ export interface FoundationCheckReport {
|
|
|
53
53
|
readonly capabilities: readonly CapabilityReport[];
|
|
54
54
|
readonly problem?: FoundationProblem;
|
|
55
55
|
}
|
|
56
|
+
export {};
|
|
56
57
|
//# sourceMappingURL=check-contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-contract.d.ts","sourceRoot":"","sources":["../src/check-contract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,EAAG,CAAU,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,
|
|
1
|
+
{"version":3,"file":"check-contract.d.ts","sourceRoot":"","sources":["../src/check-contract.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,EAAG,CAAU,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,WAAW,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,0BAA0B,EAAE,OAAO,CAAC;CAC9C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,mBAAmB,EAAE,OAAO,gCAAgC,CAAC;IACtE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CACtC"}
|
package/dist/check-runner.d.ts
CHANGED
|
@@ -6,6 +6,4 @@ export interface FoundationCheckInvocation {
|
|
|
6
6
|
readonly signal?: AbortSignal;
|
|
7
7
|
}
|
|
8
8
|
export declare function runFoundationCheck(invocation: FoundationCheckInvocation): Promise<FoundationCheckReport>;
|
|
9
|
-
export declare function supportedCapabilityIds(): readonly string[];
|
|
10
|
-
export declare function defaultCapabilityId(): string;
|
|
11
9
|
//# sourceMappingURL=check-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AA0BD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,qBAAqB,CAAC,CA6ChC"}
|
package/dist/check-runner.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CapabilityInputError, foundationReport } from "./capability-runtime.js";
|
|
2
2
|
import { CAPABILITY_REGISTRY } from "./composition/capability-registry.js";
|
|
3
|
-
import { loadFoundationConfig
|
|
3
|
+
import { loadFoundationConfig } from "./foundation-config.js";
|
|
4
4
|
function rootProblemReport(foundationVersion, error) {
|
|
5
5
|
if (error instanceof CapabilityInputError) {
|
|
6
6
|
const cancelled = error.problem.code === "EXECUTION_CANCELLED";
|
|
@@ -24,10 +24,10 @@ function rootProblemReport(foundationVersion, error) {
|
|
|
24
24
|
export async function runFoundationCheck(invocation) {
|
|
25
25
|
try {
|
|
26
26
|
const config = await loadFoundationConfig(invocation.consumerRoot, invocation.signal);
|
|
27
|
-
const declared =
|
|
27
|
+
const declared = config.declaredCapabilities;
|
|
28
28
|
const selected = invocation.capabilityId === undefined
|
|
29
29
|
? declared
|
|
30
|
-
: declared.filter((
|
|
30
|
+
: declared.filter(({ id }) => id === invocation.capabilityId);
|
|
31
31
|
if (invocation.capabilityId !== undefined && selected.length === 0) {
|
|
32
32
|
throw new CapabilityInputError({
|
|
33
33
|
code: "CAPABILITY_NOT_DECLARED",
|
|
@@ -36,7 +36,7 @@ export async function runFoundationCheck(invocation) {
|
|
|
36
36
|
retryable: false
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
const reports = await Promise.all(selected.map(async (
|
|
39
|
+
const reports = await Promise.all(selected.map(async ({ id, configPath }) => {
|
|
40
40
|
const capability = CAPABILITY_REGISTRY.get(id);
|
|
41
41
|
if (capability === undefined) {
|
|
42
42
|
throw new CapabilityInputError({
|
|
@@ -48,7 +48,7 @@ export async function runFoundationCheck(invocation) {
|
|
|
48
48
|
}
|
|
49
49
|
return capability.run({
|
|
50
50
|
consumerRoot: invocation.consumerRoot,
|
|
51
|
-
configPath
|
|
51
|
+
configPath,
|
|
52
52
|
...(invocation.signal === undefined ? {} : { signal: invocation.signal })
|
|
53
53
|
});
|
|
54
54
|
}));
|
|
@@ -61,10 +61,4 @@ export async function runFoundationCheck(invocation) {
|
|
|
61
61
|
return rootProblemReport(invocation.foundationVersion, error);
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
export function supportedCapabilityIds() {
|
|
65
|
-
return [...CAPABILITY_REGISTRY.keys()].toSorted();
|
|
66
|
-
}
|
|
67
|
-
export function defaultCapabilityId() {
|
|
68
|
-
return WORKSPACE_DEPENDENCY_DECLARATIONS_CAPABILITY;
|
|
69
|
-
}
|
|
70
64
|
//# sourceMappingURL=check-runner.js.map
|
package/dist/check-runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../src/check-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -4,31 +4,50 @@ import { dirname, resolve } from "node:path";
|
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { exitCodeForOutcome } from "./capability-runtime.js";
|
|
6
6
|
import { runFoundationCheck } from "./check-runner.js";
|
|
7
|
-
import {
|
|
7
|
+
import { RULE_REGISTRY } from "./composition/rule-registry.js";
|
|
8
8
|
import { FoundationError } from "./errors.js";
|
|
9
|
+
import { systemNow } from "./local-mode/adapters/outbound/time/system-clock.js";
|
|
9
10
|
import { NodeProcessRunner } from "./local-mode/process-runner.js";
|
|
10
11
|
import { FoundationLocalModeService } from "./local-mode/service.js";
|
|
11
12
|
import { inspectFoundationPackage } from "./package-self-check.js";
|
|
12
13
|
import { renderFoundationReportText } from "./report-renderer.js";
|
|
13
14
|
import { isFoundationSchemaId, readFoundationSchema } from "./schema-catalog.js";
|
|
15
|
+
const MAX_POSITIONAL_ARGUMENTS = Object.freeze({
|
|
16
|
+
"--help": 0,
|
|
17
|
+
"--version": 0,
|
|
18
|
+
"-h": 0,
|
|
19
|
+
"-v": 0,
|
|
20
|
+
"assert-dev-only": 0,
|
|
21
|
+
"assert-registry": 0,
|
|
22
|
+
attach: 1,
|
|
23
|
+
check: 1,
|
|
24
|
+
detach: 0,
|
|
25
|
+
explain: 1,
|
|
26
|
+
help: 0,
|
|
27
|
+
schema: 1,
|
|
28
|
+
"self-check": 0,
|
|
29
|
+
status: 0,
|
|
30
|
+
version: 0
|
|
31
|
+
});
|
|
14
32
|
function parseArguments(args) {
|
|
15
33
|
const positional = [];
|
|
16
34
|
let consumerRoot = process.cwd();
|
|
17
35
|
let format = "text";
|
|
36
|
+
let optionsEnded = false;
|
|
18
37
|
for (let index = 1; index < args.length; index += 1) {
|
|
19
38
|
const value = args[index];
|
|
20
|
-
if (value === "--consumer") {
|
|
39
|
+
if (!optionsEnded && value === "--consumer") {
|
|
21
40
|
const candidate = args[index + 1];
|
|
22
|
-
if (candidate === undefined) {
|
|
41
|
+
if (candidate === undefined || candidate.length === 0) {
|
|
23
42
|
throw new FoundationError("CONSUMER_INVALID", "--consumer requires a path.");
|
|
24
43
|
}
|
|
25
44
|
consumerRoot = resolve(candidate);
|
|
26
45
|
index += 1;
|
|
27
46
|
}
|
|
28
|
-
else if (value === "--json") {
|
|
47
|
+
else if (!optionsEnded && value === "--json") {
|
|
29
48
|
format = "json";
|
|
30
49
|
}
|
|
31
|
-
else if (value === "--format") {
|
|
50
|
+
else if (!optionsEnded && value === "--format") {
|
|
32
51
|
const candidate = args[index + 1];
|
|
33
52
|
if (candidate !== "json" && candidate !== "text") {
|
|
34
53
|
throw new FoundationError("CONSUMER_INVALID", "--format requires json or text.");
|
|
@@ -36,15 +55,25 @@ function parseArguments(args) {
|
|
|
36
55
|
format = candidate;
|
|
37
56
|
index += 1;
|
|
38
57
|
}
|
|
39
|
-
else if (value === "--") {
|
|
40
|
-
|
|
58
|
+
else if (!optionsEnded && value === "--") {
|
|
59
|
+
optionsEnded = true;
|
|
60
|
+
}
|
|
61
|
+
else if (!optionsEnded &&
|
|
62
|
+
value !== undefined &&
|
|
63
|
+
value.startsWith("-")) {
|
|
64
|
+
throw new FoundationError("CONSUMER_INVALID", `Unknown option: ${value}.`);
|
|
41
65
|
}
|
|
42
66
|
else if (value !== undefined) {
|
|
43
67
|
positional.push(value);
|
|
44
68
|
}
|
|
45
69
|
}
|
|
70
|
+
const command = args[0] ?? "help";
|
|
71
|
+
const maximum = MAX_POSITIONAL_ARGUMENTS[command];
|
|
72
|
+
if (maximum !== undefined && positional.length > maximum) {
|
|
73
|
+
throw new FoundationError("CONSUMER_INVALID", `${command} accepts at most ${maximum} positional argument${maximum === 1 ? "" : "s"}.`);
|
|
74
|
+
}
|
|
46
75
|
return {
|
|
47
|
-
command
|
|
76
|
+
command,
|
|
48
77
|
positional,
|
|
49
78
|
consumerRoot,
|
|
50
79
|
format
|
|
@@ -123,13 +152,14 @@ async function main() {
|
|
|
123
152
|
const parsed = parseArguments(process.argv.slice(2));
|
|
124
153
|
const json = parsed.format === "json";
|
|
125
154
|
const service = new FoundationLocalModeService({
|
|
126
|
-
runner: new NodeProcessRunner()
|
|
155
|
+
runner: new NodeProcessRunner(),
|
|
156
|
+
now: systemNow
|
|
127
157
|
});
|
|
128
158
|
switch (parsed.command) {
|
|
129
159
|
case "attach": {
|
|
130
160
|
const target = parsed.positional[0];
|
|
131
161
|
if (target === undefined) {
|
|
132
|
-
throw new FoundationError("
|
|
162
|
+
throw new FoundationError("CONSUMER_INVALID", "attach requires a foundation repository or package path.");
|
|
133
163
|
}
|
|
134
164
|
const result = await service.attach(parsed.consumerRoot, target);
|
|
135
165
|
printStatus(result.status, json);
|
|
@@ -149,7 +179,9 @@ async function main() {
|
|
|
149
179
|
}
|
|
150
180
|
case "check": {
|
|
151
181
|
const controller = new AbortController();
|
|
152
|
-
const cancel = () =>
|
|
182
|
+
const cancel = () => {
|
|
183
|
+
controller.abort();
|
|
184
|
+
};
|
|
153
185
|
process.once("SIGINT", cancel);
|
|
154
186
|
try {
|
|
155
187
|
const report = await runFoundationCheck({
|
|
@@ -175,7 +207,7 @@ async function main() {
|
|
|
175
207
|
if (ruleId === undefined) {
|
|
176
208
|
throw new FoundationError("CONSUMER_INVALID", "explain requires a rule ID.");
|
|
177
209
|
}
|
|
178
|
-
const metadata =
|
|
210
|
+
const metadata = RULE_REGISTRY.get(ruleId);
|
|
179
211
|
if (metadata === undefined) {
|
|
180
212
|
throw new FoundationError("CONSUMER_INVALID", `Unknown rule ID: ${ruleId}.`);
|
|
181
213
|
}
|
|
@@ -229,10 +261,11 @@ try {
|
|
|
229
261
|
catch (error) {
|
|
230
262
|
if (error instanceof FoundationError) {
|
|
231
263
|
process.stderr.write(`${error.code}: ${error.message}\n`);
|
|
264
|
+
process.exitCode = error.code === "CONSUMER_INVALID" ? 2 : 1;
|
|
232
265
|
}
|
|
233
266
|
else {
|
|
234
267
|
process.stderr.write(`UNEXPECTED: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
268
|
+
process.exitCode = 1;
|
|
235
269
|
}
|
|
236
|
-
process.exitCode = 1;
|
|
237
270
|
}
|
|
238
271
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../src/composition/capability-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-registry.d.ts","sourceRoot":"","sources":["../../src/composition/capability-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AASrE,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CACF,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { createSourceDependenciesCapability } from "../capabilities/source-dependencies/module.js";
|
|
1
2
|
import { createWorkspaceDependencyDeclarationsCapability } from "../capabilities/workspace-dependency-declarations/module.js";
|
|
2
3
|
const capabilities = Object.freeze([
|
|
4
|
+
createSourceDependenciesCapability(),
|
|
3
5
|
createWorkspaceDependencyDeclarationsCapability()
|
|
4
6
|
]);
|
|
5
7
|
export const CAPABILITY_REGISTRY = new Map(capabilities.map((capability) => [capability.id, capability]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/composition/capability-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,+CAA+C,EAAE,MAAM,6DAA6D,CAAC;AAE9H,MAAM,YAAY,GAAoC,MAAM,CAAC,MAAM,CAAC;IAClE,+CAA+C,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"capability-registry.js","sourceRoot":"","sources":["../../src/composition/capability-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kCAAkC,EAAE,MAAM,+CAA+C,CAAC;AACnG,OAAO,EAAE,+CAA+C,EAAE,MAAM,6DAA6D,CAAC;AAE9H,MAAM,YAAY,GAAoC,MAAM,CAAC,MAAM,CAAC;IAClE,kCAAkC,EAAE;IACpC,+CAA+C,EAAE;CAClD,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface RuleExplanation {
|
|
2
|
+
readonly id: string;
|
|
3
|
+
readonly rationale: string;
|
|
4
|
+
readonly remediation: string;
|
|
5
|
+
readonly documentation: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const RULE_REGISTRY: ReadonlyMap<string, RuleExplanation>;
|
|
8
|
+
//# sourceMappingURL=rule-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-registry.d.ts","sourceRoot":"","sources":["../../src/composition/rule-registry.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAG7D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SOURCE_DEPENDENCY_RULES_BY_ID } from "../capabilities/source-dependencies/module.js";
|
|
2
|
+
import { RULES_BY_ID as WORKSPACE_RULES_BY_ID } from "../capabilities/workspace-dependency-declarations/module.js";
|
|
3
|
+
export const RULE_REGISTRY = new Map([
|
|
4
|
+
...SOURCE_DEPENDENCY_RULES_BY_ID,
|
|
5
|
+
...WORKSPACE_RULES_BY_ID
|
|
6
|
+
]);
|
|
7
|
+
//# sourceMappingURL=rule-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-registry.js","sourceRoot":"","sources":["../../src/composition/rule-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,6DAA6D,CAAC;AASnH,MAAM,CAAC,MAAM,aAAa,GAAyC,IAAI,GAAG,CAAC;IACzE,GAAG,6BAA6B;IAChC,GAAG,qBAAqB;CACzB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-path-safety.d.ts","sourceRoot":"","sources":["../src/filesystem-path-safety.ts"],"names":[],"mappings":"AAGA,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAclB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { lstat } from "node:fs/promises";
|
|
2
|
+
import { join, relative, sep } from "node:path";
|
|
3
|
+
export async function pathTraversesSymbolicLink(root, candidate) {
|
|
4
|
+
const relation = relative(root, candidate);
|
|
5
|
+
let current = root;
|
|
6
|
+
for (const segment of relation.split(sep).filter((value) => value.length > 0)) {
|
|
7
|
+
current = join(current, segment);
|
|
8
|
+
try {
|
|
9
|
+
if ((await lstat(current)).isSymbolicLink()) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=filesystem-path-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-path-safety.js","sourceRoot":"","sources":["../src/filesystem-path-safety.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAY,EACZ,SAAiB;IAEjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
readonly
|
|
5
|
-
readonly
|
|
6
|
-
readonly id: string;
|
|
7
|
-
};
|
|
8
|
-
readonly capabilities: {
|
|
9
|
-
readonly "workspace.dependency-declarations"?: {
|
|
10
|
-
readonly configPath: string;
|
|
11
|
-
};
|
|
12
|
-
};
|
|
1
|
+
declare const SUPPORTED_CAPABILITY_IDS: readonly ["architecture.source-dependencies", "workspace.dependency-declarations"];
|
|
2
|
+
type SupportedCapabilityId = (typeof SUPPORTED_CAPABILITY_IDS)[number];
|
|
3
|
+
interface DeclaredCapability {
|
|
4
|
+
readonly id: SupportedCapabilityId;
|
|
5
|
+
readonly configPath: string;
|
|
13
6
|
}
|
|
14
|
-
export
|
|
7
|
+
export interface FoundationSettings {
|
|
8
|
+
readonly projectId: string;
|
|
9
|
+
readonly declaredCapabilities: readonly DeclaredCapability[];
|
|
10
|
+
}
|
|
11
|
+
export declare function loadFoundationConfig(consumerRoot: string, signal?: AbortSignal): Promise<FoundationSettings>;
|
|
12
|
+
export {};
|
|
15
13
|
//# sourceMappingURL=foundation-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation-config.d.ts","sourceRoot":"","sources":["../src/foundation-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"foundation-config.d.ts","sourceRoot":"","sources":["../src/foundation-config.ts"],"names":[],"mappings":"AASA,QAAA,MAAM,wBAAwB,oFAGpB,CAAC;AAEX,KAAK,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,oBAAoB,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAC9D;AAiCD,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA6B7B"}
|
|
@@ -1,10 +1,59 @@
|
|
|
1
|
+
import { CapabilityInputError } from "./capability-runtime.js";
|
|
1
2
|
import { assertSchema } from "./schema-catalog.js";
|
|
2
3
|
import { loadStrictYamlFile } from "./strict-yaml.js";
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
const FOUNDATION_CONFIG_PATH = "foundation.config.yaml";
|
|
5
|
+
const SOURCE_DEPENDENCIES_CAPABILITY = "architecture.source-dependencies";
|
|
6
|
+
const WORKSPACE_DEPENDENCY_DECLARATIONS_CAPABILITY = "workspace.dependency-declarations";
|
|
7
|
+
const SUPPORTED_CAPABILITY_IDS = [
|
|
8
|
+
SOURCE_DEPENDENCIES_CAPABILITY,
|
|
9
|
+
WORKSPACE_DEPENDENCY_DECLARATIONS_CAPABILITY
|
|
10
|
+
];
|
|
11
|
+
function inputError(message) {
|
|
12
|
+
throw new CapabilityInputError({
|
|
13
|
+
code: "FOUNDATION_CONFIG_INVALID",
|
|
14
|
+
message,
|
|
15
|
+
phase: "foundation-config",
|
|
16
|
+
retryable: false
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function isRecord(value) {
|
|
20
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
21
|
+
}
|
|
22
|
+
function record(value, field) {
|
|
23
|
+
if (!isRecord(value)) {
|
|
24
|
+
inputError(`${field} must be an object.`);
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
function string(value, field) {
|
|
29
|
+
if (typeof value !== "string") {
|
|
30
|
+
inputError(`${field} must be a string.`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
function isSupportedCapabilityId(value) {
|
|
35
|
+
return SUPPORTED_CAPABILITY_IDS.some((candidate) => candidate === value);
|
|
36
|
+
}
|
|
5
37
|
export async function loadFoundationConfig(consumerRoot, signal) {
|
|
6
38
|
const input = await loadStrictYamlFile(consumerRoot, FOUNDATION_CONFIG_PATH, "foundation-config", signal);
|
|
7
39
|
await assertSchema("foundation-config/v1", input, "foundation-config");
|
|
8
|
-
|
|
40
|
+
const root = record(input, "foundation config");
|
|
41
|
+
const project = record(root["project"], "project");
|
|
42
|
+
const capabilities = record(root["capabilities"], "capabilities");
|
|
43
|
+
const declaredCapabilities = [];
|
|
44
|
+
for (const [id, declarationInput] of Object.entries(capabilities)) {
|
|
45
|
+
if (!isSupportedCapabilityId(id)) {
|
|
46
|
+
inputError(`Unsupported capability declaration: ${id}.`);
|
|
47
|
+
}
|
|
48
|
+
const declaration = record(declarationInput, `capabilities.${id}`);
|
|
49
|
+
declaredCapabilities.push({
|
|
50
|
+
id,
|
|
51
|
+
configPath: string(declaration["configPath"], `capabilities.${id}.configPath`)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return Object.freeze({
|
|
55
|
+
projectId: string(project["id"], "project.id"),
|
|
56
|
+
declaredCapabilities: Object.freeze(declaredCapabilities.toSorted((left, right) => left.id.localeCompare(right.id)))
|
|
57
|
+
});
|
|
9
58
|
}
|
|
10
59
|
//# sourceMappingURL=foundation-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foundation-config.js","sourceRoot":"","sources":["../src/foundation-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,
|
|
1
|
+
{"version":3,"file":"foundation-config.js","sourceRoot":"","sources":["../src/foundation-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-clock.d.ts","sourceRoot":"","sources":["../../../../../src/local-mode/adapters/outbound/time/system-clock.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,IAAI,CAEhC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-clock.js","sourceRoot":"","sources":["../../../../../src/local-mode/adapters/outbound/time/system-clock.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -173,7 +173,7 @@ export async function inspectFoundationRegistryProvenance(consumerRoot, dependen
|
|
|
173
173
|
issues.push(`${FOUNDATION_PACKAGE_NAME} must have an exact snapshot entry in ${source}.`);
|
|
174
174
|
}
|
|
175
175
|
return {
|
|
176
|
-
|
|
176
|
+
packageKey,
|
|
177
177
|
...(integrity === undefined ? {} : { integrity }),
|
|
178
178
|
issues
|
|
179
179
|
};
|