@girardmedia/bootspring 1.2.0 → 2.0.3
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 +107 -14
- package/bin/bootspring.js +166 -27
- package/cli/agent.js +189 -17
- package/cli/analyze.js +499 -0
- package/cli/audit.js +557 -0
- package/cli/auth.js +495 -38
- package/cli/billing.js +302 -0
- package/cli/build.js +695 -0
- package/cli/business.js +109 -26
- package/cli/checkpoint-utils.js +168 -0
- package/cli/checkpoint.js +639 -0
- package/cli/cloud-sync.js +447 -0
- package/cli/content.js +198 -0
- package/cli/context.js +1 -1
- package/cli/deploy.js +543 -0
- package/cli/fundraise.js +112 -50
- package/cli/github-cmd.js +435 -0
- package/cli/health.js +477 -0
- package/cli/init.js +84 -13
- package/cli/legal.js +107 -95
- package/cli/log.js +2 -2
- package/cli/loop.js +976 -73
- package/cli/manager.js +711 -0
- package/cli/metrics.js +480 -0
- package/cli/monitor.js +812 -0
- package/cli/onboard.js +521 -0
- package/cli/orchestrator.js +12 -24
- package/cli/prd.js +594 -0
- package/cli/preseed-start.js +1483 -0
- package/cli/preseed.js +2302 -0
- package/cli/project.js +436 -0
- package/cli/quality.js +233 -0
- package/cli/security.js +913 -0
- package/cli/seed.js +1441 -5
- package/cli/skill.js +273 -211
- package/cli/suggest.js +989 -0
- package/cli/switch.js +453 -0
- package/cli/visualize.js +527 -0
- package/cli/watch.js +769 -0
- package/cli/workspace.js +607 -0
- package/core/analyze-workflow.js +1134 -0
- package/core/api-client.js +535 -22
- package/core/audit-workflow.js +1350 -0
- package/core/build-orchestrator.js +480 -0
- package/core/build-state.js +577 -0
- package/core/checkpoint-engine.js +408 -0
- package/core/config.js +1109 -26
- package/core/context-loader.js +21 -1
- package/core/deploy-workflow.js +836 -0
- package/core/entitlements.js +93 -22
- package/core/github-sync.js +610 -0
- package/core/index.js +8 -1
- package/core/ingest.js +1111 -0
- package/core/metrics-engine.js +768 -0
- package/core/onboard-workflow.js +1007 -0
- package/core/preseed-workflow.js +934 -0
- package/core/preseed.js +1617 -0
- package/core/project-context.js +325 -0
- package/core/project-state.js +694 -0
- package/core/r2-sync.js +583 -0
- package/core/scaffold.js +525 -7
- package/core/session.js +258 -0
- package/core/task-extractor.js +758 -0
- package/core/telemetry.js +28 -6
- package/core/tier-enforcement.js +737 -0
- package/core/utils.js +38 -14
- package/generators/questionnaire.js +15 -12
- package/generators/sections/ai.js +7 -7
- package/generators/sections/content.js +300 -0
- package/generators/sections/index.js +3 -0
- package/generators/sections/plugins.js +7 -6
- package/generators/templates/build-planning.template.js +596 -0
- package/generators/templates/content.template.js +819 -0
- package/generators/templates/index.js +2 -1
- package/hooks/git-autopilot.js +1250 -0
- package/hooks/index.js +9 -0
- package/intelligence/agent-collab.js +2057 -0
- package/intelligence/auto-suggest.js +634 -0
- package/intelligence/content-gen.js +1589 -0
- package/intelligence/cross-project.js +1647 -0
- package/intelligence/index.js +184 -0
- package/intelligence/learning/insights.json +517 -7
- package/intelligence/learning/pattern-learner.js +1008 -14
- package/intelligence/memory/decision-tracker.js +1431 -31
- package/intelligence/memory/decisions.jsonl +0 -0
- package/intelligence/orchestrator.js +2896 -1
- package/intelligence/prd.js +92 -1
- package/intelligence/recommendation-weights.json +14 -2
- package/intelligence/recommendations.js +463 -9
- package/intelligence/workflow-composer.js +1451 -0
- package/marketplace/index.d.ts +324 -0
- package/marketplace/index.js +1921 -0
- package/mcp/contracts/mcp-contract.v1.json +342 -4
- package/mcp/registry.js +680 -3
- package/mcp/response-formatter.js +23 -0
- package/mcp/tools/assist-tool.js +78 -4
- package/mcp/tools/autopilot-tool.js +408 -0
- package/mcp/tools/content-tool.js +571 -0
- package/mcp/tools/dashboard-tool.js +251 -5
- package/mcp/tools/mvp-tool.js +344 -0
- package/mcp/tools/plugin-tool.js +23 -1
- package/mcp/tools/prd-tool.js +579 -0
- package/mcp/tools/seed-tool.js +447 -0
- package/mcp/tools/skill-tool.js +43 -14
- package/mcp/tools/suggest-tool.js +147 -0
- package/package.json +15 -6
- package/agents/README.md +0 -93
- package/agents/ai-integration-expert/context.md +0 -386
- package/agents/api-expert/context.md +0 -416
- package/agents/architecture-expert/context.md +0 -454
- package/agents/auth-expert/context.md +0 -399
- package/agents/backend-expert/context.md +0 -483
- package/agents/business-strategy-expert/context.md +0 -180
- package/agents/code-review-expert/context.md +0 -365
- package/agents/competitive-analysis-expert/context.md +0 -239
- package/agents/data-modeling-expert/context.md +0 -352
- package/agents/database-expert/context.md +0 -250
- package/agents/devops-expert/context.md +0 -446
- package/agents/email-expert/context.md +0 -379
- package/agents/financial-expert/context.md +0 -213
- package/agents/frontend-expert/context.md +0 -364
- package/agents/fundraising-expert/context.md +0 -257
- package/agents/growth-expert/context.md +0 -249
- package/agents/index.js +0 -140
- package/agents/investor-relations-expert/context.md +0 -266
- package/agents/legal-expert/context.md +0 -284
- package/agents/marketing-expert/context.md +0 -236
- package/agents/monitoring-expert/context.md +0 -362
- package/agents/operations-expert/context.md +0 -279
- package/agents/partnerships-expert/context.md +0 -286
- package/agents/payment-expert/context.md +0 -340
- package/agents/performance-expert/context.md +0 -377
- package/agents/private-equity-expert/context.md +0 -246
- package/agents/railway-expert/context.md +0 -284
- package/agents/research-expert/context.md +0 -245
- package/agents/sales-expert/context.md +0 -241
- package/agents/security-expert/context.md +0 -343
- package/agents/testing-expert/context.md +0 -414
- package/agents/ui-ux-expert/context.md +0 -448
- package/agents/vercel-expert/context.md +0 -426
- package/skills/index.js +0 -787
- package/skills/patterns/README.md +0 -163
- package/skills/patterns/ai/agents.md +0 -281
- package/skills/patterns/ai/claude.md +0 -138
- package/skills/patterns/ai/embeddings.md +0 -150
- package/skills/patterns/ai/rag.md +0 -266
- package/skills/patterns/ai/streaming.md +0 -170
- package/skills/patterns/ai/structured-output.md +0 -162
- package/skills/patterns/ai/tools.md +0 -154
- package/skills/patterns/analytics/tracking.md +0 -220
- package/skills/patterns/api/errors.md +0 -296
- package/skills/patterns/api/graphql.md +0 -440
- package/skills/patterns/api/middleware.md +0 -279
- package/skills/patterns/api/openapi.md +0 -285
- package/skills/patterns/api/rate-limiting.md +0 -231
- package/skills/patterns/api/route-handler.md +0 -217
- package/skills/patterns/api/server-action.md +0 -249
- package/skills/patterns/api/versioning.md +0 -443
- package/skills/patterns/api/webhooks.md +0 -247
- package/skills/patterns/auth/clerk.md +0 -132
- package/skills/patterns/auth/mfa.md +0 -313
- package/skills/patterns/auth/nextauth.md +0 -140
- package/skills/patterns/auth/oauth.md +0 -237
- package/skills/patterns/auth/rbac.md +0 -152
- package/skills/patterns/auth/session-management.md +0 -367
- package/skills/patterns/auth/session.md +0 -120
- package/skills/patterns/database/audit.md +0 -177
- package/skills/patterns/database/migrations.md +0 -177
- package/skills/patterns/database/pagination.md +0 -230
- package/skills/patterns/database/pooling.md +0 -357
- package/skills/patterns/database/prisma.md +0 -180
- package/skills/patterns/database/relations.md +0 -187
- package/skills/patterns/database/seeding.md +0 -246
- package/skills/patterns/database/soft-delete.md +0 -153
- package/skills/patterns/database/transactions.md +0 -162
- package/skills/patterns/deployment/ci-cd.md +0 -231
- package/skills/patterns/deployment/docker.md +0 -188
- package/skills/patterns/deployment/monitoring.md +0 -387
- package/skills/patterns/deployment/vercel.md +0 -160
- package/skills/patterns/email/resend.md +0 -143
- package/skills/patterns/email/templates.md +0 -245
- package/skills/patterns/email/transactional.md +0 -503
- package/skills/patterns/email/verification.md +0 -176
- package/skills/patterns/files/download.md +0 -243
- package/skills/patterns/files/upload.md +0 -239
- package/skills/patterns/i18n/nextintl.md +0 -188
- package/skills/patterns/logging/structured.md +0 -292
- package/skills/patterns/notifications/email-queue.md +0 -248
- package/skills/patterns/notifications/push.md +0 -279
- package/skills/patterns/payments/checkout.md +0 -303
- package/skills/patterns/payments/invoices.md +0 -287
- package/skills/patterns/payments/portal.md +0 -245
- package/skills/patterns/payments/stripe.md +0 -272
- package/skills/patterns/payments/subscriptions.md +0 -300
- package/skills/patterns/payments/usage.md +0 -279
- package/skills/patterns/performance/caching.md +0 -276
- package/skills/patterns/performance/code-splitting.md +0 -233
- package/skills/patterns/performance/edge.md +0 -254
- package/skills/patterns/performance/isr.md +0 -266
- package/skills/patterns/performance/lazy-loading.md +0 -281
- package/skills/patterns/realtime/sse.md +0 -327
- package/skills/patterns/realtime/websockets.md +0 -336
- package/skills/patterns/search/filtering.md +0 -329
- package/skills/patterns/search/fulltext.md +0 -260
- package/skills/patterns/security/audit-logging.md +0 -444
- package/skills/patterns/security/csrf.md +0 -234
- package/skills/patterns/security/headers.md +0 -252
- package/skills/patterns/security/sanitization.md +0 -258
- package/skills/patterns/security/secrets.md +0 -261
- package/skills/patterns/security/validation.md +0 -268
- package/skills/patterns/security/xss.md +0 -229
- package/skills/patterns/seo/metadata.md +0 -252
- package/skills/patterns/state/context.md +0 -349
- package/skills/patterns/state/react-query.md +0 -313
- package/skills/patterns/state/url-state.md +0 -482
- package/skills/patterns/state/zustand.md +0 -262
- package/skills/patterns/testing/api.md +0 -259
- package/skills/patterns/testing/component.md +0 -233
- package/skills/patterns/testing/coverage.md +0 -207
- package/skills/patterns/testing/fixtures.md +0 -225
- package/skills/patterns/testing/integration.md +0 -436
- package/skills/patterns/testing/mocking.md +0 -177
- package/skills/patterns/testing/playwright.md +0 -162
- package/skills/patterns/testing/snapshot.md +0 -175
- package/skills/patterns/testing/vitest.md +0 -307
- package/skills/patterns/ui/accordions.md +0 -395
- package/skills/patterns/ui/cards.md +0 -299
- package/skills/patterns/ui/dropdowns.md +0 -476
- package/skills/patterns/ui/empty-states.md +0 -320
- package/skills/patterns/ui/forms.md +0 -405
- package/skills/patterns/ui/inputs.md +0 -319
- package/skills/patterns/ui/layouts.md +0 -282
- package/skills/patterns/ui/loading.md +0 -291
- package/skills/patterns/ui/modals.md +0 -338
- package/skills/patterns/ui/navigation.md +0 -374
- package/skills/patterns/ui/tables.md +0 -407
- package/skills/patterns/ui/toasts.md +0 -300
- package/skills/patterns/ui/tooltips.md +0 -396
- package/skills/patterns/utils/dates.md +0 -435
- package/skills/patterns/utils/errors.md +0 -451
- package/skills/patterns/utils/formatting.md +0 -345
- package/skills/patterns/utils/validation.md +0 -434
- package/templates/bootspring.config.js +0 -83
- package/templates/business/business-model-canvas.md +0 -246
- package/templates/business/business-plan.md +0 -266
- package/templates/business/competitive-analysis.md +0 -312
- package/templates/fundraising/data-room-checklist.md +0 -300
- package/templates/fundraising/investor-research.md +0 -243
- package/templates/fundraising/pitch-deck-outline.md +0 -253
- package/templates/legal/gdpr-checklist.md +0 -339
- package/templates/legal/privacy-policy.md +0 -285
- package/templates/legal/terms-of-service.md +0 -222
- package/templates/mcp.json +0 -9
package/cli/fundraise.js
CHANGED
|
@@ -9,11 +9,8 @@
|
|
|
9
9
|
const fs = require('fs');
|
|
10
10
|
const path = require('path');
|
|
11
11
|
const utils = require('../core/utils');
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* Template directory
|
|
15
|
-
*/
|
|
16
|
-
const TEMPLATES_DIR = path.join(__dirname, '..', 'templates', 'fundraising');
|
|
12
|
+
const api = require('../core/api-client');
|
|
13
|
+
const auth = require('../core/auth');
|
|
17
14
|
|
|
18
15
|
/**
|
|
19
16
|
* Output directory for fundraising docs
|
|
@@ -72,15 +69,44 @@ function processTemplate(content, config) {
|
|
|
72
69
|
.replace(/\{\{DOMAIN\}\}/g, config.domain || 'example.com');
|
|
73
70
|
}
|
|
74
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Fetch template content from API
|
|
74
|
+
*/
|
|
75
|
+
async function fetchTemplate(templateFile) {
|
|
76
|
+
if (!auth.isAuthenticated()) {
|
|
77
|
+
return { error: 'auth_required' };
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
try {
|
|
81
|
+
const response = await api.getTemplate('fundraising', templateFile);
|
|
82
|
+
return response;
|
|
83
|
+
} catch (error) {
|
|
84
|
+
if (error.status === 401) {
|
|
85
|
+
return { error: 'auth_required' };
|
|
86
|
+
}
|
|
87
|
+
if (error.status === 403) {
|
|
88
|
+
return { error: 'upgrade_required' };
|
|
89
|
+
}
|
|
90
|
+
return { error: 'network_error', message: error.message };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
75
94
|
/**
|
|
76
95
|
* Initialize fundraising docs
|
|
77
96
|
*/
|
|
78
|
-
function fundraiseInit() {
|
|
97
|
+
async function fundraiseInit() {
|
|
79
98
|
console.log(`
|
|
80
99
|
${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Fundraising Materials${utils.COLORS.reset}
|
|
81
|
-
${utils.COLORS.dim}Initialize fundraising documents${utils.COLORS.reset}
|
|
100
|
+
${utils.COLORS.dim}Initialize fundraising documents and checklists${utils.COLORS.reset}
|
|
82
101
|
`);
|
|
83
102
|
|
|
103
|
+
// Check authentication
|
|
104
|
+
if (!auth.isAuthenticated()) {
|
|
105
|
+
utils.print.error('Authentication required');
|
|
106
|
+
console.log(`${utils.COLORS.dim}Run: bootspring auth login${utils.COLORS.reset}`);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
84
110
|
const config = getProjectConfig();
|
|
85
111
|
const outputDir = path.join(process.cwd(), OUTPUT_DIR);
|
|
86
112
|
|
|
@@ -91,8 +117,12 @@ ${utils.COLORS.dim}Initialize fundraising documents${utils.COLORS.reset}
|
|
|
91
117
|
|
|
92
118
|
const created = [];
|
|
93
119
|
const skipped = [];
|
|
120
|
+
const failed = [];
|
|
121
|
+
|
|
122
|
+
const spinner = utils.createSpinner('Loading templates...');
|
|
123
|
+
spinner.start();
|
|
94
124
|
|
|
95
|
-
// Create all templates
|
|
125
|
+
// Create all fundraising templates
|
|
96
126
|
for (const [key, template] of Object.entries(TEMPLATES)) {
|
|
97
127
|
const outputPath = path.join(outputDir, template.output);
|
|
98
128
|
|
|
@@ -101,15 +131,20 @@ ${utils.COLORS.dim}Initialize fundraising documents${utils.COLORS.reset}
|
|
|
101
131
|
continue;
|
|
102
132
|
}
|
|
103
133
|
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
created.push(template.name);
|
|
134
|
+
const result = await fetchTemplate(template.file);
|
|
135
|
+
|
|
136
|
+
if (result.error) {
|
|
137
|
+
failed.push({ name: template.name, error: result.error });
|
|
138
|
+
continue;
|
|
110
139
|
}
|
|
140
|
+
|
|
141
|
+
const processed = processTemplate(result.content, config);
|
|
142
|
+
fs.writeFileSync(outputPath, processed);
|
|
143
|
+
created.push(template.name);
|
|
111
144
|
}
|
|
112
145
|
|
|
146
|
+
spinner.stop();
|
|
147
|
+
|
|
113
148
|
if (created.length > 0) {
|
|
114
149
|
console.log(`${utils.COLORS.bold}Created:${utils.COLORS.reset}`);
|
|
115
150
|
for (const name of created) {
|
|
@@ -126,16 +161,24 @@ ${utils.COLORS.dim}Initialize fundraising documents${utils.COLORS.reset}
|
|
|
126
161
|
console.log();
|
|
127
162
|
}
|
|
128
163
|
|
|
164
|
+
if (failed.length > 0) {
|
|
165
|
+
console.log(`${utils.COLORS.bold}Failed:${utils.COLORS.reset}`);
|
|
166
|
+
for (const { name, error } of failed) {
|
|
167
|
+
console.log(` ${utils.COLORS.red}✗${utils.COLORS.reset} ${name} (${error})`);
|
|
168
|
+
}
|
|
169
|
+
console.log();
|
|
170
|
+
}
|
|
171
|
+
|
|
129
172
|
console.log(`${utils.COLORS.bold}Next Steps:${utils.COLORS.reset}`);
|
|
130
|
-
console.log(` 1.
|
|
131
|
-
console.log(` 2.
|
|
132
|
-
console.log(` 3. Run ${utils.COLORS.cyan}bootspring
|
|
173
|
+
console.log(` 1. Fill out ${utils.COLORS.cyan}${OUTPUT_DIR}/PITCH_DECK.md${utils.COLORS.reset}`);
|
|
174
|
+
console.log(` 2. Run ${utils.COLORS.cyan}bootspring agent invoke fundraising-expert${utils.COLORS.reset}`);
|
|
175
|
+
console.log(` 3. Run ${utils.COLORS.cyan}bootspring fundraise status${utils.COLORS.reset} to check progress`);
|
|
133
176
|
}
|
|
134
177
|
|
|
135
178
|
/**
|
|
136
179
|
* Create a specific fundraising document
|
|
137
180
|
*/
|
|
138
|
-
function fundraiseCreate(templateKey) {
|
|
181
|
+
async function fundraiseCreate(templateKey) {
|
|
139
182
|
const template = TEMPLATES[templateKey];
|
|
140
183
|
|
|
141
184
|
if (!template) {
|
|
@@ -149,6 +192,13 @@ ${utils.COLORS.cyan}${utils.COLORS.bold}⚡ ${template.name}${utils.COLORS.reset
|
|
|
149
192
|
${utils.COLORS.dim}${template.description}${utils.COLORS.reset}
|
|
150
193
|
`);
|
|
151
194
|
|
|
195
|
+
// Check authentication
|
|
196
|
+
if (!auth.isAuthenticated()) {
|
|
197
|
+
utils.print.error('Authentication required');
|
|
198
|
+
console.log(`${utils.COLORS.dim}Run: bootspring auth login${utils.COLORS.reset}`);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
|
|
152
202
|
const config = getProjectConfig();
|
|
153
203
|
const outputDir = path.join(process.cwd(), OUTPUT_DIR);
|
|
154
204
|
const outputPath = path.join(outputDir, template.output);
|
|
@@ -164,21 +214,40 @@ ${utils.COLORS.dim}${template.description}${utils.COLORS.reset}
|
|
|
164
214
|
return;
|
|
165
215
|
}
|
|
166
216
|
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
217
|
+
const spinner = utils.createSpinner('Loading template...');
|
|
218
|
+
spinner.start();
|
|
219
|
+
|
|
220
|
+
const result = await fetchTemplate(template.file);
|
|
221
|
+
|
|
222
|
+
if (result.error === 'auth_required') {
|
|
223
|
+
spinner.fail('Authentication required');
|
|
224
|
+
console.log(`${utils.COLORS.dim}Run: bootspring auth login${utils.COLORS.reset}`);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (result.error === 'upgrade_required') {
|
|
229
|
+
spinner.fail('Upgrade required');
|
|
230
|
+
console.log(`${utils.COLORS.dim}This template requires a Pro subscription.${utils.COLORS.reset}`);
|
|
231
|
+
console.log(`${utils.COLORS.dim}Run: bootspring billing upgrade${utils.COLORS.reset}`);
|
|
170
232
|
return;
|
|
171
233
|
}
|
|
172
234
|
|
|
173
|
-
|
|
174
|
-
|
|
235
|
+
if (result.error) {
|
|
236
|
+
spinner.fail('Failed to load template');
|
|
237
|
+
console.log(`${utils.COLORS.dim}${result.message || 'Check your internet connection.'}${utils.COLORS.reset}`);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
spinner.succeed('Template loaded');
|
|
242
|
+
|
|
243
|
+
const processed = processTemplate(result.content, config);
|
|
175
244
|
fs.writeFileSync(outputPath, processed);
|
|
176
245
|
|
|
177
246
|
utils.print.success(`Created ${template.name}`);
|
|
178
247
|
console.log(`\nFile: ${utils.COLORS.cyan}${OUTPUT_DIR}/${template.output}${utils.COLORS.reset}`);
|
|
179
248
|
console.log(`\n${utils.COLORS.bold}Next Steps:${utils.COLORS.reset}`);
|
|
180
|
-
console.log(
|
|
181
|
-
console.log(
|
|
249
|
+
console.log(' 1. Open and edit the document');
|
|
250
|
+
console.log(' 2. Use AI agents for assistance:');
|
|
182
251
|
console.log(` ${utils.COLORS.cyan}bootspring agent invoke fundraising-expert${utils.COLORS.reset}`);
|
|
183
252
|
}
|
|
184
253
|
|
|
@@ -187,12 +256,12 @@ ${utils.COLORS.dim}${template.description}${utils.COLORS.reset}
|
|
|
187
256
|
*/
|
|
188
257
|
function fundraiseStatus() {
|
|
189
258
|
console.log(`
|
|
190
|
-
${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Fundraising Status${utils.COLORS.reset}
|
|
259
|
+
${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Fundraising Materials Status${utils.COLORS.reset}
|
|
191
260
|
`);
|
|
192
261
|
|
|
193
262
|
const outputDir = path.join(process.cwd(), OUTPUT_DIR);
|
|
194
263
|
let found = 0;
|
|
195
|
-
|
|
264
|
+
const total = Object.keys(TEMPLATES).length;
|
|
196
265
|
|
|
197
266
|
for (const [key, template] of Object.entries(TEMPLATES)) {
|
|
198
267
|
const outputPath = path.join(outputDir, template.output);
|
|
@@ -272,31 +341,24 @@ ${utils.COLORS.bold}Usage:${utils.COLORS.reset}
|
|
|
272
341
|
${utils.COLORS.bold}Commands:${utils.COLORS.reset}
|
|
273
342
|
${utils.COLORS.cyan}init${utils.COLORS.reset} Initialize all fundraising documents
|
|
274
343
|
${utils.COLORS.cyan}pitch${utils.COLORS.reset} Create pitch deck outline
|
|
275
|
-
${utils.COLORS.cyan}deck${utils.COLORS.reset} Alias for pitch
|
|
276
344
|
${utils.COLORS.cyan}dataroom${utils.COLORS.reset} Create data room checklist
|
|
277
345
|
${utils.COLORS.cyan}investors${utils.COLORS.reset} Create investor research template
|
|
278
346
|
${utils.COLORS.cyan}status${utils.COLORS.reset} Show status of fundraising documents
|
|
279
347
|
${utils.COLORS.cyan}show${utils.COLORS.reset} <type> Preview a fundraising document
|
|
280
348
|
|
|
281
349
|
${utils.COLORS.bold}Examples:${utils.COLORS.reset}
|
|
282
|
-
bootspring fundraise init
|
|
283
|
-
bootspring fundraise pitch
|
|
284
|
-
bootspring fundraise dataroom
|
|
285
|
-
bootspring fundraise investors
|
|
286
|
-
bootspring fundraise status
|
|
287
|
-
|
|
288
|
-
${utils.COLORS.bold}Fundraising Workflow:${utils.COLORS.reset}
|
|
289
|
-
1. ${utils.COLORS.cyan}bootspring fundraise init${utils.COLORS.reset} Create materials
|
|
290
|
-
2. ${utils.COLORS.cyan}bootspring business plan${utils.COLORS.reset} Complete business plan
|
|
291
|
-
3. Edit pitch deck and data room checklist
|
|
292
|
-
4. Research and track investors
|
|
293
|
-
5. Use agents for feedback and refinement
|
|
350
|
+
bootspring fundraise init # Create all fundraising docs
|
|
351
|
+
bootspring fundraise pitch # Create pitch deck outline
|
|
352
|
+
bootspring fundraise dataroom # Create data room checklist
|
|
353
|
+
bootspring fundraise investors # Create investor tracking
|
|
354
|
+
bootspring fundraise status # Check progress
|
|
355
|
+
bootspring fundraise show pitch # Preview pitch deck
|
|
294
356
|
|
|
295
357
|
${utils.COLORS.bold}Related Agents:${utils.COLORS.reset}
|
|
296
|
-
${utils.COLORS.cyan}fundraising-expert${utils.COLORS.reset}
|
|
297
|
-
${utils.COLORS.cyan}
|
|
298
|
-
${utils.COLORS.cyan}financial-expert${utils.COLORS.reset}
|
|
299
|
-
${utils.COLORS.cyan}
|
|
358
|
+
${utils.COLORS.cyan}fundraising-expert${utils.COLORS.reset} Pitch decks and investor relations
|
|
359
|
+
${utils.COLORS.cyan}investor-relations-expert${utils.COLORS.reset} Board management and updates
|
|
360
|
+
${utils.COLORS.cyan}financial-expert${utils.COLORS.reset} Financial modeling and projections
|
|
361
|
+
${utils.COLORS.cyan}private-equity-expert${utils.COLORS.reset} Term sheets and negotiations
|
|
300
362
|
`);
|
|
301
363
|
}
|
|
302
364
|
|
|
@@ -308,22 +370,22 @@ async function run(args) {
|
|
|
308
370
|
|
|
309
371
|
switch (subcommand) {
|
|
310
372
|
case 'init':
|
|
311
|
-
fundraiseInit();
|
|
373
|
+
await fundraiseInit();
|
|
312
374
|
break;
|
|
313
375
|
|
|
314
376
|
case 'pitch':
|
|
315
377
|
case 'deck':
|
|
316
|
-
fundraiseCreate('pitch');
|
|
378
|
+
await fundraiseCreate('pitch');
|
|
317
379
|
break;
|
|
318
380
|
|
|
319
381
|
case 'dataroom':
|
|
320
382
|
case 'data-room':
|
|
321
|
-
fundraiseCreate('dataroom');
|
|
383
|
+
await fundraiseCreate('dataroom');
|
|
322
384
|
break;
|
|
323
385
|
|
|
324
386
|
case 'investors':
|
|
325
|
-
case '
|
|
326
|
-
fundraiseCreate('investors');
|
|
387
|
+
case 'research':
|
|
388
|
+
await fundraiseCreate('investors');
|
|
327
389
|
break;
|
|
328
390
|
|
|
329
391
|
case 'status':
|
|
@@ -348,7 +410,7 @@ async function run(args) {
|
|
|
348
410
|
default:
|
|
349
411
|
// Check if it's a template name
|
|
350
412
|
if (TEMPLATES[subcommand]) {
|
|
351
|
-
fundraiseCreate(subcommand);
|
|
413
|
+
await fundraiseCreate(subcommand);
|
|
352
414
|
} else {
|
|
353
415
|
utils.print.error(`Unknown subcommand: ${subcommand}`);
|
|
354
416
|
showHelp();
|