@voltro/cli 0.29.0 → 0.30.1

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 (169) hide show
  1. package/CHANGELOG.md +448 -0
  2. package/THIRD-PARTY-NOTICES.md +2 -2
  3. package/dist/apiBuild-Ca6Sq5jy.js +2 -0
  4. package/dist/{apiBuild-BESZbTjA.js → apiBuild-DmkzRyv7.js} +2 -2
  5. package/dist/bin.js +3 -3
  6. package/dist/{checkCommand-BPAtyWs8.js → checkCommand-C4konUy9.js} +435 -304
  7. package/dist/checkCommand-DHD0aBeR.js +2 -0
  8. package/dist/{commands-82BDEktg.js → commands-BkJft9K2.js} +2413 -1814
  9. package/dist/{dbCommand-bCBbk6tz.js → dbCommand-qn__kLEt.js} +344 -265
  10. package/dist/dbCommand-wfGi3FgG.js +2 -0
  11. package/dist/{dev-Cg4BKLmi.js → dev-C_NPcLDp.js} +2716 -1782
  12. package/dist/{dev-DeEJj5T4.js → dev-DXhhZ7-f.js} +1 -1
  13. package/dist/frameworkTableAssembly-Bn_c4Mnl.js +2 -0
  14. package/dist/{frameworkTableAssembly-4Db40V23.js → frameworkTableAssembly-Cpgn2e88.js} +155 -141
  15. package/dist/index.d.ts +7 -2
  16. package/dist/index.js +1 -1
  17. package/dist/{inspect-BMvQpwqy.js → inspect-BUUjt773.js} +150 -14
  18. package/dist/inspect-mmBuRXmy.js +2 -0
  19. package/dist/{inspectMetrics-DHYygE4s.js → inspectMetrics-CkB2J0Zn.js} +566 -512
  20. package/dist/{manifestBuild-C4R1EdHn.js → manifestBuild-BLrVuSlM.js} +1 -1
  21. package/dist/manifestBuild-Dj8Jjoto.js +2 -0
  22. package/dist/{sdkgen-CW5NbYF0.js → sdkgen-wsWLrq4l.js} +1 -1
  23. package/dist/serveCommand-HtI4X5kj.js +1577 -0
  24. package/dist/serveEntry.js +2 -2
  25. package/dist/{start-CsCIaW4-.js → start-egkbpugc.js} +177 -175
  26. package/dist/startEntry.js +2 -2
  27. package/package.json +17 -17
  28. package/templates/AGENTS.core.md +50 -0
  29. package/templates/AGENTS.md +53 -2
  30. package/templates/agent-docs/_index.md +3 -2
  31. package/templates/agent-docs/_manifest.json +16 -4
  32. package/templates/agent-docs/ai.md +56 -0
  33. package/templates/agent-docs/cli.md +46 -0
  34. package/templates/agent-docs/internationalization.md +8 -7
  35. package/templates/agent-docs/local-first-mobile.md +18 -6
  36. package/templates/agent-docs/routing.md +15 -1
  37. package/templates/agent-docs/security.md +17 -0
  38. package/templates/agent-docs/templates/apibackends.md +209 -0
  39. package/templates/agent-docs/templates/appshells.md +144 -1
  40. package/templates/agent-docs/templates/mobile.md +60 -0
  41. package/templates/agent-docs/templates/overview.md +17 -7
  42. package/templates/agent-docs/whats-new.md +36 -243
  43. package/templates/agent-docs/workflows.md +367 -0
  44. package/templates/apps/api-ai/package.json +7 -7
  45. package/templates/apps/api-auth/package.json +8 -8
  46. package/templates/apps/api-backend/package.json +7 -7
  47. package/templates/apps/api-backend-deactivation/package.json +7 -7
  48. package/templates/apps/api-backend-mail/package.json +8 -8
  49. package/templates/apps/api-backend-mariadb/package.json +9 -9
  50. package/templates/apps/api-backend-sqlite/package.json +8 -8
  51. package/templates/apps/api-backend-storage/package.json +8 -8
  52. package/templates/apps/api-cms/package.json +10 -10
  53. package/templates/apps/api-collab/README.md +70 -0
  54. package/templates/apps/api-collab/app.config.ts +28 -0
  55. package/templates/apps/api-collab/database/schema.ts +63 -0
  56. package/templates/apps/api-collab/mutations/documents.create.mutation.server.ts +19 -0
  57. package/templates/apps/api-collab/mutations/documents.create.mutation.ts +36 -0
  58. package/templates/apps/api-collab/mutations/documents.setBody.mutation.server.ts +20 -0
  59. package/templates/apps/api-collab/mutations/documents.setBody.mutation.ts +30 -0
  60. package/templates/apps/api-collab/package.json +30 -0
  61. package/templates/apps/api-collab/queries/documents.query.server.ts +16 -0
  62. package/templates/apps/api-collab/queries/documents.query.ts +23 -0
  63. package/templates/apps/api-collab/template.json +6 -0
  64. package/templates/apps/api-collab/tests/documents.setBody.test.ts +89 -0
  65. package/templates/apps/api-collab/tsconfig.json +5 -0
  66. package/templates/apps/api-data-advanced/package.json +8 -8
  67. package/templates/apps/api-durable/package.json +8 -8
  68. package/templates/apps/api-feature-flags/package.json +9 -9
  69. package/templates/apps/api-governance/package.json +8 -8
  70. package/templates/apps/api-kv/package.json +8 -8
  71. package/templates/apps/api-moderation/package.json +8 -8
  72. package/templates/apps/api-observability/package.json +8 -8
  73. package/templates/apps/api-ratelimit/package.json +8 -8
  74. package/templates/apps/api-rbac/package.json +8 -8
  75. package/templates/apps/api-rest/package.json +7 -7
  76. package/templates/apps/api-saas/package.json +11 -11
  77. package/templates/apps/api-saas-starter/package.json +10 -10
  78. package/templates/apps/api-search/package.json +8 -8
  79. package/templates/apps/api-status/package.json +8 -8
  80. package/templates/apps/api-versioning/package.json +8 -8
  81. package/templates/apps/api-webhooks/package.json +9 -9
  82. package/templates/apps/changelog/package.json +6 -6
  83. package/templates/apps/edge-functions/package.json +2 -2
  84. package/templates/apps/frontend-admin/app.config.ts +1 -1
  85. package/templates/apps/frontend-admin/package.json +8 -8
  86. package/templates/apps/frontend-admin/src/locales/index.ts +1 -1
  87. package/templates/apps/frontend-app/app.config.ts +1 -1
  88. package/templates/apps/frontend-app/package.json +8 -8
  89. package/templates/apps/frontend-app/src/locales/index.ts +1 -1
  90. package/templates/apps/frontend-app/src/pages/layout.tsx +1 -1
  91. package/templates/apps/frontend-app/src/pages/page.tsx +1 -1
  92. package/templates/apps/frontend-auth/package.json +8 -8
  93. package/templates/apps/frontend-auth/src/locales/index.ts +1 -1
  94. package/templates/apps/frontend-blank/app.config.ts +1 -1
  95. package/templates/apps/frontend-blank/package.json +7 -7
  96. package/templates/apps/frontend-blank/src/locales/index.ts +1 -1
  97. package/templates/apps/frontend-blank/src/pages/layout.tsx +1 -1
  98. package/templates/apps/frontend-blank/src/pages/page.tsx +1 -1
  99. package/templates/apps/frontend-cms/package.json +9 -9
  100. package/templates/apps/frontend-cms/src/locales/index.ts +1 -1
  101. package/templates/apps/frontend-collab/README.md +80 -0
  102. package/templates/apps/frontend-collab/app.config.ts +38 -0
  103. package/templates/apps/frontend-collab/package.json +33 -0
  104. package/templates/apps/frontend-collab/src/locales/de.ts +29 -0
  105. package/templates/apps/frontend-collab/src/locales/en.ts +31 -0
  106. package/templates/apps/frontend-collab/src/locales/index.ts +15 -0
  107. package/templates/apps/frontend-collab/src/pages/layout.tsx +39 -0
  108. package/templates/apps/frontend-collab/src/pages/page.test.tsx +150 -0
  109. package/templates/apps/frontend-collab/src/pages/page.tsx +186 -0
  110. package/templates/apps/frontend-collab/template.json +6 -0
  111. package/templates/apps/frontend-collab/tsconfig.json +11 -0
  112. package/templates/apps/frontend-contact/package.json +7 -7
  113. package/templates/apps/frontend-dashboard/app.config.ts +1 -1
  114. package/templates/apps/frontend-dashboard/package.json +7 -7
  115. package/templates/apps/frontend-dashboard/src/locales/index.ts +1 -1
  116. package/templates/apps/frontend-docs/package.json +7 -7
  117. package/templates/apps/frontend-i18n/package.json +6 -6
  118. package/templates/apps/frontend-landing/package.json +7 -7
  119. package/templates/apps/frontend-portal/package.json +8 -8
  120. package/templates/apps/frontend-portal/src/locales/index.ts +1 -1
  121. package/templates/apps/frontend-saas/README.md +1 -1
  122. package/templates/apps/frontend-saas/app.config.ts +1 -1
  123. package/templates/apps/frontend-saas/package.json +8 -8
  124. package/templates/apps/frontend-saas/src/locales/index.ts +1 -1
  125. package/templates/apps/frontend-spa/app.config.ts +1 -1
  126. package/templates/apps/frontend-spa/package.json +7 -7
  127. package/templates/apps/frontend-spa/src/locales/index.ts +1 -1
  128. package/templates/apps/frontend-spa/src/pages/layout.tsx +1 -1
  129. package/templates/apps/frontend-spa/src/pages/page.tsx +1 -1
  130. package/templates/apps/frontend-ssr/app.config.ts +1 -1
  131. package/templates/apps/frontend-ssr/package.json +7 -7
  132. package/templates/apps/frontend-ssr/src/locales/index.ts +1 -1
  133. package/templates/apps/frontend-ssr/src/pages/layout.tsx +1 -1
  134. package/templates/apps/frontend-ssr/src/pages/page.tsx +1 -1
  135. package/templates/apps/frontend-ssr-api/app.config.ts +1 -1
  136. package/templates/apps/frontend-ssr-api/package.json +8 -8
  137. package/templates/apps/frontend-ssr-api/src/locales/index.ts +1 -1
  138. package/templates/apps/frontend-ssr-api/src/pages/layout.tsx +1 -1
  139. package/templates/apps/frontend-static-blog/package.json +6 -6
  140. package/templates/apps/frontend-status/package.json +8 -8
  141. package/templates/apps/frontend-status/src/locales/index.ts +1 -1
  142. package/templates/apps/mobile-app/README.md +58 -0
  143. package/templates/apps/mobile-app/app.config.ts +33 -0
  144. package/templates/apps/mobile-app/babel.config.js +5 -0
  145. package/templates/apps/mobile-app/metro.config.js +20 -0
  146. package/templates/apps/mobile-app/package.json +33 -0
  147. package/templates/apps/mobile-app/src/app/_layout.tsx +61 -0
  148. package/templates/apps/mobile-app/src/app/index.tsx +62 -0
  149. package/templates/apps/mobile-app/src/app/orders/[id].tsx +19 -0
  150. package/templates/apps/mobile-app/src/app/settings.tsx +51 -0
  151. package/templates/apps/mobile-app/src/client.ts +74 -0
  152. package/templates/apps/mobile-app/src/lib/deeplinks.ts +39 -0
  153. package/templates/apps/mobile-app/src/lib/notifications.ts +31 -0
  154. package/templates/apps/mobile-app/src/lib/sync.ts +29 -0
  155. package/templates/apps/mobile-app/src/persistence.ts +38 -0
  156. package/templates/apps/mobile-app/template.json +6 -0
  157. package/templates/apps/mobile-app/tests/deeplinks.test.ts +32 -0
  158. package/templates/apps/mobile-app/tests/notifications.test.ts +26 -0
  159. package/templates/apps/mobile-app/tests/sync.test.ts +34 -0
  160. package/templates/apps/mobile-app/tsconfig.json +10 -0
  161. package/templates/apps/mobile-app/voltro.mobile.ts +11 -0
  162. package/templates/patches/@effect__cluster@0.60.0.patch +6 -6
  163. package/dist/apiBuild-C8d74T6g.js +0 -2
  164. package/dist/checkCommand-DBvZvCh1.js +0 -2
  165. package/dist/dbCommand-CaIVTp-a.js +0 -2
  166. package/dist/frameworkTableAssembly-BTNirAAk.js +0 -2
  167. package/dist/inspect-DHeaMZak.js +0 -2
  168. package/dist/manifestBuild-Ck_90gZy.js +0 -2
  169. package/dist/serveCommand-BXl8mhZD.js +0 -1489
@@ -1,3 +1,3 @@
1
1
  import "./seedRunner-Bqxgp7HZ.js";
2
- import { c as e, h as t, u as n } from "./dev-Cg4BKLmi.js";
2
+ import { c as e, h as t, u as n } from "./dev-C_NPcLDp.js";
3
3
  export { e as loadApiConfig, n as loadDiscovered, t as walk };
@@ -0,0 +1,2 @@
1
+ import { t as e } from "./frameworkTableAssembly-Cpgn2e88.js";
2
+ export { e as assembleFrameworkTables };
@@ -1,41 +1,53 @@
1
1
  import { n as e } from "./appModuleLoader-C9r9mxZt.js";
2
- import { D as t, a as n, j as r, k as i, p as a } from "./fileConventions-Cof68_BL.js";
3
- import { basename as o, join as s } from "node:path";
4
- import { pathToFileURL as c } from "node:url";
5
- import { Effect as l } from "effect";
6
- import { promises as u } from "node:fs";
7
- import { _voltroConnectionGrantsTable as d, _voltroConnectionsTable as f, _voltroScheduleClaimsTable as p, _voltroScheduleRunsTable as m, _voltroTracesTable as h, _voltroUndoLogTable as ee, _voltroWakeupsTable as g, _voltroWorkflowEventDeliveriesTable as te, _voltroWorkflowEventsTable as ne, outboxAttemptsTable as re, outboxTable as ie, undoCaptureEnabled as ae } from "@voltro/runtime";
8
- import { SqlClient as _ } from "@effect/sql";
9
- import { _voltroWorkflowRunEventsTable as oe, _voltroWorkflowRunStepsTable as se, _voltroWorkflowRunsTable as ce, _voltroWorkflowStartContextsTable as le } from "@voltro/workflow";
10
- import { agentMessagesTable as ue, agentThreadsTable as de, aiBudgetTable as fe, aiUsageTable as pe, isAgentDescriptor as me, isAgentExecutor as v, resolveToolModuleHandlers as y } from "@voltro/ai";
11
- import { _voltroApiKeysTable as b, _voltroCdcOffsetsTable as x, _voltroIdempotencyTable as S, _voltroKvTable as C, _voltroMigrationPlansTable as w, _voltroMigrationsTable as T, _voltroMssqlCdcOffsetsTable as E, _voltroSeedsTable as D, lt as O } from "@voltro/database";
12
- import { _voltroWebhookDeliveriesTable as k, _voltroWebhookTargetsTable as A } from "@voltro/plugin-webhooks/mixin";
13
- import { _voltroStorageBlobsTable as j, _voltroStorageGrantsTable as M, _voltroStorageRefsTable as N, _voltroStorageUsageTable as P } from "@voltro/plugin-storage";
14
- import { defineAction as F, defineMutation as I, defineQuery as L } from "@voltro/protocol";
2
+ import { D as t, a as n, j as r, k as i } from "./fileConventions-Cof68_BL.js";
3
+ import { basename as a, join as o } from "node:path";
4
+ import { pathToFileURL as s } from "node:url";
5
+ import { Effect as c } from "effect";
6
+ import { promises as l } from "node:fs";
7
+ import { _voltroConnectionGrantsTable as u, _voltroConnectionsTable as d, _voltroScheduleClaimsTable as f, _voltroScheduleRunsTable as p, _voltroTracesTable as ee, _voltroUndoLogTable as te, _voltroWakeupsTable as ne, _voltroWorkflowEventDeliveriesTable as re, _voltroWorkflowEventsTable as ie, outboxAttemptsTable as ae, outboxTable as oe, undoCaptureEnabled as se } from "@voltro/runtime";
8
+ import { SqlClient as m } from "@effect/sql";
9
+ import { _voltroWorkflowAdmissionsTable as ce, _voltroWorkflowPausesTable as le, _voltroWorkflowPendingTable as ue, _voltroWorkflowRunEventsTable as de, _voltroWorkflowRunStepsTable as fe, _voltroWorkflowRunsTable as pe, _voltroWorkflowStartContextsTable as me, _voltroWorkflowWatermarksTable as he } from "@voltro/workflow";
10
+ import { agentMessagesTable as ge, agentThreadsTable as h, aiBudgetTable as g, aiInferencesTable as _, aiUsageTable as v, isAgentDescriptor as y, isAgentExecutor as b, resolveToolModuleHandlers as x } from "@voltro/ai";
11
+ import { _voltroApiKeysTable as S, _voltroCdcOffsetsTable as C, _voltroIdempotencyTable as w, _voltroKvTable as T, _voltroMigrationPlansTable as E, _voltroMigrationsTable as D, _voltroMssqlCdcOffsetsTable as O, _voltroSeedsTable as k, lt as A } from "@voltro/database";
12
+ import { _voltroWebhookDeliveriesTable as j, _voltroWebhookTargetsTable as M } from "@voltro/plugin-webhooks/mixin";
13
+ import { _voltroStorageBlobsTable as N, _voltroStorageGrantsTable as P, _voltroStorageRefsTable as F, _voltroStorageUsageTable as I } from "@voltro/plugin-storage";
14
+ import { defineAction as L, defineMutation as _e, defineQuery as ve } from "@voltro/protocol";
15
15
  //#region src/frameworkTables.ts
16
- var R = [
16
+ var ye = [
17
17
  {
18
- table: T,
18
+ table: D,
19
19
  when: "always"
20
20
  },
21
21
  {
22
- table: D,
22
+ table: k,
23
23
  when: "always"
24
24
  },
25
25
  {
26
- table: w,
26
+ table: E,
27
27
  when: "always"
28
28
  },
29
29
  {
30
- table: ce,
30
+ table: pe,
31
31
  when: "workflows"
32
32
  },
33
33
  {
34
- table: se,
34
+ table: fe,
35
35
  when: "workflows"
36
36
  },
37
37
  {
38
- table: oe,
38
+ table: de,
39
+ when: "workflows"
40
+ },
41
+ {
42
+ table: me,
43
+ when: "workflows"
44
+ },
45
+ {
46
+ table: ue,
47
+ when: "workflows"
48
+ },
49
+ {
50
+ table: ce,
39
51
  when: "workflows"
40
52
  },
41
53
  {
@@ -43,133 +55,137 @@ var R = [
43
55
  when: "workflows"
44
56
  },
45
57
  {
46
- table: ne,
58
+ table: he,
47
59
  when: "workflows"
48
60
  },
49
61
  {
50
- table: te,
62
+ table: ie,
51
63
  when: "workflows"
52
64
  },
53
65
  {
54
- table: m,
55
- when: "schedules"
66
+ table: re,
67
+ when: "workflows"
56
68
  },
57
69
  {
58
70
  table: p,
59
71
  when: "schedules"
60
72
  },
61
73
  {
62
- table: A,
74
+ table: f,
75
+ when: "schedules"
76
+ },
77
+ {
78
+ table: M,
63
79
  when: "webhooks"
64
80
  },
65
81
  {
66
- table: k,
82
+ table: j,
67
83
  when: "webhooks"
68
84
  },
69
85
  {
70
- table: h,
86
+ table: ee,
71
87
  when: "traces"
72
88
  },
73
89
  {
74
- table: ee,
90
+ table: te,
75
91
  when: "undo"
76
92
  },
77
93
  {
78
- table: ie,
79
- when: "outbox"
94
+ table: oe,
95
+ when: "always"
80
96
  },
81
97
  {
82
- table: re,
83
- when: "outbox"
98
+ table: ae,
99
+ when: "always"
84
100
  },
85
101
  {
86
- table: f,
102
+ table: d,
87
103
  when: "connections"
88
104
  },
89
105
  {
90
- table: d,
106
+ table: u,
91
107
  when: "connections"
92
108
  },
93
109
  {
94
- table: g,
110
+ table: ne,
95
111
  when: "always"
96
112
  },
97
113
  {
98
- table: N,
114
+ table: F,
99
115
  when: "always"
100
116
  },
101
117
  {
102
- table: M,
118
+ table: P,
103
119
  when: "always"
104
120
  },
105
121
  {
106
- table: j,
122
+ table: N,
107
123
  when: "always"
108
124
  },
109
125
  {
110
- table: P,
126
+ table: I,
111
127
  when: "always"
112
128
  },
113
129
  {
114
- table: S,
130
+ table: w,
115
131
  when: "always"
116
132
  },
117
133
  {
118
- table: b,
134
+ table: S,
119
135
  when: "always"
120
136
  },
121
137
  {
122
- table: C,
138
+ table: T,
123
139
  when: "always"
124
140
  }
125
- ], z = (e) => {
126
- let t = R.filter((t) => t.when === "always" || t.when === "workflows" && e.workflows || t.when === "schedules" && e.schedules || t.when === "webhooks" && e.webhooks || t.when === "traces" && e.traces || t.when === "undo" && e.undo === !0 || t.when === "outbox" && e.outbox === !0 || t.when === "connections" && e.connections === !0).map((e) => e.table);
127
- return e.cdc === !0 && t.push(e.cdcDialect === "mssql" ? E : x), t;
128
- }, B = (e) => {
141
+ ], R = (e) => {
142
+ let t = ye.filter((t) => t.when === "always" || t.when === "workflows" && e.workflows || t.when === "schedules" && e.schedules || t.when === "webhooks" && e.webhooks || t.when === "traces" && e.traces || t.when === "undo" && e.undo === !0 || t.when === "connections" && e.connections === !0).map((e) => e.table);
143
+ return e.cdc === !0 && t.push(e.cdcDialect === "mssql" ? O : C), t;
144
+ }, z = (e) => {
129
145
  let t = e.startsWith("@") ? e.replace(/^@[^/]+\//, "") : e;
130
146
  return (t.startsWith("plugin-") ? t.slice(7) : t).replace(/-([a-zA-Z0-9])/g, (e, t) => t.toUpperCase());
131
- }, he = (e) => {
147
+ }, be = (e) => {
132
148
  let t = e.startsWith("@") ? e.replace(/^@[^/]+\//, "") : e;
133
149
  return (t.startsWith("plugin-") ? t.slice(7) : t).replace(/#/g, "--").replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
134
- }, ge = (e, t) => t.name.includes(".") ? t.name : `${B(e.name)}.${t.name}`, _e = (e, t, n) => {
150
+ }, xe = (e, t) => t.name.includes(".") ? t.name : `${z(e.name)}.${t.name}`, Se = (e, t, n) => {
135
151
  switch (e) {
136
- case "query": return L({
152
+ case "query": return ve({
137
153
  name: t,
138
154
  input: n.input,
139
155
  output: n.output,
140
156
  ...n.error === void 0 ? {} : { error: n.error },
141
157
  ...n.source === void 0 ? {} : { source: n.source }
142
158
  });
143
- case "mutation": return I({
159
+ case "mutation": return _e({
144
160
  name: t,
145
161
  input: n.input,
146
162
  output: n.output,
147
163
  ...n.error === void 0 ? {} : { error: n.error }
148
164
  });
149
- case "action": return F({
165
+ case "action": return L({
150
166
  name: t,
151
167
  input: n.input,
152
168
  output: n.output,
153
169
  ...n.error === void 0 ? {} : { error: n.error }
154
170
  });
155
171
  }
156
- }, ve = (e) => (t, n) => l.suspend(() => {
172
+ }, Ce = (e) => (t, n) => c.suspend(() => {
157
173
  let r = { request: {
158
174
  subject: n.request.subject,
159
175
  traceId: n.request.traceId
160
176
  } };
161
177
  return e.execute(t, r);
162
- }), ye = (e) => {
178
+ }), we = (e) => {
163
179
  let t = [];
164
180
  for (let n of e) {
165
181
  let e = n.routes ?? [];
166
182
  for (let r of e) {
167
- let e = ge(n, r), i = _e(r.kind, e, r);
183
+ let e = xe(n, r), i = Se(r.kind, e, r);
168
184
  t.push({
169
185
  kind: r.kind,
170
186
  file: `plugin:${n.name}`,
171
187
  descriptor: i,
172
- executor: ve(r),
188
+ executor: Ce(r),
173
189
  plugin: {
174
190
  name: n.name,
175
191
  version: n.version
@@ -178,7 +194,7 @@ var R = [
178
194
  }
179
195
  }
180
196
  return t;
181
- }, be = (e, t, n = /* @__PURE__ */ new Set()) => {
197
+ }, Te = (e, t, n = /* @__PURE__ */ new Set()) => {
182
198
  let r = /* @__PURE__ */ new Map();
183
199
  for (let e of t) r.set(e, "user-route");
184
200
  let i = [];
@@ -190,35 +206,35 @@ var R = [
190
206
  }
191
207
  }
192
208
  return i;
193
- }, V = "_voltro_plugin_migrations", xe = () => l.gen(function* () {
194
- yield* (yield* _.SqlClient).unsafe(`
195
- CREATE TABLE IF NOT EXISTS ${V} (
209
+ }, B = "_voltro_plugin_migrations", Ee = () => c.gen(function* () {
210
+ yield* (yield* m.SqlClient).unsafe(`
211
+ CREATE TABLE IF NOT EXISTS ${B} (
196
212
  id TEXT PRIMARY KEY,
197
213
  plugin_name TEXT NOT NULL,
198
214
  migration_id TEXT NOT NULL,
199
215
  description TEXT,
200
216
  applied_at TEXT NOT NULL
201
217
  );
202
- `).pipe(l.orDie);
203
- }), Se = (e, t) => `${B(e)}__${t}`, Ce = () => l.gen(function* () {
204
- let e = yield* _.SqlClient, t = yield* e`SELECT id FROM ${e(V)}`.pipe(l.orDie);
218
+ `).pipe(c.orDie);
219
+ }), De = (e, t) => `${z(e)}__${t}`, Oe = () => c.gen(function* () {
220
+ let e = yield* m.SqlClient, t = yield* e`SELECT id FROM ${e(B)}`.pipe(c.orDie);
205
221
  return new Set(t.map((e) => e.id));
206
- }), we = (e) => l.gen(function* () {
207
- let t = yield* _.SqlClient, n = (/* @__PURE__ */ new Date()).toISOString();
222
+ }), ke = (e) => c.gen(function* () {
223
+ let t = yield* m.SqlClient, n = (/* @__PURE__ */ new Date()).toISOString();
208
224
  yield* t`
209
- INSERT INTO ${t(V)} (id, plugin_name, migration_id, description, applied_at)
225
+ INSERT INTO ${t(B)} (id, plugin_name, migration_id, description, applied_at)
210
226
  VALUES (${e.key}, ${e.pluginName}, ${e.migration.id}, ${e.migration.description ?? null}, ${n})
211
- `.pipe(l.orDie);
212
- }), Te = (e) => l.gen(function* () {
227
+ `.pipe(c.orDie);
228
+ }), Ae = (e) => c.gen(function* () {
213
229
  let t = e.flatMap((e) => (e.extendSchema?.migrations ?? []).map((t) => ({
214
230
  plugin: e,
215
231
  migration: t
216
232
  })));
217
233
  if (t.length === 0) return [];
218
- yield* xe();
219
- let n = yield* Ce(), r = [];
234
+ yield* Ee();
235
+ let n = yield* Oe(), r = [];
220
236
  for (let { plugin: e, migration: i } of t) {
221
- let t = Se(e.name, i.id), a = Date.now();
237
+ let t = De(e.name, i.id), a = Date.now();
222
238
  if (n.has(t)) {
223
239
  r.push({
224
240
  pluginName: e.name,
@@ -228,9 +244,9 @@ var R = [
228
244
  });
229
245
  continue;
230
246
  }
231
- let o = yield* _.SqlClient;
247
+ let o = yield* m.SqlClient;
232
248
  try {
233
- yield* i.up(o).pipe(l.mapError((e) => e)), yield* we({
249
+ yield* i.up(o).pipe(c.mapError((e) => e)), yield* ke({
234
250
  key: t,
235
251
  pluginName: e.name,
236
252
  migration: i
@@ -247,28 +263,28 @@ var R = [
247
263
  status: "failed",
248
264
  durationMs: Date.now() - a,
249
265
  error: t
250
- }), yield* l.fail(/* @__PURE__ */ Error(`Plugin migration failed: ${e.name} ${i.id} — ${t instanceof Error ? t.message : String(t)}`));
266
+ }), yield* c.fail(/* @__PURE__ */ Error(`Plugin migration failed: ${e.name} ${i.id} — ${t instanceof Error ? t.message : String(t)}`));
251
267
  }
252
268
  }
253
269
  return r;
254
- }), Ee = (e) => e.filter((e) => e.extendSchema && (e.extendSchema.tables?.length ?? 0) + (e.extendSchema.migrations?.length ?? 0) > 0).map((e) => ({
270
+ }), je = (e) => e.filter((e) => e.extendSchema && (e.extendSchema.tables?.length ?? 0) + (e.extendSchema.migrations?.length ?? 0) > 0).map((e) => ({
255
271
  pluginName: e.name,
256
- pluginAlias: B(e.name),
272
+ pluginAlias: z(e.name),
257
273
  tables: e.extendSchema.tables?.length ?? 0,
258
274
  migrations: e.extendSchema.migrations?.length ?? 0
259
- })), De = (e) => e.flatMap((e) => e.extendSchema?.tables ?? []), H = /(?<!\.server)\.agent\.tsx?$/, Oe = /\.agent\.server\.tsx?$/, U = /\.tool\.tsx?$/, ke = async (t, n) => {
275
+ })), Me = (e) => e.flatMap((e) => e.extendSchema?.tables ?? []), V = /(?<!\.server)\.agent\.tsx?$/, Ne = /\.agent\.server\.tsx?$/, H = /\.tool\.tsx?$/, Pe = async (t, n) => {
260
276
  let r = 0;
261
- for (let i of t) if (U.test(i)) try {
277
+ for (let i of t) if (H.test(i)) try {
262
278
  let t = await e(i);
263
- r += y(t);
279
+ r += x(t);
264
280
  } catch (e) {
265
281
  n.warn("tool: failed to import — handler not wired", { file: i }, e);
266
282
  }
267
283
  return r;
268
- }, Ae = (e) => e.replace(/\.agent\.(tsx?)$/, ".agent.server.$1"), je = async (t, n) => {
284
+ }, Fe = (e) => e.replace(/\.agent\.(tsx?)$/, ".agent.server.$1"), Ie = async (t, n) => {
269
285
  let r = [], i = /* @__PURE__ */ new Set();
270
286
  for (let a of t) {
271
- if (!H.test(a)) continue;
287
+ if (!V.test(a)) continue;
272
288
  let t;
273
289
  try {
274
290
  t = await e(a);
@@ -276,7 +292,7 @@ var R = [
276
292
  n.warn("agent: failed to import descriptor", { file: a }, e);
277
293
  continue;
278
294
  }
279
- let o = Object.values(t).find(me);
295
+ let o = Object.values(t).find(y);
280
296
  if (o === void 0) {
281
297
  n.warn("agent: no defineAgent() descriptor export found", { file: a });
282
298
  continue;
@@ -288,7 +304,7 @@ var R = [
288
304
  });
289
305
  continue;
290
306
  }
291
- let s = Ae(a), c;
307
+ let s = Fe(a), c;
292
308
  try {
293
309
  c = await e(s);
294
310
  } catch (e) {
@@ -300,7 +316,7 @@ var R = [
300
316
  continue;
301
317
  }
302
318
  let l = c.default;
303
- if (!v(l)) {
319
+ if (!b(l)) {
304
320
  n.warn("agent: executor file must default-export defineAgentExecutor(descriptor, {...})", {
305
321
  file: s,
306
322
  name: o.name
@@ -315,7 +331,7 @@ var R = [
315
331
  });
316
332
  }
317
333
  return { agents: r };
318
- }, W = /\.connection\.tsx?$/, Me = (e) => e.replace(W, ""), Ne = async (t, n) => {
334
+ }, U = /\.connection\.tsx?$/, Le = (e) => e.replace(U, ""), Re = async (t, n) => {
319
335
  let r = [], i = /* @__PURE__ */ new Map();
320
336
  for (let a of t) {
321
337
  let t;
@@ -358,26 +374,26 @@ var R = [
358
374
  }
359
375
  return r.length > 0 && n.info("discovered connections", {
360
376
  connections: r.map((e) => `${e.definition.id} (${e.definition.kind})`),
361
- files: r.map((e) => Me(o(e.file)))
377
+ files: r.map((e) => Le(a(e.file)))
362
378
  }), r;
363
- }, G = (e) => typeof e.attributes["framework.kind"] == "string" && e.attributes["framework.kind"].startsWith("subscription."), K = (e) => {
379
+ }, W = (e) => typeof e.attributes["framework.kind"] == "string" && e.attributes["framework.kind"].startsWith("subscription."), G = (e) => {
364
380
  if (e.name.includes("_voltro_traces")) return !0;
365
381
  for (let t in e.attributes) {
366
382
  let n = e.attributes[t];
367
383
  if (typeof n == "string" && n.includes("_voltro_traces")) return !0;
368
384
  }
369
385
  return !1;
370
- }, Pe = (e) => typeof e.attributes["framework.kind"] == "string" && e.attributes["framework.kind"].startsWith("subscription"), Fe = 1e3, Ie = 500, Le = 50, q = class {
386
+ }, ze = (e) => typeof e.attributes["framework.kind"] == "string" && e.attributes["framework.kind"].startsWith("subscription"), Be = 1e3, Ve = 500, He = 50, K = class {
371
387
  capacity;
372
388
  buffer = [];
373
- constructor(e = Fe) {
389
+ constructor(e = Be) {
374
390
  this.capacity = e;
375
391
  }
376
392
  append(e) {
377
393
  this.buffer.push(e), this.buffer.length > this.capacity && this.buffer.shift();
378
394
  }
379
395
  query(e = {}) {
380
- let t = e.since ?? 0, n = e.until ?? Date.now(), r = Math.min(e.max ?? Ie, this.capacity), i = e.traceId, a = e.minDurationMs, o = e.status, s = e.name?.toLowerCase(), c = [];
396
+ let t = e.since ?? 0, n = e.until ?? Date.now(), r = Math.min(e.max ?? Ve, this.capacity), i = e.traceId, a = e.minDurationMs, o = e.status, s = e.name?.toLowerCase(), c = [];
381
397
  for (let e = this.buffer.length - 1; e >= 0 && c.length < r; e--) {
382
398
  let r = this.buffer[e];
383
399
  r.startMs < t || r.startMs > n || i !== void 0 && r.traceId !== i || a !== void 0 && r.durationMs < a || o !== void 0 && r.status !== o || s !== void 0 && !r.name.toLowerCase().includes(s) || c.push(r);
@@ -385,7 +401,7 @@ var R = [
385
401
  return c.reverse();
386
402
  }
387
403
  queryGrouped(e = {}) {
388
- let t = e.since ?? 0, n = e.maxTraces ?? Le, r = e.onlyErrors ?? !1, i = /* @__PURE__ */ new Map();
404
+ let t = e.since ?? 0, n = e.maxTraces ?? He, r = e.onlyErrors ?? !1, i = /* @__PURE__ */ new Map();
389
405
  for (let e of this.buffer) {
390
406
  if (e.startMs < t) continue;
391
407
  let n = i.get(e.traceId);
@@ -396,7 +412,7 @@ var R = [
396
412
  t.sort((e, t) => e.startMs - t.startMs);
397
413
  let n = t.some((e) => e.status === "error");
398
414
  if (r && !n) continue;
399
- let i = t[0].startMs, o = t.reduce((e, t) => t.endMs > e ? t.endMs : e, i), s = t.filter(G), c = s.length > 0 || t.some(Pe), l = s.reduce((e, t) => e === void 0 || t.startMs > e.startMs ? t : e, void 0);
415
+ let i = t[0].startMs, o = t.reduce((e, t) => t.endMs > e ? t.endMs : e, i), s = t.filter(W), c = s.length > 0 || t.some(ze), l = s.reduce((e, t) => e === void 0 || t.startMs > e.startMs ? t : e, void 0);
400
416
  a.push({
401
417
  traceId: e,
402
418
  rootName: t[0].name,
@@ -421,69 +437,69 @@ var R = [
421
437
  clear() {
422
438
  this.buffer = [];
423
439
  }
424
- }, J = null, Re = () => (J === null && (J = new q()), J), Y = /* @__PURE__ */ new Set([
440
+ }, q = null, Ue = () => (q === null && (q = new K()), q), We = /* @__PURE__ */ new Set([
425
441
  "off",
426
442
  "errors",
427
443
  "interesting",
428
444
  "all"
429
- ]), X = (e, t, n, r) => {
445
+ ]), J = (e, t, n, r) => {
430
446
  let i = Number(e);
431
447
  return Number.isFinite(i) ? Math.min(r, Math.max(n, i)) : t;
432
- }, ze = (e) => e !== void 0 && [
448
+ }, Ge = (e) => e !== void 0 && [
433
449
  "1",
434
450
  "true",
435
451
  "yes",
436
452
  "on"
437
- ].includes(e.toLowerCase()), Be = (e) => {
453
+ ].includes(e.toLowerCase()), Y = (e) => {
438
454
  let t = Number(e);
439
455
  return Number.isFinite(t) && t > 0 ? t : 24;
440
- }, Z = (e = process.env) => {
441
- let t = (e.VOLTRO_TRACING_BUFFER ?? "").toLowerCase() === "off", n = X(e.VOLTRO_TRACING_SAMPLE, 1, 0, 1), r = (e.VOLTRO_TRACING_PERSIST ?? "").toLowerCase(), i = e.NODE_ENV === "production" ? "off" : "interesting";
456
+ }, X = (e = process.env) => {
457
+ let t = (e.VOLTRO_TRACING_BUFFER ?? "").toLowerCase() === "off", n = J(e.VOLTRO_TRACING_SAMPLE, 1, 0, 1), r = (e.VOLTRO_TRACING_PERSIST ?? "").toLowerCase(), i = e.NODE_ENV === "production" ? "off" : "interesting";
442
458
  return {
443
- mode: Y.has(r) ? r : n <= 0 ? "off" : i,
459
+ mode: We.has(r) ? r : n <= 0 ? "off" : i,
444
460
  sampleRate: n,
445
- slowMs: X(e.VOLTRO_TRACING_SLOW_MS, 500, 0, 2 ** 53 - 1),
446
- ttlHours: Be(e.VOLTRO_TRACING_TTL_HOURS),
447
- persistDelivery: ze(e.VOLTRO_TRACING_PERSIST_DELIVERY),
461
+ slowMs: J(e.VOLTRO_TRACING_SLOW_MS, 500, 0, 2 ** 53 - 1),
462
+ ttlHours: Y(e.VOLTRO_TRACING_TTL_HOURS),
463
+ persistDelivery: Ge(e.VOLTRO_TRACING_PERSIST_DELIVERY),
448
464
  bufferDisabled: t
449
465
  };
450
- }, Q = (e = process.env) => {
451
- let t = Z(e);
466
+ }, Z = (e = process.env) => {
467
+ let t = X(e);
452
468
  return !t.bufferDisabled && t.mode !== "off";
453
- }, Ve = (e, t) => {
469
+ }, Ke = (e, t) => {
454
470
  if (t >= 1) return !0;
455
471
  if (t <= 0) return !1;
456
472
  let n = 2166136261;
457
473
  for (let t = 0; t < e.length; t++) n ^= e.charCodeAt(t), n = Math.imul(n, 16777619);
458
474
  return (n >>> 0) % 1e3 < t * 1e3;
459
- }, He = (e, t) => {
460
- if (t.mode === "off" || K(e) || G(e) && !t.persistDelivery) return !1;
475
+ }, qe = (e, t) => {
476
+ if (t.mode === "off" || G(e) || W(e) && !t.persistDelivery) return !1;
461
477
  let n = e.status === "error";
462
478
  if (t.mode === "errors") return n;
463
479
  if (n) return !0;
464
- if (!Ve(e.traceId, t.sampleRate)) return !1;
480
+ if (!Ke(e.traceId, t.sampleRate)) return !1;
465
481
  if (t.mode === "all") return !0;
466
482
  let r = e.parentSpanId === null || e.parentSpanId === void 0 || e.parentSpanId === "", i = typeof e.durationMs == "number" && e.durationMs >= t.slowMs;
467
483
  return r || i;
468
- }, Ue = (e) => {
484
+ }, Je = (e) => {
469
485
  if (e.bufferDisabled) return "durable traces: OFF (VOLTRO_TRACING_BUFFER=off)";
470
486
  if (e.mode === "off") return "durable traces: OFF — _voltro_traces not created (prod default; set VOLTRO_TRACING_PERSIST=interesting to enable, or use OTLP)";
471
487
  let t = e.mode === "interesting" ? ` (errors + slow≥${e.slowMs}ms + roots)` : e.mode === "errors" ? " (errors only)" : "";
472
488
  return `durable traces: mode=${e.mode}${t}` + (e.sampleRate < 1 ? ` · sample=${e.sampleRate}` : "") + (e.persistDelivery ? " · +delivery" : "") + ` · ttl=${e.ttlHours}h`;
473
- }, We = (e = 30 * 6e4) => {
489
+ }, Ye = (e = 30 * 6e4) => {
474
490
  let t = /* @__PURE__ */ new Map();
475
491
  return (n, r) => {
476
492
  let i = t.get(n);
477
493
  return i !== void 0 && r - i < e ? !1 : (t.set(n, r), !0);
478
494
  };
479
- }, Ge = (e) => {
480
- let { store: t, log: n } = e, r = e.policy ?? Z();
481
- n.info(Ue(r));
482
- let i = We(), a = [], o = () => {};
495
+ }, Xe = (e) => {
496
+ let { store: t, log: n } = e, r = e.policy ?? X();
497
+ n.info(Je(r));
498
+ let i = Ye(), a = [], o = () => {};
483
499
  if (r.mode !== "off") {
484
500
  let e = [], s = 0;
485
501
  o = (t) => {
486
- He(t, r) && (e.length >= 5e3 && (e.shift(), s += 1, i("flush-drop", Date.now()) && (n.warn(`trace flush queue saturated — dropping durable spans (${s}+ since last warning). Durable inflow exceeds write throughput; reduce it with VOLTRO_TRACING_PERSIST=errors|interesting or VOLTRO_TRACING_SAMPLE<1.`), s = 0)), e.push(t));
502
+ qe(t, r) && (e.length >= 5e3 && (e.shift(), s += 1, i("flush-drop", Date.now()) && (n.warn(`trace flush queue saturated — dropping durable spans (${s}+ since last warning). Durable inflow exceeds write throughput; reduce it with VOLTRO_TRACING_PERSIST=errors|interesting or VOLTRO_TRACING_SAMPLE<1.`), s = 0)), e.push(t));
487
503
  };
488
504
  let c = async () => {
489
505
  if (e.length === 0) return;
@@ -525,7 +541,7 @@ var R = [
525
541
  let n = await t.query({
526
542
  table: "_voltro_traces",
527
543
  order: [],
528
- predicate: O("startedAt", e),
544
+ predicate: A("startedAt", e),
529
545
  projection: ["id"],
530
546
  skip: void 0,
531
547
  take: c
@@ -549,28 +565,27 @@ var R = [
549
565
  for (let e of a) clearInterval(e);
550
566
  }
551
567
  };
552
- }, Ke = async (e) => {
553
- let o = !1, c = !1, l = !1, d = !1, f = !1, p = !1, m = async (e) => {
554
- let h = await u.readdir(e, { withFileTypes: !0 }).catch(() => []);
555
- for (let u of h) if (u.isDirectory()) {
556
- if (u.name === "node_modules" || u.name === "dist" || u.name === ".framework" || u.name.startsWith(".")) continue;
557
- await m(s(e, u.name));
568
+ }, Q = async (e) => {
569
+ let a = !1, s = !1, c = !1, u = !1, d = !1, f = async (e) => {
570
+ let p = await l.readdir(e, { withFileTypes: !0 }).catch(() => []);
571
+ for (let l of p) if (l.isDirectory()) {
572
+ if (l.name === "node_modules" || l.name === "dist" || l.name === ".framework" || l.name.startsWith(".")) continue;
573
+ await f(o(e, l.name));
558
574
  } else {
559
- let e = u.name;
560
- (r.test(e) || t.test(e)) && (o = !0), n.test(e) && (c = !0), i.test(e) && (l = !0), H.test(e) && (d = !0), a.test(e) && (f = !0), W.test(e) && (p = !0);
575
+ let e = l.name;
576
+ (r.test(e) || t.test(e)) && (a = !0), n.test(e) && (s = !0), i.test(e) && (c = !0), V.test(e) && (u = !0), U.test(e) && (d = !0);
561
577
  }
562
578
  };
563
- return await m(e), {
564
- workflows: o,
565
- schedules: c,
566
- webhooks: l,
567
- agents: d,
568
- outbox: f,
569
- connections: p
579
+ return await f(e), {
580
+ workflows: a,
581
+ schedules: s,
582
+ webhooks: c,
583
+ agents: u,
584
+ connections: d
570
585
  };
571
- }, qe = async (e) => {
586
+ }, Ze = async (e) => {
572
587
  try {
573
- return (await import(c(s(e, "app.config.ts")).href)).default?.plugins ?? [];
588
+ return (await import(s(o(e, "app.config.ts")).href)).default?.plugins ?? [];
574
589
  } catch {
575
590
  return [];
576
591
  }
@@ -578,22 +593,21 @@ var R = [
578
593
  let t = /* @__PURE__ */ new Map(), n = (e) => {
579
594
  e?.tableName && !t.has(e.tableName) && t.set(e.tableName, e);
580
595
  };
581
- for (let t of z({
596
+ for (let t of R({
582
597
  workflows: e.mix.workflows,
583
598
  schedules: e.mix.schedules,
584
599
  webhooks: e.mix.webhooks,
585
- traces: Q(),
600
+ traces: Z(),
586
601
  cdc: e.cdc,
587
602
  ...e.cdcDialect ? { cdcDialect: e.cdcDialect } : {},
588
- undo: ae(),
589
- outbox: e.mix.outbox,
603
+ undo: se(),
590
604
  connections: e.mix.connections
591
605
  })) n(t);
592
- e.mix.agents && (n(de), n(ue), n(pe), n(fe));
593
- for (let t of De(e.plugins)) n(t);
606
+ e.mix.agents && (n(h), n(ge), n(v), n(g)), e.mix.workflows && n(_);
607
+ for (let t of Me(e.plugins)) n(t);
594
608
  return [...t.values()];
595
- }, Je = async (e) => {
596
- let t = await Ke(e.root), n = await qe(e.root), r = (process.env.DB_DIALECT ?? "postgres").toLowerCase(), i = r === "mariadb" ? "mariadb" : r === "mssql" ? "mssql" : void 0;
609
+ }, Qe = async (e) => {
610
+ let t = await Q(e.root), n = await Ze(e.root), r = (process.env.DB_DIALECT ?? "postgres").toLowerCase(), i = r === "mariadb" ? "mariadb" : r === "mssql" ? "mssql" : void 0;
597
611
  return $({
598
612
  mix: t,
599
613
  plugins: n,
@@ -602,4 +616,4 @@ var R = [
602
616
  });
603
617
  };
604
618
  //#endregion
605
- export { be as _, q as a, he as b, W as c, Oe as d, U as f, Ee as g, Te as h, Q as i, Ne as l, ke as m, $ as n, Re as o, je as p, Ge as r, K as s, Je as t, H as u, ye as v, z as x, B as y };
619
+ export { R as S, je as _, Z as a, z as b, G as c, V as d, Ne as f, Ae as g, Pe as h, Xe as i, U as l, Ie as m, $ as n, K as o, H as p, Q as r, Ue as s, Qe as t, Re as u, Te as v, be as x, we as y };
package/dist/index.d.ts CHANGED
@@ -52,8 +52,13 @@ export declare interface TemplateInfo extends TemplateManifest {
52
52
  * - `api` — a long-running backend (app.config `type: 'api'`).
53
53
  * - `web` — a frontend (app.config `type: 'web'`); gets a dev-server port.
54
54
  * - `serverless` — a standalone `*.serverless.ts` function bundle deployed
55
- * SEPARATELY via `voltro serverless` (no long-running server, no port). */
56
- declare type TemplateKind = 'api' | 'web' | 'serverless';
55
+ * SEPARATELY via `voltro serverless` (no long-running server, no port).
56
+ * - `mobile` an Expo (React Native) app. NOT run by `voltro dev` (Expo owns
57
+ * Metro / `expo start`); the scaffolder registers it in the workspace so the
58
+ * sibling api's typed rpc surface resolves, but allocates NO port and adds it
59
+ * to NO dev-orchestration set. `app.config.ts` is Expo's config, not
60
+ * Voltro's `type:` config. See `plans/open/mobile/01-template-and-expo-toolchain.md`. */
61
+ declare type TemplateKind = 'api' | 'web' | 'serverless' | 'mobile';
57
62
 
58
63
  declare interface TemplateManifest {
59
64
  /** Stable id matching the directory name. */
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-82BDEktg.js";
1
+ import { a as e, i as t, n, o as r, r as i, t as a } from "./commands-BkJft9K2.js";
2
2
  //#region src/index.ts
3
3
  var o = "framework";
4
4
  //#endregion