@liquidmetal-ai/raindrop 0.2.9 → 0.2.11
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/README.md +36 -36
- package/dist/base-command.d.ts +2 -1
- package/dist/base-command.d.ts.map +1 -1
- package/dist/base-command.js +11 -1
- package/dist/codegen.d.ts +7 -0
- package/dist/codegen.d.ts.map +1 -1
- package/dist/codegen.js +90 -16
- package/dist/codegen.test.js +21 -0
- package/dist/commands/auth/login.d.ts.map +1 -1
- package/dist/commands/build/branch.d.ts.map +1 -1
- package/dist/commands/build/branch.js +16 -1
- package/dist/commands/build/checkout.d.ts.map +1 -1
- package/dist/commands/build/checkout.js +4 -1
- package/dist/commands/build/delete.js +2 -2
- package/dist/commands/build/deploy.d.ts.map +1 -1
- package/dist/commands/build/deploy.js +9 -3
- package/dist/commands/build/find.d.ts.map +1 -1
- package/dist/commands/build/find.js +3 -1
- package/dist/commands/build/generate.d.ts.map +1 -1
- package/dist/commands/build/generate.js +1 -0
- package/dist/commands/build/init.js +1 -1
- package/dist/commands/build/list.d.ts.map +1 -1
- package/dist/commands/build/list.js +3 -2
- package/dist/commands/build/sandbox.d.ts.map +1 -1
- package/dist/commands/build/sandbox.js +8 -2
- package/dist/commands/build/start.d.ts.map +1 -1
- package/dist/commands/build/start.js +5 -2
- package/dist/commands/build/status.d.ts.map +1 -1
- package/dist/commands/build/status.js +5 -4
- package/dist/commands/build/stop.d.ts.map +1 -1
- package/dist/commands/build/stop.js +5 -2
- package/dist/commands/build/unsandbox.d.ts.map +1 -1
- package/dist/commands/build/unsandbox.js +8 -2
- package/dist/commands/build/validate.js +3 -3
- package/dist/commands/object/delete.d.ts.map +1 -1
- package/dist/commands/object/delete.js +8 -4
- package/dist/commands/object/get.d.ts.map +1 -1
- package/dist/commands/object/get.js +8 -6
- package/dist/commands/object/list.d.ts.map +1 -1
- package/dist/commands/object/list.js +14 -10
- package/dist/commands/object/put.d.ts.map +1 -1
- package/dist/commands/object/put.js +11 -7
- package/dist/commands/query/chunk-search.d.ts.map +1 -1
- package/dist/commands/query/chunk-search.js +11 -9
- package/dist/commands/query/register-retriever.d.ts.map +1 -1
- package/dist/commands/query/register-retriever.js +2 -7
- package/dist/commands/query/search.d.ts.map +1 -1
- package/dist/commands/query/search.js +15 -15
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.test.js +3 -0
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +0 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/trace.d.ts +20 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +117 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/oclif.manifest.json +758 -758
- package/package.json +1 -1
- package/templates/db/common/kysely-d1.ts +173 -0
- package/templates/db/db/README.md +32 -0
- package/templates/db/package.json +19 -0
- package/templates/db/prisma/schema.prisma.hbs +46 -0
- package/templates/db/scripts/create_migration.mts +78 -0
- package/templates/db/scripts/seed-sql.mts +32 -0
- package/templates/db/scripts/seed.ts.hbs +219 -0
|
@@ -92,10 +92,10 @@ Deleted (application) at version (version)
|
|
|
92
92
|
throw e;
|
|
93
93
|
}
|
|
94
94
|
if (this.flags.all) {
|
|
95
|
-
|
|
95
|
+
console.log(`Deleted all versions of ${this.args.application}`);
|
|
96
96
|
}
|
|
97
97
|
else {
|
|
98
|
-
|
|
98
|
+
console.log(`Deleted ${this.args.application} at version ${versionId}`);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/build/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAmC;IAErD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAsCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/build/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAmC;IAErD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;MAsCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0C3B"}
|
|
@@ -51,7 +51,7 @@ Deploy a Raindrop application version.
|
|
|
51
51
|
async run() {
|
|
52
52
|
const config = await this.loadConfig();
|
|
53
53
|
const versionId = this.flags.versionId ?? config.versionId;
|
|
54
|
-
const unlock = this.flags.resume ? this.flags.lock ?? config.lock : undefined;
|
|
54
|
+
const unlock = this.flags.resume ? (this.flags.lock ?? config.lock) : undefined;
|
|
55
55
|
if (this.flags.resume) {
|
|
56
56
|
if (versionId === undefined) {
|
|
57
57
|
this.error(`Cannot resume deployment without a versionId. Please specify a versionId or run without --resume to start a new deployment.`);
|
|
@@ -60,8 +60,11 @@ Deploy a Raindrop application version.
|
|
|
60
60
|
this.error(`Cannot resume deployment without a lock. Please specify --lock or run without --resume to start a new deployment.`);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
// Resuming is _always_ amending
|
|
64
|
-
const amend = this.flags.resume || this.flags.amend;
|
|
63
|
+
// Resuming and Sandbox is _always_ amending
|
|
64
|
+
const amend = config.sandbox || this.flags.resume || this.flags.amend;
|
|
65
|
+
if (config.sandbox) {
|
|
66
|
+
this.log(`🔔 Branch is in Sandbox mode, running deploy in ammend mode`);
|
|
67
|
+
}
|
|
65
68
|
await deploy({
|
|
66
69
|
command: this,
|
|
67
70
|
root: this.flags.root,
|
|
@@ -75,5 +78,8 @@ Deploy a Raindrop application version.
|
|
|
75
78
|
start: this.flags.start,
|
|
76
79
|
impersonate: this.flags.impersonate,
|
|
77
80
|
});
|
|
81
|
+
if (!amend) {
|
|
82
|
+
this.log(`🔔 You deployed a full version, updates will require a full versioned deployment to work`);
|
|
83
|
+
}
|
|
78
84
|
}
|
|
79
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/commands/build/find.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/commands/build/find.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAgC;IAElD,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MAsCV;IAEI,cAAc,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAgD5G,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAO3B"}
|
|
@@ -3,6 +3,8 @@ import { valueOf } from '@liquidmetal-ai/drizzle/appify/build';
|
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import { BaseCommand } from '../../base-command.js';
|
|
5
5
|
import { EPOCH_TS } from '../../index.js';
|
|
6
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
7
|
+
import { QueryResourcesResponseSchema } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_pb';
|
|
6
8
|
export default class Find extends BaseCommand {
|
|
7
9
|
static args = {};
|
|
8
10
|
static description = 'find resources in Raindrop';
|
|
@@ -82,7 +84,7 @@ export default class Find extends BaseCommand {
|
|
|
82
84
|
{}), ['name', 'resourceId', 'applicationName', 'applicationVersionId', 'type', 'attributes']);
|
|
83
85
|
}
|
|
84
86
|
else if (flags.output === 'json') {
|
|
85
|
-
|
|
87
|
+
console.log(toJsonString(QueryResourcesResponseSchema, resp, { prettySpaces: 2 }));
|
|
86
88
|
}
|
|
87
89
|
else {
|
|
88
90
|
for (const r of resp.resources) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/build/generate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASpD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW,CAAC,OAAO,QAAQ,CAAC;IAChE,OAAgB,IAAI,KAAM;IAE1B,OAAgB,WAAW,SAAwD;IAEnF,OAAgB,QAAQ,WAA2C;IAEnE,OAAgB,KAAK;;;;;MAgBnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/build/generate.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASpD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,WAAW,CAAC,OAAO,QAAQ,CAAC;IAChE,OAAgB,IAAI,KAAM;IAE1B,OAAgB,WAAW,SAAwD;IAEnF,OAAgB,QAAQ,WAA2C;IAEnE,OAAgB,KAAK;;;;;MAgBnB;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+BlC"}
|
|
@@ -52,6 +52,6 @@ Initialize a project in the current directory.
|
|
|
52
52
|
catch (error) {
|
|
53
53
|
this.error(`Could not initialize project at ${this.args.path}: ${error}`, { exit: 1 });
|
|
54
54
|
}
|
|
55
|
-
|
|
55
|
+
console.log(`Initialized LiquidMetal.AI in ${this.args.path}`);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/build/list.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/build/list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAEhC,SAAS,EACV,MAAM,yDAAyD,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,UAAU,WAAW;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,WAAW,EAAE,gCAAgC,CAAC;IAC9C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASzC,CAAC;AAEX,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAqC;IAEvD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MAsBV;IAEF,gBAAgB,CAAC,YAAY,EAAE,gCAAgC,EAAE;;;;IAkCjE,iBAAiB,CAAC,YAAY,EAAE,gCAAgC,EAAE;IAqH5D,gBAAgB;IA0ChB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3B"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { UnitState } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_pb';
|
|
1
|
+
import { ApplicationsResponseSchema, UnitState, } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_pb';
|
|
2
2
|
import { timestampDate } from '@bufbuild/protobuf/wkt';
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import { BaseCommand } from '../../base-command.js';
|
|
5
5
|
import { EPOCH_TS } from '../../index.js';
|
|
6
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
6
7
|
export const statusString = {
|
|
7
8
|
[UnitState.UNSPECIFIED]: '<unknown>',
|
|
8
9
|
[UnitState.PENDING]: 'pending...',
|
|
@@ -205,7 +206,7 @@ List Raindrop catalog resources.
|
|
|
205
206
|
{}), ['organizationId', 'name', 'versionId', 'branch', 'status', 'locked', ...(this.flags.all ? ['deletedAt'] : [])]);
|
|
206
207
|
}
|
|
207
208
|
else if (this.flags.output === 'json') {
|
|
208
|
-
|
|
209
|
+
console.log(toJsonString(ApplicationsResponseSchema, resp, { prettySpaces: 2 }));
|
|
209
210
|
}
|
|
210
211
|
else {
|
|
211
212
|
for (const a of resp.applications) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/commands/build/sandbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW,CAAC,OAAO,OAAO,CAAC;IAC9D,MAAM,CAAC,IAAI;;MAET;IACF,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MASV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../src/commands/build/sandbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW,CAAC,OAAO,OAAO,CAAC;IAC9D,MAAM,CAAC,IAAI;;MAET;IACF,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MASV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
|
|
@@ -21,9 +21,12 @@ export default class Sandbox extends BaseCommand {
|
|
|
21
21
|
manifest: Flags.string({ default: 'raindrop.manifest', description: 'project manifest' }),
|
|
22
22
|
};
|
|
23
23
|
async run() {
|
|
24
|
+
const config = await this.loadConfig();
|
|
25
|
+
if (config.lock) {
|
|
26
|
+
this.error('Operation not allowed: application is in a locked state');
|
|
27
|
+
}
|
|
24
28
|
const { client: catalogService, userId, organizationId: defaultOrganizationId } = await this.catalogService();
|
|
25
29
|
const organizationId = this.flags.impersonate ?? defaultOrganizationId;
|
|
26
|
-
const config = await this.loadConfig();
|
|
27
30
|
const apps = await this.loadManifest();
|
|
28
31
|
const app = apps[0];
|
|
29
32
|
const versionId = this.args.versionId ?? config.versionId;
|
|
@@ -41,6 +44,9 @@ export default class Sandbox extends BaseCommand {
|
|
|
41
44
|
},
|
|
42
45
|
],
|
|
43
46
|
});
|
|
44
|
-
|
|
47
|
+
// Mark application as sandboxed in config
|
|
48
|
+
config.sandbox = true;
|
|
49
|
+
await this.saveConfig(config);
|
|
50
|
+
console.log(`Set ${valueOf(app.name)}@${versionId} as sandboxed.`);
|
|
45
51
|
}
|
|
46
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/commands/build/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAkC;IAEpD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAyBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/commands/build/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,WAAW,CAAC,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAkC;IAEpD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAyBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B3B"}
|
|
@@ -36,9 +36,12 @@ Start a Raindrop application.
|
|
|
36
36
|
}),
|
|
37
37
|
};
|
|
38
38
|
async run() {
|
|
39
|
+
const config = await this.loadConfig();
|
|
40
|
+
if (config.lock) {
|
|
41
|
+
this.error('Operation not allowed: application is in a locked state');
|
|
42
|
+
}
|
|
39
43
|
const { client: catalogService, userId, organizationId: defaultOrganizationId } = await this.catalogService();
|
|
40
44
|
const organizationId = this.flags.impersonate ?? defaultOrganizationId;
|
|
41
|
-
const config = await this.loadConfig();
|
|
42
45
|
let applicationName = this.flags.application;
|
|
43
46
|
if (!applicationName) {
|
|
44
47
|
const apps = await this.loadManifest();
|
|
@@ -60,6 +63,6 @@ Start a Raindrop application.
|
|
|
60
63
|
},
|
|
61
64
|
],
|
|
62
65
|
});
|
|
63
|
-
|
|
66
|
+
console.log(`Set ${applicationName}@${currentVersionId} as active.`);
|
|
64
67
|
}
|
|
65
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/build/status.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/build/status.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAEd,SAAS,EACV,MAAM,yDAAyD,CAAC;AAKjE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CASzC,CAAC;AAEX,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW,CAAC,OAAO,MAAM,CAAC;IAC5D,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAmD;IAErE,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;MAsCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAgE1B,iBAAiB,SAAK;IAEhB,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BxD"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { valueOf } from '@liquidmetal-ai/drizzle/appify/build';
|
|
2
|
-
import { UnitState } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_pb';
|
|
2
|
+
import { StatusResponseSchema, UnitState, } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/catalog_pb';
|
|
3
3
|
import { Flags, ux } from '@oclif/core';
|
|
4
4
|
import Table from 'cli-table3';
|
|
5
5
|
import * as readline from 'readline';
|
|
6
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
6
7
|
import { BaseCommand } from '../../base-command.js';
|
|
7
8
|
export const statusString = {
|
|
8
9
|
[UnitState.UNSPECIFIED]: '<unknown>',
|
|
@@ -96,11 +97,11 @@ export default class Status extends BaseCommand {
|
|
|
96
97
|
head: ['Module', 'Status', 'URLs'],
|
|
97
98
|
});
|
|
98
99
|
table.push(...statusTable.map((row) => [row.module, row.status, row.urls]));
|
|
99
|
-
|
|
100
|
+
console.log(table.toString());
|
|
100
101
|
return;
|
|
101
102
|
}
|
|
102
103
|
if (flags.output === 'json') {
|
|
103
|
-
|
|
104
|
+
console.log(toJsonString(StatusResponseSchema, applicationStatus, { prettySpaces: 2 }));
|
|
104
105
|
return;
|
|
105
106
|
}
|
|
106
107
|
let watchStatus = applicationStatus;
|
|
@@ -142,7 +143,7 @@ export default class Status extends BaseCommand {
|
|
|
142
143
|
lines.push(`${padding}${module.name}: ${statusStateString(module.state)} ${module.urls.join(', ')}`);
|
|
143
144
|
}
|
|
144
145
|
for (const line of lines) {
|
|
145
|
-
|
|
146
|
+
console.log(line);
|
|
146
147
|
}
|
|
147
148
|
this.linesLastRendered = lines.length;
|
|
148
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/commands/build/stop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAiC;IAEnD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAyBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/commands/build/stop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW,CAAC,OAAO,IAAI,CAAC;IACxD,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAiC;IAEnD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MAyBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B3B"}
|
|
@@ -36,9 +36,12 @@ Stop a Raindrop application.
|
|
|
36
36
|
}),
|
|
37
37
|
};
|
|
38
38
|
async run() {
|
|
39
|
+
const config = await this.loadConfig();
|
|
40
|
+
if (config.lock) {
|
|
41
|
+
this.error('Operation not allowed: application is in a locked state');
|
|
42
|
+
}
|
|
39
43
|
const { client: catalogService, userId, organizationId: defaultOrganizationId } = await this.catalogService();
|
|
40
44
|
const organizationId = this.flags.impersonate ?? defaultOrganizationId;
|
|
41
|
-
const config = await this.loadConfig();
|
|
42
45
|
let applicationName = this.flags.application;
|
|
43
46
|
if (!applicationName) {
|
|
44
47
|
const apps = await this.loadManifest();
|
|
@@ -60,6 +63,6 @@ Stop a Raindrop application.
|
|
|
60
63
|
},
|
|
61
64
|
],
|
|
62
65
|
});
|
|
63
|
-
|
|
66
|
+
console.log(`Set ${applicationName}@${currentVersionId} as stopped.`);
|
|
64
67
|
}
|
|
65
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsandbox.d.ts","sourceRoot":"","sources":["../../../src/commands/build/unsandbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,WAAW,SAA2D;IAE7E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MASV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"unsandbox.d.ts","sourceRoot":"","sources":["../../../src/commands/build/unsandbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI;;MAET;IAEF,MAAM,CAAC,WAAW,SAA2D;IAE7E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MASV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B3B"}
|
|
@@ -21,9 +21,12 @@ export default class Unsandbox extends BaseCommand {
|
|
|
21
21
|
manifest: Flags.string({ default: 'raindrop.manifest', description: 'project manifest' }),
|
|
22
22
|
};
|
|
23
23
|
async run() {
|
|
24
|
+
const config = await this.loadConfig();
|
|
25
|
+
if (config.lock) {
|
|
26
|
+
this.error('Operation not allowed: application is in a locked state');
|
|
27
|
+
}
|
|
24
28
|
const { client: catalogService, userId, organizationId: defaultOrganizationId } = await this.catalogService();
|
|
25
29
|
const organizationId = this.flags.impersonate ?? defaultOrganizationId;
|
|
26
|
-
const config = await this.loadConfig();
|
|
27
30
|
const apps = await this.loadManifest();
|
|
28
31
|
const app = apps[0];
|
|
29
32
|
const versionId = this.args.versionId ?? config.versionId;
|
|
@@ -41,6 +44,9 @@ export default class Unsandbox extends BaseCommand {
|
|
|
41
44
|
},
|
|
42
45
|
],
|
|
43
46
|
});
|
|
44
|
-
|
|
47
|
+
// Mark application as unsandboxed in config
|
|
48
|
+
config.sandbox = false;
|
|
49
|
+
await this.saveConfig(config);
|
|
50
|
+
console.log(`Set ${valueOf(app.name)}@${versionId} as unsandboxed.`);
|
|
45
51
|
}
|
|
46
52
|
}
|
|
@@ -42,14 +42,14 @@ export default class Build extends BaseCommand {
|
|
|
42
42
|
if (version === null) {
|
|
43
43
|
this.error('Failed to determine @liquidmetal-ai/raindrop-framework version; is it installed?', { exit: 1 });
|
|
44
44
|
}
|
|
45
|
-
|
|
45
|
+
console.log(`Using @liquidmetal-ai/raindrop-framework version ${version}`);
|
|
46
46
|
// Run TypeScript type checking
|
|
47
|
-
|
|
47
|
+
console.log('Running type check...');
|
|
48
48
|
const typeCheckPassed = await runTypeCheck(this.flags.root);
|
|
49
49
|
if (!typeCheckPassed) {
|
|
50
50
|
this.error('Type check failed. Please fix the TypeScript errors before building.');
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
console.log('Type check passed');
|
|
53
53
|
const buildDir = path.isAbsolute(this.flags.output)
|
|
54
54
|
? this.flags.output
|
|
55
55
|
: path.join(this.flags.root, this.flags.output);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/object/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/commands/object/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW,CAAC,OAAO,YAAY,CAAC;IACxE,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,WAAW,SAA2C;IAE7D,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB3B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { BaseCommand } from '../../base-command.js';
|
|
3
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
4
|
+
import { DeleteObjectResponseSchema } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/object_pb';
|
|
3
5
|
export default class ObjectDelete extends BaseCommand {
|
|
4
6
|
static args = {
|
|
5
7
|
key: Args.string({
|
|
@@ -17,7 +19,7 @@ Delete file with key 'my-key' from my-bucket
|
|
|
17
19
|
...BaseCommand.HIDDEN_FLAGS,
|
|
18
20
|
bucket: Flags.string({
|
|
19
21
|
char: 'b',
|
|
20
|
-
description: 'bucket
|
|
22
|
+
description: 'bucket ID',
|
|
21
23
|
required: true,
|
|
22
24
|
}),
|
|
23
25
|
output: Flags.string({
|
|
@@ -42,16 +44,18 @@ Delete file with key 'my-key' from my-bucket
|
|
|
42
44
|
};
|
|
43
45
|
async run() {
|
|
44
46
|
const { args, flags } = await this.parse(ObjectDelete);
|
|
45
|
-
const { client: objectService } = await this.objectService();
|
|
47
|
+
const { client: objectService, userId, organizationId } = await this.objectService();
|
|
46
48
|
const response = await objectService.deleteObject({
|
|
49
|
+
userId,
|
|
50
|
+
organizationId,
|
|
47
51
|
bucket: flags.bucket,
|
|
48
52
|
key: args.key,
|
|
49
53
|
});
|
|
50
54
|
if (flags.output === 'json') {
|
|
51
|
-
|
|
55
|
+
console.log(toJsonString(DeleteObjectResponseSchema, response, { prettySpaces: 2 }));
|
|
52
56
|
}
|
|
53
57
|
else {
|
|
54
|
-
|
|
58
|
+
console.log('Successfully deleted file:');
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/object/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI;;;;;MAST;IAEF,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/commands/object/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI;;;;;MAST;IAEF,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgD3B"}
|
|
@@ -26,7 +26,7 @@ Download file with key 'my-key' from my-bucket to output.txt
|
|
|
26
26
|
...BaseCommand.HIDDEN_FLAGS,
|
|
27
27
|
bucket: Flags.string({
|
|
28
28
|
char: 'b',
|
|
29
|
-
description: 'bucket
|
|
29
|
+
description: 'bucket ID',
|
|
30
30
|
required: true,
|
|
31
31
|
}),
|
|
32
32
|
format: Flags.string({
|
|
@@ -51,8 +51,10 @@ Download file with key 'my-key' from my-bucket to output.txt
|
|
|
51
51
|
};
|
|
52
52
|
async run() {
|
|
53
53
|
const { args, flags } = await this.parse(ObjectGet);
|
|
54
|
-
const { client: objectService } = await this.objectService();
|
|
54
|
+
const { client: objectService, userId, organizationId } = await this.objectService();
|
|
55
55
|
const response = await objectService.getObject({
|
|
56
|
+
userId,
|
|
57
|
+
organizationId,
|
|
56
58
|
bucket: flags.bucket,
|
|
57
59
|
key: args.key,
|
|
58
60
|
});
|
|
@@ -62,7 +64,7 @@ Download file with key 'my-key' from my-bucket to output.txt
|
|
|
62
64
|
}
|
|
63
65
|
switch (flags.format) {
|
|
64
66
|
case 'json':
|
|
65
|
-
|
|
67
|
+
console.log(JSON.stringify({
|
|
66
68
|
content: response.content.toString(),
|
|
67
69
|
contentType: response.contentType,
|
|
68
70
|
}, null, 2));
|
|
@@ -74,10 +76,10 @@ Download file with key 'my-key' from my-bucket to output.txt
|
|
|
74
76
|
case 'text': {
|
|
75
77
|
const outputPath = args.output || path.basename(args.key);
|
|
76
78
|
await fs.writeFile(outputPath, response.content);
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
console.log('Successfully downloaded file:');
|
|
80
|
+
console.log(`Saved to: ${outputPath}`);
|
|
79
81
|
if (response.contentType) {
|
|
80
|
-
|
|
82
|
+
console.log(`Content-Type: ${response.contentType}`);
|
|
81
83
|
}
|
|
82
84
|
break;
|
|
83
85
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/object/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/object/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW,CAAC,OAAO,UAAU,CAAC;IACpE,MAAM,CAAC,WAAW,SAA8B;IAEhD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA0BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2C3B"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import { BaseCommand } from '../../base-command.js';
|
|
3
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
4
|
+
import { ListObjectsResponseSchema } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/object_pb';
|
|
3
5
|
export default class ObjectList extends BaseCommand {
|
|
4
6
|
static description = 'List objects in a bucket';
|
|
5
7
|
static examples = [
|
|
@@ -11,7 +13,7 @@ List all objects in my-bucket
|
|
|
11
13
|
...BaseCommand.HIDDEN_FLAGS,
|
|
12
14
|
bucket: Flags.string({
|
|
13
15
|
char: 'b',
|
|
14
|
-
description: 'bucket
|
|
16
|
+
description: 'bucket ID',
|
|
15
17
|
required: true,
|
|
16
18
|
}),
|
|
17
19
|
output: Flags.string({
|
|
@@ -36,17 +38,19 @@ List all objects in my-bucket
|
|
|
36
38
|
};
|
|
37
39
|
async run() {
|
|
38
40
|
const { flags } = await this.parse(ObjectList);
|
|
39
|
-
const { client: objectService } = await this.objectService();
|
|
41
|
+
const { client: objectService, userId, organizationId } = await this.objectService();
|
|
40
42
|
const response = await objectService.listObjects({
|
|
43
|
+
userId,
|
|
44
|
+
organizationId,
|
|
41
45
|
bucket: flags.bucket,
|
|
42
46
|
});
|
|
43
47
|
if (!response.objects?.length) {
|
|
44
|
-
|
|
48
|
+
console.log('No objects found in bucket');
|
|
45
49
|
return;
|
|
46
50
|
}
|
|
47
51
|
switch (flags.output) {
|
|
48
52
|
case 'json':
|
|
49
|
-
|
|
53
|
+
console.log(toJsonString(ListObjectsResponseSchema, response, { prettySpaces: 2 }));
|
|
50
54
|
break;
|
|
51
55
|
case 'table':
|
|
52
56
|
console.table(response.objects.map((obj) => ({
|
|
@@ -57,13 +61,13 @@ List all objects in my-bucket
|
|
|
57
61
|
})));
|
|
58
62
|
break;
|
|
59
63
|
default:
|
|
60
|
-
|
|
64
|
+
console.log(`Objects in bucket ${flags.bucket}:`);
|
|
61
65
|
for (const obj of response.objects) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
66
|
+
console.log(`Key: ${obj.key}`);
|
|
67
|
+
console.log(` Size: ${obj.size} bytes`);
|
|
68
|
+
console.log(` Content-Type: ${obj.contentType || 'N/A'}`);
|
|
69
|
+
console.log(` Last Modified: ${obj.lastModified || 'N/A'}`);
|
|
70
|
+
console.log('---');
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/commands/object/put.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/commands/object/put.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI;;;;;MAUT;IAEF,MAAM,CAAC,WAAW,SAAyC;IAE3D,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MA+BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B1B,OAAO,CAAC,cAAc;CAavB"}
|
|
@@ -2,6 +2,8 @@ import { Args, Flags } from '@oclif/core';
|
|
|
2
2
|
import { BaseCommand } from '../../base-command.js';
|
|
3
3
|
import * as fs from 'node:fs/promises';
|
|
4
4
|
import * as path from 'path';
|
|
5
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
6
|
+
import { PutObjectResponseSchema } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/object_pb';
|
|
5
7
|
export default class ObjectPut extends BaseCommand {
|
|
6
8
|
static args = {
|
|
7
9
|
file: Args.file({
|
|
@@ -24,7 +26,7 @@ Upload myfile.txt to my-bucket with key 'my-key'
|
|
|
24
26
|
...BaseCommand.HIDDEN_FLAGS,
|
|
25
27
|
bucket: Flags.string({
|
|
26
28
|
char: 'b',
|
|
27
|
-
description: 'bucket
|
|
29
|
+
description: 'bucket ID',
|
|
28
30
|
required: true,
|
|
29
31
|
}),
|
|
30
32
|
contentType: Flags.string({
|
|
@@ -54,25 +56,27 @@ Upload myfile.txt to my-bucket with key 'my-key'
|
|
|
54
56
|
};
|
|
55
57
|
async run() {
|
|
56
58
|
const { args, flags } = await this.parse(ObjectPut);
|
|
57
|
-
const { client: objectService } = await this.objectService();
|
|
59
|
+
const { client: objectService, userId, organizationId } = await this.objectService();
|
|
58
60
|
// Read the file
|
|
59
61
|
const fileContent = await fs.readFile(args.file);
|
|
60
62
|
// Get content type if not specified
|
|
61
63
|
const contentType = flags.contentType || this.getContentType(args.file);
|
|
62
64
|
const response = await objectService.putObject({
|
|
65
|
+
userId,
|
|
66
|
+
organizationId,
|
|
63
67
|
bucket: flags.bucket,
|
|
64
68
|
key: args.key,
|
|
65
69
|
content: fileContent,
|
|
66
70
|
contentType,
|
|
67
71
|
});
|
|
68
72
|
if (flags.output === 'json') {
|
|
69
|
-
|
|
73
|
+
console.log(toJsonString(PutObjectResponseSchema, response, { prettySpaces: 2 }));
|
|
70
74
|
}
|
|
71
75
|
else {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
console.log('Successfully uploaded file:');
|
|
77
|
+
console.log(`Bucket: ${response.bucket}`);
|
|
78
|
+
console.log(`Key: ${response.key}`);
|
|
79
|
+
console.log(`Success: ${response.success}`);
|
|
76
80
|
}
|
|
77
81
|
}
|
|
78
82
|
getContentType(filePath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-search.d.ts","sourceRoot":"","sources":["../../../src/commands/query/chunk-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"chunk-search.d.ts","sourceRoot":"","sources":["../../../src/commands/query/chunk-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,WAAW,SAAoF;IAEtG,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;MAqBV;IAEI,WAAW,CAAC,KAAK,EAAE,MAAM;IA+BzB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAI3B"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
2
|
import { BaseCommand } from '../../base-command.js';
|
|
3
3
|
import { ulid } from '@liquidmetal-ai/common/ulid';
|
|
4
|
+
import { toJsonString } from '@bufbuild/protobuf';
|
|
5
|
+
import { RagSearchResponseSchema } from '@liquidmetal-ai/drizzle/liquidmetal/v1alpha1/search_agent_pb';
|
|
4
6
|
export default class RagSearch extends BaseCommand {
|
|
5
7
|
static args = {
|
|
6
8
|
query: Args.string({
|
|
@@ -45,21 +47,21 @@ Run a RAG search query against a Smart Bucket.
|
|
|
45
47
|
});
|
|
46
48
|
// Output results based on format flag
|
|
47
49
|
if (this.flags.output === 'json') {
|
|
48
|
-
|
|
50
|
+
console.log(toJsonString(RagSearchResponseSchema, response, { prettySpaces: 2 }));
|
|
49
51
|
}
|
|
50
52
|
else {
|
|
51
53
|
// Create a nicely formatted table
|
|
52
|
-
|
|
54
|
+
console.log('\nSearch Results:\n');
|
|
53
55
|
for (const result of response.results) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
console.log('----------------------------------------');
|
|
57
|
+
console.log(`Type: ${result.type || 'N/A'}`);
|
|
58
|
+
console.log(`Score: ${result.score || 0}`);
|
|
59
|
+
console.log(`Source: ${JSON.parse(result.source || '{}').object || result.source}`);
|
|
60
|
+
console.log(`Content: ${result.text || 'N/A'}`);
|
|
61
|
+
console.log('----------------------------------------\n');
|
|
60
62
|
}
|
|
61
63
|
if (response.results.length === 0) {
|
|
62
|
-
|
|
64
|
+
console.log('No results found.');
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-retriever.d.ts","sourceRoot":"","sources":["../../../src/commands/query/register-retriever.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW,CAAC,OAAO,iBAAiB,CAAC;IAClF,MAAM,CAAC,IAAI;;;;;MAiBT;IAEF,MAAM,CAAC,WAAW,SAA4D;IAE9E,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"register-retriever.d.ts","sourceRoot":"","sources":["../../../src/commands/query/register-retriever.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,WAAW,CAAC,OAAO,iBAAiB,CAAC;IAClF,MAAM,CAAC,IAAI;;;;;MAiBT;IAEF,MAAM,CAAC,WAAW,SAA4D;IAE9E,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;MAEV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB3B"}
|
|
@@ -32,18 +32,13 @@ Register a new retriever tool.
|
|
|
32
32
|
const { args } = await this.parse(RegisterRetriever);
|
|
33
33
|
const { client: searchAgentService } = await this.searchAgentService();
|
|
34
34
|
try {
|
|
35
|
-
|
|
35
|
+
await searchAgentService.registerRetrieverTool({
|
|
36
36
|
bucket: args.bucket,
|
|
37
37
|
url: args.url,
|
|
38
38
|
deleteUrl: args.deleteUrl,
|
|
39
39
|
bucketName: args.bucketName,
|
|
40
40
|
});
|
|
41
|
-
|
|
42
|
-
this.log(response.message);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this.error('No response message received from service');
|
|
46
|
-
}
|
|
41
|
+
console.log(`Retriever registered successfully: bucket_id=${args.bucket}, url=${args.url}, deleteUrl=${args.deleteUrl}, bucketName=${args.bucketName}`);
|
|
47
42
|
}
|
|
48
43
|
catch (error) {
|
|
49
44
|
this.error(`Failed to register retriever: ${error instanceof Error ? error.message : 'Unknown error occurred'}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/query/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW,CAAC,OAAO,WAAW,CAAC;IACtE,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,WAAW,SAAsE;IAExF,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MA8BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/commands/query/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW,CAAC,OAAO,WAAW,CAAC;IACtE,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,WAAW,SAAsE;IAExF,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;MA8BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyE3B"}
|