compact-agent 1.1.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 (324) hide show
  1. package/README.md +394 -0
  2. package/bin/anycode.js +2 -0
  3. package/bin/crowcoder.js +19 -0
  4. package/bin/ecc-hooks.cjs +138 -0
  5. package/dist/agents.d.ts +17 -0
  6. package/dist/agents.js +1603 -0
  7. package/dist/agents.js.map +1 -0
  8. package/dist/api.d.ts +16 -0
  9. package/dist/api.js +115 -0
  10. package/dist/api.js.map +1 -0
  11. package/dist/autonomous-loops.d.ts +108 -0
  12. package/dist/autonomous-loops.js +526 -0
  13. package/dist/autonomous-loops.js.map +1 -0
  14. package/dist/codemaps.d.ts +53 -0
  15. package/dist/codemaps.js +325 -0
  16. package/dist/codemaps.js.map +1 -0
  17. package/dist/compaction.d.ts +30 -0
  18. package/dist/compaction.js +125 -0
  19. package/dist/compaction.js.map +1 -0
  20. package/dist/config.d.ts +5 -0
  21. package/dist/config.js +79 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/content-engine.d.ts +97 -0
  24. package/dist/content-engine.js +721 -0
  25. package/dist/content-engine.js.map +1 -0
  26. package/dist/cost-tracker.d.ts +49 -0
  27. package/dist/cost-tracker.js +150 -0
  28. package/dist/cost-tracker.js.map +1 -0
  29. package/dist/counter-button.d.ts +35 -0
  30. package/dist/counter-button.js +48 -0
  31. package/dist/counter-button.js.map +1 -0
  32. package/dist/counter.d.ts +21 -0
  33. package/dist/counter.js +31 -0
  34. package/dist/counter.js.map +1 -0
  35. package/dist/coverage.d.ts +23 -0
  36. package/dist/coverage.js +215 -0
  37. package/dist/coverage.js.map +1 -0
  38. package/dist/docs-sync.d.ts +23 -0
  39. package/dist/docs-sync.js +266 -0
  40. package/dist/docs-sync.js.map +1 -0
  41. package/dist/ecc.d.ts +41 -0
  42. package/dist/ecc.js +644 -0
  43. package/dist/ecc.js.map +1 -0
  44. package/dist/evaluation.d.ts +24 -0
  45. package/dist/evaluation.js +412 -0
  46. package/dist/evaluation.js.map +1 -0
  47. package/dist/export.d.ts +22 -0
  48. package/dist/export.js +109 -0
  49. package/dist/export.js.map +1 -0
  50. package/dist/git-workflow.d.ts +22 -0
  51. package/dist/git-workflow.js +197 -0
  52. package/dist/git-workflow.js.map +1 -0
  53. package/dist/hook-controls.d.ts +34 -0
  54. package/dist/hook-controls.js +90 -0
  55. package/dist/hook-controls.js.map +1 -0
  56. package/dist/hooks.d.ts +30 -0
  57. package/dist/hooks.js +130 -0
  58. package/dist/hooks.js.map +1 -0
  59. package/dist/html-parser.d.ts +18 -0
  60. package/dist/html-parser.js +101 -0
  61. package/dist/html-parser.js.map +1 -0
  62. package/dist/index.d.ts +12 -0
  63. package/dist/index.js +1230 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/learning.d.ts +35 -0
  66. package/dist/learning.js +238 -0
  67. package/dist/learning.js.map +1 -0
  68. package/dist/login.d.ts +37 -0
  69. package/dist/login.js +191 -0
  70. package/dist/login.js.map +1 -0
  71. package/dist/memory.d.ts +39 -0
  72. package/dist/memory.js +183 -0
  73. package/dist/memory.js.map +1 -0
  74. package/dist/model-router.d.ts +23 -0
  75. package/dist/model-router.js +145 -0
  76. package/dist/model-router.js.map +1 -0
  77. package/dist/modes.d.ts +17 -0
  78. package/dist/modes.js +217 -0
  79. package/dist/modes.js.map +1 -0
  80. package/dist/orchestration.d.ts +37 -0
  81. package/dist/orchestration.js +139 -0
  82. package/dist/orchestration.js.map +1 -0
  83. package/dist/package-detect.d.ts +36 -0
  84. package/dist/package-detect.js +529 -0
  85. package/dist/package-detect.js.map +1 -0
  86. package/dist/permissions.d.ts +25 -0
  87. package/dist/permissions.js +50 -0
  88. package/dist/permissions.js.map +1 -0
  89. package/dist/pm2-manager.d.ts +40 -0
  90. package/dist/pm2-manager.js +127 -0
  91. package/dist/pm2-manager.js.map +1 -0
  92. package/dist/query.d.ts +15 -0
  93. package/dist/query.js +278 -0
  94. package/dist/query.js.map +1 -0
  95. package/dist/refactor.d.ts +22 -0
  96. package/dist/refactor.js +226 -0
  97. package/dist/refactor.js.map +1 -0
  98. package/dist/retry.d.ts +20 -0
  99. package/dist/retry.js +88 -0
  100. package/dist/retry.js.map +1 -0
  101. package/dist/rules.d.ts +34 -0
  102. package/dist/rules.js +942 -0
  103. package/dist/rules.js.map +1 -0
  104. package/dist/schema.d.ts +23 -0
  105. package/dist/schema.js +12 -0
  106. package/dist/schema.js.map +1 -0
  107. package/dist/search-first.d.ts +17 -0
  108. package/dist/search-first.js +301 -0
  109. package/dist/search-first.js.map +1 -0
  110. package/dist/security.d.ts +10 -0
  111. package/dist/security.js +145 -0
  112. package/dist/security.js.map +1 -0
  113. package/dist/sessions.d.ts +21 -0
  114. package/dist/sessions.js +112 -0
  115. package/dist/sessions.js.map +1 -0
  116. package/dist/skill-create.d.ts +38 -0
  117. package/dist/skill-create.js +389 -0
  118. package/dist/skill-create.js.map +1 -0
  119. package/dist/skills.d.ts +34 -0
  120. package/dist/skills.js +161 -0
  121. package/dist/skills.js.map +1 -0
  122. package/dist/strategic-compaction.d.ts +24 -0
  123. package/dist/strategic-compaction.js +144 -0
  124. package/dist/strategic-compaction.js.map +1 -0
  125. package/dist/system-prompt.d.ts +3 -0
  126. package/dist/system-prompt.js +101 -0
  127. package/dist/system-prompt.js.map +1 -0
  128. package/dist/theme.d.ts +60 -0
  129. package/dist/theme.js +220 -0
  130. package/dist/theme.js.map +1 -0
  131. package/dist/tools/bash.d.ts +2 -0
  132. package/dist/tools/bash.js +49 -0
  133. package/dist/tools/bash.js.map +1 -0
  134. package/dist/tools/edit.d.ts +2 -0
  135. package/dist/tools/edit.js +76 -0
  136. package/dist/tools/edit.js.map +1 -0
  137. package/dist/tools/glob.d.ts +2 -0
  138. package/dist/tools/glob.js +54 -0
  139. package/dist/tools/glob.js.map +1 -0
  140. package/dist/tools/grep.d.ts +2 -0
  141. package/dist/tools/grep.js +64 -0
  142. package/dist/tools/grep.js.map +1 -0
  143. package/dist/tools/index.d.ts +5 -0
  144. package/dist/tools/index.js +27 -0
  145. package/dist/tools/index.js.map +1 -0
  146. package/dist/tools/list-dir.d.ts +2 -0
  147. package/dist/tools/list-dir.js +51 -0
  148. package/dist/tools/list-dir.js.map +1 -0
  149. package/dist/tools/read.d.ts +2 -0
  150. package/dist/tools/read.js +56 -0
  151. package/dist/tools/read.js.map +1 -0
  152. package/dist/tools/types.d.ts +45 -0
  153. package/dist/tools/types.js +2 -0
  154. package/dist/tools/types.js.map +1 -0
  155. package/dist/tools/web-fetch.d.ts +2 -0
  156. package/dist/tools/web-fetch.js +41 -0
  157. package/dist/tools/web-fetch.js.map +1 -0
  158. package/dist/tools/web-search.d.ts +27 -0
  159. package/dist/tools/web-search.js +139 -0
  160. package/dist/tools/web-search.js.map +1 -0
  161. package/dist/tools/write.d.ts +2 -0
  162. package/dist/tools/write.js +36 -0
  163. package/dist/tools/write.js.map +1 -0
  164. package/dist/types.d.ts +28 -0
  165. package/dist/types.js +57 -0
  166. package/dist/types.js.map +1 -0
  167. package/dist/users.d.ts +51 -0
  168. package/dist/users.js +193 -0
  169. package/dist/users.js.map +1 -0
  170. package/dist/verification.d.ts +73 -0
  171. package/dist/verification.js +269 -0
  172. package/dist/verification.js.map +1 -0
  173. package/dist/walkthrough.d.ts +10 -0
  174. package/dist/walkthrough.js +121 -0
  175. package/dist/walkthrough.js.map +1 -0
  176. package/package.json +58 -0
  177. package/resources/ecc/agents/architect.json +16 -0
  178. package/resources/ecc/agents/architect.md +212 -0
  179. package/resources/ecc/agents/build-error-resolver.json +17 -0
  180. package/resources/ecc/agents/build-error-resolver.md +116 -0
  181. package/resources/ecc/agents/chief-of-staff.json +17 -0
  182. package/resources/ecc/agents/chief-of-staff.md +153 -0
  183. package/resources/ecc/agents/code-reviewer.json +16 -0
  184. package/resources/ecc/agents/code-reviewer.md +238 -0
  185. package/resources/ecc/agents/database-reviewer.json +16 -0
  186. package/resources/ecc/agents/database-reviewer.md +92 -0
  187. package/resources/ecc/agents/doc-updater.json +16 -0
  188. package/resources/ecc/agents/doc-updater.md +108 -0
  189. package/resources/ecc/agents/e2e-runner.json +17 -0
  190. package/resources/ecc/agents/e2e-runner.md +109 -0
  191. package/resources/ecc/agents/go-build-resolver.json +17 -0
  192. package/resources/ecc/agents/go-build-resolver.md +96 -0
  193. package/resources/ecc/agents/go-reviewer.json +16 -0
  194. package/resources/ecc/agents/go-reviewer.md +77 -0
  195. package/resources/ecc/agents/harness-optimizer.json +15 -0
  196. package/resources/ecc/agents/harness-optimizer.md +34 -0
  197. package/resources/ecc/agents/loop-operator.json +16 -0
  198. package/resources/ecc/agents/loop-operator.md +36 -0
  199. package/resources/ecc/agents/planner.json +15 -0
  200. package/resources/ecc/agents/planner.md +212 -0
  201. package/resources/ecc/agents/python-reviewer.json +16 -0
  202. package/resources/ecc/agents/python-reviewer.md +99 -0
  203. package/resources/ecc/agents/refactor-cleaner.json +17 -0
  204. package/resources/ecc/agents/refactor-cleaner.md +87 -0
  205. package/resources/ecc/agents/security-reviewer.json +16 -0
  206. package/resources/ecc/agents/security-reviewer.md +109 -0
  207. package/resources/ecc/agents/tdd-guide.json +17 -0
  208. package/resources/ecc/agents/tdd-guide.md +93 -0
  209. package/resources/ecc/commands/add-language-rules.md +39 -0
  210. package/resources/ecc/commands/database-migration.md +36 -0
  211. package/resources/ecc/commands/feature-development.md +38 -0
  212. package/resources/ecc/prompts/build-fix.prompt.md +47 -0
  213. package/resources/ecc/prompts/code-review.prompt.md +56 -0
  214. package/resources/ecc/prompts/plan.prompt.md +52 -0
  215. package/resources/ecc/prompts/refactor.prompt.md +50 -0
  216. package/resources/ecc/prompts/security-review.prompt.md +70 -0
  217. package/resources/ecc/prompts/tdd.prompt.md +47 -0
  218. package/resources/ecc/rules/common-agents.md +53 -0
  219. package/resources/ecc/rules/common-coding-style.md +52 -0
  220. package/resources/ecc/rules/common-development-workflow.md +33 -0
  221. package/resources/ecc/rules/common-git-workflow.md +28 -0
  222. package/resources/ecc/rules/common-hooks.md +34 -0
  223. package/resources/ecc/rules/common-patterns.md +35 -0
  224. package/resources/ecc/rules/common-performance.md +59 -0
  225. package/resources/ecc/rules/common-security.md +33 -0
  226. package/resources/ecc/rules/common-testing.md +33 -0
  227. package/resources/ecc/rules/golang-coding-style.md +31 -0
  228. package/resources/ecc/rules/golang-hooks.md +16 -0
  229. package/resources/ecc/rules/golang-patterns.md +44 -0
  230. package/resources/ecc/rules/golang-security.md +33 -0
  231. package/resources/ecc/rules/golang-testing.md +30 -0
  232. package/resources/ecc/rules/kotlin-coding-style.md +39 -0
  233. package/resources/ecc/rules/kotlin-hooks.md +16 -0
  234. package/resources/ecc/rules/kotlin-patterns.md +50 -0
  235. package/resources/ecc/rules/kotlin-security.md +58 -0
  236. package/resources/ecc/rules/kotlin-testing.md +38 -0
  237. package/resources/ecc/rules/php-coding-style.md +25 -0
  238. package/resources/ecc/rules/php-hooks.md +21 -0
  239. package/resources/ecc/rules/php-patterns.md +23 -0
  240. package/resources/ecc/rules/php-security.md +24 -0
  241. package/resources/ecc/rules/php-testing.md +26 -0
  242. package/resources/ecc/rules/python-coding-style.md +42 -0
  243. package/resources/ecc/rules/python-hooks.md +19 -0
  244. package/resources/ecc/rules/python-patterns.md +39 -0
  245. package/resources/ecc/rules/python-security.md +30 -0
  246. package/resources/ecc/rules/python-testing.md +38 -0
  247. package/resources/ecc/rules/swift-coding-style.md +47 -0
  248. package/resources/ecc/rules/swift-hooks.md +20 -0
  249. package/resources/ecc/rules/swift-patterns.md +66 -0
  250. package/resources/ecc/rules/swift-security.md +33 -0
  251. package/resources/ecc/rules/swift-testing.md +45 -0
  252. package/resources/ecc/rules/typescript-coding-style.md +63 -0
  253. package/resources/ecc/rules/typescript-hooks.md +20 -0
  254. package/resources/ecc/rules/typescript-patterns.md +50 -0
  255. package/resources/ecc/rules/typescript-security.md +26 -0
  256. package/resources/ecc/rules/typescript-testing.md +16 -0
  257. package/resources/ecc/skills/agent-introspection-debugging/SKILL.md +152 -0
  258. package/resources/ecc/skills/agent-introspection-debugging/agents/openai.yaml +7 -0
  259. package/resources/ecc/skills/agent-sort/SKILL.md +214 -0
  260. package/resources/ecc/skills/agent-sort/agents/openai.yaml +7 -0
  261. package/resources/ecc/skills/api-design/SKILL.md +522 -0
  262. package/resources/ecc/skills/api-design/agents/openai.yaml +7 -0
  263. package/resources/ecc/skills/article-writing/SKILL.md +78 -0
  264. package/resources/ecc/skills/article-writing/agents/openai.yaml +7 -0
  265. package/resources/ecc/skills/backend-patterns/SKILL.md +597 -0
  266. package/resources/ecc/skills/backend-patterns/agents/openai.yaml +7 -0
  267. package/resources/ecc/skills/brand-voice/SKILL.md +96 -0
  268. package/resources/ecc/skills/brand-voice/agents/openai.yaml +7 -0
  269. package/resources/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
  270. package/resources/ecc/skills/bun-runtime/SKILL.md +83 -0
  271. package/resources/ecc/skills/bun-runtime/agents/openai.yaml +7 -0
  272. package/resources/ecc/skills/coding-standards/SKILL.md +548 -0
  273. package/resources/ecc/skills/coding-standards/agents/openai.yaml +7 -0
  274. package/resources/ecc/skills/content-engine/SKILL.md +130 -0
  275. package/resources/ecc/skills/content-engine/agents/openai.yaml +7 -0
  276. package/resources/ecc/skills/crosspost/SKILL.md +110 -0
  277. package/resources/ecc/skills/crosspost/agents/openai.yaml +7 -0
  278. package/resources/ecc/skills/deep-research/SKILL.md +154 -0
  279. package/resources/ecc/skills/deep-research/agents/openai.yaml +7 -0
  280. package/resources/ecc/skills/dmux-workflows/SKILL.md +143 -0
  281. package/resources/ecc/skills/dmux-workflows/agents/openai.yaml +7 -0
  282. package/resources/ecc/skills/documentation-lookup/SKILL.md +89 -0
  283. package/resources/ecc/skills/documentation-lookup/agents/openai.yaml +7 -0
  284. package/resources/ecc/skills/e2e-testing/SKILL.md +325 -0
  285. package/resources/ecc/skills/e2e-testing/agents/openai.yaml +7 -0
  286. package/resources/ecc/skills/eval-harness/SKILL.md +235 -0
  287. package/resources/ecc/skills/eval-harness/agents/openai.yaml +7 -0
  288. package/resources/ecc/skills/everything-claude-code/SKILL.md +442 -0
  289. package/resources/ecc/skills/everything-claude-code/agents/openai.yaml +7 -0
  290. package/resources/ecc/skills/exa-search/SKILL.md +169 -0
  291. package/resources/ecc/skills/exa-search/agents/openai.yaml +7 -0
  292. package/resources/ecc/skills/fal-ai-media/SKILL.md +276 -0
  293. package/resources/ecc/skills/fal-ai-media/agents/openai.yaml +7 -0
  294. package/resources/ecc/skills/frontend-patterns/SKILL.md +647 -0
  295. package/resources/ecc/skills/frontend-patterns/agents/openai.yaml +7 -0
  296. package/resources/ecc/skills/frontend-slides/SKILL.md +183 -0
  297. package/resources/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
  298. package/resources/ecc/skills/frontend-slides/agents/openai.yaml +7 -0
  299. package/resources/ecc/skills/investor-materials/SKILL.md +95 -0
  300. package/resources/ecc/skills/investor-materials/agents/openai.yaml +7 -0
  301. package/resources/ecc/skills/investor-outreach/SKILL.md +90 -0
  302. package/resources/ecc/skills/investor-outreach/agents/openai.yaml +7 -0
  303. package/resources/ecc/skills/market-research/SKILL.md +74 -0
  304. package/resources/ecc/skills/market-research/agents/openai.yaml +7 -0
  305. package/resources/ecc/skills/mcp-server-patterns/SKILL.md +66 -0
  306. package/resources/ecc/skills/mcp-server-patterns/agents/openai.yaml +7 -0
  307. package/resources/ecc/skills/mle-workflow/SKILL.md +346 -0
  308. package/resources/ecc/skills/mle-workflow/agents/openai.yaml +7 -0
  309. package/resources/ecc/skills/nextjs-turbopack/SKILL.md +43 -0
  310. package/resources/ecc/skills/nextjs-turbopack/agents/openai.yaml +7 -0
  311. package/resources/ecc/skills/product-capability/SKILL.md +140 -0
  312. package/resources/ecc/skills/product-capability/agents/openai.yaml +7 -0
  313. package/resources/ecc/skills/security-review/SKILL.md +494 -0
  314. package/resources/ecc/skills/security-review/agents/openai.yaml +7 -0
  315. package/resources/ecc/skills/strategic-compact/SKILL.md +102 -0
  316. package/resources/ecc/skills/strategic-compact/agents/openai.yaml +7 -0
  317. package/resources/ecc/skills/tdd-workflow/SKILL.md +409 -0
  318. package/resources/ecc/skills/tdd-workflow/agents/openai.yaml +7 -0
  319. package/resources/ecc/skills/verification-loop/SKILL.md +125 -0
  320. package/resources/ecc/skills/verification-loop/agents/openai.yaml +7 -0
  321. package/resources/ecc/skills/video-editing/SKILL.md +307 -0
  322. package/resources/ecc/skills/video-editing/agents/openai.yaml +7 -0
  323. package/resources/ecc/skills/x-api/SKILL.md +229 -0
  324. package/resources/ecc/skills/x-api/agents/openai.yaml +7 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ export type CheckResult = 'pass' | 'warn' | 'fail';
2
+ export interface QualityCheck {
3
+ name: string;
4
+ result: CheckResult;
5
+ message: string;
6
+ score: number;
7
+ }
8
+ export interface AuditReport {
9
+ checks: QualityCheck[];
10
+ totalScore: number;
11
+ maxScore: number;
12
+ grade: string;
13
+ }
14
+ export declare function buildReviewPrompt(cwd: string, target?: string): string | null;
15
+ export declare function buildTDDPrompt(description: string): string;
16
+ export declare function buildSecurityReviewPrompt(cwd: string): string;
17
+ export declare function buildPlanPrompt(task: string, cwd: string): string;
18
+ export declare function buildE2EPrompt(target: string, cwd: string): string;
19
+ export declare function buildBuildFixPrompt(cwd: string, errorOutput?: string): string;
20
+ export declare function buildEvalPrompt(criteria: string, target?: string): string;
21
+ export declare function buildUpdateDocsPrompt(cwd: string): string;
22
+ export declare function runAudit(cwd: string): AuditReport;
23
+ export declare function printAuditReport(report: AuditReport): void;
24
+ export declare function detectE2EFramework(cwd: string): string;
@@ -0,0 +1,412 @@
1
+ /**
2
+ * Evaluation framework — quality gates, code review, TDD, security review.
3
+ * Also includes verification loops and harness audit scoring.
4
+ */
5
+ import chalk from 'chalk';
6
+ import { execSync } from 'node:child_process';
7
+ import { existsSync, statSync, readFileSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { isGitRepo, gitDiff, gitStatus } from './git-workflow.js';
10
+ // ── Code Review Prompt ────────────────────────────────────
11
+ export function buildReviewPrompt(cwd, target) {
12
+ if (!isGitRepo(cwd))
13
+ return null;
14
+ const diff = target
15
+ ? execSafe(`git diff ${target}`, cwd)
16
+ : gitDiff(cwd, false) || gitDiff(cwd, true);
17
+ if (!diff)
18
+ return null;
19
+ return `Perform a thorough code review of the following changes.
20
+
21
+ \`\`\`diff
22
+ ${diff.slice(0, 15000)}
23
+ \`\`\`
24
+
25
+ Review for:
26
+ 1. **Correctness** — Logic errors, edge cases, off-by-one
27
+ 2. **Security** — Injection, XSS, secrets, path traversal, auth issues
28
+ 3. **Performance** — N+1 queries, unbounded loops, memory leaks
29
+ 4. **Maintainability** — Naming, complexity, dead code, duplication
30
+ 5. **Testing** — Are tests adequate? What's missing?
31
+
32
+ For each issue found, specify:
33
+ - File and line number
34
+ - Severity: CRITICAL / HIGH / MEDIUM / LOW / NIT
35
+ - What's wrong and how to fix it
36
+
37
+ End with an overall verdict: APPROVE / REQUEST CHANGES / NEEDS DISCUSSION`;
38
+ }
39
+ // ── TDD Prompt ────────────────────────────────────────────
40
+ export function buildTDDPrompt(description) {
41
+ return `I want to implement: ${description}
42
+
43
+ Follow strict TDD methodology:
44
+
45
+ **Step 1 — RED**: Write a failing test first.
46
+ - Use the project's existing test framework (detect from package.json, pytest.ini, etc.)
47
+ - The test should define the expected behavior clearly
48
+ - Run the test and show it fails
49
+
50
+ **Step 2 — GREEN**: Write the minimal code to make the test pass.
51
+ - Only write enough code to pass the test
52
+ - No extra functionality
53
+ - Run the test and show it passes
54
+
55
+ **Step 3 — REFACTOR**: Clean up if needed.
56
+ - Remove duplication
57
+ - Improve naming
58
+ - Ensure tests still pass
59
+
60
+ Repeat for each behavior. Show test output after each step.`;
61
+ }
62
+ // ── Security Review Prompt ────────────────────────────────
63
+ export function buildSecurityReviewPrompt(cwd) {
64
+ return `Perform a security review of this project at ${cwd}.
65
+
66
+ Check for:
67
+ 1. **Injection vulnerabilities** — SQL, command, XSS, template
68
+ 2. **Authentication/Authorization** — Missing auth checks, weak sessions
69
+ 3. **Secrets management** — Hardcoded credentials, API keys in code
70
+ 4. **Input validation** — Missing validation, type coercion issues
71
+ 5. **Dependency vulnerabilities** — Check package.json/requirements.txt for known CVEs
72
+ 6. **File system** — Path traversal, unsafe file operations
73
+ 7. **Network** — HTTPS enforcement, CORS misconfiguration
74
+ 8. **Cryptography** — Weak algorithms, improper key management
75
+
76
+ For each finding:
77
+ - Severity: CRITICAL / HIGH / MEDIUM / LOW
78
+ - Location: file:line
79
+ - Description and remediation
80
+
81
+ Start by scanning the project structure, then read key files.`;
82
+ }
83
+ // ── Implementation Plan Prompt ────────────────────────────
84
+ export function buildPlanPrompt(task, cwd) {
85
+ return `Task: ${task}
86
+
87
+ Working directory: ${cwd}
88
+
89
+ Create a detailed implementation plan:
90
+
91
+ **Phase Breakdown**:
92
+ For each phase, include:
93
+ - Phase number and name
94
+ - Dependencies (what phases must complete first)
95
+ - Files to create or modify (with paths)
96
+ - Estimated complexity (1-5, where 5 is most complex)
97
+ - Key implementation details
98
+
99
+ **File Inventory**:
100
+ List each file that will be created or modified with:
101
+ - Full file path (relative to ${cwd})
102
+ - Purpose/reason for change
103
+ - Rough line count estimate if applicable
104
+
105
+ **Edge Cases & Testing**:
106
+ - Identify 3-5 edge cases to handle
107
+ - Suggest test scenarios for each phase
108
+ - Note any integration points with existing code
109
+
110
+ **Implementation Order**:
111
+ Number your phases in dependency order so each can be built on previous ones.
112
+
113
+ Output as a numbered list with clear formatting.`;
114
+ }
115
+ // ── E2E Test Generation Prompt ─────────────────────────────
116
+ export function buildE2EPrompt(target, cwd) {
117
+ const framework = detectE2EFramework(cwd);
118
+ return `Generate end-to-end tests for: ${target}
119
+
120
+ Framework: ${framework}
121
+ Working directory: ${cwd}
122
+
123
+ **Testing Strategy**:
124
+
125
+ 1. **Page Object Model Pattern**:
126
+ - Create page objects for main UI components
127
+ - Encapsulate selectors and actions
128
+ - Reuse across test scenarios
129
+
130
+ 2. **Test Scenarios**:
131
+ - **Happy Path**: Normal user workflow for the feature
132
+ - **Error States**: Invalid inputs, API failures, network errors
133
+ - **Edge Cases**: Boundary conditions, race conditions, permission checks
134
+ - **State Transitions**: Moving between different feature states
135
+
136
+ 3. **Test Structure**:
137
+ - Setup: Browser initialization, test data creation
138
+ - Teardown: Cleanup, screenshot on failure
139
+ - Assertions: Verify UI state, API responses, database changes
140
+
141
+ 4. **Coverage Areas**:
142
+ - User interactions (click, type, select, submit)
143
+ - Validation messages and error handling
144
+ - Navigation and routing
145
+ - Asynchronous operations (loading states, waits)
146
+
147
+ Generate complete, runnable test code with proper error handling and waits.`;
148
+ }
149
+ // ── Build Error Fix Prompt ─────────────────────────────────
150
+ export function buildBuildFixPrompt(cwd, errorOutput) {
151
+ const strategy = errorOutput
152
+ ? `The following build errors were captured:
153
+
154
+ \`\`\`
155
+ ${errorOutput.slice(0, 5000)}
156
+ \`\`\`
157
+
158
+ Analyze these errors and fix them one at a time.`
159
+ : `Run the build command in ${cwd} and capture the output.
160
+ If there are errors, analyze them and fix them one at a time.
161
+ After each fix, re-run the build to verify.`;
162
+ return `${strategy}
163
+
164
+ **Error Resolution Process**:
165
+
166
+ For each error found:
167
+ 1. **Parse** the error message
168
+ - Identify the root cause (missing dependency, syntax error, type error, etc.)
169
+ - Extract file path and line number
170
+ - Note the error category
171
+
172
+ 2. **Fix** the error
173
+ - Make the minimal change to resolve it
174
+ - Don't over-engineer
175
+
176
+ 3. **Verify**
177
+ - Run build/test commands
178
+ - Confirm the error is resolved
179
+
180
+ 4. **Repeat** until build succeeds
181
+
182
+ **Supported Error Types**:
183
+ - TypeScript compilation errors
184
+ - Rust build errors
185
+ - Go build errors
186
+ - Java compilation errors
187
+ - Python import/syntax errors
188
+
189
+ Be methodical and show your work at each step.`;
190
+ }
191
+ // ── Evaluation Prompt ──────────────────────────────────────
192
+ export function buildEvalPrompt(criteria, target) {
193
+ const targetStr = target ? `Target: ${target}\n` : '';
194
+ return `${targetStr}Evaluate against criterion: ${criteria}
195
+
196
+ **Scoring & Evidence**:
197
+
198
+ For each sub-criterion or aspect:
199
+ 1. Score from 1-10 (1=failing, 10=excellent)
200
+ 2. Provide specific evidence:
201
+ - Point to code examples, metrics, or test results
202
+ - Include exact file paths and line numbers when relevant
203
+ - Cite measurements (e.g., "Lighthouse score: 95/100")
204
+ 3. Explain your reasoning briefly
205
+
206
+ **Output Format**:
207
+
208
+ For each major aspect:
209
+ \`\`\`
210
+ Aspect: [Name]
211
+ Score: [X]/10
212
+ Evidence: [specific findings]
213
+ Recommendation: [actionable improvement]
214
+ \`\`\`
215
+
216
+ **Final Summary**:
217
+ - Overall criterion score (weighted average if multiple aspects)
218
+ - Top 3 strengths
219
+ - Top 3 areas for improvement
220
+ - Specific, actionable next steps
221
+
222
+ Be specific and evidence-based in your evaluation.`;
223
+ }
224
+ // ── Documentation Update Prompt ────────────────────────────
225
+ export function buildUpdateDocsPrompt(cwd) {
226
+ return `Update project documentation at ${cwd}.
227
+
228
+ **Documentation Review**:
229
+
230
+ 1. **Find docs**:
231
+ - README.md
232
+ - API documentation (docs/, wiki/, etc.)
233
+ - CHANGELOG.md
234
+ - Code comments and inline docs
235
+
236
+ 2. **Compare with code**:
237
+ - Read the current code
238
+ - Check if docs match implementation
239
+ - Identify outdated sections
240
+
241
+ 3. **Update**:
242
+ - Fix inaccurate sections
243
+ - Add missing features or APIs
244
+ - Update examples with current code
245
+ - Improve unclear explanations
246
+
247
+ 4. **Add**:
248
+ - Document new features not yet documented
249
+ - Add examples for complex features
250
+ - Document configuration options
251
+ - Add troubleshooting sections if missing
252
+
253
+ Be thorough and ensure all public APIs and features are documented.`;
254
+ }
255
+ // ── Harness Audit ─────────────────────────────────────────
256
+ export function runAudit(cwd) {
257
+ const checks = [];
258
+ // 1. Git repo check
259
+ checks.push(isGitRepo(cwd)
260
+ ? { name: 'Git Repository', result: 'pass', message: 'Project is version controlled', score: 10 }
261
+ : { name: 'Git Repository', result: 'fail', message: 'Not a git repo — version control recommended', score: 0 });
262
+ // 2. Clean working tree
263
+ if (isGitRepo(cwd)) {
264
+ const status = gitStatus(cwd);
265
+ checks.push(!status
266
+ ? { name: 'Clean Working Tree', result: 'pass', message: 'No uncommitted changes', score: 10 }
267
+ : { name: 'Clean Working Tree', result: 'warn', message: `${status.split('\n').length} uncommitted changes`, score: 5 });
268
+ }
269
+ // 3. Package manager lock file
270
+ const hasLockFile = fileExists(cwd, 'package-lock.json') || fileExists(cwd, 'yarn.lock') ||
271
+ fileExists(cwd, 'pnpm-lock.yaml') || fileExists(cwd, 'bun.lock') ||
272
+ fileExists(cwd, 'Cargo.lock') || fileExists(cwd, 'go.sum') ||
273
+ fileExists(cwd, 'poetry.lock') || fileExists(cwd, 'Pipfile.lock');
274
+ checks.push(hasLockFile
275
+ ? { name: 'Lock File', result: 'pass', message: 'Dependency lock file present', score: 10 }
276
+ : { name: 'Lock File', result: 'warn', message: 'No lock file — builds may not be reproducible', score: 3 });
277
+ // 4. Tests exist
278
+ const hasTests = dirExists(cwd, 'test') || dirExists(cwd, 'tests') || dirExists(cwd, '__tests__') ||
279
+ dirExists(cwd, 'spec') || fileExists(cwd, 'jest.config.js') || fileExists(cwd, 'pytest.ini') ||
280
+ fileExists(cwd, 'vitest.config.ts');
281
+ checks.push(hasTests
282
+ ? { name: 'Test Suite', result: 'pass', message: 'Test directory/config found', score: 15 }
283
+ : { name: 'Test Suite', result: 'fail', message: 'No tests found — testing is essential', score: 0 });
284
+ // 5. .gitignore
285
+ checks.push(fileExists(cwd, '.gitignore')
286
+ ? { name: '.gitignore', result: 'pass', message: '.gitignore present', score: 5 }
287
+ : { name: '.gitignore', result: 'warn', message: 'No .gitignore — may commit unwanted files', score: 2 });
288
+ // 6. README
289
+ const hasReadme = fileExists(cwd, 'README.md') || fileExists(cwd, 'README.txt') || fileExists(cwd, 'README');
290
+ checks.push(hasReadme
291
+ ? { name: 'README', result: 'pass', message: 'README found', score: 5 }
292
+ : { name: 'README', result: 'warn', message: 'No README — documentation recommended', score: 2 });
293
+ // 7. CI/CD
294
+ const hasCI = dirExists(cwd, '.github/workflows') || fileExists(cwd, '.gitlab-ci.yml') ||
295
+ fileExists(cwd, 'Jenkinsfile') || fileExists(cwd, '.circleci/config.yml');
296
+ checks.push(hasCI
297
+ ? { name: 'CI/CD', result: 'pass', message: 'CI/CD configuration found', score: 10 }
298
+ : { name: 'CI/CD', result: 'warn', message: 'No CI/CD — automated testing/deployment recommended', score: 3 });
299
+ // 8. No secrets in repo
300
+ const secretsCheck = checkForSecrets(cwd);
301
+ checks.push(secretsCheck);
302
+ // 9. Linter/formatter config
303
+ const hasLinter = fileExists(cwd, '.eslintrc.json') || fileExists(cwd, '.eslintrc.js') ||
304
+ fileExists(cwd, 'biome.json') || fileExists(cwd, '.prettierrc') ||
305
+ fileExists(cwd, 'rustfmt.toml') || fileExists(cwd, '.golangci.yml') ||
306
+ fileExists(cwd, 'setup.cfg') || fileExists(cwd, 'pyproject.toml');
307
+ checks.push(hasLinter
308
+ ? { name: 'Linter/Formatter', result: 'pass', message: 'Code quality tool configured', score: 10 }
309
+ : { name: 'Linter/Formatter', result: 'warn', message: 'No linter/formatter — code consistency at risk', score: 3 });
310
+ // 10. TypeScript strict (if applicable)
311
+ if (fileExists(cwd, 'tsconfig.json')) {
312
+ const tsCheck = checkTSStrict(cwd);
313
+ checks.push(tsCheck);
314
+ }
315
+ // Calculate totals
316
+ const totalScore = checks.reduce((s, c) => s + c.score, 0);
317
+ const maxScore = checks.length * 15; // max 15 per check
318
+ const pct = (totalScore / maxScore) * 100;
319
+ const grade = pct >= 90 ? 'A' : pct >= 75 ? 'B' : pct >= 60 ? 'C' : pct >= 40 ? 'D' : 'F';
320
+ return { checks, totalScore, maxScore, grade };
321
+ }
322
+ export function printAuditReport(report) {
323
+ const gradeColor = { A: chalk.green, B: chalk.cyan, C: chalk.yellow, D: chalk.red, F: chalk.bgRed.white };
324
+ const gc = gradeColor[report.grade] || chalk.white;
325
+ console.log(chalk.cyan('\n Harness Audit Report'));
326
+ console.log(gc(` Grade: ${report.grade} (${report.totalScore}/${report.maxScore})\n`));
327
+ for (const c of report.checks) {
328
+ const icon = c.result === 'pass' ? chalk.green('✓') : c.result === 'warn' ? chalk.yellow('⚠') : chalk.red('✗');
329
+ console.log(` ${icon} ${c.name.padEnd(20)} ${chalk.dim(c.message)}`);
330
+ }
331
+ console.log();
332
+ }
333
+ // ── Helpers ───────────────────────────────────────────────
334
+ function fileExists(cwd, name) {
335
+ try {
336
+ return existsSync(join(cwd, name));
337
+ }
338
+ catch {
339
+ return false;
340
+ }
341
+ }
342
+ function dirExists(cwd, name) {
343
+ try {
344
+ return statSync(join(cwd, name)).isDirectory();
345
+ }
346
+ catch {
347
+ return false;
348
+ }
349
+ }
350
+ function execSafe(cmd, cwd) {
351
+ try {
352
+ return execSync(cmd, { cwd, encoding: 'utf-8', timeout: 10_000, stdio: 'pipe' }).trim();
353
+ }
354
+ catch {
355
+ return '';
356
+ }
357
+ }
358
+ function checkForSecrets(cwd) {
359
+ const dangerous = ['.env', '.env.local', '.env.production'];
360
+ const found = [];
361
+ for (const f of dangerous) {
362
+ if (fileExists(cwd, f)) {
363
+ // Check if it's gitignored
364
+ const ignored = execSafe(`git check-ignore ${f}`, cwd);
365
+ if (!ignored)
366
+ found.push(f);
367
+ }
368
+ }
369
+ if (found.length > 0) {
370
+ return {
371
+ name: 'Secrets Safety',
372
+ result: 'fail',
373
+ message: `Unignored secret files: ${found.join(', ')}`,
374
+ score: 0,
375
+ };
376
+ }
377
+ return { name: 'Secrets Safety', result: 'pass', message: 'No exposed secret files', score: 10 };
378
+ }
379
+ function checkTSStrict(cwd) {
380
+ try {
381
+ const content = readFileSync(join(cwd, 'tsconfig.json'), 'utf-8');
382
+ const isStrict = content.includes('"strict": true') || content.includes('"strict":true');
383
+ return isStrict
384
+ ? { name: 'TS Strict Mode', result: 'pass', message: 'TypeScript strict mode enabled', score: 10 }
385
+ : { name: 'TS Strict Mode', result: 'warn', message: 'TypeScript strict mode not enabled', score: 3 };
386
+ }
387
+ catch {
388
+ return { name: 'TS Strict Mode', result: 'warn', message: 'Could not read tsconfig.json', score: 3 };
389
+ }
390
+ }
391
+ // ── E2E Framework Detection ────────────────────────────────
392
+ export function detectE2EFramework(cwd) {
393
+ try {
394
+ const content = readFileSync(join(cwd, 'package.json'), 'utf-8');
395
+ if (content.includes('"playwright"') || content.includes("'playwright'")) {
396
+ return 'playwright';
397
+ }
398
+ if (content.includes('"cypress"') || content.includes("'cypress'")) {
399
+ return 'cypress';
400
+ }
401
+ if (content.includes('"puppeteer"') || content.includes("'puppeteer'")) {
402
+ return 'puppeteer';
403
+ }
404
+ // Default to Playwright
405
+ return 'playwright';
406
+ }
407
+ catch {
408
+ // Default to Playwright if package.json cannot be read
409
+ return 'playwright';
410
+ }
411
+ }
412
+ //# sourceMappingURL=evaluation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluation.js","sourceRoot":"","sources":["../src/evaluation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { Message } from './types.js';
2
+ export type ExportFormat = 'md' | 'json' | 'txt';
3
+ /**
4
+ * Format messages as Markdown with nice headers and code block preservation.
5
+ */
6
+ export declare function formatAsMarkdown(messages: Message[]): string;
7
+ /**
8
+ * Format messages as JSON.
9
+ */
10
+ export declare function formatAsJSON(messages: Message[]): string;
11
+ /**
12
+ * Format messages as plain text with minimal formatting.
13
+ */
14
+ export declare function formatAsText(messages: Message[]): string;
15
+ /**
16
+ * Format messages in the specified format.
17
+ */
18
+ export declare function formatMessages(messages: Message[], format: ExportFormat): string;
19
+ /**
20
+ * Save exported conversation to a file in the current working directory.
21
+ */
22
+ export declare function saveExport(messages: Message[], format: ExportFormat): string;
package/dist/export.js ADDED
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Conversation export functionality.
3
+ * Supports exporting conversations to Markdown, JSON, and plain text formats.
4
+ */
5
+ import * as fs from 'node:fs';
6
+ import * as path from 'node:path';
7
+ /**
8
+ * Format messages as Markdown with nice headers and code block preservation.
9
+ */
10
+ export function formatAsMarkdown(messages) {
11
+ const lines = [];
12
+ lines.push('# Conversation Export\n');
13
+ lines.push(`Exported: ${new Date().toISOString()}\n`);
14
+ lines.push('---\n');
15
+ for (let i = 0; i < messages.length; i++) {
16
+ const msg = messages[i];
17
+ const roleLabel = msg.role.toUpperCase();
18
+ lines.push(`## ${roleLabel}\n`);
19
+ if (msg.content) {
20
+ lines.push(`${msg.content}\n`);
21
+ }
22
+ // Include tool calls if present
23
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
24
+ lines.push('### Tool Calls\n');
25
+ for (const toolCall of msg.tool_calls) {
26
+ lines.push(`- **${toolCall.function.name}**`);
27
+ if (toolCall.function.arguments) {
28
+ lines.push(`\n \`\`\`json\n ${toolCall.function.arguments}\n \`\`\``);
29
+ }
30
+ lines.push('\n');
31
+ }
32
+ }
33
+ // Include tool_call_id if present
34
+ if (msg.tool_call_id) {
35
+ lines.push(`**Tool Call ID:** \`${msg.tool_call_id}\`\n`);
36
+ }
37
+ lines.push('');
38
+ }
39
+ return lines.join('\n');
40
+ }
41
+ /**
42
+ * Format messages as JSON.
43
+ */
44
+ export function formatAsJSON(messages) {
45
+ return JSON.stringify(messages, null, 2);
46
+ }
47
+ /**
48
+ * Format messages as plain text with minimal formatting.
49
+ */
50
+ export function formatAsText(messages) {
51
+ const lines = [];
52
+ lines.push(`CONVERSATION EXPORT - ${new Date().toISOString()}`);
53
+ lines.push('='.repeat(80));
54
+ lines.push('');
55
+ for (const msg of messages) {
56
+ const roleLabel = msg.role.toUpperCase();
57
+ lines.push(`[${roleLabel}]`);
58
+ if (msg.content) {
59
+ lines.push(msg.content);
60
+ }
61
+ if (msg.tool_calls && msg.tool_calls.length > 0) {
62
+ lines.push('TOOL CALLS:');
63
+ for (const toolCall of msg.tool_calls) {
64
+ lines.push(` - ${toolCall.function.name}`);
65
+ if (toolCall.function.arguments) {
66
+ lines.push(` Args: ${toolCall.function.arguments}`);
67
+ }
68
+ }
69
+ }
70
+ if (msg.tool_call_id) {
71
+ lines.push(`Tool Call ID: ${msg.tool_call_id}`);
72
+ }
73
+ lines.push('');
74
+ }
75
+ return lines.join('\n');
76
+ }
77
+ /**
78
+ * Format messages in the specified format.
79
+ */
80
+ export function formatMessages(messages, format) {
81
+ switch (format) {
82
+ case 'md':
83
+ return formatAsMarkdown(messages);
84
+ case 'json':
85
+ return formatAsJSON(messages);
86
+ case 'txt':
87
+ return formatAsText(messages);
88
+ default:
89
+ throw new Error(`Unknown export format: ${format}`);
90
+ }
91
+ }
92
+ /**
93
+ * Get the file extension for a format.
94
+ */
95
+ function getExtension(format) {
96
+ return format;
97
+ }
98
+ /**
99
+ * Save exported conversation to a file in the current working directory.
100
+ */
101
+ export function saveExport(messages, format) {
102
+ const formatted = formatMessages(messages, format);
103
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
104
+ const filename = `crowcoder-export-${timestamp}.${getExtension(format)}`;
105
+ const filepath = path.join(process.cwd(), filename);
106
+ fs.writeFileSync(filepath, formatted, 'utf-8');
107
+ return filepath;
108
+ }
109
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../src/export.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmB;IAClD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,IAAI,CAAC,CAAC;QAEhC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,gCAAgC;QAChC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC/B,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,qBAAqB,QAAQ,CAAC,QAAQ,CAAC,SAAS,YAAY,CAAC,CAAC;gBAC3E,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,YAAY,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAmB;IAC9C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAmB;IAC9C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,yBAAyB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;QAE7B,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC1B,KAAK,MAAM,QAAQ,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACtC,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC5C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,aAAa,QAAQ,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAmB,EAAE,MAAoB;IACtE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,IAAI;YACP,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACpC,KAAK,MAAM;YACT,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChC;YACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,MAAoB;IACxC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAmB,EAAE,MAAoB;IAClE,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,oBAAoB,SAAS,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;IACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAEpD,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO,QAAQ,CAAC;AAClB,CAAC"}