human-to-code 0.0.1 → 0.1.2

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 (134) hide show
  1. package/Readme.md +368 -38
  2. package/SECURITY.md +175 -11
  3. package/dist/adapters/general.d.ts +30 -0
  4. package/dist/adapters/general.d.ts.map +1 -0
  5. package/dist/adapters/general.js +77 -0
  6. package/dist/adapters/general.js.map +1 -0
  7. package/dist/adapters/node.d.ts +8 -0
  8. package/dist/adapters/node.d.ts.map +1 -0
  9. package/dist/adapters/node.js +1071 -0
  10. package/dist/adapters/node.js.map +1 -0
  11. package/dist/adapters/python.d.ts +7 -0
  12. package/dist/adapters/python.d.ts.map +1 -0
  13. package/dist/adapters/python.js +540 -0
  14. package/dist/adapters/python.js.map +1 -0
  15. package/dist/adapters/rust.d.ts +7 -0
  16. package/dist/adapters/rust.d.ts.map +1 -0
  17. package/dist/adapters/rust.js +517 -0
  18. package/dist/adapters/rust.js.map +1 -0
  19. package/dist/analyzer-types.d.ts +161 -0
  20. package/dist/analyzer-types.d.ts.map +1 -0
  21. package/dist/analyzer-types.js +8 -0
  22. package/dist/analyzer-types.js.map +1 -0
  23. package/dist/analyzer-utils.d.ts +40 -0
  24. package/dist/analyzer-utils.d.ts.map +1 -0
  25. package/dist/analyzer-utils.js +591 -0
  26. package/dist/analyzer-utils.js.map +1 -0
  27. package/dist/analyzer.d.ts +21 -0
  28. package/dist/analyzer.d.ts.map +1 -0
  29. package/dist/analyzer.js +111 -0
  30. package/dist/analyzer.js.map +1 -0
  31. package/dist/certification.d.ts +102 -0
  32. package/dist/certification.d.ts.map +1 -0
  33. package/dist/certification.js +193 -0
  34. package/dist/certification.js.map +1 -0
  35. package/dist/cli.d.ts +4 -0
  36. package/dist/cli.d.ts.map +1 -0
  37. package/dist/cli.js +566 -0
  38. package/dist/cli.js.map +1 -0
  39. package/dist/compiler-skills.d.ts +25 -0
  40. package/dist/compiler-skills.d.ts.map +1 -0
  41. package/dist/compiler-skills.js +158 -0
  42. package/dist/compiler-skills.js.map +1 -0
  43. package/dist/compiler-tools.d.ts +29 -0
  44. package/dist/compiler-tools.d.ts.map +1 -0
  45. package/dist/compiler-tools.js +337 -0
  46. package/dist/compiler-tools.js.map +1 -0
  47. package/dist/config.d.ts +122 -0
  48. package/dist/config.d.ts.map +1 -0
  49. package/dist/config.js +704 -0
  50. package/dist/config.js.map +1 -0
  51. package/dist/context.d.ts +153 -0
  52. package/dist/context.d.ts.map +1 -0
  53. package/dist/context.js +772 -0
  54. package/dist/context.js.map +1 -0
  55. package/dist/contracts.d.ts +196 -0
  56. package/dist/contracts.d.ts.map +1 -0
  57. package/dist/contracts.js +721 -0
  58. package/dist/contracts.js.map +1 -0
  59. package/dist/discovery.d.ts +34 -0
  60. package/dist/discovery.d.ts.map +1 -0
  61. package/dist/discovery.js +312 -0
  62. package/dist/discovery.js.map +1 -0
  63. package/dist/documentation.d.ts +44 -0
  64. package/dist/documentation.d.ts.map +1 -0
  65. package/dist/documentation.js +418 -0
  66. package/dist/documentation.js.map +1 -0
  67. package/dist/index.d.ts +23 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +21 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/patch.d.ts +71 -0
  72. package/dist/patch.d.ts.map +1 -0
  73. package/dist/patch.js +394 -0
  74. package/dist/patch.js.map +1 -0
  75. package/dist/pinned-http.d.ts +15 -0
  76. package/dist/pinned-http.d.ts.map +1 -0
  77. package/dist/pinned-http.js +170 -0
  78. package/dist/pinned-http.js.map +1 -0
  79. package/dist/planner.d.ts +30 -0
  80. package/dist/planner.d.ts.map +1 -0
  81. package/dist/planner.js +228 -0
  82. package/dist/planner.js.map +1 -0
  83. package/dist/provider.d.ts +168 -0
  84. package/dist/provider.d.ts.map +1 -0
  85. package/dist/provider.js +512 -0
  86. package/dist/provider.js.map +1 -0
  87. package/dist/providers.d.ts +41 -0
  88. package/dist/providers.d.ts.map +1 -0
  89. package/dist/providers.js +954 -0
  90. package/dist/providers.js.map +1 -0
  91. package/dist/run-store.d.ts +24 -0
  92. package/dist/run-store.d.ts.map +1 -0
  93. package/dist/run-store.js +285 -0
  94. package/dist/run-store.js.map +1 -0
  95. package/dist/schemas.d.ts +18 -0
  96. package/dist/schemas.d.ts.map +1 -0
  97. package/dist/schemas.js +228 -0
  98. package/dist/schemas.js.map +1 -0
  99. package/dist/secret-scan.d.ts +30 -0
  100. package/dist/secret-scan.d.ts.map +1 -0
  101. package/dist/secret-scan.js +122 -0
  102. package/dist/secret-scan.js.map +1 -0
  103. package/dist/snapshot.d.ts +33 -0
  104. package/dist/snapshot.d.ts.map +1 -0
  105. package/dist/snapshot.js +136 -0
  106. package/dist/snapshot.js.map +1 -0
  107. package/dist/support-matrix.d.ts +23 -0
  108. package/dist/support-matrix.d.ts.map +1 -0
  109. package/dist/support-matrix.js +199 -0
  110. package/dist/support-matrix.js.map +1 -0
  111. package/dist/types.d.ts +63 -0
  112. package/dist/types.d.ts.map +1 -0
  113. package/dist/types.js +8 -0
  114. package/dist/types.js.map +1 -0
  115. package/dist/validation.d.ts +25 -0
  116. package/dist/validation.d.ts.map +1 -0
  117. package/dist/validation.js +388 -0
  118. package/dist/validation.js.map +1 -0
  119. package/dist/workflow.d.ts +65 -0
  120. package/dist/workflow.d.ts.map +1 -0
  121. package/dist/workflow.js +1636 -0
  122. package/dist/workflow.js.map +1 -0
  123. package/package.json +36 -9
  124. package/.claude/settings.local.json +0 -12
  125. package/.github/workflows/ci.yml +0 -18
  126. package/CONTRIBUTING.md +0 -40
  127. package/src/cli.ts +0 -218
  128. package/src/config.ts +0 -186
  129. package/src/discovery.ts +0 -186
  130. package/src/index.ts +0 -22
  131. package/src/types.ts +0 -74
  132. package/test/config.test.ts +0 -97
  133. package/test/discovery.test.ts +0 -91
  134. package/tsconfig.json +0 -17
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Versioned support declarations for the first analyzer release.
3
+ *
4
+ * Generation remains preview until the model/provider benchmark gate described
5
+ * by the reliability contract has actually run. Keeping that fact in data (and
6
+ * not in marketing copy) prevents a newly recognized project from being
7
+ * accidentally presented as certified.
8
+ */
9
+ export const SUPPORT_MATRIX_VERSION = "1.0.0";
10
+ const SUPPORT_MATRIX_VALUE = [
11
+ {
12
+ key: "react.vite-spa",
13
+ ecosystem: "react",
14
+ variant: "vite-spa",
15
+ versions: "React 18-19; Vite 5-7",
16
+ tier: "preview",
17
+ capabilities: ["routes", "aliases", "client-boundaries", "package-scripts"],
18
+ limitations: ["generation certification benchmark pending"],
19
+ },
20
+ {
21
+ key: "react.vite-ssr",
22
+ ecosystem: "react",
23
+ variant: "vite-ssr",
24
+ versions: "React 18-19; Vite 5-7",
25
+ tier: "preview",
26
+ capabilities: ["routes", "aliases", "ssr-boundaries", "package-scripts"],
27
+ limitations: ["generation certification benchmark pending"],
28
+ },
29
+ {
30
+ key: "react.next-app",
31
+ ecosystem: "react",
32
+ variant: "next-app-router",
33
+ versions: "React 18-19; Next 14-16",
34
+ tier: "preview",
35
+ capabilities: ["file-routes", "server-client-boundaries", "package-scripts"],
36
+ limitations: ["generation certification benchmark pending"],
37
+ },
38
+ {
39
+ key: "react.next-pages",
40
+ ecosystem: "react",
41
+ variant: "next-pages-router",
42
+ versions: "React 18-19; Next 14-16",
43
+ tier: "preview",
44
+ capabilities: ["file-routes", "server-client-boundaries", "package-scripts"],
45
+ limitations: ["generation certification benchmark pending"],
46
+ },
47
+ {
48
+ key: "react.next-hybrid",
49
+ ecosystem: "react",
50
+ variant: "next-hybrid",
51
+ versions: "React 18-19; Next 14-16",
52
+ tier: "preview",
53
+ capabilities: ["file-routes", "server-client-boundaries", "package-scripts"],
54
+ limitations: ["router ownership must be explicit for cross-router changes"],
55
+ },
56
+ {
57
+ key: "react.cra",
58
+ ecosystem: "react",
59
+ variant: "cra",
60
+ versions: "react-scripts 5",
61
+ tier: "legacy",
62
+ capabilities: ["aliases", "package-scripts"],
63
+ limitations: ["CRA is legacy", "generation certification benchmark pending"],
64
+ },
65
+ {
66
+ key: "react.library",
67
+ ecosystem: "react",
68
+ variant: "react-library",
69
+ versions: "React 18-19",
70
+ tier: "preview",
71
+ capabilities: ["public-exports", "aliases", "package-scripts"],
72
+ limitations: ["generation certification benchmark pending"],
73
+ },
74
+ {
75
+ key: "react.nx",
76
+ ecosystem: "react",
77
+ variant: "nx-react",
78
+ versions: "React 18-19; Nx project configuration",
79
+ tier: "preview",
80
+ capabilities: ["workspace-ownership", "targets", "routes", "aliases"],
81
+ limitations: ["dynamic Nx plugins are not executed"],
82
+ },
83
+ {
84
+ key: "nestjs.standard",
85
+ ecosystem: "nestjs",
86
+ variant: "standard",
87
+ versions: "NestJS 10-11",
88
+ tier: "preview",
89
+ capabilities: ["module-di-graph", "http-adapter", "orm-signals", "package-scripts"],
90
+ limitations: ["dynamic module internals remain opaque"],
91
+ },
92
+ {
93
+ key: "nestjs.monorepo",
94
+ ecosystem: "nestjs",
95
+ variant: "nest-monorepo",
96
+ versions: "NestJS 10-11; Nest CLI workspace",
97
+ tier: "preview",
98
+ capabilities: ["workspace-ownership", "module-di-graph", "http-adapter"],
99
+ limitations: ["dynamic Nest CLI configuration is not executed"],
100
+ },
101
+ {
102
+ key: "nestjs.nx",
103
+ ecosystem: "nestjs",
104
+ variant: "nx-nest",
105
+ versions: "NestJS 10-11; Nx project configuration",
106
+ tier: "preview",
107
+ capabilities: ["workspace-ownership", "module-di-graph", "targets"],
108
+ limitations: ["dynamic Nx plugins are not executed"],
109
+ },
110
+ {
111
+ key: "fastapi.application",
112
+ ecosystem: "fastapi",
113
+ variant: "fastapi-application",
114
+ versions: "FastAPI >=0.110,<1; Pydantic 1-2 detected explicitly",
115
+ tier: "preview",
116
+ capabilities: ["routers", "dependencies", "environment-manager", "sync-async-model"],
117
+ limitations: ["dynamic Python metadata and imports are not executed"],
118
+ },
119
+ {
120
+ key: "rust.crate",
121
+ ecosystem: "rust",
122
+ variant: "cargo-crate",
123
+ versions: "Rust editions 2015, 2018, 2021, 2024",
124
+ tier: "preview",
125
+ capabilities: ["features", "targets", "toolchain", "elevated-risk-signals"],
126
+ limitations: ["cargo metadata is deferred to sandboxed validation"],
127
+ },
128
+ {
129
+ key: "rust.workspace",
130
+ ecosystem: "rust",
131
+ variant: "cargo-workspace",
132
+ versions: "Cargo resolver 1-3; Rust editions 2015, 2018, 2021, 2024",
133
+ tier: "preview",
134
+ capabilities: ["workspace-members", "features", "targets", "toolchain"],
135
+ limitations: ["cargo metadata is deferred to sandboxed validation"],
136
+ },
137
+ {
138
+ key: "general.code",
139
+ ecosystem: "general",
140
+ variant: "general-code",
141
+ versions: "Language-directed general generation (operator-declared language)",
142
+ tier: "preview",
143
+ capabilities: ["language-directed-generation"],
144
+ limitations: [
145
+ "ungrounded: no dependency/API evidence is proven",
146
+ "unvalidated: no toolchain is assumed, so runs stay INCONCLUSIVE and are never auto-applied",
147
+ ],
148
+ },
149
+ ];
150
+ /** Runtime-immutable: consumers cannot promote preview entries by mutation. */
151
+ export const SUPPORT_MATRIX = Object.freeze(SUPPORT_MATRIX_VALUE.map((entry) => Object.freeze({
152
+ ...entry,
153
+ capabilities: Object.freeze([...entry.capabilities]),
154
+ limitations: Object.freeze([...entry.limitations]),
155
+ })));
156
+ export function supportFor(ecosystem, variant, matchedVersion) {
157
+ const entry = SUPPORT_MATRIX.find((candidate) => candidate.ecosystem === ecosystem && candidate.variant === variant);
158
+ if (!entry) {
159
+ return {
160
+ tier: "unsupported",
161
+ matrixKey: `${ecosystem}.unknown`,
162
+ reason: `No support-matrix entry exists for ${ecosystem}/${variant}.`,
163
+ ...(matchedVersion === undefined ? {} : { matchedVersion }),
164
+ };
165
+ }
166
+ const numeric = matchedVersion?.match(/^(\d+)(?:\.(\d+))?/);
167
+ if (numeric) {
168
+ const major = Number(numeric[1]);
169
+ const minor = Number(numeric[2] ?? 0);
170
+ const supported = (() => {
171
+ if (entry.key.startsWith("react.next-"))
172
+ return major >= 14 && major <= 16;
173
+ if (entry.key === "react.cra")
174
+ return major === 5;
175
+ if (entry.key.startsWith("react."))
176
+ return major === 18 || major === 19;
177
+ if (entry.key.startsWith("nestjs."))
178
+ return major === 10 || major === 11;
179
+ if (entry.key === "fastapi.application")
180
+ return major === 0 ? minor >= 110 : false;
181
+ return true;
182
+ })();
183
+ if (!supported) {
184
+ return {
185
+ tier: "unsupported",
186
+ matrixKey: entry.key,
187
+ reason: `${matchedVersion} is outside the declared support range (${entry.versions}).`,
188
+ matchedVersion,
189
+ };
190
+ }
191
+ }
192
+ return {
193
+ tier: entry.tier,
194
+ matrixKey: entry.key,
195
+ reason: `${entry.versions}; ${entry.limitations.join("; ")}.`,
196
+ ...(matchedVersion === undefined ? {} : { matchedVersion }),
197
+ };
198
+ }
199
+ //# sourceMappingURL=support-matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-matrix.js","sourceRoot":"","sources":["../src/support-matrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Shared types for human-to-code.
3
+ *
4
+ * The pipeline is: static analysis -> reviewed JSON contract -> grounded model
5
+ * patch -> isolated validation -> explicit application.
6
+ */
7
+ export type TargetLanguage = "typescript" | "javascript" | "python" | "rust";
8
+ export type ProviderName = "openai" | "anthropic" | "ollama" | "grok" | "gemini";
9
+ export interface ProviderConfig {
10
+ /** Provider selected explicitly for structured patch generation. */
11
+ name: ProviderName;
12
+ /** Exact requested model id. The resolved response identity is audited. */
13
+ model: string;
14
+ /** Optional trusted endpoint (for example Ollama Cloud); local Ollama may use loopback HTTP. */
15
+ baseUrl?: string;
16
+ }
17
+ export interface Config {
18
+ /** Legacy single-language hint; static workspace analysis is authoritative. */
19
+ language: TargetLanguage;
20
+ /** Glob-free directory/file names to skip during discovery (a denylist). */
21
+ filesToIgnore: string[];
22
+ /**
23
+ * If true, non-.human files carrying `@Human:` directives may also be
24
+ * processed. Off by default — it widens the surface area (see plan §1.6).
25
+ */
26
+ allowNonHumanFiles: boolean;
27
+ /** Provider used only for the human -> strict step. */
28
+ provider: ProviderConfig;
29
+ }
30
+ /** Classification of a source file found during discovery. */
31
+ export type SourceKind =
32
+ /** A hand-written or generated strict IR file: `foo.strict.human`. */
33
+ "strict"
34
+ /** A natural-language source file: `foo.human` (not `.strict.human`). */
35
+ | "human"
36
+ /** Reserved special files, never compiled and never sent to a provider. */
37
+ | "config" | "secrets";
38
+ export interface SourceFile {
39
+ /** Absolute path. */
40
+ absPath: string;
41
+ /** Path relative to the discovery root, using forward slashes. */
42
+ relPath: string;
43
+ kind: SourceKind;
44
+ /**
45
+ * For a `.human` file, the sibling `.strict.human` path that would take
46
+ * precedence if it exists. Undefined for non-human kinds.
47
+ */
48
+ strictSibling?: string;
49
+ }
50
+ export interface DiscoveryResult {
51
+ root: string;
52
+ /** Natural-language sources eligible for the human -> strict step. */
53
+ human: SourceFile[];
54
+ /** Strict IR sources (hand-written ones take precedence over generated). */
55
+ strict: SourceFile[];
56
+ /** The secrets file, if present. Never compiled, never sent to a provider. */
57
+ secrets?: SourceFile;
58
+ /** Every nested secrets.human, including ignored trees. */
59
+ secretsFiles?: SourceFile[];
60
+ /** Files skipped by ignore rules, for reporting under --dry-run. */
61
+ ignoredCount: number;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7E,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,MAAM,GACN,QAAQ,CAAC;AAEb,MAAM,WAAW,cAAc;IAC7B,oEAAoE;IACpE,IAAI,EAAE,YAAY,CAAC;IACnB,2EAA2E;IAC3E,KAAK,EAAE,MAAM,CAAC;IACd,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,+EAA+E;IAC/E,QAAQ,EAAE,cAAc,CAAC;IACzB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU;AACpB,sEAAsE;AACpE,QAAQ;AACV,yEAAyE;GACvE,OAAO;AACT,2EAA2E;GACzE,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,4EAA4E;IAC5E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAC;CACtB"}
package/dist/types.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared types for human-to-code.
3
+ *
4
+ * The pipeline is: static analysis -> reviewed JSON contract -> grounded model
5
+ * patch -> isolated validation -> explicit application.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,25 @@
1
+ /** Strong, container-only validation with baseline comparison. */
2
+ import type { ValidationPlanV1, ValidationReportV1 } from "./contracts.ts";
3
+ export interface StrongSandboxOptions {
4
+ image: string;
5
+ dockerBinary?: string;
6
+ cpus?: number;
7
+ memory?: string;
8
+ pidsLimit?: number;
9
+ maxOutputBytes?: number;
10
+ /** Environment values are opt-in and should contain no credentials. */
11
+ environment?: Record<string, string>;
12
+ }
13
+ export interface ValidationComparisonOptions extends StrongSandboxOptions {
14
+ baselineRoot: string;
15
+ candidateRoot: string;
16
+ /** A single retry is used only to identify flaky commands. */
17
+ retryFailedOnce?: boolean;
18
+ }
19
+ export declare class ValidationError extends Error {
20
+ readonly code: string;
21
+ constructor(code: string, message: string);
22
+ }
23
+ export declare function strongSandboxAvailable(dockerBinary?: string): Promise<boolean>;
24
+ export declare function validateBaselineAndCandidate(plan: ValidationPlanV1, options: ValidationComparisonOptions): Promise<ValidationReportV1>;
25
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAMlE,OAAO,KAAK,EAGV,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAqBxB,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,2BAA4B,SAAQ,oBAAoB;IACvE,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAK1C;AA4HD,wBAAsB,sBAAsB,CAAC,YAAY,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAYtF;AA+LD,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAmH7B"}