@flxbl-dev/cli 0.1.0 → 0.2.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/bin/flxbl CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import('../dist/index.js').catch((err) => {
2
+ import('../dist/index.js').then(({ run }) => {
3
+ run();
4
+ }).catch((err) => {
3
5
  console.error('Failed to start FLXBL CLI:', err.message);
4
6
  process.exit(1);
5
7
  });
@@ -0,0 +1,6 @@
1
+ /**
2
+ * flxbl vector-search <entity> — Vector similarity search
3
+ */
4
+ import type { Command } from 'commander';
5
+ export declare function registerVectorSearchCommand(program: Command): void;
6
+ //# sourceMappingURL=vector-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-search.d.ts","sourceRoot":"","sources":["../../src/commands/vector-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyIlE"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * flxbl vector-search <entity> — Vector similarity search
3
+ */
4
+ import * as fs from 'node:fs';
5
+ import * as path from 'node:path';
6
+ import { log, spinner, chalk } from '../ui/logger.js';
7
+ import { renderTable } from '../ui/table.js';
8
+ import { loadFlxblConfig } from '../config/loader.js';
9
+ import { resolveAuth } from '../codegen/schema-fetcher.js';
10
+ export function registerVectorSearchCommand(program) {
11
+ program
12
+ .command('vector-search <entity>')
13
+ .description('Perform vector similarity search on an entity')
14
+ .requiredOption('--field <name>', 'Name of the VECTOR field')
15
+ .requiredOption('--vector <json>', 'Query vector as JSON array or path to .json file')
16
+ .option('--top-k <n>', 'Maximum number of results', '10')
17
+ .option('-w, --where <json>', 'Filter conditions as JSON')
18
+ .option('-f, --fields <fields>', 'Comma-separated list of fields to display')
19
+ .option('--format <format>', 'Output format: table or json', 'table')
20
+ .option('--instance <url>', 'FLXBL instance URL')
21
+ .option('--api-key <key>', 'API key for authentication')
22
+ .action(async (entity, opts) => {
23
+ const loaded = await loadFlxblConfig();
24
+ const config = loaded?.config;
25
+ const instanceUrl = opts.instance || process.env.FLXBL_INSTANCE_URL || config?.instanceUrl;
26
+ if (!instanceUrl) {
27
+ log.error('No FLXBL instance URL configured.');
28
+ process.exit(1);
29
+ }
30
+ // Parse the vector from JSON string or file
31
+ let vector;
32
+ try {
33
+ if (opts.vector.endsWith('.json')) {
34
+ const filePath = path.resolve(opts.vector);
35
+ const content = fs.readFileSync(filePath, 'utf-8');
36
+ vector = JSON.parse(content);
37
+ }
38
+ else {
39
+ vector = JSON.parse(opts.vector);
40
+ }
41
+ if (!Array.isArray(vector) || !vector.every((v) => typeof v === 'number')) {
42
+ throw new Error('Vector must be an array of numbers');
43
+ }
44
+ }
45
+ catch (error) {
46
+ log.error(`Invalid vector: ${error instanceof Error ? error.message : 'must be a JSON array of numbers'}`);
47
+ process.exit(1);
48
+ }
49
+ const topK = parseInt(opts.topK || '10', 10);
50
+ let where;
51
+ if (opts.where) {
52
+ try {
53
+ where = JSON.parse(opts.where);
54
+ }
55
+ catch {
56
+ log.error('Invalid --where JSON');
57
+ process.exit(1);
58
+ }
59
+ }
60
+ const select = opts.fields
61
+ ? opts.fields.split(',').map((f) => f.trim())
62
+ : undefined;
63
+ const s = spinner(`Searching ${entity} by vector similarity...`).start();
64
+ try {
65
+ const { client } = await resolveAuth({
66
+ apiKey: opts.apiKey,
67
+ instanceUrl,
68
+ });
69
+ const results = await client.vectorSearchEntities(entity, {
70
+ field: opts.field,
71
+ vector,
72
+ topK,
73
+ where,
74
+ select,
75
+ });
76
+ s.stop();
77
+ if (results.length === 0) {
78
+ log.warn(`No similar ${entity} records found.`);
79
+ return;
80
+ }
81
+ if (opts.format === 'json') {
82
+ console.log(JSON.stringify(results, null, 2));
83
+ return;
84
+ }
85
+ // Table format — include score column + data fields
86
+ const firstItem = results[0].data;
87
+ const dataKeys = select || Object.keys(firstItem);
88
+ const columns = [
89
+ {
90
+ header: 'score',
91
+ key: '__score__',
92
+ formatter: (v) => chalk.yellow(String(v)),
93
+ },
94
+ ...dataKeys.map((key) => ({
95
+ header: key,
96
+ key,
97
+ formatter: (v) => {
98
+ if (v === null || v === undefined)
99
+ return chalk.dim('null');
100
+ if (typeof v === 'object')
101
+ return JSON.stringify(v);
102
+ return String(v);
103
+ },
104
+ })),
105
+ ];
106
+ const rows = results.map((r) => ({
107
+ __score__: r.score.toFixed(4),
108
+ ...r.data,
109
+ }));
110
+ renderTable(columns, rows);
111
+ log.dim(`${results.length} results`);
112
+ }
113
+ catch (error) {
114
+ s.fail(`Vector search failed for ${entity}`);
115
+ log.error(error instanceof Error ? error.message : String(error));
116
+ process.exit(1);
117
+ }
118
+ });
119
+ }
120
+ //# sourceMappingURL=vector-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-search.js","sourceRoot":"","sources":["../../src/commands/vector-search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAgB,GAAG,IAAI,IAAI,CAuB1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,wBAAgB,GAAG,IAAI,IAAI,CAwB1B"}
package/dist/index.js CHANGED
@@ -9,8 +9,11 @@ import { registerInitCommand } from './commands/init.js';
9
9
  import { registerGenerateCommand } from './commands/generate.js';
10
10
  import { registerDevCommand } from './commands/dev.js';
11
11
  import { registerDataCommand } from './commands/data.js';
12
+ import { registerVectorSearchCommand } from './commands/vector-search.js';
12
13
  import { registerSchemaCommand } from './commands/schema/index.js';
13
- const VERSION = '0.1.0';
14
+ import { createRequire } from 'node:module';
15
+ const require = createRequire(import.meta.url);
16
+ const { version: VERSION } = require('../package.json');
14
17
  export function run() {
15
18
  const program = new Command();
16
19
  program
@@ -27,6 +30,7 @@ export function run() {
27
30
  registerDevCommand(program);
28
31
  // Data commands
29
32
  registerDataCommand(program);
33
+ registerVectorSearchCommand(program);
30
34
  registerSchemaCommand(program);
31
35
  program.parse();
32
36
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAKnE,MAAM,OAAO,GAAG,OAAO,CAAC;AAExB,MAAM,UAAU,GAAG;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,iEAAiE,CAAC;SAC9E,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,gBAAgB;IAChB,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,mBAAmB;IACnB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B,gBAAgB;IAChB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAExD,MAAM,UAAU,GAAG;IACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,iEAAiE,CAAC;SAC9E,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,gBAAgB;IAChB,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC/B,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,mBAAmB;IACnB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACjC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAE5B,gBAAgB;IAChB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC7B,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACrC,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAE/B,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { describe, it, expect, vi, afterEach } from 'vitest';
2
+ import { createRequire } from 'node:module';
3
+ const require = createRequire(import.meta.url);
4
+ const { version } = require('../package.json');
5
+ describe('CLI entry point', () => {
6
+ const originalArgv = process.argv;
7
+ afterEach(() => {
8
+ process.argv = originalArgv;
9
+ vi.restoreAllMocks();
10
+ });
11
+ it('exports run as a function', async () => {
12
+ const { run } = await import('./index.js');
13
+ expect(typeof run).toBe('function');
14
+ });
15
+ it('--version prints the package.json version', async () => {
16
+ process.argv = ['node', 'flxbl', '--version'];
17
+ const writeSpy = vi.spyOn(process.stdout, 'write').mockImplementation(() => true);
18
+ const { run } = await import('./index.js');
19
+ try {
20
+ run();
21
+ }
22
+ catch {
23
+ // commander calls process.exit on --version; exitOverride would throw
24
+ }
25
+ const output = writeSpy.mock.calls.map((c) => String(c[0])).join('');
26
+ expect(output).toContain(version);
27
+ });
28
+ });
29
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAc,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;QAC5B,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAElF,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,GAAG,EAAE,CAAC;QACR,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flxbl-dev/cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "FLXBL CLI — generate typed SDKs, manage schemas, and query data from the terminal",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",