@schlenkr/ragents 0.1.8 → 0.1.9

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 (174) hide show
  1. package/apps/server/src/config-definition.ts +24 -2
  2. package/apps/server/src/config.ts +0 -6
  3. package/apps/server/src/host-api.json +3 -10
  4. package/apps/server/src/host-api.ts +6 -7
  5. package/apps/server/src/plugin-build/build.ts +28 -5
  6. package/apps/server/src/plugin-build/plugin-description.ts +1 -1
  7. package/apps/server/src/plugin-build/typecheck.ts +2 -2
  8. package/apps/server/src/plugin-support/language-server/plugin.ts +8 -7
  9. package/apps/server/src/plugin-support/language-server/tools.ts +7 -6
  10. package/apps/server/src/plugin-support/model-aliases.ts +55 -25
  11. package/apps/server/src/plugin-support/product-relay.ts +10 -2
  12. package/apps/server/src/plugin-support/workspace-sandbox-host.ts +18 -9
  13. package/apps/server/src/profile/bundle-manifest.ts +7 -3
  14. package/apps/server/src/profile/compose.ts +6 -0
  15. package/apps/server/src/profile/plugin-discovery.ts +6 -1
  16. package/apps/server/src/profile/provisioning.ts +6 -5
  17. package/apps/server/src/ragents/engine.ts +0 -1
  18. package/apps/server/src/ragents/host-services.ts +4 -0
  19. package/apps/server/src/ragents/session.ts +1 -1
  20. package/apps/server/src/server.ts +1 -0
  21. package/apps/server/tsconfig.json +2 -0
  22. package/apps/web/dist/help/guide-clients.html +14 -6
  23. package/apps/web/dist/help/guide-clients.md +14 -6
  24. package/apps/web/dist/help/guide-distributed.html +12 -4
  25. package/apps/web/dist/help/guide-distributed.md +12 -4
  26. package/apps/web/dist/help/guide-getting-started.html +12 -8
  27. package/apps/web/dist/help/guide-getting-started.md +12 -8
  28. package/apps/web/dist/help/guide-plugins.html +6 -2
  29. package/apps/web/dist/help/guide-plugins.md +6 -2
  30. package/apps/web/dist/help/guide-runtime.html +2 -1
  31. package/apps/web/dist/help/guide-runtime.md +2 -1
  32. package/apps/web/dist/help/index.html +3328 -1135
  33. package/apps/web/dist/host-web.json +3 -3
  34. package/bundles/ragents.activity/ragents-bundle.json +3 -3
  35. package/bundles/ragents.actor-programs/ragents-bundle.json +3 -3
  36. package/bundles/ragents.ask/ragents-bundle.json +4 -4
  37. package/bundles/ragents.ask/server/index.js +42 -11
  38. package/bundles/ragents.ask/server/index.js.map +3 -3
  39. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js +2 -0
  40. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +7 -0
  41. package/bundles/ragents.ask/web/classes.json +1 -1
  42. package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
  43. package/bundles/ragents.ask/web/index.js +1 -1
  44. package/bundles/ragents.ask/web/index.js.map +3 -3
  45. package/bundles/ragents.browser/executor/index.mjs +357 -0
  46. package/bundles/ragents.browser/executor/index.mjs.map +7 -0
  47. package/bundles/ragents.browser/ragents-bundle.json +5 -8
  48. package/bundles/ragents.browser/server/chunks/{chunk-2GKLLCBE.js → chunk-CWLX4VA5.js} +1 -1
  49. package/bundles/ragents.browser/server/chunks/chunk-CWLX4VA5.js.map +7 -0
  50. package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
  51. package/bundles/ragents.browser/server/index.js +20 -9
  52. package/bundles/ragents.browser/server/index.js.map +4 -4
  53. package/bundles/ragents.documents/ragents-bundle.json +3 -3
  54. package/bundles/ragents.lsp-fsharp/executor/index.mjs +68 -0
  55. package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +7 -0
  56. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +5 -9
  57. package/bundles/ragents.lsp-fsharp/server/index.js +21 -6
  58. package/bundles/ragents.lsp-fsharp/server/index.js.map +4 -4
  59. package/bundles/ragents.lsp-roslyn/executor/index.mjs +68 -0
  60. package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +7 -0
  61. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +6 -8
  62. package/bundles/ragents.lsp-roslyn/server/index.js +54 -15
  63. package/bundles/ragents.lsp-roslyn/server/index.js.map +4 -4
  64. package/bundles/ragents.lsp-typescript/executor/index.mjs +49 -0
  65. package/bundles/ragents.lsp-typescript/executor/index.mjs.map +7 -0
  66. package/bundles/ragents.lsp-typescript/ragents-bundle.json +5 -7
  67. package/bundles/ragents.lsp-typescript/server/index.js +22 -2
  68. package/bundles/ragents.lsp-typescript/server/index.js.map +3 -3
  69. package/bundles/ragents.model-relay/ragents-bundle.json +4 -4
  70. package/bundles/ragents.model-relay/server/index.js +3 -2
  71. package/bundles/ragents.model-relay/server/index.js.map +2 -2
  72. package/bundles/ragents.orchestration/ragents-bundle.json +3 -3
  73. package/bundles/ragents.overseer/ragents-bundle.json +3 -3
  74. package/bundles/ragents.processes/ragents-bundle.json +3 -3
  75. package/bundles/ragents.product/ragents-bundle.json +3 -3
  76. package/bundles/ragents.profile-distribution/ragents-bundle.json +4 -4
  77. package/bundles/ragents.profile-distribution/server/index.js +1 -1
  78. package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
  79. package/bundles/ragents.reference/ragents-bundle.json +3 -3
  80. package/bundles/ragents.todo/ragents-bundle.json +3 -3
  81. package/bundles/ragents.transcript/ragents-bundle.json +3 -3
  82. package/bundles/ragents.watch/ragents-bundle.json +3 -3
  83. package/bundles/ragents.workspace/ragents-bundle.json +11 -5
  84. package/bundles/ragents.workspace/server/index.js +101 -28
  85. package/bundles/ragents.workspace/server/index.js.map +3 -3
  86. package/bundles/ragents.workspace/web/classes.json +1 -1
  87. package/bundles/ragents.workspace/web/index.js +1 -1
  88. package/bundles/ragents.workspace/web/index.js.map +3 -3
  89. package/package.json +2 -2
  90. package/packages/agent/dist/core/agent-settings.d.ts +1 -7
  91. package/packages/agent/dist/core/compaction/compaction.d.ts +17 -13
  92. package/packages/agent/dist/core/model-runtime.d.ts +5 -4
  93. package/packages/agent/dist/core/provider-composer.d.ts +2 -1
  94. package/packages/agent/dist/core/tools/bash.d.ts +9 -3
  95. package/packages/agent/dist/index.d.ts +1 -1
  96. package/packages/agent/src/core/agent-settings.ts +1 -4
  97. package/packages/agent/src/core/compaction/compaction.ts +68 -30
  98. package/packages/agent/src/core/model-runtime.ts +12 -5
  99. package/packages/agent/src/core/provider-composer.ts +5 -0
  100. package/packages/agent/src/core/tools/bash.ts +36 -30
  101. package/packages/agent/src/index.ts +3 -0
  102. package/packages/ai/dist/types.d.ts +11 -0
  103. package/packages/ai/src/types.ts +12 -0
  104. package/packages/ragents/src/domain/event-semantics.ts +3 -0
  105. package/packages/ragents/src/domain/event-validation.ts +15 -2
  106. package/packages/ragents/src/domain/events.ts +3 -0
  107. package/packages/ragents/src/domain/model.ts +2 -0
  108. package/packages/ragents/src/domain/projection.ts +1 -0
  109. package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
  110. package/packages/ragents/src/drivers/agent-turn.ts +8 -6
  111. package/packages/ragents/src/runtime/decisions/inputs.ts +6 -2
  112. package/packages/ragents/src/runtime/journal-storage.ts +5 -4
  113. package/packages/workspace-executor/package.json +0 -1
  114. package/packages/workspace-executor/src/bash-launch.ts +56 -10
  115. package/packages/workspace-executor/src/context.ts +4 -0
  116. package/packages/workspace-executor/src/contributions.ts +150 -0
  117. package/packages/workspace-executor/src/executor.ts +1 -1
  118. package/packages/workspace-executor/src/index.ts +16 -19
  119. package/packages/workspace-executor/src/language-server/host.ts +3 -0
  120. package/packages/workspace-executor/src/language-server/module.ts +12 -2
  121. package/packages/workspace-executor/src/language-server/roots.ts +0 -5
  122. package/packages/workspace-executor/src/modules.ts +7 -6
  123. package/packages/workspace-executor/src/sandbox-tools.ts +3 -9
  124. package/packages/workspace-executor/src/shell-platform.ts +14 -3
  125. package/packages/workspace-executor/src/tools.ts +0 -3
  126. package/plugins/ragents.ask/ask-payload.ts +9 -0
  127. package/plugins/ragents.ask/server/ask-service.ts +53 -13
  128. package/plugins/ragents.ask/web/AskActionView.tsx +3 -2
  129. package/plugins/ragents.browser/executor/index.ts +5 -0
  130. package/{packages/workspace-executor/src/browser → plugins/ragents.browser/executor}/module.ts +25 -31
  131. package/{packages/workspace-executor/src/browser → plugins/ragents.browser/executor}/playwright.ts +9 -23
  132. package/plugins/ragents.browser/provision.ts +1 -1
  133. package/plugins/ragents.browser/server/browser.ts +3 -3
  134. package/plugins/ragents.browser/server/contract.ts +2 -2
  135. package/plugins/ragents.browser/server/index.ts +1 -1
  136. package/plugins/ragents.lsp-fsharp/executor.ts +80 -0
  137. package/plugins/ragents.lsp-fsharp/provision.ts +1 -1
  138. package/plugins/ragents.lsp-fsharp/server/index.ts +2 -2
  139. package/plugins/ragents.lsp-roslyn/executor.ts +64 -0
  140. package/plugins/ragents.lsp-roslyn/provision.ts +1 -1
  141. package/plugins/ragents.lsp-roslyn/server/index.ts +28 -5
  142. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +18 -6
  143. package/plugins/ragents.lsp-typescript/executor.ts +50 -0
  144. package/plugins/ragents.lsp-typescript/server/index.ts +2 -2
  145. package/plugins/ragents.model-relay/server/config.ts +1 -1
  146. package/plugins/ragents.model-relay/server/relay.ts +4 -2
  147. package/plugins/ragents.profile-distribution/server/archive.ts +2 -1
  148. package/plugins/ragents.workspace/client/workspace-client.ts +111 -28
  149. package/plugins/ragents.workspace/contract.ts +33 -2
  150. package/plugins/ragents.workspace/server/binding.ts +10 -4
  151. package/plugins/ragents.workspace/server/clients.ts +56 -9
  152. package/plugins/ragents.workspace/server/config.ts +9 -0
  153. package/plugins/ragents.workspace/server/index.ts +13 -4
  154. package/plugins/ragents.workspace/server/runtime.ts +10 -0
  155. package/plugins/ragents.workspace/server/shell-platform.ts +6 -5
  156. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +1 -1
  157. package/ragents.config.core.ts +4 -1
  158. package/ragents.config.showcase.ts +4 -1
  159. package/scripts/agent/journal.ts +3 -1
  160. package/scripts/package/build-package.ts +3 -1
  161. package/scripts/provision/run-provision.ts +2 -2
  162. package/scripts/workspace-client/run-workspace-client.ts +7 -4
  163. package/apps/web/dist/help/screenshots/release-checklist-vscode.png +0 -0
  164. package/apps/web/dist/help/screenshots/release-checklist-web.png +0 -0
  165. package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js +0 -2
  166. package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map +0 -7
  167. package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js.map +0 -7
  168. package/packages/workspace-executor/src/language-server/adapters/fsharp.ts +0 -60
  169. package/packages/workspace-executor/src/language-server/adapters/index.ts +0 -7
  170. package/packages/workspace-executor/src/language-server/adapters/roslyn.ts +0 -56
  171. package/packages/workspace-executor/src/language-server/adapters/typescript.ts +0 -74
  172. package/packages/workspace-executor/src/language-server/solution.ts +0 -13
  173. /package/{packages/workspace-executor/src/browser → plugins/ragents.browser/executor}/contract.ts +0 -0
  174. /package/{packages/workspace-executor/src/browser → plugins/ragents.browser/executor}/pages.ts +0 -0
@@ -1,4 +1,4 @@
1
- var t=(e,a)=>{let o=globalThis.__ragentsHostModules?.[e];if(o===void 0)throw new Error(`Der Host stellt ${e} nicht bereit`);if(!(a in o))throw new Error(`Der Host stellt ${a} aus ${e} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);return o[a]};var l=t("typebox","Type");var ye=t("@ragents/engine/src/http/contracts","openJson");var Ee=t("@ragents/engine/src/rpc/contract","defineChannel");var V=t("@ragents/engine/src/rpc/contract","defineOperation");var na="ragents.workspace",ca=["workspace","files"],pa="ragents.workspace.binding",ma="ragents.workspace",at=()=>({machine:"server",folder:"fresh"}),tt=/^[A-Za-z0-9_-]{8,64}$/,fa=l.String({pattern:"^[A-Za-z0-9_-]{8,64}$",description:"Stabile Kennung des Arbeitsplatzes"}),ot=l.String({minLength:1,maxLength:64,description:"Stand des Executors, den der Arbeitsplatz mitbringt"}),La={label:l.String({minLength:1,maxLength:120}),hostname:l.String({minLength:1}),platform:l.String({minLength:1}),folders:l.Array(l.String({minLength:1}),{maxItems:32}),runsDirectory:l.String({minLength:1,description:"Absoluter Ordner, unter dem der Arbeitsplatz die neuen Ordner je Run anlegt"})},ia=l.Object({id:l.String(),...La},{additionalProperties:!1}),rt=l.String({minLength:1,description:"Absoluter Pfad im gebundenen Ordner"});var Xt={execute:V({id:"ragents.workspace.client.execute",description:"Eine Operation des Executors auf dem Arbeitsplatz ausf\xFChren, etwa ein Werkzeug, eine Dateiabfrage oder die Prozessanzeige; das Ergebnis ist ihr Wert, Fortschritt ihr JSON-Wert. stop gibt frei, was der Arbeitsplatz f\xFCr den Run h\xE4lt.",implementedBy:"client",input:l.Object({runId:l.String({minLength:1,maxLength:64,description:"Kennung des Runs"}),operation:l.String({minLength:1,maxLength:64,description:"Name der Operation, etwa read, bash, roslyn_open, files.list oder stop"}),toolCallId:l.Optional(l.String({minLength:1,maxLength:200,description:"Nur bei einem Werkzeugaufruf des Modells"})),cwd:rt,env:l.Record(l.String(),l.String(),{description:"Was der Server beitr\xE4gt: Run-Marker und Git-Regeln der Sandbox"}),input:l.Unknown({description:"Die Eingabe der Operation"})},{additionalProperties:!1}),result:l.Object({value:l.Unknown()},{additionalProperties:!1})})},De={runId:l.String({minLength:1,maxLength:64,description:"Kennung des Runs"}),root:l.Union([l.Literal("workspace"),l.Literal("files")]),path:l.String({description:"Pfad unterhalb der Wurzel; leer ist die Wurzel selbst"})},ue={browse:{list:V({id:"ragents.workspace.browse.list",description:"Ein Verzeichnis im Arbeitsverzeichnis oder in der Dateiablage eines Runs auflisten.",rights:["runs.read","runs.inspect"],input:l.Object(De,{additionalProperties:!1}),result:ye("BrowseListing")}),preview:V({id:"ragents.workspace.browse.preview",description:"Eine Datei als Text vorschauen; zu gro\xDFe und bin\xE4re Dateien nennen stattdessen den Grund.",rights:["runs.read","runs.inspect"],input:l.Object(De,{additionalProperties:!1}),result:ye("BrowsePreview")})},channels:{browse:Ee({id:"ragents.workspace.browse",description:"Meldet jede \xC4nderung unterhalb der beobachteten Wurzel eines Runs.",rights:["runs.read","runs.inspect"],params:l.Object({runId:De.runId,root:De.root},{additionalProperties:!1}),message:l.Object({changed:l.Literal(!0)},{additionalProperties:!1})})},clients:{list:V({id:"ragents.workspace.clients.list",description:"Die angemeldeten Arbeitspl\xE4tze des Aufrufers; fremde erscheinen auch mit runs.read.all nicht.",rights:["runs.read"],input:l.Object({},{additionalProperties:!1}),result:l.Array(ia)}),register:V({id:"ragents.workspace.clients.register",description:"Einen Arbeitsplatz anmelden oder seine Ordner erneuern; die Verbindung dieser Anfrage wird sein R\xFCckweg und braucht einen Ereignisstrom.",rights:["runs.write"],input:l.Object({id:fa,...La,executor:ot},{additionalProperties:!1}),result:ia}),unregister:V({id:"ragents.workspace.clients.unregister",description:"Einen eigenen Arbeitsplatz abmelden; offene Auftr\xE4ge scheitern.",rights:["runs.write"],input:l.Object({id:fa},{additionalProperties:!1}),result:l.Null()})}},Fe=e=>typeof e=="object"&&e!==null,j=(e,a)=>Object.keys(e).length===a.length&&a.every(o=>Object.hasOwn(e,o)),dt=e=>e==="server"||Fe(e)&&j(e,["client","label"])&&typeof e.client=="string"&&tt.test(e.client)&&typeof e.label=="string",ut=e=>e==="fresh"?!0:!Fe(e)||typeof e.path!="string"||e.path.length===0?!1:j(e,["path"])||j(e,["path","fresh"])&&e.fresh===!0,be=e=>Fe(e)&&j(e,["machine","folder"])&&dt(e.machine)&&ut(e.folder)&&!(e.machine==="server"&&typeof e.folder=="object"&&"fresh"in e.folder),We=e=>e==="fresh"||"fresh"in e,lt=e=>{switch(e.kind){case"fresh":return j(e,["kind"])?at():void 0;case"path":return j(e,["kind","path"])?{machine:"server",folder:{path:e.path}}:void 0;case"client":return j(e,["kind","client","label","path"])?{machine:{client:e.client,label:e.label},folder:{path:e.path}}:void 0;default:return}},xa=e=>{if(be(e))return e;let a=Fe(e)&&Object.hasOwn(e,"kind")?lt(e):void 0;return be(a)?a:void 0},Me="Leerer Ordner je Run",st=(e,a)=>(e.machine==="server"?a.server:a.client)??Me,Ia=(e,a)=>{let{machine:o,folder:u}=e,x=st(e,a),B=u==="fresh"?x:"fresh"in u?`${u.path} (${x})`:u.path;return o==="server"?B:`${o.label}: ${B}`};var Ge=t("@ragents/web/ui","Alert");var Re=t("@ragents/web/ui","Button");var ze=t("@ragents/web/ui","Empty");var Ve=t("@ragents/web/ui","EmptyDescription");var Ne=t("@ragents/web/ui","EmptyHeader");var Xe=t("@ragents/web/ui","EmptyMedia");var Ke=t("@ragents/web/ui","EmptyTitle");var Ze=t("@ragents/web/ui","Input");var _e=t("@ragents/web/ui","Label");var le=t("@ragents/web/ui","Select");var se=t("@ragents/web/ui","SelectContent");var fe=t("@ragents/web/ui","SelectItem");var ie=t("@ragents/web/ui","SelectTrigger");var ne=t("@ragents/web/ui","SelectValue");var Te=t("@ragents/web/ui","Toggle");var je=t("react","createContext");var Q=t("react","createElement");var ce=t("react","forwardRef");var Qe=t("react","useContext");var te=t("react","useEffect");var Je=t("react","useId");var ve=t("react","useMemo");var pe=t("react","useRef");var A=t("react","useState");var Ca=e=>e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();function ha(e,a,o=[]){if(a==null)throw new Error("[lucide]: iconNode is required when icon name is used");return{name:Ca(e),size:24,node:a,...o.length>0?{aliases:o}:{}}}var ga=e=>{let a="",o=!1;for(let u of e){if(u==="-"||u==="_"||u<=" "){o=a.length>0;continue}a.length===0?a+=u.toLowerCase():a+=o?u.toUpperCase():u,o=!1}return a};var Sa=e=>{let a=ga(e);return a.charAt(0).toUpperCase()+a.slice(1)};var me=(...e)=>e.filter((a,o,u)=>!!a&&a.trim()!==""&&u.indexOf(a)===o).join(" ").trim();var N={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};function $e(e){return e!=null}function ka(e,a={}){let o=a.attributeNames??{},u=c=>o[c]??c,x=e.size??e.width??N.width,B=e.size??e.height??N.height,S=e.aliases?.filter(c=>typeof c=="string"&&c.trim()!=="").map(c=>`lucide-${c}`)??[],H=[...e.name?[`lucide-${e.name}`]:[],...S],p=a.className?.split(" ").filter(Boolean)??[],y=a.includeDefaultClasses===!1?me(...p):me("lucide",...H,...p),F=a.absoluteStrokeWidth?Number(a.strokeWidth??N["stroke-width"])*Number(e.size??e.width??N.width)/Number(a.size??a.width??N.width):a.strokeWidth??N["stroke-width"];return["svg",{...Object.entries(N).reduce((c,[h,i])=>(c[u(h)]=i,c),{}),..."color"in a&&a.color&&{[u("stroke")]:a.color},..."size"in a&&$e(a.size)&&{[u("width")]:a.size,[u("height")]:a.size},..."width"in a&&$e(a.width)&&{[u("width")]:a.width},..."height"in a&&$e(a.height)&&{[u("height")]:a.height},[u("stroke-width")]:F,...y&&{[u("class")]:y},[u("viewBox")]:`0 0 ${x} ${B}`,...a.hasA11yProp===!1?{[u("aria-hidden")]:"true"}:{},..."attributes"in a&&a.attributes},e.node.map(c=>{let[h,i,k]=c,m=a.nonScalingStroke?{[u("vector-effect")]:"non-scaling-stroke",...i}:i;return k?[h,m,k]:[h,m]})]}function wa(e,a={}){return ka(e,{...a,attributeNames:{...a.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}var Pa=e=>{for(let a in e)if(a.startsWith("aria-")||a==="role"||a==="title")return!0;return!1};var ft=je({});var Aa=()=>Qe(ft);var Ba=ce(({color:e,size:a,width:o,height:u,strokeWidth:x,absoluteStrokeWidth:B,nonScalingStroke:S,className:H="",children:p,iconNode:y=[],icon:F={node:y,aliases:[],size:24},...O},c)=>{let{size:h=24,strokeWidth:i=2,absoluteStrokeWidth:k=!1,nonScalingStroke:m=!1,color:w="currentColor",className:Z=""}=Aa()??{},M=!!p||Pa(O),[ae,b,re=[]]=wa(F,{color:e??w,width:o??a??h,height:u??a??h,strokeWidth:x??i,absoluteStrokeWidth:B??k,nonScalingStroke:S??m,className:me(Z,H),hasA11yProp:M,attributes:O});return Q(ae,{ref:c,...b},[...re.map(([E,W])=>Q(E,W)),...Array.isArray(p)?p:[p]])});function f(e,a=[],o=[]){let u=typeof e=="string"?ha(e,a,o):e,x=ce(({className:B,...S},H)=>Q(Ba,{ref:H,icon:u,className:B,...S}));return u.name&&(x.displayName=Sa(u.name)),x}var ya={name:"braces",size:24,node:[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],aliases:["curly-braces"]};ya.node;var U=f(ya);var Da={name:"chevron-right",size:24,node:[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]};Da.node;var Le=f(Da);var ba={name:"eye-off",size:24,node:[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};ba.node;var xe=f(ba);var Fa={name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};Fa.node;var Ie=f(Fa);var Ma={name:"file-archive",size:24,node:[["path",{d:"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5",key:"4pqfef"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 12v-1",key:"1ej8lb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M8 7V6",key:"1nbb54"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]]};Ma.node;var J=f(Ma);var Ra={name:"file-code-corner",size:24,node:[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],aliases:["file-code-2"]};Ra.node;var L=f(Ra);var Ta={name:"file-cog",size:24,node:[["path",{d:"M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8z",key:"1ckgky"}],["path",{d:"M20 8v12a2 2 0 0 1-2 2h-4.182",key:"1726p0"}],["path",{d:"m3.305 19.53.923-.382",key:"ao1pio"}],["path",{d:"M4 10.592V4a2 2 0 0 1 2-2h8",key:"1foop0"}],["path",{d:"m4.228 16.852-.924-.383",key:"1fv9zy"}],["path",{d:"m5.852 15.228-.383-.923",key:"1a9hc2"}],["path",{d:"m5.852 20.772-.383.924",key:"1sh9ke"}],["path",{d:"m8.148 15.228.383-.923",key:"4yu6lf"}],["path",{d:"m8.53 21.696-.382-.924",key:"18b0s9"}],["path",{d:"m9.773 16.852.922-.383",key:"ti6xop"}],["path",{d:"m9.773 19.148.922.383",key:"rws47d"}],["circle",{cx:"7",cy:"18",r:"3",key:"lvkj7j"}]],aliases:["file-cog-2"]};Ta.node;var C=f(Ta);var va={name:"file-image",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]};va.node;var q=f(va);var qa={name:"file-terminal",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m8 16 2-2-2-2",key:"10vzyd"}],["path",{d:"M12 18h4",key:"1wd2n7"}]]};qa.node;var $=f(qa);var Oa={name:"file-text",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]};Oa.node;var Y=f(Oa);var Ua={name:"file",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]};Ua.node;var Ce=f(Ua);var Ha={name:"folder-open",size:24,node:[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]};Ha.node;var ee=f(Ha);var Ea={name:"folder",size:24,node:[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]};Ea.node;var X=f(Ea);var Wa={name:"palette",size:24,node:[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]};Wa.node;var he=f(Wa);var Ga={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};Ga.node;var ge=f(Ga);var Ye=t("@ragents/web/PluginRegistry","workspaceAccessible");var oe=t("@ragents/web/rpc","rpc");var ea=(e,a,o)=>oe.call(ue.browse.list,{runId:e,root:a,path:o}),aa=(e,a,o)=>oe.call(ue.browse.preview,{runId:e,root:a,path:o});var za={blue:"text-info",yellow:"text-warning",green:"text-success",teal:"text-teal",orange:"text-[color-mix(in_srgb,var(--warning)_75%,var(--destructive))]",pink:"text-[color-mix(in_srgb,var(--destructive)_65%,var(--accent))]",violet:"text-primary",red:"text-destructive",muted:"text-muted-foreground"},it={ts:{Icon:L,tone:"blue"},tsx:{Icon:L,tone:"blue"},mts:{Icon:L,tone:"blue"},cts:{Icon:L,tone:"blue"},js:{Icon:L,tone:"yellow"},jsx:{Icon:L,tone:"yellow"},mjs:{Icon:L,tone:"yellow"},cjs:{Icon:L,tone:"yellow"},cs:{Icon:L,tone:"green"},fs:{Icon:L,tone:"teal"},fsx:{Icon:L,tone:"teal"},py:{Icon:L,tone:"green"},json:{Icon:U,tone:"yellow"},md:{Icon:Y,tone:"violet"},txt:{Icon:Y,tone:"muted"},pdf:{Icon:Y,tone:"red"},html:{Icon:L,tone:"orange"},htm:{Icon:L,tone:"orange"},hbs:{Icon:L,tone:"orange"},css:{Icon:he,tone:"pink"},png:{Icon:q,tone:"violet"},jpg:{Icon:q,tone:"violet"},jpeg:{Icon:q,tone:"violet"},gif:{Icon:q,tone:"violet"},webp:{Icon:q,tone:"violet"},svg:{Icon:q,tone:"violet"},ico:{Icon:q,tone:"violet"},sh:{Icon:$,tone:"green"},zsh:{Icon:$,tone:"green"},bash:{Icon:$,tone:"green"},yml:{Icon:C,tone:"muted"},yaml:{Icon:C,tone:"muted"},toml:{Icon:C,tone:"muted"},ini:{Icon:C,tone:"muted"},csproj:{Icon:C,tone:"blue"},fsproj:{Icon:C,tone:"teal"},sln:{Icon:C,tone:"blue"},slnx:{Icon:C,tone:"blue"},zip:{Icon:J,tone:"orange"},gz:{Icon:J,tone:"orange"},tar:{Icon:J,tone:"orange"},lock:{Icon:C,tone:"muted"}},nt={"package.json":{Icon:U,tone:"green"},"pnpm-lock.yaml":{Icon:C,tone:"muted"},"tsconfig.json":{Icon:U,tone:"blue"},".gitignore":{Icon:C,tone:"muted"},dockerfile:{Icon:C,tone:"teal"}},Va=(e,a,o)=>{if(a==="directory")return{Icon:o?ee:X,tone:"muted"};let u=nt[e.toLowerCase()];if(u)return u;let x=e.includes(".")?e.toLowerCase().split(".").at(-1)??"":"";return it[x]??{Icon:Ce,tone:"muted"}};var ta=t("@ragents/web/SourceCode","SourceCode");var oa=t("react/jsx-runtime","Fragment");var r=t("react/jsx-runtime","jsx");var n=t("react/jsx-runtime","jsxs");var ct="h-auto w-full justify-start gap-1.5 rounded-none py-[3px] pr-2.5 pl-(--row-indent) text-[0.7rem] font-normal data-selected:bg-primary/12 data-selected:text-primary",pt="min-w-0 px-2.5 pt-0 pb-2.5 text-xs leading-[1.45] whitespace-pre-wrap break-words",Na=e=>({"--row-indent":`${8+e*12}px`}),mt={workspace:"Arbeitsverzeichnis",files:"Dateiablage"},Lt={workspace:"Im Arbeitsverzeichnis des Runs liegt noch nichts.",files:"In der Dateiablage des Runs liegt noch nichts."},ra=e=>e instanceof Error?e.message:String(e),Xa=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`,xt=e=>{let a=new Date(e);return Number.isNaN(a.getTime())?e:a.toLocaleString("de-DE")};function Ka({active:e,session:a}){let o=a.session.id,u=pe(new Map),x=Ye(a.session),B=x?ca:["files"],[S,H]=A("workspace"),p=x?S:"files",y=`${o}|${p}`,[F,O]=A(()=>new Map),[c,h]=A(()=>new Set),[i,k]=A(),[m,w]=A(),[Z,M]=A(),[ae,b]=A(!1),[re,E]=A(0),[W,He]=A(!1),we=pe(c);we.current=c;let d=pe(y);te(()=>{if(d.current===y)return;d.current=y;let s=u.current.get(y);O(new Map),h(s?.expanded??new Set),k(s?.selected),w(void 0),M(void 0)},[y]),te(()=>{u.current.set(y,{expanded:c,selected:i})},[c,p,o,i,y]),te(()=>{if(!e||i===void 0||m!==void 0)return;let s=!0;return aa(o,p,i).then(I=>s&&w(I)).catch(()=>s&&k(void 0)),()=>{s=!1}},[e,m,p,o,i]),te(()=>{if(!e)return;let s=!0,I,P=!1,de=async z=>{if(!P){P=!0,z&&b(!0);try{let _=["",...we.current],Pe=await Promise.all(_.map(async D=>({directory:D,listing:await ea(o,p,D).catch(Be=>D===""?Promise.reject(Be):null)})));if(!s)return;let Ae=Pe.filter(D=>D.listing===null).map(D=>D.directory);O(new Map(Pe.filter(D=>D.listing!==null).map(D=>[D.directory,D.listing]))),Ae.length>0&&h(D=>new Set([...D].filter(Be=>!Ae.some(sa=>Be===sa||Be.startsWith(`${sa}/`))))),M(void 0)}catch(_){s&&M(ra(_))}finally{P=!1,s&&(z&&b(!1),I!==void 0&&window.clearTimeout(I),I=window.setTimeout(()=>{de(!1)},3e4))}}},g=oe.subscribe(ue.channels.browse,{runId:o,root:p},()=>{de(!1)});return de(!0),()=>{s=!1,g(),I!==void 0&&window.clearTimeout(I)}},[e,re,p,o]);let T=s=>{h(I=>{let P=new Set(I);return P.has(s)?P.delete(s):P.add(s),P}),!F.has(s)&&(b(!0),ea(o,p,s).then(I=>{O(P=>new Map(P).set(s,I)),M(void 0)}).catch(I=>M(ra(I))).finally(()=>b(!1)))},G=s=>{k(s),w(void 0),b(!0),aa(o,p,s).then(I=>{w(I),M(void 0)}).catch(I=>M(ra(I))).finally(()=>b(!1))},v=(s,I)=>{let P=F.get(s);if(!P)return null;let de=W?P.entries:P.entries.filter(g=>!g.name.startsWith("."));return n(oa,{children:[de.map(g=>{let z=s?`${s}/${g.name}`:g.name,_=c.has(z),{Icon:Pe,tone:Ae}=Va(g.name,g.kind,_);return n("div",{children:[n(Re,{className:ct,"data-selected":i===z,onClick:()=>g.kind==="directory"?T(z):G(z),style:Na(I),title:`${g.name} - ${Xa(g.size)} - ${xt(g.modifiedAt)}`,variant:"ghost",children:[r("span",{className:`inline-flex w-3 flex-none items-center justify-center text-muted-foreground${_?" [&>svg]:rotate-90":""}`,children:g.kind==="directory"?r(Le,{size:11,strokeWidth:2}):null}),r(Pe,{"aria-hidden":!0,className:`flex-none ${za[Ae]}`,size:14,strokeWidth:1.7}),r("span",{className:"min-w-0 flex-1 truncate text-left font-mono",children:g.name}),g.kind==="file"&&r("span",{className:"flex-none text-[0.64rem] text-muted-foreground tabular-nums",children:Xa(g.size)})]}),g.kind==="directory"&&_&&v(z,I+1)]},z)}),P.truncated&&r("div",{className:"py-1 pr-2.5 pl-(--row-indent) text-[0.64rem] text-muted-foreground",style:Na(I),children:"Weitere Eintr\xE4ge sind nicht gelistet."})]})},R=F.get("");return n("div",{className:"flex h-full min-h-0 flex-col",children:[n("header",{className:"flex items-center gap-2 px-2.5 py-2",children:[r("div",{className:"flex min-w-0 flex-1 gap-1",children:B.map(s=>r(Te,{onPressedChange:()=>H(s),pressed:s===p,size:"sm",variant:"outline",children:mt[s]},s))}),n("div",{className:"flex items-center gap-1",children:[r(Te,{"aria-label":W?"Versteckte Eintr\xE4ge ausblenden":"Versteckte Eintr\xE4ge anzeigen",onPressedChange:He,pressed:W,size:"sm",title:W?"Versteckte Eintr\xE4ge ausblenden":"Versteckte Eintr\xE4ge anzeigen",children:W?r(Ie,{size:15,strokeWidth:1.8}):r(xe,{size:15,strokeWidth:1.8})}),r(Re,{"aria-label":"Dateien aktualisieren",onClick:()=>E(s=>s+1),size:"icon",title:"Aktualisieren",variant:"ghost",children:r(ge,{className:ae?"animate-spin":void 0,size:15,strokeWidth:1.8})})]})]}),Z&&r(Ge,{className:"shrink-0 rounded-none border-x-0 border-t-0 border-b-border-soft bg-destructive/8 px-2.5 py-2 text-[0.68rem]",variant:"destructive",children:Z}),R&&r("div",{className:"truncate px-2.5 pt-0.5 pb-1.5 font-mono text-[0.66rem] text-muted-foreground",title:R.location,children:R.location}),R&&R.entries.length===0&&r(ze,{className:"min-h-30 flex-none gap-2 p-7",children:n(Ne,{children:[r(Xe,{children:r(ee,{size:15,strokeWidth:1.7})}),r(Ke,{children:"Keine Dateien"}),r(Ve,{children:Lt[p]})]})}),r("div",{className:"min-h-0 flex-1 overflow-auto pb-2",children:v("",0)}),i&&n("div",{className:"flex min-h-0 flex-1 flex-col border-t border-border-soft",children:[r("div",{className:"truncate px-2.5 py-1.5 font-mono text-[0.66rem] text-muted-foreground",title:i,children:i}),m&&!m.previewable&&r("div",{className:"px-2.5 pb-2 text-[0.68rem] text-muted-foreground",children:m.reason}),m&&m.previewable&&r("div",{className:"min-h-0 flex-1 overflow-auto",children:r(ta,{className:pt,content:m.content,path:i})})]})]})}var qe=t("@ragents/web/Toolbar","ToolbarCopy");var Se=t("@ragents/web/Toolbar","ToolbarItem");var Oe=t("@ragents/web/Toolbar","ToolbarLabel");var ke=t("@ragents/web/Toolbar","ToolbarText");var K="server",Za="text-[0.75rem] text-destructive",Ue="text-[0.66rem] font-medium text-muted-foreground",ja=e=>e instanceof Error?e.message:String(e),It=e=>{let a=e;return typeof a=="object"&&a!==null&&typeof a.id=="string"&&typeof a.label=="string"&&typeof a.hostname=="string"&&typeof a.platform=="string"&&Array.isArray(a.folders)&&a.folders.every(o=>typeof o=="string")&&typeof a.runsDirectory=="string"},Qa=e=>{let a=e;return typeof a=="object"&&a!==null&&typeof a.server=="string"&&(a.client===null||typeof a.client=="string")},Ct=(e,a)=>{let o=e;if(typeof o!="object"||o===null||o.kind!=="workspace-binding"||!Array.isArray(o.clients)||!o.clients.every(It)||!Qa(o.fresh)||typeof o.serverFolders!="boolean")throw new Error(`Die Startoption ${a} liefert keine Arbeitsbereich-Darstellung`);return{kind:"workspace-binding",clients:o.clients,fresh:o.fresh,serverFolders:o.serverFolders}},Ja=(e,a)=>{let o=xa(e);if(!o)throw new Error(`Der Wert der Startoption ${a} ist keine Arbeitsbereich-Bindung`);return o},da=e=>e.machine===K?K:e.machine.client,ua=e=>We(e.folder)?"fresh":"existing",la=e=>{let{folder:a}=e;return We(a)?"":a.path},ht=(e,a)=>da(e)===da(a)&&ua(e)===ua(a)&&la(e)===la(a),gt=(e,a,o)=>{let{machine:u}=a,x=o==="all"?e.clients:[],B=u===K||x.some(S=>S.id===u.client)?[]:[{value:u.client,label:e.clients.some(S=>S.id===u.client)?`Arbeitsplatz ${u.label}`:`Arbeitsplatz ${u.label} (nicht verbunden)`}];return[{value:K,label:"Server"},...x.map(S=>({value:S.id,label:`Arbeitsplatz ${S.label}`})),...B]},_a=(e,a)=>{let o={value:"existing",label:"Vorhandener Ordner"};return a===K?[{value:"fresh",label:e.fresh.server},...e.serverFolders?[o]:[]]:[...e.fresh.client===null?[]:[{value:"fresh",label:e.fresh.client}],o]},St=e=>{let a=e;if(!(typeof a!="object"||a===null||typeof a.summary!="string"||!be(a.binding)))return{binding:a.binding,summary:a.summary}},kt=e=>{try{return{presentation:Ct(e.presentation,e.id),binding:Ja(e.value,e.id)}}catch(a){return{message:ja(a)}}};function $a({disabled:e,error:a,machines:o,option:u,setValue:x}){let[B,S]=A(void 0),[H,p]=A(void 0),[y,F]=A(void 0),O=Je(),c=ve(()=>kt(u),[u]);if("message"in c)return r("p",{className:Za,role:"alert",children:c.message});let{presentation:h,binding:i}=c,k=B??da(i),m=H??ua(i),w=y??la(i),Z=gt(h,i,o),M=_a(h,k),ae=h.clients.find(d=>d.id===k),b=m==="existing"?ae?.folders.map(d=>({value:d,label:d}))??[]:[],re=(d,T,G)=>{let v=h.clients.find(s=>s.id===d)?.label??(i.machine!==K&&i.machine.client===d?i.machine.label:d),R=d===K?K:{client:d,label:v};return T==="fresh"?{machine:R,folder:"fresh"}:G===""?void 0:{machine:R,folder:{path:G}}},E=(d,T,G)=>{let v=re(d,T,G);v&&!ht(v,i)&&x(v)},W=d=>{let T=_a(h,d).map(R=>R.value),G=T.includes(m)?m:T[0],v=w===""?h.clients.find(R=>R.id===d)?.folders[0]??"":w;S(d),p(G),F(v),E(d,G,v)},He=d=>{let T=w===""?ae?.folders[0]??"":w;p(d),F(T),E(k,d,T)},we=d=>{F(d),E(k,m,d)};return n("div",{className:"flex w-full flex-col items-start gap-2",children:[r("span",{className:"text-[0.72rem] font-semibold text-muted-foreground",children:"Arbeitsbereich"}),n("div",{className:"flex w-full flex-wrap items-end gap-2",children:[n("div",{className:"flex flex-col gap-1",children:[r("span",{className:Ue,children:"Rechner"}),n(le,{disabled:e,items:Z,onValueChange:d=>{d!==null&&W(d)},value:k,children:[r(ie,{"aria-label":"Rechner des Arbeitsbereichs",className:"min-w-0 max-w-full",size:"sm",children:r(ne,{})}),r(se,{children:Z.map(d=>r(fe,{value:d.value,children:d.label},d.value))})]})]}),n("div",{className:"flex flex-col gap-1",children:[r("span",{className:Ue,children:"Ordner"}),n(le,{disabled:e,items:M,onValueChange:d=>{d!==null&&He(d)},value:m,children:[r(ie,{"aria-label":"Ordner des Arbeitsbereichs",className:"min-w-0 max-w-full",size:"sm",children:r(ne,{})}),r(se,{children:M.map(d=>r(fe,{value:d.value,children:d.label},d.value))})]})]}),m==="existing"&&n("div",{className:"flex min-w-[15rem] flex-1 flex-col gap-1",children:[r(_e,{className:Ue,htmlFor:O,children:"Absoluter Pfad"}),r(Ze,{className:"h-7 text-sm",disabled:e,id:O,onBlur:()=>E(k,m,w),onChange:d=>F(d.target.value),onKeyDown:d=>{d.key==="Enter"&&E(k,m,w)},placeholder:"/Users/name/projekt",value:w})]}),b.length>0&&n("div",{className:"flex flex-col gap-1",children:[r("span",{className:Ue,children:"Angebotener Ordner"}),n(le,{disabled:e,items:b,onValueChange:d=>{d!==null&&we(d)},value:b.some(d=>d.value===w)?w:null,children:[r(ie,{"aria-label":"Angebotener Ordner",className:"min-w-0 max-w-full",size:"sm",children:r(ne,{placeholder:"\xDCbernehmen"})}),r(se,{children:b.map(d=>r(fe,{value:d.value,children:d.label},d.value))})]})]})]}),a&&r("p",{className:Za,role:"alert",children:a})]})}var wt=e=>{let a=e;return typeof a=="object"&&a!==null&&Qa(a.fresh)?a.fresh:{server:Me,client:Me}};function Ya({option:e}){if(!e.locked)return null;let a;try{a=Ja(e.value,e.id)}catch(u){return r(Se,{title:ja(u),children:r(ke,{children:"Arbeitsbereich unlesbar"})})}let o=Ia(a,wt(e.presentation));return r(Se,{title:`Arbeitsbereich: ${o}`,children:n(qe,{children:[r(Oe,{children:"Arbeitsbereich"}),r(ke,{children:o})]})})}function et({placement:e,session:a}){let o=St(a.metadata?.[ma]);if(!o)return null;if(e==="list"){let{machine:u,folder:x}=o.binding;return u==="server"&&x==="fresh"?null:n("span",{className:"flex max-w-full items-center gap-1.5 overflow-hidden pl-px text-xs text-muted-foreground",title:`Arbeitsbereich: ${o.summary}`,children:[r(X,{"aria-hidden":!0,className:"size-3 flex-none"}),r("span",{className:"truncate",children:o.summary})]})}return n(Se,{title:`Arbeitsbereich: ${o.summary}`,children:[r(X,{"aria-hidden":!0,className:"size-3.5"}),n(qe,{children:[r(Oe,{children:"Arbeitsbereich"}),r(ke,{children:o.summary})]})]})}var Pt="ragents.workspace.files";function At(){return n("svg",{"aria-hidden":!0,fill:"none",height:"15",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.7",viewBox:"0 0 24 24",width:"15",children:[r("path",{d:"M3 6.5A1.5 1.5 0 0 1 4.5 5h4L10 7h9.5A1.5 1.5 0 0 1 21 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 3 17.5z"}),r("path",{d:"M3 11h18"})]})}var Wu={id:na,workspaceTabs:[{readRight:"runs.inspect",id:Pt,label:"Dateien",order:260,Icon:At,Panel:Ka}],startOptions:[{id:pa,Control:$a,Badge:Ya}],sessionMetadata:[{id:"ragents.workspace.binding",order:90,Metadata:et}]};export{Pt as WORKSPACE_FILES_TAB_ID,Wu as webPlugin};
1
+ var t=(e,a)=>{let o=globalThis.__ragentsHostModules?.[e];if(o===void 0)throw new Error(`Der Host stellt ${e} nicht bereit`);if(!(a in o))throw new Error(`Der Host stellt ${a} aus ${e} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);return o[a]};var l=t("typebox","Type");var be=t("@ragents/engine/src/http/contracts","openJson");var We=t("@ragents/engine/src/rpc/contract","defineChannel");var V=t("@ragents/engine/src/rpc/contract","defineOperation");var ca="ragents.workspace",pa=["workspace","files"],ma="ragents.workspace.binding",La="ragents.workspace",ot=()=>({machine:"server",folder:"fresh"}),rt=/^[A-Za-z0-9_-]{8,64}$/,xa=l.String({pattern:"^[A-Za-z0-9_-]{8,64}$",description:"Stabile Kennung des Arbeitsplatzes"}),ze=l.String({minLength:1,maxLength:64,description:"Stand des Executors, den der Arbeitsplatz mitbringt"}),dt=/^[a-z0-9]+(?:[.-][a-z0-9]+)*$/,Ia=l.Array(l.Object({plugin:l.String({pattern:dt.source,maxLength:128,description:"Kennung des Plugins"}),stand:l.String({pattern:"^[0-9a-f]{64}$",description:"SHA-256 der Datei des Beitrags"})},{additionalProperties:!1}),{maxItems:64,description:"Die Beitr\xE4ge der Plugins zum Executor, in der Reihenfolge der Pluginliste des Servers"}),Fe={label:l.String({minLength:1,maxLength:120}),hostname:l.String({minLength:1}),platform:l.String({minLength:1}),folders:l.Array(l.String({minLength:1}),{maxItems:32}),runsDirectory:l.String({minLength:1,description:"Absoluter Ordner, unter dem der Arbeitsplatz die neuen Ordner je Run anlegt"}),ripgrep:l.Boolean({description:"Ob die Bash des Arbeitsplatzes rg findet"})},na=l.Object({id:l.String(),...Fe},{additionalProperties:!1}),ut=l.Object({id:xa,...Fe,executor:ze,contributions:Ia},{additionalProperties:!1}),lt=l.Object({label:Fe.label,executor:ze},{description:"Anmeldung mit einem anderen Executor-Stand in beliebiger Form; der Server lehnt sie mit workspace-executor-version ab"}),st=l.String({minLength:1,description:"Absoluter Pfad im gebundenen Ordner"});var jt={execute:V({id:"ragents.workspace.client.execute",description:"Eine Operation des Executors auf dem Arbeitsplatz ausf\xFChren, etwa ein Werkzeug, eine Dateiabfrage oder die Prozessanzeige; das Ergebnis ist ihr Wert, Fortschritt ihr JSON-Wert. stop gibt frei, was der Arbeitsplatz f\xFCr den Run h\xE4lt.",implementedBy:"client",input:l.Object({runId:l.String({minLength:1,maxLength:64,description:"Kennung des Runs"}),operation:l.String({minLength:1,maxLength:64,description:"Name der Operation, etwa read, bash, roslyn_open, files.list oder stop"}),toolCallId:l.Optional(l.String({minLength:1,maxLength:200,description:"Nur bei einem Werkzeugaufruf des Modells"})),cwd:st,env:l.Record(l.String(),l.String(),{description:"Was der Server beitr\xE4gt: Run-Marker und Git-Regeln der Sandbox"}),input:l.Unknown({description:"Die Eingabe der Operation"})},{additionalProperties:!1}),result:l.Object({value:l.Unknown()},{additionalProperties:!1})})},ye={runId:l.String({minLength:1,maxLength:64,description:"Kennung des Runs"}),root:l.Union([l.Literal("workspace"),l.Literal("files")]),path:l.String({description:"Pfad unterhalb der Wurzel; leer ist die Wurzel selbst"})},ue={browse:{list:V({id:"ragents.workspace.browse.list",description:"Ein Verzeichnis im Arbeitsverzeichnis oder in der Dateiablage eines Runs auflisten.",rights:["runs.read","runs.inspect"],input:l.Object(ye,{additionalProperties:!1}),result:be("BrowseListing")}),preview:V({id:"ragents.workspace.browse.preview",description:"Eine Datei als Text vorschauen; zu gro\xDFe und bin\xE4re Dateien nennen stattdessen den Grund.",rights:["runs.read","runs.inspect"],input:l.Object(ye,{additionalProperties:!1}),result:be("BrowsePreview")})},channels:{browse:We({id:"ragents.workspace.browse",description:"Meldet jede \xC4nderung unterhalb der beobachteten Wurzel eines Runs.",rights:["runs.read","runs.inspect"],params:l.Object({runId:ye.runId,root:ye.root},{additionalProperties:!1}),message:l.Object({changed:l.Literal(!0)},{additionalProperties:!1})})},clients:{list:V({id:"ragents.workspace.clients.list",description:"Die angemeldeten Arbeitspl\xE4tze des Aufrufers; fremde erscheinen auch mit runs.read.all nicht.",rights:["runs.read"],input:l.Object({},{additionalProperties:!1}),result:l.Array(na)}),contributions:V({id:"ragents.workspace.clients.contributions",description:"Die Beitr\xE4ge der Plugins zum Executor, die ein Arbeitsplatz vor der Anmeldung l\xE4dt und mit ihr zur\xFCckmeldet. Ein Arbeitsplatz mit anderem Executor-Stand scheitert an seinem Stand; weitere Felder z\xE4hlen nicht.",rights:["runs.write"],input:l.Object({label:Fe.label,executor:ze}),result:Ia}),register:V({id:"ragents.workspace.clients.register",description:"Einen Arbeitsplatz anmelden oder seine Ordner erneuern; die Verbindung dieser Anfrage wird sein R\xFCckweg und braucht einen Ereignisstrom. Ein Arbeitsplatz mit anderem Executor-Stand scheitert an seinem Stand, bevor die \xFCbrige Form z\xE4hlt.",rights:["runs.write"],input:l.Union([ut,lt]),result:na}),unregister:V({id:"ragents.workspace.clients.unregister",description:"Einen eigenen Arbeitsplatz abmelden; offene Auftr\xE4ge scheitern.",rights:["runs.write"],input:l.Object({id:xa},{additionalProperties:!1}),result:l.Null()})}},Me=e=>typeof e=="object"&&e!==null,j=(e,a)=>Object.keys(e).length===a.length&&a.every(o=>Object.hasOwn(e,o)),ft=e=>e==="server"||Me(e)&&j(e,["client","label"])&&typeof e.client=="string"&&rt.test(e.client)&&typeof e.label=="string",it=e=>e==="fresh"?!0:!Me(e)||typeof e.path!="string"||e.path.length===0?!1:j(e,["path"])||j(e,["path","fresh"])&&e.fresh===!0,De=e=>Me(e)&&j(e,["machine","folder"])&&ft(e.machine)&&it(e.folder)&&!(e.machine==="server"&&typeof e.folder=="object"&&"fresh"in e.folder),Ge=e=>e==="fresh"||"fresh"in e,nt=e=>{switch(e.kind){case"fresh":return j(e,["kind"])?ot():void 0;case"path":return j(e,["kind","path"])?{machine:"server",folder:{path:e.path}}:void 0;case"client":return j(e,["kind","client","label","path"])?{machine:{client:e.client,label:e.label},folder:{path:e.path}}:void 0;default:return}},Ca=e=>{if(De(e))return e;let a=Me(e)&&Object.hasOwn(e,"kind")?nt(e):void 0;return De(a)?a:void 0},Re="Leerer Ordner je Run",ct=(e,a)=>(e.machine==="server"?a.server:a.client)??Re,ga=(e,a)=>{let{machine:o,folder:u}=e,x=ct(e,a),B=u==="fresh"?x:"fresh"in u?`${u.path} (${x})`:u.path;return o==="server"?B:`${o.label}: ${B}`};var Ve=t("@ragents/web/ui","Alert");var Te=t("@ragents/web/ui","Button");var Ne=t("@ragents/web/ui","Empty");var Xe=t("@ragents/web/ui","EmptyDescription");var Ke=t("@ragents/web/ui","EmptyHeader");var Ze=t("@ragents/web/ui","EmptyMedia");var _e=t("@ragents/web/ui","EmptyTitle");var je=t("@ragents/web/ui","Input");var Qe=t("@ragents/web/ui","Label");var le=t("@ragents/web/ui","Select");var se=t("@ragents/web/ui","SelectContent");var fe=t("@ragents/web/ui","SelectItem");var ie=t("@ragents/web/ui","SelectTrigger");var ne=t("@ragents/web/ui","SelectValue");var ve=t("@ragents/web/ui","Toggle");var Je=t("react","createContext");var Q=t("react","createElement");var ce=t("react","forwardRef");var $e=t("react","useContext");var te=t("react","useEffect");var Ye=t("react","useId");var qe=t("react","useMemo");var pe=t("react","useRef");var A=t("react","useState");var ha=e=>e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();function Sa(e,a,o=[]){if(a==null)throw new Error("[lucide]: iconNode is required when icon name is used");return{name:ha(e),size:24,node:a,...o.length>0?{aliases:o}:{}}}var ka=e=>{let a="",o=!1;for(let u of e){if(u==="-"||u==="_"||u<=" "){o=a.length>0;continue}a.length===0?a+=u.toLowerCase():a+=o?u.toUpperCase():u,o=!1}return a};var wa=e=>{let a=ka(e);return a.charAt(0).toUpperCase()+a.slice(1)};var me=(...e)=>e.filter((a,o,u)=>!!a&&a.trim()!==""&&u.indexOf(a)===o).join(" ").trim();var N={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"};function ea(e){return e!=null}function Pa(e,a={}){let o=a.attributeNames??{},u=c=>o[c]??c,x=e.size??e.width??N.width,B=e.size??e.height??N.height,S=e.aliases?.filter(c=>typeof c=="string"&&c.trim()!=="").map(c=>`lucide-${c}`)??[],H=[...e.name?[`lucide-${e.name}`]:[],...S],p=a.className?.split(" ").filter(Boolean)??[],b=a.includeDefaultClasses===!1?me(...p):me("lucide",...H,...p),F=a.absoluteStrokeWidth?Number(a.strokeWidth??N["stroke-width"])*Number(e.size??e.width??N.width)/Number(a.size??a.width??N.width):a.strokeWidth??N["stroke-width"];return["svg",{...Object.entries(N).reduce((c,[g,i])=>(c[u(g)]=i,c),{}),..."color"in a&&a.color&&{[u("stroke")]:a.color},..."size"in a&&ea(a.size)&&{[u("width")]:a.size,[u("height")]:a.size},..."width"in a&&ea(a.width)&&{[u("width")]:a.width},..."height"in a&&ea(a.height)&&{[u("height")]:a.height},[u("stroke-width")]:F,...b&&{[u("class")]:b},[u("viewBox")]:`0 0 ${x} ${B}`,...a.hasA11yProp===!1?{[u("aria-hidden")]:"true"}:{},..."attributes"in a&&a.attributes},e.node.map(c=>{let[g,i,k]=c,m=a.nonScalingStroke?{[u("vector-effect")]:"non-scaling-stroke",...i}:i;return k?[g,m,k]:[g,m]})]}function Aa(e,a={}){return Pa(e,{...a,attributeNames:{...a.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}var Ba=e=>{for(let a in e)if(a.startsWith("aria-")||a==="role"||a==="title")return!0;return!1};var pt=Je({});var ba=()=>$e(pt);var ya=ce(({color:e,size:a,width:o,height:u,strokeWidth:x,absoluteStrokeWidth:B,nonScalingStroke:S,className:H="",children:p,iconNode:b=[],icon:F={node:b,aliases:[],size:24},...O},c)=>{let{size:g=24,strokeWidth:i=2,absoluteStrokeWidth:k=!1,nonScalingStroke:m=!1,color:w="currentColor",className:Z=""}=ba()??{},M=!!p||Ba(O),[ae,D,re=[]]=Aa(F,{color:e??w,width:o??a??g,height:u??a??g,strokeWidth:x??i,absoluteStrokeWidth:B??k,nonScalingStroke:S??m,className:me(Z,H),hasA11yProp:M,attributes:O});return Q(ae,{ref:c,...D},[...re.map(([E,W])=>Q(E,W)),...Array.isArray(p)?p:[p]])});function f(e,a=[],o=[]){let u=typeof e=="string"?Sa(e,a,o):e,x=ce(({className:B,...S},H)=>Q(ya,{ref:H,icon:u,className:B,...S}));return u.name&&(x.displayName=wa(u.name)),x}var Da={name:"braces",size:24,node:[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],aliases:["curly-braces"]};Da.node;var U=f(Da);var Fa={name:"chevron-right",size:24,node:[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]};Fa.node;var Le=f(Fa);var Ma={name:"eye-off",size:24,node:[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};Ma.node;var xe=f(Ma);var Ra={name:"eye",size:24,node:[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};Ra.node;var Ie=f(Ra);var Ta={name:"file-archive",size:24,node:[["path",{d:"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5",key:"4pqfef"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 12v-1",key:"1ej8lb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M8 7V6",key:"1nbb54"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]]};Ta.node;var J=f(Ta);var va={name:"file-code-corner",size:24,node:[["path",{d:"M4 12.15V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2h-3.35",key:"1wthlu"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m5 16-3 3 3 3",key:"331omg"}],["path",{d:"m9 22 3-3-3-3",key:"lsp7cz"}]],aliases:["file-code-2"]};va.node;var L=f(va);var qa={name:"file-cog",size:24,node:[["path",{d:"M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8z",key:"1ckgky"}],["path",{d:"M20 8v12a2 2 0 0 1-2 2h-4.182",key:"1726p0"}],["path",{d:"m3.305 19.53.923-.382",key:"ao1pio"}],["path",{d:"M4 10.592V4a2 2 0 0 1 2-2h8",key:"1foop0"}],["path",{d:"m4.228 16.852-.924-.383",key:"1fv9zy"}],["path",{d:"m5.852 15.228-.383-.923",key:"1a9hc2"}],["path",{d:"m5.852 20.772-.383.924",key:"1sh9ke"}],["path",{d:"m8.148 15.228.383-.923",key:"4yu6lf"}],["path",{d:"m8.53 21.696-.382-.924",key:"18b0s9"}],["path",{d:"m9.773 16.852.922-.383",key:"ti6xop"}],["path",{d:"m9.773 19.148.922.383",key:"rws47d"}],["circle",{cx:"7",cy:"18",r:"3",key:"lvkj7j"}]],aliases:["file-cog-2"]};qa.node;var C=f(qa);var Oa={name:"file-image",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"10",cy:"12",r:"2",key:"737tya"}],["path",{d:"m20 17-1.296-1.296a2.41 2.41 0 0 0-3.408 0L9 22",key:"wt3hpn"}]]};Oa.node;var q=f(Oa);var Ua={name:"file-terminal",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"m8 16 2-2-2-2",key:"10vzyd"}],["path",{d:"M12 18h4",key:"1wd2n7"}]]};Ua.node;var $=f(Ua);var Ha={name:"file-text",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]};Ha.node;var Y=f(Ha);var Ea={name:"file",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]};Ea.node;var Ce=f(Ea);var Wa={name:"folder-open",size:24,node:[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]};Wa.node;var ee=f(Wa);var za={name:"folder",size:24,node:[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]};za.node;var X=f(za);var Ga={name:"palette",size:24,node:[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]};Ga.node;var ge=f(Ga);var Va={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};Va.node;var he=f(Va);var aa=t("@ragents/web/PluginRegistry","workspaceAccessible");var oe=t("@ragents/web/rpc","rpc");var ta=(e,a,o)=>oe.call(ue.browse.list,{runId:e,root:a,path:o}),oa=(e,a,o)=>oe.call(ue.browse.preview,{runId:e,root:a,path:o});var Na={blue:"text-info",yellow:"text-warning",green:"text-success",teal:"text-teal",orange:"text-[color-mix(in_srgb,var(--warning)_75%,var(--destructive))]",pink:"text-[color-mix(in_srgb,var(--destructive)_65%,var(--accent))]",violet:"text-primary",red:"text-destructive",muted:"text-muted-foreground"},mt={ts:{Icon:L,tone:"blue"},tsx:{Icon:L,tone:"blue"},mts:{Icon:L,tone:"blue"},cts:{Icon:L,tone:"blue"},js:{Icon:L,tone:"yellow"},jsx:{Icon:L,tone:"yellow"},mjs:{Icon:L,tone:"yellow"},cjs:{Icon:L,tone:"yellow"},cs:{Icon:L,tone:"green"},fs:{Icon:L,tone:"teal"},fsx:{Icon:L,tone:"teal"},py:{Icon:L,tone:"green"},json:{Icon:U,tone:"yellow"},md:{Icon:Y,tone:"violet"},txt:{Icon:Y,tone:"muted"},pdf:{Icon:Y,tone:"red"},html:{Icon:L,tone:"orange"},htm:{Icon:L,tone:"orange"},hbs:{Icon:L,tone:"orange"},css:{Icon:ge,tone:"pink"},png:{Icon:q,tone:"violet"},jpg:{Icon:q,tone:"violet"},jpeg:{Icon:q,tone:"violet"},gif:{Icon:q,tone:"violet"},webp:{Icon:q,tone:"violet"},svg:{Icon:q,tone:"violet"},ico:{Icon:q,tone:"violet"},sh:{Icon:$,tone:"green"},zsh:{Icon:$,tone:"green"},bash:{Icon:$,tone:"green"},yml:{Icon:C,tone:"muted"},yaml:{Icon:C,tone:"muted"},toml:{Icon:C,tone:"muted"},ini:{Icon:C,tone:"muted"},csproj:{Icon:C,tone:"blue"},fsproj:{Icon:C,tone:"teal"},sln:{Icon:C,tone:"blue"},slnx:{Icon:C,tone:"blue"},zip:{Icon:J,tone:"orange"},gz:{Icon:J,tone:"orange"},tar:{Icon:J,tone:"orange"},lock:{Icon:C,tone:"muted"}},Lt={"package.json":{Icon:U,tone:"green"},"pnpm-lock.yaml":{Icon:C,tone:"muted"},"tsconfig.json":{Icon:U,tone:"blue"},".gitignore":{Icon:C,tone:"muted"},dockerfile:{Icon:C,tone:"teal"}},Xa=(e,a,o)=>{if(a==="directory")return{Icon:o?ee:X,tone:"muted"};let u=Lt[e.toLowerCase()];if(u)return u;let x=e.includes(".")?e.toLowerCase().split(".").at(-1)??"":"";return mt[x]??{Icon:Ce,tone:"muted"}};var ra=t("@ragents/web/SourceCode","SourceCode");var da=t("react/jsx-runtime","Fragment");var r=t("react/jsx-runtime","jsx");var n=t("react/jsx-runtime","jsxs");var xt="h-auto w-full justify-start gap-1.5 rounded-none py-[3px] pr-2.5 pl-(--row-indent) text-[0.7rem] font-normal data-selected:bg-primary/12 data-selected:text-primary",It="min-w-0 px-2.5 pt-0 pb-2.5 text-xs leading-[1.45] whitespace-pre-wrap break-words",Ka=e=>({"--row-indent":`${8+e*12}px`}),Ct={workspace:"Arbeitsverzeichnis",files:"Dateiablage"},gt={workspace:"Im Arbeitsverzeichnis des Runs liegt noch nichts.",files:"In der Dateiablage des Runs liegt noch nichts."},ua=e=>e instanceof Error?e.message:String(e),Za=e=>e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`,ht=e=>{let a=new Date(e);return Number.isNaN(a.getTime())?e:a.toLocaleString("de-DE")};function _a({active:e,session:a}){let o=a.session.id,u=pe(new Map),x=aa(a.session),B=x?pa:["files"],[S,H]=A("workspace"),p=x?S:"files",b=`${o}|${p}`,[F,O]=A(()=>new Map),[c,g]=A(()=>new Set),[i,k]=A(),[m,w]=A(),[Z,M]=A(),[ae,D]=A(!1),[re,E]=A(0),[W,Ee]=A(!1),we=pe(c);we.current=c;let d=pe(b);te(()=>{if(d.current===b)return;d.current=b;let s=u.current.get(b);O(new Map),g(s?.expanded??new Set),k(s?.selected),w(void 0),M(void 0)},[b]),te(()=>{u.current.set(b,{expanded:c,selected:i})},[c,p,o,i,b]),te(()=>{if(!e||i===void 0||m!==void 0)return;let s=!0;return oa(o,p,i).then(I=>s&&w(I)).catch(()=>s&&k(void 0)),()=>{s=!1}},[e,m,p,o,i]),te(()=>{if(!e)return;let s=!0,I,P=!1,de=async G=>{if(!P){P=!0,G&&D(!0);try{let _=["",...we.current],Pe=await Promise.all(_.map(async y=>({directory:y,listing:await ta(o,p,y).catch(Be=>y===""?Promise.reject(Be):null)})));if(!s)return;let Ae=Pe.filter(y=>y.listing===null).map(y=>y.directory);O(new Map(Pe.filter(y=>y.listing!==null).map(y=>[y.directory,y.listing]))),Ae.length>0&&g(y=>new Set([...y].filter(Be=>!Ae.some(ia=>Be===ia||Be.startsWith(`${ia}/`))))),M(void 0)}catch(_){s&&M(ua(_))}finally{P=!1,s&&(G&&D(!1),I!==void 0&&window.clearTimeout(I),I=window.setTimeout(()=>{de(!1)},3e4))}}},h=oe.subscribe(ue.channels.browse,{runId:o,root:p},()=>{de(!1)});return de(!0),()=>{s=!1,h(),I!==void 0&&window.clearTimeout(I)}},[e,re,p,o]);let T=s=>{g(I=>{let P=new Set(I);return P.has(s)?P.delete(s):P.add(s),P}),!F.has(s)&&(D(!0),ta(o,p,s).then(I=>{O(P=>new Map(P).set(s,I)),M(void 0)}).catch(I=>M(ua(I))).finally(()=>D(!1)))},z=s=>{k(s),w(void 0),D(!0),oa(o,p,s).then(I=>{w(I),M(void 0)}).catch(I=>M(ua(I))).finally(()=>D(!1))},v=(s,I)=>{let P=F.get(s);if(!P)return null;let de=W?P.entries:P.entries.filter(h=>!h.name.startsWith("."));return n(da,{children:[de.map(h=>{let G=s?`${s}/${h.name}`:h.name,_=c.has(G),{Icon:Pe,tone:Ae}=Xa(h.name,h.kind,_);return n("div",{children:[n(Te,{className:xt,"data-selected":i===G,onClick:()=>h.kind==="directory"?T(G):z(G),style:Ka(I),title:`${h.name} - ${Za(h.size)} - ${ht(h.modifiedAt)}`,variant:"ghost",children:[r("span",{className:`inline-flex w-3 flex-none items-center justify-center text-muted-foreground${_?" [&>svg]:rotate-90":""}`,children:h.kind==="directory"?r(Le,{size:11,strokeWidth:2}):null}),r(Pe,{"aria-hidden":!0,className:`flex-none ${Na[Ae]}`,size:14,strokeWidth:1.7}),r("span",{className:"min-w-0 flex-1 truncate text-left font-mono",children:h.name}),h.kind==="file"&&r("span",{className:"flex-none text-[0.64rem] text-muted-foreground tabular-nums",children:Za(h.size)})]}),h.kind==="directory"&&_&&v(G,I+1)]},G)}),P.truncated&&r("div",{className:"py-1 pr-2.5 pl-(--row-indent) text-[0.64rem] text-muted-foreground",style:Ka(I),children:"Weitere Eintr\xE4ge sind nicht gelistet."})]})},R=F.get("");return n("div",{className:"flex h-full min-h-0 flex-col",children:[n("header",{className:"flex items-center gap-2 px-2.5 py-2",children:[r("div",{className:"flex min-w-0 flex-1 gap-1",children:B.map(s=>r(ve,{onPressedChange:()=>H(s),pressed:s===p,size:"sm",variant:"outline",children:Ct[s]},s))}),n("div",{className:"flex items-center gap-1",children:[r(ve,{"aria-label":W?"Versteckte Eintr\xE4ge ausblenden":"Versteckte Eintr\xE4ge anzeigen",onPressedChange:Ee,pressed:W,size:"sm",title:W?"Versteckte Eintr\xE4ge ausblenden":"Versteckte Eintr\xE4ge anzeigen",children:W?r(Ie,{size:15,strokeWidth:1.8}):r(xe,{size:15,strokeWidth:1.8})}),r(Te,{"aria-label":"Dateien aktualisieren",onClick:()=>E(s=>s+1),size:"icon",title:"Aktualisieren",variant:"ghost",children:r(he,{className:ae?"animate-spin":void 0,size:15,strokeWidth:1.8})})]})]}),Z&&r(Ve,{className:"shrink-0 rounded-none border-x-0 border-t-0 border-b-border-soft bg-destructive/8 px-2.5 py-2 text-[0.68rem]",variant:"destructive",children:Z}),R&&r("div",{className:"truncate px-2.5 pt-0.5 pb-1.5 font-mono text-[0.66rem] text-muted-foreground",title:R.location,children:R.location}),R&&R.entries.length===0&&r(Ne,{className:"min-h-30 flex-none gap-2 p-7",children:n(Ke,{children:[r(Ze,{children:r(ee,{size:15,strokeWidth:1.7})}),r(_e,{children:"Keine Dateien"}),r(Xe,{children:gt[p]})]})}),r("div",{className:"min-h-0 flex-1 overflow-auto pb-2",children:v("",0)}),i&&n("div",{className:"flex min-h-0 flex-1 flex-col border-t border-border-soft",children:[r("div",{className:"truncate px-2.5 py-1.5 font-mono text-[0.66rem] text-muted-foreground",title:i,children:i}),m&&!m.previewable&&r("div",{className:"px-2.5 pb-2 text-[0.68rem] text-muted-foreground",children:m.reason}),m&&m.previewable&&r("div",{className:"min-h-0 flex-1 overflow-auto",children:r(ra,{className:It,content:m.content,path:i})})]})]})}var Oe=t("@ragents/web/Toolbar","ToolbarCopy");var Se=t("@ragents/web/Toolbar","ToolbarItem");var Ue=t("@ragents/web/Toolbar","ToolbarLabel");var ke=t("@ragents/web/Toolbar","ToolbarText");var K="server",ja="text-[0.75rem] text-destructive",He="text-[0.66rem] font-medium text-muted-foreground",Ja=e=>e instanceof Error?e.message:String(e),St=e=>{let a=e;return typeof a=="object"&&a!==null&&typeof a.id=="string"&&typeof a.label=="string"&&typeof a.hostname=="string"&&typeof a.platform=="string"&&Array.isArray(a.folders)&&a.folders.every(o=>typeof o=="string")&&typeof a.runsDirectory=="string"&&typeof a.ripgrep=="boolean"},$a=e=>{let a=e;return typeof a=="object"&&a!==null&&typeof a.server=="string"&&(a.client===null||typeof a.client=="string")},kt=(e,a)=>{let o=e;if(typeof o!="object"||o===null||o.kind!=="workspace-binding"||!Array.isArray(o.clients)||!o.clients.every(St)||!$a(o.fresh)||typeof o.serverFolders!="boolean")throw new Error(`Die Startoption ${a} liefert keine Arbeitsbereich-Darstellung`);return{kind:"workspace-binding",clients:o.clients,fresh:o.fresh,serverFolders:o.serverFolders}},Ya=(e,a)=>{let o=Ca(e);if(!o)throw new Error(`Der Wert der Startoption ${a} ist keine Arbeitsbereich-Bindung`);return o},la=e=>e.machine===K?K:e.machine.client,sa=e=>Ge(e.folder)?"fresh":"existing",fa=e=>{let{folder:a}=e;return Ge(a)?"":a.path},wt=(e,a)=>la(e)===la(a)&&sa(e)===sa(a)&&fa(e)===fa(a),Pt=(e,a,o)=>{let{machine:u}=a,x=o==="all"?e.clients:[],B=u===K||x.some(S=>S.id===u.client)?[]:[{value:u.client,label:e.clients.some(S=>S.id===u.client)?`Arbeitsplatz ${u.label}`:`Arbeitsplatz ${u.label} (nicht verbunden)`}];return[{value:K,label:"Server"},...x.map(S=>({value:S.id,label:`Arbeitsplatz ${S.label}`})),...B]},Qa=(e,a)=>{let o={value:"existing",label:"Vorhandener Ordner"};return a===K?[{value:"fresh",label:e.fresh.server},...e.serverFolders?[o]:[]]:[...e.fresh.client===null?[]:[{value:"fresh",label:e.fresh.client}],o]},At=e=>{let a=e;if(!(typeof a!="object"||a===null||typeof a.summary!="string"||!De(a.binding)))return{binding:a.binding,summary:a.summary}},Bt=e=>{try{return{presentation:kt(e.presentation,e.id),binding:Ya(e.value,e.id)}}catch(a){return{message:Ja(a)}}};function et({disabled:e,error:a,machines:o,option:u,setValue:x}){let[B,S]=A(void 0),[H,p]=A(void 0),[b,F]=A(void 0),O=Ye(),c=qe(()=>Bt(u),[u]);if("message"in c)return r("p",{className:ja,role:"alert",children:c.message});let{presentation:g,binding:i}=c,k=B??la(i),m=H??sa(i),w=b??fa(i),Z=Pt(g,i,o),M=Qa(g,k),ae=g.clients.find(d=>d.id===k),D=m==="existing"?ae?.folders.map(d=>({value:d,label:d}))??[]:[],re=(d,T,z)=>{let v=g.clients.find(s=>s.id===d)?.label??(i.machine!==K&&i.machine.client===d?i.machine.label:d),R=d===K?K:{client:d,label:v};return T==="fresh"?{machine:R,folder:"fresh"}:z===""?void 0:{machine:R,folder:{path:z}}},E=(d,T,z)=>{let v=re(d,T,z);v&&!wt(v,i)&&x(v)},W=d=>{let T=Qa(g,d).map(R=>R.value),z=T.includes(m)?m:T[0],v=w===""?g.clients.find(R=>R.id===d)?.folders[0]??"":w;S(d),p(z),F(v),E(d,z,v)},Ee=d=>{let T=w===""?ae?.folders[0]??"":w;p(d),F(T),E(k,d,T)},we=d=>{F(d),E(k,m,d)};return n("div",{className:"flex w-full flex-col items-start gap-2",children:[r("span",{className:"text-[0.72rem] font-semibold text-muted-foreground",children:"Arbeitsbereich"}),n("div",{className:"flex w-full flex-wrap items-end gap-2",children:[n("div",{className:"flex flex-col gap-1",children:[r("span",{className:He,children:"Rechner"}),n(le,{disabled:e,items:Z,onValueChange:d=>{d!==null&&W(d)},value:k,children:[r(ie,{"aria-label":"Rechner des Arbeitsbereichs",className:"min-w-0 max-w-full",size:"sm",children:r(ne,{})}),r(se,{children:Z.map(d=>r(fe,{value:d.value,children:d.label},d.value))})]})]}),n("div",{className:"flex flex-col gap-1",children:[r("span",{className:He,children:"Ordner"}),n(le,{disabled:e,items:M,onValueChange:d=>{d!==null&&Ee(d)},value:m,children:[r(ie,{"aria-label":"Ordner des Arbeitsbereichs",className:"min-w-0 max-w-full",size:"sm",children:r(ne,{})}),r(se,{children:M.map(d=>r(fe,{value:d.value,children:d.label},d.value))})]})]}),m==="existing"&&n("div",{className:"flex min-w-[15rem] flex-1 flex-col gap-1",children:[r(Qe,{className:He,htmlFor:O,children:"Absoluter Pfad"}),r(je,{className:"h-7 text-sm",disabled:e,id:O,onBlur:()=>E(k,m,w),onChange:d=>F(d.target.value),onKeyDown:d=>{d.key==="Enter"&&E(k,m,w)},placeholder:"/Users/name/projekt",value:w})]}),D.length>0&&n("div",{className:"flex flex-col gap-1",children:[r("span",{className:He,children:"Angebotener Ordner"}),n(le,{disabled:e,items:D,onValueChange:d=>{d!==null&&we(d)},value:D.some(d=>d.value===w)?w:null,children:[r(ie,{"aria-label":"Angebotener Ordner",className:"min-w-0 max-w-full",size:"sm",children:r(ne,{placeholder:"\xDCbernehmen"})}),r(se,{children:D.map(d=>r(fe,{value:d.value,children:d.label},d.value))})]})]})]}),a&&r("p",{className:ja,role:"alert",children:a})]})}var bt=e=>{let a=e;return typeof a=="object"&&a!==null&&$a(a.fresh)?a.fresh:{server:Re,client:Re}};function at({option:e}){if(!e.locked)return null;let a;try{a=Ya(e.value,e.id)}catch(u){return r(Se,{title:Ja(u),children:r(ke,{children:"Arbeitsbereich unlesbar"})})}let o=ga(a,bt(e.presentation));return r(Se,{title:`Arbeitsbereich: ${o}`,children:n(Oe,{children:[r(Ue,{children:"Arbeitsbereich"}),r(ke,{children:o})]})})}function tt({placement:e,session:a}){let o=At(a.metadata?.[La]);if(!o)return null;if(e==="list"){let{machine:u,folder:x}=o.binding;return u==="server"&&x==="fresh"?null:n("span",{className:"flex max-w-full items-center gap-1.5 overflow-hidden pl-px text-xs text-muted-foreground",title:`Arbeitsbereich: ${o.summary}`,children:[r(X,{"aria-hidden":!0,className:"size-3 flex-none"}),r("span",{className:"truncate",children:o.summary})]})}return n(Se,{title:`Arbeitsbereich: ${o.summary}`,children:[r(X,{"aria-hidden":!0,className:"size-3.5"}),n(Oe,{children:[r(Ue,{children:"Arbeitsbereich"}),r(ke,{children:o.summary})]})]})}var yt="ragents.workspace.files";function Dt(){return n("svg",{"aria-hidden":!0,fill:"none",height:"15",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.7",viewBox:"0 0 24 24",width:"15",children:[r("path",{d:"M3 6.5A1.5 1.5 0 0 1 4.5 5h4L10 7h9.5A1.5 1.5 0 0 1 21 8.5v9a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 3 17.5z"}),r("path",{d:"M3 11h18"})]})}var Nu={id:ca,workspaceTabs:[{readRight:"runs.inspect",id:yt,label:"Dateien",order:260,Icon:Dt,Panel:_a}],startOptions:[{id:ma,Control:et,Badge:at}],sessionMetadata:[{id:"ragents.workspace.binding",order:90,Metadata:tt}]};export{yt as WORKSPACE_FILES_TAB_ID,Nu as webPlugin};
2
2
  /*! Bundled license information:
3
3
 
4
4
  lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs: