@veedubin/neuralgentics 0.9.1
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/neuralgentics/go-backend-client.d.ts +71 -0
- package/dist/neuralgentics/go-backend-client.d.ts.map +1 -0
- package/dist/neuralgentics/go-backend-client.js +198 -0
- package/dist/neuralgentics/go-backend-client.js.map +1 -0
- package/dist/neuralgentics/index.d.ts +17 -0
- package/dist/neuralgentics/index.d.ts.map +1 -0
- package/dist/neuralgentics/index.js +16 -0
- package/dist/neuralgentics/index.js.map +1 -0
- package/dist/neuralgentics/memory-client.d.ts +68 -0
- package/dist/neuralgentics/memory-client.d.ts.map +1 -0
- package/dist/neuralgentics/memory-client.js +111 -0
- package/dist/neuralgentics/memory-client.js.map +1 -0
- package/dist/neuralgentics/orchestrator.d.ts +63 -0
- package/dist/neuralgentics/orchestrator.d.ts.map +1 -0
- package/dist/neuralgentics/orchestrator.js +154 -0
- package/dist/neuralgentics/orchestrator.js.map +1 -0
- package/dist/neuralgentics/routing.d.ts +34 -0
- package/dist/neuralgentics/routing.d.ts.map +1 -0
- package/dist/neuralgentics/routing.js +88 -0
- package/dist/neuralgentics/routing.js.map +1 -0
- package/dist/neuralgentics/stateless.d.ts +53 -0
- package/dist/neuralgentics/stateless.d.ts.map +1 -0
- package/dist/neuralgentics/stateless.js +83 -0
- package/dist/neuralgentics/stateless.js.map +1 -0
- package/dist/neuralgentics/types.d.ts +68 -0
- package/dist/neuralgentics/types.d.ts.map +1 -0
- package/dist/neuralgentics/types.js +9 -0
- package/dist/neuralgentics/types.js.map +1 -0
- package/dist/neuralgentics/updater.d.ts +23 -0
- package/dist/neuralgentics/updater.d.ts.map +1 -0
- package/dist/neuralgentics/updater.js +47 -0
- package/dist/neuralgentics/updater.js.map +1 -0
- package/dist/server.d.ts +76 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +358 -0
- package/dist/server.js.map +1 -0
- package/package.json +69 -0
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neuralgentics OpenCode Server Plugin
|
|
3
|
+
*
|
|
4
|
+
* Exports the standard OpenCode plugin contract:
|
|
5
|
+
* default { id, server }
|
|
6
|
+
*
|
|
7
|
+
* The `server` function receives OpenCode's PluginInput and returns Hooks
|
|
8
|
+
* that register custom MCP tools, handle lifecycle events, and manage the
|
|
9
|
+
* Go backend JSON-RPC stdio connection.
|
|
10
|
+
*
|
|
11
|
+
* Because @opencode-ai/plugin is an optional peer dependency (it is provided
|
|
12
|
+
* by OpenCode at runtime), all external types are declared inline as
|
|
13
|
+
* structural matches — no compile-time import required.
|
|
14
|
+
*/
|
|
15
|
+
/** Minimal PluginInput shape — OpenCode provides the full object at runtime. */
|
|
16
|
+
interface PluginInput {
|
|
17
|
+
client?: unknown;
|
|
18
|
+
project?: {
|
|
19
|
+
name?: string;
|
|
20
|
+
path?: string;
|
|
21
|
+
};
|
|
22
|
+
directory: string;
|
|
23
|
+
worktree: string;
|
|
24
|
+
serverUrl: URL;
|
|
25
|
+
$?: unknown;
|
|
26
|
+
}
|
|
27
|
+
/** Tool argument schema descriptor (Zod-free, JSON-Schema compatible). */
|
|
28
|
+
interface ToolArgSchema {
|
|
29
|
+
type: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
optional?: boolean;
|
|
32
|
+
default?: unknown;
|
|
33
|
+
}
|
|
34
|
+
/** Tool definition returned in the `tool` hook. */
|
|
35
|
+
interface ToolDefinition {
|
|
36
|
+
description: string;
|
|
37
|
+
args: Record<string, ToolArgSchema>;
|
|
38
|
+
execute: (args: Record<string, unknown>, context: ToolContext) => Promise<string>;
|
|
39
|
+
}
|
|
40
|
+
/** Context passed to tool execute. */
|
|
41
|
+
interface ToolContext {
|
|
42
|
+
sessionID: string;
|
|
43
|
+
messageID: string;
|
|
44
|
+
directory: string;
|
|
45
|
+
worktree: string;
|
|
46
|
+
}
|
|
47
|
+
/** Hooks returned by the server function. */
|
|
48
|
+
interface Hooks {
|
|
49
|
+
tool?: Record<string, ToolDefinition>;
|
|
50
|
+
event?: (payload: {
|
|
51
|
+
event: Record<string, unknown>;
|
|
52
|
+
}) => Promise<void>;
|
|
53
|
+
config?: (cfg: Record<string, unknown>) => Promise<void>;
|
|
54
|
+
cleanup?: () => Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
/** PluginModule default export shape. */
|
|
57
|
+
interface PluginModule {
|
|
58
|
+
id: string;
|
|
59
|
+
server: (input: PluginInput) => Promise<Hooks>;
|
|
60
|
+
}
|
|
61
|
+
/** Resolve the Go backend binary path from env or fallback. */
|
|
62
|
+
declare function resolveBinaryPath(): string;
|
|
63
|
+
/** Load AGENTS.md from disk if not already cached. */
|
|
64
|
+
declare function loadAgentsMd(directory: string): Promise<string | null>;
|
|
65
|
+
/**
|
|
66
|
+
* OpenCode plugin server function.
|
|
67
|
+
*
|
|
68
|
+
* Initialises the GoBackendClient and returns Hooks for tools, events,
|
|
69
|
+
* config merging, and cleanup.
|
|
70
|
+
*/
|
|
71
|
+
declare function server(input: PluginInput): Promise<Hooks>;
|
|
72
|
+
declare const pluginModule: PluginModule;
|
|
73
|
+
export default pluginModule;
|
|
74
|
+
export { server, resolveBinaryPath, loadAgentsMd };
|
|
75
|
+
export type { PluginInput, PluginModule, Hooks, ToolDefinition, ToolContext, ToolArgSchema, };
|
|
76
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,gFAAgF;AAChF,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,CAAC,CAAC,EAAE,OAAO,CAAC;CACb;AAED,0EAA0E;AAC1E,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,mDAAmD;AACnD,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnF;AAED,sCAAsC;AACtC,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6CAA6C;AAC7C,UAAU,KAAK;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,yCAAyC;AACzC,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;CAChD;AAmBD,+DAA+D;AAC/D,iBAAS,iBAAiB,IAAI,MAAM,CAEnC;AAED,sDAAsD;AACtD,iBAAe,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBrE;AAqCD;;;;;GAKG;AACH,iBAAe,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAgUxD;AAMD,QAAA,MAAM,YAAY,EAAE,YAGnB,CAAC;AAEF,eAAe,YAAY,CAAC;AAG5B,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC;AACnD,YAAY,EACV,WAAW,EACX,YAAY,EACZ,KAAK,EACL,cAAc,EACd,WAAW,EACX,aAAa,GACd,CAAC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Neuralgentics OpenCode Server Plugin
|
|
3
|
+
*
|
|
4
|
+
* Exports the standard OpenCode plugin contract:
|
|
5
|
+
* default { id, server }
|
|
6
|
+
*
|
|
7
|
+
* The `server` function receives OpenCode's PluginInput and returns Hooks
|
|
8
|
+
* that register custom MCP tools, handle lifecycle events, and manage the
|
|
9
|
+
* Go backend JSON-RPC stdio connection.
|
|
10
|
+
*
|
|
11
|
+
* Because @opencode-ai/plugin is an optional peer dependency (it is provided
|
|
12
|
+
* by OpenCode at runtime), all external types are declared inline as
|
|
13
|
+
* structural matches — no compile-time import required.
|
|
14
|
+
*/
|
|
15
|
+
import { readFile } from "node:fs/promises";
|
|
16
|
+
import { resolve } from "node:path";
|
|
17
|
+
import { GoBackendClient } from "./neuralgentics/go-backend-client.js";
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Plugin State
|
|
20
|
+
// ============================================================================
|
|
21
|
+
const VERSION = "0.2.0";
|
|
22
|
+
const DEFAULT_BINARY = "neuralgentics-backend";
|
|
23
|
+
/** Shared GoBackendClient instance — initialised once per plugin load. */
|
|
24
|
+
let backend = null;
|
|
25
|
+
/** Cached AGENTS.md content (loaded lazily). */
|
|
26
|
+
let agentsMdContent = null;
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Helpers
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/** Resolve the Go backend binary path from env or fallback. */
|
|
31
|
+
function resolveBinaryPath() {
|
|
32
|
+
return process.env.NEURALGENTICS_BACKEND_PATH ?? DEFAULT_BINARY;
|
|
33
|
+
}
|
|
34
|
+
/** Load AGENTS.md from disk if not already cached. */
|
|
35
|
+
async function loadAgentsMd(directory) {
|
|
36
|
+
if (agentsMdContent !== null)
|
|
37
|
+
return agentsMdContent;
|
|
38
|
+
const candidates = [
|
|
39
|
+
resolve(directory, "AGENTS.md"),
|
|
40
|
+
resolve(directory, "..", "AGENTS.md"),
|
|
41
|
+
resolve(process.cwd(), "AGENTS.md"),
|
|
42
|
+
];
|
|
43
|
+
for (const path of candidates) {
|
|
44
|
+
try {
|
|
45
|
+
agentsMdContent = await readFile(path, "utf-8");
|
|
46
|
+
return agentsMdContent;
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
// try next candidate
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
// ============================================================================
|
|
55
|
+
// Tool Builders
|
|
56
|
+
// ============================================================================
|
|
57
|
+
/**
|
|
58
|
+
* Build a proxy tool that forwards arguments to a Go backend JSON-RPC method
|
|
59
|
+
* and returns the result as a JSON string.
|
|
60
|
+
*/
|
|
61
|
+
function makeProxyTool(method, description, argMap) {
|
|
62
|
+
return {
|
|
63
|
+
description,
|
|
64
|
+
args: argMap,
|
|
65
|
+
async execute(args) {
|
|
66
|
+
if (!backend) {
|
|
67
|
+
return JSON.stringify({ error: "Go backend not initialised" });
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
const result = await backend.call(method, args);
|
|
71
|
+
return JSON.stringify({ success: true, result }, null, 2);
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
75
|
+
return JSON.stringify({ success: false, error: message }, null, 2);
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// ============================================================================
|
|
81
|
+
// Server Function
|
|
82
|
+
// ============================================================================
|
|
83
|
+
/**
|
|
84
|
+
* OpenCode plugin server function.
|
|
85
|
+
*
|
|
86
|
+
* Initialises the GoBackendClient and returns Hooks for tools, events,
|
|
87
|
+
* config merging, and cleanup.
|
|
88
|
+
*/
|
|
89
|
+
async function server(input) {
|
|
90
|
+
const directory = input.directory ?? process.cwd();
|
|
91
|
+
// --------------------------------------------------------------------------
|
|
92
|
+
// Initialise GoBackendClient
|
|
93
|
+
// --------------------------------------------------------------------------
|
|
94
|
+
const binaryPath = resolveBinaryPath();
|
|
95
|
+
backend = new GoBackendClient(binaryPath);
|
|
96
|
+
try {
|
|
97
|
+
await backend.waitForReady();
|
|
98
|
+
console.error(`[Neuralgentics] Go backend ready (${binaryPath})`);
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
102
|
+
console.error(`[Neuralgentics] Failed to start Go backend: ${message}`);
|
|
103
|
+
// Continue — tools will return errors until backend is healthy.
|
|
104
|
+
}
|
|
105
|
+
// --------------------------------------------------------------------------
|
|
106
|
+
// Register Tools
|
|
107
|
+
// --------------------------------------------------------------------------
|
|
108
|
+
const tool = {
|
|
109
|
+
// --- Memory tools --------------------------------------------------------
|
|
110
|
+
neuralgentics_memory_add: makeProxyTool("memory.add", "Add a memory entry to the Neuralgentics database.", {
|
|
111
|
+
text: { type: "string", description: "Memory content text" },
|
|
112
|
+
sourceType: {
|
|
113
|
+
type: "string",
|
|
114
|
+
description: "Source type: session, file, web, project, thought",
|
|
115
|
+
default: "session",
|
|
116
|
+
},
|
|
117
|
+
sourcePath: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "Optional source file path or URL",
|
|
120
|
+
optional: true,
|
|
121
|
+
},
|
|
122
|
+
metadata: {
|
|
123
|
+
type: "object",
|
|
124
|
+
description: "Optional key-value metadata",
|
|
125
|
+
optional: true,
|
|
126
|
+
},
|
|
127
|
+
}),
|
|
128
|
+
neuralgentics_memory_query: makeProxyTool("memory.query", "Query memories with semantic or full-text search.", {
|
|
129
|
+
query: { type: "string", description: "Search query text" },
|
|
130
|
+
limit: { type: "number", description: "Max results (default 10)", default: 10 },
|
|
131
|
+
strategy: {
|
|
132
|
+
type: "string",
|
|
133
|
+
description: "Search strategy: tiered, vector_only, text_only, parallel",
|
|
134
|
+
default: "tiered",
|
|
135
|
+
},
|
|
136
|
+
}),
|
|
137
|
+
neuralgentics_memory_get: makeProxyTool("memory.get", "Retrieve a single memory entry by its ID.", {
|
|
138
|
+
id: { type: "string", description: "Memory UUID" },
|
|
139
|
+
}),
|
|
140
|
+
neuralgentics_memory_delete: makeProxyTool("memory.delete", "Delete a memory entry by its ID.", {
|
|
141
|
+
id: { type: "string", description: "Memory UUID to delete" },
|
|
142
|
+
}),
|
|
143
|
+
neuralgentics_memory_adjustTrust: makeProxyTool("memory.adjustTrust", "Adjust the trust score of a memory entry.", {
|
|
144
|
+
memoryID: { type: "string", description: "Memory UUID" },
|
|
145
|
+
signal: {
|
|
146
|
+
type: "string",
|
|
147
|
+
description: "Trust signal: agent_used, agent_ignored, user_confirmed, user_corrected",
|
|
148
|
+
},
|
|
149
|
+
}),
|
|
150
|
+
// --- Memory manager (lazy tool exposure) --------------------------------
|
|
151
|
+
// Phase 3 of the memoryManager port. This is the entry point for
|
|
152
|
+
// agents to request additional tools on demand. Agents start with only the
|
|
153
|
+
// tools listed in the default initial set, and can request more via this
|
|
154
|
+
// tool. Once a tool has been used 5+ times, the broker allows the agent to
|
|
155
|
+
// bypass it and call the tool directly.
|
|
156
|
+
neuralgentics_memory_manager: {
|
|
157
|
+
description: "Manage tool exposure for the current agent. Actions: " +
|
|
158
|
+
"'get_initial_set' returns the default 5-7 tools the agent starts with; " +
|
|
159
|
+
"'request_tool' records a new tool request and returns its schema; " +
|
|
160
|
+
"'get_tools' returns all tools this agent has been exposed to; " +
|
|
161
|
+
"'increment_use' bumps the use count for a tool (and may flip it to bypass mode).",
|
|
162
|
+
args: {
|
|
163
|
+
action: {
|
|
164
|
+
type: "string",
|
|
165
|
+
description: "One of: get_initial_set, request_tool, get_tools, increment_use",
|
|
166
|
+
},
|
|
167
|
+
peer_id: {
|
|
168
|
+
type: "string",
|
|
169
|
+
description: "Agent peer ID (default: 'default')",
|
|
170
|
+
default: "default",
|
|
171
|
+
},
|
|
172
|
+
tool_server: {
|
|
173
|
+
type: "string",
|
|
174
|
+
description: "Server name (e.g. 'neuralgentics') — required for request_tool and increment_use",
|
|
175
|
+
optional: true,
|
|
176
|
+
},
|
|
177
|
+
tool_name: {
|
|
178
|
+
type: "string",
|
|
179
|
+
description: "Tool name (e.g. 'memory.add') — required for request_tool and increment_use",
|
|
180
|
+
optional: true,
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
execute: async (args, ctx) => {
|
|
184
|
+
const action = String(args.action ?? "");
|
|
185
|
+
const peerID = String(args.peer_id ?? "default");
|
|
186
|
+
if (!backend) {
|
|
187
|
+
throw new Error("Go backend not ready");
|
|
188
|
+
}
|
|
189
|
+
const toStr = (v) => typeof v === "string" ? v : JSON.stringify(v);
|
|
190
|
+
switch (action) {
|
|
191
|
+
case "get_initial_set":
|
|
192
|
+
return toStr(await backend.call("agent.getInitialToolSet", { peer_id: peerID }));
|
|
193
|
+
case "request_tool": {
|
|
194
|
+
const server = String(args.tool_server ?? "");
|
|
195
|
+
const name = String(args.tool_name ?? "");
|
|
196
|
+
if (!server || !name) {
|
|
197
|
+
throw new Error("request_tool requires tool_server and tool_name");
|
|
198
|
+
}
|
|
199
|
+
await backend.call("agent.recordToolRequest", {
|
|
200
|
+
peer_id: peerID,
|
|
201
|
+
tool_server: server,
|
|
202
|
+
tool_name: name,
|
|
203
|
+
});
|
|
204
|
+
return JSON.stringify({ success: true, tool_server: server, tool_name: name, peer_id: peerID });
|
|
205
|
+
}
|
|
206
|
+
case "get_tools":
|
|
207
|
+
return toStr(await backend.call("agent.getTools", { peer_id: peerID }));
|
|
208
|
+
case "increment_use": {
|
|
209
|
+
const server = String(args.tool_server ?? "");
|
|
210
|
+
const name = String(args.tool_name ?? "");
|
|
211
|
+
if (!server || !name) {
|
|
212
|
+
throw new Error("increment_use requires tool_server and tool_name");
|
|
213
|
+
}
|
|
214
|
+
return toStr(await backend.call("agent.incrementToolUse", {
|
|
215
|
+
peer_id: peerID,
|
|
216
|
+
tool_server: server,
|
|
217
|
+
tool_name: name,
|
|
218
|
+
}));
|
|
219
|
+
}
|
|
220
|
+
default:
|
|
221
|
+
throw new Error(`Unknown action: ${action}`);
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
// --- Orchestrator tools --------------------------------------------------
|
|
226
|
+
neuralgentics_orchestrator_route: makeProxyTool("orchestrator.route", "Route a task to the correct agent role based on the Routing Matrix.", {
|
|
227
|
+
taskType: { type: "string", description: "Task type string" },
|
|
228
|
+
description: { type: "string", description: "Task description", optional: true },
|
|
229
|
+
}),
|
|
230
|
+
neuralgentics_orchestrator_dispatch: makeProxyTool("orchestrator.dispatch", "Dispatch one or more tasks through the orchestrator.", {
|
|
231
|
+
tasks: {
|
|
232
|
+
type: "array",
|
|
233
|
+
description: "Array of task objects with id, type, description, userRequest",
|
|
234
|
+
},
|
|
235
|
+
}),
|
|
236
|
+
// --- Broker tools --------------------------------------------------------
|
|
237
|
+
neuralgentics_broker_buildCatalog: makeProxyTool("broker.buildCatalog", "Build a token-reduced server catalog for the current role.", {
|
|
238
|
+
role: { type: "string", description: "Agent role (default: orchestrator)", default: "orchestrator" },
|
|
239
|
+
}),
|
|
240
|
+
neuralgentics_broker_call: makeProxyTool("broker.call", "Call a tool on a specific MCP server through the broker.", {
|
|
241
|
+
serverName: { type: "string", description: "MCP server name" },
|
|
242
|
+
toolName: { type: "string", description: "Tool name" },
|
|
243
|
+
args: { type: "object", description: "Tool arguments", optional: true },
|
|
244
|
+
}),
|
|
245
|
+
neuralgentics_broker_matchIntent: makeProxyTool("broker.matchIntent", "Match an intent to the best available tool via the broker.", {
|
|
246
|
+
intent: { type: "string", description: "User intent description" },
|
|
247
|
+
role: { type: "string", description: "Agent role", default: "orchestrator" },
|
|
248
|
+
}),
|
|
249
|
+
// --- Utility tools -------------------------------------------------------
|
|
250
|
+
neuralgentics_get_agents_md: {
|
|
251
|
+
description: "Retrieve the AGENTS.md content for the current project. Used by the orchestrator to inject project context into agent prompts.",
|
|
252
|
+
args: {
|
|
253
|
+
workspace_root: {
|
|
254
|
+
type: "string",
|
|
255
|
+
description: "Workspace root directory (defaults to plugin directory)",
|
|
256
|
+
optional: true,
|
|
257
|
+
},
|
|
258
|
+
},
|
|
259
|
+
async execute(args) {
|
|
260
|
+
const dir = args.workspace_root || directory;
|
|
261
|
+
const content = await loadAgentsMd(dir);
|
|
262
|
+
if (!content) {
|
|
263
|
+
return "AGENTS.md not found — looked in project root and parent directories";
|
|
264
|
+
}
|
|
265
|
+
return content;
|
|
266
|
+
},
|
|
267
|
+
},
|
|
268
|
+
neuralgentics_ping: {
|
|
269
|
+
description: "Ping the Neuralgentics Go backend to verify connectivity.",
|
|
270
|
+
args: {},
|
|
271
|
+
async execute() {
|
|
272
|
+
if (!backend) {
|
|
273
|
+
return JSON.stringify({ ok: false, error: "Backend not initialised" });
|
|
274
|
+
}
|
|
275
|
+
try {
|
|
276
|
+
const result = await backend.call("ping", {});
|
|
277
|
+
return JSON.stringify({ ok: true, result }, null, 2);
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
281
|
+
return JSON.stringify({ ok: false, error: message }, null, 2);
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
// --------------------------------------------------------------------------
|
|
287
|
+
// Event Handler
|
|
288
|
+
// --------------------------------------------------------------------------
|
|
289
|
+
const event = async ({ event, }) => {
|
|
290
|
+
const type = event.type;
|
|
291
|
+
switch (type) {
|
|
292
|
+
case "session.created": {
|
|
293
|
+
console.error("[Neuralgentics] Session created — tools ready");
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
case "session.compacting": {
|
|
297
|
+
try {
|
|
298
|
+
const content = await loadAgentsMd(directory);
|
|
299
|
+
if (content && backend) {
|
|
300
|
+
await backend.call("memory.add", {
|
|
301
|
+
text: content,
|
|
302
|
+
sourceType: "context_package",
|
|
303
|
+
metadata: { reason: "compaction_backup", file: "AGENTS.md" },
|
|
304
|
+
});
|
|
305
|
+
console.error("[Neuralgentics] AGENTS.md backed up before compaction");
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
catch (err) {
|
|
309
|
+
console.error("[Neuralgentics] Compaction backup failed:", err);
|
|
310
|
+
}
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
default:
|
|
314
|
+
break;
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
// --------------------------------------------------------------------------
|
|
318
|
+
// Config Merger
|
|
319
|
+
// --------------------------------------------------------------------------
|
|
320
|
+
const config = async (cfg) => {
|
|
321
|
+
cfg.neuralgentics = {
|
|
322
|
+
version: VERSION,
|
|
323
|
+
backendBinary: binaryPath,
|
|
324
|
+
backendReady: backend !== null,
|
|
325
|
+
agentsMdLoaded: agentsMdContent !== null,
|
|
326
|
+
};
|
|
327
|
+
};
|
|
328
|
+
// --------------------------------------------------------------------------
|
|
329
|
+
// Cleanup
|
|
330
|
+
// --------------------------------------------------------------------------
|
|
331
|
+
const cleanup = async () => {
|
|
332
|
+
console.error("[Neuralgentics] Plugin shutting down");
|
|
333
|
+
if (backend) {
|
|
334
|
+
try {
|
|
335
|
+
await backend.shutdown();
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
// ignore shutdown errors
|
|
339
|
+
}
|
|
340
|
+
backend = null;
|
|
341
|
+
}
|
|
342
|
+
};
|
|
343
|
+
// --------------------------------------------------------------------------
|
|
344
|
+
// Return Hooks
|
|
345
|
+
// --------------------------------------------------------------------------
|
|
346
|
+
return { tool, event, config, cleanup };
|
|
347
|
+
}
|
|
348
|
+
// ============================================================================
|
|
349
|
+
// Default Export — OpenCode Plugin Contract
|
|
350
|
+
// ============================================================================
|
|
351
|
+
const pluginModule = {
|
|
352
|
+
id: "neuralgentics",
|
|
353
|
+
server,
|
|
354
|
+
};
|
|
355
|
+
export default pluginModule;
|
|
356
|
+
// Also export named pieces for testing / advanced use
|
|
357
|
+
export { server, resolveBinaryPath, loadAgentsMd };
|
|
358
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@veedubin/neuralgentics",
|
|
3
|
+
"version": "0.9.1",
|
|
4
|
+
"description": "Neuralgentics OpenCode plugin — agent personas, skills, routing enforcement, and MCP tools.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/server.js",
|
|
7
|
+
"types": "./dist/server.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/server.js",
|
|
14
|
+
"types": "./dist/server.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./library": {
|
|
17
|
+
"import": "./dist/neuralgentics/index.js",
|
|
18
|
+
"types": "./dist/neuralgentics/index.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"./server": {
|
|
21
|
+
"import": "./dist/server.js",
|
|
22
|
+
"types": "./dist/server.d.ts"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsc",
|
|
27
|
+
"typecheck": "tsc --noEmit",
|
|
28
|
+
"test:e2e": "node e2e_test.mjs",
|
|
29
|
+
"prepublishOnly": "npm run typecheck && npm run build"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [
|
|
32
|
+
"opencode",
|
|
33
|
+
"opencode-plugin",
|
|
34
|
+
"neuralgentics",
|
|
35
|
+
"agent",
|
|
36
|
+
"orchestration",
|
|
37
|
+
"boomerang"
|
|
38
|
+
],
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/Veedubin/neuralgentics",
|
|
42
|
+
"directory": "overlay/packages/opencode"
|
|
43
|
+
},
|
|
44
|
+
"homepage": "https://github.com/Veedubin/neuralgentics#readme",
|
|
45
|
+
"bugs": {
|
|
46
|
+
"url": "https://github.com/Veedubin/neuralgentics/issues"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/node": "^22.0.0",
|
|
51
|
+
"typescript": "^5.7.0"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"@opencode-ai/plugin": "^1.15.0",
|
|
55
|
+
"zod": "^3.0.0"
|
|
56
|
+
},
|
|
57
|
+
"peerDependenciesMeta": {
|
|
58
|
+
"@opencode-ai/plugin": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"zod": {
|
|
62
|
+
"optional": true
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"engines": {
|
|
66
|
+
"node": ">=20.0.0",
|
|
67
|
+
"opencode": "^1.15.0"
|
|
68
|
+
}
|
|
69
|
+
}
|