@plumbus/core 0.6.0 → 0.6.3
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/cli/commands/translation.d.ts.map +1 -1
- package/dist/cli/commands/translation.js +20 -2
- package/dist/cli/commands/translation.js.map +1 -1
- package/dist/cli/commands/ui.d.ts +6 -1
- package/dist/cli/commands/ui.d.ts.map +1 -1
- package/dist/cli/commands/ui.js +6 -1
- package/dist/cli/commands/ui.js.map +1 -1
- package/dist/cli/templates/resources.d.ts +2 -0
- package/dist/cli/templates/resources.d.ts.map +1 -1
- package/dist/cli/templates/resources.js +22 -1
- package/dist/cli/templates/resources.js.map +1 -1
- package/dist/data/migration.d.ts.map +1 -1
- package/dist/data/migration.js +18 -7
- package/dist/data/migration.js.map +1 -1
- package/dist/data/repository.d.ts.map +1 -1
- package/dist/data/repository.js +84 -84
- package/dist/data/repository.js.map +1 -1
- package/dist/testing/context.d.ts.map +1 -1
- package/dist/testing/context.js +78 -58
- package/dist/testing/context.js.map +1 -1
- package/dist/types/context.d.ts +16 -4
- package/dist/types/context.d.ts.map +1 -1
- package/instructions/capabilities.md +7 -1
- package/instructions/cli.md +1 -0
- package/instructions/deployment.md +1 -0
- package/instructions/entities.md +19 -0
- package/instructions/framework.md +1 -0
- package/instructions/mcp.md +1 -1
- package/instructions/peer-dependencies.md +46 -0
- package/instructions/testing.md +15 -0
- package/instructions/translations.md +33 -3
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/testing/context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAIhF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAEhB,WAAW,EACX,aAAa,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/testing/context.ts"],"names":[],"mappings":"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"}
|
package/dist/testing/context.js
CHANGED
|
@@ -168,6 +168,82 @@ export function createInMemoryRepository(initialData) {
|
|
|
168
168
|
store.set(id, { ...item, id });
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
+
function filterRows(query, options) {
|
|
172
|
+
let results = [...store.values()];
|
|
173
|
+
if (query) {
|
|
174
|
+
results = results.filter((item) => Object.entries(query).every(([key, value]) => item[key] === value));
|
|
175
|
+
}
|
|
176
|
+
if (options?.dateFilters) {
|
|
177
|
+
for (const [field, range] of Object.entries(options.dateFilters)) {
|
|
178
|
+
if (range.gte) {
|
|
179
|
+
const gte = range.gte instanceof Date ? range.gte : new Date(range.gte);
|
|
180
|
+
results = results.filter((item) => {
|
|
181
|
+
const v = item[field];
|
|
182
|
+
return v && new Date(v) >= gte;
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
if (range.lte) {
|
|
186
|
+
const lte = range.lte instanceof Date ? range.lte : new Date(range.lte);
|
|
187
|
+
results = results.filter((item) => {
|
|
188
|
+
const v = item[field];
|
|
189
|
+
return v && new Date(v) <= lte;
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (options?.in) {
|
|
195
|
+
for (const [field, vals] of Object.entries(options.in)) {
|
|
196
|
+
if (!vals.length)
|
|
197
|
+
continue;
|
|
198
|
+
// Mirror SQL IN, which coerces query values to the column type (e.g. a numeric
|
|
199
|
+
// column compared against a string param from an HTTP query): match by string
|
|
200
|
+
// form, and exclude NULL/absent fields (`col IN (...)` is NULL — not TRUE — for
|
|
201
|
+
// a NULL column, so those rows are dropped).
|
|
202
|
+
const allowed = new Set(vals.map((v) => String(v)));
|
|
203
|
+
results = results.filter((item) => {
|
|
204
|
+
const v = item[field];
|
|
205
|
+
return v != null && allowed.has(String(v));
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (options?.notEq) {
|
|
210
|
+
for (const [field, val] of Object.entries(options.notEq)) {
|
|
211
|
+
// Mirror SQL `<>`: under three-valued logic a NULL/absent column makes the
|
|
212
|
+
// predicate NULL (not TRUE), so those rows are EXCLUDED — same as ne().
|
|
213
|
+
results = results.filter((item) => {
|
|
214
|
+
const v = item[field];
|
|
215
|
+
return v != null && v !== val;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
if (options?.search?.term) {
|
|
220
|
+
const term = options.search.term.toLowerCase();
|
|
221
|
+
const cols = options.search.columns;
|
|
222
|
+
results = results.filter((item) => cols.some((col) => String(item[col] ?? '')
|
|
223
|
+
.toLowerCase()
|
|
224
|
+
.includes(term)));
|
|
225
|
+
}
|
|
226
|
+
if (options?.orderBy) {
|
|
227
|
+
const specs = typeof options.orderBy === 'string'
|
|
228
|
+
? [{ column: options.orderBy, dir: options.orderDir }]
|
|
229
|
+
: options.orderBy;
|
|
230
|
+
results.sort((a, b) => {
|
|
231
|
+
for (const spec of specs) {
|
|
232
|
+
// Mirror SQL applyOrder: a spec that omits `dir` falls back to the
|
|
233
|
+
// top-level orderDir (then defaults to desc), not straight to desc.
|
|
234
|
+
const dir = (spec.dir ?? options.orderDir) === 'asc' ? 1 : -1;
|
|
235
|
+
const av = a[spec.column];
|
|
236
|
+
const bv = b[spec.column];
|
|
237
|
+
if (av < bv)
|
|
238
|
+
return -1 * dir;
|
|
239
|
+
if (av > bv)
|
|
240
|
+
return 1 * dir;
|
|
241
|
+
}
|
|
242
|
+
return 0;
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return results;
|
|
246
|
+
}
|
|
171
247
|
return {
|
|
172
248
|
async findById(id) {
|
|
173
249
|
return store.get(id) ?? null;
|
|
@@ -200,41 +276,7 @@ export function createInMemoryRepository(initialData) {
|
|
|
200
276
|
store.delete(id);
|
|
201
277
|
},
|
|
202
278
|
async findMany(query, options) {
|
|
203
|
-
let results =
|
|
204
|
-
if (query) {
|
|
205
|
-
results = results.filter((item) => Object.entries(query).every(([key, value]) => item[key] === value));
|
|
206
|
-
}
|
|
207
|
-
if (options?.dateFilters) {
|
|
208
|
-
for (const [field, range] of Object.entries(options.dateFilters)) {
|
|
209
|
-
if (range.gte) {
|
|
210
|
-
const gte = range.gte instanceof Date ? range.gte : new Date(range.gte);
|
|
211
|
-
results = results.filter((item) => {
|
|
212
|
-
const v = item[field];
|
|
213
|
-
return v && new Date(v) >= gte;
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
if (range.lte) {
|
|
217
|
-
const lte = range.lte instanceof Date ? range.lte : new Date(range.lte);
|
|
218
|
-
results = results.filter((item) => {
|
|
219
|
-
const v = item[field];
|
|
220
|
-
return v && new Date(v) <= lte;
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
if (options?.orderBy) {
|
|
226
|
-
const dir = options.orderDir === 'asc' ? 1 : -1;
|
|
227
|
-
const key = options.orderBy;
|
|
228
|
-
results.sort((a, b) => {
|
|
229
|
-
const av = a[key];
|
|
230
|
-
const bv = b[key];
|
|
231
|
-
if (av < bv)
|
|
232
|
-
return -1 * dir;
|
|
233
|
-
if (av > bv)
|
|
234
|
-
return 1 * dir;
|
|
235
|
-
return 0;
|
|
236
|
-
});
|
|
237
|
-
}
|
|
279
|
+
let results = filterRows(query, options);
|
|
238
280
|
if (options?.offset) {
|
|
239
281
|
results = results.slice(options.offset);
|
|
240
282
|
}
|
|
@@ -244,29 +286,7 @@ export function createInMemoryRepository(initialData) {
|
|
|
244
286
|
return results;
|
|
245
287
|
},
|
|
246
288
|
async count(query, options) {
|
|
247
|
-
|
|
248
|
-
if (query) {
|
|
249
|
-
results = results.filter((item) => Object.entries(query).every(([key, value]) => item[key] === value));
|
|
250
|
-
}
|
|
251
|
-
if (options?.dateFilters) {
|
|
252
|
-
for (const [field, range] of Object.entries(options.dateFilters)) {
|
|
253
|
-
if (range.gte) {
|
|
254
|
-
const gte = range.gte instanceof Date ? range.gte : new Date(range.gte);
|
|
255
|
-
results = results.filter((item) => {
|
|
256
|
-
const v = item[field];
|
|
257
|
-
return v && new Date(v) >= gte;
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
if (range.lte) {
|
|
261
|
-
const lte = range.lte instanceof Date ? range.lte : new Date(range.lte);
|
|
262
|
-
results = results.filter((item) => {
|
|
263
|
-
const v = item[field];
|
|
264
|
-
return v && new Date(v) <= lte;
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
return results.length;
|
|
289
|
+
return filterRows(query, options).length;
|
|
270
290
|
},
|
|
271
291
|
};
|
|
272
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/testing/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/testing/context.ts"],"names":[],"mappings":"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"}
|
package/dist/types/context.d.ts
CHANGED
|
@@ -13,15 +13,27 @@ export interface QueryOptions {
|
|
|
13
13
|
limit?: number;
|
|
14
14
|
/** Number of rows to skip (default 0) */
|
|
15
15
|
offset?: number;
|
|
16
|
-
/** Column name
|
|
17
|
-
orderBy?: string
|
|
18
|
-
|
|
16
|
+
/** Column name or multi-column sort spec — validated against entity table columns */
|
|
17
|
+
orderBy?: string | Array<{
|
|
18
|
+
column: string;
|
|
19
|
+
dir?: 'asc' | 'desc';
|
|
20
|
+
}>;
|
|
21
|
+
/** Default sort direction (default 'desc') — applied to a string `orderBy`, and the fallback for array specs that omit `dir` */
|
|
19
22
|
orderDir?: 'asc' | 'desc';
|
|
20
23
|
/** Date range filters: { columnName: { gte?: Date, lte?: Date } } */
|
|
21
24
|
dateFilters?: Record<string, {
|
|
22
25
|
gte?: Date;
|
|
23
26
|
lte?: Date;
|
|
24
27
|
}>;
|
|
28
|
+
/** OR-of-ILIKE across the given entity fields for a free-text term. */
|
|
29
|
+
search?: {
|
|
30
|
+
columns: string[];
|
|
31
|
+
term: string;
|
|
32
|
+
};
|
|
33
|
+
/** field → allowed values (SQL IN). Empty arrays ignored. */
|
|
34
|
+
in?: Record<string, Array<string | number>>;
|
|
35
|
+
/** field → value the row must NOT equal (SQL <>). */
|
|
36
|
+
notEq?: Record<string, string | number>;
|
|
25
37
|
}
|
|
26
38
|
export interface Repository<T = Record<string, any>, TCreate = Record<string, any>, TUpdate = Record<string, any>> {
|
|
27
39
|
findById(id: string): Promise<T | null>;
|
|
@@ -36,7 +48,7 @@ export interface Repository<T = Record<string, any>, TCreate = Record<string, an
|
|
|
36
48
|
update(id: string, updates: TUpdate): Promise<T>;
|
|
37
49
|
delete(id: string): Promise<void>;
|
|
38
50
|
findMany(query?: Partial<T>, options?: QueryOptions): Promise<T[]>;
|
|
39
|
-
count(query?: Partial<T>, options?: Pick<QueryOptions, 'dateFilters'>): Promise<number>;
|
|
51
|
+
count(query?: Partial<T>, options?: Pick<QueryOptions, 'dateFilters' | 'search' | 'in' | 'notEq'>): Promise<number>;
|
|
40
52
|
}
|
|
41
53
|
export type DataService = RegisteredEntities;
|
|
42
54
|
export interface EventService {
|
|
@@ -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,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,8 +66,14 @@ handler: async (ctx, input) => {
|
|
|
66
66
|
const customer = await ctx.data.Customer.findById(input.customerId);
|
|
67
67
|
// Update
|
|
68
68
|
await ctx.data.Order.update(order.id, { status: "confirmed" });
|
|
69
|
-
// Query
|
|
69
|
+
// Query (unpaginated — fine for small bounded sets)
|
|
70
70
|
const recent = await ctx.data.Order.findMany({ customerId: input.customerId });
|
|
71
|
+
// Paginated list endpoints — push limit/offset/filters to SQL via findMany + count
|
|
72
|
+
const items = await ctx.data.Order.findMany(
|
|
73
|
+
{ customerId: input.customerId },
|
|
74
|
+
{ orderBy: "createdAt", orderDir: "desc", limit: input.limit, offset: (input.page - 1) * input.limit },
|
|
75
|
+
);
|
|
76
|
+
const total = await ctx.data.Order.count({ customerId: input.customerId });
|
|
71
77
|
return { orderId: order.id };
|
|
72
78
|
}
|
|
73
79
|
```
|
package/instructions/cli.md
CHANGED
|
@@ -151,6 +151,7 @@ Behind a load balancer set `TRUST_PROXY=true` (or a specific IP/CIDR) so Fastify
|
|
|
151
151
|
|
|
152
152
|
```bash
|
|
153
153
|
plumbus translation new <name> # scaffold app/translations/<name>.translation.ts
|
|
154
|
+
plumbus translation new <name> --locale-folders # en/, he/ message files + assembler
|
|
154
155
|
plumbus translation export # --format json|xliff, --locale, --out-dir
|
|
155
156
|
plumbus translation import # --format json|xliff, --file or --dir
|
|
156
157
|
plumbus translation status # --json for CI; exits non-zero on incomplete locales
|
|
@@ -70,6 +70,7 @@ These rules are critical. Violating any one causes build failures or bloated ima
|
|
|
70
70
|
- **DO**: Create a separate `proddeps` stage that removes `@plumbus/ui` from `package.json` before `npm install --omit=dev`.
|
|
71
71
|
- **DO NOT**: Copy the full `node_modules` (including `@plumbus/ui`) into the backend runner.
|
|
72
72
|
- **Why**: `@plumbus/ui` pulls in `next`, `react`, `react-dom`, `tailwindcss`, `lucide-react` (~300 MB). The backend only needs `@plumbus/core` at runtime.
|
|
73
|
+
- **Peer deps**: npm enforces `peerDependencies` strictly in this stage. Add-on packages must declare npm-safe `@plumbus/core` peers (`0.5.x || 0.6.x` for most add-ons). See `peer-dependencies.md` in this folder — `pnpm install` passing locally does not prove Docker will build.
|
|
73
74
|
- **Target image size**: Backend should be ~500-700 MB, not 1.5 GB+.
|
|
74
75
|
|
|
75
76
|
### Rule 8: Use `ENV PATH` instead of `npx` for frontend builds
|
package/instructions/entities.md
CHANGED
|
@@ -88,6 +88,25 @@ await ctx.data.User.update("usr_123", { active: false });
|
|
|
88
88
|
await ctx.data.User.delete("usr_123");
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
+
### Pagination & search
|
|
92
|
+
|
|
93
|
+
For paginated list capabilities, push pagination + search to SQL with `findMany` + `count` (never fetch-all-then-slice):
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
const filters = {
|
|
97
|
+
search: { columns: ["displayName", "email"], term: input.search },
|
|
98
|
+
in: { role: ["staff", "admin"] },
|
|
99
|
+
notEq: { status: "archived" },
|
|
100
|
+
};
|
|
101
|
+
const items = await ctx.data.User.findMany(
|
|
102
|
+
{ active: true },
|
|
103
|
+
{ ...filters, orderBy: "createdAt", orderDir: "desc", limit: input.limit, offset: (input.page - 1) * input.limit },
|
|
104
|
+
);
|
|
105
|
+
const total = await ctx.data.User.count({ active: true }, filters);
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`findMany` applies `limit`/`offset`/`orderBy`; `count` returns the matching row count over the same filters (so page totals stay correct). `search` uses case-insensitive `ILIKE` (OR across columns), `in` is SQL `IN`, `notEq` is `<>`. Multi-column sort: `orderBy: [{ column: "name", dir: "asc" }, { column: "createdAt", dir: "desc" }]`. Tenant isolation and soft-delete filters are applied automatically.
|
|
109
|
+
|
|
91
110
|
Repositories automatically:
|
|
92
111
|
- Inject `tenantId` from `ctx.auth.tenantId` (if `tenantScoped: true`)
|
|
93
112
|
- Record audit events for mutations
|
|
@@ -8,6 +8,7 @@ Plumbus is an AI-native, contract-driven TypeScript application framework. You b
|
|
|
8
8
|
- **Capabilities are the only entry point for business logic.** If behavior does not belong in a capability directly, it should be orchestrated by a flow, emitted as an event, modeled as an entity, or wrapped in a prompt.
|
|
9
9
|
- Use framework extension points and `ctx.*` subsystems before inventing custom controllers, service layers, job runners, event buses, or direct infrastructure integrations.
|
|
10
10
|
- If the correct primitive is unclear, stop and ask which Plumbus extension point should own the behavior.
|
|
11
|
+
- When editing add-on `peerDependencies` on `@plumbus/core` in `packages/*/package.json`, read [`peer-dependencies.md`](./peer-dependencies.md) and copy literals from `packages/mcp/package.json` — never derive semver ranges.
|
|
11
12
|
|
|
12
13
|
## Core Abstractions
|
|
13
14
|
|
package/instructions/mcp.md
CHANGED
|
@@ -17,4 +17,4 @@ Plumbus capabilities can be exposed to external AI agents as MCP tools. **Contra
|
|
|
17
17
|
- **`plumbus generate`** — MCP manifest + skill files (no `@plumbus/mcp` install required).
|
|
18
18
|
- **`plumbus mcp serve` / `list-tools` / `mcp generate`** — CLI entry points; `mcp.agents` in `plumbus.config.ts`.
|
|
19
19
|
|
|
20
|
-
Install the runtime when serving agents: `pnpm add @plumbus/mcp` (optional peer of `@plumbus/core`, version-locked `0.5.x`).
|
|
20
|
+
Install the runtime when serving agents: `pnpm add @plumbus/mcp` (optional peer of `@plumbus/core`, version-locked `0.5.x || 0.6.x`).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# `@plumbus/core` peer dependency ranges
|
|
2
|
+
|
|
3
|
+
Read this file **before** editing `peerDependencies` in any `packages/*/package.json`.
|
|
4
|
+
|
|
5
|
+
## CRITICAL rules
|
|
6
|
+
|
|
7
|
+
1. **Copy literals — do not derive ranges.** Never compute semver ranges from intuition. Copy the exact string from the table below or from a canonical `package.json` (`packages/mcp/package.json`, `packages/api/package.json`).
|
|
8
|
+
2. **Never use `^0.x` caret ranges** on `@plumbus/core` peers in add-on packages. npm treats `^0.5.0` as **0.5.x only** (`>=0.5.0 <0.6.0`), not "0.5 and above."
|
|
9
|
+
3. **pnpm passing locally does not prove peers are correct.** Backend Docker images install production deps with **npm** (`deployment.md` Rule 7). Wrong peers break Docker builds even when `pnpm install` succeeds.
|
|
10
|
+
4. **Do not copy from CHANGELOG history.** Older releases documented incorrect ranges (`^0.5.0 <0.7.0` claimed to support 0.6.x — it does not under npm). Use this file and the canonical `package.json` files instead.
|
|
11
|
+
|
|
12
|
+
## Canonical `@plumbus/core` peer strings
|
|
13
|
+
|
|
14
|
+
| Package kind | `peerDependencies["@plumbus/core"]` | Canonical copy-from |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| Most add-ons (chat, chat-ui, knowledge-base, mcp, api, browser-extension) | `"0.5.x \|\| 0.6.x"` | `packages/mcp/package.json` |
|
|
17
|
+
| Voice only (requires core 0.6+ media/cost APIs) | `"^0.6.0 <0.7.0"` | `packages/voice/package.json` |
|
|
18
|
+
|
|
19
|
+
When adding a **new** publishable add-on under `packages/`, use `"0.5.x || 0.6.x"` unless the package genuinely requires core 0.6+ only (then use the voice pattern).
|
|
20
|
+
|
|
21
|
+
## Forbidden patterns
|
|
22
|
+
|
|
23
|
+
| Range | Why it is wrong |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `"^0.5.0 <0.7.0"` | npm resolves `^0.5.0` to 0.5.x only — **rejects `@plumbus/core@0.6.0`** |
|
|
26
|
+
| `"^0.5.0 <0.6.0"` | 0.5.x only — rejects 0.6.x |
|
|
27
|
+
| `"^0.6.x"` or `"^0.6.0"` alone | Too loose or wrong syntax for multi-line support; use the table literals |
|
|
28
|
+
| Widening an upper bound on a caret range | e.g. changing `<0.6.0` to `<0.7.0` on `^0.5.0` does **not** add 0.6.x support |
|
|
29
|
+
|
|
30
|
+
## When `@plumbus/core` gets a new minor line (e.g. 0.7.0)
|
|
31
|
+
|
|
32
|
+
Before tagging a core release:
|
|
33
|
+
|
|
34
|
+
1. Update the literal table in **this file** (add `0.7.x` to the union, e.g. `"0.5.x || 0.6.x || 0.7.x"`).
|
|
35
|
+
2. Update `peerDependencies["@plumbus/core"]` in **every** publishable add-on under `packages/` — copy the new literal everywhere; do not edit packages one-off with different strings.
|
|
36
|
+
3. Patch-bump and publish each affected add-on.
|
|
37
|
+
4. Update add-on `instructions/framework.md` (or `conventions.md`) peer lines to match.
|
|
38
|
+
5. Run `pnpm lint`, `pnpm format:check`, `pnpm typecheck`, `pnpm test` from repo root.
|
|
39
|
+
|
|
40
|
+
See also: `.agents/skills/bump-version/SKILL.md` (core **minor** bump checklist).
|
|
41
|
+
|
|
42
|
+
## Related docs
|
|
43
|
+
|
|
44
|
+
- `deployment.md` Rule 7 — backend `proddeps` uses `npm install --omit=dev`
|
|
45
|
+
- `.agents/skills/new-package-instructions/SKILL.md` — new package `package.json` peers
|
|
46
|
+
- `packages/mcp/package.json` / `packages/api/package.json` — canonical examples
|
package/instructions/testing.md
CHANGED
|
@@ -26,6 +26,21 @@ const result = await runCapability(getUser, {
|
|
|
26
26
|
expect(result.name).toBe("Alice");
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
### Paginated list capabilities
|
|
30
|
+
|
|
31
|
+
When testing `kind: 'query'` list endpoints that paginate via `findMany` + `count`, assert:
|
|
32
|
+
|
|
33
|
+
- Page 2 returns a different slice than page 1 (when `total > limit`)
|
|
34
|
+
- `total` reflects filtered row count, not just `items.length`
|
|
35
|
+
- `search`, `sortBy`, and filter params change which rows appear
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
const page1 = await runCapability(listStaff, { page: 1, limit: 2 }, { ctx });
|
|
39
|
+
const page2 = await runCapability(listStaff, { page: 2, limit: 2 }, { ctx });
|
|
40
|
+
expect(page1.items).not.toEqual(page2.items);
|
|
41
|
+
expect(page1.total).toBeGreaterThan(page1.limit);
|
|
42
|
+
```
|
|
43
|
+
|
|
29
44
|
### `simulateFlow`
|
|
30
45
|
|
|
31
46
|
Simulate flow execution and inspect step history:
|
|
@@ -28,12 +28,33 @@ export const commonTranslation = defineTranslation({
|
|
|
28
28
|
|
|
29
29
|
## Rules
|
|
30
30
|
|
|
31
|
-
- Place translation files in `app/translations/<name>.translation.ts`
|
|
32
|
-
- Each
|
|
31
|
+
- Place translation files in `app/translations/<name>.translation.ts` (classic layout), **or** use the locale-folder layout below
|
|
32
|
+
- Each assembler exports one `defineTranslation()` result
|
|
33
33
|
- All locales **must** have the same key set — mismatched keys throw at import time
|
|
34
34
|
- Messages use ICU MessageFormat: `{name}` for interpolation, `{count, plural, ...}` for plurals, `{gender, select, ...}` for select
|
|
35
35
|
- The `name` field is the namespace: keys resolve as `<namespace>.<key>` (e.g., `common.nav.overview`)
|
|
36
36
|
|
|
37
|
+
## Locale-folder layout (optional)
|
|
38
|
+
|
|
39
|
+
For larger catalogs, keep one folder per locale and a thin assembler:
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
app/translations/
|
|
43
|
+
en/common.messages.ts
|
|
44
|
+
he/common.messages.ts
|
|
45
|
+
common.translation.ts # imports en + he, calls defineTranslation()
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Scaffold with:
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
plumbus translation new myNamespace --locale-folders
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Large namespaces (e.g. `staff`) can split further under `en/staff/*.messages.ts` and merge with a local `index.ts` before the assembler imports `./en/staff/index.js`.
|
|
55
|
+
|
|
56
|
+
Discovery still loads only `defineTranslation()` exports; plain `messages` objects in locale folders are ignored.
|
|
57
|
+
|
|
37
58
|
## Server-Side Usage
|
|
38
59
|
|
|
39
60
|
In capability handlers, use `ctx.translations.t()`:
|
|
@@ -49,13 +70,22 @@ The locale is resolved from the request context.
|
|
|
49
70
|
| Command | Description |
|
|
50
71
|
|---------|-------------|
|
|
51
72
|
| `plumbus translation new <name>` | Scaffold a new translation file |
|
|
73
|
+
| `plumbus translation new <name> --locale-folders` | Scaffold `en/`, `he/` message files + thin assembler |
|
|
52
74
|
| `plumbus translation export` | Export to JSON or XLIFF 2.0 for professional translation |
|
|
53
75
|
| `plumbus translation import` | Import translated JSON/XLIFF files back into source |
|
|
54
76
|
| `plumbus translation status` | Report per-locale completion percentage |
|
|
55
77
|
|
|
56
78
|
## Frontend
|
|
57
79
|
|
|
58
|
-
When translations exist, `plumbus ui generate` produces `
|
|
80
|
+
When translations exist, `plumbus ui generate` produces `{frontend}/i18n/` with next-intl integration.
|
|
81
|
+
|
|
82
|
+
Optional: emit per-locale bundles (same runtime API, smaller generated files):
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
plumbus ui generate --out-dir frontend --split-locale-bundles
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Without the flag, output is unchanged — a single `i18n/messages.ts`.
|
|
59
89
|
|
|
60
90
|
```tsx
|
|
61
91
|
import { useTranslations } from "next-intl";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumbus/core",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Plumbus framework core — types, SDK, runtime, CLI, test utilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"typescript": "^5.7.0",
|
|
97
97
|
"@plumbus/api": "0.1.2",
|
|
98
98
|
"@plumbus/mcp": "0.5.1",
|
|
99
|
-
"@plumbus/voice": "0.
|
|
99
|
+
"@plumbus/voice": "0.3.0"
|
|
100
100
|
},
|
|
101
101
|
"scripts": {
|
|
102
102
|
"build": "tsc -b",
|