@agent-teams/engineering-foundation 0.1.0 → 0.2.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.
Files changed (96) hide show
  1. package/README.md +20 -15
  2. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.d.ts +6 -0
  3. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.d.ts.map +1 -0
  4. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js +199 -0
  5. package/dist/capabilities/workspace-dependency-declarations/adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js.map +1 -0
  6. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.d.ts +27 -0
  7. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.d.ts.map +1 -0
  8. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.js +7 -0
  9. package/dist/capabilities/workspace-dependency-declarations/application/model/workspace-snapshot.js.map +1 -0
  10. package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.d.ts +5 -0
  11. package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.d.ts.map +1 -0
  12. package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.js +219 -0
  13. package/dist/capabilities/workspace-dependency-declarations/application/policies/evaluate-workspace-dependencies.js.map +1 -0
  14. package/dist/capabilities/workspace-dependency-declarations/application/ports/workspace-reader.d.ts +5 -0
  15. package/dist/capabilities/workspace-dependency-declarations/application/ports/workspace-reader.d.ts.map +1 -0
  16. package/dist/capabilities/workspace-dependency-declarations/application/ports/workspace-reader.js +2 -0
  17. package/dist/capabilities/workspace-dependency-declarations/application/ports/workspace-reader.js.map +1 -0
  18. package/dist/capabilities/workspace-dependency-declarations/application/rules.d.ts +26 -0
  19. package/dist/capabilities/workspace-dependency-declarations/application/rules.d.ts.map +1 -0
  20. package/dist/capabilities/workspace-dependency-declarations/application/rules.js +28 -0
  21. package/dist/capabilities/workspace-dependency-declarations/application/rules.js.map +1 -0
  22. package/dist/capabilities/workspace-dependency-declarations/contract/config.d.ts +19 -0
  23. package/dist/capabilities/workspace-dependency-declarations/contract/config.d.ts.map +1 -0
  24. package/dist/capabilities/workspace-dependency-declarations/contract/config.js +10 -0
  25. package/dist/capabilities/workspace-dependency-declarations/contract/config.js.map +1 -0
  26. package/dist/capabilities/workspace-dependency-declarations/module.d.ts +3 -0
  27. package/dist/capabilities/workspace-dependency-declarations/module.d.ts.map +1 -0
  28. package/dist/capabilities/workspace-dependency-declarations/module.js +45 -0
  29. package/dist/capabilities/workspace-dependency-declarations/module.js.map +1 -0
  30. package/dist/capability-runtime.d.ts +34 -0
  31. package/dist/capability-runtime.d.ts.map +1 -0
  32. package/dist/capability-runtime.js +86 -0
  33. package/dist/capability-runtime.js.map +1 -0
  34. package/dist/check-contract.d.ts +56 -0
  35. package/dist/check-contract.d.ts.map +1 -0
  36. package/dist/check-contract.js +2 -0
  37. package/dist/check-contract.js.map +1 -0
  38. package/dist/check-runner.d.ts +11 -0
  39. package/dist/check-runner.d.ts.map +1 -0
  40. package/dist/check-runner.js +70 -0
  41. package/dist/check-runner.js.map +1 -0
  42. package/dist/cli.js +73 -8
  43. package/dist/cli.js.map +1 -1
  44. package/dist/composition/capability-registry.d.ts +3 -0
  45. package/dist/composition/capability-registry.d.ts.map +1 -0
  46. package/dist/composition/capability-registry.js +6 -0
  47. package/dist/composition/capability-registry.js.map +1 -0
  48. package/dist/foundation-config.d.ts +15 -0
  49. package/dist/foundation-config.d.ts.map +1 -0
  50. package/dist/foundation-config.js +10 -0
  51. package/dist/foundation-config.js.map +1 -0
  52. package/dist/index.d.ts +0 -2
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +0 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/local-mode/consumer-policy.d.ts +0 -1
  57. package/dist/local-mode/consumer-policy.d.ts.map +1 -1
  58. package/dist/local-mode/consumer-policy.js +1 -4
  59. package/dist/local-mode/consumer-policy.js.map +1 -1
  60. package/dist/local-mode/inspection.d.ts +1 -1
  61. package/dist/local-mode/inspection.d.ts.map +1 -1
  62. package/dist/local-mode/inspection.js +1 -1
  63. package/dist/local-mode/inspection.js.map +1 -1
  64. package/dist/local-mode/service.js +2 -1
  65. package/dist/local-mode/service.js.map +1 -1
  66. package/dist/package-self-check.d.ts.map +1 -1
  67. package/dist/package-self-check.js +11 -4
  68. package/dist/package-self-check.js.map +1 -1
  69. package/dist/report-renderer.d.ts +3 -0
  70. package/dist/report-renderer.d.ts.map +1 -0
  71. package/dist/report-renderer.js +31 -0
  72. package/dist/report-renderer.js.map +1 -0
  73. package/dist/schema-catalog.d.ts +7 -0
  74. package/dist/schema-catalog.d.ts.map +1 -0
  75. package/dist/schema-catalog.js +58 -0
  76. package/dist/schema-catalog.js.map +1 -0
  77. package/dist/semantic-version.d.ts +2 -0
  78. package/dist/semantic-version.d.ts.map +1 -0
  79. package/dist/semantic-version.js +5 -0
  80. package/dist/semantic-version.js.map +1 -0
  81. package/dist/strict-yaml.d.ts +6 -0
  82. package/dist/strict-yaml.d.ts.map +1 -0
  83. package/dist/strict-yaml.js +99 -0
  84. package/dist/strict-yaml.js.map +1 -0
  85. package/package.json +6 -1
  86. package/presets/oxlint/base.json +39 -0
  87. package/presets/oxlint/node.json +8 -0
  88. package/presets/typescript/base.json +17 -0
  89. package/presets/typescript/node.json +9 -0
  90. package/schemas/foundation-check-report/v1.schema.json +138 -0
  91. package/schemas/foundation-config/v1.schema.json +49 -0
  92. package/schemas/workspace-dependency-declarations/v1.schema.json +61 -0
  93. package/dist/config.d.ts +0 -18
  94. package/dist/config.d.ts.map +0 -1
  95. package/dist/config.js +0 -106
  96. package/dist/config.js.map +0 -1
@@ -0,0 +1,28 @@
1
+ const documentation = "https://github.com/agent-teams-ai/engineering-foundation/blob/main/docs/reference/workspace-dependency-declarations.md";
2
+ function rule(suffix, rationale, remediation, requiresArchitectureReview = false) {
3
+ return Object.freeze({
4
+ id: `workspace.dependency-declarations.${suffix}`,
5
+ rationale,
6
+ severity: "error",
7
+ remediation,
8
+ documentation,
9
+ requiresArchitectureReview
10
+ });
11
+ }
12
+ export const RULES = Object.freeze({
13
+ catalogModeNotStrict: rule("catalog-mode-not-strict", "Strict catalog mode prevents undeclared dependency versions from bypassing the central version source.", "Set catalogMode: strict in pnpm-workspace.yaml."),
14
+ catalogReferenceMissing: rule("catalog-reference-missing", "Every catalog reference must resolve to a declared catalog entry.", "Add the dependency to the referenced catalog or correct the catalog reference."),
15
+ catalogVersionNotExact: rule("catalog-version-not-exact", "Exact catalog versions keep installs and automated upgrades reproducible.", "Replace the catalog range or tag with an exact semantic version."),
16
+ dependencyDeclaredMultipleTimes: rule("dependency-declared-multiple-times", "A package dependency must have one unambiguous dependency role.", "Keep the dependency in exactly one dependency section."),
17
+ developmentOnlyPackageBundled: rule("development-only-package-bundled", "Engineering tooling must never be bundled into production artifacts.", "Remove the development-only package from bundleDependencies and bundledDependencies."),
18
+ developmentOnlyPackageInRuntimeSection: rule("development-only-package-in-runtime-section", "Engineering tooling is a development dependency and cannot become a production runtime dependency.", "Move the package to devDependencies and remove all runtime declarations."),
19
+ exactRegistryDevelopmentOnlyPackageVersionNotExact: rule("exact-registry-development-only-package-version-not-exact", "Foundation tooling upgrades must be explicit and reviewable.", "Pin the development-only package to an exact registry version."),
20
+ duplicateWorkspacePackageName: rule("duplicate-workspace-package-name", "Workspace package names are stable identities and must be unique.", "Rename one package and update its consumers.", true),
21
+ externalVersionNotCataloged: rule("external-version-not-cataloged", "External dependency versions belong to the workspace catalog.", "Move the exact version to pnpm-workspace.yaml and use catalog: in package.json."),
22
+ internalDependencyWithoutWorkspaceProtocol: rule("internal-dependency-without-workspace-protocol", "The workspace protocol proves that an internal dependency resolves to a local package.", "Use a workspace: specifier for the internal package dependency."),
23
+ packageManagerNotExact: rule("package-manager-not-exact", "An exact package-manager version keeps workspace semantics reproducible.", "Pin packageManager to an exact pnpm semantic version."),
24
+ reservedScopePackageNotInWorkspace: rule("reserved-scope-package-not-in-workspace", "A reserved organization scope cannot silently resolve to an unrelated registry package.", "Add the package to this workspace or remove the reserved-scope dependency.", true),
25
+ workspacePackageNameMissing: rule("workspace-package-name-missing", "Every workspace package needs a stable package identity.", "Add a non-empty name to the package manifest.")
26
+ });
27
+ export const RULES_BY_ID = new Map(Object.values(RULES).map((metadata) => [metadata.id, metadata]));
28
+ //# sourceMappingURL=rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../../src/capabilities/workspace-dependency-declarations/application/rules.ts"],"names":[],"mappings":"AAWA,MAAM,aAAa,GACjB,wHAAwH,CAAC;AAE3H,SAAS,IAAI,CACX,MAAc,EACd,SAAiB,EACjB,WAAmB,EACnB,0BAA0B,GAAG,KAAK;IAElC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,qCAAqC,MAAM,EAAE;QACjD,SAAS;QACT,QAAQ,EAAE,OAAO;QACjB,WAAW;QACX,aAAa;QACb,0BAA0B;KAC3B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,oBAAoB,EAAE,IAAI,CACxB,yBAAyB,EACzB,wGAAwG,EACxG,iDAAiD,CAClD;IACD,uBAAuB,EAAE,IAAI,CAC3B,2BAA2B,EAC3B,mEAAmE,EACnE,gFAAgF,CACjF;IACD,sBAAsB,EAAE,IAAI,CAC1B,2BAA2B,EAC3B,2EAA2E,EAC3E,kEAAkE,CACnE;IACD,+BAA+B,EAAE,IAAI,CACnC,oCAAoC,EACpC,iEAAiE,EACjE,wDAAwD,CACzD;IACD,6BAA6B,EAAE,IAAI,CACjC,kCAAkC,EAClC,sEAAsE,EACtE,sFAAsF,CACvF;IACD,sCAAsC,EAAE,IAAI,CAC1C,6CAA6C,EAC7C,oGAAoG,EACpG,0EAA0E,CAC3E;IACD,kDAAkD,EAAE,IAAI,CACtD,2DAA2D,EAC3D,8DAA8D,EAC9D,gEAAgE,CACjE;IACD,6BAA6B,EAAE,IAAI,CACjC,kCAAkC,EAClC,mEAAmE,EACnE,8CAA8C,EAC9C,IAAI,CACL;IACD,2BAA2B,EAAE,IAAI,CAC/B,gCAAgC,EAChC,+DAA+D,EAC/D,iFAAiF,CAClF;IACD,0CAA0C,EAAE,IAAI,CAC9C,gDAAgD,EAChD,wFAAwF,EACxF,iEAAiE,CAClE;IACD,sBAAsB,EAAE,IAAI,CAC1B,2BAA2B,EAC3B,0EAA0E,EAC1E,uDAAuD,CACxD;IACD,kCAAkC,EAAE,IAAI,CACtC,yCAAyC,EACzC,yFAAyF,EACzF,4EAA4E,EAC5E,IAAI,CACL;IACD,2BAA2B,EAAE,IAAI,CAC/B,gCAAgC,EAChC,0DAA0D,EAC1D,+CAA+C,CAChD;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,WAAW,GAAsC,IAAI,GAAG,CACnE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAChE,CAAC"}
@@ -0,0 +1,19 @@
1
+ export declare const CAPABILITY_ID: "workspace.dependency-declarations";
2
+ export declare const CAPABILITY_CONFIG_SCHEMA_VERSION: 1;
3
+ export interface WorkspaceDependencyDeclarationsConfig {
4
+ readonly schemaVersion: typeof CAPABILITY_CONFIG_SCHEMA_VERSION;
5
+ readonly packageManager: {
6
+ readonly kind: "pnpm";
7
+ readonly workspaceManifest: "pnpm-workspace.yaml";
8
+ };
9
+ readonly policies: {
10
+ readonly externalDependencies: "catalog";
11
+ readonly catalogVersions: "exact";
12
+ readonly internalDependencies: "workspace-protocol";
13
+ readonly reservedScopes: readonly string[];
14
+ readonly developmentOnlyPackages: readonly string[];
15
+ readonly exactRegistryDevelopmentOnlyPackages: readonly string[];
16
+ };
17
+ }
18
+ export declare function loadCapabilityConfig(consumerRoot: string, configPath: string, signal?: AbortSignal): Promise<WorkspaceDependencyDeclarationsConfig>;
19
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/workspace-dependency-declarations/contract/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,EAAG,mCAA4C,CAAC;AAC1E,eAAO,MAAM,gCAAgC,EAAG,CAAU,CAAC;AAE3D,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,aAAa,EAAE,OAAO,gCAAgC,CAAC;IAChE,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KACnD,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,oBAAoB,EAAE,SAAS,CAAC;QACzC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;QAClC,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;QACpD,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;QAC3C,QAAQ,CAAC,uBAAuB,EAAE,SAAS,MAAM,EAAE,CAAC;QACpD,QAAQ,CAAC,oCAAoC,EAAE,SAAS,MAAM,EAAE,CAAC;KAClE,CAAC;CACH;AAED,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qCAAqC,CAAC,CAahD"}
@@ -0,0 +1,10 @@
1
+ import { assertSchema } from "../../../schema-catalog.js";
2
+ import { loadStrictYamlFile } from "../../../strict-yaml.js";
3
+ export const CAPABILITY_ID = "workspace.dependency-declarations";
4
+ export const CAPABILITY_CONFIG_SCHEMA_VERSION = 1;
5
+ export async function loadCapabilityConfig(consumerRoot, configPath, signal) {
6
+ const input = await loadStrictYamlFile(consumerRoot, configPath, "workspace-dependency-declarations-config", signal);
7
+ await assertSchema("workspace-dependency-declarations/v1", input, "workspace-dependency-declarations-config");
8
+ return input;
9
+ }
10
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../src/capabilities/workspace-dependency-declarations/contract/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAG,mCAA4C,CAAC;AAC1E,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAU,CAAC;AAkB3D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,YAAoB,EACpB,UAAkB,EAClB,MAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,kBAAkB,CACpC,YAAY,EACZ,UAAU,EACV,0CAA0C,EAC1C,MAAM,CACP,CAAC;IACF,MAAM,YAAY,CAChB,sCAAsC,EACtC,KAAK,EACL,0CAA0C,CAC3C,CAAC;IACF,OAAO,KAA8C,CAAC;AACxD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type CapabilityDefinition } from "../../capability-runtime.js";
2
+ export declare function createWorkspaceDependencyDeclarationsCapability(): CapabilityDefinition;
3
+ //# sourceMappingURL=module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/capabilities/workspace-dependency-declarations/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,6BAA6B,CAAC;AASrC,wBAAgB,+CAA+C,IAAI,oBAAoB,CA6CtF"}
@@ -0,0 +1,45 @@
1
+ import { CapabilityInputError, capabilityReport } from "../../capability-runtime.js";
2
+ import { PnpmWorkspaceReader } from "./adapters/outbound/pnpm-workspace/pnpm-workspace-reader.js";
3
+ import { CAPABILITY_CONFIG_SCHEMA_VERSION, CAPABILITY_ID, loadCapabilityConfig } from "./contract/config.js";
4
+ import { evaluateWorkspaceDependencies } from "./application/policies/evaluate-workspace-dependencies.js";
5
+ export function createWorkspaceDependencyDeclarationsCapability() {
6
+ const workspaceReader = new PnpmWorkspaceReader();
7
+ return Object.freeze({
8
+ id: CAPABILITY_ID,
9
+ configSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
10
+ async run(invocation) {
11
+ try {
12
+ const config = await loadCapabilityConfig(invocation.consumerRoot, invocation.configPath, invocation.signal);
13
+ const snapshot = await workspaceReader.read(invocation.consumerRoot, invocation.signal);
14
+ return capabilityReport({
15
+ capabilityId: CAPABILITY_ID,
16
+ capabilityConfigSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
17
+ diagnostics: evaluateWorkspaceDependencies(snapshot, config)
18
+ });
19
+ }
20
+ catch (error) {
21
+ if (error instanceof CapabilityInputError) {
22
+ const cancelled = error.problem.code === "EXECUTION_CANCELLED";
23
+ return capabilityReport({
24
+ capabilityId: CAPABILITY_ID,
25
+ capabilityConfigSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
26
+ outcome: cancelled ? "cancelled" : "invalid-input",
27
+ problem: error.problem
28
+ });
29
+ }
30
+ return capabilityReport({
31
+ capabilityId: CAPABILITY_ID,
32
+ capabilityConfigSchemaVersion: CAPABILITY_CONFIG_SCHEMA_VERSION,
33
+ outcome: "failed",
34
+ problem: {
35
+ code: "CAPABILITY_EXECUTION_FAILED",
36
+ message: "Capability execution failed.",
37
+ phase: "capability-execution",
38
+ retryable: false
39
+ }
40
+ });
41
+ }
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/capabilities/workspace-dependency-declarations/module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAGjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EACL,gCAAgC,EAChC,aAAa,EACb,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAE1G,MAAM,UAAU,+CAA+C;IAC7D,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAClD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE,EAAE,aAAa;QACjB,mBAAmB,EAAE,gCAAgC;QACrD,KAAK,CAAC,GAAG,CAAC,UAAgC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,MAAM,CAClB,CAAC;gBACF,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CACzC,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,MAAM,CAClB,CAAC;gBACF,OAAO,gBAAgB,CAAC;oBACtB,YAAY,EAAE,aAAa;oBAC3B,6BAA6B,EAAE,gCAAgC;oBAC/D,WAAW,EAAE,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC;iBAC7D,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;oBAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC;oBAC/D,OAAO,gBAAgB,CAAC;wBACtB,YAAY,EAAE,aAAa;wBAC3B,6BAA6B,EAAE,gCAAgC;wBAC/D,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;wBAClD,OAAO,EAAE,KAAK,CAAC,OAAO;qBACvB,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,gBAAgB,CAAC;oBACtB,YAAY,EAAE,aAAa;oBAC3B,6BAA6B,EAAE,gCAAgC;oBAC/D,OAAO,EAAE,QAAQ;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,6BAA6B;wBACnC,OAAO,EAAE,8BAA8B;wBACvC,KAAK,EAAE,sBAAsB;wBAC7B,SAAS,EAAE,KAAK;qBACjB;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { CapabilityReport, DiagnosticSummary, FoundationCheckReport, FoundationDiagnostic, FoundationOutcome, FoundationProblem } from "./check-contract.js";
2
+ export declare const OUTCOME_PRECEDENCE: Readonly<Record<FoundationOutcome, number>>;
3
+ export declare class CapabilityInputError extends Error {
4
+ readonly problem: FoundationProblem;
5
+ constructor(problem: FoundationProblem, options?: ErrorOptions);
6
+ }
7
+ export interface CapabilityInvocation {
8
+ readonly consumerRoot: string;
9
+ readonly configPath: string;
10
+ readonly signal?: AbortSignal;
11
+ }
12
+ export interface CapabilityDefinition {
13
+ readonly id: string;
14
+ readonly configSchemaVersion: number;
15
+ readonly run: (invocation: CapabilityInvocation) => Promise<CapabilityReport>;
16
+ }
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
+ export declare function capabilityReport(input: {
21
+ readonly capabilityId: string;
22
+ readonly capabilityConfigSchemaVersion: number;
23
+ readonly diagnostics?: readonly FoundationDiagnostic[];
24
+ readonly problem?: FoundationProblem;
25
+ readonly outcome?: FoundationOutcome;
26
+ }): CapabilityReport;
27
+ export declare function foundationReport(input: {
28
+ readonly foundationVersion: string;
29
+ readonly capabilities?: readonly CapabilityReport[];
30
+ readonly problem?: FoundationProblem;
31
+ readonly outcome?: FoundationOutcome;
32
+ }): FoundationCheckReport;
33
+ export declare function exitCodeForOutcome(outcome: FoundationOutcome): number;
34
+ //# sourceMappingURL=capability-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-runtime.d.ts","sourceRoot":"","sources":["../src/capability-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qBAAqB,CAAC;AAG7B,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAM1E,CAAC;AAEF,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;AAED,wBAAgB,YAAY,IAAI,iBAAiB,CAEhD;AAED,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,iBAAiB,CASnB;AAED,wBAAgB,eAAe,CAC7B,WAAW,EAAE,SAAS,oBAAoB,EAAE,GAC3C,SAAS,oBAAoB,EAAE,CAYjC;AAED,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"}
@@ -0,0 +1,86 @@
1
+ import { FOUNDATION_REPORT_SCHEMA_VERSION } from "./check-contract.js";
2
+ export const OUTCOME_PRECEDENCE = {
3
+ passed: 0,
4
+ violations: 1,
5
+ "invalid-input": 2,
6
+ failed: 3,
7
+ cancelled: 4
8
+ };
9
+ export class CapabilityInputError extends Error {
10
+ problem;
11
+ constructor(problem, options) {
12
+ super(problem.message, options);
13
+ this.name = "CapabilityInputError";
14
+ this.problem = problem;
15
+ }
16
+ }
17
+ export function emptySummary() {
18
+ return { errors: 0, warnings: 0, infos: 0 };
19
+ }
20
+ export function summarizeDiagnostics(diagnostics) {
21
+ return diagnostics.reduce((summary, diagnostic) => ({
22
+ errors: summary.errors + (diagnostic.severity === "error" ? 1 : 0),
23
+ warnings: summary.warnings + (diagnostic.severity === "warning" ? 1 : 0),
24
+ infos: summary.infos + (diagnostic.severity === "info" ? 1 : 0)
25
+ }), emptySummary());
26
+ }
27
+ export function sortDiagnostics(diagnostics) {
28
+ return diagnostics.toSorted((left, right) => {
29
+ const leftStart = left.location.start;
30
+ const rightStart = right.location.start;
31
+ return (left.ruleId.localeCompare(right.ruleId) ||
32
+ left.subject.localeCompare(right.subject) ||
33
+ left.location.path.localeCompare(right.location.path) ||
34
+ (leftStart?.line ?? 0) - (rightStart?.line ?? 0) ||
35
+ (leftStart?.column ?? 0) - (rightStart?.column ?? 0));
36
+ });
37
+ }
38
+ export function capabilityReport(input) {
39
+ const diagnostics = sortDiagnostics(input.diagnostics ?? []);
40
+ const outcome = input.outcome ?? (diagnostics.length === 0 ? "passed" : "violations");
41
+ return {
42
+ capabilityId: input.capabilityId,
43
+ capabilityConfigSchemaVersion: input.capabilityConfigSchemaVersion,
44
+ outcome,
45
+ summary: summarizeDiagnostics(diagnostics),
46
+ diagnostics,
47
+ ...(input.problem === undefined ? {} : { problem: input.problem })
48
+ };
49
+ }
50
+ function highestOutcome(outcomes) {
51
+ return outcomes.reduce((highest, outcome) => OUTCOME_PRECEDENCE[outcome] > OUTCOME_PRECEDENCE[highest]
52
+ ? outcome
53
+ : highest, "passed");
54
+ }
55
+ export function foundationReport(input) {
56
+ const capabilities = (input.capabilities ?? []).toSorted((left, right) => left.capabilityId.localeCompare(right.capabilityId));
57
+ const summary = capabilities.reduce((total, report) => ({
58
+ errors: total.errors + report.summary.errors,
59
+ warnings: total.warnings + report.summary.warnings,
60
+ infos: total.infos + report.summary.infos
61
+ }), emptySummary());
62
+ return {
63
+ reportSchemaVersion: FOUNDATION_REPORT_SCHEMA_VERSION,
64
+ foundationVersion: input.foundationVersion,
65
+ coverage: "full",
66
+ outcome: input.outcome ?? highestOutcome(capabilities.map((report) => report.outcome)),
67
+ summary,
68
+ capabilities,
69
+ ...(input.problem === undefined ? {} : { problem: input.problem })
70
+ };
71
+ }
72
+ export function exitCodeForOutcome(outcome) {
73
+ switch (outcome) {
74
+ case "passed":
75
+ return 0;
76
+ case "violations":
77
+ return 1;
78
+ case "invalid-input":
79
+ return 2;
80
+ case "failed":
81
+ return 3;
82
+ case "cancelled":
83
+ return 130;
84
+ }
85
+ }
86
+ //# sourceMappingURL=capability-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-runtime.js","sourceRoot":"","sources":["../src/capability-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ export declare const FOUNDATION_REPORT_SCHEMA_VERSION: 1;
2
+ export type FoundationOutcome = "passed" | "violations" | "invalid-input" | "failed" | "cancelled";
3
+ export type DiagnosticSeverity = "error" | "warning" | "info";
4
+ export interface DiagnosticPosition {
5
+ readonly line: number;
6
+ readonly column: number;
7
+ }
8
+ export interface DiagnosticLocation {
9
+ readonly path: string;
10
+ readonly start?: DiagnosticPosition;
11
+ readonly end?: DiagnosticPosition;
12
+ }
13
+ export interface DiagnosticEvidence {
14
+ readonly kind: string;
15
+ readonly value: string;
16
+ }
17
+ export interface FoundationDiagnostic {
18
+ readonly ruleId: string;
19
+ readonly severity: DiagnosticSeverity;
20
+ readonly subject: string;
21
+ readonly message: string;
22
+ readonly location: DiagnosticLocation;
23
+ readonly relatedLocations: readonly DiagnosticLocation[];
24
+ readonly evidence: readonly DiagnosticEvidence[];
25
+ readonly remediation: string;
26
+ readonly requiresArchitectureReview: boolean;
27
+ }
28
+ export interface FoundationProblem {
29
+ readonly code: string;
30
+ readonly message: string;
31
+ readonly phase: string;
32
+ readonly retryable: boolean;
33
+ }
34
+ export interface DiagnosticSummary {
35
+ readonly errors: number;
36
+ readonly warnings: number;
37
+ readonly infos: number;
38
+ }
39
+ export interface CapabilityReport {
40
+ readonly capabilityId: string;
41
+ readonly capabilityConfigSchemaVersion: number;
42
+ readonly outcome: FoundationOutcome;
43
+ readonly summary: DiagnosticSummary;
44
+ readonly diagnostics: readonly FoundationDiagnostic[];
45
+ readonly problem?: FoundationProblem;
46
+ }
47
+ export interface FoundationCheckReport {
48
+ readonly reportSchemaVersion: typeof FOUNDATION_REPORT_SCHEMA_VERSION;
49
+ readonly foundationVersion: string;
50
+ readonly coverage: "full";
51
+ readonly outcome: FoundationOutcome;
52
+ readonly summary: DiagnosticSummary;
53
+ readonly capabilities: readonly CapabilityReport[];
54
+ readonly problem?: FoundationProblem;
55
+ }
56
+ //# sourceMappingURL=check-contract.d.ts.map
@@ -0,0 +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,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,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"}
@@ -0,0 +1,2 @@
1
+ export const FOUNDATION_REPORT_SCHEMA_VERSION = 1;
2
+ //# sourceMappingURL=check-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-contract.js","sourceRoot":"","sources":["../src/check-contract.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { FoundationCheckReport } from "./check-contract.js";
2
+ export interface FoundationCheckInvocation {
3
+ readonly consumerRoot: string;
4
+ readonly foundationVersion: string;
5
+ readonly capabilityId?: string;
6
+ readonly signal?: AbortSignal;
7
+ }
8
+ export declare function runFoundationCheck(invocation: FoundationCheckInvocation): Promise<FoundationCheckReport>;
9
+ export declare function supportedCapabilityIds(): readonly string[];
10
+ export declare function defaultCapabilityId(): string;
11
+ //# sourceMappingURL=check-runner.d.ts.map
@@ -0,0 +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;AAOjE,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;AAED,wBAAgB,sBAAsB,IAAI,SAAS,MAAM,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C"}
@@ -0,0 +1,70 @@
1
+ import { CapabilityInputError, foundationReport } from "./capability-runtime.js";
2
+ import { CAPABILITY_REGISTRY } from "./composition/capability-registry.js";
3
+ import { loadFoundationConfig, WORKSPACE_DEPENDENCY_DECLARATIONS_CAPABILITY } from "./foundation-config.js";
4
+ function rootProblemReport(foundationVersion, error) {
5
+ if (error instanceof CapabilityInputError) {
6
+ const cancelled = error.problem.code === "EXECUTION_CANCELLED";
7
+ return foundationReport({
8
+ foundationVersion,
9
+ outcome: cancelled ? "cancelled" : "invalid-input",
10
+ problem: error.problem
11
+ });
12
+ }
13
+ return foundationReport({
14
+ foundationVersion,
15
+ outcome: "failed",
16
+ problem: {
17
+ code: "FOUNDATION_CHECK_FAILED",
18
+ message: "Foundation check failed before capability execution.",
19
+ phase: "foundation-check",
20
+ retryable: false
21
+ }
22
+ });
23
+ }
24
+ export async function runFoundationCheck(invocation) {
25
+ try {
26
+ const config = await loadFoundationConfig(invocation.consumerRoot, invocation.signal);
27
+ const declared = Object.entries(config.capabilities);
28
+ const selected = invocation.capabilityId === undefined
29
+ ? declared
30
+ : declared.filter(([id]) => id === invocation.capabilityId);
31
+ if (invocation.capabilityId !== undefined && selected.length === 0) {
32
+ throw new CapabilityInputError({
33
+ code: "CAPABILITY_NOT_DECLARED",
34
+ message: `Capability is not declared by the consumer: ${invocation.capabilityId}.`,
35
+ phase: "capability-selection",
36
+ retryable: false
37
+ });
38
+ }
39
+ const reports = await Promise.all(selected.map(async ([id, capabilityConfig]) => {
40
+ const capability = CAPABILITY_REGISTRY.get(id);
41
+ if (capability === undefined) {
42
+ throw new CapabilityInputError({
43
+ code: "CAPABILITY_UNSUPPORTED",
44
+ message: `Capability is not supported by this foundation version: ${id}.`,
45
+ phase: "capability-selection",
46
+ retryable: false
47
+ });
48
+ }
49
+ return capability.run({
50
+ consumerRoot: invocation.consumerRoot,
51
+ configPath: capabilityConfig.configPath,
52
+ ...(invocation.signal === undefined ? {} : { signal: invocation.signal })
53
+ });
54
+ }));
55
+ return foundationReport({
56
+ foundationVersion: invocation.foundationVersion,
57
+ capabilities: reports
58
+ });
59
+ }
60
+ catch (error) {
61
+ return rootProblemReport(invocation.foundationVersion, error);
62
+ }
63
+ }
64
+ export function supportedCapabilityIds() {
65
+ return [...CAPABILITY_REGISTRY.keys()].toSorted();
66
+ }
67
+ export function defaultCapabilityId() {
68
+ return WORKSPACE_DEPENDENCY_DECLARATIONS_CAPABILITY;
69
+ }
70
+ //# sourceMappingURL=check-runner.js.map
@@ -0,0 +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,EACL,oBAAoB,EACpB,4CAA4C,EAC7C,MAAM,wBAAwB,CAAC;AAShC,SAAS,iBAAiB,CACxB,iBAAyB,EACzB,KAAc;IAEd,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,qBAAqB,CAAC;QAC/D,OAAO,gBAAgB,CAAC;YACtB,iBAAiB;YACjB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe;YAClD,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,gBAAgB,CAAC;QACtB,iBAAiB;QACjB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE;YACP,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,sDAAsD;YAC/D,KAAK,EAAE,kBAAkB;YACzB,SAAS,EAAE,KAAK;SACjB;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAqC;IAErC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACvC,UAAU,CAAC,YAAY,EACvB,UAAU,CAAC,MAAM,CAClB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,QAAQ,GACZ,UAAU,CAAC,YAAY,KAAK,SAAS;YACnC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,YAAY,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,oBAAoB,CAAC;gBAC7B,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,+CAA+C,UAAU,CAAC,YAAY,GAAG;gBAClF,KAAK,EAAE,sBAAsB;gBAC7B,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE;YAC5C,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,IAAI,oBAAoB,CAAC;oBAC7B,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,2DAA2D,EAAE,GAAG;oBACzE,KAAK,EAAE,sBAAsB;oBAC7B,SAAS,EAAE,KAAK;iBACjB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,UAAU,CAAC,GAAG,CAAC;gBACpB,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,UAAU,EAAE,gBAAgB,CAAC,UAAU;gBACvC,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;aAC1E,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QACF,OAAO,gBAAgB,CAAC;YACtB,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;YAC/C,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,iBAAiB,CAAC,UAAU,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,4CAA4C,CAAC;AACtD,CAAC"}
package/dist/cli.js CHANGED
@@ -2,14 +2,19 @@
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { dirname, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
+ import { exitCodeForOutcome } from "./capability-runtime.js";
6
+ import { runFoundationCheck } from "./check-runner.js";
7
+ import { RULES_BY_ID } from "./capabilities/workspace-dependency-declarations/application/rules.js";
5
8
  import { FoundationError } from "./errors.js";
6
9
  import { NodeProcessRunner } from "./local-mode/process-runner.js";
7
10
  import { FoundationLocalModeService } from "./local-mode/service.js";
8
11
  import { inspectFoundationPackage } from "./package-self-check.js";
12
+ import { renderFoundationReportText } from "./report-renderer.js";
13
+ import { isFoundationSchemaId, readFoundationSchema } from "./schema-catalog.js";
9
14
  function parseArguments(args) {
10
15
  const positional = [];
11
16
  let consumerRoot = process.cwd();
12
- let json = false;
17
+ let format = "text";
13
18
  for (let index = 1; index < args.length; index += 1) {
14
19
  const value = args[index];
15
20
  if (value === "--consumer") {
@@ -21,7 +26,18 @@ function parseArguments(args) {
21
26
  index += 1;
22
27
  }
23
28
  else if (value === "--json") {
24
- json = true;
29
+ format = "json";
30
+ }
31
+ else if (value === "--format") {
32
+ const candidate = args[index + 1];
33
+ if (candidate !== "json" && candidate !== "text") {
34
+ throw new FoundationError("CONSUMER_INVALID", "--format requires json or text.");
35
+ }
36
+ format = candidate;
37
+ index += 1;
38
+ }
39
+ else if (value === "--") {
40
+ continue;
25
41
  }
26
42
  else if (value !== undefined) {
27
43
  positional.push(value);
@@ -31,7 +47,7 @@ function parseArguments(args) {
31
47
  command: args[0] ?? "help",
32
48
  positional,
33
49
  consumerRoot,
34
- json
50
+ format
35
51
  };
36
52
  }
37
53
  function printStatus(status, json) {
@@ -83,6 +99,9 @@ function printDevOnlyStatus(status, json) {
83
99
  }
84
100
  function printHelp() {
85
101
  process.stdout.write(`Usage:
102
+ agent-teams-foundation check [capability] [--consumer <path>] [--format text|json]
103
+ agent-teams-foundation explain <rule-id> [--format text|json]
104
+ agent-teams-foundation schema <schema-id>
86
105
  agent-teams-foundation attach <path> [--consumer <path>]
87
106
  agent-teams-foundation status [--consumer <path>] [--json]
88
107
  agent-teams-foundation detach [--consumer <path>] [--json]
@@ -102,6 +121,7 @@ async function packageVersion() {
102
121
  }
103
122
  async function main() {
104
123
  const parsed = parseArguments(process.argv.slice(2));
124
+ const json = parsed.format === "json";
105
125
  const service = new FoundationLocalModeService({
106
126
  runner: new NodeProcessRunner()
107
127
  });
@@ -112,19 +132,56 @@ async function main() {
112
132
  throw new FoundationError("PACKAGE_INVALID", "attach requires a foundation repository or package path.");
113
133
  }
114
134
  const result = await service.attach(parsed.consumerRoot, target);
115
- printStatus(result.status, parsed.json);
135
+ printStatus(result.status, json);
116
136
  break;
117
137
  }
118
138
  case "assert-dev-only": {
119
- printDevOnlyStatus(await service.assertDevOnly(parsed.consumerRoot), parsed.json);
139
+ printDevOnlyStatus(await service.assertDevOnly(parsed.consumerRoot), json);
120
140
  break;
121
141
  }
122
142
  case "assert-registry": {
123
- printStatus(await service.assertRegistry(parsed.consumerRoot), parsed.json);
143
+ printStatus(await service.assertRegistry(parsed.consumerRoot), json);
124
144
  break;
125
145
  }
126
146
  case "detach": {
127
- printStatus(await service.detach(parsed.consumerRoot), parsed.json);
147
+ printStatus(await service.detach(parsed.consumerRoot), json);
148
+ break;
149
+ }
150
+ case "check": {
151
+ const controller = new AbortController();
152
+ const cancel = () => controller.abort();
153
+ process.once("SIGINT", cancel);
154
+ try {
155
+ const report = await runFoundationCheck({
156
+ consumerRoot: parsed.consumerRoot,
157
+ foundationVersion: await packageVersion(),
158
+ ...(parsed.positional[0] === undefined
159
+ ? {}
160
+ : { capabilityId: parsed.positional[0] }),
161
+ signal: controller.signal
162
+ });
163
+ process.stdout.write(json
164
+ ? `${JSON.stringify(report, null, 2)}\n`
165
+ : renderFoundationReportText(report));
166
+ process.exitCode = exitCodeForOutcome(report.outcome);
167
+ }
168
+ finally {
169
+ process.removeListener("SIGINT", cancel);
170
+ }
171
+ break;
172
+ }
173
+ case "explain": {
174
+ const ruleId = parsed.positional[0];
175
+ if (ruleId === undefined) {
176
+ throw new FoundationError("CONSUMER_INVALID", "explain requires a rule ID.");
177
+ }
178
+ const metadata = RULES_BY_ID.get(ruleId);
179
+ if (metadata === undefined) {
180
+ throw new FoundationError("CONSUMER_INVALID", `Unknown rule ID: ${ruleId}.`);
181
+ }
182
+ process.stdout.write(json
183
+ ? `${JSON.stringify(metadata, null, 2)}\n`
184
+ : `${metadata.id}\n${metadata.rationale}\nFix: ${metadata.remediation}\nDocs: ${metadata.documentation}\n`);
128
185
  break;
129
186
  }
130
187
  case "help":
@@ -135,7 +192,7 @@ async function main() {
135
192
  }
136
193
  case "status": {
137
194
  const status = await service.status(parsed.consumerRoot);
138
- printStatus(status, parsed.json);
195
+ printStatus(status, json);
139
196
  if (status.mode === "INVALID") {
140
197
  process.exitCode = 1;
141
198
  }
@@ -147,6 +204,14 @@ async function main() {
147
204
  process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
148
205
  break;
149
206
  }
207
+ case "schema": {
208
+ const schemaId = parsed.positional[0];
209
+ if (schemaId === undefined || !isFoundationSchemaId(schemaId)) {
210
+ throw new FoundationError("CONSUMER_INVALID", `Unknown schema ID: ${schemaId ?? "missing"}.`);
211
+ }
212
+ process.stdout.write(await readFoundationSchema(schemaId));
213
+ break;
214
+ }
150
215
  case "version":
151
216
  case "--version":
152
217
  case "-v": {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CapabilityDefinition } from "../capability-runtime.js";
2
+ export declare const CAPABILITY_REGISTRY: ReadonlyMap<string, CapabilityDefinition>;
3
+ //# sourceMappingURL=capability-registry.d.ts.map