@useatlas/create 0.0.1 → 0.0.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/package.json +1 -1
- package/templates/docker/bin/__tests__/plugin-cli.test.ts +2 -2
- package/templates/docker/bin/atlas.ts +12 -12
- package/templates/docker/docs/deploy.md +2 -2
- package/templates/docker/src/lib/config.ts +1 -1
- package/templates/docker/src/lib/plugins/migrate.ts +1 -1
- package/templates/docker/src/lib/plugins/registry.ts +2 -2
- package/templates/docker/src/lib/tools/__tests__/explore-sdk-compat.test.ts +1 -1
- package/templates/docker/src/lib/tools/explore.ts +1 -1
- package/templates/nextjs-standalone/bin/__tests__/plugin-cli.test.ts +2 -2
- package/templates/nextjs-standalone/bin/atlas.ts +12 -12
- package/templates/nextjs-standalone/docs/deploy.md +2 -2
- package/templates/nextjs-standalone/src/lib/config.ts +1 -1
- package/templates/nextjs-standalone/src/lib/plugins/migrate.ts +1 -1
- package/templates/nextjs-standalone/src/lib/plugins/registry.ts +2 -2
- package/templates/nextjs-standalone/src/lib/tools/__tests__/explore-sdk-compat.test.ts +1 -1
- package/templates/nextjs-standalone/src/lib/tools/explore.ts +1 -1
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
describe("pluginTemplate", () => {
|
|
18
18
|
test("generates datasource template with definePlugin", () => {
|
|
19
19
|
const result = pluginTemplate("my-source", "datasource");
|
|
20
|
-
expect(result).toContain('import { definePlugin } from "@
|
|
20
|
+
expect(result).toContain('import { definePlugin } from "@useatlas/plugin-sdk"');
|
|
21
21
|
expect(result).toContain('id: "my-source"');
|
|
22
22
|
expect(result).toContain('type: "datasource"');
|
|
23
23
|
expect(result).toContain("satisfies AtlasDatasourcePlugin");
|
|
@@ -70,7 +70,7 @@ describe("pluginPackageJsonTemplate", () => {
|
|
|
70
70
|
const result = pluginPackageJsonTemplate("my-plugin");
|
|
71
71
|
const parsed = JSON.parse(result);
|
|
72
72
|
expect(parsed.name).toBe("atlas-plugin-my-plugin");
|
|
73
|
-
expect(parsed.peerDependencies["@
|
|
73
|
+
expect(parsed.peerDependencies["@useatlas/plugin-sdk"]).toBe("workspace:*");
|
|
74
74
|
expect(parsed.main).toBe("src/index.ts");
|
|
75
75
|
});
|
|
76
76
|
});
|
|
@@ -3225,8 +3225,8 @@ export function pluginTemplate(name: string, pluginType: ScaffoldPluginType): st
|
|
|
3225
3225
|
|
|
3226
3226
|
switch (pluginType) {
|
|
3227
3227
|
case "datasource":
|
|
3228
|
-
return `import { definePlugin } from "@
|
|
3229
|
-
import type { AtlasDatasourcePlugin, PluginDBConnection } from "@
|
|
3228
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3229
|
+
import type { AtlasDatasourcePlugin, PluginDBConnection } from "@useatlas/plugin-sdk";
|
|
3230
3230
|
|
|
3231
3231
|
export default definePlugin({
|
|
3232
3232
|
id: "${id}",
|
|
@@ -3254,8 +3254,8 @@ export default definePlugin({
|
|
|
3254
3254
|
`;
|
|
3255
3255
|
|
|
3256
3256
|
case "context":
|
|
3257
|
-
return `import { definePlugin } from "@
|
|
3258
|
-
import type { AtlasContextPlugin } from "@
|
|
3257
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3258
|
+
import type { AtlasContextPlugin } from "@useatlas/plugin-sdk";
|
|
3259
3259
|
|
|
3260
3260
|
export default definePlugin({
|
|
3261
3261
|
id: "${id}",
|
|
@@ -3284,8 +3284,8 @@ export default definePlugin({
|
|
|
3284
3284
|
`;
|
|
3285
3285
|
|
|
3286
3286
|
case "interaction":
|
|
3287
|
-
return `import { definePlugin } from "@
|
|
3288
|
-
import type { AtlasInteractionPlugin } from "@
|
|
3287
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3288
|
+
import type { AtlasInteractionPlugin } from "@useatlas/plugin-sdk";
|
|
3289
3289
|
import type { Hono } from "hono";
|
|
3290
3290
|
|
|
3291
3291
|
export default definePlugin({
|
|
@@ -3310,8 +3310,8 @@ export default definePlugin({
|
|
|
3310
3310
|
`;
|
|
3311
3311
|
|
|
3312
3312
|
case "action":
|
|
3313
|
-
return `import { definePlugin } from "@
|
|
3314
|
-
import type { AtlasActionPlugin } from "@
|
|
3313
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3314
|
+
import type { AtlasActionPlugin } from "@useatlas/plugin-sdk";
|
|
3315
3315
|
import { tool } from "ai";
|
|
3316
3316
|
import { z } from "zod";
|
|
3317
3317
|
|
|
@@ -3353,8 +3353,8 @@ export default definePlugin({
|
|
|
3353
3353
|
`;
|
|
3354
3354
|
|
|
3355
3355
|
case "sandbox":
|
|
3356
|
-
return `import { definePlugin } from "@
|
|
3357
|
-
import type { AtlasSandboxPlugin, PluginExploreBackend, PluginExecResult } from "@
|
|
3356
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3357
|
+
import type { AtlasSandboxPlugin, PluginExploreBackend, PluginExecResult } from "@useatlas/plugin-sdk";
|
|
3358
3358
|
|
|
3359
3359
|
export default definePlugin({
|
|
3360
3360
|
id: "${id}",
|
|
@@ -3426,10 +3426,10 @@ export function pluginPackageJsonTemplate(name: string): string {
|
|
|
3426
3426
|
test: "bun test src/index.test.ts",
|
|
3427
3427
|
},
|
|
3428
3428
|
peerDependencies: {
|
|
3429
|
-
"@
|
|
3429
|
+
"@useatlas/plugin-sdk": "workspace:*",
|
|
3430
3430
|
},
|
|
3431
3431
|
devDependencies: {
|
|
3432
|
-
"@
|
|
3432
|
+
"@useatlas/plugin-sdk": "workspace:*",
|
|
3433
3433
|
},
|
|
3434
3434
|
},
|
|
3435
3435
|
null,
|
|
@@ -28,7 +28,7 @@ Go from zero to production with managed Postgres included.
|
|
|
28
28
|
1. **Scaffold your project:**
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
bun create
|
|
31
|
+
bun create @useatlas my-app
|
|
32
32
|
cd my-app
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -304,7 +304,7 @@ Atlas provides a Next.js standalone example that embeds the Hono API via a catch
|
|
|
304
304
|
### Scaffold a new project
|
|
305
305
|
|
|
306
306
|
```bash
|
|
307
|
-
bun create
|
|
307
|
+
bun create @useatlas my-app --platform vercel
|
|
308
308
|
cd my-app
|
|
309
309
|
```
|
|
310
310
|
|
|
@@ -167,7 +167,7 @@ const AtlasConfigSchema = z.object({
|
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
169
|
* Plugin instances to register at boot. Each element should satisfy
|
|
170
|
-
* the `AtlasPlugin` interface from `@
|
|
170
|
+
* the `AtlasPlugin` interface from `@useatlas/plugin-sdk`.
|
|
171
171
|
*
|
|
172
172
|
* Zod validates structural shape (id, type, version) at config load
|
|
173
173
|
* time. Plugin-level configSchema validation happens at factory call
|
|
@@ -14,7 +14,7 @@ import { createLogger } from "@atlas/api/lib/logger";
|
|
|
14
14
|
const log = createLogger("plugins:migrate");
|
|
15
15
|
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
|
-
// Types (structural — no import from @
|
|
17
|
+
// Types (structural — no import from @useatlas/plugin-sdk)
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
19
|
|
|
20
20
|
interface FieldDef {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Manages plugin lifecycle: registration → initialization → health checks → teardown.
|
|
5
5
|
* Uses a structural `PluginLike` interface defined locally so `@atlas/api` does not
|
|
6
|
-
* depend on `@
|
|
6
|
+
* depend on `@useatlas/plugin-sdk`.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { createLogger } from "@atlas/api/lib/logger";
|
|
@@ -11,7 +11,7 @@ import { createLogger } from "@atlas/api/lib/logger";
|
|
|
11
11
|
const log = createLogger("plugins");
|
|
12
12
|
|
|
13
13
|
// ---------------------------------------------------------------------------
|
|
14
|
-
// Structural interfaces (no import from @
|
|
14
|
+
// Structural interfaces (no import from @useatlas/plugin-sdk)
|
|
15
15
|
// ---------------------------------------------------------------------------
|
|
16
16
|
|
|
17
17
|
export interface PluginHealthResult {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* assertions will fail at compile time.
|
|
8
8
|
*
|
|
9
9
|
* Both types are defined in this file to avoid a cross-package import
|
|
10
|
-
* (@atlas/api does not depend on @
|
|
10
|
+
* (@atlas/api does not depend on @useatlas/plugin-sdk by design).
|
|
11
11
|
*/
|
|
12
12
|
import { describe, test, expect } from "bun:test";
|
|
13
13
|
import type { ExecResult, ExploreBackend } from "../explore";
|
|
@@ -19,7 +19,7 @@ import * as path from "path";
|
|
|
19
19
|
import { createLogger } from "@atlas/api/lib/logger";
|
|
20
20
|
import { withSpan } from "@atlas/api/lib/tracing";
|
|
21
21
|
|
|
22
|
-
/** Must match SANDBOX_DEFAULT_PRIORITY in @
|
|
22
|
+
/** Must match SANDBOX_DEFAULT_PRIORITY in @useatlas/plugin-sdk/types. */
|
|
23
23
|
const SANDBOX_DEFAULT_PRIORITY = 60;
|
|
24
24
|
|
|
25
25
|
const log = createLogger("explore");
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
describe("pluginTemplate", () => {
|
|
18
18
|
test("generates datasource template with definePlugin", () => {
|
|
19
19
|
const result = pluginTemplate("my-source", "datasource");
|
|
20
|
-
expect(result).toContain('import { definePlugin } from "@
|
|
20
|
+
expect(result).toContain('import { definePlugin } from "@useatlas/plugin-sdk"');
|
|
21
21
|
expect(result).toContain('id: "my-source"');
|
|
22
22
|
expect(result).toContain('type: "datasource"');
|
|
23
23
|
expect(result).toContain("satisfies AtlasDatasourcePlugin");
|
|
@@ -70,7 +70,7 @@ describe("pluginPackageJsonTemplate", () => {
|
|
|
70
70
|
const result = pluginPackageJsonTemplate("my-plugin");
|
|
71
71
|
const parsed = JSON.parse(result);
|
|
72
72
|
expect(parsed.name).toBe("atlas-plugin-my-plugin");
|
|
73
|
-
expect(parsed.peerDependencies["@
|
|
73
|
+
expect(parsed.peerDependencies["@useatlas/plugin-sdk"]).toBe("workspace:*");
|
|
74
74
|
expect(parsed.main).toBe("src/index.ts");
|
|
75
75
|
});
|
|
76
76
|
});
|
|
@@ -3225,8 +3225,8 @@ export function pluginTemplate(name: string, pluginType: ScaffoldPluginType): st
|
|
|
3225
3225
|
|
|
3226
3226
|
switch (pluginType) {
|
|
3227
3227
|
case "datasource":
|
|
3228
|
-
return `import { definePlugin } from "@
|
|
3229
|
-
import type { AtlasDatasourcePlugin, PluginDBConnection } from "@
|
|
3228
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3229
|
+
import type { AtlasDatasourcePlugin, PluginDBConnection } from "@useatlas/plugin-sdk";
|
|
3230
3230
|
|
|
3231
3231
|
export default definePlugin({
|
|
3232
3232
|
id: "${id}",
|
|
@@ -3254,8 +3254,8 @@ export default definePlugin({
|
|
|
3254
3254
|
`;
|
|
3255
3255
|
|
|
3256
3256
|
case "context":
|
|
3257
|
-
return `import { definePlugin } from "@
|
|
3258
|
-
import type { AtlasContextPlugin } from "@
|
|
3257
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3258
|
+
import type { AtlasContextPlugin } from "@useatlas/plugin-sdk";
|
|
3259
3259
|
|
|
3260
3260
|
export default definePlugin({
|
|
3261
3261
|
id: "${id}",
|
|
@@ -3284,8 +3284,8 @@ export default definePlugin({
|
|
|
3284
3284
|
`;
|
|
3285
3285
|
|
|
3286
3286
|
case "interaction":
|
|
3287
|
-
return `import { definePlugin } from "@
|
|
3288
|
-
import type { AtlasInteractionPlugin } from "@
|
|
3287
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3288
|
+
import type { AtlasInteractionPlugin } from "@useatlas/plugin-sdk";
|
|
3289
3289
|
import type { Hono } from "hono";
|
|
3290
3290
|
|
|
3291
3291
|
export default definePlugin({
|
|
@@ -3310,8 +3310,8 @@ export default definePlugin({
|
|
|
3310
3310
|
`;
|
|
3311
3311
|
|
|
3312
3312
|
case "action":
|
|
3313
|
-
return `import { definePlugin } from "@
|
|
3314
|
-
import type { AtlasActionPlugin } from "@
|
|
3313
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3314
|
+
import type { AtlasActionPlugin } from "@useatlas/plugin-sdk";
|
|
3315
3315
|
import { tool } from "ai";
|
|
3316
3316
|
import { z } from "zod";
|
|
3317
3317
|
|
|
@@ -3353,8 +3353,8 @@ export default definePlugin({
|
|
|
3353
3353
|
`;
|
|
3354
3354
|
|
|
3355
3355
|
case "sandbox":
|
|
3356
|
-
return `import { definePlugin } from "@
|
|
3357
|
-
import type { AtlasSandboxPlugin, PluginExploreBackend, PluginExecResult } from "@
|
|
3356
|
+
return `import { definePlugin } from "@useatlas/plugin-sdk";
|
|
3357
|
+
import type { AtlasSandboxPlugin, PluginExploreBackend, PluginExecResult } from "@useatlas/plugin-sdk";
|
|
3358
3358
|
|
|
3359
3359
|
export default definePlugin({
|
|
3360
3360
|
id: "${id}",
|
|
@@ -3426,10 +3426,10 @@ export function pluginPackageJsonTemplate(name: string): string {
|
|
|
3426
3426
|
test: "bun test src/index.test.ts",
|
|
3427
3427
|
},
|
|
3428
3428
|
peerDependencies: {
|
|
3429
|
-
"@
|
|
3429
|
+
"@useatlas/plugin-sdk": "workspace:*",
|
|
3430
3430
|
},
|
|
3431
3431
|
devDependencies: {
|
|
3432
|
-
"@
|
|
3432
|
+
"@useatlas/plugin-sdk": "workspace:*",
|
|
3433
3433
|
},
|
|
3434
3434
|
},
|
|
3435
3435
|
null,
|
|
@@ -28,7 +28,7 @@ Go from zero to production with managed Postgres included.
|
|
|
28
28
|
1. **Scaffold your project:**
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
bun create
|
|
31
|
+
bun create @useatlas my-app
|
|
32
32
|
cd my-app
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -304,7 +304,7 @@ Atlas provides a Next.js standalone example that embeds the Hono API via a catch
|
|
|
304
304
|
### Scaffold a new project
|
|
305
305
|
|
|
306
306
|
```bash
|
|
307
|
-
bun create
|
|
307
|
+
bun create @useatlas my-app --platform vercel
|
|
308
308
|
cd my-app
|
|
309
309
|
```
|
|
310
310
|
|
|
@@ -167,7 +167,7 @@ const AtlasConfigSchema = z.object({
|
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
169
|
* Plugin instances to register at boot. Each element should satisfy
|
|
170
|
-
* the `AtlasPlugin` interface from `@
|
|
170
|
+
* the `AtlasPlugin` interface from `@useatlas/plugin-sdk`.
|
|
171
171
|
*
|
|
172
172
|
* Zod validates structural shape (id, type, version) at config load
|
|
173
173
|
* time. Plugin-level configSchema validation happens at factory call
|
|
@@ -14,7 +14,7 @@ import { createLogger } from "@atlas/api/lib/logger";
|
|
|
14
14
|
const log = createLogger("plugins:migrate");
|
|
15
15
|
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
|
-
// Types (structural — no import from @
|
|
17
|
+
// Types (structural — no import from @useatlas/plugin-sdk)
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
19
|
|
|
20
20
|
interface FieldDef {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Manages plugin lifecycle: registration → initialization → health checks → teardown.
|
|
5
5
|
* Uses a structural `PluginLike` interface defined locally so `@atlas/api` does not
|
|
6
|
-
* depend on `@
|
|
6
|
+
* depend on `@useatlas/plugin-sdk`.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { createLogger } from "@atlas/api/lib/logger";
|
|
@@ -11,7 +11,7 @@ import { createLogger } from "@atlas/api/lib/logger";
|
|
|
11
11
|
const log = createLogger("plugins");
|
|
12
12
|
|
|
13
13
|
// ---------------------------------------------------------------------------
|
|
14
|
-
// Structural interfaces (no import from @
|
|
14
|
+
// Structural interfaces (no import from @useatlas/plugin-sdk)
|
|
15
15
|
// ---------------------------------------------------------------------------
|
|
16
16
|
|
|
17
17
|
export interface PluginHealthResult {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* assertions will fail at compile time.
|
|
8
8
|
*
|
|
9
9
|
* Both types are defined in this file to avoid a cross-package import
|
|
10
|
-
* (@atlas/api does not depend on @
|
|
10
|
+
* (@atlas/api does not depend on @useatlas/plugin-sdk by design).
|
|
11
11
|
*/
|
|
12
12
|
import { describe, test, expect } from "bun:test";
|
|
13
13
|
import type { ExecResult, ExploreBackend } from "../explore";
|
|
@@ -19,7 +19,7 @@ import * as path from "path";
|
|
|
19
19
|
import { createLogger } from "@atlas/api/lib/logger";
|
|
20
20
|
import { withSpan } from "@atlas/api/lib/tracing";
|
|
21
21
|
|
|
22
|
-
/** Must match SANDBOX_DEFAULT_PRIORITY in @
|
|
22
|
+
/** Must match SANDBOX_DEFAULT_PRIORITY in @useatlas/plugin-sdk/types. */
|
|
23
23
|
const SANDBOX_DEFAULT_PRIORITY = 60;
|
|
24
24
|
|
|
25
25
|
const log = createLogger("explore");
|