@openexpertise/node-kinds-dataset 0.1.0 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-dispatcher.d.ts","sourceRoot":"","sources":["../src/dataset-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAKtE,UAAU,WAAY,SAAQ,YAAY;IACxC,IAAI,EAAE,eAAe,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,qBAAa,iBAAkB,YAAW,cAAc;IACtD,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAS;IAE5B,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/D,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CA4C9F"}
1
+ {"version":3,"file":"dataset-dispatcher.d.ts","sourceRoot":"","sources":["../src/dataset-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,UAAU,EACV,YAAY,EACZ,UAAU,EACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAMtE,UAAU,WAAY,SAAQ,YAAY;IACxC,IAAI,EAAE,eAAe,CAAA;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACrB;AAED,qBAAa,iBAAkB,YAAW,cAAc;IACtD,QAAQ,CAAC,IAAI,EAAG,SAAS,CAAS;IAE5B,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAO/D,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAkD9F"}
@@ -1,6 +1,7 @@
1
1
  import { loadFileSource } from './sources/file.js';
2
2
  import { loadSqliteSource } from './sources/sqlite.js';
3
3
  import { loadHttpSource } from './sources/http.js';
4
+ import { loadMcpResourceSource } from './sources/mcp-resource.js';
4
5
  export class DatasetDispatcher {
5
6
  kind = 'dataset';
6
7
  async resolve(node, _ctx) {
@@ -41,7 +42,13 @@ export class DatasetDispatcher {
41
42
  });
42
43
  break;
43
44
  case 'mcp-resource':
44
- throw new Error(`mcp-resource dataset source is not implemented in V1`);
45
+ rows = await loadMcpResourceSource({
46
+ server: src.server,
47
+ uri: src.uri,
48
+ experienceDir: ctx.experienceDir,
49
+ nodeId: di.spec.id,
50
+ });
51
+ break;
45
52
  default: {
46
53
  const _exhaustive = src;
47
54
  throw new Error(`Unknown dataset source: ${JSON.stringify(_exhaustive)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"dataset-dispatcher.js","sourceRoot":"","sources":["../src/dataset-dispatcher.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAOlD,MAAM,OAAO,iBAAiB;IACnB,IAAI,GAAG,SAAkB,CAAA;IAElC,KAAK,CAAC,OAAO,CAAC,IAAc,EAAE,IAAgB;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QACvE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAuB,EAAE,CAAA;IAC1C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAkB,EAAE,OAAwB,EAAE,GAAe;QACrE,MAAM,EAAE,GAAG,IAAmB,CAAA;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,+CAA+C,MAAM,CAAC,MAAM,EAAE,CACrF,CAAA;QACH,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAW,CAAA;QAEtC,IAAI,IAAe,CAAA;QACnB,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAA;QAC1B,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,MAAM;gBACT,IAAI,GAAG,cAAc,CAAC;oBACpB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC,CAAC,CAAA;gBACF,MAAK;YACP,KAAK,QAAQ;gBACX,IAAI,GAAG,gBAAgB,CAAC;oBACtB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,aAAa,EAAE,GAAG,CAAC,aAAa;iBACjC,CAAC,CAAA;gBACF,MAAK;YACP,KAAK,MAAM;gBACT,IAAI,GAAG,MAAM,cAAc,CAAC;oBAC1B,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD,CAAC,CAAA;gBACF,MAAK;YACP,KAAK,cAAc;gBACjB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;YACzE,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,WAAW,GAAU,GAAG,CAAA;gBAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC3E,CAAC;QACH,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,CAAA;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"dataset-dispatcher.js","sourceRoot":"","sources":["../src/dataset-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface McpResourceOpts {
2
+ server: string;
3
+ uri: string;
4
+ experienceDir: string;
5
+ nodeId: string;
6
+ }
7
+ export declare function loadMcpResourceSource(opts: McpResourceOpts): Promise<unknown[]>;
8
+ //# sourceMappingURL=mcp-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-resource.d.ts","sourceRoot":"","sources":["../../src/sources/mcp-resource.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;CACf;AAuED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA+DrF"}
@@ -0,0 +1,110 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { resolve } from 'node:path';
3
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
4
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
5
+ function loadMcpJson(experienceDir, nodeId) {
6
+ const path = resolve(experienceDir, 'mcp.json');
7
+ if (!existsSync(path)) {
8
+ throw new Error(`mcp-resource source on node "${nodeId}" requires \`mcp.json\` at ${experienceDir}/mcp.json to map server names to spawn commands. ` +
9
+ `Create it with shape { "servers": { "<name>": { "command": "...", "args": [...] } } }. See docs/registry.md.`);
10
+ }
11
+ let parsed;
12
+ try {
13
+ parsed = JSON.parse(readFileSync(path, 'utf8'));
14
+ }
15
+ catch (err) {
16
+ const msg = err instanceof Error ? err.message : String(err);
17
+ throw new Error(`Could not parse ${path}: ${msg}`);
18
+ }
19
+ if (!parsed.servers || typeof parsed.servers !== 'object') {
20
+ throw new Error(`${path} is missing a \`servers\` object at the top level.`);
21
+ }
22
+ return parsed.servers;
23
+ }
24
+ function normalizeContents(contents) {
25
+ // Each item is { uri, mimeType?, text? | blob? }
26
+ const items = contents;
27
+ const rows = [];
28
+ for (const item of items) {
29
+ if (typeof item.text === 'string') {
30
+ // Try JSON parse: if it's an array, spread; if object, push; otherwise push as { text }
31
+ const trimmed = item.text.trim();
32
+ if (trimmed.startsWith('[') || trimmed.startsWith('{')) {
33
+ try {
34
+ const parsed = JSON.parse(trimmed);
35
+ if (Array.isArray(parsed)) {
36
+ rows.push(...parsed);
37
+ }
38
+ else {
39
+ rows.push(parsed);
40
+ }
41
+ continue;
42
+ }
43
+ catch {
44
+ // fall through to push as text
45
+ }
46
+ }
47
+ rows.push({ text: item.text, ...(item.mimeType ? { mimeType: item.mimeType } : {}) });
48
+ }
49
+ else if (typeof item.blob === 'string') {
50
+ rows.push({ blob: item.blob, ...(item.mimeType ? { mimeType: item.mimeType } : {}) });
51
+ }
52
+ else {
53
+ rows.push(item);
54
+ }
55
+ }
56
+ return rows;
57
+ }
58
+ export async function loadMcpResourceSource(opts) {
59
+ const servers = loadMcpJson(opts.experienceDir, opts.nodeId);
60
+ const serverConfig = servers[opts.server];
61
+ if (!serverConfig) {
62
+ const available = Object.keys(servers).join(', ') || '(none)';
63
+ throw new Error(`MCP server "${opts.server}" referenced by node "${opts.nodeId}" is not declared in ${opts.experienceDir}/mcp.json. Available servers: ${available}. Add it under the \`servers\` object.`);
64
+ }
65
+ const transport = new StdioClientTransport({
66
+ command: serverConfig.command,
67
+ args: serverConfig.args ?? [],
68
+ env: { ...process.env, ...(serverConfig.env ?? {}) },
69
+ });
70
+ const client = new Client({
71
+ name: 'openexpertise-dataset',
72
+ version: '0.1.1',
73
+ }, {
74
+ capabilities: {},
75
+ });
76
+ try {
77
+ try {
78
+ await client.connect(transport);
79
+ }
80
+ catch (err) {
81
+ const msg = err instanceof Error ? err.message : String(err);
82
+ throw new Error(`MCP server "${opts.server}" failed to start: ${msg}. ` +
83
+ `Check that \`${serverConfig.command} ${(serverConfig.args ?? []).join(' ')}\` runs standalone.`);
84
+ }
85
+ let response;
86
+ try {
87
+ response = await client.readResource({ uri: opts.uri });
88
+ }
89
+ catch (err) {
90
+ const msg = err instanceof Error ? err.message : String(err);
91
+ throw new Error(`MCP server "${opts.server}" failed to read resource "${opts.uri}": ${msg}. ` +
92
+ `Check the URI is correct and the server has access.`);
93
+ }
94
+ const contents = response.contents;
95
+ if (!Array.isArray(contents)) {
96
+ throw new Error(`MCP server "${opts.server}" returned non-array \`contents\` for "${opts.uri}". ` +
97
+ `Expected MCP v1 resources/read response shape.`);
98
+ }
99
+ return normalizeContents(contents);
100
+ }
101
+ finally {
102
+ try {
103
+ await client.close();
104
+ }
105
+ catch {
106
+ // best-effort teardown
107
+ }
108
+ }
109
+ }
110
+ //# sourceMappingURL=mcp-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-resource.js","sourceRoot":"","sources":["../../src/sources/mcp-resource.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openexpertise/node-kinds-dataset",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Dispatcher for `dataset` nodes — loads file/sqlite/http/MCP-resource data into state.",
5
5
  "keywords": [
6
6
  "openexpertise",
@@ -40,10 +40,11 @@
40
40
  "access": "public"
41
41
  },
42
42
  "dependencies": {
43
+ "@modelcontextprotocol/sdk": "^1.0.0",
43
44
  "better-sqlite3": "^12.10.0",
44
45
  "csv-parse": "^5.5.0",
45
- "@openexpertise/core": "0.1.0",
46
- "@openexpertise/schema": "0.1.0"
46
+ "@openexpertise/core": "0.1.2",
47
+ "@openexpertise/schema": "0.1.2"
47
48
  },
48
49
  "devDependencies": {
49
50
  "@types/better-sqlite3": "^7.6.0"