task-o-matic 0.0.6 → 0.0.7
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/dist/commands/workflow.js +150 -93
- package/dist/types/options.d.ts +1 -0
- package/dist/types/options.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -93,27 +93,126 @@ async function stepInitialize(state, aiOptions, streamingOptions) {
|
|
|
93
93
|
return;
|
|
94
94
|
}
|
|
95
95
|
const projectName = await (0, workflow_prompts_1.textInputPrompt)("What is the name of your project?", "my-app");
|
|
96
|
+
// IMMEDIATE DIRECTORY CREATION AND SWITCH
|
|
97
|
+
const projectDir = (0, path_1.resolve)(process.cwd(), projectName);
|
|
98
|
+
if (!(0, fs_1.existsSync)(projectDir)) {
|
|
99
|
+
(0, fs_1.mkdirSync)(projectDir, { recursive: true });
|
|
100
|
+
console.log(chalk_1.default.green(`\n✓ Created directory: ${projectName}`));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log(chalk_1.default.yellow(`\n⚠ Directory ${projectName} already exists`));
|
|
104
|
+
}
|
|
105
|
+
console.log(chalk_1.default.cyan(` 📂 Switching to project directory: ${projectDir}\n`));
|
|
106
|
+
process.chdir(projectDir);
|
|
107
|
+
config_1.configManager.setWorkingDirectory(projectDir);
|
|
108
|
+
state.projectDir = projectDir;
|
|
109
|
+
// Initialize task-o-matic in the NEW directory
|
|
110
|
+
console.log(chalk_1.default.cyan(" Initializing task-o-matic...\n"));
|
|
111
|
+
const newTaskOMaticDir = (0, path_1.join)(projectDir, ".task-o-matic");
|
|
112
|
+
if (!(0, fs_1.existsSync)(newTaskOMaticDir)) {
|
|
113
|
+
(0, fs_1.mkdirSync)(newTaskOMaticDir, { recursive: true });
|
|
114
|
+
["tasks", "prd", "logs"].forEach((dir) => {
|
|
115
|
+
(0, fs_1.mkdirSync)((0, path_1.join)(newTaskOMaticDir, dir), { recursive: true });
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
// AI Configuration Step - ALWAYS ask for this first
|
|
119
|
+
console.log(chalk_1.default.blue.bold("\n🤖 Step 1.1: AI Configuration\n"));
|
|
120
|
+
const aiProvider = await (0, workflow_prompts_1.selectPrompt)("Select AI Provider:", [
|
|
121
|
+
{ name: "OpenRouter", value: "openrouter" },
|
|
122
|
+
{ name: "Anthropic", value: "anthropic" },
|
|
123
|
+
{ name: "OpenAI", value: "openai" },
|
|
124
|
+
{ name: "Custom (e.g. local LLM)", value: "custom" },
|
|
125
|
+
]);
|
|
126
|
+
let aiProviderUrl;
|
|
127
|
+
if (aiProvider === "custom") {
|
|
128
|
+
aiProviderUrl = await (0, workflow_prompts_1.textInputPrompt)("Enter Custom Provider URL:", "http://localhost:11434/v1");
|
|
129
|
+
}
|
|
130
|
+
const defaultModel = aiProvider === "openrouter"
|
|
131
|
+
? "anthropic/claude-3.5-sonnet"
|
|
132
|
+
: aiProvider === "anthropic"
|
|
133
|
+
? "claude-3-5-sonnet-20240620"
|
|
134
|
+
: aiProvider === "openai"
|
|
135
|
+
? "gpt-4o"
|
|
136
|
+
: "llama3";
|
|
137
|
+
const aiModel = await (0, workflow_prompts_1.textInputPrompt)("Enter AI Model:", defaultModel);
|
|
138
|
+
// Check/Ask for API Key
|
|
139
|
+
const providerKeyName = aiProvider === "openai"
|
|
140
|
+
? "OPENAI_API_KEY"
|
|
141
|
+
: aiProvider === "anthropic"
|
|
142
|
+
? "ANTHROPIC_API_KEY"
|
|
143
|
+
: aiProvider === "openrouter"
|
|
144
|
+
? "OPENROUTER_API_KEY"
|
|
145
|
+
: "AI_API_KEY";
|
|
146
|
+
// Check if key exists in current env
|
|
147
|
+
let apiKey = process.env[providerKeyName];
|
|
148
|
+
if (!apiKey) {
|
|
149
|
+
console.log(chalk_1.default.yellow(`\n⚠️ No API key found for ${aiProvider}`));
|
|
150
|
+
apiKey = await (0, workflow_prompts_1.textInputPrompt)(`Enter your ${aiProvider} API Key:`);
|
|
151
|
+
}
|
|
152
|
+
// Save AI Config to .env immediately in the new project dir
|
|
153
|
+
const envPath = (0, path_1.join)(projectDir, ".env");
|
|
154
|
+
let envContent = "";
|
|
155
|
+
if ((0, fs_1.existsSync)(envPath)) {
|
|
156
|
+
envContent = (0, fs_1.readFileSync)(envPath, "utf-8");
|
|
157
|
+
}
|
|
158
|
+
if (!envContent.includes("AI_PROVIDER=")) {
|
|
159
|
+
envContent += `AI_PROVIDER=${aiProvider}\n`;
|
|
160
|
+
}
|
|
161
|
+
if (!envContent.includes("AI_MODEL=")) {
|
|
162
|
+
envContent += `AI_MODEL=${aiModel}\n`;
|
|
163
|
+
}
|
|
164
|
+
if (aiProviderUrl && !envContent.includes("AI_PROVIDER_URL=")) {
|
|
165
|
+
envContent += `AI_PROVIDER_URL=${aiProviderUrl}\n`;
|
|
166
|
+
}
|
|
167
|
+
if (!envContent.includes(`${providerKeyName}=`)) {
|
|
168
|
+
envContent += `${providerKeyName}=${apiKey}\n`;
|
|
169
|
+
}
|
|
170
|
+
(0, fs_1.writeFileSync)(envPath, envContent);
|
|
171
|
+
// Update process.env for immediate use
|
|
172
|
+
process.env.AI_PROVIDER = aiProvider;
|
|
173
|
+
process.env.AI_MODEL = aiModel;
|
|
174
|
+
process.env[providerKeyName] = apiKey;
|
|
175
|
+
if (aiProviderUrl) {
|
|
176
|
+
process.env.AI_PROVIDER_URL = aiProviderUrl;
|
|
177
|
+
}
|
|
178
|
+
// Update ConfigManager
|
|
179
|
+
config_1.configManager.setAIConfig({
|
|
180
|
+
provider: aiProvider,
|
|
181
|
+
model: aiModel,
|
|
182
|
+
apiKey: apiKey,
|
|
183
|
+
baseURL: aiProviderUrl,
|
|
184
|
+
});
|
|
185
|
+
console.log(chalk_1.default.green("✓ AI Configuration saved"));
|
|
186
|
+
// Stack Configuration Step
|
|
187
|
+
console.log(chalk_1.default.blue.bold("\n📦 Step 1.2: Stack Configuration\n"));
|
|
96
188
|
// Choose initialization method
|
|
97
|
-
let initMethod = await (0, workflow_prompts_1.selectPrompt)("How would you like to configure your project?", [
|
|
189
|
+
let initMethod = await (0, workflow_prompts_1.selectPrompt)("How would you like to configure your project stack?", [
|
|
98
190
|
{ name: "Quick start (recommended defaults)", value: "quick" },
|
|
99
191
|
{ name: "Custom configuration", value: "custom" },
|
|
100
192
|
{ name: "AI-assisted (describe your project)", value: "ai" },
|
|
101
193
|
]);
|
|
102
194
|
let config;
|
|
103
195
|
if (initMethod === "ai") {
|
|
104
|
-
console.log(chalk_1.default.cyan("\n🤖 AI-Assisted Configuration\n"));
|
|
196
|
+
console.log(chalk_1.default.cyan("\n🤖 AI-Assisted Stack Configuration\n"));
|
|
105
197
|
const description = await (0, workflow_prompts_1.textInputPrompt)("Describe your project (e.g., 'A SaaS app for team collaboration with real-time features'):");
|
|
106
198
|
console.log(chalk_1.default.gray("\n Analyzing your requirements...\n"));
|
|
107
199
|
config = await workflow_ai_assistant_1.workflowAIAssistant.assistInitConfig({
|
|
108
200
|
userDescription: description,
|
|
109
|
-
aiOptions
|
|
201
|
+
aiOptions: {
|
|
202
|
+
aiProvider,
|
|
203
|
+
aiModel,
|
|
204
|
+
aiKey: apiKey,
|
|
205
|
+
aiProviderUrl,
|
|
206
|
+
},
|
|
110
207
|
streamingOptions,
|
|
111
208
|
});
|
|
112
|
-
// Override AI's project name with user's choice
|
|
209
|
+
// Override AI's project name with user's choice
|
|
113
210
|
config.projectName = projectName;
|
|
211
|
+
// Override AI config with what we just set
|
|
212
|
+
config.aiProvider = aiProvider;
|
|
213
|
+
config.aiModel = aiModel;
|
|
114
214
|
console.log(chalk_1.default.green("\n✓ AI Recommendations:"));
|
|
115
215
|
console.log(chalk_1.default.gray(` Project: ${config.projectName}`));
|
|
116
|
-
console.log(chalk_1.default.gray(` AI Provider: ${config.aiProvider}`));
|
|
117
216
|
console.log(chalk_1.default.gray(` Frontend: ${config.frontend || "none"}`));
|
|
118
217
|
console.log(chalk_1.default.gray(` Backend: ${config.backend || "none"}`));
|
|
119
218
|
console.log(chalk_1.default.gray(` Database: ${config.database || "none"}`));
|
|
@@ -130,8 +229,8 @@ async function stepInitialize(state, aiOptions, streamingOptions) {
|
|
|
130
229
|
if (initMethod === "quick") {
|
|
131
230
|
config = {
|
|
132
231
|
projectName: projectName,
|
|
133
|
-
aiProvider:
|
|
134
|
-
aiModel:
|
|
232
|
+
aiProvider: aiProvider,
|
|
233
|
+
aiModel: aiModel,
|
|
135
234
|
frontend: "next",
|
|
136
235
|
backend: "hono",
|
|
137
236
|
database: "sqlite",
|
|
@@ -142,13 +241,8 @@ async function stepInitialize(state, aiOptions, streamingOptions) {
|
|
|
142
241
|
else if (initMethod === "custom") {
|
|
143
242
|
config = {
|
|
144
243
|
projectName: projectName,
|
|
145
|
-
aiProvider:
|
|
146
|
-
|
|
147
|
-
"anthropic",
|
|
148
|
-
"openai",
|
|
149
|
-
"custom",
|
|
150
|
-
]),
|
|
151
|
-
aiModel: await (0, workflow_prompts_1.textInputPrompt)("AI Model:", "anthropic/claude-3.5-sonnet"),
|
|
244
|
+
aiProvider: aiProvider,
|
|
245
|
+
aiModel: aiModel,
|
|
152
246
|
};
|
|
153
247
|
const shouldBootstrap = await (0, workflow_prompts_1.confirmPrompt)("Bootstrap with Better-T-Stack?", true);
|
|
154
248
|
if (shouldBootstrap) {
|
|
@@ -177,15 +271,15 @@ async function stepInitialize(state, aiOptions, streamingOptions) {
|
|
|
177
271
|
}
|
|
178
272
|
}
|
|
179
273
|
// Bootstrap Logic
|
|
180
|
-
let projectDir = process.cwd();
|
|
181
|
-
let didBootstrap = false;
|
|
182
274
|
if (config.frontend || config.backend) {
|
|
183
275
|
const shouldBootstrap = await (0, workflow_prompts_1.confirmPrompt)("Bootstrap project now?", true);
|
|
184
276
|
if (shouldBootstrap) {
|
|
185
277
|
console.log(chalk_1.default.cyan("\n Bootstrapping with Better-T-Stack...\n"));
|
|
186
278
|
try {
|
|
279
|
+
// We are already in the project directory.
|
|
280
|
+
// We pass "." as the project name so Better-T-Stack scaffolds in the current directory.
|
|
187
281
|
const result = await (0, better_t_stack_cli_1.runBetterTStackCLI)({
|
|
188
|
-
projectName:
|
|
282
|
+
projectName: ".", // Force scaffolding in current dir
|
|
189
283
|
frontend: config.frontend || "next",
|
|
190
284
|
backend: config.backend || "hono",
|
|
191
285
|
database: config.database || "sqlite",
|
|
@@ -199,14 +293,20 @@ async function stepInitialize(state, aiOptions, streamingOptions) {
|
|
|
199
293
|
}, process.cwd());
|
|
200
294
|
if (result.success) {
|
|
201
295
|
console.log(chalk_1.default.green(`\n✓ ${result.message}\n`));
|
|
202
|
-
|
|
203
|
-
//
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
296
|
+
// Fix up the configuration files
|
|
297
|
+
// Because we passed ".", the config file is named ".-bts-config.json" and contains projectName: "."
|
|
298
|
+
const dotConfigPath = (0, path_1.join)(newTaskOMaticDir, ".-bts-config.json");
|
|
299
|
+
const realConfigPath = (0, path_1.join)(newTaskOMaticDir, `${projectName}-bts-config.json`);
|
|
300
|
+
const stackConfigPath = (0, path_1.join)(newTaskOMaticDir, "stack.json");
|
|
301
|
+
if ((0, fs_1.existsSync)(dotConfigPath)) {
|
|
302
|
+
const configContent = JSON.parse((0, fs_1.readFileSync)(dotConfigPath, "utf-8"));
|
|
303
|
+
configContent.projectName = projectName; // Fix the project name
|
|
304
|
+
const newContent = JSON.stringify(configContent, null, 2);
|
|
305
|
+
(0, fs_1.writeFileSync)(realConfigPath, newContent);
|
|
306
|
+
(0, fs_1.writeFileSync)(stackConfigPath, newContent);
|
|
307
|
+
// Remove the temporary dot config
|
|
308
|
+
const { unlinkSync } = require("fs");
|
|
309
|
+
unlinkSync(dotConfigPath);
|
|
210
310
|
}
|
|
211
311
|
}
|
|
212
312
|
else {
|
|
@@ -219,73 +319,15 @@ async function stepInitialize(state, aiOptions, streamingOptions) {
|
|
|
219
319
|
}
|
|
220
320
|
}
|
|
221
321
|
}
|
|
222
|
-
// Initialize task-o-matic in the correct directory (projectDir)
|
|
223
|
-
console.log(chalk_1.default.cyan("\n Initializing task-o-matic...\n"));
|
|
224
|
-
// Re-check task-o-matic dir in the new location
|
|
225
|
-
const newTaskOMaticDir = (0, path_1.join)(projectDir, ".task-o-matic");
|
|
226
|
-
if (!(0, fs_1.existsSync)(newTaskOMaticDir)) {
|
|
227
|
-
(0, fs_1.mkdirSync)(newTaskOMaticDir, { recursive: true });
|
|
228
|
-
["tasks", "prd", "logs"].forEach((dir) => {
|
|
229
|
-
(0, fs_1.mkdirSync)((0, path_1.join)(newTaskOMaticDir, dir), { recursive: true });
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
// Handle .env configuration
|
|
233
|
-
const envPath = (0, path_1.join)(projectDir, ".env");
|
|
234
|
-
let envContent = "";
|
|
235
|
-
if ((0, fs_1.existsSync)(envPath)) {
|
|
236
|
-
envContent = (0, fs_1.readFileSync)(envPath, "utf-8");
|
|
237
|
-
}
|
|
238
|
-
// Check if we need to ask for API key
|
|
239
|
-
const providerKeyName = config.aiProvider === "openai"
|
|
240
|
-
? "OPENAI_API_KEY"
|
|
241
|
-
: config.aiProvider === "anthropic"
|
|
242
|
-
? "ANTHROPIC_API_KEY"
|
|
243
|
-
: config.aiProvider === "openrouter"
|
|
244
|
-
? "OPENROUTER_API_KEY"
|
|
245
|
-
: "AI_API_KEY";
|
|
246
|
-
// Check if key exists in current env OR in the target .env file
|
|
247
|
-
const hasKeyInEnv = process.env[providerKeyName] || envContent.includes(providerKeyName);
|
|
248
|
-
if (!hasKeyInEnv) {
|
|
249
|
-
console.log(chalk_1.default.yellow(`\n⚠️ No API key found for ${config.aiProvider}`));
|
|
250
|
-
const apiKey = await (0, workflow_prompts_1.textInputPrompt)(`Enter your ${config.aiProvider} API Key:`);
|
|
251
|
-
// Prepare .env content
|
|
252
|
-
let newEnvContent = envContent;
|
|
253
|
-
if (newEnvContent && !newEnvContent.endsWith("\n")) {
|
|
254
|
-
newEnvContent += "\n";
|
|
255
|
-
}
|
|
256
|
-
if (!newEnvContent.includes("AI_PROVIDER=")) {
|
|
257
|
-
newEnvContent += `AI_PROVIDER=${config.aiProvider}\n`;
|
|
258
|
-
}
|
|
259
|
-
if (!newEnvContent.includes("AI_MODEL=")) {
|
|
260
|
-
newEnvContent += `AI_MODEL=${config.aiModel}\n`;
|
|
261
|
-
}
|
|
262
|
-
if (!newEnvContent.includes(`${providerKeyName}=`)) {
|
|
263
|
-
newEnvContent += `${providerKeyName}=${apiKey}\n`;
|
|
264
|
-
}
|
|
265
|
-
(0, fs_1.writeFileSync)(envPath, newEnvContent);
|
|
266
|
-
console.log(chalk_1.default.green(`✓ Saved configuration to ${envPath}`));
|
|
267
|
-
// Update process.env for immediate use in this session
|
|
268
|
-
process.env[providerKeyName] = apiKey;
|
|
269
|
-
process.env.AI_PROVIDER = config.aiProvider;
|
|
270
|
-
process.env.AI_MODEL = config.aiModel;
|
|
271
|
-
}
|
|
272
322
|
// Save configuration
|
|
273
|
-
config_1.configManager.setConfig({
|
|
274
|
-
ai: {
|
|
275
|
-
provider: config.aiProvider, // Cast to satisfy AIProvider type
|
|
276
|
-
model: config.aiModel,
|
|
277
|
-
maxTokens: 32768,
|
|
278
|
-
temperature: 0.5,
|
|
279
|
-
apiKey: process.env[providerKeyName], // Ensure key is in config if needed
|
|
280
|
-
},
|
|
281
|
-
});
|
|
282
323
|
config_1.configManager.save();
|
|
283
324
|
console.log(chalk_1.default.green("✓ Project initialized"));
|
|
284
325
|
state.initialized = true;
|
|
285
326
|
state.projectName = config.projectName;
|
|
286
327
|
state.aiConfig = {
|
|
287
|
-
provider:
|
|
288
|
-
model:
|
|
328
|
+
provider: aiProvider,
|
|
329
|
+
model: aiModel,
|
|
330
|
+
key: apiKey,
|
|
289
331
|
};
|
|
290
332
|
state.currentStep = "define-prd";
|
|
291
333
|
}
|
|
@@ -474,18 +516,33 @@ async function stepSplitTasks(state, aiOptions, streamingOptions) {
|
|
|
474
516
|
console.log(chalk_1.default.gray(" No tasks selected"));
|
|
475
517
|
return;
|
|
476
518
|
}
|
|
519
|
+
let globalSplitMethod = "interactive";
|
|
520
|
+
let globalCustomInstructions;
|
|
521
|
+
if (tasksToSplit.length > 1) {
|
|
522
|
+
globalSplitMethod = await (0, workflow_prompts_1.selectPrompt)("How would you like to split these tasks?", [
|
|
523
|
+
{ name: "Interactive (ask for each task)", value: "interactive" },
|
|
524
|
+
{ name: "Standard AI split for ALL", value: "standard" },
|
|
525
|
+
{ name: "Same custom instructions for ALL", value: "custom" },
|
|
526
|
+
]);
|
|
527
|
+
if (globalSplitMethod === "custom") {
|
|
528
|
+
globalCustomInstructions = await (0, workflow_prompts_1.textInputPrompt)("Custom instructions for ALL tasks (e.g., 'Break into 2-4 hour chunks'):", "");
|
|
529
|
+
}
|
|
530
|
+
}
|
|
477
531
|
for (const taskId of tasksToSplit) {
|
|
478
532
|
const task = state.tasks.find((t) => t.id === taskId);
|
|
479
533
|
if (!task)
|
|
480
534
|
continue;
|
|
481
535
|
console.log(chalk_1.default.cyan(`\n Splitting: ${task.title}\n`));
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
536
|
+
let splitMethod = globalSplitMethod;
|
|
537
|
+
let customInstructions = globalCustomInstructions;
|
|
538
|
+
if (globalSplitMethod === "interactive") {
|
|
539
|
+
splitMethod = await (0, workflow_prompts_1.selectPrompt)("Split method:", [
|
|
540
|
+
{ name: "Standard AI split", value: "standard" },
|
|
541
|
+
{ name: "Custom instructions", value: "custom" },
|
|
542
|
+
]);
|
|
543
|
+
if (splitMethod === "custom") {
|
|
544
|
+
customInstructions = await (0, workflow_prompts_1.textInputPrompt)("Custom instructions (e.g., 'Break into 2-4 hour chunks'):", "");
|
|
545
|
+
}
|
|
489
546
|
}
|
|
490
547
|
try {
|
|
491
548
|
const result = await tasks_1.taskService.splitTask(taskId, aiOptions, undefined, // promptOverride
|
package/dist/types/options.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/types/options.ts"],"names":[],"mappings":"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"}
|