@bibobonking/opensol 3.1.6 → 3.2.1
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/CHANGELOG.md +9 -7
- package/README.md +24 -20
- package/desktop/README.md +1 -1
- package/dist/assets/index-CyxlAgKM.js +271 -0
- package/dist/assets/index-DFeF90S8.css +1 -0
- package/dist/index.html +2 -2
- package/package.json +3 -6
- package/server/README.md +15 -68
- package/server/daemon.mjs +6 -1
- package/server/lib/deploy.mjs +5 -10
- package/server/lib/shell.mjs +149 -0
- package/server/lib/shell.test.mjs +72 -0
- package/server/lib/tools.mjs +8 -44
- package/src/agent/adapters/anthropic.ts +2 -3
- package/src/agent/adapters/gemini.ts +2 -3
- package/src/agent/adapters/openai-responses.ts +2 -3
- package/src/agent/adapters/openai.ts +2 -3
- package/src/agent/adapters/shared.ts +3 -0
- package/src/components/ChatView.tsx +17 -54
- package/src/components/Composer.tsx +143 -135
- package/src/components/ContextBar.tsx +2 -2
- package/src/components/HomeDashboard.tsx +7 -4
- package/src/components/MessageItem.tsx +33 -1
- package/src/components/ModelDeck.tsx +5 -27
- package/src/components/SettingsModal.tsx +8 -0
- package/src/components/ToolCallCard.tsx +2 -2
- package/src/components/TrajectoryView.tsx +1 -1
- package/src/components/composer/PlusMenu.tsx +117 -0
- package/src/components/composer/Popover.tsx +109 -0
- package/src/components/composer/WorkspacePicker.tsx +102 -0
- package/src/core/plugins/tools/shell.ts +2 -2
- package/src/core/plugins/tools/subagent.ts +18 -8
- package/src/core/services/agent-loop.ts +45 -43
- package/src/core/services/compaction.ts +289 -22
- package/src/core/services/llm.ts +6 -2
- package/src/core/services/subagents.ts +191 -3
- package/src/core/services/system-prompt.ts +35 -8
- package/src/core/services/tools.ts +2 -1
- package/src/core/types.ts +5 -0
- package/src/lib/compact-plan.test.mjs +62 -0
- package/src/lib/compact-plan.ts +188 -0
- package/src/lib/subagent-types.ts +54 -0
- package/src/lib/tool-meta.ts +40 -0
- package/src/store/settings.ts +3 -0
- package/src/store/ui.ts +12 -0
- package/src/types.ts +26 -0
- package/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 3.
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
3
|
+
## Realeased 3.2.0 - Final Version
|
|
4
|
+
|
|
5
|
+
- **Shell on every OS.** Commands run in bash (Linux), a login zsh/bash (macOS) or PowerShell/cmd (Windows) instead of a hard-coded `/bin/bash`; the agent is told which. `OPENSOL_SHELL` overrides. Plan mode has a read-only allowlist per shell family, process trees are killed correctly on Windows, and deploy builds use the same shell.
|
|
6
|
+
- **Smarter compaction.** Keeps the newest turns verbatim, merges earlier summaries, tracks changed files from tool calls, handles huge sessions in chunks, retries, falls back safely, also runs between tool rounds, and has `/compact [focus]`. Summaries show as a divider you can expand.
|
|
7
|
+
- **Better subagents.** Types `explore`/`research`/`review`, parallel calls, live progress in the tool card, round budget with forced report, context pruning, transient-error retry, and approval now actually applies to them. Subagents can no longer start subagents or receive tools outside their type.
|
|
8
|
+
- **New composer and home.** Compact box with the folder picker above it, a **+** menu (files, web search, MCP, skills link), plain-text Build/Plan, permission, effort and model controls whose panels flip and scroll to stay on screen, and a simpler new-session screen.
|
|
9
|
+
- Mascot is now optional: Settings → General → Show mascot (off by default).
|
|
10
|
+
- Cleanup: removed the legacy `src/agent/{compact,subagent,tools,prompt,model,approval}.ts` duplicates, a stale `server/package.json`, unused composer/ChatView code, and merge-conflict markers in `.gitignore` and `.npmignore`. Docs synced (`~/.opensol`, build workflow name, architecture).
|
|
11
|
+
- Agent loop: removed the 16-round cap (subagents now have their own round budget, see above). Provider errors now retry up to 5 times with backoff, only for transient errors (429 bursts, 5xx, overload, network); quota, credit and "limit reached" errors are never retried.
|
|
10
12
|
- Model deck: hovering no longer scrolls the list, which made rows jump.
|
|
11
13
|
- Plugins button disabled for maintenance.
|
|
12
14
|
- Skills: real skill folders (SKILL.md + scripts/references) installed by folder upload or npm, loaded on demand through the new `skill` tool. Built-in skills removed.
|
package/README.md
CHANGED
|
@@ -2,36 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
A local-first AI coding agent by OpenSoftX. OpenSol pairs a warm React chat interface with a zero-dependency Node daemon that owns the real workspace, shell, git, search, deploy and provider credentials on your machine.
|
|
4
4
|
|
|
5
|
-
The daemon binds to `127.0.0.1` only. It serves the prebuilt app from `dist/` and stores everything under `~/.
|
|
5
|
+
The daemon binds to `127.0.0.1` only. It serves the prebuilt app from `dist/` and stores everything under `~/.opensol`. API keys and hosting tokens are encrypted with AES-256-GCM using a local `master.key`; the browser only ever receives a masked hint.
|
|
6
6
|
|
|
7
|
-
## Run
|
|
7
|
+
## Run it
|
|
8
8
|
|
|
9
|
-
Requires Node.js 20 or newer
|
|
10
|
-
|
|
11
|
-
## Install globally via npm
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
npm install -g @bibobonking/opensol
|
|
9
|
+
Requires Node.js 20 or newer (the daemon itself has no runtime dependencies, except `fflate` for plugin packages).
|
|
15
10
|
|
|
16
11
|
```bash
|
|
17
|
-
npm
|
|
12
|
+
npm install -g @bibobonking/opensol # once
|
|
13
|
+
opensol start --open # or: npm start, from a checkout
|
|
18
14
|
```
|
|
15
|
+
|
|
19
16
|
```
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
opensol start [--port=4174] [--open] [--foreground]
|
|
18
|
+
opensol stop
|
|
19
|
+
opensol status
|
|
20
|
+
opensol open
|
|
21
|
+
opensol logs
|
|
25
22
|
```
|
|
26
23
|
|
|
27
24
|
On first launch, choose a real project folder, then add a provider key in **Settings → Models** and pick a live model. Everything else — workspace tree, editor, git, search, build/plan modes, subagents and deploys — runs through the local daemon.
|
|
28
25
|
|
|
26
|
+
Works on **Windows, macOS and Linux**. See *Shell* below for how commands run on each.
|
|
27
|
+
|
|
29
28
|
## What is in the app
|
|
30
29
|
|
|
31
30
|
- **Build and Plan modes.** Build can edit files and run commands; Plan is read-only investigation.
|
|
32
31
|
- **Live models and reasoning.** Model lists come from each provider; the models.dev catalog is only a fallback. Thinking is the provider's job: an effort control appears only when the selected model advertises effort levels or a token budget, and it is sent automatically.
|
|
33
32
|
- **Themes.** Light, Dark, Night Owl, Claude Code and Flame, plus System, which follows the OS preference. Syntax highlighting follows the theme.
|
|
34
|
-
- **Real tools.** Read/write/edit files, grep, list files, shell, git, web search, URL reading and
|
|
33
|
+
- **Real tools.** Read/write/edit files, grep, list files, shell, git, web search, URL reading, skills and read-only subagents. Each user turn renders as one answer, with consecutive tool rounds collapsed into a single “Used N tools” group.
|
|
34
|
+
- **New composer.** A compact box: the project folder sits above it, **+** adds files, toggles web search and Plan mode, opens MCP and switches skills. Permissions and effort are plain text at the bottom left (a panel opens on click); the model name is at the bottom right and opens the Model Deck (`Ctrl/⌘ M`).
|
|
35
|
+
- **Shell.** The `shell` tool runs in your default shell: bash/zsh (login shell) on Linux and macOS, PowerShell 7 or Windows PowerShell on Windows (`cmd` as a last resort). The agent is told which one in its system prompt. Override with `OPENSOL_SHELL=/path/to/shell`. Plan mode accepts only read-only commands in the matching syntax.
|
|
36
|
+
- **Smart compaction.** Near 85% of the context window (checked before a turn and between tool rounds), older turns are summarised while the newest ones stay verbatim. Earlier summaries are merged, not re-summarised; changed files are tracked from tool calls; if the model is unavailable a deterministic fallback keeps the session going. Run `/compact [focus]` to do it yourself.
|
|
37
|
+
- **Subagents.** `subagent` delegates read-only work to a separate context: `explore` (codebase), `research` (web + code) and `review` (bugs in a diff). Several calls in one message run in parallel, progress streams into the tool card, and each has a round budget and context pruning.
|
|
35
38
|
- **Turn queue.** A prompt sent while a turn is streaming waits its turn and runs next, instead of splitting into a second reply.
|
|
36
39
|
- **Local plugins.** Two plugin modes:
|
|
37
40
|
- **API v1 (sandboxed):** Install a package, review its declared workspace capabilities and HTTPS domains, preview in a sandbox, mark it Safe. Plugin code gets a restricted API (`registerCommand`, `registerPanel`, `registerTheme`, workspace read/write, HTTPS-only network to declared hosts).
|
|
@@ -41,7 +44,7 @@ On first launch, choose a real project folder, then add a provider key in **Sett
|
|
|
41
44
|
- **Deploy.** Cloudflare Pages, Netlify and Vercel, for the open workspace or another existing folder. Tokens stay in the daemon and are passed to CLIs through environment variables.
|
|
42
45
|
- **Local history.** Conversations, settings, workspaces and encrypted keys survive restarts.
|
|
43
46
|
|
|
44
|
-
Slash commands
|
|
47
|
+
Slash commands: `/search`, `/plan`, `/build`, `/compact`, `/new`, `/workspace`, `/deploy`, `/settings` and `/clear`.
|
|
45
48
|
|
|
46
49
|
## Development
|
|
47
50
|
|
|
@@ -71,8 +74,9 @@ OpenCode free-tier models only work inside OpenCode itself, so they are hidden h
|
|
|
71
74
|
TypeScript, React 19, Vite, Tailwind CSS, Zustand, direct provider adapters (OpenAI, Anthropic, Gemini, OpenCode and OpenAI-compatible endpoints), and a Node HTTP daemon with no runtime dependencies.
|
|
72
75
|
|
|
73
76
|
```
|
|
74
|
-
src/ React app,
|
|
75
|
-
server/ local daemon, encrypted store, workspace tools and deploy
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
src/ React app, Cordis kernel (src/core), stores, adapters and UI
|
|
78
|
+
server/ local daemon, encrypted store, workspace tools, shell, MCP and deploy
|
|
79
|
+
desktop/ Tauri wrapper
|
|
80
|
+
shared/ plugin package contract used by both sides
|
|
81
|
+
dist/ production build served by the daemon
|
|
78
82
|
```
|
package/desktop/README.md
CHANGED
|
@@ -33,7 +33,7 @@ cd desktop && npx @tauri-apps/cli@2 build
|
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
Installers appear in `desktop/src-tauri/target/release/bundle/`. Each OS has to be built on that
|
|
36
|
-
OS (Windows installers on Windows, macOS on macOS); `.github/workflows/
|
|
36
|
+
OS (Windows installers on Windows, macOS on macOS); `.github/workflows/build.yml` does all four
|
|
37
37
|
on GitHub Actions when you push a `v*` tag or run it manually.
|
|
38
38
|
|
|
39
39
|
For a quick run from source: `cd desktop/src-tauri && cargo run` (needs `dist/` built).
|