@elliotding/ai-agent-mcp 0.1.21 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +450 -0
- package/ai-resource-telemetry.json +1 -1
- package/dist/git/multi-source-manager.d.ts.map +1 -1
- package/dist/git/multi-source-manager.js +157 -28
- package/dist/git/multi-source-manager.js.map +1 -1
- package/dist/prompts/generator.d.ts +1 -1
- package/dist/prompts/generator.d.ts.map +1 -1
- package/dist/prompts/generator.js +2 -0
- package/dist/prompts/generator.js.map +1 -1
- package/dist/prompts/manager.d.ts.map +1 -1
- package/dist/prompts/manager.js +3 -0
- package/dist/prompts/manager.js.map +1 -1
- package/dist/tools/sync-resources.d.ts +4 -0
- package/dist/tools/sync-resources.d.ts.map +1 -1
- package/dist/tools/sync-resources.js +64 -20
- package/dist/tools/sync-resources.js.map +1 -1
- package/dist/types/tools.d.ts +11 -7
- package/dist/types/tools.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/git/multi-source-manager.ts +164 -39
- package/src/prompts/generator.ts +2 -1
- package/src/prompts/manager.ts +3 -0
- package/src/tools/sync-resources.ts +77 -26
- package/src/types/tools.ts +11 -7
|
@@ -54,7 +54,6 @@ exports.syncResourcesTool = void 0;
|
|
|
54
54
|
exports.syncResources = syncResources;
|
|
55
55
|
const fs = __importStar(require("fs/promises"));
|
|
56
56
|
const path = __importStar(require("path"));
|
|
57
|
-
const crypto_1 = require("crypto");
|
|
58
57
|
const logger_1 = require("../utils/logger");
|
|
59
58
|
const client_1 = require("../api/client");
|
|
60
59
|
const multi_source_manager_1 = require("../git/multi-source-manager");
|
|
@@ -66,10 +65,6 @@ const downloadCache = new Map();
|
|
|
66
65
|
function syncCacheKey(userToken, resourceId) {
|
|
67
66
|
return `${userToken}::${resourceId}`;
|
|
68
67
|
}
|
|
69
|
-
/** Compute SHA-256 hex digest of a UTF-8 string. */
|
|
70
|
-
function sha256(content) {
|
|
71
|
-
return (0, crypto_1.createHash)('sha256').update(content, 'utf8').digest('hex');
|
|
72
|
-
}
|
|
73
68
|
/**
|
|
74
69
|
* Extract the `description` field from YAML frontmatter in a Markdown file.
|
|
75
70
|
* Frontmatter is delimited by leading `---` and closing `---` lines.
|
|
@@ -103,7 +98,13 @@ async function syncResources(params) {
|
|
|
103
98
|
const scope = typedParams.scope || 'global';
|
|
104
99
|
const types = typedParams.types;
|
|
105
100
|
const userToken = typedParams.user_token;
|
|
106
|
-
|
|
101
|
+
const configuredMcpServers = new Set(typedParams.configured_mcp_servers || []);
|
|
102
|
+
(0, logger_1.logToolStep)('sync_resources', 'Parameters validated', {
|
|
103
|
+
mode,
|
|
104
|
+
scope,
|
|
105
|
+
types,
|
|
106
|
+
configuredMcpCount: configuredMcpServers.size,
|
|
107
|
+
});
|
|
107
108
|
// ── Step 1: Fetch subscription list ────────────────────────────────────
|
|
108
109
|
(0, logger_1.logToolStep)('sync_resources', 'Step 1: Fetching subscriptions from API', { scope, types });
|
|
109
110
|
const t1 = Date.now();
|
|
@@ -368,6 +369,38 @@ async function syncResources(params) {
|
|
|
368
369
|
const mcpConfigFile = resourceFiles.find((f) => path.basename(f.path) === 'mcp-config.json');
|
|
369
370
|
// ~/.cursor/mcp.json on the user's machine
|
|
370
371
|
const mcpJsonPath = `${(0, cursor_paths_1.getCursorRootDirForClient)()}/mcp.json`;
|
|
372
|
+
// ── Optimization: skip if already configured (incremental mode only) ────
|
|
373
|
+
// In incremental mode, if the AI Agent reports this MCP server is already
|
|
374
|
+
// in ~/.cursor/mcp.json, skip downloading and generating write_file actions.
|
|
375
|
+
// This reduces API calls, network traffic, and AI Agent execution overhead.
|
|
376
|
+
// In full mode, always proceed to allow file recovery.
|
|
377
|
+
if (mode === 'incremental' && mcpConfigFile) {
|
|
378
|
+
let cfg = {};
|
|
379
|
+
try {
|
|
380
|
+
cfg = JSON.parse(mcpConfigFile.content);
|
|
381
|
+
}
|
|
382
|
+
catch { /* ignore parse errors, proceed to download */ }
|
|
383
|
+
// Format A: check if the single server is configured
|
|
384
|
+
if (typeof cfg['command'] === 'string') {
|
|
385
|
+
const serverName = cfg['name'] ?? sub.name;
|
|
386
|
+
if (configuredMcpServers.has(serverName)) {
|
|
387
|
+
logger_1.logger.info({ resourceId: sub.id, resourceName: sub.name, serverName }, 'sync_resources: MCP server already configured — skipping download');
|
|
388
|
+
tally.cached++;
|
|
389
|
+
details.push({ id: sub.id, name: sub.name, action: 'cached', version: resourceVersion });
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
// Format B: check if all servers in the map are configured
|
|
394
|
+
else if (Object.keys(cfg).length > 0) {
|
|
395
|
+
const allConfigured = Object.keys(cfg).every((k) => configuredMcpServers.has(k));
|
|
396
|
+
if (allConfigured) {
|
|
397
|
+
logger_1.logger.info({ resourceId: sub.id, resourceName: sub.name, serverKeys: Object.keys(cfg) }, 'sync_resources: All MCP servers already configured — skipping download');
|
|
398
|
+
tally.cached++;
|
|
399
|
+
details.push({ id: sub.id, name: sub.name, action: 'cached', version: resourceVersion });
|
|
400
|
+
continue;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
371
404
|
logger_1.logger.info({
|
|
372
405
|
resourceId: sub.id,
|
|
373
406
|
resourceName: sub.name,
|
|
@@ -392,13 +425,10 @@ async function syncResources(params) {
|
|
|
392
425
|
if (normalised.startsWith('..'))
|
|
393
426
|
continue;
|
|
394
427
|
const fileDest = `${installDir}/${normalised}`;
|
|
395
|
-
// Carry content_hash so the AI can skip the write when the
|
|
396
|
-
// local file already has identical content.
|
|
397
428
|
localActions.push({
|
|
398
429
|
action: 'write_file',
|
|
399
430
|
path: fileDest,
|
|
400
431
|
content: file.content,
|
|
401
|
-
content_hash: sha256(file.content),
|
|
402
432
|
});
|
|
403
433
|
writeActions.push(fileDest);
|
|
404
434
|
}
|
|
@@ -479,7 +509,6 @@ async function syncResources(params) {
|
|
|
479
509
|
action: 'write_file',
|
|
480
510
|
path: fileDest,
|
|
481
511
|
content: file.content,
|
|
482
|
-
content_hash: sha256(file.content),
|
|
483
512
|
});
|
|
484
513
|
writeActions.push(fileDest);
|
|
485
514
|
}
|
|
@@ -512,9 +541,12 @@ async function syncResources(params) {
|
|
|
512
541
|
continue;
|
|
513
542
|
}
|
|
514
543
|
// ── Rule resource ─────────────────────────────────────────────────────
|
|
515
|
-
// Return write_file actions; the AI
|
|
516
|
-
//
|
|
517
|
-
// the local file
|
|
544
|
+
// Return write_file actions; the AI Agent executes them on the user's
|
|
545
|
+
// LOCAL machine. The AI compares file content directly (string equality)
|
|
546
|
+
// against the existing local file and skips the write when content is
|
|
547
|
+
// identical — avoiding unnecessary disk I/O. If the local file is missing
|
|
548
|
+
// or has different content, the AI writes it unconditionally, which also
|
|
549
|
+
// recovers files that were accidentally deleted by the user.
|
|
518
550
|
if (sub.type === 'rule') {
|
|
519
551
|
const typeDir = (0, cursor_paths_1.getCursorTypeDirForClient)(sub.type);
|
|
520
552
|
const writeActions = [];
|
|
@@ -529,17 +561,17 @@ async function syncResources(params) {
|
|
|
529
561
|
action: 'write_file',
|
|
530
562
|
path: destPath,
|
|
531
563
|
content: file.content,
|
|
532
|
-
content_hash: sha256(file.content),
|
|
533
564
|
});
|
|
534
|
-
writeActions.push(destPath);
|
|
565
|
+
writeActions.push({ destPath, contentLength: file.content.length });
|
|
535
566
|
}
|
|
536
567
|
logger_1.logger.info({
|
|
537
568
|
resourceId: sub.id,
|
|
538
569
|
resourceName: sub.name,
|
|
539
570
|
typeDir,
|
|
540
571
|
fileCount: writeActions.length,
|
|
541
|
-
|
|
542
|
-
|
|
572
|
+
files: writeActions,
|
|
573
|
+
clientSideNote: 'AI will compare file content directly; write is skipped if content is identical',
|
|
574
|
+
}, 'sync_resources: Rule — write_file actions queued for AI (client-side content comparison)');
|
|
543
575
|
tally.synced++;
|
|
544
576
|
details.push({ id: sub.id, name: sub.name, action: 'synced', version: resourceVersion });
|
|
545
577
|
(0, logger_1.logToolStep)('sync_resources', 'Rule: write_file actions queued for AI', {
|
|
@@ -648,10 +680,15 @@ exports.syncResourcesTool = {
|
|
|
648
680
|
'write_file, merge_mcp_json, or other actions that the AI Agent MUST execute on the ' +
|
|
649
681
|
'USER\'S LOCAL MACHINE after receiving the response. ' +
|
|
650
682
|
'Execute every action in the list in order before reporting success to the user. ' +
|
|
683
|
+
'OPTIMIZATION: Before calling this tool in incremental mode, read ~/.cursor/mcp.json ' +
|
|
684
|
+
'and pass Object.keys(mcpServers || {}) as `configured_mcp_servers` parameter. ' +
|
|
685
|
+
'This allows the server to skip downloading MCP resources that are already configured, ' +
|
|
686
|
+
'significantly reducing API calls, network traffic, and local action overhead. ' +
|
|
651
687
|
'For write_file actions: ' +
|
|
652
|
-
' (1)
|
|
653
|
-
'
|
|
654
|
-
' (
|
|
688
|
+
' (1) Read the existing file at `path` (if it exists) using fs.readFile() or equivalent. ' +
|
|
689
|
+
' (2) Compare the file content directly (string equality) against the `content` field. ' +
|
|
690
|
+
' (3) SKIP the write if they are EXACTLY equal — the file is already up-to-date. ' +
|
|
691
|
+
' (4) Otherwise, create any missing parent directories and write the file. ' +
|
|
655
692
|
'For merge_mcp_json actions: ' +
|
|
656
693
|
' (1) If the action has `skip_if_exists: true` AND `mcpServers[server_name]` already exists ' +
|
|
657
694
|
' in ~/.cursor/mcp.json, SKIP this action entirely — the server is already configured ' +
|
|
@@ -682,6 +719,13 @@ exports.syncResourcesTool = {
|
|
|
682
719
|
description: 'DO NOT set this field — it is automatically injected by the MCP server from ' +
|
|
683
720
|
'the authenticated SSE connection. The server always provides the correct token.',
|
|
684
721
|
},
|
|
722
|
+
configured_mcp_servers: {
|
|
723
|
+
type: 'array',
|
|
724
|
+
description: 'List of MCP server names already configured in ~/.cursor/mcp.json. ' +
|
|
725
|
+
'In incremental mode, the server skips downloading these MCP resources to reduce overhead. ' +
|
|
726
|
+
'To populate this: read ~/.cursor/mcp.json and extract Object.keys(mcpServers || {}). ' +
|
|
727
|
+
'Example: ["github", "gitlab", "postgres"]. Ignored in full mode (always downloads).',
|
|
728
|
+
},
|
|
685
729
|
},
|
|
686
730
|
},
|
|
687
731
|
handler: syncResources,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-resources.js","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-resources.js","sourceRoot":"","sources":["../../src/tools/sync-resources.ts"],"names":[],"mappings":"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"}
|
package/dist/types/tools.d.ts
CHANGED
|
@@ -8,13 +8,6 @@ export interface WriteFileAction {
|
|
|
8
8
|
path: string;
|
|
9
9
|
/** UTF-8 file content to write. */
|
|
10
10
|
content: string;
|
|
11
|
-
/**
|
|
12
|
-
* SHA-256 hex digest of `content` (without leading "sha256:").
|
|
13
|
-
* When present, the AI MUST read the existing file at `path` (if any),
|
|
14
|
-
* compute its SHA-256, and SKIP the write if the digests match.
|
|
15
|
-
* This prevents redundant writes on incremental syncs.
|
|
16
|
-
*/
|
|
17
|
-
content_hash?: string;
|
|
18
11
|
}
|
|
19
12
|
export interface DeleteFileAction {
|
|
20
13
|
action: 'delete_file';
|
|
@@ -79,6 +72,17 @@ export interface SyncResourcesParams {
|
|
|
79
72
|
* makes API calls with their own identity.
|
|
80
73
|
*/
|
|
81
74
|
user_token?: string;
|
|
75
|
+
/**
|
|
76
|
+
* List of MCP server names that are already configured in the user's
|
|
77
|
+
* ~/.cursor/mcp.json. The server will skip downloading and generating
|
|
78
|
+
* write_file actions for these MCP resources to reduce overhead.
|
|
79
|
+
*
|
|
80
|
+
* Set this to the keys from mcpServers in ~/.cursor/mcp.json:
|
|
81
|
+
* Object.keys(JSON.parse(fs.readFileSync('~/.cursor/mcp.json')).mcpServers || {})
|
|
82
|
+
*
|
|
83
|
+
* Only applies in 'incremental' mode; 'full' mode always downloads everything.
|
|
84
|
+
*/
|
|
85
|
+
configured_mcp_servers?: string[];
|
|
82
86
|
}
|
|
83
87
|
export interface McpSetupItem {
|
|
84
88
|
/** MCP server name as it appears in mcp.json */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAc3C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -144,39 +144,120 @@ class MultiSourceGitManager {
|
|
|
144
144
|
try {
|
|
145
145
|
const git = simpleGit(repoPath);
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
// ── Step 1: read local HEAD commit before fetch ──────────────────────
|
|
148
|
+
let localHead = '<unknown>';
|
|
149
|
+
try {
|
|
150
|
+
localHead = (await git.revparse(['HEAD'])).trim();
|
|
151
|
+
} catch (e) {
|
|
152
|
+
logger.warn({ repoPath, error: (e as Error).message }, 'git pull: failed to read local HEAD');
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// ── Step 2: check current remotes ────────────────────────────────────
|
|
156
|
+
let remotes: Array<{ name: string; refs: { fetch: string; push: string } }> = [];
|
|
157
|
+
try {
|
|
158
|
+
remotes = await git.getRemotes(true);
|
|
159
|
+
} catch (e) {
|
|
160
|
+
logger.warn({ repoPath, error: (e as Error).message }, 'git pull: failed to list remotes');
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
logger.info({
|
|
164
|
+
repoPath,
|
|
165
|
+
branch,
|
|
166
|
+
localHead,
|
|
167
|
+
remotes: remotes.map((r) => ({ name: r.name, fetch: r.refs.fetch })),
|
|
168
|
+
}, 'git pull: starting — reading local state');
|
|
169
|
+
|
|
170
|
+
// ── Step 3: detect shallow repo ──────────────────────────────────────
|
|
171
|
+
let isShallow = false;
|
|
172
|
+
try {
|
|
173
|
+
isShallow = (await git.raw(['rev-parse', '--is-shallow-repository'])).trim() === 'true';
|
|
174
|
+
} catch (e) {
|
|
175
|
+
logger.warn({ repoPath, error: (e as Error).message }, 'git pull: failed to check shallow status — assuming not shallow');
|
|
176
|
+
}
|
|
148
177
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
178
|
+
logger.info({ repoPath, isShallow }, 'git pull: shallow-repository check complete');
|
|
179
|
+
|
|
180
|
+
// ── Step 4: fetch ─────────────────────────────────────────────────────
|
|
152
181
|
if (isShallow) {
|
|
153
|
-
logger.info({ repoPath }, '
|
|
154
|
-
|
|
182
|
+
logger.info({ repoPath, branch }, 'git pull: shallow repo detected — running fetch --unshallow');
|
|
183
|
+
try {
|
|
184
|
+
await git.fetch(['--unshallow', 'origin', branch]);
|
|
185
|
+
logger.info({ repoPath, branch }, 'git pull: fetch --unshallow succeeded');
|
|
186
|
+
} catch (fetchErr) {
|
|
187
|
+
logger.error({ repoPath, branch, error: (fetchErr as Error).message }, 'git pull: fetch --unshallow FAILED');
|
|
188
|
+
throw fetchErr;
|
|
189
|
+
}
|
|
155
190
|
} else {
|
|
156
|
-
|
|
157
|
-
|
|
191
|
+
logger.info({ repoPath, branch }, 'git pull: running fetch origin');
|
|
192
|
+
try {
|
|
193
|
+
await git.fetch(['origin', branch]);
|
|
194
|
+
logger.info({ repoPath, branch }, 'git pull: fetch origin succeeded');
|
|
195
|
+
} catch (fetchErr) {
|
|
196
|
+
logger.error({ repoPath, branch, error: (fetchErr as Error).message }, 'git pull: fetch origin FAILED');
|
|
197
|
+
throw fetchErr;
|
|
198
|
+
}
|
|
158
199
|
}
|
|
159
200
|
|
|
160
|
-
//
|
|
201
|
+
// ── Step 5: read remote HEAD after fetch ─────────────────────────────
|
|
161
202
|
const remoteBranch = `origin/${branch}`;
|
|
162
|
-
|
|
203
|
+
let remoteHead = '<unknown>';
|
|
204
|
+
try {
|
|
205
|
+
remoteHead = (await git.revparse([remoteBranch])).trim();
|
|
206
|
+
} catch (e) {
|
|
207
|
+
logger.warn({ repoPath, remoteBranch, error: (e as Error).message }, 'git pull: failed to read remote HEAD after fetch');
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
logger.info({ repoPath, localHead, remoteHead, remoteBranch }, 'git pull: comparing local HEAD vs remote HEAD');
|
|
211
|
+
|
|
212
|
+
// ── Step 6: diff to detect actual file changes ────────────────────────
|
|
213
|
+
let diffSummary = { files: [] as { file: string }[], insertions: 0, deletions: 0 };
|
|
214
|
+
try {
|
|
215
|
+
diffSummary = await git.diffSummary([`HEAD...${remoteBranch}`]);
|
|
216
|
+
} catch (e) {
|
|
217
|
+
logger.warn({ repoPath, remoteBranch, error: (e as Error).message }, 'git pull: diffSummary failed — assuming no changes');
|
|
218
|
+
}
|
|
219
|
+
|
|
163
220
|
const hasChanges = diffSummary.files.length > 0;
|
|
164
221
|
|
|
222
|
+
logger.info({
|
|
223
|
+
repoPath,
|
|
224
|
+
branch,
|
|
225
|
+
remoteBranch,
|
|
226
|
+
hasChanges,
|
|
227
|
+
filesChanged: diffSummary.files.length,
|
|
228
|
+
changedFiles: diffSummary.files.map((f) => f.file),
|
|
229
|
+
insertions: diffSummary.insertions,
|
|
230
|
+
deletions: diffSummary.deletions,
|
|
231
|
+
}, hasChanges ? 'git pull: diff found changes — will merge' : 'git pull: repository is up-to-date');
|
|
232
|
+
|
|
165
233
|
if (!hasChanges) {
|
|
166
|
-
logger.info({ repoPath }, 'Repository is up-to-date, no changes to pull');
|
|
167
234
|
return { hasChanges: false, filesChanged: 0 };
|
|
168
235
|
}
|
|
169
236
|
|
|
170
|
-
//
|
|
171
|
-
logger.info({ repoPath, filesChanged: diffSummary.files.length }, '
|
|
172
|
-
|
|
237
|
+
// ── Step 7: fast-forward merge ────────────────────────────────────────
|
|
238
|
+
logger.info({ repoPath, remoteBranch, filesChanged: diffSummary.files.length }, 'git pull: running merge --ff-only');
|
|
239
|
+
try {
|
|
240
|
+
await git.merge([remoteBranch, '--ff-only']);
|
|
241
|
+
} catch (mergeErr) {
|
|
242
|
+
logger.error({ repoPath, remoteBranch, error: (mergeErr as Error).message }, 'git pull: merge --ff-only FAILED');
|
|
243
|
+
throw mergeErr;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
// ── Step 8: read new HEAD after merge ────────────────────────────────
|
|
247
|
+
let newHead = '<unknown>';
|
|
248
|
+
try {
|
|
249
|
+
newHead = (await git.revparse(['HEAD'])).trim();
|
|
250
|
+
} catch { /* non-critical */ }
|
|
173
251
|
|
|
174
252
|
logger.info({
|
|
175
253
|
repoPath,
|
|
254
|
+
branch,
|
|
255
|
+
prevHead: localHead,
|
|
256
|
+
newHead,
|
|
176
257
|
filesChanged: diffSummary.files.length,
|
|
177
258
|
insertions: diffSummary.insertions,
|
|
178
259
|
deletions: diffSummary.deletions,
|
|
179
|
-
}, '
|
|
260
|
+
}, 'git pull: repository updated successfully');
|
|
180
261
|
|
|
181
262
|
return { hasChanges: true, filesChanged: diffSummary.files.length };
|
|
182
263
|
} catch (error) {
|
|
@@ -190,63 +271,107 @@ class MultiSourceGitManager {
|
|
|
190
271
|
private async syncSource(source: SourceConfig): Promise<SyncResult> {
|
|
191
272
|
const startTime = Date.now();
|
|
192
273
|
const sourcePath = path.join(this.baseDir, source.path);
|
|
274
|
+
const branch = source.git_branch || 'main';
|
|
193
275
|
|
|
194
|
-
logger.info({
|
|
195
|
-
source: source.name,
|
|
276
|
+
logger.info({
|
|
277
|
+
source: source.name,
|
|
196
278
|
path: sourcePath,
|
|
197
|
-
priority: source.priority
|
|
279
|
+
priority: source.priority,
|
|
280
|
+
git_url: source.git_url ?? '(not configured)',
|
|
281
|
+
branch,
|
|
198
282
|
}, 'Syncing AI Resources source...');
|
|
199
283
|
|
|
200
284
|
try {
|
|
201
285
|
const exists = await this.repositoryExists(sourcePath);
|
|
202
286
|
|
|
287
|
+
logger.info({
|
|
288
|
+
source: source.name,
|
|
289
|
+
sourcePath,
|
|
290
|
+
repoExists: exists,
|
|
291
|
+
git_url: source.git_url ?? null,
|
|
292
|
+
branch,
|
|
293
|
+
}, 'syncSource: repository existence check complete');
|
|
294
|
+
|
|
203
295
|
if (!exists) {
|
|
204
|
-
// First time: clone repository
|
|
205
296
|
if (!source.git_url) {
|
|
206
|
-
|
|
297
|
+
// No git_url means the directory is Docker-mounted or manually placed —
|
|
298
|
+
// files should already be present on disk. Skip clone and let
|
|
299
|
+
// readResourceFiles serve them directly.
|
|
300
|
+
logger.warn({
|
|
301
|
+
source: source.name,
|
|
302
|
+
sourcePath,
|
|
303
|
+
reason: 'git_url not configured in ai-resources-config.json',
|
|
304
|
+
hint: 'If the directory is Docker-mounted, git pull must be done manually or configured with a git_url.',
|
|
305
|
+
}, 'Source has no git_url configured, skipping clone');
|
|
207
306
|
return {
|
|
208
307
|
source: source.name,
|
|
209
308
|
action: 'skipped',
|
|
210
309
|
changes: 0,
|
|
211
|
-
duration: Date.now() - startTime
|
|
310
|
+
duration: Date.now() - startTime,
|
|
212
311
|
};
|
|
213
312
|
}
|
|
214
313
|
|
|
215
|
-
logger.info({ source: source.name }, 'Repository does not exist, cloning...');
|
|
216
|
-
await this.cloneRepository(
|
|
217
|
-
|
|
218
|
-
sourcePath,
|
|
219
|
-
source.git_branch || 'main'
|
|
220
|
-
);
|
|
314
|
+
logger.info({ source: source.name, sourcePath, git_url: source.git_url, branch }, 'Repository does not exist, cloning...');
|
|
315
|
+
await this.cloneRepository(source.git_url, sourcePath, branch);
|
|
316
|
+
logger.info({ source: source.name, sourcePath, branch }, 'syncSource: clone succeeded');
|
|
221
317
|
|
|
222
318
|
return {
|
|
223
319
|
source: source.name,
|
|
224
320
|
action: 'cloned',
|
|
225
|
-
changes: -1,
|
|
226
|
-
duration: Date.now() - startTime
|
|
321
|
+
changes: -1,
|
|
322
|
+
duration: Date.now() - startTime,
|
|
227
323
|
};
|
|
228
324
|
} else {
|
|
229
|
-
// Repository exists
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
325
|
+
// Repository exists — check if it has a remote we can pull from.
|
|
326
|
+
if (!source.git_url) {
|
|
327
|
+
// No git_url: Docker-mounted or manual directory — cannot pull.
|
|
328
|
+
// Log clearly so operators know why git pull is not happening.
|
|
329
|
+
const existingRemote = await this.getRepoUrl(sourcePath);
|
|
330
|
+
logger.warn({
|
|
331
|
+
source: source.name,
|
|
332
|
+
sourcePath,
|
|
333
|
+
existingRemoteUrl: existingRemote ?? '(none)',
|
|
334
|
+
reason: 'git_url not configured in ai-resources-config.json',
|
|
335
|
+
hint: 'Add a git_url to ai-resources-config.json to enable automatic git pull, or pull manually.',
|
|
336
|
+
}, 'syncSource: repository exists but has no git_url — skipping pull');
|
|
337
|
+
return {
|
|
338
|
+
source: source.name,
|
|
339
|
+
action: 'skipped',
|
|
340
|
+
changes: 0,
|
|
341
|
+
duration: Date.now() - startTime,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
logger.info({ source: source.name, sourcePath, git_url: source.git_url, branch }, 'Repository exists, pulling latest changes...');
|
|
346
|
+
|
|
347
|
+
const { hasChanges, filesChanged } = await this.pullRepository(sourcePath, branch);
|
|
348
|
+
|
|
349
|
+
logger.info({
|
|
350
|
+
source: source.name,
|
|
233
351
|
sourcePath,
|
|
234
|
-
|
|
235
|
-
|
|
352
|
+
branch,
|
|
353
|
+
action: hasChanges ? 'pulled' : 'up-to-date',
|
|
354
|
+
filesChanged,
|
|
355
|
+
duration: Date.now() - startTime,
|
|
356
|
+
}, 'syncSource: pull complete');
|
|
236
357
|
|
|
237
358
|
return {
|
|
238
359
|
source: source.name,
|
|
239
360
|
action: hasChanges ? 'pulled' : 'up-to-date',
|
|
240
361
|
changes: filesChanged,
|
|
241
|
-
duration: Date.now() - startTime
|
|
362
|
+
duration: Date.now() - startTime,
|
|
242
363
|
};
|
|
243
364
|
}
|
|
244
365
|
} catch (error) {
|
|
245
|
-
logger.error({
|
|
366
|
+
logger.error({
|
|
246
367
|
source: source.name,
|
|
247
|
-
|
|
368
|
+
sourcePath,
|
|
369
|
+
git_url: source.git_url ?? null,
|
|
370
|
+
branch,
|
|
371
|
+
error: error instanceof Error ? error.message : String(error),
|
|
372
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
248
373
|
}, 'Failed to sync source');
|
|
249
|
-
|
|
374
|
+
|
|
250
375
|
throw error;
|
|
251
376
|
}
|
|
252
377
|
}
|
package/src/prompts/generator.ts
CHANGED
|
@@ -124,10 +124,11 @@ export async function generatePromptContent(
|
|
|
124
124
|
* @returns Final Prompt content.
|
|
125
125
|
*/
|
|
126
126
|
export async function generatePromptContentFromString(
|
|
127
|
-
rawContent: string,
|
|
127
|
+
rawContent: string | undefined | null,
|
|
128
128
|
basePath: string,
|
|
129
129
|
variables: Record<string, string> = {},
|
|
130
130
|
): Promise<string> {
|
|
131
|
+
if (!rawContent) return '';
|
|
131
132
|
// Write to a temp file so parseMarkdownWithImports can resolve relative imports.
|
|
132
133
|
const tmpPath = path.join(basePath, `.tmp-prompt-${Date.now()}-${process.pid}.md`);
|
|
133
134
|
let result: string;
|