agent-tower 0.4.10 → 0.4.12-beta.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 +156 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +7 -1
- package/dist/app.js.map +1 -1
- package/dist/core/event-bus.d.ts +5 -0
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/routes/workspaces.js +14 -0
- package/dist/routes/workspaces.js.map +1 -1
- package/dist/services/hibernation-scheduler.d.ts +11 -0
- package/dist/services/hibernation-scheduler.d.ts.map +1 -0
- package/dist/services/hibernation-scheduler.js +49 -0
- package/dist/services/hibernation-scheduler.js.map +1 -0
- package/dist/services/session-manager.d.ts +3 -0
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/task.service.d.ts +2 -0
- package/dist/services/task.service.d.ts.map +1 -1
- package/dist/services/workspace.service.d.ts +80 -0
- package/dist/services/workspace.service.d.ts.map +1 -1
- package/dist/services/workspace.service.js +156 -10
- package/dist/services/workspace.service.js.map +1 -1
- package/dist/socket/socket-gateway.d.ts.map +1 -1
- package/dist/socket/socket-gateway.js +6 -1
- package/dist/socket/socket-gateway.js.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/web/assets/{AgentDemoPage-CB48v8IV.js → AgentDemoPage-BFrnOvUV.js} +1 -1
- package/dist/web/assets/{DemoPage-_dT9rdpV.js → DemoPage-DzKv8uDU.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-DtD_oirE.js → GeneralSettingsPage-Co-8z-sL.js} +1 -1
- package/dist/web/assets/{NotificationSettingsPage-DQqz8xJs.js → NotificationSettingsPage-Do3Og7G9.js} +1 -1
- package/dist/web/assets/{ProfileSettingsPage-BaFNyfse.js → ProfileSettingsPage-7rYry6Ql.js} +1 -1
- package/dist/web/assets/ProjectKanbanPage-wvZc6KmL.js +87 -0
- package/dist/web/assets/{ProjectSettingsPage-Cv6VpL1g.js → ProjectSettingsPage-7-FUoyM2.js} +1 -1
- package/dist/web/assets/{ProviderSettingsPage-BqmSJV2I.js → ProviderSettingsPage-DZsll4Bu.js} +1 -1
- package/dist/web/assets/{button-Cg3N0RX4.js → button-BCWr6Rvd.js} +1 -1
- package/dist/web/assets/{chevron-down-BZ2n6wh3.js → chevron-down-DanWbYmL.js} +1 -1
- package/dist/web/assets/{chevron-right-BrrhT2ph.js → chevron-right-DF-6zN98.js} +1 -1
- package/dist/web/assets/{circle-alert-a6g1jQyL.js → circle-alert-CFdGx6uD.js} +1 -1
- package/dist/web/assets/{circle-check-CQEg-cq1.js → circle-check-iVKaVABv.js} +1 -1
- package/dist/web/assets/{code-block-OCS4YCEC-C72vBOSD.js → code-block-OCS4YCEC-CC5lCZW2.js} +1 -1
- package/dist/web/assets/confirm-dialog-B6ScE3zf.js +1 -0
- package/dist/web/assets/{folder-picker-Dl5GZRtL.js → folder-picker-CmwjQXjK.js} +1 -1
- package/dist/web/assets/{index-D3_Vq2xm.js → index-bUdBNiUV.js} +2 -2
- package/dist/web/assets/{loader-circle-DRKF9OZx.js → loader-circle-CdakhgnX.js} +1 -1
- package/dist/web/assets/log-adapter-CeKrvZcz.js +1 -0
- package/dist/web/assets/{mermaid-NOHMQCX5-DyQsSSRd.js → mermaid-NOHMQCX5-DlkW-f-_.js} +63 -63
- package/dist/web/assets/{modal-wSbeXj_V.js → modal-DjFx0vpU.js} +1 -1
- package/dist/web/assets/{pencil-CT2HBX6f.js → pencil-BTHTFDLJ.js} +1 -1
- package/dist/web/assets/{rotate-ccw-DkZPjdAj.js → rotate-ccw-DfJiT691.js} +1 -1
- package/dist/web/assets/{select-BRJQTh28.js → select-6YNbjKSC.js} +1 -1
- package/dist/web/assets/{use-profiles-zSSuAJaA.js → use-profiles-cjE3ZHLR.js} +1 -1
- package/dist/web/assets/{use-providers-BfLpM8PB.js → use-providers-CRsJrkvm.js} +1 -1
- package/dist/web/index.html +1 -1
- package/node_modules/@agent-tower/shared/dist/socket/events.d.ts +6 -0
- package/node_modules/@agent-tower/shared/dist/socket/events.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/socket/events.js +1 -0
- package/node_modules/@agent-tower/shared/dist/socket/events.js.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.d.ts +4 -1
- package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.js +1 -0
- package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
- package/package.json +9 -1
- package/prisma/schema.prisma +2 -1
- package/dist/web/assets/ProjectKanbanPage-DNCKy0g4.js +0 -87
- package/dist/web/assets/confirm-dialog-DmuQeQ0J.js +0 -1
- package/dist/web/assets/log-adapter-50wgehrc.js +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
**English** | [简体中文](./README.zh-CN.md)
|
|
2
|
+
|
|
3
|
+
# Agent Tower
|
|
4
|
+
|
|
5
|
+
> Too many terminal sessions (Claude Code / Codex ...) open? Here's their command center.
|
|
6
|
+
|
|
7
|
+
## Why I Built This
|
|
8
|
+
|
|
9
|
+
When I first started using Claude Code, I'd open one terminal and sit there, bored, watching it spit out characters. Then I got clever — opened multiple terminals, ran different tasks at the same time, even worked on different projects simultaneously. Productivity went through the roof. I felt like an absolute genius.
|
|
10
|
+
|
|
11
|
+
That lasted about two days before the problems hit:
|
|
12
|
+
|
|
13
|
+
- **Visual chaos**: My desktop was covered in Claude Code terminals. I constantly lost track of which window was running which task.
|
|
14
|
+
- **Edit conflicts**: Multiple tasks touching the same files meant merge conflicts everywhere. I tried Git Worktree to isolate each task, but manually running commands to split, rebase, and merge was still a pain.
|
|
15
|
+
- **No mobile access**: Sitting in front of the computer staring at terminals gets old. When I'm chilling on the balcony with my phone, why can't I check on how my AI workhorses are doing?
|
|
16
|
+
- **Token bills**: More tasks meant bigger bills, and it stung. Plenty of simple tasks could run on cheaper models, but manually switching configs was a hassle — even with tools like ccswitch, you have to wait for the current task to finish before switching.
|
|
17
|
+
|
|
18
|
+
So Agent Tower was born out of necessity — a single dashboard that brings all your agent tasks, terminals, and code changes into one interface. Auto-creates isolated branches, lets you pick providers per task, works from your phone, and notifies you when it's time to review.
|
|
19
|
+
|
|
20
|
+
## Core Features
|
|
21
|
+
|
|
22
|
+
### 🎯 One Dashboard for All Agents
|
|
23
|
+
|
|
24
|
+
No more juggling terminal windows. All projects, all tasks, all agents — one page. Create a task, pick an agent, hit start — output, progress, and code changes are visible in real time. When a task finishes, it automatically moves to "Ready for Review". You decide whether to merge.
|
|
25
|
+
|
|
26
|
+
### 🔀 Automatic Git Worktree Isolation
|
|
27
|
+
|
|
28
|
+
Each task gets its own Git branch automatically. Agents work in isolated environments, eliminating code conflicts at the root. One-click merge back to main, with line-by-line review in the diff viewer.
|
|
29
|
+
|
|
30
|
+
### 💰 Pick Providers Per Task, Save Money Effortlessly
|
|
31
|
+
|
|
32
|
+
Each task can use a different provider. Throw translation tasks to MiniMax, planning to Opus, execution to Codex — each in their lane, no waiting for one task to finish before switching. Agent Tower helps you spend smart.
|
|
33
|
+
|
|
34
|
+
### 📱 Monitor Progress from Your Phone
|
|
35
|
+
|
|
36
|
+
One-click Cloudflare tunnel for remote access — open the dashboard right in your phone's browser. Away from your desk? Still in the loop. Task done? Desktop notification or Lark webhook lets you know it's review time.
|
|
37
|
+
|
|
38
|
+
### 🤖 Supports Major AI Agents
|
|
39
|
+
|
|
40
|
+
- **Claude Code** · **Gemini CLI** · **Cursor Agent** · **Codex**
|
|
41
|
+
|
|
42
|
+
No vendor lock-in. Use whichever agent you prefer. Each supports custom Profile variants.
|
|
43
|
+
|
|
44
|
+
### 📡 MCP Protocol Integration
|
|
45
|
+
|
|
46
|
+
Built-in MCP server lets agents read the task board, claim tasks, and report progress directly. You're not just managing agents — they can collaborate proactively.
|
|
47
|
+
|
|
48
|
+
## Getting Started
|
|
49
|
+
|
|
50
|
+
**Recommended: global install** (simplest — one command and you're done)
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
npm install -g agent-tower
|
|
54
|
+
agent-tower
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Open `http://localhost:12580` and start using it.
|
|
58
|
+
|
|
59
|
+
> Prerequisite: Node.js >= 18
|
|
60
|
+
|
|
61
|
+
### Configure MCP (Optional)
|
|
62
|
+
|
|
63
|
+
Let Claude Code operate the task board directly:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"agent-tower": {
|
|
69
|
+
"command": "agent-tower-mcp",
|
|
70
|
+
"args": []
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Development from Source
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
git clone https://github.com/agent-tower/core.git
|
|
80
|
+
cd agent-tower
|
|
81
|
+
pnpm setup # Install deps + build shared package
|
|
82
|
+
pnpm dev # Start all services in dev mode
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Architecture Overview
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
┌─────────────────────────────────────────────────┐
|
|
89
|
+
│ Browser (React) │
|
|
90
|
+
│ Kanban ─ Terminal ─ Code Editor ─ Git Changes │
|
|
91
|
+
│ TanStack Query (server cache) + Zustand (UI) │
|
|
92
|
+
└──────────────────┬──────────────────────────────┘
|
|
93
|
+
│ HTTP REST + Socket.IO (/events)
|
|
94
|
+
┌──────────────────┴──────────────────────────────┐
|
|
95
|
+
│ Fastify Server │
|
|
96
|
+
│ ┌───────────┐ ┌──────────┐ ┌────────────────┐ │
|
|
97
|
+
│ │ REST API │ │ Socket.IO│ │ MCP Server │ │
|
|
98
|
+
│ │ (16 routes)│ │ (realtime)│ │ (agent integ.) │ │
|
|
99
|
+
│ └─────┬─────┘ └────┬─────┘ └───────┬────────┘ │
|
|
100
|
+
│ └──────┬──────┘ │ │
|
|
101
|
+
│ ┌──────┴──────┐ │ │
|
|
102
|
+
│ │ Services │ │ │
|
|
103
|
+
│ │ Session Mgmt│ │ │
|
|
104
|
+
│ │ Workspace │ │ │
|
|
105
|
+
│ │ Git/Worktree│ │ │
|
|
106
|
+
│ │ Notif/Tunnel│ │ │
|
|
107
|
+
│ └──────┬──────┘ │ │
|
|
108
|
+
│ ┌──────┴──────┐ │ │
|
|
109
|
+
│ │AgentPipeline│ │ │
|
|
110
|
+
│ │ PTY + Parser│ │ │
|
|
111
|
+
│ │ + MsgStore │ │ │
|
|
112
|
+
│ └──────┬──────┘ │ │
|
|
113
|
+
│ │ node-pty │ │
|
|
114
|
+
│ ┌──────┴──────┐ │ │
|
|
115
|
+
│ │ Executors │ │ │
|
|
116
|
+
│ │ Claude Code │ │ │
|
|
117
|
+
│ │ Gemini CLI │ │ │
|
|
118
|
+
│ │ Cursor Agent│ │ │
|
|
119
|
+
│ │ Codex │ │ │
|
|
120
|
+
│ └─────────────┘ │ │
|
|
121
|
+
│ │ │
|
|
122
|
+
│ ┌─────────────┐ │ │
|
|
123
|
+
│ │ SQLite │◄──────────────┘ │
|
|
124
|
+
│ │ (Prisma ORM)│ │
|
|
125
|
+
│ └─────────────┘ │
|
|
126
|
+
└─────────────────────────────────────────────────┘
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Design Philosophy
|
|
130
|
+
|
|
131
|
+
**Agents as Team Members**: Agent Tower treats AI agents like team members. Projects are workspaces, tasks are work items, agents are executors. Manage assignments via the kanban board, monitor execution through terminals, review results through Git integration.
|
|
132
|
+
|
|
133
|
+
**Pipeline Architecture**: Each agent session is managed by an AgentPipeline with three core components:
|
|
134
|
+
- **PTY**: Pseudo-terminal for interacting with the agent CLI process
|
|
135
|
+
- **Parser**: Output parser that structures raw agent output into tool calls, code changes, etc.
|
|
136
|
+
- **MsgStore**: Message store using JSON Patch for incremental sync to the frontend
|
|
137
|
+
|
|
138
|
+
**Worktree Isolation**: Each task creates an independent Git Worktree, so agents work on isolated branches — preventing conflicts when multiple agents modify code simultaneously.
|
|
139
|
+
|
|
140
|
+
## Tech Stack
|
|
141
|
+
|
|
142
|
+
| Layer | Technology |
|
|
143
|
+
|-------|-----------|
|
|
144
|
+
| Frontend | React 19 + Vite 7 + TypeScript 5 |
|
|
145
|
+
| Styling | TailwindCSS v4 + shadcn/ui (Radix UI) |
|
|
146
|
+
| State | TanStack Query v5 + Zustand v5 |
|
|
147
|
+
| Terminal | xterm.js 5 + Monaco Editor |
|
|
148
|
+
| Backend | Fastify 4 + Socket.IO 4 |
|
|
149
|
+
| Database | Prisma 5 + SQLite |
|
|
150
|
+
| Process | node-pty |
|
|
151
|
+
| Protocol | MCP (Model Context Protocol) |
|
|
152
|
+
| Package | pnpm monorepo |
|
|
153
|
+
|
|
154
|
+
## License
|
|
155
|
+
|
|
156
|
+
Licensed under the Apache License, Version 2.0. See [LICENSE](./LICENSE) for details.
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAkBA,wBAAsB,QAAQ,qUAmE7B"}
|
package/dist/app.js
CHANGED
|
@@ -8,8 +8,10 @@ import { fileURLToPath } from 'node:url';
|
|
|
8
8
|
import { registerRoutes } from './routes/index.js';
|
|
9
9
|
import { initializeSocket, closeSocket } from './socket/index.js';
|
|
10
10
|
import { WorkspaceService } from './services/workspace.service.js';
|
|
11
|
+
import { HibernationScheduler } from './services/hibernation-scheduler.js';
|
|
11
12
|
import { TunnelService } from './services/tunnel.service.js';
|
|
12
13
|
import { tunnelAuthHook } from './middleware/tunnel-auth.js';
|
|
14
|
+
let hibernationScheduler = null;
|
|
13
15
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
14
16
|
export async function buildApp() {
|
|
15
17
|
const app = Fastify({
|
|
@@ -52,9 +54,13 @@ export async function buildApp() {
|
|
|
52
54
|
WorkspaceService.pruneAllWorktrees().catch((err) => {
|
|
53
55
|
app.log.warn(`Worktree prune on startup failed: ${err instanceof Error ? err.message : err}`);
|
|
54
56
|
});
|
|
57
|
+
// 启动空闲 workspace 自动休眠调度器
|
|
58
|
+
hibernationScheduler = new HibernationScheduler();
|
|
59
|
+
hibernationScheduler.start();
|
|
55
60
|
});
|
|
56
|
-
// 服务器关闭时清理 Socket.IO 和
|
|
61
|
+
// 服务器关闭时清理 Socket.IO、Tunnel 和 HibernationScheduler
|
|
57
62
|
app.addHook('onClose', async () => {
|
|
63
|
+
hibernationScheduler?.stop();
|
|
58
64
|
TunnelService.stop();
|
|
59
65
|
await closeSocket();
|
|
60
66
|
});
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/core/event-bus.d.ts
CHANGED
|
@@ -56,6 +56,11 @@ type EventMap = {
|
|
|
56
56
|
taskId: string;
|
|
57
57
|
commitMessage: string | null;
|
|
58
58
|
};
|
|
59
|
+
'workspace:hibernated': {
|
|
60
|
+
workspaceId: string;
|
|
61
|
+
taskId: string;
|
|
62
|
+
projectId: string;
|
|
63
|
+
};
|
|
59
64
|
};
|
|
60
65
|
type EventName = keyof EventMap;
|
|
61
66
|
type Handler<K extends EventName> = (payload: EventMap[K]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG;IACd,gBAAgB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IACzD,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,mBAAmB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,mBAAmB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtD,iBAAiB,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,eAAe,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3D,0BAA0B,EAAE;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kCAAkC,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,KAAK,SAAS,GAAG,MAAM,QAAQ,CAAC;AAChC,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEnE;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAyD;IAE1E,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAM5D,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAS7D,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;CAOhE;AAED,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,GAAG;IACd,gBAAgB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IACzD,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,mBAAmB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,mBAAmB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,cAAc,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAEtD,iBAAiB,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,eAAe,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAE3D,0BAA0B,EAAE;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,kCAAkC,EAAE;QAClC,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,sBAAsB,EAAE;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,KAAK,SAAS,GAAG,MAAM,QAAQ,CAAC;AAChC,KAAK,OAAO,CAAC,CAAC,SAAS,SAAS,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEnE;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAyD;IAE1E,EAAE,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAM5D,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAS7D,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI;CAOhE;AAED,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAsCA;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,SAAS,GAAG,IAAI,GAAG,EAA8C,CAAC;IAE1E,EAAE,CAAsB,KAAQ,EAAE,OAAmB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QACnD,GAAG,CAAC,GAAG,CAAC,OAAqC,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,GAAG,CAAsB,KAAQ,EAAE,OAAmB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,GAAG,CAAC,MAAM,CAAC,OAAqC,CAAC,CAAC;QAClD,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,IAAI,CAAsB,KAAQ,EAAE,OAAoB;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,OAAO,IAAI,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAsD/C,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAsD/C,wBAAsB,eAAe,CAAC,GAAG,EAAE,eAAe,iBA2NzD"}
|
|
@@ -163,10 +163,24 @@ export async function workspaceRoutes(app) {
|
|
|
163
163
|
await workspaceService.abortOperation(request.params.id);
|
|
164
164
|
return { success: true };
|
|
165
165
|
});
|
|
166
|
+
// ── 唤醒休眠工作空间 ────────────────────────────────────────────────────────
|
|
167
|
+
app.post('/workspaces/:id/reactivate', async (request) => {
|
|
168
|
+
const workspace = await workspaceService.reactivate(request.params.id);
|
|
169
|
+
return parseWorkspaceSessions(workspace);
|
|
170
|
+
});
|
|
166
171
|
// ── 系统清理 ────────────────────────────────────────────────────────────────
|
|
167
172
|
app.post('/system/cleanup', async () => {
|
|
168
173
|
const cleaned = await workspaceService.cleanup();
|
|
169
174
|
return { success: true, cleaned };
|
|
170
175
|
});
|
|
176
|
+
// ── 手动触发空闲休眠 ──────────────────────────────────────────────────────
|
|
177
|
+
const hibernateIdleSchema = z.object({
|
|
178
|
+
idleThresholdHours: z.number().min(1).optional(),
|
|
179
|
+
});
|
|
180
|
+
app.post('/system/hibernate-idle', async (request) => {
|
|
181
|
+
const body = hibernateIdleSchema.parse(request.body || {});
|
|
182
|
+
const hibernated = await workspaceService.hibernateIdle(body.idleThresholdHours);
|
|
183
|
+
return { success: true, hibernated };
|
|
184
|
+
});
|
|
171
185
|
}
|
|
172
186
|
//# sourceMappingURL=workspaces.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class HibernationScheduler {
|
|
2
|
+
private readonly scanIntervalMs;
|
|
3
|
+
private readonly idleThresholdHours;
|
|
4
|
+
private timer;
|
|
5
|
+
private running;
|
|
6
|
+
constructor(scanIntervalMs?: number, idleThresholdHours?: number);
|
|
7
|
+
start(): void;
|
|
8
|
+
stop(): void;
|
|
9
|
+
private scan;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=hibernation-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hibernation-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/hibernation-scheduler.ts"],"names":[],"mappings":"AAKA,qBAAa,oBAAoB;IAK7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IALrC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;gBAGL,cAAc,SAA2B,EACzC,kBAAkB,SAA+B;IAGpE,KAAK,IAAI,IAAI;IAqBb,IAAI,IAAI,IAAI;YAQE,IAAI;CAWnB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { WorkspaceService } from './workspace.service.js';
|
|
2
|
+
const DEFAULT_SCAN_INTERVAL_MS = 60 * 60 * 1000; // 1 hour
|
|
3
|
+
const DEFAULT_IDLE_THRESHOLD_HOURS = 24;
|
|
4
|
+
export class HibernationScheduler {
|
|
5
|
+
scanIntervalMs;
|
|
6
|
+
idleThresholdHours;
|
|
7
|
+
timer = null;
|
|
8
|
+
running = false;
|
|
9
|
+
constructor(scanIntervalMs = DEFAULT_SCAN_INTERVAL_MS, idleThresholdHours = DEFAULT_IDLE_THRESHOLD_HOURS) {
|
|
10
|
+
this.scanIntervalMs = scanIntervalMs;
|
|
11
|
+
this.idleThresholdHours = idleThresholdHours;
|
|
12
|
+
}
|
|
13
|
+
start() {
|
|
14
|
+
if (this.timer)
|
|
15
|
+
return;
|
|
16
|
+
console.log(`[HibernationScheduler] Started (interval: ${this.scanIntervalMs / 60000}min, threshold: ${this.idleThresholdHours}h)`);
|
|
17
|
+
this.timer = setInterval(() => {
|
|
18
|
+
this.scan().catch((err) => {
|
|
19
|
+
console.error('[HibernationScheduler] Scan failed:', err);
|
|
20
|
+
});
|
|
21
|
+
}, this.scanIntervalMs);
|
|
22
|
+
// Run initial scan after a short delay to let services initialize
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
this.scan().catch((err) => {
|
|
25
|
+
console.error('[HibernationScheduler] Initial scan failed:', err);
|
|
26
|
+
});
|
|
27
|
+
}, 10_000);
|
|
28
|
+
}
|
|
29
|
+
stop() {
|
|
30
|
+
if (this.timer) {
|
|
31
|
+
clearInterval(this.timer);
|
|
32
|
+
this.timer = null;
|
|
33
|
+
console.log('[HibernationScheduler] Stopped');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async scan() {
|
|
37
|
+
if (this.running)
|
|
38
|
+
return;
|
|
39
|
+
this.running = true;
|
|
40
|
+
try {
|
|
41
|
+
const service = new WorkspaceService();
|
|
42
|
+
await service.hibernateIdle(this.idleThresholdHours);
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
this.running = false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=hibernation-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hibernation-scheduler.js","sourceRoot":"","sources":["../../src/services/hibernation-scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAC1D,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC,MAAM,OAAO,oBAAoB;IAKZ;IACA;IALX,KAAK,GAA0C,IAAI,CAAC;IACpD,OAAO,GAAG,KAAK,CAAC;IAExB,YACmB,iBAAiB,wBAAwB,EACzC,qBAAqB,4BAA4B;QADjD,mBAAc,GAAd,cAAc,CAA2B;QACzC,uBAAkB,GAAlB,kBAAkB,CAA+B;IACjE,CAAC;IAEJ,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QAEvB,OAAO,CAAC,GAAG,CACT,6CAA6C,IAAI,CAAC,cAAc,GAAG,KAAK,mBAAmB,IAAI,CAAC,kBAAkB,IAAI,CACvH,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAExB,kEAAkE;QAClE,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxB,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACvC,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -20,6 +20,7 @@ export declare class SessionManager {
|
|
|
20
20
|
baseBranch: string | null;
|
|
21
21
|
worktreePath: string;
|
|
22
22
|
commitMessage: string | null;
|
|
23
|
+
hibernatedAt: Date | null;
|
|
23
24
|
};
|
|
24
25
|
processes: {
|
|
25
26
|
id: string;
|
|
@@ -68,6 +69,7 @@ export declare class SessionManager {
|
|
|
68
69
|
baseBranch: string | null;
|
|
69
70
|
worktreePath: string;
|
|
70
71
|
commitMessage: string | null;
|
|
72
|
+
hibernatedAt: Date | null;
|
|
71
73
|
};
|
|
72
74
|
} & {
|
|
73
75
|
id: string;
|
|
@@ -94,6 +96,7 @@ export declare class SessionManager {
|
|
|
94
96
|
baseBranch: string | null;
|
|
95
97
|
worktreePath: string;
|
|
96
98
|
commitMessage: string | null;
|
|
99
|
+
hibernatedAt: Date | null;
|
|
97
100
|
};
|
|
98
101
|
} & {
|
|
99
102
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA6C,MAAM,mBAAmB,CAAC;AAczF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,qBAAa,cAAc;IAQb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAPrC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;gBAEvB,QAAQ,EAAE,QAAQ;IAuCzC,QAAQ,CAAC,EAAE,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAA6C,MAAM,mBAAmB,CAAC;AAczF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,qBAAa,cAAc;IAQb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAPrC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;gBAEvB,QAAQ,EAAE,QAAQ;IAuCzC,QAAQ,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOnB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAkB,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;IAalH,KAAK,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkEhB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmJ5D,IAAI,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;IAuCrB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3D;;OAEG;IACH,UAAU,IAAI,IAAI;IAclB,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,YAAY;IAapB;;;;OAIG;YACW,iBAAiB;YA6BjB,wBAAwB;IAItC,OAAO,CAAC,uBAAuB;YAyBjB,oBAAoB;IA8FlC,OAAO,CAAC,6BAA6B;IAUrC;;;;;;;OAOG;YACW,oBAAoB;IA2ClC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;;;;;;OAOG;YACW,mBAAmB;IAuCjC;;;;OAIG;YACW,iBAAiB;CAqDhC"}
|
|
@@ -50,6 +50,7 @@ export declare class TaskService {
|
|
|
50
50
|
baseBranch: string | null;
|
|
51
51
|
worktreePath: string;
|
|
52
52
|
commitMessage: string | null;
|
|
53
|
+
hibernatedAt: Date | null;
|
|
53
54
|
}[];
|
|
54
55
|
} & {
|
|
55
56
|
id: string;
|
|
@@ -96,6 +97,7 @@ export declare class TaskService {
|
|
|
96
97
|
baseBranch: string | null;
|
|
97
98
|
worktreePath: string;
|
|
98
99
|
commitMessage: string | null;
|
|
100
|
+
hibernatedAt: Date | null;
|
|
99
101
|
})[];
|
|
100
102
|
} & {
|
|
101
103
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../src/services/task.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkD,MAAM,mBAAmB,CAAC;AAM/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc;IAGjD;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,eAAoB
|
|
1
|
+
{"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../src/services/task.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAkD,MAAM,mBAAmB,CAAC;AAM/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,eAAe;IACvB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,qBAAa,WAAW;IAEpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc;IAGjD;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,eAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuDrE;;OAEG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAazB;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe;;;;;;;;;;;IA2BtD;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe;;;;;;;;;;;IAgB/C;;;OAGG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU;;;;;;;;;;;IA2CjD;;;OAGG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU;;;;;;;;;;;IAgCtE;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM;IAsDvB;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM;;;;;;;;IAgD3C;;;;;;;OAOG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;IA+CtB;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAGzE"}
|
|
@@ -55,6 +55,7 @@ export declare class WorkspaceService {
|
|
|
55
55
|
baseBranch: string | null;
|
|
56
56
|
worktreePath: string;
|
|
57
57
|
commitMessage: string | null;
|
|
58
|
+
hibernatedAt: Date | null;
|
|
58
59
|
}) | null>;
|
|
59
60
|
/**
|
|
60
61
|
* 获取 Task 下所有 Workspace
|
|
@@ -84,6 +85,7 @@ export declare class WorkspaceService {
|
|
|
84
85
|
baseBranch: string | null;
|
|
85
86
|
worktreePath: string;
|
|
86
87
|
commitMessage: string | null;
|
|
88
|
+
hibernatedAt: Date | null;
|
|
87
89
|
})[]>;
|
|
88
90
|
/**
|
|
89
91
|
* 创建 Workspace
|
|
@@ -146,6 +148,7 @@ export declare class WorkspaceService {
|
|
|
146
148
|
baseBranch: string | null;
|
|
147
149
|
worktreePath: string;
|
|
148
150
|
commitMessage: string | null;
|
|
151
|
+
hibernatedAt: Date | null;
|
|
149
152
|
}>;
|
|
150
153
|
/**
|
|
151
154
|
* 删除 Workspace
|
|
@@ -231,7 +234,84 @@ export declare class WorkspaceService {
|
|
|
231
234
|
baseBranch: string | null;
|
|
232
235
|
worktreePath: string;
|
|
233
236
|
commitMessage: string | null;
|
|
237
|
+
hibernatedAt: Date | null;
|
|
234
238
|
}>;
|
|
239
|
+
/**
|
|
240
|
+
* 休眠单个 workspace:auto-commit dirty changes → 删除 worktree 目录 → 标记 HIBERNATED
|
|
241
|
+
* Branch 保留,可随时通过 reactivate() 恢复。
|
|
242
|
+
*/
|
|
243
|
+
hibernate(id: string): Promise<void>;
|
|
244
|
+
/**
|
|
245
|
+
* 唤醒休眠的 workspace:从 branch 重建 worktree → 复制文件 → 执行 setup → 恢复 ACTIVE
|
|
246
|
+
*/
|
|
247
|
+
reactivate(id: string): Promise<{
|
|
248
|
+
task: {
|
|
249
|
+
project: {
|
|
250
|
+
name: string;
|
|
251
|
+
repoDeletedAt: Date | null;
|
|
252
|
+
archivedAt: Date | null;
|
|
253
|
+
repoRemoteUrl: string | null;
|
|
254
|
+
id: string;
|
|
255
|
+
description: string | null;
|
|
256
|
+
repoPath: string;
|
|
257
|
+
mainBranch: string;
|
|
258
|
+
copyFiles: string | null;
|
|
259
|
+
setupScript: string | null;
|
|
260
|
+
quickCommands: string | null;
|
|
261
|
+
createdAt: Date;
|
|
262
|
+
updatedAt: Date;
|
|
263
|
+
};
|
|
264
|
+
} & {
|
|
265
|
+
id: string;
|
|
266
|
+
description: string | null;
|
|
267
|
+
createdAt: Date;
|
|
268
|
+
updatedAt: Date;
|
|
269
|
+
title: string;
|
|
270
|
+
status: string;
|
|
271
|
+
priority: number;
|
|
272
|
+
position: number;
|
|
273
|
+
projectId: string;
|
|
274
|
+
};
|
|
275
|
+
sessions: {
|
|
276
|
+
id: string;
|
|
277
|
+
createdAt: Date;
|
|
278
|
+
updatedAt: Date;
|
|
279
|
+
status: string;
|
|
280
|
+
workspaceId: string;
|
|
281
|
+
agentType: string;
|
|
282
|
+
variant: string;
|
|
283
|
+
providerId: string | null;
|
|
284
|
+
prompt: string;
|
|
285
|
+
purpose: string;
|
|
286
|
+
logSnapshot: string | null;
|
|
287
|
+
tokenUsage: string | null;
|
|
288
|
+
}[];
|
|
289
|
+
} & {
|
|
290
|
+
id: string;
|
|
291
|
+
createdAt: Date;
|
|
292
|
+
updatedAt: Date;
|
|
293
|
+
status: string;
|
|
294
|
+
taskId: string;
|
|
295
|
+
branchName: string;
|
|
296
|
+
baseBranch: string | null;
|
|
297
|
+
worktreePath: string;
|
|
298
|
+
commitMessage: string | null;
|
|
299
|
+
hibernatedAt: Date | null;
|
|
300
|
+
}>;
|
|
301
|
+
/**
|
|
302
|
+
* 批量休眠空闲 workspace:
|
|
303
|
+
* - ACTIVE 状态
|
|
304
|
+
* - 没有运行中的 session
|
|
305
|
+
* - task 状态不是 IN_PROGRESS / IN_REVIEW
|
|
306
|
+
* - 超过 idleThresholdHours 未活动
|
|
307
|
+
*
|
|
308
|
+
* @returns 休眠的 workspace 数量
|
|
309
|
+
*/
|
|
310
|
+
hibernateIdle(idleThresholdHours?: number): Promise<number>;
|
|
311
|
+
/**
|
|
312
|
+
* Auto-commit all changes in a worktree directory to prevent data loss.
|
|
313
|
+
*/
|
|
314
|
+
private autoCommitIfDirty;
|
|
235
315
|
/**
|
|
236
316
|
* 清理所有 ABANDONED/MERGED 状态且关联 Task 为 DONE 的 Workspace
|
|
237
317
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.service.d.ts","sourceRoot":"","sources":["../../src/services/workspace.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workspace.service.d.ts","sourceRoot":"","sources":["../../src/services/workspace.service.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAU9D,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO,CAAC,aAAa;IASf,QAAQ,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOzB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;IAejC;;;;;;;;OAQG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgGhD;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM;IA4CjB,OAAO,CAAC,EAAE,EAAE,MAAM;IAsBxB;;OAEG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvC;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiB3D;;OAEG;IACG,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/C;;;;;OAKG;IACG,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8ChE;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwCxB;;;OAGG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmE1C;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsC3B;;;;;;;;OAQG;IACG,aAAa,CAAC,kBAAkB,SAA+B,GAAG,OAAO,CAAC,MAAM,CAAC;IAuCvF;;OAEG;YACW,iBAAiB;IAoB/B;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA2ChC;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;YACW,cAAc;IAyC5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAmBvB;;OAEG;WACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAchD"}
|