expxagents 0.18.1 → 0.19.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.
@@ -197,6 +197,75 @@ Create `_memory/memories.md` for squad-level learning.
197
197
  2. **Agent instructions** must include: "Before producing any visual output, read `squads/design-system/_memory/design-tokens.md` for colors, fonts, and spacing. Read `squads/design-system/_memory/brand-guidelines.md` for brand rules. Use assets from `_expxagents/_assets/` for logos and images."
198
198
  3. The first step of visual squads should always reference the design system tokens
199
199
 
200
+ ## Pencil Visual Templates Integration
201
+
202
+ **For squads that produce visual assets** (social media posts, carousels, stories, landing pages, slides, email templates, ads, branding), use the Pencil visual design system:
203
+
204
+ ### When to Enable
205
+
206
+ | Squad Type | visual_templates? | Reason |
207
+ |-----------|------------------|--------|
208
+ | Instagram Post/Carousel/Stories | YES | Visual image templates |
209
+ | Landing Page | YES | Visual layout |
210
+ | Slide Deck | YES | Presentation templates |
211
+ | Email Marketing | YES | Visual email templates |
212
+ | Ads (Meta/Google) | YES | Visual ad templates |
213
+ | Branding/Web Design | YES | Identity visual |
214
+ | Blog | NO | Text/HTML, no visual design |
215
+ | Instagram Reels | NO | Video, not static image |
216
+ | Other non-visual squads | NO | No visual assets |
217
+
218
+ ### squad.yaml Configuration
219
+
220
+ Add `visual_templates` block to qualifying squads:
221
+
222
+ ```yaml
223
+ squad:
224
+ # ... standard fields ...
225
+ visual_templates:
226
+ enabled: true
227
+ format: "4:5" # aspect ratio (4:5 for IG, 16:9 for slides, etc.)
228
+ count: 3 # number of initial templates
229
+ ```
230
+
231
+ ### Standard Dimensions
232
+
233
+ | Type | Width x Height | Format |
234
+ |------|---------------|--------|
235
+ | Instagram Post | 1080x1350 | 4:5 |
236
+ | Instagram Post (square) | 1080x1080 | 1:1 |
237
+ | Instagram Story | 1080x1920 | 9:16 |
238
+ | Slide Deck | 1920x1080 | 16:9 |
239
+ | Email Header | 600x200 | 3:1 |
240
+ | Blog Cover | 1200x630 | ~2:1 |
241
+ | Landing Page | 1440x900+ | ~16:10 |
242
+
243
+ ### Directory Structure
244
+
245
+ When creating a visual squad, create the `templates/` directory:
246
+
247
+ ```
248
+ squads/<setor>/<grupo>/<sessao>/<code>/
249
+ ├── squad.yaml
250
+ ├── templates/ ← NEW: for visual squads
251
+ │ └── (user creates .pen file here via Pencil)
252
+ ├── agents/
253
+ ├── _memory/
254
+ └── ...
255
+ ```
256
+
257
+ ### Agent Designer Instructions
258
+
259
+ For the designer agent in visual squads, include this section in the agent's .md:
260
+
261
+ ```markdown
262
+ ## Pencil Templates
263
+ - **Templates directory:** `templates/`
264
+ - **Sync command:** Run `expxagents sync-templates` after editing .pen files
265
+ - **Template rotation:** Rotate through available templates for variety
266
+ - **Always read the template .md files** before generating HTML output
267
+ ```
268
+
200
269
  ## Agent Persona Rules
201
270
 
202
271
  Every agent in every squad MUST have:
@@ -232,6 +301,8 @@ Before presenting the design to the user:
232
301
  - [ ] Pipeline flows logically from research → creation → review
233
302
  - [ ] Format matches an available best-practice (if platform specified)
234
303
  - [ ] Visual squads reference design system and assets path
304
+ - [ ] Visual squads have `visual_templates` block in squad.yaml
305
+ - [ ] Visual squads have `templates/` directory created
235
306
  - [ ] Every agent has a human name (first + last) and an avatar URL
236
307
 
237
308
  ## After Design
@@ -2,6 +2,7 @@ import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { execSync } from 'child_process';
4
4
  import { getAssetsDir } from '../utils/config.js';
5
+ import { detectPencilExtension } from '../pencil/detect.js';
5
6
  export async function doctorCommand() {
6
7
  const cwd = process.cwd();
7
8
  const checks = [];
@@ -21,6 +22,15 @@ export async function doctorCommand() {
21
22
  catch {
22
23
  checks.push({ name: 'Claude Code CLI', status: 'fail', message: 'Not found — install from https://claude.ai/code' });
23
24
  }
25
+ // Pencil extension (optional)
26
+ const pencilInfo = detectPencilExtension();
27
+ checks.push({
28
+ name: 'Pencil extension',
29
+ status: pencilInfo ? 'ok' : 'warn',
30
+ message: pencilInfo
31
+ ? `v${pencilInfo.version} (visual templates enabled)`
32
+ : 'not found (optional — install highagency.pencildev for visual templates)',
33
+ });
24
34
  // Project structure
25
35
  const requiredDirs = ['squads', '_expxagents/_memory'];
26
36
  for (const dir of requiredDirs) {
@@ -3,6 +3,7 @@ import path from 'path';
3
3
  import crypto from 'crypto';
4
4
  import { execSync } from 'child_process';
5
5
  import { getTemplateDir, getAssetsDir } from '../utils/config.js';
6
+ import { detectPencilExtension, resolvePlatformBinary, buildMcpConfig } from '../pencil/detect.js';
6
7
  function getDefaultTemplate(file) {
7
8
  if (file === 'company.md') {
8
9
  return `<!-- NOT CONFIGURED -->
@@ -148,6 +149,7 @@ Present using AskUserQuestion with 2-4 options:
148
149
  | \`/expxagents install <name>\` | Install skill from catalog |
149
150
  | \`/expxagents uninstall <name>\` | Remove installed skill |
150
151
  | \`/expxagents delete <name>\` | Confirm and delete squad |
152
+ | \`/expxagents sync-templates [squad]\` | Sync Pencil .pen visual templates to .md specs |
151
153
  | \`/expxagents dashboard\` | Run CLI to start server + open dashboard |
152
154
  | \`/expxagents virtual-office\` | Run CLI to start server + open virtual office in browser |
153
155
  | \`/expxagents help\` | Show help text |
@@ -227,6 +229,9 @@ SQUADS
227
229
  /expxagents edit <name> Modify a squad
228
230
  /expxagents delete <name> Delete a squad
229
231
 
232
+ TEMPLATES
233
+ /expxagents sync-templates Sync Pencil visual templates
234
+
230
235
  SKILLS
231
236
  /expxagents skills Browse skills
232
237
  /expxagents install Install a skill
@@ -380,6 +385,7 @@ BRIDGE_TIMEOUT_MS=300000
380
385
  const gitignoreEntries = [
381
386
  'node_modules/',
382
387
  '.env',
388
+ '.mcp.json',
383
389
  '*.tmp',
384
390
  'squads/*/state.json',
385
391
  'squads/*/state.json.tmp',
@@ -397,6 +403,23 @@ BRIDGE_TIMEOUT_MS=300000
397
403
  fs.writeFileSync(gitignorePath, gitignoreEntries.join('\n') + '\n', 'utf-8');
398
404
  console.log(' Created .gitignore');
399
405
  }
406
+ // Generate .mcp.json for Pencil MCP (if Pencil extension is installed)
407
+ const mcpJsonPath = path.join(cwd, '.mcp.json');
408
+ if (!fs.existsSync(mcpJsonPath)) {
409
+ const pencilInfo = detectPencilExtension();
410
+ if (pencilInfo) {
411
+ const binaryName = resolvePlatformBinary();
412
+ const mcpConfig = buildMcpConfig(pencilInfo, binaryName);
413
+ fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2) + '\n', 'utf-8');
414
+ console.log(` Created .mcp.json (Pencil ${pencilInfo.version} detected)`);
415
+ }
416
+ else {
417
+ console.log(' Pencil extension not found — skipping .mcp.json (install highagency.pencildev for visual templates)');
418
+ }
419
+ }
420
+ else {
421
+ console.log(' .mcp.json already exists');
422
+ }
400
423
  // Install Python dependencies
401
424
  const pythonDeps = ['aiohttp', 'aiofiles', 'python-dotenv'];
402
425
  console.log(`\n Installing Python dependencies (${pythonDeps.join(', ')})...`);
@@ -0,0 +1 @@
1
+ export declare function syncTemplatesCommand(squadFilter?: string): Promise<void>;
@@ -0,0 +1,125 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { findSquadDir, loadSquad } from '../../../core/squad-loader.js';
4
+ /**
5
+ * Find all .pen files in a squad's templates/ directory.
6
+ */
7
+ function findPenFiles(squadDir) {
8
+ const templatesDir = path.join(squadDir, 'templates');
9
+ if (!fs.existsSync(templatesDir))
10
+ return [];
11
+ return fs.readdirSync(templatesDir)
12
+ .filter(f => f.endsWith('.pen'))
13
+ .map(f => path.join(templatesDir, f));
14
+ }
15
+ /**
16
+ * Find all template .md files in a squad's templates/ directory.
17
+ */
18
+ function findTemplateMds(squadDir) {
19
+ const templatesDir = path.join(squadDir, 'templates');
20
+ if (!fs.existsSync(templatesDir))
21
+ return [];
22
+ return fs.readdirSync(templatesDir)
23
+ .filter(f => f.startsWith('template-') && f.endsWith('.md'));
24
+ }
25
+ /**
26
+ * Walk squads directory and find all squads with visual_templates enabled.
27
+ */
28
+ function findVisualSquads(squadsDir) {
29
+ const results = [];
30
+ function walk(dir, depth) {
31
+ if (depth > 4)
32
+ return;
33
+ const yamlPath = path.join(dir, 'squad.yaml');
34
+ if (fs.existsSync(yamlPath)) {
35
+ try {
36
+ const config = loadSquad(dir);
37
+ if (config.squad.visualTemplates?.enabled) {
38
+ results.push(dir);
39
+ }
40
+ }
41
+ catch {
42
+ // Invalid squad — skip
43
+ }
44
+ return;
45
+ }
46
+ let entries;
47
+ try {
48
+ entries = fs.readdirSync(dir, { withFileTypes: true });
49
+ }
50
+ catch {
51
+ return;
52
+ }
53
+ for (const entry of entries) {
54
+ if (!entry.isDirectory())
55
+ continue;
56
+ if (entry.name.startsWith('.') || entry.name.startsWith('_'))
57
+ continue;
58
+ walk(path.join(dir, entry.name), depth + 1);
59
+ }
60
+ }
61
+ walk(squadsDir, 0);
62
+ return results;
63
+ }
64
+ export async function syncTemplatesCommand(squadFilter) {
65
+ const cwd = process.cwd();
66
+ const squadsDir = path.join(cwd, 'squads');
67
+ if (!fs.existsSync(squadsDir)) {
68
+ console.error('No squads/ directory found. Run `expxagents init` first.');
69
+ process.exit(1);
70
+ }
71
+ let squadDirs;
72
+ if (squadFilter) {
73
+ const dir = findSquadDir(squadsDir, squadFilter);
74
+ if (!dir) {
75
+ console.error(`Squad "${squadFilter}" not found.`);
76
+ process.exit(1);
77
+ }
78
+ squadDirs = [dir];
79
+ }
80
+ else {
81
+ squadDirs = findVisualSquads(squadsDir);
82
+ }
83
+ if (squadDirs.length === 0) {
84
+ console.log('No squads with visual_templates found.');
85
+ console.log('Add `visual_templates: { enabled: true }` to squad.yaml to enable.');
86
+ return;
87
+ }
88
+ console.log(`\nSync Templates — ${squadDirs.length} visual squad(s) found\n`);
89
+ for (const squadDir of squadDirs) {
90
+ const config = loadSquad(squadDir);
91
+ const penFiles = findPenFiles(squadDir);
92
+ const existingMds = findTemplateMds(squadDir);
93
+ const squadName = config.squad.name;
94
+ console.log(`--- ${squadName} (${config.squad.code}) ---`);
95
+ if (penFiles.length === 0) {
96
+ console.log(' No .pen files found in templates/');
97
+ console.log(' Create a .pen file or use Pencil to design templates.');
98
+ // Create templates dir if it doesn't exist
99
+ const templatesDir = path.join(squadDir, 'templates');
100
+ if (!fs.existsSync(templatesDir)) {
101
+ fs.mkdirSync(templatesDir, { recursive: true });
102
+ console.log(' Created templates/ directory');
103
+ }
104
+ console.log('');
105
+ continue;
106
+ }
107
+ console.log(` .pen files: ${penFiles.map(f => path.basename(f)).join(', ')}`);
108
+ console.log(` Existing .md templates: ${existingMds.length}`);
109
+ console.log('');
110
+ console.log(' To sync, open the .pen file in Pencil (VSCode) and run:');
111
+ console.log(' 1. Open the .pen file in VSCode');
112
+ console.log(' 2. Use Claude Code with Pencil MCP to read frames');
113
+ console.log(' 3. The sync will generate/update template .md files');
114
+ console.log('');
115
+ // Report existing template .md files
116
+ if (existingMds.length > 0) {
117
+ console.log(' Current templates:');
118
+ for (const md of existingMds) {
119
+ console.log(` - ${md}`);
120
+ }
121
+ console.log('');
122
+ }
123
+ }
124
+ console.log('Sync complete.');
125
+ }
@@ -14,6 +14,7 @@ import { virtualOfficeCommand } from './commands/virtual-office.js';
14
14
  import { jarvisCommand } from './commands/jarvis.js';
15
15
  import { schedulerCommand } from './commands/scheduler.js';
16
16
  import { reorganizeCommand } from './commands/reorganize.js';
17
+ import { syncTemplatesCommand } from './commands/sync-templates.js';
17
18
  import { ingestCommand } from './commands/ingest.js';
18
19
  import { knowledgeCommand } from './commands/knowledge.js';
19
20
  import { loginCommand } from './commands/login.js';
@@ -64,6 +65,10 @@ program
64
65
  .command('reorganize')
65
66
  .description('Reorganize squads into Setor > Grupo > Sessão > Squad hierarchy')
66
67
  .action(reorganizeCommand);
68
+ program
69
+ .command('sync-templates [squad]')
70
+ .description('Sync Pencil .pen templates to .md specs for visual squads')
71
+ .action(syncTemplatesCommand);
67
72
  program
68
73
  .command('install <skill>')
69
74
  .description('Install skill from registry')
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,71 @@
1
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import os from 'os';
5
+ import { detectPencilExtension, resolvePlatformBinary, buildMcpConfig, } from '../detect.js';
6
+ describe('pencil/detect', () => {
7
+ let tmpDir;
8
+ beforeEach(() => {
9
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'pencil-detect-'));
10
+ });
11
+ afterEach(() => {
12
+ fs.rmSync(tmpDir, { recursive: true, force: true });
13
+ });
14
+ describe('detectPencilExtension()', () => {
15
+ it('returns null when no extension directories exist', () => {
16
+ const result = detectPencilExtension(tmpDir);
17
+ expect(result).toBeNull();
18
+ });
19
+ it('returns the latest version when multiple versions exist', () => {
20
+ fs.mkdirSync(path.join(tmpDir, 'highagency.pencildev-0.6.33', 'out'), { recursive: true });
21
+ fs.mkdirSync(path.join(tmpDir, 'highagency.pencildev-0.6.35', 'out'), { recursive: true });
22
+ fs.mkdirSync(path.join(tmpDir, 'highagency.pencildev-0.6.34', 'out'), { recursive: true });
23
+ const result = detectPencilExtension(tmpDir);
24
+ expect(result).not.toBeNull();
25
+ expect(result.version).toBe('0.6.35');
26
+ expect(result.extensionPath).toContain('highagency.pencildev-0.6.35');
27
+ });
28
+ it('returns info for a single installed version', () => {
29
+ fs.mkdirSync(path.join(tmpDir, 'highagency.pencildev-0.6.33', 'out'), { recursive: true });
30
+ const result = detectPencilExtension(tmpDir);
31
+ expect(result).not.toBeNull();
32
+ expect(result.version).toBe('0.6.33');
33
+ });
34
+ });
35
+ describe('resolvePlatformBinary()', () => {
36
+ it('returns darwin-arm64 for macOS ARM', () => {
37
+ const binary = resolvePlatformBinary('darwin', 'arm64');
38
+ expect(binary).toBe('mcp-server-darwin-arm64');
39
+ });
40
+ it('returns darwin-x64 for macOS Intel', () => {
41
+ const binary = resolvePlatformBinary('darwin', 'x64');
42
+ expect(binary).toBe('mcp-server-darwin-x64');
43
+ });
44
+ it('returns linux-x64 for Linux', () => {
45
+ const binary = resolvePlatformBinary('linux', 'x64');
46
+ expect(binary).toBe('mcp-server-linux-x64');
47
+ });
48
+ it('returns win32-x64.exe for Windows', () => {
49
+ const binary = resolvePlatformBinary('win32', 'x64');
50
+ expect(binary).toBe('mcp-server-win32-x64.exe');
51
+ });
52
+ });
53
+ describe('buildMcpConfig()', () => {
54
+ it('generates correct config object', () => {
55
+ const info = {
56
+ version: '0.6.35',
57
+ extensionPath: '/Users/test/.vscode/extensions/highagency.pencildev-0.6.35',
58
+ };
59
+ const config = buildMcpConfig(info, 'mcp-server-darwin-arm64');
60
+ expect(config).toEqual({
61
+ mcpServers: {
62
+ pencil: {
63
+ command: '/Users/test/.vscode/extensions/highagency.pencildev-0.6.35/out/mcp-server-darwin-arm64',
64
+ args: ['--app', 'visual_studio_code'],
65
+ env: {},
66
+ },
67
+ },
68
+ });
69
+ });
70
+ });
71
+ });
@@ -0,0 +1,120 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { mapNodeToCSS } from '../property-mapper.js';
3
+ describe('pencil/property-mapper', () => {
4
+ it('maps fill to background-color for frame nodes', () => {
5
+ const node = { type: 'frame', fill: '#FF5733' };
6
+ const css = mapNodeToCSS(node);
7
+ expect(css).toContain('background: #FF5733');
8
+ });
9
+ it('maps fill to color for text nodes', () => {
10
+ const node = { type: 'text', fill: '#333333' };
11
+ const css = mapNodeToCSS(node);
12
+ expect(css).toContain('color: #333333');
13
+ });
14
+ it('maps font properties', () => {
15
+ const node = {
16
+ type: 'text',
17
+ fontSize: 24,
18
+ fontWeight: '700',
19
+ fontFamily: 'Inter',
20
+ lineHeight: 1.5,
21
+ letterSpacing: 0.5,
22
+ };
23
+ const css = mapNodeToCSS(node);
24
+ expect(css).toContain('font-size: 24px');
25
+ expect(css).toContain('font-weight: 700');
26
+ expect(css).toContain('font-family: Inter');
27
+ expect(css).toContain('line-height: 1.5');
28
+ expect(css).toContain('letter-spacing: 0.5px');
29
+ });
30
+ it('maps padding array [T,R,B,L]', () => {
31
+ const node = { type: 'frame', padding: [10, 20, 10, 20] };
32
+ const css = mapNodeToCSS(node);
33
+ expect(css).toContain('padding: 10px 20px 10px 20px');
34
+ });
35
+ it('maps padding array [V,H]', () => {
36
+ const node = { type: 'frame', padding: [10, 20] };
37
+ const css = mapNodeToCSS(node);
38
+ expect(css).toContain('padding: 10px 20px');
39
+ });
40
+ it('maps single padding value', () => {
41
+ const node = { type: 'frame', padding: 16 };
42
+ const css = mapNodeToCSS(node);
43
+ expect(css).toContain('padding: 16px');
44
+ });
45
+ it('maps layout vertical to flex-direction column', () => {
46
+ const node = { type: 'frame', layout: 'vertical' };
47
+ const css = mapNodeToCSS(node);
48
+ expect(css).toContain('display: flex');
49
+ expect(css).toContain('flex-direction: column');
50
+ });
51
+ it('maps layout horizontal to flex-direction row', () => {
52
+ const node = { type: 'frame', layout: 'horizontal' };
53
+ const css = mapNodeToCSS(node);
54
+ expect(css).toContain('display: flex');
55
+ expect(css).toContain('flex-direction: row');
56
+ });
57
+ it('maps gap', () => {
58
+ const node = { type: 'frame', gap: 12 };
59
+ const css = mapNodeToCSS(node);
60
+ expect(css).toContain('gap: 12px');
61
+ });
62
+ it('maps width fill_container to width 100%', () => {
63
+ const node = { type: 'frame', width: 'fill_container' };
64
+ const css = mapNodeToCSS(node);
65
+ expect(css).toContain('width: 100%');
66
+ });
67
+ it('maps width fit_content', () => {
68
+ const node = { type: 'frame', width: 'fit_content' };
69
+ const css = mapNodeToCSS(node);
70
+ expect(css).toContain('width: fit-content');
71
+ });
72
+ it('maps numeric width to px', () => {
73
+ const node = { type: 'frame', width: 300 };
74
+ const css = mapNodeToCSS(node);
75
+ expect(css).toContain('width: 300px');
76
+ });
77
+ it('maps cornerRadius to border-radius', () => {
78
+ const node = { type: 'frame', cornerRadius: 8 };
79
+ const css = mapNodeToCSS(node);
80
+ expect(css).toContain('border-radius: 8px');
81
+ });
82
+ it('maps cornerRadius array', () => {
83
+ const node = { type: 'frame', cornerRadius: [8, 8, 0, 0] };
84
+ const css = mapNodeToCSS(node);
85
+ expect(css).toContain('border-radius: 8px 8px 0px 0px');
86
+ });
87
+ it('maps clip true to overflow hidden', () => {
88
+ const node = { type: 'frame', clip: true };
89
+ const css = mapNodeToCSS(node);
90
+ expect(css).toContain('overflow: hidden');
91
+ });
92
+ it('maps opacity', () => {
93
+ const node = { type: 'frame', opacity: 0.5 };
94
+ const css = mapNodeToCSS(node);
95
+ expect(css).toContain('opacity: 0.5');
96
+ });
97
+ it('maps justifyContent and alignItems', () => {
98
+ const node = {
99
+ type: 'frame',
100
+ justifyContent: 'center',
101
+ alignItems: 'flex-start',
102
+ };
103
+ const css = mapNodeToCSS(node);
104
+ expect(css).toContain('justify-content: center');
105
+ expect(css).toContain('align-items: flex-start');
106
+ });
107
+ it('maps stroke to border', () => {
108
+ const node = {
109
+ type: 'frame',
110
+ stroke: { thickness: 2, fill: '#000000' },
111
+ };
112
+ const css = mapNodeToCSS(node);
113
+ expect(css).toContain('border: 2px solid #000000');
114
+ });
115
+ it('returns empty string for empty node', () => {
116
+ const node = { type: 'frame' };
117
+ const css = mapNodeToCSS(node);
118
+ expect(css).toBe('');
119
+ });
120
+ });
@@ -0,0 +1,95 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { parseFrameName, generateTemplateMarkdown, computeSyncActions, } from '../template-sync.js';
3
+ describe('pencil/template-sync', () => {
4
+ describe('parseFrameName()', () => {
5
+ it('parses "Template 01 - Hero Banner"', () => {
6
+ const result = parseFrameName('Template 01 - Hero Banner');
7
+ expect(result).toEqual({ number: 1, name: 'Hero Banner', slug: 'hero-banner' });
8
+ });
9
+ it('parses "Template 12 - Call to Action"', () => {
10
+ const result = parseFrameName('Template 12 - Call to Action');
11
+ expect(result).toEqual({ number: 12, name: 'Call to Action', slug: 'call-to-action' });
12
+ });
13
+ it('returns null for non-template frame names', () => {
14
+ expect(parseFrameName('Random Frame')).toBeNull();
15
+ expect(parseFrameName('Background')).toBeNull();
16
+ });
17
+ });
18
+ describe('generateTemplateMarkdown()', () => {
19
+ it('generates markdown with CSS from node properties', () => {
20
+ const frame = {
21
+ id: 'frame1',
22
+ name: 'Template 01 - Hero Banner',
23
+ width: 1080,
24
+ height: 1350,
25
+ children: [
26
+ {
27
+ id: 'child1',
28
+ name: 'Header',
29
+ type: 'frame',
30
+ fill: '#FFFFFF',
31
+ layout: 'vertical',
32
+ padding: [20, 24, 20, 24],
33
+ },
34
+ ],
35
+ };
36
+ const md = generateTemplateMarkdown(frame);
37
+ expect(md).toContain('# Template 01 — Hero Banner');
38
+ expect(md).toContain('1080x1350');
39
+ expect(md).toContain('background: #FFFFFF');
40
+ expect(md).toContain('flex-direction: column');
41
+ });
42
+ });
43
+ describe('computeSyncActions()', () => {
44
+ it('detects new templates (frame without .md)', () => {
45
+ const frames = [
46
+ { id: 'f1', name: 'Template 01 - Hero', width: 1080, height: 1350, children: [] },
47
+ ];
48
+ const existingMds = [];
49
+ const actions = computeSyncActions(frames, existingMds);
50
+ expect(actions).toHaveLength(1);
51
+ expect(actions[0].type).toBe('create');
52
+ expect(actions[0].filename).toBe('template-01-hero.md');
53
+ });
54
+ it('detects orphaned templates (.md without frame)', () => {
55
+ const frames = [];
56
+ const existingMds = ['template-01-hero.md'];
57
+ const actions = computeSyncActions(frames, existingMds);
58
+ expect(actions).toHaveLength(1);
59
+ expect(actions[0].type).toBe('orphan');
60
+ expect(actions[0].filename).toBe('template-01-hero.md');
61
+ });
62
+ it('detects existing templates that may need update', () => {
63
+ const frames = [
64
+ { id: 'f1', name: 'Template 01 - Hero', width: 1080, height: 1350, children: [] },
65
+ ];
66
+ const existingMds = ['template-01-hero.md'];
67
+ const actions = computeSyncActions(frames, existingMds);
68
+ expect(actions).toHaveLength(1);
69
+ expect(actions[0].type).toBe('update');
70
+ });
71
+ it('handles mix of new, existing, and orphaned', () => {
72
+ const frames = [
73
+ { id: 'f1', name: 'Template 01 - Hero', width: 1080, height: 1350, children: [] },
74
+ { id: 'f2', name: 'Template 03 - Footer', width: 1080, height: 1350, children: [] },
75
+ ];
76
+ const existingMds = ['template-01-hero.md', 'template-02-sidebar.md'];
77
+ const actions = computeSyncActions(frames, existingMds);
78
+ const create = actions.filter(a => a.type === 'create');
79
+ const update = actions.filter(a => a.type === 'update');
80
+ const orphan = actions.filter(a => a.type === 'orphan');
81
+ expect(update).toHaveLength(1); // template-01 exists
82
+ expect(create).toHaveLength(1); // template-03 is new
83
+ expect(orphan).toHaveLength(1); // template-02 has no frame
84
+ });
85
+ it('skips non-template frames', () => {
86
+ const frames = [
87
+ { id: 'f1', name: 'Background', width: 1920, height: 1080, children: [] },
88
+ { id: 'f2', name: 'Template 01 - Hero', width: 1080, height: 1350, children: [] },
89
+ ];
90
+ const actions = computeSyncActions(frames, []);
91
+ expect(actions).toHaveLength(1);
92
+ expect(actions[0].filename).toBe('template-01-hero.md');
93
+ });
94
+ });
95
+ });
@@ -0,0 +1,26 @@
1
+ export interface PencilInfo {
2
+ version: string;
3
+ extensionPath: string;
4
+ }
5
+ export interface McpConfig {
6
+ mcpServers: {
7
+ pencil: {
8
+ command: string;
9
+ args: string[];
10
+ env: Record<string, string>;
11
+ };
12
+ };
13
+ }
14
+ /**
15
+ * Detect Pencil VSCode extension in the given extensions directory.
16
+ * Returns info about the latest installed version, or null if not found.
17
+ */
18
+ export declare function detectPencilExtension(extensionsDir?: string): PencilInfo | null;
19
+ /**
20
+ * Resolve the correct MCP server binary name for the current platform.
21
+ */
22
+ export declare function resolvePlatformBinary(platform?: string, arch?: string): string;
23
+ /**
24
+ * Build the .mcp.json config object for Pencil MCP.
25
+ */
26
+ export declare function buildMcpConfig(info: PencilInfo, binaryName: string): McpConfig;
@@ -0,0 +1,54 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import os from 'os';
4
+ const EXTENSION_PREFIX = 'highagency.pencildev-';
5
+ /**
6
+ * Detect Pencil VSCode extension in the given extensions directory.
7
+ * Returns info about the latest installed version, or null if not found.
8
+ */
9
+ export function detectPencilExtension(extensionsDir) {
10
+ const dir = extensionsDir ?? path.join(os.homedir(), '.vscode', 'extensions');
11
+ if (!fs.existsSync(dir))
12
+ return null;
13
+ const entries = fs.readdirSync(dir).filter(e => e.startsWith(EXTENSION_PREFIX));
14
+ if (entries.length === 0)
15
+ return null;
16
+ entries.sort((a, b) => {
17
+ const vA = a.slice(EXTENSION_PREFIX.length);
18
+ const vB = b.slice(EXTENSION_PREFIX.length);
19
+ return vA.localeCompare(vB, undefined, { numeric: true, sensitivity: 'base' });
20
+ });
21
+ const latest = entries[entries.length - 1];
22
+ const version = latest.slice(EXTENSION_PREFIX.length);
23
+ return {
24
+ version,
25
+ extensionPath: path.join(dir, latest),
26
+ };
27
+ }
28
+ /**
29
+ * Resolve the correct MCP server binary name for the current platform.
30
+ */
31
+ export function resolvePlatformBinary(platform, arch) {
32
+ const p = platform ?? process.platform;
33
+ const a = arch ?? process.arch;
34
+ // Windows: only x64 binaries are distributed by Pencil
35
+ if (p === 'win32')
36
+ return `mcp-server-win32-x64.exe`;
37
+ if (p === 'darwin')
38
+ return `mcp-server-darwin-${a}`;
39
+ return `mcp-server-linux-${a}`;
40
+ }
41
+ /**
42
+ * Build the .mcp.json config object for Pencil MCP.
43
+ */
44
+ export function buildMcpConfig(info, binaryName) {
45
+ return {
46
+ mcpServers: {
47
+ pencil: {
48
+ command: path.join(info.extensionPath, 'out', binaryName),
49
+ args: ['--app', 'visual_studio_code'],
50
+ env: {},
51
+ },
52
+ },
53
+ };
54
+ }
@@ -0,0 +1,41 @@
1
+ export interface PencilNode {
2
+ type: 'frame' | 'text' | 'rectangle' | 'ellipse' | 'group';
3
+ fill?: string;
4
+ fontSize?: number;
5
+ fontWeight?: string;
6
+ fontFamily?: string;
7
+ lineHeight?: number;
8
+ letterSpacing?: number;
9
+ padding?: number | number[];
10
+ gap?: number;
11
+ layout?: 'vertical' | 'horizontal' | 'none';
12
+ justifyContent?: string;
13
+ alignItems?: string;
14
+ width?: number | string;
15
+ height?: number | string;
16
+ cornerRadius?: number | number[];
17
+ clip?: boolean;
18
+ opacity?: number;
19
+ stroke?: {
20
+ thickness: number;
21
+ fill: string;
22
+ align?: string;
23
+ };
24
+ effect?: {
25
+ shadow?: {
26
+ offsetX: number;
27
+ offsetY: number;
28
+ blur: number;
29
+ spread?: number;
30
+ color: string;
31
+ };
32
+ blur?: number;
33
+ background_blur?: number;
34
+ };
35
+ textGrowth?: 'fixed-width' | 'auto';
36
+ }
37
+ /**
38
+ * Map a Pencil node's properties to a CSS string.
39
+ * Each property becomes one CSS declaration (property: value).
40
+ */
41
+ export declare function mapNodeToCSS(node: PencilNode): string;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Map a Pencil node's properties to a CSS string.
3
+ * Each property becomes one CSS declaration (property: value).
4
+ */
5
+ export function mapNodeToCSS(node) {
6
+ const lines = [];
7
+ // Fill → background or color
8
+ if (node.fill !== undefined) {
9
+ if (node.type === 'text') {
10
+ lines.push(`color: ${node.fill}`);
11
+ }
12
+ else {
13
+ lines.push(`background: ${node.fill}`);
14
+ }
15
+ }
16
+ // Font properties (text nodes)
17
+ if (node.fontSize !== undefined)
18
+ lines.push(`font-size: ${node.fontSize}px`);
19
+ if (node.fontWeight !== undefined)
20
+ lines.push(`font-weight: ${node.fontWeight}`);
21
+ if (node.fontFamily !== undefined)
22
+ lines.push(`font-family: ${node.fontFamily}`);
23
+ if (node.lineHeight !== undefined)
24
+ lines.push(`line-height: ${node.lineHeight}`);
25
+ if (node.letterSpacing !== undefined)
26
+ lines.push(`letter-spacing: ${node.letterSpacing}px`);
27
+ // Padding
28
+ if (node.padding !== undefined) {
29
+ if (typeof node.padding === 'number') {
30
+ lines.push(`padding: ${node.padding}px`);
31
+ }
32
+ else {
33
+ lines.push(`padding: ${node.padding.map(v => `${v}px`).join(' ')}`);
34
+ }
35
+ }
36
+ // Layout
37
+ if (node.layout === 'vertical') {
38
+ lines.push('display: flex');
39
+ lines.push('flex-direction: column');
40
+ }
41
+ else if (node.layout === 'horizontal') {
42
+ lines.push('display: flex');
43
+ lines.push('flex-direction: row');
44
+ }
45
+ if (node.justifyContent !== undefined)
46
+ lines.push(`justify-content: ${node.justifyContent}`);
47
+ if (node.alignItems !== undefined)
48
+ lines.push(`align-items: ${node.alignItems}`);
49
+ if (node.gap !== undefined)
50
+ lines.push(`gap: ${node.gap}px`);
51
+ // Dimensions
52
+ if (node.width !== undefined) {
53
+ if (node.width === 'fill_container') {
54
+ lines.push('width: 100%');
55
+ }
56
+ else if (node.width === 'fit_content') {
57
+ lines.push('width: fit-content');
58
+ }
59
+ else if (typeof node.width === 'number') {
60
+ lines.push(`width: ${node.width}px`);
61
+ }
62
+ }
63
+ if (node.height !== undefined) {
64
+ if (node.height === 'fill_container') {
65
+ lines.push('flex-grow: 1');
66
+ }
67
+ else if (node.height === 'fit_content') {
68
+ lines.push('height: fit-content');
69
+ }
70
+ else if (typeof node.height === 'number') {
71
+ lines.push(`height: ${node.height}px`);
72
+ }
73
+ }
74
+ // Corner radius
75
+ if (node.cornerRadius !== undefined) {
76
+ if (typeof node.cornerRadius === 'number') {
77
+ lines.push(`border-radius: ${node.cornerRadius}px`);
78
+ }
79
+ else {
80
+ lines.push(`border-radius: ${node.cornerRadius.map(v => `${v}px`).join(' ')}`);
81
+ }
82
+ }
83
+ // Clip
84
+ if (node.clip === true)
85
+ lines.push('overflow: hidden');
86
+ // Opacity
87
+ if (node.opacity !== undefined)
88
+ lines.push(`opacity: ${node.opacity}`);
89
+ // Stroke → border
90
+ if (node.stroke) {
91
+ lines.push(`border: ${node.stroke.thickness}px solid ${node.stroke.fill}`);
92
+ }
93
+ // Effects
94
+ if (node.effect?.shadow) {
95
+ const s = node.effect.shadow;
96
+ const spread = s.spread ?? 0;
97
+ lines.push(`box-shadow: ${s.offsetX}px ${s.offsetY}px ${s.blur}px ${spread}px ${s.color}`);
98
+ }
99
+ if (node.effect?.blur !== undefined) {
100
+ lines.push(`filter: blur(${node.effect.blur}px)`);
101
+ }
102
+ if (node.effect?.background_blur !== undefined) {
103
+ lines.push(`backdrop-filter: blur(${node.effect.background_blur}px)`);
104
+ }
105
+ return lines.join(';\n');
106
+ }
@@ -0,0 +1,36 @@
1
+ import { PencilNode } from './property-mapper.js';
2
+ export interface FrameChild extends PencilNode {
3
+ id: string;
4
+ name: string;
5
+ }
6
+ export interface FrameInfo {
7
+ id: string;
8
+ name: string;
9
+ width: number;
10
+ height: number;
11
+ children: FrameChild[];
12
+ }
13
+ export interface TemplateMeta {
14
+ number: number;
15
+ name: string;
16
+ slug: string;
17
+ }
18
+ export interface SyncAction {
19
+ type: 'create' | 'update' | 'orphan';
20
+ filename: string;
21
+ frame?: FrameInfo;
22
+ content?: string;
23
+ }
24
+ /**
25
+ * Parse a Pencil frame name into template metadata.
26
+ * Expects format: "Template XX - Name"
27
+ */
28
+ export declare function parseFrameName(name: string): TemplateMeta | null;
29
+ /**
30
+ * Generate a template .md from a Pencil frame and its children.
31
+ */
32
+ export declare function generateTemplateMarkdown(frame: FrameInfo): string;
33
+ /**
34
+ * Compare Pencil frames with existing .md files and determine sync actions.
35
+ */
36
+ export declare function computeSyncActions(frames: FrameInfo[], existingMds: string[]): SyncAction[];
@@ -0,0 +1,75 @@
1
+ import { mapNodeToCSS } from './property-mapper.js';
2
+ /**
3
+ * Parse a Pencil frame name into template metadata.
4
+ * Expects format: "Template XX - Name"
5
+ */
6
+ export function parseFrameName(name) {
7
+ const match = name.match(/^Template\s+(\d+)\s*-\s*(.+)$/i);
8
+ if (!match)
9
+ return null;
10
+ const num = parseInt(match[1], 10);
11
+ const templateName = match[2].trim();
12
+ const slug = templateName.toLowerCase().replace(/\s+/g, '-');
13
+ return { number: num, name: templateName, slug };
14
+ }
15
+ /**
16
+ * Generate a template .md from a Pencil frame and its children.
17
+ */
18
+ export function generateTemplateMarkdown(frame) {
19
+ const meta = parseFrameName(frame.name);
20
+ const title = meta
21
+ ? `Template ${String(meta.number).padStart(2, '0')} — ${meta.name}`
22
+ : frame.name;
23
+ const lines = [
24
+ `# ${title}`,
25
+ '',
26
+ `**Dimensions:** ${frame.width}x${frame.height}`,
27
+ '',
28
+ '---',
29
+ '',
30
+ ];
31
+ if (frame.children.length === 0) {
32
+ lines.push('> No child nodes found in this frame.');
33
+ return lines.join('\n');
34
+ }
35
+ for (const child of frame.children) {
36
+ lines.push(`## ${child.name}`);
37
+ lines.push('');
38
+ const css = mapNodeToCSS(child);
39
+ if (css) {
40
+ lines.push('```css');
41
+ lines.push(css);
42
+ lines.push('```');
43
+ lines.push('');
44
+ }
45
+ }
46
+ return lines.join('\n');
47
+ }
48
+ /**
49
+ * Compare Pencil frames with existing .md files and determine sync actions.
50
+ */
51
+ export function computeSyncActions(frames, existingMds) {
52
+ const actions = [];
53
+ const matchedMds = new Set();
54
+ for (const frame of frames) {
55
+ const meta = parseFrameName(frame.name);
56
+ if (!meta)
57
+ continue; // Skip non-template frames
58
+ const filename = `template-${String(meta.number).padStart(2, '0')}-${meta.slug}.md`;
59
+ const content = generateTemplateMarkdown(frame);
60
+ if (existingMds.includes(filename)) {
61
+ matchedMds.add(filename);
62
+ actions.push({ type: 'update', filename, frame, content });
63
+ }
64
+ else {
65
+ actions.push({ type: 'create', filename, frame, content });
66
+ }
67
+ }
68
+ // Find orphaned .md files (no matching frame)
69
+ for (const md of existingMds) {
70
+ if (!matchedMds.has(md)) {
71
+ actions.push({ type: 'orphan', filename: md });
72
+ }
73
+ }
74
+ return actions;
75
+ }
@@ -22,6 +22,11 @@ export interface ScheduleConfig {
22
22
  timeout_minutes?: number;
23
23
  retry_on_failure?: number;
24
24
  }
25
+ export interface VisualTemplatesConfig {
26
+ enabled: boolean;
27
+ format?: string;
28
+ count?: number;
29
+ }
25
30
  export interface SpendControlConfig {
26
31
  /** Maximum estimated USD cost for a single run. Enforcement depends on mode. */
27
32
  maxCostPerRun?: number;
@@ -53,6 +58,7 @@ export interface SquadConfig {
53
58
  secret?: string;
54
59
  };
55
60
  spendControl?: SpendControlConfig;
61
+ visualTemplates?: VisualTemplatesConfig;
56
62
  };
57
63
  }
58
64
  export declare function loadSquad(squadDir: string): SquadConfig;
@@ -95,6 +95,15 @@ export function loadSquad(squadDir) {
95
95
  throw new Error('spendControl.maxCostPerRun must be a positive number');
96
96
  }
97
97
  }
98
+ const rawVisual = squad.visual_templates;
99
+ let visualTemplates;
100
+ if (rawVisual && rawVisual.enabled) {
101
+ visualTemplates = {
102
+ enabled: true,
103
+ format: rawVisual.format,
104
+ count: typeof rawVisual.count === 'number' ? rawVisual.count : undefined,
105
+ };
106
+ }
98
107
  return {
99
108
  squad: {
100
109
  code: squad.code,
@@ -112,6 +121,7 @@ export function loadSquad(squadDir) {
112
121
  chain,
113
122
  webhooks,
114
123
  spendControl,
124
+ visualTemplates,
115
125
  },
116
126
  };
117
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AActD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA8BtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAuN/E"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAQ/C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AActD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA8BtD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAsB,QAAQ,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAiO/E"}
@@ -222,9 +222,10 @@ export async function buildApp(opts) {
222
222
  schedulerService.stop();
223
223
  watcher.stop();
224
224
  });
225
- // Serve static files in production
226
- if (config.nodeEnv === 'production') {
227
- const dashboardDist = process.env.DASHBOARD_DIST ?? path.resolve(__dirname, '..', '..', 'dashboard', 'dist');
225
+ // Serve static files (production serves dashboard, dev serves status page)
226
+ const dashboardDist = process.env.DASHBOARD_DIST ?? path.resolve(__dirname, '..', '..', 'dashboard', 'dist');
227
+ const hasDashboard = require('fs').existsSync(path.join(dashboardDist, 'index.html'));
228
+ if (hasDashboard) {
228
229
  await app.register(fastifyStatic, {
229
230
  root: dashboardDist,
230
231
  prefix: '/',
@@ -234,7 +235,6 @@ export async function buildApp(opts) {
234
235
  if (request.url.startsWith('/api/') || request.url.startsWith('/ws')) {
235
236
  return reply.code(404).send({ error: 'Not found' });
236
237
  }
237
- // Don't serve index.html for static asset requests (prevents MIME type errors)
238
238
  const staticExtPattern = /\.(js|css|map|png|jpg|jpeg|gif|svg|ico|woff2?|ttf|eot)$/i;
239
239
  if (staticExtPattern.test(request.url)) {
240
240
  return reply.code(404).send({ error: 'Not found' });
@@ -242,6 +242,16 @@ export async function buildApp(opts) {
242
242
  return reply.sendFile('index.html');
243
243
  });
244
244
  }
245
+ else {
246
+ // No dashboard build available — serve a simple status JSON on root
247
+ app.get('/', async () => ({
248
+ name: 'ExpxAgents Server',
249
+ status: 'running',
250
+ env: config.nodeEnv,
251
+ dashboard: 'not built — run "npm run build" in dashboard/',
252
+ api: '/api/health',
253
+ }));
254
+ }
245
255
  return app;
246
256
  }
247
257
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAC5C,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAe,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC1H,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAO/D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAsB;IACnD,MAAM,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC;IAEpD,MAAM,GAAG,GAAG,OAAO,CAAC;QAClB,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,OAAO,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;SAC1D;KACF,CAAC,CAAC;IAEH,UAAU;IACV,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC5B,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,WAAW;IACX,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAE3B,0BAA0B;IAC1B,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3B,EAAE,CAAC,IAAI,CAAC,wGAAwG,CAAC,CAAC;IAElH,gDAAgD;IAChD,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEvB,kBAAkB;IAClB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAE9C,SAAS;IACT,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACjC,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAClE,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACnC,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,GAAG,CAAC,QAAQ,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAE5C,2DAA2D;IAC3D,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,UAAkB,EAAE,EAAE,GAAE,CAAC,EAAE,CAAC;IAExD,kEAAkE;IAClE,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAE1C,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnF,MAAM,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE;QAC/B,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,OAAO;QACzD,aAAa;KACd,CAAC,CAAC;IAEH,YAAY;IACZ,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAEnF,cAAc;IACd,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;QAClC,EAAE;QACF,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAChC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1B,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,kDAAkD;IAClD,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC;IAEpE,uCAAuC;IACvC,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,SAAS,CAAC;QACjD,EAAE;QACF,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAChC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,cAAc,EAAE,CAAC,OAAO,EAAE,EAAE;YAC1B,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAE9E,4DAA4D;IAC5D,YAAY,CAAC,EAAE,GAAG,CAAC,SAAiB,EAAE,EAAE;QACtC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;QAC5C,EAAE;QACF,SAAS;QACT,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YAChC,SAAS,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,CAAC;IACH,gBAAgB,CAAC,KAAK,EAAE,CAAC;IACzB,MAAM,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE9D,eAAe;IACf,MAAM,SAAS,GAAG,eAAe,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC,SAAS;QACxB,WAAW,EAAE,MAAM,CAAC,cAAc;QAClC,eAAe,EAAE,MAAM,CAAC,kBAAkB;KAC3C,CAAC,CAAC;IAEH,IAAI,WAAW,GAA4B,IAAI,CAAC;IAChD,IAAI,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;QAC7B,WAAW,GAAG,IAAI,gBAAgB,CAAC;YACjC,EAAE;YACF,GAAG,EAAE,SAAS;YACd,SAAS,EAAE,MAAM,CAAC,YAAY;YAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;SACF,CAAC,CAAC;QACH,WAAW,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,MAAM,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAE1E,eAAe;IACf,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACjC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC3C,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAC1C,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC7C,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,kDAAkD;YAClD,MAAM,eAAe,GAAG,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,eAAe,EAAE,CAAC;gBACpB,2BAA2B,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC5F,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAChD,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnD,6CAA6C;YAC7C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACpE,IAAI,kBAAkB,EAAE,CAAC;gBACvB,sBAAsB,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1F,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACxF,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC7C,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACxC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE;gBAC1C,IAAI,EAAE,aAAa;gBACnB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACjD,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,KAAK,CAAC;IAEpB,8DAA8D;IAC9D,IAAI,gBAAgB,GAAgC,IAAI,CAAC;IACzD,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,gBAAgB,GAAG,sBAAsB,CAAC,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,mBAAmB,EAAE,EAAE,2BAA2B,CAAC,CAAC;IACnF,CAAC;IAED,mBAAmB;IACnB,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,IAAI,gBAAgB;YAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,WAAW;YAAE,WAAW,CAAC,IAAI,EAAE,CAAC;QACpC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,IAAI,MAAM,CAAC,OAAO,KAAK,YAAY,EAAE,CAAC;QACpC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAC7G,MAAM,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;YAChC,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,GAAG,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACrE,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,+EAA+E;YAC/E,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;YACpF,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -106,7 +106,7 @@ describe('JobRunner', () => {
106
106
  const activity = db.prepare("SELECT * FROM squad_activities WHERE squad_code = 'test-squad'").get();
107
107
  expect(activity.status).toBe('failed');
108
108
  });
109
- it('should prevent overlapping runs for same squad', async () => {
109
+ it('should queue overlapping runs for same squad', async () => {
110
110
  mockBridge._setSendHandler(() => { });
111
111
  runner.run({
112
112
  squadName: 'test-squad',
@@ -122,7 +122,7 @@ describe('JobRunner', () => {
122
122
  retryOnFailure: 0,
123
123
  attempt: 1,
124
124
  });
125
- expect(result).toBe('skipped');
125
+ expect(result).toBe('queued');
126
126
  });
127
127
  it('should create pipeline tasks on run and mark done on completion', async () => {
128
128
  const fs = await import('node:fs');
@@ -1 +1 @@
1
- {"version":3,"file":"job-runner.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/job-runner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job-runner.test.js","sourceRoot":"","sources":["../../../src/scheduler/__tests__/job-runner.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expxagents",
3
- "version": "0.18.1",
3
+ "version": "0.19.0",
4
4
  "description": "Multi-agent orchestration platform for AI squads",
5
5
  "author": "ExpxAgents",
6
6
  "license": "MIT",
@@ -36,9 +36,9 @@
36
36
  "test:watch": "vitest"
37
37
  },
38
38
  "dependencies": {
39
- "@expxagents/registry-client": "file:../packages/registry-client",
40
39
  "@anthropic-ai/sdk": "^0.80.0",
41
40
  "@aws-sdk/client-sesv2": "^3.800.0",
41
+ "@expxagents/registry-client": "^0.1.0",
42
42
  "@fastify/cookie": "^11.0.2",
43
43
  "@fastify/cors": "^10.0.2",
44
44
  "@fastify/multipart": "^9.0.3",