@ai-devkit/memory 0.7.0 → 0.9.0

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 CHANGED
@@ -38,7 +38,7 @@ Add to your MCP client configuration (e.g., Claude Code, Cursor):
38
38
 
39
39
  ```json
40
40
  {
41
- "tool": "memory.storeKnowledge",
41
+ "tool": "memory_storeKnowledge",
42
42
  "arguments": {
43
43
  "title": "Always use Response DTOs for API endpoints",
44
44
  "content": "When building REST APIs, always use Response DTOs instead of returning domain entities directly.",
@@ -52,7 +52,7 @@ Add to your MCP client configuration (e.g., Claude Code, Cursor):
52
52
 
53
53
  ```json
54
54
  {
55
- "tool": "memory.searchKnowledge",
55
+ "tool": "memory_searchKnowledge",
56
56
  "arguments": {
57
57
  "query": "building an API endpoint",
58
58
  "contextTags": ["api"],
package/dist/api.d.ts CHANGED
@@ -9,6 +9,7 @@ export interface MemoryStoreOptions {
9
9
  content: string;
10
10
  tags?: string;
11
11
  scope?: string;
12
+ dbPath?: string;
12
13
  }
13
14
  export interface MemoryUpdateOptions {
14
15
  id: string;
@@ -16,12 +17,14 @@ export interface MemoryUpdateOptions {
16
17
  content?: string;
17
18
  tags?: string;
18
19
  scope?: string;
20
+ dbPath?: string;
19
21
  }
20
22
  export interface MemorySearchOptions {
21
23
  query: string;
22
24
  tags?: string;
23
25
  scope?: string;
24
26
  limit?: number;
27
+ dbPath?: string;
25
28
  }
26
29
  export declare function memoryStoreCommand(options: MemoryStoreOptions): StoreKnowledgeResult;
27
30
  export declare function memoryUpdateCommand(options: MemoryUpdateOptions): UpdateKnowledgeResult;
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEnK,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAGpJ,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAapF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,CAcvF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,CAavF"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEnK,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC;AAGpJ,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAcpF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,CAevF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,qBAAqB,CAcvF"}
package/dist/api.js CHANGED
@@ -34,6 +34,9 @@ const _update = require("./handlers/update");
34
34
  const _database = require("./database");
35
35
  function memoryStoreCommand(options) {
36
36
  try {
37
+ (0, _database.getDatabase)({
38
+ dbPath: options.dbPath
39
+ });
37
40
  const input = {
38
41
  title: options.title,
39
42
  content: options.content,
@@ -47,6 +50,9 @@ function memoryStoreCommand(options) {
47
50
  }
48
51
  function memoryUpdateCommand(options) {
49
52
  try {
53
+ (0, _database.getDatabase)({
54
+ dbPath: options.dbPath
55
+ });
50
56
  const input = {
51
57
  id: options.id,
52
58
  title: options.title,
@@ -61,6 +67,9 @@ function memoryUpdateCommand(options) {
61
67
  }
62
68
  function memorySearchCommand(options) {
63
69
  try {
70
+ (0, _database.getDatabase)({
71
+ dbPath: options.dbPath
72
+ });
64
73
  const input = {
65
74
  query: options.query,
66
75
  contextTags: options.tags ? options.tags.split(',').map((t)=>t.trim()) : undefined,
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api.ts"],"sourcesContent":["import { storeKnowledge } from './handlers/store';\nimport { searchKnowledge } from './handlers/search';\nimport { updateKnowledge } from './handlers/update';\nimport { closeDatabase } from './database';\nimport type { StoreKnowledgeInput, SearchKnowledgeInput, StoreKnowledgeResult, SearchKnowledgeResult, UpdateKnowledgeInput, UpdateKnowledgeResult } from './types';\n\nexport { storeKnowledge, searchKnowledge, updateKnowledge };\nexport type { StoreKnowledgeInput, SearchKnowledgeInput, StoreKnowledgeResult, SearchKnowledgeResult, UpdateKnowledgeInput, UpdateKnowledgeResult };\n\n// CLI command handlers for integration with main ai-devkit CLI\nexport interface MemoryStoreOptions {\n title: string;\n content: string;\n tags?: string;\n scope?: string;\n}\n\nexport interface MemoryUpdateOptions {\n id: string;\n title?: string;\n content?: string;\n tags?: string;\n scope?: string;\n}\n\nexport interface MemorySearchOptions {\n query: string;\n tags?: string;\n scope?: string;\n limit?: number;\n}\n\nexport function memoryStoreCommand(options: MemoryStoreOptions): StoreKnowledgeResult {\n try {\n const input: StoreKnowledgeInput = {\n title: options.title,\n content: options.content,\n tags: options.tags ? options.tags.split(',').map(t => t.trim()) : undefined,\n scope: options.scope,\n };\n\n return storeKnowledge(input);\n } finally {\n closeDatabase();\n }\n}\n\nexport function memoryUpdateCommand(options: MemoryUpdateOptions): UpdateKnowledgeResult {\n try {\n const input: UpdateKnowledgeInput = {\n id: options.id,\n title: options.title,\n content: options.content,\n tags: options.tags ? options.tags.split(',').map(t => t.trim()) : undefined,\n scope: options.scope,\n };\n\n return updateKnowledge(input);\n } finally {\n closeDatabase();\n }\n}\n\nexport function memorySearchCommand(options: MemorySearchOptions): SearchKnowledgeResult {\n try {\n const input: SearchKnowledgeInput = {\n query: options.query,\n contextTags: options.tags ? options.tags.split(',').map(t => t.trim()) : undefined,\n scope: options.scope,\n limit: options.limit,\n };\n\n return searchKnowledge(input);\n } finally {\n closeDatabase();\n }\n}\n"],"names":["memorySearchCommand","memoryStoreCommand","memoryUpdateCommand","searchKnowledge","storeKnowledge","updateKnowledge","options","input","title","content","tags","split","map","t","trim","undefined","scope","closeDatabase","id","query","contextTags","limit"],"mappings":";;;;;;;;;;;QA+DgBA;eAAAA;;QA/BAC;eAAAA;;QAeAC;eAAAA;;QAzCSC;eAAAA,uBAAe;;QAA/BC;eAAAA,qBAAc;;QAAmBC;eAAAA,uBAAe;;;uBAN1B;wBACC;wBACA;0BACF;AA6BvB,SAASJ,mBAAmBK,OAA2B;IAC1D,IAAI;QACA,MAAMC,QAA6B;YAC/BC,OAAOF,QAAQE,KAAK;YACpBC,SAASH,QAAQG,OAAO;YACxBC,MAAMJ,QAAQI,IAAI,GAAGJ,QAAQI,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,CAAAA,IAAKA,EAAEC,IAAI,MAAMC;YAClEC,OAAOV,QAAQU,KAAK;QACxB;QAEA,OAAOZ,IAAAA,qBAAc,EAACG;IAC1B,SAAU;QACNU,IAAAA,uBAAa;IACjB;AACJ;AAEO,SAASf,oBAAoBI,OAA4B;IAC5D,IAAI;QACA,MAAMC,QAA8B;YAChCW,IAAIZ,QAAQY,EAAE;YACdV,OAAOF,QAAQE,KAAK;YACpBC,SAASH,QAAQG,OAAO;YACxBC,MAAMJ,QAAQI,IAAI,GAAGJ,QAAQI,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,CAAAA,IAAKA,EAAEC,IAAI,MAAMC;YAClEC,OAAOV,QAAQU,KAAK;QACxB;QAEA,OAAOX,IAAAA,uBAAe,EAACE;IAC3B,SAAU;QACNU,IAAAA,uBAAa;IACjB;AACJ;AAEO,SAASjB,oBAAoBM,OAA4B;IAC5D,IAAI;QACA,MAAMC,QAA8B;YAChCY,OAAOb,QAAQa,KAAK;YACpBC,aAAad,QAAQI,IAAI,GAAGJ,QAAQI,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,CAAAA,IAAKA,EAAEC,IAAI,MAAMC;YACzEC,OAAOV,QAAQU,KAAK;YACpBK,OAAOf,QAAQe,KAAK;QACxB;QAEA,OAAOlB,IAAAA,uBAAe,EAACI;IAC3B,SAAU;QACNU,IAAAA,uBAAa;IACjB;AACJ"}
1
+ {"version":3,"sources":["../src/api.ts"],"sourcesContent":["import { storeKnowledge } from './handlers/store';\nimport { searchKnowledge } from './handlers/search';\nimport { updateKnowledge } from './handlers/update';\nimport { closeDatabase, getDatabase } from './database';\nimport type { StoreKnowledgeInput, SearchKnowledgeInput, StoreKnowledgeResult, SearchKnowledgeResult, UpdateKnowledgeInput, UpdateKnowledgeResult } from './types';\n\nexport { storeKnowledge, searchKnowledge, updateKnowledge };\nexport type { StoreKnowledgeInput, SearchKnowledgeInput, StoreKnowledgeResult, SearchKnowledgeResult, UpdateKnowledgeInput, UpdateKnowledgeResult };\n\n// CLI command handlers for integration with main ai-devkit CLI\nexport interface MemoryStoreOptions {\n title: string;\n content: string;\n tags?: string;\n scope?: string;\n dbPath?: string;\n}\n\nexport interface MemoryUpdateOptions {\n id: string;\n title?: string;\n content?: string;\n tags?: string;\n scope?: string;\n dbPath?: string;\n}\n\nexport interface MemorySearchOptions {\n query: string;\n tags?: string;\n scope?: string;\n limit?: number;\n dbPath?: string;\n}\n\nexport function memoryStoreCommand(options: MemoryStoreOptions): StoreKnowledgeResult {\n try {\n getDatabase({ dbPath: options.dbPath });\n const input: StoreKnowledgeInput = {\n title: options.title,\n content: options.content,\n tags: options.tags ? options.tags.split(',').map(t => t.trim()) : undefined,\n scope: options.scope,\n };\n\n return storeKnowledge(input);\n } finally {\n closeDatabase();\n }\n}\n\nexport function memoryUpdateCommand(options: MemoryUpdateOptions): UpdateKnowledgeResult {\n try {\n getDatabase({ dbPath: options.dbPath });\n const input: UpdateKnowledgeInput = {\n id: options.id,\n title: options.title,\n content: options.content,\n tags: options.tags ? options.tags.split(',').map(t => t.trim()) : undefined,\n scope: options.scope,\n };\n\n return updateKnowledge(input);\n } finally {\n closeDatabase();\n }\n}\n\nexport function memorySearchCommand(options: MemorySearchOptions): SearchKnowledgeResult {\n try {\n getDatabase({ dbPath: options.dbPath });\n const input: SearchKnowledgeInput = {\n query: options.query,\n contextTags: options.tags ? options.tags.split(',').map(t => t.trim()) : undefined,\n scope: options.scope,\n limit: options.limit,\n };\n\n return searchKnowledge(input);\n } finally {\n closeDatabase();\n }\n}\n"],"names":["memorySearchCommand","memoryStoreCommand","memoryUpdateCommand","searchKnowledge","storeKnowledge","updateKnowledge","options","getDatabase","dbPath","input","title","content","tags","split","map","t","trim","undefined","scope","closeDatabase","id","query","contextTags","limit"],"mappings":";;;;;;;;;;;QAoEgBA;eAAAA;;QAjCAC;eAAAA;;QAgBAC;eAAAA;;QA7CSC;eAAAA,uBAAe;;QAA/BC;eAAAA,qBAAc;;QAAmBC;eAAAA,uBAAe;;;uBAN1B;wBACC;wBACA;0BACW;AAgCpC,SAASJ,mBAAmBK,OAA2B;IAC1D,IAAI;QACAC,IAAAA,qBAAW,EAAC;YAAEC,QAAQF,QAAQE,MAAM;QAAC;QACrC,MAAMC,QAA6B;YAC/BC,OAAOJ,QAAQI,KAAK;YACpBC,SAASL,QAAQK,OAAO;YACxBC,MAAMN,QAAQM,IAAI,GAAGN,QAAQM,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,CAAAA,IAAKA,EAAEC,IAAI,MAAMC;YAClEC,OAAOZ,QAAQY,KAAK;QACxB;QAEA,OAAOd,IAAAA,qBAAc,EAACK;IAC1B,SAAU;QACNU,IAAAA,uBAAa;IACjB;AACJ;AAEO,SAASjB,oBAAoBI,OAA4B;IAC5D,IAAI;QACAC,IAAAA,qBAAW,EAAC;YAAEC,QAAQF,QAAQE,MAAM;QAAC;QACrC,MAAMC,QAA8B;YAChCW,IAAId,QAAQc,EAAE;YACdV,OAAOJ,QAAQI,KAAK;YACpBC,SAASL,QAAQK,OAAO;YACxBC,MAAMN,QAAQM,IAAI,GAAGN,QAAQM,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,CAAAA,IAAKA,EAAEC,IAAI,MAAMC;YAClEC,OAAOZ,QAAQY,KAAK;QACxB;QAEA,OAAOb,IAAAA,uBAAe,EAACI;IAC3B,SAAU;QACNU,IAAAA,uBAAa;IACjB;AACJ;AAEO,SAASnB,oBAAoBM,OAA4B;IAC5D,IAAI;QACAC,IAAAA,qBAAW,EAAC;YAAEC,QAAQF,QAAQE,MAAM;QAAC;QACrC,MAAMC,QAA8B;YAChCY,OAAOf,QAAQe,KAAK;YACpBC,aAAahB,QAAQM,IAAI,GAAGN,QAAQM,IAAI,CAACC,KAAK,CAAC,KAAKC,GAAG,CAACC,CAAAA,IAAKA,EAAEC,IAAI,MAAMC;YACzEC,OAAOZ,QAAQY,KAAK;YACpBK,OAAOjB,QAAQiB,KAAK;QACxB;QAEA,OAAOpB,IAAAA,uBAAe,EAACM;IAC3B,SAAU;QACNU,IAAAA,uBAAa;IACjB;AACJ"}
package/dist/server.d.ts CHANGED
@@ -1,4 +1,61 @@
1
1
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
+ export declare const TOOLS: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: {
6
+ type: "object";
7
+ properties: {
8
+ title: {
9
+ type: string;
10
+ description: string;
11
+ };
12
+ content: {
13
+ type: string;
14
+ description: string;
15
+ };
16
+ tags: {
17
+ type: string;
18
+ items: {
19
+ type: string;
20
+ };
21
+ description: string;
22
+ };
23
+ scope: {
24
+ type: string;
25
+ description: string;
26
+ };
27
+ };
28
+ required: string[];
29
+ };
30
+ } | {
31
+ name: string;
32
+ description: string;
33
+ inputSchema: {
34
+ type: "object";
35
+ properties: {
36
+ query: {
37
+ type: string;
38
+ description: string;
39
+ };
40
+ contextTags: {
41
+ type: string;
42
+ items: {
43
+ type: string;
44
+ };
45
+ description: string;
46
+ };
47
+ scope: {
48
+ type: string;
49
+ description: string;
50
+ };
51
+ limit: {
52
+ type: string;
53
+ description: string;
54
+ };
55
+ };
56
+ required: string[];
57
+ };
58
+ })[];
2
59
  export declare function createServer(): Server;
3
60
  export declare function runServer(): Promise<void>;
4
61
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAuGnE,wBAAgB,YAAY,IAAI,MAAM,CA2FrC;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAuGnE,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAyC,CAAC;AAE5D,wBAAgB,YAAY,IAAI,MAAM,CA6FrC;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAI/C"}
package/dist/server.js CHANGED
@@ -9,6 +9,9 @@ function _export(target, all) {
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
+ get TOOLS () {
13
+ return TOOLS;
14
+ },
12
15
  get createServer () {
13
16
  return createServer;
14
17
  },
@@ -26,7 +29,7 @@ const _errors = require("./utils/errors");
26
29
  const SERVER_NAME = 'ai-devkit-memory';
27
30
  const SERVER_VERSION = '0.1.0';
28
31
  const STORE_TOOL = {
29
- name: 'memory.storeKnowledge',
32
+ name: 'memory_storeKnowledge',
30
33
  description: 'Store a new knowledge item. Use this to save actionable guidelines, rules, or patterns for future reference.',
31
34
  inputSchema: {
32
35
  type: 'object',
@@ -58,7 +61,7 @@ const STORE_TOOL = {
58
61
  }
59
62
  };
60
63
  const UPDATE_TOOL = {
61
- name: 'memory.updateKnowledge',
64
+ name: 'memory_updateKnowledge',
62
65
  description: 'Update an existing knowledge item by ID. Use this to correct outdated or inaccurate knowledge.',
63
66
  inputSchema: {
64
67
  type: 'object',
@@ -93,7 +96,7 @@ const UPDATE_TOOL = {
93
96
  }
94
97
  };
95
98
  const SEARCH_TOOL = {
96
- name: 'memory.searchKnowledge',
99
+ name: 'memory_searchKnowledge',
97
100
  description: 'Search for relevant knowledge based on a task description. Returns ranked results.',
98
101
  inputSchema: {
99
102
  type: 'object',
@@ -123,6 +126,11 @@ const SEARCH_TOOL = {
123
126
  ]
124
127
  }
125
128
  };
129
+ const TOOLS = [
130
+ STORE_TOOL,
131
+ UPDATE_TOOL,
132
+ SEARCH_TOOL
133
+ ];
126
134
  function createServer() {
127
135
  const server = new _index.Server({
128
136
  name: SERVER_NAME,
@@ -146,7 +154,9 @@ function createServer() {
146
154
  server.setRequestHandler(_types.CallToolRequestSchema, async (request)=>{
147
155
  const { name, arguments: args } = request.params;
148
156
  try {
149
- if (name === 'memory.storeKnowledge') {
157
+ // Backward-compat: accept deprecated dotted names so agents with
158
+ // stale prompts/templates continue to work. Remove in next major.
159
+ if (name === 'memory_storeKnowledge' || name === 'memory.storeKnowledge') {
150
160
  const input = args;
151
161
  const result = (0, _store.storeKnowledge)(input);
152
162
  return {
@@ -158,7 +168,7 @@ function createServer() {
158
168
  ]
159
169
  };
160
170
  }
161
- if (name === 'memory.updateKnowledge') {
171
+ if (name === 'memory_updateKnowledge' || name === 'memory.updateKnowledge') {
162
172
  const input = args;
163
173
  const result = (0, _update.updateKnowledge)(input);
164
174
  return {
@@ -170,7 +180,7 @@ function createServer() {
170
180
  ]
171
181
  };
172
182
  }
173
- if (name === 'memory.searchKnowledge') {
183
+ if (name === 'memory_searchKnowledge' || name === 'memory.searchKnowledge') {
174
184
  const input = args;
175
185
  const result = (0, _search.searchKnowledge)(input);
176
186
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.ts"],"sourcesContent":["import { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from '@modelcontextprotocol/sdk/types.js';\nimport { storeKnowledge } from './handlers/store';\nimport { searchKnowledge } from './handlers/search';\nimport { updateKnowledge } from './handlers/update';\nimport { KnowledgeMemoryError } from './utils/errors';\nimport type { StoreKnowledgeInput, SearchKnowledgeInput, UpdateKnowledgeInput } from './types';\n\nconst SERVER_NAME = 'ai-devkit-memory';\nconst SERVER_VERSION = '0.1.0';\n\nconst STORE_TOOL = {\n name: 'memory.storeKnowledge',\n description: 'Store a new knowledge item. Use this to save actionable guidelines, rules, or patterns for future reference.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n title: {\n type: 'string',\n description: 'Short, explicit description of the rule (5-12 words, 10-100 chars)',\n },\n content: {\n type: 'string',\n description: 'Detailed explanation in markdown format. Supports code blocks and examples. (50-5000 chars)',\n },\n tags: {\n type: 'array',\n items: { type: 'string' },\n description: 'Optional domain keywords (e.g., [\"api\", \"backend\"]). Max 10 tags.',\n },\n scope: {\n type: 'string',\n description: 'Optional scope: \"global\", \"project:<name>\", or \"repo:<name>\". Default: \"global\"',\n },\n },\n required: ['title', 'content'],\n },\n};\n\nconst UPDATE_TOOL = {\n name: 'memory.updateKnowledge',\n description: 'Update an existing knowledge item by ID. Use this to correct outdated or inaccurate knowledge.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n id: {\n type: 'string',\n description: 'UUID of the knowledge item to update',\n },\n title: {\n type: 'string',\n description: 'New title (10-100 chars). Only provide if changing.',\n },\n content: {\n type: 'string',\n description: 'New content in markdown format (50-5000 chars). Only provide if changing.',\n },\n tags: {\n type: 'array',\n items: { type: 'string' },\n description: 'New tags (replaces existing). Only provide if changing. Max 10 tags.',\n },\n scope: {\n type: 'string',\n description: 'New scope: \"global\", \"project:<name>\", or \"repo:<name>\". Only provide if changing.',\n },\n },\n required: ['id'],\n },\n};\n\nconst SEARCH_TOOL = {\n name: 'memory.searchKnowledge',\n description: 'Search for relevant knowledge based on a task description. Returns ranked results.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n query: {\n type: 'string',\n description: 'Natural language task description to search for relevant knowledge (3-500 chars)',\n },\n contextTags: {\n type: 'array',\n items: { type: 'string' },\n description: 'Optional tags to boost matching results (e.g., [\"api\", \"backend\"])',\n },\n scope: {\n type: 'string',\n description: 'Optional project/repo scope filter. Results from this scope are prioritized.',\n },\n limit: {\n type: 'number',\n description: 'Maximum number of results to return (1-20, default: 5)',\n },\n },\n required: ['query'],\n },\n};\n\nexport function createServer(): Server {\n const server = new Server(\n {\n name: SERVER_NAME,\n version: SERVER_VERSION,\n },\n {\n capabilities: {\n tools: {},\n },\n }\n );\n\n // List available tools\n server.setRequestHandler(ListToolsRequestSchema, async () => {\n return {\n tools: [STORE_TOOL, UPDATE_TOOL, SEARCH_TOOL],\n };\n });\n\n // Handle tool calls\n server.setRequestHandler(CallToolRequestSchema, async (request) => {\n const { name, arguments: args } = request.params;\n\n try {\n if (name === 'memory.storeKnowledge') {\n const input = args as unknown as StoreKnowledgeInput;\n const result = storeKnowledge(input);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n\n if (name === 'memory.updateKnowledge') {\n const input = args as unknown as UpdateKnowledgeInput;\n const result = updateKnowledge(input);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n\n if (name === 'memory.searchKnowledge') {\n const input = args as unknown as SearchKnowledgeInput;\n const result = searchKnowledge(input);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({ error: 'UNKNOWN_TOOL', message: `Unknown tool: ${name}` }),\n },\n ],\n isError: true,\n };\n } catch (error) {\n const errorResponse = error instanceof KnowledgeMemoryError\n ? error.toJSON()\n : { error: 'INTERNAL_ERROR', message: error instanceof Error ? error.message : String(error) };\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(errorResponse, null, 2),\n },\n ],\n isError: true,\n };\n }\n });\n\n return server;\n}\n\nexport async function runServer(): Promise<void> {\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n"],"names":["createServer","runServer","SERVER_NAME","SERVER_VERSION","STORE_TOOL","name","description","inputSchema","type","properties","title","content","tags","items","scope","required","UPDATE_TOOL","id","SEARCH_TOOL","query","contextTags","limit","server","Server","version","capabilities","tools","setRequestHandler","ListToolsRequestSchema","CallToolRequestSchema","request","arguments","args","params","input","result","storeKnowledge","text","JSON","stringify","updateKnowledge","searchKnowledge","error","message","isError","errorResponse","KnowledgeMemoryError","toJSON","Error","String","transport","StdioServerTransport","connect"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/server.ts"],"sourcesContent":["import { Server } from '@modelcontextprotocol/sdk/server/index.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport {\n CallToolRequestSchema,\n ListToolsRequestSchema,\n} from '@modelcontextprotocol/sdk/types.js';\nimport { storeKnowledge } from './handlers/store';\nimport { searchKnowledge } from './handlers/search';\nimport { updateKnowledge } from './handlers/update';\nimport { KnowledgeMemoryError } from './utils/errors';\nimport type { StoreKnowledgeInput, SearchKnowledgeInput, UpdateKnowledgeInput } from './types';\n\nconst SERVER_NAME = 'ai-devkit-memory';\nconst SERVER_VERSION = '0.1.0';\n\nconst STORE_TOOL = {\n name: 'memory_storeKnowledge',\n description: 'Store a new knowledge item. Use this to save actionable guidelines, rules, or patterns for future reference.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n title: {\n type: 'string',\n description: 'Short, explicit description of the rule (5-12 words, 10-100 chars)',\n },\n content: {\n type: 'string',\n description: 'Detailed explanation in markdown format. Supports code blocks and examples. (50-5000 chars)',\n },\n tags: {\n type: 'array',\n items: { type: 'string' },\n description: 'Optional domain keywords (e.g., [\"api\", \"backend\"]). Max 10 tags.',\n },\n scope: {\n type: 'string',\n description: 'Optional scope: \"global\", \"project:<name>\", or \"repo:<name>\". Default: \"global\"',\n },\n },\n required: ['title', 'content'],\n },\n};\n\nconst UPDATE_TOOL = {\n name: 'memory_updateKnowledge',\n description: 'Update an existing knowledge item by ID. Use this to correct outdated or inaccurate knowledge.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n id: {\n type: 'string',\n description: 'UUID of the knowledge item to update',\n },\n title: {\n type: 'string',\n description: 'New title (10-100 chars). Only provide if changing.',\n },\n content: {\n type: 'string',\n description: 'New content in markdown format (50-5000 chars). Only provide if changing.',\n },\n tags: {\n type: 'array',\n items: { type: 'string' },\n description: 'New tags (replaces existing). Only provide if changing. Max 10 tags.',\n },\n scope: {\n type: 'string',\n description: 'New scope: \"global\", \"project:<name>\", or \"repo:<name>\". Only provide if changing.',\n },\n },\n required: ['id'],\n },\n};\n\nconst SEARCH_TOOL = {\n name: 'memory_searchKnowledge',\n description: 'Search for relevant knowledge based on a task description. Returns ranked results.',\n inputSchema: {\n type: 'object' as const,\n properties: {\n query: {\n type: 'string',\n description: 'Natural language task description to search for relevant knowledge (3-500 chars)',\n },\n contextTags: {\n type: 'array',\n items: { type: 'string' },\n description: 'Optional tags to boost matching results (e.g., [\"api\", \"backend\"])',\n },\n scope: {\n type: 'string',\n description: 'Optional project/repo scope filter. Results from this scope are prioritized.',\n },\n limit: {\n type: 'number',\n description: 'Maximum number of results to return (1-20, default: 5)',\n },\n },\n required: ['query'],\n },\n};\n\nexport const TOOLS = [STORE_TOOL, UPDATE_TOOL, SEARCH_TOOL];\n\nexport function createServer(): Server {\n const server = new Server(\n {\n name: SERVER_NAME,\n version: SERVER_VERSION,\n },\n {\n capabilities: {\n tools: {},\n },\n }\n );\n\n // List available tools\n server.setRequestHandler(ListToolsRequestSchema, async () => {\n return {\n tools: [STORE_TOOL, UPDATE_TOOL, SEARCH_TOOL],\n };\n });\n\n // Handle tool calls\n server.setRequestHandler(CallToolRequestSchema, async (request) => {\n const { name, arguments: args } = request.params;\n\n try {\n // Backward-compat: accept deprecated dotted names so agents with\n // stale prompts/templates continue to work. Remove in next major.\n if (name === 'memory_storeKnowledge' || name === 'memory.storeKnowledge') {\n const input = args as unknown as StoreKnowledgeInput;\n const result = storeKnowledge(input);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n\n if (name === 'memory_updateKnowledge' || name === 'memory.updateKnowledge') {\n const input = args as unknown as UpdateKnowledgeInput;\n const result = updateKnowledge(input);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n\n if (name === 'memory_searchKnowledge' || name === 'memory.searchKnowledge') {\n const input = args as unknown as SearchKnowledgeInput;\n const result = searchKnowledge(input);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({ error: 'UNKNOWN_TOOL', message: `Unknown tool: ${name}` }),\n },\n ],\n isError: true,\n };\n } catch (error) {\n const errorResponse = error instanceof KnowledgeMemoryError\n ? error.toJSON()\n : { error: 'INTERNAL_ERROR', message: error instanceof Error ? error.message : String(error) };\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(errorResponse, null, 2),\n },\n ],\n isError: true,\n };\n }\n });\n\n return server;\n}\n\nexport async function runServer(): Promise<void> {\n const server = createServer();\n const transport = new StdioServerTransport();\n await server.connect(transport);\n}\n"],"names":["TOOLS","createServer","runServer","SERVER_NAME","SERVER_VERSION","STORE_TOOL","name","description","inputSchema","type","properties","title","content","tags","items","scope","required","UPDATE_TOOL","id","SEARCH_TOOL","query","contextTags","limit","server","Server","version","capabilities","tools","setRequestHandler","ListToolsRequestSchema","CallToolRequestSchema","request","arguments","args","params","input","result","storeKnowledge","text","JSON","stringify","updateKnowledge","searchKnowledge","error","message","isError","errorResponse","KnowledgeMemoryError","toJSON","Error","String","transport","StdioServerTransport","connect"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-devkit/memory",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Lightweight MCP-based memory service for AI agents - store and retrieve actionable knowledge",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -59,7 +59,7 @@
59
59
  "typescript": "^5.4.5"
60
60
  },
61
61
  "engines": {
62
- "node": ">=18.0.0"
62
+ "node": ">=20.20.0"
63
63
  },
64
64
  "files": [
65
65
  "dist",