contextgit 0.1.2 → 0.1.4
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/init.d.ts.map +1 -1
- package/dist/commands/init.js +53 -86
- package/dist/commands/init.js.map +1 -1
- package/dist/lib/init-helpers.d.ts +2 -1
- package/dist/lib/init-helpers.d.ts.map +1 -1
- package/dist/lib/init-helpers.js +9 -6
- package/dist/lib/init-helpers.js.map +1 -1
- package/dist/lib/init-helpers.test.js +34 -1
- package/dist/lib/init-helpers.test.js.map +1 -1
- package/node_modules/@contextgit/mcp/dist/auto-snapshot.d.ts +30 -0
- package/node_modules/@contextgit/mcp/dist/auto-snapshot.d.ts.map +1 -0
- package/node_modules/@contextgit/mcp/dist/auto-snapshot.js +68 -0
- package/node_modules/@contextgit/mcp/dist/auto-snapshot.js.map +1 -0
- package/node_modules/@contextgit/mcp/dist/config.d.ts +17 -0
- package/node_modules/@contextgit/mcp/dist/config.d.ts.map +1 -0
- package/node_modules/@contextgit/mcp/dist/config.js +48 -0
- package/node_modules/@contextgit/mcp/dist/config.js.map +1 -0
- package/node_modules/@contextgit/mcp/dist/git-sync.d.ts +15 -0
- package/node_modules/@contextgit/mcp/dist/git-sync.d.ts.map +1 -0
- package/node_modules/@contextgit/mcp/dist/git-sync.js +87 -0
- package/node_modules/@contextgit/mcp/dist/git-sync.js.map +1 -0
- package/node_modules/@contextgit/mcp/dist/index.d.ts +3 -0
- package/node_modules/@contextgit/mcp/dist/index.d.ts.map +1 -0
- package/node_modules/@contextgit/mcp/dist/index.js +17 -0
- package/node_modules/@contextgit/mcp/dist/index.js.map +1 -0
- package/node_modules/@contextgit/mcp/dist/server.d.ts +3 -0
- package/node_modules/@contextgit/mcp/dist/server.d.ts.map +1 -0
- package/node_modules/@contextgit/mcp/dist/server.js +377 -0
- package/node_modules/@contextgit/mcp/dist/server.js.map +1 -0
- package/node_modules/@contextgit/mcp/package.json +31 -0
- package/node_modules/@contextgit/mcp/src/auto-snapshot.ts +83 -0
- package/node_modules/@contextgit/mcp/src/config.ts +53 -0
- package/node_modules/@contextgit/mcp/src/git-sync.ts +94 -0
- package/node_modules/@contextgit/mcp/src/index.ts +19 -0
- package/node_modules/@contextgit/mcp/src/server.ts +568 -0
- package/node_modules/@contextgit/mcp/tsconfig.json +9 -0
- package/package.json +13 -10
|
@@ -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;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;
|
|
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;CAqH3B"}
|
package/dist/commands/init.js
CHANGED
|
@@ -47,27 +47,7 @@ export default class Init extends Command {
|
|
|
47
47
|
installGitHooks(cwd);
|
|
48
48
|
this.log('Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)');
|
|
49
49
|
}
|
|
50
|
-
|
|
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
|
-
}
|
|
59
|
-
const mcpResult = registerMcp();
|
|
60
|
-
if (mcpResult.status === 'registered') {
|
|
61
|
-
this.log(`✅ MCP server registered (~/.claude.json)`);
|
|
62
|
-
}
|
|
63
|
-
const gitignoreResult = patchGitignore(cwd);
|
|
64
|
-
if (gitignoreResult.status === 'patched' || gitignoreResult.status === 'created') {
|
|
65
|
-
this.log(`✅ .gitignore updated (context DB committed to git)`);
|
|
66
|
-
}
|
|
67
|
-
const hooksResult = patchClaudeSettings(cwd);
|
|
68
|
-
if (hooksResult.status === 'patched') {
|
|
69
|
-
this.log(`✅ Claude hooks installed (.claude/settings.json)`);
|
|
70
|
-
}
|
|
50
|
+
runSetupHelpers(cwd, this.log.bind(this));
|
|
71
51
|
this.log('ContextGit already initialized. Config found at .contextgit/config.json');
|
|
72
52
|
return;
|
|
73
53
|
}
|
|
@@ -87,26 +67,7 @@ export default class Init extends Command {
|
|
|
87
67
|
installGitHooks(cwd);
|
|
88
68
|
this.log('Git hooks installed (.git/hooks/post-commit, post-checkout, post-merge)');
|
|
89
69
|
}
|
|
90
|
-
|
|
91
|
-
if (gitignoreResultRecreate.status === 'patched' || gitignoreResultRecreate.status === 'created') {
|
|
92
|
-
this.log(`✅ .gitignore updated (context DB committed to git)`);
|
|
93
|
-
}
|
|
94
|
-
const claudeResultRecreate = writeClaude(cwd);
|
|
95
|
-
if (claudeResultRecreate.status === 'written') {
|
|
96
|
-
this.log(`✅ CLAUDE.md updated (contextgit memory section appended)`);
|
|
97
|
-
}
|
|
98
|
-
const skillsResultRecreate = writeSkills(cwd);
|
|
99
|
-
if (skillsResultRecreate.status === 'written') {
|
|
100
|
-
this.log(`✅ Skills installed (.claude/skills/context-commit, .claude/skills/context-branch)`);
|
|
101
|
-
}
|
|
102
|
-
const mcpResultRecreate = registerMcp();
|
|
103
|
-
if (mcpResultRecreate.status === 'registered') {
|
|
104
|
-
this.log(`✅ MCP server registered (~/.claude.json)`);
|
|
105
|
-
}
|
|
106
|
-
const hooksResultRecreate = patchClaudeSettings(cwd);
|
|
107
|
-
if (hooksResultRecreate.status === 'patched') {
|
|
108
|
-
this.log(`✅ Claude hooks installed (.claude/settings.json)`);
|
|
109
|
-
}
|
|
70
|
+
runSetupHelpers(cwd, this.log.bind(this));
|
|
110
71
|
return;
|
|
111
72
|
}
|
|
112
73
|
// ── Fresh init ─────────────────────────────────────────────────────────────
|
|
@@ -134,7 +95,7 @@ export default class Init extends Command {
|
|
|
134
95
|
embeddingModel: 'local',
|
|
135
96
|
};
|
|
136
97
|
writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
|
|
137
|
-
this.log(`✅ Project initialized (.contextgit.json)`);
|
|
98
|
+
this.log(`✅ Project initialized (.contextgit/config.json)`);
|
|
138
99
|
this.log(` Project: ${projectName}`);
|
|
139
100
|
this.log(` ID: ${projectId}`);
|
|
140
101
|
this.log(` Branch: ${gitBranch}`);
|
|
@@ -159,54 +120,60 @@ export default class Init extends Command {
|
|
|
159
120
|
else {
|
|
160
121
|
this.log(`⏭ Git hooks skipped (run "contextgit init --hooks" anytime to install)`);
|
|
161
122
|
}
|
|
162
|
-
|
|
163
|
-
const claudeResult = writeClaude(cwd);
|
|
164
|
-
if (claudeResult.status === 'written') {
|
|
165
|
-
this.log(`✅ CLAUDE.md updated (contextgit memory section appended)`);
|
|
166
|
-
}
|
|
167
|
-
else if (claudeResult.status === 'already-present') {
|
|
168
|
-
this.log(`⏭ CLAUDE.md already configured (skipped)`);
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
this.log(`⚠️ CLAUDE.md not updated (${claudeResult.reason})`);
|
|
172
|
-
}
|
|
173
|
-
// ── Write project-level skills ─────────────────────────────────────────────
|
|
174
|
-
const skillsResult = writeSkills(cwd);
|
|
175
|
-
if (skillsResult.status === 'written') {
|
|
176
|
-
this.log(`✅ Skills installed (.claude/skills/context-commit, .claude/skills/context-branch)`);
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
this.log(`⚠️ Skills not installed (could not write to .claude/skills/ — create manually)`);
|
|
180
|
-
}
|
|
181
|
-
// ── Register MCP server in ~/.claude.json ──────────────────────────────────
|
|
182
|
-
const mcpResult = registerMcp();
|
|
183
|
-
if (mcpResult.status === 'registered') {
|
|
184
|
-
this.log(`✅ MCP server registered (~/.claude.json)`);
|
|
185
|
-
}
|
|
186
|
-
else if (mcpResult.status === 'already-present') {
|
|
187
|
-
this.log(`⏭ MCP server already registered (skipped)`);
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
this.log(`⚠️ MCP server not registered (${mcpResult.reason})`);
|
|
191
|
-
this.log(` Add manually: contextgit-mcp in ~/.claude.json mcpServers`);
|
|
192
|
-
}
|
|
193
|
-
// ── Install Claude Code hooks ──────────────────────────────────────────────
|
|
194
|
-
const hooksResult = patchClaudeSettings(cwd);
|
|
195
|
-
if (hooksResult.status === 'patched') {
|
|
196
|
-
this.log(`✅ Claude hooks installed (.claude/settings.json)`);
|
|
197
|
-
}
|
|
198
|
-
else if (hooksResult.status === 'already-present') {
|
|
199
|
-
this.log(`⏭ Claude hooks already configured (skipped)`);
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
this.log(`⚠️ Claude hooks not installed (${hooksResult.reason})`);
|
|
203
|
-
}
|
|
123
|
+
runSetupHelpers(cwd, this.log.bind(this), { verbose: true });
|
|
204
124
|
this.log(``);
|
|
205
|
-
this.log(`ContextGit is ready
|
|
206
|
-
this.log(
|
|
125
|
+
this.log(`ContextGit is ready.`);
|
|
126
|
+
this.log(`⚠️ Restart Claude Code (or any MCP client) for the MCP server to take effect.`);
|
|
127
|
+
this.log(`The agent will call project_memory_load automatically at session start.`);
|
|
207
128
|
}
|
|
208
129
|
}
|
|
209
130
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
131
|
+
/**
|
|
132
|
+
* Run all idempotent setup helpers (CLAUDE.md, skills, MCP, Claude hooks).
|
|
133
|
+
* Called from all three init paths (fresh, already-initialized, self-heal).
|
|
134
|
+
* In verbose mode, logs skipped/error states in addition to success states.
|
|
135
|
+
*/
|
|
136
|
+
function runSetupHelpers(cwd, log, opts = {}) {
|
|
137
|
+
const { verbose = false } = opts;
|
|
138
|
+
const claudeResult = writeClaude(cwd);
|
|
139
|
+
if (claudeResult.status === 'written') {
|
|
140
|
+
log(`✅ CLAUDE.md updated (contextgit memory section appended)`);
|
|
141
|
+
}
|
|
142
|
+
else if (verbose && claudeResult.status === 'already-present') {
|
|
143
|
+
log(`⏭ CLAUDE.md already configured (skipped)`);
|
|
144
|
+
}
|
|
145
|
+
else if (verbose) {
|
|
146
|
+
log(`⚠️ CLAUDE.md not updated (${claudeResult.reason})`);
|
|
147
|
+
}
|
|
148
|
+
const skillsResult = writeSkills(cwd);
|
|
149
|
+
if (skillsResult.status === 'written') {
|
|
150
|
+
log(`✅ Skills installed (.claude/skills/context-commit, .claude/skills/context-branch)`);
|
|
151
|
+
}
|
|
152
|
+
else if (verbose) {
|
|
153
|
+
log(`⚠️ Skills not installed (could not write to .claude/skills/ — create manually)`);
|
|
154
|
+
}
|
|
155
|
+
const mcpResult = registerMcp();
|
|
156
|
+
if (mcpResult.status === 'registered') {
|
|
157
|
+
log(`✅ MCP server registered (~/.claude.json)`);
|
|
158
|
+
}
|
|
159
|
+
else if (verbose && mcpResult.status === 'already-present') {
|
|
160
|
+
log(`⏭ MCP server already registered (skipped)`);
|
|
161
|
+
}
|
|
162
|
+
else if (verbose) {
|
|
163
|
+
log(`⚠️ MCP server not registered (${mcpResult.reason})`);
|
|
164
|
+
log(` Add manually: contextgit-mcp in ~/.claude.json mcpServers`);
|
|
165
|
+
}
|
|
166
|
+
const hooksResult = patchClaudeSettings(cwd);
|
|
167
|
+
if (hooksResult.status === 'patched') {
|
|
168
|
+
log(`✅ Claude hooks installed (.claude/settings.json)`);
|
|
169
|
+
}
|
|
170
|
+
else if (verbose && hooksResult.status === 'already-present') {
|
|
171
|
+
log(`⏭ Claude hooks already configured (skipped)`);
|
|
172
|
+
}
|
|
173
|
+
else if (verbose) {
|
|
174
|
+
log(`⚠️ Claude hooks not installed (${hooksResult.reason})`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
210
177
|
async function detectGitBranch(cwd) {
|
|
211
178
|
try {
|
|
212
179
|
const git = simpleGit(cwd);
|
|
@@ -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,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAE7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAEnH,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,GAAG,uCAAuC,CAAA;IAE5D,MAAM,CAAC,KAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,WAAW,EAAE,+DAA+D;YAC5E,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,IAAI,EAAI,oDAAoD;SACtE,CAAC;KACH,CAAA;IAED,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,MAAM,SAAS,GAAI,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACjD,2DAA2D;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAA;QAEnG,8EAA8E;QAC9E,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,QAA0B,CAAA;YAC9B,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAqB,CAAA;YAC7E,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAA;YAChG,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;YAC9F,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAA;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAE5E,IAAI,MAAM,EAAE,CAAC;gBACX,oEAAoE;gBACpE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,eAAe,CAAC,GAAG,CAAC,CAAA;oBACpB,IAAI,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAA;gBACrF,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@ export declare const CONTEXT_BRANCH_SKILL = "---\nname: context-branch\ndescript
|
|
|
15
15
|
/**
|
|
16
16
|
* Register contextgit-mcp in ~/.claude.json under mcpServers.
|
|
17
17
|
* Idempotent — skips if the entry already exists.
|
|
18
|
+
* @param claudeJsonPath Override path for testing (defaults to ~/.claude.json)
|
|
18
19
|
* @returns 'registered' | 'already-present' | 'error'
|
|
19
20
|
*/
|
|
20
|
-
export declare function registerMcp(): {
|
|
21
|
+
export declare function registerMcp(claudeJsonPath?: string): {
|
|
21
22
|
status: 'registered' | 'already-present' | 'error';
|
|
22
23
|
reason?: string;
|
|
23
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AACnE,eAAO,MAAM,sBAAsB,4BAA4B,CAAA;AAE/D,eAAO,MAAM,kBAAkB,m0DAqD9B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBtE;AAID,eAAO,MAAM,oBAAoB,wnEA4ChC,CAAA;AAED,eAAO,MAAM,oBAAoB,y0DAkChC,CAAA;AAID
|
|
1
|
+
{"version":3,"file":"init-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,8BAA8B,CAAA;AACnE,eAAO,MAAM,sBAAsB,4BAA4B,CAAA;AAE/D,eAAO,MAAM,kBAAkB,m0DAqD9B,CAAA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAgBtE;AAID,eAAO,MAAM,oBAAoB,wnEA4ChC,CAAA;AAED,eAAO,MAAM,oBAAoB,y0DAkChC,CAAA;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,cAAc,SAAqC,GAClD;IAAE,MAAM,EAAE,YAAY,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAoBzE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAYlD;AAoCD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GACjB;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBtE;AAID;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,iBAAiB,GAAG,SAAS,CAAA;CAAE,CAiBjG"}
|
package/dist/lib/init-helpers.js
CHANGED
|
@@ -168,21 +168,24 @@ The failure note is as valuable as the success note. The next session needs to k
|
|
|
168
168
|
/**
|
|
169
169
|
* Register contextgit-mcp in ~/.claude.json under mcpServers.
|
|
170
170
|
* Idempotent — skips if the entry already exists.
|
|
171
|
+
* @param claudeJsonPath Override path for testing (defaults to ~/.claude.json)
|
|
171
172
|
* @returns 'registered' | 'already-present' | 'error'
|
|
172
173
|
*/
|
|
173
|
-
export function registerMcp() {
|
|
174
|
-
const claudeJsonPath = join(os.homedir(), '.claude.json');
|
|
174
|
+
export function registerMcp(claudeJsonPath = join(os.homedir(), '.claude.json')) {
|
|
175
175
|
try {
|
|
176
176
|
let json = {};
|
|
177
177
|
if (existsSync(claudeJsonPath)) {
|
|
178
178
|
json = JSON.parse(readFileSync(claudeJsonPath, 'utf-8'));
|
|
179
179
|
const servers = json['mcpServers'];
|
|
180
|
-
if (servers
|
|
180
|
+
if (typeof servers === 'object' && servers !== null && 'contextgit' in servers) {
|
|
181
181
|
return { status: 'already-present' };
|
|
182
|
+
}
|
|
182
183
|
}
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
184
|
+
const existing = typeof json['mcpServers'] === 'object' && json['mcpServers'] !== null
|
|
185
|
+
? json['mcpServers']
|
|
186
|
+
: {};
|
|
187
|
+
existing['contextgit'] = { command: 'contextgit-mcp', args: [], type: 'stdio' };
|
|
188
|
+
json['mcpServers'] = existing;
|
|
186
189
|
writeFileSync(claudeJsonPath, JSON.stringify(json, null, 2) + '\n');
|
|
187
190
|
return { status: 'registered' };
|
|
188
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-helpers.js","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAEzD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,IAAI,CAAA;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,iFAAiF;AAEjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAA;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAA;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDjC,CAAA;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,UAAkB;IAElB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IAChD,IAAI,CAAC;QACH,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAC/C,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAA;YACtC,CAAC;YACD,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,kBAAkB,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,UAAU,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,CAAA;QAC3D,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAA;IACjD,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CnC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCnC,CAAA;AAED,iFAAiF;AAEjF
|
|
1
|
+
{"version":3,"file":"init-helpers.js","sourceRoot":"","sources":["../../src/lib/init-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
|
2
2
|
import { mkdtempSync, rmSync, writeFileSync, readFileSync, existsSync } from 'fs';
|
|
3
3
|
import { tmpdir } from 'os';
|
|
4
4
|
import { join } from 'path';
|
|
5
|
-
import { writeClaude, writeSkills, patchGitignore, patchClaudeSettings, CLAUDE_MD_SENTINEL_START, CLAUDE_MD_SENTINEL_END, } from './init-helpers.js';
|
|
5
|
+
import { writeClaude, writeSkills, registerMcp, patchGitignore, patchClaudeSettings, CLAUDE_MD_SENTINEL_START, CLAUDE_MD_SENTINEL_END, } from './init-helpers.js';
|
|
6
6
|
let tmpDir;
|
|
7
7
|
beforeEach(() => {
|
|
8
8
|
tmpDir = mkdtempSync(join(tmpdir(), 'contextgit-init-test-'));
|
|
@@ -70,6 +70,39 @@ describe('writeSkills', () => {
|
|
|
70
70
|
expect(result.status).toBe('written');
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
|
+
// ── registerMcp ───────────────────────────────────────────────────────────────
|
|
74
|
+
describe('registerMcp', () => {
|
|
75
|
+
it('creates ~/.claude.json with contextgit entry when file does not exist', () => {
|
|
76
|
+
const claudeJsonPath = join(tmpDir, '.claude.json');
|
|
77
|
+
const result = registerMcp(claudeJsonPath);
|
|
78
|
+
expect(result.status).toBe('registered');
|
|
79
|
+
const json = JSON.parse(readFileSync(claudeJsonPath, 'utf-8'));
|
|
80
|
+
expect(json.mcpServers.contextgit).toEqual({ command: 'contextgit-mcp', args: [], type: 'stdio' });
|
|
81
|
+
});
|
|
82
|
+
it('adds contextgit entry to existing file without overwriting other keys', () => {
|
|
83
|
+
const claudeJsonPath = join(tmpDir, '.claude.json');
|
|
84
|
+
writeFileSync(claudeJsonPath, JSON.stringify({ theme: 'dark', mcpServers: { other: { command: 'other-mcp' } } }, null, 2));
|
|
85
|
+
const result = registerMcp(claudeJsonPath);
|
|
86
|
+
expect(result.status).toBe('registered');
|
|
87
|
+
const json = JSON.parse(readFileSync(claudeJsonPath, 'utf-8'));
|
|
88
|
+
expect(json.theme).toBe('dark');
|
|
89
|
+
expect(json.mcpServers.other).toBeDefined();
|
|
90
|
+
expect(json.mcpServers.contextgit).toEqual({ command: 'contextgit-mcp', args: [], type: 'stdio' });
|
|
91
|
+
});
|
|
92
|
+
it('returns already-present and does not mutate file when contextgit entry exists', () => {
|
|
93
|
+
const claudeJsonPath = join(tmpDir, '.claude.json');
|
|
94
|
+
const initial = { mcpServers: { contextgit: { command: 'contextgit-mcp', args: [], type: 'stdio' } } };
|
|
95
|
+
writeFileSync(claudeJsonPath, JSON.stringify(initial, null, 2));
|
|
96
|
+
const result = registerMcp(claudeJsonPath);
|
|
97
|
+
expect(result.status).toBe('already-present');
|
|
98
|
+
expect(JSON.parse(readFileSync(claudeJsonPath, 'utf-8'))).toEqual(initial);
|
|
99
|
+
});
|
|
100
|
+
it('returns error when file path is not writable', () => {
|
|
101
|
+
const result = registerMcp('/nonexistent-dir/that/cannot/exist/.claude.json');
|
|
102
|
+
expect(result.status).toBe('error');
|
|
103
|
+
expect(result.reason).toBeDefined();
|
|
104
|
+
});
|
|
105
|
+
});
|
|
73
106
|
// ── patchClaudeSettings ───────────────────────────────────────────────────────
|
|
74
107
|
describe('patchClaudeSettings', () => {
|
|
75
108
|
it('creates .claude/settings.json with both hooks when file does not exist', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-helpers.test.js","sourceRoot":"","sources":["../../src/lib/init-helpers.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init-helpers.test.js","sourceRoot":"","sources":["../../src/lib/init-helpers.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ContextEngine } from '@contextgit/core';
|
|
2
|
+
export interface AutoSnapshotOptions {
|
|
3
|
+
/** Number of non-commit tool calls before an auto-commit fires. Default: 10. */
|
|
4
|
+
interval?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class AutoSnapshotManager {
|
|
7
|
+
private count;
|
|
8
|
+
private readonly interval;
|
|
9
|
+
private readonly engine;
|
|
10
|
+
constructor(engine: ContextEngine, options?: AutoSnapshotOptions);
|
|
11
|
+
/**
|
|
12
|
+
* Record a tool call by name.
|
|
13
|
+
*
|
|
14
|
+
* - `context_commit` resets the counter (manual commit; no auto-commit fired).
|
|
15
|
+
* - All other tool names increment the counter.
|
|
16
|
+
* - When the counter reaches `interval`, an auto-commit is fired and the
|
|
17
|
+
* counter resets to 0.
|
|
18
|
+
*
|
|
19
|
+
* Auto-commit failures are swallowed — the tool call is never blocked.
|
|
20
|
+
*
|
|
21
|
+
* @returns The new commit ID if an auto-commit was fired, otherwise undefined.
|
|
22
|
+
*/
|
|
23
|
+
onToolCall(toolName: string): Promise<string | undefined>;
|
|
24
|
+
/** Current tool-call count since the last commit (manual or auto). */
|
|
25
|
+
get toolCallCount(): number;
|
|
26
|
+
/** Manually reset the counter (e.g. after an out-of-band commit). */
|
|
27
|
+
reset(): void;
|
|
28
|
+
private fireAutoCommit;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=auto-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-snapshot.d.ts","sourceRoot":"","sources":["../src/auto-snapshot.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAAI;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,mBAAwB;IAKpE;;;;;;;;;;;OAWG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgB/D,sEAAsE;IACtE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,qEAAqE;IACrE,KAAK,IAAI,IAAI;YAMC,cAAc;CAa7B"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// auto-snapshot.ts — AutoSnapshotManager
|
|
2
|
+
//
|
|
3
|
+
// Tracks tool calls made to the MCP server and fires an automatic context_commit
|
|
4
|
+
// after every N=10 non-commit calls. This ensures context is preserved even when
|
|
5
|
+
// the agent forgets to call context_commit manually.
|
|
6
|
+
//
|
|
7
|
+
// Context tool semantics:
|
|
8
|
+
// context_commit → resets the counter (manual commit = checkpoint reached)
|
|
9
|
+
// context_get → counted (each session-start snapshot counts toward the interval)
|
|
10
|
+
// context_search → counted
|
|
11
|
+
// any other tool → counted (future tools)
|
|
12
|
+
export class AutoSnapshotManager {
|
|
13
|
+
count = 0;
|
|
14
|
+
interval;
|
|
15
|
+
engine;
|
|
16
|
+
constructor(engine, options = {}) {
|
|
17
|
+
this.engine = engine;
|
|
18
|
+
this.interval = options.interval ?? 10;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Record a tool call by name.
|
|
22
|
+
*
|
|
23
|
+
* - `context_commit` resets the counter (manual commit; no auto-commit fired).
|
|
24
|
+
* - All other tool names increment the counter.
|
|
25
|
+
* - When the counter reaches `interval`, an auto-commit is fired and the
|
|
26
|
+
* counter resets to 0.
|
|
27
|
+
*
|
|
28
|
+
* Auto-commit failures are swallowed — the tool call is never blocked.
|
|
29
|
+
*
|
|
30
|
+
* @returns The new commit ID if an auto-commit was fired, otherwise undefined.
|
|
31
|
+
*/
|
|
32
|
+
async onToolCall(toolName) {
|
|
33
|
+
if (toolName === 'context_commit') {
|
|
34
|
+
this.count = 0;
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
this.count++;
|
|
38
|
+
if (this.count >= this.interval) {
|
|
39
|
+
this.count = 0;
|
|
40
|
+
return this.fireAutoCommit();
|
|
41
|
+
}
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
/** Current tool-call count since the last commit (manual or auto). */
|
|
45
|
+
get toolCallCount() {
|
|
46
|
+
return this.count;
|
|
47
|
+
}
|
|
48
|
+
/** Manually reset the counter (e.g. after an out-of-band commit). */
|
|
49
|
+
reset() {
|
|
50
|
+
this.count = 0;
|
|
51
|
+
}
|
|
52
|
+
// ─── Private ──────────────────────────────────────────────────────────────
|
|
53
|
+
async fireAutoCommit() {
|
|
54
|
+
try {
|
|
55
|
+
const commit = await this.engine.commit({
|
|
56
|
+
message: `Auto-snapshot after ${this.interval} tool calls`,
|
|
57
|
+
content: `Automatic context checkpoint triggered after ${this.interval} tool calls without a manual context_commit.`,
|
|
58
|
+
commitType: 'auto',
|
|
59
|
+
});
|
|
60
|
+
return commit.id;
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
// Never block a tool call due to auto-snapshot failure.
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=auto-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-snapshot.js","sourceRoot":"","sources":["../src/auto-snapshot.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,iFAAiF;AACjF,iFAAiF;AACjF,qDAAqD;AACrD,EAAE;AACF,0BAA0B;AAC1B,8EAA8E;AAC9E,uFAAuF;AACvF,8BAA8B;AAC9B,6CAA6C;AAS7C,MAAM,OAAO,mBAAmB;IACtB,KAAK,GAAG,CAAC,CAAA;IACA,QAAQ,CAAQ;IAChB,MAAM,CAAe;IAEtC,YAAY,MAAqB,EAAE,UAA+B,EAAE;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAA;IACxC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,IAAI,QAAQ,KAAK,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;YACd,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,EAAE,CAAA;QAEZ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;YACd,OAAO,IAAI,CAAC,cAAc,EAAE,CAAA;QAC9B,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,sEAAsE;IACtE,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,qEAAqE;IACrE,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;IAChB,CAAC;IAED,6EAA6E;IAErE,KAAK,CAAC,cAAc;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACtC,OAAO,EAAE,uBAAuB,IAAI,CAAC,QAAQ,aAAa;gBAC1D,OAAO,EAAE,gDAAgD,IAAI,CAAC,QAAQ,8CAA8C;gBACpH,UAAU,EAAE,MAAM;aACnB,CAAC,CAAA;YACF,OAAO,MAAM,CAAC,EAAE,CAAA;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ContextGitConfig } from '@contextgit/core';
|
|
2
|
+
export declare class ConfigNotFoundError extends Error {
|
|
3
|
+
constructor(startDir: string);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Search upward from `startDir` for `.contextgit/config.json`.
|
|
7
|
+
* Returns the first match found, or throws ConfigNotFoundError.
|
|
8
|
+
*/
|
|
9
|
+
export declare function findConfigPath(startDir?: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Load and parse `.contextgit/config.json`.
|
|
12
|
+
* Throws ConfigNotFoundError if not found, or Error if JSON is invalid.
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadConfig(startDir?: string): ContextGitConfig & {
|
|
15
|
+
configDir: string;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,QAAQ,EAAE,MAAM;CAI7B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAevE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAatF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// config.ts — load and validate .contextgit/config.json
|
|
2
|
+
// Searches from CWD upwards until it finds the config file.
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import { join, dirname } from 'path';
|
|
5
|
+
export class ConfigNotFoundError extends Error {
|
|
6
|
+
constructor(startDir) {
|
|
7
|
+
super(`No .contextgit/config.json found searching upward from: ${startDir}`);
|
|
8
|
+
this.name = 'ConfigNotFoundError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Search upward from `startDir` for `.contextgit/config.json`.
|
|
13
|
+
* Returns the first match found, or throws ConfigNotFoundError.
|
|
14
|
+
*/
|
|
15
|
+
export function findConfigPath(startDir = process.cwd()) {
|
|
16
|
+
let current = startDir;
|
|
17
|
+
while (true) {
|
|
18
|
+
const candidate = join(current, '.contextgit', 'config.json');
|
|
19
|
+
try {
|
|
20
|
+
readFileSync(candidate);
|
|
21
|
+
return candidate;
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
const parent = dirname(current);
|
|
25
|
+
if (parent === current) {
|
|
26
|
+
throw new ConfigNotFoundError(startDir);
|
|
27
|
+
}
|
|
28
|
+
current = parent;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Load and parse `.contextgit/config.json`.
|
|
34
|
+
* Throws ConfigNotFoundError if not found, or Error if JSON is invalid.
|
|
35
|
+
*/
|
|
36
|
+
export function loadConfig(startDir) {
|
|
37
|
+
const configPath = findConfigPath(startDir);
|
|
38
|
+
const raw = readFileSync(configPath, 'utf-8');
|
|
39
|
+
const config = JSON.parse(raw);
|
|
40
|
+
if (!config.projectId) {
|
|
41
|
+
throw new Error(`Invalid config at ${configPath}: missing required field 'projectId'`);
|
|
42
|
+
}
|
|
43
|
+
if (!config.project) {
|
|
44
|
+
throw new Error(`Invalid config at ${configPath}: missing required field 'project'`);
|
|
45
|
+
}
|
|
46
|
+
return { ...config, configDir: dirname(configPath) };
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,4DAA4D;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGpC,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,QAAgB;QAC1B,KAAK,CAAC,2DAA2D,QAAQ,EAAE,CAAC,CAAA;QAC5E,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC7D,IAAI,OAAO,GAAG,QAAQ,CAAA;IACtB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,aAAa,CAAC,CAAA;QAC7D,IAAI,CAAC;YACH,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,SAAS,CAAA;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;YAC/B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACvB,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAA;YACzC,CAAC;YACD,OAAO,GAAG,MAAM,CAAA;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,QAAiB;IAC1C,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC3C,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAA;IAElD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,sCAAsC,CAAC,CAAA;IACxF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,oCAAoC,CAAC,CAAA;IACtF,CAAC;IAED,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capture the current git commit SHA and branch name.
|
|
3
|
+
* Returns null on any error — must never block a context commit.
|
|
4
|
+
*/
|
|
5
|
+
export declare function captureGitMetadata(cwd: string): Promise<{
|
|
6
|
+
sha: string;
|
|
7
|
+
branch: string;
|
|
8
|
+
} | null>;
|
|
9
|
+
/**
|
|
10
|
+
* Install contextgit git hooks into <projectRoot>/.git/hooks/.
|
|
11
|
+
* Idempotent: checks for the sentinel comment before appending.
|
|
12
|
+
* Hook failures are logged to ~/.contextgit/hooks.log — never to stderr.
|
|
13
|
+
*/
|
|
14
|
+
export declare function installGitHooks(projectRoot: string): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=git-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-sync.d.ts","sourceRoot":"","sources":["../src/git-sync.ts"],"names":[],"mappings":"AAkBA;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAWjD;AAmBD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwBxE"}
|