@pithosai/pithosai 1.0.2 → 1.0.3

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/LICENSE ADDED
@@ -0,0 +1,14 @@
1
+ Copyright © 2026 lidh04@gmail.com. All rights reserved.
2
+
3
+ This software is proprietary and confidential. It is not distributed under
4
+ an open-source license. No permission is granted to use, copy, modify, merge,
5
+ publish, distribute, sublicense, and/or sell copies of the Software, except
6
+ as expressly authorized in writing by the copyright holder.
7
+
8
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
9
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
10
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
11
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
12
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
13
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
14
+ SOFTWARE.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Pithosai (`@pithosai/pithosai`)
2
2
 
3
- **Multi-role AI CLI** for coding and product work: natural-language requests, pluggable models (Cursor, DeepSeek, OpenRouter), and role-based prompts stored in SQLite. **Current version: 1.0.1** — see [CHANGELOG.md](CHANGELOG.md).
3
+ **Multi-role AI CLI** for coding and product work: natural-language requests, pluggable models (Cursor, DeepSeek, OpenRouter), and role-based prompts stored in SQLite. See [CHANGELOG.md](CHANGELOG.md) for release history.
4
4
 
5
5
  ---
6
6
 
@@ -77,7 +77,7 @@ pithosai --mode dialog "Explain this error"
77
77
  pithosai --mode plan "Outline the next sprint"
78
78
  ```
79
79
 
80
- Result previews (terminal or optional Chrome via Playwright) can be tuned with `PITHOSAI_SKIP_RESULT_BROWSER`, `PITHOSAI_RESULT_BROWSER`, and `PITHOSAI_PLAYWRIGHT_CHANNEL`. Details: [Configuration](https://gitee.com/sihuic/pithosai/blob/master/docs/Configuration.md) (repository).
80
+ Result previews (terminal or optional Chrome via Playwright) can be tuned with `PITHOSAI_SKIP_RESULT_BROWSER`, `PITHOSAI_RESULT_BROWSER`, and `PITHOSAI_PLAYWRIGHT_CHANNEL`. For a full write-up, see **`docs/Configuration.md`** in the project source tree (not shipped on npm).
81
81
 
82
82
  ---
83
83
 
@@ -116,41 +116,28 @@ In a normal terminal, the default UI uses a **full-screen TUI** (bottom input, s
116
116
  | `PITHOSAI_TIMEOUT_MS` / `--timeout` | Run time limits |
117
117
  | `SCRAPERAPI_API_KEY` | Used by skills / some tools |
118
118
 
119
- A longer list (history limits, security hooks, debug) lives in the [Configuration](https://gitee.com/sihuic/pithosai/blob/master/docs/Configuration.md) doc in the repository.
119
+ A longer list (history limits, security hooks, debug) is documented in **`docs/Configuration.md`** in the project source tree.
120
120
 
121
121
  ---
122
122
 
123
123
  ## Documentation and source
124
124
 
125
- The **npm package** contains the built CLI and runtime assets. **Markdown guides** (architecture, skills, shell, troubleshooting) are maintained in the repository:
125
+ The **npm package** contains the built CLI and runtime assets (not the full `docs/` tree). [CHANGELOG.md](CHANGELOG.md) ships with the package.
126
126
 
127
- | Doc | Link |
128
- |-----|------|
129
- | Changelog | [CHANGELOG.md](CHANGELOG.md) (included in package) |
130
- | Architecture | [docs/ARCHITECTURE.md](https://gitee.com/sihuic/pithosai/blob/master/docs/ARCHITECTURE.md) |
131
- | Configuration | [docs/Configuration.md](https://gitee.com/sihuic/pithosai/blob/master/docs/Configuration.md) |
132
- | Troubleshooting | [docs/TROUBLESHOOTING.md](https://gitee.com/sihuic/pithosai/blob/master/docs/TROUBLESHOOTING.md) |
133
- | Skills CLI | [docs/SKILLS-CLI.md](https://gitee.com/sihuic/pithosai/blob/master/docs/SKILLS-CLI.md) |
134
- | Shell CLI | [docs/SHELL-CLI.md](https://gitee.com/sihuic/pithosai/blob/master/docs/SHELL-CLI.md) |
127
+ Extended Markdown guides live under **`docs/`** in a **full checkout** of the project (clone or archive), for example:
135
128
 
136
- **Repository:** [gitee.com/sihuic/pithosai](https://gitee.com/sihuic/pithosai)
137
-
138
- ---
139
-
140
- ## Docker
141
-
142
- To build an image from source, clone the repo and run `docker build -t pithosai .`. Do not mount the same directory you use for a normal (non-Docker) install.
143
-
144
- ---
145
-
146
- ## Contributing
147
-
148
- Clone the repo, run `npm install`, then `npm test`. Development uses the same `package.json`; publishing runs `npm run build` via `prepublishOnly`.
129
+ - `docs/ARCHITECTURE.md`
130
+ - `docs/Configuration.md`
131
+ - `docs/TROUBLESHOOTING.md`
132
+ - `docs/SKILLS-CLI.md`
133
+ - `docs/SHELL-CLI.md`
149
134
 
150
135
  ---
151
136
 
152
137
  ## License
153
138
 
154
- ISC
139
+ Pithosai is **proprietary** software — it is **not** published under an open-source or ISC license.
140
+
141
+ Copyright © 2026 [lidh04@gmail.com](mailto:lidh04@gmail.com). All rights reserved.
155
142
 
156
- Copyright © SHC lidh04@qq.com 2026
143
+ See [`LICENSE`](LICENSE) for the copyright notice (included in the npm package). The `license` field in `package.json` is `UNLICENSED`, which npm uses when no public license is granted.
package/dist/156.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="156";export const __rspack_esm_ids=["156"];export const __webpack_modules__={6039(_){_.exports=import("@clack/prompts").then(function(_){return _})}};
package/dist/220.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="220";export const __rspack_esm_ids=["220"];export const __webpack_modules__={1663(_){_.exports=import("nodemailer").then(function(_){return _})}};
package/dist/236.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="236";export const __rspack_esm_ids=["236"];export const __webpack_modules__={7351(_){_.exports=import("mailparser").then(function(_){return _})}};
package/dist/475.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="475";export const __rspack_esm_ids=["475"];export const __webpack_modules__={7414(o){o.exports=import("@silvia-odwyer/photon-node").then(function(o){return o})}};
package/dist/511.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="511";export const __rspack_esm_ids=["511"];export const __webpack_modules__={5522(_){_.exports=import("@mozilla/readability").then(function(_){return _})}};
package/dist/613.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="613";export const __rspack_esm_ids=["613"];export const __webpack_modules__={2220(_){_.exports=import("imap").then(function(_){return _})}};
package/dist/691.mjs ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="691";export const __rspack_esm_ids=["691"];export const __webpack_modules__={4382(_){_.exports=import("linkedom").then(function(_){return _})}};
package/dist/935.mjs ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export const __rspack_esm_id="935";export const __rspack_esm_ids=["935"];export const __webpack_modules__={8498(t,e,i){i.a(t,async function(t,s){try{i.d(e,{showMarkdownInPiTui:()=>a});var l=i(8691),r=i(8285),n=i(4127),h=t([l,r,n]);[l,r,n]=h.then?(await h)():h;let o=!1;class c{constructor(t){let{terminal:e,tui:i,markdown:s,hintText:l,documentTitle:r,onClose:n}=t;this.terminal=e,this.tui=i,this._markdown=s,this.hintText=l,this.documentTitle=r?.trim()||"",this.onClose=n,this.scrollTop=0,this._fullLines=null,this._cachedWidth=null,this._ggAwaitingSecondG=!1,this._ggTimer=null}clearGgPrefixState(){null!=this._ggTimer&&(clearTimeout(this._ggTimer),this._ggTimer=null),this._ggAwaitingSecondG=!1}invalidate(){this._markdown.invalidate(),this._fullLines=null,this._cachedWidth=null}handleInput(t){let e=this.terminal.columns,i=this.terminal.rows,s=+!!this.documentTitle,l=Math.max(1,i-s-1),r=this._getFullLines(e).length,h=Math.max(0,r-l);if((0,n.matchesKey)(t,"escape")||(0,n.matchesKey)(t,"esc")||(0,n.matchesKey)(t,"q")||(0,n.matchesKey)(t,"shift+q")||(0,n.matchesKey)(t,"ctrl+c")){this.clearGgPrefixState(),this.onClose();return}if((0,n.matchesKey)(t,"shift+g")){this.clearGgPrefixState(),this.scrollTop=h;return}if((0,n.matchesKey)(t,"g")){if(this._ggAwaitingSecondG){this.clearGgPrefixState(),this.scrollTop=0;return}this._ggAwaitingSecondG=!0,null!=this._ggTimer&&clearTimeout(this._ggTimer),this._ggTimer=setTimeout(()=>{this._ggTimer=null,this._ggAwaitingSecondG=!1},500);return}if(this.clearGgPrefixState(),(0,n.matchesKey)(t,"up")||(0,n.matchesKey)(t,"k")){this.scrollTop=Math.max(0,this.scrollTop-1);return}if((0,n.matchesKey)(t,"down")||(0,n.matchesKey)(t,"j")){this.scrollTop=Math.min(h,this.scrollTop+1);return}if((0,n.matchesKey)(t,"pageUp")||(0,n.matchesKey)(t,"ctrl+u")){this.scrollTop=Math.max(0,this.scrollTop-l);return}if((0,n.matchesKey)(t,"pageDown")||(0,n.matchesKey)(t,"ctrl+d")){this.scrollTop=Math.min(h,this.scrollTop+l);return}if((0,n.matchesKey)(t,"home")){this.scrollTop=0;return}if((0,n.matchesKey)(t,"end")){this.scrollTop=h;return}}_getFullLines(t){return this._fullLines&&this._cachedWidth===t||(this._cachedWidth=t,this._fullLines=this._markdown.render(t)),this._fullLines}render(t){let e=this.terminal.rows,i=this.documentTitle?[l.m.bold.cyan((0,n.truncateToWidth)(this.documentTitle,t))]:[],s=i.length,r=Math.max(1,e-s-1);null!=this._cachedWidth&&this._cachedWidth!==t&&this.invalidate();let h=this._getFullLines(t),a=Math.max(0,h.length-r);this.scrollTop=Math.min(this.scrollTop,a);let o=h.slice(this.scrollTop,this.scrollTop+r);for(;o.length<r;)o.push("");let c=l.m.dim((0,n.truncateToWidth)(this.hintText,t));return[...i,...o,c]}}async function a(t){let{markdown:e,t:i,documentTitle:s,tuiSession:l=null}=t;if(!e||"string"!=typeof e||!e.trim())return;if(!(process.stdout.isTTY&&process.stdin.isTTY))return void process.stdout.write(`${e}
3
+ `);let h=l&&"function"==typeof l.suspendForReadline&&"function"==typeof l.resumeFromReadline;h&&l.suspendForReadline();try{o||((0,r.CK)("dark"),o=!0);let t=(0,r.pd)(),l=new n.Markdown(e,1,1,t),h=i("cli.resultPreviewTerminalHint"),a=new n.ProcessTerminal,m=new n.TUI(a);m.setClearOnShrink(!0),await new Promise(t=>{let e,i=new c({terminal:a,tui:m,markdown:l,hintText:h,documentTitle:s,onClose:()=>{e?.clearGgPrefixState(),m.stop(),t()}});e=i;let r=new n.Container;r.addChild(i),m.addChild(r),m.setFocus(i),m.start(),m.requestRender(!0)})}finally{h&&l.resumeFromReadline()}}s()}catch(t){s(t)}})}};