@plumbus/core 0.1.4 → 0.2.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.
Files changed (52) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ai/ai-service.d.ts.map +1 -1
  3. package/dist/ai/ai-service.js +0 -1
  4. package/dist/ai/ai-service.js.map +1 -1
  5. package/dist/cli/__tests__/create.test.js +105 -0
  6. package/dist/cli/__tests__/create.test.js.map +1 -1
  7. package/dist/cli/__tests__/generate.test.js +85 -1
  8. package/dist/cli/__tests__/generate.test.js.map +1 -1
  9. package/dist/cli/__tests__/init.test.js +32 -0
  10. package/dist/cli/__tests__/init.test.js.map +1 -1
  11. package/dist/cli/__tests__/ui.test.js +8 -8
  12. package/dist/cli/__tests__/ui.test.js.map +1 -1
  13. package/dist/cli/__tests__/utils.test.js +158 -1
  14. package/dist/cli/__tests__/utils.test.js.map +1 -1
  15. package/dist/cli/commands/__tests__/commands.test.js +4 -4
  16. package/dist/cli/commands/__tests__/commands.test.js.map +1 -1
  17. package/dist/cli/commands/create.d.ts +1 -0
  18. package/dist/cli/commands/create.d.ts.map +1 -1
  19. package/dist/cli/commands/create.js +210 -1
  20. package/dist/cli/commands/create.js.map +1 -1
  21. package/dist/cli/commands/generate.d.ts +12 -1
  22. package/dist/cli/commands/generate.d.ts.map +1 -1
  23. package/dist/cli/commands/generate.js +103 -3
  24. package/dist/cli/commands/generate.js.map +1 -1
  25. package/dist/cli/commands/init.d.ts +4 -4
  26. package/dist/cli/commands/init.d.ts.map +1 -1
  27. package/dist/cli/commands/init.js +39 -31
  28. package/dist/cli/commands/init.js.map +1 -1
  29. package/dist/cli/commands/ui.d.ts.map +1 -1
  30. package/dist/cli/commands/ui.js +37 -10
  31. package/dist/cli/commands/ui.js.map +1 -1
  32. package/dist/cli/utils.d.ts +28 -0
  33. package/dist/cli/utils.d.ts.map +1 -1
  34. package/dist/cli/utils.js +134 -0
  35. package/dist/cli/utils.js.map +1 -1
  36. package/dist/types/__tests__/registry.test.d.ts +2 -0
  37. package/dist/types/__tests__/registry.test.d.ts.map +1 -0
  38. package/dist/types/__tests__/registry.test.js +34 -0
  39. package/dist/types/__tests__/registry.test.js.map +1 -0
  40. package/dist/types/context.d.ts +4 -5
  41. package/dist/types/context.d.ts.map +1 -1
  42. package/dist/types/flow.d.ts +5 -4
  43. package/dist/types/flow.d.ts.map +1 -1
  44. package/dist/types/index.d.ts +1 -0
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/dist/types/registry.d.ts +16 -0
  47. package/dist/types/registry.d.ts.map +1 -0
  48. package/dist/types/registry.js +17 -0
  49. package/dist/types/registry.js.map +1 -0
  50. package/instructions/cli.md +32 -1
  51. package/instructions/framework.md +21 -0
  52. package/package.json +1 -1
@@ -39,4 +39,32 @@ export declare function commandRequiresProject(commandName: string): boolean;
39
39
  * Prints a clear error and calls `process.exit(1)` when not.
40
40
  */
41
41
  export declare function assertInsidePlumbusProject(from?: string): void;
42
+ export interface MonorepoLayout {
43
+ isMonorepo: boolean;
44
+ backendDir?: string;
45
+ frontendDir?: string;
46
+ sharedTypesDir?: string;
47
+ }
48
+ /**
49
+ * Detect whether the current project is a pnpm-workspace monorepo scaffolded
50
+ * by `plumbus create --monorepo`. Returns directory paths for each package.
51
+ */
52
+ export declare function detectMonorepoLayout(projectRoot?: string): MonorepoLayout;
53
+ export interface MigrationResult {
54
+ movedFiles: string[];
55
+ rewrittenImports: string[];
56
+ deletedPaths: string[];
57
+ }
58
+ /**
59
+ * Detect and auto-migrate legacy UI generation artifacts inside `frontendDir`.
60
+ *
61
+ * Migrations performed:
62
+ * 1. Move `generated/*.ts` → `lib/` + `hooks/` (delete `generated/` when empty)
63
+ * 2. Rename `middleware.ts` → `proxy.ts` and fix the exported function name
64
+ * 3. Delete `app/api/plumbus/[...path]/route.ts` (API proxy removed)
65
+ * 4. Rewrite `@/generated/` imports in all `.ts`/`.tsx` files
66
+ *
67
+ * Returns a summary of what was changed. No-op when no legacy artifacts exist.
68
+ */
69
+ export declare function migrateUiLegacyStructure(frontendDir: string): MigrationResult;
42
70
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAMA,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,0CAA0C;AAC1C,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,oCAAoC;AACpC,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAGzD;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAM/E;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED,4BAA4B;AAC5B,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,0BAA0B;AAC1B,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,yBAAyB;AACzB,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAAsB,GAAG,MAAM,GAAG,SAAS,CAuBvF;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ9D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAMA,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,0CAA0C;AAC1C,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,oCAAoC;AACpC,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAGzD;AAED,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAMjE;AAED,qCAAqC;AACrC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,oCAAoC;AACpC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAM/E;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEzC;AAED,4BAA4B;AAC5B,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED,0BAA0B;AAC1B,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvC;AAED,yBAAyB;AACzB,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAAsB,GAAG,MAAM,GAAG,SAAS,CAuBvF;AAKD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ9D;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,GAAE,MAAsB,GAAG,cAAc,CAqBxF;AAID,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAsBD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,CA6D7E"}
package/dist/cli/utils.js CHANGED
@@ -113,4 +113,138 @@ export function assertInsidePlumbusProject(from) {
113
113
  process.exit(1);
114
114
  }
115
115
  }
116
+ /**
117
+ * Detect whether the current project is a pnpm-workspace monorepo scaffolded
118
+ * by `plumbus create --monorepo`. Returns directory paths for each package.
119
+ */
120
+ export function detectMonorepoLayout(projectRoot = process.cwd()) {
121
+ const workspaceYaml = path.join(projectRoot, 'pnpm-workspace.yaml');
122
+ if (!fs.existsSync(workspaceYaml)) {
123
+ return { isMonorepo: false };
124
+ }
125
+ const backendDir = path.join(projectRoot, 'backend');
126
+ const frontendDir = path.join(projectRoot, 'frontend');
127
+ const sharedTypesDir = path.join(projectRoot, 'libs', 'shared', 'types');
128
+ // Verify it's actually a Plumbus monorepo (backend has the app/ dir structure)
129
+ if (!fs.existsSync(path.join(backendDir, 'package.json'))) {
130
+ return { isMonorepo: false };
131
+ }
132
+ return {
133
+ isMonorepo: true,
134
+ backendDir,
135
+ frontendDir,
136
+ sharedTypesDir,
137
+ };
138
+ }
139
+ /** File-path mapping from legacy `generated/` layout to current `lib/` + `hooks/` layout. */
140
+ const LEGACY_FILE_MOVES = {
141
+ 'generated/client.ts': 'lib/client.ts',
142
+ 'generated/hooks.ts': 'hooks/hooks.ts',
143
+ 'generated/auth.ts': 'lib/auth.ts',
144
+ 'generated/form-hints.ts': 'lib/form-hints.ts',
145
+ };
146
+ /** Import path rewrites from legacy `@/generated/` to current paths. */
147
+ const IMPORT_REWRITES = {
148
+ '@/generated/client': '@/lib/client',
149
+ '@/generated/hooks': '@/hooks/hooks',
150
+ '@/generated/auth': '@/lib/auth',
151
+ '@/generated/form-hints': '@/lib/form-hints',
152
+ '../generated/client': '../lib/client',
153
+ '../generated/hooks': '../hooks/hooks',
154
+ '../generated/auth': '../lib/auth',
155
+ '../generated/form-hints': '../lib/form-hints',
156
+ };
157
+ /**
158
+ * Detect and auto-migrate legacy UI generation artifacts inside `frontendDir`.
159
+ *
160
+ * Migrations performed:
161
+ * 1. Move `generated/*.ts` → `lib/` + `hooks/` (delete `generated/` when empty)
162
+ * 2. Rename `middleware.ts` → `proxy.ts` and fix the exported function name
163
+ * 3. Delete `app/api/plumbus/[...path]/route.ts` (API proxy removed)
164
+ * 4. Rewrite `@/generated/` imports in all `.ts`/`.tsx` files
165
+ *
166
+ * Returns a summary of what was changed. No-op when no legacy artifacts exist.
167
+ */
168
+ export function migrateUiLegacyStructure(frontendDir) {
169
+ const result = { movedFiles: [], rewrittenImports: [], deletedPaths: [] };
170
+ if (!fs.existsSync(frontendDir))
171
+ return result;
172
+ // 1. Move generated/ files
173
+ for (const [oldRel, newRel] of Object.entries(LEGACY_FILE_MOVES)) {
174
+ const oldPath = path.join(frontendDir, oldRel);
175
+ if (fs.existsSync(oldPath)) {
176
+ const newPath = path.join(frontendDir, newRel);
177
+ const newDir = path.dirname(newPath);
178
+ if (!fs.existsSync(newDir)) {
179
+ fs.mkdirSync(newDir, { recursive: true });
180
+ }
181
+ fs.renameSync(oldPath, newPath);
182
+ result.movedFiles.push(`${oldRel} → ${newRel}`);
183
+ }
184
+ }
185
+ // Remove generated/ if now empty
186
+ const generatedDir = path.join(frontendDir, 'generated');
187
+ if (fs.existsSync(generatedDir)) {
188
+ const remaining = fs.readdirSync(generatedDir);
189
+ if (remaining.length === 0) {
190
+ fs.rmdirSync(generatedDir);
191
+ result.deletedPaths.push('generated/');
192
+ }
193
+ }
194
+ // 2. Rename middleware.ts → proxy.ts
195
+ const middlewarePath = path.join(frontendDir, 'middleware.ts');
196
+ if (fs.existsSync(middlewarePath)) {
197
+ let content = fs.readFileSync(middlewarePath, 'utf-8');
198
+ content = content.replace(/export\s+function\s+middleware\b/g, 'export function proxy');
199
+ const proxyPath = path.join(frontendDir, 'proxy.ts');
200
+ fs.writeFileSync(proxyPath, content, 'utf-8');
201
+ fs.unlinkSync(middlewarePath);
202
+ result.movedFiles.push('middleware.ts → proxy.ts');
203
+ }
204
+ // 3. Delete legacy API proxy route
205
+ const proxyRoute = path.join(frontendDir, 'app', 'api', 'plumbus', '[...path]', 'route.ts');
206
+ if (fs.existsSync(proxyRoute)) {
207
+ fs.unlinkSync(proxyRoute);
208
+ result.deletedPaths.push('app/api/plumbus/[...path]/route.ts');
209
+ // Clean up empty parent dirs
210
+ for (const dir of [
211
+ path.join(frontendDir, 'app', 'api', 'plumbus', '[...path]'),
212
+ path.join(frontendDir, 'app', 'api', 'plumbus'),
213
+ path.join(frontendDir, 'app', 'api'),
214
+ ]) {
215
+ if (fs.existsSync(dir) && fs.readdirSync(dir).length === 0) {
216
+ fs.rmdirSync(dir);
217
+ }
218
+ }
219
+ }
220
+ // 4. Rewrite @/generated/ imports in all .ts/.tsx files
221
+ rewriteImportsRecursive(frontendDir, result);
222
+ return result;
223
+ }
224
+ function rewriteImportsRecursive(dir, result) {
225
+ if (!fs.existsSync(dir))
226
+ return;
227
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
228
+ for (const entry of entries) {
229
+ const fullPath = path.join(dir, entry.name);
230
+ if (entry.isDirectory()) {
231
+ if (entry.name === 'node_modules' || entry.name === '.next' || entry.name === 'dist') {
232
+ continue;
233
+ }
234
+ rewriteImportsRecursive(fullPath, result);
235
+ }
236
+ else if (/\.tsx?$/.test(entry.name)) {
237
+ const original = fs.readFileSync(fullPath, 'utf-8');
238
+ let content = original;
239
+ for (const [oldImport, newImport] of Object.entries(IMPORT_REWRITES)) {
240
+ content = content.replaceAll(`"${oldImport}"`, `"${newImport}"`);
241
+ content = content.replaceAll(`'${oldImport}'`, `'${newImport}'`);
242
+ }
243
+ if (content !== original) {
244
+ fs.writeFileSync(fullPath, content, 'utf-8');
245
+ result.rewrittenImports.push(path.relative(dir, fullPath));
246
+ }
247
+ }
248
+ }
249
+ }
116
250
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=registry.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/types/__tests__/registry.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { describe, expectTypeOf, it } from 'vitest';
2
+ describe('PlumbusRegistry — default (no augmentation)', () => {
3
+ it('RegisteredCapabilityName defaults to string', () => {
4
+ expectTypeOf().toEqualTypeOf();
5
+ });
6
+ it('RegisteredEventName defaults to string', () => {
7
+ expectTypeOf().toEqualTypeOf();
8
+ });
9
+ it('RegisteredFlowName defaults to string', () => {
10
+ expectTypeOf().toEqualTypeOf();
11
+ });
12
+ it('RegisteredEntities defaults to Record<string, Repository>', () => {
13
+ expectTypeOf().toEqualTypeOf();
14
+ });
15
+ it('DataService is assignable from Record<string, Repository>', () => {
16
+ expectTypeOf().toMatchTypeOf();
17
+ });
18
+ it('CapabilityStep.capability accepts string without augmentation', () => {
19
+ expectTypeOf().toEqualTypeOf();
20
+ });
21
+ it('FlowTrigger.event accepts string without augmentation', () => {
22
+ expectTypeOf().toEqualTypeOf();
23
+ });
24
+ it('WaitStep.event accepts string without augmentation', () => {
25
+ expectTypeOf().toEqualTypeOf();
26
+ });
27
+ it('EventService.emit eventName parameter accepts string', () => {
28
+ expectTypeOf().parameter(0).toEqualTypeOf();
29
+ });
30
+ it('FlowService.start flowName parameter accepts string', () => {
31
+ expectTypeOf().parameter(0).toEqualTypeOf();
32
+ });
33
+ });
34
+ //# sourceMappingURL=registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/types/__tests__/registry.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAUpD,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC3D,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,YAAY,EAA4B,CAAC,aAAa,EAAU,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,YAAY,EAAuB,CAAC,aAAa,EAAU,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,YAAY,EAAsB,CAAC,aAAa,EAAU,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,YAAY,EAAsB,CAAC,aAAa,EAA8B,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,YAAY,EAA8B,CAAC,aAAa,EAAe,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,YAAY,EAAgC,CAAC,aAAa,EAAsB,CAAC;IACnF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,YAAY,EAAwB,CAAC,aAAa,EAAU,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,YAAY,EAAqB,CAAC,aAAa,EAAU,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,YAAY,EAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,YAAY,EAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,aAAa,EAAU,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { z } from 'zod';
2
2
  import type { AuditService } from './audit.js';
3
3
  import type { ErrorService } from './errors.js';
4
+ import type { RegisteredEntities, RegisteredEventName, RegisteredFlowName } from './registry.js';
4
5
  import type { AuthContext } from './security.js';
5
6
  import type { TranslationService } from './translation.js';
6
7
  export interface Repository<T = Record<string, any>> {
@@ -10,11 +11,9 @@ export interface Repository<T = Record<string, any>> {
10
11
  delete(id: string): Promise<void>;
11
12
  findMany(query?: Record<string, any>): Promise<T[]>;
12
13
  }
13
- export interface DataService {
14
- [entity: string]: Repository;
15
- }
14
+ export type DataService = RegisteredEntities;
16
15
  export interface EventService {
17
- emit(eventName: string, payload: unknown): Promise<void>;
16
+ emit(eventName: RegisteredEventName, payload: unknown): Promise<void>;
18
17
  }
19
18
  export interface FlowExecution {
20
19
  id: string;
@@ -22,7 +21,7 @@ export interface FlowExecution {
22
21
  status: string;
23
22
  }
24
23
  export interface FlowService {
25
- start(flowName: string, input: unknown): Promise<FlowExecution>;
24
+ start(flowName: RegisteredFlowName, input: unknown): Promise<FlowExecution>;
26
25
  resume(executionId: string, signal?: unknown): Promise<void>;
27
26
  cancel(executionId: string): Promise<void>;
28
27
  status(executionId: string): Promise<FlowExecution>;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACrD;AAKD,MAAM,WAAW,WAAW;IAC1B,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;CAC9B;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CACrD;AAGD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjC,OAAO,CAAC,MAAM,EAAE;QACd,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAEjC,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAExE,QAAQ,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC5D;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAClE;AAGD,MAAM,WAAW,WAAW;IAC1B,GAAG,IAAI,IAAI,CAAC;CACb;AAGD,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAGpD,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,wDAAwD;IACxD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACtC,yDAAyD;IACzD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACxC,0EAA0E;IAC1E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2EAA2E;IAC3E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,kBAAkB,CAAC;IAGjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import type { z } from 'zod';
2
2
  import type { BackoffStrategy, FlowStepType } from './enums.js';
3
+ import type { RegisteredCapabilityName, RegisteredEventName } from './registry.js';
3
4
  export interface BaseFlowStep {
4
5
  name: string;
5
6
  }
6
7
  export interface CapabilityStep extends BaseFlowStep {
7
8
  type: typeof FlowStepType.Capability;
8
- capability?: string;
9
+ capability?: RegisteredCapabilityName;
9
10
  input?: Record<string, unknown>;
10
11
  }
11
12
  export interface ConditionalStep extends BaseFlowStep {
@@ -16,7 +17,7 @@ export interface ConditionalStep extends BaseFlowStep {
16
17
  }
17
18
  export interface WaitStep extends BaseFlowStep {
18
19
  type: typeof FlowStepType.Wait;
19
- event: string;
20
+ event: RegisteredEventName;
20
21
  }
21
22
  export interface DelayStep extends BaseFlowStep {
22
23
  type: typeof FlowStepType.Delay;
@@ -28,7 +29,7 @@ export interface ParallelStep extends BaseFlowStep {
28
29
  }
29
30
  export interface EventEmitStep extends BaseFlowStep {
30
31
  type: typeof FlowStepType.EventEmit;
31
- event: string;
32
+ event: RegisteredEventName;
32
33
  }
33
34
  export type FlowStep = CapabilityStep | ConditionalStep | WaitStep | DelayStep | ParallelStep | EventEmitStep;
34
35
  export interface FlowRetryPolicy {
@@ -36,7 +37,7 @@ export interface FlowRetryPolicy {
36
37
  backoff: BackoffStrategy;
37
38
  }
38
39
  export interface FlowTrigger {
39
- event: string;
40
+ event: RegisteredEventName;
40
41
  }
41
42
  export interface FlowSchedule {
42
43
  cron: string;
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/types/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGhE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,IAAI,EAAE,OAAO,YAAY,CAAC,UAAU,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,EAAE,OAAO,YAAY,CAAC,WAAW,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,IAAI,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,IAAI,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,IAAI,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,IAAI,EAAE,OAAO,YAAY,CAAC,SAAS,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,eAAe,GACf,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,aAAa,CAAC;AAGlB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,cAAc,CAC7B,MAAM,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,EAC1C,MAAM,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IAE1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB"}
1
+ {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/types/flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGnF,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,IAAI,EAAE,OAAO,YAAY,CAAC,UAAU,CAAC;IACrC,UAAU,CAAC,EAAE,wBAAwB,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,EAAE,OAAO,YAAY,CAAC,WAAW,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAS,SAAQ,YAAY;IAC5C,IAAI,EAAE,OAAO,YAAY,CAAC,IAAI,CAAC;IAC/B,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,IAAI,EAAE,OAAO,YAAY,CAAC,KAAK,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,IAAI,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,IAAI,EAAE,OAAO,YAAY,CAAC,SAAS,CAAC;IACpC,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,MAAM,MAAM,QAAQ,GAChB,cAAc,GACd,eAAe,GACf,QAAQ,GACR,SAAS,GACT,YAAY,GACZ,aAAa,CAAC;AAGlB,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAGD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAGD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,cAAc,CAC7B,MAAM,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,EAC1C,MAAM,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IAE1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB"}
@@ -10,6 +10,7 @@ export type { BaseFieldOptions, BooleanFieldDescriptor, EnumFieldDescriptor, Fie
10
10
  export type { CapabilityStep, ConditionalStep, DelayStep, EventEmitStep, FlowDefinition, FlowRetryPolicy, FlowSchedule, FlowStep, FlowTrigger, ParallelStep, WaitStep, } from './flow.js';
11
11
  export type { GovernanceOverride, GovernanceSignal, PolicyReport, RuleEvaluation, } from './governance.js';
12
12
  export type { ModelConfig, PromptDefinition } from './prompt.js';
13
+ export type { PlumbusRegistry, RegisteredCapabilityName, RegisteredEntities, RegisteredEventName, RegisteredFlowName, } from './registry.js';
13
14
  export type { AccessPolicy, AuthContext } from './security.js';
14
15
  export type { MessageCatalog, TranslationDefinition, TranslationResolver, TranslationService, } from './translation.js';
15
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EACL,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE/D,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,EACL,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE9D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,cAAc,EACd,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjE,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE/D,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Repository } from './context.js';
2
+ export interface PlumbusRegistry {
3
+ }
4
+ export type RegisteredCapabilityName = PlumbusRegistry extends {
5
+ capabilityName: infer C extends string;
6
+ } ? C : string;
7
+ export type RegisteredEventName = PlumbusRegistry extends {
8
+ eventName: infer E extends string;
9
+ } ? E : string;
10
+ export type RegisteredFlowName = PlumbusRegistry extends {
11
+ flowName: infer F extends string;
12
+ } ? F : string;
13
+ export type RegisteredEntities = PlumbusRegistry extends {
14
+ entities: infer E extends Record<string, Repository>;
15
+ } ? E : Record<string, Repository>;
16
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,WAAW,eAAe;CAAG;AAMnC,MAAM,MAAM,wBAAwB,GAAG,eAAe,SAAS;IAC7D,cAAc,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;CACxC,GACG,CAAC,GACD,MAAM,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,eAAe,SAAS;IACxD,SAAS,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;CACnC,GACG,CAAC,GACD,MAAM,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,eAAe,SAAS;IACvD,QAAQ,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC;CAClC,GACG,CAAC,GACD,MAAM,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,eAAe,SAAS;IACvD,QAAQ,EAAE,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACtD,GACG,CAAC,GACD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ // ── Plumbus Type Registry ──
2
+ // Empty by default. Consumer apps augment this interface via `plumbus generate`,
3
+ // which produces a `.plumbus/generated/plumbus.d.ts` file containing:
4
+ //
5
+ // declare module "@plumbus/core" {
6
+ // interface PlumbusRegistry {
7
+ // capabilityName: "getInvoice" | "createOrder";
8
+ // eventName: "user.created" | "order.completed";
9
+ // flowName: "onboardUser" | "processOrder";
10
+ // entities: { User: Repository<UserRecord>; Order: Repository<OrderRecord> };
11
+ // }
12
+ // }
13
+ //
14
+ // Until generation runs, all derived types fall back to `string` (for names)
15
+ // or a permissive index signature (for entities), preserving backward compatibility.
16
+ export {};
17
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/types/registry.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,iFAAiF;AACjF,sEAAsE;AACtE,EAAE;AACF,qCAAqC;AACrC,kCAAkC;AAClC,sDAAsD;AACtD,uDAAuD;AACvD,kDAAkD;AAClD,oFAAoF;AACpF,QAAQ;AACR,MAAM;AACN,EAAE;AACF,6EAA6E;AAC7E,qFAAqF"}
@@ -5,9 +5,12 @@ The Plumbus CLI scaffolds and manages application primitives. **Always run CLI c
5
5
  ## Project Setup
6
6
 
7
7
  ```bash
8
- # Create a new Plumbus project
8
+ # Create a new Plumbus project (flat — default)
9
9
  plumbus create <project-name> [--auth jwt|auth0|clerk] [--ai openai|anthropic] [--compliance GDPR|HIPAA] [--skip-install] [--git]
10
10
 
11
+ # Create a monorepo project (backend / frontend / libs)
12
+ plumbus create <project-name> --monorepo [--auth jwt|auth0|clerk] [--ai openai|anthropic] [--compliance GDPR|HIPAA] [--skip-install] [--git]
13
+
11
14
  # Initialize AI agent wiring (copilot, cursor, or agents-md)
12
15
  plumbus init --agent copilot
13
16
 
@@ -15,6 +18,34 @@ plumbus init --agent copilot
15
18
  plumbus doctor
16
19
  ```
17
20
 
21
+ ### Monorepo mode (`--monorepo`)
22
+
23
+ When `--monorepo` is passed, the generated project uses **pnpm workspaces** with three packages:
24
+
25
+ ```
26
+ <project-name>/
27
+ ├── pnpm-workspace.yaml
28
+ ├── package.json # private root — delegates scripts via pnpm -r
29
+ ├── tsconfig.base.json
30
+ ├── biome.json
31
+ ├── backend/ # @<name>/backend — Plumbus app (entities, capabilities, etc.)
32
+ │ ├── package.json
33
+ │ ├── tsconfig.json
34
+ │ └── app/
35
+ ├── frontend/ # @<name>/frontend — populated by `plumbus ui nextjs`
36
+ │ ├── package.json
37
+ │ ├── tsconfig.json
38
+ │ └── src/
39
+ └── libs/shared/ # @<name>/shared — cross-package type definitions
40
+ ├── package.json
41
+ ├── tsconfig.json
42
+ └── types/
43
+ ```
44
+
45
+ - `plumbus generate` auto-detects the monorepo and copies shared types to `libs/shared/types/`.
46
+ - `plumbus ui nextjs` outputs into `frontend/` instead of the configured `outDir`.
47
+ - `plumbus init` adjusts AI wiring file paths to use `backend/app/` prefixes.
48
+
18
49
  ## Scaffolding Primitives
19
50
 
20
51
  Use these commands to create new entities, capabilities, events, flows, and prompts. The CLI generates correctly structured files with TODOs for you to fill in.
@@ -43,6 +43,8 @@ Every capability handler receives `ctx` — the scoped runtime context:
43
43
 
44
44
  ## Project Structure
45
45
 
46
+ ### Flat layout (default)
47
+
46
48
  ```
47
49
  app/
48
50
  capabilities/<domain>/<name>/
@@ -63,6 +65,25 @@ config/
63
65
  ai.config.ts # AI provider configuration
64
66
  ```
65
67
 
68
+ ### Monorepo layout (`plumbus create --monorepo`)
69
+
70
+ ```
71
+ backend/ # Plumbus app — same structure as flat layout above
72
+ app/
73
+ config/
74
+ package.json
75
+ frontend/ # Populated by `plumbus ui nextjs`
76
+ src/
77
+ package.json
78
+ libs/shared/ # Shared type definitions (auto-generated)
79
+ types/
80
+ package.json
81
+ pnpm-workspace.yaml # pnpm workspaces root
82
+ package.json # Private root — delegates scripts via pnpm -r
83
+ ```
84
+
85
+ In monorepo mode the `app/` and `config/` directories live under `backend/`. The CLI auto-detects the layout.
86
+
66
87
  ## Framework-Provided Dependencies
67
88
 
68
89
  The framework provides common dependencies — **consumer apps must NOT install them separately**. Import through the framework's subpath exports:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plumbus/core",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "Plumbus framework core — types, SDK, runtime, CLI, test utilities",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",