@nagellabs/libi 0.1.6 → 0.1.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.
Files changed (89) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +5 -5
  3. package/.next/diagnostics/route-bundle-stats.json +16 -16
  4. package/.next/externals-manifest.json +1 -1
  5. package/.next/fallback-build-manifest.json +3 -3
  6. package/.next/prerender-manifest.json +3 -3
  7. package/.next/required-server-files.js +1 -1
  8. package/.next/required-server-files.json +1 -1
  9. package/.next/server/app/(app)/editor/page/build-manifest.json +2 -2
  10. package/.next/server/app/(app)/instructions/page/build-manifest.json +2 -2
  11. package/.next/server/app/(app)/mcps-skills/page/build-manifest.json +2 -2
  12. package/.next/server/app/(app)/mcps-skills/skills/[name]/page/build-manifest.json +2 -2
  13. package/.next/server/app/(app)/mcps-skills/skills/new/page/build-manifest.json +2 -2
  14. package/.next/server/app/(app)/settings/page/build-manifest.json +2 -2
  15. package/.next/server/app/_global-error/page/build-manifest.json +2 -2
  16. package/.next/server/app/_global-error.html +1 -1
  17. package/.next/server/app/_global-error.rsc +1 -1
  18. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  20. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  21. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  22. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/_not-found/page/build-manifest.json +2 -2
  24. package/.next/server/app/api/agent/cancel/route.js.nft.json +1 -1
  25. package/.next/server/app/api/agent/detect/route.js.nft.json +1 -1
  26. package/.next/server/app/api/agent/dispatch/route.js.nft.json +1 -1
  27. package/.next/server/app/api/agent/events/route.js.nft.json +1 -1
  28. package/.next/server/app/api/agent/messages/route.js.nft.json +1 -1
  29. package/.next/server/app/api/agent/providers/route.js.nft.json +1 -1
  30. package/.next/server/app/api/agent/send/route.js.nft.json +1 -1
  31. package/.next/server/app/api/agent/start/route.js.nft.json +1 -1
  32. package/.next/server/app/api/agent/stop/route.js.nft.json +1 -1
  33. package/.next/server/app/api/agents/[agentId]/install/route.js.nft.json +1 -1
  34. package/.next/server/app/api/codex/connect/route.js.nft.json +1 -1
  35. package/.next/server/app/api/db/resolve/route.js.nft.json +1 -1
  36. package/.next/server/app/api/export/chromium/route.js.nft.json +1 -1
  37. package/.next/server/app/api/export/route.js.nft.json +1 -1
  38. package/.next/server/app/api/files/by-id/[fileId]/filmstrip-status/route.js.nft.json +1 -1
  39. package/.next/server/app/api/files/by-id/[fileId]/rename/route.js.nft.json +1 -1
  40. package/.next/server/app/api/folders/[folderId]/duplicate/route.js.nft.json +1 -1
  41. package/.next/server/app/api/install-from-url/route.js.nft.json +1 -1
  42. package/.next/server/app/api/instructions/override/route.js.nft.json +1 -1
  43. package/.next/server/app/api/jobs/[id]/events/route.js.nft.json +1 -1
  44. package/.next/server/app/api/jobs/[id]/retry/route.js.nft.json +1 -1
  45. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  46. package/.next/server/app/api/jobs/[id]/status/route.js.nft.json +1 -1
  47. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  48. package/.next/server/app/api/notify/route.js.nft.json +1 -1
  49. package/.next/server/app/api/pieces/[pieceId]/duplicate/route.js.nft.json +1 -1
  50. package/.next/server/app/api/pieces/[pieceId]/tracks/[trackId]/manual-anchors/apply-deletes/route.js.nft.json +1 -1
  51. package/.next/server/app/api/pieces/[pieceId]/tracks/[trackId]/manual-anchors/route.js.nft.json +1 -1
  52. package/.next/server/app/api/render/frames/route.js.nft.json +1 -1
  53. package/.next/server/app/api/runtime/update/route.js.nft.json +1 -1
  54. package/.next/server/app/api/sessions/[sessionId]/activate/route.js.nft.json +1 -1
  55. package/.next/server/app/api/sessions/[sessionId]/context/route.js.nft.json +1 -1
  56. package/.next/server/app/api/sessions/[sessionId]/deactivate/route.js.nft.json +1 -1
  57. package/.next/server/app/api/sessions/[sessionId]/model/route.js.nft.json +1 -1
  58. package/.next/server/app/api/sessions/[sessionId]/permission/route.js.nft.json +1 -1
  59. package/.next/server/app/api/sessions/permission-modes/route.js.nft.json +1 -1
  60. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  61. package/.next/server/app/api/settings/mcp-servers/[id]/dependencies/route.js.nft.json +1 -1
  62. package/.next/server/app/api/settings/mcp-servers/[id]/install-plan/route.js.nft.json +1 -1
  63. package/.next/server/app/api/settings/mcp-servers/[id]/retry/route.js.nft.json +1 -1
  64. package/.next/server/app/api/settings/mcp-servers/[id]/retry-dep/route.js.nft.json +1 -1
  65. package/.next/server/app/api/settings/mcp-servers/[id]/route.js.nft.json +1 -1
  66. package/.next/server/app/api/settings/mcp-servers/resync/route.js.nft.json +1 -1
  67. package/.next/server/app/api/settings/memories/route.js.nft.json +1 -1
  68. package/.next/server/app/api/skill-eval/configure/route.js.nft.json +1 -1
  69. package/.next/server/app/api/terminal/ws-info/route.js.nft.json +1 -1
  70. package/.next/server/app/api/tracking/run/route.js.nft.json +1 -1
  71. package/.next/server/app/page/build-manifest.json +2 -2
  72. package/.next/server/chunks/_0jrwb4i._.js +3 -3
  73. package/.next/server/chunks/node_modules_003ody_._.js +3 -3
  74. package/.next/server/chunks/ssr/_0675jux._.js +3 -3
  75. package/.next/server/instrumentation.js.nft.json +1 -1
  76. package/.next/server/middleware-build-manifest.js +5 -5
  77. package/.next/server/pages/500.html +1 -1
  78. package/.next/server/server-reference-manifest.js +1 -1
  79. package/.next/server/server-reference-manifest.json +1 -1
  80. package/.next/static/chunks/{101vyrlui6sxi.js → 0tfripjpjgh0x.js} +3 -3
  81. package/.next/static/chunks/{turbopack-0ptdlgtsj3219.js → turbopack-0nj3aucu1vtlz.js} +3 -3
  82. package/.next/trace-build +1 -1
  83. package/README.md +4 -1
  84. package/THIRD-PARTY-NOTICES.md +1 -1
  85. package/dist-cli/BUILD_INFO.json +2 -2
  86. package/package.json +1 -1
  87. /package/.next/static/{bG0KdxvMi5yN8UXuvxMVD → AKrgjfjGvLuWkXofXFBpx}/_buildManifest.js +0 -0
  88. /package/.next/static/{bG0KdxvMi5yN8UXuvxMVD → AKrgjfjGvLuWkXofXFBpx}/_clientMiddlewareManifest.js +0 -0
  89. /package/.next/static/{bG0KdxvMi5yN8UXuvxMVD → AKrgjfjGvLuWkXofXFBpx}/_ssgManifest.js +0 -0
@@ -9,10 +9,10 @@
9
9
  "static/chunks/01zemyg5_jrkf.js",
10
10
  "static/chunks/0wh6nfpg7soom.js",
11
11
  "static/chunks/0.-b.~-42h5yc.js",
12
- "static/chunks/101vyrlui6sxi.js",
12
+ "static/chunks/0tfripjpjgh0x.js",
13
13
  "static/chunks/0r1iu1~4-cvp5.js",
14
14
  "static/chunks/0_t4f72v0ddx4.js",
15
- "static/chunks/turbopack-0ptdlgtsj3219.js"
15
+ "static/chunks/turbopack-0nj3aucu1vtlz.js"
16
16
  ],
17
17
  "pages": {},
18
18
  "ampFirstPages": []
@@ -1,5 +1,5 @@
1
- ;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="621fdc96-6689-2939-2933-bf930adeff08")}catch(e){}}();
2
- module.exports=[651970,706387,e=>{"use strict";var t=e.i(902157),i=e.i(750227),s=e.i(875225),r=e.i(190793);e.i(945122);var n=e.i(478181),l=e.i(270958),o=e.i(640911),a=e.i(20535);let c=/\.(md|txt|json|ya?ml|toml|csv|tsv|html?|xml|js|ts|tsx|jsx|css|sh|py|rb|go|rs)$/i;function d(e,s){let r=i.join(e,s),n=i.join(r,"SKILL.md");return t.existsSync(n)?{body:t.readFileSync(n,"utf-8"),supportingFiles:function(e){let s=[];if(!t.existsSync(e))return s;let r=n=>{let l=i.join(e,n);for(let o of t.readdirSync(l,{withFileTypes:!0})){if(o.isSymbolicLink())continue;let l=i.join(n,o.name);if(o.isDirectory())r(l);else if(o.isFile()&&"SKILL.md"!==l){let r=c.test(o.name);s.push({relPath:l,contents:r?t.readFileSync(i.join(e,l),"utf-8"):t.readFileSync(i.join(e,l))})}}};return r("."),s}(r)}:null}async function p(){let e=(0,r.getDb)().select().from(n.skills).where((0,s.eq)(n.skills.enabled,!0)).orderBy(n.skills.source).all(),t=new Map;for(let i of e){let e,s,r=[];if("bundled"===i.source){let t=d((0,l.getBundledSkillsDir)(),i.name);if(!t){o.serverLogger.warn({name:i.name},"skills.bundled_missing_on_disk");continue}e=t.body,r=t.supportingFiles}else{if(!i.body){o.serverLogger.warn({name:i.name},"skills.user_missing_body");continue}e=i.body;let t=d((0,l.getLibiSkillsDir)(),i.name);r=t?.supportingFiles??[]}try{({frontmatter:s}=(0,a.parseSkillBody)(e))}catch(e){o.serverLogger.error({err:e,name:i.name},"skills.parse_failed");continue}let n=t.get(i.name);if(!n||("user"!==n.source||"bundled"!==i.source)&&"bundled"===n.source&&"user"===i.source)t.set(i.name,{id:i.id,name:i.name,description:i.description,source:i.source,enabled:i.enabled,body:e,frontmatter:s,supportingFiles:r,tags:Array.isArray(s.tags)?s.tags:[]})}return Array.from(t.values())}e.s(["loadEnabledSkills",0,p],651970);var u=e.i(666680);let m=[".claude/skills",".agents/skills"];function y(e){return u.createHash("sha256").update(e).digest("hex")}function g(e,s){if(t.mkdirSync(i.dirname(e),{recursive:!0}),t.existsSync(e)){let i=t.readFileSync(e),r=Buffer.isBuffer(s)?s:Buffer.from(s);if(y(i)===y(r))return!1}return t.writeFileSync(e,s),!0}function f(e){return t.existsSync(e)?t.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name):[]}let b=".libi-managed.json";function h(e){let s=i.join(e,b);if(!t.existsSync(s))return null;try{let e=JSON.parse(t.readFileSync(s,"utf-8"));if(e&&Array.isArray(e.managed))return new Set(e.managed.filter(e=>"string"==typeof e))}catch{}return null}async function v(e,s){let r=new Set(s.map(e=>e.name)),n=0,a=0,c=i.resolve(e)===i.resolve((0,l.getLibiAgentDir)());for(let l of m){let o=i.join(e,l);t.mkdirSync(o,{recursive:!0});let d=h(o)??(c?new Set(f(o)):new Set);for(let e of f(o))!r.has(e)&&d.has(e)&&(t.rmSync(i.join(o,e),{recursive:!0,force:!0}),a++);for(let e of s){let s=i.join(o,e.name);g(i.join(s,"SKILL.md"),e.body)&&n++;let r=new Set(e.supportingFiles.map(e=>e.relPath)),l=e=>{let n=i.join(s,e);if(t.existsSync(n))for(let o of t.readdirSync(n,{withFileTypes:!0})){let n=i.join(e,o.name);o.isDirectory()?l(n):"SKILL.md"!==n&&!r.has(n)&&(t.rmSync(i.join(s,n),{force:!0}),a++)}};for(let t of(l("."),e.supportingFiles))g(i.join(s,t.relPath),t.contents)&&n++;!function e(s){if(t.existsSync(s)){for(let r of t.readdirSync(s,{withFileTypes:!0}))if(r.isDirectory()){let n=i.join(s,r.name);e(n),0===t.readdirSync(n).length&&t.rmdirSync(n)}}}(s)}g(i.join(o,b),JSON.stringify({managed:[...r].sort()},null,2)+"\n")}!function(e){let s=i.join(e,"GEMINI.md");try{if(!t.existsSync(s))return;t.readFileSync(s,"utf-8").includes("<!-- libi-skills-start -->")&&t.rmSync(s,{force:!0})}catch(t){o.serverLogger.warn({err:t,workspaceDir:e,tag:"skills",op:"gemini_sweep_failed"},"gemini.sweep_failed")}}(e),function(e,s){let r=i.join(e,s);try{if(!t.existsSync(r))return;let e=h(r);if(e){for(let s of e)t.rmSync(i.join(r,s),{recursive:!0,force:!0});t.rmSync(i.join(r,b),{force:!0})}if(t.existsSync(r)&&0===t.readdirSync(r).length){t.rmdirSync(r);let e=i.dirname(r);t.existsSync(e)&&0===t.readdirSync(e).length&&t.rmdirSync(e)}}catch(t){o.serverLogger.warn({err:t,workspaceDir:e,dialect:s,tag:"skills",op:"legacy_dialect_sweep_failed"},"skills.legacy_dialect_sweep_failed")}}(e,".codex/skills"),o.serverLogger.info({writes:n,removed:a,enabled:s.length},"skills.workspace_written")}e.s(["writeSkillsToWorkspace",0,v],706387)},772917,e=>{"use strict";var t=e.i(270958),i=e.i(640911),s=e.i(651970),r=e.i(706387);async function n(){try{let e=await (0,s.loadEnabledSkills)();await (0,r.writeSkillsToWorkspace)((0,t.getLibiAgentDir)(),e)}catch(e){i.serverLogger.error({err:e},"skills.sync_workspace_failed")}}e.s(["syncSkillsToWorkspace",0,n])},238820,e=>{"use strict";var t=e.i(902157),i=e.i(750227);e.i(139350);var s=e.i(322632);let r=/^[a-z0-9][a-z0-9-]*$/,n=s.z.string().min(1).max(64).refine(e=>r.test(e),"Prompt name must be kebab-case (a-z, 0-9, -) with no slashes");function l(e){return i.join(e,"prompts")}e.s(["promptFileExists",0,function(e,s){return n.parse(s),t.existsSync(i.join(l(e),`${s}.md`))},"readPromptFiles",0,function(e){let s=l(e);return t.existsSync(s)?t.readdirSync(s,{withFileTypes:!0}).filter(e=>e.isFile()&&e.name.endsWith(".md")).map(e=>e.name).sort().map(e=>({relPath:`prompts/${e}`,body:t.readFileSync(i.join(s,e),"utf-8")})):[]},"removePromptFile",0,function(e,s){n.parse(s);let r=l(e);t.rmSync(i.join(r,`${s}.md`),{force:!0}),t.existsSync(r)&&0===t.readdirSync(r).length&&t.rmdirSync(r)},"writePromptFile",0,function(e,s,r){n.parse(s);let o=l(e);t.mkdirSync(o,{recursive:!0});let a=i.join(o,`${s}.md`),c=`${a}.tmp-${process.pid}`;t.writeFileSync(c,r),t.renameSync(c,a)}])},524214,(e,t,i)=>{t.exports={name:"@nagellabs/libi",version:"0.1.6",publishConfig:{access:"public"},description:"AI video studio — a desktop editor that connects CLI coding agents (Claude Code, Codex) over ACP and lets them compose, edit and export video.",keywords:["video","video-editor","ai","agent","acp","mcp","claude-code","codex","ffmpeg","electron"],homepage:"https://github.com/Nagellabs/libi#readme",repository:{type:"git",url:"git+https://github.com/Nagellabs/libi.git"},bugs:{url:"https://github.com/Nagellabs/libi/issues",email:"support@nagellabs.com"},author:"Nadav Nagel <support@nagellabs.com>",license:"GPL-3.0-only",libi:{shellApiVersion:1},main:"dist-electron/electron/main.js",bin:{libi:"bin/libi.js"},files:["THIRD-PARTY-NOTICES.md","bin/**/*","lib/**/*","mcp/**/*","dist-cli/**/*","!mcp/dev/**","!mcp/**/__pycache__/**","!mcp/tracking/py/.venv/**","!mcp/tracking/py/**/.pytest_cache/**","app/**/*","components/**/*","hooks/**/*","public/**/*","drizzle/**/*","next.config.ts","next-logger.config.js","tsconfig.json",".next/**/*","!.next/**/*.map","!.next/standalone","!.next/dev","!.next/cache","!.next/trace","!.next/types"],scripts:{prepack:"node scripts/clean-npm-pack-artifacts.js && node scripts/build-cli.js","build:cli":"node scripts/build-cli.js","verify:cli":"node scripts/build-cli.js --verify",predev:"node scripts/ensure-native-modules.js",dev:"node bin/libi.js",build:"next build && node scripts/write-next-externals-manifest.js","prebuild:electron":"node scripts/generate-third-party-notices.js --check && node scripts/ensure-electron-binary.js","build:electron":"node scripts/rebuild-for-electron.js && npm run compile:electron && node scripts/next-build-release.js && node scripts/build-runtime-bundle.js && electron-builder","build:runtime-bundle":"node scripts/build-runtime-bundle.js","verify:runtime-bundle":"node scripts/build-runtime-bundle.js --verify","compile:electron":"node scripts/build-electron.js",electron:"electron dist-electron/electron/main.js","predev:electron":"node scripts/ensure-native-modules.js && node scripts/ensure-electron-binary.js","dev:electron":"node scripts/dev-electron.js",start:"next start",lint:"eslint","check:licenses":"bash scripts/check-licenses.sh","notices:generate":"node scripts/generate-third-party-notices.js","notices:check":"node scripts/generate-third-party-notices.js --check",pretest:"node scripts/ensure-native-modules.js",test:"vitest run","pretest:watch":"node scripts/ensure-native-modules.js","test:watch":"vitest","pretest:coverage":"node scripts/ensure-native-modules.js","test:coverage":"vitest run --coverage","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","test:electron":"npm run compile:electron && playwright test --config=playwright.electron.config.ts","db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate","db:push":"drizzle-kit push","db:studio":"drizzle-kit studio",prepare:"electron-builder install-app-deps","track:eval":"tsx scripts/track-eval/index.ts","matte:eval":"tsx scripts/matte-eval/index.ts","fal:billing:probe":"tsx scripts/fal-billing/probe.ts","onboarding:extract":"tsx scripts/extract-onboarding-piece.ts","skill:eval":"tsx scripts/skill-eval/run.ts","skill:eval:index":"tsx scripts/skill-eval/build-index.ts","skill:eval:audit":"tsx scripts/skill-eval/audit-endpoints.ts","preview:eval":"node scripts/preview-warming-eval.mjs","registry:start":"node scripts/local-registry/start.js","registry:stop":"node scripts/local-registry/stop.js","registry:publish":"node scripts/local-registry/publish.js","registry:install":"node scripts/local-registry/install.js","registry:e2e":"node scripts/local-registry/e2e.js","registry:upgrade":"node scripts/local-registry/upgrade.js","release:npm":"node scripts/release-npm.js","release:electron":"node scripts/release-electron.js"},dependencies:{"@agentclientprotocol/codex-acp":"^1.6.2","@agentclientprotocol/sdk":"^1.4.0","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@fal-ai/client":"^1.10.1","@mediapipe/tasks-vision":"^0.10.35","@napi-rs/canvas":"^0.1.100","@opentelemetry/instrumentation":"^0.214.0","@resvg/resvg-js":"^2.6.2","@sentry/nextjs":"^10.57.0","@sentry/node":"^10.57.0","@tanstack/react-query":"^5.97.0","@tanstack/react-table":"^8.21.3","@xterm/addon-fit":"^0.11.0","@xterm/addon-serialize":"^0.14.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/headless":"^6.0.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.11.0","better-sqlite3":"^12.8.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",commander:"^14.0.3","drizzle-orm":"^0.45.2","electron-updater":"^6.8.9",esbuild:"^0.28.0","gray-matter":"^4.0.3","import-in-the-middle":"^3.0.2",konva:"^10.3.0","lucide-react":"^1.8.0",mediabunny:"^1.40.1",next:"16.2.3","next-logger":"^5.0.2","next-themes":"^0.4.6","node-pty":"^1.1.0",npm:"^11.15.0","opentype.js":"^2.0.0",ora:"8.2.0",pino:"^10.3.1","pino-pretty":"^13.1.3","playwright-core":"^1.59.1",react:"19.2.4","react-dom":"19.2.4","react-konva":"^19.2.5","react-markdown":"^10.1.0","react-resizable-panels":"^4.10.0",recharts:"^3.8.0","remark-gfm":"^4.0.1","require-in-the-middle":"^8.0.1",roughjs:"^4.6.6",satori:"^0.26.0",shadcn:"^4.2.0",sonner:"^2.0.7","tailwind-merge":"^3.5.0",three:"^0.184.0",tsx:"^4.21.0","tw-animate-css":"^1.4.0",undici:"^7.29.0",vaul:"^1.1.2",ws:"^8.21.0",zod:"^4.3.6"},devDependencies:{"@agentclientprotocol/claude-agent-acp":"^0.70.0","@playwright/test":"^1.59.1","@tailwindcss/postcss":"^4","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/better-sqlite3":"^7.6.13","@types/js-yaml":"^4.0.9","@types/node":"^20","@types/opentype.js":"^1.3.10","@types/react":"^19","@types/react-dom":"^19","@types/three":"^0.184.1","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.4",concurrently:"^9.1.2","drizzle-kit":"^0.31.10",electron:"^36.3.1","electron-builder":"^26.0.12",eslint:"^9","eslint-config-next":"16.2.3",jsdom:"^27.0.1",tailwindcss:"^4","tsc-alias":"^1.8.17",typescript:"^5",vitest:"^4.1.4","wait-on":"^8.0.3"}}},287460,630086,e=>{"use strict";var t=e.i(902157),i=e.i(750227),s=e.i(666680),r=e.i(524214),n=e.i(270958),l=e.i(883978),o=e.i(672615);function a(e){let r,n,l=(0,s.createHash)("sha256");for(let s of(r=[],(n=s=>{let l=i.join(e,s);for(let e of t.readdirSync(l,{withFileTypes:!0})){if(e.isSymbolicLink())continue;let t=i.join(s,e.name);e.isDirectory()?n(t):e.isFile()&&r.push(t)}})("."),r.sort()))l.update(s),l.update("\0"),l.update(t.readFileSync(i.join(e,s))),l.update("\0");return l.digest("hex")}let c=null;function d(e={}){let s=e.version??r.default.version,p=e.bypassCache??!1;if(!p){if(c?.version===s)return c.digests;let e=(0,l.getSkillDigestCacheSetting)();if(e?.version===s)return c=e,e.digests}let u={},m=(0,n.getBundledSkillsDir)();for(let e of o.BUNDLED_SKILLS){let s=i.join(m,e.name);t.existsSync(i.join(s,"SKILL.md"))&&(u[e.name]=a(s))}return p||(c={version:s,digests:u},(0,l.setSkillDigestCacheSetting)(c)),u}e.s(["computeSkillDirDigest",0,a,"getBundledSkillDigests",0,d],630086),e.s(["computeOverrideStatus",0,function(e){let t=new Set(e.filter(e=>"bundled"===e.source).map(e=>e.name)),i=e.filter(e=>"user"===e.source&&t.has(e.name)),s=new Map;if(0===i.length)return s;let r=d();for(let e of i){let t=r[e.name],i=e.forkedFromDigest&&t?e.forkedFromDigest!==t:"unknown";s.set(e.name,{overridesBundled:!0,bundledUpdatedSinceFork:i})}return s}],287460)}];
1
+ ;!function(){try { var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&((e._debugIds|| (e._debugIds={}))[n]="64ffa55b-410e-31d5-a217-16bbf12f1a97")}catch(e){}}();
2
+ module.exports=[651970,706387,e=>{"use strict";var t=e.i(902157),i=e.i(750227),s=e.i(875225),r=e.i(190793);e.i(945122);var n=e.i(478181),l=e.i(270958),o=e.i(640911),a=e.i(20535);let c=/\.(md|txt|json|ya?ml|toml|csv|tsv|html?|xml|js|ts|tsx|jsx|css|sh|py|rb|go|rs)$/i;function d(e,s){let r=i.join(e,s),n=i.join(r,"SKILL.md");return t.existsSync(n)?{body:t.readFileSync(n,"utf-8"),supportingFiles:function(e){let s=[];if(!t.existsSync(e))return s;let r=n=>{let l=i.join(e,n);for(let o of t.readdirSync(l,{withFileTypes:!0})){if(o.isSymbolicLink())continue;let l=i.join(n,o.name);if(o.isDirectory())r(l);else if(o.isFile()&&"SKILL.md"!==l){let r=c.test(o.name);s.push({relPath:l,contents:r?t.readFileSync(i.join(e,l),"utf-8"):t.readFileSync(i.join(e,l))})}}};return r("."),s}(r)}:null}async function p(){let e=(0,r.getDb)().select().from(n.skills).where((0,s.eq)(n.skills.enabled,!0)).orderBy(n.skills.source).all(),t=new Map;for(let i of e){let e,s,r=[];if("bundled"===i.source){let t=d((0,l.getBundledSkillsDir)(),i.name);if(!t){o.serverLogger.warn({name:i.name},"skills.bundled_missing_on_disk");continue}e=t.body,r=t.supportingFiles}else{if(!i.body){o.serverLogger.warn({name:i.name},"skills.user_missing_body");continue}e=i.body;let t=d((0,l.getLibiSkillsDir)(),i.name);r=t?.supportingFiles??[]}try{({frontmatter:s}=(0,a.parseSkillBody)(e))}catch(e){o.serverLogger.error({err:e,name:i.name},"skills.parse_failed");continue}let n=t.get(i.name);if(!n||("user"!==n.source||"bundled"!==i.source)&&"bundled"===n.source&&"user"===i.source)t.set(i.name,{id:i.id,name:i.name,description:i.description,source:i.source,enabled:i.enabled,body:e,frontmatter:s,supportingFiles:r,tags:Array.isArray(s.tags)?s.tags:[]})}return Array.from(t.values())}e.s(["loadEnabledSkills",0,p],651970);var u=e.i(666680);let m=[".claude/skills",".agents/skills"];function y(e){return u.createHash("sha256").update(e).digest("hex")}function g(e,s){if(t.mkdirSync(i.dirname(e),{recursive:!0}),t.existsSync(e)){let i=t.readFileSync(e),r=Buffer.isBuffer(s)?s:Buffer.from(s);if(y(i)===y(r))return!1}return t.writeFileSync(e,s),!0}function f(e){return t.existsSync(e)?t.readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name):[]}let b=".libi-managed.json";function h(e){let s=i.join(e,b);if(!t.existsSync(s))return null;try{let e=JSON.parse(t.readFileSync(s,"utf-8"));if(e&&Array.isArray(e.managed))return new Set(e.managed.filter(e=>"string"==typeof e))}catch{}return null}async function v(e,s){let r=new Set(s.map(e=>e.name)),n=0,a=0,c=i.resolve(e)===i.resolve((0,l.getLibiAgentDir)());for(let l of m){let o=i.join(e,l);t.mkdirSync(o,{recursive:!0});let d=h(o)??(c?new Set(f(o)):new Set);for(let e of f(o))!r.has(e)&&d.has(e)&&(t.rmSync(i.join(o,e),{recursive:!0,force:!0}),a++);for(let e of s){let s=i.join(o,e.name);g(i.join(s,"SKILL.md"),e.body)&&n++;let r=new Set(e.supportingFiles.map(e=>e.relPath)),l=e=>{let n=i.join(s,e);if(t.existsSync(n))for(let o of t.readdirSync(n,{withFileTypes:!0})){let n=i.join(e,o.name);o.isDirectory()?l(n):"SKILL.md"!==n&&!r.has(n)&&(t.rmSync(i.join(s,n),{force:!0}),a++)}};for(let t of(l("."),e.supportingFiles))g(i.join(s,t.relPath),t.contents)&&n++;!function e(s){if(t.existsSync(s)){for(let r of t.readdirSync(s,{withFileTypes:!0}))if(r.isDirectory()){let n=i.join(s,r.name);e(n),0===t.readdirSync(n).length&&t.rmdirSync(n)}}}(s)}g(i.join(o,b),JSON.stringify({managed:[...r].sort()},null,2)+"\n")}!function(e){let s=i.join(e,"GEMINI.md");try{if(!t.existsSync(s))return;t.readFileSync(s,"utf-8").includes("<!-- libi-skills-start -->")&&t.rmSync(s,{force:!0})}catch(t){o.serverLogger.warn({err:t,workspaceDir:e,tag:"skills",op:"gemini_sweep_failed"},"gemini.sweep_failed")}}(e),function(e,s){let r=i.join(e,s);try{if(!t.existsSync(r))return;let e=h(r);if(e){for(let s of e)t.rmSync(i.join(r,s),{recursive:!0,force:!0});t.rmSync(i.join(r,b),{force:!0})}if(t.existsSync(r)&&0===t.readdirSync(r).length){t.rmdirSync(r);let e=i.dirname(r);t.existsSync(e)&&0===t.readdirSync(e).length&&t.rmdirSync(e)}}catch(t){o.serverLogger.warn({err:t,workspaceDir:e,dialect:s,tag:"skills",op:"legacy_dialect_sweep_failed"},"skills.legacy_dialect_sweep_failed")}}(e,".codex/skills"),o.serverLogger.info({writes:n,removed:a,enabled:s.length},"skills.workspace_written")}e.s(["writeSkillsToWorkspace",0,v],706387)},772917,e=>{"use strict";var t=e.i(270958),i=e.i(640911),s=e.i(651970),r=e.i(706387);async function n(){try{let e=await (0,s.loadEnabledSkills)();await (0,r.writeSkillsToWorkspace)((0,t.getLibiAgentDir)(),e)}catch(e){i.serverLogger.error({err:e},"skills.sync_workspace_failed")}}e.s(["syncSkillsToWorkspace",0,n])},238820,e=>{"use strict";var t=e.i(902157),i=e.i(750227);e.i(139350);var s=e.i(322632);let r=/^[a-z0-9][a-z0-9-]*$/,n=s.z.string().min(1).max(64).refine(e=>r.test(e),"Prompt name must be kebab-case (a-z, 0-9, -) with no slashes");function l(e){return i.join(e,"prompts")}e.s(["promptFileExists",0,function(e,s){return n.parse(s),t.existsSync(i.join(l(e),`${s}.md`))},"readPromptFiles",0,function(e){let s=l(e);return t.existsSync(s)?t.readdirSync(s,{withFileTypes:!0}).filter(e=>e.isFile()&&e.name.endsWith(".md")).map(e=>e.name).sort().map(e=>({relPath:`prompts/${e}`,body:t.readFileSync(i.join(s,e),"utf-8")})):[]},"removePromptFile",0,function(e,s){n.parse(s);let r=l(e);t.rmSync(i.join(r,`${s}.md`),{force:!0}),t.existsSync(r)&&0===t.readdirSync(r).length&&t.rmdirSync(r)},"writePromptFile",0,function(e,s,r){n.parse(s);let o=l(e);t.mkdirSync(o,{recursive:!0});let a=i.join(o,`${s}.md`),c=`${a}.tmp-${process.pid}`;t.writeFileSync(c,r),t.renameSync(c,a)}])},524214,(e,t,i)=>{t.exports={name:"@nagellabs/libi",version:"0.1.7",publishConfig:{access:"public"},description:"AI video studio — a desktop editor that connects CLI coding agents (Claude Code, Codex) over ACP and lets them compose, edit and export video.",keywords:["video","video-editor","ai","agent","acp","mcp","claude-code","codex","ffmpeg","electron"],homepage:"https://github.com/Nagellabs/libi#readme",repository:{type:"git",url:"git+https://github.com/Nagellabs/libi.git"},bugs:{url:"https://github.com/Nagellabs/libi/issues",email:"support@nagellabs.com"},author:"Nadav Nagel <support@nagellabs.com>",license:"GPL-3.0-only",libi:{shellApiVersion:1},main:"dist-electron/electron/main.js",bin:{libi:"bin/libi.js"},files:["THIRD-PARTY-NOTICES.md","bin/**/*","lib/**/*","mcp/**/*","dist-cli/**/*","!mcp/dev/**","!mcp/**/__pycache__/**","!mcp/tracking/py/.venv/**","!mcp/tracking/py/**/.pytest_cache/**","app/**/*","components/**/*","hooks/**/*","public/**/*","drizzle/**/*","next.config.ts","next-logger.config.js","tsconfig.json",".next/**/*","!.next/**/*.map","!.next/standalone","!.next/dev","!.next/cache","!.next/trace","!.next/types"],scripts:{prepack:"node scripts/clean-npm-pack-artifacts.js && node scripts/build-cli.js","build:cli":"node scripts/build-cli.js","verify:cli":"node scripts/build-cli.js --verify",predev:"node scripts/ensure-native-modules.js",dev:"node bin/libi.js",build:"next build && node scripts/write-next-externals-manifest.js","prebuild:electron":"node scripts/generate-third-party-notices.js --check && node scripts/ensure-electron-binary.js","build:electron":"node scripts/rebuild-for-electron.js && npm run compile:electron && node scripts/next-build-release.js && node scripts/build-runtime-bundle.js && electron-builder","build:runtime-bundle":"node scripts/build-runtime-bundle.js","verify:runtime-bundle":"node scripts/build-runtime-bundle.js --verify","compile:electron":"node scripts/build-electron.js",electron:"electron dist-electron/electron/main.js","predev:electron":"node scripts/ensure-native-modules.js && node scripts/ensure-electron-binary.js","dev:electron":"node scripts/dev-electron.js",start:"next start",lint:"eslint","check:licenses":"bash scripts/check-licenses.sh","notices:generate":"node scripts/generate-third-party-notices.js","notices:check":"node scripts/generate-third-party-notices.js --check",pretest:"node scripts/ensure-native-modules.js",test:"vitest run","pretest:watch":"node scripts/ensure-native-modules.js","test:watch":"vitest","pretest:coverage":"node scripts/ensure-native-modules.js","test:coverage":"vitest run --coverage","test:e2e":"playwright test","test:e2e:ui":"playwright test --ui","test:electron":"npm run compile:electron && playwright test --config=playwright.electron.config.ts","db:generate":"drizzle-kit generate","db:migrate":"drizzle-kit migrate","db:push":"drizzle-kit push","db:studio":"drizzle-kit studio",prepare:"electron-builder install-app-deps","track:eval":"tsx scripts/track-eval/index.ts","matte:eval":"tsx scripts/matte-eval/index.ts","fal:billing:probe":"tsx scripts/fal-billing/probe.ts","onboarding:extract":"tsx scripts/extract-onboarding-piece.ts","skill:eval":"tsx scripts/skill-eval/run.ts","skill:eval:index":"tsx scripts/skill-eval/build-index.ts","skill:eval:audit":"tsx scripts/skill-eval/audit-endpoints.ts","preview:eval":"node scripts/preview-warming-eval.mjs","registry:start":"node scripts/local-registry/start.js","registry:stop":"node scripts/local-registry/stop.js","registry:publish":"node scripts/local-registry/publish.js","registry:install":"node scripts/local-registry/install.js","registry:e2e":"node scripts/local-registry/e2e.js","registry:upgrade":"node scripts/local-registry/upgrade.js","release:npm":"node scripts/release-npm.js","release:electron":"node scripts/release-electron.js"},dependencies:{"@agentclientprotocol/codex-acp":"^1.6.2","@agentclientprotocol/sdk":"^1.4.0","@base-ui/react":"^1.3.0","@dnd-kit/core":"^6.3.1","@dnd-kit/modifiers":"^9.0.0","@dnd-kit/sortable":"^10.0.0","@dnd-kit/utilities":"^3.2.2","@fal-ai/client":"^1.10.1","@mediapipe/tasks-vision":"^0.10.35","@napi-rs/canvas":"^0.1.100","@opentelemetry/instrumentation":"^0.214.0","@resvg/resvg-js":"^2.6.2","@sentry/nextjs":"^10.57.0","@sentry/node":"^10.57.0","@tanstack/react-query":"^5.97.0","@tanstack/react-table":"^8.21.3","@xterm/addon-fit":"^0.11.0","@xterm/addon-serialize":"^0.14.0","@xterm/addon-web-links":"^0.12.0","@xterm/addon-webgl":"^0.19.0","@xterm/headless":"^6.0.0","@xterm/xterm":"^6.0.0","@xyflow/react":"^12.11.0","better-sqlite3":"^12.8.0",chokidar:"^5.0.0","class-variance-authority":"^0.7.1",clsx:"^2.1.1",commander:"^14.0.3","drizzle-orm":"^0.45.2","electron-updater":"^6.8.9",esbuild:"^0.28.0","gray-matter":"^4.0.3","import-in-the-middle":"^3.0.2",konva:"^10.3.0","lucide-react":"^1.8.0",mediabunny:"^1.40.1",next:"16.2.3","next-logger":"^5.0.2","next-themes":"^0.4.6","node-pty":"^1.1.0",npm:"^11.15.0","opentype.js":"^2.0.0",ora:"8.2.0",pino:"^10.3.1","pino-pretty":"^13.1.3","playwright-core":"^1.59.1",react:"19.2.4","react-dom":"19.2.4","react-konva":"^19.2.5","react-markdown":"^10.1.0","react-resizable-panels":"^4.10.0",recharts:"^3.8.0","remark-gfm":"^4.0.1","require-in-the-middle":"^8.0.1",roughjs:"^4.6.6",satori:"^0.26.0",shadcn:"^4.2.0",sonner:"^2.0.7","tailwind-merge":"^3.5.0",three:"^0.184.0",tsx:"^4.21.0","tw-animate-css":"^1.4.0",undici:"^7.29.0",vaul:"^1.1.2",ws:"^8.21.0",zod:"^4.3.6"},devDependencies:{"@agentclientprotocol/claude-agent-acp":"^0.70.0","@playwright/test":"^1.59.1","@tailwindcss/postcss":"^4","@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.2","@types/better-sqlite3":"^7.6.13","@types/js-yaml":"^4.0.9","@types/node":"^20","@types/opentype.js":"^1.3.10","@types/react":"^19","@types/react-dom":"^19","@types/three":"^0.184.1","@types/ws":"^8.18.1","@vitest/coverage-v8":"^4.1.4",concurrently:"^9.1.2","drizzle-kit":"^0.31.10",electron:"^36.3.1","electron-builder":"^26.0.12",eslint:"^9","eslint-config-next":"16.2.3",jsdom:"^27.0.1",tailwindcss:"^4","tsc-alias":"^1.8.17",typescript:"^5",vitest:"^4.1.4","wait-on":"^8.0.3"}}},287460,630086,e=>{"use strict";var t=e.i(902157),i=e.i(750227),s=e.i(666680),r=e.i(524214),n=e.i(270958),l=e.i(883978),o=e.i(672615);function a(e){let r,n,l=(0,s.createHash)("sha256");for(let s of(r=[],(n=s=>{let l=i.join(e,s);for(let e of t.readdirSync(l,{withFileTypes:!0})){if(e.isSymbolicLink())continue;let t=i.join(s,e.name);e.isDirectory()?n(t):e.isFile()&&r.push(t)}})("."),r.sort()))l.update(s),l.update("\0"),l.update(t.readFileSync(i.join(e,s))),l.update("\0");return l.digest("hex")}let c=null;function d(e={}){let s=e.version??r.default.version,p=e.bypassCache??!1;if(!p){if(c?.version===s)return c.digests;let e=(0,l.getSkillDigestCacheSetting)();if(e?.version===s)return c=e,e.digests}let u={},m=(0,n.getBundledSkillsDir)();for(let e of o.BUNDLED_SKILLS){let s=i.join(m,e.name);t.existsSync(i.join(s,"SKILL.md"))&&(u[e.name]=a(s))}return p||(c={version:s,digests:u},(0,l.setSkillDigestCacheSetting)(c)),u}e.s(["computeSkillDirDigest",0,a,"getBundledSkillDigests",0,d],630086),e.s(["computeOverrideStatus",0,function(e){let t=new Set(e.filter(e=>"bundled"===e.source).map(e=>e.name)),i=e.filter(e=>"user"===e.source&&t.has(e.name)),s=new Map;if(0===i.length)return s;let r=d();for(let e of i){let t=r[e.name],i=e.forkedFromDigest&&t?e.forkedFromDigest!==t:"unknown";s.set(e.name,{overridesBundled:!0,bundledUpdatedSinceFork:i})}return s}],287460)}];
3
3
 
4
- //# debugId=621fdc96-6689-2939-2933-bf930adeff08
4
+ //# debugId=64ffa55b-410e-31d5-a217-16bbf12f1a97
5
5
  //# sourceMappingURL=_0jrwb4i._.js.map