@livestore/cli 0.4.0 → 0.5.0-dev.0
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/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/fixtures/mock-config.d.ts +7 -9
- package/dist/__tests__/fixtures/mock-config.d.ts.map +1 -1
- package/dist/__tests__/fixtures/mock-config.js +6 -6
- package/dist/__tests__/fixtures/mock-config.js.map +1 -1
- package/dist/__tests__/sync-operations.test.js +20 -20
- package/dist/__tests__/sync-operations.test.js.map +1 -1
- package/dist/bin.js +6 -5
- package/dist/bin.js.map +1 -1
- package/dist/cli.d.ts +2 -23
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/__fixtures__/mcp-protocol-server.d.ts +2 -0
- package/dist/commands/__fixtures__/mcp-protocol-server.d.ts.map +1 -0
- package/dist/commands/__fixtures__/mcp-protocol-server.js +10 -0
- package/dist/commands/__fixtures__/mcp-protocol-server.js.map +1 -0
- package/dist/commands/import-export.d.ts +5 -19
- package/dist/commands/import-export.d.ts.map +1 -1
- package/dist/commands/import-export.js +12 -12
- package/dist/commands/import-export.js.map +1 -1
- package/dist/commands/mcp-coach.d.ts +8 -7
- package/dist/commands/mcp-coach.d.ts.map +1 -1
- package/dist/commands/mcp-coach.js +10 -10
- package/dist/commands/mcp-coach.js.map +1 -1
- package/dist/commands/mcp-protocols.d.ts +7 -0
- package/dist/commands/mcp-protocols.d.ts.map +1 -0
- package/dist/commands/mcp-protocols.js +12 -0
- package/dist/commands/mcp-protocols.js.map +1 -0
- package/dist/commands/mcp-protocols.test.d.ts +2 -0
- package/dist/commands/mcp-protocols.test.d.ts.map +1 -0
- package/dist/commands/mcp-protocols.test.js +60 -0
- package/dist/commands/mcp-protocols.test.js.map +1 -0
- package/dist/commands/mcp-stdio.test.d.ts +2 -0
- package/dist/commands/mcp-stdio.test.d.ts.map +1 -0
- package/dist/commands/mcp-stdio.test.js +79 -0
- package/dist/commands/mcp-stdio.test.js.map +1 -0
- package/dist/commands/mcp-tool-handlers.d.ts +1 -1
- package/dist/commands/mcp-tool-handlers.d.ts.map +1 -1
- package/dist/commands/mcp-tool-handlers.js +1 -0
- package/dist/commands/mcp-tool-handlers.js.map +1 -1
- package/dist/commands/mcp-tools-defs.d.ts +65 -64
- package/dist/commands/mcp-tools-defs.d.ts.map +1 -1
- package/dist/commands/mcp-tools-defs.js +59 -52
- package/dist/commands/mcp-tools-defs.js.map +1 -1
- package/dist/commands/mcp-tools-defs.test.d.ts +2 -0
- package/dist/commands/mcp-tools-defs.test.d.ts.map +1 -0
- package/dist/commands/mcp-tools-defs.test.js +11 -0
- package/dist/commands/mcp-tools-defs.test.js.map +1 -0
- package/dist/commands/mcp.d.ts +1 -3
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +5 -4
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/new-project.d.ts +19 -27
- package/dist/commands/new-project.d.ts.map +1 -1
- package/dist/commands/new-project.js +17 -16
- package/dist/commands/new-project.js.map +1 -1
- package/dist/mcp-content/architecture.d.ts +1 -1
- package/dist/mcp-content/architecture.d.ts.map +1 -1
- package/dist/mcp-content/architecture.js +3 -3
- package/dist/mcp-content/features.d.ts +1 -1
- package/dist/mcp-content/features.d.ts.map +1 -1
- package/dist/mcp-content/features.js +1 -1
- package/dist/mcp-content/getting-started.d.ts +1 -1
- package/dist/mcp-content/getting-started.d.ts.map +1 -1
- package/dist/mcp-content/getting-started.js +37 -37
- package/dist/mcp-content/overview.d.ts +1 -1
- package/dist/mcp-content/overview.d.ts.map +1 -1
- package/dist/mcp-content/overview.js +6 -6
- package/dist/mcp-content/schemas/blog.d.ts +1 -1
- package/dist/mcp-content/schemas/blog.d.ts.map +1 -1
- package/dist/mcp-content/schemas/blog.js +25 -25
- package/dist/mcp-content/schemas/ecommerce.d.ts +1 -1
- package/dist/mcp-content/schemas/ecommerce.d.ts.map +1 -1
- package/dist/mcp-content/schemas/ecommerce.js +67 -67
- package/dist/mcp-content/schemas/social.d.ts +1 -1
- package/dist/mcp-content/schemas/social.d.ts.map +1 -1
- package/dist/mcp-content/schemas/social.js +48 -48
- package/dist/mcp-content/schemas/todo.d.ts +1 -1
- package/dist/mcp-content/schemas/todo.d.ts.map +1 -1
- package/dist/mcp-content/schemas/todo.js +35 -35
- package/dist/mcp-runtime/runtime.d.ts +2 -2
- package/dist/mcp-runtime/runtime.d.ts.map +1 -1
- package/dist/mcp-runtime/runtime.js +4 -4
- package/dist/mcp-runtime/runtime.js.map +1 -1
- package/dist/module-loader.d.ts +2 -2
- package/dist/module-loader.d.ts.map +1 -1
- package/dist/module-loader.js +6 -6
- package/dist/module-loader.js.map +1 -1
- package/dist/sync-operations.d.ts +24 -30
- package/dist/sync-operations.d.ts.map +1 -1
- package/dist/sync-operations.js +10 -12
- package/dist/sync-operations.js.map +1 -1
- package/package.json +30 -44
- package/src/__tests__/fixtures/mock-config.ts +8 -8
- package/src/__tests__/sync-operations.test.ts +21 -35
- package/src/bin.ts +7 -6
- package/src/cli.ts +1 -1
- package/src/commands/__fixtures__/mcp-protocol-server.ts +12 -0
- package/src/commands/import-export.ts +29 -29
- package/src/commands/mcp-coach.ts +12 -11
- package/src/commands/mcp-protocols.test.ts +76 -0
- package/src/commands/mcp-protocols.ts +12 -0
- package/src/commands/mcp-stdio.test.ts +93 -0
- package/src/commands/mcp-tool-handlers.ts +11 -8
- package/src/commands/mcp-tools-defs.test.ts +13 -0
- package/src/commands/mcp-tools-defs.ts +53 -51
- package/src/commands/mcp.ts +7 -4
- package/src/commands/new-project.ts +49 -36
- package/src/mcp-content/architecture.ts +3 -3
- package/src/mcp-content/features.ts +1 -1
- package/src/mcp-content/getting-started.ts +37 -37
- package/src/mcp-content/overview.ts +6 -6
- package/src/mcp-content/schemas/blog.ts +25 -25
- package/src/mcp-content/schemas/ecommerce.ts +67 -67
- package/src/mcp-content/schemas/social.ts +48 -48
- package/src/mcp-content/schemas/todo.ts +35 -35
- package/src/mcp-runtime/runtime.ts +7 -7
- package/src/module-loader.ts +10 -10
- package/src/sync-operations.ts +16 -16
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { State } from '@livestore/common/schema';
|
|
2
2
|
import type { MockSyncBackend } from '@livestore/common/sync';
|
|
3
3
|
import { EventFactory } from '@livestore/common/testing';
|
|
4
|
-
import { Effect, FileSystem, type
|
|
5
|
-
declare const DynamicImportError_base: Schema.
|
|
6
|
-
readonly
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
path: typeof Schema.String;
|
|
10
|
-
}>;
|
|
4
|
+
import { Effect, FileSystem, type Queue, Schema } from '@livestore/utils/effect';
|
|
5
|
+
declare const DynamicImportError_base: Schema.Class<DynamicImportError, Schema.TaggedStruct<"DynamicImportError", {
|
|
6
|
+
readonly cause: Schema.Defect;
|
|
7
|
+
readonly path: Schema.String;
|
|
8
|
+
}>, import("effect/Cause").YieldableError>;
|
|
11
9
|
declare class DynamicImportError extends DynamicImportError_base {
|
|
12
10
|
}
|
|
13
11
|
export declare const events: {
|
|
@@ -38,8 +36,8 @@ export declare const schema: import("@livestore/common/schema").FromInputSchema.
|
|
|
38
36
|
export declare const useMockConfig: Effect.Effect<{
|
|
39
37
|
configPath: string;
|
|
40
38
|
mockBackend: MockSyncBackend;
|
|
41
|
-
connectionEvents:
|
|
42
|
-
}, import("
|
|
39
|
+
connectionEvents: Queue.Queue<"connect" | "disconnect", never>;
|
|
40
|
+
}, import("effect/PlatformError").PlatformError | DynamicImportError, FileSystem.FileSystem | import("effect/Scope").Scope>;
|
|
43
41
|
export declare const makeEventFactory: () => {
|
|
44
42
|
itemAdded: {
|
|
45
43
|
next: (args: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-config.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"mock-config.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;;;;;AAIhF,cAAM,kBAAmB,SAAQ,uBAG/B;CAAG;AAaL,eAAO,MAAM,MAAM;;;;;;;;CAKlB,CAAA;AAWD,eAAO,MAAM,MAAM;;;;;;;;;;;EAAgC,CAAA;AAgCnD;;;GAGG;AACH,eAAO,MAAM,aAAa;;;;2HA0BzB,CAAA;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;uCAxDL,CAAC;;;;;;;CA6DrB,CAAA"}
|
|
@@ -13,7 +13,7 @@ import { EventFactory } from '@livestore/common/testing';
|
|
|
13
13
|
import { Effect, FileSystem, Schema } from '@livestore/utils/effect';
|
|
14
14
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
15
15
|
class DynamicImportError extends Schema.TaggedError()('DynamicImportError', {
|
|
16
|
-
cause: Schema.Defect,
|
|
16
|
+
cause: Schema.Defect(),
|
|
17
17
|
path: Schema.String,
|
|
18
18
|
}) {
|
|
19
19
|
}
|
|
@@ -46,21 +46,21 @@ const makeTempConfig = () => {
|
|
|
46
46
|
const moduleSource = `
|
|
47
47
|
import { schema } from ${JSON.stringify(schemaModuleUrl)}
|
|
48
48
|
import { makeMockSyncBackend } from '@livestore/common/sync'
|
|
49
|
-
import { Effect,
|
|
49
|
+
import { Effect, Queue } from '@livestore/utils/effect'
|
|
50
50
|
|
|
51
51
|
export const mockBackend = await Effect.runPromise(Effect.scoped(makeMockSyncBackend({ startConnected: true })))
|
|
52
|
-
export const connectionEvents = await Effect.runPromise(
|
|
52
|
+
export const connectionEvents = await Effect.runPromise(Queue.make<'connect' | 'disconnect'>())
|
|
53
53
|
|
|
54
54
|
export { schema }
|
|
55
55
|
|
|
56
56
|
export const syncBackend = (_args) =>
|
|
57
57
|
mockBackend.makeSyncBackend.pipe(
|
|
58
|
-
Effect.tap(() =>
|
|
58
|
+
Effect.tap(() => Queue.offer(connectionEvents, 'connect')),
|
|
59
59
|
Effect.map((backend) => {
|
|
60
60
|
const disconnect = backend.disconnect ?? Effect.void
|
|
61
61
|
return {
|
|
62
62
|
...backend,
|
|
63
|
-
disconnect: disconnect.pipe(Effect.tap(() =>
|
|
63
|
+
disconnect: disconnect.pipe(Effect.tap(() => Queue.offer(connectionEvents, 'disconnect'))),
|
|
64
64
|
}
|
|
65
65
|
}),
|
|
66
66
|
)
|
|
@@ -84,7 +84,7 @@ export const useMockConfig = Effect.acquireRelease(Effect.gen(function* () {
|
|
|
84
84
|
return { configPath: tempPath, mockBackend: mod.mockBackend, connectionEvents: mod.connectionEvents };
|
|
85
85
|
}), ({ configPath }) => Effect.gen(function* () {
|
|
86
86
|
const fs = yield* FileSystem.FileSystem;
|
|
87
|
-
yield* fs.remove(configPath, { recursive: false }).pipe(Effect.
|
|
87
|
+
yield* fs.remove(configPath, { recursive: false }).pipe(Effect.catch(() => Effect.void));
|
|
88
88
|
}));
|
|
89
89
|
export const makeEventFactory = () => EventFactory.makeFactory(events)({
|
|
90
90
|
client: EventFactory.clientIdentity('cli-test-client'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-config.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-config.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"mock-config.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-config.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEpE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAc,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAE9D,MAAM,kBAAmB,SAAQ,MAAM,CAAC,WAAW,EAAsB,CAAC,oBAAoB,EAAE;IAC9F,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,MAAM,CAAC,MAAM;CACpB,CAAC;CAAG;AAEL,4FAA4F;AAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;AAExD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC/B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE;QACP,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC3C,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;KAC3D;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;KACnE,CAAC;CACH,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE;IACvD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;CAC1D,CAAC,CAAA;AAEF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;IACnC,MAAM,EAAE,EAAE,KAAK,EAAE;IACjB,aAAa;CACd,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAEnD,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAA;AAElF,sGAAsG;AACtG,MAAM,cAAc,GAAG,GAAG,EAAE;IAC1B,MAAM,YAAY,GAAG;yBACE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;;;;;;;;;;;;;;;;;;;;CAoBvD,CAAA;IAEC,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAChD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IAEvC,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IACzG,MAAM,YAAY,GAAG,cAAc,EAAE,CAAA;IAErC,KAAK,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IAEjD,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;QACpC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,kCAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAC;QAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KACpE,CAAC,CAGD,CAAA;IAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,CAAA;AACvG,CAAC,CAAC,EACF,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAA;IACvC,KAAK,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;AAC1F,CAAC,CAAC,CACL,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE,CACnC,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,EAAE,YAAY,CAAC,cAAc,CAAC,iBAAiB,CAAC;IACtD,QAAQ,EAAE,CAAC;IACX,aAAa,EAAE,MAAM;CACtB,CAAC,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
3
|
-
import { Chunk, Effect, FetchHttpClient, Layer, Mailbox, Stream } from '@livestore/utils/effect';
|
|
1
|
+
import { Effect, FetchHttpClient, Layer, Queue, Stream } from '@livestore/utils/effect';
|
|
4
2
|
import { PlatformNode } from '@livestore/utils/node';
|
|
3
|
+
import { Vitest } from '@livestore/utils-dev/node-vitest';
|
|
4
|
+
import { expect } from 'vitest';
|
|
5
5
|
import { pullEventsFromSyncBackend, pushEventsToSyncBackend } from "../sync-operations.js";
|
|
6
6
|
import { makeEventFactory, useMockConfig } from "./fixtures/mock-config.js";
|
|
7
7
|
const baseLayer = Layer.mergeAll(PlatformNode.NodeFileSystem.layer, FetchHttpClient.layer);
|
|
@@ -11,8 +11,8 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
11
11
|
const storeId = 'test-store';
|
|
12
12
|
const clientId = 'test-client';
|
|
13
13
|
/** Collects the connect + disconnect lifecycle emitted by the mock sync backend. */
|
|
14
|
-
const expectConnectLifecycle = (mailbox) =>
|
|
15
|
-
Vitest.
|
|
14
|
+
const expectConnectLifecycle = (mailbox) => Stream.fromQueue(mailbox).pipe(Stream.take(2), Stream.runCollect);
|
|
15
|
+
Vitest.live('exports events and releases the backend connection', (test) => Effect.gen(function* () {
|
|
16
16
|
const { mockBackend, connectionEvents, configPath } = yield* useMockConfig;
|
|
17
17
|
const factory = makeEventFactory();
|
|
18
18
|
const batch = [
|
|
@@ -30,7 +30,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
30
30
|
const lifecycle = yield* expectConnectLifecycle(connectionEvents);
|
|
31
31
|
expect(lifecycle).toEqual(['connect', 'disconnect']);
|
|
32
32
|
}).pipe(withTestCtx(test)));
|
|
33
|
-
Vitest.
|
|
33
|
+
Vitest.live('fails import when backend is not empty', (test) => Effect.gen(function* () {
|
|
34
34
|
const { mockBackend, connectionEvents, configPath } = yield* useMockConfig;
|
|
35
35
|
const factory = makeEventFactory();
|
|
36
36
|
yield* mockBackend.advance(factory.itemAdded.next({ id: 'existing', title: 'Present' }));
|
|
@@ -51,15 +51,15 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
51
51
|
},
|
|
52
52
|
force: false,
|
|
53
53
|
dryRun: false,
|
|
54
|
-
}).pipe(Effect.
|
|
55
|
-
expect(result._tag).toBe('
|
|
56
|
-
if (result._tag === '
|
|
57
|
-
expect(result.
|
|
54
|
+
}).pipe(Effect.result);
|
|
55
|
+
expect(result._tag).toBe('Failure');
|
|
56
|
+
if (result._tag === 'Failure') {
|
|
57
|
+
expect(result.failure._tag).toBe('ImportError');
|
|
58
58
|
}
|
|
59
59
|
const lifecycle = yield* expectConnectLifecycle(connectionEvents);
|
|
60
60
|
expect(lifecycle).toEqual(['connect', 'disconnect']);
|
|
61
61
|
}).pipe(withTestCtx(test)));
|
|
62
|
-
Vitest.
|
|
62
|
+
Vitest.live('supports dry-run import and releases backend', (test) => Effect.gen(function* () {
|
|
63
63
|
const { configPath, connectionEvents } = yield* useMockConfig;
|
|
64
64
|
const factory = makeEventFactory();
|
|
65
65
|
const importBatch = [factory.itemAdded.next({ id: 'dry-run', title: 'Simulated' })];
|
|
@@ -82,7 +82,7 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
82
82
|
const lifecycle = yield* expectConnectLifecycle(connectionEvents);
|
|
83
83
|
expect(lifecycle).toEqual(['connect', 'disconnect']);
|
|
84
84
|
}).pipe(withTestCtx(test)));
|
|
85
|
-
Vitest.
|
|
85
|
+
Vitest.live('imports events into empty backend with progress and batching', (test) => Effect.gen(function* () {
|
|
86
86
|
const { mockBackend, configPath, connectionEvents } = yield* useMockConfig;
|
|
87
87
|
const factory = makeEventFactory();
|
|
88
88
|
const importBatch = Array.from({ length: 120 }, (_, idx) => factory.itemAdded.next({ id: `id-${idx + 1}`, title: `Item ${idx + 1}` }));
|
|
@@ -108,12 +108,12 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
108
108
|
{ pushed: 100, total: 120 },
|
|
109
109
|
{ pushed: 120, total: 120 },
|
|
110
110
|
]);
|
|
111
|
-
const pushedEvents = yield* mockBackend.pushedEvents.pipe(Stream.take(importBatch.length), Stream.runCollect
|
|
111
|
+
const pushedEvents = yield* mockBackend.pushedEvents.pipe(Stream.take(importBatch.length), Stream.runCollect);
|
|
112
112
|
expect(pushedEvents.map((event) => event.seqNum)).toHaveLength(importBatch.length);
|
|
113
113
|
const lifecycle = yield* expectConnectLifecycle(connectionEvents);
|
|
114
114
|
expect(lifecycle).toEqual(['connect', 'disconnect']);
|
|
115
115
|
}).pipe(withTestCtx(test)));
|
|
116
|
-
Vitest.
|
|
116
|
+
Vitest.live('allows force import on store ID mismatch', (test) => Effect.gen(function* () {
|
|
117
117
|
const { mockBackend, configPath, connectionEvents } = yield* useMockConfig;
|
|
118
118
|
const factory = makeEventFactory();
|
|
119
119
|
const importBatch = [factory.itemAdded.next({ id: 'force-1', title: 'Force' })];
|
|
@@ -133,12 +133,12 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
133
133
|
});
|
|
134
134
|
expect(result.dryRun).toBe(false);
|
|
135
135
|
expect(result.eventCount).toBe(importBatch.length);
|
|
136
|
-
const pushedEvents = yield* mockBackend.pushedEvents.pipe(Stream.take(1), Stream.runCollect
|
|
136
|
+
const pushedEvents = yield* mockBackend.pushedEvents.pipe(Stream.take(1), Stream.runCollect);
|
|
137
137
|
expect(pushedEvents).toHaveLength(1);
|
|
138
138
|
const lifecycle = yield* expectConnectLifecycle(connectionEvents);
|
|
139
139
|
expect(lifecycle).toEqual(['connect', 'disconnect']);
|
|
140
140
|
}).pipe(withTestCtx(test)));
|
|
141
|
-
Vitest.
|
|
141
|
+
Vitest.live('rejects store ID mismatch without force', (test) => Effect.gen(function* () {
|
|
142
142
|
const { configPath, connectionEvents } = yield* useMockConfig;
|
|
143
143
|
const factory = makeEventFactory();
|
|
144
144
|
const importBatch = [factory.itemAdded.next({ id: 'mismatch', title: 'Mismatch' })];
|
|
@@ -155,10 +155,10 @@ Vitest.describe('sync-operations', { timeout: 10_000 }, () => {
|
|
|
155
155
|
},
|
|
156
156
|
force: false,
|
|
157
157
|
dryRun: false,
|
|
158
|
-
}).pipe(Effect.
|
|
159
|
-
expect(result._tag).toBe('
|
|
160
|
-
if (result._tag === '
|
|
161
|
-
expect(result.
|
|
158
|
+
}).pipe(Effect.result);
|
|
159
|
+
expect(result._tag).toBe('Failure');
|
|
160
|
+
if (result._tag === 'Failure') {
|
|
161
|
+
expect(result.failure._tag).toBe('ImportError');
|
|
162
162
|
}
|
|
163
163
|
const lifecycle = yield* expectConnectLifecycle(connectionEvents);
|
|
164
164
|
expect(lifecycle).toEqual(['connect', 'disconnect']);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-operations.test.js","sourceRoot":"","sources":["../../src/__tests__/sync-operations.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"sync-operations.test.js","sourceRoot":"","sources":["../../src/__tests__/sync-operations.test.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { liveStoreVersion } from '@livestore/common';
|
|
3
|
-
import { Console, Effect, FetchHttpClient, Layer, Logger,
|
|
3
|
+
import { Console, Effect, FetchHttpClient, Layer, Logger, References } from '@livestore/utils/effect';
|
|
4
4
|
import { Cli, PlatformNode } from '@livestore/utils/node';
|
|
5
5
|
import { command } from "./cli.js";
|
|
6
6
|
const cli = Cli.Command.run(command, {
|
|
7
|
-
name: 'livestore',
|
|
8
7
|
version: liveStoreVersion,
|
|
9
8
|
});
|
|
10
|
-
const showExperimentalWarning = Console.
|
|
11
|
-
const layer = Layer.mergeAll(PlatformNode.
|
|
9
|
+
const showExperimentalWarning = Console.error('⚠️ Warning: LiveStore CLI is experimental and under active development');
|
|
10
|
+
const layer = Layer.mergeAll(PlatformNode.NodeServices.layer, FetchHttpClient.layer, Layer.succeed(References.MinimumLogLevel, 'Info'),
|
|
11
|
+
// Keep stdout available for command data and protocol transports such as MCP stdio.
|
|
12
|
+
Layer.succeed(Logger.LogToStderr, true));
|
|
12
13
|
Effect.gen(function* () {
|
|
13
14
|
yield* showExperimentalWarning;
|
|
14
|
-
return yield* cli
|
|
15
|
+
return yield* cli;
|
|
15
16
|
}).pipe(Effect.provide(layer), PlatformNode.NodeRuntime.runMain);
|
|
16
17
|
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACrG,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;IACnC,OAAO,EAAE,gBAAgB;CAC1B,CAAC,CAAA;AAEF,MAAM,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAA;AAExH,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAC1B,YAAY,CAAC,YAAY,CAAC,KAAK,EAC/B,eAAe,CAAC,KAAK,EACrB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,MAAM,CAAC;AACjD,oFAAoF;AACpF,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CACxC,CAAA;AAED,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,KAAK,CAAC,CAAC,uBAAuB,CAAA;IAC9B,OAAO,KAAK,CAAC,CAAC,GAAG,CAAA;AACnB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,26 +1,5 @@
|
|
|
1
1
|
import { Cli } from '@livestore/utils/node';
|
|
2
|
-
export declare const command: Cli.Command.Command<"livestore",
|
|
2
|
+
export declare const command: Cli.Command.Command<"livestore", {} | {
|
|
3
3
|
readonly verbose: boolean;
|
|
4
|
-
|
|
5
|
-
readonly subcommand: import("effect/Option").Option<{
|
|
6
|
-
readonly config: string;
|
|
7
|
-
readonly storeId: string;
|
|
8
|
-
readonly clientId: string;
|
|
9
|
-
readonly output: string;
|
|
10
|
-
} | {
|
|
11
|
-
readonly config: string;
|
|
12
|
-
readonly storeId: string;
|
|
13
|
-
readonly clientId: string;
|
|
14
|
-
readonly force: boolean;
|
|
15
|
-
readonly dryRun: boolean;
|
|
16
|
-
readonly input: string;
|
|
17
|
-
}>;
|
|
18
|
-
} | {
|
|
19
|
-
readonly subcommand: import("effect/Option").Option<{}>;
|
|
20
|
-
} | {
|
|
21
|
-
readonly example: import("effect/Option").Option<string>;
|
|
22
|
-
readonly ref: string;
|
|
23
|
-
readonly path: import("effect/Option").Option<string>;
|
|
24
|
-
}>;
|
|
25
|
-
}>;
|
|
4
|
+
}, {}, import("@livestore/common").UnknownError | import("./sync-operations.ts").ConnectionError | import("./sync-operations.ts").ExportError | import("./sync-operations.ts").ImportError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/Cause").IllegalArgumentError | import("./commands/new-project.ts").ExampleNotFoundError | import("./commands/new-project.ts").NetworkError | import("./commands/new-project.ts").NoExamplesError | import("effect/Terminal").QuitError | import("effect/PlatformError").PlatformError, import("effect/unstable/http/HttpClient").HttpClient | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | Cli.Prompt.Environment>;
|
|
26
5
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAM3C,eAAO,MAAM,OAAO
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAM3C,eAAO,MAAM,OAAO;;8rBAE0D,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -3,6 +3,6 @@ import { syncCommand } from "./commands/import-export.js";
|
|
|
3
3
|
import { mcpCommand } from "./commands/mcp.js";
|
|
4
4
|
import { createCommand } from "./commands/new-project.js";
|
|
5
5
|
export const command = Cli.Command.make('livestore', {
|
|
6
|
-
verbose: Cli.
|
|
6
|
+
verbose: Cli.Flag.boolean('verbose').pipe(Cli.Flag.withDefault(false)),
|
|
7
7
|
}).pipe(Cli.Command.withSubcommands([mcpCommand, createCommand, syncCommand]));
|
|
8
8
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;IACnD,OAAO,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE;IACnD,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CACvE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-protocol-server.d.ts","sourceRoot":"","sources":["../../../src/commands/__fixtures__/mcp-protocol-server.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { McpServer } from 'effect/unstable/ai';
|
|
2
|
+
import { Effect, Layer } from '@livestore/utils/effect';
|
|
3
|
+
import { PlatformNode } from '@livestore/utils/node';
|
|
4
|
+
import { supportedMcpProtocols } from "../mcp-protocols.js";
|
|
5
|
+
McpServer.layerStdio({
|
|
6
|
+
name: 'livestore-mcp-protocol-test',
|
|
7
|
+
version: '0.0.0',
|
|
8
|
+
protocols: supportedMcpProtocols,
|
|
9
|
+
}).pipe(Layer.provide(PlatformNode.NodeStdio.layer), Layer.launch, Effect.scoped, PlatformNode.NodeRuntime.runMain);
|
|
10
|
+
//# sourceMappingURL=mcp-protocol-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-protocol-server.js","sourceRoot":"","sources":["../../../src/commands/__fixtures__/mcp-protocol-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,SAAS,CAAC,UAAU,CAAC;IACnB,IAAI,EAAE,6BAA6B;IACnC,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,qBAAqB;CACjC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA"}
|
|
@@ -2,33 +2,19 @@ import type { UnknownError } from '@livestore/common';
|
|
|
2
2
|
import { FileSystem, type HttpClient } from '@livestore/utils/effect';
|
|
3
3
|
import { Cli } from '@livestore/utils/node';
|
|
4
4
|
import * as SyncOps from '../sync-operations.ts';
|
|
5
|
-
export declare const exportCommand: Cli.Command.Command<"export",
|
|
5
|
+
export declare const exportCommand: Cli.Command.Command<"export", {
|
|
6
6
|
readonly config: string;
|
|
7
7
|
readonly storeId: string;
|
|
8
8
|
readonly clientId: string;
|
|
9
9
|
readonly output: string;
|
|
10
|
-
}>;
|
|
11
|
-
export declare const importCommand: Cli.Command.Command<"import",
|
|
10
|
+
}, {}, UnknownError | SyncOps.ConnectionError | SyncOps.ExportError, FileSystem.FileSystem | HttpClient.HttpClient>;
|
|
11
|
+
export declare const importCommand: Cli.Command.Command<"import", {
|
|
12
12
|
readonly config: string;
|
|
13
13
|
readonly storeId: string;
|
|
14
14
|
readonly clientId: string;
|
|
15
15
|
readonly force: boolean;
|
|
16
16
|
readonly dryRun: boolean;
|
|
17
17
|
readonly input: string;
|
|
18
|
-
}>;
|
|
19
|
-
export declare const syncCommand: Cli.Command.Command<"sync",
|
|
20
|
-
readonly subcommand: import("effect/Option").Option<{
|
|
21
|
-
readonly config: string;
|
|
22
|
-
readonly storeId: string;
|
|
23
|
-
readonly clientId: string;
|
|
24
|
-
readonly output: string;
|
|
25
|
-
} | {
|
|
26
|
-
readonly config: string;
|
|
27
|
-
readonly storeId: string;
|
|
28
|
-
readonly clientId: string;
|
|
29
|
-
readonly force: boolean;
|
|
30
|
-
readonly dryRun: boolean;
|
|
31
|
-
readonly input: string;
|
|
32
|
-
}>;
|
|
33
|
-
}>;
|
|
18
|
+
}, {}, UnknownError | SyncOps.ConnectionError | SyncOps.ImportError, FileSystem.FileSystem | HttpClient.HttpClient>;
|
|
19
|
+
export declare const syncCommand: Cli.Command.Command<"sync", {}, {}, UnknownError | SyncOps.ConnectionError | SyncOps.ExportError | SyncOps.ImportError, FileSystem.FileSystem | HttpClient.HttpClient>;
|
|
34
20
|
//# sourceMappingURL=import-export.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-export.d.ts","sourceRoot":"","sources":["../../src/commands/import-export.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAmB,UAAU,EAAE,KAAK,UAAU,EAAsB,MAAM,yBAAyB,CAAA;AAC1G,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAoKhD,eAAO,MAAM,aAAa;;;;;
|
|
1
|
+
{"version":3,"file":"import-export.d.ts","sourceRoot":"","sources":["../../src/commands/import-export.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,EAAmB,UAAU,EAAE,KAAK,UAAU,EAAsB,MAAM,yBAAyB,CAAA;AAC1G,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAoKhD,eAAO,MAAM,aAAa;;;;;mHA6CzB,CAAA;AAED,eAAO,MAAM,aAAa;;;;;;;mHA4DzB,CAAA;AAED,eAAO,MAAM,WAAW,wKAGvB,CAAA"}
|
|
@@ -2,8 +2,8 @@ import path from 'node:path';
|
|
|
2
2
|
import { Console, Effect, FileSystem, Schema } from '@livestore/utils/effect';
|
|
3
3
|
import { Cli } from '@livestore/utils/node';
|
|
4
4
|
import * as SyncOps from "../sync-operations.js";
|
|
5
|
-
const jsonStringifyPretty =
|
|
6
|
-
const jsonParse = Schema.decodeUnknownSync(Schema.
|
|
5
|
+
const jsonStringifyPretty = (value) => JSON.stringify(value, null, 2);
|
|
6
|
+
const jsonParse = Schema.decodeUnknownSync(Schema.fromJsonString(Schema.Unknown));
|
|
7
7
|
const LARGE_EVENT_WARNING_THRESHOLD = 100_000;
|
|
8
8
|
/**
|
|
9
9
|
* Export events from the sync backend to a JSON file.
|
|
@@ -88,10 +88,10 @@ const importEvents = ({ configPath, storeId, clientId, inputPath, force, dryRun,
|
|
|
88
88
|
yield* Console.log(`Successfully imported ${result.eventCount} events`);
|
|
89
89
|
}).pipe(Effect.withSpan('cli:import'));
|
|
90
90
|
export const exportCommand = Cli.Command.make('export', {
|
|
91
|
-
config: Cli.
|
|
92
|
-
storeId: Cli.
|
|
93
|
-
clientId: Cli.
|
|
94
|
-
output: Cli.
|
|
91
|
+
config: Cli.Flag.string('config').pipe(Cli.Flag.withAlias('c'), Cli.Flag.withDescription('Path to the config module that exports schema and syncBackend')),
|
|
92
|
+
storeId: Cli.Flag.string('store-id').pipe(Cli.Flag.withAlias('i'), Cli.Flag.withDescription('Store identifier')),
|
|
93
|
+
clientId: Cli.Flag.string('client-id').pipe(Cli.Flag.withDefault('cli-export'), Cli.Flag.withDescription('Client identifier for the sync connection')),
|
|
94
|
+
output: Cli.Argument.string('file').pipe(Cli.Argument.withDescription('Output JSON file path')),
|
|
95
95
|
}, Effect.fn(function* ({ config, storeId, clientId, output, }) {
|
|
96
96
|
yield* Console.log(`Exporting events from LiveStore...`);
|
|
97
97
|
yield* Console.log(` Config: ${config}`);
|
|
@@ -106,12 +106,12 @@ export const exportCommand = Cli.Command.make('export', {
|
|
|
106
106
|
}).pipe(Effect.scoped);
|
|
107
107
|
})).pipe(Cli.Command.withDescription('Export all events from the sync backend to a JSON file. Useful for backup and migration.'));
|
|
108
108
|
export const importCommand = Cli.Command.make('import', {
|
|
109
|
-
config: Cli.
|
|
110
|
-
storeId: Cli.
|
|
111
|
-
clientId: Cli.
|
|
112
|
-
force: Cli.
|
|
113
|
-
dryRun: Cli.
|
|
114
|
-
input: Cli.
|
|
109
|
+
config: Cli.Flag.string('config').pipe(Cli.Flag.withAlias('c'), Cli.Flag.withDescription('Path to the config module that exports schema and syncBackend')),
|
|
110
|
+
storeId: Cli.Flag.string('store-id').pipe(Cli.Flag.withAlias('i'), Cli.Flag.withDescription('Store identifier')),
|
|
111
|
+
clientId: Cli.Flag.string('client-id').pipe(Cli.Flag.withDefault('cli-import'), Cli.Flag.withDescription('Client identifier for the sync connection')),
|
|
112
|
+
force: Cli.Flag.boolean('force').pipe(Cli.Flag.withAlias('f'), Cli.Flag.withDefault(false), Cli.Flag.withDescription('Force import even if store ID does not match')),
|
|
113
|
+
dryRun: Cli.Flag.boolean('dry-run').pipe(Cli.Flag.withDefault(false), Cli.Flag.withDescription('Validate the import file without actually importing')),
|
|
114
|
+
input: Cli.Argument.string('file').pipe(Cli.Argument.withDescription('Input JSON file to import')),
|
|
115
115
|
}, Effect.fn(function* ({ config, storeId, clientId, force, dryRun, input, }) {
|
|
116
116
|
yield* Console.log(`Importing events to LiveStore...`);
|
|
117
117
|
yield* Console.log(` Config: ${config}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-export.js","sourceRoot":"","sources":["../../src/commands/import-export.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAmB,MAAM,EAAc,MAAM,yBAAyB,CAAA;AAC1G,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAA;AAE3C,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAA;AAEhD,MAAM,mBAAmB,GAAG,
|
|
1
|
+
{"version":3,"file":"import-export.js","sourceRoot":"","sources":["../../src/commands/import-export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { AiError,
|
|
1
|
+
import { AiError, Tool } from 'effect/unstable/ai';
|
|
2
|
+
import { Effect, Schema } from '@livestore/utils/effect';
|
|
2
3
|
export declare const coachTool: Tool.Tool<"livestore_coach", {
|
|
3
4
|
readonly parameters: Schema.Struct<{
|
|
4
|
-
code: Schema.
|
|
5
|
-
codeType: Schema.optional<Schema.
|
|
5
|
+
readonly code: Schema.String;
|
|
6
|
+
readonly codeType: Schema.optional<Schema.String>;
|
|
6
7
|
}>;
|
|
7
8
|
readonly success: Schema.Struct<{
|
|
8
|
-
feedback: Schema.
|
|
9
|
-
score: Schema.optional<Schema.
|
|
10
|
-
suggestions: Schema
|
|
9
|
+
readonly feedback: Schema.String;
|
|
10
|
+
readonly score: Schema.optional<Schema.Number>;
|
|
11
|
+
readonly suggestions: Schema.$Array<Schema.String>;
|
|
11
12
|
}>;
|
|
12
|
-
readonly failure:
|
|
13
|
+
readonly failure: typeof AiError.AiError;
|
|
13
14
|
readonly failureMode: "error";
|
|
14
15
|
}, never>;
|
|
15
16
|
type CoachToolHandlerInput = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-coach.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-coach.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-coach.d.ts","sourceRoot":"","sources":["../../src/commands/mcp-coach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAyB,IAAI,EAAE,MAAM,oBAAoB,CAAA;AAGzE,OAAO,EAAU,MAAM,EAA0B,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAGxF,eAAO,MAAM,SAAS;;;;;;;;;;;;SA+BpB,CAAA;AAQF,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAC/B,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,OAAO,CAyE3G,CAAA"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { LanguageModel } from '
|
|
1
|
+
import { AiError, LanguageModel, Prompt, Tool } from 'effect/unstable/ai';
|
|
2
2
|
import { OpenAiClient, OpenAiLanguageModel } from '@effect/ai-openai';
|
|
3
|
-
import {
|
|
3
|
+
import { Config, Effect, FetchHttpClient, Layer, Schema } from '@livestore/utils/effect';
|
|
4
4
|
// Define the coach tool that analyzes LiveStore usage
|
|
5
5
|
export const coachTool = Tool.make('livestore_coach', {
|
|
6
6
|
description: 'Analyze LiveStore code (schemas, queries, mutations, etc.) and provide AI-powered feedback on best practices, performance, and improvements.',
|
|
7
|
-
parameters: {
|
|
8
|
-
code: Schema.String.
|
|
7
|
+
parameters: Schema.Struct({
|
|
8
|
+
code: Schema.String.annotate({
|
|
9
9
|
description: 'The LiveStore code to analyze (TypeScript/JavaScript)',
|
|
10
10
|
}),
|
|
11
|
-
codeType: Schema.optional(Schema.String.
|
|
11
|
+
codeType: Schema.optional(Schema.String.annotate({
|
|
12
12
|
description: "Type of code being analyzed: 'schema', 'query', 'mutation', 'component', or 'general'",
|
|
13
13
|
})),
|
|
14
|
-
},
|
|
14
|
+
}),
|
|
15
15
|
success: Schema.Struct({
|
|
16
|
-
feedback: Schema.String.
|
|
16
|
+
feedback: Schema.String.annotate({
|
|
17
17
|
description: 'AI-generated feedback and recommendations for the code',
|
|
18
18
|
}),
|
|
19
|
-
score: Schema.optional(Schema.Number.
|
|
19
|
+
score: Schema.optional(Schema.Number.annotate({
|
|
20
20
|
description: 'Code quality score from 1-10 (optional)',
|
|
21
21
|
})),
|
|
22
|
-
suggestions: Schema.Array(Schema.String.
|
|
22
|
+
suggestions: Schema.Array(Schema.String.annotate({
|
|
23
23
|
description: 'Specific actionable suggestions for improvement',
|
|
24
|
-
})).
|
|
24
|
+
})).annotate({
|
|
25
25
|
description: 'List of specific improvement suggestions',
|
|
26
26
|
}),
|
|
27
27
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-coach.js","sourceRoot":"","sources":["../../src/commands/mcp-coach.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mcp-coach.js","sourceRoot":"","sources":["../../src/commands/mcp-coach.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { McpProtocol } from 'effect/unstable/ai';
|
|
2
|
+
/**
|
|
3
|
+
* MCP stdio selects an exact offered version when available and otherwise
|
|
4
|
+
* falls back to the first adapter, so keep every supported adapter newest-first.
|
|
5
|
+
*/
|
|
6
|
+
export declare const supportedMcpProtocols: readonly [McpProtocol.ProtocolAdapter<"2025-11-25">, McpProtocol.ProtocolAdapter<"2025-06-18">, McpProtocol.ProtocolAdapter<"2025-03-26">, McpProtocol.ProtocolAdapter<"2024-11-05">];
|
|
7
|
+
//# sourceMappingURL=mcp-protocols.d.ts.map
|