@vurb/core 3.5.0 → 3.6.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 (85) hide show
  1. package/README.md +51 -2
  2. package/dist/cli/scaffold.js +2 -0
  3. package/dist/cli/scaffold.js.map +1 -1
  4. package/dist/cli/templates/config.js +1 -1
  5. package/dist/cli/templates/config.js.map +1 -1
  6. package/dist/cli/templates/index.d.ts +1 -0
  7. package/dist/cli/templates/index.d.ts.map +1 -1
  8. package/dist/cli/templates/index.js +2 -0
  9. package/dist/cli/templates/index.js.map +1 -1
  10. package/dist/cli/templates/model.d.ts +7 -0
  11. package/dist/cli/templates/model.d.ts.map +1 -0
  12. package/dist/cli/templates/model.js +31 -0
  13. package/dist/cli/templates/model.js.map +1 -0
  14. package/dist/cli/templates/presenter.d.ts.map +1 -1
  15. package/dist/cli/templates/presenter.js +4 -9
  16. package/dist/cli/templates/presenter.js.map +1 -1
  17. package/dist/cli/templates/readme.d.ts.map +1 -1
  18. package/dist/cli/templates/readme.js +2 -0
  19. package/dist/cli/templates/readme.js.map +1 -1
  20. package/dist/core/builder/BuildPipeline.d.ts +56 -0
  21. package/dist/core/builder/BuildPipeline.d.ts.map +1 -0
  22. package/dist/core/builder/BuildPipeline.js +139 -0
  23. package/dist/core/builder/BuildPipeline.js.map +1 -0
  24. package/dist/core/builder/FluentToolBuilder.d.ts +64 -19
  25. package/dist/core/builder/FluentToolBuilder.d.ts.map +1 -1
  26. package/dist/core/builder/FluentToolBuilder.js +116 -114
  27. package/dist/core/builder/FluentToolBuilder.js.map +1 -1
  28. package/dist/core/builder/ProxyHandler.d.ts +26 -0
  29. package/dist/core/builder/ProxyHandler.d.ts.map +1 -0
  30. package/dist/core/builder/ProxyHandler.js +65 -0
  31. package/dist/core/builder/ProxyHandler.js.map +1 -0
  32. package/dist/core/builder/SemanticDefaults.d.ts +25 -0
  33. package/dist/core/builder/SemanticDefaults.d.ts.map +1 -0
  34. package/dist/core/builder/SemanticDefaults.js +16 -0
  35. package/dist/core/builder/SemanticDefaults.js.map +1 -0
  36. package/dist/core/builder/index.d.ts +2 -1
  37. package/dist/core/builder/index.d.ts.map +1 -1
  38. package/dist/core/builder/index.js +1 -0
  39. package/dist/core/builder/index.js.map +1 -1
  40. package/dist/core/middleware/AuditTrail.d.ts.map +1 -1
  41. package/dist/core/middleware/AuditTrail.js +6 -2
  42. package/dist/core/middleware/AuditTrail.js.map +1 -1
  43. package/dist/core/middleware/RateLimiter.d.ts.map +1 -1
  44. package/dist/core/middleware/RateLimiter.js +3 -1
  45. package/dist/core/middleware/RateLimiter.js.map +1 -1
  46. package/dist/fsm/StateMachineGate.d.ts +3 -0
  47. package/dist/fsm/StateMachineGate.d.ts.map +1 -1
  48. package/dist/fsm/StateMachineGate.js +12 -0
  49. package/dist/fsm/StateMachineGate.js.map +1 -1
  50. package/dist/index.d.ts +4 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +3 -0
  53. package/dist/index.js.map +1 -1
  54. package/dist/model/defineModel.d.ts +167 -0
  55. package/dist/model/defineModel.d.ts.map +1 -0
  56. package/dist/model/defineModel.js +345 -0
  57. package/dist/model/defineModel.js.map +1 -0
  58. package/dist/model/index.d.ts +8 -0
  59. package/dist/model/index.d.ts.map +1 -0
  60. package/dist/model/index.js +7 -0
  61. package/dist/model/index.js.map +1 -0
  62. package/dist/observability/TelemetryBus.d.ts.map +1 -1
  63. package/dist/observability/TelemetryBus.js +14 -13
  64. package/dist/observability/TelemetryBus.js.map +1 -1
  65. package/dist/presenter/Presenter.d.ts +21 -0
  66. package/dist/presenter/Presenter.d.ts.map +1 -1
  67. package/dist/presenter/Presenter.js +17 -8
  68. package/dist/presenter/Presenter.js.map +1 -1
  69. package/dist/presenter/PresenterPipeline.d.ts +2 -0
  70. package/dist/presenter/PresenterPipeline.d.ts.map +1 -1
  71. package/dist/presenter/PresenterPipeline.js +4 -0
  72. package/dist/presenter/PresenterPipeline.js.map +1 -1
  73. package/dist/presenter/definePresenter.d.ts.map +1 -1
  74. package/dist/presenter/definePresenter.js +13 -3
  75. package/dist/presenter/definePresenter.js.map +1 -1
  76. package/dist/resource/ResourceRegistry.d.ts +3 -0
  77. package/dist/resource/ResourceRegistry.d.ts.map +1 -1
  78. package/dist/resource/ResourceRegistry.js +8 -2
  79. package/dist/resource/ResourceRegistry.js.map +1 -1
  80. package/dist/sandbox/SandboxGuard.js +7 -4
  81. package/dist/sandbox/SandboxGuard.js.map +1 -1
  82. package/dist/server/ServerAttachment.d.ts.map +1 -1
  83. package/dist/server/ServerAttachment.js +48 -9
  84. package/dist/server/ServerAttachment.js.map +1 -1
  85. package/package.json +1 -1
@@ -0,0 +1,345 @@
1
+ /**
2
+ * defineModel — Eloquent-inspired Model Definition for Vurb.ts
3
+ *
4
+ * Synthesizes the best DX patterns from 10 globally acclaimed frameworks:
5
+ * • Laravel: $casts, $fillable, $hidden, $guarded, timestamps()
6
+ * • Django: choices (enum), verbose_name (label-first)
7
+ * • Rails: attr_accessible (whitelist) + attr_protected (blacklist)
8
+ * • Prisma: @default() values
9
+ * • Pydantic: Field(alias=, examples=, description=)
10
+ * • Drizzle: column-as-function type helpers
11
+ * • Convex: defineTable() factory
12
+ * • Spring: @JsonIgnore → hidden
13
+ * • NestJS: DTOs per operation → fillable profiles
14
+ * • Mongoose: schema options in closure
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * import { defineModel } from '@vurb/core';
19
+ *
20
+ * export const TaskModel = defineModel('Task', m => {
21
+ * m.casts({
22
+ * title: m.string('Task title'),
23
+ * description: m.text('Description in markdown'),
24
+ * status: m.enum('Status', ['open', 'done']).default('open'),
25
+ * due_date: m.date('Due date'),
26
+ * is_bug: m.boolean('Bug flag').default(false),
27
+ * });
28
+ *
29
+ * m.timestamps();
30
+ * m.hidden(['internal_id']);
31
+ * m.guarded(['uuid', 'created_at', 'updated_at']);
32
+ *
33
+ * m.fillable({
34
+ * create: ['title', 'description', 'due_date', 'is_bug'],
35
+ * update: ['title', 'description', 'due_date', 'is_bug'],
36
+ * filter: ['title', 'status', 'is_bug'],
37
+ * });
38
+ * });
39
+ * ```
40
+ *
41
+ * @module
42
+ */
43
+ import { z } from 'zod';
44
+ /** A field definition descriptor — chainable for .default(), .alias(), .examples() */
45
+ export class FieldDef {
46
+ /** @internal */ _type;
47
+ /** @internal */ _label;
48
+ /** @internal */ _enumValues;
49
+ /** @internal */ _shape;
50
+ /** @internal */ _defaultValue;
51
+ /** @internal */ _alias;
52
+ /** @internal */ _examples;
53
+ constructor(type, label, options) {
54
+ this._type = type;
55
+ this._label = label;
56
+ this._enumValues = options?.enumValues;
57
+ this._shape = options?.shape;
58
+ }
59
+ /** Set a default value (Prisma-inspired `@default()`) */
60
+ default(value) {
61
+ this._defaultValue = value;
62
+ return this;
63
+ }
64
+ /** Set an alias name (Pydantic-inspired `Field(alias=)`) */
65
+ alias(name) {
66
+ this._alias = name;
67
+ return this;
68
+ }
69
+ /** Set example values (Pydantic-inspired `Field(examples=[])`) */
70
+ examples(values) {
71
+ this._examples = values;
72
+ return this;
73
+ }
74
+ }
75
+ // ── Compile FieldDef → Zod ──────────────────────────────
76
+ function compileField(def) {
77
+ let schema;
78
+ switch (def._type) {
79
+ case 'string':
80
+ case 'text':
81
+ schema = z.string();
82
+ break;
83
+ case 'number':
84
+ schema = z.number();
85
+ break;
86
+ case 'boolean':
87
+ schema = z.boolean();
88
+ break;
89
+ case 'date':
90
+ schema = z.string();
91
+ break;
92
+ case 'timestamp':
93
+ schema = z.string();
94
+ break;
95
+ case 'uuid':
96
+ schema = z.string();
97
+ break;
98
+ case 'id':
99
+ // IDs are always required — return early with describe if present
100
+ schema = z.number();
101
+ if (def._label)
102
+ schema = schema.describe(def._label);
103
+ return schema;
104
+ case 'enum':
105
+ schema = z.enum(def._enumValues);
106
+ break;
107
+ case 'object': {
108
+ const shape = {};
109
+ if (def._shape) {
110
+ for (const [key, childDef] of Object.entries(def._shape)) {
111
+ shape[key] = compileField(childDef);
112
+ }
113
+ }
114
+ schema = z.object(shape);
115
+ break;
116
+ }
117
+ case 'list': {
118
+ const itemShape = {};
119
+ if (def._shape) {
120
+ for (const [key, childDef] of Object.entries(def._shape)) {
121
+ itemShape[key] = compileField(childDef);
122
+ }
123
+ }
124
+ schema = z.array(z.object(itemShape));
125
+ break;
126
+ }
127
+ }
128
+ // Add description (label) — Drizzle + Django verbose_name
129
+ if (def._label) {
130
+ // Add format hint for date fields — automatically hint YYYY-MM-DD
131
+ const label = def._type === 'date'
132
+ ? `${def._label} (YYYY-MM-DD)`
133
+ : def._label;
134
+ schema = schema.describe(label);
135
+ }
136
+ // Everything except `id` is optional + nullable by default
137
+ // (API responses may omit fields)
138
+ if (def._type === 'boolean' || def._type === 'list') {
139
+ schema = schema.optional();
140
+ }
141
+ else {
142
+ schema = schema.optional().nullable();
143
+ }
144
+ return schema;
145
+ }
146
+ /**
147
+ * Compile a FieldDef into a Zod schema for input context.
148
+ *
149
+ * Unlike `compileField()` (which defaults everything to optional for output schemas),
150
+ * this function produces schemas suitable for tool input parameters:
151
+ * - For **create**: string/text fields become required `z.string()`, number fields become optional
152
+ * - For **update/filter** (`forceOptional = true`): all fields become optional
153
+ *
154
+ * @param def - Field definition to compile
155
+ * @param forceOptional - If true, all fields become optional (update/filter semantics)
156
+ * @returns Zod schema for input validation
157
+ */
158
+ export function compileFieldForInput(def, forceOptional) {
159
+ let schema;
160
+ switch (def._type) {
161
+ case 'string':
162
+ case 'text':
163
+ case 'uuid':
164
+ case 'date':
165
+ case 'timestamp':
166
+ schema = z.string();
167
+ break;
168
+ case 'number':
169
+ schema = z.number();
170
+ break;
171
+ case 'boolean':
172
+ schema = z.boolean();
173
+ break;
174
+ case 'id':
175
+ schema = z.number();
176
+ break;
177
+ case 'enum':
178
+ schema = z.enum(def._enumValues);
179
+ break;
180
+ case 'object': {
181
+ const shape = {};
182
+ if (def._shape) {
183
+ for (const [key, childDef] of Object.entries(def._shape)) {
184
+ shape[key] = compileFieldForInput(childDef, false);
185
+ }
186
+ }
187
+ schema = z.object(shape);
188
+ break;
189
+ }
190
+ case 'list': {
191
+ const itemShape = {};
192
+ if (def._shape) {
193
+ for (const [key, childDef] of Object.entries(def._shape)) {
194
+ itemShape[key] = compileFieldForInput(childDef, false);
195
+ }
196
+ }
197
+ schema = z.array(z.object(itemShape));
198
+ break;
199
+ }
200
+ }
201
+ // Add description (label)
202
+ if (def._label) {
203
+ const label = def._type === 'date'
204
+ ? `${def._label} (YYYY-MM-DD)`
205
+ : def._label;
206
+ schema = schema.describe(label);
207
+ }
208
+ // Apply optionality: forceOptional makes everything optional
209
+ if (forceOptional) {
210
+ schema = schema.optional();
211
+ }
212
+ return schema;
213
+ }
214
+ // ── ModelBuilder (the `m` argument) ─────────────────────
215
+ /**
216
+ * Builder class that exposes type functions and configuration methods.
217
+ * Passed as `m` in the `defineModel()` closure.
218
+ */
219
+ export class ModelBuilder {
220
+ /** @internal */ _fields = {};
221
+ /** @internal */ _hidden = [];
222
+ /** @internal */ _guarded = [];
223
+ /** @internal */ _fillableProfiles = {};
224
+ // ── Type Functions (Drizzle-style) ──────────────────
225
+ /** String field — general purpose text */
226
+ string(label) {
227
+ return new FieldDef('string', label);
228
+ }
229
+ /** Text field — semantic: markdown, multiline, long content */
230
+ text(label) {
231
+ return new FieldDef('text', label);
232
+ }
233
+ /** Numeric field */
234
+ number(label) {
235
+ return new FieldDef('number', label);
236
+ }
237
+ /** Boolean field */
238
+ boolean(label) {
239
+ return new FieldDef('boolean', label);
240
+ }
241
+ /** Date field — automatically hints YYYY-MM-DD format */
242
+ date(label) {
243
+ return new FieldDef('date', label);
244
+ }
245
+ /** Timestamp field — ISO datetime */
246
+ timestamp(label) {
247
+ return new FieldDef('timestamp', label);
248
+ }
249
+ /** UUID field — string with UUID semantics */
250
+ uuid(label) {
251
+ return new FieldDef('uuid', label);
252
+ }
253
+ /** ID field — always required, numeric */
254
+ id(label) {
255
+ return new FieldDef('id', label);
256
+ }
257
+ /** Enum field — Django-style choices, tells AI valid values */
258
+ enum(label, values) {
259
+ return new FieldDef('enum', label, { enumValues: values });
260
+ }
261
+ /** Nested object field */
262
+ object(label, shape) {
263
+ return new FieldDef('object', label, { shape });
264
+ }
265
+ /** Array of objects field */
266
+ list(label, shape) {
267
+ return new FieldDef('list', label, { shape });
268
+ }
269
+ // ── Configuration Methods (Laravel-style) ───────────
270
+ /** Define field types and labels — like Laravel's `$casts` */
271
+ casts(fields) {
272
+ this._fields = { ...this._fields, ...fields };
273
+ }
274
+ /** Add created_at + updated_at timestamp fields — like Laravel's `timestamps()` */
275
+ timestamps() {
276
+ this._fields['created_at'] = new FieldDef('timestamp', 'Creation timestamp');
277
+ this._fields['updated_at'] = new FieldDef('timestamp', 'Last update timestamp');
278
+ }
279
+ /** Fields hidden from output — like Spring's `@JsonIgnore` or Laravel's `$hidden` */
280
+ hidden(fields) {
281
+ this._hidden = fields;
282
+ }
283
+ /** Fields that can NEVER be input — like Rails' `attr_protected` or Laravel's `$guarded` */
284
+ guarded(fields) {
285
+ this._guarded = fields;
286
+ }
287
+ /** Define input profiles per operation — like Laravel's `$fillable` + NestJS DTOs */
288
+ fillable(profiles) {
289
+ this._fillableProfiles = profiles;
290
+ }
291
+ // ── Compile ─────────────────────────────────────────
292
+ /** @internal Compile all fields into a Zod schema */
293
+ _compile() {
294
+ const shape = {};
295
+ const defaults = {};
296
+ for (const [name, def] of Object.entries(this._fields)) {
297
+ shape[name] = compileField(def);
298
+ if (def._defaultValue !== undefined) {
299
+ defaults[name] = def._defaultValue;
300
+ }
301
+ }
302
+ return { schema: z.object(shape), defaults };
303
+ }
304
+ }
305
+ // ── Factory ─────────────────────────────────────────────
306
+ /**
307
+ * Define a Model — one file, one entity, one source of truth.
308
+ *
309
+ * @param name - Model name (e.g. 'Task', 'Sprint', 'Project')
310
+ * @param configure - Closure function that receives a `ModelBuilder` (`m`)
311
+ * @returns Compiled `Model` with `.schema`, `.fields`, `.input`, `.hidden`, `.guarded`
312
+ */
313
+ export function defineModel(name, configure) {
314
+ const builder = new ModelBuilder();
315
+ configure(builder);
316
+ const { schema, defaults } = builder._compile();
317
+ // Pre-compute alias map at definition time (not per-call)
318
+ const aliasMap = new Map();
319
+ for (const [fieldName, fieldDef] of Object.entries(builder._fields)) {
320
+ if (fieldDef._alias) {
321
+ aliasMap.set(fieldName, fieldDef._alias);
322
+ }
323
+ }
324
+ const toApi = (data) => {
325
+ const result = {};
326
+ for (const [k, v] of Object.entries(data)) {
327
+ if (v !== undefined) {
328
+ result[aliasMap.get(k) ?? k] = v;
329
+ }
330
+ }
331
+ return result;
332
+ };
333
+ return Object.freeze({
334
+ name,
335
+ schema,
336
+ fields: Object.freeze(builder._fields),
337
+ hidden: Object.freeze(builder._hidden),
338
+ guarded: Object.freeze(builder._guarded),
339
+ input: Object.freeze(builder._fillableProfiles),
340
+ defaults: Object.freeze(defaults),
341
+ toApi,
342
+ infer: undefined,
343
+ });
344
+ }
345
+ //# sourceMappingURL=defineModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defineModel.js","sourceRoot":"","sources":["../../src/model/defineModel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Model Layer — Barrel Export
3
+ *
4
+ * @module
5
+ */
6
+ export { defineModel, FieldDef, ModelBuilder, compileFieldForInput } from './defineModel.js';
7
+ export type { Model } from './defineModel.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7F,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Model Layer — Barrel Export
3
+ *
4
+ * @module
5
+ */
6
+ export { defineModel, FieldDef, ModelBuilder, compileFieldForInput } from './defineModel.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/model/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryBus.d.ts","sourceRoot":"","sources":["../../src/observability/TelemetryBus.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkCzE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7D;AA2DD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDpF;AA2ED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC;IACnC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqKnG"}
1
+ {"version":3,"file":"TelemetryBus.d.ts","sourceRoot":"","sources":["../../src/observability/TelemetryBus.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAkCzE;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAM7D;AA2DD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,IAAI,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDpF;AA2ED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,CAAC;IACnC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsKnG"}
@@ -326,6 +326,18 @@ export async function createTelemetryBus(config) {
326
326
  });
327
327
  });
328
328
  // ── Start Listening ───────────────────────────────────
329
+ // Bug #7 fix: chmod inside the listen callback to eliminate the race
330
+ // window where the socket is world-readable before permissions are set.
331
+ const chmodSocket = () => {
332
+ if (platform() !== 'win32') {
333
+ try {
334
+ chmodSync(socketPath, 0o600);
335
+ }
336
+ catch {
337
+ process.stderr.write('[vurb] Warning: Could not restrict socket permissions.\n');
338
+ }
339
+ }
340
+ };
329
341
  await new Promise((resolve, reject) => {
330
342
  server.once('error', (err) => {
331
343
  if (err.code === 'EADDRINUSE') {
@@ -337,27 +349,16 @@ export async function createTelemetryBus(config) {
337
349
  }
338
350
  catch { /* ignore on Windows */ }
339
351
  server.once('error', (retryErr) => reject(retryErr));
340
- server.listen(socketPath, () => resolve());
352
+ server.listen(socketPath, () => { chmodSocket(); resolve(); });
341
353
  }
342
354
  else {
343
355
  reject(err);
344
356
  }
345
357
  });
346
- server.listen(socketPath, () => resolve());
358
+ server.listen(socketPath, () => { chmodSocket(); resolve(); });
347
359
  });
348
360
  // ── Registry: announce this server for auto-discovery ──
349
361
  writeRegistryFile(process.pid, config?.path ? undefined : 'vurb');
350
- // ── Gotcha #1: IPC Security (chmod 0o600) ─────────────
351
- // Restrict socket to owner-only on POSIX to prevent PII sniffing
352
- if (platform() !== 'win32') {
353
- try {
354
- chmodSync(socketPath, 0o600);
355
- }
356
- catch {
357
- // Non-fatal — log warning via stderr (never stdout!)
358
- process.stderr.write('[vurb] Warning: Could not restrict socket permissions.\n');
359
- }
360
- }
361
362
  // ── Heartbeat Timer ───────────────────────────────────
362
363
  const heartbeatTimer = setInterval(() => {
363
364
  if (clients.size === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryBus.js","sourceRoot":"","sources":["../../src/observability/TelemetryBus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TelemetryBus.js","sourceRoot":"","sources":["../../src/observability/TelemetryBus.ts"],"names":[],"mappings":"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"}
@@ -152,6 +152,27 @@ export declare class Presenter<T> {
152
152
  * ```
153
153
  */
154
154
  schema<TSchema extends ZodType<any, any, any>>(zodSchema: TSchema): Presenter<TSchema['_output']>;
155
+ /**
156
+ * Set the schema from a `defineModel()` Model.
157
+ *
158
+ * Extracts the compiled Zod schema from the Model object,
159
+ * eliminating the redundant `.schema(Model.schema)` pattern.
160
+ *
161
+ * @param model - A Model returned by `defineModel()`
162
+ * @returns A narrowed Presenter typed to the Model's schema output
163
+ *
164
+ * @example
165
+ * ```typescript
166
+ * import { InvoiceModel } from '../models/InvoiceModel.js';
167
+ *
168
+ * createPresenter('Invoice')
169
+ * .schema(InvoiceModel)
170
+ * ```
171
+ */
172
+ schema(model: {
173
+ readonly schema: ZodType<any, any, any>;
174
+ readonly fields: Record<string, unknown>;
175
+ }): Presenter<any>;
155
176
  /**
156
177
  * Set the schema from an object of ZodTypes (enables `t.*` shorthand).
157
178
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Presenter.d.ts","sourceRoot":"","sources":["../../src/presenter/Presenter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Presenter.d.ts","sourceRoot":"","sources":["../../src/presenter/Presenter.ts"],"names":[],"mappings":"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"}
@@ -59,7 +59,7 @@ import { PresenterValidationError } from './PresenterValidationError.js';
59
59
  import { extractZodKeys } from './SelectUtils.js';
60
60
  import { defaultSerializer } from '../core/serialization/JsonSerializer.js';
61
61
  import { compileRedactor } from './RedactEngine.js';
62
- import { executePipeline, stepValidate, } from './PresenterPipeline.js';
62
+ import { executePipeline, stepTruncate, stepValidate, } from './PresenterPipeline.js';
63
63
  import { evaluateRules } from './PromptFirewall.js';
64
64
  // ── Brand ────────────────────────────────────────────────
65
65
  const PRESENTER_BRAND = 'VurbPresenter';
@@ -134,13 +134,17 @@ export class Presenter {
134
134
  `Configuration must be done before .make() is called.`);
135
135
  }
136
136
  }
137
- // Implementation — accepts both ZodType and plain object shapes
137
+ // Implementation — accepts ZodType, plain object shapes, or Model objects
138
138
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
139
  schema(schemaOrShape) {
140
140
  this._assertNotSealed();
141
141
  const narrowed = this;
142
- // Detect if it's an already-constructed ZodType (has _def property)
143
- if (schemaOrShape instanceof ZodType) {
142
+ // Detect Model object (duck typing via `fields` + `schema` properties)
143
+ if (schemaOrShape && typeof schemaOrShape === 'object' && 'fields' in schemaOrShape && 'schema' in schemaOrShape && schemaOrShape.schema instanceof ZodType) {
144
+ narrowed._schema = schemaOrShape.schema;
145
+ }
146
+ else if (schemaOrShape instanceof ZodType) {
147
+ // Detect if it's an already-constructed ZodType (has _def property)
144
148
  narrowed._schema = schemaOrShape;
145
149
  }
146
150
  else {
@@ -776,11 +780,15 @@ export class Presenter {
776
780
  // Step 1: Run all sync steps (via pipeline)
777
781
  // Bypass the make() guard for firewall-enabled presenters
778
782
  this._sealed = true;
779
- const builder = executePipeline(data, this._toSnapshot(), ctx, selectFields);
780
- // Step 2: Async enrichment — append after sync blocks
781
783
  const isArray = Array.isArray(data);
782
- // Re-validate to get the validated data for async callbacks
783
- const validated = stepValidate(data, isArray, this._toSnapshot());
784
+ const snapshot = this._toSnapshot();
785
+ // executePipeline handles truncation, validation, redaction, UI blocks normally
786
+ const builder = executePipeline(data, snapshot, ctx, selectFields);
787
+ // Step 2: Async enrichment — append after sync blocks
788
+ // Compute the same truncated+validated data the pipeline used,
789
+ // so async callbacks operate on the truncated dataset (Bug fix)
790
+ const truncated = stepTruncate(data, isArray, snapshot);
791
+ const validated = stepValidate(truncated.data, isArray, snapshot);
784
792
  // Async UI blocks
785
793
  if (isArray && this._asyncCollectionUiBlocks) {
786
794
  const blocks = await this._asyncCollectionUiBlocks(validated, ctx);
@@ -847,6 +855,7 @@ export class Presenter {
847
855
  redactConfig: this._redactConfig,
848
856
  compiledRedactor: this._compiledRedactor,
849
857
  compiledStringify: this._compiledStringify,
858
+ writeBackRedactor: (fn) => { this._compiledRedactor = fn; },
850
859
  };
851
860
  }
852
861
  }