@prestyj/cli 5.22.2 → 5.24.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 +2 -2
- package/dist/app-sidecar.js +19 -7
- package/dist/app-sidecar.js.map +1 -1
- package/dist/cli/auth.js +1 -1
- package/dist/cli.js +3 -3
- package/dist/core/agent-session.d.ts +2 -2
- package/dist/core/agent-session.js +2 -2
- package/dist/core/auth-providers.js +1 -1
- package/dist/core/auth-providers.js.map +1 -1
- package/dist/core/worktree-setup.d.ts +59 -0
- package/dist/core/worktree-setup.js +224 -0
- package/dist/core/worktree-setup.js.map +1 -0
- package/dist/core/worktree.d.ts +19 -5
- package/dist/core/worktree.js +14 -11
- package/dist/core/worktree.js.map +1 -1
- package/dist/tools/subagent.js +17 -0
- package/dist/tools/subagent.js.map +1 -1
- package/dist/ui/App.js +7 -7
- package/dist/ui/App.js.map +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -74,13 +74,13 @@ Switch mid-conversation with `/model`. Not locked to anyone.
|
|
|
74
74
|
| **Moonshot** | Kimi K3, Kimi K2.7 Code | OAuth or API key |
|
|
75
75
|
| **Z.AI (GLM)** | GLM-5.3, GLM-5.3-Flash (image) | API key |
|
|
76
76
|
| **MiniMax** | MiniMax M3 (image + video) | API key |
|
|
77
|
-
| **Xiaomi (MiMo)** | MiMo-V2.
|
|
77
|
+
| **Xiaomi (MiMo)** | MiMo-V2.6-Pro + V2.6-Flash (image + video), V2.6-Pro-UltraSpeed | API key |
|
|
78
78
|
| **DeepSeek** | DeepSeek V4 Pro, V4 Flash | API key |
|
|
79
79
|
| **OpenRouter** | Qwen3.6-Plus + multi-provider gateway | API key |
|
|
80
80
|
|
|
81
81
|
The same conversation, the same tools, the same project context — only the model changes. Use a strong reasoning model when you need it, swap to a fast cheap one for grunt work, never restart your session.
|
|
82
82
|
|
|
83
|
-
**Attachments.** Drag, paste, or type a path to attach images and video in the chat input. Video is sent natively to models that support it (Gemini 3.x, Kimi K3/K2.7 Code, MiniMax M3, MiMo-V2.
|
|
83
|
+
**Attachments.** Drag, paste, or type a path to attach images and video in the chat input. Video is sent natively to models that support it (Gemini 3.x, Kimi K3/K2.7 Code, MiniMax M3, MiMo-V2.6-Pro/Flash); for other models the video is saved to a temp file and the model is told to inspect it with ffmpeg or its own tools.
|
|
84
84
|
|
|
85
85
|
---
|
|
86
86
|
|
package/dist/app-sidecar.js
CHANGED
|
@@ -29,6 +29,7 @@ import { RunClaim } from "./core/run-claim.js";
|
|
|
29
29
|
import { CHAT_AGENT_IDS, chatAgentSessionsDir, createChatAgent, parseChatAgentId, switchChatAgent, } from "./chat-agents/index.js";
|
|
30
30
|
import { buildJiwaTools, JiwaStore } from "./chat-agents/jiwa.js";
|
|
31
31
|
import { createWorktree, removeWorktree, sweepWorktrees, worktreeStatuses, } from "./core/worktree.js";
|
|
32
|
+
import { prepareWorktree } from "./core/worktree-setup.js";
|
|
32
33
|
import { buildMemoryTools, MemoryStore } from "./chat-agents/memory.js";
|
|
33
34
|
import { buildNolanSystemPrompt, buildNolanAutopilotSystemPrompt } from "./core/nolan-prompt.js";
|
|
34
35
|
import { buildNolanDigest, buildNolanAutopilotContext, buildNolanAutopilotPlanContext, } from "./core/nolan-context.js";
|
|
@@ -3047,10 +3048,16 @@ async function createSession(deps, opts) {
|
|
|
3047
3048
|
// itself, so opening this from an already-linked worktree still branches
|
|
3048
3049
|
// off the real repo rather than nesting.
|
|
3049
3050
|
//
|
|
3050
|
-
//
|
|
3051
|
-
//
|
|
3052
|
-
//
|
|
3053
|
-
//
|
|
3051
|
+
// A dirty main checkout is fine and expected here: a second window is only
|
|
3052
|
+
// ever opened while the first window's agent is mid-edit. The copy forks
|
|
3053
|
+
// from the last commit and `git worktree add` leaves the main tree
|
|
3054
|
+
// untouched, so nothing is stranded.
|
|
3055
|
+
//
|
|
3056
|
+
// The response waits for `prepareWorktree`, which can run a package install
|
|
3057
|
+
// and take minutes. That is deliberate — an agent handed a copy with no
|
|
3058
|
+
// node_modules reports a broken project — so the callers set a long
|
|
3059
|
+
// timeout. A failed install is reported IN the 200 body, not as an error:
|
|
3060
|
+
// the worktree exists either way and destroying it would lose the branch.
|
|
3054
3061
|
if (method === "POST" && url === "/worktree") {
|
|
3055
3062
|
void readBody(req, res).then(async (raw) => {
|
|
3056
3063
|
if (raw === null)
|
|
@@ -3074,12 +3081,17 @@ async function createSession(deps, opts) {
|
|
|
3074
3081
|
branch: body.branch?.trim() || undefined,
|
|
3075
3082
|
baseRef: body.baseRef?.trim() || undefined,
|
|
3076
3083
|
});
|
|
3077
|
-
|
|
3084
|
+
const setup = await prepareWorktree({
|
|
3085
|
+
mainRoot: created.mainRoot,
|
|
3086
|
+
worktreePath: created.path,
|
|
3087
|
+
skipInstall: body.skipInstall === true,
|
|
3088
|
+
});
|
|
3089
|
+
json(res, 200, { ...created, setup });
|
|
3078
3090
|
}
|
|
3079
3091
|
catch (err) {
|
|
3080
3092
|
const message = err instanceof Error ? err.message : String(err);
|
|
3081
|
-
//
|
|
3082
|
-
const expected = message.includes("
|
|
3093
|
+
// Not-a-repo is the user's to resolve, not a bug.
|
|
3094
|
+
const expected = message.includes("Not a git repository");
|
|
3083
3095
|
json(res, expected ? 409 : 500, { error: message });
|
|
3084
3096
|
}
|
|
3085
3097
|
});
|