claude-ws 0.3.4 → 0.3.5
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 +1 -0
- package/bin/{claudekanban.js → claude-ws.js} +26 -7
- package/drizzle/0002_smooth_magneto.sql +8 -0
- package/drizzle/meta/0002_snapshot.json +1245 -0
- package/drizzle/meta/_journal.json +7 -0
- package/locales/de.json +101 -3
- package/locales/en.json +115 -2
- package/locales/es.json +101 -3
- package/locales/fr.json +101 -3
- package/locales/ja.json +101 -3
- package/locales/ko.json +101 -3
- package/locales/vi.json +115 -2
- package/locales/zh.json +101 -3
- package/next.config.ts +28 -1
- package/package.json +15 -8
- package/public/access-anywhere-illustration.svg +27 -0
- package/public/anywhere.svg +931 -0
- package/public/cloudflare-logo-dark.svg +21 -0
- package/public/cloudflare-logo.svg +21 -0
- package/public/docs/swagger/swagger.yaml +112 -0
- package/server.ts +78 -11
- package/src/app/[locale]/layout.tsx +15 -6
- package/src/app/[locale]/page.tsx +29 -11
- package/src/app/api/agent-factory/plugins/[id]/dependencies/route.ts +5 -2
- package/src/app/api/agent-factory/plugins/[id]/route.ts +9 -7
- package/src/app/api/agent-factory/plugins/route.ts +6 -3
- package/src/app/api/agent-factory/projects/[projectId]/components/route.ts +6 -3
- package/src/app/api/agent-factory/projects/[projectId]/installed/route.ts +5 -2
- package/src/app/api/agent-factory/projects/[projectId]/plugins/route.ts +7 -4
- package/src/app/api/agent-factory/projects/[projectId]/sync/route.ts +8 -5
- package/src/app/api/agent-factory/projects/[projectId]/uninstall/route.ts +6 -3
- package/src/app/api/attempts/route.ts +11 -5
- package/src/app/api/cache-stats/route.ts +22 -0
- package/src/app/api/checkpoints/rewind/route.ts +12 -10
- package/src/app/api/code/inline-edit/route.ts +6 -3
- package/src/app/api/files/operations/route.ts +7 -4
- package/src/app/api/files/upload/route.ts +286 -0
- package/src/app/api/models/route.ts +147 -0
- package/src/app/api/projects/[id]/route.ts +6 -3
- package/src/app/api/projects/[id]/settings/route.ts +6 -3
- package/src/app/api/projects/route.ts +6 -3
- package/src/app/api/proxy/anthropic/[[...path]]/route.ts +187 -0
- package/src/app/api/search/chat-history/route.ts +190 -0
- package/src/app/api/settings/api-access-key/route.ts +196 -0
- package/src/app/api/settings/provider/route.ts +345 -0
- package/src/app/api/settings/route.ts +98 -0
- package/src/app/api/subdomains/check/route.ts +31 -0
- package/src/app/api/subdomains/confirmation/route.ts +109 -0
- package/src/app/api/subdomains/route.ts +32 -0
- package/src/app/api/tasks/[id]/route.ts +9 -5
- package/src/app/api/tasks/reorder/route.ts +6 -3
- package/src/app/api/tunnel/start/route.ts +48 -0
- package/src/app/api/tunnel/status/route.ts +15 -0
- package/src/app/api/tunnel/stop/route.ts +24 -0
- package/src/components/access-anywhere/access-anywhere-wizard.tsx +80 -0
- package/src/components/access-anywhere/api-access-key-setup-modal.tsx +211 -0
- package/src/components/access-anywhere/index.ts +2 -0
- package/src/components/access-anywhere/tunnel-settings-dialog.tsx +268 -0
- package/src/components/access-anywhere/tunnel-settings.tsx +206 -0
- package/src/components/access-anywhere/tunnel-status-indicator.tsx +58 -0
- package/src/components/access-anywhere/wizard-step-cloudflare.tsx +171 -0
- package/src/components/access-anywhere/wizard-step-ctunnel.tsx +394 -0
- package/src/components/access-anywhere/wizard-step-method.tsx +77 -0
- package/src/components/access-anywhere/wizard-step-success.tsx +80 -0
- package/src/components/access-anywhere/wizard-step-welcome.tsx +37 -0
- package/src/components/auth/agent-provider-dialog.tsx +846 -0
- package/src/components/auth/api-key-dialog.tsx +4 -5
- package/src/components/auth/auth-error-message.tsx +82 -0
- package/src/components/claude/clickable-file-path.tsx +149 -0
- package/src/components/claude/message-block.tsx +21 -0
- package/src/components/claude/tool-use-block.tsx +5 -0
- package/src/components/editor/code-editor-with-inline-edit.tsx +3 -0
- package/src/components/editor/code-mirror-editor.tsx +3 -0
- package/src/components/editor/extensions/marker-line-highlight.ts +75 -0
- package/src/components/editor/file-diff-resolver-modal.tsx +630 -0
- package/src/components/editor/markdown-file-viewer.tsx +31 -2
- package/src/components/header/project-selector.tsx +3 -2
- package/src/components/kanban/board.tsx +14 -3
- package/src/components/kanban/column.tsx +4 -1
- package/src/components/kanban/create-task-dialog.tsx +7 -0
- package/src/components/kanban/task-card.tsx +16 -2
- package/src/components/project-settings/component-selector.tsx +18 -10
- package/src/components/project-settings/plugin-upload-dialog.tsx +524 -0
- package/src/components/project-settings/project-settings-dialog.tsx +16 -2
- package/src/components/providers/agent-provider-config.tsx +72 -0
- package/src/components/providers/remote-access-key-provider.tsx +83 -0
- package/src/components/right-sidebar.tsx +44 -1
- package/src/components/settings/folder-browser-dialog.tsx +263 -7
- package/src/components/settings/settings-page.tsx +6 -5
- package/src/components/sidebar/file-browser/file-create-buttons.tsx +21 -1
- package/src/components/sidebar/file-browser/file-tab-content.tsx +84 -1
- package/src/components/sidebar/file-browser/file-tree-context-menu.tsx +21 -4
- package/src/components/sidebar/file-browser/file-tree-item.tsx +16 -4
- package/src/components/sidebar/file-browser/file-tree.tsx +1 -0
- package/src/components/sidebar/file-browser/file-upload-dialog.tsx +393 -0
- package/src/components/task/chat-model-selector.tsx +95 -0
- package/src/components/task/conversation-view.tsx +30 -0
- package/src/components/task/floating-chat-window.tsx +310 -0
- package/src/components/task/floating-chat-windows-container.tsx +50 -0
- package/src/components/task/index.ts +2 -0
- package/src/components/task/interactive-command/model-selector.tsx +52 -20
- package/src/components/task/prompt-input.tsx +38 -32
- package/src/components/task/task-detail-panel.tsx +41 -161
- package/src/components/ui/detachable-window.tsx +14 -2
- package/src/components/ui/dialog.tsx +13 -2
- package/src/components/ui/toast.tsx +17 -10
- package/src/hooks/use-attempt-stream.ts +11 -11
- package/src/hooks/use-chat-history-search.ts +85 -0
- package/src/hooks/use-file-sync.ts +228 -0
- package/src/hooks/use-inline-edit.ts +15 -12
- package/src/hooks/use-socket.ts +6 -3
- package/src/lib/agent-manager.ts +66 -26
- package/src/lib/anthropic-proxy-setup.ts +377 -0
- package/src/lib/checkpoint-manager.ts +8 -4
- package/src/lib/claude-code-settings.ts +289 -0
- package/src/lib/claude-dependency-analyzer.ts +10 -6
- package/src/lib/context-tracker.ts +10 -6
- package/src/lib/db/index.ts +13 -0
- package/src/lib/db/schema.ts +13 -0
- package/src/lib/dependency-extractor.ts +5 -1
- package/src/lib/file-path-detector.ts +166 -0
- package/src/lib/file-processor.ts +9 -6
- package/src/lib/git-snapshot.ts +10 -7
- package/src/lib/git-stats-collector.ts +5 -1
- package/src/lib/inline-edit-manager.ts +13 -12
- package/src/lib/install-script-generator.ts +6 -2
- package/src/lib/language-services/adapters/typescript-adapter.ts +5 -1
- package/src/lib/logger.ts +77 -0
- package/src/lib/models.ts +102 -0
- package/src/lib/output-formatter.ts +5 -1
- package/src/lib/process-manager.ts +12 -11
- package/src/lib/proxy-token-cache.ts +224 -0
- package/src/lib/sdk-event-adapter.ts +14 -11
- package/src/lib/server-port-configuration.ts +27 -0
- package/src/lib/session-manager.ts +195 -11
- package/src/lib/shell-manager.ts +24 -22
- package/src/lib/socket-service.ts +0 -10
- package/src/lib/system-prompt.ts +2 -29
- package/src/lib/tunnel-service.ts +396 -0
- package/src/lib/update-checker.ts +4 -0
- package/src/lib/usage-tracker.ts +15 -8
- package/src/lib/utils.ts +22 -0
- package/src/lib/workflow-tracker.ts +5 -1
- package/src/stores/attachment-store.ts +4 -1
- package/src/stores/auth-store.ts +11 -0
- package/src/stores/floating-windows-store.ts +164 -0
- package/src/stores/model-store.ts +152 -0
- package/src/stores/project-settings-store.ts +6 -3
- package/src/stores/project-store.ts +12 -1
- package/src/stores/shell-store.ts +8 -5
- package/src/stores/sidebar-store.ts +6 -3
- package/src/stores/task-store.ts +49 -8
- package/src/stores/tunnel-store.ts +220 -0
- package/src/types/ctunnel.d.ts +18 -0
- package/src/types/index.ts +1 -0
package/README.md
CHANGED
|
@@ -65,6 +65,7 @@ CLAUDE_PATH=/path/to/claude
|
|
|
65
65
|
| `PORT` | Server port | `8556` |
|
|
66
66
|
| `API_ACCESS_KEY` | API authentication key | (empty) |
|
|
67
67
|
| `CLAUDE_PATH` | Claude CLI path | Auto-detected |
|
|
68
|
+
| `LOG_LEVEL` | Logging level: `debug`, `info`, `warn`, `error`, `silent` | `debug` (dev), `warn` (prod) |
|
|
68
69
|
|
|
69
70
|
---
|
|
70
71
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* This script:
|
|
7
7
|
* 1. Auto-migrates the database on first run (using initDb from src/lib/db)
|
|
8
8
|
* 2. Starts the Next.js server with Socket.io
|
|
9
|
-
* 3. Opens browser to localhost:
|
|
9
|
+
* 3. Opens browser to localhost:8556
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
const { spawn } = require('child_process');
|
|
@@ -34,8 +34,15 @@ function whichCommand(cmd) {
|
|
|
34
34
|
execSync(`${checker} ${cmd}`, { stdio: 'ignore' });
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
// Load environment variables
|
|
38
|
-
|
|
37
|
+
// Load environment variables from user's CWD only
|
|
38
|
+
// This ensures users manage their own .env in their project directory
|
|
39
|
+
const userEnvPath = path.join(process.cwd(), '.env');
|
|
40
|
+
if (fs.existsSync(userEnvPath)) {
|
|
41
|
+
require('dotenv').config({ path: userEnvPath });
|
|
42
|
+
console.log(`[Claude Workspace] Loaded .env from: ${userEnvPath}`);
|
|
43
|
+
} else {
|
|
44
|
+
console.log('[Claude Workspace] No .env found in current directory');
|
|
45
|
+
}
|
|
39
46
|
|
|
40
47
|
// Get package root directory
|
|
41
48
|
const packageRoot = path.resolve(__dirname, '..');
|
|
@@ -58,16 +65,23 @@ Options:
|
|
|
58
65
|
-v, --version Show version number
|
|
59
66
|
-h, --help Show this help message
|
|
60
67
|
|
|
68
|
+
Environment:
|
|
69
|
+
.env: Loaded from current working directory (./.env)
|
|
70
|
+
Database: Stored in ./data/claude-ws.db (or DATA_DIR env)
|
|
71
|
+
|
|
61
72
|
Examples:
|
|
62
|
-
claude-ws
|
|
73
|
+
claude-ws Start server using .env from current directory
|
|
74
|
+
cd ~/myproject && claude-ws Use ~/myproject/.env and database
|
|
63
75
|
|
|
64
76
|
For more info: https://github.com/Claude-Workspace/claude-ws
|
|
65
77
|
`);
|
|
66
78
|
process.exit(0);
|
|
67
79
|
}
|
|
68
80
|
|
|
69
|
-
// Database path - use DATA_DIR from env
|
|
70
|
-
|
|
81
|
+
// Database path - use DATA_DIR from env, or user's CWD, or fall back to packageRoot
|
|
82
|
+
// This ensures database is stored in user's project directory when possible
|
|
83
|
+
const userCwd = process.cwd();
|
|
84
|
+
const DB_DIR = process.env.DATA_DIR || path.join(userCwd, 'data');
|
|
71
85
|
const DB_PATH = path.join(DB_DIR, 'claude-ws.db');
|
|
72
86
|
|
|
73
87
|
// Ensure database directory exists
|
|
@@ -125,10 +139,14 @@ async function runMigrations() {
|
|
|
125
139
|
}
|
|
126
140
|
}
|
|
127
141
|
|
|
142
|
+
// Default port - must match src/lib/server-port-configuration.ts
|
|
143
|
+
const DEFAULT_PORT = 8556;
|
|
144
|
+
|
|
128
145
|
async function startServer() {
|
|
146
|
+
const port = process.env.PORT || DEFAULT_PORT;
|
|
129
147
|
console.log('[Claude Workspace] Starting server...');
|
|
130
148
|
console.log('[Claude Workspace] Database location:', DB_PATH);
|
|
131
|
-
console.log(
|
|
149
|
+
console.log(`[Claude Workspace] Server will be available at http://localhost:${port}`);
|
|
132
150
|
console.log('');
|
|
133
151
|
|
|
134
152
|
const serverPath = path.join(packageRoot, 'server.ts');
|
|
@@ -259,6 +277,7 @@ async function startServer() {
|
|
|
259
277
|
env: {
|
|
260
278
|
...process.env,
|
|
261
279
|
NODE_ENV: process.env.NODE_ENV || 'production',
|
|
280
|
+
CLAUDE_WS_USER_CWD: process.cwd(), // Pass user's CWD to server
|
|
262
281
|
}
|
|
263
282
|
});
|
|
264
283
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
CREATE TABLE `app_settings` (
|
|
2
|
+
`key` text PRIMARY KEY NOT NULL,
|
|
3
|
+
`value` text NOT NULL,
|
|
4
|
+
`updated_at` integer NOT NULL
|
|
5
|
+
);
|
|
6
|
+
--> statement-breakpoint
|
|
7
|
+
ALTER TABLE `attempts` ADD `output_format` text;--> statement-breakpoint
|
|
8
|
+
ALTER TABLE `attempts` ADD `output_schema` text;
|