@sylix/coworker 1.2.6 → 1.3.1

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 (82) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +181 -106
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/slash/advanced.d.ts +3 -0
  5. package/dist/commands/slash/advanced.d.ts.map +1 -0
  6. package/dist/commands/slash/advanced.js +225 -0
  7. package/dist/commands/slash/advanced.js.map +1 -0
  8. package/dist/commands/slash/config.d.ts +3 -0
  9. package/dist/commands/slash/config.d.ts.map +1 -0
  10. package/dist/commands/slash/config.js +161 -0
  11. package/dist/commands/slash/config.js.map +1 -0
  12. package/dist/commands/slash/context.d.ts +3 -0
  13. package/dist/commands/slash/context.d.ts.map +1 -0
  14. package/dist/commands/slash/context.js +127 -0
  15. package/dist/commands/slash/context.js.map +1 -0
  16. package/dist/commands/slash/core.d.ts +3 -0
  17. package/dist/commands/slash/core.d.ts.map +1 -0
  18. package/dist/commands/slash/core.js +112 -0
  19. package/dist/commands/slash/core.js.map +1 -0
  20. package/dist/commands/slash/developer.d.ts +3 -0
  21. package/dist/commands/slash/developer.d.ts.map +1 -0
  22. package/dist/commands/slash/developer.js +174 -0
  23. package/dist/commands/slash/developer.js.map +1 -0
  24. package/dist/commands/slash/files.d.ts +3 -0
  25. package/dist/commands/slash/files.d.ts.map +1 -0
  26. package/dist/commands/slash/files.js +216 -0
  27. package/dist/commands/slash/files.js.map +1 -0
  28. package/dist/commands/slash/registry.d.ts +36 -0
  29. package/dist/commands/slash/registry.d.ts.map +1 -0
  30. package/dist/commands/slash/registry.js +69 -0
  31. package/dist/commands/slash/registry.js.map +1 -0
  32. package/dist/commands/slash/session.d.ts +3 -0
  33. package/dist/commands/slash/session.d.ts.map +1 -0
  34. package/dist/commands/slash/session.js +144 -0
  35. package/dist/commands/slash/session.js.map +1 -0
  36. package/dist/core/CoWorkerAgent.d.ts +8 -2
  37. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  38. package/dist/core/CoWorkerAgent.js +179 -36
  39. package/dist/core/CoWorkerAgent.js.map +1 -1
  40. package/dist/review/CodeReviewEngine.d.ts +78 -0
  41. package/dist/review/CodeReviewEngine.d.ts.map +1 -0
  42. package/dist/review/CodeReviewEngine.js +449 -0
  43. package/dist/review/CodeReviewEngine.js.map +1 -0
  44. package/dist/session/SessionManager.js +10 -5
  45. package/dist/session/SessionManager.js.map +1 -1
  46. package/dist/skills/HookAndSkillManager.d.ts +29 -5
  47. package/dist/skills/HookAndSkillManager.d.ts.map +1 -1
  48. package/dist/skills/HookAndSkillManager.js +167 -12
  49. package/dist/skills/HookAndSkillManager.js.map +1 -1
  50. package/dist/todos/TodoManager.d.ts +19 -0
  51. package/dist/todos/TodoManager.d.ts.map +1 -0
  52. package/dist/todos/TodoManager.js +102 -0
  53. package/dist/todos/TodoManager.js.map +1 -0
  54. package/dist/tools/NativeTools.d.ts +98 -0
  55. package/dist/tools/NativeTools.d.ts.map +1 -1
  56. package/dist/tools/NativeTools.js +571 -0
  57. package/dist/tools/NativeTools.js.map +1 -1
  58. package/dist/tools/Schemas.d.ts +1199 -102
  59. package/dist/tools/Schemas.d.ts.map +1 -1
  60. package/dist/tools/Schemas.js +358 -40
  61. package/dist/tools/Schemas.js.map +1 -1
  62. package/dist/utils/conversations.d.ts +14 -0
  63. package/dist/utils/conversations.d.ts.map +1 -0
  64. package/dist/utils/conversations.js +100 -0
  65. package/dist/utils/conversations.js.map +1 -0
  66. package/dist/utils/inputbar.d.ts +87 -0
  67. package/dist/utils/inputbar.d.ts.map +1 -0
  68. package/dist/utils/inputbar.js +263 -0
  69. package/dist/utils/inputbar.js.map +1 -0
  70. package/dist/utils/output.d.ts +73 -48
  71. package/dist/utils/output.d.ts.map +1 -1
  72. package/dist/utils/output.js +349 -158
  73. package/dist/utils/output.js.map +1 -1
  74. package/dist/utils/palette.d.ts +25 -0
  75. package/dist/utils/palette.d.ts.map +1 -0
  76. package/dist/utils/palette.js +92 -0
  77. package/dist/utils/palette.js.map +1 -0
  78. package/dist/utils/welcome.d.ts +2 -0
  79. package/dist/utils/welcome.d.ts.map +1 -0
  80. package/dist/utils/welcome.js +130 -0
  81. package/dist/utils/welcome.js.map +1 -0
  82. package/package.json +1 -1
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.coreCommands = void 0;
37
+ const output_1 = require("../../utils/output");
38
+ const AuthManager_1 = require("../../config/AuthManager");
39
+ const registry_1 = require("./registry");
40
+ exports.coreCommands = [
41
+ {
42
+ name: 'help',
43
+ description: 'Show all commands with descriptions',
44
+ group: 'core',
45
+ handler: async () => {
46
+ console.log('');
47
+ for (const group of (0, registry_1.getGroups)()) {
48
+ console.log(output_1.theme.dim(` ── ${group} ──`));
49
+ for (const cmd of (0, registry_1.getGroupCommands)(group)) {
50
+ const pad = ' '.repeat(Math.max(1, 20 - cmd.name.length));
51
+ console.log(` ${output_1.theme.brand(`/${cmd.name}`)}${pad}${output_1.theme.dim(cmd.description)}`);
52
+ }
53
+ console.log('');
54
+ }
55
+ },
56
+ },
57
+ {
58
+ name: 'clear',
59
+ description: 'Clear conversation history',
60
+ group: 'core',
61
+ handler: async (agent) => {
62
+ agent.sessions.state.messages = [];
63
+ await agent.sessions.saveCheckpoint();
64
+ console.clear();
65
+ console.log(output_1.theme.success(' ✓ conversation cleared'));
66
+ console.log('');
67
+ },
68
+ },
69
+ {
70
+ name: 'exit',
71
+ description: 'End CoWorker session',
72
+ group: 'core',
73
+ aliases: ['quit', 'q'],
74
+ handler: async () => {
75
+ (0, output_1.printExit)();
76
+ process.exit(0);
77
+ },
78
+ },
79
+ {
80
+ name: 'status',
81
+ description: 'Show version, model, auth, session info',
82
+ group: 'core',
83
+ handler: async (agent) => {
84
+ const ctx = (await Promise.resolve().then(() => __importStar(require('./registry')))).getCommandContext();
85
+ const uptimeMs = ctx ? Date.now() - ctx.startTime : 0;
86
+ const uptimeMin = Math.floor(uptimeMs / 60000);
87
+ const uptimeSec = Math.floor((uptimeMs % 60000) / 1000);
88
+ let email = 'not signed in';
89
+ try {
90
+ const token = await AuthManager_1.AuthManager.getToken();
91
+ if (token) {
92
+ const auth = await AuthManager_1.AuthManager.loadAuthPublic();
93
+ email = auth?.user?.email || 'authenticated';
94
+ }
95
+ }
96
+ catch { }
97
+ const sessionId = agent.sessions.currentSessionId.substring(0, 8) + '...';
98
+ const msgCount = agent.sessions.state.messages.length;
99
+ console.log('');
100
+ console.log(output_1.theme.border(' ╷'));
101
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('version')} ${output_1.theme.white(`CoWorker v${output_1.CW_VERSION}`)}`);
102
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('model')} ${output_1.theme.white('helix-1.2')}`);
103
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('account')} ${output_1.theme.white(email)}`);
104
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('workspace')} ${output_1.theme.white(process.cwd())}`);
105
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('session')} ${output_1.theme.white(sessionId)} ${output_1.theme.dim(`· ${msgCount} messages`)}`);
106
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('uptime')} ${output_1.theme.white(`${uptimeMin}m ${uptimeSec}s`)}`);
107
+ console.log(output_1.theme.border(' ╵'));
108
+ console.log('');
109
+ },
110
+ },
111
+ ];
112
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/commands/slash/core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SlashCommand } from './registry';
2
+ export declare const developerCommands: SlashCommand[];
3
+ //# sourceMappingURL=developer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../../src/commands/slash/developer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAqB,MAAM,YAAY,CAAC;AAM7D,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAoI3C,CAAC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.developerCommands = void 0;
40
+ const registry_1 = require("./registry");
41
+ const output_1 = require("../../utils/output");
42
+ const AuthManager_1 = require("../../config/AuthManager");
43
+ const child_process_1 = require("child_process");
44
+ const node_fetch_1 = __importDefault(require("node-fetch"));
45
+ exports.developerCommands = [
46
+ {
47
+ name: 'cost',
48
+ description: 'Show token usage and session cost',
49
+ group: 'developer',
50
+ handler: async (agent) => {
51
+ const ctx = (0, registry_1.getCommandContext)();
52
+ const msgs = agent.sessions.state.messages;
53
+ const totalChars = msgs.reduce((a, m) => a + (m.content?.length || 0), 0);
54
+ const tokens = Math.ceil(totalChars / 4);
55
+ const requests = msgs.filter((m) => m.role === 'user').length;
56
+ const uptimeMs = ctx ? Date.now() - ctx.startTime : 0;
57
+ const mins = Math.floor(uptimeMs / 60000);
58
+ const secs = Math.floor((uptimeMs % 60000) / 1000);
59
+ console.log('');
60
+ console.log(output_1.theme.border(' ╷'));
61
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.brand('session cost')}`);
62
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('tokens used')} ${output_1.theme.white(tokens.toLocaleString())}`);
63
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('requests')} ${output_1.theme.white(String(requests))}`);
64
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('messages')} ${output_1.theme.white(String(msgs.length))}`);
65
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('duration')} ${output_1.theme.white(`${mins}m ${secs}s`)}`);
66
+ console.log(output_1.theme.border(' ╵'));
67
+ console.log('');
68
+ },
69
+ },
70
+ {
71
+ name: 'stats',
72
+ description: 'Show CoWorker usage statistics',
73
+ group: 'developer',
74
+ handler: async (agent) => {
75
+ const { loadConversations } = await Promise.resolve().then(() => __importStar(require('../../utils/conversations')));
76
+ const convos = loadConversations();
77
+ const totalConvos = convos.length;
78
+ const totalMsgs = convos.reduce((a, c) => a + c.messageCount, 0);
79
+ console.log('');
80
+ console.log(output_1.theme.border(' ╷'));
81
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.brand('usage stats')}`);
82
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('total sessions')} ${output_1.theme.white(String(totalConvos))}`);
83
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('total messages')} ${output_1.theme.white(String(totalMsgs))}`);
84
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('current session')} ${output_1.theme.white(agent.sessions.currentSessionId.substring(0, 8) + '...')}`);
85
+ console.log(output_1.theme.border(' ╵'));
86
+ console.log('');
87
+ },
88
+ },
89
+ {
90
+ name: 'doctor',
91
+ description: 'Diagnose CoWorker installation',
92
+ group: 'developer',
93
+ handler: async (agent) => {
94
+ console.log('');
95
+ const checks = [];
96
+ // Node.js
97
+ checks.push({ label: 'Node.js', ok: true, detail: process.version });
98
+ // CoWorker version
99
+ checks.push({ label: `CoWorker v${output_1.CW_VERSION}`, ok: true, detail: '' });
100
+ // Auth token
101
+ let hasToken = false;
102
+ try {
103
+ const token = await AuthManager_1.AuthManager.getToken();
104
+ hasToken = !!token;
105
+ }
106
+ catch { }
107
+ checks.push({ label: 'Auth token', ok: hasToken, detail: hasToken ? 'valid' : 'not found' });
108
+ // Git
109
+ let gitOk = false;
110
+ try {
111
+ (0, child_process_1.execSync)('git --version', { encoding: 'utf8' });
112
+ gitOk = true;
113
+ }
114
+ catch { }
115
+ checks.push({ label: 'Git', ok: gitOk, detail: gitOk ? 'found in PATH' : 'not found' });
116
+ // Backend reachable
117
+ let backendOk = false;
118
+ let backendMs = 0;
119
+ try {
120
+ const start = Date.now();
121
+ const res = await (0, node_fetch_1.default)('https://ollama-ubuntu.sylixide.com/api/tags', { method: 'GET' });
122
+ backendMs = Date.now() - start;
123
+ backendOk = res.ok;
124
+ }
125
+ catch { }
126
+ checks.push({
127
+ label: 'Backend',
128
+ ok: backendOk,
129
+ detail: backendOk ? `reachable · ${backendMs}ms` : 'unreachable'
130
+ });
131
+ // Config file
132
+ const configExists = require('fs').existsSync(require('path').join(require('os').homedir(), '.coworker'));
133
+ checks.push({ label: 'Config dir', ok: configExists, detail: configExists ? 'found' : 'will be created' });
134
+ for (const c of checks) {
135
+ const icon = c.ok ? output_1.theme.success('✓') : output_1.theme.error('✗');
136
+ const detail = c.detail ? ` ${output_1.theme.dim(c.detail)}` : '';
137
+ console.log(` ${icon} ${output_1.theme.white(c.label)}${detail}`);
138
+ }
139
+ const allOk = checks.every(c => c.ok);
140
+ console.log('');
141
+ if (allOk) {
142
+ (0, output_1.printSuccess)('all systems operational');
143
+ }
144
+ else {
145
+ console.log(output_1.theme.warning(' ⚠ some checks failed'));
146
+ }
147
+ console.log('');
148
+ },
149
+ },
150
+ {
151
+ name: 'insights',
152
+ description: 'Analyze current session patterns',
153
+ group: 'developer',
154
+ handler: async (agent) => {
155
+ const msgs = agent.sessions.state.messages;
156
+ const userMsgs = msgs.filter((m) => m.role === 'user');
157
+ const assistantMsgs = msgs.filter((m) => m.role === 'assistant');
158
+ const toolMsgs = msgs.filter((m) => m.role === 'tool');
159
+ const avgUserLen = userMsgs.length ? Math.round(userMsgs.reduce((a, m) => a + m.content.length, 0) / userMsgs.length) : 0;
160
+ const avgAssistantLen = assistantMsgs.length ? Math.round(assistantMsgs.reduce((a, m) => a + m.content.length, 0) / assistantMsgs.length) : 0;
161
+ console.log('');
162
+ console.log(output_1.theme.border(' ╷'));
163
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.brand('session insights')}`);
164
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('user messages')} ${output_1.theme.white(String(userMsgs.length))}`);
165
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('AI responses')} ${output_1.theme.white(String(assistantMsgs.length))}`);
166
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('tool calls')} ${output_1.theme.white(String(toolMsgs.length))}`);
167
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('avg prompt length')} ${output_1.theme.white(`${avgUserLen} chars`)}`);
168
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim('avg response')} ${output_1.theme.white(`${avgAssistantLen} chars`)}`);
169
+ console.log(output_1.theme.border(' ╵'));
170
+ console.log('');
171
+ },
172
+ },
173
+ ];
174
+ //# sourceMappingURL=developer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"developer.js","sourceRoot":"","sources":["../../../src/commands/slash/developer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { SlashCommand } from './registry';
2
+ export declare const fileCommands: SlashCommand[];
3
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/commands/slash/files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAO1C,eAAO,MAAM,YAAY,EAAE,YAAY,EA+ItC,CAAC"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.fileCommands = void 0;
37
+ const output_1 = require("../../utils/output");
38
+ const child_process_1 = require("child_process");
39
+ const fs = __importStar(require("fs"));
40
+ const path = __importStar(require("path"));
41
+ const readline = __importStar(require("readline"));
42
+ exports.fileCommands = [
43
+ {
44
+ name: 'review',
45
+ description: 'Code review current file or branch',
46
+ group: 'files & code',
47
+ handler: async (agent, arg) => {
48
+ if (arg) {
49
+ const filePath = path.resolve(arg);
50
+ if (!fs.existsSync(filePath)) {
51
+ (0, output_1.printError)('File not found', filePath);
52
+ return;
53
+ }
54
+ const content = fs.readFileSync(filePath, 'utf8');
55
+ const prompt = `Thorough code review of this file. Score quality, security, performance, readability each /10. List bugs and improvements.\n\nFile: ${arg}\n\`\`\`\n${content.substring(0, 8000)}\n\`\`\``;
56
+ const thinking = new output_1.ThinkingAnimation('reviewing');
57
+ thinking.start();
58
+ const renderer = new output_1.StreamRenderer();
59
+ let hasContent = false;
60
+ for await (const chunk of agent.chat(prompt)) {
61
+ if (!hasContent) {
62
+ thinking.stop();
63
+ hasContent = true;
64
+ }
65
+ renderer.write(chunk);
66
+ }
67
+ thinking.stop();
68
+ renderer.finish();
69
+ }
70
+ else {
71
+ try {
72
+ const { CodeReviewEngine } = await Promise.resolve().then(() => __importStar(require('../../review/CodeReviewEngine')));
73
+ const engine = new CodeReviewEngine();
74
+ const result = await engine.review();
75
+ console.log(CodeReviewEngine.formatForTerminal(result));
76
+ }
77
+ catch (e) {
78
+ (0, output_1.printError)('Review failed', e.message);
79
+ }
80
+ }
81
+ },
82
+ },
83
+ {
84
+ name: 'commit',
85
+ description: 'Generate commit message from diff',
86
+ group: 'files & code',
87
+ handler: async (agent) => {
88
+ const thinking = new output_1.ThinkingAnimation('analyzing changes');
89
+ thinking.start();
90
+ let diff = '';
91
+ try {
92
+ diff = (0, child_process_1.execSync)('git diff --staged', { encoding: 'utf8', maxBuffer: 5 * 1024 * 1024 }).trim();
93
+ }
94
+ catch { }
95
+ if (!diff)
96
+ try {
97
+ diff = (0, child_process_1.execSync)('git diff HEAD', { encoding: 'utf8', maxBuffer: 5 * 1024 * 1024 }).trim();
98
+ }
99
+ catch { }
100
+ if (!diff) {
101
+ thinking.stop();
102
+ (0, output_1.printError)('No changes', 'Stage files or make changes first.');
103
+ return;
104
+ }
105
+ const prompt = `Generate a conventional commit message. Format: type(scope): description. Types: feat/fix/refactor/docs/style/test/chore. One line only.\n\nDiff:\n${diff.substring(0, 6000)}`;
106
+ let msg = '';
107
+ for await (const chunk of agent.chat(prompt)) {
108
+ if (!msg)
109
+ thinking.stop();
110
+ msg += chunk;
111
+ }
112
+ thinking.stop();
113
+ msg = msg.split('\n').find(l => /^(feat|fix|refactor|docs|style|test|chore|build|ci|perf)\(/.test(l.trim())) || msg.split('\n')[0];
114
+ msg = msg.replace(/^[`'"]+|[`'"]+$/g, '').trim();
115
+ (0, output_1.printCommitBox)(msg);
116
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
117
+ const answer = await new Promise(r => rl.question(` ${output_1.theme.dim('use this?')} ${output_1.theme.brand('›')} `, a => { r(a.trim().toLowerCase()); rl.close(); }));
118
+ if (answer === 'y' || answer === 'yes' || answer === '') {
119
+ try {
120
+ try {
121
+ if (!(0, child_process_1.execSync)('git diff --staged --name-only', { encoding: 'utf8' }).trim())
122
+ (0, child_process_1.execSync)('git add -A');
123
+ }
124
+ catch { }
125
+ (0, child_process_1.execSync)(`git commit -m "${msg.replace(/"/g, '\\"')}"`, { encoding: 'utf8' });
126
+ (0, output_1.printSuccess)('Committed successfully');
127
+ }
128
+ catch (e) {
129
+ (0, output_1.printError)('Commit failed', e.stderr?.toString() || e.message);
130
+ }
131
+ }
132
+ },
133
+ },
134
+ {
135
+ name: 'diff',
136
+ description: 'View uncommitted changes',
137
+ group: 'files & code',
138
+ handler: async () => {
139
+ try {
140
+ const diff = (0, child_process_1.execSync)('git diff --stat', { encoding: 'utf8' }).trim();
141
+ if (!diff) {
142
+ console.log(output_1.theme.dim(' No uncommitted changes.'));
143
+ return;
144
+ }
145
+ console.log('');
146
+ console.log(output_1.theme.border(' ╷'));
147
+ for (const line of diff.split('\n')) {
148
+ if (line.includes('|')) {
149
+ const [file, rest] = line.split('|').map(s => s.trim());
150
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.white(file)} ${output_1.theme.dim('│')} ${rest.replace(/\+/g, output_1.theme.success('+'))}`);
151
+ }
152
+ else {
153
+ console.log(output_1.theme.border(' │') + ` ${output_1.theme.dim(line)}`);
154
+ }
155
+ }
156
+ console.log(output_1.theme.border(' ╵'));
157
+ console.log('');
158
+ }
159
+ catch (e) {
160
+ (0, output_1.printError)('Git diff failed', e.message);
161
+ }
162
+ },
163
+ },
164
+ {
165
+ name: 'init',
166
+ description: 'Create .coworker.md project config',
167
+ group: 'files & code',
168
+ handler: async () => {
169
+ const cwFile = path.resolve(process.cwd(), '.coworker.md');
170
+ if (fs.existsSync(cwFile)) {
171
+ console.log(output_1.theme.dim(' .coworker.md already exists.'));
172
+ return;
173
+ }
174
+ const pkgPath = path.resolve(process.cwd(), 'package.json');
175
+ let projectName = path.basename(process.cwd());
176
+ let language = 'Unknown';
177
+ let framework = 'Unknown';
178
+ if (fs.existsSync(pkgPath)) {
179
+ try {
180
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8'));
181
+ projectName = pkg.name || projectName;
182
+ language = 'TypeScript/JavaScript';
183
+ if (pkg.dependencies?.react)
184
+ framework = 'React';
185
+ else if (pkg.dependencies?.next)
186
+ framework = 'Next.js';
187
+ else if (pkg.dependencies?.express)
188
+ framework = 'Express';
189
+ else
190
+ framework = 'Node.js';
191
+ }
192
+ catch { }
193
+ }
194
+ const content = `# CoWorker Instructions
195
+
196
+ ## Project
197
+ Name: ${projectName}
198
+ Language: ${language}
199
+ Framework: ${framework}
200
+
201
+ ## Context
202
+ This file provides project-specific context to CoWorker.
203
+ Add any important architectural decisions, coding conventions,
204
+ or domain knowledge that CoWorker should know about.
205
+
206
+ ## Preferences
207
+ - Follow existing code style
208
+ - Write comprehensive error handling
209
+ - Prefer descriptive variable names
210
+ `;
211
+ fs.writeFileSync(cwFile, content, 'utf8');
212
+ (0, output_1.printSuccess)('created .coworker.md');
213
+ },
214
+ },
215
+ ];
216
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/commands/slash/files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+CAAwH;AACxH,iDAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,mDAAqC;AAExB,QAAA,YAAY,GAAmB;IAC1C;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAAC,IAAA,mBAAU,EAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACjF,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,MAAM,GAAG,uIAAuI,GAAG,aAAa,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC;gBAC3M,MAAM,QAAQ,GAAG,IAAI,0BAAiB,CAAC,WAAW,CAAC,CAAC;gBACpD,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,QAAQ,GAAG,IAAI,uBAAc,EAAE,CAAC;gBACtC,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;wBAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAAC,UAAU,GAAG,IAAI,CAAC;oBAAC,CAAC;oBACxD,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;gBACD,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChB,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC;oBACH,MAAM,EAAE,gBAAgB,EAAE,GAAG,wDAAa,+BAA+B,GAAC,CAAC;oBAC3E,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAA,mBAAU,EAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,QAAQ,GAAG,IAAI,0BAAiB,CAAC,mBAAmB,CAAC,CAAC;YAC5D,QAAQ,CAAC,KAAK,EAAE,CAAC;YAEjB,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC;gBAAC,IAAI,GAAG,IAAA,wBAAQ,EAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YAC/G,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC;oBAAC,IAAI,GAAG,IAAA,wBAAQ,EAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACtH,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAAC,IAAA,mBAAU,EAAC,YAAY,EAAE,oCAAoC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEvG,MAAM,MAAM,GAAG,sJAAsJ,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;YAC/L,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAAC,IAAI,CAAC,GAAG;oBAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAAC,GAAG,IAAI,KAAK,CAAC;YAAC,CAAC;YAC1F,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEhB,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,4DAA4D,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjD,IAAA,uBAAc,EAAC,GAAG,CAAC,CAAC;YAEpB,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,cAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,cAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhK,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;gBACxD,IAAI,CAAC;oBACH,IAAI,CAAC;wBAAC,IAAI,CAAC,IAAA,wBAAQ,EAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;4BAAE,IAAA,wBAAQ,EAAC,YAAY,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACrH,IAAA,wBAAQ,EAAC,kBAAkB,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC9E,IAAA,qBAAY,EAAC,wBAAwB,CAAC,CAAC;gBACzC,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAAC,IAAA,mBAAU,EAAC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;YACtF,CAAC;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,0BAA0B;QACvC,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAA,wBAAQ,EAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtE,IAAI,CAAC,IAAI,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAE3E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;wBACxD,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,cAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,cAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,cAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC3H,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,cAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,CAAM,EAAE,CAAC;gBAChB,IAAA,mBAAU,EAAC,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,oCAAoC;QACjD,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,cAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACzD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;YAC5D,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC/C,IAAI,QAAQ,GAAG,SAAS,CAAC;YACzB,IAAI,SAAS,GAAG,SAAS,CAAC;YAE1B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;oBACzD,WAAW,GAAG,GAAG,CAAC,IAAI,IAAI,WAAW,CAAC;oBACtC,QAAQ,GAAG,uBAAuB,CAAC;oBACnC,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK;wBAAE,SAAS,GAAG,OAAO,CAAC;yBAC5C,IAAI,GAAG,CAAC,YAAY,EAAE,IAAI;wBAAE,SAAS,GAAG,SAAS,CAAC;yBAClD,IAAI,GAAG,CAAC,YAAY,EAAE,OAAO;wBAAE,SAAS,GAAG,SAAS,CAAC;;wBACrD,SAAS,GAAG,SAAS,CAAC;gBAC7B,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;YACZ,CAAC;YAED,MAAM,OAAO,GAAG;;;QAGd,WAAW;YACP,QAAQ;aACP,SAAS;;;;;;;;;;;CAWrB,CAAC;YAEI,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAA,qBAAY,EAAC,sBAAsB,CAAC,CAAC;QACvC,CAAC;KACF;CACF,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { CoWorkerAgent } from '../../core/CoWorkerAgent';
2
+ /**
3
+ * SlashCommand interface — every command implements this.
4
+ * Adding new commands = just add to the COMMANDS array.
5
+ */
6
+ export interface SlashCommand {
7
+ name: string;
8
+ description: string;
9
+ group: string;
10
+ handler: (agent: CoWorkerAgent, args?: string) => Promise<void>;
11
+ aliases?: string[];
12
+ }
13
+ export interface CommandContext {
14
+ agent: CoWorkerAgent;
15
+ startTime: number;
16
+ }
17
+ export declare function setCommandContext(ctx: CommandContext): void;
18
+ export declare function getCommandContext(): CommandContext | null;
19
+ export declare const COMMANDS: SlashCommand[];
20
+ /**
21
+ * Resolve a slash command by name or alias.
22
+ */
23
+ export declare function resolveCommand(input: string): SlashCommand | undefined;
24
+ /**
25
+ * Filter commands by partial name (for autocomplete).
26
+ */
27
+ export declare function filterCommands(partial: string): SlashCommand[];
28
+ /**
29
+ * Get unique group names in order.
30
+ */
31
+ export declare function getGroups(): string[];
32
+ /**
33
+ * Get commands in a specific group.
34
+ */
35
+ export declare function getGroupCommands(group: string): SlashCommand[];
36
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/commands/slash/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAAgB;AAC5E,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CAAiB;AAc3E,eAAO,MAAM,QAAQ,EAAE,YAAY,EAQlC,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAGtE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAM9D;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,EAAE,CAUpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAE9D"}