@tom2012/cc-web 1.5.15 → 1.5.16

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A self-hosted web application (and macOS Electron desktop app) that provides a browser-based interface for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI sessions. Create projects, each with a persistent terminal running Claude Code, and interact with them through a real-time terminal UI.
4
4
 
5
- **Current version**: v1.5.15 | [GitHub](https://github.com/zbc0315/cc-web) | MIT License
5
+ **Current version**: v1.5.16 | [GitHub](https://github.com/zbc0315/cc-web) | MIT License
6
6
 
7
7
  ## Features
8
8
 
@@ -28,6 +28,13 @@ export declare function ccwebSessionsDir(folderPath: string): string;
28
28
  export declare function writeProjectConfig(folderPath: string, project: Project): void;
29
29
  /** Read .ccweb/project.json from a project folder. Returns null if not found. */
30
30
  export declare function readProjectConfig(folderPath: string): ProjectConfig | null;
31
+ export interface ProjectShortcut {
32
+ id: string;
33
+ label: string;
34
+ command: string;
35
+ }
36
+ export declare function readProjectShortcuts(folderPath: string): ProjectShortcut[];
37
+ export declare function saveProjectShortcuts(folderPath: string, shortcuts: ProjectShortcut[]): void;
31
38
  /** Update .ccweb/project.json (partial update) */
32
39
  export declare function updateProjectConfig(folderPath: string, updates: Partial<ProjectConfig>): void;
33
40
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,QAAmE,CAAC;AAYzF,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAIvC;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAEtD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE1D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASlD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAGrD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAErE;AAOD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,SAAS,GAAG,WAAW,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAW7E;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQ1E;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAM7F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,QAAmE,CAAC;AAYzF,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAMlC;AAED,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAIvC;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAEtD;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE1D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASlD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAGrD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAErE;AAOD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,SAAS,GAAG,WAAW,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAW7E;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAQ1E;AAID,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,EAAE,CAQ1E;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAI,CAI3F;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAM7F"}
@@ -47,6 +47,8 @@ exports.ccwebDir = ccwebDir;
47
47
  exports.ccwebSessionsDir = ccwebSessionsDir;
48
48
  exports.writeProjectConfig = writeProjectConfig;
49
49
  exports.readProjectConfig = readProjectConfig;
50
+ exports.readProjectShortcuts = readProjectShortcuts;
51
+ exports.saveProjectShortcuts = saveProjectShortcuts;
50
52
  exports.updateProjectConfig = updateProjectConfig;
51
53
  const fs = __importStar(require("fs"));
52
54
  const path = __importStar(require("path"));
@@ -143,6 +145,23 @@ function readProjectConfig(folderPath) {
143
145
  return null;
144
146
  }
145
147
  }
148
+ const PROJECT_SHORTCUTS_FILE = 'shortcuts.json';
149
+ function readProjectShortcuts(folderPath) {
150
+ const file = path.join(ccwebDir(folderPath), PROJECT_SHORTCUTS_FILE);
151
+ if (!fs.existsSync(file))
152
+ return [];
153
+ try {
154
+ return JSON.parse(fs.readFileSync(file, 'utf-8'));
155
+ }
156
+ catch {
157
+ return [];
158
+ }
159
+ }
160
+ function saveProjectShortcuts(folderPath, shortcuts) {
161
+ const dir = ccwebDir(folderPath);
162
+ fs.mkdirSync(dir, { recursive: true });
163
+ atomicWriteSync(path.join(dir, PROJECT_SHORTCUTS_FILE), JSON.stringify(shortcuts, null, 2));
164
+ }
146
165
  /** Update .ccweb/project.json (partial update) */
147
166
  function updateProjectConfig(folderPath, updates) {
148
167
  const existing = readProjectConfig(folderPath);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shortcuts.d.ts","sourceRoot":"","sources":["../../src/routes/shortcuts.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA2ExB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"shortcuts.d.ts","sourceRoot":"","sources":["../../src/routes/shortcuts.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAkIxB,eAAe,MAAM,CAAC"}
@@ -84,5 +84,73 @@ router.delete('/:id', (req, res) => {
84
84
  (0, config_1.saveGlobalShortcuts)(filtered);
85
85
  res.json({ success: true });
86
86
  });
87
+ // ── Project shortcuts (stored in .ccweb/shortcuts.json) ──────────────────────
88
+ function resolveProjectFolder(projectId, res) {
89
+ const project = (0, config_1.getProject)(projectId);
90
+ if (!project) {
91
+ res.status(404).json({ error: 'Project not found' });
92
+ return null;
93
+ }
94
+ return project.folderPath;
95
+ }
96
+ // GET /api/shortcuts/project/:projectId
97
+ router.get('/project/:projectId', (req, res) => {
98
+ const folder = resolveProjectFolder(req.params.projectId, res);
99
+ if (!folder)
100
+ return;
101
+ res.json((0, config_1.readProjectShortcuts)(folder));
102
+ });
103
+ // POST /api/shortcuts/project/:projectId
104
+ router.post('/project/:projectId', (req, res) => {
105
+ const folder = resolveProjectFolder(req.params.projectId, res);
106
+ if (!folder)
107
+ return;
108
+ const { label, command } = req.body;
109
+ if (!command?.trim()) {
110
+ res.status(400).json({ error: 'command is required' });
111
+ return;
112
+ }
113
+ const shortcuts = (0, config_1.readProjectShortcuts)(folder);
114
+ const shortcut = { id: (0, uuid_1.v4)(), label: label?.trim() || command.trim(), command: command.trim() };
115
+ shortcuts.push(shortcut);
116
+ (0, config_1.saveProjectShortcuts)(folder, shortcuts);
117
+ res.status(201).json(shortcut);
118
+ });
119
+ // PUT /api/shortcuts/project/:projectId/:id
120
+ router.put('/project/:projectId/:id', (req, res) => {
121
+ const folder = resolveProjectFolder(req.params.projectId, res);
122
+ if (!folder)
123
+ return;
124
+ const { id } = req.params;
125
+ const { label, command } = req.body;
126
+ if (!command?.trim()) {
127
+ res.status(400).json({ error: 'command is required' });
128
+ return;
129
+ }
130
+ const shortcuts = (0, config_1.readProjectShortcuts)(folder);
131
+ const idx = shortcuts.findIndex((s) => s.id === id);
132
+ if (idx < 0) {
133
+ res.status(404).json({ error: 'Not found' });
134
+ return;
135
+ }
136
+ shortcuts[idx] = { id, label: label?.trim() || command.trim(), command: command.trim() };
137
+ (0, config_1.saveProjectShortcuts)(folder, shortcuts);
138
+ res.json(shortcuts[idx]);
139
+ });
140
+ // DELETE /api/shortcuts/project/:projectId/:id
141
+ router.delete('/project/:projectId/:id', (req, res) => {
142
+ const folder = resolveProjectFolder(req.params.projectId, res);
143
+ if (!folder)
144
+ return;
145
+ const { id } = req.params;
146
+ const shortcuts = (0, config_1.readProjectShortcuts)(folder);
147
+ const filtered = shortcuts.filter((s) => s.id !== id);
148
+ if (filtered.length === shortcuts.length) {
149
+ res.status(404).json({ error: 'Not found' });
150
+ return;
151
+ }
152
+ (0, config_1.saveProjectShortcuts)(folder, filtered);
153
+ res.json({ success: true });
154
+ });
87
155
  exports.default = router;
88
156
  //# sourceMappingURL=shortcuts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../../src/routes/shortcuts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../../src/routes/shortcuts.ts"],"names":[],"mappings":"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"}