@agent-teams/docs-protocol 0.1.4 → 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 (119) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +51 -2
  3. package/assets/catalog.json +1 -1
  4. package/assets/transition-catalog.json +1 -1
  5. package/dist/adapters/docs-command-envelope-schema-validator.d.ts.map +1 -1
  6. package/dist/adapters/docs-command-envelope-schema-validator.js +30 -8
  7. package/dist/adapters/docs-command-envelope-schema-validator.js.map +1 -1
  8. package/dist/adapters/docs-profile-schema-validator.d.ts.map +1 -1
  9. package/dist/adapters/docs-profile-schema-validator.js +13 -7
  10. package/dist/adapters/docs-profile-schema-validator.js.map +1 -1
  11. package/dist/adapters/foundation-docs-port.d.ts +10 -9
  12. package/dist/adapters/foundation-docs-port.d.ts.map +1 -1
  13. package/dist/adapters/foundation-docs-port.js +15 -10
  14. package/dist/adapters/foundation-docs-port.js.map +1 -1
  15. package/dist/adapters/node-adoption-inspector.js +2 -2
  16. package/dist/adapters/node-adoption-inspector.js.map +1 -1
  17. package/dist/adapters/node-profile-reader.d.ts +3 -3
  18. package/dist/adapters/node-profile-reader.d.ts.map +1 -1
  19. package/dist/application/authority-handshake.d.ts +4 -4
  20. package/dist/application/authority-handshake.d.ts.map +1 -1
  21. package/dist/application/compiled-document.d.ts +11 -0
  22. package/dist/application/compiled-document.d.ts.map +1 -0
  23. package/dist/application/compiled-document.js +31 -0
  24. package/dist/application/compiled-document.js.map +1 -0
  25. package/dist/application/docs-new-completion.d.ts +5 -4
  26. package/dist/application/docs-new-completion.d.ts.map +1 -1
  27. package/dist/application/docs-new-completion.js.map +1 -1
  28. package/dist/application/docs-protocol-v1-presenter.d.ts +140 -0
  29. package/dist/application/docs-protocol-v1-presenter.d.ts.map +1 -0
  30. package/dist/application/docs-protocol-v1-presenter.js +77 -0
  31. package/dist/application/docs-protocol-v1-presenter.js.map +1 -0
  32. package/dist/application/docs-protocol.d.ts +210 -3
  33. package/dist/application/docs-protocol.d.ts.map +1 -1
  34. package/dist/application/docs-protocol.js +46 -13
  35. package/dist/application/docs-protocol.js.map +1 -1
  36. package/dist/composition/cli-input.d.ts +12 -0
  37. package/dist/composition/cli-input.d.ts.map +1 -0
  38. package/dist/composition/cli-input.js +66 -0
  39. package/dist/composition/cli-input.js.map +1 -0
  40. package/dist/composition/cli.d.ts +4 -4
  41. package/dist/composition/cli.d.ts.map +1 -1
  42. package/dist/composition/cli.js +21 -144
  43. package/dist/composition/cli.js.map +1 -1
  44. package/dist/composition/docs-human-renderer.d.ts +5 -0
  45. package/dist/composition/docs-human-renderer.d.ts.map +1 -0
  46. package/dist/composition/docs-human-renderer.js +94 -0
  47. package/dist/composition/docs-human-renderer.js.map +1 -0
  48. package/dist/composition/node-docs-api.d.ts +191 -0
  49. package/dist/composition/node-docs-api.d.ts.map +1 -1
  50. package/dist/composition/node-docs-api.js +18 -0
  51. package/dist/composition/node-docs-api.js.map +1 -1
  52. package/dist/composition/qualification-cli.d.ts +2 -0
  53. package/dist/composition/qualification-cli.d.ts.map +1 -0
  54. package/dist/composition/qualification-cli.js +119 -0
  55. package/dist/composition/qualification-cli.js.map +1 -0
  56. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
  57. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +8 -3
  58. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
  59. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
  60. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +10 -3
  61. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
  62. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +2 -1
  63. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
  64. package/dist/consumer-integration/application/policies/consumer-integration-assets.js +12 -5
  65. package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
  66. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js +2 -2
  67. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js.map +1 -1
  68. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +2 -2
  69. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
  70. package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts +2 -0
  71. package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts.map +1 -0
  72. package/dist/consumer-integration/composition/canonical-docs-skill-v2.js +2 -0
  73. package/dist/consumer-integration/composition/canonical-docs-skill-v2.js.map +1 -0
  74. package/dist/consumer-integration/generated/canonical-assets.d.ts +2 -1
  75. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
  76. package/dist/consumer-integration/generated/canonical-assets.js +2 -1
  77. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
  78. package/dist/domain/model-v2.d.ts +170 -0
  79. package/dist/domain/model-v2.d.ts.map +1 -0
  80. package/dist/domain/model-v2.js +2 -0
  81. package/dist/domain/model-v2.js.map +1 -0
  82. package/dist/domain/model.d.ts +1 -99
  83. package/dist/domain/model.d.ts.map +1 -1
  84. package/dist/domain/model.js.map +1 -1
  85. package/dist/domain/profile-policy.d.ts +2 -1
  86. package/dist/domain/profile-policy.d.ts.map +1 -1
  87. package/dist/domain/profile-policy.js +20 -12
  88. package/dist/domain/profile-policy.js.map +1 -1
  89. package/dist/index.d.ts +4 -2
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +3 -2
  92. package/dist/index.js.map +1 -1
  93. package/dist/qualification/filesystem-evidence.d.ts +15 -0
  94. package/dist/qualification/filesystem-evidence.d.ts.map +1 -0
  95. package/dist/qualification/filesystem-evidence.js +325 -0
  96. package/dist/qualification/filesystem-evidence.js.map +1 -0
  97. package/dist/qualification/index.d.ts +3 -0
  98. package/dist/qualification/index.d.ts.map +1 -1
  99. package/dist/qualification/index.js +12 -326
  100. package/dist/qualification/index.js.map +1 -1
  101. package/dist/qualification/qualification-runtime.d.ts +58 -0
  102. package/dist/qualification/qualification-runtime.d.ts.map +1 -0
  103. package/dist/qualification/qualification-runtime.js +160 -0
  104. package/dist/qualification/qualification-runtime.js.map +1 -0
  105. package/dist/qualification/qualification-v2-runner.d.ts +4 -0
  106. package/dist/qualification/qualification-v2-runner.d.ts.map +1 -0
  107. package/dist/qualification/qualification-v2-runner.js +306 -0
  108. package/dist/qualification/qualification-v2-runner.js.map +1 -0
  109. package/dist/qualification/v2-contract.d.ts +91 -0
  110. package/dist/qualification/v2-contract.d.ts.map +1 -0
  111. package/dist/qualification/v2-contract.js +2 -0
  112. package/dist/qualification/v2-contract.js.map +1 -0
  113. package/package.json +7 -2
  114. package/schemas/docs-consumer-integration-profile/v2.schema.json +283 -0
  115. package/schemas/docs-protocol-command-envelope/v2.schema.json +285 -0
  116. package/schemas/docs-protocol-profile/v2.schema.json +46 -0
  117. package/schemas/docs-protocol-qualification/v2.schema.json +78 -0
  118. package/schemas/docs-protocol-qualification-receipt/v2.schema.json +113 -0
  119. package/skills/docs/SKILL.md +3 -2
@@ -1,7 +1,8 @@
1
1
  import { type DocsProtocolProfile, type DocsTypeProfile, type ReachabilityAction } from "./model.js";
2
+ import type { DocsProtocolProfileV2 } from "./model-v2.js";
2
3
  export declare class DocsProfileError extends Error {
3
4
  constructor(message: string);
4
5
  }
5
- export declare function parseDocsProtocolProfile(value: unknown): DocsProtocolProfile;
6
+ export declare function parseDocsProtocolProfile(value: unknown): DocsProtocolProfile | DocsProtocolProfileV2;
6
7
  export declare function projectReachability(type: DocsTypeProfile, destination: string, heading: string): ReachabilityAction;
7
8
  //# sourceMappingURL=profile-policy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile-policy.d.ts","sourceRoot":"","sources":["../../src/domain/profile-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AAKpB,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA6CD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CA2B5E;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAuBnH"}
1
+ {"version":3,"file":"profile-policy.d.ts","sourceRoot":"","sources":["../../src/domain/profile-policy.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAK3D,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AA6CD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,qBAAqB,CAmCpG;AAMD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAuBnH"}
@@ -49,8 +49,8 @@ function validatorIds(value) {
49
49
  export function parseDocsProtocolProfile(value) {
50
50
  const candidate = record(value, "profile");
51
51
  exactKeys(candidate, ["schemaVersion", "protocol", "foundationProfile", "agentWorkflow", "semanticValidatorIds"], "profile");
52
- if (candidate["schemaVersion"] !== 1) {
53
- throw new DocsProfileError("profile.schemaVersion must be 1.");
52
+ if (candidate["schemaVersion"] !== 1 && candidate["schemaVersion"] !== 2) {
53
+ throw new DocsProfileError("profile.schemaVersion must be 1 or 2.");
54
54
  }
55
55
  const protocol = record(candidate["protocol"], "profile.protocol");
56
56
  exactKeys(protocol, ["id", "version"], "profile.protocol");
@@ -59,22 +59,30 @@ export function parseDocsProtocolProfile(value) {
59
59
  }
60
60
  const foundationProfile = record(candidate["foundationProfile"], "profile.foundationProfile");
61
61
  exactKeys(foundationProfile, ["metadataSidecarPolicy", "path", "schemaVersion"], "profile.foundationProfile");
62
- if (foundationProfile["schemaVersion"] !== 2 || foundationProfile["metadataSidecarPolicy"] !== "foundation-profile-v2-strict-merge") {
63
- throw new DocsProfileError("profile.foundationProfile must route to Foundation profile v2 strict sidecar merge.");
62
+ const profileV2 = candidate["schemaVersion"] === 1 && foundationProfile["schemaVersion"] === 2 && foundationProfile["metadataSidecarPolicy"] === "foundation-profile-v2-strict-merge";
63
+ const profileV3 = candidate["schemaVersion"] === 2 && foundationProfile["schemaVersion"] === 3 && foundationProfile["metadataSidecarPolicy"] === "foundation-profile-v3-strict-merge";
64
+ if (!profileV2 && !profileV3) {
65
+ throw new DocsProfileError("profile.foundationProfile must match its versioned Foundation profile route.");
64
66
  }
65
67
  const workflow = record(candidate["agentWorkflow"], "profile.agentWorkflow");
66
68
  exactKeys(workflow, ["skillPath"], "profile.agentWorkflow");
67
- return Object.freeze({
68
- schemaVersion: 1,
69
+ const shared = {
69
70
  protocol: Object.freeze({ id: DOCS_PROTOCOL_ID, version: DOCS_PROTOCOL_VERSION }),
70
- foundationProfile: Object.freeze({
71
- metadataSidecarPolicy: "foundation-profile-v2-strict-merge",
72
- path: repositoryPath(foundationProfile["path"], "profile.foundationProfile.path"),
73
- schemaVersion: 2
74
- }),
75
71
  agentWorkflow: Object.freeze({ skillPath: repositoryPath(workflow["skillPath"], "profile.agentWorkflow.skillPath") }),
76
72
  semanticValidatorIds: validatorIds(candidate["semanticValidatorIds"])
77
- });
73
+ };
74
+ const path = repositoryPath(foundationProfile["path"], "profile.foundationProfile.path");
75
+ return profileV2
76
+ ? Object.freeze({
77
+ ...shared,
78
+ schemaVersion: 1,
79
+ foundationProfile: Object.freeze({ metadataSidecarPolicy: "foundation-profile-v2-strict-merge", path, schemaVersion: 2 })
80
+ })
81
+ : Object.freeze({
82
+ ...shared,
83
+ schemaVersion: 2,
84
+ foundationProfile: Object.freeze({ metadataSidecarPolicy: "foundation-profile-v3-strict-merge", path, schemaVersion: 3 })
85
+ });
78
86
  }
79
87
  function markdownLabel(value) {
80
88
  return value.replace(/\\/gu, "\\\\").replace(/\[/gu, "\\[").replace(/\]/gu, "\\]");
@@ -1 +1 @@
1
- {"version":3,"file":"profile-policy.js","sourceRoot":"","sources":["../../src/domain/profile-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile-policy.js","sourceRoot":"","sources":["../../src/domain/profile-policy.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
- export { renderDocsHuman, runDocsCli } from "./composition/cli.js";
2
- export { docsCheck, docsDoctor, docsFind, docsInfo, docsNew, docsRecover } from "./composition/node-docs-api.js";
1
+ export { renderDocsHuman, renderDocsHumanV2, runDocsCli } from "./composition/cli.js";
2
+ export { docsCheck, docsCheckV2, docsDoctor, docsDoctorV2, docsFind, docsFindV2, docsInfo, docsInfoV2, docsNew, docsNewV2, docsRecover, docsRecoverV2 } from "./composition/node-docs-api.js";
3
3
  export type { DocsConsumerRequest } from "./composition/node-docs-api.js";
4
4
  export { DOCS_PROTOCOL_ID, DOCS_PROTOCOL_VERSION } from "./domain/model.js";
5
5
  export * as consumerIntegration from "./consumer-integration/index.js";
6
+ export { CANONICAL_DOCS_SKILL_V2 } from "./consumer-integration/composition/canonical-docs-skill-v2.js";
6
7
  export type { DocsCommand, DocsCommandEnvelope, DocsCommandOutcome, DocsCodeAnchor, DocsDiagnostic, DocsExecution, DocsFindDocument, DocsFindQuery, DocsNewResult, DocsNewRequest, DocsProtocolProfile, DocsTypeProfile, ReachabilityAction } from "./domain/model.js";
8
+ export type { DocsCommandEnvelopeV2, DocsCommandV2, DocsCompiledDocumentV1, DocsExecutionV2, DocsJsonValueV2, DocsNewResultV2, DocsProtocolProfileV2 } from "./domain/model-v2.js";
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACZ,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC;AACvE,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,gCAAgC,CAAC;AACxC,YAAY,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,eAAe,EACf,qBAAqB,EACtB,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
- export { renderDocsHuman, runDocsCli } from "./composition/cli.js";
2
- export { docsCheck, docsDoctor, docsFind, docsInfo, docsNew, docsRecover } from "./composition/node-docs-api.js";
1
+ export { renderDocsHuman, renderDocsHumanV2, runDocsCli } from "./composition/cli.js";
2
+ export { docsCheck, docsCheckV2, docsDoctor, docsDoctorV2, docsFind, docsFindV2, docsInfo, docsInfoV2, docsNew, docsNewV2, docsRecover, docsRecoverV2 } from "./composition/node-docs-api.js";
3
3
  export { DOCS_PROTOCOL_ID, DOCS_PROTOCOL_VERSION } from "./domain/model.js";
4
4
  export * as consumerIntegration from "./consumer-integration/index.js";
5
+ export { CANONICAL_DOCS_SKILL_V2 } from "./consumer-integration/composition/canonical-docs-skill-v2.js";
5
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,WAAW,EACZ,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EACL,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,OAAO,EACP,SAAS,EACT,WAAW,EACX,aAAa,EACd,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,mBAAmB,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface QualificationEvidencePolicy {
2
+ readonly governedRoots: readonly string[];
3
+ }
4
+ export type QualificationEvidenceEntryKind = "directory" | "file" | "other" | "symbolic-link";
5
+ export declare function qualificationEvidencePolicy(governedRoots: readonly string[]): QualificationEvidencePolicy;
6
+ /** Excludes only unambiguous source-local state and root build caches. */
7
+ export declare function isQualificationSourceCopyExcludedPath(repositoryPath: string, entryKind: QualificationEvidenceEntryKind): boolean;
8
+ /** Keeps qualification-owned local state observable so previews cannot hide side effects there. */
9
+ export declare function isQualificationMutationObservationExcludedPath(repositoryPath: string, entryKind: QualificationEvidenceEntryKind): boolean;
10
+ export declare function isQualificationEvidenceExcludedPath(root: string, repositoryPath: string, policy: QualificationEvidencePolicy, observation: "mutation" | "source", entryKind: QualificationEvidenceEntryKind): Promise<boolean>;
11
+ export declare function snapshot(root: string, policy?: QualificationEvidencePolicy): Promise<string>;
12
+ export declare function fileSnapshot(root: string, policy?: QualificationEvidencePolicy): Promise<ReadonlyMap<string, string>>;
13
+ export declare function changedPaths(before: ReadonlyMap<string, string>, after: ReadonlyMap<string, string>): readonly string[];
14
+ export declare function applyReachability(root: string, reachability: unknown): Promise<void>;
15
+ //# sourceMappingURL=filesystem-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-evidence.d.ts","sourceRoot":"","sources":["../../src/qualification/filesystem-evidence.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,MAAM,8BAA8B,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC;AAE9F,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,2BAA2B,CASzG;AAOD,0EAA0E;AAC1E,wBAAgB,qCAAqC,CACnD,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,8BAA8B,GACxC,OAAO,CAKT;AAED,mGAAmG;AACnG,wBAAgB,8CAA8C,CAC5D,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,8BAA8B,GACxC,OAAO,CAKT;AA0BD,wBAAsB,mCAAmC,CACvD,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,2BAA2B,EACnC,WAAW,EAAE,UAAU,GAAG,QAAQ,EAClC,SAAS,EAAE,8BAA8B,GACxC,OAAO,CAAC,OAAO,CAAC,CAWlB;AAmDD,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,2BAA6D,GACpE,OAAO,CAAC,MAAM,CAAC,CAajB;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,2BAA6D,GACpE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAetC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,MAAM,EAAE,CAIvH;AAwDD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAgD1F"}
@@ -0,0 +1,325 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { constants } from "node:fs";
3
+ import { lstat, open, opendir, readFile, realpath, rename, rm } from "node:fs/promises";
4
+ import { basename, dirname, join, relative, resolve as resolvePath, sep } from "node:path";
5
+ const MAX_EVIDENCE_ENTRIES = 20_000;
6
+ const MAX_EVIDENCE_FILE_BYTES = 16 * 1024 * 1024;
7
+ const MAX_EVIDENCE_TOTAL_BYTES = 512 * 1024 * 1024;
8
+ const MAX_CACHE_TAG_BYTES = 1024;
9
+ const CACHE_TAG_SIGNATURE = "Signature: 8a477f597d28d172789f06886806bc55";
10
+ const IMMUTABLE_SOURCE_ROOT_EXCLUSIONS = new Set([".agent-teams-local", ".cache", ".git", "target"]);
11
+ const MUTATION_OBSERVATION_ROOT_EXCLUSIONS = new Set([".cache", ".git", "target"]);
12
+ function hasInfrastructureSegment(repositoryPath) {
13
+ return repositoryPath.split("/").some((segment) => segment === ".git" || segment === "node_modules");
14
+ }
15
+ export function qualificationEvidencePolicy(governedRoots) {
16
+ if (governedRoots.length > 32 || governedRoots.some((path) => path.startsWith("/") || path.split("/").some((segment) => segment === "" || segment === "." || segment === ".."))) {
17
+ throw new TypeError("Qualification governed roots must be a bounded canonical repository-path set.");
18
+ }
19
+ return Object.freeze({
20
+ governedRoots: Object.freeze([...new Set(governedRoots)].toSorted((left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right))))
21
+ });
22
+ }
23
+ function overlapsGovernedRoot(repositoryPath, policy) {
24
+ return policy.governedRoots.some((root) => repositoryPath === root ||
25
+ repositoryPath.startsWith(`${root}/`) || root.startsWith(`${repositoryPath}/`));
26
+ }
27
+ /** Excludes only unambiguous source-local state and root build caches. */
28
+ export function isQualificationSourceCopyExcludedPath(repositoryPath, entryKind) {
29
+ if (hasInfrastructureSegment(repositoryPath)) {
30
+ return true;
31
+ }
32
+ if (entryKind !== "directory") {
33
+ return false;
34
+ }
35
+ const [rootSegment] = repositoryPath.split("/");
36
+ return IMMUTABLE_SOURCE_ROOT_EXCLUSIONS.has(rootSegment ?? "");
37
+ }
38
+ /** Keeps qualification-owned local state observable so previews cannot hide side effects there. */
39
+ export function isQualificationMutationObservationExcludedPath(repositoryPath, entryKind) {
40
+ if (hasInfrastructureSegment(repositoryPath)) {
41
+ return true;
42
+ }
43
+ if (entryKind !== "directory") {
44
+ return false;
45
+ }
46
+ const [rootSegment] = repositoryPath.split("/");
47
+ return MUTATION_OBSERVATION_ROOT_EXCLUSIONS.has(rootSegment ?? "");
48
+ }
49
+ async function hasStableCacheDirectoryTag(root, repositoryPath) {
50
+ const directoryPath = join(root, repositoryPath);
51
+ const directoryBefore = await lstat(directoryPath);
52
+ if (!directoryBefore.isDirectory() || directoryBefore.isSymbolicLink()) {
53
+ return false;
54
+ }
55
+ if (await realpath(directoryPath) !== directoryPath) {
56
+ return false;
57
+ }
58
+ const tagPath = join(root, repositoryPath, "CACHEDIR.TAG");
59
+ let before;
60
+ try {
61
+ before = await lstat(tagPath);
62
+ }
63
+ catch (error) {
64
+ if (error.code === "ENOENT") {
65
+ return false;
66
+ }
67
+ throw error;
68
+ }
69
+ if (!before.isFile() || before.isSymbolicLink() || before.size > MAX_CACHE_TAG_BYTES) {
70
+ return false;
71
+ }
72
+ const physical = await realpath(tagPath);
73
+ if (physical !== tagPath) {
74
+ return false;
75
+ }
76
+ const bytes = await readFile(physical);
77
+ const after = await lstat(physical);
78
+ const directoryAfter = await lstat(directoryPath);
79
+ return directoryAfter.isDirectory() && !directoryAfter.isSymbolicLink() &&
80
+ directoryAfter.ino === directoryBefore.ino && directoryAfter.dev === directoryBefore.dev &&
81
+ after.isFile() && after.ino === before.ino && after.dev === before.dev &&
82
+ after.size === before.size && after.mtimeMs === before.mtimeMs &&
83
+ bytes.byteLength === after.size && bytes.toString("utf8").split("\n", 1)[0] === CACHE_TAG_SIGNATURE;
84
+ }
85
+ export async function isQualificationEvidenceExcludedPath(root, repositoryPath, policy, observation, entryKind) {
86
+ if (hasInfrastructureSegment(repositoryPath)) {
87
+ return true;
88
+ }
89
+ if (entryKind !== "directory") {
90
+ return false;
91
+ }
92
+ if (overlapsGovernedRoot(repositoryPath, policy)) {
93
+ return false;
94
+ }
95
+ const staticallyExcluded = observation === "source"
96
+ ? isQualificationSourceCopyExcludedPath(repositoryPath, entryKind)
97
+ : isQualificationMutationObservationExcludedPath(repositoryPath, entryKind);
98
+ if (staticallyExcluded) {
99
+ return true;
100
+ }
101
+ const leafName = repositoryPath.split("/").at(-1);
102
+ return (leafName === "target" || leafName === ".cache") &&
103
+ await hasStableCacheDirectoryTag(root, repositoryPath);
104
+ }
105
+ async function treeEntries(root, policy, observation) {
106
+ const entries = [];
107
+ async function visit(directory) {
108
+ const handle = await opendir(directory);
109
+ for await (const entry of handle) {
110
+ const absolute = join(directory, entry.name);
111
+ const repositoryPath = relative(root, absolute).split(sep).join("/");
112
+ const entryKind = entry.isDirectory() ? "directory"
113
+ : entry.isFile() ? "file"
114
+ : entry.isSymbolicLink() ? "symbolic-link"
115
+ : "other";
116
+ if (await isQualificationEvidenceExcludedPath(root, repositoryPath, policy, observation, entryKind)) {
117
+ continue;
118
+ }
119
+ if (entries.length >= MAX_EVIDENCE_ENTRIES) {
120
+ throw new Error("Qualification evidence exceeds its bounded repository entry budget.");
121
+ }
122
+ if (entry.isSymbolicLink()) {
123
+ throw new Error(`Qualification fixtures cannot contain symlinks: ${repositoryPath}`);
124
+ }
125
+ if (entry.isDirectory()) {
126
+ entries.push({ kind: "directory", path: repositoryPath });
127
+ await visit(absolute);
128
+ }
129
+ else if (entry.isFile()) {
130
+ entries.push({ kind: "file", path: repositoryPath });
131
+ }
132
+ else {
133
+ throw new Error(`Qualification fixtures must contain only directories and regular files: ${repositoryPath}`);
134
+ }
135
+ }
136
+ }
137
+ await visit(root);
138
+ return Object.freeze(entries.toSorted((left, right) => Buffer.compare(Buffer.from(`${left.kind}\0${left.path}`), Buffer.from(`${right.kind}\0${right.path}`))));
139
+ }
140
+ async function boundedEvidenceBytes(root, repositoryPath) {
141
+ const absolute = join(root, repositoryPath);
142
+ const before = await lstat(absolute);
143
+ if (!before.isFile() || before.isSymbolicLink() || before.size > MAX_EVIDENCE_FILE_BYTES) {
144
+ throw new Error(`Qualification evidence file is not a bounded regular file: ${repositoryPath}.`);
145
+ }
146
+ const physical = await realpath(absolute);
147
+ if (physical !== absolute) {
148
+ throw new Error(`Qualification evidence file traverses a symlink: ${repositoryPath}.`);
149
+ }
150
+ const bytes = await readFile(physical);
151
+ const after = await lstat(physical);
152
+ if (!after.isFile() || after.size !== before.size || after.mtimeMs !== before.mtimeMs || bytes.byteLength !== after.size) {
153
+ throw new Error(`Qualification evidence file changed during read: ${repositoryPath}.`);
154
+ }
155
+ return bytes;
156
+ }
157
+ export async function snapshot(root, policy = qualificationEvidencePolicy([])) {
158
+ const hash = createHash("sha256");
159
+ let totalBytes = 0;
160
+ for (const entry of await treeEntries(root, policy, "source")) {
161
+ hash.update(entry.kind).update("\0").update(entry.path).update("\0");
162
+ if (entry.kind === "file") {
163
+ const bytes = await boundedEvidenceBytes(root, entry.path);
164
+ totalBytes += bytes.byteLength;
165
+ if (totalBytes > MAX_EVIDENCE_TOTAL_BYTES) {
166
+ throw new Error("Qualification evidence exceeds its bounded repository byte budget.");
167
+ }
168
+ hash.update(bytes).update("\0");
169
+ }
170
+ }
171
+ return `sha256:${hash.digest("hex")}`;
172
+ }
173
+ export async function fileSnapshot(root, policy = qualificationEvidencePolicy([])) {
174
+ const result = new Map();
175
+ let totalBytes = 0;
176
+ for (const entry of await treeEntries(root, policy, "mutation")) {
177
+ const key = `${entry.kind}:${entry.path}`;
178
+ if (entry.kind === "directory") {
179
+ result.set(key, "directory");
180
+ continue;
181
+ }
182
+ const bytes = await boundedEvidenceBytes(root, entry.path);
183
+ totalBytes += bytes.byteLength;
184
+ if (totalBytes > MAX_EVIDENCE_TOTAL_BYTES) {
185
+ throw new Error("Qualification evidence exceeds its bounded repository byte budget.");
186
+ }
187
+ result.set(key, `sha256:${createHash("sha256").update(bytes).digest("hex")}`);
188
+ }
189
+ return result;
190
+ }
191
+ export function changedPaths(before, after) {
192
+ return Object.freeze([...new Set([...before.keys(), ...after.keys()])]
193
+ .filter((path) => before.get(path) !== after.get(path))
194
+ .toSorted((left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right))));
195
+ }
196
+ const MAX_REACHABILITY_INDEX_BYTES = 8 * 1024 * 1024;
197
+ function sameFileObservation(left, right) {
198
+ return left.dev === right.dev && left.ino === right.ino && left.mtimeNs === right.mtimeNs && left.size === right.size;
199
+ }
200
+ async function readAtMost(handle, maximumBytes) {
201
+ const chunks = [];
202
+ let total = 0;
203
+ while (total <= maximumBytes) {
204
+ const chunk = Buffer.allocUnsafe(Math.min(64 * 1024, maximumBytes + 1 - total));
205
+ const { bytesRead } = await handle.read(chunk, 0, chunk.byteLength, null);
206
+ if (bytesRead === 0) {
207
+ return Buffer.concat(chunks, total);
208
+ }
209
+ chunks.push(chunk.subarray(0, bytesRead));
210
+ total += bytesRead;
211
+ }
212
+ return undefined;
213
+ }
214
+ async function verifyCurrentRegularFile(path, expected) {
215
+ const handle = await open(path, constants.O_RDONLY | (process.platform === "win32" ? 0 : constants.O_NOFOLLOW));
216
+ try {
217
+ const metadata = await handle.stat({ bigint: true });
218
+ if (!metadata.isFile() || metadata.dev !== expected.dev || metadata.ino !== expected.ino) {
219
+ throw new Error("Qualification reachability index identity changed before atomic publication.");
220
+ }
221
+ }
222
+ finally {
223
+ await handle.close();
224
+ }
225
+ }
226
+ async function verifyPublishedFile(path, expected) {
227
+ const handle = await open(path, constants.O_RDONLY | (process.platform === "win32" ? 0 : constants.O_NOFOLLOW));
228
+ try {
229
+ const before = await handle.stat({ bigint: true });
230
+ const bytes = await readAtMost(handle, MAX_REACHABILITY_INDEX_BYTES);
231
+ const after = await handle.stat({ bigint: true });
232
+ if (!before.isFile() || bytes === undefined || !sameFileObservation(before, after) || !bytes.equals(expected)) {
233
+ throw new Error("Qualification reachability index atomic publication could not be verified.");
234
+ }
235
+ }
236
+ finally {
237
+ await handle.close();
238
+ }
239
+ }
240
+ async function syncDirectory(path) {
241
+ try {
242
+ const handle = await open(path, "r");
243
+ try {
244
+ await handle.sync();
245
+ }
246
+ finally {
247
+ await handle.close();
248
+ }
249
+ }
250
+ catch (error) {
251
+ const code = error.code;
252
+ if (process.platform !== "win32" || !["EACCES", "EINVAL", "EISDIR", "EPERM"].includes(code ?? "")) {
253
+ throw error;
254
+ }
255
+ }
256
+ }
257
+ export async function applyReachability(root, reachability) {
258
+ const action = reachability;
259
+ if (action["state"] === "not-required") {
260
+ return;
261
+ }
262
+ if (action["state"] !== "manual-required" || typeof action["indexPath"] !== "string" || typeof action["markdownLink"] !== "string") {
263
+ throw new Error("Qualification apply did not emit one explicit reachability action.");
264
+ }
265
+ const indexPath = resolvePath(root, action["indexPath"]);
266
+ const physicalRoot = await realpath(root);
267
+ const flags = constants.O_RDONLY | (process.platform === "win32" ? 0 : constants.O_NOFOLLOW | constants.O_NONBLOCK);
268
+ const sourceHandle = await open(indexPath, flags);
269
+ let source;
270
+ let identity;
271
+ let mode;
272
+ try {
273
+ const before = await sourceHandle.stat({ bigint: true });
274
+ if (!before.isFile() || before.size > BigInt(MAX_REACHABILITY_INDEX_BYTES)) {
275
+ throw new Error("Qualification reachability index is not a bounded regular file.");
276
+ }
277
+ const physicalIndex = await realpath(indexPath);
278
+ const pathFromRoot = relative(physicalRoot, physicalIndex);
279
+ if (pathFromRoot === ".." || pathFromRoot.startsWith(`..${sep}`) || physicalIndex !== indexPath) {
280
+ throw new Error("Qualification reachability index is not a contained regular file without symlinks.");
281
+ }
282
+ await verifyCurrentRegularFile(physicalIndex, before);
283
+ const bytes = await readAtMost(sourceHandle, MAX_REACHABILITY_INDEX_BYTES);
284
+ const after = await sourceHandle.stat({ bigint: true });
285
+ if (bytes === undefined || !sameFileObservation(before, after) || after.size !== BigInt(bytes.byteLength)) {
286
+ throw new Error("Qualification reachability index changed during its bounded read.");
287
+ }
288
+ source = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
289
+ identity = { dev: after.dev, ino: after.ino };
290
+ mode = Number(after.mode & 511n);
291
+ }
292
+ finally {
293
+ await sourceHandle.close();
294
+ }
295
+ const next = Buffer.from(`${source.replace(/\n?$/u, "\n")}- ${action["markdownLink"]}\n`);
296
+ if (next.byteLength > MAX_REACHABILITY_INDEX_BYTES) {
297
+ throw new Error("Qualification reachability index update exceeds its bounded size.");
298
+ }
299
+ const parent = dirname(indexPath);
300
+ const temporary = join(parent, `.${basename(indexPath)}.docs-protocol-${randomUUID()}.tmp`);
301
+ let temporaryExists = false;
302
+ try {
303
+ const temporaryHandle = await open(temporary, "wx", mode);
304
+ temporaryExists = true;
305
+ try {
306
+ await temporaryHandle.writeFile(next);
307
+ await temporaryHandle.chmod(mode);
308
+ await temporaryHandle.sync();
309
+ }
310
+ finally {
311
+ await temporaryHandle.close();
312
+ }
313
+ await verifyCurrentRegularFile(indexPath, identity);
314
+ await rename(temporary, indexPath);
315
+ temporaryExists = false;
316
+ await verifyPublishedFile(indexPath, next);
317
+ await syncDirectory(parent);
318
+ }
319
+ finally {
320
+ if (temporaryExists) {
321
+ await rm(temporary, { force: true });
322
+ }
323
+ }
324
+ }
325
+ //# sourceMappingURL=filesystem-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filesystem-evidence.js","sourceRoot":"","sources":["../../src/qualification/filesystem-evidence.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import type { DocsFindQuery, DocsNewRequest } from "../domain/model.js";
2
+ export type { DocumentJsonValue } from "@agent-teams/engineering-foundation/document-authoring";
2
3
  export type { DocsFindQuery, DocsNewRequest } from "../domain/model.js";
4
+ export { runDocsProtocolQualificationV2 } from "./qualification-v2-runner.js";
5
+ export type { DocsProtocolQualificationContractV2, DocsProtocolQualificationReceiptV2, DocsProtocolQualificationScenarioV2, DocsProtocolQualificationV2Request } from "./v2-contract.js";
3
6
  export interface DocsProtocolQualificationScenario {
4
7
  readonly find: {
5
8
  readonly expectedIds: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/qualification/index.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGxE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAExE,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,cAAc,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC;CACjG;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACxJ,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;CAC3B;AA2WD,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAwEvI"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/qualification/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAUxE,YAAY,EAAE,iBAAiB,EAAE,MAAM,wDAAwD,CAAC;AAChG,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC9E,YAAY,EACV,mCAAmC,EACnC,kCAAkC,EAClC,mCAAmC,EACnC,kCAAkC,EACnC,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,cAAc,GAAG,aAAa,GAAG,QAAQ,CAAC,CAAC;CACjG;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iCAAiC,CAAC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACxJ,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;CAC3B;AAqBD,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAmEvI"}