@bud.sh/app 0.5.1 → 0.6.0

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 (115) hide show
  1. package/README.md +41 -31
  2. package/dist/client/assets/bud/design.js +1 -1
  3. package/dist/client/assets/canvas-Bih9EdKJ.js +1 -0
  4. package/dist/client/assets/difference-worker-Bzg-rizy.js +8 -0
  5. package/dist/client/assets/dist-CdE5wBkg.js +5 -0
  6. package/dist/client/assets/files-1dLuoM2f.js +1 -0
  7. package/dist/client/assets/i18n-CkO6VFI0.js +1 -0
  8. package/dist/client/assets/index-Cn2mxroU.css +2 -0
  9. package/dist/client/assets/{index-Dn2pfmXf.js → index-DtISWZp9.js} +2 -2
  10. package/dist/client/assets/pages-BJ-tNJ4J.js +1 -0
  11. package/dist/client/assets/{project-branches-CMGRmrqr.js → project-branches-Ce3rXrkc.js} +1 -1
  12. package/dist/client/assets/project-comments-CPUONfs8.js +1 -0
  13. package/dist/client/assets/project-thread-links-C-TGkq59.js +1 -0
  14. package/dist/client/assets/{project-threads-ZbKDh78d.js → project-threads-Bv7IDBgi.js} +105 -105
  15. package/dist/client/assets/project-work-DAE9-olg.js +1 -0
  16. package/dist/client/assets/{task-design-BPpc4Gd7.js → task-design-CwySIAOl.js} +3 -3
  17. package/dist/client/assets/tasks-KWsCLi_h.js +3 -0
  18. package/dist/client/assets/wasm-inline-DSUyFn1L.js +1 -0
  19. package/dist/client/assets/workspace-CVdcfaaB.js +2 -0
  20. package/dist/client/index.html +3 -3
  21. package/dist/hosted/assets/{canvas-BYTOp1p7.js → canvas-AII16n9i.js} +97 -6
  22. package/dist/hosted/assets/{comment-data-Cn5y2VxV.js → comment-data-BXfMElfx.js} +1998 -381
  23. package/dist/hosted/assets/dist-BCSTeNf4.js +4785 -0
  24. package/dist/hosted/assets/{files-B1P2_24q.js → files-D_1yeAVO.js} +10 -5
  25. package/dist/hosted/assets/{pages-B0ZlVdci.js → pages-CN_SbKWA.js} +3 -3
  26. package/dist/hosted/assets/{project-branches-DlCWmfRo.js → project-branches-Bxp0DCwg.js} +1 -1
  27. package/dist/hosted/assets/{project-thread-links-BZXQ200n.js → project-thread-links-KqQoKBLE.js} +76 -4
  28. package/dist/{node-host/assets/screen-DapOVrga.js → hosted/assets/screen-DpAcDUKR.js} +25 -1
  29. package/dist/hosted/assets/tasks-D66LlwxM.js +1423 -0
  30. package/dist/hosted/assets/wasm-inline-Dl9tqabx.js +4 -0
  31. package/dist/hosted/hosted.js +7885 -6219
  32. package/dist/node/assets/Stream-CAm1eJ2n.js +16604 -0
  33. package/dist/{server/assets/bridge-B_Blt55E.js → node/assets/bridge-DQSBYHmw.js} +124 -290
  34. package/dist/node/assets/config-9_jWwNBh.js +1067 -0
  35. package/dist/node/assets/load-config.server-CMVtRVmO.js +261 -0
  36. package/dist/node/assets/module-3GgtT4Xs.js +308 -0
  37. package/dist/node/assets/server-DTQFuoX2.js +846 -0
  38. package/dist/node/assets/src-D-kG1GxB.js +2 -0
  39. package/dist/node/assets/{src-CerrKjID.js → src-Dwe9APUx.js} +93 -3
  40. package/dist/node/assets/src-DysjfbM8.js +8592 -0
  41. package/dist/node/bridge.js +1 -845
  42. package/dist/node/cli.js +206 -0
  43. package/dist/node/design.js +811 -8
  44. package/dist/node/index.js +2 -739
  45. package/dist/node/plugins.js +5711 -0
  46. package/dist/node/server.js +1 -6746
  47. package/dist/node/vite.js +121 -0
  48. package/dist/{server/assets/canvas-CkMK4hoN.js → node-host/assets/canvas-BeDoufy1.js} +97 -7
  49. package/dist/node-host/assets/{comment-data-yfWEdDQL.js → comment-data-DE2T9yTj.js} +1974 -355
  50. package/dist/node-host/assets/dist-BCSTeNf4.js +4785 -0
  51. package/dist/node-host/assets/{files-anHi-apm.js → files-Dl-PTS09.js} +11 -6
  52. package/dist/node-host/assets/{pages-CW4aF6dK.js → pages-DL2sk6_U.js} +3 -3
  53. package/dist/node-host/assets/{project-branches-D7rVCxQX.js → project-branches-DGp5ELct.js} +1 -1
  54. package/dist/{server/assets/project-thread-links-lLS_rq7c.js → node-host/assets/project-thread-links-CgBV3Jcm.js} +76 -5
  55. package/dist/{hosted/assets/screen-CfdC3NbR.js → node-host/assets/screen-B55yyVfb.js} +25 -1
  56. package/dist/node-host/assets/tasks-DZRNkoxe.js +1425 -0
  57. package/dist/node-host/assets/wasm-inline-Dl9tqabx.js +4 -0
  58. package/dist/node-host/node-host.js +6127 -4438
  59. package/dist/server/assets/{branch-previews-ClkoJ0lM.js → branch-previews-DedrpnVR.js} +1555 -673
  60. package/dist/{node-host/assets/canvas-DxmcFZCh.js → server/assets/canvas-CJWQ-jjv.js} +98 -6
  61. package/dist/server/assets/{comment-data-NLeHG89b.js → comment-data-Rg42ToTW.js} +1660 -26
  62. package/dist/server/assets/dist-BCSTeNf4.js +4785 -0
  63. package/dist/server/assets/{events-iHpLGr3k.js → events-BH_rAu7O.js} +155 -20
  64. package/dist/server/assets/{files-CRdl489E.js → files-CPJqKeMo.js} +12 -7
  65. package/dist/server/assets/{listener-BAYn9Q-u.js → listener-D61O6PzF.js} +708 -12
  66. package/dist/server/assets/{pages-DXVlJlBC.js → pages-KJY_Ba92.js} +4 -4
  67. package/dist/server/assets/{project-branches-CwTsf6WQ.js → project-branches-qG9ACZvo.js} +2 -2
  68. package/dist/{node-host/assets/project-thread-links-m-OLpsD9.js → server/assets/project-thread-links-CqK0lqCF.js} +77 -4
  69. package/dist/{node-host/assets/tasks-request-B0aeNocI.js → server/assets/project-work-DoIwxWMm.js} +87 -2
  70. package/dist/server/assets/run-BJ8r5jSh.js +572 -0
  71. package/dist/server/assets/{screen-B1zH_1O3.js → screen-CBrHPFug.js} +26 -2
  72. package/dist/server/assets/{server-DxK-UB_Z.js → server-Dkbp5stG.js} +1521 -793
  73. package/dist/server/assets/{services-BRrgXYlT.js → services-BTfig8A8.js} +234 -997
  74. package/dist/server/assets/tasks-Bgu5Lg9Y.js +1427 -0
  75. package/dist/server/assets/wasm-inline-Dl9tqabx.js +4 -0
  76. package/dist/server/capture.js +1 -2
  77. package/dist/server/migration.js +569 -12
  78. package/dist/server/runtime.js +7 -5
  79. package/dist/server/server.js +3 -3
  80. package/dist/types/assets/{config-DIC2cf_S.d.ts → config-CvcYmE2s.d.ts} +188 -50
  81. package/dist/types/assets/{contract-CAT-XFNq.d.ts → contract-B7yuuqSn.d.ts} +44 -2
  82. package/dist/types/assets/{items-CaVkByHk.d.ts → items-BQdaVksf.d.ts} +12 -1
  83. package/dist/types/assets/memory-state-BBW-FAVA.d.ts +236 -0
  84. package/dist/types/assets/picker-Be5Gx4WR.d.ts +9 -0
  85. package/dist/types/assets/{task-design-xJOhRNWh.d.ts → task-design-BDHKFHpp.d.ts} +3 -1
  86. package/dist/types/bridge.d.ts +1 -1
  87. package/dist/types/companion.d.ts +3 -3
  88. package/dist/types/design.d.ts +2 -2
  89. package/dist/types/hosted.d.ts +3 -3
  90. package/dist/types/index.d.ts +2 -2
  91. package/dist/types/node-host.d.ts +2 -2
  92. package/dist/types/plugins.d.ts +445 -0
  93. package/dist/types/screen.d.ts +2 -2
  94. package/dist/types/server.d.ts +2 -228
  95. package/dist/types/vite.d.ts +16 -0
  96. package/package.json +19 -3
  97. package/dist/client/assets/canvas-8GXJIuDK.js +0 -1
  98. package/dist/client/assets/difference-worker-C99ychYw.js +0 -8
  99. package/dist/client/assets/files-DkWt1l9H.js +0 -1
  100. package/dist/client/assets/i18n-hH_Ba5QO.js +0 -1
  101. package/dist/client/assets/index-tpHYVXma.css +0 -2
  102. package/dist/client/assets/pages-BVd6MQmu.js +0 -1
  103. package/dist/client/assets/project-comments-D1IIQwsW.js +0 -1
  104. package/dist/client/assets/project-thread-links-DKwe_SYb.js +0 -1
  105. package/dist/client/assets/project-work-D4DZqBCZ.js +0 -1
  106. package/dist/client/assets/tasks-Cn0VOZ9Z.js +0 -1
  107. package/dist/client/assets/tasks-request-BLyOzokZ.js +0 -1
  108. package/dist/client/assets/workspace-DGErsSg6.js +0 -2
  109. package/dist/hosted/assets/tasks-_yKh2Z6q.js +0 -649
  110. package/dist/hosted/assets/tasks-request-CFPLvLc7.js +0 -113
  111. package/dist/node-host/assets/tasks-BBK_CybR.js +0 -651
  112. package/dist/server/assets/project-work-CSZlCwH-.js +0 -88
  113. package/dist/server/assets/tasks-CGdz-uox.js +0 -652
  114. package/dist/server/assets/tasks-request-D2NBjCTl.js +0 -115
  115. package/dist/types/assets/picker-D1Bw3ndx.d.ts +0 -14
@@ -1,5 +1,5 @@
1
- import { a as FieldCardFooter, c as Button, i as FieldCardContent, l as Text, o as FieldCardHeader, r as FieldCard, s as ariaAttributes, t as Loader } from "./assets/loader-QRRDmKqp.js";
2
- import { C as valueByRole, g as parseWorkItemRef, j as statusCategory, k as fieldByRole, p as parseWorkCreate, v as parseWorkPatch } from "./assets/src-CerrKjID.js";
1
+ import { a as FieldCardFooter, c as Button, i as FieldCardContent, l as Text, n as Spinner, o as FieldCardHeader, r as FieldCard, s as ariaAttributes, t as Loader } from "./assets/loader-QRRDmKqp.js";
2
+ import { B as statusCategory, R as fieldByRole, S as parseWorkItemRef, j as valueByRole, w as parseWorkPatch, y as parseWorkCreate } from "./assets/src-Dwe9APUx.js";
3
3
  import { createElement, on, ref } from "remix/component";
4
4
  import { Fragment, jsx, jsxs } from "remix/component/jsx-runtime";
5
5
  import { createMatcher } from "remix/route-pattern/match";
@@ -686,6 +686,30 @@ function ccount(value, character) {
686
686
  * This source code is licensed under the ISC license.
687
687
  * See the LICENSE file in the root directory of this source tree.
688
688
  */
689
+ /**
690
+ * @license @lucide/icons v1.58.0 - ISC
691
+ *
692
+ * This source code is licensed under the ISC license.
693
+ * See the LICENSE file in the root directory of this source tree.
694
+ */
695
+ /**
696
+ * @license @lucide/icons v1.58.0 - ISC
697
+ *
698
+ * This source code is licensed under the ISC license.
699
+ * See the LICENSE file in the root directory of this source tree.
700
+ */
701
+ /**
702
+ * @license @lucide/icons v1.58.0 - ISC
703
+ *
704
+ * This source code is licensed under the ISC license.
705
+ * See the LICENSE file in the root directory of this source tree.
706
+ */
707
+ /**
708
+ * @license @lucide/icons v1.58.0 - ISC
709
+ *
710
+ * This source code is licensed under the ISC license.
711
+ * See the LICENSE file in the root directory of this source tree.
712
+ */
689
713
  //#endregion
690
714
  //#region ../ui/src/lib/icon.tsx
691
715
  var icons = {
@@ -1981,6 +2005,32 @@ var icons = {
1981
2005
  }]
1982
2006
  ]
1983
2007
  },
2008
+ "task-add": {
2009
+ name: "list-plus",
2010
+ size: 24,
2011
+ node: [
2012
+ ["path", {
2013
+ d: "M16 5H3",
2014
+ key: "m91uny"
2015
+ }],
2016
+ ["path", {
2017
+ d: "M11 12H3",
2018
+ key: "51ecnj"
2019
+ }],
2020
+ ["path", {
2021
+ d: "M16 19H3",
2022
+ key: "zzsher"
2023
+ }],
2024
+ ["path", {
2025
+ d: "M18 9v6",
2026
+ key: "1twb98"
2027
+ }],
2028
+ ["path", {
2029
+ d: "M21 12h-6",
2030
+ key: "bt1uis"
2031
+ }]
2032
+ ]
2033
+ },
1984
2034
  files: {
1985
2035
  name: "files",
1986
2036
  size: 24,
@@ -2379,6 +2429,60 @@ var icons = {
2379
2429
  }]
2380
2430
  ]
2381
2431
  },
2432
+ terminal: {
2433
+ name: "square-terminal",
2434
+ size: 24,
2435
+ node: [
2436
+ ["path", {
2437
+ d: "m7 11 2-2-2-2",
2438
+ key: "1lz0vl"
2439
+ }],
2440
+ ["path", {
2441
+ d: "M11 13h4",
2442
+ key: "1p7l4v"
2443
+ }],
2444
+ ["rect", {
2445
+ width: "18",
2446
+ height: "18",
2447
+ x: "3",
2448
+ y: "3",
2449
+ rx: "2",
2450
+ ry: "2",
2451
+ key: "1m3agn"
2452
+ }]
2453
+ ],
2454
+ aliases: ["terminal-square"]
2455
+ },
2456
+ "panel-right": {
2457
+ name: "panel-right",
2458
+ size: 24,
2459
+ node: [["rect", {
2460
+ width: "18",
2461
+ height: "18",
2462
+ x: "3",
2463
+ y: "3",
2464
+ rx: "2",
2465
+ key: "afitv7"
2466
+ }], ["path", {
2467
+ d: "M15 3v18",
2468
+ key: "14nvp0"
2469
+ }]]
2470
+ },
2471
+ "panel-bottom": {
2472
+ name: "panel-bottom",
2473
+ size: 24,
2474
+ node: [["rect", {
2475
+ width: "18",
2476
+ height: "18",
2477
+ x: "3",
2478
+ y: "3",
2479
+ rx: "2",
2480
+ key: "afitv7"
2481
+ }], ["path", {
2482
+ d: "M3 15h18",
2483
+ key: "5xshup"
2484
+ }]]
2485
+ },
2382
2486
  eye: {
2383
2487
  name: "eye",
2384
2488
  size: 24,
@@ -2782,6 +2886,34 @@ function Icon(handle) {
2782
2886
  //#region ../ui/src/lib/i18n/de.ts
2783
2887
  /** Bud's interface text in German, by message key. */
2784
2888
  var de = {
2889
+ "app.client.agentPanel.agent": {
2890
+ text: "Agent",
2891
+ source: "f5a4f646"
2892
+ },
2893
+ "app.client.agentPanel.changesRefused": {
2894
+ text: "Der Agent kann Änderungen gerade nicht entgegennehmen",
2895
+ source: "bdb2edb4"
2896
+ },
2897
+ "app.client.agentPanel.changesSent": {
2898
+ text: "An den Agenten gesendet",
2899
+ source: "7f5e7626"
2900
+ },
2901
+ "app.client.agentPanel.devServer": {
2902
+ text: "Dev-Server",
2903
+ source: "27e53ed7"
2904
+ },
2905
+ "app.client.agentPanel.ended": {
2906
+ text: "Die Sitzung wurde beendet. Wenn du dich wieder verbindest, startet sie erneut.",
2907
+ source: "bf6ebbec"
2908
+ },
2909
+ "app.client.agentPanel.failed": {
2910
+ text: "Die Factory hat nicht geantwortet.",
2911
+ source: "3bd3ae7a"
2912
+ },
2913
+ "app.client.agentPanel.shell": {
2914
+ text: "Shell",
2915
+ source: "ba1969a1"
2916
+ },
2785
2917
  "app.client.commentsRequest.emptyResponse": {
2786
2918
  text: "Der Kommentarservice hat eine leere Antwort zurückgegeben.",
2787
2919
  source: "c739d1f9"
@@ -2870,6 +3002,62 @@ var de = {
2870
3002
  text: "Die Bilder konnten nicht verglichen werden.",
2871
3003
  source: "8fd04955"
2872
3004
  },
3005
+ "app.client.factoryRun.discardAndMove": {
3006
+ text: "Lauf verwerfen & verschieben",
3007
+ source: "9b3e9067"
3008
+ },
3009
+ "app.client.factoryRun.failed": {
3010
+ text: "Bud konnte die Factory nicht erreichen.",
3011
+ source: "00cea450"
3012
+ },
3013
+ "app.client.factoryRun.keepRun": {
3014
+ text: "Lauf behalten",
3015
+ source: "88a5de36"
3016
+ },
3017
+ "app.client.factoryRun.moveQuestion": {
3018
+ text: "Für {id} läuft ein Agent. Wenn du die Aufgabe nach {status} verschiebst, werden der Lauf und seine Sandbox verworfen. Es wurde nichts gepusht, daher geht die Arbeit des Agents verloren.",
3019
+ source: "d0c22345"
3020
+ },
3021
+ "app.client.factoryRun.moveTitle": {
3022
+ text: "Lauf des Agents verwerfen?",
3023
+ source: "5ce9ffe3"
3024
+ },
3025
+ "app.client.factoryRun.noPreview": {
3026
+ text: "Der Dev-Server des Runs ist nicht erreichbar.",
3027
+ source: "6dd54cb3"
3028
+ },
3029
+ "app.client.factoryRun.previewFailed": {
3030
+ text: "Die Live-Vorschau konnte nicht geöffnet werden",
3031
+ source: "a96d281a"
3032
+ },
3033
+ "app.client.factoryRun.refused": {
3034
+ text: "Der Run wurde nicht geändert",
3035
+ source: "a5fc457d"
3036
+ },
3037
+ "app.client.factoryRun.statusesMissing": {
3038
+ text: "Füge oben die Factory-Status hinzu, bevor du Aufgaben startest.",
3039
+ source: "2a26077f"
3040
+ },
3041
+ "app.client.factorySetup.add": {
3042
+ text: "Factory-Status hinzufügen",
3043
+ source: "7992be24"
3044
+ },
3045
+ "app.client.factorySetup.added": {
3046
+ text: "Factory-Status hinzugefügt",
3047
+ source: "02f6f293"
3048
+ },
3049
+ "app.client.factorySetup.failed": {
3050
+ text: "Factory-Status konnten nicht hinzugefügt werden",
3051
+ source: "8500af1b"
3052
+ },
3053
+ "app.client.factorySetup.missing": {
3054
+ text: "In deinem Aufgaben-Store braucht die Factory diese Status: {statuses}.",
3055
+ source: "573be4b6"
3056
+ },
3057
+ "app.client.factorySetup.otherKind": {
3058
+ text: "Dein Aufgaben-Store führt diese Factory-Status als anderen Statustyp: {statuses}. Ordne andere Status in factory.statuses zu.",
3059
+ source: "1b96d5e4"
3060
+ },
2873
3061
  "app.client.fileDrafts.deleteWithUnsavedDrafts": {
2874
3062
  text: "Speichere oder verwerfe die ungespeicherten Entwürfe in dieser Auswahl, bevor du sie löschst.",
2875
3063
  source: "1deabbed"
@@ -3278,6 +3466,10 @@ var de = {
3278
3466
  text: "Der Kommentardienst hat eine andere Diskussion zurückgegeben.",
3279
3467
  source: "c0151231"
3280
3468
  },
3469
+ "app.client.projectComments.taskCreated": {
3470
+ text: "Aufgabe erstellt",
3471
+ source: "4e52cadc"
3472
+ },
3281
3473
  "app.client.projectComments.waitForCurrentOperation": {
3282
3474
  text: "Warte, bis der aktuelle Kommentarvorgang abgeschlossen ist.",
3283
3475
  source: "3c6007dd"
@@ -3485,6 +3677,10 @@ var de = {
3485
3677
  text: "Aufgaben konnten nicht geladen werden.",
3486
3678
  source: "b5dd285f"
3487
3679
  },
3680
+ "app.client.projectTasks.closeAgentView": {
3681
+ text: "Agent-Ansicht schliessen",
3682
+ source: "0d888f27"
3683
+ },
3488
3684
  "app.client.projectTasks.couldNotLoadTask": {
3489
3685
  text: "Diese Aufgabe konnte nicht geladen werden.",
3490
3686
  source: "370587a2"
@@ -3501,10 +3697,22 @@ var de = {
3501
3697
  text: "Der Aufgabendienst hat eine andere Aufgabe zurückgegeben. Aktualisiere vor dem erneuten Versuch.",
3502
3698
  source: "91adeaa0"
3503
3699
  },
3700
+ "app.client.projectTasks.openAgentView": {
3701
+ text: "Agent-Ansicht öffnen",
3702
+ source: "99976d29"
3703
+ },
3504
3704
  "app.client.projectTasks.refreshBeforeChanges": {
3505
3705
  text: "Aktualisiere die Aufgaben, bevor du Änderungen vornimmst.",
3506
3706
  source: "9f4e6583"
3507
3707
  },
3708
+ "app.client.projectTasks.runKept": {
3709
+ text: "Die Aufgabe bleibt, wo sie ist, während der Agent läuft.",
3710
+ source: "ed653075"
3711
+ },
3712
+ "app.client.projectTasks.runPushing": {
3713
+ text: "Der Branch der Aufgabe wird gepusht. Verschiebe sie, sobald der Push abgeschlossen ist.",
3714
+ source: "c4f8b8c6"
3715
+ },
3508
3716
  "app.client.projectTasks.undidTaskChange": {
3509
3717
  text: "Bud hat eine Aufgabenänderung rückgängig gemacht",
3510
3718
  source: "7f50e04c"
@@ -3521,6 +3729,10 @@ var de = {
3521
3729
  text: "Aufgaben verknüpfen",
3522
3730
  source: "b6640aab"
3523
3731
  },
3732
+ "app.client.projectThreadLinks.makeTask": {
3733
+ text: "Aufgabe erstellen",
3734
+ source: "f5eaf1d4"
3735
+ },
3524
3736
  "app.client.projectThreadLinks.reviewLinksBeforeSaving": {
3525
3737
  text: "Überprüfe die neuesten Verknüpfungen, bevor du speicherst.",
3526
3738
  source: "c567f897"
@@ -3553,6 +3765,38 @@ var de = {
3553
3765
  text: "Erneut versuchen",
3554
3766
  source: "8036af59"
3555
3767
  },
3768
+ "app.client.taskContextBlock.branch": {
3769
+ text: "Branch",
3770
+ source: "a3e27665"
3771
+ },
3772
+ "app.client.taskContextBlock.code": {
3773
+ text: "Code",
3774
+ source: "795db914"
3775
+ },
3776
+ "app.client.taskContextBlock.context": {
3777
+ text: "Kontext",
3778
+ source: "bd317f1c"
3779
+ },
3780
+ "app.client.taskContextBlock.element": {
3781
+ text: "Element",
3782
+ source: "7d376697"
3783
+ },
3784
+ "app.client.taskContextBlock.page": {
3785
+ text: "Seite",
3786
+ source: "e83d9196"
3787
+ },
3788
+ "app.client.taskContextBlock.screenshot": {
3789
+ text: "Die Seite rund um den Kommentar, mit markierter Stelle",
3790
+ source: "a97331f6"
3791
+ },
3792
+ "app.client.taskContextBlock.source": {
3793
+ text: "Quelle",
3794
+ source: "61e2a3f8"
3795
+ },
3796
+ "app.client.taskContextBlock.viewport": {
3797
+ text: "Ansicht",
3798
+ source: "60b5afe3"
3799
+ },
3556
3800
  "app.client.taskDiscussion.addContextPlaceholder": {
3557
3801
  text: "Füge Kontext für dein Team hinzu…",
3558
3802
  source: "af3fe6ea"
@@ -3660,6 +3904,10 @@ var de = {
3660
3904
  text: "Die Änderung der Aufgabenverknüpfung wurde nicht bestätigt. Überprüfe die neuesten Verknüpfungen, bevor du erneut speicherst.",
3661
3905
  source: "7616ef3c"
3662
3906
  },
3907
+ "app.client.workspace.agentView": {
3908
+ text: "{task} · Agent",
3909
+ source: "d5c33796"
3910
+ },
3663
3911
  "app.client.workspace.connectProjectToOpenDiscussion": {
3664
3912
  text: "Verbinde ein Projekt, um diese Diskussion zu öffnen.",
3665
3913
  source: "fc0ca04e"
@@ -3700,6 +3948,49 @@ var de = {
3700
3948
  text: "Diskussion",
3701
3949
  source: "52a76f71"
3702
3950
  },
3951
+ "app.server.commentTask.discussion": {
3952
+ text: "Diskussion",
3953
+ source: "52a76f71"
3954
+ },
3955
+ "app.server.commentTask.element": {
3956
+ text: "Element",
3957
+ source: "7d376697"
3958
+ },
3959
+ "app.server.commentTask.linkedTasks": {
3960
+ text: "verknüpfte Aufgaben",
3961
+ source: "b827f1f2"
3962
+ },
3963
+ "app.server.commentTask.replies": {
3964
+ text: "Antworten",
3965
+ source: "43e07f5f"
3966
+ },
3967
+ "app.server.commentTask.replyCount": {
3968
+ text: {
3969
+ one: "{count} Antwort",
3970
+ other: "{count} Antworten"
3971
+ },
3972
+ source: "2b046207"
3973
+ },
3974
+ "app.server.commentTask.source": {
3975
+ text: "Quelle",
3976
+ source: "61e2a3f8"
3977
+ },
3978
+ "app.server.commentTask.title": {
3979
+ text: "Kommentar zu {place}",
3980
+ source: "553c8e8c"
3981
+ },
3982
+ "app.server.commentTask.uncommitted": {
3983
+ text: "nicht committet",
3984
+ source: "fa6d4090"
3985
+ },
3986
+ "app.server.commentTask.where": {
3987
+ text: "Wo",
3988
+ source: "91dad0f8"
3989
+ },
3990
+ "app.server.commentTask.workingTree": {
3991
+ text: "Working Tree",
3992
+ source: "7674e9c0"
3993
+ },
3703
3994
  "appShell.mainNavigation": {
3704
3995
  text: "Hauptnavigation",
3705
3996
  source: "c5a8374a"
@@ -6777,6 +7068,114 @@ var de = {
6777
7068
  text: "Tabs",
6778
7069
  source: "8ec4824d"
6779
7070
  },
7071
+ "tasks.agentBrowser.address": {
7072
+ text: "Vorschauadresse",
7073
+ source: "37f7f743"
7074
+ },
7075
+ "tasks.agentBrowser.asleep": {
7076
+ text: "Die Sandbox ist im Ruhezustand, um Kosten zu sparen.",
7077
+ source: "662bf5ad"
7078
+ },
7079
+ "tasks.agentBrowser.back": {
7080
+ text: "Zurück",
7081
+ source: "c2954bc2"
7082
+ },
7083
+ "tasks.agentBrowser.commentOnElement": {
7084
+ text: "Kommentiere ein Element für den Agenten",
7085
+ source: "0dd8635f"
7086
+ },
7087
+ "tasks.agentBrowser.forward": {
7088
+ text: "Vorwärts",
7089
+ source: "e50883ba"
7090
+ },
7091
+ "tasks.agentBrowser.newComment": {
7092
+ text: "Änderung für den Agenten",
7093
+ source: "4d74ba2c"
7094
+ },
7095
+ "tasks.agentBrowser.noPreview": {
7096
+ text: "Hier wird die Vorschau angezeigt, sobald die Sandbox des Laufs mit dem Dev-Server läuft.",
7097
+ source: "65d4e271"
7098
+ },
7099
+ "tasks.agentBrowser.openInNewWindow": {
7100
+ text: "Vorschau in einem neuen Fenster öffnen",
7101
+ source: "e0d3f63c"
7102
+ },
7103
+ "tasks.agentBrowser.preview": {
7104
+ text: "Live-Vorschau",
7105
+ source: "7e42b06f"
7106
+ },
7107
+ "tasks.agentBrowser.reload": {
7108
+ text: "Neu laden",
7109
+ source: "1a43a2ac"
7110
+ },
7111
+ "tasks.agentBrowser.status": {
7112
+ text: "Vorschau-Status",
7113
+ source: "94b339ff"
7114
+ },
7115
+ "tasks.agentBrowser.tryAgain": {
7116
+ text: "Erneut versuchen",
7117
+ source: "213e90fa"
7118
+ },
7119
+ "tasks.agentBrowser.wake": {
7120
+ text: "Aufwecken",
7121
+ source: "d0fedeca"
7122
+ },
7123
+ "tasks.agentBrowser.waking": {
7124
+ text: "Sandbox wird aufgeweckt…",
7125
+ source: "1f99ad40"
7126
+ },
7127
+ "tasks.agentTerminal.disconnected": {
7128
+ text: "Verbindung wird wiederhergestellt…",
7129
+ source: "2f039284"
7130
+ },
7131
+ "tasks.agentTerminal.sessions": {
7132
+ text: "Terminal-Sitzungen",
7133
+ source: "0257839a"
7134
+ },
7135
+ "tasks.agentTerminal.terminal": {
7136
+ text: "Terminal {name}",
7137
+ source: "99a8191c"
7138
+ },
7139
+ "tasks.agentView.agentPanes": {
7140
+ text: "Browser oder Terminal",
7141
+ source: "9c5631e4"
7142
+ },
7143
+ "tasks.agentView.browser": {
7144
+ text: "Browser",
7145
+ source: "8df5852f"
7146
+ },
7147
+ "tasks.agentView.browserAndTerminal": {
7148
+ text: "Browser & Terminal",
7149
+ source: "50b6394f"
7150
+ },
7151
+ "tasks.agentView.details": {
7152
+ text: "Details",
7153
+ source: "0ec24245"
7154
+ },
7155
+ "tasks.agentView.hideTerminal": {
7156
+ text: "Terminal ausblenden",
7157
+ source: "b355c54b"
7158
+ },
7159
+ "tasks.agentView.showTerminal": {
7160
+ text: "Terminal anzeigen",
7161
+ source: "93576794"
7162
+ },
7163
+ "tasks.agentView.terminal": {
7164
+ text: "Terminal",
7165
+ source: "93c562d1"
7166
+ },
7167
+ "tasks.agentView.terminalBelow": {
7168
+ text: "Terminal unter dem Browser",
7169
+ source: "8f840a73"
7170
+ },
7171
+ "tasks.agentView.terminalBeside": {
7172
+ text: "Terminal neben dem Browser",
7173
+ source: "9f744076"
7174
+ },
7175
+ "tasks.agentView.view": {
7176
+ text: "Agent-Ansicht",
7177
+ source: "498637bb"
7178
+ },
6780
7179
  "tasks.taskActions.actionInProgress": {
6781
7180
  text: "Eine Aufgabenaktion läuft bereits.",
6782
7181
  source: "1ae83c01"
@@ -6963,6 +7362,14 @@ var de = {
6963
7362
  text: "In Bearbeitung",
6964
7363
  source: "2948b425"
6965
7364
  },
7365
+ "tasks.taskData.label.merged": {
7366
+ text: "Zusammengeführt",
7367
+ source: "28064199"
7368
+ },
7369
+ "tasks.taskData.label.needs_approval": {
7370
+ text: "Benötigt Freigabe",
7371
+ source: "ecf5c9c5"
7372
+ },
6966
7373
  "tasks.taskData.label.open": {
6967
7374
  text: "Offen",
6968
7375
  source: "538b10e9"
@@ -6975,6 +7382,10 @@ var de = {
6975
7382
  text: "Bereit",
6976
7383
  source: "0bca3294"
6977
7384
  },
7385
+ "tasks.taskData.label.ready_to_merge": {
7386
+ text: "Bereit zum Zusammenführen",
7387
+ source: "b0ea5dc5"
7388
+ },
6978
7389
  "tasks.taskData.label.task": {
6979
7390
  text: "Aufgabe",
6980
7391
  source: "76ef3d8c"
@@ -7306,6 +7717,160 @@ var de = {
7306
7717
  text: "Unerledigter Eintrag",
7307
7718
  source: "eee80db8"
7308
7719
  },
7720
+ "tasks.taskRunBadge.failed": {
7721
+ text: "Run fehlgeschlagen",
7722
+ source: "e2b5681f"
7723
+ },
7724
+ "tasks.taskRunBadge.merged": {
7725
+ text: "Zusammengeführt",
7726
+ source: "28064199"
7727
+ },
7728
+ "tasks.taskRunBadge.needsContext": {
7729
+ text: "Braucht Kontext",
7730
+ source: "18701779"
7731
+ },
7732
+ "tasks.taskRunBadge.pushed": {
7733
+ text: "Gepusht",
7734
+ source: "79d81944"
7735
+ },
7736
+ "tasks.taskRunBadge.pushing": {
7737
+ text: "Wird gepusht",
7738
+ source: "5dd372a3"
7739
+ },
7740
+ "tasks.taskRunBadge.review": {
7741
+ text: "Freigabe nötig",
7742
+ source: "ecf5c9c5"
7743
+ },
7744
+ "tasks.taskRunBadge.settingUp": {
7745
+ text: "Wird eingerichtet",
7746
+ source: "aee4ff74"
7747
+ },
7748
+ "tasks.taskRunBadge.working": {
7749
+ text: "Agent arbeitet",
7750
+ source: "102da6c1"
7751
+ },
7752
+ "tasks.taskRunPanel.activity": {
7753
+ text: "Aktivität des Agents",
7754
+ source: "3457114f"
7755
+ },
7756
+ "tasks.taskRunPanel.agent": {
7757
+ text: "Agent",
7758
+ source: "f5a4f646"
7759
+ },
7760
+ "tasks.taskRunPanel.answer": {
7761
+ text: "Dem Agenten antworten",
7762
+ source: "d2d2b425"
7763
+ },
7764
+ "tasks.taskRunPanel.answerPlaceholder": {
7765
+ text: "Was muss der Agent wissen?",
7766
+ source: "92f7895f"
7767
+ },
7768
+ "tasks.taskRunPanel.approve": {
7769
+ text: "Freigeben & pushen",
7770
+ source: "7110783c"
7771
+ },
7772
+ "tasks.taskRunPanel.asleep": {
7773
+ text: "Die Sandbox schläft, um Kosten zu sparen. Sie wacht auf, wenn du die Vorschau öffnest, Änderungen anforderst oder freigibst.",
7774
+ source: "110af9ad"
7775
+ },
7776
+ "tasks.taskRunPanel.cancel": {
7777
+ text: "Abbrechen",
7778
+ source: "35afca3b"
7779
+ },
7780
+ "tasks.taskRunPanel.changesPlaceholder": {
7781
+ text: "Was soll der Agent ändern?",
7782
+ source: "80c05411"
7783
+ },
7784
+ "tasks.taskRunPanel.confirmApprove": {
7785
+ text: "{branch} ins Repository pushen?",
7786
+ source: "2d1354f2"
7787
+ },
7788
+ "tasks.taskRunPanel.confirmDiscard": {
7789
+ text: "Diesen Run und seine Sandbox verwerfen? Es wurde nichts gepusht.",
7790
+ source: "6ac090ee"
7791
+ },
7792
+ "tasks.taskRunPanel.discard": {
7793
+ text: "Verwerfen",
7794
+ source: "1e706c21"
7795
+ },
7796
+ "tasks.taskRunPanel.failed": {
7797
+ text: "Der Run ist fehlgeschlagen.",
7798
+ source: "49b620f0"
7799
+ },
7800
+ "tasks.taskRunPanel.loading": {
7801
+ text: "Run wird geladen …",
7802
+ source: "331b7fa5"
7803
+ },
7804
+ "tasks.taskRunPanel.merged": {
7805
+ text: "{branch} ist zusammengeführt.",
7806
+ source: "e9b50ea9"
7807
+ },
7808
+ "tasks.taskRunPanel.minutes": {
7809
+ text: {
7810
+ one: "1 Min.",
7811
+ other: "{count} Min."
7812
+ },
7813
+ source: "f87c3e0b"
7814
+ },
7815
+ "tasks.taskRunPanel.needsContext": {
7816
+ text: "Der Agent braucht mehr Kontext, um fortzufahren.",
7817
+ source: "98437cea"
7818
+ },
7819
+ "tasks.taskRunPanel.preview": {
7820
+ text: "Live-Vorschau öffnen",
7821
+ source: "62e9491d"
7822
+ },
7823
+ "tasks.taskRunPanel.pushed": {
7824
+ text: "{branch} wurde bei {commit} gepusht.",
7825
+ source: "78703afe"
7826
+ },
7827
+ "tasks.taskRunPanel.pushing": {
7828
+ text: "{branch} wird gepusht …",
7829
+ source: "9b951555"
7830
+ },
7831
+ "tasks.taskRunPanel.requestChanges": {
7832
+ text: "Änderungen anfordern",
7833
+ source: "637e8883"
7834
+ },
7835
+ "tasks.taskRunPanel.retry": {
7836
+ text: "Erneut versuchen",
7837
+ source: "8036af59"
7838
+ },
7839
+ "tasks.taskRunPanel.review": {
7840
+ text: "Der Agent ist fertig und wartet auf deine Prüfung.",
7841
+ source: "7e509cde"
7842
+ },
7843
+ "tasks.taskRunPanel.seconds": {
7844
+ text: {
7845
+ one: "1 s",
7846
+ other: "{count} s"
7847
+ },
7848
+ source: "24364243"
7849
+ },
7850
+ "tasks.taskRunPanel.settingUp": {
7851
+ text: "Sandbox wird eingerichtet …",
7852
+ source: "be97ea8e"
7853
+ },
7854
+ "tasks.taskRunPanel.showOnCanvas": {
7855
+ text: "Auf der Leinwand anzeigen",
7856
+ source: "b076f243"
7857
+ },
7858
+ "tasks.taskRunPanel.start": {
7859
+ text: "Aufgabe starten",
7860
+ source: "dbc9a724"
7861
+ },
7862
+ "tasks.taskRunPanel.startAgain": {
7863
+ text: "Erneut starten",
7864
+ source: "9a468407"
7865
+ },
7866
+ "tasks.taskRunPanel.startHint": {
7867
+ text: "Ein Agent bearbeitet diese Aufgabe in einer Sandbox. Erst nach deiner Freigabe wird etwas gepusht.",
7868
+ source: "ccf1c6a4"
7869
+ },
7870
+ "tasks.taskRunPanel.working": {
7871
+ text: "Der Agent arbeitet …",
7872
+ source: "202318fe"
7873
+ },
7309
7874
  "tasks.taskSections.latestEvents": {
7310
7875
  text: {
7311
7876
  one: "Das neueste Ereignis wird angezeigt.",
@@ -7423,6 +7988,10 @@ var de = {
7423
7988
  text: "Erstelle eine Aufgabe, um mit der Planung deiner Arbeit zu beginnen.",
7424
7989
  source: "7c21b645"
7425
7990
  },
7991
+ "tasks.taskWorkspace.fewerStatuses": {
7992
+ text: "Weniger Statuswerte anzeigen",
7993
+ source: "1de3f0ed"
7994
+ },
7426
7995
  "tasks.taskWorkspace.filterEpic": {
7427
7996
  text: "Epic filtern",
7428
7997
  source: "19c2ed58"
@@ -7491,6 +8060,17 @@ var de = {
7491
8060
  text: "Noch kein {label}-Arbeitsbereich vorhanden",
7492
8061
  source: "233c23c9"
7493
8062
  },
8063
+ "tasks.taskWorkspace.otherStatuses": {
8064
+ text: {
8065
+ one: "+1 in einem anderen Status",
8066
+ other: "+{count} in anderen Statuswerten"
8067
+ },
8068
+ source: "6cae97c5"
8069
+ },
8070
+ "tasks.taskWorkspace.otherStatusesEmpty": {
8071
+ text: "Weitere Status",
8072
+ source: "d56d45a5"
8073
+ },
7494
8074
  "tasks.taskWorkspace.priority": {
7495
8075
  text: "Priorität",
7496
8076
  source: "e68d9f29"
@@ -7562,6 +8142,13 @@ var de = {
7562
8142
  text: "Deine lokalen Aufgabenänderungen teilen",
7563
8143
  source: "1dad116c"
7564
8144
  },
8145
+ "tasks.taskWorkspace.showTasks": {
8146
+ text: {
8147
+ one: "1 Aufgabe anzeigen",
8148
+ other: "{count} Aufgaben anzeigen"
8149
+ },
8150
+ source: "56258faa"
8151
+ },
7565
8152
  "tasks.taskWorkspace.showingCount": {
7566
8153
  text: "Zeigt {shown} von {total}",
7567
8154
  source: "e8675f4a"
@@ -7658,6 +8245,13 @@ var de = {
7658
8245
  * and the thing (`canvas.zoomIn`); `pnpm translate` keeps the other languages in step.
7659
8246
  */
7660
8247
  var en = {
8248
+ "app.client.agentPanel.agent": "Agent",
8249
+ "app.client.agentPanel.changesRefused": "The agent can’t take changes now",
8250
+ "app.client.agentPanel.changesSent": "Sent to the agent",
8251
+ "app.client.agentPanel.devServer": "Dev server",
8252
+ "app.client.agentPanel.ended": "The session ended. It starts again when you reconnect.",
8253
+ "app.client.agentPanel.failed": "The factory didn’t answer.",
8254
+ "app.client.agentPanel.shell": "Shell",
7661
8255
  "app.client.commentsRequest.emptyResponse": "The comments service returned an empty response.",
7662
8256
  "app.client.commentsRequest.invalidData": "The comments service returned invalid data.",
7663
8257
  "app.client.commentsRequest.invalidEndpoint": "Invalid comments endpoint.",
@@ -7680,6 +8274,20 @@ var en = {
7680
8274
  "app.client.differenceView.slideStatus": "{kind} · change {change} of {count} · {index} / {total}",
7681
8275
  "app.client.differenceView.slideshowLabel": "Differences slideshow",
7682
8276
  "app.client.differenceWorker.compareError": "The pictures could not be compared.",
8277
+ "app.client.factoryRun.discardAndMove": "Discard run & move",
8278
+ "app.client.factoryRun.failed": "Bud couldn’t reach the factory.",
8279
+ "app.client.factoryRun.keepRun": "Keep the run",
8280
+ "app.client.factoryRun.moveQuestion": "{id} has an agent run. Moving it to {status} discards the run and its sandbox; nothing was pushed, so the agent’s work is lost.",
8281
+ "app.client.factoryRun.moveTitle": "Discard the agent’s run?",
8282
+ "app.client.factoryRun.noPreview": "The run’s dev server isn’t up.",
8283
+ "app.client.factoryRun.previewFailed": "Couldn’t open the live preview",
8284
+ "app.client.factoryRun.refused": "The run didn’t change",
8285
+ "app.client.factoryRun.statusesMissing": "Add the factory statuses above before starting tasks.",
8286
+ "app.client.factorySetup.add": "Add factory statuses",
8287
+ "app.client.factorySetup.added": "Factory statuses added",
8288
+ "app.client.factorySetup.failed": "Couldn’t add the factory statuses",
8289
+ "app.client.factorySetup.missing": "The factory needs these statuses in your task store: {statuses}.",
8290
+ "app.client.factorySetup.otherKind": "Your task store has these factory statuses as another kind of status: {statuses}. Map other statuses in factory.statuses.",
7683
8291
  "app.client.fileDrafts.deleteWithUnsavedDrafts": "Save or discard the unsaved drafts in this selection before deleting it.",
7684
8292
  "app.client.fileDrafts.destinationDraftConflict": "The destination acquired an unsaved draft while the move was running. Both drafts remain available at their original paths; download or review them before continuing.",
7685
8293
  "app.client.fileDrafts.destinationHasDraft": "A destination has an unsaved draft. Save or discard it before moving files here.",
@@ -7791,6 +8399,7 @@ var en = {
7791
8399
  "app.client.projectComments.refreshBeforeTryingAgain": "The comment write could not be confirmed. Refresh before trying again.",
7792
8400
  "app.client.projectComments.reloadDiscussionBeforeSaving": "Reload this discussion before saving.",
7793
8401
  "app.client.projectComments.serviceReturnedAnotherDiscussion": "The comments service returned another discussion.",
8402
+ "app.client.projectComments.taskCreated": "Task created",
7794
8403
  "app.client.projectComments.waitForCurrentOperation": "Wait for the current comment operation to finish.",
7795
8404
  "app.client.projectDifferences.comparisonFailed": "The pictures could not be compared.",
7796
8405
  "app.client.projectFileReview.commentsUnavailable": "Comments are stored by your storage adapter. Beads: run bd init in this project.",
@@ -7845,15 +8454,20 @@ var en = {
7845
8454
  "app.client.projectPreviews.requestFailed": "Preview request failed ({status}).",
7846
8455
  "app.client.projectTaskPicker.adapterUnavailable": "The task adapter is unavailable.",
7847
8456
  "app.client.projectTaskPicker.loadFailed": "Could not load tasks.",
8457
+ "app.client.projectTasks.closeAgentView": "Close Agent view",
7848
8458
  "app.client.projectTasks.couldNotLoadTask": "Could not load this task.",
7849
8459
  "app.client.projectTasks.couldNotLoadTasks": "Could not load tasks.",
7850
8460
  "app.client.projectTasks.differentTaskRefresh": "The task service returned a different task. Refresh and try again.",
7851
8461
  "app.client.projectTasks.differentTaskRefreshRetry": "The task service returned a different task. Refresh before retrying.",
8462
+ "app.client.projectTasks.openAgentView": "Open Agent view",
7852
8463
  "app.client.projectTasks.refreshBeforeChanges": "Refresh tasks before making changes.",
8464
+ "app.client.projectTasks.runKept": "The task stays where it is while its agent runs.",
8465
+ "app.client.projectTasks.runPushing": "The task’s branch is being pushed; move it once the push is done.",
7853
8466
  "app.client.projectTasks.undidTaskChange": "Bud undid a task change",
7854
8467
  "app.client.projectTasks.writeNotConfirmed": "The write was not confirmed.",
7855
8468
  "app.client.projectThreadLinks.anotherDiscussion": "The service returned another discussion.",
7856
8469
  "app.client.projectThreadLinks.linkTasks": "Link tasks",
8470
+ "app.client.projectThreadLinks.makeTask": "Make task",
7857
8471
  "app.client.projectThreadLinks.reviewLinksBeforeSaving": "Review the latest links before saving.",
7858
8472
  "app.client.screenHost.couldNotOpen": "Could not open {label}.",
7859
8473
  "app.client.screenHost.didntOpen": "{label} didn't open",
@@ -7862,6 +8476,14 @@ var en = {
7862
8476
  "app.client.screenHost.loading": "Loading {label}…",
7863
8477
  "app.client.screenHost.noRouteMatches": "No screen route matches {href}.",
7864
8478
  "app.client.screenHost.retry": "Retry",
8479
+ "app.client.taskContextBlock.branch": "Branch",
8480
+ "app.client.taskContextBlock.code": "Code",
8481
+ "app.client.taskContextBlock.context": "Context",
8482
+ "app.client.taskContextBlock.element": "Element",
8483
+ "app.client.taskContextBlock.page": "Page",
8484
+ "app.client.taskContextBlock.screenshot": "The page around the comment, with its point marked",
8485
+ "app.client.taskContextBlock.source": "Source",
8486
+ "app.client.taskContextBlock.viewport": "Viewport",
7865
8487
  "app.client.taskDiscussion.addContextPlaceholder": "Add context for your team…",
7866
8488
  "app.client.taskDiscussion.addTaskComment": "Add task comment",
7867
8489
  "app.client.taskDiscussion.cancel": "Cancel",
@@ -7891,6 +8513,7 @@ var en = {
7891
8513
  },
7892
8514
  "app.client.threadLinks.taskDiscussionNeedsLinkedTask": "A task discussion needs at least one linked task.",
7893
8515
  "app.client.threadLinks.taskLinkChangeNotConfirmed": "The task link change was not confirmed. Review the latest links before saving again.",
8516
+ "app.client.workspace.agentView": "{task} · Agent",
7894
8517
  "app.client.workspace.connectProjectToOpenDiscussion": "Connect a project to open this discussion.",
7895
8518
  "app.client.workspace.couldNotOpenDiscussion": "Could not open this discussion.",
7896
8519
  "app.client.workspace.discussion": "Discussion",
@@ -7901,6 +8524,19 @@ var en = {
7901
8524
  "app.client.workspace.startProjectWithBudVitePlugin": "Start your project with the Bud Vite plugin, or run Bud from its directory. Its screens appear here when the companion connects.",
7902
8525
  "app.client.workspace.yourProjectSideBySide": "Your project, side by side.",
7903
8526
  "app.controller.discussion": "Discussion",
8527
+ "app.server.commentTask.discussion": "Discussion",
8528
+ "app.server.commentTask.element": "Element",
8529
+ "app.server.commentTask.linkedTasks": "linked tasks",
8530
+ "app.server.commentTask.replies": "Replies",
8531
+ "app.server.commentTask.replyCount": {
8532
+ one: "{count} reply",
8533
+ other: "{count} replies"
8534
+ },
8535
+ "app.server.commentTask.source": "Source",
8536
+ "app.server.commentTask.title": "Comment on {place}",
8537
+ "app.server.commentTask.uncommitted": "uncommitted",
8538
+ "app.server.commentTask.where": "Where",
8539
+ "app.server.commentTask.workingTree": "working tree",
7904
8540
  "appShell.mainNavigation": "Main navigation",
7905
8541
  "breadcrumb.navigationLabel": "Breadcrumb",
7906
8542
  "canvas.artboardCanvas.chooseCollectionPage": "Choose a {collection} page",
@@ -8758,6 +9394,33 @@ var en = {
8758
9394
  other: "{count} tabs"
8759
9395
  },
8760
9396
  "shellTabBar.tabsLabel": "Tabs",
9397
+ "tasks.agentBrowser.address": "Preview address",
9398
+ "tasks.agentBrowser.asleep": "The sandbox is asleep to save costs.",
9399
+ "tasks.agentBrowser.back": "Back",
9400
+ "tasks.agentBrowser.commentOnElement": "Comment on an element for the agent",
9401
+ "tasks.agentBrowser.forward": "Forward",
9402
+ "tasks.agentBrowser.newComment": "Change for the agent",
9403
+ "tasks.agentBrowser.noPreview": "The preview shows here while the run’s sandbox is up with its dev server.",
9404
+ "tasks.agentBrowser.openInNewWindow": "Open the preview in a new window",
9405
+ "tasks.agentBrowser.preview": "Live preview",
9406
+ "tasks.agentBrowser.reload": "Reload",
9407
+ "tasks.agentBrowser.status": "Preview status",
9408
+ "tasks.agentBrowser.tryAgain": "Try again",
9409
+ "tasks.agentBrowser.wake": "Wake it",
9410
+ "tasks.agentBrowser.waking": "Waking the sandbox…",
9411
+ "tasks.agentTerminal.disconnected": "Reconnecting…",
9412
+ "tasks.agentTerminal.sessions": "Terminal sessions",
9413
+ "tasks.agentTerminal.terminal": "{name} terminal",
9414
+ "tasks.agentView.agentPanes": "Browser or terminal",
9415
+ "tasks.agentView.browser": "Browser",
9416
+ "tasks.agentView.browserAndTerminal": "Browser & terminal",
9417
+ "tasks.agentView.details": "Details",
9418
+ "tasks.agentView.hideTerminal": "Hide terminal",
9419
+ "tasks.agentView.showTerminal": "Show terminal",
9420
+ "tasks.agentView.terminal": "Terminal",
9421
+ "tasks.agentView.terminalBelow": "Terminal below the browser",
9422
+ "tasks.agentView.terminalBeside": "Terminal beside the browser",
9423
+ "tasks.agentView.view": "Agent view",
8761
9424
  "tasks.taskActions.actionInProgress": "A task action is already in progress.",
8762
9425
  "tasks.taskActions.actions": "Actions",
8763
9426
  "tasks.taskActions.changeNotConfirmed": "The change was not confirmed. Refresh before trying again.",
@@ -8809,9 +9472,12 @@ var en = {
8809
9472
  "tasks.taskData.label.feature": "Feature",
8810
9473
  "tasks.taskData.label.hooked": "Hooked",
8811
9474
  "tasks.taskData.label.in_progress": "In progress",
9475
+ "tasks.taskData.label.merged": "Merged",
9476
+ "tasks.taskData.label.needs_approval": "Needs approval",
8812
9477
  "tasks.taskData.label.open": "Open",
8813
9478
  "tasks.taskData.label.pinned": "Pinned",
8814
9479
  "tasks.taskData.label.ready": "Ready",
9480
+ "tasks.taskData.label.ready_to_merge": "Ready to merge",
8815
9481
  "tasks.taskData.label.task": "Task",
8816
9482
  "tasks.taskData.low": "Low",
8817
9483
  "tasks.taskData.noEpic": "No epic",
@@ -8897,6 +9563,49 @@ var en = {
8897
9563
  "tasks.taskMarkdown.completedItem": "Completed item",
8898
9564
  "tasks.taskMarkdown.image": "Image",
8899
9565
  "tasks.taskMarkdown.incompleteItem": "Incomplete item",
9566
+ "tasks.taskRunBadge.failed": "Run failed",
9567
+ "tasks.taskRunBadge.merged": "Merged",
9568
+ "tasks.taskRunBadge.needsContext": "Needs context",
9569
+ "tasks.taskRunBadge.pushed": "Pushed",
9570
+ "tasks.taskRunBadge.pushing": "Pushing",
9571
+ "tasks.taskRunBadge.review": "Needs approval",
9572
+ "tasks.taskRunBadge.settingUp": "Setting up",
9573
+ "tasks.taskRunBadge.working": "Agent working",
9574
+ "tasks.taskRunPanel.activity": "Agent activity",
9575
+ "tasks.taskRunPanel.agent": "Agent",
9576
+ "tasks.taskRunPanel.answer": "Answer the agent",
9577
+ "tasks.taskRunPanel.answerPlaceholder": "What does the agent need to know?",
9578
+ "tasks.taskRunPanel.approve": "Approve & push",
9579
+ "tasks.taskRunPanel.asleep": "The sandbox sleeps to save cost. It wakes up when you open the preview, request changes or approve.",
9580
+ "tasks.taskRunPanel.cancel": "Cancel",
9581
+ "tasks.taskRunPanel.changesPlaceholder": "What should the agent change?",
9582
+ "tasks.taskRunPanel.confirmApprove": "Push {branch} to the repository?",
9583
+ "tasks.taskRunPanel.confirmDiscard": "Discard this run and its sandbox? Nothing was pushed.",
9584
+ "tasks.taskRunPanel.discard": "Discard",
9585
+ "tasks.taskRunPanel.failed": "The run failed.",
9586
+ "tasks.taskRunPanel.loading": "Loading the run…",
9587
+ "tasks.taskRunPanel.merged": "{branch} is merged.",
9588
+ "tasks.taskRunPanel.minutes": {
9589
+ one: "1 min",
9590
+ other: "{count} min"
9591
+ },
9592
+ "tasks.taskRunPanel.needsContext": "The agent needs more context to go on.",
9593
+ "tasks.taskRunPanel.preview": "Open live preview",
9594
+ "tasks.taskRunPanel.pushed": "Pushed {branch} at {commit}.",
9595
+ "tasks.taskRunPanel.pushing": "Pushing {branch}…",
9596
+ "tasks.taskRunPanel.requestChanges": "Request changes",
9597
+ "tasks.taskRunPanel.retry": "Retry",
9598
+ "tasks.taskRunPanel.review": "The agent is done and waits for your review.",
9599
+ "tasks.taskRunPanel.seconds": {
9600
+ one: "1 s",
9601
+ other: "{count} s"
9602
+ },
9603
+ "tasks.taskRunPanel.settingUp": "Setting up the sandbox…",
9604
+ "tasks.taskRunPanel.showOnCanvas": "Show on canvas",
9605
+ "tasks.taskRunPanel.start": "Start task",
9606
+ "tasks.taskRunPanel.startAgain": "Start again",
9607
+ "tasks.taskRunPanel.startHint": "An agent works on this task in a sandbox. Nothing is pushed until you approve.",
9608
+ "tasks.taskRunPanel.working": "The agent is working…",
8900
9609
  "tasks.taskSections.latestEvents": {
8901
9610
  one: "Showing the latest {count} event.",
8902
9611
  other: "Showing the latest {count} events."
@@ -8933,6 +9642,7 @@ var en = {
8933
9642
  "tasks.taskWorkspace.connectProject": "Connect a project",
8934
9643
  "tasks.taskWorkspace.createTask": "Create task",
8935
9644
  "tasks.taskWorkspace.createToPlan": "Create a task to start planning your work.",
9645
+ "tasks.taskWorkspace.fewerStatuses": "Show fewer statuses",
8936
9646
  "tasks.taskWorkspace.filterEpic": "Filter epic",
8937
9647
  "tasks.taskWorkspace.filterField": "Filter {field}",
8938
9648
  "tasks.taskWorkspace.filters": "Filters",
@@ -8950,6 +9660,11 @@ var en = {
8950
9660
  "tasks.taskWorkspace.noMatches": "No tasks match this view",
8951
9661
  "tasks.taskWorkspace.noRemote": "No {label} remote is configured",
8952
9662
  "tasks.taskWorkspace.noWorkspace": "No {label} workspace yet",
9663
+ "tasks.taskWorkspace.otherStatuses": {
9664
+ one: "+1 in other statuses",
9665
+ other: "+{count} in other statuses"
9666
+ },
9667
+ "tasks.taskWorkspace.otherStatusesEmpty": "Other statuses",
8953
9668
  "tasks.taskWorkspace.priority": "Priority",
8954
9669
  "tasks.taskWorkspace.projectTasks": "Project tasks",
8955
9670
  "tasks.taskWorkspace.pullChanges": "Pull changes",
@@ -8970,6 +9685,10 @@ var en = {
8970
9685
  "tasks.taskWorkspace.searchPlaceholder": "Search tasks, IDs, labels…",
8971
9686
  "tasks.taskWorkspace.searchTasks": "Search tasks",
8972
9687
  "tasks.taskWorkspace.shareLocalChanges": "Share your local task changes",
9688
+ "tasks.taskWorkspace.showTasks": {
9689
+ one: "Show 1 task",
9690
+ other: "Show {count} tasks"
9691
+ },
8973
9692
  "tasks.taskWorkspace.showingCount": "Showing {shown} of {total}",
8974
9693
  "tasks.taskWorkspace.sortTasks": "Sort tasks",
8975
9694
  "tasks.taskWorkspace.startBud": "Start Bud from your web project to see its tasks.",
@@ -9125,7 +9844,8 @@ function taskFields(item, schema) {
9125
9844
  /** Places in Bud's task screen, shared by links and the screen's matcher. */
9126
9845
  var taskRoutes = route("/tasks", {
9127
9846
  index: get("/"),
9128
- show: get("/:id")
9847
+ show: get("/:id"),
9848
+ agent: get("/:id/agent")
9129
9849
  });
9130
9850
  route("/pages", {
9131
9851
  index: get("/"),
@@ -9140,6 +9860,7 @@ route("/files", {
9140
9860
  });
9141
9861
  route("/comments", { show: get("/:id") });
9142
9862
  createMatcher(taskRoutes.show.pattern);
9863
+ createMatcher(taskRoutes.agent.pattern);
9143
9864
  /**
9144
9865
  * Turns an identifier such as `in_progress` into a label such as `In progress`.
9145
9866
  * @param value - The identifier.
@@ -9221,6 +9942,85 @@ function taskDate(value) {
9221
9942
  }).format(new Date(value)) + " UTC";
9222
9943
  }
9223
9944
  //#endregion
9945
+ //#region ../ui/src/lib/tasks/task-run-badge.tsx
9946
+ /**
9947
+ * What a factory run's badge says: busy states with a spinner, then review, a question for a
9948
+ * person, pushed or failed.
9949
+ * @param run - The run's state and error.
9950
+ * @returns Its tone, label and whether it spins, or null for a run that leaves no badge.
9951
+ */
9952
+ function taskRunBadge(run) {
9953
+ switch (run.state) {
9954
+ case "provisioning": return {
9955
+ tone: "busy",
9956
+ label: t("tasks.taskRunBadge.settingUp")
9957
+ };
9958
+ case "working":
9959
+ case "changes": return {
9960
+ tone: "busy",
9961
+ label: t("tasks.taskRunBadge.working")
9962
+ };
9963
+ case "review": return {
9964
+ tone: "review",
9965
+ label: t("tasks.taskRunBadge.review")
9966
+ };
9967
+ case "needs_context": return {
9968
+ tone: "question",
9969
+ label: t("tasks.taskRunBadge.needsContext")
9970
+ };
9971
+ case "approved":
9972
+ case "pushing": return {
9973
+ tone: "busy",
9974
+ label: t("tasks.taskRunBadge.pushing")
9975
+ };
9976
+ case "pushed": return {
9977
+ tone: "done",
9978
+ label: t("tasks.taskRunBadge.pushed")
9979
+ };
9980
+ case "merged": return {
9981
+ tone: "done",
9982
+ label: t("tasks.taskRunBadge.merged")
9983
+ };
9984
+ case "failed": return {
9985
+ tone: "failed",
9986
+ label: t("tasks.taskRunBadge.failed")
9987
+ };
9988
+ default: return null;
9989
+ }
9990
+ }
9991
+ var tones = {
9992
+ busy: "text-muted",
9993
+ review: "text-amber-600 dark:text-amber-400",
9994
+ question: "text-violet-600 dark:text-violet-400",
9995
+ done: "text-emerald-600 dark:text-emerald-400",
9996
+ failed: "text-red-600 dark:text-red-400"
9997
+ };
9998
+ /**
9999
+ * A task card's factory run badge: where the agent's run is, with a failed run's reason on hover.
10000
+ * @param handle - The run's summary.
10001
+ * @returns The badge render function; nothing for a run that leaves no badge.
10002
+ */
10003
+ function TaskRunBadge(handle) {
10004
+ return () => {
10005
+ let badge = taskRunBadge(handle.props.run);
10006
+ if (!badge) return null;
10007
+ return /* @__PURE__ */ jsxs("span", {
10008
+ class: `flex min-w-0 items-center gap-1 ${tones[badge.tone]}`,
10009
+ title: handle.props.run.error ?? void 0,
10010
+ "data-testid": "task-run-badge",
10011
+ "data-state": handle.props.run.state,
10012
+ children: [badge.tone === "busy" ? /* @__PURE__ */ jsx(Spinner, { size: 11 }) : /* @__PURE__ */ jsx(Icon, {
10013
+ name: badge.tone === "failed" ? "circle-alert" : handle.props.run.state === "merged" ? "circle-check" : badge.tone === "done" ? "push" : badge.tone === "question" ? "message" : "circle-dot",
10014
+ size: 12
10015
+ }), /* @__PURE__ */ jsx(Text, {
10016
+ variant: "ui-caption",
10017
+ class: "truncate",
10018
+ children: badge.label
10019
+ })]
10020
+ });
10021
+ };
10022
+ }
10023
+ //#endregion
9224
10024
  //#region ../ui/src/lib/tasks/task-card.tsx
9225
10025
  var statusTone = {
9226
10026
  backlog: "bg-violet-400",
@@ -9260,7 +10060,8 @@ function TaskCard(handle) {
9260
10060
  let issue = taskFields(item, schema);
9261
10061
  let linked = issue.dependencyCount ?? issue.dependencies.length;
9262
10062
  let dependents = issue.dependentCount ?? issue.dependents.length;
9263
- let hasMeta = ready || blocked || !!issue.assignee || !!issue.parentId || !!linked || !!dependents || !!issue.commentCount;
10063
+ let run = item.run && taskRunBadge(item.run) ? item.run : null;
10064
+ let hasMeta = !!run || ready || blocked || !!issue.assignee || !!issue.parentId || !!linked || !!dependents || !!issue.commentCount;
9264
10065
  let priority = /* @__PURE__ */ jsx(Text, {
9265
10066
  variant: "ui-caption",
9266
10067
  weight: "medium",
@@ -9269,6 +10070,7 @@ function TaskCard(handle) {
9269
10070
  children: typeof issue.priority === "number" ? `P${issue.priority}` : issue.priorityLabel
9270
10071
  });
9271
10072
  let meta = /* @__PURE__ */ jsxs(Fragment, { children: [
10073
+ run ? /* @__PURE__ */ jsx(TaskRunBadge, { run }) : null,
9272
10074
  ready ? /* @__PURE__ */ jsxs("span", {
9273
10075
  class: "flex items-center gap-1 text-emerald-600 dark:text-emerald-400",
9274
10076
  children: [/* @__PURE__ */ jsx(Icon, {
@@ -27136,6 +27938,7 @@ function TaskDetails(handle) {
27136
27938
  ]
27137
27939
  }),
27138
27940
  children: [
27941
+ handle.props.actions ?? null,
27139
27942
  /* @__PURE__ */ jsx(IconButton, {
27140
27943
  icon: "link",
27141
27944
  label: t("tasks.taskDetails.copyTaskLink"),
@@ -27161,13 +27964,13 @@ function TaskDetails(handle) {
27161
27964
  }),
27162
27965
  /* @__PURE__ */ jsxs("div", {
27163
27966
  "data-task-detail-scroll": "",
27164
- class: "flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain",
27967
+ class: "@container/page flex min-h-0 flex-1 flex-col overflow-y-auto overscroll-contain",
27165
27968
  "aria-busy": loading ? "true" : "false",
27166
27969
  mix: scrollFade("y"),
27167
27970
  children: [
27168
27971
  loading && !issue ? /* @__PURE__ */ jsx(Loader, { label: t("tasks.taskDetails.loadingTask") }) : null,
27169
27972
  error ? /* @__PURE__ */ jsx("div", {
27170
- class: "px-4 pb-6 md:px-6",
27973
+ class: "px-4 pb-6 @min-[40rem]/page:px-6",
27171
27974
  children: /* @__PURE__ */ jsxs(FieldCard, {
27172
27975
  class: "max-w-2xl",
27173
27976
  role: "alert",
@@ -27182,7 +27985,7 @@ function TaskDetails(handle) {
27182
27985
  })
27183
27986
  }) : null,
27184
27987
  issue && item && detail ? /* @__PURE__ */ jsxs("div", {
27185
- class: "mx-auto grid w-full max-w-6xl gap-8 px-4 pt-6 pb-12 md:px-6 lg:grid-cols-[minmax(0,1fr)_18rem] lg:gap-12",
27988
+ class: "mx-auto grid w-full max-w-6xl gap-8 px-4 pt-6 pb-12 @min-[40rem]/page:px-6 @min-[56rem]/page:grid-cols-[minmax(0,1fr)_18rem] @min-[56rem]/page:gap-12",
27186
27989
  children: [/* @__PURE__ */ jsxs("article", {
27187
27990
  class: "flex min-w-0 flex-col gap-8",
27188
27991
  children: [
@@ -27304,7 +28107,7 @@ function TaskDetails(handle) {
27304
28107
  })
27305
28108
  ]
27306
28109
  }), /* @__PURE__ */ jsxs("aside", {
27307
- class: "flex min-w-0 flex-col gap-4 lg:sticky lg:top-6 lg:self-start",
28110
+ class: "flex min-w-0 flex-col gap-4 @min-[56rem]/page:sticky @min-[56rem]/page:top-6 @min-[56rem]/page:self-start",
27308
28111
  children: [/* @__PURE__ */ jsx(Properties, {
27309
28112
  ...context,
27310
28113
  item,