startup-builder 0.1.0 → 0.3.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/LICENSE +21 -0
- package/README.md +83 -142
- package/dist/chunk-ZR74VEI2.js +2322 -0
- package/dist/cli.js +335 -197
- package/dist/index.d.ts +677 -121
- package/dist/index.js +77 -19
- package/package.json +32 -37
- package/dist/chunk-DTWFVPYU.js +0 -190
package/dist/index.js
CHANGED
|
@@ -1,22 +1,80 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
2
|
+
Api,
|
|
3
|
+
Auth,
|
|
4
|
+
DEFAULT_API,
|
|
5
|
+
Leases,
|
|
6
|
+
Session,
|
|
7
|
+
TOOLS,
|
|
8
|
+
VERDICTS,
|
|
9
|
+
WorklistError,
|
|
10
|
+
agentEnv,
|
|
11
|
+
agentPrompt,
|
|
12
|
+
apiBase,
|
|
13
|
+
batchText,
|
|
14
|
+
buildWorklist,
|
|
15
|
+
checkBody,
|
|
16
|
+
closeTask,
|
|
17
|
+
closeText,
|
|
18
|
+
closesOf,
|
|
19
|
+
collectionOf,
|
|
20
|
+
derivePriority,
|
|
21
|
+
doVerb,
|
|
22
|
+
fetchWorklistMarkdown,
|
|
23
|
+
findClosesOn,
|
|
24
|
+
groupBatch,
|
|
25
|
+
heldByNames,
|
|
26
|
+
leasesDir,
|
|
27
|
+
mcpServer,
|
|
28
|
+
parseWorker,
|
|
29
|
+
pkce,
|
|
30
|
+
printRunner,
|
|
31
|
+
renderPrompt,
|
|
32
|
+
runCloud,
|
|
33
|
+
selectBatch,
|
|
34
|
+
stepOf,
|
|
35
|
+
tokenFile,
|
|
36
|
+
unwrapState,
|
|
37
|
+
verbPath,
|
|
38
|
+
work,
|
|
39
|
+
worklistPath
|
|
40
|
+
} from "./chunk-ZR74VEI2.js";
|
|
12
41
|
export {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
42
|
+
Api,
|
|
43
|
+
Auth,
|
|
44
|
+
DEFAULT_API,
|
|
45
|
+
Leases,
|
|
46
|
+
Session,
|
|
47
|
+
TOOLS,
|
|
48
|
+
VERDICTS,
|
|
49
|
+
WorklistError,
|
|
50
|
+
agentEnv,
|
|
51
|
+
agentPrompt,
|
|
52
|
+
apiBase,
|
|
53
|
+
batchText,
|
|
54
|
+
buildWorklist,
|
|
55
|
+
checkBody,
|
|
56
|
+
closeTask,
|
|
57
|
+
closeText,
|
|
58
|
+
closesOf,
|
|
59
|
+
collectionOf,
|
|
60
|
+
derivePriority,
|
|
61
|
+
doVerb,
|
|
62
|
+
fetchWorklistMarkdown,
|
|
63
|
+
findClosesOn,
|
|
64
|
+
groupBatch,
|
|
65
|
+
heldByNames,
|
|
66
|
+
leasesDir,
|
|
67
|
+
mcpServer,
|
|
68
|
+
parseWorker,
|
|
69
|
+
pkce,
|
|
70
|
+
printRunner,
|
|
71
|
+
renderPrompt,
|
|
72
|
+
runCloud,
|
|
73
|
+
selectBatch,
|
|
74
|
+
stepOf,
|
|
75
|
+
tokenFile,
|
|
76
|
+
unwrapState,
|
|
77
|
+
verbPath,
|
|
78
|
+
work,
|
|
79
|
+
worklistPath
|
|
22
80
|
};
|
package/package.json
CHANGED
|
@@ -1,55 +1,50 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "startup-builder",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "The command line and MCP server for api.sb: an agent's queue (queue, claim, prompt, show, close, renew, release), worklists, versions and revert, in a compact grammar; the local work loop.",
|
|
5
|
+
"license": "MIT",
|
|
5
6
|
"type": "module",
|
|
6
|
-
"main": "
|
|
7
|
-
"
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"bin": {
|
|
10
|
-
"startup-builder": "./dist/cli.js"
|
|
11
|
-
},
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
12
9
|
"exports": {
|
|
13
10
|
".": {
|
|
14
|
-
"
|
|
15
|
-
"
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
16
13
|
}
|
|
17
14
|
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"startup-builder": "dist/cli.js"
|
|
17
|
+
},
|
|
18
18
|
"files": [
|
|
19
|
-
"dist"
|
|
19
|
+
"dist",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
20
22
|
],
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"dev": "tsup src/index.ts src/cli.ts --format esm --dts --watch",
|
|
24
|
-
"typecheck": "tsc --noEmit"
|
|
23
|
+
"engines": {
|
|
24
|
+
"node": ">=20"
|
|
25
25
|
},
|
|
26
26
|
"keywords": [
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
27
|
+
"agents",
|
|
28
|
+
"api.sb",
|
|
29
|
+
"claude-code",
|
|
30
|
+
"cli",
|
|
31
|
+
"mcp",
|
|
32
|
+
"queue",
|
|
33
|
+
"startups",
|
|
34
|
+
"worklist"
|
|
32
35
|
],
|
|
33
|
-
"author": "Startups.Studio",
|
|
34
|
-
"license": "MIT",
|
|
35
36
|
"dependencies": {
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"foundation-sprint": "workspace:*",
|
|
39
|
-
"lean-canvas": "workspace:*",
|
|
40
|
-
"ideal-customer-profile": "workspace:*",
|
|
41
|
-
"jobs-to-be-done": "workspace:*",
|
|
42
|
-
"storybrand": "workspace:*",
|
|
43
|
-
"startup-names": "workspace:*",
|
|
44
|
-
"landing-page": "workspace:*",
|
|
45
|
-
"commander": "^12.0.0",
|
|
37
|
+
"xstate": "^5",
|
|
38
|
+
"commander": "^12.1.0",
|
|
46
39
|
"picocolors": "^1.1.0",
|
|
47
|
-
"
|
|
40
|
+
"@modelcontextprotocol/sdk": "^1.27.1"
|
|
48
41
|
},
|
|
49
42
|
"devDependencies": {
|
|
50
|
-
"@types/node": "^22
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
|
|
43
|
+
"@types/node": "^22",
|
|
44
|
+
"tsup": "^8",
|
|
45
|
+
"typescript": "^5"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
54
49
|
}
|
|
55
50
|
}
|
package/dist/chunk-DTWFVPYU.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
// src/index.ts
|
|
2
|
-
import { sprint } from "foundation-sprint";
|
|
3
|
-
import { canvas } from "lean-canvas";
|
|
4
|
-
import { icp } from "ideal-customer-profile";
|
|
5
|
-
import { jtbd } from "jobs-to-be-done";
|
|
6
|
-
import { story } from "storybrand";
|
|
7
|
-
import { startup } from "startup-names";
|
|
8
|
-
import { landing } from "landing-page";
|
|
9
|
-
import { sprint as sprint2 } from "foundation-sprint";
|
|
10
|
-
import { canvas as canvas2 } from "lean-canvas";
|
|
11
|
-
import { icp as icp2 } from "ideal-customer-profile";
|
|
12
|
-
import { jtbd as jtbd2 } from "jobs-to-be-done";
|
|
13
|
-
import { story as story2 } from "storybrand";
|
|
14
|
-
import { startup as names } from "startup-names";
|
|
15
|
-
import { landing as landing2 } from "landing-page";
|
|
16
|
-
var builder = {
|
|
17
|
-
/**
|
|
18
|
-
* Create complete startup foundation from idea
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const startup = await builder.create({
|
|
23
|
-
* idea: 'AI code review for engineering teams',
|
|
24
|
-
* founder: {
|
|
25
|
-
* capabilities: ['ML expertise', 'DevTools experience'],
|
|
26
|
-
* insight: 'Code review is the biggest bottleneck',
|
|
27
|
-
* motivation: 'Hated waiting for reviews'
|
|
28
|
-
* }
|
|
29
|
-
* })
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
async create(options) {
|
|
33
|
-
const { idea, founder } = options;
|
|
34
|
-
console.log("\n\u{1F680} Phase 1/7: Foundation Sprint");
|
|
35
|
-
const foundation = await sprint2.run({
|
|
36
|
-
idea,
|
|
37
|
-
founder
|
|
38
|
-
});
|
|
39
|
-
console.log("\n\u{1F4CA} Phase 2/7: Lean Canvas");
|
|
40
|
-
const leanCanvas = await canvas2.generate(idea);
|
|
41
|
-
console.log("\n\u{1F3AF} Phase 3/7: Ideal Customer Profile");
|
|
42
|
-
const customerProfile = await icp2.generate(idea);
|
|
43
|
-
console.log("\n\u{1F4BC} Phase 4/7: Jobs to be Done");
|
|
44
|
-
const jobs = await jtbd2.discover(idea);
|
|
45
|
-
console.log("\n\u{1F4D6} Phase 5/7: StoryBrand Messaging");
|
|
46
|
-
const brandStory = await story2.generate(idea);
|
|
47
|
-
console.log("\n\u2728 Phase 6/7: Name Generation");
|
|
48
|
-
const nameResult = await names.generate({
|
|
49
|
-
description: idea,
|
|
50
|
-
count: 5,
|
|
51
|
-
industry: options.industry,
|
|
52
|
-
tone: options.tone,
|
|
53
|
-
founderNames: founder?.founderNames
|
|
54
|
-
});
|
|
55
|
-
console.log("\n\u{1F3A8} Phase 7/7: Landing Page");
|
|
56
|
-
const productName = nameResult.names?.[0]?.name || idea;
|
|
57
|
-
const landingPage = await landing2.generate({
|
|
58
|
-
product: productName,
|
|
59
|
-
customization: { storybrand: brandStory }
|
|
60
|
-
});
|
|
61
|
-
console.log("\n\u2705 Startup foundation complete!");
|
|
62
|
-
return {
|
|
63
|
-
foundation,
|
|
64
|
-
canvas: leanCanvas,
|
|
65
|
-
icp: customerProfile,
|
|
66
|
-
jtbd: jobs,
|
|
67
|
-
story: brandStory,
|
|
68
|
-
name: nameResult,
|
|
69
|
-
landing: landingPage
|
|
70
|
-
};
|
|
71
|
-
},
|
|
72
|
-
/**
|
|
73
|
-
* Run foundation sprint
|
|
74
|
-
*/
|
|
75
|
-
async foundation(idea, founder) {
|
|
76
|
-
return sprint2.run({ idea, founder });
|
|
77
|
-
},
|
|
78
|
-
/**
|
|
79
|
-
* Generate lean canvas
|
|
80
|
-
*/
|
|
81
|
-
async canvas(input) {
|
|
82
|
-
if (typeof input === "string") {
|
|
83
|
-
return canvas2.generate(input);
|
|
84
|
-
}
|
|
85
|
-
const description = input.problem?.statement || input.idea || JSON.stringify(input);
|
|
86
|
-
return canvas2.generate(description);
|
|
87
|
-
},
|
|
88
|
-
/**
|
|
89
|
-
* Generate ideal customer profile
|
|
90
|
-
*/
|
|
91
|
-
async icp(input) {
|
|
92
|
-
if (typeof input === "string") {
|
|
93
|
-
return icp2.generate(input);
|
|
94
|
-
}
|
|
95
|
-
const description = input.problem?.statement || input.idea || JSON.stringify(input);
|
|
96
|
-
return icp2.generate(description);
|
|
97
|
-
},
|
|
98
|
-
/**
|
|
99
|
-
* Generate jobs to be done
|
|
100
|
-
*/
|
|
101
|
-
async jtbd(input) {
|
|
102
|
-
if (typeof input === "string") {
|
|
103
|
-
return jtbd2.discover(input);
|
|
104
|
-
}
|
|
105
|
-
const description = input.problem?.statement || input.idea || JSON.stringify(input);
|
|
106
|
-
return jtbd2.discover(description);
|
|
107
|
-
},
|
|
108
|
-
/**
|
|
109
|
-
* Generate story brand messaging
|
|
110
|
-
*/
|
|
111
|
-
async story(input, customerProfile) {
|
|
112
|
-
if (typeof input === "string") {
|
|
113
|
-
return story2.generate(input);
|
|
114
|
-
}
|
|
115
|
-
const description = input.problem?.statement || input.idea || JSON.stringify(input);
|
|
116
|
-
return story2.generate(description);
|
|
117
|
-
},
|
|
118
|
-
/**
|
|
119
|
-
* Generate startup name
|
|
120
|
-
*/
|
|
121
|
-
async name(input, options) {
|
|
122
|
-
if (typeof input === "string") {
|
|
123
|
-
return names.generate({
|
|
124
|
-
description: input,
|
|
125
|
-
...options
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const description = input.problem?.statement || input.idea || JSON.stringify(input);
|
|
129
|
-
return names.generate({
|
|
130
|
-
description,
|
|
131
|
-
...options
|
|
132
|
-
});
|
|
133
|
-
},
|
|
134
|
-
/**
|
|
135
|
-
* Generate landing page
|
|
136
|
-
*/
|
|
137
|
-
async landing(name, brandStory) {
|
|
138
|
-
const productName = typeof name === "string" ? name : name.name || name.names?.[0]?.name || "Startup";
|
|
139
|
-
return landing2.generate({
|
|
140
|
-
product: productName,
|
|
141
|
-
customization: brandStory ? { storybrand: brandStory } : void 0
|
|
142
|
-
});
|
|
143
|
-
},
|
|
144
|
-
/**
|
|
145
|
-
* Deploy startup to web
|
|
146
|
-
*/
|
|
147
|
-
async deploy(startup2, options) {
|
|
148
|
-
const nameData = startup2.name;
|
|
149
|
-
let domain = options?.domain;
|
|
150
|
-
if (!domain && nameData) {
|
|
151
|
-
if (typeof nameData === "object") {
|
|
152
|
-
if (nameData.names && Array.isArray(nameData.names)) {
|
|
153
|
-
const firstWithFree = nameData.names.find(
|
|
154
|
-
(n) => n.domains?.some((d) => d.type === "free")
|
|
155
|
-
);
|
|
156
|
-
if (firstWithFree) {
|
|
157
|
-
domain = firstWithFree.domains.find((d) => d.type === "free")?.domain;
|
|
158
|
-
}
|
|
159
|
-
} else if (nameData.domains?.free) {
|
|
160
|
-
domain = nameData.domains.free;
|
|
161
|
-
} else if (nameData.name) {
|
|
162
|
-
domain = `${nameData.name.toLowerCase().replace(/\s+/g, "-")}.hq.sb`;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
domain = domain || "startup.hq.sb";
|
|
167
|
-
console.log(`
|
|
168
|
-
\u{1F680} Deploying to ${domain}...`);
|
|
169
|
-
console.log(` Note: Deployment functionality not yet implemented`);
|
|
170
|
-
return {
|
|
171
|
-
landing: `https://${domain}`,
|
|
172
|
-
dashboard: `https://startups.studio/${nameData?.name?.toLowerCase() || "startup"}`
|
|
173
|
-
};
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
async function buildStartup(idea, founder) {
|
|
177
|
-
return builder.create({ idea, founder });
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
export {
|
|
181
|
-
builder,
|
|
182
|
-
buildStartup,
|
|
183
|
-
sprint,
|
|
184
|
-
canvas,
|
|
185
|
-
icp,
|
|
186
|
-
jtbd,
|
|
187
|
-
story,
|
|
188
|
-
startup,
|
|
189
|
-
landing
|
|
190
|
-
};
|