@agentbrain/mcp-server 1.4.66 → 1.4.70

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/index.js CHANGED
@@ -11,6 +11,7 @@ import { detectDoomLoop, detectDoomLoopSchema } from './tools/detect-doom-loop.j
11
11
  import { saveHandoff, saveHandoffSchema } from './tools/save-handoff.js';
12
12
  import { setupRepo, setupRepoSchema } from './tools/setup-repo.js';
13
13
  import { saveContext, saveContextSchema } from './tools/save-context.js';
14
+ import { saveError, saveErrorSchema } from './tools/save-error.js';
14
15
  import { existsSync } from 'node:fs';
15
16
  import { join, resolve } from 'node:path';
16
17
  import { homedir } from 'node:os';
@@ -53,6 +54,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
53
54
  loadContextSchema,
54
55
  setupRepoSchema,
55
56
  saveContextSchema,
57
+ saveErrorSchema,
56
58
  loadSpecSchema,
57
59
  detectDoomLoopSchema,
58
60
  saveHandoffSchema,
@@ -222,6 +224,17 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
222
224
  ],
223
225
  };
224
226
  }
227
+ case 'save_error': {
228
+ const result = await saveError(args);
229
+ return {
230
+ content: [
231
+ {
232
+ type: 'text',
233
+ text: result.message,
234
+ },
235
+ ],
236
+ };
237
+ }
225
238
  default:
226
239
  throw new Error(`Unknown tool: ${name}`);
227
240
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,wBAAwB;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAA;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE/D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAEnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAElF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAExE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGlE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC;;GAEG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,CAAA;IACrC,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB;IAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAEpD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,gDAAgD,CAAA;IACzD,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,oBAAoB;AACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAA;AAED,iBAAiB;AACjB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE;YACL,cAAc;YACd,mBAAmB;YACnB,iBAAiB;YACjB,eAAe;YACf,iBAAiB;YACjB,eAAe;YACf,cAAc;YACd,oBAAoB;YACpB,iBAAiB;SAClB;KACF,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAEhD,IAAI,CAAC;QACH,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAgC,CAAC,CAAA;gBAC/D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBACnE,CAAA;YACH,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAsC,CAAC,SAAS,CAAC,CAAA;gBACzF,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAsC,CAAC,SAAS;qBAC7D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAqC,CAAC,CAAA;gBACzE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;iBAClD,CAAA;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAoC,CAAC,SAAS,CAAC,CAAA;gBACvF,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAoC,CAAC,SAAS;qBAC3D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAmC,CAAC,CAAA;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,2BAA2B,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,kBAAkB,MAAM,CAAC,UAAU,GAAG;yBACxI;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAgC,CAAC,CAAA;gBACnE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM,CAAC,OAAO;yBACrB;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAuC,CAAC,SAAS,CAAC,CAAA;gBAC1F,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAuC,CAAC,SAAS;qBAC9D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAsC,CAAC,CAAA;gBAC3E,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,cAAc,CAAE,IAAoC,CAAC,SAAS,CAAC,CAAA;gBACvF,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC;wBAClC,SAAS,EAAG,IAAoC,CAAC,SAAS;qBAC3D,CAAC,CAAA;oBACF,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EACF,oDAAoD;oCACpD,iBAAiB,WAAW,CAAC,SAAS,MAAM;oCAC5C,kBAAkB;oCAClB,WAAW,CAAC,SAAS;yCAClB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC;yCACzD,IAAI,CAAC,MAAM,CAAC;oCACf,0BAA0B,WAAW,CAAC,YAAY,EAAE;6BACvD;yBACF;qBACF,CAAA;gBACH,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAmC,CAAC,CAAA;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,oBAAoB,MAAM,CAAC,QAAQ,EAAE;yBAC5C;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAiC,CAAC,CAAA;gBACjE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,4CAA4C,MAAM,CAAC,SAAS,qBAAqB,MAAM,CAAC,SAAS,CAAC,MAAM,cAAc,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,MAAM,CAAC,YAAY,EAAE;yBACjQ;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAmC,CAAC,CAAA;gBACrE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,uBAAuB,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;yBACnG;qBACF;iBACF,CAAA;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAiC,CAAC,CAAA;gBACjE,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,MAAM,CAAC,OAAO;yBACrB;qBACF;iBACF,CAAA;YACH,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAA;QACxE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;YACtD,OAAO,EAAE,IAAI;SACd,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAA;IAC5C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAE/B,oEAAoE;IACpE,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAA;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
@@ -2,6 +2,8 @@ import { type DoomWarningForMCP } from '@agentbrain/core';
2
2
  export interface LoadContextInput {
3
3
  repo_path: string;
4
4
  force_refresh?: boolean;
5
+ full?: boolean;
6
+ files?: string[];
5
7
  }
6
8
  export interface LoadContextOutput {
7
9
  content: string;
@@ -28,6 +30,17 @@ export declare const loadContextSchema: {
28
30
  type: string;
29
31
  description: string;
30
32
  };
33
+ full: {
34
+ type: string;
35
+ description: string;
36
+ };
37
+ files: {
38
+ type: string;
39
+ description: string;
40
+ items: {
41
+ type: string;
42
+ };
43
+ };
31
44
  };
32
45
  required: string[];
33
46
  };
@@ -1 +1 @@
1
- {"version":3,"file":"load-context.d.ts","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAA;AAazB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACxC;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuLrF;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAkB7B,CAAA"}
1
+ {"version":3,"file":"load-context.d.ts","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"AAMA,OAAO,EAOL,KAAK,iBAAiB,EAKvB,MAAM,kBAAkB,CAAA;AAuLzB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAA;CACxC;AAED,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0PrF;AAED,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC7B,CAAA"}
@@ -1,9 +1,9 @@
1
1
  // MCP tool: load_context - load context docs at session start
2
- import { readFile, writeFile } from 'node:fs/promises';
2
+ import { readFile, writeFile, readdir } from 'node:fs/promises';
3
3
  import { existsSync } from 'node:fs';
4
4
  import { join, resolve } from 'node:path';
5
5
  import { homedir } from 'node:os';
6
- import { loadAIConfig, generateContext, getCachedDoc, getGitHash, loadCache, getPendingDoomForMCP, ensureGitignore, installPostCommitHook, isGitRepository, createAgentFilesShared, } from '@agentbrain/core';
6
+ import { loadAIConfig, generateContext, getGitHash, loadCache, getPendingDoomForMCP, ensureGitignore, installPostCommitHook, isGitRepository, createAgentFilesShared, } from '@agentbrain/core';
7
7
  /**
8
8
  * Expand path: handles ~, relative paths, etc.
9
9
  */
@@ -13,118 +13,342 @@ function expandPath(path) {
13
13
  }
14
14
  return resolve(path);
15
15
  }
16
+ /**
17
+ * Order context files: specific order for known files, alphabetical for others, errors.md last
18
+ */
19
+ function orderContextFiles(files) {
20
+ const order = [
21
+ 'context.md',
22
+ 'branch-context.md',
23
+ 'schema.md',
24
+ 'dependencies.md',
25
+ 'dependency-map.md',
26
+ 'patterns.md',
27
+ 'decisions.md',
28
+ 'inventory.md',
29
+ 'testing.md',
30
+ 'environment.md',
31
+ ];
32
+ const ordered = [];
33
+ const remaining = [];
34
+ let errorsFile = null;
35
+ for (const file of files) {
36
+ if (file === 'errors.md') {
37
+ errorsFile = file;
38
+ }
39
+ else if (order.includes(file)) {
40
+ ordered.push(file);
41
+ }
42
+ else {
43
+ remaining.push(file);
44
+ }
45
+ }
46
+ // Sort known files by order array
47
+ ordered.sort((a, b) => order.indexOf(a) - order.indexOf(b));
48
+ // Sort remaining alphabetically
49
+ remaining.sort();
50
+ // Combine: ordered + remaining + errors.md
51
+ const result = [...ordered, ...remaining];
52
+ if (errorsFile) {
53
+ result.push(errorsFile);
54
+ }
55
+ return result;
56
+ }
57
+ /**
58
+ * Get description for a context file
59
+ */
60
+ function getFileDescription(filename) {
61
+ const descriptions = {
62
+ 'context.md': 'architecture overview',
63
+ 'schema.md': 'database models',
64
+ 'patterns.md': 'coding conventions',
65
+ 'dependencies.md': 'package versions',
66
+ 'dependency-map.md': 'module relationships',
67
+ 'testing.md': 'test patterns',
68
+ 'decisions.md': 'tech stack decisions',
69
+ 'errors.md': 'known issues and solutions',
70
+ 'branch-context.md': 'current branch and recent commits',
71
+ 'inventory.md': 'components and utilities',
72
+ 'environment.md': 'environment variables',
73
+ };
74
+ return descriptions[filename] || 'additional context';
75
+ }
76
+ /**
77
+ * Build a slim summary from context.md
78
+ * Extracts key sections without full content
79
+ */
80
+ function buildSlimSummary(contextContent, availableFiles) {
81
+ const lines = contextContent.split('\n');
82
+ let projectName = 'Project';
83
+ let techStack = [];
84
+ let structure = [];
85
+ let modules = [];
86
+ // Extract project name (first # heading)
87
+ for (const line of lines) {
88
+ if (line.startsWith('# ') && !projectName) {
89
+ projectName = line.replace('# ', '').trim();
90
+ break;
91
+ }
92
+ }
93
+ // Extract tech stack (look for "Tech Stack", "Stack", or "Technologies" section)
94
+ let inTechStack = false;
95
+ for (let i = 0; i < lines.length; i++) {
96
+ const line = lines[i];
97
+ if (/^##\s+(Tech Stack|Stack|Technologies|Technology)/i.test(line)) {
98
+ inTechStack = true;
99
+ continue;
100
+ }
101
+ if (inTechStack) {
102
+ if (line.startsWith('##'))
103
+ break; // Next section
104
+ if (line.trim().startsWith('-') || line.trim().startsWith('*')) {
105
+ const item = line.replace(/^[\s\-\*]+/, '').split(':')[0].trim();
106
+ if (item && techStack.length < 8) {
107
+ techStack.push(item);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ // Extract structure (look for "Structure", "Layout", "Repository" section)
113
+ let inStructure = false;
114
+ for (let i = 0; i < lines.length; i++) {
115
+ const line = lines[i];
116
+ if (/^##\s+(Repository Layout|Structure|Organization|Layout)/i.test(line)) {
117
+ inStructure = true;
118
+ continue;
119
+ }
120
+ if (inStructure) {
121
+ if (line.startsWith('##'))
122
+ break;
123
+ if (line.includes('apps/') || line.includes('packages/') || line.includes('src/')) {
124
+ const match = line.match(/(apps|packages|src)\/([a-zA-Z0-9\-_]+)/);
125
+ if (match && structure.length < 6) {
126
+ structure.push(`${match[1]}/${match[2]}`);
127
+ }
128
+ }
129
+ }
130
+ }
131
+ // Extract modules (look for "Modules", "Features", "Core Modules" section)
132
+ let inModules = false;
133
+ for (let i = 0; i < lines.length; i++) {
134
+ const line = lines[i];
135
+ if (/^##\s+(Core Modules|Modules|Features|Key Modules)/i.test(line)) {
136
+ inModules = true;
137
+ continue;
138
+ }
139
+ if (inModules) {
140
+ if (line.startsWith('##'))
141
+ break;
142
+ if (line.trim().startsWith('-') || line.trim().startsWith('*')) {
143
+ const item = line.replace(/^[\s\-\*]+/, '').split(':')[0].split('(')[0].trim();
144
+ if (item && modules.length < 12) {
145
+ modules.push(item);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ // Build slim summary
151
+ let summary = `# ${projectName} - Context Summary\n\n`;
152
+ if (techStack.length > 0) {
153
+ summary += `## Tech Stack\n${techStack.join(', ')}\n\n`;
154
+ }
155
+ if (structure.length > 0) {
156
+ summary += `## Repository Structure\n${structure.join(', ')}\n\n`;
157
+ }
158
+ if (modules.length > 0) {
159
+ summary += `## Key Modules\n${modules.join(', ')}\n\n`;
160
+ }
161
+ summary += `## Available Context Files\n`;
162
+ for (const file of availableFiles) {
163
+ summary += `- .agentbrain/${file} — ${getFileDescription(file)}\n`;
164
+ }
165
+ summary += `\n## How to Load More\n`;
166
+ summary += `- Full context: load_context({ full: true })\n`;
167
+ summary += `- Specific file: load_context({ files: ['schema.md'] })\n`;
168
+ summary += `- Or just ask me to read a specific file\n`;
169
+ return summary;
170
+ }
16
171
  export async function loadContext(input) {
17
- const { repo_path, force_refresh = false } = input;
172
+ const { repo_path, force_refresh = false, full = false, files: requestedFiles } = input;
18
173
  // Expand path to handle ~, relative paths, etc.
19
174
  const expandedPath = expandPath(repo_path);
20
175
  const contextDir = join(expandedPath, '.agentbrain');
21
176
  // Get current git hash for staleness check
22
177
  const currentGitHash = await getGitHash(expandedPath);
23
- // Try to load from disk first
24
- const contextPath = join(contextDir, 'context.md');
25
- const depMapPath = join(contextDir, 'dependency-map.md');
26
- const patternsPath = join(contextDir, 'patterns.md');
27
- const allExist = existsSync(contextPath) && existsSync(depMapPath) && existsSync(patternsPath);
28
- if (!force_refresh && allExist) {
29
- // Load from disk
30
- const context = await readFile(contextPath, 'utf-8');
31
- const depMap = await readFile(depMapPath, 'utf-8');
32
- const patterns = await readFile(patternsPath, 'utf-8');
33
- const combined = `# Repository Context\n\n${context}\n\n---\n\n# Dependency Map\n\n${depMap}\n\n---\n\n# Patterns\n\n${patterns}`;
34
- // Post-processing: If cache.json or setup-source.json is missing, agent wrote files directly
35
- const cachePath = join(contextDir, 'cache.json');
36
- const setupSourcePath = join(contextDir, 'setup-source.json');
37
- const cacheExists = existsSync(cachePath);
38
- const setupSourceExists = existsSync(setupSourcePath);
39
- if (!cacheExists || !setupSourceExists) {
40
- // Agent wrote files directly — run post-processing
41
- try {
42
- // Write cache.json
43
- if (!cacheExists) {
44
- const cache = {
45
- gitHash: currentGitHash,
46
- docs: {
47
- context: {
48
- type: 'context',
49
- content: context,
50
- savedAt: new Date().toISOString(),
51
- },
52
- 'dependency-map': {
53
- type: 'dependency-map',
54
- content: depMap,
55
- savedAt: new Date().toISOString(),
56
- },
57
- patterns: {
58
- type: 'patterns',
59
- content: patterns,
178
+ // Try to load from disk first - read ALL .md files
179
+ if (!force_refresh && existsSync(contextDir)) {
180
+ try {
181
+ const allFiles = await readdir(contextDir);
182
+ const mdFiles = allFiles.filter((f) => f.endsWith('.md'));
183
+ if (mdFiles.length > 0) {
184
+ // Order files properly
185
+ const orderedFiles = orderContextFiles(mdFiles);
186
+ // Determine which files to load based on mode
187
+ let filesToLoad = orderedFiles;
188
+ if (requestedFiles && requestedFiles.length > 0) {
189
+ // Load only requested files
190
+ filesToLoad = orderedFiles.filter((f) => requestedFiles.includes(f));
191
+ }
192
+ else if (!full) {
193
+ // Slim mode: only load context.md for summary extraction
194
+ filesToLoad = orderedFiles.filter((f) => f === 'context.md');
195
+ }
196
+ // Load files
197
+ const fileContents = [];
198
+ for (const file of filesToLoad) {
199
+ const filePath = join(contextDir, file);
200
+ const content = await readFile(filePath, 'utf-8');
201
+ const title = file.replace('.md', '').replace(/-/g, ' ').replace(/\b\w/g, (l) => l.toUpperCase());
202
+ fileContents.push({ name: file, content: `# ${title}\n\n${content}` });
203
+ }
204
+ // Build output based on mode
205
+ let combined;
206
+ if (!full && !requestedFiles) {
207
+ // Slim mode: build summary from context.md
208
+ const contextContent = fileContents.find((f) => f.name === 'context.md');
209
+ if (contextContent) {
210
+ combined = buildSlimSummary(contextContent.content, orderedFiles);
211
+ }
212
+ else {
213
+ // Fallback if context.md doesn't exist
214
+ combined = buildSlimSummary('# Project\n\n', orderedFiles);
215
+ }
216
+ }
217
+ else {
218
+ // Full mode or specific files: concatenate all loaded files
219
+ combined = fileContents.map((f) => f.content).join('\n\n---\n\n');
220
+ }
221
+ // Post-processing: If cache.json or setup-source.json is missing, agent wrote files directly
222
+ const cachePath = join(contextDir, 'cache.json');
223
+ const setupSourcePath = join(contextDir, 'setup-source.json');
224
+ const cacheExists = existsSync(cachePath);
225
+ const setupSourceExists = existsSync(setupSourcePath);
226
+ if (!cacheExists || !setupSourceExists) {
227
+ // Agent wrote files directly — run post-processing
228
+ try {
229
+ // Write cache.json with ALL files
230
+ if (!cacheExists) {
231
+ const docs = {};
232
+ for (const file of orderedFiles) {
233
+ const filePath = join(contextDir, file);
234
+ const content = await readFile(filePath, 'utf-8');
235
+ const baseName = file.replace('.md', '');
236
+ docs[baseName] = {
237
+ type: baseName,
238
+ content,
239
+ savedAt: new Date().toISOString(),
240
+ };
241
+ }
242
+ const cache = {
243
+ gitHash: currentGitHash,
244
+ docs,
60
245
  savedAt: new Date().toISOString(),
61
- },
62
- },
63
- savedAt: new Date().toISOString(),
64
- };
65
- await writeFile(cachePath, JSON.stringify(cache, null, 2), 'utf-8');
246
+ };
247
+ await writeFile(cachePath, JSON.stringify(cache, null, 2), 'utf-8');
248
+ }
249
+ // Write setup-source.json
250
+ if (!setupSourceExists) {
251
+ await writeFile(setupSourcePath, JSON.stringify({ source: 'mcp', setupAt: new Date().toISOString() }, null, 2), 'utf-8');
252
+ }
253
+ // Update .gitignore
254
+ await ensureGitignore(expandedPath);
255
+ // Install git hook if this is a git repository
256
+ if (isGitRepository(expandedPath)) {
257
+ await installPostCommitHook(expandedPath);
258
+ }
259
+ // Create agent files with ALL context files
260
+ await createAgentFilesShared(expandedPath, orderedFiles);
261
+ // Silent success - only log errors
262
+ }
263
+ catch (err) {
264
+ console.error('[load_context] Post-processing failed:', err);
265
+ }
66
266
  }
67
- // Write setup-source.json
68
- if (!setupSourceExists) {
69
- await writeFile(setupSourcePath, JSON.stringify({ source: 'mcp', setupAt: new Date().toISOString() }, null, 2), 'utf-8');
267
+ // Check if cached git hash matches current HEAD
268
+ const cache = await loadCache(expandedPath);
269
+ const isStale = cache && cache.gitHash !== currentGitHash;
270
+ // Check for doom loop warnings
271
+ const doomWarning = await getPendingDoomForMCP(expandedPath);
272
+ const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
273
+ return {
274
+ content: combined + footer,
275
+ fromCache: true,
276
+ tokensUsed: 0,
277
+ ...(isStale && {
278
+ stale: true,
279
+ cached_sha: cache.gitHash,
280
+ current_sha: currentGitHash,
281
+ message: 'Context may be outdated. Run agentbrain init to refresh.',
282
+ }),
283
+ doom_warning: doomWarning,
284
+ };
285
+ }
286
+ }
287
+ catch (err) {
288
+ // If there's an error reading files, fall through to cache check
289
+ console.error('[load_context] Error reading .agentbrain files:', err);
290
+ }
291
+ }
292
+ // Check cache validity - load from cache.json if available
293
+ const cache = await loadCache(expandedPath);
294
+ if (!force_refresh && cache && cache.docs) {
295
+ // Extract all doc names and order them
296
+ const docNames = Object.keys(cache.docs).map((name) => `${name}.md`);
297
+ const orderedDocs = orderContextFiles(docNames);
298
+ // Determine which docs to load based on mode
299
+ let docsToLoad = orderedDocs;
300
+ if (requestedFiles && requestedFiles.length > 0) {
301
+ // Load only requested files
302
+ docsToLoad = orderedDocs.filter((f) => requestedFiles.includes(f));
303
+ }
304
+ else if (!full) {
305
+ // Slim mode: only load context for summary
306
+ docsToLoad = orderedDocs.filter((f) => f === 'context.md');
307
+ }
308
+ // Build content from cache
309
+ const fileContents = [];
310
+ for (const docFile of docsToLoad) {
311
+ const docName = docFile.replace('.md', '');
312
+ const doc = cache.docs[docName];
313
+ if (doc) {
314
+ const title = docName.replace(/-/g, ' ').replace(/\b\w/g, (l) => l.toUpperCase());
315
+ fileContents.push(`# ${title}\n\n${doc.content}`);
316
+ }
317
+ }
318
+ if (fileContents.length > 0) {
319
+ // Build output based on mode
320
+ let combined;
321
+ if (!full && !requestedFiles) {
322
+ // Slim mode: build summary
323
+ const contextContent = fileContents.find((c) => c.startsWith('# Context'));
324
+ if (contextContent) {
325
+ combined = buildSlimSummary(contextContent, orderedDocs);
70
326
  }
71
- // Update .gitignore
72
- await ensureGitignore(expandedPath);
73
- // Install git hook if this is a git repository
74
- if (isGitRepository(expandedPath)) {
75
- await installPostCommitHook(expandedPath);
327
+ else {
328
+ combined = buildSlimSummary('# Project\n\n', orderedDocs);
76
329
  }
77
- // Create agent files
78
- await createAgentFilesShared(expandedPath);
79
- console.error('[load_context] Post-processing completed for manually-written files');
80
330
  }
81
- catch (err) {
82
- console.error('[load_context] Post-processing failed:', err);
331
+ else {
332
+ // Full mode or specific files
333
+ combined = fileContents.join('\n\n---\n\n');
83
334
  }
335
+ const isStale = cache.gitHash !== currentGitHash;
336
+ // Check for doom loop warnings
337
+ const doomWarning = await getPendingDoomForMCP(expandedPath);
338
+ const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
339
+ return {
340
+ content: combined + footer,
341
+ fromCache: true,
342
+ tokensUsed: 0,
343
+ ...(isStale && {
344
+ stale: true,
345
+ cached_sha: cache.gitHash,
346
+ current_sha: currentGitHash,
347
+ message: 'Context may be outdated. Run agentbrain init to refresh.',
348
+ }),
349
+ doom_warning: doomWarning,
350
+ };
84
351
  }
85
- // Check if cached git hash matches current HEAD
86
- const cache = await loadCache(expandedPath);
87
- const isStale = cache && cache.gitHash !== currentGitHash;
88
- // Check for doom loop warnings
89
- const doomWarning = await getPendingDoomForMCP(expandedPath);
90
- const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
91
- return {
92
- content: combined + footer,
93
- fromCache: true,
94
- tokensUsed: 0,
95
- ...(isStale && {
96
- stale: true,
97
- cached_sha: cache.gitHash,
98
- current_sha: currentGitHash,
99
- message: 'Context may be outdated. Run agentbrain init to refresh.',
100
- }),
101
- doom_warning: doomWarning,
102
- };
103
- }
104
- // Check cache validity (using currentGitHash from above)
105
- const cachedContext = await getCachedDoc(expandedPath, currentGitHash, 'context');
106
- const cachedDepMap = await getCachedDoc(expandedPath, currentGitHash, 'dependency-map');
107
- const cachedPatterns = await getCachedDoc(expandedPath, currentGitHash, 'patterns');
108
- if (!force_refresh && cachedContext && cachedDepMap && cachedPatterns) {
109
- const combined = `# Repository Context\n\n${cachedContext.content}\n\n---\n\n# Dependency Map\n\n${cachedDepMap.content}\n\n---\n\n# Patterns\n\n${cachedPatterns.content}`;
110
- // Check if cached git hash matches current HEAD
111
- const cache = await loadCache(expandedPath);
112
- const isStale = cache && cache.gitHash !== currentGitHash;
113
- // Check for doom loop warnings
114
- const doomWarning = await getPendingDoomForMCP(expandedPath);
115
- const footer = '\n\n---\n_AgentBrain context loaded. Check doom_warning field for any detected issues._';
116
- return {
117
- content: combined + footer,
118
- fromCache: true,
119
- tokensUsed: 0,
120
- ...(isStale && {
121
- stale: true,
122
- cached_sha: cache.gitHash,
123
- current_sha: currentGitHash,
124
- message: 'Context may be outdated. Run agentbrain init to refresh.',
125
- }),
126
- doom_warning: doomWarning,
127
- };
128
352
  }
129
353
  // Need to generate - no API key path returns bootstrap message
130
354
  let aiConfig = null;
@@ -167,7 +391,13 @@ Call: setup_repo({ repo_path: '${expandedPath}' })`,
167
391
  }
168
392
  export const loadContextSchema = {
169
393
  name: 'load_context',
170
- description: 'Load codebase context. If first time setup, automatically scans repo and returns file tree + key files with friendly instructions. Agent then generates context documents. No API key needed.',
394
+ description: 'Load codebase context.\n\n' +
395
+ 'Default: Returns slim summary showing available context files. Fast, low token usage (~100 lines).\n\n' +
396
+ 'Options:\n' +
397
+ ' full: true → load all context files (large, 1000+ lines)\n' +
398
+ ' files: ["schema.md"] → load specific files only\n' +
399
+ ' force_refresh: true → regenerate context\n\n' +
400
+ 'If first time setup, automatically scans repo and returns setup instructions.',
171
401
  inputSchema: {
172
402
  type: 'object',
173
403
  properties: {
@@ -179,6 +409,17 @@ export const loadContextSchema = {
179
409
  type: 'boolean',
180
410
  description: 'Force regeneration even if cache is valid (default: false)',
181
411
  },
412
+ full: {
413
+ type: 'boolean',
414
+ description: 'Load all context files instead of slim summary (default: false)',
415
+ },
416
+ files: {
417
+ type: 'array',
418
+ description: 'Load specific files only (e.g., ["schema.md", "patterns.md"])',
419
+ items: {
420
+ type: 'string',
421
+ },
422
+ },
182
423
  },
183
424
  required: ['repo_path'],
184
425
  },
@@ -1 +1 @@
1
- {"version":3,"file":"load-context.js","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-context.js","sourceRoot":"","sources":["../../src/tools/load-context.ts"],"names":[],"mappings":"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"}