contextgit 0.0.10 → 0.0.12
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/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +32 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/doctor.test.d.ts +2 -0
- package/dist/commands/doctor.test.d.ts.map +1 -0
- package/dist/commands/doctor.test.js +29 -0
- package/dist/commands/doctor.test.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +36 -121
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +13 -9
- package/dist/commands/pull.js.map +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +6 -8
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/set-remote.d.ts +2 -1
- package/dist/commands/set-remote.d.ts.map +1 -1
- package/dist/commands/set-remote.js +32 -10
- package/dist/commands/set-remote.js.map +1 -1
- package/dist/commands/set-remote.test.d.ts +2 -0
- package/dist/commands/set-remote.test.d.ts.map +1 -0
- package/dist/commands/set-remote.test.js +37 -0
- package/dist/commands/set-remote.test.js.map +1 -0
- package/dist/lib/client-config.d.ts +1 -18
- package/dist/lib/client-config.d.ts.map +1 -1
- package/dist/lib/client-config.js +1 -73
- package/dist/lib/client-config.js.map +1 -1
- package/dist/lib/client-config.test.js +1 -96
- package/dist/lib/client-config.test.js.map +1 -1
- package/dist/lib/init-helpers.d.ts +24 -0
- package/dist/lib/init-helpers.d.ts.map +1 -0
- package/dist/lib/init-helpers.js +185 -0
- package/dist/lib/init-helpers.js.map +1 -0
- package/dist/lib/init-helpers.test.d.ts +2 -0
- package/dist/lib/init-helpers.test.d.ts.map +1 -0
- package/dist/lib/init-helpers.test.js +73 -0
- package/dist/lib/init-helpers.test.js.map +1 -0
- package/dist/lib/remote-store.d.ts +4 -0
- package/dist/lib/remote-store.d.ts.map +1 -0
- package/dist/lib/remote-store.js +28 -0
- package/dist/lib/remote-store.js.map +1 -0
- package/dist/lib/remote-store.test.d.ts +2 -0
- package/dist/lib/remote-store.test.d.ts.map +1 -0
- package/dist/lib/remote-store.test.js +40 -0
- package/dist/lib/remote-store.test.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAMrC,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAA+C;IAE3D,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAMrC,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAA+C;IAE3D,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqH3B"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -74,6 +74,38 @@ export default class DoctorCmd extends Command {
|
|
|
74
74
|
}
|
|
75
75
|
catch { /* file missing */ }
|
|
76
76
|
check('MCP server registered in ~/.claude.json', mcpRegistered, 'Add contextgit to mcpServers in ~/.claude.json');
|
|
77
|
+
// ── 6. Supabase remote ────────────────────────────────────────────────────
|
|
78
|
+
const supabaseUrl = config?.supabaseUrl;
|
|
79
|
+
if (!supabaseUrl) {
|
|
80
|
+
// Not an error — Supabase is optional
|
|
81
|
+
this.log(' [ ] Supabase: not configured (optional)');
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const serviceKey = process.env['SUPABASE_SERVICE_KEY'];
|
|
85
|
+
if (!serviceKey) {
|
|
86
|
+
check('Supabase: URL set but SUPABASE_SERVICE_KEY missing', false, 'Set SUPABASE_SERVICE_KEY in your shell or Claude Code env config');
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// Probe connectivity: any 2xx/3xx = connected, 401 = key rejected
|
|
90
|
+
try {
|
|
91
|
+
const res = await fetch(`${supabaseUrl}/rest/v1/projects?limit=1`, {
|
|
92
|
+
headers: { apikey: serviceKey, Authorization: `Bearer ${serviceKey}` },
|
|
93
|
+
});
|
|
94
|
+
if (res.status === 401) {
|
|
95
|
+
check('Supabase: reachable but SUPABASE_SERVICE_KEY rejected', false, 'Check SUPABASE_SERVICE_KEY — it may be the anon key instead of the service role key');
|
|
96
|
+
}
|
|
97
|
+
else if (res.status < 400) {
|
|
98
|
+
check('Supabase: connected', true);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
check(`Supabase: HTTP ${res.status}`, false, `Check ${supabaseUrl} is reachable`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
check('Supabase: unreachable', false, `${err instanceof Error ? err.message : String(err)}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
77
109
|
// ── Summary ───────────────────────────────────────────────────────────────
|
|
78
110
|
this.log('');
|
|
79
111
|
this.log(`${passed} passed, ${failed} failed`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.test.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
// Test the Supabase check states in isolation
|
|
3
|
+
async function checkSupabase(supabaseUrl, envKey, fetchStatus = 200) {
|
|
4
|
+
if (!supabaseUrl)
|
|
5
|
+
return '[ ] Supabase: not configured (optional)';
|
|
6
|
+
if (!envKey)
|
|
7
|
+
return '[!] Supabase: URL set but SUPABASE_SERVICE_KEY missing';
|
|
8
|
+
// Simulate fetch
|
|
9
|
+
if (fetchStatus === 401)
|
|
10
|
+
return '[!] Supabase: reachable but SUPABASE_SERVICE_KEY rejected';
|
|
11
|
+
if (fetchStatus < 400)
|
|
12
|
+
return '[✓] Supabase: connected';
|
|
13
|
+
return '[!] Supabase: unreachable';
|
|
14
|
+
}
|
|
15
|
+
describe('doctor Supabase check', () => {
|
|
16
|
+
it('reports not configured when supabaseUrl absent', async () => {
|
|
17
|
+
expect(await checkSupabase()).toBe('[ ] Supabase: not configured (optional)');
|
|
18
|
+
});
|
|
19
|
+
it('reports missing key when supabaseUrl set but env absent', async () => {
|
|
20
|
+
expect(await checkSupabase('https://x.supabase.co')).toBe('[!] Supabase: URL set but SUPABASE_SERVICE_KEY missing');
|
|
21
|
+
});
|
|
22
|
+
it('reports rejected key on 401', async () => {
|
|
23
|
+
expect(await checkSupabase('https://x.supabase.co', 'key', 401)).toBe('[!] Supabase: reachable but SUPABASE_SERVICE_KEY rejected');
|
|
24
|
+
});
|
|
25
|
+
it('reports connected on 2xx', async () => {
|
|
26
|
+
expect(await checkSupabase('https://x.supabase.co', 'key', 200)).toBe('[✓] Supabase: connected');
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=doctor.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.test.js","sourceRoot":"","sources":["../../src/commands/doctor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,8CAA8C;AAC9C,KAAK,UAAU,aAAa,CAAC,WAAoB,EAAE,MAAe,EAAE,WAAW,GAAG,GAAG;IACnF,IAAI,CAAC,WAAW;QAAE,OAAO,yCAAyC,CAAA;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO,wDAAwD,CAAA;IAC5E,iBAAiB;IACjB,IAAI,WAAW,KAAK,GAAG;QAAE,OAAO,2DAA2D,CAAA;IAC3F,IAAI,WAAW,GAAG,GAAG;QAAE,OAAO,yBAAyB,CAAA;IACvD,OAAO,2BAA2B,CAAA;AACpC,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAA;IAC/E,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,CAAC,MAAM,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;IACrH,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,CAAC,MAAM,aAAa,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAA;IACpI,CAAC,CAAC,CAAA;IACF,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,CAAC,MAAM,aAAa,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA;IAClG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AAW5C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA0C;IAE5D,MAAM,CAAC,KAAK;;;MAWX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgI3B"}
|
package/dist/commands/init.js
CHANGED
|
@@ -7,51 +7,7 @@ import { nanoid } from 'nanoid';
|
|
|
7
7
|
import { simpleGit } from 'simple-git';
|
|
8
8
|
import { LocalStore } from '@contextgit/store';
|
|
9
9
|
import { installGitHooks } from '../git-hooks.js';
|
|
10
|
-
import {
|
|
11
|
-
const MCP_SYSTEM_PROMPT = `You have access to ContextGit memory tools.
|
|
12
|
-
|
|
13
|
-
At the start of every session, call context_get with scope=global immediately — before reading any files, before asking any questions, before doing any work. Do not skip this step.
|
|
14
|
-
|
|
15
|
-
After completing significant work (a feature, a decision, a resolved problem), call context_commit with a message describing what was done, what was decided, and any open questions. Include the current git branch and commit hash at the top of the message.
|
|
16
|
-
|
|
17
|
-
If you are about to explore a risky or experimental approach, call context_branch first to create an isolated context workspace.`;
|
|
18
|
-
const SYSTEM_PROMPT_FRAGMENT = `\
|
|
19
|
-
You have access to ContextGit memory tools.
|
|
20
|
-
|
|
21
|
-
## Session Start (do this every time)
|
|
22
|
-
Call context_get with scope=global immediately.
|
|
23
|
-
Do not ask questions first. Read the snapshot, then start working.
|
|
24
|
-
Start the highest priority item from the snapshot.
|
|
25
|
-
|
|
26
|
-
## What counts as one task (commit after each)
|
|
27
|
-
Match the grain of your plan:
|
|
28
|
-
- Numbered steps in a plan → each numbered step = one commit
|
|
29
|
-
- User stories → each accepted story = one commit
|
|
30
|
-
- No plan → each logical unit of change (one file, one feature, one fix) = one commit
|
|
31
|
-
|
|
32
|
-
Do NOT batch unrelated changes into one commit.
|
|
33
|
-
When in doubt, commit more often rather than less.
|
|
34
|
-
|
|
35
|
-
## After EVERY completed task
|
|
36
|
-
Immediately, without being asked:
|
|
37
|
-
\`\`\`
|
|
38
|
-
context_commit "what was built | key decisions | next task"
|
|
39
|
-
\`\`\`
|
|
40
|
-
Do not proceed to the next task until the current one is committed.
|
|
41
|
-
|
|
42
|
-
## When scope changes mid-session
|
|
43
|
-
1. Write a context_commit with replan: prefix BEFORE building new scope:
|
|
44
|
-
context_commit "replan: <what changed and why>"
|
|
45
|
-
2. Then build the new scope
|
|
46
|
-
3. Write a normal context_commit when done
|
|
47
|
-
|
|
48
|
-
## Session End (do this every time)
|
|
49
|
-
Call context_commit with:
|
|
50
|
-
- what was built
|
|
51
|
-
- key decisions and why
|
|
52
|
-
- open threads
|
|
53
|
-
- the first concrete task for the next session
|
|
54
|
-
`;
|
|
10
|
+
import { writeClaude, writeSkills } from '../lib/init-helpers.js';
|
|
55
11
|
export default class Init extends Command {
|
|
56
12
|
static description = 'Initialize ContextGit in this project';
|
|
57
13
|
static flags = {
|
|
@@ -71,7 +27,6 @@ export default class Init extends Command {
|
|
|
71
27
|
const cwd = process.cwd();
|
|
72
28
|
const configDir = join(cwd, '.contextgit');
|
|
73
29
|
const configPath = join(configDir, 'config.json');
|
|
74
|
-
const promptPath = join(configDir, 'system-prompt.md');
|
|
75
30
|
// True if the user explicitly passed --hooks or --no-hooks
|
|
76
31
|
const hooksExplicit = argv.some(a => String(a).startsWith('--hooks') || String(a) === '--no-hooks');
|
|
77
32
|
// ── Self-heal: config exists but DB may be empty ───────────────────────────
|
|
@@ -92,6 +47,15 @@ export default class Init extends Command {
|
|
|
92
47
|
installGitHooks(cwd);
|
|
93
48
|
this.log('Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)');
|
|
94
49
|
}
|
|
50
|
+
// Write CLAUDE.md + skills even on re-init (idempotent)
|
|
51
|
+
const claudeResult = writeClaude(cwd);
|
|
52
|
+
if (claudeResult.status === 'written') {
|
|
53
|
+
this.log(`✅ CLAUDE.md updated (contextgit memory section appended)`);
|
|
54
|
+
}
|
|
55
|
+
const skillsResult = writeSkills(cwd);
|
|
56
|
+
if (skillsResult.status === 'written') {
|
|
57
|
+
this.log(`✅ Skills installed (.claude/skills/context-commit, .claude/skills/context-branch)`);
|
|
58
|
+
}
|
|
95
59
|
this.log('ContextGit already initialized. Config found at .contextgit/config.json');
|
|
96
60
|
return;
|
|
97
61
|
}
|
|
@@ -103,9 +67,7 @@ export default class Init extends Command {
|
|
|
103
67
|
name: `Context: ${gitBranch}`,
|
|
104
68
|
gitBranch,
|
|
105
69
|
});
|
|
106
|
-
writeSystemPrompt(promptPath);
|
|
107
70
|
this.log(`Recreated project "${existing.project}" (${existing.projectId}) for branch: ${gitBranch}`);
|
|
108
|
-
this.log(`System prompt: .contextgit/system-prompt.md`);
|
|
109
71
|
if (flags.hooks) {
|
|
110
72
|
installGitHooks(cwd);
|
|
111
73
|
this.log('Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)');
|
|
@@ -135,12 +97,10 @@ export default class Init extends Command {
|
|
|
135
97
|
embeddingModel: 'local',
|
|
136
98
|
};
|
|
137
99
|
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
138
|
-
|
|
139
|
-
this.log(`
|
|
140
|
-
this.log(`
|
|
141
|
-
this.log(`Branch:
|
|
142
|
-
this.log(`Config: .contextgit/config.json`);
|
|
143
|
-
this.log(`DB: ~/.contextgit/projects/${projectId}.db`);
|
|
100
|
+
this.log(`✅ Project initialized (.contextgit.json)`);
|
|
101
|
+
this.log(` Project: ${projectName}`);
|
|
102
|
+
this.log(` ID: ${projectId}`);
|
|
103
|
+
this.log(` Branch: ${gitBranch}`);
|
|
144
104
|
this.log(``);
|
|
145
105
|
// BUG-3 fix: prompt for hooks unless user was explicit about it
|
|
146
106
|
let installHooks = flags.hooks;
|
|
@@ -149,66 +109,33 @@ export default class Init extends Command {
|
|
|
149
109
|
}
|
|
150
110
|
if (installHooks) {
|
|
151
111
|
installGitHooks(cwd);
|
|
152
|
-
this.log(
|
|
112
|
+
this.log(`✅ Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)`);
|
|
153
113
|
}
|
|
154
114
|
else {
|
|
155
|
-
this.log(
|
|
115
|
+
this.log(`⏭ Git hooks skipped (run "contextgit init --hooks" anytime to install)`);
|
|
156
116
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
try {
|
|
162
|
-
const clients = detectClients();
|
|
163
|
-
if (clients.length === 0) {
|
|
164
|
-
this.log(`⚠️ No MCP clients detected.`);
|
|
165
|
-
this.log(``);
|
|
166
|
-
this.log(`Add the following to your MCP client config manually:`);
|
|
167
|
-
this.log(``);
|
|
168
|
-
this.log(` "contextgit": {`);
|
|
169
|
-
this.log(` "command": "npx",`);
|
|
170
|
-
this.log(` "args": ["contextgit", "mcp"],`);
|
|
171
|
-
this.log(` "systemPrompt": "${MCP_SYSTEM_PROMPT.replace(/\n/g, '\\n')}"`);
|
|
172
|
-
this.log(` }`);
|
|
173
|
-
this.log(``);
|
|
174
|
-
this.log(`Searched:`);
|
|
175
|
-
this.log(` ~/.claude.json`);
|
|
176
|
-
this.log(` ~/.cursor/mcp.json`);
|
|
177
|
-
this.log(` ~/Library/Application Support/Claude/claude_desktop_config.json`);
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
let anyInjected = false;
|
|
181
|
-
for (const client of clients) {
|
|
182
|
-
const result = injectMcpServer(client.path, client.type, MCP_SYSTEM_PROMPT);
|
|
183
|
-
const label = clientLabel(client.type).padEnd(14);
|
|
184
|
-
const shortPath = client.path.replace(process.env['HOME'] ?? '', '~');
|
|
185
|
-
if (result.status === 'injected') {
|
|
186
|
-
this.log(`✅ Configured ${label} (${shortPath})`);
|
|
187
|
-
anyInjected = true;
|
|
188
|
-
}
|
|
189
|
-
else if (result.status === 'already-present') {
|
|
190
|
-
this.log(`⏭ ${label} already configured (skipped)`);
|
|
191
|
-
}
|
|
192
|
-
else if (result.status === 'error') {
|
|
193
|
-
this.log(`❌ ${label} config error: ${result.reason}`);
|
|
194
|
-
this.log(` Path: ${shortPath}`);
|
|
195
|
-
this.log(` Fix manually or re-run after repairing the file.`);
|
|
196
|
-
}
|
|
197
|
-
else {
|
|
198
|
-
this.log(`⏭ ${label} not found (skipped)`);
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
if (anyInjected) {
|
|
202
|
-
this.log(``);
|
|
203
|
-
this.log(`ContextGit is ready. Open Claude Code in this project and start a session.`);
|
|
204
|
-
this.log(`The agent will call context_get automatically on every session start.`);
|
|
205
|
-
}
|
|
206
|
-
}
|
|
117
|
+
// ── Write CLAUDE.md fragment ───────────────────────────────────────────────
|
|
118
|
+
const claudeResult = writeClaude(cwd);
|
|
119
|
+
if (claudeResult.status === 'written') {
|
|
120
|
+
this.log(`✅ CLAUDE.md updated (contextgit memory section appended)`);
|
|
207
121
|
}
|
|
208
|
-
|
|
209
|
-
this.log(
|
|
210
|
-
this.log(`Add the MCP server entry manually — see .contextgit/system-prompt.md`);
|
|
122
|
+
else if (claudeResult.status === 'already-present') {
|
|
123
|
+
this.log(`⏭ CLAUDE.md already configured (skipped)`);
|
|
211
124
|
}
|
|
125
|
+
else {
|
|
126
|
+
this.log(`⚠️ CLAUDE.md not updated (${claudeResult.reason})`);
|
|
127
|
+
}
|
|
128
|
+
// ── Write project-level skills ─────────────────────────────────────────────
|
|
129
|
+
const skillsResult = writeSkills(cwd);
|
|
130
|
+
if (skillsResult.status === 'written') {
|
|
131
|
+
this.log(`✅ Skills installed (.claude/skills/context-commit, .claude/skills/context-branch)`);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
this.log(`⚠️ Skills not installed (could not write to .claude/skills/ — create manually)`);
|
|
135
|
+
}
|
|
136
|
+
this.log(``);
|
|
137
|
+
this.log(`ContextGit is ready. Start a Claude Code session in this project.`);
|
|
138
|
+
this.log(`The agent will load project memory automatically via MCP tool discovery.`);
|
|
212
139
|
}
|
|
213
140
|
}
|
|
214
141
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
@@ -221,18 +148,6 @@ async function detectGitBranch(cwd) {
|
|
|
221
148
|
return 'main';
|
|
222
149
|
}
|
|
223
150
|
}
|
|
224
|
-
function writeSystemPrompt(promptPath) {
|
|
225
|
-
writeFileSync(promptPath, SYSTEM_PROMPT_FRAGMENT);
|
|
226
|
-
}
|
|
227
|
-
function clientLabel(type) {
|
|
228
|
-
if (type === 'claude-code')
|
|
229
|
-
return 'Claude Code';
|
|
230
|
-
if (type === 'cursor')
|
|
231
|
-
return 'Cursor';
|
|
232
|
-
if (type === 'claude-desktop')
|
|
233
|
-
return 'Claude Desktop';
|
|
234
|
-
return type;
|
|
235
|
-
}
|
|
236
151
|
/** Prompt the user with a yes/no question. Defaults to yes on empty input. */
|
|
237
152
|
function promptYesNo(question) {
|
|
238
153
|
return new Promise(resolve => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AA0B5C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAsD;IAExE,MAAM,CAAC,KAAK;;;MAUX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkG3B"}
|
package/dist/commands/pull.js
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
// 2. For each remote branch: ensure branch exists locally
|
|
7
7
|
// 3. For each branch: collect remote commits not present locally, write them
|
|
8
8
|
import { Command, Flags } from '@oclif/core';
|
|
9
|
-
import { LocalStore
|
|
9
|
+
import { LocalStore } from '@contextgit/store';
|
|
10
10
|
import { loadConfig } from '../config.js';
|
|
11
|
+
import { resolveRemoteStore } from '../lib/remote-store.js';
|
|
11
12
|
const PAGE = 100;
|
|
12
13
|
async function allCommits(store, branchId) {
|
|
13
14
|
const acc = [];
|
|
@@ -39,17 +40,19 @@ export default class PullCmd extends Command {
|
|
|
39
40
|
async run() {
|
|
40
41
|
const { flags } = await this.parse(PullCmd);
|
|
41
42
|
const config = loadConfig();
|
|
42
|
-
const remoteUrl = flags.remote ?? config.remote;
|
|
43
|
-
if (!remoteUrl) {
|
|
44
|
-
this.error('No remote configured. Add "remote": "<url>" to .contextgit/config.json or pass --remote.');
|
|
45
|
-
}
|
|
46
43
|
const local = new LocalStore(config.projectId);
|
|
47
|
-
const remote =
|
|
44
|
+
const remote = resolveRemoteStore(config, flags.remote);
|
|
48
45
|
const dryRun = flags['dry-run'];
|
|
49
46
|
// Verify project exists on remote
|
|
50
47
|
const remoteProject = await remote.getProject(config.projectId).catch(() => null);
|
|
51
48
|
if (!remoteProject) {
|
|
52
|
-
this.error(`Project ${config.projectId} not found on remote
|
|
49
|
+
this.error(`Project ${config.projectId} not found on remote. Push first.`);
|
|
50
|
+
}
|
|
51
|
+
// Ensure project exists locally before creating branches (FK requirement)
|
|
52
|
+
const localProject = await local.getProject(config.projectId).catch(() => null);
|
|
53
|
+
if (!localProject && !dryRun) {
|
|
54
|
+
await local.createProject({ id: config.projectId, name: config.project });
|
|
55
|
+
this.log(`[project] created locally: ${config.project}`);
|
|
53
56
|
}
|
|
54
57
|
// List all remote branches
|
|
55
58
|
const remoteBranches = await remote.listBranches(config.projectId);
|
|
@@ -74,7 +77,8 @@ export default class PullCmd extends Command {
|
|
|
74
77
|
const localCommitIds = new Set(localCommits.map(c => c.id));
|
|
75
78
|
// Pull missing commits from remote
|
|
76
79
|
const remoteCommits = await allCommits(remote, branch.id);
|
|
77
|
-
|
|
80
|
+
// Reverse to pull oldest-first — parent_id FK requires parent to exist before child
|
|
81
|
+
const missing = remoteCommits.filter(c => !localCommitIds.has(c.id)).reverse();
|
|
78
82
|
if (missing.length === 0) {
|
|
79
83
|
this.log(`[branch] ${branch.name}: up to date (${remoteCommits.length} commits)`);
|
|
80
84
|
continue;
|
|
@@ -117,7 +121,7 @@ export default class PullCmd extends Command {
|
|
|
117
121
|
this.log(` ${dryRun ? 'would pull' : 'pulled'}: ${thread.description}`);
|
|
118
122
|
}
|
|
119
123
|
}
|
|
120
|
-
this.log(`\nDone. ${dryRun ? '(dry run) ' : ''}${totalPulled} commit(s), ${missingThreads.length} thread(s) pulled
|
|
124
|
+
this.log(`\nDone. ${dryRun ? '(dry run) ' : ''}${totalPulled} commit(s), ${missingThreads.length} thread(s) pulled.`);
|
|
121
125
|
}
|
|
122
126
|
}
|
|
123
127
|
//# sourceMappingURL=pull.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,EAAE;AACF,gDAAgD;AAChD,aAAa;AACb,mEAAmE;AACnE,4DAA4D;AAC5D,+EAA+E;AAE/E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../../src/commands/pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAA;AA0B5C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAA0D;IAE5E,MAAM,CAAC,KAAK;;;MAUX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0G3B"}
|
package/dist/commands/push.js
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
// 2. For each local branch: ensure branch exists on remote
|
|
7
7
|
// 3. For each branch: collect local commits not present on remote, POST them
|
|
8
8
|
import { Command, Flags } from '@oclif/core';
|
|
9
|
-
import { LocalStore
|
|
9
|
+
import { LocalStore } from '@contextgit/store';
|
|
10
10
|
import { loadConfig } from '../config.js';
|
|
11
|
+
import { resolveRemoteStore } from '../lib/remote-store.js';
|
|
11
12
|
const PAGE = 100;
|
|
12
13
|
async function allCommits(store, branchId) {
|
|
13
14
|
const acc = [];
|
|
@@ -39,12 +40,8 @@ export default class PushCmd extends Command {
|
|
|
39
40
|
async run() {
|
|
40
41
|
const { flags } = await this.parse(PushCmd);
|
|
41
42
|
const config = loadConfig();
|
|
42
|
-
const remoteUrl = flags.remote ?? config.remote;
|
|
43
|
-
if (!remoteUrl) {
|
|
44
|
-
this.error('No remote configured. Use: contextgit set-remote <url>', { exit: 1 });
|
|
45
|
-
}
|
|
46
43
|
const local = new LocalStore(config.projectId);
|
|
47
|
-
const remote =
|
|
44
|
+
const remote = resolveRemoteStore(config, flags.remote);
|
|
48
45
|
const dryRun = flags['dry-run'];
|
|
49
46
|
// 1. Ensure project on remote
|
|
50
47
|
const existingProject = await remote.getProject(config.projectId).catch(() => null);
|
|
@@ -86,7 +83,8 @@ export default class PushCmd extends Command {
|
|
|
86
83
|
}
|
|
87
84
|
// Push missing commits
|
|
88
85
|
const localCommits = await allCommits(local, branch.id);
|
|
89
|
-
|
|
86
|
+
// Reverse to push oldest-first — parent_id FK requires parent to exist before child
|
|
87
|
+
const missing = localCommits.filter(c => !remoteCommitIds.has(c.id)).reverse();
|
|
90
88
|
if (missing.length === 0) {
|
|
91
89
|
this.log(`[branch] ${branch.name}: up to date (${localCommits.length} commits)`);
|
|
92
90
|
continue;
|
|
@@ -135,7 +133,7 @@ export default class PushCmd extends Command {
|
|
|
135
133
|
this.log(` ${dryRun ? 'would push' : 'pushed'}: ${thread.description}`);
|
|
136
134
|
}
|
|
137
135
|
}
|
|
138
|
-
this.log(`\nDone. ${dryRun ? '(dry run) ' : ''}${totalPushed} commit(s), ${missingThreads.length} thread(s) pushed
|
|
136
|
+
this.log(`\nDone. ${dryRun ? '(dry run) ' : ''}${totalPushed} commit(s), ${missingThreads.length} thread(s) pushed.`);
|
|
139
137
|
}
|
|
140
138
|
}
|
|
141
139
|
//# sourceMappingURL=push.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,EAAE;AACF,gDAAgD;AAChD,aAAa;AACb,2DAA2D;AAC3D,6DAA6D;AAC7D,+EAA+E;AAE/E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../../src/commands/push.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import { Command } from '@oclif/core';
|
|
|
2
2
|
export default class SetRemoteCmd extends Command {
|
|
3
3
|
static description: string;
|
|
4
4
|
static args: {
|
|
5
|
-
|
|
5
|
+
typeOrUrl: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
|
|
6
|
+
url: import("@oclif/core/lib/interfaces/parser.js").Arg<string | undefined, Record<string, unknown>>;
|
|
6
7
|
};
|
|
7
8
|
run(): Promise<void>;
|
|
8
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-remote.d.ts","sourceRoot":"","sources":["../../src/commands/set-remote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"set-remote.d.ts","sourceRoot":"","sources":["../../src/commands/set-remote.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAQ,MAAM,aAAa,CAAA;AAG3C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SAAkE;IAEpF,MAAM,CAAC,IAAI;;;MASV;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwB3B"}
|
|
@@ -1,26 +1,48 @@
|
|
|
1
|
-
// set-remote —
|
|
1
|
+
// set-remote — configure push/pull remote target.
|
|
2
|
+
//
|
|
3
|
+
// Usage:
|
|
4
|
+
// contextgit set-remote supabase https://xyzproject.supabase.co
|
|
5
|
+
// → writes supabaseUrl to config. Key via SUPABASE_SERVICE_KEY env var.
|
|
6
|
+
// contextgit set-remote https://api.example.com
|
|
7
|
+
// → writes remote (HTTP RemoteStore URL) to config. Existing behaviour.
|
|
2
8
|
import { Command, Args } from '@oclif/core';
|
|
3
9
|
import { loadConfig, saveConfig } from '../config.js';
|
|
4
10
|
export default class SetRemoteCmd extends Command {
|
|
5
|
-
static description = 'Set the remote
|
|
11
|
+
static description = 'Set the remote push/pull target (Supabase or self-hosted API)';
|
|
6
12
|
static args = {
|
|
7
|
-
|
|
8
|
-
description: '
|
|
13
|
+
typeOrUrl: Args.string({
|
|
14
|
+
description: '"supabase" keyword, or an HTTP API URL',
|
|
9
15
|
required: true,
|
|
10
16
|
}),
|
|
17
|
+
url: Args.string({
|
|
18
|
+
description: 'Supabase project URL (required when first arg is "supabase")',
|
|
19
|
+
required: false,
|
|
20
|
+
}),
|
|
11
21
|
};
|
|
12
22
|
async run() {
|
|
13
23
|
const { args } = await this.parse(SetRemoteCmd);
|
|
14
24
|
const config = loadConfig();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
if (args.typeOrUrl === 'supabase') {
|
|
26
|
+
if (!args.url) {
|
|
27
|
+
this.error('URL required: contextgit set-remote supabase <url>', { exit: 1 });
|
|
28
|
+
}
|
|
29
|
+
saveConfig({ supabaseUrl: args.url }); // saveConfig merges internally — spread not needed
|
|
30
|
+
this.log(`Supabase remote set: ${args.url}`);
|
|
31
|
+
this.log(`Set SUPABASE_SERVICE_KEY in your shell to authenticate.`);
|
|
32
|
+
this.log(`Run 'contextgit push' to sync commits to Supabase.`);
|
|
19
33
|
}
|
|
20
34
|
else {
|
|
21
|
-
|
|
35
|
+
const url = args.typeOrUrl;
|
|
36
|
+
const previous = config.remote;
|
|
37
|
+
saveConfig({ remote: url }); // saveConfig merges internally — spread not needed
|
|
38
|
+
if (previous) {
|
|
39
|
+
this.log(`Remote updated: ${previous} → ${url}`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.log(`Remote set: ${url}`);
|
|
43
|
+
}
|
|
44
|
+
this.log(`Use 'contextgit push' to sync commits to this remote.`);
|
|
22
45
|
}
|
|
23
|
-
this.log(`Use 'contextgit push' to sync commits to this remote.`);
|
|
24
46
|
}
|
|
25
47
|
}
|
|
26
48
|
//# sourceMappingURL=set-remote.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-remote.js","sourceRoot":"","sources":["../../src/commands/set-remote.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"set-remote.js","sourceRoot":"","sources":["../../src/commands/set-remote.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,EAAE;AACF,SAAS;AACT,kEAAkE;AAClE,4EAA4E;AAC5E,kDAAkD;AAClD,4EAA4E;AAE5E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,GAAG,+DAA+D,CAAA;IAEpF,MAAM,CAAC,IAAI,GAAG;QACZ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;YACrB,WAAW,EAAE,wCAAwC;YACrD,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YACf,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAA;QAE3B,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,oDAAoD,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAC/E,CAAC;YACD,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA,CAAG,mDAAmD;YAC3F,IAAI,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YAC5C,IAAI,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;YACnE,IAAI,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;YAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA,CAAa,mDAAmD;YAC3F,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,mBAAmB,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAA;YAChC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;QACnE,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-remote.test.d.ts","sourceRoot":"","sources":["../../src/commands/set-remote.test.ts"],"names":[],"mappings":""}
|