@joeyshi12/casper 0.6.2 → 0.6.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/README.md +14 -14
- package/dist/casper.js +13 -0
- package/dist/server.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,18 +18,18 @@ exactly what it missed.
|
|
|
18
18
|
- **Sessions** you can create, search, rename and delete. Live ones run in a
|
|
19
19
|
bounded process pool; idle ones go dormant and resume on demand.
|
|
20
20
|
- **Per-session model and agent**, from the live model list and kiro's agents.
|
|
21
|
-
- **Rich rendering**
|
|
21
|
+
- **Rich rendering** of Markdown, Mermaid, syntax-highlighted code, and MCP tool
|
|
22
22
|
calls with their status, input and output.
|
|
23
23
|
- **File browser** for the session's workspace, with previews for text, images
|
|
24
24
|
and PDFs.
|
|
25
|
-
- **Observability**
|
|
26
|
-
- **PWA**
|
|
25
|
+
- **Observability** for credits spent, context-window usage and turn duration.
|
|
26
|
+
- **PWA** that installs to a home screen and reconnects when the network returns.
|
|
27
27
|
|
|
28
28
|
## Install
|
|
29
29
|
|
|
30
|
-
Needs Node 24
|
|
31
|
-
|
|
32
|
-
for it, so nothing works without it.
|
|
30
|
+
Needs Node 24+, since Casper keeps its state in SQLite via the built-in
|
|
31
|
+
`node:sqlite`. It also needs [`kiro-cli`](https://kiro.dev) installed and logged in.
|
|
32
|
+
Casper is a client for it, so nothing works without it.
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
35
|
npm install -g @joeyshi12/casper
|
|
@@ -45,8 +45,8 @@ To survive reboots, install the systemd user service:
|
|
|
45
45
|
casper service install
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
systemd is optional. Without it,
|
|
49
|
-
|
|
48
|
+
systemd is optional. Without it, run `casper` from your own init system, under
|
|
49
|
+
`nohup`, or in tmux.
|
|
50
50
|
|
|
51
51
|
| Command | |
|
|
52
52
|
|---|---|
|
|
@@ -113,14 +113,14 @@ lengthy turns. PWA install and reliable reconnects need HTTPS.
|
|
|
113
113
|
|
|
114
114
|
## Security
|
|
115
115
|
|
|
116
|
-
Casper launches kiro with `--trust-all-tools
|
|
117
|
-
approvals
|
|
118
|
-
to Casper as equivalent to a shell on the machine.
|
|
116
|
+
Casper launches kiro with `--trust-all-tools` so unattended runs never block on
|
|
117
|
+
approvals. The agent can run commands and write files without asking, so treat
|
|
118
|
+
access to Casper as equivalent to a shell on the machine.
|
|
119
119
|
|
|
120
120
|
The token is 24 random bytes, generated for you and exchanged at login for a
|
|
121
|
-
per-device cookie; only its hash is stored. Comparison is constant-time,
|
|
122
|
-
allows ten failures per quarter hour per address before answering 429
|
|
123
|
-
settings file and database are `0600`.
|
|
121
|
+
per-device cookie; only its hash is stored. Comparison is constant-time, and
|
|
122
|
+
`/api/login` allows ten failures per quarter hour per address before answering 429.
|
|
123
|
+
The settings file and the database are both `0600`.
|
|
124
124
|
|
|
125
125
|
## Develop
|
|
126
126
|
|
package/dist/casper.js
CHANGED
|
@@ -16,6 +16,19 @@ if (Number.isNaN(major) || major < 24) {
|
|
|
16
16
|
process.exit(1);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
// node:sqlite is still flagged experimental on supported Node versions, and the notice
|
|
20
|
+
// fires when the module is imported - so it printed on every command, `casper token`
|
|
21
|
+
// included. Casper depends on it deliberately and engines pins a version that has it,
|
|
22
|
+
// so it's noise the reader can't act on. Drop that one message and leave every other
|
|
23
|
+
// warning alone. Done here because the bundle imports node:sqlite as it loads, before
|
|
24
|
+
// any of its own code could install a filter.
|
|
25
|
+
const emitWarning = process.emitWarning.bind(process);
|
|
26
|
+
process.emitWarning = (warning, ...rest) => {
|
|
27
|
+
const message = typeof warning === 'string' ? warning : (warning && warning.message) || '';
|
|
28
|
+
if (/SQLite is an experimental feature/i.test(message)) return;
|
|
29
|
+
emitWarning(warning, ...rest);
|
|
30
|
+
};
|
|
31
|
+
|
|
19
32
|
const here = new URL('./server.js', import.meta.url);
|
|
20
33
|
import(here.href).catch((err) => {
|
|
21
34
|
process.stderr.write(`casper: failed to start: ${err?.message ?? err}\n`);
|
package/dist/server.js
CHANGED
|
@@ -6746,7 +6746,7 @@ var program = new Command();
|
|
|
6746
6746
|
// server/src/cli/program.ts
|
|
6747
6747
|
init_paths();
|
|
6748
6748
|
init_settings();
|
|
6749
|
-
var VERSION = true ? "0.6.
|
|
6749
|
+
var VERSION = true ? "0.6.3" : "dev";
|
|
6750
6750
|
async function bootstrap() {
|
|
6751
6751
|
const file = configFilePath();
|
|
6752
6752
|
const settings = readSettings(file);
|