@happyvertical/smrt-core 0.53.3 → 0.53.4

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.
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Single-plugin Vite preset for SMRT applications.
3
+ *
4
+ * `plugins: [sveltekit(), smrt()]` replaces the hand-copied glue every app
5
+ * carried: the Oxc legacy-decorator block, `smrtConsumer({...})` with an
6
+ * explicit package list, and `smrtPlugin({...})` with the SvelteKit path
7
+ * options. `smrtConsumer` and `smrtPlugin` stay public and unchanged.
8
+ */
9
+ import type { Plugin } from 'vite';
10
+ export interface SmrtPresetOptions {
11
+ /**
12
+ * SMRT packages whose object manifests this app consumes. Takes precedence
13
+ * over `consumer.packages` in `smrt.config.ts`. An empty array declares that
14
+ * the app consumes none. Tooling/UI packages must not be listed.
15
+ */
16
+ packages?: readonly string[];
17
+ /**
18
+ * Project root. Omit to follow the root Vite/SvelteKit resolve (the launch
19
+ * cwd); `smrt.config.ts` is searched from this value or `process.cwd()`.
20
+ */
21
+ projectRoot?: string;
22
+ /** Directory of the app's own `@smrt()` objects. Default `src/lib/objects`. */
23
+ objectsDir?: string;
24
+ /** Generated type declarations. Default `src/lib/types/smrt-generated`. */
25
+ typesDir?: string;
26
+ /** Generated API routes. Default `src/routes/api`. */
27
+ routesDir?: string;
28
+ /** Directory holding the generated runtime config module. Default `src/lib/server`. */
29
+ configPath?: string;
30
+ /** File name of that module. Default `smrt.ts`. */
31
+ configFileName?: string;
32
+ /** Source globs scanned for objects. Default `<objectsDir>/**\/*.ts`. */
33
+ include?: string[];
34
+ /** Source globs excluded from the scan. Default test and spec files. */
35
+ exclude?: string[];
36
+ /**
37
+ * Apply the Oxc legacy-decorator config. Default `true`. Values the app sets
38
+ * under `oxc.decorator` itself are never overwritten.
39
+ */
40
+ decorators?: boolean;
41
+ }
42
+ export declare const SMRT_PRESET_DEFAULTS: {
43
+ readonly objectsDir: "src/lib/objects";
44
+ readonly typesDir: "src/lib/types/smrt-generated";
45
+ readonly routesDir: "src/routes/api";
46
+ readonly configPath: "src/lib/server";
47
+ readonly configFileName: "smrt.ts";
48
+ readonly exclude: readonly ["**/*.test.ts", "**/*.spec.ts"];
49
+ };
50
+ /**
51
+ * Packages SMRT's SvelteKit entries share with the app by identity. SvelteKit
52
+ * recognizes `redirect()`/`fail()` results by class, so a server entry such as
53
+ * `@happyvertical/smrt-app-runtime/sveltekit` must import the app's own copy.
54
+ * A registry install already resolves that peer from the app; a linked or
55
+ * workspace package resolves it from its own directory instead, and its
56
+ * redirects then surface as 500s. Deduping makes both layouts identical.
57
+ */
58
+ export declare const SMRT_SHARED_RUNTIME_PACKAGES: readonly ["@sveltejs/kit"];
59
+ /**
60
+ * SMRT Vite preset: decorators, dependency manifests, and app object
61
+ * generation in one entry. Returns a promise because the package list is read
62
+ * from `smrt.config.ts`; Vite accepts promised plugins.
63
+ */
64
+ export declare function smrt(options?: SmrtPresetOptions): Promise<Plugin[]>;
65
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite-preset/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,MAAM,EAAc,MAAM,MAAM,CAAC;AAI/C,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,oBAAoB;;;;;;;CAOvB,CAAC;AAmEX;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,4BAA6B,CAAC;AAWvE;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAiD7E"}
@@ -0,0 +1,105 @@
1
+ import { smrtPlugin } from "../vite-plugin/index.js";
2
+ import { smrtConsumer } from "../consumer-plugin/index.js";
3
+ //#region src/vite-preset/index.ts
4
+ var SMRT_PRESET_DEFAULTS = {
5
+ objectsDir: "src/lib/objects",
6
+ typesDir: "src/lib/types/smrt-generated",
7
+ routesDir: "src/routes/api",
8
+ configPath: "src/lib/server",
9
+ configFileName: "smrt.ts",
10
+ exclude: ["**/*.test.ts", "**/*.spec.ts"]
11
+ };
12
+ function validatePackages(value, source) {
13
+ if (!Array.isArray(value) || value.some((p) => typeof p !== "string" || p.trim() === "")) throw new Error(`[smrt] ${source} must be an array of non-empty package names, got ${JSON.stringify(value)}.`);
14
+ return [...new Set(value.map((p) => p.trim()))];
15
+ }
16
+ /** Resolve the declared consumer package list: option first, then smrt.config. */
17
+ async function resolvePackages(options, searchFrom) {
18
+ if (options.packages !== void 0) return validatePackages(options.packages, "smrt({ packages })");
19
+ let declared;
20
+ try {
21
+ const { loadConfig } = await import("@happyvertical/smrt-config");
22
+ declared = (await loadConfig({
23
+ cache: false,
24
+ searchFrom
25
+ })).consumer?.packages;
26
+ } catch (error) {
27
+ throw new Error(`[smrt] Could not read smrt.config to resolve consumer packages: ${error instanceof Error ? error.message : String(error)}`);
28
+ }
29
+ if (declared === void 0) throw new Error("[smrt] No consumer package list declared. Set `consumer: { packages: [...] }` in smrt.config.ts (use [] when the app consumes no SMRT packages) or pass `smrt({ packages })`. The list is explicit so runtime registration is deterministic; it is never inferred from package.json.");
30
+ return validatePackages(declared, "smrt.config `consumer.packages`");
31
+ }
32
+ function decoratorPlugin() {
33
+ return {
34
+ name: "smrt:decorators",
35
+ config(user) {
36
+ const decorator = user.oxc?.decorator;
37
+ const fill = {};
38
+ if (decorator?.legacy === void 0) fill.legacy = true;
39
+ if (decorator?.emitDecoratorMetadata === void 0) fill.emitDecoratorMetadata = true;
40
+ return Object.keys(fill).length ? { oxc: { decorator: fill } } : void 0;
41
+ }
42
+ };
43
+ }
44
+ /**
45
+ * Packages SMRT's SvelteKit entries share with the app by identity. SvelteKit
46
+ * recognizes `redirect()`/`fail()` results by class, so a server entry such as
47
+ * `@happyvertical/smrt-app-runtime/sveltekit` must import the app's own copy.
48
+ * A registry install already resolves that peer from the app; a linked or
49
+ * workspace package resolves it from its own directory instead, and its
50
+ * redirects then surface as 500s. Deduping makes both layouts identical.
51
+ */
52
+ var SMRT_SHARED_RUNTIME_PACKAGES = ["@sveltejs/kit"];
53
+ function sharedRuntimePlugin() {
54
+ return {
55
+ name: "smrt:shared-runtime",
56
+ config() {
57
+ return { resolve: { dedupe: [...SMRT_SHARED_RUNTIME_PACKAGES] } };
58
+ }
59
+ };
60
+ }
61
+ /**
62
+ * SMRT Vite preset: decorators, dependency manifests, and app object
63
+ * generation in one entry. Returns a promise because the package list is read
64
+ * from `smrt.config.ts`; Vite accepts promised plugins.
65
+ */
66
+ async function smrt(options = {}) {
67
+ const D = SMRT_PRESET_DEFAULTS;
68
+ const objectsDir = options.objectsDir ?? D.objectsDir;
69
+ const typesDir = options.typesDir ?? D.typesDir;
70
+ const routesDir = options.routesDir ?? D.routesDir;
71
+ const configPath = options.configPath ?? D.configPath;
72
+ const configFileName = options.configFileName ?? D.configFileName;
73
+ const rootOption = options.projectRoot ? { projectRoot: options.projectRoot } : {};
74
+ const packages = await resolvePackages(options, options.projectRoot ?? process.cwd());
75
+ const plugins = [];
76
+ if (options.decorators !== false) plugins.push(decoratorPlugin());
77
+ plugins.push(sharedRuntimePlugin());
78
+ if (packages.length > 0) plugins.push(smrtConsumer({
79
+ ...rootOption,
80
+ packages,
81
+ generateTypes: true,
82
+ typesDir,
83
+ svelteKit: true
84
+ }));
85
+ const pluginOptions = {
86
+ ...rootOption,
87
+ include: options.include ?? [`${objectsDir}/**/*.ts`],
88
+ exclude: options.exclude ?? [...D.exclude],
89
+ generateTypes: true,
90
+ typeDeclarationsPath: typesDir,
91
+ svelteKit: {
92
+ enabled: true,
93
+ routesDir,
94
+ objectsDir,
95
+ configPath,
96
+ configFileName
97
+ }
98
+ };
99
+ plugins.push(smrtPlugin(pluginOptions));
100
+ return plugins;
101
+ }
102
+ //#endregion
103
+ export { SMRT_PRESET_DEFAULTS, SMRT_SHARED_RUNTIME_PACKAGES, smrt };
104
+
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/vite-preset/index.ts"],"sourcesContent":["/**\n * Single-plugin Vite preset for SMRT applications.\n *\n * `plugins: [sveltekit(), smrt()]` replaces the hand-copied glue every app\n * carried: the Oxc legacy-decorator block, `smrtConsumer({...})` with an\n * explicit package list, and `smrtPlugin({...})` with the SvelteKit path\n * options. `smrtConsumer` and `smrtPlugin` stay public and unchanged.\n */\nimport type { Plugin, UserConfig } from 'vite';\nimport { smrtConsumer } from '../consumer-plugin/index.js';\nimport { type SmrtPluginOptions, smrtPlugin } from '../vite-plugin/index.js';\n\nexport interface SmrtPresetOptions {\n /**\n * SMRT packages whose object manifests this app consumes. Takes precedence\n * over `consumer.packages` in `smrt.config.ts`. An empty array declares that\n * the app consumes none. Tooling/UI packages must not be listed.\n */\n packages?: readonly string[];\n /**\n * Project root. Omit to follow the root Vite/SvelteKit resolve (the launch\n * cwd); `smrt.config.ts` is searched from this value or `process.cwd()`.\n */\n projectRoot?: string;\n /** Directory of the app's own `@smrt()` objects. Default `src/lib/objects`. */\n objectsDir?: string;\n /** Generated type declarations. Default `src/lib/types/smrt-generated`. */\n typesDir?: string;\n /** Generated API routes. Default `src/routes/api`. */\n routesDir?: string;\n /** Directory holding the generated runtime config module. Default `src/lib/server`. */\n configPath?: string;\n /** File name of that module. Default `smrt.ts`. */\n configFileName?: string;\n /** Source globs scanned for objects. Default `<objectsDir>/**\\/*.ts`. */\n include?: string[];\n /** Source globs excluded from the scan. Default test and spec files. */\n exclude?: string[];\n /**\n * Apply the Oxc legacy-decorator config. Default `true`. Values the app sets\n * under `oxc.decorator` itself are never overwritten.\n */\n decorators?: boolean;\n}\n\nexport const SMRT_PRESET_DEFAULTS = {\n objectsDir: 'src/lib/objects',\n typesDir: 'src/lib/types/smrt-generated',\n routesDir: 'src/routes/api',\n configPath: 'src/lib/server',\n configFileName: 'smrt.ts',\n exclude: ['**/*.test.ts', '**/*.spec.ts'],\n} as const;\n\nfunction validatePackages(value: unknown, source: string): string[] {\n if (\n !Array.isArray(value) ||\n value.some((p) => typeof p !== 'string' || p.trim() === '')\n ) {\n throw new Error(\n `[smrt] ${source} must be an array of non-empty package names, got ${JSON.stringify(value)}.`,\n );\n }\n return [...new Set(value.map((p: string) => p.trim()))];\n}\n\n/** Resolve the declared consumer package list: option first, then smrt.config. */\nasync function resolvePackages(\n options: SmrtPresetOptions,\n searchFrom: string,\n): Promise<string[]> {\n if (options.packages !== undefined) {\n return validatePackages(options.packages, 'smrt({ packages })');\n }\n\n let declared: unknown;\n try {\n const { loadConfig } = await import('@happyvertical/smrt-config');\n const config = await loadConfig({ cache: false, searchFrom });\n declared = config.consumer?.packages;\n } catch (error) {\n throw new Error(\n `[smrt] Could not read smrt.config to resolve consumer packages: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n }\n\n if (declared === undefined) {\n throw new Error(\n '[smrt] No consumer package list declared. Set `consumer: { packages: [...] }` in smrt.config.ts ' +\n '(use [] when the app consumes no SMRT packages) or pass `smrt({ packages })`. ' +\n 'The list is explicit so runtime registration is deterministic; it is never inferred from package.json.',\n );\n }\n return validatePackages(declared, 'smrt.config `consumer.packages`');\n}\n\nfunction decoratorPlugin(): Plugin {\n return {\n name: 'smrt:decorators',\n // Vite merges a hook's result over the user config, so fill only the\n // values the app has not set itself.\n config(user: UserConfig) {\n const decorator = (\n user as { oxc?: { decorator?: Record<string, unknown> } }\n ).oxc?.decorator;\n const fill: Record<string, boolean> = {};\n if (decorator?.legacy === undefined) fill.legacy = true;\n if (decorator?.emitDecoratorMetadata === undefined) {\n fill.emitDecoratorMetadata = true;\n }\n return Object.keys(fill).length\n ? ({ oxc: { decorator: fill } } as UserConfig)\n : undefined;\n },\n };\n}\n\n/**\n * Packages SMRT's SvelteKit entries share with the app by identity. SvelteKit\n * recognizes `redirect()`/`fail()` results by class, so a server entry such as\n * `@happyvertical/smrt-app-runtime/sveltekit` must import the app's own copy.\n * A registry install already resolves that peer from the app; a linked or\n * workspace package resolves it from its own directory instead, and its\n * redirects then surface as 500s. Deduping makes both layouts identical.\n */\nexport const SMRT_SHARED_RUNTIME_PACKAGES = ['@sveltejs/kit'] as const;\n\nfunction sharedRuntimePlugin(): Plugin {\n return {\n name: 'smrt:shared-runtime',\n config() {\n return { resolve: { dedupe: [...SMRT_SHARED_RUNTIME_PACKAGES] } };\n },\n };\n}\n\n/**\n * SMRT Vite preset: decorators, dependency manifests, and app object\n * generation in one entry. Returns a promise because the package list is read\n * from `smrt.config.ts`; Vite accepts promised plugins.\n */\nexport async function smrt(options: SmrtPresetOptions = {}): Promise<Plugin[]> {\n const D = SMRT_PRESET_DEFAULTS;\n const objectsDir = options.objectsDir ?? D.objectsDir;\n const typesDir = options.typesDir ?? D.typesDir;\n const routesDir = options.routesDir ?? D.routesDir;\n const configPath = options.configPath ?? D.configPath;\n const configFileName = options.configFileName ?? D.configFileName;\n const rootOption = options.projectRoot\n ? { projectRoot: options.projectRoot }\n : {};\n\n const packages = await resolvePackages(\n options,\n options.projectRoot ?? process.cwd(),\n );\n\n const plugins: Plugin[] = [];\n if (options.decorators !== false) plugins.push(decoratorPlugin());\n plugins.push(sharedRuntimePlugin());\n // smrtConsumer must precede smrtPlugin, as in the template's hand-written form.\n // With no declared packages there is nothing to consume, and an empty list\n // would otherwise trigger dependency discovery.\n if (packages.length > 0) {\n plugins.push(\n smrtConsumer({\n ...rootOption,\n packages,\n generateTypes: true,\n typesDir,\n svelteKit: true,\n }),\n );\n }\n const pluginOptions: SmrtPluginOptions = {\n ...rootOption,\n include: options.include ?? [`${objectsDir}/**/*.ts`],\n exclude: options.exclude ?? [...D.exclude],\n generateTypes: true,\n typeDeclarationsPath: typesDir,\n svelteKit: {\n enabled: true,\n routesDir,\n objectsDir,\n configPath,\n configFileName,\n },\n };\n plugins.push(smrtPlugin(pluginOptions));\n return plugins;\n}\n"],"mappings":";;;AA6CA,IAAa,uBAAuB;CAClC,YAAY;CACZ,UAAU;CACV,WAAW;CACX,YAAY;CACZ,gBAAgB;CAChB,SAAS,CAAC,gBAAgB,cAAc;AAC1C;AAEA,SAAS,iBAAiB,OAAgB,QAA0B;CAClE,IACE,CAAC,MAAM,QAAQ,KAAK,KACpB,MAAM,MAAM,MAAM,OAAO,MAAM,YAAY,EAAE,KAAK,MAAM,EAAE,GAE1D,MAAM,IAAI,MACR,UAAU,OAAO,oDAAoD,KAAK,UAAU,KAAK,EAAE,EAC7F;CAEF,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,KAAK,MAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACxD;;AAGA,eAAe,gBACb,SACA,YACmB;CACnB,IAAI,QAAQ,aAAa,KAAA,GACvB,OAAO,iBAAiB,QAAQ,UAAU,oBAAoB;CAGhE,IAAI;CACJ,IAAI;EACF,MAAM,EAAE,eAAe,MAAM,OAAO;EAEpC,YAAW,MADU,WAAW;GAAE,OAAO;GAAO;EAAW,CAAC,EAAA,CAC1C,UAAU;CAC9B,SAAS,OAAO;EACd,MAAM,IAAI,MACR,mEACE,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAEzD;CACF;CAEA,IAAI,aAAa,KAAA,GACf,MAAM,IAAI,MACR,sRAGF;CAEF,OAAO,iBAAiB,UAAU,iCAAiC;AACrE;AAEA,SAAS,kBAA0B;CACjC,OAAO;EACL,MAAM;EAGN,OAAO,MAAkB;GACvB,MAAM,YACJ,KACA,KAAK;GACP,MAAM,OAAgC,CAAC;GACvC,IAAI,WAAW,WAAW,KAAA,GAAW,KAAK,SAAS;GACnD,IAAI,WAAW,0BAA0B,KAAA,GACvC,KAAK,wBAAwB;GAE/B,OAAO,OAAO,KAAK,IAAI,CAAC,CAAC,SACpB,EAAE,KAAK,EAAE,WAAW,KAAK,EAAE,IAC5B,KAAA;EACN;CACF;AACF;;;;;;;;;AAUA,IAAa,+BAA+B,CAAC,eAAe;AAE5D,SAAS,sBAA8B;CACrC,OAAO;EACL,MAAM;EACN,SAAS;GACP,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,4BAA4B,EAAE,EAAE;EAClE;CACF;AACF;;;;;;AAOA,eAAsB,KAAK,UAA6B,CAAC,GAAsB;CAC7E,MAAM,IAAI;CACV,MAAM,aAAa,QAAQ,cAAc,EAAE;CAC3C,MAAM,WAAW,QAAQ,YAAY,EAAE;CACvC,MAAM,YAAY,QAAQ,aAAa,EAAE;CACzC,MAAM,aAAa,QAAQ,cAAc,EAAE;CAC3C,MAAM,iBAAiB,QAAQ,kBAAkB,EAAE;CACnD,MAAM,aAAa,QAAQ,cACvB,EAAE,aAAa,QAAQ,YAAY,IACnC,CAAC;CAEL,MAAM,WAAW,MAAM,gBACrB,SACA,QAAQ,eAAe,QAAQ,IAAI,CACrC;CAEA,MAAM,UAAoB,CAAC;CAC3B,IAAI,QAAQ,eAAe,OAAO,QAAQ,KAAK,gBAAgB,CAAC;CAChE,QAAQ,KAAK,oBAAoB,CAAC;CAIlC,IAAI,SAAS,SAAS,GACpB,QAAQ,KACN,aAAa;EACX,GAAG;EACH;EACA,eAAe;EACf;EACA,WAAW;CACb,CAAC,CACH;CAEF,MAAM,gBAAmC;EACvC,GAAG;EACH,SAAS,QAAQ,WAAW,CAAC,GAAG,WAAW,SAAS;EACpD,SAAS,QAAQ,WAAW,CAAC,GAAG,EAAE,OAAO;EACzC,eAAe;EACf,sBAAsB;EACtB,WAAW;GACT,SAAS;GACT;GACA;GACA;GACA;EACF;CACF;CACA,QAAQ,KAAK,WAAW,aAAa,CAAC;CACtC,OAAO;AACT"}
package/dist/vite.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * `@happyvertical/smrt-core/vite` — the one-call Vite preset.
3
+ */
4
+ export * from './vite-preset/index.js';
5
+ //# sourceMappingURL=vite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,wBAAwB,CAAC"}
package/dist/vite.js ADDED
@@ -0,0 +1,2 @@
1
+ import { SMRT_PRESET_DEFAULTS, SMRT_SHARED_RUNTIME_PACKAGES, smrt } from "./vite-preset/index.js";
2
+ export { SMRT_PRESET_DEFAULTS, SMRT_SHARED_RUNTIME_PACKAGES, smrt };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@happyvertical/smrt-core",
3
- "version": "0.53.3",
3
+ "version": "0.53.4",
4
4
  "description": "Core AI agent framework with standardized collections, object-relational mapping, and code generators",
5
5
  "author": "HappyVertical",
6
6
  "type": "module",
@@ -88,6 +88,11 @@
88
88
  "default": "./dist/knowledge.js"
89
89
  },
90
90
  "./smrt-knowledge.json": "./dist/smrt-knowledge.json",
91
+ "./vite": {
92
+ "types": "./dist/vite.d.ts",
93
+ "import": "./dist/vite.js",
94
+ "default": "./dist/vite.js"
95
+ },
91
96
  "./vite-plugin": {
92
97
  "types": "./dist/vite-plugin.d.ts",
93
98
  "import": "./dist/vite-plugin.js",
@@ -154,9 +159,9 @@
154
159
  "@happyvertical/files": "^0.98.0",
155
160
  "@happyvertical/json": "^0.98.0",
156
161
  "@happyvertical/logger": "^0.98.0",
157
- "@happyvertical/smrt-config": "0.53.3",
158
- "@happyvertical/smrt-scanner": "0.53.3",
159
- "@happyvertical/smrt-types": "0.53.3",
162
+ "@happyvertical/smrt-config": "0.53.4",
163
+ "@happyvertical/smrt-scanner": "0.53.4",
164
+ "@happyvertical/smrt-types": "0.53.4",
160
165
  "@happyvertical/sql": "^0.98.0",
161
166
  "@happyvertical/utils": "^0.98.0",
162
167
  "@oxc-project/runtime": "^0.150.0",