@vegamo/loom 0.1.5 → 0.1.7

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 (56) hide show
  1. package/README.md +21 -3
  2. package/dist/agents/core/agent.d.ts.map +1 -1
  3. package/dist/agents/core/agent.js +3 -1
  4. package/dist/agents/core/agent.js.map +1 -1
  5. package/dist/agents/core/prompt.d.ts +2 -1
  6. package/dist/agents/core/prompt.d.ts.map +1 -1
  7. package/dist/agents/core/prompt.js +3 -2
  8. package/dist/agents/core/prompt.js.map +1 -1
  9. package/dist/index.js +5 -5
  10. package/dist/index.js.map +1 -1
  11. package/dist/llm/client.js +1 -1
  12. package/dist/llm/client.js.map +1 -1
  13. package/dist/mocks/router.d.ts.map +1 -1
  14. package/dist/mocks/router.js +16 -2
  15. package/dist/mocks/router.js.map +1 -1
  16. package/dist/serve.d.ts.map +1 -1
  17. package/dist/serve.js +2 -0
  18. package/dist/serve.js.map +1 -1
  19. package/dist/shared/config-wizard.d.ts +1 -1
  20. package/dist/shared/config-wizard.d.ts.map +1 -1
  21. package/dist/shared/config-wizard.js +11 -12
  22. package/dist/shared/config-wizard.js.map +1 -1
  23. package/dist/shared/config.d.ts +15 -10
  24. package/dist/shared/config.d.ts.map +1 -1
  25. package/dist/shared/config.js +29 -15
  26. package/dist/shared/config.js.map +1 -1
  27. package/dist/shared/mock-store.d.ts +59 -0
  28. package/dist/shared/mock-store.d.ts.map +1 -0
  29. package/dist/shared/mock-store.js +146 -0
  30. package/dist/shared/mock-store.js.map +1 -0
  31. package/dist/shared/mock-template.d.ts +11 -0
  32. package/dist/shared/mock-template.d.ts.map +1 -0
  33. package/dist/shared/mock-template.js +21 -0
  34. package/dist/shared/mock-template.js.map +1 -0
  35. package/dist/shared/requirement.d.ts +27 -0
  36. package/dist/shared/requirement.d.ts.map +1 -0
  37. package/dist/shared/requirement.js +70 -0
  38. package/dist/shared/requirement.js.map +1 -0
  39. package/dist/shared/schema-utils.d.ts.map +1 -1
  40. package/dist/shared/schema-utils.js +3 -1
  41. package/dist/shared/schema-utils.js.map +1 -1
  42. package/dist/shared/types.d.ts +1 -1
  43. package/dist/shared/types.d.ts.map +1 -1
  44. package/dist/tui/app.d.ts.map +1 -1
  45. package/dist/tui/app.js +18 -0
  46. package/dist/tui/app.js.map +1 -1
  47. package/dist/tui/components/Input.d.ts.map +1 -1
  48. package/dist/tui/components/Input.js +1 -0
  49. package/dist/tui/components/Input.js.map +1 -1
  50. package/dist/view/public/bundle.js +705 -327
  51. package/dist/view/public/bundle.js.map +4 -4
  52. package/dist/view/routes/mocks.d.ts +19 -0
  53. package/dist/view/routes/mocks.d.ts.map +1 -0
  54. package/dist/view/routes/mocks.js +165 -0
  55. package/dist/view/routes/mocks.js.map +1 -0
  56. package/package.json +3 -1
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Mock 存档读写
3
+ *
4
+ * 伴生文件方案: docs/foo.schema.json → docs/foo.mock.json
5
+ *
6
+ * 文件结构 (version 1):
7
+ * {
8
+ * "version": 1,
9
+ * "endpoints": [
10
+ * {
11
+ * "method": "GET",
12
+ * "path": "/users/:id",
13
+ * "responses": {
14
+ * "200": { "default": <body> }
15
+ * }
16
+ * }
17
+ * ]
18
+ * }
19
+ *
20
+ * 中间的 "default" 这一层是占位, 后续支持 OpenAPI 的多 mediaType /
21
+ * 多 scenario 时, 可演化成 "application/json" / "happy-path" 等 key,
22
+ * 而无需破坏既有结构。
23
+ */
24
+ export interface MockEndpointEntry {
25
+ method: string;
26
+ path: string;
27
+ responses: {
28
+ [statusCode: string]: {
29
+ [variant: string]: unknown;
30
+ };
31
+ };
32
+ }
33
+ export interface MockDocument {
34
+ version: 1;
35
+ endpoints: MockEndpointEntry[];
36
+ }
37
+ /** 把 foo.schema.json 映射到 foo.mock.json */
38
+ export declare function mockFilenameFromSchema(schemaFilename: string): string;
39
+ export declare function mockFilepathFromSchema(docsDir: string, schemaFilename: string): string;
40
+ export declare function readMockDocument(filepath: string): MockDocument;
41
+ export declare function writeMockDocument(filepath: string, doc: MockDocument): void;
42
+ /** 查找一个 endpoint 在指定 status 下的 mock 覆盖值, 没有就返回 undefined */
43
+ export declare function getMockOverride(docsDir: string, schemaFilename: string, method: string, endpointPath: string, statusCode: string, variant?: string): unknown | undefined;
44
+ /** 跨所有 schema 文件查找 mock 覆盖 (mock 服务用, 不知道来源 schema) */
45
+ export declare function findMockOverrideAcrossDocs(docsDir: string, method: string, endpointPath: string, statusCode: string, variant?: string): unknown | undefined;
46
+ /**
47
+ * 查找一个 endpoint 当前激活的 override (status + body)。
48
+ * 一个 endpoint 同一时间只有一份 active override。
49
+ * 在指定 schema 文件中查找。
50
+ */
51
+ export declare function getActiveMockOverride(docsDir: string, schemaFilename: string, method: string, endpointPath: string, variant?: string): {
52
+ statusCode: string;
53
+ body: unknown;
54
+ } | undefined;
55
+ /** 写入/更新一个 endpoint 在指定 status 下的 mock 覆盖值 */
56
+ export declare function setMockOverride(docsDir: string, schemaFilename: string, method: string, endpointPath: string, statusCode: string, body: unknown, variant?: string): void;
57
+ /** 删除 mock 覆盖, 让 endpoint 回退到 generator 默认 */
58
+ export declare function deleteMockOverride(docsDir: string, schemaFilename: string, method: string, endpointPath: string, statusCode: string, variant?: string): void;
59
+ //# sourceMappingURL=mock-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-store.d.ts","sourceRoot":"","sources":["../../src/shared/mock-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE;QACT,CAAC,UAAU,EAAE,MAAM,GAAG;YACpB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;SAC5B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAID,0CAA0C;AAC1C,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAc/D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAM3E;AAYD,4DAA4D;AAC5D,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAwB,GAChC,OAAO,GAAG,SAAS,CAKrB;AAED,uDAAuD;AACvD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAwB,GAChC,OAAO,GAAG,SAAS,CAUrB;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,MAAwB,GAChC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAWnD;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,MAAwB,GAChC,IAAI,CAwBN;AAED,8CAA8C;AAC9C,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,MAAwB,GAChC,IAAI,CAgBN"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Mock 存档读写
3
+ *
4
+ * 伴生文件方案: docs/foo.schema.json → docs/foo.mock.json
5
+ *
6
+ * 文件结构 (version 1):
7
+ * {
8
+ * "version": 1,
9
+ * "endpoints": [
10
+ * {
11
+ * "method": "GET",
12
+ * "path": "/users/:id",
13
+ * "responses": {
14
+ * "200": { "default": <body> }
15
+ * }
16
+ * }
17
+ * ]
18
+ * }
19
+ *
20
+ * 中间的 "default" 这一层是占位, 后续支持 OpenAPI 的多 mediaType /
21
+ * 多 scenario 时, 可演化成 "application/json" / "happy-path" 等 key,
22
+ * 而无需破坏既有结构。
23
+ */
24
+ import fs from 'node:fs';
25
+ import path from 'node:path';
26
+ const DEFAULT_VARIANT = 'default';
27
+ /** 把 foo.schema.json 映射到 foo.mock.json */
28
+ export function mockFilenameFromSchema(schemaFilename) {
29
+ return schemaFilename.replace(/\.schema\.json$/, '.mock.json');
30
+ }
31
+ export function mockFilepathFromSchema(docsDir, schemaFilename) {
32
+ return path.join(docsDir, mockFilenameFromSchema(schemaFilename));
33
+ }
34
+ export function readMockDocument(filepath) {
35
+ if (!fs.existsSync(filepath)) {
36
+ return { version: 1, endpoints: [] };
37
+ }
38
+ try {
39
+ const raw = fs.readFileSync(filepath, 'utf-8');
40
+ const parsed = JSON.parse(raw);
41
+ if (typeof parsed !== 'object' || parsed === null || !Array.isArray(parsed.endpoints)) {
42
+ return { version: 1, endpoints: [] };
43
+ }
44
+ return { version: 1, endpoints: parsed.endpoints };
45
+ }
46
+ catch {
47
+ return { version: 1, endpoints: [] };
48
+ }
49
+ }
50
+ export function writeMockDocument(filepath, doc) {
51
+ const dir = path.dirname(filepath);
52
+ if (!fs.existsSync(dir)) {
53
+ fs.mkdirSync(dir, { recursive: true });
54
+ }
55
+ fs.writeFileSync(filepath, JSON.stringify(doc, null, 2), 'utf-8');
56
+ }
57
+ function findEntry(doc, method, endpointPath) {
58
+ return doc.endpoints.find((e) => e.method.toUpperCase() === method.toUpperCase() && e.path === endpointPath);
59
+ }
60
+ /** 查找一个 endpoint 在指定 status 下的 mock 覆盖值, 没有就返回 undefined */
61
+ export function getMockOverride(docsDir, schemaFilename, method, endpointPath, statusCode, variant = DEFAULT_VARIANT) {
62
+ const filepath = mockFilepathFromSchema(docsDir, schemaFilename);
63
+ const doc = readMockDocument(filepath);
64
+ const entry = findEntry(doc, method, endpointPath);
65
+ return entry?.responses?.[statusCode]?.[variant];
66
+ }
67
+ /** 跨所有 schema 文件查找 mock 覆盖 (mock 服务用, 不知道来源 schema) */
68
+ export function findMockOverrideAcrossDocs(docsDir, method, endpointPath, statusCode, variant = DEFAULT_VARIANT) {
69
+ if (!fs.existsSync(docsDir))
70
+ return undefined;
71
+ const files = fs.readdirSync(docsDir).filter((f) => f.endsWith('.mock.json'));
72
+ for (const f of files) {
73
+ const doc = readMockDocument(path.join(docsDir, f));
74
+ const entry = findEntry(doc, method, endpointPath);
75
+ const value = entry?.responses?.[statusCode]?.[variant];
76
+ if (value !== undefined)
77
+ return value;
78
+ }
79
+ return undefined;
80
+ }
81
+ /**
82
+ * 查找一个 endpoint 当前激活的 override (status + body)。
83
+ * 一个 endpoint 同一时间只有一份 active override。
84
+ * 在指定 schema 文件中查找。
85
+ */
86
+ export function getActiveMockOverride(docsDir, schemaFilename, method, endpointPath, variant = DEFAULT_VARIANT) {
87
+ const filepath = mockFilepathFromSchema(docsDir, schemaFilename);
88
+ const doc = readMockDocument(filepath);
89
+ const entry = findEntry(doc, method, endpointPath);
90
+ if (!entry)
91
+ return undefined;
92
+ for (const [statusCode, variants] of Object.entries(entry.responses)) {
93
+ if (variants && variants[variant] !== undefined) {
94
+ return { statusCode, body: variants[variant] };
95
+ }
96
+ }
97
+ return undefined;
98
+ }
99
+ /** 写入/更新一个 endpoint 在指定 status 下的 mock 覆盖值 */
100
+ export function setMockOverride(docsDir, schemaFilename, method, endpointPath, statusCode, body, variant = DEFAULT_VARIANT) {
101
+ const filepath = mockFilepathFromSchema(docsDir, schemaFilename);
102
+ const doc = readMockDocument(filepath);
103
+ let entry = findEntry(doc, method, endpointPath);
104
+ if (!entry) {
105
+ entry = { method: method.toUpperCase(), path: endpointPath, responses: {} };
106
+ doc.endpoints.push(entry);
107
+ }
108
+ // 同一 endpoint 同一时间只允许一份 active override:
109
+ // 写入新 status 前, 清掉其它 status 在同 variant 下的覆盖
110
+ for (const code of Object.keys(entry.responses)) {
111
+ if (code === statusCode)
112
+ continue;
113
+ if (entry.responses[code] && variant in entry.responses[code]) {
114
+ delete entry.responses[code][variant];
115
+ if (Object.keys(entry.responses[code]).length === 0) {
116
+ delete entry.responses[code];
117
+ }
118
+ }
119
+ }
120
+ if (!entry.responses[statusCode]) {
121
+ entry.responses[statusCode] = {};
122
+ }
123
+ entry.responses[statusCode][variant] = body;
124
+ writeMockDocument(filepath, doc);
125
+ }
126
+ /** 删除 mock 覆盖, 让 endpoint 回退到 generator 默认 */
127
+ export function deleteMockOverride(docsDir, schemaFilename, method, endpointPath, statusCode, variant = DEFAULT_VARIANT) {
128
+ const filepath = mockFilepathFromSchema(docsDir, schemaFilename);
129
+ if (!fs.existsSync(filepath))
130
+ return;
131
+ const doc = readMockDocument(filepath);
132
+ const entry = findEntry(doc, method, endpointPath);
133
+ if (!entry)
134
+ return;
135
+ if (entry.responses[statusCode]) {
136
+ delete entry.responses[statusCode][variant];
137
+ if (Object.keys(entry.responses[statusCode]).length === 0) {
138
+ delete entry.responses[statusCode];
139
+ }
140
+ }
141
+ if (Object.keys(entry.responses).length === 0) {
142
+ doc.endpoints = doc.endpoints.filter((e) => e !== entry);
143
+ }
144
+ writeMockDocument(filepath, doc);
145
+ }
146
+ //# sourceMappingURL=mock-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-store.js","sourceRoot":"","sources":["../../src/shared/mock-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Mock 模板展开
3
+ *
4
+ * 包装 mockjs, 把存档里的 override body 当作 Mock.js 模板:
5
+ * - 字符串里的 "@cname" / "@integer(1,100)" 等会被求值
6
+ * - 数组的 'key|1-10' 这类规则也会展开
7
+ *
8
+ * 失败时返回原值, 不影响 mock 服务可用性。
9
+ */
10
+ export declare function expandMockTemplate(value: unknown): unknown;
11
+ //# sourceMappingURL=mock-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-template.d.ts","sourceRoot":"","sources":["../../src/shared/mock-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAO1D"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Mock 模板展开
3
+ *
4
+ * 包装 mockjs, 把存档里的 override body 当作 Mock.js 模板:
5
+ * - 字符串里的 "@cname" / "@integer(1,100)" 等会被求值
6
+ * - 数组的 'key|1-10' 这类规则也会展开
7
+ *
8
+ * 失败时返回原值, 不影响 mock 服务可用性。
9
+ */
10
+ import Mock from 'mockjs';
11
+ export function expandMockTemplate(value) {
12
+ if (value === undefined || value === null)
13
+ return value;
14
+ try {
15
+ return Mock.mock(value);
16
+ }
17
+ catch {
18
+ return value;
19
+ }
20
+ }
21
+ //# sourceMappingURL=mock-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-template.js","sourceRoot":"","sources":["../../src/shared/mock-template.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,KAAe,CAAC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * requirement.md 管理模块
3
+ *
4
+ * 提供 requirement.md 的生成、加载功能
5
+ * requirement.md 用于用户和 Agent 协作整理需求,作为 Agent 的上下文
6
+ */
7
+ interface GenerateResult {
8
+ status: 'created' | 'overwritten' | 'confirm';
9
+ message: string;
10
+ }
11
+ /**
12
+ * Generate a requirement.md file in the project directory.
13
+ *
14
+ * @param projectDir Project root directory
15
+ * @param force If true, overwrite existing file without prompting
16
+ * @returns Result indicating what happened
17
+ */
18
+ export declare function generateRequirement(projectDir: string, force?: boolean): GenerateResult;
19
+ /**
20
+ * Load the content of requirement.md from the project directory, if it exists.
21
+ *
22
+ * @param projectDir Project root directory
23
+ * @returns The file content, or null if the file doesn't exist
24
+ */
25
+ export declare function loadRequirement(projectDir: string): string | null;
26
+ export {};
27
+ //# sourceMappingURL=requirement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../src/shared/requirement.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA8BH,UAAU,cAAc;IACtB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,CAAC;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,cAAc,CAmB9F;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * requirement.md 管理模块
3
+ *
4
+ * 提供 requirement.md 的生成、加载功能
5
+ * requirement.md 用于用户和 Agent 协作整理需求,作为 Agent 的上下文
6
+ */
7
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ const REQUIREMENT_FILENAME = 'requirement.md';
10
+ const REQUIREMENT_TEMPLATE = `# Project Requirements
11
+
12
+ > This file is used to collaboratively organize requirements between you and the AI agent.
13
+ > It will be automatically loaded as context in each session.
14
+ > Feel free to edit this file to describe your API requirements, business rules, and design decisions.
15
+
16
+ ## Overview
17
+
18
+ <!-- Describe the overall purpose of your API project -->
19
+
20
+ ## API Modules
21
+
22
+ <!-- List the main API modules and their responsibilities -->
23
+
24
+ ## Business Rules
25
+
26
+ <!-- Document important business rules and constraints -->
27
+
28
+ ## Notes
29
+
30
+ <!-- Any additional notes or context for the agent -->
31
+ `;
32
+ /**
33
+ * Generate a requirement.md file in the project directory.
34
+ *
35
+ * @param projectDir Project root directory
36
+ * @param force If true, overwrite existing file without prompting
37
+ * @returns Result indicating what happened
38
+ */
39
+ export function generateRequirement(projectDir, force = false) {
40
+ const filePath = join(projectDir, REQUIREMENT_FILENAME);
41
+ const exists = existsSync(filePath);
42
+ if (exists && !force) {
43
+ return {
44
+ status: 'confirm',
45
+ message: `requirement.md already exists in ${projectDir}. Run /init again to overwrite it.`,
46
+ };
47
+ }
48
+ writeFileSync(filePath, REQUIREMENT_TEMPLATE, 'utf-8');
49
+ return {
50
+ status: exists ? 'overwritten' : 'created',
51
+ message: exists
52
+ ? `requirement.md has been overwritten in ${projectDir}.`
53
+ : `requirement.md has been created in ${projectDir}. Edit it to describe your requirements — it will be loaded as agent context in each session.`,
54
+ };
55
+ }
56
+ /**
57
+ * Load the content of requirement.md from the project directory, if it exists.
58
+ *
59
+ * @param projectDir Project root directory
60
+ * @returns The file content, or null if the file doesn't exist
61
+ */
62
+ export function loadRequirement(projectDir) {
63
+ const filePath = join(projectDir, REQUIREMENT_FILENAME);
64
+ if (!existsSync(filePath)) {
65
+ return null;
66
+ }
67
+ const content = readFileSync(filePath, 'utf-8').trim();
68
+ return content || null;
69
+ }
70
+ //# sourceMappingURL=requirement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requirement.js","sourceRoot":"","sources":["../../src/shared/requirement.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAE9C,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqB5B,CAAC;AAOF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,QAAiB,KAAK;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,oCAAoC,UAAU,oCAAoC;SAC5F,CAAC;IACJ,CAAC;IAED,aAAa,CAAC,QAAQ,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAEvD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;QAC1C,OAAO,EAAE,MAAM;YACb,CAAC,CAAC,0CAA0C,UAAU,GAAG;YACzD,CAAC,CAAC,sCAAsC,UAAU,+FAA+F;KACpJ,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;IACxD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,OAAO,OAAO,IAAI,IAAI,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../../src/shared/schema-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAG/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAqBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAM3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAQzE"}
1
+ {"version":3,"file":"schema-utils.d.ts","sourceRoot":"","sources":["../../src/shared/schema-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAG/D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAuBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CAM3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,cAAc,CAQzE"}
@@ -17,7 +17,9 @@ export function listSchemaFiles(docsDir) {
17
17
  if (!fs.existsSync(docsDir)) {
18
18
  return [];
19
19
  }
20
- const files = fs.readdirSync(docsDir).filter((f) => f.endsWith('.schema.json'));
20
+ const files = fs
21
+ .readdirSync(docsDir)
22
+ .filter((f) => f.endsWith('.schema.json') && !f.endsWith('.mock.json'));
21
23
  return files.map((filename) => {
22
24
  const filepath = path.join(docsDir, filename);
23
25
  const stat = fs.statSync(filepath);
@@ -1 +1 @@
1
- {"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../../src/shared/schema-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAEhF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErC,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,QAAQ;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;YAClC,aAAa,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;YACzC,SAAS,EAAE,IAAI,CAAC,KAAK;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,GAAmB;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,OAAO,CACL,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QACnC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../../src/shared/schema-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,EAAE;SACb,WAAW,CAAC,OAAO,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAErC,OAAO;YACL,QAAQ;YACR,QAAQ;YACR,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,QAAQ;YAC5B,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE;YAClC,aAAa,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;YACzC,SAAS,EAAE,IAAI,CAAC,KAAK;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,GAAmB;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,OAAO,CACL,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;QAC7B,OAAO,GAAG,CAAC,WAAW,KAAK,QAAQ;QACnC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAC7B,CAAC;AACJ,CAAC"}
@@ -20,7 +20,7 @@ export interface MockConfig {
20
20
  port: number;
21
21
  host?: string;
22
22
  }
23
- /** loom.config.json 完整配置 */
23
+ /** Loom 全局配置 */
24
24
  export interface LoomConfig {
25
25
  /** schema 文件输出目录 (相对于目标项目根目录) */
26
26
  outDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAexE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,UAAU,QAAQ;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAyBD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAkZlC,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AAgBxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,UAAU,QAAQ;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AA0BD,eAAO,MAAM,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,QAAQ,CAkalC,CAAC"}
package/dist/tui/app.js CHANGED
@@ -14,6 +14,7 @@ import { SchemaPreview } from './components/SchemaPreview.js';
14
14
  import { useAgent } from './hooks/useAgent.js';
15
15
  import { listSchemaFiles } from '../shared/schema-utils.js';
16
16
  import { getOutDir } from '../shared/config.js';
17
+ import { generateRequirement } from '../shared/requirement.js';
17
18
  import { startMockServer } from '../mocks/server.js';
18
19
  import { startViewServer } from '../view/server.js';
19
20
  /** 内置命令帮助文本 */
@@ -27,6 +28,7 @@ const HELP_TEXT = `Available commands:
27
28
  /view — Start docs viewer (optional: /view <port>)
28
29
  /view stop — Stop docs viewer
29
30
  /view restart [port] — Restart docs viewer (also: /view resart)
31
+ /init — Generate requirement.md for collaborative requirements
30
32
  /abort — Abort current request (also: Esc)
31
33
  /exit — Exit Loom (also: /quit, Ctrl+C)`;
32
34
  function parsePort(raw) {
@@ -48,6 +50,7 @@ export const App = ({ agentConfig, version }) => {
48
50
  const [viewState, setViewState] = useState('stopped');
49
51
  const [viewPort, setViewPort] = useState(null);
50
52
  const viewServerRef = useRef(null);
53
+ const [initPendingOverwrite, setInitPendingOverwrite] = useState(false);
51
54
  const outDir = getOutDir(agentConfig.loomConfig, agentConfig.projectDir);
52
55
  /** Esc 键中断当前请求 */
53
56
  useInput((_, key) => {
@@ -214,6 +217,19 @@ export const App = ({ agentConfig, version }) => {
214
217
  abort();
215
218
  sendSystemMessage('Request aborted.');
216
219
  return;
220
+ case '/init': {
221
+ const reqPath = agentConfig.projectDir;
222
+ const result = generateRequirement(reqPath, initPendingOverwrite);
223
+ if (result.status === 'confirm') {
224
+ setInitPendingOverwrite(true);
225
+ sendSystemMessage(result.message);
226
+ }
227
+ else {
228
+ setInitPendingOverwrite(false);
229
+ sendSystemMessage(result.message);
230
+ }
231
+ return;
232
+ }
217
233
  case '/list':
218
234
  refreshSchemas();
219
235
  const files = listSchemaFiles(outDir);
@@ -347,6 +363,8 @@ export const App = ({ agentConfig, version }) => {
347
363
  viewPort,
348
364
  agentConfig.loomConfig.mock.port,
349
365
  agentConfig.loomConfig.serve.port,
366
+ agentConfig.projectDir,
367
+ initPendingOverwrite,
350
368
  ]);
351
369
  // 合并 agent 消息和本地消息,按时间排序
352
370
  const allMessages = [...messages, ...localMessages].sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE,UAAU,UAAU;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqBD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAqGtC,CAAC"}
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE,UAAU,UAAU;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsBD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CAqGtC,CAAC"}
@@ -18,6 +18,7 @@ const COMMAND_SUGGESTIONS = [
18
18
  { command: '/view', description: 'Start docs viewer (optional: /view <port>)' },
19
19
  { command: '/view stop', description: 'Stop docs viewer' },
20
20
  { command: '/view restart', description: 'Restart docs viewer (optional: <port>)' },
21
+ { command: '/init', description: 'Generate requirement.md file' },
21
22
  { command: '/abort', description: 'Abort current request' },
22
23
  { command: '/exit', description: 'Exit Loom' },
23
24
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAavC,MAAM,mBAAmB,GAAwB;IAC/C,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACtD,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAChE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAChE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC1D,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC1D,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE;IACjE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC3D,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,sBAAsB,GACrC,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,cAAc;IACd,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAClB,IAAI,QAAQ;YAAE,OAAO;QAErB,IAAI,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,eAAe,CAAC,OAAO,GAAG,CAAC,EAC3B,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAC9B,CAAC;YACF,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC;YACnC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC;gBACnC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,WAAmB,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,gBAAgB;QAChB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAE7B,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,mBACxB,IAAI,+BACA,GACH,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kBACpB,IAAI,GACA,EACP,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,GACxB,IACE,EAEL,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,0CAEpB,EACN,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAQ,EACxD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,kBACxB,IAAI,CAAC,WAAW,GACZ,KAJE,IAAI,CAAC,OAAO,CAKhB,CACR,CAAC,IACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}