@cluesmith/codev 2.0.0-rc.1 → 2.0.0-rc.10

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 (145) hide show
  1. package/bin/porch.js +9 -4
  2. package/dist/agent-farm/cli.d.ts.map +1 -1
  3. package/dist/agent-farm/cli.js +2 -14
  4. package/dist/agent-farm/cli.js.map +1 -1
  5. package/dist/agent-farm/commands/kickoff.d.ts +1 -0
  6. package/dist/agent-farm/commands/kickoff.d.ts.map +1 -1
  7. package/dist/agent-farm/commands/kickoff.js +82 -78
  8. package/dist/agent-farm/commands/kickoff.js.map +1 -1
  9. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  10. package/dist/agent-farm/commands/spawn.js +30 -54
  11. package/dist/agent-farm/commands/spawn.js.map +1 -1
  12. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  13. package/dist/agent-farm/commands/start.js +8 -50
  14. package/dist/agent-farm/commands/start.js.map +1 -1
  15. package/dist/agent-farm/servers/dashboard-server.js +0 -14
  16. package/dist/agent-farm/servers/dashboard-server.js.map +1 -1
  17. package/dist/agent-farm/state.d.ts +0 -10
  18. package/dist/agent-farm/state.d.ts.map +1 -1
  19. package/dist/agent-farm/state.js +0 -24
  20. package/dist/agent-farm/state.js.map +1 -1
  21. package/dist/cli.d.ts.map +1 -1
  22. package/dist/cli.js +5 -17
  23. package/dist/cli.js.map +1 -1
  24. package/dist/commands/adopt.d.ts.map +1 -1
  25. package/dist/commands/adopt.js +17 -1
  26. package/dist/commands/adopt.js.map +1 -1
  27. package/dist/commands/consult/index.d.ts.map +1 -1
  28. package/dist/commands/consult/index.js +2 -1
  29. package/dist/commands/consult/index.js.map +1 -1
  30. package/dist/commands/init.d.ts.map +1 -1
  31. package/dist/commands/init.js +17 -1
  32. package/dist/commands/init.js.map +1 -1
  33. package/dist/commands/porch/checks.d.ts +16 -29
  34. package/dist/commands/porch/checks.d.ts.map +1 -1
  35. package/dist/commands/porch/checks.js +90 -144
  36. package/dist/commands/porch/checks.js.map +1 -1
  37. package/dist/commands/porch/claude.d.ts +29 -0
  38. package/dist/commands/porch/claude.d.ts.map +1 -0
  39. package/dist/commands/porch/claude.js +79 -0
  40. package/dist/commands/porch/claude.js.map +1 -0
  41. package/dist/commands/porch/index.d.ts +21 -43
  42. package/dist/commands/porch/index.d.ts.map +1 -1
  43. package/dist/commands/porch/index.js +449 -753
  44. package/dist/commands/porch/index.js.map +1 -1
  45. package/dist/commands/porch/plan.d.ts +60 -0
  46. package/dist/commands/porch/plan.d.ts.map +1 -0
  47. package/dist/commands/porch/plan.js +162 -0
  48. package/dist/commands/porch/plan.js.map +1 -0
  49. package/dist/commands/porch/prompts.d.ts +19 -0
  50. package/dist/commands/porch/prompts.d.ts.map +1 -0
  51. package/dist/commands/porch/prompts.js +259 -0
  52. package/dist/commands/porch/prompts.js.map +1 -0
  53. package/dist/commands/porch/protocol.d.ts +57 -0
  54. package/dist/commands/porch/protocol.d.ts.map +1 -0
  55. package/dist/commands/porch/protocol.js +250 -0
  56. package/dist/commands/porch/protocol.js.map +1 -0
  57. package/dist/commands/porch/repl.d.ts +33 -0
  58. package/dist/commands/porch/repl.d.ts.map +1 -0
  59. package/dist/commands/porch/repl.js +206 -0
  60. package/dist/commands/porch/repl.js.map +1 -0
  61. package/dist/commands/porch/run.d.ts +15 -0
  62. package/dist/commands/porch/run.d.ts.map +1 -0
  63. package/dist/commands/porch/run.js +551 -0
  64. package/dist/commands/porch/run.js.map +1 -0
  65. package/dist/commands/porch/signals.d.ts +35 -0
  66. package/dist/commands/porch/signals.d.ts.map +1 -0
  67. package/dist/commands/porch/signals.js +76 -0
  68. package/dist/commands/porch/signals.js.map +1 -0
  69. package/dist/commands/porch/state.d.ts +19 -112
  70. package/dist/commands/porch/state.d.ts.map +1 -1
  71. package/dist/commands/porch/state.js +78 -685
  72. package/dist/commands/porch/state.js.map +1 -1
  73. package/dist/commands/porch/types.d.ts +65 -173
  74. package/dist/commands/porch/types.d.ts.map +1 -1
  75. package/dist/commands/porch/types.js +2 -1
  76. package/dist/commands/porch/types.js.map +1 -1
  77. package/dist/commands/update.d.ts.map +1 -1
  78. package/dist/commands/update.js +19 -0
  79. package/dist/commands/update.js.map +1 -1
  80. package/dist/lib/scaffold.d.ts +24 -0
  81. package/dist/lib/scaffold.d.ts.map +1 -1
  82. package/dist/lib/scaffold.js +78 -0
  83. package/dist/lib/scaffold.js.map +1 -1
  84. package/package.json +5 -2
  85. package/skeleton/protocols/spider/prompts/defend.md +215 -0
  86. package/skeleton/protocols/spider/prompts/evaluate.md +241 -0
  87. package/skeleton/protocols/spider/prompts/implement.md +149 -0
  88. package/skeleton/protocols/spider/prompts/plan.md +214 -0
  89. package/skeleton/protocols/spider/prompts/review.md +217 -0
  90. package/skeleton/protocols/spider/prompts/specify.md +174 -0
  91. package/skeleton/protocols/spider/protocol.json +79 -147
  92. package/skeleton/protocols/spider/templates/plan.md +14 -0
  93. package/skeleton/roles/architect.md +40 -48
  94. package/skeleton/roles/builder.md +152 -29
  95. package/templates/dashboard/index.html +0 -27
  96. package/templates/dashboard/js/utils.js +0 -86
  97. package/dist/agent-farm/commands/rename.d.ts +0 -13
  98. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  99. package/dist/agent-farm/commands/rename.js +0 -33
  100. package/dist/agent-farm/commands/rename.js.map +0 -1
  101. package/dist/commands/pcheck/cache.d.ts +0 -48
  102. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  103. package/dist/commands/pcheck/cache.js +0 -170
  104. package/dist/commands/pcheck/cache.js.map +0 -1
  105. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  106. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  107. package/dist/commands/pcheck/evaluator.js +0 -246
  108. package/dist/commands/pcheck/evaluator.js.map +0 -1
  109. package/dist/commands/pcheck/index.d.ts +0 -12
  110. package/dist/commands/pcheck/index.d.ts.map +0 -1
  111. package/dist/commands/pcheck/index.js +0 -249
  112. package/dist/commands/pcheck/index.js.map +0 -1
  113. package/dist/commands/pcheck/parser.d.ts +0 -39
  114. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  115. package/dist/commands/pcheck/parser.js +0 -155
  116. package/dist/commands/pcheck/parser.js.map +0 -1
  117. package/dist/commands/pcheck/types.d.ts +0 -82
  118. package/dist/commands/pcheck/types.d.ts.map +0 -1
  119. package/dist/commands/pcheck/types.js +0 -5
  120. package/dist/commands/pcheck/types.js.map +0 -1
  121. package/dist/commands/porch/consultation.d.ts +0 -56
  122. package/dist/commands/porch/consultation.d.ts.map +0 -1
  123. package/dist/commands/porch/consultation.js +0 -330
  124. package/dist/commands/porch/consultation.js.map +0 -1
  125. package/dist/commands/porch/notifications.d.ts +0 -99
  126. package/dist/commands/porch/notifications.d.ts.map +0 -1
  127. package/dist/commands/porch/notifications.js +0 -223
  128. package/dist/commands/porch/notifications.js.map +0 -1
  129. package/dist/commands/porch/plan-parser.d.ts +0 -38
  130. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  131. package/dist/commands/porch/plan-parser.js +0 -166
  132. package/dist/commands/porch/plan-parser.js.map +0 -1
  133. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  134. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  135. package/dist/commands/porch/protocol-loader.js +0 -249
  136. package/dist/commands/porch/protocol-loader.js.map +0 -1
  137. package/dist/commands/porch/signal-parser.d.ts +0 -88
  138. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  139. package/dist/commands/porch/signal-parser.js +0 -148
  140. package/dist/commands/porch/signal-parser.js.map +0 -1
  141. package/skeleton/porch/protocols/bugfix.json +0 -85
  142. package/skeleton/porch/protocols/spider.json +0 -135
  143. package/skeleton/porch/protocols/tick.json +0 -76
  144. package/templates/dashboard/css/activity.css +0 -151
  145. package/templates/dashboard/js/activity.js +0 -112
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Signal detection for Porch
3
+ *
4
+ * Watches Claude's output file for signal markers:
5
+ * PHASE_COMPLETE - Phase work is done
6
+ * GATE_NEEDED - Human approval required
7
+ * BLOCKED: <reason> - Claude is stuck
8
+ */
9
+ import * as fs from 'node:fs';
10
+ /**
11
+ * Create a signal watcher for the given output file.
12
+ */
13
+ export function watchForSignal(outputPath) {
14
+ let lastPosition = 0;
15
+ let stopped = false;
16
+ return {
17
+ async check() {
18
+ if (stopped)
19
+ return null;
20
+ try {
21
+ if (!fs.existsSync(outputPath)) {
22
+ return null;
23
+ }
24
+ const content = fs.readFileSync(outputPath, 'utf-8');
25
+ // Only check new content since last position
26
+ const newContent = content.slice(lastPosition);
27
+ lastPosition = content.length;
28
+ // Look for signal markers
29
+ // These should be on their own line, possibly in output blocks
30
+ const lines = newContent.split('\n');
31
+ for (const line of lines) {
32
+ const trimmed = line.trim();
33
+ if (trimmed === 'PHASE_COMPLETE' || trimmed.includes('PHASE_COMPLETE')) {
34
+ return { type: 'PHASE_COMPLETE' };
35
+ }
36
+ if (trimmed === 'GATE_NEEDED' || trimmed.includes('GATE_NEEDED')) {
37
+ return { type: 'GATE_NEEDED' };
38
+ }
39
+ const blockedMatch = trimmed.match(/BLOCKED:\s*(.+)/);
40
+ if (blockedMatch) {
41
+ return { type: 'BLOCKED', reason: blockedMatch[1] };
42
+ }
43
+ }
44
+ return null;
45
+ }
46
+ catch (err) {
47
+ // File might not exist yet or be locked
48
+ return null;
49
+ }
50
+ },
51
+ stop() {
52
+ stopped = true;
53
+ },
54
+ };
55
+ }
56
+ /**
57
+ * Parse a signal from text content (one-shot check).
58
+ */
59
+ export function parseSignal(content) {
60
+ const lines = content.split('\n');
61
+ for (const line of lines) {
62
+ const trimmed = line.trim();
63
+ if (trimmed === 'PHASE_COMPLETE') {
64
+ return { type: 'PHASE_COMPLETE' };
65
+ }
66
+ if (trimmed === 'GATE_NEEDED') {
67
+ return { type: 'GATE_NEEDED' };
68
+ }
69
+ const blockedMatch = trimmed.match(/BLOCKED:\s*(.+)/);
70
+ if (blockedMatch) {
71
+ return { type: 'BLOCKED', reason: blockedMatch[1] };
72
+ }
73
+ }
74
+ return null;
75
+ }
76
+ //# sourceMappingURL=signals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../src/commands/porch/signals.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAmB9B;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO;QACL,KAAK,CAAC,KAAK;YACT,IAAI,OAAO;gBAAE,OAAO,IAAI,CAAC;YAEzB,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBAErD,6CAA6C;gBAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC/C,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;gBAE9B,0BAA0B;gBAC1B,+DAA+D;gBAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;oBAE5B,IAAI,OAAO,KAAK,gBAAgB,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACvE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;oBACpC,CAAC;oBAED,IAAI,OAAO,KAAK,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBACjE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;oBACjC,CAAC;oBAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBACtD,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,wCAAwC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI;YACF,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACjC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;YAC9B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;QACjC,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,133 +1,40 @@
1
1
  /**
2
2
  * Porch State Management
3
3
  *
4
- * Handles project state persistence with:
5
- * - Pure YAML format (no markdown frontmatter)
6
- * - Atomic writes (tmp file + fsync + rename)
7
- * - File locking (flock advisory locking)
8
- * - Crash recovery
4
+ * Handles project state persistence with atomic writes.
5
+ * Fails loudly on any error - no guessing.
9
6
  */
10
7
  import type { ProjectState, Protocol } from './types.js';
11
- /** Directory for SPIDER project state (relative to project root) */
8
+ /** Directory for project state (relative to project root) */
12
9
  export declare const PROJECTS_DIR = "codev/projects";
13
- /** Directory for TICK/BUGFIX execution state (relative to project root) */
14
- export declare const EXECUTIONS_DIR = "codev/executions";
15
10
  /**
16
- * Get the status file path for a SPIDER project
11
+ * Get the project directory path
17
12
  */
18
- export declare function getProjectStatusPath(projectRoot: string, projectId: string, name?: string): string;
13
+ export declare function getProjectDir(projectRoot: string, projectId: string, name: string): string;
19
14
  /**
20
- * Get the status file path for a TICK/BUGFIX execution
15
+ * Get the status.yaml path for a project
21
16
  */
22
- export declare function getExecutionStatusPath(projectRoot: string, protocol: string, id: string, name?: string): string;
17
+ export declare function getStatusPath(projectRoot: string, projectId: string, name: string): string;
23
18
  /**
24
- * Get the project directory for a SPIDER project
19
+ * Read project state from status.yaml
20
+ * Fails loudly if file is missing or corrupted.
25
21
  */
26
- export declare function getProjectDir(projectRoot: string, projectId: string, name?: string): string;
22
+ export declare function readState(statusPath: string): ProjectState;
27
23
  /**
28
- * Get the worktree path for a protocol execution
24
+ * Write project state atomically (tmp file + rename)
29
25
  */
30
- export declare function getWorktreePath(projectRoot: string, protocol: string, id: string, name?: string): string;
31
- interface FileLock {
32
- fd: number;
33
- lockFile: string;
34
- }
26
+ export declare function writeState(statusPath: string, state: ProjectState): void;
35
27
  /**
36
- * Acquire an advisory lock on a file
37
- * Creates a .lock file to indicate lock ownership
28
+ * Create initial state for a new project
38
29
  */
39
- export declare function acquireLock(filePath: string): Promise<FileLock>;
30
+ export declare function createInitialState(protocol: Protocol, projectId: string, title: string): ProjectState;
40
31
  /**
41
- * Release an advisory lock
32
+ * Find status.yaml by project ID (searches for NNNN-* directories)
42
33
  */
43
- export declare function releaseLock(lock: FileLock): void;
34
+ export declare function findStatusPath(projectRoot: string, projectId: string): string | null;
44
35
  /**
45
- * Simple YAML serializer for project state
46
- * Handles our specific data structures without external dependencies
36
+ * Auto-detect project ID when only one project exists.
37
+ * Returns null if zero or multiple projects found.
47
38
  */
48
- export declare function serializeState(state: ProjectState): string;
49
- /**
50
- * Parse YAML status file into ProjectState
51
- */
52
- export declare function parseState(content: string): ProjectState;
53
- /**
54
- * Read project state from status file
55
- */
56
- export declare function readState(statusFilePath: string): ProjectState | null;
57
- /**
58
- * Write project state atomically
59
- * Uses tmp file + fsync + rename for crash safety
60
- */
61
- export declare function writeState(statusFilePath: string, state: ProjectState): Promise<void>;
62
- /**
63
- * Create initial project state
64
- */
65
- export declare function createInitialState(protocol: Protocol, projectId: string, title: string, worktreePath?: string): ProjectState;
66
- /**
67
- * Update state with a new current state
68
- */
69
- export declare function updateState(state: ProjectState, newState: string, options?: {
70
- signal?: string;
71
- }): ProjectState;
72
- /**
73
- * Approve a gate in state
74
- */
75
- export declare function approveGate(state: ProjectState, gateId: string): ProjectState;
76
- /**
77
- * Request a gate approval (mark as pending with timestamp)
78
- */
79
- export declare function requestGateApproval(state: ProjectState, gateId: string): ProjectState;
80
- /**
81
- * Update phase status
82
- */
83
- export declare function updatePhaseStatus(state: ProjectState, phaseId: string, status: 'pending' | 'in_progress' | 'complete'): ProjectState;
84
- /**
85
- * Set plan phases extracted from plan.md
86
- */
87
- export declare function setPlanPhases(state: ProjectState, phases: Array<{
88
- id: string;
89
- title: string;
90
- description?: string;
91
- }>): ProjectState;
92
- /**
93
- * Find all SPIDER projects
94
- */
95
- export declare function findProjects(projectRoot: string): Array<{
96
- id: string;
97
- path: string;
98
- }>;
99
- /**
100
- * Find all executions (TICK, BUGFIX, etc.)
101
- */
102
- export declare function findExecutions(projectRoot: string): Array<{
103
- protocol: string;
104
- id: string;
105
- path: string;
106
- }>;
107
- /**
108
- * Find status file for a project by ID
109
- */
110
- export declare function findStatusFile(projectRoot: string, projectId: string): string | null;
111
- /**
112
- * Get the number of consultation attempts for a given state
113
- */
114
- export declare function getConsultationAttempts(state: ProjectState, stateKey: string): number;
115
- /**
116
- * Increment consultation attempts for a given state
117
- */
118
- export declare function incrementConsultationAttempts(state: ProjectState, stateKey: string): ProjectState;
119
- /**
120
- * Reset consultation attempts for a given state (e.g., after gate approval)
121
- */
122
- export declare function resetConsultationAttempts(state: ProjectState, stateKey: string): ProjectState;
123
- /**
124
- * Find all status files with pending gates
125
- */
126
- export declare function findPendingGates(projectRoot: string): Array<{
127
- projectId: string;
128
- gateId: string;
129
- requestedAt?: string;
130
- statusPath: string;
131
- }>;
132
- export {};
39
+ export declare function detectProjectId(projectRoot: string): string | null;
133
40
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAEpE,6DAA6D;AAC7D,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAM7C;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1F;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAwB1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAmBxE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,YAAY,CA4Bd;AAMD;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBpF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyBlE"}