@lakitu/sdk 0.1.20 → 0.1.21
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../cli/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../cli/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAcH,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmTD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,iBAoBhD"}
|
|
@@ -171,22 +171,35 @@ const baseTemplate = Template()
|
|
|
171
171
|
LOCAL_CONVEX_URL: "http://localhost:3210",
|
|
172
172
|
});
|
|
173
173
|
// Custom template: Add Lakitu code + PRE-BUILT Convex state + AUTO-START backend
|
|
174
|
-
function customTemplate(baseId, buildDir) {
|
|
175
|
-
|
|
174
|
+
function customTemplate(baseId, buildDir, hasProjectKsa) {
|
|
175
|
+
const chownDirs = hasProjectKsa
|
|
176
|
+
? '/home/user/lakitu /home/user/start.sh /home/user/.convex /home/user/project-ksa'
|
|
177
|
+
: '/home/user/lakitu /home/user/start.sh /home/user/.convex';
|
|
178
|
+
const copyKsaCmd = hasProjectKsa
|
|
179
|
+
? 'cp -r /home/user/project-ksa/*.ts /home/user/lakitu/ksa/ && '
|
|
180
|
+
: '';
|
|
181
|
+
const base = Template()
|
|
176
182
|
.fromTemplate(baseId)
|
|
177
183
|
.copy(`${buildDir}/lakitu`, "/home/user/lakitu")
|
|
178
|
-
.copy(`${buildDir}/start.sh`, "/home/user/start.sh")
|
|
184
|
+
.copy(`${buildDir}/start.sh`, "/home/user/start.sh");
|
|
185
|
+
const withKsa = hasProjectKsa
|
|
186
|
+
? base.copy(`${buildDir}/project-ksa`, "/home/user/project-ksa")
|
|
187
|
+
: base;
|
|
188
|
+
return withKsa
|
|
179
189
|
.copy(`${buildDir}/convex-state`, "/home/user/.convex/convex-backend-state/lakitu")
|
|
180
190
|
.runCmd(`
|
|
181
|
-
sudo chown -R user:user
|
|
191
|
+
sudo chown -R user:user ${chownDirs} && \
|
|
182
192
|
chmod +x /home/user/start.sh && \
|
|
183
193
|
export HOME=/home/user && \
|
|
184
194
|
export PATH="/home/user/.bun/bin:/usr/local/bin:/usr/bin:/bin" && \
|
|
185
195
|
cd /home/user/lakitu && bun install && \
|
|
186
|
-
echo '#!/bin/bash
|
|
196
|
+
echo '#!/bin/bash\\nbun run /home/user/lakitu/runtime/pdf/pdf-generator.ts "$@"' | sudo tee /usr/local/bin/generate-pdf && \
|
|
187
197
|
sudo chmod +x /usr/local/bin/generate-pdf && \
|
|
188
|
-
|
|
189
|
-
|
|
198
|
+
echo '#!/bin/bash\\nbun run /home/user/lakitu/runtime/browser/agent-browser-cli.ts "$@"' | sudo tee /usr/local/bin/agent-browser && \
|
|
199
|
+
sudo chmod +x /usr/local/bin/agent-browser && \
|
|
200
|
+
${copyKsaCmd}ln -sf /home/user/lakitu/ksa /home/user/ksa && \
|
|
201
|
+
chown -R user:user /home/user/lakitu/ksa && \
|
|
202
|
+
echo "KSA modules:" && ls /home/user/lakitu/ksa/*.ts 2>/dev/null | head -20
|
|
190
203
|
`)
|
|
191
204
|
.setEnvs({
|
|
192
205
|
HOME: "/home/user",
|
|
@@ -235,15 +248,20 @@ async function buildCustom(apiKey, baseId) {
|
|
|
235
248
|
${PACKAGE_ROOT}/ ${join(buildDir, "lakitu")}/`, {
|
|
236
249
|
stdio: "pipe",
|
|
237
250
|
});
|
|
238
|
-
// Copy user's project KSAs from lakitu/ folder (if exists)
|
|
251
|
+
// Copy user's project KSAs from lakitu/ folder to separate directory (if exists)
|
|
239
252
|
const userKsaDir = join(process.cwd(), "lakitu");
|
|
253
|
+
let hasProjectKsa = false;
|
|
240
254
|
if (existsSync(userKsaDir)) {
|
|
241
255
|
console.log(" Copying project KSAs from lakitu/...");
|
|
242
256
|
const ksaFiles = readdirSync(userKsaDir).filter((f) => f.endsWith(".ts"));
|
|
243
|
-
|
|
244
|
-
|
|
257
|
+
if (ksaFiles.length > 0) {
|
|
258
|
+
mkdirSync(join(buildDir, "project-ksa"), { recursive: true });
|
|
259
|
+
for (const file of ksaFiles) {
|
|
260
|
+
cpSync(join(userKsaDir, file), join(buildDir, "project-ksa", file));
|
|
261
|
+
}
|
|
262
|
+
hasProjectKsa = true;
|
|
263
|
+
console.log(` ✓ Copied ${ksaFiles.length} project KSAs`);
|
|
245
264
|
}
|
|
246
|
-
console.log(` ✓ Copied ${ksaFiles.length} project KSAs`);
|
|
247
265
|
}
|
|
248
266
|
// Copy start script
|
|
249
267
|
cpSync(join(PACKAGE_ROOT, "template/e2b/start.sh"), join(buildDir, "start.sh"));
|
|
@@ -255,7 +273,7 @@ async function buildCustom(apiKey, baseId) {
|
|
|
255
273
|
console.log(" ✓ Build context ready\n");
|
|
256
274
|
// Step 3: Build E2B template with pre-built state
|
|
257
275
|
console.log(`🔧 Building Lakitu custom template on ${baseId}...\n`);
|
|
258
|
-
const result = await Template.build(customTemplate(baseId, buildDir), {
|
|
276
|
+
const result = await Template.build(customTemplate(baseId, buildDir, hasProjectKsa), {
|
|
259
277
|
alias: "lakitu",
|
|
260
278
|
apiKey,
|
|
261
279
|
onBuildLogs: defaultBuildLogger(),
|