@memextend/opencode 0.3.0 → 0.3.2
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.d.ts +1 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.cjs +19 -52
- package/dist/mcp/server.js +1 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +2 -2
- package/scripts/build.js +9 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,30 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenCode Adapter for memextend
|
|
3
|
-
*
|
|
4
|
-
* This adapter provides memextend integration for OpenCode (https://github.com/anomalyco/opencode)
|
|
5
|
-
* via MCP (Model Context Protocol) server.
|
|
6
|
-
*
|
|
7
|
-
* OpenCode is an open-source AI coding agent by Anomaly that supports:
|
|
8
|
-
* - Multiple AI providers (Anthropic, OpenAI, Google, local models)
|
|
9
|
-
* - Built-in agents (build, plan, general)
|
|
10
|
-
* - MCP server integration for custom tools
|
|
11
|
-
* - LSP support for code intelligence
|
|
12
|
-
* - TUI interface
|
|
13
|
-
*
|
|
14
|
-
* Integration approach:
|
|
15
|
-
* - MCP server provides mid-session memory tools (search, save, forget, status, context)
|
|
16
|
-
* - Users configure memextend in their opencode.json config
|
|
17
|
-
* - No native hook system, so session capture requires manual saves or external triggers
|
|
18
|
-
*
|
|
19
|
-
* Configuration location:
|
|
20
|
-
* - ~/.config/opencode/opencode.json (global)
|
|
21
|
-
* - ./opencode.json (project-local)
|
|
22
|
-
*
|
|
23
|
-
* OpenCode documentation: https://opencode.ai/docs
|
|
24
|
-
* GitHub: https://github.com/anomalyco/opencode
|
|
25
|
-
*/
|
|
26
1
|
export declare const ADAPTER_NAME = "opencode";
|
|
27
|
-
export declare const ADAPTER_VERSION
|
|
2
|
+
export declare const ADAPTER_VERSION: any;
|
|
28
3
|
export declare const ADAPTER_STATUS = "implemented";
|
|
29
4
|
export * from './mcp/index.js';
|
|
30
5
|
export * from './config/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,eAAe,KAAc,CAAC;AAC3C,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAG5C,cAAc,gBAAgB,CAAC;AAG/B,cAAc,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
// packages/adapters/opencode/src/index.ts
|
|
2
2
|
// Copyright (c) 2026 ZodTTD LLC. MIT License.
|
|
3
|
+
import { readFileSync } from 'fs';
|
|
4
|
+
import { dirname, join } from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
3
6
|
/**
|
|
4
7
|
* OpenCode Adapter for memextend
|
|
5
8
|
*
|
|
@@ -25,8 +28,11 @@
|
|
|
25
28
|
* OpenCode documentation: https://opencode.ai/docs
|
|
26
29
|
* GitHub: https://github.com/anomalyco/opencode
|
|
27
30
|
*/
|
|
31
|
+
// Read version from package.json
|
|
32
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
33
|
+
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
28
34
|
export const ADAPTER_NAME = 'opencode';
|
|
29
|
-
export const ADAPTER_VERSION =
|
|
35
|
+
export const ADAPTER_VERSION = pkg.version;
|
|
30
36
|
export const ADAPTER_STATUS = 'implemented';
|
|
31
37
|
// Export MCP server utilities
|
|
32
38
|
export * from './mcp/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,8CAA8C;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,8CAA8C;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,iCAAiC;AACjC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC;AACvC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC;AAC3C,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;AAE5C,8BAA8B;AAC9B,cAAc,gBAAgB,CAAC;AAE/B,iCAAiC;AACjC,cAAc,mBAAmB,CAAC"}
|
package/dist/mcp/server.cjs
CHANGED
|
@@ -13730,6 +13730,7 @@ var SQLiteStorage = class {
|
|
|
13730
13730
|
constructor(dbPath) {
|
|
13731
13731
|
this.db = new import_better_sqlite3.default(dbPath);
|
|
13732
13732
|
this.db.pragma("journal_mode = WAL");
|
|
13733
|
+
this.db.pragma("busy_timeout = 5000");
|
|
13733
13734
|
this.initialize();
|
|
13734
13735
|
}
|
|
13735
13736
|
initialize() {
|
|
@@ -14083,61 +14084,17 @@ var SQLiteStorage = class {
|
|
|
14083
14084
|
};
|
|
14084
14085
|
}
|
|
14085
14086
|
close() {
|
|
14087
|
+
try {
|
|
14088
|
+
this.db.pragma("wal_checkpoint(TRUNCATE)");
|
|
14089
|
+
} catch {
|
|
14090
|
+
}
|
|
14086
14091
|
this.db.close();
|
|
14087
14092
|
}
|
|
14088
14093
|
};
|
|
14089
14094
|
|
|
14090
14095
|
// ../../core/dist/storage/sqlite-vec.js
|
|
14091
14096
|
var import_better_sqlite32 = __toESM(require("better-sqlite3"), 1);
|
|
14092
|
-
|
|
14093
|
-
// ../../../node_modules/sqlite-vec/index.mjs
|
|
14094
|
-
var import_node_path = require("node:path");
|
|
14095
|
-
var import_node_url = require("node:url");
|
|
14096
|
-
var import_node_process2 = require("node:process");
|
|
14097
|
-
var import_node_fs = require("node:fs");
|
|
14098
|
-
var import_meta = {};
|
|
14099
|
-
var BASE_PACKAGE_NAME = "sqlite-vec";
|
|
14100
|
-
var ENTRYPOINT_BASE_NAME = "vec0";
|
|
14101
|
-
var supportedPlatforms = [["macos", "aarch64"], ["macos", "x86_64"], ["windows", "x86_64"], ["linux", "x86_64"], ["linux", "aarch64"]];
|
|
14102
|
-
var invalidPlatformErrorMessage = `Unsupported platform for ${BASE_PACKAGE_NAME}, on a ${import_node_process2.platform}-${import_node_process2.arch} machine. Supported platforms are (${supportedPlatforms.map(([p, a]) => `${p}-${a}`).join(",")}). Consult the ${BASE_PACKAGE_NAME} NPM package README for details.`;
|
|
14103
|
-
var extensionNotFoundErrorMessage = (packageName) => `Loadble extension for ${BASE_PACKAGE_NAME} not found. Was the ${packageName} package installed?`;
|
|
14104
|
-
function validPlatform(platform2, arch2) {
|
|
14105
|
-
return supportedPlatforms.find(([p, a]) => platform2 == p && arch2 === a) !== null;
|
|
14106
|
-
}
|
|
14107
|
-
function extensionSuffix(platform2) {
|
|
14108
|
-
if (platform2 === "win32")
|
|
14109
|
-
return "dll";
|
|
14110
|
-
if (platform2 === "darwin")
|
|
14111
|
-
return "dylib";
|
|
14112
|
-
return "so";
|
|
14113
|
-
}
|
|
14114
|
-
function platformPackageName(platform2, arch2) {
|
|
14115
|
-
const os = platform2 === "win32" ? "windows" : platform2;
|
|
14116
|
-
return `${BASE_PACKAGE_NAME}-${os}-${arch2}`;
|
|
14117
|
-
}
|
|
14118
|
-
function getLoadablePath() {
|
|
14119
|
-
if (!validPlatform(import_node_process2.platform, import_node_process2.arch)) {
|
|
14120
|
-
throw new Error(
|
|
14121
|
-
invalidPlatformErrorMessage
|
|
14122
|
-
);
|
|
14123
|
-
}
|
|
14124
|
-
const packageName = platformPackageName(import_node_process2.platform, import_node_process2.arch);
|
|
14125
|
-
const loadablePath = (0, import_node_path.join)(
|
|
14126
|
-
(0, import_node_url.fileURLToPath)(new URL((0, import_node_path.join)("."), import_meta.url)),
|
|
14127
|
-
"..",
|
|
14128
|
-
packageName,
|
|
14129
|
-
`${ENTRYPOINT_BASE_NAME}.${extensionSuffix(import_node_process2.platform)}`
|
|
14130
|
-
);
|
|
14131
|
-
if (!(0, import_node_fs.statSync)(loadablePath, { throwIfNoEntry: false })) {
|
|
14132
|
-
throw new Error(extensionNotFoundErrorMessage(packageName));
|
|
14133
|
-
}
|
|
14134
|
-
return loadablePath;
|
|
14135
|
-
}
|
|
14136
|
-
function load(db) {
|
|
14137
|
-
db.loadExtension(getLoadablePath());
|
|
14138
|
-
}
|
|
14139
|
-
|
|
14140
|
-
// ../../core/dist/storage/sqlite-vec.js
|
|
14097
|
+
var sqliteVec = __toESM(require("sqlite-vec"), 1);
|
|
14141
14098
|
var SQLiteVecStorage = class _SQLiteVecStorage {
|
|
14142
14099
|
db;
|
|
14143
14100
|
tableName = "memory_vectors";
|
|
@@ -14151,7 +14108,9 @@ var SQLiteVecStorage = class _SQLiteVecStorage {
|
|
|
14151
14108
|
actualPath = dbPath.replace(/\/?$/, ".db");
|
|
14152
14109
|
}
|
|
14153
14110
|
const db = new import_better_sqlite32.default(actualPath);
|
|
14154
|
-
load(db);
|
|
14111
|
+
sqliteVec.load(db);
|
|
14112
|
+
db.pragma("journal_mode = WAL");
|
|
14113
|
+
db.pragma("busy_timeout = 5000");
|
|
14155
14114
|
const storage = new _SQLiteVecStorage(db);
|
|
14156
14115
|
storage.initialize();
|
|
14157
14116
|
return storage;
|
|
@@ -14197,6 +14156,10 @@ var SQLiteVecStorage = class _SQLiteVecStorage {
|
|
|
14197
14156
|
if (vector.length !== this.dimensions) {
|
|
14198
14157
|
throw new Error(`Query vector must have ${this.dimensions} dimensions, got ${vector.length}`);
|
|
14199
14158
|
}
|
|
14159
|
+
const count = await this.getVectorCount();
|
|
14160
|
+
if (count === 0) {
|
|
14161
|
+
return [];
|
|
14162
|
+
}
|
|
14200
14163
|
const effectiveLimit = limit > 0 ? limit : 100;
|
|
14201
14164
|
const float32 = new Float32Array(vector);
|
|
14202
14165
|
const vectorBuffer = Buffer.from(float32.buffer);
|
|
@@ -14204,8 +14167,8 @@ var SQLiteVecStorage = class _SQLiteVecStorage {
|
|
|
14204
14167
|
SELECT id, distance
|
|
14205
14168
|
FROM ${this.tableName}
|
|
14206
14169
|
WHERE vector MATCH ?
|
|
14170
|
+
AND k = ?
|
|
14207
14171
|
ORDER BY distance
|
|
14208
|
-
LIMIT ?
|
|
14209
14172
|
`);
|
|
14210
14173
|
const rows = stmt.all(vectorBuffer, effectiveLimit);
|
|
14211
14174
|
return rows.map((row) => ({
|
|
@@ -14243,6 +14206,10 @@ var SQLiteVecStorage = class _SQLiteVecStorage {
|
|
|
14243
14206
|
return result;
|
|
14244
14207
|
}
|
|
14245
14208
|
async close() {
|
|
14209
|
+
try {
|
|
14210
|
+
this.db.pragma("wal_checkpoint(TRUNCATE)");
|
|
14211
|
+
} catch {
|
|
14212
|
+
}
|
|
14246
14213
|
this.db.close();
|
|
14247
14214
|
}
|
|
14248
14215
|
// No optimize needed - SQLite handles this automatically!
|
|
@@ -14515,7 +14482,7 @@ async function getStorage() {
|
|
|
14515
14482
|
var server = new Server(
|
|
14516
14483
|
{
|
|
14517
14484
|
name: "memextend",
|
|
14518
|
-
version: "0.3.
|
|
14485
|
+
version: "0.3.2"
|
|
14519
14486
|
},
|
|
14520
14487
|
{
|
|
14521
14488
|
capabilities: {
|
package/dist/mcp/server.js
CHANGED
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,8CAA8C;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAExG,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACpD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAElD,gCAAgC;AAChC,IAAI,MAAM,GAAyB,IAAI,CAAC;AACxC,IAAI,WAAW,GAA4B,IAAI,CAAC;AAChD,IAAI,SAAS,GAA2B,IAAI,CAAC;AAC7C,IAAI,QAAQ,GAA2D,IAAI,CAAC;AAE5E,KAAK,UAAU,UAAU;IAMvB,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,QAAQ,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memextend/opencode",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "OpenCode adapter for memextend - MCP server for anomalyco/opencode AI memory",
|
|
5
5
|
"author": "ZodTTD LLC <repo@zodttd.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"setup": "node dist/setup.js"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@memextend/core": "^0.3.
|
|
31
|
+
"@memextend/core": "^0.3.2",
|
|
32
32
|
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
package/scripts/build.js
CHANGED
|
@@ -5,11 +5,16 @@ import { build } from 'esbuild';
|
|
|
5
5
|
import { join, dirname } from 'path';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
7
|
import { mkdir } from 'fs/promises';
|
|
8
|
+
import { readFileSync } from 'fs';
|
|
8
9
|
|
|
9
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
11
|
const srcDir = join(__dirname, '..', 'src');
|
|
11
12
|
const distDir = join(__dirname, '..', 'dist');
|
|
12
13
|
|
|
14
|
+
// Read version from root package.json
|
|
15
|
+
const rootPkg = JSON.parse(readFileSync(join(__dirname, '..', '..', '..', '..', 'package.json'), 'utf-8'));
|
|
16
|
+
const version = rootPkg.version;
|
|
17
|
+
|
|
13
18
|
const commonOptions = {
|
|
14
19
|
bundle: true,
|
|
15
20
|
platform: 'node',
|
|
@@ -17,8 +22,11 @@ const commonOptions = {
|
|
|
17
22
|
format: 'cjs',
|
|
18
23
|
// External packages that should not be bundled
|
|
19
24
|
// These are native modules or have complex dependencies
|
|
20
|
-
external: ['better-sqlite3', 'node-llama-cpp'],
|
|
25
|
+
external: ['better-sqlite3', 'node-llama-cpp', 'sqlite-vec'],
|
|
21
26
|
logLevel: 'warning',
|
|
27
|
+
define: {
|
|
28
|
+
'MEMEXTEND_VERSION': JSON.stringify(version),
|
|
29
|
+
},
|
|
22
30
|
};
|
|
23
31
|
|
|
24
32
|
async function buildMCP() {
|