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.
Files changed (47) hide show
  1. package/dist/commands/doctor.d.ts.map +1 -1
  2. package/dist/commands/doctor.js +32 -0
  3. package/dist/commands/doctor.js.map +1 -1
  4. package/dist/commands/doctor.test.d.ts +2 -0
  5. package/dist/commands/doctor.test.d.ts.map +1 -0
  6. package/dist/commands/doctor.test.js +29 -0
  7. package/dist/commands/doctor.test.js.map +1 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +36 -121
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/pull.d.ts.map +1 -1
  12. package/dist/commands/pull.js +13 -9
  13. package/dist/commands/pull.js.map +1 -1
  14. package/dist/commands/push.d.ts.map +1 -1
  15. package/dist/commands/push.js +6 -8
  16. package/dist/commands/push.js.map +1 -1
  17. package/dist/commands/set-remote.d.ts +2 -1
  18. package/dist/commands/set-remote.d.ts.map +1 -1
  19. package/dist/commands/set-remote.js +32 -10
  20. package/dist/commands/set-remote.js.map +1 -1
  21. package/dist/commands/set-remote.test.d.ts +2 -0
  22. package/dist/commands/set-remote.test.d.ts.map +1 -0
  23. package/dist/commands/set-remote.test.js +37 -0
  24. package/dist/commands/set-remote.test.js.map +1 -0
  25. package/dist/lib/client-config.d.ts +1 -18
  26. package/dist/lib/client-config.d.ts.map +1 -1
  27. package/dist/lib/client-config.js +1 -73
  28. package/dist/lib/client-config.js.map +1 -1
  29. package/dist/lib/client-config.test.js +1 -96
  30. package/dist/lib/client-config.test.js.map +1 -1
  31. package/dist/lib/init-helpers.d.ts +24 -0
  32. package/dist/lib/init-helpers.d.ts.map +1 -0
  33. package/dist/lib/init-helpers.js +185 -0
  34. package/dist/lib/init-helpers.js.map +1 -0
  35. package/dist/lib/init-helpers.test.d.ts +2 -0
  36. package/dist/lib/init-helpers.test.d.ts.map +1 -0
  37. package/dist/lib/init-helpers.test.js +73 -0
  38. package/dist/lib/init-helpers.test.js.map +1 -0
  39. package/dist/lib/remote-store.d.ts +4 -0
  40. package/dist/lib/remote-store.d.ts.map +1 -0
  41. package/dist/lib/remote-store.js +28 -0
  42. package/dist/lib/remote-store.js.map +1 -0
  43. package/dist/lib/remote-store.test.d.ts +2 -0
  44. package/dist/lib/remote-store.test.d.ts.map +1 -0
  45. package/dist/lib/remote-store.test.js +40 -0
  46. package/dist/lib/remote-store.test.js.map +1 -0
  47. 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;CAoF3B"}
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"}
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=doctor.test.d.ts.map
@@ -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;AAyD5C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAA0C;IAE5D,MAAM,CAAC,KAAK;;;MAWX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwJ3B"}
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"}
@@ -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 { detectClients, injectMcpServer } from '../lib/client-config.js';
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
- writeSystemPrompt(promptPath);
139
- this.log(`Initialized ContextGit for project: ${projectName}`);
140
- this.log(`Project ID: ${projectId}`);
141
- this.log(`Branch: ${gitBranch}`);
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(`Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)`);
112
+ this.log(`✅ Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)`);
153
113
  }
154
114
  else {
155
- this.log(`Skipped hooks. Run "contextgit init --hooks" anytime to install them.`);
115
+ this.log(`⏭ Git hooks skipped (run "contextgit init --hooks" anytime to install)`);
156
116
  }
157
- this.log(``);
158
- this.log(`System prompt written to .contextgit/system-prompt.md`);
159
- this.log(``);
160
- // ── Auto-configure MCP clients ─────────────────────────────────────────────
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
- catch (err) {
209
- this.log(`⚠️ Could not auto-configure MCP clients: ${String(err)}`);
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":"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"}
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;AAwB5C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAsD;IAExE,MAAM,CAAC,KAAK;;;MAUX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAiG3B"}
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"}
@@ -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, RemoteStore } from '@contextgit/store';
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 = new RemoteStore(remoteUrl);
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 ${remoteUrl}. Push first.`);
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
- const missing = remoteCommits.filter(c => !localCommitIds.has(c.id));
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 from ${remoteUrl}`);
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":"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"}
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;AAwB5C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAA0D;IAE5E,MAAM,CAAC,KAAK;;;MAUX;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8G3B"}
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"}
@@ -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, RemoteStore } from '@contextgit/store';
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 = new RemoteStore(remoteUrl);
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
- const missing = localCommits.filter(c => !remoteCommitIds.has(c.id));
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 to ${remoteUrl}`);
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":"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"}
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
- url: import("@oclif/core/lib/interfaces/parser.js").Arg<string, Record<string, unknown>>;
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":"AAEA,OAAO,EAAE,OAAO,EAAQ,MAAM,aAAa,CAAA;AAG3C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SAAgD;IAElE,MAAM,CAAC,IAAI;;MAKV;IAEK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAc3B"}
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 — write a remote ContextGit API URL to config.json.
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 ContextGit API URL in config';
11
+ static description = 'Set the remote push/pull target (Supabase or self-hosted API)';
6
12
  static args = {
7
- url: Args.string({
8
- description: 'Remote API URL (e.g. https://api.example.com)',
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
- const previous = config.remote;
16
- saveConfig({ remote: args.url });
17
- if (previous) {
18
- this.log(`Remote updated: ${previous} → ${args.url}`);
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
- this.log(`Remote set: ${args.url}`);
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,iEAAiE;AAEjE,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,6CAA6C,CAAA;IAElE,MAAM,CAAC,IAAI,GAAG;QACZ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YACf,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,IAAI;SACf,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,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAA;QAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QAEhC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,mBAAmB,QAAQ,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACvD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;QACrC,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IACnE,CAAC"}
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=set-remote.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-remote.test.d.ts","sourceRoot":"","sources":["../../src/commands/set-remote.test.ts"],"names":[],"mappings":""}