clawsouls 0.2.3 → 0.2.4

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.
@@ -1,30 +1,42 @@
1
1
  import chalk from 'chalk';
2
- import { existsSync, readFileSync, readdirSync } from 'fs';
2
+ import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
3
3
  import { join } from 'path';
4
4
  import { getSchema, LATEST_SPEC, SPEC_VERSIONS } from '../utils/validate.js';
5
+ function formatBytes(bytes) {
6
+ if (bytes < 1024)
7
+ return `${bytes} B`;
8
+ return `${(bytes / 1024).toFixed(1)} KB`;
9
+ }
5
10
  export async function validateCommand(dir, options) {
6
11
  const soulDir = dir || '.';
7
12
  const manifestPath = join(soulDir, 'clawsoul.json');
8
13
  const specVersion = options?.spec || LATEST_SPEC;
9
- console.log(chalk.bold(`Validating soul in ${soulDir}/`) + chalk.dim(` (spec v${specVersion})\n`));
10
- let hasError = false;
11
- const pass = (msg) => console.log(chalk.green(' ✓ ') + msg);
12
- const fail = (msg) => { console.log(chalk.red(' ✗ ') + msg); hasError = true; };
13
- const warn = (msg) => console.log(chalk.yellow(' ⚠ ') + msg);
14
+ const results = [];
15
+ const add = (type, message, details) => {
16
+ results.push({ type, message, details });
17
+ };
18
+ console.log(chalk.bold(`\nValidating ${soulDir}/...`) + chalk.dim(` (spec v${specVersion})\n`));
14
19
  // 1. Check clawsoul.json exists
15
20
  if (!existsSync(manifestPath)) {
16
- fail('clawsoul.json not found');
21
+ add('fail', 'clawsoul.json missing');
22
+ printResults(results);
17
23
  process.exit(1);
18
24
  }
19
- pass('clawsoul.json exists');
25
+ add('pass', 'clawsoul.json found');
20
26
  // 2. Parse JSON
21
27
  let raw;
22
28
  try {
23
29
  raw = JSON.parse(readFileSync(manifestPath, 'utf-8'));
24
- pass('clawsoul.json is valid JSON');
25
30
  }
26
31
  catch (err) {
27
- fail(`clawsoul.json parse error: ${err.message}`);
32
+ const msg = err.message || 'unknown parse error';
33
+ // Try to extract line/position info
34
+ const posMatch = msg.match(/position (\d+)/);
35
+ const detail = posMatch
36
+ ? `Parse error at byte ${posMatch[1]}: ${msg}`
37
+ : `Parse error: ${msg}`;
38
+ add('fail', 'clawsoul.json is not valid JSON', [detail]);
39
+ printResults(results);
28
40
  process.exit(1);
29
41
  }
30
42
  // 3. Validate against schema
@@ -33,111 +45,214 @@ export async function validateCommand(dir, options) {
33
45
  schema = getSchema(specVersion);
34
46
  }
35
47
  catch (err) {
36
- fail(err.message);
37
48
  const available = Object.keys(SPEC_VERSIONS).join(', ');
38
- console.log(chalk.dim(` Available versions: ${available}`));
49
+ add('fail', err.message, [`Available versions: ${available}`]);
50
+ printResults(results);
39
51
  process.exit(1);
40
52
  }
41
- const result = schema.safeParse(raw);
42
- if (result.success) {
43
- pass(`Schema validation passed (spec v${specVersion})`);
53
+ const parsed = schema.safeParse(raw);
54
+ if (parsed.success) {
55
+ add('pass', `clawsoul.json schema valid (spec v${specVersion})`);
44
56
  }
45
57
  else {
46
- for (const issue of result.error.issues) {
47
- fail(`${issue.path.join('.')}: ${issue.message}`);
58
+ const details = [];
59
+ for (const issue of parsed.error.issues) {
60
+ const path = issue.path.length > 0 ? `"${issue.path.join('.')}"` : '(root)';
61
+ let expected = '';
62
+ if (issue.code === 'invalid_type') {
63
+ expected = ` (expected: ${issue.expected}, got: ${issue.received})`;
64
+ }
65
+ else if (issue.code === 'invalid_string' && issue.validation) {
66
+ expected = ` (expected: ${issue.validation})`;
67
+ }
68
+ else if (issue.code === 'invalid_enum_value' && issue.options) {
69
+ expected = ` (expected one of: ${issue.options.join(', ')})`;
70
+ }
71
+ else if (issue.code === 'too_big') {
72
+ expected = ` (max: ${issue.maximum})`;
73
+ }
74
+ else if (issue.code === 'too_small') {
75
+ expected = ` (min: ${issue.minimum})`;
76
+ }
77
+ // Friendly hints for common required fields
78
+ let hint = '';
79
+ const fieldPath = issue.path.join('.');
80
+ const hints = {
81
+ 'author': 'object with "name" field',
82
+ 'license': 'string, e.g. "Apache-2.0"',
83
+ 'name': 'kebab-case string, e.g. "my-soul"',
84
+ 'displayName': 'human-readable name string',
85
+ 'version': 'semver string, e.g. "1.0.0"',
86
+ 'description': 'string, max 160 chars',
87
+ 'tags': 'array of strings, max 10',
88
+ 'category': 'string',
89
+ 'files': 'object with "soul" field',
90
+ 'files.soul': 'path to SOUL.md',
91
+ };
92
+ if (issue.code === 'invalid_type' && issue.received === 'undefined') {
93
+ const friendlyExpected = hints[fieldPath] || issue.expected;
94
+ details.push(`${path} is required (expected: ${friendlyExpected})`);
95
+ }
96
+ else if (issue.code === 'invalid_string') {
97
+ const actual = raw;
98
+ const val = issue.path.reduce((o, k) => o?.[k], raw);
99
+ const valStr = val !== undefined ? ` (got: ${JSON.stringify(val)})` : '';
100
+ details.push(`${path}: ${issue.message}${valStr}`);
101
+ }
102
+ else {
103
+ const friendlyHint = hints[fieldPath] ? ` (expected: ${hints[fieldPath]})` : expected;
104
+ details.push(`${path}: ${issue.message}${friendlyHint}`);
105
+ }
48
106
  }
107
+ add('fail', 'clawsoul.json schema', details);
49
108
  }
50
- // 4. Check required files exist
109
+ // 4. Check required files
51
110
  const files = raw.files || {};
52
111
  const requiredFiles = [
53
112
  ['soul', 'SOUL.md'],
54
113
  ];
55
114
  const optionalFiles = [
56
- ['identity', 'IDENTITY.md'],
57
- ['agents', 'AGENTS.md'],
58
- ['heartbeat', 'HEARTBEAT.md'],
59
- ['style', 'STYLE.md'],
115
+ ['identity', 'IDENTITY.md', 'recommended for personality definition'],
116
+ ['agents', 'AGENTS.md', 'recommended for agent workflows'],
117
+ ['heartbeat', 'HEARTBEAT.md', 'optional'],
118
+ ['style', 'STYLE.md', 'optional but recommended'],
60
119
  ];
61
120
  for (const [key, defaultName] of requiredFiles) {
62
121
  const filename = files[key] || defaultName;
63
- if (existsSync(join(soulDir, filename))) {
64
- pass(`${filename} exists`);
122
+ const filePath = join(soulDir, filename);
123
+ if (existsSync(filePath)) {
124
+ const size = statSync(filePath).size;
125
+ add('pass', `${filename} found (${formatBytes(size)})`);
65
126
  }
66
127
  else {
67
- fail(`${filename} missing (required)`);
128
+ add('fail', `${filename} missing`);
68
129
  }
69
130
  }
70
- for (const [key, defaultName] of optionalFiles) {
131
+ for (const [key, defaultName, hint] of optionalFiles) {
71
132
  const filename = files[key] || defaultName;
72
- if (existsSync(join(soulDir, filename))) {
73
- pass(`${filename} exists`);
133
+ const filePath = join(soulDir, filename);
134
+ if (existsSync(filePath)) {
135
+ const size = statSync(filePath).size;
136
+ add('pass', `${filename} found (${formatBytes(size)})`);
74
137
  }
75
138
  else {
76
- warn(`${filename} not found (optional)`);
139
+ add('warn', `${filename} missing (${hint})`);
77
140
  }
78
141
  }
79
- // 5. Check README.md
80
- if (existsSync(join(soulDir, 'README.md'))) {
81
- pass('README.md exists');
142
+ // 5. README.md
143
+ const readmePath = join(soulDir, 'README.md');
144
+ if (existsSync(readmePath)) {
145
+ const size = statSync(readmePath).size;
146
+ add('pass', `README.md found (${formatBytes(size)})`);
82
147
  }
83
148
  else {
84
- warn('README.md not found (recommended)');
149
+ add('warn', 'README.md missing (recommended)');
85
150
  }
86
- // 6. Content checks
87
- if (files.soul) {
88
- const soulContent = readFileSync(join(soulDir, files.soul), 'utf-8');
89
- if (soulContent.length < 10) {
90
- warn('SOUL.md is very short (< 10 chars)');
91
- }
92
- else {
93
- pass(`SOUL.md has content (${soulContent.length} chars)`);
151
+ // 6. Content quality checks
152
+ const soulFile = files.soul || 'SOUL.md';
153
+ const soulPath = join(soulDir, soulFile);
154
+ if (existsSync(soulPath)) {
155
+ const content = readFileSync(soulPath, 'utf-8');
156
+ if (content.length < 10) {
157
+ add('warn', `${soulFile} is very short (${content.length} chars — consider expanding)`);
94
158
  }
95
159
  }
96
160
  // 7. Security scan
97
- const allFiles = readdirSync(soulDir, { recursive: true });
161
+ let allFiles;
162
+ try {
163
+ allFiles = readdirSync(soulDir, { recursive: true });
164
+ }
165
+ catch {
166
+ allFiles = [];
167
+ }
98
168
  const dangerousExts = ['.exe', '.dll', '.so', '.dylib', '.sh', '.bat', '.cmd'];
99
169
  const dangerousPatterns = ['eval(', 'exec(', 'Function(', 'require(', 'import('];
170
+ const securityIssues = [];
100
171
  for (const file of allFiles) {
101
172
  const filePath = String(file);
173
+ // skip node_modules, .git
174
+ if (filePath.startsWith('node_modules') || filePath.startsWith('.git'))
175
+ continue;
102
176
  const ext = filePath.substring(filePath.lastIndexOf('.'));
103
177
  if (dangerousExts.includes(ext)) {
104
- fail(`Dangerous file extension: ${filePath}`);
178
+ securityIssues.push(`Dangerous file extension: ${filePath}`);
105
179
  }
106
180
  }
107
- // Check text files for dangerous patterns
108
181
  for (const file of allFiles) {
109
- const filePath = join(soulDir, String(file));
182
+ const filePath = String(file);
183
+ if (filePath.startsWith('node_modules') || filePath.startsWith('.git'))
184
+ continue;
185
+ const fullPath = join(soulDir, filePath);
110
186
  try {
111
- const content = readFileSync(filePath, 'utf-8');
187
+ const stat = statSync(fullPath);
188
+ if (stat.isDirectory() || stat.size > 1024 * 1024)
189
+ continue; // skip dirs and large files
190
+ const content = readFileSync(fullPath, 'utf-8');
112
191
  for (const pattern of dangerousPatterns) {
113
192
  if (content.includes(pattern)) {
114
- fail(`Dangerous pattern "${pattern}" in ${file}`);
193
+ // Find line number
194
+ const lines = content.split('\n');
195
+ for (let i = 0; i < lines.length; i++) {
196
+ if (lines[i].includes(pattern)) {
197
+ securityIssues.push(`"${pattern}" found in ${filePath}:${i + 1}`);
198
+ }
199
+ }
115
200
  }
116
201
  }
117
202
  }
118
203
  catch {
119
- // Binary file, skip
204
+ // Binary file or unreadable, skip
120
205
  }
121
206
  }
122
- // 8. Field-specific warnings
123
- if (raw.name) {
124
- if (raw.name.length > 40)
125
- warn('Name is very long (> 40 chars)');
207
+ if (securityIssues.length > 0) {
208
+ add('fail', 'Security scan', securityIssues);
126
209
  }
127
- if (raw.description) {
128
- if (raw.description.length < 10)
129
- warn('Description is very short');
210
+ else {
211
+ add('pass', 'Security scan passed');
130
212
  }
213
+ // 8. Field-specific warnings
214
+ if (raw.name && raw.name.length > 40)
215
+ add('warn', 'Name is very long (> 40 chars)');
216
+ if (raw.description && raw.description.length < 10)
217
+ add('warn', 'Description is very short (< 10 chars)');
131
218
  if (raw.tags && raw.tags.length === 0)
132
- warn('No tags defined');
133
- // Summary
134
- console.log('');
135
- if (hasError) {
136
- console.log(chalk.red.bold('✗ Validation failed — fix errors above before publishing.'));
219
+ add('warn', 'No tags defined');
220
+ printResults(results);
221
+ const errors = results.filter(r => r.type === 'fail').length;
222
+ if (errors > 0)
137
223
  process.exit(1);
224
+ }
225
+ function printResults(results) {
226
+ const icons = {
227
+ pass: chalk.green('✅'),
228
+ fail: chalk.red('❌'),
229
+ warn: chalk.yellow('⚠️'),
230
+ };
231
+ for (const r of results) {
232
+ const icon = icons[r.type];
233
+ const text = r.type === 'fail' ? chalk.red(r.message)
234
+ : r.type === 'warn' ? chalk.yellow(r.message)
235
+ : r.message;
236
+ console.log(`${icon} ${text}`);
237
+ if (r.details && r.details.length > 0) {
238
+ for (const d of r.details) {
239
+ const detailColor = r.type === 'fail' ? chalk.red : chalk.yellow;
240
+ console.log(detailColor(` - ${d}`));
241
+ }
242
+ }
243
+ }
244
+ const passed = results.filter(r => r.type === 'pass').length;
245
+ const failed = results.filter(r => r.type === 'fail').length;
246
+ const warnings = results.filter(r => r.type === 'warn').length;
247
+ console.log('');
248
+ if (failed > 0) {
249
+ console.log(chalk.red.bold(`Result: ${failed} error${failed !== 1 ? 's' : ''}, ${warnings} warning${warnings !== 1 ? 's' : ''} — fix errors before publishing`));
250
+ }
251
+ else if (warnings > 0) {
252
+ console.log(chalk.green.bold(`✓ Valid!`) + chalk.dim(` ${passed} passed, ${warnings} warning${warnings !== 1 ? 's' : ''}`));
138
253
  }
139
254
  else {
140
- console.log(chalk.green.bold('✓ Soul is valid and ready to publish!'));
255
+ console.log(chalk.green.bold(`✓ Soul is valid and ready to publish!`) + chalk.dim(` (${passed} checks passed)`));
141
256
  }
142
257
  }
143
258
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE7E,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,OAAO,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAY,EAAE,OAA2B;IAC7E,MAAM,OAAO,GAAG,GAAG,IAAI,GAAG,CAAC;IAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,WAAW,CAAC;IAEjD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,IAAyB,EAAE,OAAe,EAAE,OAAkB,EAAE,EAAE;QAC7E,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,WAAW,KAAK,CAAC,CAAC,CAAC;IAEhG,gCAAgC;IAChC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QACrC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEnC,gBAAgB;IAChB,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,IAAI,qBAAqB,CAAC;QACjD,oCAAoC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,QAAQ;YACrB,CAAC,CAAC,uBAAuB,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC9C,CAAC,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC1B,GAAG,CAAC,MAAM,EAAE,iCAAiC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC,CAAC;QAC/D,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,GAAG,CAAC,MAAM,EAAE,qCAAqC,WAAW,GAAG,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAK,MAAc,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC5E,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAClC,QAAQ,GAAG,eAAe,KAAK,CAAC,QAAQ,UAAU,KAAK,CAAC,QAAQ,GAAG,CAAC;YACtE,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC/D,QAAQ,GAAG,eAAe,KAAK,CAAC,UAAU,GAAG,CAAC;YAChD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChE,QAAQ,GAAG,sBAAsB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAC/D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,GAAG,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC;YACxC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACtC,QAAQ,GAAG,UAAU,KAAK,CAAC,OAAO,GAAG,CAAC;YACxC,CAAC;YAED,4CAA4C;YAC5C,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,KAAK,GAA2B;gBACpC,QAAQ,EAAE,0BAA0B;gBACpC,SAAS,EAAE,2BAA2B;gBACtC,MAAM,EAAE,mCAAmC;gBAC3C,aAAa,EAAE,4BAA4B;gBAC3C,SAAS,EAAE,6BAA6B;gBACxC,aAAa,EAAE,uBAAuB;gBACtC,MAAM,EAAE,0BAA0B;gBAClC,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,0BAA0B;gBACnC,YAAY,EAAE,iBAAiB;aAChC,CAAC;YAEF,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACpE,MAAM,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,2BAA2B,gBAAgB,GAAG,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,GAAG,CAAC;gBACnB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,CAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3E,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtF,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,YAAY,EAAE,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,0BAA0B;IAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAuB;QACxC,CAAC,MAAM,EAAE,SAAS,CAAC;KACpB,CAAC;IACF,MAAM,aAAa,GAA+B;QAChD,CAAC,UAAU,EAAE,aAAa,EAAE,wCAAwC,CAAC;QACrE,CAAC,QAAQ,EAAE,WAAW,EAAE,iCAAiC,CAAC;QAC1D,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC;QACzC,CAAC,OAAO,EAAE,UAAU,EAAE,0BAA0B,CAAC;KAClD,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,IAAI,aAAa,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACrC,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,WAAW,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACrC,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,WAAW,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,aAAa,IAAI,GAAG,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,eAAe;IACf,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QACvC,GAAG,CAAC,MAAM,EAAE,oBAAoB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;IACjD,CAAC;IAED,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,EAAE,GAAG,QAAQ,mBAAmB,OAAO,CAAC,MAAM,8BAA8B,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,mBAAmB;IACnB,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAa,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,QAAQ,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACjF,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,0BAA0B;QAC1B,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACjF,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,cAAc,CAAC,IAAI,CAAC,6BAA6B,QAAQ,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,SAAS;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI;gBAAE,SAAS,CAAC,4BAA4B;YACzF,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,mBAAmB;oBACnB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC/B,cAAc,CAAC,IAAI,CAAC,IAAI,OAAO,cAAc,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACpE,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACtC,CAAC;IAED,6BAA6B;IAC7B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE;QAAE,GAAG,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IACpF,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;QAAE,GAAG,CAAC,MAAM,EAAE,wCAAwC,CAAC,CAAC;IAC1G,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAEtE,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC7D,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,OAAsB;IAC1C,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QACtB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QACpB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;KACzB,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YACnD,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC7C,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC1B,MAAM,WAAW,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC7D,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAE/D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,MAAM,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,iCAAiC,CAAC,CAAC,CAAC;IACnK,CAAC;SAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,YAAY,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9H,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,iBAAiB,CAAC,CAAC,CAAC;IACnH,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clawsouls",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "CLI for ClawSouls — AI agent persona sharing platform",
5
5
  "main": "dist/index.js",
6
6
  "bin": {