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.
- package/assets/core/solution-architect.agent.md +71 -0
- package/dist/cli/src/commands/doctor.js +10 -0
- package/dist/cli/src/commands/init.js +23 -0
- package/dist/cli/src/commands/sync-templates.d.ts +1 -0
- package/dist/cli/src/commands/sync-templates.js +125 -0
- package/dist/cli/src/index.js +5 -0
- package/dist/cli/src/pencil/__tests__/detect.test.d.ts +1 -0
- package/dist/cli/src/pencil/__tests__/detect.test.js +71 -0
- package/dist/cli/src/pencil/__tests__/property-mapper.test.d.ts +1 -0
- package/dist/cli/src/pencil/__tests__/property-mapper.test.js +120 -0
- package/dist/cli/src/pencil/__tests__/template-sync.test.d.ts +1 -0
- package/dist/cli/src/pencil/__tests__/template-sync.test.js +95 -0
- package/dist/cli/src/pencil/detect.d.ts +26 -0
- package/dist/cli/src/pencil/detect.js +54 -0
- package/dist/cli/src/pencil/property-mapper.d.ts +41 -0
- package/dist/cli/src/pencil/property-mapper.js +106 -0
- package/dist/cli/src/pencil/template-sync.d.ts +36 -0
- package/dist/cli/src/pencil/template-sync.js +75 -0
- package/dist/core/squad-loader.d.ts +6 -0
- package/dist/core/squad-loader.js +10 -0
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +14 -4
- package/dist/server/app.js.map +1 -1
- package/dist/server/scheduler/__tests__/job-runner.test.js +2 -2
- package/dist/server/scheduler/__tests__/job-runner.test.js.map +1 -1
- package/package.json +2 -2
|
@@ -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
|
+
}
|
package/dist/cli/src/index.js
CHANGED
|
@@ -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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
}
|
package/dist/server/app.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/server/app.js
CHANGED
|
@@ -222,9 +222,10 @@ export async function buildApp(opts) {
|
|
|
222
222
|
schedulerService.stop();
|
|
223
223
|
watcher.stop();
|
|
224
224
|
});
|
|
225
|
-
// Serve static files
|
|
226
|
-
|
|
227
|
-
|
|
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
|
package/dist/server/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
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
|
|
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('
|
|
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.
|
|
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",
|