commandmate 0.1.10 → 0.1.11

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 (139) hide show
  1. package/.env.example +8 -3
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-build-manifest.json +11 -11
  4. package/.next/app-path-routes-manifest.json +1 -1
  5. package/.next/build-manifest.json +2 -2
  6. package/.next/cache/.tsbuildinfo +1 -1
  7. package/.next/cache/config.json +3 -3
  8. package/.next/cache/webpack/client-production/0.pack +0 -0
  9. package/.next/cache/webpack/client-production/1.pack +0 -0
  10. package/.next/cache/webpack/client-production/2.pack +0 -0
  11. package/.next/cache/webpack/client-production/index.pack +0 -0
  12. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  13. package/.next/cache/webpack/edge-server-production/0.pack +0 -0
  14. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  15. package/.next/cache/webpack/server-production/0.pack +0 -0
  16. package/.next/cache/webpack/server-production/index.pack +0 -0
  17. package/.next/next-server.js.nft.json +1 -1
  18. package/.next/prerender-manifest.json +1 -1
  19. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/_not-found.html +1 -1
  21. package/.next/server/app/_not-found.rsc +1 -1
  22. package/.next/server/app/api/external-apps/[id]/health/route.js +11 -12
  23. package/.next/server/app/api/external-apps/[id]/route.js +14 -15
  24. package/.next/server/app/api/external-apps/route.js +12 -13
  25. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  26. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  27. package/.next/server/app/api/repositories/clone/route.js +1 -1
  28. package/.next/server/app/api/repositories/route.js +1 -1
  29. package/.next/server/app/api/repositories/scan/route.js +1 -1
  30. package/.next/server/app/api/repositories/sync/route.js +1 -1
  31. package/.next/server/app/api/slash-commands.body +1 -1
  32. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  33. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  34. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  35. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  36. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  37. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  38. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  39. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  40. package/.next/server/app/api/worktrees/[id]/logs/route.js +7 -7
  41. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  42. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  43. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  44. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  45. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  46. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  47. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  48. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  49. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  50. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  51. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  52. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  53. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  54. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  55. package/.next/server/app/api/worktrees/route.js +1 -1
  56. package/.next/server/app/index.html +2 -2
  57. package/.next/server/app/index.rsc +2 -2
  58. package/.next/server/app/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/proxy/[...path]/route.js +12 -13
  60. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/worktrees/[id]/page.js +3 -3
  62. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/worktrees/[id]/simple-terminal/page_client-reference-manifest.js +1 -1
  64. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app-paths-manifest.json +10 -10
  66. package/.next/server/chunks/1318.js +4 -4
  67. package/.next/server/chunks/1528.js +1 -1
  68. package/.next/server/chunks/7425.js +97 -48
  69. package/.next/server/chunks/9723.js +1 -1
  70. package/.next/server/functions-config-manifest.json +1 -1
  71. package/.next/server/middleware-manifest.json +5 -5
  72. package/.next/server/pages/404.html +1 -1
  73. package/.next/server/pages/500.html +1 -1
  74. package/.next/server/server-reference-manifest.json +1 -1
  75. package/.next/server/src/middleware.js +2 -2
  76. package/.next/server/src/middleware.js.map +1 -1
  77. package/.next/static/chunks/app/worktrees/[id]/page-720605c2fb074444.js +1 -0
  78. package/.next/trace +5 -5
  79. package/dist/cli/commands/init.d.ts.map +1 -1
  80. package/dist/cli/commands/init.js +6 -4
  81. package/dist/cli/commands/start.d.ts +2 -0
  82. package/dist/cli/commands/start.d.ts.map +1 -1
  83. package/dist/cli/commands/start.js +64 -17
  84. package/dist/cli/commands/status.d.ts +4 -1
  85. package/dist/cli/commands/status.d.ts.map +1 -1
  86. package/dist/cli/commands/status.js +95 -6
  87. package/dist/cli/commands/stop.d.ts +2 -0
  88. package/dist/cli/commands/stop.d.ts.map +1 -1
  89. package/dist/cli/commands/stop.js +27 -10
  90. package/dist/cli/index.js +16 -2
  91. package/dist/cli/types/index.d.ts +20 -0
  92. package/dist/cli/types/index.d.ts.map +1 -1
  93. package/dist/cli/utils/daemon-factory.d.ts +105 -0
  94. package/dist/cli/utils/daemon-factory.d.ts.map +1 -0
  95. package/dist/cli/utils/daemon-factory.js +117 -0
  96. package/dist/cli/utils/daemon.d.ts.map +1 -1
  97. package/dist/cli/utils/daemon.js +4 -0
  98. package/dist/cli/utils/env-setup.d.ts +24 -12
  99. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  100. package/dist/cli/utils/env-setup.js +64 -43
  101. package/dist/cli/utils/input-validators.d.ts +103 -0
  102. package/dist/cli/utils/input-validators.d.ts.map +1 -0
  103. package/dist/cli/utils/input-validators.js +163 -0
  104. package/dist/cli/utils/install-context.d.ts +53 -0
  105. package/dist/cli/utils/install-context.d.ts.map +1 -0
  106. package/dist/cli/utils/install-context.js +96 -0
  107. package/dist/cli/utils/pid-manager.d.ts +34 -0
  108. package/dist/cli/utils/pid-manager.d.ts.map +1 -1
  109. package/dist/cli/utils/pid-manager.js +43 -0
  110. package/dist/cli/utils/port-allocator.d.ts +108 -0
  111. package/dist/cli/utils/port-allocator.d.ts.map +1 -0
  112. package/dist/cli/utils/port-allocator.js +166 -0
  113. package/dist/cli/utils/resource-resolvers.d.ts +92 -0
  114. package/dist/cli/utils/resource-resolvers.d.ts.map +1 -0
  115. package/dist/cli/utils/resource-resolvers.js +175 -0
  116. package/dist/cli/utils/worktree-detector.d.ts +82 -0
  117. package/dist/cli/utils/worktree-detector.d.ts.map +1 -0
  118. package/dist/cli/utils/worktree-detector.js +221 -0
  119. package/dist/lib/errors.d.ts +111 -0
  120. package/dist/lib/errors.d.ts.map +1 -0
  121. package/dist/lib/errors.js +153 -0
  122. package/dist/server/server.js +3 -0
  123. package/dist/server/src/cli/utils/install-context.js +96 -0
  124. package/dist/server/src/config/system-directories.js +40 -0
  125. package/dist/server/src/lib/auto-yes-manager.js +325 -0
  126. package/dist/server/src/lib/auto-yes-resolver.js +34 -0
  127. package/dist/server/src/lib/cli-patterns.js +6 -1
  128. package/dist/server/src/lib/db-instance.js +12 -2
  129. package/dist/server/src/lib/db-migrations.js +68 -1
  130. package/dist/server/src/lib/db-path-resolver.js +99 -0
  131. package/dist/server/src/lib/db.js +21 -0
  132. package/dist/server/src/lib/env.js +52 -3
  133. package/dist/server/src/lib/worktrees.js +36 -1
  134. package/dist/server/src/types/external-apps.js +20 -0
  135. package/package.json +1 -1
  136. package/.next/static/chunks/app/worktrees/[id]/page-aea2d5e7e28955be.js +0 -1
  137. /package/.next/static/chunks/app/{page-96a8aa2ec30a44e9.js → page-fe35d61f14b90a51.js} +0 -0
  138. /package/.next/static/{8o5rUyZun0GklIHWDgkmv → gRNW5YXY43KqCKbCdaJoJ}/_buildManifest.js +0 -0
  139. /package/.next/static/{8o5rUyZun0GklIHWDgkmv → gRNW5YXY43KqCKbCdaJoJ}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=7425,exports.ids=[7425],exports.modules={97425:(e,t,s)=>{s.d(t,{n:()=>T});var r=s(85890),a=s.n(r),o=s(55315),i=s.n(o),E=s(75748);let _=[{version:1,name:"initial-schema",up:e=>{(0,E.qZ)(e)},down:e=>{e.exec("DROP TABLE IF EXISTS session_states;"),e.exec("DROP TABLE IF EXISTS chat_messages;"),e.exec("DROP TABLE IF EXISTS worktrees;")}},{version:2,name:"add-multi-repo-and-memo-support",up:e=>{e.exec(`
1
+ "use strict";exports.id=7425,exports.ids=[7425],exports.modules={97425:(e,t,r)=>{r.d(t,{n:()=>p});var s=r(85890),a=r.n(s),o=r(55315),i=r.n(o),_=r(75748);let n=[{version:1,name:"initial-schema",up:e=>{(0,_.qZ)(e)},down:e=>{e.exec("DROP TABLE IF EXISTS session_states;"),e.exec("DROP TABLE IF EXISTS chat_messages;"),e.exec("DROP TABLE IF EXISTS worktrees;")}},{version:2,name:"add-multi-repo-and-memo-support",up:e=>{e.exec(`
2
2
  ALTER TABLE worktrees ADD COLUMN repository_path TEXT;
3
3
  ALTER TABLE worktrees ADD COLUMN repository_name TEXT;
4
4
  ALTER TABLE worktrees ADD COLUMN memo TEXT;
@@ -7,23 +7,23 @@
7
7
  `),e.exec(`
8
8
  CREATE INDEX IF NOT EXISTS idx_worktrees_repository
9
9
  ON worktrees(repository_path);
10
- `);let t=e.prepare("SELECT id, path FROM worktrees").all(),s=e.prepare(`
10
+ `);let t=e.prepare("SELECT id, path FROM worktrees").all(),r=e.prepare(`
11
11
  UPDATE worktrees
12
12
  SET repository_path = ?,
13
13
  repository_name = ?
14
14
  WHERE id = ?
15
- `);for(let e of t){let t=n(e.path),r=i().basename(t);s.run(t,r,e.id)}let r=e.prepare(`
15
+ `);for(let e of t){let t=E(e.path),s=i().basename(t);r.run(t,s,e.id)}let s=e.prepare(`
16
16
  UPDATE worktrees
17
17
  SET last_user_message = ?,
18
18
  last_user_message_at = ?
19
19
  WHERE id = ?
20
- `);for(let s of t){let t=e.prepare(`
20
+ `);for(let r of t){let t=e.prepare(`
21
21
  SELECT content, timestamp
22
22
  FROM chat_messages
23
23
  WHERE worktree_id = ? AND role = 'user'
24
24
  ORDER BY timestamp DESC
25
25
  LIMIT 1
26
- `).get(s.id);if(t){let e=t.content.substring(0,200);r.run(e,t.timestamp,s.id)}}},down:e=>{e.exec(`
26
+ `).get(r.id);if(t){let e=t.content.substring(0,200);s.run(e,t.timestamp,r.id)}}},down:e=>{e.exec(`
27
27
  -- Create backup table
28
28
  CREATE TABLE worktrees_backup AS
29
29
  SELECT id, name, path, last_message_summary, updated_at
@@ -51,12 +51,12 @@
51
51
 
52
52
  -- Drop index
53
53
  DROP INDEX IF EXISTS idx_worktrees_repository;
54
- `)}},{version:3,name:"fix-worktree-repository-paths",up:e=>{let t=e.prepare("SELECT id, path FROM worktrees").all(),s=e.prepare(`
54
+ `)}},{version:3,name:"fix-worktree-repository-paths",up:e=>{let t=e.prepare("SELECT id, path FROM worktrees").all(),r=e.prepare(`
55
55
  UPDATE worktrees
56
56
  SET repository_path = ?,
57
57
  repository_name = ?
58
58
  WHERE id = ?
59
- `);for(let e of t){let t=n(e.path),r=i().basename(t);s.run(t,r,e.id)}},down:()=>{console.log("No rollback needed for repository path fix")}},{version:4,name:"add-favorite-field",up:e=>{e.exec(`
59
+ `);for(let e of t){let t=E(e.path),s=i().basename(t);r.run(t,s,e.id)}},down:()=>{console.log("No rollback needed for repository path fix")}},{version:4,name:"add-favorite-field",up:e=>{e.exec(`
60
60
  ALTER TABLE worktrees ADD COLUMN favorite INTEGER DEFAULT 0;
61
61
  `),e.exec(`
62
62
  CREATE INDEX IF NOT EXISTS idx_worktrees_favorite
@@ -175,12 +175,12 @@
175
175
  `),e.exec(`
176
176
  CREATE INDEX idx_worktree_memos_worktree
177
177
  ON worktree_memos(worktree_id, position);
178
- `);let{randomUUID:t}=s(84770),r=e.prepare(`
178
+ `);let{randomUUID:t}=r(84770),s=e.prepare(`
179
179
  SELECT id, memo FROM worktrees WHERE memo IS NOT NULL AND memo != ''
180
180
  `).all(),a=e.prepare(`
181
181
  INSERT INTO worktree_memos (id, worktree_id, title, content, position, created_at, updated_at)
182
182
  VALUES (?, ?, 'Memo', ?, 0, ?, ?)
183
- `),o=Date.now();for(let e of r)a.run(t(),e.id,e.memo,o,o);console.log(`āœ“ Created worktree_memos table`),console.log(`āœ“ Migrated ${r.length} existing memos to new table`)},down:e=>{e.exec("DROP TABLE IF EXISTS worktree_memos"),console.log("āœ“ Dropped worktree_memos table")}},{version:11,name:"add-viewed-tracking",up:e=>{e.exec(`
183
+ `),o=Date.now();for(let e of s)a.run(t(),e.id,e.memo,o,o);console.log(`āœ“ Created worktree_memos table`),console.log(`āœ“ Migrated ${s.length} existing memos to new table`)},down:e=>{e.exec("DROP TABLE IF EXISTS worktree_memos"),console.log("āœ“ Dropped worktree_memos table")}},{version:11,name:"add-viewed-tracking",up:e=>{e.exec(`
184
184
  ALTER TABLE worktrees ADD COLUMN last_viewed_at TEXT;
185
185
  `),e.exec(`
186
186
  CREATE INDEX IF NOT EXISTS idx_chat_messages_assistant_latest
@@ -325,16 +325,63 @@
325
325
 
326
326
  CREATE INDEX IF NOT EXISTS idx_worktrees_cli_tool
327
327
  ON worktrees(cli_tool_id);
328
- `),console.log("āœ“ Removed initial_branch column from worktrees table")}}];function n(e){let t=s(92048),r=e;for(;r!==i().dirname(r);){let e=i().join(r,".git");if(t.existsSync(e)){let s=t.statSync(e);if(s.isDirectory())return r;if(s.isFile()){let s=t.readFileSync(e,"utf-8").trim().match(/^gitdir:\s*(.+)$/);if(s)return s[1].split("/.git/")[0]}}r=i().dirname(r)}return e}function l(e){try{let t=e.prepare("SELECT MAX(version) as version FROM schema_version").get();return t?.version??0}catch{return 0}}let d=null;function T(){if(!d){let e=process.env.DATABASE_PATH||i().join(process.cwd(),"data","db.sqlite"),t=s(92048),r=i().dirname(e);t.existsSync(r)||t.mkdirSync(r,{recursive:!0}),function(e){!function(e){e.exec(`
328
+ `),console.log("āœ“ Removed initial_branch column from worktrees table")}},{version:16,name:"add-issue-no-to-external-apps",up:e=>{e.exec(`
329
+ ALTER TABLE external_apps ADD COLUMN issue_no INTEGER;
330
+ `),e.exec(`
331
+ CREATE INDEX IF NOT EXISTS idx_external_apps_issue_no ON external_apps(issue_no);
332
+ `),console.log("āœ“ Added issue_no column to external_apps table"),console.log("āœ“ Created index idx_external_apps_issue_no")},down:e=>{e.exec(`
333
+ -- 1. Create backup table without issue_no
334
+ CREATE TABLE external_apps_backup AS
335
+ SELECT id, name, display_name, description, path_prefix, target_port,
336
+ target_host, app_type, websocket_enabled, websocket_path_pattern,
337
+ enabled, created_at, updated_at
338
+ FROM external_apps;
339
+
340
+ -- 2. Drop original table (this also drops indexes)
341
+ DROP TABLE external_apps;
342
+
343
+ -- 3. Recreate table without issue_no
344
+ CREATE TABLE external_apps (
345
+ id TEXT PRIMARY KEY,
346
+ name TEXT NOT NULL UNIQUE,
347
+ display_name TEXT NOT NULL,
348
+ description TEXT,
349
+ path_prefix TEXT NOT NULL UNIQUE,
350
+ target_port INTEGER NOT NULL,
351
+ target_host TEXT DEFAULT 'localhost',
352
+ app_type TEXT NOT NULL CHECK(app_type IN ('sveltekit', 'streamlit', 'nextjs', 'other')),
353
+ websocket_enabled INTEGER DEFAULT 0,
354
+ websocket_path_pattern TEXT,
355
+ enabled INTEGER DEFAULT 1,
356
+ created_at INTEGER NOT NULL,
357
+ updated_at INTEGER NOT NULL
358
+ );
359
+
360
+ -- 4. Restore data
361
+ INSERT INTO external_apps (id, name, display_name, description, path_prefix,
362
+ target_port, target_host, app_type, websocket_enabled, websocket_path_pattern,
363
+ enabled, created_at, updated_at)
364
+ SELECT id, name, display_name, description, path_prefix,
365
+ target_port, target_host, app_type, websocket_enabled, websocket_path_pattern,
366
+ enabled, created_at, updated_at
367
+ FROM external_apps_backup;
368
+
369
+ -- 5. Drop backup
370
+ DROP TABLE external_apps_backup;
371
+
372
+ -- 6. Recreate original indexes
373
+ CREATE INDEX idx_external_apps_path_prefix ON external_apps(path_prefix);
374
+ CREATE INDEX idx_external_apps_enabled ON external_apps(enabled);
375
+ `),console.log("āœ“ Removed issue_no column from external_apps table")}}];function E(e){let t=r(92048),s=e;for(;s!==i().dirname(s);){let e=i().join(s,".git");if(t.existsSync(e)){let r=t.statSync(e);if(r.isDirectory())return s;if(r.isFile()){let r=t.readFileSync(e,"utf-8").trim().match(/^gitdir:\s*(.+)$/);if(r)return r[1].split("/.git/")[0]}}s=i().dirname(s)}return e}function l(e){try{let t=e.prepare("SELECT MAX(version) as version FROM schema_version").get();return t?.version??0}catch{return 0}}var d=r(93346);let T=null;function p(){if(!T){let e=(0,d.dU)().CM_DB_PATH,t=r(92048),s=i().dirname(e);t.existsSync(s)||t.mkdirSync(s,{recursive:!0,mode:448}),function(e){!function(e){e.exec(`
329
376
  CREATE TABLE IF NOT EXISTS schema_version (
330
377
  version INTEGER PRIMARY KEY,
331
378
  name TEXT NOT NULL,
332
379
  applied_at INTEGER NOT NULL
333
380
  );
334
- `)}(e);let t=l(e);console.log(`Current schema version: ${t}`);let s=_.filter(e=>e.version>t);if(0===s.length){console.log("āœ“ Schema is up to date");return}for(let t of(console.log(`Found ${s.length} pending migration(s)`),s)){console.log(`Applying migration ${t.version}: ${t.name}...`);try{e.transaction(()=>{t.up(e),e.prepare(`
381
+ `)}(e);let t=l(e);console.log(`Current schema version: ${t}`);let r=n.filter(e=>e.version>t);if(0===r.length){console.log("āœ“ Schema is up to date");return}for(let t of(console.log(`Found ${r.length} pending migration(s)`),r)){console.log(`Applying migration ${t.version}: ${t.name}...`);try{e.transaction(()=>{t.up(e),e.prepare(`
335
382
  INSERT INTO schema_version (version, name, applied_at)
336
383
  VALUES (?, ?, ?)
337
- `).run(t.version,t.name,Date.now())})(),console.log(`āœ“ Migration ${t.version} applied successfully`)}catch(s){let e=s instanceof Error?s.message:String(s);throw console.error(`āœ— Migration ${t.version} failed:`,e),Error(`Migration ${t.version} (${t.name}) failed: ${e}`)}}console.log(`āœ“ All migrations completed. Current version: ${l(e)}`)}(d=new(a())(e))}return d}},75748:(e,t,s)=>{s.d(t,{DF:()=>M,Db:()=>C,ER:()=>E,Ek:()=>F,GA:()=>A,GP:()=>O,HE:()=>u,IH:()=>w,Mf:()=>L,Nf:()=>D,Nr:()=>x,OK:()=>g,Of:()=>T,Pv:()=>v,Q7:()=>y,R3:()=>S,S$:()=>I,VW:()=>k,Xv:()=>i,ZI:()=>U,_U:()=>m,_e:()=>f,dD:()=>h,gU:()=>_,j8:()=>R,ly:()=>n,qZ:()=>o,tn:()=>p,vX:()=>c,xr:()=>l,y:()=>d,zl:()=>N});var r=s(84770);function a(e){return{id:e.id,worktreeId:e.worktree_id,role:e.role,content:e.content,summary:e.summary||void 0,timestamp:new Date(e.timestamp),logFileName:e.log_file_name||void 0,requestId:e.request_id||void 0,messageType:e.message_type||"normal",promptData:e.prompt_data?JSON.parse(e.prompt_data):void 0,cliToolId:e.cli_tool_id??"claude"}}function o(e){e.exec(`
384
+ `).run(t.version,t.name,Date.now())})(),console.log(`āœ“ Migration ${t.version} applied successfully`)}catch(r){let e=r instanceof Error?r.message:String(r);throw console.error(`āœ— Migration ${t.version} failed:`,e),Error(`Migration ${t.version} (${t.name}) failed: ${e}`)}}console.log(`āœ“ All migrations completed. Current version: ${l(e)}`)}(T=new(a())(e))}return T}},75748:(e,t,r)=>{r.d(t,{DF:()=>b,Db:()=>h,ER:()=>_,Ek:()=>M,GA:()=>A,GP:()=>g,HE:()=>u,IH:()=>L,Mf:()=>R,Nf:()=>S,Nr:()=>U,OK:()=>I,Of:()=>T,Pv:()=>y,Q7:()=>F,R3:()=>D,S$:()=>O,VW:()=>k,Xv:()=>i,ZI:()=>X,_U:()=>c,_e:()=>f,dD:()=>x,gU:()=>n,j8:()=>w,ly:()=>E,pM:()=>v,qZ:()=>o,tn:()=>p,vX:()=>m,xr:()=>l,y:()=>d,zl:()=>N});var s=r(84770);function a(e){return{id:e.id,worktreeId:e.worktree_id,role:e.role,content:e.content,summary:e.summary||void 0,timestamp:new Date(e.timestamp),logFileName:e.log_file_name||void 0,requestId:e.request_id||void 0,messageType:e.message_type||"normal",promptData:e.prompt_data?JSON.parse(e.prompt_data):void 0,cliToolId:e.cli_tool_id??"claude"}}function o(e){e.exec(`
338
385
  CREATE TABLE IF NOT EXISTS worktrees (
339
386
  id TEXT PRIMARY KEY,
340
387
  name TEXT NOT NULL,
@@ -382,7 +429,7 @@
382
429
  PRIMARY KEY (worktree_id, cli_tool_id),
383
430
  FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
384
431
  );
385
- `)}function i(e,t){let s=`
432
+ `)}function i(e,t){let r=`
386
433
  SELECT
387
434
  w.id, w.name, w.path, w.repository_path, w.repository_name, w.description,
388
435
  w.last_user_message, w.last_user_message_at, w.last_message_summary,
@@ -390,7 +437,7 @@
390
437
  (SELECT MAX(timestamp) FROM chat_messages
391
438
  WHERE worktree_id = w.id AND role = 'assistant') as last_assistant_message_at
392
439
  FROM worktrees w
393
- `,r=[];t&&(s+=" WHERE w.repository_path = ?",r.push(t)),s+=" ORDER BY w.updated_at DESC NULLS LAST";let a=e.prepare(s).all(...r),o=function(e,t){if(0===t.length)return new Map;let s=t.map(()=>"?").join(","),r=e.prepare(`
440
+ `,s=[];t&&(r+=" WHERE w.repository_path = ?",s.push(t)),r+=" ORDER BY w.updated_at DESC NULLS LAST";let a=e.prepare(r).all(...s),o=function(e,t){if(0===t.length)return new Map;let r=t.map(()=>"?").join(","),s=e.prepare(`
394
441
  WITH ranked_messages AS (
395
442
  SELECT
396
443
  worktree_id,
@@ -401,14 +448,14 @@
401
448
  ORDER BY timestamp DESC
402
449
  ) as rn
403
450
  FROM chat_messages
404
- WHERE worktree_id IN (${s})
451
+ WHERE worktree_id IN (${r})
405
452
  AND role = 'user'
406
453
  AND cli_tool_id IN ('claude', 'codex', 'gemini')
407
454
  )
408
455
  SELECT worktree_id, cli_tool_id, content
409
456
  FROM ranked_messages
410
457
  WHERE rn = 1
411
- `).all(...t),a=new Map;for(let e of t)a.set(e,{});for(let e of r){let t=a.get(e.worktree_id)||{};t[e.cli_tool_id]=e.content.substring(0,50),a.set(e.worktree_id,t)}return a}(e,a.map(e=>e.id));return a.map(e=>{let t=o.get(e.id)||{};return{id:e.id,name:e.name,path:e.path,repositoryPath:e.repository_path||"",repositoryName:e.repository_name||"",description:e.description||void 0,lastUserMessage:e.last_user_message||void 0,lastUserMessageAt:e.last_user_message_at?new Date(e.last_user_message_at):void 0,lastMessageSummary:e.last_message_summary||void 0,lastMessagesByCli:t,updatedAt:e.updated_at?new Date(e.updated_at):void 0,lastViewedAt:e.last_viewed_at?new Date(e.last_viewed_at):void 0,lastAssistantMessageAt:e.last_assistant_message_at?new Date(e.last_assistant_message_at):void 0,favorite:1===e.favorite,status:e.status||null,link:e.link||void 0,cliToolId:e.cli_tool_id??"claude"}})}function E(e){return e.prepare(`
458
+ `).all(...t),a=new Map;for(let e of t)a.set(e,{});for(let e of s){let t=a.get(e.worktree_id)||{};t[e.cli_tool_id]=e.content.substring(0,50),a.set(e.worktree_id,t)}return a}(e,a.map(e=>e.id));return a.map(e=>{let t=o.get(e.id)||{};return{id:e.id,name:e.name,path:e.path,repositoryPath:e.repository_path||"",repositoryName:e.repository_name||"",description:e.description||void 0,lastUserMessage:e.last_user_message||void 0,lastUserMessageAt:e.last_user_message_at?new Date(e.last_user_message_at):void 0,lastMessageSummary:e.last_message_summary||void 0,lastMessagesByCli:t,updatedAt:e.updated_at?new Date(e.updated_at):void 0,lastViewedAt:e.last_viewed_at?new Date(e.last_viewed_at):void 0,lastAssistantMessageAt:e.last_assistant_message_at?new Date(e.last_assistant_message_at):void 0,favorite:1===e.favorite,status:e.status||null,link:e.link||void 0,cliToolId:e.cli_tool_id??"claude"}})}function _(e){return e.prepare(`
412
459
  SELECT
413
460
  repository_path as path,
414
461
  repository_name as name,
@@ -417,7 +464,7 @@
417
464
  WHERE repository_path IS NOT NULL
418
465
  GROUP BY repository_path, repository_name
419
466
  ORDER BY repository_name ASC
420
- `).all().map(e=>({path:e.path,name:e.name,worktreeCount:e.worktree_count}))}function _(e,t){let s=e.prepare(`
467
+ `).all().map(e=>({path:e.path,name:e.name,worktreeCount:e.worktree_count}))}function n(e,t){let r=e.prepare(`
421
468
  SELECT
422
469
  w.id, w.name, w.path, w.repository_path, w.repository_name, w.description,
423
470
  w.last_user_message, w.last_user_message_at, w.last_message_summary,
@@ -426,7 +473,7 @@
426
473
  WHERE worktree_id = w.id AND role = 'assistant') as last_assistant_message_at
427
474
  FROM worktrees w
428
475
  WHERE w.id = ?
429
- `).get(t);return s?{id:s.id,name:s.name,path:s.path,repositoryPath:s.repository_path||"",repositoryName:s.repository_name||"",description:s.description||void 0,lastUserMessage:s.last_user_message||void 0,lastUserMessageAt:s.last_user_message_at?new Date(s.last_user_message_at):void 0,lastMessageSummary:s.last_message_summary||void 0,updatedAt:s.updated_at?new Date(s.updated_at):void 0,lastViewedAt:s.last_viewed_at?new Date(s.last_viewed_at):void 0,lastAssistantMessageAt:s.last_assistant_message_at?new Date(s.last_assistant_message_at):void 0,favorite:1===s.favorite,status:s.status||null,link:s.link||void 0,cliToolId:s.cli_tool_id??"claude"}:null}function n(e,t){e.prepare("DELETE FROM worktrees WHERE path = ? AND id != ?").run(t.path,t.id),e.prepare(`
476
+ `).get(t);return r?{id:r.id,name:r.name,path:r.path,repositoryPath:r.repository_path||"",repositoryName:r.repository_name||"",description:r.description||void 0,lastUserMessage:r.last_user_message||void 0,lastUserMessageAt:r.last_user_message_at?new Date(r.last_user_message_at):void 0,lastMessageSummary:r.last_message_summary||void 0,updatedAt:r.updated_at?new Date(r.updated_at):void 0,lastViewedAt:r.last_viewed_at?new Date(r.last_viewed_at):void 0,lastAssistantMessageAt:r.last_assistant_message_at?new Date(r.last_assistant_message_at):void 0,favorite:1===r.favorite,status:r.status||null,link:r.link||void 0,cliToolId:r.cli_tool_id??"claude"}:null}function E(e,t){e.prepare("DELETE FROM worktrees WHERE path = ? AND id != ?").run(t.path,t.id),e.prepare(`
430
477
  INSERT INTO worktrees (
431
478
  id, name, path, repository_path, repository_name, description,
432
479
  last_user_message, last_user_message_at, last_message_summary, updated_at, cli_tool_id
@@ -443,73 +490,73 @@
443
490
  last_message_summary = COALESCE(excluded.last_message_summary, worktrees.last_message_summary),
444
491
  updated_at = COALESCE(excluded.updated_at, worktrees.updated_at),
445
492
  cli_tool_id = COALESCE(excluded.cli_tool_id, worktrees.cli_tool_id)
446
- `).run(t.id,t.name,t.path,t.repositoryPath||null,t.repositoryName||null,t.description||null,t.lastUserMessage||null,t.lastUserMessageAt?.getTime()||null,t.lastMessageSummary||null,t.updatedAt?.getTime()||null,t.cliToolId||"claude")}function l(e,t,s){e.prepare(`
493
+ `).run(t.id,t.name,t.path,t.repositoryPath||null,t.repositoryName||null,t.description||null,t.lastUserMessage||null,t.lastUserMessageAt?.getTime()||null,t.lastMessageSummary||null,t.updatedAt?.getTime()||null,t.cliToolId||"claude")}function l(e,t,r){e.prepare(`
447
494
  UPDATE worktrees
448
495
  SET description = ?
449
496
  WHERE id = ?
450
- `).run(s||null,t)}function d(e,t,s){e.prepare(`
497
+ `).run(r||null,t)}function d(e,t,r){e.prepare(`
451
498
  UPDATE worktrees
452
499
  SET link = ?
453
500
  WHERE id = ?
454
- `).run(s||null,t)}function T(e,t,s){e.prepare(`
501
+ `).run(r||null,t)}function T(e,t,r){e.prepare(`
455
502
  UPDATE worktrees
456
503
  SET last_viewed_at = ?
457
504
  WHERE id = ?
458
- `).run(s.toISOString(),t)}function p(e,t){let s=(0,r.randomUUID)();return e.prepare(`
505
+ `).run(r.toISOString(),t)}function p(e,t){let r=(0,s.randomUUID)();return e.prepare(`
459
506
  INSERT INTO chat_messages
460
507
  (id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id)
461
508
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
462
- `).run(s,t.worktreeId,t.role,t.content,t.summary||null,t.timestamp.getTime(),t.logFileName||null,t.requestId||null,t.messageType||"normal",t.promptData?JSON.stringify(t.promptData):null,t.cliToolId||"claude"),function(e,t,s){e.prepare(`
509
+ `).run(r,t.worktreeId,t.role,t.content,t.summary||null,t.timestamp.getTime(),t.logFileName||null,t.requestId||null,t.messageType||"normal",t.promptData?JSON.stringify(t.promptData):null,t.cliToolId||"claude"),function(e,t,r){e.prepare(`
463
510
  UPDATE worktrees
464
511
  SET updated_at = ?
465
512
  WHERE id = ?
466
- `).run(s.getTime(),t)}(e,t.worktreeId,t.timestamp),"user"===t.role&&g(e,t.worktreeId,t.content,t.timestamp),{id:s,...t}}function m(e,t,s,r=50,o){let i=`
513
+ `).run(r.getTime(),t)}(e,t.worktreeId,t.timestamp),"user"===t.role&&I(e,t.worktreeId,t.content,t.timestamp),{id:r,...t}}function c(e,t,r,s=50,o){let i=`
467
514
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id
468
515
  FROM chat_messages
469
516
  WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)
470
- `,E=[t,s?.getTime()||null,s?.getTime()||null];return o&&(i+=" AND cli_tool_id = ?",E.push(o)),i+=" ORDER BY timestamp DESC LIMIT ?",E.push(r),e.prepare(i).all(...E).map(a)}function c(e,t){let s=e.prepare(`
517
+ `,_=[t,r?.getTime()||null,r?.getTime()||null];return o&&(i+=" AND cli_tool_id = ?",_.push(o)),i+=" ORDER BY timestamp DESC LIMIT ?",_.push(s),e.prepare(i).all(..._).map(a)}function m(e,t){let r=e.prepare(`
471
518
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id
472
519
  FROM chat_messages
473
520
  WHERE worktree_id = ? AND role = 'user'
474
521
  ORDER BY timestamp DESC
475
522
  LIMIT 1
476
- `).get(t);return s?a(s):null}function u(e,t){e.prepare(`
523
+ `).get(t);return r?a(r):null}function u(e,t){e.prepare(`
477
524
  DELETE FROM chat_messages
478
525
  WHERE worktree_id = ?
479
- `).run(t),console.log(`[deleteAllMessages] Deleted all messages for worktree: ${t}`)}function N(e,t,s="claude"){let r=e.prepare(`
526
+ `).run(t),console.log(`[deleteAllMessages] Deleted all messages for worktree: ${t}`)}function N(e,t,r="claude"){let s=e.prepare(`
480
527
  SELECT worktree_id, cli_tool_id, last_captured_line, in_progress_message_id
481
528
  FROM session_states
482
529
  WHERE worktree_id = ? AND cli_tool_id = ?
483
- `).get(t,s);return r?{worktreeId:r.worktree_id,cliToolId:r.cli_tool_id,lastCapturedLine:r.last_captured_line,inProgressMessageId:r.in_progress_message_id||null}:null}function w(e,t,s,r){e.prepare(`
530
+ `).get(t,r);return s?{worktreeId:s.worktree_id,cliToolId:s.cli_tool_id,lastCapturedLine:s.last_captured_line,inProgressMessageId:s.in_progress_message_id||null}:null}function L(e,t,r,s){e.prepare(`
484
531
  INSERT INTO session_states (worktree_id, cli_tool_id, last_captured_line)
485
532
  VALUES (?, ?, ?)
486
533
  ON CONFLICT(worktree_id, cli_tool_id) DO UPDATE SET
487
534
  last_captured_line = excluded.last_captured_line
488
- `).run(t,s,r)}function L(e,t,s){!function(e,t,s,r){e.prepare(`
535
+ `).run(t,r,s)}function R(e,t,r){!function(e,t,r,s){e.prepare(`
489
536
  INSERT INTO session_states (worktree_id, cli_tool_id, last_captured_line, in_progress_message_id)
490
537
  VALUES (?, ?, 0, ?)
491
538
  ON CONFLICT(worktree_id, cli_tool_id) DO UPDATE SET
492
539
  in_progress_message_id = excluded.in_progress_message_id
493
- `).run(t,s,null)}(e,t,s,0)}function R(e,t,s){s?e.prepare(`
540
+ `).run(t,r,null)}(e,t,r,0)}function w(e,t,r){r?e.prepare(`
494
541
  DELETE FROM session_states
495
542
  WHERE worktree_id = ? AND cli_tool_id = ?
496
- `).run(t,s):e.prepare(`
543
+ `).run(t,r):e.prepare(`
497
544
  DELETE FROM session_states
498
545
  WHERE worktree_id = ?
499
- `).run(t)}function g(e,t,s,r){let a=e.prepare(`
546
+ `).run(t)}function I(e,t,r,s){let a=e.prepare(`
500
547
  UPDATE worktrees
501
548
  SET last_user_message = ?,
502
549
  last_user_message_at = ?
503
550
  WHERE id = ?
504
- `),o=s.substring(0,200);a.run(o,r.getTime(),t)}function I(e,t){let s=e.prepare(`
551
+ `),o=r.substring(0,200);a.run(o,s.getTime(),t)}function O(e,t){let r=e.prepare(`
505
552
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id
506
553
  FROM chat_messages
507
554
  WHERE id = ?
508
- `).get(t);return s?a(s):null}function A(e,t,s){e.prepare(`
555
+ `).get(t);return r?a(r):null}function A(e,t,r){e.prepare(`
509
556
  UPDATE chat_messages
510
557
  SET prompt_data = ?
511
558
  WHERE id = ?
512
- `).run(JSON.stringify(s),t)}function O(e,t,s){let r=e.prepare(`
559
+ `).run(JSON.stringify(r),t)}function g(e,t,r){let s=e.prepare(`
513
560
  SELECT id, prompt_data
514
561
  FROM chat_messages
515
562
  WHERE worktree_id = ?
@@ -517,51 +564,53 @@
517
564
  AND message_type = 'prompt'
518
565
  AND json_extract(prompt_data, '$.status') = 'pending'
519
566
  ORDER BY timestamp DESC
520
- `).all(t,s);if(0===r.length)return 0;let a=e.prepare(`
567
+ `).all(t,r);if(0===s.length)return 0;let a=e.prepare(`
521
568
  UPDATE chat_messages
522
569
  SET prompt_data = ?
523
570
  WHERE id = ?
524
- `),o=0;for(let e of r)try{let t=JSON.parse(e.prompt_data);t.status="answered",t.answer="(answered via terminal)",t.answeredAt=new Date().toISOString(),a.run(JSON.stringify(t),e.id),o++}catch{}return o}function S(e,t,s){e.prepare(`
571
+ `),o=0;for(let e of s)try{let t=JSON.parse(e.prompt_data);t.status="answered",t.answer="(answered via terminal)",t.answeredAt=new Date().toISOString(),a.run(JSON.stringify(t),e.id),o++}catch{}return o}function D(e,t,r){e.prepare(`
525
572
  UPDATE worktrees
526
573
  SET favorite = ?
527
574
  WHERE id = ?
528
- `).run(s?1:0,t)}function D(e,t,s){e.prepare(`
575
+ `).run(r?1:0,t)}function S(e,t,r){e.prepare(`
529
576
  UPDATE worktrees
530
577
  SET status = ?
531
578
  WHERE id = ?
532
- `).run(s,t)}function k(e,t,s){e.prepare(`
579
+ `).run(r,t)}function k(e,t,r){e.prepare(`
533
580
  UPDATE worktrees
534
581
  SET cli_tool_id = ?
535
582
  WHERE id = ?
536
- `).run(s,t)}function X(e){return{id:e.id,worktreeId:e.worktree_id,title:e.title,content:e.content,position:e.position,createdAt:new Date(e.created_at),updatedAt:new Date(e.updated_at)}}function C(e,t){return e.prepare(`
583
+ `).run(r,t)}function C(e){return{id:e.id,worktreeId:e.worktree_id,title:e.title,content:e.content,position:e.position,createdAt:new Date(e.created_at),updatedAt:new Date(e.updated_at)}}function h(e,t){return e.prepare(`
537
584
  SELECT id, worktree_id, title, content, position, created_at, updated_at
538
585
  FROM worktree_memos
539
586
  WHERE worktree_id = ?
540
587
  ORDER BY position ASC
541
- `).all(t).map(X)}function U(e,t){let s=e.prepare(`
588
+ `).all(t).map(C)}function X(e,t){let r=e.prepare(`
542
589
  SELECT id, worktree_id, title, content, position, created_at, updated_at
543
590
  FROM worktree_memos
544
591
  WHERE id = ?
545
- `).get(t);return s?X(s):null}function h(e,t,s){let a=(0,r.randomUUID)(),o=Date.now(),i=s.title??"Memo",E=s.content??"";return e.prepare(`
592
+ `).get(t);return r?C(r):null}function x(e,t,r){let a=(0,s.randomUUID)(),o=Date.now(),i=r.title??"Memo",_=r.content??"";return e.prepare(`
546
593
  INSERT INTO worktree_memos (id, worktree_id, title, content, position, created_at, updated_at)
547
594
  VALUES (?, ?, ?, ?, ?, ?, ?)
548
- `).run(a,t,i,E,s.position,o,o),{id:a,worktreeId:t,title:i,content:E,position:s.position,createdAt:new Date(o),updatedAt:new Date(o)}}function x(e,t,s){let r=Date.now(),a=["updated_at = ?"],o=[r];void 0!==s.title&&(a.push("title = ?"),o.push(s.title)),void 0!==s.content&&(a.push("content = ?"),o.push(s.content)),o.push(t),e.prepare(`
595
+ `).run(a,t,i,_,r.position,o,o),{id:a,worktreeId:t,title:i,content:_,position:r.position,createdAt:new Date(o),updatedAt:new Date(o)}}function U(e,t,r){let s=Date.now(),a=["updated_at = ?"],o=[s];void 0!==r.title&&(a.push("title = ?"),o.push(r.title)),void 0!==r.content&&(a.push("content = ?"),o.push(r.content)),o.push(t),e.prepare(`
549
596
  UPDATE worktree_memos
550
597
  SET ${a.join(", ")}
551
598
  WHERE id = ?
552
599
  `).run(...o)}function f(e,t){e.prepare(`
553
600
  DELETE FROM worktree_memos
554
601
  WHERE id = ?
555
- `).run(t)}function F(e,t,s){e.prepare(`
602
+ `).run(t)}function M(e,t,r){e.prepare(`
556
603
  UPDATE worktrees
557
604
  SET initial_branch = ?
558
605
  WHERE id = ?
559
- `).run(s,t)}function y(e,t){let s=e.prepare(`
606
+ `).run(r,t)}function F(e,t){let r=e.prepare(`
560
607
  SELECT initial_branch
561
608
  FROM worktrees
562
609
  WHERE id = ?
563
- `).get(t);return s?.initial_branch??null}function v(e,t){return e.prepare(`
610
+ `).get(t);return r?.initial_branch??null}function y(e,t){return e.prepare(`
564
611
  SELECT id FROM worktrees WHERE repository_path = ?
565
- `).all(t).map(e=>e.id)}function M(e,t){return{deletedCount:e.prepare(`
612
+ `).all(t).map(e=>e.id)}function b(e,t){return{deletedCount:e.prepare(`
566
613
  DELETE FROM worktrees WHERE repository_path = ?
567
- `).run(t).changes}}}};
614
+ `).run(t).changes}}function v(e,t){if(0===t.length)return{deletedCount:0};let r=t.map(()=>"?").join(",");return{deletedCount:e.prepare(`
615
+ DELETE FROM worktrees WHERE id IN (${r})
616
+ `).run(...t).changes}}},93346:(e,t,r)=>{r.d(t,{dU:()=>m,Hb:()=>T,LI:()=>c});var s=r(55315),a=r.n(s),o=r(19801);function i(){let e=(0,s.dirname)(__dirname);return e.includes("/lib/node_modules/")||e.includes("\\node_modules\\")||e.includes("/node_modules/commandmate")}r(92048);let _=["/etc","/usr","/bin","/sbin","/var","/tmp","/dev","/sys","/proc"];function n(){return i()?a().join((0,o.homedir)(),".commandmate","data","cm.db"):a().resolve(process.cwd(),"data","cm.db")}function E(e){let t=a().resolve(e);if(i()){let e=(0,o.homedir)();if(!t.startsWith(e))throw Error(`Security error: DB path must be within home directory: ${t}`)}else if(_.some(e=>t.startsWith(e)))throw Error(`Security error: DB path cannot be in system directory: ${t}`);return t}let l={CM_ROOT_DIR:"MCBD_ROOT_DIR",CM_PORT:"MCBD_PORT",CM_BIND:"MCBD_BIND",CM_AUTH_TOKEN:"MCBD_AUTH_TOKEN",CM_LOG_LEVEL:"MCBD_LOG_LEVEL",CM_LOG_FORMAT:"MCBD_LOG_FORMAT",CM_LOG_DIR:"MCBD_LOG_DIR",CM_DB_PATH:"MCBD_DB_PATH"},d=new Set;function T(e){return function(e,t){let r=process.env[e];if(void 0!==r)return r;let s=process.env[t];if(void 0!==s)return d.has(t)||(console.warn(`[DEPRECATED] ${t} is deprecated, use ${e} instead`),d.add(t)),s}(e,l[e])}let p=!1;function c(){let e=T("CM_LOG_LEVEL")?.toLowerCase(),t=T("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==e&&["debug","info","warn","error"].includes(e)?e:"info",format:"json"===t?"json":"text"}}function m(){let e;let t=T("CM_ROOT_DIR")||process.cwd(),r=parseInt(T("CM_PORT")||"3000",10),s=T("CM_BIND")||"127.0.0.1",o=T("CM_AUTH_TOKEN"),i=T("CM_DB_PATH")||function(){let e=process.env.DATABASE_PATH;return e&&!p&&(console.warn("[DEPRECATED] DATABASE_PATH is deprecated. Use CM_DB_PATH instead."),p=!0),e}()||n();if(!t)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(r)||r<1||r>65535)throw Error(`Invalid CM_PORT: ${T("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==s&&"0.0.0.0"!==s&&"localhost"!==s)throw Error(`Invalid CM_BIND: ${s}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);if("0.0.0.0"===s&&!o)throw Error("CM_AUTH_TOKEN (or MCBD_AUTH_TOKEN) is required when CM_BIND=0.0.0.0");try{e=E(i)}catch{console.warn(`[Security] Invalid DB path "${i}", using default.`),e=E(n())}return{CM_ROOT_DIR:a().resolve(t),CM_PORT:r,CM_BIND:s,CM_AUTH_TOKEN:o,CM_DB_PATH:e}}}};
@@ -1,4 +1,4 @@
1
- exports.id=9723,exports.ids=[9723],exports.modules={58359:()=>{},93739:()=>{},89287:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});let r=/šŸ“„ Session log: (.+?\/([^\/\s]+\.jsonl))/,s=/Request ID: ([^\s\n]+)/,o=/Summary: (.+?)(?:\n─|$)/s;function i(e){let t={content:e},n=r.exec(e);n&&(t.logFileName=n[2]);let i=s.exec(e);i&&(t.requestId=i[1]);let l=o.exec(e);return l&&(t.summary=l[1].trim()),t}},76966:(e,t,n)=>{"use strict";n.d(t,{o:()=>o});var r=n(75748),s=n(98636);async function o(e,t,n,o="claude"){let i=(0,r.vX)(e,t);if(i)try{await (0,s.xN)(t,i.content,n,o)}catch(e){console.error("[recordClaudeConversation] Failed to create log file:",e)}}},98636:(e,t,n)=>{"use strict";n.d(t,{e7:()=>p,xN:()=>d});var r=n(20629),s=n.n(r),o=n(55315),i=n.n(o),l=n(73853);let a=(0,n(37848).Hb)("CM_LOG_DIR")||i().join(process.cwd(),"data","logs");function c(e="claude"){return i().join(a,e)}async function u(e="claude"){let t=c(e);try{await s().access(t)}catch{await s().mkdir(t,{recursive:!0})}}async function d(e,t,n,r="claude"){await u(r);let o=function(e,t="claude"){let n=(0,l.WU)(new Date,"yyyy-MM-dd"),r=`${e}-${n}.md`,s=c(t);return i().join(s,r)}(e,r),a=(0,l.WU)(new Date,"yyyy-MM-dd HH:mm:ss"),d="";try{d=await s().readFile(o,"utf-8")}catch{let t="claude"===r?"Claude Code":"codex"===r?"Codex CLI":"Gemini CLI";d=`# ${t} Conversation Log: ${e}
1
+ exports.id=9723,exports.ids=[9723],exports.modules={58359:()=>{},93739:()=>{},89287:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});let r=/šŸ“„ Session log: (.+?\/([^\/\s]+\.jsonl))/,s=/Request ID: ([^\s\n]+)/,o=/Summary: (.+?)(?:\n─|$)/s;function i(e){let t={content:e},n=r.exec(e);n&&(t.logFileName=n[2]);let i=s.exec(e);i&&(t.requestId=i[1]);let l=o.exec(e);return l&&(t.summary=l[1].trim()),t}},76966:(e,t,n)=>{"use strict";n.d(t,{o:()=>o});var r=n(75748),s=n(98636);async function o(e,t,n,o="claude"){let i=(0,r.vX)(e,t);if(i)try{await (0,s.xN)(t,i.content,n,o)}catch(e){console.error("[recordClaudeConversation] Failed to create log file:",e)}}},98636:(e,t,n)=>{"use strict";n.d(t,{e7:()=>p,xN:()=>d});var r=n(20629),s=n.n(r),o=n(55315),i=n.n(o),l=n(73853);let a=(0,n(93346).Hb)("CM_LOG_DIR")||i().join(process.cwd(),"data","logs");function c(e="claude"){return i().join(a,e)}async function u(e="claude"){let t=c(e);try{await s().access(t)}catch{await s().mkdir(t,{recursive:!0})}}async function d(e,t,n,r="claude"){await u(r);let o=function(e,t="claude"){let n=(0,l.WU)(new Date,"yyyy-MM-dd"),r=`${e}-${n}.md`,s=c(t);return i().join(s,r)}(e,r),a=(0,l.WU)(new Date,"yyyy-MM-dd HH:mm:ss"),d="";try{d=await s().readFile(o,"utf-8")}catch{let t="claude"===r?"Claude Code":"codex"===r?"Codex CLI":"Gemini CLI";d=`# ${t} Conversation Log: ${e}
2
2
 
3
3
  Created: ${a}
4
4
 
@@ -1 +1 @@
1
- {"version":1,"functions":{"/api/external-apps/[id]":{},"/api/external-apps":{},"/api/external-apps/[id]/health":{},"/api/worktrees":{},"/proxy/[...path]":{}}}
1
+ {"version":1,"functions":{"/api/external-apps/[id]/health":{},"/api/external-apps/[id]":{},"/api/external-apps":{},"/api/worktrees":{},"/proxy/[...path]":{}}}
@@ -17,11 +17,11 @@
17
17
  "wasm": [],
18
18
  "assets": [],
19
19
  "env": {
20
- "__NEXT_BUILD_ID": "8o5rUyZun0GklIHWDgkmv",
21
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "/4Rh5GUBFOPKhcsCBNuOpYrPm1qv7bLwx31aOjwyM+g=",
22
- "__NEXT_PREVIEW_MODE_ID": "94181ebbbcccfe4a3e0cf6f2e835fe5f",
23
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "fa7f7ffbe3a221ecefd1290d896ae1296a08d941136d0460ec154604a2586544",
24
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "6e279d4433a862ab14096ae2b0709daed4e2bc23e40545cccdfaa00ed2905267"
20
+ "__NEXT_BUILD_ID": "gRNW5YXY43KqCKbCdaJoJ",
21
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "SD4iLk4wfGNZOHVEjwGPo7VDXl8nByj4DkEJwAOrBmk=",
22
+ "__NEXT_PREVIEW_MODE_ID": "cd838fec255a21214ed4f485002cc6b8",
23
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "2aa1530b2941fb807c0a9a69c1bf07d98c7f3423bed5739e01dfc9e8c0ea833d",
24
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "ce4a155222996d432fa485d254421961421ee39e65c1c802e05a2f151979fc54"
25
25
  }
26
26
  }
27
27
  },
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/376b339640084689.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3fc79fab9bb738d7.js"/><script src="/_next/static/chunks/fd9d1056-bbe86e4ae099d5cd.js" async=""></script><script src="/_next/static/chunks/2117-d845c2cd62e344a6.js" async=""></script><script src="/_next/static/chunks/main-app-420d93e43682fee5.js" async=""></script><script src="/_next/static/chunks/816-7e340dad784be28c.js" async=""></script><script src="/_next/static/chunks/app/layout-37e55f11dcc8b1bf.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>CommandMate</title><meta name="description" content="Git worktree management with Claude CLI and tmux sessions"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-gray-50"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/376b339640084689.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[12846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[36423,[],\"\"]\n6:I[91795,[\"816\",\"static/chunks/816-7e340dad784be28c.js\",\"3185\",\"static/chunks/app/layout-37e55f11dcc8b1bf.js\"],\"AppProviders\"]\nc:I[61060,[],\"\"]\n7:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n8:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n9:{\"display\":\"inline-block\"}\na:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nd:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"8o5rUyZun0GklIHWDgkmv\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/376b339640084689.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-gray-50\",\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$8\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$a\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lb\"],\"globalErrorComponent\":\"$c\",\"missingSlots\":\"$Wd\"}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CommandMate\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Git worktree management with Claude CLI and tmux sessions\"}]]\n3:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/376b339640084689.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-3fc79fab9bb738d7.js"/><script src="/_next/static/chunks/fd9d1056-bbe86e4ae099d5cd.js" async=""></script><script src="/_next/static/chunks/2117-d845c2cd62e344a6.js" async=""></script><script src="/_next/static/chunks/main-app-420d93e43682fee5.js" async=""></script><script src="/_next/static/chunks/816-7e340dad784be28c.js" async=""></script><script src="/_next/static/chunks/app/layout-37e55f11dcc8b1bf.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>CommandMate</title><meta name="description" content="Git worktree management with Claude CLI and tmux sessions"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="min-h-screen bg-gray-50"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/css/376b339640084689.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"2:I[12846,[],\"\"]\n4:I[4707,[],\"\"]\n5:I[36423,[],\"\"]\n6:I[91795,[\"816\",\"static/chunks/816-7e340dad784be28c.js\",\"3185\",\"static/chunks/app/layout-37e55f11dcc8b1bf.js\"],\"AppProviders\"]\nc:I[61060,[],\"\"]\n7:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n8:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n9:{\"display\":\"inline-block\"}\na:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nd:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L2\",null,{\"buildId\":\"gRNW5YXY43KqCKbCdaJoJ\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L3\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/376b339640084689.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"ja\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-gray-50\",\"children\":[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$8\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$9\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$a\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$Lb\"],\"globalErrorComponent\":\"$c\",\"missingSlots\":\"$Wd\"}]\n"])</script><script>self.__next_f.push([1,"b:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"CommandMate\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Git worktree management with Claude CLI and tmux sessions\"}]]\n3:null\n"])</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" defer=""></script><script src="/_next/static/chunks/framework-8e0e0f4a6b83a956.js" defer=""></script><script src="/_next/static/chunks/main-a960f4a5e1a2f598.js" defer=""></script><script src="/_next/static/chunks/pages/_app-3c9ca398d360b709.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js" defer=""></script><script src="/_next/static/8o5rUyZun0GklIHWDgkmv/_buildManifest.js" defer=""></script><script src="/_next/static/8o5rUyZun0GklIHWDgkmv/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"8o5rUyZun0GklIHWDgkmv","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-3fc79fab9bb738d7.js" defer=""></script><script src="/_next/static/chunks/framework-8e0e0f4a6b83a956.js" defer=""></script><script src="/_next/static/chunks/main-a960f4a5e1a2f598.js" defer=""></script><script src="/_next/static/chunks/pages/_app-3c9ca398d360b709.js" defer=""></script><script src="/_next/static/chunks/pages/_error-cf5ca766ac8f493f.js" defer=""></script><script src="/_next/static/gRNW5YXY43KqCKbCdaJoJ/_buildManifest.js" defer=""></script><script src="/_next/static/gRNW5YXY43KqCKbCdaJoJ/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"gRNW5YXY43KqCKbCdaJoJ","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"/4Rh5GUBFOPKhcsCBNuOpYrPm1qv7bLwx31aOjwyM+g="}
1
+ {"node":{},"edge":{},"encryptionKey":"SD4iLk4wfGNZOHVEjwGPo7VDXl8nByj4DkEJwAOrBmk="}