@liquidmetal-ai/raindrop 0.6.1 → 0.6.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.
- package/README.md +59 -421
- package/dist/commands/build/deploy.d.ts.map +1 -1
- package/dist/commands/build/deploy.js +10 -0
- package/dist/commands/mcp/status.d.ts.map +1 -1
- package/dist/commands/mcp/status.js +19 -11
- package/dist/commands/object/put.d.ts.map +1 -1
- package/dist/commands/object/put.js +2 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/directory-validation.d.ts +8 -0
- package/dist/utils/directory-validation.d.ts.map +1 -0
- package/dist/utils/directory-validation.js +29 -0
- package/oclif.manifest.json +1816 -4016
- package/package.json +3 -3
- package/templates/db/node_modules/.bin/prisma +2 -2
- package/templates/db/node_modules/.bin/prisma-kysely +2 -2
- package/templates/db/node_modules/.bin/tsc +2 -2
- package/templates/db/node_modules/.bin/tsserver +2 -2
- package/templates/db/node_modules/.bin/zx +2 -2
- package/dist/commands/dns/create.d.ts +0 -25
- package/dist/commands/dns/create.d.ts.map +0 -1
- package/dist/commands/dns/create.js +0 -120
- package/dist/commands/dns/delete.d.ts +0 -20
- package/dist/commands/dns/delete.d.ts.map +0 -1
- package/dist/commands/dns/delete.js +0 -59
- package/dist/commands/dns/get.d.ts +0 -20
- package/dist/commands/dns/get.d.ts.map +0 -1
- package/dist/commands/dns/get.js +0 -101
- package/dist/commands/dns/list.d.ts +0 -21
- package/dist/commands/dns/list.d.ts.map +0 -1
- package/dist/commands/dns/list.js +0 -112
- package/dist/commands/dns/records/create.d.ts +0 -28
- package/dist/commands/dns/records/create.d.ts.map +0 -1
- package/dist/commands/dns/records/create.js +0 -140
- package/dist/commands/dns/records/delete.d.ts +0 -21
- package/dist/commands/dns/records/delete.d.ts.map +0 -1
- package/dist/commands/dns/records/delete.js +0 -64
- package/dist/commands/dns/records/get.d.ts +0 -21
- package/dist/commands/dns/records/get.d.ts.map +0 -1
- package/dist/commands/dns/records/get.js +0 -102
- package/dist/commands/dns/records/list.d.ts +0 -24
- package/dist/commands/dns/records/list.d.ts.map +0 -1
- package/dist/commands/dns/records/list.js +0 -132
- package/dist/commands/dns/records/update.d.ts +0 -29
- package/dist/commands/dns/records/update.d.ts.map +0 -1
- package/dist/commands/dns/records/update.js +0 -137
- package/dist/commands/log/query.d.ts +0 -27
- package/dist/commands/log/query.d.ts.map +0 -1
- package/dist/commands/log/query.js +0 -231
- package/dist/commands/log/tail.d.ts +0 -22
- package/dist/commands/log/tail.d.ts.map +0 -1
- package/dist/commands/log/tail.js +0 -214
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/build/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKpD,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;CAmD3B"}
|
|
@@ -2,6 +2,7 @@ import { Flags } from '@oclif/core';
|
|
|
2
2
|
import { BaseCommand } from '../../base-command.js';
|
|
3
3
|
import { deploy } from '../../deploy.js';
|
|
4
4
|
import { watchStatus } from '../../status.js';
|
|
5
|
+
import { validateRaindropDirectory, isDirectoryValidationError } from '../../utils/directory-validation.js';
|
|
5
6
|
export default class Deploy extends BaseCommand {
|
|
6
7
|
static args = {};
|
|
7
8
|
static description = 'deploy a Raindrop application';
|
|
@@ -50,6 +51,15 @@ Deploy a Raindrop application version.
|
|
|
50
51
|
amend: Flags.boolean({ char: 'a', description: 'amend an existing application', required: false, default: false }),
|
|
51
52
|
};
|
|
52
53
|
async run() {
|
|
54
|
+
try {
|
|
55
|
+
await validateRaindropDirectory(this.flags.root, this.flags.manifest);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (isDirectoryValidationError(error)) {
|
|
59
|
+
this.error(error.message + '\n\nSuggested actions:\n' + error.suggestedActions?.map(action => ` • ${action}`).join('\n'), { exit: 1 });
|
|
60
|
+
}
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
53
63
|
const config = await this.loadConfig();
|
|
54
64
|
const versionId = this.flags.versionId ?? config.versionId;
|
|
55
65
|
const unlock = this.flags.lock ?? config.lock ?? 'user';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/mcp/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAgF;IAElG,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA6EZ,oBAAoB;YAQpB,aAAa;IAmC3B,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/commands/mcp/status.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW,CAAC,OAAO,SAAS,CAAC;IAClE,MAAM,CAAC,IAAI,KAAM;IAEjB,MAAM,CAAC,WAAW,SAAgF;IAElG,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YA6EZ,oBAAoB;YAQpB,aAAa;IAmC3B,OAAO,CAAC,YAAY;CA+BrB"}
|
|
@@ -78,7 +78,7 @@ Show current MCP integration status
|
|
|
78
78
|
console.log(`\nAll configured MCP servers (${mcpServers.length}):`);
|
|
79
79
|
for (const server of mcpServers) {
|
|
80
80
|
const icon = server.name === 'raindrop-mcp' ? '🔵' : '⚪';
|
|
81
|
-
console.log(` ${icon} ${server.name} (${server.transport})`);
|
|
81
|
+
console.log(` ${icon} ${server.name} (${server.transport}) - ${server.url}`);
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
else {
|
|
@@ -133,16 +133,24 @@ Show current MCP integration status
|
|
|
133
133
|
const lines = output.split('\n');
|
|
134
134
|
for (const line of lines) {
|
|
135
135
|
const trimmed = line.trim();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
136
|
+
// Skip header lines and empty lines
|
|
137
|
+
if (!trimmed ||
|
|
138
|
+
trimmed.startsWith('Checking MCP server health') ||
|
|
139
|
+
trimmed.startsWith('MCP Servers:') ||
|
|
140
|
+
trimmed.startsWith('Name')) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
// Parse format: "server-name: url (TRANSPORT) - status"
|
|
144
|
+
const match = trimmed.match(/^([^:]+):\s+([^\s]+)\s+\(([^)]+)\)/);
|
|
145
|
+
if (match && match[1] && match[2] && match[3]) {
|
|
146
|
+
const name = match[1].trim();
|
|
147
|
+
const url = match[2].trim();
|
|
148
|
+
const transport = match[3].trim().toLowerCase(); // Convert "HTTP" to "http"
|
|
149
|
+
servers.push({
|
|
150
|
+
name,
|
|
151
|
+
url,
|
|
152
|
+
transport,
|
|
153
|
+
});
|
|
146
154
|
}
|
|
147
155
|
}
|
|
148
156
|
return servers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/commands/object/put.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,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;;;;;;;;;;;;;;MAoCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD1B,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/commands/object/put.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,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;;;;;;;;;;;;;;MAoCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAqD1B,OAAO,CAAC,cAAc;CAevB"}
|
|
@@ -116,6 +116,8 @@ Upload myfile.txt to my-bucket with key 'my-key'
|
|
|
116
116
|
'.jpg': 'image/jpeg',
|
|
117
117
|
'.jpeg': 'image/jpeg',
|
|
118
118
|
'.pdf': 'application/pdf',
|
|
119
|
+
'.mp3': 'audio/mpeg',
|
|
120
|
+
'.wav': 'audio/wav'
|
|
119
121
|
};
|
|
120
122
|
return contentTypes[extension] || 'application/octet-stream';
|
|
121
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/base-command.ts","../src/build.test.ts","../src/build.ts","../src/codegen.test.ts","../src/codegen.ts","../src/config.test.ts","../src/config.ts","../src/deploy.ts","../src/index.test.ts","../src/index.ts","../src/log-helpers.ts","../src/status.ts","../src/strict-client.ts","../src/trace.ts","../src/commands/tail.ts","../src/commands/annotation/get.ts","../src/commands/annotation/list.ts","../src/commands/annotation/put.ts","../src/commands/auth/list.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/commands/auth/select.ts","../src/commands/bucket/create-credential.ts","../src/commands/bucket/delete-credential.ts","../src/commands/bucket/get-credential.ts","../src/commands/bucket/list-credentials.ts","../src/commands/build/branch.ts","../src/commands/build/checkout.ts","../src/commands/build/clone.ts","../src/commands/build/delete.ts","../src/commands/build/deploy.ts","../src/commands/build/find.ts","../src/commands/build/generate.ts","../src/commands/build/init.ts","../src/commands/build/list.ts","../src/commands/build/sandbox.ts","../src/commands/build/start.ts","../src/commands/build/status.ts","../src/commands/build/stop.ts","../src/commands/build/unsandbox.ts","../src/commands/build/upload.ts","../src/commands/build/validate.ts","../src/commands/build/env/get.ts","../src/commands/build/env/set.ts","../src/commands/build/tools/check.ts","../src/commands/build/tools/fmt.ts","../src/commands/logs/query.ts","../src/commands/logs/tail.ts","../src/commands/mcp/install-claude.ts","../src/commands/mcp/status.ts","../src/commands/object/delete.ts","../src/commands/object/get.ts","../src/commands/object/list.ts","../src/commands/object/put.ts","../src/commands/query/chunk-search.ts","../src/commands/query/document.ts","../src/commands/query/events.ts","../src/commands/query/reindex.ts","../src/commands/query/search.ts"],"version":"5.8.3"}
|
|
1
|
+
{"root":["../src/base-command.ts","../src/build.test.ts","../src/build.ts","../src/codegen.test.ts","../src/codegen.ts","../src/config.test.ts","../src/config.ts","../src/deploy.ts","../src/index.test.ts","../src/index.ts","../src/log-helpers.ts","../src/status.ts","../src/strict-client.ts","../src/trace.ts","../src/commands/tail.ts","../src/commands/annotation/get.ts","../src/commands/annotation/list.ts","../src/commands/annotation/put.ts","../src/commands/auth/list.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/commands/auth/select.ts","../src/commands/bucket/create-credential.ts","../src/commands/bucket/delete-credential.ts","../src/commands/bucket/get-credential.ts","../src/commands/bucket/list-credentials.ts","../src/commands/build/branch.ts","../src/commands/build/checkout.ts","../src/commands/build/clone.ts","../src/commands/build/delete.ts","../src/commands/build/deploy.ts","../src/commands/build/find.ts","../src/commands/build/generate.ts","../src/commands/build/init.ts","../src/commands/build/list.ts","../src/commands/build/sandbox.ts","../src/commands/build/start.ts","../src/commands/build/status.ts","../src/commands/build/stop.ts","../src/commands/build/unsandbox.ts","../src/commands/build/upload.ts","../src/commands/build/validate.ts","../src/commands/build/env/get.ts","../src/commands/build/env/set.ts","../src/commands/build/tools/check.ts","../src/commands/build/tools/fmt.ts","../src/commands/logs/query.ts","../src/commands/logs/tail.ts","../src/commands/mcp/install-claude.ts","../src/commands/mcp/status.ts","../src/commands/object/delete.ts","../src/commands/object/get.ts","../src/commands/object/list.ts","../src/commands/object/put.ts","../src/commands/query/chunk-search.ts","../src/commands/query/document.ts","../src/commands/query/events.ts","../src/commands/query/reindex.ts","../src/commands/query/search.ts","../src/utils/directory-validation.ts"],"version":"5.8.3"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class DirectoryValidationError extends Error {
|
|
2
|
+
suggestedActions: string[];
|
|
3
|
+
readonly isDirectoryValidationError = true;
|
|
4
|
+
constructor(message: string, suggestedActions?: string[]);
|
|
5
|
+
}
|
|
6
|
+
export declare function validateRaindropDirectory(root: string, manifest?: string): Promise<void>;
|
|
7
|
+
export declare function isDirectoryValidationError(error: unknown): error is DirectoryValidationError;
|
|
8
|
+
//# sourceMappingURL=directory-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directory-validation.d.ts","sourceRoot":"","sources":["../../src/utils/directory-validation.ts"],"names":[],"mappings":"AAGA,qBAAa,wBAAyB,SAAQ,KAAK;IAGb,gBAAgB,EAAE,MAAM,EAAE;IAF9D,QAAQ,CAAC,0BAA0B,QAAQ;gBAE/B,OAAO,EAAE,MAAM,EAAS,gBAAgB,GAAE,MAAM,EAAO;CAIpE;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAA4B,GACrC,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,wBAAwB,CAE5F"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as fs from 'node:fs/promises';
|
|
2
|
+
import * as path from 'node:path';
|
|
3
|
+
export class DirectoryValidationError extends Error {
|
|
4
|
+
suggestedActions;
|
|
5
|
+
isDirectoryValidationError = true;
|
|
6
|
+
constructor(message, suggestedActions = []) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.suggestedActions = suggestedActions;
|
|
9
|
+
this.name = 'DirectoryValidationError';
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export async function validateRaindropDirectory(root, manifest = 'raindrop.manifest') {
|
|
13
|
+
const manifestPath = path.isAbsolute(manifest) ? manifest : path.join(root, manifest);
|
|
14
|
+
try {
|
|
15
|
+
await fs.access(manifestPath, fs.constants.F_OK);
|
|
16
|
+
}
|
|
17
|
+
catch (_error) {
|
|
18
|
+
const relativePath = path.relative(process.cwd(), root);
|
|
19
|
+
const displayPath = relativePath === '' ? 'current directory' : relativePath;
|
|
20
|
+
throw new DirectoryValidationError(`Error: Not in a raindrop directory. No raindrop.manifest found in ${displayPath}.`, [
|
|
21
|
+
'Check if you are in the correct directory',
|
|
22
|
+
'Navigate to a raindrop project directory using: cd <project-directory>',
|
|
23
|
+
'Initialize a new raindrop project using: raindrop build init',
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function isDirectoryValidationError(error) {
|
|
28
|
+
return error instanceof DirectoryValidationError;
|
|
29
|
+
}
|