mycontext-cli 4.2.17 ā 4.2.19
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 +423 -60
- package/dist/agents/implementations/SolverAgent.d.ts +42 -0
- package/dist/agents/implementations/SolverAgent.d.ts.map +1 -0
- package/dist/agents/implementations/SolverAgent.js +543 -0
- package/dist/agents/implementations/SolverAgent.js.map +1 -0
- package/dist/cli.js +129 -0
- package/dist/cli.js.map +1 -1
- package/dist/clients/ClaudeSDKClient.d.ts +1 -0
- package/dist/clients/ClaudeSDKClient.d.ts.map +1 -1
- package/dist/clients/ClaudeSDKClient.js +3 -0
- package/dist/clients/ClaudeSDKClient.js.map +1 -1
- package/dist/clients/MyContextAIClient.d.ts +4 -0
- package/dist/clients/MyContextAIClient.d.ts.map +1 -1
- package/dist/clients/MyContextAIClient.js +6 -0
- package/dist/clients/MyContextAIClient.js.map +1 -1
- package/dist/clients/ProviderChain.d.ts +1 -0
- package/dist/clients/ProviderChain.d.ts.map +1 -1
- package/dist/clients/ProviderChain.js +3 -0
- package/dist/clients/ProviderChain.js.map +1 -1
- package/dist/clients/XAIClient.d.ts +4 -0
- package/dist/clients/XAIClient.d.ts.map +1 -1
- package/dist/clients/XAIClient.js +6 -0
- package/dist/clients/XAIClient.js.map +1 -1
- package/dist/commands/add.d.ts +17 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +164 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/build.d.ts +10 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +37 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/generate-assets.d.ts +11 -0
- package/dist/commands/generate-assets.d.ts.map +1 -0
- package/dist/commands/generate-assets.js +131 -0
- package/dist/commands/generate-assets.js.map +1 -0
- package/dist/commands/generate-screens.d.ts +5 -0
- package/dist/commands/generate-screens.d.ts.map +1 -1
- package/dist/commands/generate-screens.js +160 -12
- package/dist/commands/generate-screens.js.map +1 -1
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +43 -9
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/ideate.d.ts +14 -0
- package/dist/commands/ideate.d.ts.map +1 -0
- package/dist/commands/ideate.js +153 -0
- package/dist/commands/ideate.js.map +1 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +27 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/migrate-transform.d.ts +16 -0
- package/dist/commands/migrate-transform.d.ts.map +1 -0
- package/dist/commands/migrate-transform.js +135 -0
- package/dist/commands/migrate-transform.js.map +1 -0
- package/dist/commands/sync-readme.d.ts +3 -1
- package/dist/commands/sync-readme.d.ts.map +1 -1
- package/dist/commands/sync-readme.js +57 -59
- package/dist/commands/sync-readme.js.map +1 -1
- package/dist/commands/vision-test.d.ts.map +1 -1
- package/dist/commands/vision-test.js +8 -0
- package/dist/commands/vision-test.js.map +1 -1
- package/dist/constants/subAgentPersonalities.d.ts.map +1 -1
- package/dist/constants/subAgentPersonalities.js +29 -0
- package/dist/constants/subAgentPersonalities.js.map +1 -1
- package/dist/core/ai/AICore.d.ts +8 -0
- package/dist/core/ai/AICore.d.ts.map +1 -1
- package/dist/core/ai/AICore.js +50 -1
- package/dist/core/ai/AICore.js.map +1 -1
- package/dist/core/ai/TokenCostModel.d.ts +37 -0
- package/dist/core/ai/TokenCostModel.d.ts.map +1 -0
- package/dist/core/ai/TokenCostModel.js +132 -0
- package/dist/core/ai/TokenCostModel.js.map +1 -0
- package/dist/core/brain/BrainClient.d.ts +13 -1
- package/dist/core/brain/BrainClient.d.ts.map +1 -1
- package/dist/core/brain/BrainClient.js +49 -0
- package/dist/core/brain/BrainClient.js.map +1 -1
- package/dist/interfaces/AIClient.d.ts +4 -0
- package/dist/interfaces/AIClient.d.ts.map +1 -1
- package/dist/interfaces/AIClient.js.map +1 -1
- package/dist/services/MonorepoScanner.d.ts +18 -0
- package/dist/services/MonorepoScanner.d.ts.map +1 -0
- package/dist/services/MonorepoScanner.js +101 -0
- package/dist/services/MonorepoScanner.js.map +1 -0
- package/dist/services/ProjectScanner.d.ts.map +1 -1
- package/dist/services/ProjectScanner.js +7 -0
- package/dist/services/ProjectScanner.js.map +1 -1
- package/dist/services/ReadmeDeducer.d.ts +14 -0
- package/dist/services/ReadmeDeducer.d.ts.map +1 -0
- package/dist/services/ReadmeDeducer.js +109 -0
- package/dist/services/ReadmeDeducer.js.map +1 -0
- package/dist/tui/DashboardMode.d.ts +2 -0
- package/dist/tui/DashboardMode.d.ts.map +1 -1
- package/dist/tui/DashboardMode.js +116 -1
- package/dist/tui/DashboardMode.js.map +1 -1
- package/dist/types/constraint.d.ts +123 -0
- package/dist/types/constraint.d.ts.map +1 -0
- package/dist/types/constraint.js +13 -0
- package/dist/types/constraint.js.map +1 -0
- package/dist/types/living-context.d.ts +6 -0
- package/dist/types/living-context.d.ts.map +1 -1
- package/dist/utils/claudeAgentClient.d.ts +4 -0
- package/dist/utils/claudeAgentClient.d.ts.map +1 -1
- package/dist/utils/claudeAgentClient.js +6 -0
- package/dist/utils/claudeAgentClient.js.map +1 -1
- package/dist/utils/contextRenderer.d.ts.map +1 -1
- package/dist/utils/contextRenderer.js +40 -30
- package/dist/utils/contextRenderer.js.map +1 -1
- package/dist/utils/geminiClient.d.ts +11 -1
- package/dist/utils/geminiClient.d.ts.map +1 -1
- package/dist/utils/geminiClient.js +106 -58
- package/dist/utils/geminiClient.js.map +1 -1
- package/dist/utils/githubModelsClient.d.ts +4 -0
- package/dist/utils/githubModelsClient.d.ts.map +1 -1
- package/dist/utils/githubModelsClient.js +6 -0
- package/dist/utils/githubModelsClient.js.map +1 -1
- package/dist/utils/openRouterClient.d.ts +1 -0
- package/dist/utils/openRouterClient.d.ts.map +1 -1
- package/dist/utils/openRouterClient.js +3 -0
- package/dist/utils/openRouterClient.js.map +1 -1
- package/package.json +4 -2
- package/dist/templates/playbooks/instantdb-integration.md +0 -851
- package/dist/templates/playbooks/mpesa-integration.md +0 -652
- package/dist/templates/ui-spec-examples.md +0 -318
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.AddCommand = void 0;
|
|
40
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const fileSystem_1 = require("../utils/fileSystem");
|
|
42
|
+
const spinner_1 = require("../utils/spinner");
|
|
43
|
+
const CodeGenSubAgent_1 = require("../agents/implementations/CodeGenSubAgent");
|
|
44
|
+
const AICore_1 = require("../core/ai/AICore");
|
|
45
|
+
const child_process_1 = require("child_process");
|
|
46
|
+
const path = __importStar(require("path"));
|
|
47
|
+
const fs = __importStar(require("fs-extra"));
|
|
48
|
+
class AddCommand {
|
|
49
|
+
constructor() {
|
|
50
|
+
this.fs = new fileSystem_1.FileSystemManager();
|
|
51
|
+
this.spinner = new spinner_1.EnhancedSpinner("Adding component...");
|
|
52
|
+
}
|
|
53
|
+
async execute(componentName, options) {
|
|
54
|
+
const { group = "elements", shadcn = false } = options;
|
|
55
|
+
console.log(chalk_1.default.blue.bold(`š Adding component: ${chalk_1.default.white(componentName)}\n`));
|
|
56
|
+
try {
|
|
57
|
+
this.spinner.start();
|
|
58
|
+
// 1. Detect if it's a shadcn primitive
|
|
59
|
+
const isShadcnPrimitive = await this.isShadcnPrimitive(componentName);
|
|
60
|
+
if (isShadcnPrimitive || shadcn) {
|
|
61
|
+
this.spinner.updateText(`Installing shadcn primitive: ${componentName}...`);
|
|
62
|
+
await this.installShadcnComponent(componentName);
|
|
63
|
+
this.spinner.succeed(`Shadcn component ${componentName} installed.`);
|
|
64
|
+
this.spinner.start().updateText(`Contextualizing ${componentName}...`);
|
|
65
|
+
}
|
|
66
|
+
// 2. Generate/Contextualize the component
|
|
67
|
+
const codeGen = new CodeGenSubAgent_1.CodeGenSubAgent();
|
|
68
|
+
const aiCore = AICore_1.AICore.getInstance();
|
|
69
|
+
const livingContext = await aiCore.getLivingContext();
|
|
70
|
+
if (!livingContext) {
|
|
71
|
+
throw new Error("Living Brain (context.json) not found. Run 'mycontext init' first.");
|
|
72
|
+
}
|
|
73
|
+
const result = await codeGen.run({
|
|
74
|
+
component: {
|
|
75
|
+
name: componentName,
|
|
76
|
+
description: `A ${componentName} component for the ${livingContext.prd.title} project.`,
|
|
77
|
+
type: "interactive",
|
|
78
|
+
dependencies: isShadcnPrimitive ? [componentName] : [],
|
|
79
|
+
tags: ["added-via-cli"]
|
|
80
|
+
},
|
|
81
|
+
group: group,
|
|
82
|
+
context: livingContext,
|
|
83
|
+
options: {
|
|
84
|
+
projectPath: process.cwd()
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
// 3. Write the file
|
|
88
|
+
const componentsDir = path.join(process.cwd(), "src", "components", group);
|
|
89
|
+
await fs.ensureDir(componentsDir);
|
|
90
|
+
const filePath = path.join(componentsDir, `${this.toPascalCase(componentName)}.tsx`);
|
|
91
|
+
await fs.writeFile(filePath, result.code);
|
|
92
|
+
// 4. Update Registry (Brain)
|
|
93
|
+
await this.updateRegistry(componentName, group, filePath);
|
|
94
|
+
this.spinner.succeed(`Component ${chalk_1.default.white(componentName)} added and contextualized!`);
|
|
95
|
+
console.log(chalk_1.default.gray(`\nLocation: ${filePath}`));
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
this.spinner.fail("Failed to add component");
|
|
99
|
+
throw error;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async isShadcnPrimitive(name) {
|
|
103
|
+
// Basic list of common shadcn primitives. In a real app, we might fetch this from the shadcn registry.
|
|
104
|
+
const primitives = [
|
|
105
|
+
"accordion", "alert", "alert-dialog", "aspect-ratio", "avatar", "badge", "button",
|
|
106
|
+
"calendar", "card", "carousel", "checkbox", "collapsible", "combobox", "command",
|
|
107
|
+
"context-menu", "dialog", "drawer", "dropdown-menu", "form", "hover-card", "input",
|
|
108
|
+
"label", "menubar", "navigation-menu", "pagination", "popover", "progress",
|
|
109
|
+
"radio-group", "resizable", "scroll-area", "select", "separator", "sheet",
|
|
110
|
+
"skeleton", "slider", "switch", "table", "tabs", "textarea", "toast", "toggle",
|
|
111
|
+
"tooltip"
|
|
112
|
+
];
|
|
113
|
+
return primitives.includes(name.toLowerCase());
|
|
114
|
+
}
|
|
115
|
+
async installShadcnComponent(name) {
|
|
116
|
+
try {
|
|
117
|
+
const packageManager = this.detectPackageManager();
|
|
118
|
+
const cmd = `${packageManager === 'npm' ? 'npx' : packageManager} shadcn@latest add ${name} --yes`;
|
|
119
|
+
(0, child_process_1.execSync)(cmd, { stdio: "ignore" });
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.warn(chalk_1.default.yellow(`\nā ļø Could not install shadcn component via CLI. Ensure shadcn is initialized.`));
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
detectPackageManager() {
|
|
126
|
+
if (fs.existsSync(path.join(process.cwd(), "pnpm-lock.yaml")))
|
|
127
|
+
return "pnpm";
|
|
128
|
+
if (fs.existsSync(path.join(process.cwd(), "yarn.lock")))
|
|
129
|
+
return "yarn";
|
|
130
|
+
return "npm";
|
|
131
|
+
}
|
|
132
|
+
toPascalCase(str) {
|
|
133
|
+
return str
|
|
134
|
+
.replace(/[-_]+/g, " ")
|
|
135
|
+
.split(" ")
|
|
136
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
137
|
+
.join("");
|
|
138
|
+
}
|
|
139
|
+
async updateRegistry(name, group, filePath) {
|
|
140
|
+
const contextPath = path.join(process.cwd(), ".mycontext", "context.json");
|
|
141
|
+
if (!(await fs.pathExists(contextPath)))
|
|
142
|
+
return;
|
|
143
|
+
const context = await fs.readJson(contextPath);
|
|
144
|
+
if (!context.components)
|
|
145
|
+
context.components = [];
|
|
146
|
+
const existingIndex = context.components.findIndex((c) => c.name.toLowerCase() === name.toLowerCase());
|
|
147
|
+
const componentData = {
|
|
148
|
+
name: this.toPascalCase(name),
|
|
149
|
+
path: path.relative(process.cwd(), filePath),
|
|
150
|
+
group,
|
|
151
|
+
status: "generated",
|
|
152
|
+
generatedAt: new Date().toISOString()
|
|
153
|
+
};
|
|
154
|
+
if (existingIndex > -1) {
|
|
155
|
+
context.components[existingIndex] = { ...context.components[existingIndex], ...componentData };
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
context.components.push(componentData);
|
|
159
|
+
}
|
|
160
|
+
await fs.writeJson(contextPath, context, { spaces: 2 });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
exports.AddCommand = AddCommand;
|
|
164
|
+
//# sourceMappingURL=add.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CommandOptions } from "../types";
|
|
2
|
+
interface BuildOptions extends CommandOptions {
|
|
3
|
+
force?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare class BuildCommand {
|
|
6
|
+
private spinner;
|
|
7
|
+
execute(options: BuildOptions): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1C,UAAU,YAAa,SAAQ,cAAc;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAkD;IAE3D,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBpD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BuildCommand = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const generate_components_1 = require("./generate-components");
|
|
9
|
+
const spinner_1 = require("../utils/spinner");
|
|
10
|
+
class BuildCommand {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.spinner = new spinner_1.EnhancedSpinner("Building application...");
|
|
13
|
+
}
|
|
14
|
+
async execute(options) {
|
|
15
|
+
console.log(chalk_1.default.blue.bold("šļø Building your application from Living Brain...\n"));
|
|
16
|
+
try {
|
|
17
|
+
this.spinner.start();
|
|
18
|
+
const generateCommand = new generate_components_1.GenerateComponentsCommand();
|
|
19
|
+
// Build is an alias for generating all components with complete architecture
|
|
20
|
+
await generateCommand.execute("all", {
|
|
21
|
+
...options,
|
|
22
|
+
completeArchitecture: true,
|
|
23
|
+
updatePreview: true,
|
|
24
|
+
withTests: true,
|
|
25
|
+
finalCanvas: true
|
|
26
|
+
});
|
|
27
|
+
this.spinner.succeed("Application build completed successfully!");
|
|
28
|
+
console.log(chalk_1.default.green("\nš Your application is ready. Run 'npm run dev' to see it in action."));
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
this.spinner.fail("Build failed");
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.BuildCommand = BuildCommand;
|
|
37
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,+DAAkE;AAClE,8CAAmD;AAMnD,MAAa,YAAY;IAAzB;QACU,YAAO,GAAG,IAAI,yBAAe,CAAC,yBAAyB,CAAC,CAAC;IA2BnE,CAAC;IAzBC,KAAK,CAAC,OAAO,CAAC,OAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAErB,MAAM,eAAe,GAAG,IAAI,+CAAyB,EAAE,CAAC;YAExD,6EAA6E;YAC7E,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE;gBACnC,GAAG,OAAO;gBACV,oBAAoB,EAAE,IAAI;gBAC1B,aAAa,EAAE,IAAI;gBACnB,SAAS,EAAE,IAAI;gBACf,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC,CAAC;QAErG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AA5BD,oCA4BC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
export declare class GenerateAssetsCommand {
|
|
3
|
+
private spinner;
|
|
4
|
+
private brain;
|
|
5
|
+
constructor();
|
|
6
|
+
execute(options: {
|
|
7
|
+
output?: string;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare function registerGenerateAssetsCommand(program: Command): void;
|
|
11
|
+
//# sourceMappingURL=generate-assets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-assets.d.ts","sourceRoot":"","sources":["../../src/commands/generate-assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,KAAK,CAAc;;IAOrB,OAAO,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CA+F3D;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAUpE"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.GenerateAssetsCommand = void 0;
|
|
40
|
+
exports.registerGenerateAssetsCommand = registerGenerateAssetsCommand;
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const fs = __importStar(require("fs-extra"));
|
|
43
|
+
const path_1 = __importDefault(require("path"));
|
|
44
|
+
const AICore_1 = require("../core/ai/AICore");
|
|
45
|
+
const spinner_1 = require("../utils/spinner");
|
|
46
|
+
const logger_1 = require("../utils/logger");
|
|
47
|
+
const BrainClient_1 = require("../core/brain/BrainClient");
|
|
48
|
+
class GenerateAssetsCommand {
|
|
49
|
+
constructor() {
|
|
50
|
+
this.spinner = new spinner_1.EnhancedSpinner("Preparing asset generation...");
|
|
51
|
+
this.brain = BrainClient_1.BrainClient.getInstance();
|
|
52
|
+
}
|
|
53
|
+
async execute(options) {
|
|
54
|
+
const projectPath = process.cwd();
|
|
55
|
+
const contextDir = path_1.default.join(projectPath, ".mycontext");
|
|
56
|
+
const manifestPath = path_1.default.join(contextDir, "images-manifest.json");
|
|
57
|
+
const assetsDir = options.output ? path_1.default.resolve(projectPath, options.output) : path_1.default.join(projectPath, "public", "assets", "images");
|
|
58
|
+
this.spinner.start();
|
|
59
|
+
if (!fs.existsSync(manifestPath)) {
|
|
60
|
+
this.spinner.fail("No images-manifest.json found");
|
|
61
|
+
console.log(chalk_1.default.red("\nā Run 'mycontext ideate' first to generate a visual asset plan."));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
try {
|
|
65
|
+
const manifest = await fs.readJson(manifestPath);
|
|
66
|
+
let assets = [];
|
|
67
|
+
if (Array.isArray(manifest)) {
|
|
68
|
+
assets = manifest;
|
|
69
|
+
}
|
|
70
|
+
else if (manifest.visualAssets && Array.isArray(manifest.visualAssets)) {
|
|
71
|
+
assets = manifest.visualAssets;
|
|
72
|
+
}
|
|
73
|
+
else if (manifest.assets && Array.isArray(manifest.assets)) {
|
|
74
|
+
assets = manifest.assets;
|
|
75
|
+
}
|
|
76
|
+
if (assets.length === 0) {
|
|
77
|
+
this.spinner.fail("Invalid manifest format or no assets found");
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
await fs.ensureDir(assetsDir);
|
|
81
|
+
const ai = AICore_1.AICore.getInstance({
|
|
82
|
+
workingDirectory: projectPath,
|
|
83
|
+
fallbackEnabled: true
|
|
84
|
+
});
|
|
85
|
+
console.log(chalk_1.default.blue(`\nšØ Generating assets in ${assetsDir}...\n`));
|
|
86
|
+
for (const asset of assets) {
|
|
87
|
+
console.log(chalk_1.default.gray(` [PLAN] ${asset.id} (${asset.type}): ${asset.description}`));
|
|
88
|
+
const assetPath = path_1.default.join(assetsDir, `${asset.id}.png`);
|
|
89
|
+
// Check if asset already exists
|
|
90
|
+
if (fs.existsSync(assetPath)) {
|
|
91
|
+
console.log(chalk_1.default.yellow(` ā© Asset ${asset.id} already exists, skipping.`));
|
|
92
|
+
await this.brain.addUpdate("AssetGenerator", "builder", "action", `Skipped existing visual asset: ${asset.id}`, { id: asset.id, type: asset.type, path: assetPath });
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
// Active generation
|
|
96
|
+
this.spinner.updateText(`Generating ${asset.id}...`);
|
|
97
|
+
console.log(chalk_1.default.blue(` š¤ Requesting AI Generation for ${asset.id}...`));
|
|
98
|
+
try {
|
|
99
|
+
await ai.generateImage(asset.description, assetPath);
|
|
100
|
+
console.log(chalk_1.default.green(` ā
Asset ${asset.id} generated successfully.`));
|
|
101
|
+
await this.brain.addUpdate("AssetGenerator", "builder", "action", `Generated visual asset: ${asset.id}`, { id: asset.id, type: asset.type, path: assetPath });
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
console.log(chalk_1.default.red(` ā Failed to generate ${asset.id}: ${err.message}`));
|
|
105
|
+
// For agentic guidance, we still log the failure for Brain visibility
|
|
106
|
+
await this.brain.addUpdate("AssetGenerator", "builder", "error", `Failed to generate visual asset: ${asset.id}`, { id: asset.id, error: err.message });
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
console.log(chalk_1.default.green(`\nā
Asset generation pass complete.`));
|
|
110
|
+
console.log(chalk_1.default.gray(` Run 'mycontext generate:screens' to use these assets.\n`));
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
this.spinner.fail("Asset generation failed");
|
|
114
|
+
logger_1.logger.error("Asset generation error:", error.message);
|
|
115
|
+
throw error;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.GenerateAssetsCommand = GenerateAssetsCommand;
|
|
120
|
+
function registerGenerateAssetsCommand(program) {
|
|
121
|
+
program
|
|
122
|
+
.command("generate:assets")
|
|
123
|
+
.alias("ga")
|
|
124
|
+
.description("Generate visual assets planned in images-manifest.json")
|
|
125
|
+
.option("-o, --output <path>", "Output directory for assets (default: public/assets/images)")
|
|
126
|
+
.action(async (options) => {
|
|
127
|
+
const command = new GenerateAssetsCommand();
|
|
128
|
+
await command.execute(options);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=generate-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-assets.js","sourceRoot":"","sources":["../../src/commands/generate-assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ interface ScreenGenerationOptions {
|
|
|
17
17
|
export declare class GenerateScreensCommand {
|
|
18
18
|
private spinner;
|
|
19
19
|
private ai;
|
|
20
|
+
private brain;
|
|
20
21
|
constructor();
|
|
21
22
|
execute(screenName?: string, options?: ScreenGenerationOptions): Promise<void>;
|
|
22
23
|
/**
|
|
@@ -46,6 +47,10 @@ export declare class GenerateScreensCommand {
|
|
|
46
47
|
* Open generated screen in browser
|
|
47
48
|
*/
|
|
48
49
|
private openInBrowser;
|
|
50
|
+
/**
|
|
51
|
+
* Sync generated screens back to the Living Brain (context.json)
|
|
52
|
+
*/
|
|
53
|
+
private syncWithLivingBrain;
|
|
49
54
|
}
|
|
50
55
|
/**
|
|
51
56
|
* Register the generate:screens command
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-screens.d.ts","sourceRoot":"","sources":["../../src/commands/generate-screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"generate-screens.d.ts","sourceRoot":"","sources":["../../src/commands/generate-screens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAkBD;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,KAAK,CAAc;;IAQrB,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,IAAI,CAAC;IAmGxF;;OAEG;YACW,WAAW;IA6DzB;;OAEG;YACW,gBAAgB;IA6C9B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAqBnC;;OAEG;YACW,cAAc;IAmI5B,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;YACW,qBAAqB;IAsCnC;;OAEG;YACW,aAAa;IA+B3B;;OAEG;YACW,mBAAmB;CA0BlC;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4BrE"}
|