@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;AA6RD,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,iBAoBhD"}
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
- return Template()
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 /home/user/lakitu /home/user/start.sh /home/user/.convex && \
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\nbun run /home/user/lakitu/runtime/pdf/pdf-generator.ts "$@"' | sudo tee /usr/local/bin/generate-pdf && \
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
- cp -r /home/user/lakitu/ksa /home/user/ksa && \
189
- chown -R user:user /home/user/ksa
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
- for (const file of ksaFiles) {
244
- cpSync(join(userKsaDir, file), join(buildDir, "lakitu/ksa", file));
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(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lakitu/sdk",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "Self-hosted AI agent framework for Convex + E2B with code execution",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk/index.js",