codebay 0.15.0 → 0.16.1

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 (91) hide show
  1. package/.mochi/manifest.json +490 -429
  2. package/.mochi/svelte-client/HydratableIsland-6y9p903x.js +1 -0
  3. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-nv6yzk0x.js +2 -0
  4. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-ry83ck8a.js +14 -0
  5. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-vjt4jscf.js +3 -0
  6. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-1jdrk8x6.js +48 -0
  7. package/.mochi/svelte-client/{chunk-5pg0be5f.js → chunk-0vqvn81s.js} +1 -1
  8. package/.mochi/svelte-client/chunk-2dc6352a.js +1 -0
  9. package/.mochi/svelte-client/chunk-3cxaw5hr.js +2 -0
  10. package/.mochi/svelte-client/chunk-3jqc40sp.js +2 -0
  11. package/.mochi/svelte-client/chunk-3pgw6t5j.js +4 -0
  12. package/.mochi/svelte-client/chunk-7g3xt6ez.js +2 -0
  13. package/.mochi/svelte-client/chunk-b5s3mpg0.js +1 -0
  14. package/.mochi/svelte-client/chunk-bhseezf3.js +2 -0
  15. package/.mochi/svelte-client/chunk-bhwkq8er.js +1 -0
  16. package/.mochi/svelte-client/chunk-jm3ge348.js +1 -0
  17. package/.mochi/svelte-client/{chunk-ds9yn9cq.js → chunk-sxcr9gzp.js} +1 -1
  18. package/.mochi/svelte-client/{chunk-a2hty99b.js → chunk-tss2473w.js} +1 -1
  19. package/.mochi/svelte-compile/{App-68f9a9fq.server.js → App-8mpgrxza.server.js} +489 -295
  20. package/.mochi/svelte-compile/{Avatars-vyh3rwxx.server.js → Avatars-y5nf6q25.server.js} +102 -86
  21. package/.mochi/svelte-compile/{DefaultError-je52k17d.server.js → DefaultError-rrjye0s2.server.js} +1 -2
  22. package/.mochi/svelte-compile/{Instance-yfw7s5mp.server.js → Instance-3sbzyp0g.server.js} +186 -118
  23. package/.mochi/svelte-compile/{Settings-0b5t9kw9.server.js → Settings-ysvh5vhh.server.js} +739 -628
  24. package/.mochi/svelte-compile/chunk-7zaw9t5a.js +25 -0
  25. package/.mochi/svelte-compile/chunk-878xcmp4.js +65 -0
  26. package/.mochi/svelte-compile/chunk-d2z3qxxe.js +28 -0
  27. package/.mochi/svelte-compile/{chunk-60mpagr9.js → chunk-gnf5cnct.js} +661 -22
  28. package/.mochi/svelte-compile/{chunk-0y3wrae9.js → chunk-jq7jj8jd.js} +10 -6
  29. package/.mochi/svelte-compile/chunk-vr0e32mv.js +24 -0
  30. package/.mochi/svelte-compile/{chunk-apdte4nh.js → chunk-xmygdsj4.js} +35 -612
  31. package/.mochi/svelte-compile/{chunk-g0eravvj.js → chunk-zk4a9zms.js} +25 -17
  32. package/.mochi/svelte-css/DropZone-1zeitd761uwyd.css +1 -0
  33. package/.mochi/svelte-css/IdeBar-d3un7kuigxc5.css +1 -0
  34. package/.mochi/svelte-css/InstanceView-3ucotech5097w.css +1 -0
  35. package/README.md +13 -4
  36. package/migrations/0011_agent_run_rejected_structured_output.sql +2 -0
  37. package/package.json +9 -9
  38. package/src/__fixtures__/IdeBarStrip.svelte +41 -0
  39. package/src/avatars/dog.ts +1 -1
  40. package/src/avatars/lightning.ts +8 -9
  41. package/src/avatars/rocket.ts +4 -5
  42. package/src/components/AppShell.svelte +101 -1
  43. package/src/components/DropZone.svelte +77 -0
  44. package/src/components/HealthBox.svelte +6 -5
  45. package/src/components/IdeBar.svelte +222 -76
  46. package/src/components/InstanceView.svelte +75 -2
  47. package/src/components/SettingsView.svelte +87 -0
  48. package/src/components/TerminalPane.svelte +54 -0
  49. package/src/components/UiShowcase.svelte +19 -1
  50. package/src/container-injections/claude-code-install.ts +1 -1
  51. package/src/container-injections/claude-history.ts +52 -0
  52. package/src/container-injections/tmux.ts +6 -2
  53. package/src/index.ts +3 -0
  54. package/src/lib/agent-run-stream.ts +41 -1
  55. package/src/lib/agent-runs.server.ts +14 -3
  56. package/src/lib/config.server.ts +16 -1
  57. package/src/lib/db.server.ts +6 -2
  58. package/src/lib/devcontainer.server.ts +37 -4
  59. package/src/lib/injections.server.ts +5 -1
  60. package/src/lib/instances.server.ts +21 -4
  61. package/src/lib/log-capture.server.ts +46 -18
  62. package/src/lib/osc52.ts +18 -0
  63. package/src/lib/spawn.server.ts +7 -2
  64. package/src/lib/upload.ts +32 -0
  65. package/src/lib/uploads.server.ts +164 -0
  66. package/src/mcp/server.server.ts +4 -1
  67. package/src/mcp/tools.server.ts +178 -12
  68. package/src/pages/Instance.svelte +6 -2
  69. package/src/pages/Settings.svelte +3 -0
  70. package/src/routes.ts +16 -2
  71. package/src/types.ts +2 -0
  72. package/.mochi/svelte-client/HydratableIsland-smgsf0ma.js +0 -1
  73. package/.mochi/svelte-client/_hydrate-AppShell_2rtnxn6pgp2rh-9vc087ep.js +0 -2
  74. package/.mochi/svelte-client/_hydrate-AvatarsView_257s9yq1wwr4f-a48xq47a.js +0 -14
  75. package/.mochi/svelte-client/_hydrate-InstanceView_2ma45l9bybfhl-d4zehrqz.js +0 -3
  76. package/.mochi/svelte-client/_hydrate-SettingsView_8hmarwmf8onq-t5175pf5.js +0 -44
  77. package/.mochi/svelte-client/chunk-0mstgbtr.js +0 -2
  78. package/.mochi/svelte-client/chunk-0q9g0kpg.js +0 -1
  79. package/.mochi/svelte-client/chunk-3fwjzw1r.js +0 -1
  80. package/.mochi/svelte-client/chunk-fn03gxer.js +0 -4
  81. package/.mochi/svelte-client/chunk-jhgq7f65.js +0 -2
  82. package/.mochi/svelte-client/chunk-p5a07kx1.js +0 -1
  83. package/.mochi/svelte-client/chunk-p5wpyhsf.js +0 -2
  84. package/.mochi/svelte-client/chunk-t2kfvtb6.js +0 -2
  85. package/.mochi/svelte-client/chunk-v3wg9mdy.js +0 -1
  86. package/.mochi/svelte-compile/chunk-2qzc07gt.js +0 -34
  87. package/.mochi/svelte-compile/chunk-ef3hvegw.js +0 -21
  88. package/.mochi/svelte-compile/chunk-f9td8ej2.js +0 -24
  89. package/.mochi/svelte-compile/chunk-jx6h1xzp.js +0 -20
  90. package/.mochi/svelte-css/IdeBar-1mtgemqfuvqzi.css +0 -1
  91. package/.mochi/svelte-css/InstanceView-32j12hyg8v9u0.css +0 -1
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  Bot
4
- } from "./chunk-f9td8ej2.js";
4
+ } from "./chunk-d2z3qxxe.js";
5
5
  import {
6
6
  Rotate_ccw
7
- } from "./chunk-jx6h1xzp.js";
7
+ } from "./chunk-vr0e32mv.js";
8
8
  import {
9
9
  AppBar,
10
10
  Avatar,
@@ -14,18 +14,18 @@ import {
14
14
  OFF,
15
15
  ON,
16
16
  ROWS,
17
- TOAST_OPTIONS,
18
- Toaster,
19
17
  avatars,
20
- decode,
21
- dist_default
22
- } from "./chunk-apdte4nh.js";
18
+ decode
19
+ } from "./chunk-xmygdsj4.js";
23
20
  import {
24
21
  HydratableBoundary,
25
22
  Icon,
23
+ TOAST_OPTIONS,
24
+ Toaster,
26
25
  X,
26
+ dist_default,
27
27
  emitIslandProps
28
- } from "./chunk-60mpagr9.js";
28
+ } from "./chunk-gnf5cnct.js";
29
29
  import"./chunk-xpt1a7jm.js";
30
30
 
31
31
  // src/pages/Avatars.svelte
@@ -45,61 +45,77 @@ import"svelte/internal/flags/async";
45
45
  import * as $ from "svelte/internal/server";
46
46
  function Copy($$renderer, $$props) {
47
47
  let { $$slots, $$events, ...props } = $$props;
48
- const iconNode = [
49
- [
50
- "rect",
51
- { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2" }
52
- ],
53
- [
54
- "path",
55
- { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }
48
+ const iconData = {
49
+ name: "copy",
50
+ size: 24,
51
+ node: [
52
+ [
53
+ "rect",
54
+ { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2" }
55
+ ],
56
+ [
57
+ "path",
58
+ { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" }
59
+ ]
56
60
  ]
57
- ];
58
- Icon($$renderer, $.spread_props([{ name: "copy" }, props, { iconNode }]));
61
+ };
62
+ Icon($$renderer, $.spread_props([props, { icon: iconData }]));
59
63
  }
60
64
  // node_modules/@lucide/svelte/dist/icons/eraser.svelte
61
65
  import"svelte/internal/flags/async";
62
66
  import * as $2 from "svelte/internal/server";
63
67
  function Eraser($$renderer, $$props) {
64
68
  let { $$slots, $$events, ...props } = $$props;
65
- const iconNode = [
66
- [
67
- "path",
68
- {
69
- d: "M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21"
70
- }
71
- ],
72
- ["path", { d: "m5.082 11.09 8.828 8.828" }]
73
- ];
74
- Icon($$renderer, $2.spread_props([{ name: "eraser" }, props, { iconNode }]));
69
+ const iconData = {
70
+ name: "eraser",
71
+ size: 24,
72
+ node: [
73
+ [
74
+ "path",
75
+ {
76
+ d: "M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21"
77
+ }
78
+ ],
79
+ ["path", { d: "m5.082 11.09 8.828 8.828" }]
80
+ ]
81
+ };
82
+ Icon($$renderer, $2.spread_props([props, { icon: iconData }]));
75
83
  }
76
84
  // node_modules/@lucide/svelte/dist/icons/contrast.svelte
77
85
  import"svelte/internal/flags/async";
78
86
  import * as $3 from "svelte/internal/server";
79
87
  function Contrast($$renderer, $$props) {
80
88
  let { $$slots, $$events, ...props } = $$props;
81
- const iconNode = [
82
- ["circle", { cx: "12", cy: "12", r: "10" }],
83
- ["path", { d: "M12 18a6 6 0 0 0 0-12v12z" }]
84
- ];
85
- Icon($$renderer, $3.spread_props([{ name: "contrast" }, props, { iconNode }]));
89
+ const iconData = {
90
+ name: "contrast",
91
+ size: 24,
92
+ node: [
93
+ ["circle", { cx: "12", cy: "12", r: "10" }],
94
+ ["path", { d: "M12 18a6 6 0 0 0 0-12v12z" }]
95
+ ]
96
+ };
97
+ Icon($$renderer, $3.spread_props([props, { icon: iconData }]));
86
98
  }
87
99
  // node_modules/@lucide/svelte/dist/icons/external-link.svelte
88
100
  import"svelte/internal/flags/async";
89
101
  import * as $4 from "svelte/internal/server";
90
102
  function External_link($$renderer, $$props) {
91
103
  let { $$slots, $$events, ...props } = $$props;
92
- const iconNode = [
93
- ["path", { d: "M15 3h6v6" }],
94
- ["path", { d: "M10 14 21 3" }],
95
- [
96
- "path",
97
- {
98
- d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
99
- }
104
+ const iconData = {
105
+ name: "external-link",
106
+ size: 24,
107
+ node: [
108
+ ["path", { d: "M15 3h6v6" }],
109
+ ["path", { d: "M10 14 21 3" }],
110
+ [
111
+ "path",
112
+ {
113
+ d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
114
+ }
115
+ ]
100
116
  ]
101
- ];
102
- Icon($$renderer, $4.spread_props([{ name: "external-link" }, props, { iconNode }]));
117
+ };
118
+ Icon($$renderer, $4.spread_props([props, { icon: iconData }]));
103
119
  }
104
120
  // src/avatars/editor.ts
105
121
  var MODES = [
@@ -264,8 +280,7 @@ function AvatarEditor($$renderer, $$props) {
264
280
  }
265
281
  $$renderer2.push(`<section class="editor svelte-qu6vp4"><div class="head svelte-qu6vp4"><h2 class="svelte-qu6vp4">${$5.escape(isEdit() ? `Redraw \u201C${editing.name}\u201D` : "Draw your own avatar")}</h2> `);
266
282
  if (isEdit()) {
267
- $$renderer2.push("<!--[0-->");
268
- $$renderer2.push(`<button type="button" class="head-cancel svelte-qu6vp4">`);
283
+ $$renderer2.push(`<!--[0--><button type="button" class="head-cancel svelte-qu6vp4">`);
269
284
  X($$renderer2, { size: 14 });
270
285
  $$renderer2.push(`<!----> <span>New drawing</span></button>`);
271
286
  } else {
@@ -289,8 +304,7 @@ function AvatarEditor($$renderer, $$props) {
289
304
  Avatar($$renderer2, { art: art(), name: art().name, scale: 3 });
290
305
  $$renderer2.push(`<!----></div></div> `);
291
306
  if (isEdit()) {
292
- $$renderer2.push("<!--[0-->");
293
- $$renderer2.push(`<div class="preview before"><div class="preview-label svelte-qu6vp4">Before</div> <div class="preview-row svelte-qu6vp4">`);
307
+ $$renderer2.push(`<!--[0--><div class="preview before"><div class="preview-label svelte-qu6vp4">Before</div> <div class="preview-row svelte-qu6vp4">`);
294
308
  Avatar($$renderer2, { art: editing, name: editing.name, scale: 3 });
295
309
  $$renderer2.push(`<!----></div></div>`);
296
310
  } else {
@@ -298,11 +312,9 @@ function AvatarEditor($$renderer, $$props) {
298
312
  }
299
313
  $$renderer2.push(`<!--]--> <label class="name-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Name</span> `);
300
314
  if (isEdit()) {
301
- $$renderer2.push("<!--[0-->");
302
- $$renderer2.push(`<input type="text"${$5.attr("value", editing.name)} readonly="" aria-readonly="true" class="svelte-qu6vp4"/>`);
315
+ $$renderer2.push(`<!--[0--><input type="text"${$5.attr("value", editing.name)} readonly="" aria-readonly="true" class="svelte-qu6vp4"/>`);
303
316
  } else {
304
- $$renderer2.push("<!--[-1-->");
305
- $$renderer2.push(`<input type="text"${$5.attr("value", avatarName)}${$5.attr("placeholder", namePlaceholder)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" maxlength="24" class="svelte-qu6vp4"/>`);
317
+ $$renderer2.push(`<!--[-1--><input type="text"${$5.attr("value", avatarName)}${$5.attr("placeholder", namePlaceholder)} spellcheck="false" autocapitalize="off" autocorrect="off" autocomplete="off" maxlength="24" class="svelte-qu6vp4"/>`);
306
318
  }
307
319
  $$renderer2.push(`<!--]--></label> <div class="mode-field svelte-qu6vp4"><span class="preview-label svelte-qu6vp4">Mode</span> <div class="modes svelte-qu6vp4" role="radiogroup" aria-label="Drawing mode"><!--[-->`);
308
320
  const each_array_2 = $5.ensure_array_like(MODES);
@@ -379,16 +391,20 @@ import"svelte/internal/flags/async";
379
391
  import * as $6 from "svelte/internal/server";
380
392
  function Pencil($$renderer, $$props) {
381
393
  let { $$slots, $$events, ...props } = $$props;
382
- const iconNode = [
383
- [
384
- "path",
385
- {
386
- d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"
387
- }
388
- ],
389
- ["path", { d: "m15 5 4 4" }]
390
- ];
391
- Icon($$renderer, $6.spread_props([{ name: "pencil" }, props, { iconNode }]));
394
+ const iconData = {
395
+ name: "pencil",
396
+ size: 24,
397
+ node: [
398
+ [
399
+ "path",
400
+ {
401
+ d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z"
402
+ }
403
+ ],
404
+ ["path", { d: "m15 5 4 4" }]
405
+ ]
406
+ };
407
+ Icon($$renderer, $6.spread_props([props, { icon: iconData }]));
392
408
  }
393
409
  // src/components/AvatarsView.svelte
394
410
  function AvatarsView($$renderer, $$props) {
@@ -419,8 +435,7 @@ function AvatarsView($$renderer, $$props) {
419
435
  Avatar($$renderer2, { art, name: art.name, scale: 8, interactive: true });
420
436
  $$renderer2.push(`<!----> <span class="label svelte-fkq7sr">`);
421
437
  if (art.robot) {
422
- $$renderer2.push("<!--[0-->");
423
- $$renderer2.push(`<span class="robot-mark svelte-fkq7sr" title="AI-generated">`);
438
+ $$renderer2.push(`<!--[0--><span class="robot-mark svelte-fkq7sr" title="AI-generated">`);
424
439
  Bot($$renderer2, { size: 11 });
425
440
  $$renderer2.push(`<!----></span>`);
426
441
  } else {
@@ -428,8 +443,7 @@ function AvatarsView($$renderer, $$props) {
428
443
  }
429
444
  $$renderer2.push(`<!--]--> ${$7.escape(art.name)}</span> `);
430
445
  if (art.robot) {
431
- $$renderer2.push("<!--[0-->");
432
- $$renderer2.push(`<button type="button"${$7.attr_class("edit-btn svelte-fkq7sr", undefined, { active: editing?.name === art.name })}${$7.attr("disabled", editing?.name === art.name, true)}>`);
446
+ $$renderer2.push(`<!--[0--><button type="button"${$7.attr_class("edit-btn svelte-fkq7sr", undefined, { active: editing?.name === art.name })}${$7.attr("disabled", editing?.name === art.name, true)}>`);
433
447
  Pencil($$renderer2, { size: 11 });
434
448
  $$renderer2.push(`<!----> <span>${$7.escape(editing?.name === art.name ? "Editing" : "Redraw")}</span></button>`);
435
449
  } else {
@@ -448,28 +462,30 @@ function Avatars($$renderer, $$props) {
448
462
  $$renderer.component(($$renderer2) => {
449
463
  let { namePlaceholder } = $$props;
450
464
  if (true) {
451
- let failed = function($$renderer3, error) {
452
- $$renderer3.push(`<mochi-island-failure data-component="AvatarsView"${$8.attr("data-message", error.message)}></mochi-island-failure>`);
453
- };
454
465
  $$renderer2.push("<!--[0-->");
455
- $$renderer2.boundary({ failed }, ($$renderer3) => {
456
- $$renderer3.push(`<!--[-->`);
457
- {
458
- HydratableBoundary($$renderer3, {
459
- children: ($$renderer4) => {
460
- $$renderer4.push(`<mochi-hydratable-island component-name="AvatarsView_257s9yq1wwr4f" component-url="__MOCHI_COMPONENT_URL__AvatarsView_257s9yq1wwr4f__"${$8.attr("props-ref", emitIslandProps({ namePlaceholder }))}>`);
461
- $$renderer4.push(`<!--[-->`);
462
- {
463
- AvatarsView($$renderer4, { namePlaceholder });
464
- }
465
- $$renderer4.push(`<!--]-->`);
466
- $$renderer4.push(`</mochi-hydratable-island>`);
467
- },
468
- $$slots: { default: true }
469
- });
470
- }
471
- $$renderer3.push(`<!--]-->`);
472
- });
466
+ {
467
+ let failed = function($$renderer3, error) {
468
+ $$renderer3.push(`<mochi-island-failure data-component="AvatarsView"${$8.attr("data-message", error.message)}></mochi-island-failure>`);
469
+ };
470
+ $$renderer2.boundary({ failed }, ($$renderer3) => {
471
+ $$renderer3.push(`<!--[-->`);
472
+ {
473
+ HydratableBoundary($$renderer3, {
474
+ children: ($$renderer4) => {
475
+ $$renderer4.push(`<mochi-hydratable-island component-name="AvatarsView_257s9yq1wwr4f" component-url="__MOCHI_COMPONENT_URL__AvatarsView_257s9yq1wwr4f__"${$8.attr("props-ref", emitIslandProps({ namePlaceholder }))}>`);
476
+ $$renderer4.push(`<!--[-->`);
477
+ {
478
+ AvatarsView($$renderer4, { namePlaceholder });
479
+ }
480
+ $$renderer4.push(`<!--]-->`);
481
+ $$renderer4.push(`</mochi-hydratable-island>`);
482
+ },
483
+ $$slots: { default: true }
484
+ });
485
+ }
486
+ $$renderer3.push(`<!--]-->`);
487
+ });
488
+ }
473
489
  }
474
490
  $$renderer2.push(`<!--]-->`);
475
491
  });
@@ -39,8 +39,7 @@ function DefaultError($$renderer, $$props) {
39
39
  BackLink($$renderer2, { "mochi:hydrate": true });
40
40
  $$renderer2.push(`<!----></div> `);
41
41
  if (error.stack) {
42
- $$renderer2.push("<!--[0-->");
43
- $$renderer2.push(`<div class="divider svelte-gaasgn"></div> <div class="stack-label svelte-gaasgn">Stack trace</div> <pre class="stack svelte-gaasgn">${$2.escape(error.stack)}</pre>`);
42
+ $$renderer2.push(`<!--[0--><div class="divider svelte-gaasgn"></div> <div class="stack-label svelte-gaasgn">Stack trace</div> <pre class="stack svelte-gaasgn">${$2.escape(error.stack)}</pre>`);
44
43
  } else {
45
44
  $$renderer2.push("<!--[-1-->");
46
45
  }