popeye-cli 1.4.6 → 1.5.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/README.md +222 -63
- package/dist/adapters/gemini.d.ts +1 -0
- package/dist/adapters/gemini.d.ts.map +1 -1
- package/dist/adapters/gemini.js +9 -4
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/grok.d.ts +1 -0
- package/dist/adapters/grok.d.ts.map +1 -1
- package/dist/adapters/grok.js +9 -4
- package/dist/adapters/grok.js.map +1 -1
- package/dist/adapters/openai.d.ts +1 -1
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js +35 -9
- package/dist/adapters/openai.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +42 -0
- package/dist/cli/interactive.js.map +1 -1
- package/dist/generators/all.d.ts +4 -1
- package/dist/generators/all.d.ts.map +1 -1
- package/dist/generators/all.js +2 -1
- package/dist/generators/all.js.map +1 -1
- package/dist/generators/doc-parser.d.ts +49 -0
- package/dist/generators/doc-parser.d.ts.map +1 -0
- package/dist/generators/doc-parser.js +336 -0
- package/dist/generators/doc-parser.js.map +1 -0
- package/dist/generators/templates/index.d.ts +4 -0
- package/dist/generators/templates/index.d.ts.map +1 -1
- package/dist/generators/templates/index.js +4 -0
- package/dist/generators/templates/index.js.map +1 -1
- package/dist/generators/templates/website-components.d.ts +33 -0
- package/dist/generators/templates/website-components.d.ts.map +1 -0
- package/dist/generators/templates/website-components.js +278 -0
- package/dist/generators/templates/website-components.js.map +1 -0
- package/dist/generators/templates/website-config.d.ts +41 -0
- package/dist/generators/templates/website-config.d.ts.map +1 -0
- package/dist/generators/templates/website-config.js +283 -0
- package/dist/generators/templates/website-config.js.map +1 -0
- package/dist/generators/templates/website-conversion.d.ts +27 -0
- package/dist/generators/templates/website-conversion.d.ts.map +1 -0
- package/dist/generators/templates/website-conversion.js +326 -0
- package/dist/generators/templates/website-conversion.js.map +1 -0
- package/dist/generators/templates/website-seo.d.ts +76 -0
- package/dist/generators/templates/website-seo.d.ts.map +1 -0
- package/dist/generators/templates/website-seo.js +326 -0
- package/dist/generators/templates/website-seo.js.map +1 -0
- package/dist/generators/templates/website.d.ts +14 -47
- package/dist/generators/templates/website.d.ts.map +1 -1
- package/dist/generators/templates/website.js +412 -499
- package/dist/generators/templates/website.js.map +1 -1
- package/dist/generators/website-context.d.ts +83 -0
- package/dist/generators/website-context.d.ts.map +1 -0
- package/dist/generators/website-context.js +190 -0
- package/dist/generators/website-context.js.map +1 -0
- package/dist/generators/website.d.ts +3 -0
- package/dist/generators/website.d.ts.map +1 -1
- package/dist/generators/website.js +73 -10
- package/dist/generators/website.js.map +1 -1
- package/dist/state/index.d.ts +27 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +30 -0
- package/dist/state/index.js.map +1 -1
- package/dist/types/consensus.d.ts +3 -0
- package/dist/types/consensus.d.ts.map +1 -1
- package/dist/types/consensus.js +1 -0
- package/dist/types/consensus.js.map +1 -1
- package/dist/types/website-strategy.d.ts +263 -0
- package/dist/types/website-strategy.d.ts.map +1 -0
- package/dist/types/website-strategy.js +105 -0
- package/dist/types/website-strategy.js.map +1 -0
- package/dist/types/workflow.d.ts +15 -0
- package/dist/types/workflow.d.ts.map +1 -1
- package/dist/types/workflow.js +6 -0
- package/dist/types/workflow.js.map +1 -1
- package/dist/workflow/auto-fix.d.ts +7 -1
- package/dist/workflow/auto-fix.d.ts.map +1 -1
- package/dist/workflow/auto-fix.js +55 -3
- package/dist/workflow/auto-fix.js.map +1 -1
- package/dist/workflow/consensus.d.ts.map +1 -1
- package/dist/workflow/consensus.js +2 -0
- package/dist/workflow/consensus.js.map +1 -1
- package/dist/workflow/execution-mode.d.ts.map +1 -1
- package/dist/workflow/execution-mode.js +18 -0
- package/dist/workflow/execution-mode.js.map +1 -1
- package/dist/workflow/index.d.ts +3 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +25 -0
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/overview.d.ts +89 -0
- package/dist/workflow/overview.d.ts.map +1 -0
- package/dist/workflow/overview.js +354 -0
- package/dist/workflow/overview.js.map +1 -0
- package/dist/workflow/plan-mode.d.ts +2 -1
- package/dist/workflow/plan-mode.d.ts.map +1 -1
- package/dist/workflow/plan-mode.js +83 -5
- package/dist/workflow/plan-mode.js.map +1 -1
- package/dist/workflow/website-strategy.d.ts +70 -0
- package/dist/workflow/website-strategy.d.ts.map +1 -0
- package/dist/workflow/website-strategy.js +238 -0
- package/dist/workflow/website-strategy.js.map +1 -0
- package/dist/workflow/website-updater.d.ts +17 -0
- package/dist/workflow/website-updater.d.ts.map +1 -0
- package/dist/workflow/website-updater.js +105 -0
- package/dist/workflow/website-updater.js.map +1 -0
- package/dist/workflow/workflow-logger.d.ts +1 -1
- package/dist/workflow/workflow-logger.d.ts.map +1 -1
- package/dist/workflow/workflow-logger.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/gemini.ts +10 -4
- package/src/adapters/grok.ts +10 -4
- package/src/adapters/openai.ts +38 -6
- package/src/cli/interactive.ts +47 -0
- package/src/generators/all.ts +6 -1
- package/src/generators/doc-parser.ts +372 -0
- package/src/generators/templates/index.ts +4 -0
- package/src/generators/templates/website-components.ts +305 -0
- package/src/generators/templates/website-config.ts +291 -0
- package/src/generators/templates/website-conversion.ts +341 -0
- package/src/generators/templates/website-seo.ts +370 -0
- package/src/generators/templates/website.ts +451 -505
- package/src/generators/website-context.ts +265 -0
- package/src/generators/website.ts +109 -19
- package/src/state/index.ts +42 -0
- package/src/types/consensus.ts +3 -0
- package/src/types/website-strategy.ts +243 -0
- package/src/types/workflow.ts +15 -0
- package/src/workflow/auto-fix.ts +57 -3
- package/src/workflow/consensus.ts +2 -0
- package/src/workflow/execution-mode.ts +21 -0
- package/src/workflow/index.ts +25 -0
- package/src/workflow/overview.ts +469 -0
- package/src/workflow/plan-mode.ts +115 -4
- package/src/workflow/website-strategy.ts +305 -0
- package/src/workflow/website-updater.ts +131 -0
- package/src/workflow/workflow-logger.ts +1 -0
- package/tests/adapters/persona-switching.test.ts +63 -0
- package/tests/generators/website-components.test.ts +159 -0
- package/tests/generators/website-context.test.ts +222 -0
- package/tests/generators/website-seo-quality.test.ts +246 -0
- package/tests/workflow/auto-fix-enhanced.test.ts +61 -1
- package/tests/workflow/overview.test.ts +392 -0
- package/tests/workflow/website-strategy.test.ts +191 -0
package/README.md
CHANGED
|
@@ -17,59 +17,85 @@ Popeye is an autonomous software development agent that takes a simple project i
|
|
|
17
17
|
|
|
18
18
|
1. **Understands** your idea and expands it into a detailed specification
|
|
19
19
|
2. **Designs** the UI automatically based on the project context
|
|
20
|
-
3. **
|
|
21
|
-
4. **
|
|
22
|
-
5. **
|
|
23
|
-
6. **
|
|
24
|
-
7. **
|
|
25
|
-
8. **
|
|
20
|
+
3. **Strategizes** (website projects) by generating a marketing strategy with ICP, positioning, SEO, and conversion goals
|
|
21
|
+
4. **Plans** a complete development roadmap with milestones and tasks
|
|
22
|
+
5. **Validates** the plan through AI consensus (multiple AI systems must agree)
|
|
23
|
+
6. **Implements** each task autonomously, writing production-quality code
|
|
24
|
+
7. **Styles** the application with a professional design system and component library
|
|
25
|
+
8. **Tests** the implementation and fixes issues automatically
|
|
26
|
+
9. **Delivers** a complete, working project with polished UI
|
|
26
27
|
|
|
27
28
|
## How It Works
|
|
28
29
|
|
|
29
30
|
```
|
|
30
|
-
|
|
31
|
-
│
|
|
32
|
-
|
|
33
|
-
│
|
|
34
|
-
│
|
|
35
|
-
│
|
|
36
|
-
│
|
|
37
|
-
│
|
|
38
|
-
│
|
|
39
|
-
│
|
|
40
|
-
│
|
|
41
|
-
│
|
|
42
|
-
│
|
|
43
|
-
│
|
|
44
|
-
│
|
|
45
|
-
│
|
|
46
|
-
│
|
|
47
|
-
│
|
|
48
|
-
│
|
|
49
|
-
│
|
|
50
|
-
│
|
|
51
|
-
│
|
|
52
|
-
│
|
|
53
|
-
│
|
|
54
|
-
│
|
|
55
|
-
│
|
|
56
|
-
│
|
|
57
|
-
│
|
|
58
|
-
│
|
|
59
|
-
│
|
|
60
|
-
│
|
|
61
|
-
│
|
|
62
|
-
│
|
|
63
|
-
│
|
|
64
|
-
│
|
|
65
|
-
│
|
|
66
|
-
│
|
|
67
|
-
│
|
|
68
|
-
│
|
|
69
|
-
│
|
|
70
|
-
|
|
31
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
32
|
+
│ POPEYE WORKFLOW │
|
|
33
|
+
├──────────────────────────────────────────────────────────────────────────┤
|
|
34
|
+
│ │
|
|
35
|
+
│ [Your Idea] ──► [Specification] ──► [UI Design] ──► [Dev Plan] │
|
|
36
|
+
│ ▲ │ │ │
|
|
37
|
+
│ │ │ ▼ │
|
|
38
|
+
│ OpenAI expands Auto-design Claude creates │
|
|
39
|
+
│ theme/style │
|
|
40
|
+
│ │ │
|
|
41
|
+
│ ▼ │
|
|
42
|
+
│ ┌────────────────────────────────────────────┐ │
|
|
43
|
+
│ │ WEBSITE STRATEGY (website/all projects) │ │
|
|
44
|
+
│ │ - AI generates WebsiteStrategyDocument │ │
|
|
45
|
+
│ │ - ICP, positioning, messaging, SEO │ │
|
|
46
|
+
│ │ - Site architecture, conversion goals │ │
|
|
47
|
+
│ │ - Cached via SHA-256 hash │ │
|
|
48
|
+
│ └────────────────────────────────────────────┘ │
|
|
49
|
+
│ │ │
|
|
50
|
+
│ ▼ │
|
|
51
|
+
│ ┌────────────────────────────────────────────┐ │
|
|
52
|
+
│ │ CONSENSUS LOOP (95%+) │ │
|
|
53
|
+
│ │ ┌─────────┐ ┌─────────┐ │ │
|
|
54
|
+
│ │ │ OpenAI │◄───►│ Claude │ │ │
|
|
55
|
+
│ │ │ Reviews │ │ Revises │ │ │
|
|
56
|
+
│ │ └─────────┘ └─────────┘ │ │
|
|
57
|
+
│ │ (Marketing persona for website projects) │ │
|
|
58
|
+
│ └────────────────────────────────────────────┘ │
|
|
59
|
+
│ │ │
|
|
60
|
+
│ ▼ │
|
|
61
|
+
│ ┌────────────────────────────────────────────┐ │
|
|
62
|
+
│ │ EXECUTION MODE │ │
|
|
63
|
+
│ │ For each task: │ │
|
|
64
|
+
│ │ 1. Claude implements │ │
|
|
65
|
+
│ │ 2. Tests run automatically │ │
|
|
66
|
+
│ │ 3. Fix issues (up to 3 retries) │ │
|
|
67
|
+
│ │ 4. Mark complete │ │
|
|
68
|
+
│ └────────────────────────────────────────────┘ │
|
|
69
|
+
│ │ │
|
|
70
|
+
│ ▼ │
|
|
71
|
+
│ ┌────────────────────────────────────────────┐ │
|
|
72
|
+
│ │ UI SETUP & STYLING │ │
|
|
73
|
+
│ │ - Install Tailwind CSS │ │
|
|
74
|
+
│ │ - Configure shadcn/ui components │ │
|
|
75
|
+
│ │ - Apply selected theme │ │
|
|
76
|
+
│ └────────────────────────────────────────────┘ │
|
|
77
|
+
│ │ │
|
|
78
|
+
│ ▼ │
|
|
79
|
+
│ [Complete Project with Polished UI] │
|
|
80
|
+
│ │
|
|
81
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
71
82
|
```
|
|
72
83
|
|
|
84
|
+
### Strategy-First Website Generation
|
|
85
|
+
|
|
86
|
+
For website and ALL projects, Popeye now includes a **strategy-first pipeline** that generates a complete marketing strategy document before any code is written:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
[Product Docs] --> [AI Strategy Generation] --> [WebsiteStrategyDocument]
|
|
90
|
+
|
|
|
91
|
+
+-----------+-----------+-----------+
|
|
92
|
+
| | | |
|
|
93
|
+
Landing Pricing SEO/Meta Lead Capture
|
|
94
|
+
Page Page Components System
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The strategy document drives all downstream code generation, ensuring consistent messaging, SEO keywords, navigation structure, and conversion goals across every page.
|
|
98
|
+
|
|
73
99
|
### Multi-AI Consensus System
|
|
74
100
|
|
|
75
101
|
Popeye uses multiple AI systems that must agree before implementation begins:
|
|
@@ -330,7 +356,11 @@ Popeye provides real-time feedback:
|
|
|
330
356
|
[UI Design] UI Intent: modern style for consumer audience
|
|
331
357
|
[UI Design] Selected theme: Modern Blue
|
|
332
358
|
[UI Design] UI design complete: Modern Blue theme with 12 components
|
|
333
|
-
[
|
|
359
|
+
[Website Strategy] Analyzing product context for strategy...
|
|
360
|
+
[Website Strategy] Generating website strategy via AI...
|
|
361
|
+
[Website Strategy] Validating strategy schema...
|
|
362
|
+
[Website Strategy] Strategy cached to .popeye/website-strategy.json
|
|
363
|
+
[Consensus] Review round 1: 78% agreement (Marketing Strategist persona)
|
|
334
364
|
[Consensus] Addressing concerns...
|
|
335
365
|
[Consensus] Review round 2: 92% agreement
|
|
336
366
|
[Consensus] Review round 3: 97% agreement - APPROVED
|
|
@@ -346,6 +376,8 @@ Popeye provides real-time feedback:
|
|
|
346
376
|
[Complete] Project built successfully!
|
|
347
377
|
```
|
|
348
378
|
|
|
379
|
+
**Note:** The `[Website Strategy]` steps appear only for `website` and `all` project types. The marketing strategist persona for consensus review is also specific to website projects.
|
|
380
|
+
|
|
349
381
|
## Features
|
|
350
382
|
|
|
351
383
|
### Core Features
|
|
@@ -386,6 +418,69 @@ Popeye automatically handles all UI/UX decisions, eliminating the need for manua
|
|
|
386
418
|
|
|
387
419
|
The UI design specification is saved to `.popeye/ui-spec.json` and is used to guide all code generation, ensuring consistent styling throughout the project.
|
|
388
420
|
|
|
421
|
+
### Production Marketing Website Generation
|
|
422
|
+
|
|
423
|
+
Popeye generates production-quality marketing websites through a strategy-first approach. Instead of generating generic templates, the system first creates a comprehensive marketing strategy document, then uses it to drive every aspect of the generated website.
|
|
424
|
+
|
|
425
|
+
#### Website Strategy Document
|
|
426
|
+
|
|
427
|
+
When you create a `website` or `all` project, Popeye generates a `WebsiteStrategyDocument` containing:
|
|
428
|
+
|
|
429
|
+
| Section | Contents |
|
|
430
|
+
|---------|----------|
|
|
431
|
+
| **ICP (Ideal Customer Profile)** | Primary persona, pain points, goals, objections |
|
|
432
|
+
| **Positioning** | Category, differentiators, value proposition, proof points |
|
|
433
|
+
| **Messaging** | Headline, subheadline, elevator pitch, long description |
|
|
434
|
+
| **SEO Strategy** | Primary/secondary/long-tail keywords, title templates, meta descriptions |
|
|
435
|
+
| **Site Architecture** | Pages with types, sections, SEO keywords, conversion goals, navigation, footer |
|
|
436
|
+
| **Conversion Strategy** | Primary/secondary CTAs, trust signals, social proof, lead capture provider |
|
|
437
|
+
| **Competitive Context** | Category, competitors (user-supplied only), differentiators |
|
|
438
|
+
|
|
439
|
+
The strategy is cached in `.popeye/website-strategy.json` with a SHA-256 hash of the inputs. It is only regenerated when inputs change (product docs, specification, or brand assets).
|
|
440
|
+
|
|
441
|
+
#### Generated Website Components
|
|
442
|
+
|
|
443
|
+
The strategy drives generation of the following production components:
|
|
444
|
+
|
|
445
|
+
- **Header** (`Header.tsx`): Logo with image/text fallback, strategy-driven navigation, primary CTA button, mobile hamburger menu with `aria-label` and `aria-expanded`
|
|
446
|
+
- **Footer** (`Footer.tsx`): Multi-column link sections from strategy, brand column with tagline, copyright
|
|
447
|
+
- **Navigation** (`nav.ts`): Exportable navigation config supporting nested items
|
|
448
|
+
- **Landing Page**: Strategy-driven hero headline, trust signals, social proof sections, dual CTAs
|
|
449
|
+
- **Pricing Page**: Strategy-aware with enterprise CTA variant
|
|
450
|
+
- **JSON-LD** (`JsonLd.tsx`): Reusable structured data component (Organization + SoftwareApplication schemas)
|
|
451
|
+
- **Sitemap** (`sitemap.ts`): Strategy-aware with per-page-type priority and change frequency
|
|
452
|
+
- **Robots.txt** (`robots.ts`): Standard configuration with sitemap reference
|
|
453
|
+
- **404 Page** (`not-found.tsx`): Branded error page with back-to-home CTA
|
|
454
|
+
- **500 Page** (`error.tsx`): Client error boundary with retry button
|
|
455
|
+
- **Web Manifest** (`manifest.webmanifest`): PWA manifest with brand colors and icons
|
|
456
|
+
- **Meta Helper** (`meta.ts`): Utility for building page-level metadata with OpenGraph and Twitter cards
|
|
457
|
+
- **Contact Form** (`ContactForm.tsx`): Lead capture form with loading/success/error states
|
|
458
|
+
- **Lead Capture API** (`api/lead/route.ts`): Server-side handler supporting webhook, Resend, or Postmark providers
|
|
459
|
+
|
|
460
|
+
#### Lead Capture System
|
|
461
|
+
|
|
462
|
+
The lead capture system supports three provider configurations:
|
|
463
|
+
|
|
464
|
+
| Provider | Environment Variables | Description |
|
|
465
|
+
|----------|----------------------|-------------|
|
|
466
|
+
| **webhook** | `LEAD_WEBHOOK_URL` | Sends lead data to any HTTP endpoint |
|
|
467
|
+
| **resend** | `RESEND_API_KEY`, `RESEND_FROM_EMAIL`, `LEAD_NOTIFICATION_EMAIL` | Sends email notifications via Resend |
|
|
468
|
+
| **postmark** | `POSTMARK_API_KEY`, `POSTMARK_FROM_EMAIL`, `LEAD_NOTIFICATION_EMAIL` | Sends email notifications via Postmark |
|
|
469
|
+
|
|
470
|
+
The provider is selected by the AI strategy based on project context, and the corresponding `.env.example` entries are generated automatically.
|
|
471
|
+
|
|
472
|
+
#### Brand Assets Contract
|
|
473
|
+
|
|
474
|
+
Popeye automatically discovers brand assets (logos, favicons, color schemes) from your project documentation directory and maps them to deterministic output paths:
|
|
475
|
+
|
|
476
|
+
- Logo files are copied to `public/brand/logo.{ext}`
|
|
477
|
+
- Primary brand color is extracted from design docs or CSS variables
|
|
478
|
+
- The `BrandAssetsContract` interface ensures consistent logo placement across Header, manifest, and metadata
|
|
479
|
+
|
|
480
|
+
#### Reviewer Persona Switching
|
|
481
|
+
|
|
482
|
+
For website projects, the consensus reviewer automatically switches to a **Senior Product Marketing Strategist** persona instead of the default technical reviewer. This ensures the plan is evaluated for marketing effectiveness, conversion optimization, and SEO quality rather than purely technical criteria. The `reviewerPersona` field in `ConsensusConfig` controls this behavior and is threaded through all adapter implementations (OpenAI, Gemini, Grok).
|
|
483
|
+
|
|
389
484
|
### Fullstack Project Support
|
|
390
485
|
|
|
391
486
|
Popeye supports generating complete fullstack applications with coordinated frontend and backend development:
|
|
@@ -987,18 +1082,40 @@ my-project/
|
|
|
987
1082
|
├── apps/
|
|
988
1083
|
│ ├── frontend/ # React application
|
|
989
1084
|
│ ├── backend/ # FastAPI backend
|
|
990
|
-
│ └── website/ # Marketing/landing site
|
|
1085
|
+
│ └── website/ # Marketing/landing site (Next.js)
|
|
991
1086
|
│ ├── src/
|
|
992
|
-
│ │ ├──
|
|
1087
|
+
│ │ ├── app/
|
|
1088
|
+
│ │ │ ├── layout.tsx # Root layout with metadataBase
|
|
1089
|
+
│ │ │ ├── page.tsx # Strategy-driven landing page
|
|
1090
|
+
│ │ │ ├── pricing/page.tsx # Pricing with enterprise CTA
|
|
1091
|
+
│ │ │ ├── not-found.tsx # Branded 404 page
|
|
1092
|
+
│ │ │ ├── error.tsx # Error boundary (500)
|
|
1093
|
+
│ │ │ ├── sitemap.ts # Strategy-aware sitemap
|
|
1094
|
+
│ │ │ ├── robots.ts # Robots.txt config
|
|
1095
|
+
│ │ │ └── api/
|
|
1096
|
+
│ │ │ └── lead/route.ts # Lead capture endpoint
|
|
993
1097
|
│ │ ├── components/
|
|
994
|
-
│ │
|
|
1098
|
+
│ │ │ ├── Header.tsx # Logo/nav/CTA/mobile menu
|
|
1099
|
+
│ │ │ ├── Footer.tsx # Multi-column footer
|
|
1100
|
+
│ │ │ ├── JsonLd.tsx # Structured data component
|
|
1101
|
+
│ │ │ └── ContactForm.tsx # Lead capture form
|
|
1102
|
+
│ │ └── lib/
|
|
1103
|
+
│ │ ├── nav.ts # Navigation config
|
|
1104
|
+
│ │ └── meta.ts # Metadata helper utility
|
|
995
1105
|
│ ├── public/
|
|
1106
|
+
│ │ ├── brand/ # Discovered brand assets
|
|
1107
|
+
│ │ │ └── logo.{ext}
|
|
1108
|
+
│ │ └── manifest.webmanifest # PWA manifest
|
|
996
1109
|
│ ├── package.json
|
|
997
|
-
│ └──
|
|
1110
|
+
│ └── next.config.js
|
|
998
1111
|
│
|
|
999
1112
|
├── docs/
|
|
1000
1113
|
│ └── plans/ # Includes website/ directories
|
|
1001
1114
|
│ └── ...
|
|
1115
|
+
├── .popeye/
|
|
1116
|
+
│ ├── state.json
|
|
1117
|
+
│ ├── ui-spec.json
|
|
1118
|
+
│ └── website-strategy.json # Cached strategy (SHA-256 hash)
|
|
1002
1119
|
└── ...
|
|
1003
1120
|
```
|
|
1004
1121
|
|
|
@@ -1055,6 +1172,31 @@ The UI specification is stored in `.popeye/ui-spec.json` and contains:
|
|
|
1055
1172
|
}
|
|
1056
1173
|
```
|
|
1057
1174
|
|
|
1175
|
+
### Website Strategy Cache
|
|
1176
|
+
|
|
1177
|
+
For website and ALL projects, the marketing strategy is stored in `.popeye/website-strategy.json`:
|
|
1178
|
+
|
|
1179
|
+
```json
|
|
1180
|
+
{
|
|
1181
|
+
"strategy": {
|
|
1182
|
+
"icp": { "primaryPersona": "...", "painPoints": [...] },
|
|
1183
|
+
"positioning": { "valueProposition": "..." },
|
|
1184
|
+
"messaging": { "headline": "...", "subheadline": "..." },
|
|
1185
|
+
"seoStrategy": { "primaryKeywords": [...], "titleTemplates": {...} },
|
|
1186
|
+
"siteArchitecture": { "pages": [...], "navigation": [...] },
|
|
1187
|
+
"conversionStrategy": { "primaryCta": {...}, "leadCapture": "webhook" },
|
|
1188
|
+
"competitiveContext": { "differentiators": [...] }
|
|
1189
|
+
},
|
|
1190
|
+
"metadata": {
|
|
1191
|
+
"inputHash": "sha256-of-product-context-and-brand-assets",
|
|
1192
|
+
"generatedAt": "2026-02-13T...",
|
|
1193
|
+
"version": 1
|
|
1194
|
+
}
|
|
1195
|
+
}
|
|
1196
|
+
```
|
|
1197
|
+
|
|
1198
|
+
The `inputHash` enables automatic staleness detection -- when product docs or brand assets change, the strategy is regenerated.
|
|
1199
|
+
|
|
1058
1200
|
### Design Context in Code Generation
|
|
1059
1201
|
|
|
1060
1202
|
The UI specification is automatically injected into Claude's context when generating code, ensuring consistent styling. The design system prompt includes:
|
|
@@ -1142,13 +1284,13 @@ src/
|
|
|
1142
1284
|
├── cli/ # CLI interface
|
|
1143
1285
|
│ ├── index.ts # Command setup
|
|
1144
1286
|
│ ├── output.ts # Output formatting
|
|
1145
|
-
│ ├── interactive.ts # REPL mode (with /model, /upgrade commands)
|
|
1287
|
+
│ ├── interactive.ts # REPL mode (with /model, /upgrade, /overview commands)
|
|
1146
1288
|
│ └── commands/ # Individual commands
|
|
1147
1289
|
├── adapters/ # AI service adapters
|
|
1148
1290
|
│ ├── claude.ts # Claude Agent SDK (with rate limiting)
|
|
1149
|
-
│ ├── openai.ts # OpenAI API (default reviewer)
|
|
1150
|
-
│ ├── gemini.ts # Google Gemini API (reviewer/arbitrator)
|
|
1151
|
-
│ └── grok.ts # xAI Grok API (reviewer/arbitrator)
|
|
1291
|
+
│ ├── openai.ts # OpenAI API (default reviewer, marketing persona for websites)
|
|
1292
|
+
│ ├── gemini.ts # Google Gemini API (reviewer/arbitrator, persona support)
|
|
1293
|
+
│ └── grok.ts # xAI Grok API (reviewer/arbitrator, persona support)
|
|
1152
1294
|
├── auth/ # Authentication
|
|
1153
1295
|
│ ├── keychain.ts # Credential storage
|
|
1154
1296
|
│ └── server.ts # OAuth callback server
|
|
@@ -1160,9 +1302,20 @@ src/
|
|
|
1160
1302
|
│ ├── python.ts # Python scaffolding
|
|
1161
1303
|
│ ├── typescript.ts # TypeScript scaffolding
|
|
1162
1304
|
│ ├── fullstack.ts # Fullstack scaffolding (React + FastAPI)
|
|
1163
|
-
│ ├── website.ts # Website scaffolding (Next.js)
|
|
1305
|
+
│ ├── website.ts # Website scaffolding (Next.js, strategy-aware)
|
|
1306
|
+
│ ├── website-context.ts # Doc discovery, brand assets, content context builder
|
|
1307
|
+
│ ├── doc-parser.ts # Product doc parsing (name, tagline, features, pricing, color)
|
|
1164
1308
|
│ ├── all.ts # ALL project scaffolding (exports 5 generator functions)
|
|
1165
1309
|
│ └── templates/ # File templates
|
|
1310
|
+
│ ├── python.ts
|
|
1311
|
+
│ ├── typescript.ts
|
|
1312
|
+
│ ├── fullstack.ts
|
|
1313
|
+
│ ├── website.ts # Strategy-aware landing + pricing pages
|
|
1314
|
+
│ ├── website-config.ts # Non-content config templates
|
|
1315
|
+
│ ├── website-components.ts # Header, Footer, Navigation components
|
|
1316
|
+
│ ├── website-seo.ts # JSON-LD, sitemap, robots, 404, 500, manifest, meta
|
|
1317
|
+
│ ├── website-conversion.ts # Lead capture route, contact form, env examples
|
|
1318
|
+
│ └── index.ts # Template module exports
|
|
1166
1319
|
├── state/ # State management
|
|
1167
1320
|
│ ├── persistence.ts # File operations
|
|
1168
1321
|
│ └── index.ts # State API + verification
|
|
@@ -1172,24 +1325,30 @@ src/
|
|
|
1172
1325
|
│ ├── index.ts # Transactional orchestrator with backup/rollback
|
|
1173
1326
|
│ └── context.ts # Builds rich context for post-upgrade planning
|
|
1174
1327
|
├── workflow/ # Workflow engine
|
|
1175
|
-
│ ├── consensus.ts # Consensus loop
|
|
1176
|
-
│ ├── plan-mode.ts # Planning phase (monorepo-aware
|
|
1328
|
+
│ ├── consensus.ts # Consensus loop (reviewerPersona threading)
|
|
1329
|
+
│ ├── plan-mode.ts # Planning phase (strategy generation, monorepo-aware)
|
|
1177
1330
|
│ ├── execution-mode.ts # Execution phase
|
|
1178
1331
|
│ ├── milestone-workflow.ts
|
|
1179
1332
|
│ ├── task-workflow.ts # Uses isWorkspace() for multi-app checks
|
|
1180
1333
|
│ ├── test-runner.ts # Test execution
|
|
1181
|
-
│ ├── workflow-logger.ts # Persistent logging
|
|
1334
|
+
│ ├── workflow-logger.ts # Persistent logging (website-strategy stage)
|
|
1182
1335
|
│ ├── plan-storage.ts # Consensus docs storage (per-app feedback)
|
|
1183
1336
|
│ ├── workspace-manager.ts # Multi-app workspace management
|
|
1337
|
+
│ ├── website-strategy.ts # AI strategy generation, caching, staleness detection
|
|
1338
|
+
│ ├── website-updater.ts # Post-plan content refresh with strategy context
|
|
1339
|
+
│ ├── overview.ts # Project overview with progress and analysis
|
|
1184
1340
|
│ ├── ui-designer.ts # AI-powered UI design generation
|
|
1185
1341
|
│ ├── ui-setup.ts # Tailwind/shadcn setup automation
|
|
1186
1342
|
│ ├── ui-verification.ts # UI setup verification
|
|
1187
1343
|
│ ├── project-verification.ts # Project quality checks
|
|
1188
|
-
│
|
|
1344
|
+
│ ├── project-structure.ts # Project directory scanner
|
|
1345
|
+
│ ├── remediation.ts # Consensus-driven failure recovery
|
|
1346
|
+
│ └── auto-fix.ts # Automatic error fixing (enhanced ENOENT tracking)
|
|
1189
1347
|
└── types/ # TypeScript types
|
|
1190
1348
|
├── project.ts # OutputLanguage, isWorkspace(), flexible OpenAIModelSchema
|
|
1191
|
-
├── workflow.ts # ProjectStateSchema (
|
|
1192
|
-
|
|
1349
|
+
├── workflow.ts # ProjectStateSchema (websiteStrategy field)
|
|
1350
|
+
├── consensus.ts # GeminiModelSchema, GrokModelSchema, reviewerPersona
|
|
1351
|
+
└── website-strategy.ts # WebsiteStrategyDocument, BrandAssetsContract, DesignTokens
|
|
1193
1352
|
```
|
|
1194
1353
|
|
|
1195
1354
|
## Development
|
|
@@ -32,6 +32,7 @@ export declare function requestConsensus(plan: string, context: string, config?:
|
|
|
32
32
|
model?: GeminiModel;
|
|
33
33
|
temperature?: number;
|
|
34
34
|
maxTokens?: number;
|
|
35
|
+
reviewerPersona?: string;
|
|
35
36
|
}): Promise<ConsensusResult>;
|
|
36
37
|
/**
|
|
37
38
|
* Request arbitration from Gemini when consensus is stuck
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGhF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,qBAAqB;WACH,WAAW;;;CAGzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAQhE;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGhF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,qBAAqB;WACH,WAAW;;;CAGzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAQhE;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GACvG,OAAO,CAAC,eAAe,CAAC,CA4B1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AAkHD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsCxE;AAgGD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CASvD"}
|
package/dist/adapters/gemini.js
CHANGED
|
@@ -31,10 +31,10 @@ export async function createClient() {
|
|
|
31
31
|
* @returns Consensus result
|
|
32
32
|
*/
|
|
33
33
|
export async function requestConsensus(plan, context, config = {}) {
|
|
34
|
-
const { model = DEFAULT_GEMINI_CONFIG.model, temperature = DEFAULT_GEMINI_CONFIG.temperature, maxTokens = DEFAULT_GEMINI_CONFIG.maxTokens, } = config;
|
|
34
|
+
const { model = DEFAULT_GEMINI_CONFIG.model, temperature = DEFAULT_GEMINI_CONFIG.temperature, maxTokens = DEFAULT_GEMINI_CONFIG.maxTokens, reviewerPersona, } = config;
|
|
35
35
|
const client = await createClient();
|
|
36
36
|
const generativeModel = client.getGenerativeModel({ model });
|
|
37
|
-
const prompt = buildConsensusPrompt(plan, context);
|
|
37
|
+
const prompt = buildConsensusPrompt(plan, context, reviewerPersona);
|
|
38
38
|
try {
|
|
39
39
|
const result = await generativeModel.generateContent({
|
|
40
40
|
contents: [{ role: 'user', parts: [{ text: prompt }] }],
|
|
@@ -83,9 +83,14 @@ export async function requestArbitration(plan, reviewerFeedback, claudeFeedback,
|
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
85
|
* Build the consensus review prompt
|
|
86
|
+
*
|
|
87
|
+
* @param plan - The plan to review
|
|
88
|
+
* @param context - Project context
|
|
89
|
+
* @param persona - Optional custom reviewer persona
|
|
86
90
|
*/
|
|
87
|
-
function buildConsensusPrompt(plan, context) {
|
|
88
|
-
|
|
91
|
+
function buildConsensusPrompt(plan, context, persona) {
|
|
92
|
+
const reviewerRole = persona || 'a senior software architect';
|
|
93
|
+
return `You are ${reviewerRole} reviewing a development plan.
|
|
89
94
|
Analyze the following plan for completeness, correctness, and feasibility.
|
|
90
95
|
|
|
91
96
|
PROJECT CONTEXT:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,KAAK,EAAE,kBAAiC;IACxC,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"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"}
|
package/dist/adapters/grok.d.ts
CHANGED
|
@@ -31,6 +31,7 @@ export declare function requestConsensus(plan: string, context: string, config?:
|
|
|
31
31
|
model?: string;
|
|
32
32
|
temperature?: number;
|
|
33
33
|
maxTokens?: number;
|
|
34
|
+
reviewerPersona?: string;
|
|
34
35
|
}): Promise<ConsensusResult>;
|
|
35
36
|
/**
|
|
36
37
|
* Request arbitration from Grok when consensus is stuck
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/adapters/grok.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAWpD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,
|
|
1
|
+
{"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/adapters/grok.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAWpD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAClG,OAAO,CAAC,eAAe,CAAC,CA6B1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AAkHD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsCxE;AAuGD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAYvD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAa7D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+BxF"}
|
package/dist/adapters/grok.js
CHANGED
|
@@ -37,9 +37,9 @@ export async function createClient() {
|
|
|
37
37
|
* @returns Consensus result
|
|
38
38
|
*/
|
|
39
39
|
export async function requestConsensus(plan, context, config = {}) {
|
|
40
|
-
const { model = DEFAULT_GROK_CONFIG.model, temperature = DEFAULT_GROK_CONFIG.temperature, maxTokens = DEFAULT_GROK_CONFIG.maxTokens, } = config;
|
|
40
|
+
const { model = DEFAULT_GROK_CONFIG.model, temperature = DEFAULT_GROK_CONFIG.temperature, maxTokens = DEFAULT_GROK_CONFIG.maxTokens, reviewerPersona, } = config;
|
|
41
41
|
const client = await createClient();
|
|
42
|
-
const prompt = buildConsensusPrompt(plan, context);
|
|
42
|
+
const prompt = buildConsensusPrompt(plan, context, reviewerPersona);
|
|
43
43
|
try {
|
|
44
44
|
const completion = await client.chat.completions.create({
|
|
45
45
|
model,
|
|
@@ -89,9 +89,14 @@ export async function requestArbitration(plan, reviewerFeedback, claudeFeedback,
|
|
|
89
89
|
}
|
|
90
90
|
/**
|
|
91
91
|
* Build the consensus review prompt
|
|
92
|
+
*
|
|
93
|
+
* @param plan - The plan to review
|
|
94
|
+
* @param context - Project context
|
|
95
|
+
* @param persona - Optional custom reviewer persona
|
|
92
96
|
*/
|
|
93
|
-
function buildConsensusPrompt(plan, context) {
|
|
94
|
-
|
|
97
|
+
function buildConsensusPrompt(plan, context, persona) {
|
|
98
|
+
const reviewerRole = persona || 'a senior software architect';
|
|
99
|
+
return `You are ${reviewerRole} reviewing a development plan.
|
|
95
100
|
Analyze the following plan for completeness, correctness, and feasibility.
|
|
96
101
|
|
|
97
102
|
PROJECT CONTEXT:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../src/adapters/grok.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IAEpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,IAAI,MAAM,CAAC;QAChB,MAAM;QACN,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,IAAY,EACZ,OAAe,EACf,
|
|
1
|
+
{"version":3,"file":"grok.js","sourceRoot":"","sources":["../../src/adapters/grok.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ export declare function listAvailableModels(): Promise<string[]>;
|
|
|
37
37
|
* @param language - Target programming language
|
|
38
38
|
* @returns Expanded specification
|
|
39
39
|
*/
|
|
40
|
-
export declare function expandIdea(idea: string, language: OutputLanguage): Promise<string>;
|
|
40
|
+
export declare function expandIdea(idea: string, language: OutputLanguage, userDocs?: string): Promise<string>;
|
|
41
41
|
/**
|
|
42
42
|
* Get feedback on generated code
|
|
43
43
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIvG;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAQpD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,eAAe,CAAC,CA8B1B;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIvG;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAQpD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAqCD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAyBxE;AAwFD;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiB7D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,cAAc,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAkEjB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+BxF"}
|