dev3000 0.0.91 → 0.0.93

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 (55) hide show
  1. package/dist/screencast-manager.d.ts +1 -0
  2. package/dist/screencast-manager.d.ts.map +1 -1
  3. package/dist/screencast-manager.js +29 -4
  4. package/dist/screencast-manager.js.map +1 -1
  5. package/dist/src/tui-interface-impl.tsx +28 -13
  6. package/dist/tui-interface-impl.d.ts.map +1 -1
  7. package/dist/tui-interface-impl.js +23 -11
  8. package/dist/tui-interface-impl.js.map +1 -1
  9. package/mcp-server/.next/BUILD_ID +1 -1
  10. package/mcp-server/.next/build-manifest.json +2 -2
  11. package/mcp-server/.next/fallback-build-manifest.json +2 -2
  12. package/mcp-server/.next/next-minimal-server.js.nft.json +1 -1
  13. package/mcp-server/.next/next-server.js.nft.json +1 -1
  14. package/mcp-server/.next/prerender-manifest.json +3 -3
  15. package/mcp-server/.next/server/app/_global-error/page.js.nft.json +1 -1
  16. package/mcp-server/.next/server/app/_global-error.html +2 -2
  17. package/mcp-server/.next/server/app/_global-error.rsc +1 -1
  18. package/mcp-server/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/mcp-server/.next/server/app/_not-found.html +1 -1
  20. package/mcp-server/.next/server/app/_not-found.rsc +1 -1
  21. package/mcp-server/.next/server/app/api/jank/[session]/route.js.nft.json +1 -1
  22. package/mcp-server/.next/server/app/api/logs/append/route.js.nft.json +1 -1
  23. package/mcp-server/.next/server/app/api/logs/head/route.js.nft.json +1 -1
  24. package/mcp-server/.next/server/app/api/logs/list/route.js.nft.json +1 -1
  25. package/mcp-server/.next/server/app/api/logs/rotate/route.js.nft.json +1 -1
  26. package/mcp-server/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  27. package/mcp-server/.next/server/app/api/logs/tail/route.js.nft.json +1 -1
  28. package/mcp-server/.next/server/app/api/orchestrator/route.js.nft.json +1 -1
  29. package/mcp-server/.next/server/app/api/screenshots/[filename]/route.js.nft.json +1 -1
  30. package/mcp-server/.next/server/app/api/screenshots/list/route.js.nft.json +1 -1
  31. package/mcp-server/.next/server/app/api/tools/route.js.nft.json +1 -1
  32. package/mcp-server/.next/server/app/index.html +1 -1
  33. package/mcp-server/.next/server/app/index.rsc +1 -1
  34. package/mcp-server/.next/server/app/logs/page.js.nft.json +1 -1
  35. package/mcp-server/.next/server/app/mcp/route.js.nft.json +1 -1
  36. package/mcp-server/.next/server/app/page.js.nft.json +1 -1
  37. package/mcp-server/.next/server/app/video/[session]/page.js.nft.json +1 -1
  38. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js +2 -2
  39. package/mcp-server/.next/server/chunks/[root-of-the-server]__94037b23._.js.map +1 -1
  40. package/mcp-server/.next/server/chunks/[root-of-the-server]__ae49815f._.js +6 -6
  41. package/mcp-server/.next/server/chunks/[root-of-the-server]__ae49815f._.js.map +1 -1
  42. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js +2 -2
  43. package/mcp-server/.next/server/chunks/[root-of-the-server]__cc74dbef._.js.map +1 -1
  44. package/mcp-server/.next/server/chunks/[root-of-the-server]__dc0b0022._.js +1 -1
  45. package/mcp-server/.next/server/chunks/[root-of-the-server]__dc0b0022._.js.map +1 -1
  46. package/mcp-server/.next/server/server-reference-manifest.js +1 -1
  47. package/mcp-server/.next/server/server-reference-manifest.json +1 -1
  48. package/mcp-server/app/mcp/client-manager.ts +76 -23
  49. package/mcp-server/app/mcp/route.ts +140 -15
  50. package/mcp-server/app/mcp/tools.ts +151 -24
  51. package/package.json +1 -1
  52. package/src/tui-interface-impl.tsx +28 -13
  53. /package/mcp-server/.next/static/{eVL_05d0pOH_qw2twMoct → JCjxP4rkK3FXLwJCSQET6}/_buildManifest.js +0 -0
  54. /package/mcp-server/.next/static/{eVL_05d0pOH_qw2twMoct → JCjxP4rkK3FXLwJCSQET6}/_clientMiddlewareManifest.json +0 -0
  55. /package/mcp-server/.next/static/{eVL_05d0pOH_qw2twMoct → JCjxP4rkK3FXLwJCSQET6}/_ssgManifest.js +0 -0
@@ -20,6 +20,8 @@ interface LogEntry {
20
20
  content: string
21
21
  }
22
22
 
23
+ const NEXTJS_MCP_404_REGEX = /(?:\[POST\]|POST)\s+\/_next\/mcp\b[^\n]*\b404\b/i
24
+
23
25
  // Compact ASCII logo for very small terminals
24
26
  const COMPACT_LOGO = "d3k"
25
27
 
@@ -45,8 +47,9 @@ const TUIApp = ({
45
47
  const [initStatus, setInitStatus] = useState<string | null>("Initializing...")
46
48
  const [appPort, setAppPort] = useState<string>(initialAppPort)
47
49
  const logIdCounter = useRef(0)
50
+ const [clearFromLogId, setClearFromLogId] = useState<number>(0) // Track log ID to clear from
48
51
  const { stdout } = useStdout()
49
- const ctrlCMessageDefault = "^C quit"
52
+ const ctrlCMessageDefault = "^L clear ^C quit"
50
53
  const [ctrlCMessage, setCtrlCMessage] = useState(ctrlCMessageDefault)
51
54
 
52
55
  const [terminalSize, setTerminalSize] = useState(() => ({
@@ -147,6 +150,10 @@ const TUIApp = ({
147
150
  let buffer = ""
148
151
 
149
152
  const appendLog = (line: string) => {
153
+ if (NEXTJS_MCP_404_REGEX.test(line)) {
154
+ return
155
+ }
156
+
150
157
  const newLog: LogEntry = {
151
158
  id: logIdCounter.current++,
152
159
  content: line
@@ -228,12 +235,19 @@ const TUIApp = ({
228
235
  if (key.ctrl && input === "c") {
229
236
  // Send SIGINT to trigger main process shutdown handler
230
237
  process.kill(process.pid, "SIGINT")
238
+ } else if (key.ctrl && input === "l") {
239
+ // Ctrl-L: Clear logs box - set clear point to last log ID
240
+ const lastLogId = logs.length > 0 ? logs[logs.length - 1].id : logIdCounter.current
241
+ setClearFromLogId(lastLogId)
242
+ setScrollOffset(0) // Reset scroll to bottom
231
243
  } else if (key.upArrow) {
232
- setScrollOffset((prev) => Math.min(prev + 1, Math.max(0, logs.length - maxVisibleLogs)))
244
+ const filteredCount = logs.filter((log) => log.id > clearFromLogId).length
245
+ setScrollOffset((prev) => Math.min(prev + 1, Math.max(0, filteredCount - maxVisibleLogs)))
233
246
  } else if (key.downArrow) {
234
247
  setScrollOffset((prev) => Math.max(0, prev - 1))
235
248
  } else if (key.pageUp) {
236
- setScrollOffset((prev) => Math.min(prev + maxVisibleLogs, Math.max(0, logs.length - maxVisibleLogs)))
249
+ const filteredCount = logs.filter((log) => log.id > clearFromLogId).length
250
+ setScrollOffset((prev) => Math.min(prev + maxVisibleLogs, Math.max(0, filteredCount - maxVisibleLogs)))
237
251
  } else if (key.pageDown) {
238
252
  setScrollOffset((prev) => Math.max(0, prev - maxVisibleLogs))
239
253
  } else if (input === "g" && key.shift) {
@@ -241,12 +255,17 @@ const TUIApp = ({
241
255
  setScrollOffset(0)
242
256
  } else if (input === "g" && !key.shift) {
243
257
  // g to go to beginning
244
- setScrollOffset(Math.max(0, logs.length - maxVisibleLogs))
258
+ const filteredCount = logs.filter((log) => log.id > clearFromLogId).length
259
+ setScrollOffset(Math.max(0, filteredCount - maxVisibleLogs))
245
260
  }
246
261
  })
247
262
 
248
- // Calculate visible logs
249
- const visibleLogs = logs.slice(Math.max(0, logs.length - maxVisibleLogs - scrollOffset), logs.length - scrollOffset)
263
+ // Calculate visible logs - filter to only show logs after the clear point
264
+ const filteredLogs = logs.filter((log) => log.id > clearFromLogId)
265
+ const visibleLogs = filteredLogs.slice(
266
+ Math.max(0, filteredLogs.length - maxVisibleLogs - scrollOffset),
267
+ filteredLogs.length - scrollOffset
268
+ )
250
269
 
251
270
  // Render compact header for small terminals
252
271
  const renderCompactHeader = () => (
@@ -331,7 +350,7 @@ const TUIApp = ({
331
350
  <Box flexDirection="column" borderStyle="single" borderColor="gray" paddingX={1} flexGrow={1} minHeight={0}>
332
351
  {!isVeryCompact && (
333
352
  <Text color="gray" dimColor>
334
- Logs ({logs.length} total{scrollOffset > 0 && `, scrolled up ${scrollOffset} lines`})
353
+ Logs ({filteredLogs.length} total{scrollOffset > 0 && `, scrolled up ${scrollOffset} lines`})
335
354
  </Text>
336
355
  )}
337
356
 
@@ -427,10 +446,6 @@ const TUIApp = ({
427
446
  // Single space after type
428
447
  const typeSpacing = ""
429
448
 
430
- // For alignment: if no type tag, add spacing equivalent to a tag
431
- // This aligns SERVER logs without tags with those that have tags
432
- const alignmentSpacing = !type ? " " : "" // ~7 chars for average tag like [GET]
433
-
434
449
  return (
435
450
  <Text key={log.id} wrap="truncate-end">
436
451
  <Text dimColor>[{timestamp}]</Text>
@@ -438,14 +453,14 @@ const TUIApp = ({
438
453
  <Text color={sourceColor} bold>
439
454
  [{source}]
440
455
  </Text>
441
- <Text>{sourceSpacing} </Text>
442
456
  {type ? (
443
457
  <>
458
+ <Text>{sourceSpacing} </Text>
444
459
  <Text color={typeColors[type] || "#A0A0A0"}>[{type}]</Text>
445
460
  <Text>{typeSpacing} </Text>
446
461
  </>
447
462
  ) : (
448
- <Text>{alignmentSpacing}</Text>
463
+ <Text> </Text>
449
464
  )}
450
465
  <Text>{message}</Text>
451
466
  </Text>