@hasna/cloud 0.1.35 → 0.1.36
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/LICENSE +2 -1
- package/README.md +30 -27
- package/dist/adapter.d.ts +65 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.test.d.ts +2 -0
- package/dist/adapter.test.d.ts.map +1 -0
- package/dist/auto-sync.d.ts +28 -0
- package/dist/auto-sync.d.ts.map +1 -0
- package/dist/cli/cmd-doctor.d.ts +3 -0
- package/dist/cli/cmd-doctor.d.ts.map +1 -0
- package/dist/cli/cmd-feedback.d.ts +3 -0
- package/dist/cli/cmd-feedback.d.ts.map +1 -0
- package/dist/cli/cmd-migrate.d.ts +3 -0
- package/dist/cli/cmd-migrate.d.ts.map +1 -0
- package/dist/cli/cmd-setup.d.ts +3 -0
- package/dist/cli/cmd-setup.d.ts.map +1 -0
- package/dist/cli/cmd-sync.d.ts +4 -0
- package/dist/cli/cmd-sync.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +15346 -0
- package/dist/cli-helpers.d.ts +17 -0
- package/dist/cli-helpers.d.ts.map +1 -0
- package/dist/config.d.ts +220 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/daemon-sync.d.ts +108 -0
- package/dist/daemon-sync.d.ts.map +1 -0
- package/dist/dialect.d.ts +17 -0
- package/dist/dialect.d.ts.map +1 -0
- package/dist/dialect.test.d.ts +2 -0
- package/dist/dialect.test.d.ts.map +1 -0
- package/dist/discover.d.ts +35 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.test.d.ts +2 -0
- package/dist/discover.test.d.ts.map +1 -0
- package/dist/dotfile.d.ts +27 -0
- package/dist/dotfile.d.ts.map +1 -0
- package/dist/feedback.d.ts +32 -0
- package/dist/feedback.d.ts.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12223 -0
- package/dist/machines.d.ts +63 -0
- package/dist/machines.d.ts.map +1 -0
- package/dist/mcp/bin.js +2 -0
- package/dist/mcp/http.d.ts +28 -0
- package/dist/mcp/http.d.ts.map +1 -0
- package/dist/mcp/index.d.ts +4 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +27795 -0
- package/dist/mcp-helpers.d.ts +22 -0
- package/dist/mcp-helpers.d.ts.map +1 -0
- package/dist/pg-migrate.d.ts +58 -0
- package/dist/pg-migrate.d.ts.map +1 -0
- package/dist/scheduled-sync.d.ts +24 -0
- package/dist/scheduled-sync.d.ts.map +1 -0
- package/dist/scheduled-sync.js +9517 -0
- package/dist/sync-conflicts.d.ts +76 -0
- package/dist/sync-conflicts.d.ts.map +1 -0
- package/dist/sync-conflicts.test.d.ts +2 -0
- package/dist/sync-conflicts.test.d.ts.map +1 -0
- package/dist/sync-incremental.d.ts +67 -0
- package/dist/sync-incremental.d.ts.map +1 -0
- package/dist/sync-progress.d.ts +68 -0
- package/dist/sync-progress.d.ts.map +1 -0
- package/dist/sync-schedule.d.ts +36 -0
- package/dist/sync-schedule.d.ts.map +1 -0
- package/dist/sync-schedule.test.d.ts +2 -0
- package/dist/sync-schedule.test.d.ts.map +1 -0
- package/dist/sync.d.ts +53 -0
- package/dist/sync.d.ts.map +1 -0
- package/dist/sync.test.d.ts +2 -0
- package/dist/sync.test.d.ts.map +1 -0
- package/package.json +26 -15
- package/archive/cli.js +0 -4
- package/archive/index.d.ts +0 -9
- package/archive/index.js +0 -15
- package/archive/mcp.js +0 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
/**
|
|
3
|
+
* Register cloud-related MCP tools onto an existing MCP server.
|
|
4
|
+
* Services call this to embed cloud sync/feedback tools into their own MCP server.
|
|
5
|
+
*
|
|
6
|
+
* @param migrations - Optional list of SQL statements to run against PG before pushing.
|
|
7
|
+
* Use this to ensure the cloud schema exists (CREATE TABLE IF NOT EXISTS ...).
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
12
|
+
* import { registerCloudTools } from "@hasna/cloud";
|
|
13
|
+
*
|
|
14
|
+
* const server = new McpServer({ name: "my-service", version: "0.1.0" });
|
|
15
|
+
* registerCloudTools(server, "my-service", { migrations: PG_MIGRATIONS });
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function registerCloudTools(server: McpServer, serviceName: string, opts?: {
|
|
19
|
+
migrations?: string[];
|
|
20
|
+
dbPath?: string;
|
|
21
|
+
}): void;
|
|
22
|
+
//# sourceMappingURL=mcp-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-helpers.d.ts","sourceRoot":"","sources":["../src/mcp-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GACpD,IAAI,CA2JN"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic PostgreSQL migration runner.
|
|
3
|
+
*
|
|
4
|
+
* Applies a flat array of SQL migration strings to a PG database.
|
|
5
|
+
* Tracks applied versions in a `_pg_migrations` table.
|
|
6
|
+
* Forward-only — no rollbacks. Migrations must be idempotent.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* import { applyPgMigrations } from "@hasna/cloud";
|
|
10
|
+
* const result = await applyPgMigrations(connectionString, migrations);
|
|
11
|
+
*
|
|
12
|
+
* Or for service discovery:
|
|
13
|
+
* import { migrateService, migrateAllServices } from "@hasna/cloud";
|
|
14
|
+
* await migrateService("todos", connectionString);
|
|
15
|
+
* await migrateAllServices(); // discovers all installed @hasna/* services
|
|
16
|
+
*/
|
|
17
|
+
export interface PgMigrationResult {
|
|
18
|
+
service: string;
|
|
19
|
+
applied: number[];
|
|
20
|
+
alreadyApplied: number[];
|
|
21
|
+
errors: string[];
|
|
22
|
+
totalMigrations: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Apply an array of SQL migrations to a PostgreSQL database.
|
|
26
|
+
*
|
|
27
|
+
* @param connectionString - PG connection string (postgres://...)
|
|
28
|
+
* @param migrations - Ordered array of SQL strings. Index = version number.
|
|
29
|
+
* @param service - Service name for result reporting (default: "unknown")
|
|
30
|
+
*/
|
|
31
|
+
export declare function applyPgMigrations(connectionString: string, migrations: string[], service?: string): Promise<PgMigrationResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Migrate a single service's PG database.
|
|
34
|
+
*
|
|
35
|
+
* @param service - Service name (e.g., "todos", "conversations")
|
|
36
|
+
* @param connectionString - Optional override. Default: auto-detected from cloud config.
|
|
37
|
+
*/
|
|
38
|
+
export declare function migrateService(service: string, connectionString?: string): Promise<PgMigrationResult>;
|
|
39
|
+
/**
|
|
40
|
+
* Discover all installed @hasna/* services and migrate their PG databases.
|
|
41
|
+
*
|
|
42
|
+
* Discovery: scans ~/.hasna/ for service directories that have local DBs.
|
|
43
|
+
*/
|
|
44
|
+
export declare function migrateAllServices(): Promise<PgMigrationResult[]>;
|
|
45
|
+
/**
|
|
46
|
+
* Ensure a PostgreSQL database exists for a service.
|
|
47
|
+
* Connects to the `postgres` default database and runs CREATE DATABASE.
|
|
48
|
+
*/
|
|
49
|
+
export declare function ensurePgDatabase(service: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Ensure PG databases exist for all discovered services.
|
|
52
|
+
*/
|
|
53
|
+
export declare function ensureAllPgDatabases(): Promise<Array<{
|
|
54
|
+
service: string;
|
|
55
|
+
created: boolean;
|
|
56
|
+
error?: string;
|
|
57
|
+
}>>;
|
|
58
|
+
//# sourceMappingURL=pg-migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pg-migrate.d.ts","sourceRoot":"","sources":["../src/pg-migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;CACzB;AAMD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,SAAY,GAClB,OAAO,CAAC,iBAAiB,CAAC,CAwD5B;AA+CD;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAe5B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAqBvE;AAMD;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BxE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAelH"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Discover services under `~/.hasna/` that have a `<service>.db` SQLite file.
|
|
3
|
+
* Returns an array of service names.
|
|
4
|
+
*/
|
|
5
|
+
export declare function discoverSyncableServices(): string[];
|
|
6
|
+
export interface ScheduledSyncResult {
|
|
7
|
+
service: string;
|
|
8
|
+
tables_synced: number;
|
|
9
|
+
total_rows_synced: number;
|
|
10
|
+
errors: string[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Run a scheduled sync push for all discovered services.
|
|
14
|
+
*
|
|
15
|
+
* - Skips if mode is `local`.
|
|
16
|
+
* - Opens each service's SQLite DB, discovers tables, and pushes to PG.
|
|
17
|
+
* - Returns per-service results.
|
|
18
|
+
*/
|
|
19
|
+
export declare function runScheduledSync(): Promise<ScheduledSyncResult[]>;
|
|
20
|
+
declare const _default: {
|
|
21
|
+
scheduled(): Promise<void>;
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
24
|
+
//# sourceMappingURL=scheduled-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-sync.d.ts","sourceRoot":"","sources":["../src/scheduled-sync.ts"],"names":[],"mappings":"AAYA;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAkBnD;AAMD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA2EvE;;;;AAUD,wBAIE"}
|