@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.
Files changed (37) hide show
  1. package/dist/neuralgentics/go-backend-client.d.ts +71 -0
  2. package/dist/neuralgentics/go-backend-client.d.ts.map +1 -0
  3. package/dist/neuralgentics/go-backend-client.js +198 -0
  4. package/dist/neuralgentics/go-backend-client.js.map +1 -0
  5. package/dist/neuralgentics/index.d.ts +17 -0
  6. package/dist/neuralgentics/index.d.ts.map +1 -0
  7. package/dist/neuralgentics/index.js +16 -0
  8. package/dist/neuralgentics/index.js.map +1 -0
  9. package/dist/neuralgentics/memory-client.d.ts +68 -0
  10. package/dist/neuralgentics/memory-client.d.ts.map +1 -0
  11. package/dist/neuralgentics/memory-client.js +111 -0
  12. package/dist/neuralgentics/memory-client.js.map +1 -0
  13. package/dist/neuralgentics/orchestrator.d.ts +63 -0
  14. package/dist/neuralgentics/orchestrator.d.ts.map +1 -0
  15. package/dist/neuralgentics/orchestrator.js +154 -0
  16. package/dist/neuralgentics/orchestrator.js.map +1 -0
  17. package/dist/neuralgentics/routing.d.ts +34 -0
  18. package/dist/neuralgentics/routing.d.ts.map +1 -0
  19. package/dist/neuralgentics/routing.js +88 -0
  20. package/dist/neuralgentics/routing.js.map +1 -0
  21. package/dist/neuralgentics/stateless.d.ts +53 -0
  22. package/dist/neuralgentics/stateless.d.ts.map +1 -0
  23. package/dist/neuralgentics/stateless.js +83 -0
  24. package/dist/neuralgentics/stateless.js.map +1 -0
  25. package/dist/neuralgentics/types.d.ts +68 -0
  26. package/dist/neuralgentics/types.d.ts.map +1 -0
  27. package/dist/neuralgentics/types.js +9 -0
  28. package/dist/neuralgentics/types.js.map +1 -0
  29. package/dist/neuralgentics/updater.d.ts +23 -0
  30. package/dist/neuralgentics/updater.d.ts.map +1 -0
  31. package/dist/neuralgentics/updater.js +47 -0
  32. package/dist/neuralgentics/updater.js.map +1 -0
  33. package/dist/server.d.ts +76 -0
  34. package/dist/server.d.ts.map +1 -0
  35. package/dist/server.js +358 -0
  36. package/dist/server.js.map +1 -0
  37. package/package.json +69 -0
@@ -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
+ }