@agent-teams/engineering-foundation 0.9.0 → 0.10.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 (86) hide show
  1. package/README.md +5 -0
  2. package/dist/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.d.ts +5 -0
  3. package/dist/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.d.ts.map +1 -1
  4. package/dist/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.js +48 -27
  5. package/dist/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.js.map +1 -1
  6. package/dist/capabilities/contract-json-schema-releases/application/ports/json-schema-release-inspector.d.ts +1 -0
  7. package/dist/capabilities/contract-json-schema-releases/application/ports/json-schema-release-inspector.d.ts.map +1 -1
  8. package/dist/capabilities/executable-specifications/adapters/outbound/filesystem/filesystem-executable-specification-inspector.d.ts +24 -0
  9. package/dist/capabilities/executable-specifications/adapters/outbound/filesystem/filesystem-executable-specification-inspector.d.ts.map +1 -0
  10. package/dist/capabilities/executable-specifications/adapters/outbound/filesystem/filesystem-executable-specification-inspector.js +244 -0
  11. package/dist/capabilities/executable-specifications/adapters/outbound/filesystem/filesystem-executable-specification-inspector.js.map +1 -0
  12. package/dist/capabilities/executable-specifications/application/model/executable-specification.d.ts +58 -0
  13. package/dist/capabilities/executable-specifications/application/model/executable-specification.d.ts.map +1 -0
  14. package/dist/capabilities/executable-specifications/application/model/executable-specification.js +2 -0
  15. package/dist/capabilities/executable-specifications/application/model/executable-specification.js.map +1 -0
  16. package/dist/capabilities/executable-specifications/application/policies/evaluate-executable-specifications.d.ts +6 -0
  17. package/dist/capabilities/executable-specifications/application/policies/evaluate-executable-specifications.d.ts.map +1 -0
  18. package/dist/capabilities/executable-specifications/application/policies/evaluate-executable-specifications.js +277 -0
  19. package/dist/capabilities/executable-specifications/application/policies/evaluate-executable-specifications.js.map +1 -0
  20. package/dist/capabilities/executable-specifications/application/policies/portable-executable-specification-path.d.ts +10 -0
  21. package/dist/capabilities/executable-specifications/application/policies/portable-executable-specification-path.d.ts.map +1 -0
  22. package/dist/capabilities/executable-specifications/application/policies/portable-executable-specification-path.js +76 -0
  23. package/dist/capabilities/executable-specifications/application/policies/portable-executable-specification-path.js.map +1 -0
  24. package/dist/capabilities/executable-specifications/application/ports/executable-specification-inspector.d.ts +9 -0
  25. package/dist/capabilities/executable-specifications/application/ports/executable-specification-inspector.d.ts.map +1 -0
  26. package/dist/capabilities/executable-specifications/application/ports/executable-specification-inspector.js +2 -0
  27. package/dist/capabilities/executable-specifications/application/ports/executable-specification-inspector.js.map +1 -0
  28. package/dist/capabilities/executable-specifications/application/rules.d.ts +22 -0
  29. package/dist/capabilities/executable-specifications/application/rules.d.ts.map +1 -0
  30. package/dist/capabilities/executable-specifications/application/rules.js +23 -0
  31. package/dist/capabilities/executable-specifications/application/rules.js.map +1 -0
  32. package/dist/capabilities/executable-specifications/application/use-cases/analyze-executable-specifications.d.ts +8 -0
  33. package/dist/capabilities/executable-specifications/application/use-cases/analyze-executable-specifications.d.ts.map +1 -0
  34. package/dist/capabilities/executable-specifications/application/use-cases/analyze-executable-specifications.js +36 -0
  35. package/dist/capabilities/executable-specifications/application/use-cases/analyze-executable-specifications.js.map +1 -0
  36. package/dist/capabilities/executable-specifications/contract/config.d.ts +5 -0
  37. package/dist/capabilities/executable-specifications/contract/config.d.ts.map +1 -0
  38. package/dist/capabilities/executable-specifications/contract/config.js +155 -0
  39. package/dist/capabilities/executable-specifications/contract/config.js.map +1 -0
  40. package/dist/capabilities/executable-specifications/module.d.ts +10 -0
  41. package/dist/capabilities/executable-specifications/module.d.ts.map +1 -0
  42. package/dist/capabilities/executable-specifications/module.js +52 -0
  43. package/dist/capabilities/executable-specifications/module.js.map +1 -0
  44. package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts +2 -0
  45. package/dist/capabilities/source-dependencies/application/model/source-workspace.d.ts.map +1 -1
  46. package/dist/capabilities/source-dependencies/application/policies/evaluate-resolved-source-dependency.d.ts +1 -0
  47. package/dist/capabilities/source-dependencies/application/policies/evaluate-resolved-source-dependency.d.ts.map +1 -1
  48. package/dist/capabilities/source-dependencies/application/policies/evaluate-resolved-source-dependency.js +47 -3
  49. package/dist/capabilities/source-dependencies/application/policies/evaluate-resolved-source-dependency.js.map +1 -1
  50. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.d.ts.map +1 -1
  51. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.js +14 -1
  52. package/dist/capabilities/source-dependencies/application/policies/evaluate-source-dependencies.js.map +1 -1
  53. package/dist/capabilities/source-dependencies/application/rules.d.ts +2 -0
  54. package/dist/capabilities/source-dependencies/application/rules.d.ts.map +1 -1
  55. package/dist/capabilities/source-dependencies/application/rules.js +2 -0
  56. package/dist/capabilities/source-dependencies/application/rules.js.map +1 -1
  57. package/dist/capabilities/source-dependencies/contract/config.d.ts.map +1 -1
  58. package/dist/capabilities/source-dependencies/contract/config.js +5 -0
  59. package/dist/capabilities/source-dependencies/contract/config.js.map +1 -1
  60. package/dist/composition/capability-registry.d.ts.map +1 -1
  61. package/dist/composition/capability-registry.js +2 -0
  62. package/dist/composition/capability-registry.js.map +1 -1
  63. package/dist/composition/rule-registry.d.ts.map +1 -1
  64. package/dist/composition/rule-registry.js +2 -0
  65. package/dist/composition/rule-registry.js.map +1 -1
  66. package/dist/foundation-config.d.ts +1 -1
  67. package/dist/foundation-config.d.ts.map +1 -1
  68. package/dist/foundation-config.js +2 -0
  69. package/dist/foundation-config.js.map +1 -1
  70. package/dist/schema-ids.d.ts +1 -1
  71. package/dist/schema-ids.d.ts.map +1 -1
  72. package/dist/schema-ids.js +2 -0
  73. package/dist/schema-ids.js.map +1 -1
  74. package/dist/strict-json.d.ts +7 -0
  75. package/dist/strict-json.d.ts.map +1 -0
  76. package/dist/strict-json.js +41 -0
  77. package/dist/strict-json.js.map +1 -0
  78. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts +1 -0
  79. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.d.ts.map +1 -1
  80. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js +7 -0
  81. package/dist/workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js.map +1 -1
  82. package/package.json +4 -1
  83. package/schemas/architecture-source-dependencies/v1.schema.json +1 -0
  84. package/schemas/foundation-config/v1.schema.json +10 -0
  85. package/schemas/quality-executable-specification-catalog/v1.schema.json +201 -0
  86. package/schemas/quality-executable-specifications/v1.schema.json +20 -0
package/README.md CHANGED
@@ -41,6 +41,11 @@ contract-evolution, suppression, public API, and repository-security checks are
41
41
  adopted independently with consumer-owned policy and qualification evidence.
42
42
  Installing or upgrading this package never enables them automatically.
43
43
 
44
+ `quality.executable-specifications` optionally validates a consumer-owned JSON
45
+ catalog connecting schemas, documents, generated types, ownership evidence, and
46
+ independent consumer gate scripts. It never runs those scripts or imports
47
+ consumer state models.
48
+
44
49
  Repositories may also declare `repository.agent-workflow` and expose
45
50
  `agent-teams-foundation agent-workflow changed`. Foundation then discovers the
46
51
  current Git delta and invokes the consumer's configured pnpm scripts. This local
@@ -1,11 +1,16 @@
1
1
  import type { JsonSchemaFixture, JsonSchemaInspection } from "../../../application/model/json-schema-release.js";
2
2
  import type { JsonSchemaReleaseInspector } from "../../../application/ports/json-schema-release-inspector.js";
3
+ type JsonEvidenceReader = (repositoryPath: string) => Promise<Buffer | undefined>;
3
4
  export declare class AjvJsonSchemaReleaseInspector implements JsonSchemaReleaseInspector {
5
+ private readonly evidenceReader?;
6
+ constructor(evidenceReader?: JsonEvidenceReader | undefined);
4
7
  inspect(input: {
5
8
  readonly consumerRoot: string;
6
9
  readonly schemaPaths: readonly string[];
7
10
  readonly fixtures: readonly JsonSchemaFixture[];
11
+ readonly requireMixedExpectations?: boolean;
8
12
  readonly signal?: AbortSignal;
9
13
  }): Promise<JsonSchemaInspection>;
10
14
  }
15
+ export {};
11
16
  //# sourceMappingURL=ajv-json-schema-release-inspector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ajv-json-schema-release-inspector.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,oBAAoB,EACrB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AA0W9G,qBAAa,6BAA8B,YAAW,0BAA0B;IACxE,OAAO,CAAC,KAAK,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuEhC;CACF"}
1
+ {"version":3,"file":"ajv-json-schema-release-inspector.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAEV,iBAAiB,EAEjB,oBAAoB,EACrB,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6DAA6D,CAAC;AAoE9G,KAAK,kBAAkB,GAAG,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAmUlF,qBAAa,6BAA8B,YAAW,0BAA0B;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAA5C,YAA6B,cAAc,CAAC,EAAE,kBAAkB,YAAA,EAAI;IAE9D,OAAO,CAAC,KAAK,EAAE;QACnB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAChD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0EhC;CACF"}
@@ -7,6 +7,7 @@ import { compareBinaryStrings } from "../../../../../binary-string-comparator.js
7
7
  import { CapabilityInputError } from "../../../../../capability-runtime.js";
8
8
  import { ContainedFileReadError, readContainedRegularFile } from "../../../../../filesystem-path-safety.js";
9
9
  import { assertNotCancelled, assertRepositoryRelativePath } from "../../../../../strict-yaml.js";
10
+ import { parseStrictJson, StrictJsonError } from "../../../../../strict-json.js";
10
11
  const MAX_JSON_BYTES = 4 * 1024 * 1024;
11
12
  const DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema";
12
13
  const SHA256_DIGEST = /^sha256:[a-f0-9]{64}$/u;
@@ -59,38 +60,53 @@ function canonicalJson(value) {
59
60
  }
60
61
  inputError("JSON_SCHEMA_VALUE_INVALID", "JSON evidence contains an unsupported value.");
61
62
  }
62
- async function safeJsonFile(root, repositoryPath) {
63
+ async function safeJsonFile(root, repositoryPath, evidenceReader) {
63
64
  assertRepositoryRelativePath(repositoryPath, "json-schema-release-inspection");
64
65
  if (!repositoryPath.endsWith(".json")) {
65
66
  inputError("JSON_SCHEMA_PATH_INVALID", `JSON evidence path must end with .json: ${repositoryPath}.`);
66
67
  }
67
68
  let bytes;
68
- try {
69
- bytes = await readContainedRegularFile({
70
- candidate: resolve(root, repositoryPath),
71
- maxBytes: MAX_JSON_BYTES,
72
- root
73
- });
74
- }
75
- catch (error) {
76
- if (error instanceof ContainedFileReadError) {
77
- if (error.failure === "escape") {
78
- inputError("JSON_SCHEMA_PATH_ESCAPE", `JSON evidence escapes the consumer root: ${repositoryPath}.`);
79
- }
80
- if (error.failure === "symlink") {
81
- inputError("JSON_SCHEMA_SYMLINK_PROHIBITED", `JSON evidence cannot traverse a symbolic link: ${repositoryPath}.`);
82
- }
83
- if (error.failure === "invalid") {
84
- inputError("JSON_SCHEMA_FILE_INVALID", `JSON evidence is not a supported file: ${repositoryPath}.`);
85
- }
69
+ if (evidenceReader !== undefined) {
70
+ const observed = await evidenceReader(repositoryPath);
71
+ if (observed === undefined) {
86
72
  inputError("JSON_SCHEMA_FILE_UNAVAILABLE", `JSON evidence is unavailable: ${repositoryPath}.`);
87
73
  }
88
- throw error;
74
+ if (observed.byteLength > MAX_JSON_BYTES) {
75
+ inputError("JSON_SCHEMA_FILE_INVALID", `JSON evidence is not a supported file: ${repositoryPath}.`);
76
+ }
77
+ bytes = observed;
78
+ }
79
+ else {
80
+ try {
81
+ bytes = await readContainedRegularFile({
82
+ candidate: resolve(root, repositoryPath),
83
+ maxBytes: MAX_JSON_BYTES,
84
+ root
85
+ });
86
+ }
87
+ catch (error) {
88
+ if (error instanceof ContainedFileReadError) {
89
+ if (error.failure === "escape") {
90
+ inputError("JSON_SCHEMA_PATH_ESCAPE", `JSON evidence escapes the consumer root: ${repositoryPath}.`);
91
+ }
92
+ if (error.failure === "symlink") {
93
+ inputError("JSON_SCHEMA_SYMLINK_PROHIBITED", `JSON evidence cannot traverse a symbolic link: ${repositoryPath}.`);
94
+ }
95
+ if (error.failure === "invalid") {
96
+ inputError("JSON_SCHEMA_FILE_INVALID", `JSON evidence is not a supported file: ${repositoryPath}.`);
97
+ }
98
+ inputError("JSON_SCHEMA_FILE_UNAVAILABLE", `JSON evidence is unavailable: ${repositoryPath}.`);
99
+ }
100
+ throw error;
101
+ }
89
102
  }
90
103
  try {
91
- return JSON.parse(bytes.toString("utf8"));
104
+ return parseStrictJson(bytes.toString("utf8"));
92
105
  }
93
- catch {
106
+ catch (error) {
107
+ if (error instanceof StrictJsonError && error.failure === "duplicate-key") {
108
+ inputError("JSON_SCHEMA_DUPLICATE_KEY", `JSON evidence contains a duplicate object key: ${repositoryPath}.`);
109
+ }
94
110
  inputError("JSON_SCHEMA_FILE_INVALID", `JSON evidence is invalid: ${repositoryPath}.`);
95
111
  }
96
112
  }
@@ -240,7 +256,7 @@ function assertLocalReferences(value, sourceId, knownSchemaIds, documentRoot = f
240
256
  assertLocalReferences(child, currentId, knownSchemaIds);
241
257
  }
242
258
  }
243
- function assertFixtures(fixtures) {
259
+ function assertFixtures(fixtures, requireMixedExpectations) {
244
260
  const ids = new Set();
245
261
  const expectations = new Set();
246
262
  for (const fixture of fixtures) {
@@ -258,7 +274,8 @@ function assertFixtures(fixtures) {
258
274
  inputError("JSON_SCHEMA_FIXTURE_INVALID", `Fixture schemaId is invalid: ${fixture.id}.`);
259
275
  }
260
276
  }
261
- if (!expectations.has("valid") || !expectations.has("invalid")) {
277
+ if (requireMixedExpectations &&
278
+ (!expectations.has("valid") || !expectations.has("invalid"))) {
262
279
  inputError("JSON_SCHEMA_FIXTURE_CORPUS_INCOMPLETE", "Fixture corpus must contain at least one valid and one invalid example.");
263
280
  }
264
281
  }
@@ -299,6 +316,10 @@ function fixtureCorpusDigest(fixtures, values) {
299
316
  .toSorted((left, right) => compareBinaryStrings(left.id, right.id))));
300
317
  }
301
318
  export class AjvJsonSchemaReleaseInspector {
319
+ evidenceReader;
320
+ constructor(evidenceReader) {
321
+ this.evidenceReader = evidenceReader;
322
+ }
302
323
  async inspect(input) {
303
324
  assertNotCancelled(input.signal);
304
325
  if (input.schemaPaths.length === 0 || input.schemaPaths.length > 1_000) {
@@ -307,7 +328,7 @@ export class AjvJsonSchemaReleaseInspector {
307
328
  if (new Set(input.schemaPaths).size !== input.schemaPaths.length) {
308
329
  inputError("JSON_SCHEMA_PATHS_INVALID", "Contract schema paths must be unique.");
309
330
  }
310
- assertFixtures(input.fixtures);
331
+ assertFixtures(input.fixtures, input.requireMixedExpectations ?? true);
311
332
  const root = await realpath(input.consumerRoot).catch(() => inputError("CONSUMER_ROOT_UNAVAILABLE", "Consumer root must be an existing accessible directory."));
312
333
  if (!(await stat(root)).isDirectory()) {
313
334
  inputError("CONSUMER_ROOT_INVALID", "Consumer root must be a directory.");
@@ -315,7 +336,7 @@ export class AjvJsonSchemaReleaseInspector {
315
336
  const documents = [];
316
337
  for (const path of input.schemaPaths.toSorted(compareBinaryStrings)) {
317
338
  assertNotCancelled(input.signal);
318
- const value = record(await safeJsonFile(root, path), `schema ${path}`);
339
+ const value = record(await safeJsonFile(root, path, this.evidenceReader), `schema ${path}`);
319
340
  if (value["$schema"] !== DRAFT_2020_12) {
320
341
  inputError("JSON_SCHEMA_DIALECT_INVALID", `Schema must declare JSON Schema draft 2020-12: ${path}.`);
321
342
  }
@@ -337,7 +358,7 @@ export class AjvJsonSchemaReleaseInspector {
337
358
  const fixtureResults = [];
338
359
  for (const fixture of input.fixtures.toSorted((left, right) => compareBinaryStrings(left.id, right.id))) {
339
360
  assertNotCancelled(input.signal);
340
- const value = await safeJsonFile(root, fixture.path);
361
+ const value = await safeJsonFile(root, fixture.path, this.evidenceReader);
341
362
  fixtureValues.set(fixture.id, value);
342
363
  const validate = ajv.getSchema(fixture.schemaId);
343
364
  if (validate === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"ajv-json-schema-release-inspector.js","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ajv-json-schema-release-inspector.js","sourceRoot":"","sources":["../../../../../../src/capabilities/contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface JsonSchemaReleaseInspector {
4
4
  readonly consumerRoot: string;
5
5
  readonly schemaPaths: readonly string[];
6
6
  readonly fixtures: readonly JsonSchemaFixture[];
7
+ readonly requireMixedExpectations?: boolean;
7
8
  readonly signal?: AbortSignal;
8
9
  }): Promise<JsonSchemaInspection>;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema-release-inspector.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-json-schema-releases/application/ports/json-schema-release-inspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,0BAA0B;IACzC,OAAO,CACL,KAAK,EAAE;QACL,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAChD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GACA,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"json-schema-release-inspector.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/contract-json-schema-releases/application/ports/json-schema-release-inspector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,WAAW,0BAA0B;IACzC,OAAO,CACL,KAAK,EAAE;QACL,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;QAChD,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;QAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B,GACA,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC"}
@@ -0,0 +1,24 @@
1
+ import type { ObservedGateBinding } from "../../../application/model/executable-specification.js";
2
+ import type { ExecutableSpecificationInspector } from "../../../application/ports/executable-specification-inspector.js";
3
+ interface WorkspaceManifestPathReader {
4
+ discoverManifestPaths(consumerRoot: string, workspaceManifestPath: string, signal?: AbortSignal): Promise<readonly string[]>;
5
+ }
6
+ export declare class FilesystemExecutableSpecificationInspector implements ExecutableSpecificationInspector {
7
+ #private;
8
+ constructor(workspaceManifestPathReader?: WorkspaceManifestPathReader, maxAggregateArtifactBytes?: number);
9
+ inspectCatalog(input: {
10
+ readonly consumerRoot: string;
11
+ readonly catalog: import("../../../application/model/executable-specification.js").ExecutableSpecificationCatalog;
12
+ readonly signal?: AbortSignal;
13
+ }): Promise<readonly Readonly<{
14
+ id: string;
15
+ jsonSchemas: import("../../../../contract-json-schema-releases/application/model/json-schema-release.js").JsonSchemaInspection;
16
+ missingArtifactPaths: readonly string[];
17
+ gates: Readonly<{
18
+ [k: string]: ObservedGateBinding;
19
+ }>;
20
+ artifactDigest: `sha256:${string}`;
21
+ }>[]>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=filesystem-executable-specification-inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-executable-specification-inspector.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/executable-specifications/adapters/outbound/filesystem/filesystem-executable-specification-inspector.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,wDAAwD,CAAC;AAChE,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,kEAAkE,CAAC;AAgBzH,UAAU,2BAA2B;IACnC,qBAAqB,CACnB,YAAY,EAAE,MAAM,EACpB,qBAAqB,EAAE,MAAM,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAC/B;AAgLD,qBAAa,0CACX,YAAW,gCAAgC;;IAK3C,YACE,2BAA2B,GAAE,2BAAgE,EAC7F,yBAAyB,SAA+B,EAWzD;IAEK,cAAc,CAAC,KAAK,EAAE;QAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,wDAAwD,EAAE,8BAA8B,CAAC;QAClH,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;KAC/B;;;;;;;;UA2HA;CACF"}
@@ -0,0 +1,244 @@
1
+ import { createHash } from "node:crypto";
2
+ import { resolve } from "node:path";
3
+ import { compareBinaryStrings } from "../../../../../binary-string-comparator.js";
4
+ import { CapabilityInputError } from "../../../../../capability-runtime.js";
5
+ import { ContainedFileReadError, readContainedRegularFile } from "../../../../../filesystem-path-safety.js";
6
+ import { assertNotCancelled } from "../../../../../strict-yaml.js";
7
+ import { parseStrictJson, StrictJsonError } from "../../../../../strict-json.js";
8
+ import { PnpmWorkspaceInventoryReader } from "../../../../../workspace-inventory/adapters/outbound/pnpm/pnpm-workspace-inventory-reader.js";
9
+ import { AjvJsonSchemaReleaseInspector } from "../../../../contract-json-schema-releases/adapters/outbound/filesystem/ajv-json-schema-release-inspector.js";
10
+ import { executableSpecificationArtifactPaths, executableSpecificationPathDeclarations, portableExecutableSpecificationPathIdentity, portableExecutableSpecificationPathProblem } from "../../../application/policies/portable-executable-specification-path.js";
11
+ const MAX_ARTIFACT_BYTES = 8 * 1024 * 1024;
12
+ const MAX_AGGREGATE_ARTIFACT_BYTES = 32 * 1024 * 1024;
13
+ function inputError(code, message) {
14
+ throw new CapabilityInputError({
15
+ code,
16
+ message,
17
+ phase: "executable-specification-inspection",
18
+ retryable: false
19
+ });
20
+ }
21
+ function isRecord(value) {
22
+ return typeof value === "object" && value !== null && !Array.isArray(value);
23
+ }
24
+ function canonicalJson(value) {
25
+ if (value === null || typeof value === "boolean" || typeof value === "string") {
26
+ return JSON.stringify(value);
27
+ }
28
+ if (typeof value === "number" && Number.isFinite(value)) {
29
+ return JSON.stringify(value);
30
+ }
31
+ if (Array.isArray(value)) {
32
+ return `[${value.map(canonicalJson).join(",")}]`;
33
+ }
34
+ if (isRecord(value)) {
35
+ return `{${Object.entries(value)
36
+ .toSorted(([left], [right]) => compareBinaryStrings(left, right))
37
+ .map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`)
38
+ .join(",")}}`;
39
+ }
40
+ inputError("EXECUTABLE_SPECIFICATION_DIGEST_INVALID", "Artifact digest input is invalid.");
41
+ }
42
+ async function readArtifact(root, repositoryPath) {
43
+ try {
44
+ return await readContainedRegularFile({
45
+ candidate: resolve(root, repositoryPath),
46
+ maxBytes: MAX_ARTIFACT_BYTES,
47
+ root
48
+ });
49
+ }
50
+ catch (error) {
51
+ if (error instanceof ContainedFileReadError) {
52
+ if (error.failure === "missing") {
53
+ return undefined;
54
+ }
55
+ inputError(`EXECUTABLE_SPECIFICATION_ARTIFACT_${error.failure.toUpperCase()}`, `Specification artifact is not a safe contained regular file: ${repositoryPath}.`);
56
+ }
57
+ throw error;
58
+ }
59
+ }
60
+ class ArtifactReadSession {
61
+ root;
62
+ maxAggregateBytes;
63
+ #cache = new Map();
64
+ #aggregateBytes = 0;
65
+ constructor(root, maxAggregateBytes) {
66
+ this.root = root;
67
+ this.maxAggregateBytes = maxAggregateBytes;
68
+ }
69
+ async read(repositoryPath) {
70
+ const identity = portableExecutableSpecificationPathIdentity(repositoryPath);
71
+ const cached = this.#cache.get(identity);
72
+ if (cached !== undefined) {
73
+ if (cached.firstPath !== repositoryPath) {
74
+ inputError("EXECUTABLE_SPECIFICATION_ARTIFACT_PATH_COLLISION", `Artifact paths have the same portable identity: ${cached.firstPath} and ${repositoryPath}.`);
75
+ }
76
+ return cached.result;
77
+ }
78
+ const result = readArtifact(this.root, repositoryPath).then((bytes) => {
79
+ if (bytes !== undefined) {
80
+ if (bytes.byteLength > this.maxAggregateBytes - this.#aggregateBytes) {
81
+ inputError("EXECUTABLE_SPECIFICATION_AGGREGATE_BYTES_EXCEEDED", "Executable specification artifacts and workspace manifests exceed the 32 MiB aggregate inspection budget.");
82
+ }
83
+ this.#aggregateBytes += bytes.byteLength;
84
+ }
85
+ return bytes;
86
+ });
87
+ this.#cache.set(identity, { firstPath: repositoryPath, result });
88
+ return result;
89
+ }
90
+ }
91
+ async function packageCatalog(manifestPaths, artifacts, signal) {
92
+ const packages = new Map();
93
+ for (const manifestPath of manifestPaths) {
94
+ assertNotCancelled(signal);
95
+ const bytes = await artifacts.read(manifestPath);
96
+ if (bytes === undefined) {
97
+ continue;
98
+ }
99
+ let value;
100
+ try {
101
+ value = parseStrictJson(bytes.toString("utf8"));
102
+ }
103
+ catch (error) {
104
+ if (error instanceof StrictJsonError && error.failure === "duplicate-key") {
105
+ inputError("EXECUTABLE_SPECIFICATION_PACKAGE_MANIFEST_DUPLICATE_KEY", `Package manifest contains duplicate object keys: ${manifestPath}.`);
106
+ }
107
+ inputError("EXECUTABLE_SPECIFICATION_PACKAGE_MANIFEST_INVALID", `Package manifest is invalid JSON: ${manifestPath}.`);
108
+ }
109
+ if (!isRecord(value) || typeof value["name"] !== "string") {
110
+ continue;
111
+ }
112
+ const name = value["name"];
113
+ if (packages.has(name)) {
114
+ inputError("EXECUTABLE_SPECIFICATION_PACKAGE_DUPLICATE", `Gate package name is not unique in the workspace: ${name}.`);
115
+ }
116
+ const scripts = isRecord(value["scripts"])
117
+ ? new Set(Object.entries(value["scripts"])
118
+ .filter(([, command]) => typeof command === "string" && command.trim().length > 0)
119
+ .map(([script]) => script))
120
+ : new Set();
121
+ packages.set(name, { manifestPath, scripts });
122
+ }
123
+ return packages;
124
+ }
125
+ function observeGate(binding, packages) {
126
+ const target = packages.get(binding.packageName);
127
+ return Object.freeze({
128
+ ...binding,
129
+ ...(target === undefined ? {} : { manifestPath: target.manifestPath }),
130
+ packageExists: target !== undefined,
131
+ scriptExists: target?.scripts.has(binding.script) ?? false
132
+ });
133
+ }
134
+ function gateEntries(specification) {
135
+ return [
136
+ ["mutation", specification.gateBindings.mutation],
137
+ ["property", specification.gateBindings.property],
138
+ ...(specification.gateBindings.typeGeneration === undefined
139
+ ? []
140
+ : [['typeGeneration', specification.gateBindings.typeGeneration]]),
141
+ ...(specification.stateModel.kind === "xstate"
142
+ ? [['spec-model', specification.stateModel.gateBinding]]
143
+ : [])
144
+ ];
145
+ }
146
+ export class FilesystemExecutableSpecificationInspector {
147
+ #workspaceManifestPathReader;
148
+ #maxAggregateArtifactBytes;
149
+ constructor(workspaceManifestPathReader = new PnpmWorkspaceInventoryReader(), maxAggregateArtifactBytes = MAX_AGGREGATE_ARTIFACT_BYTES) {
150
+ if (!Number.isSafeInteger(maxAggregateArtifactBytes) ||
151
+ maxAggregateArtifactBytes < 1 ||
152
+ maxAggregateArtifactBytes > MAX_AGGREGATE_ARTIFACT_BYTES) {
153
+ throw new TypeError("Aggregate artifact budget must be a positive safe integer up to 32 MiB.");
154
+ }
155
+ this.#workspaceManifestPathReader = workspaceManifestPathReader;
156
+ this.#maxAggregateArtifactBytes = maxAggregateArtifactBytes;
157
+ }
158
+ async inspectCatalog(input) {
159
+ assertNotCancelled(input.signal);
160
+ const artifacts = new ArtifactReadSession(input.consumerRoot, this.#maxAggregateArtifactBytes);
161
+ const jsonSchemaInspector = new AjvJsonSchemaReleaseInspector((repositoryPath) => artifacts.read(repositoryPath));
162
+ const manifestPaths = await this.#workspaceManifestPathReader.discoverManifestPaths(input.consumerRoot, "pnpm-workspace.yaml", input.signal);
163
+ const occupiedPaths = new Map();
164
+ for (const declaration of executableSpecificationPathDeclarations(input.catalog)) {
165
+ const identity = portableExecutableSpecificationPathIdentity(declaration.path);
166
+ occupiedPaths.set(identity, declaration);
167
+ }
168
+ const selectedManifestIdentities = new Map();
169
+ for (const manifestPath of manifestPaths) {
170
+ const portabilityProblem = portableExecutableSpecificationPathProblem(manifestPath);
171
+ if (portabilityProblem !== undefined) {
172
+ inputError("EXECUTABLE_SPECIFICATION_MANIFEST_PATH_NOT_PORTABLE", `Selected workspace manifest path is not portable: ${manifestPath} (${portabilityProblem}).`);
173
+ }
174
+ const identity = portableExecutableSpecificationPathIdentity(manifestPath);
175
+ const previousManifest = selectedManifestIdentities.get(identity);
176
+ if (previousManifest !== undefined && previousManifest !== manifestPath) {
177
+ inputError("EXECUTABLE_SPECIFICATION_MANIFEST_PATH_COLLISION", `Selected workspace manifests have the same portable path identity: ${previousManifest} and ${manifestPath}.`);
178
+ }
179
+ const occupiedPath = occupiedPaths.get(identity);
180
+ if (occupiedPath !== undefined &&
181
+ !(occupiedPath.role === "reserved-root-package" &&
182
+ occupiedPath.path === "package.json" &&
183
+ manifestPath === "package.json")) {
184
+ inputError("EXECUTABLE_SPECIFICATION_MANIFEST_PATH_COLLISION", `Selected workspace manifest collides with a declared or reserved executable specification path: ${manifestPath}.`);
185
+ }
186
+ selectedManifestIdentities.set(identity, manifestPath);
187
+ }
188
+ const uniqueManifestPaths = [...selectedManifestIdentities.values()];
189
+ const paths = [
190
+ ...new Set(input.catalog.specifications.flatMap(executableSpecificationArtifactPaths))
191
+ ].toSorted(compareBinaryStrings);
192
+ if (new Set([...uniqueManifestPaths, ...paths].map(portableExecutableSpecificationPathIdentity)).size > 1_024) {
193
+ inputError("EXECUTABLE_SPECIFICATION_ARTIFACT_COUNT_EXCEEDED", "Executable specification catalogs and selected workspace packages may reference at most 1024 unique artifacts.");
194
+ }
195
+ const packages = await packageCatalog(uniqueManifestPaths, artifacts, input.signal);
196
+ for (const repositoryPath of paths) {
197
+ assertNotCancelled(input.signal);
198
+ await artifacts.read(repositoryPath);
199
+ }
200
+ const observations = [];
201
+ for (const specification of input.catalog.specifications) {
202
+ assertNotCancelled(input.signal);
203
+ const content = new Map();
204
+ const missingArtifactPaths = [];
205
+ for (const repositoryPath of [...new Set(executableSpecificationArtifactPaths(specification))].toSorted(compareBinaryStrings)) {
206
+ const bytes = await artifacts.read(repositoryPath);
207
+ if (bytes === undefined) {
208
+ missingArtifactPaths.push(repositoryPath);
209
+ }
210
+ else {
211
+ content.set(repositoryPath, createHash("sha256").update(bytes).digest("hex"));
212
+ }
213
+ }
214
+ const fixtures = specification.documents.map((document, index) => ({
215
+ id: `${specification.id.slice(0, 90)}.document.${index}`,
216
+ path: document.path,
217
+ schemaId: document.schemaId,
218
+ expectation: "valid"
219
+ }));
220
+ const jsonSchemas = await jsonSchemaInspector.inspect({
221
+ consumerRoot: input.consumerRoot,
222
+ schemaPaths: specification.schemaPaths,
223
+ fixtures,
224
+ requireMixedExpectations: false,
225
+ ...(input.signal === undefined ? {} : { signal: input.signal })
226
+ });
227
+ const gates = Object.fromEntries(gateEntries(specification).map(([role, binding]) => [
228
+ role,
229
+ observeGate(binding, packages)
230
+ ]));
231
+ observations.push(Object.freeze({
232
+ id: specification.id,
233
+ jsonSchemas,
234
+ missingArtifactPaths: Object.freeze(missingArtifactPaths),
235
+ gates: Object.freeze(gates),
236
+ artifactDigest: `sha256:${createHash("sha256")
237
+ .update(canonicalJson(Object.fromEntries(content)), "utf8")
238
+ .digest("hex")}`
239
+ }));
240
+ }
241
+ return Object.freeze(observations);
242
+ }
243
+ }
244
+ //# sourceMappingURL=filesystem-executable-specification-inspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-executable-specification-inspector.js","sourceRoot":"","sources":["../../../../../../src/capabilities/executable-specifications/adapters/outbound/filesystem/filesystem-executable-specification-inspector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { JsonSchemaInspection } from "../../../contract-json-schema-releases/application/model/json-schema-release.js";
2
+ export interface ExecutableSpecificationDocument {
3
+ readonly path: string;
4
+ readonly schemaId: string;
5
+ }
6
+ export interface GeneratedTypeBinding {
7
+ readonly schemaId: string;
8
+ readonly outputPath: string;
9
+ }
10
+ export interface ConsumerGateBinding {
11
+ readonly packageName: string;
12
+ readonly script: string;
13
+ }
14
+ export interface NoStateModel {
15
+ readonly kind: "none";
16
+ }
17
+ export interface XstateStateModel {
18
+ readonly kind: "xstate";
19
+ readonly axes: readonly string[];
20
+ readonly modelPath: string;
21
+ readonly adapterPath: string;
22
+ readonly tracesPath: string;
23
+ readonly diagramPath: string;
24
+ readonly gateBinding: ConsumerGateBinding;
25
+ }
26
+ export interface ExecutableSpecification {
27
+ readonly id: string;
28
+ readonly ownerDocs: readonly string[];
29
+ readonly adrRefs: readonly string[];
30
+ readonly schemaPaths: readonly string[];
31
+ readonly documents: readonly ExecutableSpecificationDocument[];
32
+ readonly generatedTypes: readonly GeneratedTypeBinding[];
33
+ readonly gateBindings: {
34
+ readonly typeGeneration?: ConsumerGateBinding;
35
+ readonly property: ConsumerGateBinding;
36
+ readonly mutation: ConsumerGateBinding;
37
+ };
38
+ readonly stateModel: NoStateModel | XstateStateModel;
39
+ }
40
+ export interface ExecutableSpecificationCatalog {
41
+ readonly schemaVersion: 1;
42
+ readonly configPath: string;
43
+ readonly catalogPath: string;
44
+ readonly specifications: readonly ExecutableSpecification[];
45
+ }
46
+ export interface ObservedGateBinding extends ConsumerGateBinding {
47
+ readonly manifestPath?: string;
48
+ readonly packageExists: boolean;
49
+ readonly scriptExists: boolean;
50
+ }
51
+ export interface ExecutableSpecificationObservation {
52
+ readonly id: string;
53
+ readonly jsonSchemas: JsonSchemaInspection;
54
+ readonly missingArtifactPaths: readonly string[];
55
+ readonly gates: Readonly<Record<string, ObservedGateBinding>>;
56
+ readonly artifactDigest: `sha256:${string}`;
57
+ }
58
+ //# sourceMappingURL=executable-specification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executable-specification.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/executable-specifications/application/model/executable-specification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iFAAiF,CAAC;AAE5H,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAC/D,QAAQ,CAAC,cAAc,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACzD,QAAQ,CAAC,YAAY,EAAE;QACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC;QAC9C,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACvC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACxC,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,YAAY,GAAG,gBAAgB,CAAC;CACtD;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC7D;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC9D,QAAQ,CAAC,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC;CAC7C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=executable-specification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executable-specification.js","sourceRoot":"","sources":["../../../../../src/capabilities/executable-specifications/application/model/executable-specification.ts"],"names":[],"mappings":""}