opencami 1.3.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +60 -0
- package/dist/client/assets/CSPContext-EgWK8bIJ.js +1 -0
- package/dist/client/assets/DirectionContext-DXtY05YF.js +1 -0
- package/dist/client/assets/_sessionKey-B89e7G3y.js +100 -0
- package/dist/client/assets/agents-screen-1BiEZ9od.js +1 -0
- package/dist/client/assets/agents-x54ocA9z.js +2 -0
- package/dist/client/assets/bots-screen-BNQciUeJ.js +1 -0
- package/dist/client/assets/bots-x86ZHG4b.js +2 -0
- package/dist/client/assets/button-nDcsaNPl.js +1 -0
- package/dist/client/assets/{connect-CtDn993i.js → connect-w4lLOqiJ.js} +1 -1
- package/dist/client/assets/file-explorer-screen-CAsjd3w8.js +1 -0
- package/dist/client/assets/files-Bype5Mnb.js +2 -0
- package/dist/client/assets/{index-N9-2R5hZ.js → index-36G0WCxU.js} +1 -1
- package/dist/client/assets/index-BXkRE220.js +153 -0
- package/dist/client/assets/keyboard-shortcuts-dialog-BdCeXRjD.js +1 -0
- package/dist/client/assets/{main-DrVY5UJU.js → main-B3N0eQFg.js} +129 -17
- package/dist/client/assets/opencami-logo-DD0DPFRQ.js +1 -0
- package/dist/client/assets/{react-CzqI3gbN.js → react-B16OrBeM.js} +1 -1
- package/dist/client/assets/search-dialog-BjTPceEl.js +1 -0
- package/dist/client/assets/session-export-dialog-DtHKG2zW.js +1 -0
- package/dist/client/assets/settings-dialog-hiqdk_UD.js +1 -0
- package/dist/client/assets/skills-DhwyFq3y.js +2 -0
- package/dist/client/assets/skills-panel-BLUjzfjJ.js +5 -0
- package/dist/client/assets/styles-CHP4l6vZ.css +1 -0
- package/dist/client/assets/switch-J6wLIVu2.js +1 -0
- package/dist/client/assets/tabs-DvPgTz5I.js +1 -0
- package/dist/client/assets/tooltip-C14vdXHK.js +1 -0
- package/dist/client/assets/use-file-explorer-state-BnaJEqRP.js +12 -0
- package/dist/client/assets/useButton-Bnnac1eR.js +1 -0
- package/dist/client/assets/useCompositeItem-BgiEMKAt.js +1 -0
- package/dist/client/assets/useControlled-BhUuiHAm.js +1 -0
- package/dist/client/assets/useMutation-CFmVaBag.js +1 -0
- package/dist/client/assets/visuallyHidden-DCCICp6T.js +9 -0
- package/dist/server/assets/{_sessionKey-DVNrEYFh.js → _sessionKey-tRze5NLR.js} +493 -92
- package/dist/server/assets/_tanstack-start-manifest_v-CyfoMvUa.js +4 -0
- package/dist/server/assets/{agents-Dz_i76VW.js → agents-CmQ4vvXm.js} +1 -1
- package/dist/server/assets/{agents-screen-CqQPJndp.js → agents-screen-bmrIyFbk.js} +43 -35
- package/dist/server/assets/bots-Byt6jv0a.js +11 -0
- package/dist/server/assets/bots-screen-C2TGFv42.js +474 -0
- package/dist/server/assets/{button-DtQ3rV1m.js → button-CwY2OHFj.js} +2 -2
- package/dist/server/assets/{connect-CIDOw12K.js → connect-d3AqjAqe.js} +2 -2
- package/dist/server/assets/{file-explorer-screen-Cx0jiLRU.js → file-explorer-screen-CVlFiAFu.js} +39 -40
- package/dist/server/assets/{files-Trs1M5ba.js → files-BIEcSPGp.js} +1 -1
- package/dist/server/assets/{index-CmbNTqa2.js → index-CNIATlJ9.js} +93 -38
- package/dist/server/assets/{index-Dv2RXDa2.js → index-CRfLKh30.js} +2 -1
- package/dist/server/assets/{keyboard-shortcuts-dialog-7OEtXUlW.js → keyboard-shortcuts-dialog-CsNP85q8.js} +2 -2
- package/dist/server/assets/{router-OoQe2c20.js → router-rn7pJO_D.js} +515 -78
- package/dist/server/assets/{search-dialog-Bq0Pnxdb.js → search-dialog-Bz4Cu0KW.js} +23 -6
- package/dist/server/assets/{session-export-dialog-DRVbC8Q-.js → session-export-dialog-CwclV0Aj.js} +2 -2
- package/dist/server/assets/{settings-dialog-BsJsnMiu.js → settings-dialog-BBM7jCjE.js} +409 -95
- package/dist/server/assets/skills-Cy8xclXY.js +11 -0
- package/dist/server/assets/skills-panel-BnRNb7u9.js +762 -0
- package/dist/server/assets/{switch-DnX0MjGS.js → switch-BbkUeVDV.js} +1 -1
- package/dist/server/assets/tabs-DDFZob0m.js +67 -0
- package/dist/server/assets/{tooltip-gbV6rEVv.js → tooltip-DgsSPocE.js} +1 -1
- package/dist/server/assets/{use-file-explorer-state-DMHdtb7D.js → use-file-explorer-state-Il1LlBAe.js} +13 -1
- package/dist/server/server.js +2 -2
- package/package.json +6 -2
- package/dist/client/assets/_sessionKey-Z6Wcnj0N.js +0 -97
- package/dist/client/assets/agents-D8ZHVQ1Z.js +0 -2
- package/dist/client/assets/agents-screen-BVK0QTRH.js +0 -1
- package/dist/client/assets/button-CuH8u1uR.js +0 -1
- package/dist/client/assets/file-explorer-screen-DMUuR1uG.js +0 -1
- package/dist/client/assets/files-CDMLoJ0u.js +0 -2
- package/dist/client/assets/index-IGP-Igwt.js +0 -153
- package/dist/client/assets/keyboard-shortcuts-dialog-DW--4YLF.js +0 -1
- package/dist/client/assets/opencami-logo-ChD2XR2j.js +0 -1
- package/dist/client/assets/search-dialog-DYyFYJmw.js +0 -1
- package/dist/client/assets/session-export-dialog-BFizBmGb.js +0 -1
- package/dist/client/assets/settings-dialog-UvgVi2It.js +0 -1
- package/dist/client/assets/styles-BGTCU8mq.css +0 -1
- package/dist/client/assets/switch-DxW2OWPG.js +0 -1
- package/dist/client/assets/use-file-explorer-state-Cii59H70.js +0 -12
- package/dist/client/assets/useButton-hZdvKtl_.js +0 -9
- package/dist/server/assets/_tanstack-start-manifest_v-PwRq_yJS.js +0 -4
package/README.md
CHANGED
|
@@ -79,11 +79,71 @@ Then open the URL printed by Vite in your terminal.
|
|
|
79
79
|
|
|
80
80
|
> Dev port notes: this repo's `npm run dev` script uses port `3002`. If you run Vite directly with the config default, it targets `3003` and auto-falls back to the next free port.
|
|
81
81
|
|
|
82
|
+
## 🖥️ Desktop App (Tauri) — ⚠️ Beta
|
|
83
|
+
|
|
84
|
+
> **Note:** The desktop app is experimental and under active development. The primary focus of OpenCami is the **web app**. Native builds (desktop & mobile) are secondary.
|
|
85
|
+
|
|
86
|
+
OpenCami can also run as a native macOS/Windows/Linux desktop wrapper built with Tauri v2. The app loads your self-hosted OpenCami web instance.
|
|
87
|
+
|
|
88
|
+
### Prerequisites
|
|
89
|
+
|
|
90
|
+
- Node.js 18+
|
|
91
|
+
- Rust toolchain (`rustup`)
|
|
92
|
+
|
|
93
|
+
### Build
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Install dependencies (if not already done)
|
|
97
|
+
npm install
|
|
98
|
+
|
|
99
|
+
# Build web assets first
|
|
100
|
+
npm run build
|
|
101
|
+
|
|
102
|
+
# Build desktop app
|
|
103
|
+
npm run tauri:build
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Custom Gateway URL
|
|
107
|
+
|
|
108
|
+
By default, the desktop app connects to `http://localhost:3003`.
|
|
109
|
+
|
|
110
|
+
To override at build time:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
OPENCAMI_REMOTE_URL="https://your-server.example.com" npm run tauri:build
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Output
|
|
117
|
+
|
|
118
|
+
Built installers/bundles are written to `src-tauri/target/release/bundle/`:
|
|
119
|
+
- macOS: `.app`, `.dmg`
|
|
120
|
+
- Windows: `.exe`, `.msi`
|
|
121
|
+
- Linux: `.deb`, `.AppImage`
|
|
122
|
+
|
|
123
|
+
### Desktop Features
|
|
124
|
+
|
|
125
|
+
- Tray icon (hide to tray on close)
|
|
126
|
+
- Native notifications
|
|
127
|
+
- Auto-start on login
|
|
128
|
+
- Custom titlebar
|
|
129
|
+
- Multiple windows (⌘N)
|
|
130
|
+
- Clipboard integration
|
|
131
|
+
|
|
132
|
+
### Dev Mode
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npm run tauri:dev
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Requires a display/GUI environment.
|
|
139
|
+
|
|
82
140
|
## Documentation
|
|
83
141
|
|
|
84
142
|
- [Features](docs/features.md)
|
|
143
|
+
- [Desktop App (Tauri)](docs/desktop-app.md)
|
|
85
144
|
- [Architecture](docs/architecture.md)
|
|
86
145
|
- [Deployment](docs/deployment.md)
|
|
146
|
+
- [FAQ](docs/faq.md)
|
|
87
147
|
- [Contributing](docs/contributing.md)
|
|
88
148
|
- [Changelog](https://github.com/robbyczgw-cla/opencami/blob/main/CHANGELOG.md)
|
|
89
149
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t}from"./main-B3N0eQFg.js";const e=t.createContext(void 0),o={disableStyleElements:!1};function s(){return t.useContext(e)??o}export{s as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as p}from"./main-B3N0eQFg.js";import{N as T,i as y}from"./useButton-Bnnac1eR.js";const E=[];function H(t){p.useEffect(t,E)}const a=typeof navigator<"u",u=w(),h=R(),b=S(),$=typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter:none"),q=u.platform==="MacIntel"&&u.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(u.platform),z=a&&/apple/i.test(navigator.vendor),c=a&&/android/i.test(h)||/android/i.test(b),G=a&&h.toLowerCase().startsWith("mac")&&!navigator.maxTouchPoints,A=b.includes("jsdom/");function w(){if(!a)return{platform:"",maxTouchPoints:-1};const t=navigator.userAgentData;return t?.platform?{platform:t.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??-1}}function S(){if(!a)return"";const t=navigator.userAgentData;return t&&Array.isArray(t.brands)?t.brands.map(({brand:n,version:e})=>`${n}/${e}`).join(" "):navigator.userAgent}function R(){if(!a)return"";const t=navigator.userAgentData;return t?.platform?t.platform:navigator.platform??""}const m="data-base-ui-focusable",J="active",Q="selected",D="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",X="ArrowLeft",Z="ArrowRight",tt="ArrowUp",nt="ArrowDown";function et(t){let n=t.activeElement;for(;n?.shadowRoot?.activeElement!=null;)n=n.shadowRoot.activeElement;return n}function ot(t,n){if(!t||!n)return!1;const e=n.getRootNode?.();if(t.contains(n))return!0;if(e&&T(e)){let o=n;for(;o;){if(t===o)return!0;o=o.parentNode||o.host}}return!1}function rt(t){return"composedPath"in t?t.composedPath()[0]:t.target}function st(t,n){if(n==null)return!1;if("composedPath"in t)return t.composedPath().includes(n);const e=t;return e.target!=null&&n.contains(e.target)}function it(t){return t.matches("html,body")}function at(t){return t?.ownerDocument||document}function O(t){return y(t)&&t.matches(D)}function ut(t){return t?t.getAttribute("role")==="combobox"&&O(t):!1}function ct(t){if(!t||A)return!0;try{return t.matches(":focus-visible")}catch{return!0}}function ft(t){return t?t.hasAttribute(m)?t:t.querySelector(`[${m}]`)||t:null}function lt(t){t.preventDefault(),t.stopPropagation()}function pt(t){return"nativeEvent"in t}function mt(t){return t.mozInputSource===0&&t.isTrusted?!0:c&&t.pointerType?t.type==="click"&&t.buttons===1:t.detail===0&&!t.pointerType}function gt(t){return A?!1:!c&&t.width===0&&t.height===0||c&&t.width===1&&t.height===1&&t.pressure===0&&t.detail===0&&t.pointerType==="mouse"||t.width<1&&t.height<1&&t.pressure===0&&t.detail===0&&t.pointerType==="touch"}function dt(t,n){const e=["mouse","pen"];return n||e.push("",void 0),e.includes(t)}function ht(t){const n=t.type;return n==="click"||n==="mousedown"||n==="keydown"||n==="keyup"}const bt=["top","right","bottom","left"],C=Math.min,M=Math.max,At=Math.round,xt=Math.floor,Pt=t=>({x:t,y:t}),L={left:"right",right:"left",bottom:"top",top:"bottom"},k={start:"end",end:"start"};function Tt(t,n,e){return M(t,C(n,e))}function yt(t,n){return typeof t=="function"?t(n):t}function x(t){return t.split("-")[0]}function P(t){return t.split("-")[1]}function v(t){return t==="x"?"y":"x"}function W(t){return t==="y"?"height":"width"}const _=new Set(["top","bottom"]);function N(t){return _.has(x(t))?"y":"x"}function I(t){return v(N(t))}function Et(t,n,e){e===void 0&&(e=!1);const o=P(t),s=I(t),r=W(s);let i=s==="x"?o===(e?"end":"start")?"right":"left":o==="start"?"bottom":"top";return n.reference[r]>n.floating[r]&&(i=l(i)),[i,l(i)]}function wt(t){const n=l(t);return[f(t),n,f(n)]}function f(t){return t.replace(/start|end/g,n=>k[n])}const g=["left","right"],d=["right","left"],F=["top","bottom"],U=["bottom","top"];function j(t,n,e){switch(t){case"top":case"bottom":return e?n?d:g:n?g:d;case"left":case"right":return n?F:U;default:return[]}}function St(t,n,e,o){const s=P(t);let r=j(x(t),e==="start",o);return s&&(r=r.map(i=>i+"-"+s),n&&(r=r.concat(r.map(f)))),r}function l(t){return t.replace(/left|right|bottom|top/g,n=>L[n])}function V(t){return{top:0,right:0,bottom:0,left:0,...t}}function Rt(t){return typeof t!="number"?V(t):{top:t,right:t,bottom:t,left:t}}function Dt(t){const{x:n,y:e,width:o,height:s}=t;return{width:o,height:s,top:e,left:n,right:n+o,bottom:e+s,x:n,y:e}}function Ot(t){return t?.ownerDocument||document}const Y=p.createContext(void 0);function Ct(){return p.useContext(Y)?.direction??"ltr"}export{nt as A,wt as B,St as C,Et as D,P as E,C as F,M as G,bt as H,I,Rt as J,Dt as K,W as L,Tt as M,v as N,Pt as O,At as P,pt as Q,it as R,st as S,ct as T,G as U,D as V,m as W,J as X,Q as Y,Ct as a,ut as b,ot as c,ft as d,et as e,mt as f,at as g,gt as h,$ as i,rt as j,dt as k,ht as l,O as m,X as n,Z as o,tt as p,Ot as q,q as r,lt as s,xt as t,H as u,z as v,yt as w,x,N as y,l as z};
|