@nuberea/sdk 0.0.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.
@@ -0,0 +1,417 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * NuBerea CLI
4
+ *
5
+ * Command-line interface for the NuBerea biblical data platform.
6
+ *
7
+ * Usage:
8
+ * nuberea login — Authenticate (opens browser)
9
+ * nuberea logout — Clear stored credentials
10
+ * nuberea tools — List available MCP tools
11
+ * nuberea tool <name> [json] — Call an MCP tool
12
+ * nuberea query <sql> — Run a SQL analytics query
13
+ * nuberea databases — List available databases
14
+ * nuberea describe <db> <tbl>— Describe a table
15
+ * nuberea introspect <schema>— Deep schema introspection
16
+ * nuberea verse <ref> — Get a KJV verse (e.g., "John 1:1")
17
+ * nuberea search <text> — Search KJV text
18
+ * nuberea greek <word> — Look up a Greek word in LSJ
19
+ * nuberea hebrew <strong> — Look up a Hebrew Strong's number in BDB
20
+ */
21
+ import { NuBerea } from '../client.js';
22
+ // ============================================================================
23
+ // Helpers
24
+ // ============================================================================
25
+ function usage() {
26
+ console.log(`
27
+ nuberea — NuBerea biblical data platform CLI
28
+
29
+ AUTHENTICATION
30
+ login Sign in (opens browser)
31
+ logout Clear stored credentials
32
+ status Check authentication status
33
+
34
+ MCP TOOLS
35
+ tools List all available tools
36
+ tool <name> [args_json] Call a tool by name
37
+ e.g., nuberea tool bible_kjv_get_verse '{"book":"John","chapter":1,"verse":1}'
38
+ resources List available MCP resources
39
+ resource <uri> Read an MCP resource by URI
40
+ mcp <method> [params] Send a raw MCP JSON-RPC request
41
+
42
+ ANALYTICS
43
+ query <sql> Execute a SQL query
44
+ databases List databases and tables
45
+ describe <db> <table> Describe table columns
46
+ introspect <schema> Deep schema inspection (columns, counts, samples)
47
+ stats Row counts for all tables
48
+
49
+ SHORTCUTS
50
+ verse <book> <ch>:<vs> Get a KJV verse
51
+ search <text> Search KJV text
52
+ greek <word> Look up Greek word in LSJ
53
+ hebrew <strong> Look up Hebrew Strong's number in BDB
54
+
55
+ OPTIONS
56
+ --json Output raw JSON (default: formatted)
57
+ --limit <n> Row limit for queries (default: 100)
58
+ --session Use MCP session mode (initialize + session tracking)
59
+ --base-url <url> Override API base URL
60
+ --token <token> Use pre-set access token
61
+
62
+ ENVIRONMENT
63
+ NUBEREA_BASE_URL API base URL
64
+ NUBEREA_ACCESS_TOKEN Pre-set access token
65
+ NUBEREA_FIREBASE_TOKEN Pre-set Firebase token (skip browser)
66
+ `);
67
+ }
68
+ function die(msg) {
69
+ console.error(`error: ${msg}`);
70
+ process.exit(1);
71
+ }
72
+ function parseArgs(argv) {
73
+ const flags = {};
74
+ const positional = [];
75
+ let i = 0;
76
+ while (i < argv.length) {
77
+ const arg = argv[i];
78
+ if (arg.startsWith('--')) {
79
+ const key = arg.slice(2);
80
+ const next = argv[i + 1];
81
+ if (next && !next.startsWith('--')) {
82
+ flags[key] = next;
83
+ i += 2;
84
+ }
85
+ else {
86
+ flags[key] = true;
87
+ i += 1;
88
+ }
89
+ }
90
+ else {
91
+ positional.push(arg);
92
+ i += 1;
93
+ }
94
+ }
95
+ return {
96
+ command: positional[0] ?? '',
97
+ args: positional.slice(1),
98
+ flags,
99
+ };
100
+ }
101
+ function formatJson(data, raw) {
102
+ if (raw)
103
+ return JSON.stringify(data);
104
+ return JSON.stringify(data, null, 2);
105
+ }
106
+ function createClient(flags) {
107
+ return new NuBerea({
108
+ baseUrl: flags['base-url'] ?? process.env.NUBEREA_BASE_URL,
109
+ accessToken: flags.token ?? process.env.NUBEREA_ACCESS_TOKEN,
110
+ firebaseToken: process.env.NUBEREA_FIREBASE_TOKEN,
111
+ useSession: !!flags.session,
112
+ });
113
+ }
114
+ // ============================================================================
115
+ // Commands
116
+ // ============================================================================
117
+ async function cmdLogin(client) {
118
+ console.log('Signing in to NuBerea...');
119
+ await client.login();
120
+ console.log('✅ Authenticated. Tokens saved to ~/.nuberea/tokens.json');
121
+ }
122
+ async function cmdLogout(client) {
123
+ client.logout();
124
+ console.log('✅ Logged out. Tokens cleared.');
125
+ }
126
+ async function cmdStatus(client) {
127
+ if (client.isAuthenticated()) {
128
+ console.log('✅ Authenticated');
129
+ }
130
+ else {
131
+ console.log('❌ Not authenticated. Run: nuberea login');
132
+ }
133
+ }
134
+ async function cmdTools(client, raw) {
135
+ const tools = await client.tools();
136
+ if (raw) {
137
+ console.log(formatJson(tools, true));
138
+ return;
139
+ }
140
+ console.log(`\n${tools.length} tools available:\n`);
141
+ for (const tool of tools) {
142
+ console.log(` ${tool.name}`);
143
+ if (tool.description) {
144
+ const desc = tool.description.split('\n')[0].substring(0, 80);
145
+ console.log(` ${desc}`);
146
+ }
147
+ }
148
+ console.log();
149
+ }
150
+ async function cmdTool(client, args, raw) {
151
+ const name = args[0];
152
+ if (!name)
153
+ die('Usage: nuberea tool <name> [args_json]');
154
+ let toolArgs = {};
155
+ if (args[1]) {
156
+ try {
157
+ toolArgs = JSON.parse(args[1]);
158
+ }
159
+ catch {
160
+ die(`Invalid JSON: ${args[1]}`);
161
+ }
162
+ }
163
+ const result = await client.tool(name, toolArgs);
164
+ if (raw) {
165
+ console.log(formatJson(result, true));
166
+ }
167
+ else {
168
+ for (const content of result.content) {
169
+ if (content.type === 'text') {
170
+ console.log(content.text);
171
+ }
172
+ }
173
+ }
174
+ }
175
+ async function cmdQuery(client, args, flags, raw) {
176
+ const sql = args.join(' ');
177
+ if (!sql)
178
+ die('Usage: nuberea query <sql>');
179
+ const limit = flags.limit ? parseInt(flags.limit, 10) : 100;
180
+ const result = await client.query(sql, { limit });
181
+ if (raw) {
182
+ console.log(formatJson(result, true));
183
+ return;
184
+ }
185
+ console.log(`\n${result.rowCount} rows (${result.executionTimeMs}ms)${result.truncated ? ' [truncated]' : ''}\n`);
186
+ if (result.rows.length === 0)
187
+ return;
188
+ // Simple table output
189
+ const cols = result.columns;
190
+ const widths = cols.map((c) => Math.max(c.length, ...result.rows.map((r) => String(r[c] ?? '').substring(0, 60).length)));
191
+ const header = cols.map((c, i) => c.padEnd(widths[i])).join(' | ');
192
+ const separator = widths.map((w) => '-'.repeat(w)).join('-+-');
193
+ console.log(header);
194
+ console.log(separator);
195
+ for (const row of result.rows) {
196
+ const line = cols
197
+ .map((c, i) => String(row[c] ?? '').substring(0, 60).padEnd(widths[i]))
198
+ .join(' | ');
199
+ console.log(line);
200
+ }
201
+ console.log();
202
+ }
203
+ async function cmdDatabases(client, raw) {
204
+ const dbs = await client.databases();
205
+ if (raw) {
206
+ console.log(formatJson(dbs, true));
207
+ return;
208
+ }
209
+ console.log(`\n${dbs.length} databases:\n`);
210
+ for (const db of dbs) {
211
+ const tables = db.tables.map((t) => t.table).join(', ');
212
+ console.log(` ${db.name.padEnd(15)} ${db.description}`);
213
+ console.log(` ${''.padEnd(15)} tables: ${tables}`);
214
+ }
215
+ console.log();
216
+ }
217
+ async function cmdDescribe(client, args, raw) {
218
+ if (args.length < 2)
219
+ die('Usage: nuberea describe <database> <table>');
220
+ const columns = await client.describe(args[0], args[1]);
221
+ if (raw) {
222
+ console.log(formatJson(columns, true));
223
+ return;
224
+ }
225
+ console.log(`\n${args[0]}.${args[1]}:\n`);
226
+ for (const col of columns) {
227
+ console.log(` ${col.column_name.padEnd(25)} ${col.column_type.padEnd(15)} ${col.null === 'YES' ? 'nullable' : ''}`);
228
+ }
229
+ console.log();
230
+ }
231
+ async function cmdIntrospect(client, args, raw) {
232
+ if (args.length < 1)
233
+ die('Usage: nuberea introspect <schema> [table]');
234
+ const result = await client.introspect(args[0], args[1]);
235
+ if (raw) {
236
+ console.log(formatJson(result, true));
237
+ return;
238
+ }
239
+ console.log(`\nSchema: ${result.schema} — ${result.description}\n`);
240
+ for (const table of result.tables) {
241
+ console.log(` ${table.table} (${(table.rowCount ?? 0).toLocaleString()} rows)`);
242
+ for (const col of table.columns ?? []) {
243
+ console.log(` ${col.column_name.padEnd(25)} ${col.column_type}`);
244
+ }
245
+ if (table.sampleRows?.length) {
246
+ console.log(` Sample: ${JSON.stringify(table.sampleRows[0]).substring(0, 120)}...`);
247
+ }
248
+ console.log();
249
+ }
250
+ }
251
+ async function cmdVerse(client, args, raw) {
252
+ // Parse "John 1:1" or "John" "1:1" or "John" "1" "1"
253
+ const joined = args.join(' ');
254
+ const match = joined.match(/^(.+?)\s+(\d+):(\d+)$/);
255
+ if (!match)
256
+ die('Usage: nuberea verse <book> <chapter>:<verse> (e.g., "John 1:1")');
257
+ const [, book, chapter, verse] = match;
258
+ const text = await client.verse(book, parseInt(chapter, 10), parseInt(verse, 10));
259
+ if (raw) {
260
+ console.log(text);
261
+ }
262
+ else {
263
+ console.log(`\n${text}\n`);
264
+ }
265
+ }
266
+ async function cmdSearch(client, args, raw) {
267
+ const text = args.join(' ');
268
+ if (!text)
269
+ die('Usage: nuberea search <text>');
270
+ const result = await client.search(text);
271
+ if (raw) {
272
+ console.log(result);
273
+ }
274
+ else {
275
+ console.log(`\n${result}\n`);
276
+ }
277
+ }
278
+ async function cmdGreek(client, args, raw) {
279
+ const word = args[0];
280
+ if (!word)
281
+ die('Usage: nuberea greek <word>');
282
+ const result = await client.greekLookup(word);
283
+ if (raw) {
284
+ console.log(result);
285
+ }
286
+ else {
287
+ console.log(`\n${result}\n`);
288
+ }
289
+ }
290
+ async function cmdHebrew(client, args, raw) {
291
+ const strong = args[0];
292
+ if (!strong)
293
+ die('Usage: nuberea hebrew <strong_number>');
294
+ const result = await client.hebrewStrong(strong);
295
+ if (raw) {
296
+ console.log(result);
297
+ }
298
+ else {
299
+ console.log(`\n${result}\n`);
300
+ }
301
+ }
302
+ async function cmdResources(client, raw) {
303
+ const resources = await client.resources();
304
+ if (raw) {
305
+ console.log(formatJson(resources, true));
306
+ return;
307
+ }
308
+ console.log(`\n${resources.length} resources:\n`);
309
+ for (const r of resources) {
310
+ console.log(` ${r.uri}`);
311
+ if (r.description) {
312
+ console.log(` ${r.description.substring(0, 80)}`);
313
+ }
314
+ }
315
+ console.log();
316
+ }
317
+ async function cmdResource(client, args, raw) {
318
+ const uri = args[0];
319
+ if (!uri)
320
+ die('Usage: nuberea resource <uri>');
321
+ const contents = await client.resource(uri);
322
+ if (raw) {
323
+ console.log(formatJson(contents, true));
324
+ return;
325
+ }
326
+ for (const content of contents) {
327
+ console.log(`\n--- ${content.uri} (${content.mimeType ?? 'text/plain'}) ---`);
328
+ if (content.text) {
329
+ console.log(content.text);
330
+ }
331
+ else if (content.blob) {
332
+ console.log(`[binary: ${content.blob.length} bytes base64]`);
333
+ }
334
+ }
335
+ console.log();
336
+ }
337
+ async function cmdMcpRaw(client, args, raw) {
338
+ const method = args[0];
339
+ if (!method)
340
+ die('Usage: nuberea mcp <method> [params_json]');
341
+ let params;
342
+ if (args[1]) {
343
+ try {
344
+ params = JSON.parse(args[1]);
345
+ }
346
+ catch {
347
+ die(`Invalid JSON: ${args[1]}`);
348
+ }
349
+ }
350
+ const result = await client.mcpRequest(method, params);
351
+ console.log(formatJson(result, !raw));
352
+ }
353
+ // ============================================================================
354
+ // Main
355
+ // ============================================================================
356
+ async function main() {
357
+ const { command, args, flags } = parseArgs(process.argv.slice(2));
358
+ const raw = !!flags.json;
359
+ if (!command || command === 'help' || flags.help) {
360
+ usage();
361
+ process.exit(0);
362
+ }
363
+ const client = createClient(flags);
364
+ // Commands that don't need auth
365
+ if (command === 'login')
366
+ return cmdLogin(client);
367
+ if (command === 'logout')
368
+ return cmdLogout(client);
369
+ if (command === 'status')
370
+ return cmdStatus(client);
371
+ // Tools listing doesn't need auth (public endpoint)
372
+ if (command === 'tools')
373
+ return cmdTools(client, raw);
374
+ // All other commands need auth — ensure we have it
375
+ if (!client.isAuthenticated() && !flags.token && !process.env.NUBEREA_ACCESS_TOKEN) {
376
+ console.log('Not authenticated. Signing in...\n');
377
+ await client.login();
378
+ }
379
+ switch (command) {
380
+ case 'tool':
381
+ return cmdTool(client, args, raw);
382
+ case 'resources':
383
+ return cmdResources(client, raw);
384
+ case 'resource':
385
+ return cmdResource(client, args, raw);
386
+ case 'mcp':
387
+ return cmdMcpRaw(client, args, raw);
388
+ case 'query':
389
+ case 'sql':
390
+ return cmdQuery(client, args, flags, raw);
391
+ case 'databases':
392
+ case 'dbs':
393
+ return cmdDatabases(client, raw);
394
+ case 'describe':
395
+ case 'desc':
396
+ return cmdDescribe(client, args, raw);
397
+ case 'introspect':
398
+ return cmdIntrospect(client, args, raw);
399
+ case 'verse':
400
+ return cmdVerse(client, args, raw);
401
+ case 'search':
402
+ return cmdSearch(client, args, raw);
403
+ case 'greek':
404
+ return cmdGreek(client, args, raw);
405
+ case 'hebrew':
406
+ return cmdHebrew(client, args, raw);
407
+ default:
408
+ console.error(`Unknown command: ${command}`);
409
+ usage();
410
+ process.exit(1);
411
+ }
412
+ }
413
+ main().catch((err) => {
414
+ console.error(`\n❌ ${err instanceof Error ? err.message : String(err)}`);
415
+ process.exit(1);
416
+ });
417
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * NuBerea Client — Main SDK entry point.
3
+ *
4
+ * Wraps authentication, MCP tool calls, and REST analytics queries
5
+ * into a single, ergonomic interface.
6
+ */
7
+ import { type AuthConfig } from './auth.js';
8
+ import { type McpInitializeResult, type McpResource, type McpResourceContent } from './mcp.js';
9
+ import type { ToolResult, ToolInfo, QueryResult, QueryFormat, DatabaseInfo, ColumnInfo, SchemaIntrospection, StatsEntry } from './types.js';
10
+ export interface NuBereaConfig {
11
+ /** OAuth / MCP server configuration */
12
+ auth?: Partial<AuthConfig>;
13
+ /** Override: OAuth server base URL */
14
+ baseUrl?: string;
15
+ /** Override: MCP endpoint URL */
16
+ mcpUrl?: string;
17
+ /** Pre-set access token (skip login) */
18
+ accessToken?: string;
19
+ /** Pre-set Firebase token (skip browser sign-in) */
20
+ firebaseToken?: string;
21
+ /** Use MCP session mode (initialize + session tracking) vs stateless */
22
+ useSession?: boolean;
23
+ }
24
+ export type NuBereaTokens = {
25
+ accessToken: string;
26
+ refreshToken: string;
27
+ expiresAt: number;
28
+ };
29
+ export declare class NuBerea {
30
+ private auth;
31
+ private baseUrl;
32
+ private mcpUrl;
33
+ private staticToken;
34
+ private firebaseToken;
35
+ private useSession;
36
+ private mcpClient;
37
+ constructor(config?: NuBereaConfig);
38
+ /**
39
+ * Authenticate with the NuBerea platform.
40
+ * Opens a browser for Firebase sign-in if no token is cached.
41
+ */
42
+ login(): Promise<void>;
43
+ /**
44
+ * Check if the client has valid credentials.
45
+ */
46
+ isAuthenticated(): boolean;
47
+ /**
48
+ * Clear stored credentials.
49
+ */
50
+ logout(): void;
51
+ private getToken;
52
+ /**
53
+ * Get (or create) the MCP client instance.
54
+ * Handles token refresh automatically.
55
+ */
56
+ private getMcpClient;
57
+ /**
58
+ * Initialize an MCP session. Required in session mode before other calls.
59
+ * In stateless mode (default), this is a no-op.
60
+ */
61
+ initialize(): Promise<McpInitializeResult | null>;
62
+ /**
63
+ * Send a raw MCP JSON-RPC request.
64
+ * Use this for any MCP method not covered by the typed methods.
65
+ */
66
+ mcpRequest(method: string, params?: Record<string, unknown>): Promise<unknown>;
67
+ /**
68
+ * List available MCP resources.
69
+ */
70
+ resources(): Promise<McpResource[]>;
71
+ /**
72
+ * Read an MCP resource by URI.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * const contents = await client.resource('macula://hebrew');
77
+ * console.log(contents[0].text);
78
+ * ```
79
+ */
80
+ resource(uri: string): Promise<McpResourceContent[]>;
81
+ /**
82
+ * Close the MCP session (if session-based).
83
+ */
84
+ close(): Promise<void>;
85
+ /**
86
+ * Get the current MCP session ID (null in stateless mode).
87
+ */
88
+ getSessionId(): string | null;
89
+ /**
90
+ * List all available MCP tools.
91
+ * Uses MCP tools/list in session mode, or the public /tools endpoint in stateless mode.
92
+ */
93
+ tools(): Promise<ToolInfo[]>;
94
+ /**
95
+ * Call an MCP tool by name.
96
+ *
97
+ * @example
98
+ * ```ts
99
+ * const result = await client.tool('bible_kjv_get_verse', {
100
+ * book: 'John', chapter: 1, verse: 1,
101
+ * });
102
+ * console.log(result.content[0].text);
103
+ * ```
104
+ */
105
+ tool(name: string, args?: Record<string, unknown>): Promise<ToolResult>;
106
+ /**
107
+ * Call an MCP tool and return just the text content (convenience).
108
+ */
109
+ toolText(name: string, args?: Record<string, unknown>): Promise<string>;
110
+ /**
111
+ * Call an MCP tool and parse the text content as JSON (convenience).
112
+ */
113
+ toolJson<T = unknown>(name: string, args?: Record<string, unknown>): Promise<T>;
114
+ /**
115
+ * Execute a SQL query against the unified data platform.
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * const result = await client.query(
120
+ * "SELECT * FROM hebrew.morphemes WHERE book_id = 'Gen' AND chapter = 1 LIMIT 10"
121
+ * );
122
+ * ```
123
+ */
124
+ query(sql: string, options?: {
125
+ limit?: number;
126
+ offset?: number;
127
+ timeout?: number;
128
+ format?: QueryFormat;
129
+ }): Promise<QueryResult>;
130
+ /**
131
+ * List all available databases (schemas) and their tables.
132
+ */
133
+ databases(): Promise<DatabaseInfo[]>;
134
+ /**
135
+ * Describe a table's columns.
136
+ */
137
+ describe(database: string, table: string): Promise<ColumnInfo[]>;
138
+ /**
139
+ * Deep introspection of a schema — tables, columns, row counts, sample rows.
140
+ */
141
+ introspect(schema: string, table?: string): Promise<SchemaIntrospection>;
142
+ /**
143
+ * Get row counts for all tables.
144
+ */
145
+ stats(): Promise<StatsEntry[]>;
146
+ /** Get a KJV verse */
147
+ verse(book: string, chapter: number, verse: number): Promise<string>;
148
+ /** Search KJV text */
149
+ search(text: string, limit?: number): Promise<string>;
150
+ /** Look up a Greek word in LSJ */
151
+ greekLookup(term: string): Promise<string>;
152
+ /** Look up a Hebrew word in BDB by Strong's number */
153
+ hebrewStrong(strong: string): Promise<string>;
154
+ /** Get Hebrew morphology for a verse */
155
+ hebrewMorphology(book: string, chapter: number, verse: number): Promise<string>;
156
+ /** Get Greek morphology for a verse */
157
+ greekMorphology(book: string, chapter: number, verse: number): Promise<string>;
158
+ }
159
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}