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.
Files changed (69) hide show
  1. package/README.md +156 -0
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +7 -1
  4. package/dist/app.js.map +1 -1
  5. package/dist/core/event-bus.d.ts +5 -0
  6. package/dist/core/event-bus.d.ts.map +1 -1
  7. package/dist/core/event-bus.js.map +1 -1
  8. package/dist/routes/workspaces.d.ts.map +1 -1
  9. package/dist/routes/workspaces.js +14 -0
  10. package/dist/routes/workspaces.js.map +1 -1
  11. package/dist/services/hibernation-scheduler.d.ts +11 -0
  12. package/dist/services/hibernation-scheduler.d.ts.map +1 -0
  13. package/dist/services/hibernation-scheduler.js +49 -0
  14. package/dist/services/hibernation-scheduler.js.map +1 -0
  15. package/dist/services/session-manager.d.ts +3 -0
  16. package/dist/services/session-manager.d.ts.map +1 -1
  17. package/dist/services/task.service.d.ts +2 -0
  18. package/dist/services/task.service.d.ts.map +1 -1
  19. package/dist/services/workspace.service.d.ts +80 -0
  20. package/dist/services/workspace.service.d.ts.map +1 -1
  21. package/dist/services/workspace.service.js +156 -10
  22. package/dist/services/workspace.service.js.map +1 -1
  23. package/dist/socket/socket-gateway.d.ts.map +1 -1
  24. package/dist/socket/socket-gateway.js +6 -1
  25. package/dist/socket/socket-gateway.js.map +1 -1
  26. package/dist/types/index.d.ts +2 -1
  27. package/dist/types/index.d.ts.map +1 -1
  28. package/dist/types/index.js +1 -0
  29. package/dist/types/index.js.map +1 -1
  30. package/dist/web/assets/{AgentDemoPage-CB48v8IV.js → AgentDemoPage-BFrnOvUV.js} +1 -1
  31. package/dist/web/assets/{DemoPage-_dT9rdpV.js → DemoPage-DzKv8uDU.js} +1 -1
  32. package/dist/web/assets/{GeneralSettingsPage-DtD_oirE.js → GeneralSettingsPage-Co-8z-sL.js} +1 -1
  33. package/dist/web/assets/{NotificationSettingsPage-DQqz8xJs.js → NotificationSettingsPage-Do3Og7G9.js} +1 -1
  34. package/dist/web/assets/{ProfileSettingsPage-BaFNyfse.js → ProfileSettingsPage-7rYry6Ql.js} +1 -1
  35. package/dist/web/assets/ProjectKanbanPage-wvZc6KmL.js +87 -0
  36. package/dist/web/assets/{ProjectSettingsPage-Cv6VpL1g.js → ProjectSettingsPage-7-FUoyM2.js} +1 -1
  37. package/dist/web/assets/{ProviderSettingsPage-BqmSJV2I.js → ProviderSettingsPage-DZsll4Bu.js} +1 -1
  38. package/dist/web/assets/{button-Cg3N0RX4.js → button-BCWr6Rvd.js} +1 -1
  39. package/dist/web/assets/{chevron-down-BZ2n6wh3.js → chevron-down-DanWbYmL.js} +1 -1
  40. package/dist/web/assets/{chevron-right-BrrhT2ph.js → chevron-right-DF-6zN98.js} +1 -1
  41. package/dist/web/assets/{circle-alert-a6g1jQyL.js → circle-alert-CFdGx6uD.js} +1 -1
  42. package/dist/web/assets/{circle-check-CQEg-cq1.js → circle-check-iVKaVABv.js} +1 -1
  43. package/dist/web/assets/{code-block-OCS4YCEC-C72vBOSD.js → code-block-OCS4YCEC-CC5lCZW2.js} +1 -1
  44. package/dist/web/assets/confirm-dialog-B6ScE3zf.js +1 -0
  45. package/dist/web/assets/{folder-picker-Dl5GZRtL.js → folder-picker-CmwjQXjK.js} +1 -1
  46. package/dist/web/assets/{index-D3_Vq2xm.js → index-bUdBNiUV.js} +2 -2
  47. package/dist/web/assets/{loader-circle-DRKF9OZx.js → loader-circle-CdakhgnX.js} +1 -1
  48. package/dist/web/assets/log-adapter-CeKrvZcz.js +1 -0
  49. package/dist/web/assets/{mermaid-NOHMQCX5-DyQsSSRd.js → mermaid-NOHMQCX5-DlkW-f-_.js} +63 -63
  50. package/dist/web/assets/{modal-wSbeXj_V.js → modal-DjFx0vpU.js} +1 -1
  51. package/dist/web/assets/{pencil-CT2HBX6f.js → pencil-BTHTFDLJ.js} +1 -1
  52. package/dist/web/assets/{rotate-ccw-DkZPjdAj.js → rotate-ccw-DfJiT691.js} +1 -1
  53. package/dist/web/assets/{select-BRJQTh28.js → select-6YNbjKSC.js} +1 -1
  54. package/dist/web/assets/{use-profiles-zSSuAJaA.js → use-profiles-cjE3ZHLR.js} +1 -1
  55. package/dist/web/assets/{use-providers-BfLpM8PB.js → use-providers-CRsJrkvm.js} +1 -1
  56. package/dist/web/index.html +1 -1
  57. package/node_modules/@agent-tower/shared/dist/socket/events.d.ts +6 -0
  58. package/node_modules/@agent-tower/shared/dist/socket/events.d.ts.map +1 -1
  59. package/node_modules/@agent-tower/shared/dist/socket/events.js +1 -0
  60. package/node_modules/@agent-tower/shared/dist/socket/events.js.map +1 -1
  61. package/node_modules/@agent-tower/shared/dist/types.d.ts +4 -1
  62. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  63. package/node_modules/@agent-tower/shared/dist/types.js +1 -0
  64. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  65. package/package.json +9 -1
  66. package/prisma/schema.prisma +2 -1
  67. package/dist/web/assets/ProjectKanbanPage-DNCKy0g4.js +0 -87
  68. package/dist/web/assets/confirm-dialog-DmuQeQ0J.js +0 -1
  69. 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":"AAeA,wBAAsB,QAAQ,qUA8D7B"}
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 和 Tunnel
61
+ // 服务器关闭时清理 Socket.IO、TunnelHibernationScheduler
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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"}
@@ -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":"AAiCA;;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
+ {"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,iBAqMzD"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
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":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ9D,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;;;;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"}
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"}