preclaim 0.3.5 → 0.3.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,iBAkF9E"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAsGA,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,iBA+F9E"}
@@ -1,30 +1,94 @@
1
- import { writeFile, readFile } from 'node:fs/promises';
1
+ import { writeFile, readFile, mkdir } from 'node:fs/promises';
2
2
  import { join, basename } from 'node:path';
3
3
  import { defaultConfig, loadCredentials, saveCredentials } from '@preclaim/core';
4
4
  import { loginCommand } from './login.js';
5
- export async function initCommand(opts) {
6
- const configPath = join(process.cwd(), '.preclaim.json');
7
- // Check if already exists
5
+ import { installHooksCommand } from './install-hooks.js';
6
+ const MCP_ENTRY = {
7
+ command: 'npx',
8
+ args: ['@preclaim/mcp'],
9
+ };
10
+ async function fileExists(path) {
8
11
  try {
9
- await readFile(configPath, 'utf-8');
10
- console.log('.preclaim.json already exists. Use `preclaim config` to modify.');
11
- return;
12
+ await readFile(path, 'utf-8');
13
+ return true;
12
14
  }
13
15
  catch {
14
- // File doesn't exist, proceed
16
+ return false;
15
17
  }
16
- const backend = opts.backend;
17
- // If project ID provided directly, skip onboarding
18
- if (opts.projectId) {
19
- const config = defaultConfig(opts.projectId, backend);
20
- await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
21
- console.log(`Created .preclaim.json (project: ${opts.projectId})`);
22
- printNextSteps(backend);
23
- return;
18
+ }
19
+ async function detectAgents(projectRoot) {
20
+ const agents = [];
21
+ // Claude Code .claude/ directory or running inside Claude Code
22
+ if (await fileExists(join(projectRoot, '.claude', 'settings.json')) || process.env.CLAUDE_CODE) {
23
+ agents.push({
24
+ name: 'Claude Code',
25
+ configPath: '.claude/settings.json',
26
+ writeConfig: async () => {
27
+ await installHooksCommand();
28
+ },
29
+ });
30
+ }
31
+ // Cursor — .cursor/ directory
32
+ const cursorMcpPath = join(projectRoot, '.cursor', 'mcp.json');
33
+ if (await fileExists(cursorMcpPath) || await fileExists(join(projectRoot, '.cursor', 'rules'))) {
34
+ agents.push({
35
+ name: 'Cursor',
36
+ configPath: '.cursor/mcp.json',
37
+ writeConfig: async () => {
38
+ await writeMcpConfig(cursorMcpPath);
39
+ },
40
+ });
41
+ }
42
+ // Windsurf — .windsurf/ directory
43
+ const windsurfMcpPath = join(projectRoot, '.windsurf', 'mcp.json');
44
+ if (await fileExists(join(projectRoot, '.windsurf', 'rules')) || await fileExists(windsurfMcpPath)) {
45
+ agents.push({
46
+ name: 'Windsurf',
47
+ configPath: '.windsurf/mcp.json',
48
+ writeConfig: async () => {
49
+ await writeMcpConfig(windsurfMcpPath);
50
+ },
51
+ });
52
+ }
53
+ // Cline — .cline/ directory
54
+ const clineMcpPath = join(projectRoot, '.cline', 'mcp.json');
55
+ if (await fileExists(join(projectRoot, '.cline', 'mcp_settings.json')) || await fileExists(join(projectRoot, '.cline', 'rules'))) {
56
+ agents.push({
57
+ name: 'Cline',
58
+ configPath: '.cline/mcp.json',
59
+ writeConfig: async () => {
60
+ await writeMcpConfig(clineMcpPath);
61
+ },
62
+ });
24
63
  }
25
- // Check if logged in, if not: login first
64
+ return agents;
65
+ }
66
+ async function writeMcpConfig(configPath) {
67
+ // Read existing config or create new
68
+ let config = {};
69
+ try {
70
+ const raw = await readFile(configPath, 'utf-8');
71
+ config = JSON.parse(raw);
72
+ }
73
+ catch {
74
+ // File doesn't exist
75
+ }
76
+ // Merge preclaim into mcpServers
77
+ const mcpServers = (config.mcpServers ?? {});
78
+ mcpServers.preclaim = MCP_ENTRY;
79
+ config.mcpServers = mcpServers;
80
+ await mkdir(join(configPath, '..'), { recursive: true });
81
+ await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
82
+ }
83
+ // ─── Init command ───
84
+ export async function initCommand(opts) {
85
+ const projectRoot = process.cwd();
86
+ const configPath = join(projectRoot, '.preclaim.json');
87
+ const backend = opts.backend;
88
+ // ─── Step 1: Auth ───
26
89
  let creds = await loadCredentials();
27
- if (!creds) {
90
+ const configExists = await fileExists(configPath);
91
+ if (!creds && !opts.projectId) {
28
92
  console.log('Not logged in. Starting authentication...\n');
29
93
  await loginCommand();
30
94
  creds = await loadCredentials();
@@ -34,55 +98,74 @@ export async function initCommand(opts) {
34
98
  }
35
99
  console.log('');
36
100
  }
37
- // Derive project name from directory
38
- const dirName = basename(process.cwd());
39
- const projectSlug = dirName.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-');
40
- const projectName = dirName;
41
- console.log(`Setting up Preclaim for "${projectName}"...`);
42
- // Call onboard API
43
- const res = await fetch(`${backend}/api/v1/onboard`, {
44
- method: 'POST',
45
- headers: {
46
- 'Content-Type': 'application/json',
47
- 'Authorization': `Bearer ${creds.accessToken}`,
48
- },
49
- body: JSON.stringify({
50
- project_name: projectName,
51
- project_slug: projectSlug,
52
- }),
53
- });
54
- if (!res.ok) {
55
- const body = await res.text();
56
- console.error(`Failed to create project: ${body}`);
57
- process.exit(1);
58
- }
59
- const { data } = await res.json();
60
- if (data.already_existed) {
61
- console.log(`Project "${projectName}" already exists, using existing project.`);
101
+ // ─── Step 2: Project setup ───
102
+ if (!configExists) {
103
+ if (opts.projectId) {
104
+ const config = defaultConfig(opts.projectId, backend);
105
+ await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
106
+ console.log(`Created .preclaim.json (project: ${opts.projectId})`);
107
+ }
108
+ else {
109
+ const dirName = basename(projectRoot);
110
+ const projectSlug = dirName.toLowerCase().replace(/[^a-z0-9-]/g, '-').replace(/-+/g, '-');
111
+ const projectName = dirName;
112
+ console.log(`Setting up Preclaim for "${projectName}"...`);
113
+ const res = await fetch(`${backend}/api/v1/onboard`, {
114
+ method: 'POST',
115
+ headers: {
116
+ 'Content-Type': 'application/json',
117
+ 'Authorization': `Bearer ${creds.accessToken}`,
118
+ },
119
+ body: JSON.stringify({
120
+ project_name: projectName,
121
+ project_slug: projectSlug,
122
+ }),
123
+ });
124
+ if (!res.ok) {
125
+ const body = await res.text();
126
+ console.error(`Failed to create project: ${body}`);
127
+ process.exit(1);
128
+ }
129
+ const { data } = await res.json();
130
+ if (data.already_existed) {
131
+ console.log(`Project "${projectName}" already exists — joining.`);
132
+ }
133
+ else {
134
+ console.log(`Project "${projectName}" created.`);
135
+ }
136
+ if (creds.user.orgId !== data.org_id) {
137
+ creds.user.orgId = data.org_id;
138
+ await saveCredentials(creds);
139
+ }
140
+ const config = defaultConfig(data.project_id, backend);
141
+ await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
142
+ console.log('Created .preclaim.json');
143
+ }
62
144
  }
63
145
  else {
64
- console.log(`Project "${projectName}" created.`);
146
+ console.log('.preclaim.json found — project already configured.');
65
147
  }
66
- // Update credentials with org_id
67
- if (creds.user.orgId !== data.org_id) {
68
- creds.user.orgId = data.org_id;
69
- await saveCredentials(creds);
148
+ // ─── Step 3: Detect agents and install integrations ───
149
+ const agents = await detectAgents(projectRoot);
150
+ if (agents.length === 0) {
151
+ // No agent detected — install Claude Code hooks as default + show MCP instructions
152
+ console.log('\nNo AI agent detected. Installing Claude Code hooks as default...');
153
+ await installHooksCommand();
154
+ console.log('\nUsing a different agent? Add this to your MCP config:\n');
155
+ console.log(JSON.stringify({ mcpServers: { preclaim: MCP_ENTRY } }, null, 2));
70
156
  }
71
- // Write config
72
- const config = defaultConfig(data.project_id, backend);
73
- await writeFile(configPath, JSON.stringify(config, null, 2) + '\n');
74
- console.log(`\nCreated .preclaim.json`);
75
- printNextSteps(backend);
76
- }
77
- function printNextSteps(backend) {
157
+ else {
158
+ console.log(`\nDetected: ${agents.map(a => a.name).join(', ')}`);
159
+ for (const agent of agents) {
160
+ console.log(` Setting up ${agent.name}...`);
161
+ await agent.writeConfig(projectRoot);
162
+ console.log(` ✓ ${agent.name} configured (${agent.configPath})`);
163
+ }
164
+ }
165
+ // ─── Done ───
78
166
  const dashboardUrl = backend.replace(/\/api\/v1$/, '').replace(/\/$/, '');
79
- console.log('');
80
- console.log('Next steps:');
81
- console.log(' 1. preclaim install-hooks');
82
- console.log(' 2. Commit .preclaim.json to your repo');
83
- console.log(' 3. Open multiple Claude Code terminals — locks are automatic');
84
- console.log('');
85
- console.log(`Dashboard: ${dashboardUrl}/dashboard`);
86
- console.log('View your locks and activity in real-time.');
167
+ console.log('\n✓ Preclaim is ready.');
168
+ console.log(' Commit .preclaim.json to your repo so your team can join.');
169
+ console.log(` Dashboard: ${dashboardUrl}/dashboard`);
87
170
  }
88
171
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "preclaim",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "description": "AI File Coordination Layer — predictive file locking for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {