@vibe80/vibe80 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +132 -16
  2. package/bin/vibe80.js +1728 -16
  3. package/client/dist/assets/{DiffPanel-BKLnyIAZ.js → DiffPanel-BUJhQj_Q.js} +1 -1
  4. package/client/dist/assets/{ExplorerPanel-D3IbBsXz.js → ExplorerPanel-DugEeaO2.js} +1 -1
  5. package/client/dist/assets/{LogsPanel-BwJAFHRP.js → LogsPanel-BQrGxMu_.js} +1 -1
  6. package/client/dist/assets/{SettingsPanel-BfkchMnR.js → SettingsPanel-Ci2BdIYO.js} +1 -1
  7. package/client/dist/assets/{TerminalPanel-BQfMEm-u.js → TerminalPanel-C-T3t-6T.js} +1 -1
  8. package/client/dist/assets/index-cFi4LM0j.js +711 -0
  9. package/client/dist/assets/index-qNyFxUjK.css +32 -0
  10. package/client/dist/icon_square-512x512.png +0 -0
  11. package/client/dist/icon_square.svg +58 -0
  12. package/client/dist/index.html +3 -2
  13. package/client/dist/sw.js +1 -1
  14. package/client/index.html +1 -0
  15. package/client/public/icon_square-512x512.png +0 -0
  16. package/client/public/icon_square.svg +58 -0
  17. package/client/src/App.jsx +205 -2
  18. package/client/src/assets/vibe80_dark.png +0 -0
  19. package/client/src/assets/vibe80_light.png +0 -0
  20. package/client/src/components/Chat/ChatMessages.jsx +1 -1
  21. package/client/src/components/SessionGate/SessionGate.jsx +295 -91
  22. package/client/src/components/WorktreeTabs.css +11 -0
  23. package/client/src/components/WorktreeTabs.jsx +77 -47
  24. package/client/src/hooks/useChatSocket.js +8 -7
  25. package/client/src/hooks/useRepoBranchesModels.js +12 -6
  26. package/client/src/hooks/useWorktreeCloseConfirm.js +19 -7
  27. package/client/src/hooks/useWorktrees.js +3 -1
  28. package/client/src/index.css +26 -3
  29. package/client/src/locales/en.json +12 -1
  30. package/client/src/locales/fr.json +12 -1
  31. package/docs/api/openapi.json +1 -1
  32. package/package.json +2 -1
  33. package/server/scripts/rotate-workspace-secret.js +1 -1
  34. package/server/src/claudeClient.js +3 -3
  35. package/server/src/codexClient.js +3 -3
  36. package/server/src/config.js +6 -6
  37. package/server/src/index.js +14 -12
  38. package/server/src/middleware/auth.js +7 -7
  39. package/server/src/middleware/debug.js +36 -4
  40. package/server/src/providerLogger.js +2 -2
  41. package/server/src/routes/sessions.js +133 -21
  42. package/server/src/routes/workspaces.js +1 -1
  43. package/server/src/runAs.js +14 -14
  44. package/server/src/services/auth.js +3 -3
  45. package/server/src/services/session.js +182 -14
  46. package/server/src/services/workspace.js +86 -42
  47. package/server/src/storage/index.js +2 -2
  48. package/server/src/storage/redis.js +38 -36
  49. package/server/src/storage/sqlite.js +13 -13
  50. package/server/src/worktreeManager.js +87 -19
  51. package/server/tests/integration/routes/workspaces-routes.test.js +8 -8
  52. package/server/tests/setup/env.js +5 -5
  53. package/server/tests/unit/services/auth.test.js +3 -3
  54. package/client/dist/assets/index-BDQQz6SJ.css +0 -32
  55. package/client/dist/assets/index-D1UJw1oP.js +0 -711
@@ -1 +1 @@
1
- import{j as d,i as b,H as v}from"./index-D1UJw1oP.js";function k({t:i,activePane:j,isInWorktree:N,diffStatusLines:l,connected:f,currentProcessing:t,hasCurrentChanges:r,sendCommitMessage:h,diffFiles:m,currentDiff:o,untrackedFilePanels:c,untrackedLoading:u}){const x=Array.isArray(c)&&c.length>0,p=e=>{const s=String(e||"").split(/\r?\n/);return d.jsx("table",{className:"diff-view untracked-diff-view",children:d.jsx("tbody",{children:s.map((n,a)=>d.jsxs("tr",{className:"diff-line diff-line-add",children:[d.jsx("td",{className:"diff-gutter diff-gutter-added",children:d.jsx("span",{className:"diff-line-number",children:a+1})}),d.jsx("td",{className:"diff-code diff-code-added",children:n.length>0?n:" "})]},`line-${a}`))})})};return d.jsxs("div",{className:`diff-panel ${j==="diff"?"":"is-hidden"}`,children:[d.jsxs("div",{className:"diff-header",children:[d.jsx("div",{className:"diff-title",children:i(N?"Worktree diff":"Repository diff")}),l.length>0&&d.jsx("div",{className:"diff-count",children:i("{{count}} files modified",{count:l.length})}),d.jsxs("div",{className:"diff-actions",children:[d.jsx("button",{type:"button",className:"diff-action-button",onClick:()=>h("Commit"),disabled:!f||t||!r,title:i("Send 'Commit' in chat"),children:i("Commit")}),d.jsx("button",{type:"button",className:"diff-action-button primary",onClick:()=>h("Commit & Push"),disabled:!f||t||!r,title:i("Send 'Commit & Push' in chat"),children:i("Commit & Push")})]})]}),l.length>0&&d.jsx("div",{className:"diff-status",children:l.map((e,s)=>d.jsx("div",{children:e},`${e}-${s}`))}),m.length>0||x?d.jsxs("div",{className:"diff-body",children:[m.map(e=>{const s=e.newPath||e.oldPath||i("Diff");return d.jsxs("div",{className:"diff-file",children:[d.jsx("div",{className:"diff-file-header",children:s}),d.jsx(b,{viewType:"unified",diffType:e.type,hunks:e.hunks,children:n=>n.map(a=>d.jsx(v,{hunk:a},a.content))})]},`${e.oldPath}-${e.newPath}-${e.type}`)}),x&&c.map(e=>d.jsxs("div",{className:"diff-file",children:[d.jsx("div",{className:"diff-file-header",children:`?? ${e.path}`}),e.error?d.jsx("pre",{className:"diff-fallback",children:i("Unable to load file.")}):e.binary?d.jsx("pre",{className:"diff-fallback",children:i("binary data")}):d.jsxs(d.Fragment,{children:[p(e.content||""),e.truncated&&d.jsx("div",{className:"diff-file-note",children:i("File truncated for display.")})]})]},`untracked-${e.path}`)),u&&d.jsx("div",{className:"diff-file-note",children:i("Loading untracked files...")})]}):o.diff?d.jsx("pre",{className:"diff-fallback",children:o.diff}):d.jsx("div",{className:"diff-empty",children:i("No changes detected.")})]})}export{k as default};
1
+ import{j as d,i as b,H as v}from"./index-cFi4LM0j.js";function k({t:i,activePane:j,isInWorktree:N,diffStatusLines:l,connected:f,currentProcessing:t,hasCurrentChanges:r,sendCommitMessage:h,diffFiles:m,currentDiff:o,untrackedFilePanels:c,untrackedLoading:u}){const x=Array.isArray(c)&&c.length>0,p=e=>{const s=String(e||"").split(/\r?\n/);return d.jsx("table",{className:"diff-view untracked-diff-view",children:d.jsx("tbody",{children:s.map((n,a)=>d.jsxs("tr",{className:"diff-line diff-line-add",children:[d.jsx("td",{className:"diff-gutter diff-gutter-added",children:d.jsx("span",{className:"diff-line-number",children:a+1})}),d.jsx("td",{className:"diff-code diff-code-added",children:n.length>0?n:" "})]},`line-${a}`))})})};return d.jsxs("div",{className:`diff-panel ${j==="diff"?"":"is-hidden"}`,children:[d.jsxs("div",{className:"diff-header",children:[d.jsx("div",{className:"diff-title",children:i(N?"Worktree diff":"Repository diff")}),l.length>0&&d.jsx("div",{className:"diff-count",children:i("{{count}} files modified",{count:l.length})}),d.jsxs("div",{className:"diff-actions",children:[d.jsx("button",{type:"button",className:"diff-action-button",onClick:()=>h("Commit"),disabled:!f||t||!r,title:i("Send 'Commit' in chat"),children:i("Commit")}),d.jsx("button",{type:"button",className:"diff-action-button primary",onClick:()=>h("Commit & Push"),disabled:!f||t||!r,title:i("Send 'Commit & Push' in chat"),children:i("Commit & Push")})]})]}),l.length>0&&d.jsx("div",{className:"diff-status",children:l.map((e,s)=>d.jsx("div",{children:e},`${e}-${s}`))}),m.length>0||x?d.jsxs("div",{className:"diff-body",children:[m.map(e=>{const s=e.newPath||e.oldPath||i("Diff");return d.jsxs("div",{className:"diff-file",children:[d.jsx("div",{className:"diff-file-header",children:s}),d.jsx(b,{viewType:"unified",diffType:e.type,hunks:e.hunks,children:n=>n.map(a=>d.jsx(v,{hunk:a},a.content))})]},`${e.oldPath}-${e.newPath}-${e.type}`)}),x&&c.map(e=>d.jsxs("div",{className:"diff-file",children:[d.jsx("div",{className:"diff-file-header",children:`?? ${e.path}`}),e.error?d.jsx("pre",{className:"diff-fallback",children:i("Unable to load file.")}):e.binary?d.jsx("pre",{className:"diff-fallback",children:i("binary data")}):d.jsxs(d.Fragment,{children:[p(e.content||""),e.truncated&&d.jsx("div",{className:"diff-file-note",children:i("File truncated for display.")})]})]},`untracked-${e.path}`)),u&&d.jsx("div",{className:"diff-file-note",children:i("Loading untracked files...")})]}):o.diff?d.jsx("pre",{className:"diff-fallback",children:o.diff}):d.jsx("div",{className:"diff-empty",children:i("No changes detected.")})]})}export{k as default};
@@ -1,4 +1,4 @@
1
- import{r as s,W as F,j as i,F as Q,f as Se,a as Re,b as De,c as Ie,d as Le}from"./index-D1UJw1oP.js";function de(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function Ee(e){if(Array.isArray(e))return e}function Te(e,r,t){return(r=Ke(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Ae(e,r){var t=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(t!=null){var n,a,u,c,y=[],v=!0,d=!1;try{if(u=(t=t.call(e)).next,r!==0)for(;!(v=(n=u.call(t)).done)&&(y.push(n.value),y.length!==r);v=!0);}catch(S){d=!0,a=S}finally{try{if(!v&&t.return!=null&&(c=t.return(),Object(c)!==c))return}finally{if(d)throw a}}return y}}function $e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1
+ import{r as s,W as F,j as i,F as Q,f as Se,a as Re,b as De,c as Ie,d as Le}from"./index-cFi4LM0j.js";function de(e,r){(r==null||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}function Ee(e){if(Array.isArray(e))return e}function Te(e,r,t){return(r=Ke(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Ae(e,r){var t=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(t!=null){var n,a,u,c,y=[],v=!0,d=!1;try{if(u=(t=t.call(e)).next,r!==0)for(;!(v=(n=u.call(t)).done)&&(y.push(n.value),y.length!==r);v=!0);}catch(S){d=!0,a=S}finally{try{if(!v&&t.return!=null&&(c=t.return(),Object(c)!==c))return}finally{if(d)throw a}}return y}}function $e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
2
2
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fe(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function pe(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?fe(Object(t),!0).forEach(function(n){Te(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):fe(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Ve(e,r){if(e==null)return{};var t,n,a=Be(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(n=0;n<u.length;n++)t=u[n],r.indexOf(t)===-1&&{}.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}function Be(e,r){if(e==null)return{};var t={};for(var n in e)if({}.hasOwnProperty.call(e,n)){if(r.indexOf(n)!==-1)continue;t[n]=e[n]}return t}function qe(e,r){return Ee(e)||Ae(e,r)||Ue(e,r)||$e()}function ze(e,r){if(typeof e!="object"||!e)return e;var t=e[Symbol.toPrimitive];if(t!==void 0){var n=t.call(e,r);if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function Ke(e){var r=ze(e,"string");return typeof r=="symbol"?r:r+""}function Ue(e,r){if(e){if(typeof e=="string")return de(e,r);var t={}.toString.call(e).slice(8,-1);return t==="Object"&&e.constructor&&(t=e.constructor.name),t==="Map"||t==="Set"?Array.from(e):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?de(e,r):void 0}}function He(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function ge(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),t.push.apply(t,n)}return t}function he(e){for(var r=1;r<arguments.length;r++){var t=arguments[r]!=null?arguments[r]:{};r%2?ge(Object(t),!0).forEach(function(n){He(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ge(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function Fe(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return function(n){return r.reduceRight(function(a,u){return u(a)},n)}}function X(e){return function r(){for(var t=this,n=arguments.length,a=new Array(n),u=0;u<n;u++)a[u]=arguments[u];return a.length>=e.length?e.apply(this,a):function(){for(var c=arguments.length,y=new Array(c),v=0;v<c;v++)y[v]=arguments[v];return r.apply(t,[].concat(a,y))}}}function ne(e){return{}.toString.call(e).includes("Object")}function ke(e){return!Object.keys(e).length}function W(e){return typeof e=="function"}function Ge(e,r){return Object.prototype.hasOwnProperty.call(e,r)}function Ye(e,r){return ne(r)||B("changeType"),Object.keys(r).some(function(t){return!Ge(e,t)})&&B("changeField"),r}function _e(e){W(e)||B("selectorType")}function Je(e){W(e)||ne(e)||B("handlerType"),ne(e)&&Object.values(e).some(function(r){return!W(r)})&&B("handlersType")}function Qe(e){e||B("initialIsRequired"),ne(e)||B("initialType"),ke(e)&&B("initialContent")}function Xe(e,r){throw new Error(e[r]||e.default)}var Ze={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},B=X(Xe)(Ze),re={changes:Ye,selector:_e,handler:Je,initial:Qe};function We(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};re.initial(e),re.handler(r);var t={current:e},n=X(tr)(t,r),a=X(rr)(t),u=X(re.changes)(e),c=X(er)(t);function y(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(S){return S};return re.selector(d),d(t.current)}function v(d){Fe(n,a,u,c)(d)}return[y,v]}function er(e,r){return W(r)?r(e.current):r}function rr(e,r){return e.current=he(he({},e.current),r),r}function tr(e,r,t){return W(r)?r(e.current):Object.keys(t).forEach(function(n){var a;return(a=r[n])===null||a===void 0?void 0:a.call(r,e.current[n])}),t}var nr={create:We},or={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.55.1/min/vs"}};function ir(e){return function r(){for(var t=this,n=arguments.length,a=new Array(n),u=0;u<n;u++)a[u]=arguments[u];return a.length>=e.length?e.apply(this,a):function(){for(var c=arguments.length,y=new Array(c),v=0;v<c;v++)y[v]=arguments[v];return r.apply(t,[].concat(a,y))}}}function ar(e){return{}.toString.call(e).includes("Object")}function lr(e){return e||me("configIsRequired"),ar(e)||me("configType"),e.urls?(ur(),{paths:{vs:e.urls.monacoBase}}):e}function ur(){console.warn(be.deprecation)}function sr(e,r){throw new Error(e[r]||e.default)}var be={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
3
3
  You are using deprecated way of configuration.
4
4
 
@@ -1 +1 @@
1
- import{j as s}from"./index-D1UJw1oP.js";function r({t:l,activePane:n,filteredRpcLogs:e,logFilter:i,setLogFilter:o,scopedRpcLogs:t,handleClearRpcLogs:c}){return s.jsxs("div",{className:`logs-panel ${n==="logs"?"":"is-hidden"}`,children:[s.jsxs("div",{className:"logs-header",children:[s.jsx("div",{className:"logs-title",children:l("JSON-RPC")}),s.jsxs("div",{className:"logs-controls",children:[s.jsx("div",{className:"logs-count",children:l("{{count}} item(s)",{count:e.length})}),s.jsxs("div",{className:"logs-filters",children:[s.jsx("button",{type:"button",className:`logs-filter ${i==="all"?"is-active":""}`,onClick:()=>o("all"),children:l("All")}),s.jsx("button",{type:"button",className:`logs-filter ${i==="stdin"?"is-active":""}`,onClick:()=>o("stdin"),children:l("Stdin")}),s.jsx("button",{type:"button",className:`logs-filter ${i==="stdout"?"is-active":""}`,onClick:()=>o("stdout"),children:l("Stdout")})]}),s.jsx("button",{type:"button",className:"logs-clear",onClick:c,disabled:t.length===0,children:l("Clear")})]})]}),e.length===0?s.jsx("div",{className:"logs-empty",children:l("No logs yet.")}):s.jsx("div",{className:"logs-list",children:e.map((a,m)=>{var d;return s.jsxs("div",{className:`logs-item logs-${a.direction}`,children:[s.jsxs("div",{className:"logs-meta",children:[s.jsx("span",{className:"logs-direction",children:a.direction==="stdin"?l("stdin"):l("stdout")}),s.jsx("span",{className:"logs-time",children:a.timeLabel}),((d=a.payload)==null?void 0:d.method)&&s.jsx("span",{className:"logs-method",children:a.payload.method})]}),s.jsx("pre",{className:"logs-payload",children:JSON.stringify(a.payload,null,2)})]},`${a.timestamp}-${m}`)})})]})}export{r as default};
1
+ import{j as s}from"./index-cFi4LM0j.js";function r({t:l,activePane:n,filteredRpcLogs:e,logFilter:i,setLogFilter:o,scopedRpcLogs:t,handleClearRpcLogs:c}){return s.jsxs("div",{className:`logs-panel ${n==="logs"?"":"is-hidden"}`,children:[s.jsxs("div",{className:"logs-header",children:[s.jsx("div",{className:"logs-title",children:l("JSON-RPC")}),s.jsxs("div",{className:"logs-controls",children:[s.jsx("div",{className:"logs-count",children:l("{{count}} item(s)",{count:e.length})}),s.jsxs("div",{className:"logs-filters",children:[s.jsx("button",{type:"button",className:`logs-filter ${i==="all"?"is-active":""}`,onClick:()=>o("all"),children:l("All")}),s.jsx("button",{type:"button",className:`logs-filter ${i==="stdin"?"is-active":""}`,onClick:()=>o("stdin"),children:l("Stdin")}),s.jsx("button",{type:"button",className:`logs-filter ${i==="stdout"?"is-active":""}`,onClick:()=>o("stdout"),children:l("Stdout")})]}),s.jsx("button",{type:"button",className:"logs-clear",onClick:c,disabled:t.length===0,children:l("Clear")})]})]}),e.length===0?s.jsx("div",{className:"logs-empty",children:l("No logs yet.")}):s.jsx("div",{className:"logs-list",children:e.map((a,m)=>{var d;return s.jsxs("div",{className:`logs-item logs-${a.direction}`,children:[s.jsxs("div",{className:"logs-meta",children:[s.jsx("span",{className:"logs-direction",children:a.direction==="stdin"?l("stdin"):l("stdout")}),s.jsx("span",{className:"logs-time",children:a.timeLabel}),((d=a.payload)==null?void 0:d.method)&&s.jsx("span",{className:"logs-method",children:a.payload.method})]}),s.jsx("pre",{className:"logs-payload",children:JSON.stringify(a.payload,null,2)})]},`${a.timestamp}-${m}`)})})]})}export{r as default};
@@ -1 +1 @@
1
- import{j as s,F as B,e as E}from"./index-D1UJw1oP.js";function y({t:e,activePane:m,handleSettingsBack:h,language:o,setLanguage:x,showChatCommands:g,setShowChatCommands:j,showToolResults:N,setShowToolResults:p,notificationsEnabled:u,setNotificationsEnabled:b,themeMode:v,setThemeMode:k,gitIdentityName:f,setGitIdentityName:w,gitIdentityEmail:C,setGitIdentityEmail:F,gitIdentityGlobal:l,gitIdentityRepo:i,gitIdentityLoading:c,gitIdentitySaving:t,gitIdentityError:r,gitIdentityMessage:d,handleSaveGitIdentity:A,attachmentSession:n}){return s.jsxs("div",{className:`settings-panel ${m==="settings"?"":"is-hidden"}`,children:[s.jsxs("div",{className:"settings-header",children:[s.jsx("button",{type:"button",className:"settings-back icon-button",onClick:h,"aria-label":e("Back to previous view"),title:e("Back"),children:s.jsx("span",{"aria-hidden":"true",children:s.jsx(B,{icon:E})})}),s.jsxs("div",{className:"settings-heading",children:[s.jsx("div",{className:"settings-title",children:e("User settings")}),s.jsx("div",{className:"settings-subtitle",children:e("These settings are stored in your browser.")})]})]}),s.jsxs("div",{className:"settings-group",children:[s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Language")}),s.jsx("span",{className:"settings-hint",children:e("Select a language")})]}),s.jsxs("select",{className:"settings-select",value:o,onChange:a=>x(a.target.value),children:[s.jsx("option",{value:"fr",children:e("French")}),s.jsx("option",{value:"en",children:e("English")})]})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Show commands in chat")}),s.jsx("span",{className:"settings-hint",children:e("Show executed command blocks in the conversation.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:g,onChange:a=>j(a.target.checked)})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Show tool results in chat")}),s.jsx("span",{className:"settings-hint",children:e("Show tool_result blocks in the conversation.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:N,onChange:a=>p(a.target.checked)})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Notifications")}),s.jsx("span",{className:"settings-hint",children:e("Show a notification and sound when a new message arrives.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:u,onChange:a=>b(a.target.checked)})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Dark mode")}),s.jsx("span",{className:"settings-hint",children:e("Enable the dark theme for the interface.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:v==="dark",onChange:a=>k(a.target.checked?"dark":"light")})]})]}),s.jsx("div",{className:"settings-group",children:s.jsxs("div",{className:"settings-item settings-item--stacked",children:[s.jsxs("div",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Git identity for this repository")}),s.jsx("span",{className:"settings-hint",children:e("Provide user.name and user.email for repository commits.")}),s.jsx("span",{className:"settings-hint",children:e("Global values: {{name}} / {{email}}.",{name:l.name||e("Not set"),email:l.email||e("Not set")})}),s.jsx("span",{className:"settings-hint",children:i.name||i.email?e("Repository values: {{name}} / {{email}}.",{name:i.name||e("Not set"),email:i.email||e("Not set")}):e("No repository-specific values.")})]}),s.jsxs("div",{className:"settings-fields",children:[s.jsxs("label",{className:"settings-field",children:[s.jsx("span",{className:"settings-field-label",children:e("user.name")}),s.jsx("input",{type:"text",className:"settings-input",value:f,onChange:a=>w(a.target.value),placeholder:l.name||e("Full name"),disabled:c||t||!(n!=null&&n.sessionId)})]}),s.jsxs("label",{className:"settings-field",children:[s.jsx("span",{className:"settings-field-label",children:e("user.email")}),s.jsx("input",{type:"email",className:"settings-input",value:C,onChange:a=>F(a.target.value),placeholder:l.email||e("your.email@example.com"),disabled:c||t||!(n!=null&&n.sessionId)})]})]}),s.jsxs("div",{className:"settings-actions",children:[s.jsx("button",{type:"button",className:"settings-button",onClick:A,disabled:c||t||!(n!=null&&n.sessionId),children:e(t?"Saving...":"Save")}),c?s.jsx("span",{className:"settings-status",children:e("Loading...")}):null,r?s.jsx("span",{className:"settings-status is-error",children:r}):null,d?s.jsx("span",{className:"settings-status",children:d}):null]})]})})]})}export{y as default};
1
+ import{j as s,F as B,e as E}from"./index-cFi4LM0j.js";function y({t:e,activePane:m,handleSettingsBack:h,language:o,setLanguage:x,showChatCommands:g,setShowChatCommands:j,showToolResults:N,setShowToolResults:p,notificationsEnabled:u,setNotificationsEnabled:b,themeMode:v,setThemeMode:k,gitIdentityName:f,setGitIdentityName:w,gitIdentityEmail:C,setGitIdentityEmail:F,gitIdentityGlobal:l,gitIdentityRepo:i,gitIdentityLoading:c,gitIdentitySaving:t,gitIdentityError:r,gitIdentityMessage:d,handleSaveGitIdentity:A,attachmentSession:n}){return s.jsxs("div",{className:`settings-panel ${m==="settings"?"":"is-hidden"}`,children:[s.jsxs("div",{className:"settings-header",children:[s.jsx("button",{type:"button",className:"settings-back icon-button",onClick:h,"aria-label":e("Back to previous view"),title:e("Back"),children:s.jsx("span",{"aria-hidden":"true",children:s.jsx(B,{icon:E})})}),s.jsxs("div",{className:"settings-heading",children:[s.jsx("div",{className:"settings-title",children:e("User settings")}),s.jsx("div",{className:"settings-subtitle",children:e("These settings are stored in your browser.")})]})]}),s.jsxs("div",{className:"settings-group",children:[s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Language")}),s.jsx("span",{className:"settings-hint",children:e("Select a language")})]}),s.jsxs("select",{className:"settings-select",value:o,onChange:a=>x(a.target.value),children:[s.jsx("option",{value:"fr",children:e("French")}),s.jsx("option",{value:"en",children:e("English")})]})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Show commands in chat")}),s.jsx("span",{className:"settings-hint",children:e("Show executed command blocks in the conversation.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:g,onChange:a=>j(a.target.checked)})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Show tool results in chat")}),s.jsx("span",{className:"settings-hint",children:e("Show tool_result blocks in the conversation.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:N,onChange:a=>p(a.target.checked)})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Notifications")}),s.jsx("span",{className:"settings-hint",children:e("Show a notification and sound when a new message arrives.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:u,onChange:a=>b(a.target.checked)})]}),s.jsxs("label",{className:"settings-item",children:[s.jsxs("span",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Dark mode")}),s.jsx("span",{className:"settings-hint",children:e("Enable the dark theme for the interface.")})]}),s.jsx("input",{type:"checkbox",className:"settings-toggle",checked:v==="dark",onChange:a=>k(a.target.checked?"dark":"light")})]})]}),s.jsx("div",{className:"settings-group",children:s.jsxs("div",{className:"settings-item settings-item--stacked",children:[s.jsxs("div",{className:"settings-text",children:[s.jsx("span",{className:"settings-name",children:e("Git identity for this repository")}),s.jsx("span",{className:"settings-hint",children:e("Provide user.name and user.email for repository commits.")}),s.jsx("span",{className:"settings-hint",children:e("Global values: {{name}} / {{email}}.",{name:l.name||e("Not set"),email:l.email||e("Not set")})}),s.jsx("span",{className:"settings-hint",children:i.name||i.email?e("Repository values: {{name}} / {{email}}.",{name:i.name||e("Not set"),email:i.email||e("Not set")}):e("No repository-specific values.")})]}),s.jsxs("div",{className:"settings-fields",children:[s.jsxs("label",{className:"settings-field",children:[s.jsx("span",{className:"settings-field-label",children:e("user.name")}),s.jsx("input",{type:"text",className:"settings-input",value:f,onChange:a=>w(a.target.value),placeholder:l.name||e("Full name"),disabled:c||t||!(n!=null&&n.sessionId)})]}),s.jsxs("label",{className:"settings-field",children:[s.jsx("span",{className:"settings-field-label",children:e("user.email")}),s.jsx("input",{type:"email",className:"settings-input",value:C,onChange:a=>F(a.target.value),placeholder:l.email||e("your.email@example.com"),disabled:c||t||!(n!=null&&n.sessionId)})]})]}),s.jsxs("div",{className:"settings-actions",children:[s.jsx("button",{type:"button",className:"settings-button",onClick:A,disabled:c||t||!(n!=null&&n.sessionId),children:e(t?"Saving...":"Save")}),c?s.jsx("span",{className:"settings-status",children:e("Loading...")}):null,r?s.jsx("span",{className:"settings-status is-error",children:r}):null,d?s.jsx("span",{className:"settings-status",children:d}):null]})]})})]})}export{y as default};
@@ -1 +1 @@
1
- import{j as n}from"./index-D1UJw1oP.js";function h({t:m,terminalEnabled:a,activePane:x,repoName:d,activeWorktree:l,isInWorktree:j,terminalContainerRef:i,attachmentSession:s}){return a?n.jsxs("div",{className:`terminal-panel ${x==="terminal"?"":"is-hidden"}`,children:[n.jsxs("div",{className:"terminal-header",children:[n.jsx("div",{className:"terminal-title",children:m("Terminal")}),(d||(l==null?void 0:l.branchName)||(l==null?void 0:l.name))&&n.jsx("div",{className:"terminal-meta",children:j?(l==null?void 0:l.branchName)||(l==null?void 0:l.name):d})]}),n.jsx("div",{className:"terminal-body",ref:i}),!(s!=null&&s.sessionId)&&n.jsx("div",{className:"terminal-empty",children:m("Start a session to open the terminal.")})]}):null}export{h as default};
1
+ import{j as n}from"./index-cFi4LM0j.js";function h({t:m,terminalEnabled:a,activePane:x,repoName:d,activeWorktree:l,isInWorktree:j,terminalContainerRef:i,attachmentSession:s}){return a?n.jsxs("div",{className:`terminal-panel ${x==="terminal"?"":"is-hidden"}`,children:[n.jsxs("div",{className:"terminal-header",children:[n.jsx("div",{className:"terminal-title",children:m("Terminal")}),(d||(l==null?void 0:l.branchName)||(l==null?void 0:l.name))&&n.jsx("div",{className:"terminal-meta",children:j?(l==null?void 0:l.branchName)||(l==null?void 0:l.name):d})]}),n.jsx("div",{className:"terminal-body",ref:i}),!(s!=null&&s.sessionId)&&n.jsx("div",{className:"terminal-empty",children:m("Start a session to open the terminal.")})]}):null}export{h as default};