@liquidmetal-ai/raindrop 0.13.0 → 0.15.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 (250) hide show
  1. package/README.md +327 -89
  2. package/bundle/build-CBEGQPJT.js +62 -0
  3. package/bundle/{chunk-IEF2XC25.js → chunk-2PH3PHH3.js} +5 -3
  4. package/bundle/{chunk-4HZ22KOV.js → chunk-3CMR7ES5.js} +4 -4
  5. package/bundle/{chunk-JSBM2JYW.js → chunk-3EYKCHIK.js} +1 -1
  6. package/bundle/chunk-5XHDP4VK.js +1697 -0
  7. package/bundle/{chunk-TSQK4HH6.js → chunk-674GMSXY.js} +1 -1
  8. package/bundle/{chunk-PS3WZBDF.js → chunk-6L4V66WZ.js} +1105 -2728
  9. package/bundle/{chunk-5245CEUM.js → chunk-AGG7JZVH.js} +2 -2
  10. package/bundle/{chunk-3GFKUF5D.js → chunk-B3IY2XS6.js} +4 -2
  11. package/bundle/{chunk-WIDI65NO.js → chunk-CBAXTRCS.js} +1 -1
  12. package/bundle/{chunk-JLVDTXO2.js → chunk-DPV5HIG7.js} +4 -4
  13. package/bundle/{chunk-36GNZK4A.js → chunk-EVXLXWP7.js} +1 -1
  14. package/bundle/{chunk-4YVU5KEQ.js → chunk-HN3AAKRY.js} +4 -2
  15. package/bundle/{chunk-NVNEQXHN.js → chunk-IGLE4Y3B.js} +7 -5
  16. package/bundle/{chunk-FGSYWVBA.js → chunk-IQ6HFRA6.js} +1 -1
  17. package/bundle/{chunk-O3QZDJ75.js → chunk-JQONDSHY.js} +2 -2
  18. package/bundle/{chunk-W4IPOFZC.js → chunk-KADMFJLN.js} +8 -6
  19. package/bundle/chunk-KG5BLUGU.js +246 -0
  20. package/bundle/{chunk-V5LHJTYS.js → chunk-KLOYSTZY.js} +13 -2
  21. package/bundle/{chunk-ETC5VU7H.js → chunk-KXHVSLAI.js} +1 -1
  22. package/bundle/{chunk-Y4WFGNPM.js → chunk-L6FRQULN.js} +1 -1
  23. package/bundle/{chunk-3QCVYSRU.js → chunk-LT3BFQ4O.js} +1 -1
  24. package/bundle/{chunk-KQZJHBNG.js → chunk-MBLKVNI5.js} +1 -1
  25. package/bundle/{chunk-6AIUQUUM.js → chunk-MFMVJZW6.js} +71 -15
  26. package/bundle/{chunk-25T7MEKO.js → chunk-MJBLNWG3.js} +1 -1
  27. package/bundle/{chunk-MSJ33O5Y.js → chunk-NRCQIE3Z.js} +95 -115
  28. package/bundle/{chunk-XKKPPSPC.js → chunk-OCYTN4IH.js} +2 -2
  29. package/bundle/{chunk-2GAMWFJE.js → chunk-QEF5D4VE.js} +1 -1
  30. package/bundle/{chunk-4B3QYXBA.js → chunk-T7MQCLXF.js} +5 -3
  31. package/bundle/{chunk-LDFYPOXJ.js → chunk-TFQY5TSY.js} +1 -1
  32. package/bundle/{chunk-BWK4MC7Y.js → chunk-USZXZZAR.js} +8 -6
  33. package/bundle/{chunk-ER2RCPCY.js → chunk-V54KHS5B.js} +2 -2
  34. package/bundle/{chunk-YSKASURB.js → chunk-V6J23FL2.js} +1 -1
  35. package/bundle/{chunk-UHSTDJ7X.js → chunk-VN2QYX4C.js} +1 -1
  36. package/bundle/{chunk-Z4OWKG7J.js → chunk-VOT5MMEY.js} +1 -1
  37. package/bundle/{chunk-W6GU26WO.js → chunk-WG6BDFPZ.js} +1 -1
  38. package/bundle/{chunk-AK77X5GL.js → chunk-XX74I5RK.js} +4 -2
  39. package/bundle/{chunk-6BT265R3.js → chunk-YQCRWPNI.js} +1 -1
  40. package/bundle/commands/annotation/get.js +3 -3
  41. package/bundle/commands/annotation/list.js +3 -3
  42. package/bundle/commands/annotation/put.js +3 -3
  43. package/bundle/commands/auth/apikey.js +2 -2
  44. package/bundle/commands/auth/list.js +2 -2
  45. package/bundle/commands/auth/login.js +2 -2
  46. package/bundle/commands/auth/logout.js +2 -2
  47. package/bundle/commands/auth/select.js +3 -3
  48. package/bundle/commands/bucket/create-credential.js +2 -2
  49. package/bundle/commands/bucket/delete-credential.js +2 -2
  50. package/bundle/commands/bucket/get-credential.js +2 -2
  51. package/bundle/commands/bucket/list-credentials.js +2 -2
  52. package/bundle/commands/build/actor/setup.js +124 -0
  53. package/bundle/commands/build/branch.js +10 -10
  54. package/bundle/commands/build/bucket-events/setup.js +146 -0
  55. package/bundle/commands/build/checkout.js +8 -8
  56. package/bundle/commands/build/clone.js +6 -6
  57. package/bundle/commands/build/delete.js +8 -8
  58. package/bundle/commands/build/deploy.js +10 -10
  59. package/bundle/commands/build/env/get.js +3 -3
  60. package/bundle/commands/build/env/list.js +2 -2
  61. package/bundle/commands/build/env/set.js +3 -3
  62. package/bundle/commands/build/env.js +2 -2
  63. package/bundle/commands/build/features.js +192 -0
  64. package/bundle/commands/build/find.js +4 -4
  65. package/bundle/commands/build/generate.js +52 -3
  66. package/bundle/commands/build/init-workspace.js +3 -3
  67. package/bundle/commands/build/init.js +15 -3
  68. package/bundle/commands/build/list.js +5 -5
  69. package/bundle/commands/build/queue/setup.js +133 -0
  70. package/bundle/commands/build/sandbox.js +6 -6
  71. package/bundle/commands/build/smartbucket/setup.js +165 -0
  72. package/bundle/commands/build/smartmemory/setup.js +171 -0
  73. package/bundle/commands/build/smartsql/setup.js +167 -0
  74. package/bundle/commands/build/start.js +2 -2
  75. package/bundle/commands/build/status.js +5 -5
  76. package/bundle/commands/build/stop.js +2 -2
  77. package/bundle/commands/build/stripe/dashboard.js +3 -3
  78. package/bundle/commands/build/stripe/onboard.js +3 -3
  79. package/bundle/commands/build/stripe/setup.js +3 -3
  80. package/bundle/commands/build/stripe/start.js +14 -14
  81. package/bundle/commands/build/stripe/status.js +3 -3
  82. package/bundle/commands/build/stripe/subscription/create.js +4 -4
  83. package/bundle/commands/build/stripe/subscription/get.js +4 -4
  84. package/bundle/commands/build/stripe/subscription/update.js +4 -4
  85. package/bundle/commands/build/tools/check.js +2 -2
  86. package/bundle/commands/build/tools/fmt.js +2 -2
  87. package/bundle/commands/build/unsandbox.js +6 -6
  88. package/bundle/commands/build/upload.js +5 -5
  89. package/bundle/commands/build/validate.js +85 -14
  90. package/bundle/commands/build/workos/delete.js +6 -6
  91. package/bundle/commands/build/workos/env/attach.js +3 -3
  92. package/bundle/commands/build/workos/env/attached.js +3 -3
  93. package/bundle/commands/build/workos/env/create.js +3 -3
  94. package/bundle/commands/build/workos/env/delete.js +3 -3
  95. package/bundle/commands/build/workos/env/detach.js +3 -3
  96. package/bundle/commands/build/workos/env/dev-login.js +3 -3
  97. package/bundle/commands/build/workos/env/get.js +3 -3
  98. package/bundle/commands/build/workos/env/list.js +3 -3
  99. package/bundle/commands/build/workos/env/set.js +3 -3
  100. package/bundle/commands/build/workos/invite.js +3 -3
  101. package/bundle/commands/build/workos/jwt.js +172 -0
  102. package/bundle/commands/build/workos/setup.js +3 -3
  103. package/bundle/commands/build/workos/status.js +3 -3
  104. package/bundle/commands/dns/create.js +2 -2
  105. package/bundle/commands/dns/delete.js +6 -6
  106. package/bundle/commands/dns/get.js +6 -6
  107. package/bundle/commands/dns/list.js +3 -3
  108. package/bundle/commands/dns/records/create.js +2 -2
  109. package/bundle/commands/dns/records/delete.js +3 -3
  110. package/bundle/commands/dns/records/get.js +2 -2
  111. package/bundle/commands/dns/records/list.js +2 -2
  112. package/bundle/commands/dns/records/update.js +2 -2
  113. package/bundle/commands/doctor.js +309 -0
  114. package/bundle/commands/logs/query.js +3 -3
  115. package/bundle/commands/logs/tail.js +3 -3
  116. package/bundle/commands/mcp/install-claude.js +2 -2
  117. package/bundle/commands/mcp/install-gemini.js +2 -2
  118. package/bundle/commands/mcp/install-goose.js +2 -2
  119. package/bundle/commands/mcp/status.js +2 -2
  120. package/bundle/commands/object/delete.js +5 -37
  121. package/bundle/commands/object/get.js +5 -37
  122. package/bundle/commands/object/list.js +7 -39
  123. package/bundle/commands/object/put.js +5 -37
  124. package/bundle/commands/query/chunk-search.js +14 -46
  125. package/bundle/commands/query/document.js +17 -55
  126. package/bundle/commands/query/events.js +2 -2
  127. package/bundle/commands/query/reindex.js +2 -2
  128. package/bundle/commands/query/search.js +14 -46
  129. package/bundle/commands/tail.js +2 -2
  130. package/bundle/index.js +1 -1
  131. package/dist/commands/build/actor/setup.d.ts +22 -0
  132. package/dist/commands/build/actor/setup.d.ts.map +1 -0
  133. package/dist/commands/build/actor/setup.js +116 -0
  134. package/dist/commands/build/bucket-events/setup.d.ts +22 -0
  135. package/dist/commands/build/bucket-events/setup.d.ts.map +1 -0
  136. package/dist/commands/build/bucket-events/setup.js +134 -0
  137. package/dist/commands/build/features.d.ts +19 -0
  138. package/dist/commands/build/features.d.ts.map +1 -0
  139. package/dist/commands/build/features.js +97 -0
  140. package/dist/commands/build/generate.d.ts +2 -0
  141. package/dist/commands/build/generate.d.ts.map +1 -1
  142. package/dist/commands/build/generate.js +52 -0
  143. package/dist/commands/build/init.d.ts.map +1 -1
  144. package/dist/commands/build/init.js +10 -0
  145. package/dist/commands/build/queue/setup.d.ts +21 -0
  146. package/dist/commands/build/queue/setup.d.ts.map +1 -0
  147. package/dist/commands/build/queue/setup.js +120 -0
  148. package/dist/commands/build/smartbucket/setup.d.ts +23 -0
  149. package/dist/commands/build/smartbucket/setup.d.ts.map +1 -0
  150. package/dist/commands/build/smartbucket/setup.js +167 -0
  151. package/dist/commands/build/smartmemory/setup.d.ts +23 -0
  152. package/dist/commands/build/smartmemory/setup.d.ts.map +1 -0
  153. package/dist/commands/build/smartmemory/setup.js +172 -0
  154. package/dist/commands/build/smartsql/setup.d.ts +23 -0
  155. package/dist/commands/build/smartsql/setup.d.ts.map +1 -0
  156. package/dist/commands/build/smartsql/setup.js +169 -0
  157. package/dist/commands/build/validate.d.ts +2 -0
  158. package/dist/commands/build/validate.d.ts.map +1 -1
  159. package/dist/commands/build/validate.js +80 -8
  160. package/dist/commands/build/workos/jwt.d.ts +23 -0
  161. package/dist/commands/build/workos/jwt.d.ts.map +1 -0
  162. package/dist/commands/build/workos/jwt.js +172 -0
  163. package/dist/commands/doctor.d.ts +27 -0
  164. package/dist/commands/doctor.d.ts.map +1 -0
  165. package/dist/commands/doctor.js +328 -0
  166. package/dist/commands/object/delete.d.ts +0 -2
  167. package/dist/commands/object/delete.d.ts.map +1 -1
  168. package/dist/commands/object/delete.js +3 -38
  169. package/dist/commands/object/get.d.ts +0 -2
  170. package/dist/commands/object/get.d.ts.map +1 -1
  171. package/dist/commands/object/get.js +3 -38
  172. package/dist/commands/object/list.d.ts +0 -2
  173. package/dist/commands/object/list.d.ts.map +1 -1
  174. package/dist/commands/object/list.js +5 -40
  175. package/dist/commands/object/put.d.ts +0 -2
  176. package/dist/commands/object/put.d.ts.map +1 -1
  177. package/dist/commands/object/put.js +3 -38
  178. package/dist/commands/query/chunk-search.d.ts +0 -2
  179. package/dist/commands/query/chunk-search.d.ts.map +1 -1
  180. package/dist/commands/query/chunk-search.js +12 -46
  181. package/dist/commands/query/document.d.ts +1 -3
  182. package/dist/commands/query/document.d.ts.map +1 -1
  183. package/dist/commands/query/document.js +16 -60
  184. package/dist/commands/query/search.d.ts +0 -2
  185. package/dist/commands/query/search.d.ts.map +1 -1
  186. package/dist/commands/query/search.js +12 -46
  187. package/dist/feature-catalog.d.ts +28 -0
  188. package/dist/feature-catalog.d.ts.map +1 -0
  189. package/dist/feature-catalog.js +104 -0
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.js +16 -2
  192. package/oclif.manifest.json +4811 -3433
  193. package/package.json +3 -3
  194. package/templates/examples/smartbucket-minimal.ts.hbs +87 -0
  195. package/templates/examples/smartmemory-minimal.ts.hbs +82 -0
  196. package/templates/examples/smartsql-minimal.ts.hbs +69 -0
  197. package/templates/handlers/actor/index.test.ts.hbs +48 -85
  198. package/templates/handlers/actor/index.ts.hbs +16 -316
  199. package/templates/handlers/bucket-event-notification/index.ts.hbs +32 -235
  200. package/templates/handlers/bucket-event-observer.ts.hbs +79 -0
  201. package/templates/handlers/http-service/index.test.ts.hbs +3 -0
  202. package/templates/handlers/http-service/index.ts.hbs +43 -15
  203. package/templates/handlers/queue-consumer-setup.ts.hbs +45 -0
  204. package/templates/handlers/task/index.test.ts.hbs +30 -112
  205. package/templates/handlers/task/index.ts.hbs +19 -58
  206. package/templates/init/RAINDROP.md.hbs +97 -1
  207. package/templates/init/eslint.config.js +43 -0
  208. package/templates/init/package.json.hbs +4 -1
  209. package/templates/init/tsconfig.json +3 -3
  210. package/bundle/chunk-23UBI7BN.js +0 -48
  211. package/bundle/chunk-2QWMBNE3.js +0 -384
  212. package/bundle/chunk-45IYWQDC.js +0 -384
  213. package/bundle/chunk-5YUO23QU.js +0 -4585
  214. package/bundle/chunk-6MIGCNUO.js +0 -75
  215. package/bundle/chunk-7ZJWA6HP.js +0 -805
  216. package/bundle/chunk-AIYVX2M7.js +0 -44
  217. package/bundle/chunk-BB5TNIEM.js +0 -48
  218. package/bundle/chunk-BUR3HFKH.js +0 -488
  219. package/bundle/chunk-BYSBS7KT.js +0 -488
  220. package/bundle/chunk-CX3RWI62.js +0 -28658
  221. package/bundle/chunk-DLH7MI57.js +0 -305
  222. package/bundle/chunk-E3WJIYJZ.js +0 -12148
  223. package/bundle/chunk-EX7NOPRF.js +0 -12148
  224. package/bundle/chunk-F76JQS2J.js +0 -231
  225. package/bundle/chunk-FBOXMVKD.js +0 -28679
  226. package/bundle/chunk-FTPZ6SQW.js +0 -238909
  227. package/bundle/chunk-H3CFZ7ZH.js +0 -74
  228. package/bundle/chunk-HXOILVWA.js +0 -384
  229. package/bundle/chunk-IMP7O5AC.js +0 -22452
  230. package/bundle/chunk-IPYOAKRE.js +0 -231
  231. package/bundle/chunk-J7HN6XF2.js +0 -4461
  232. package/bundle/chunk-JOLOAALA.js +0 -231
  233. package/bundle/chunk-JZ2G4Q35.js +0 -4585
  234. package/bundle/chunk-KVAWPWF7.js +0 -231
  235. package/bundle/chunk-MEUAAIXV.js +0 -28657
  236. package/bundle/chunk-QBWFE57Z.js +0 -384
  237. package/bundle/chunk-SP3LOXPC.js +0 -46
  238. package/bundle/chunk-T7C564PR.js +0 -28678
  239. package/bundle/chunk-UFH545WJ.js +0 -22452
  240. package/bundle/chunk-UHVMPWM5.js +0 -315
  241. package/bundle/chunk-VB7ZTSZV.js +0 -1089
  242. package/bundle/chunk-VBIJDFMJ.js +0 -384
  243. package/bundle/chunk-VR7RLTE3.js +0 -231
  244. package/bundle/chunk-WFZUJLEC.js +0 -231
  245. package/bundle/chunk-YDGJTLVZ.js +0 -133
  246. package/bundle/chunk-YPNQ7UFK.js +0 -502
  247. package/bundle/chunk-YXFDRMSN.js +0 -384
  248. package/dist/lib/dns-utils.d.ts +0 -7
  249. package/dist/lib/dns-utils.d.ts.map +0 -1
  250. package/dist/lib/dns-utils.js +0 -44
@@ -0,0 +1,1697 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
8
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
9
+ }) : x)(function(x) {
10
+ if (typeof require !== "undefined") return require.apply(this, arguments);
11
+ throw Error('Dynamic require of "' + x + '" is not supported');
12
+ });
13
+ var __esm = (fn, res) => function __init() {
14
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
15
+ };
16
+ var __commonJS = (cb, mod) => function __require2() {
17
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
18
+ };
19
+ var __export = (target, all) => {
20
+ for (var name in all)
21
+ __defProp(target, name, { get: all[name], enumerable: true });
22
+ };
23
+ var __copyProps = (to, from, except, desc) => {
24
+ if (from && typeof from === "object" || typeof from === "function") {
25
+ for (let key of __getOwnPropNames(from))
26
+ if (!__hasOwnProp.call(to, key) && key !== except)
27
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
28
+ }
29
+ return to;
30
+ };
31
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
32
+ // If the importer is in node compatibility mode or this is not an ESM
33
+ // file that has been converted to a CommonJS file using a Babel-
34
+ // compatible transform (i.e. "__esModule" has not been set), then set
35
+ // "default" to the CommonJS "module.exports" for node compatibility.
36
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
37
+ mod
38
+ ));
39
+
40
+ // bin/cjs-shims.js
41
+ import { createRequire } from "node:module";
42
+ import path from "node:path";
43
+ import url from "node:url";
44
+ var init_cjs_shims = __esm({
45
+ "bin/cjs-shims.js"() {
46
+ "use strict";
47
+ globalThis.require = createRequire(import.meta.url);
48
+ globalThis.__filename = url.fileURLToPath(import.meta.url);
49
+ globalThis.__dirname = path.dirname(__filename);
50
+ }
51
+ });
52
+
53
+ // ../drizzle/dist/appify/build.js
54
+ init_cjs_shims();
55
+
56
+ // ../drizzle/dist/appify/parse.js
57
+ init_cjs_shims();
58
+ var TOKEN_PATTERNS = [
59
+ { type: "number", pattern: /^\d+(\.\d+)?/ },
60
+ { type: "comment", pattern: /^(\/\/|#)[^\n]*/ },
61
+ { type: "operator", pattern: /^[+\-*/%=]/ },
62
+ { type: "whitespace", pattern: /^[ \t]+/ },
63
+ { type: "boolean", pattern: /^(true|false)/ },
64
+ { type: "string", pattern: /^'(?:[^'\\\n]|\\.)*'/ },
65
+ { type: "string", pattern: /^"(?:[^"\\\n]|\\.)*"/ },
66
+ { type: "identifier", pattern: /^[a-zA-Z_]\w*/ },
67
+ { type: "newline", pattern: /^\n/ },
68
+ { type: "curly", pattern: /^[{}]/ },
69
+ { type: "comma", pattern: /^,/ },
70
+ // eslint-disable-next-line no-useless-escape
71
+ { type: "bracket", pattern: /^[\[\]]/ },
72
+ { type: "parenthesis", pattern: /^[()]/ },
73
+ { type: "unknown", pattern: /^./ }
74
+ ];
75
+ var Tokenizer = class {
76
+ input;
77
+ cursor = 0;
78
+ line = 1;
79
+ column = 1;
80
+ constructor(input) {
81
+ this.input = input;
82
+ }
83
+ // Get the next token from the input. The optional ignore parameter
84
+ // can be used to skip certain token types. This could possibly be
85
+ // removed, but whitespace might be useful at some point.
86
+ next(ignore = ["whitespace"]) {
87
+ if (this.eof()) {
88
+ return {
89
+ type: "end",
90
+ value: "",
91
+ start: this.cursor,
92
+ end: this.cursor,
93
+ line: this.line,
94
+ column: this.column
95
+ };
96
+ }
97
+ for (const { type, pattern } of TOKEN_PATTERNS) {
98
+ const result = this.input.slice(this.cursor).match(pattern);
99
+ if (result) {
100
+ const token = {
101
+ type,
102
+ value: result[0],
103
+ start: this.cursor,
104
+ end: this.cursor + result[0].length,
105
+ line: this.line,
106
+ column: this.column
107
+ };
108
+ this.cursor += result[0].length;
109
+ if (type === "newline") {
110
+ this.line++;
111
+ this.column = 1;
112
+ } else {
113
+ this.column += result[0].length;
114
+ }
115
+ if (ignore.includes(token.type)) {
116
+ return this.next(ignore);
117
+ }
118
+ return token;
119
+ }
120
+ }
121
+ throw new Error(`Unknown token at ${this.line}:${this.column}`);
122
+ }
123
+ peek(ignore = ["whitespace"]) {
124
+ const cursor = this.cursor;
125
+ const line = this.line;
126
+ const column = this.column;
127
+ const token = this.next(ignore);
128
+ this.cursor = cursor;
129
+ this.line = line;
130
+ this.column = column;
131
+ return token;
132
+ }
133
+ eof() {
134
+ return this.cursor >= this.input.length;
135
+ }
136
+ };
137
+ var Parser = class {
138
+ tokenizer;
139
+ errors = [];
140
+ constructor(tokenizer) {
141
+ this.tokenizer = tokenizer;
142
+ }
143
+ // Parse the input and return the AST. The optional node parameter
144
+ // is used when this is recursed.
145
+ parse(root) {
146
+ if (root === void 0) {
147
+ root = {
148
+ type: "block",
149
+ children: [],
150
+ line: this.tokenizer.line,
151
+ column: this.tokenizer.column,
152
+ start: this.tokenizer.cursor,
153
+ end: 0
154
+ };
155
+ }
156
+ while (!this.tokenizer.eof()) {
157
+ const token = this.tokenizer.peek();
158
+ switch (token.type) {
159
+ case "identifier":
160
+ root.children.push(this.parseIdentifier());
161
+ break;
162
+ case "newline":
163
+ root.children.push(this.tokenizer.next());
164
+ break;
165
+ case "comment":
166
+ root.children.push(this.tokenizer.next());
167
+ break;
168
+ case "curly":
169
+ if (token.value === "}") {
170
+ root.end = this.tokenizer.cursor;
171
+ return root;
172
+ } else {
173
+ this.errors.push({
174
+ expected: ["identifier"],
175
+ received: "curly",
176
+ message: `Unexpected ${token.value} at ${token.line}:${token.column}`,
177
+ line: token.line,
178
+ column: token.column,
179
+ start: token.start,
180
+ end: token.end
181
+ });
182
+ this.tokenizer.next();
183
+ }
184
+ break;
185
+ case "end":
186
+ root.end = this.tokenizer.cursor;
187
+ return root;
188
+ default:
189
+ this.errors.push({
190
+ expected: ["identifier", "newline", "comment"],
191
+ received: token.type,
192
+ message: `Unexpected ${token.type} at ${token.line}:${token.column}`,
193
+ line: token.line,
194
+ column: token.column,
195
+ start: token.start,
196
+ end: token.end
197
+ });
198
+ root.end = this.tokenizer.cursor;
199
+ return root;
200
+ }
201
+ }
202
+ root.end = this.tokenizer.cursor;
203
+ return root;
204
+ }
205
+ // Parse an identifier, which could be a stanza, assignment.
206
+ parseIdentifier() {
207
+ const token = this.tokenizer.next();
208
+ if (token.type !== "identifier") {
209
+ throw new Error(`Expected identifier but got ${token.type} at ${token.line}:${token.column}`);
210
+ }
211
+ const next = this.tokenizer.peek();
212
+ if (next.type === "curly" && next.value === "{") {
213
+ return this.parseStanza(token);
214
+ }
215
+ if (["string", "number", "boolean"].includes(next.type)) {
216
+ return this.parseStanza(token);
217
+ }
218
+ if (next.type === "operator" && next.value === "=") {
219
+ return this.parseAssignment(token);
220
+ }
221
+ this.errors.push({
222
+ expected: ["curly", "string", "operator"],
223
+ received: next.type,
224
+ message: `Expected {, argument or operator at ${next.line}:${next.column}`,
225
+ line: next.line,
226
+ column: next.column,
227
+ start: next.start,
228
+ end: next.end
229
+ });
230
+ return { type: "empty", line: next.line, column: next.column, start: next.start, end: next.end };
231
+ }
232
+ // Parse a stanza, which is a block of assignments and other
233
+ // stanzas.
234
+ parseStanza(token) {
235
+ const stanza = {
236
+ type: "stanza",
237
+ name: token.value,
238
+ args: [],
239
+ block: null,
240
+ line: token.line,
241
+ column: token.column,
242
+ start: token.start,
243
+ end: token.end
244
+ };
245
+ let next = this.tokenizer.peek();
246
+ while (next.type !== "curly") {
247
+ if (["string", "number", "boolean"].includes(next.type)) {
248
+ stanza.args.push(this.tokenizer.next());
249
+ next = this.tokenizer.peek();
250
+ continue;
251
+ }
252
+ this.errors.push({
253
+ expected: ["string", "number", "boolean"],
254
+ received: next.type,
255
+ message: `Expected argument at ${next.line}:${next.column}`,
256
+ line: next.line,
257
+ column: next.column,
258
+ start: next.start,
259
+ end: next.end
260
+ });
261
+ this.tokenizer.next();
262
+ next = this.tokenizer.peek();
263
+ }
264
+ this.expect("curly", "{");
265
+ stanza.block = this.parse();
266
+ this.expect("curly", "}");
267
+ stanza.end = this.tokenizer.cursor;
268
+ return stanza;
269
+ }
270
+ // Parse an assignment, which is an assignment to an expression.
271
+ parseAssignment(token) {
272
+ if (token.type !== "identifier") {
273
+ throw new Error(`Expected identifier but got ${token.type} at ${token.line}:${token.column}`);
274
+ }
275
+ const key = token;
276
+ const operator = this.expect("operator", "=");
277
+ const value = this.parseExpression();
278
+ return {
279
+ type: "assignment",
280
+ operator,
281
+ key,
282
+ value,
283
+ line: key.line,
284
+ column: key.column,
285
+ start: key.start,
286
+ end: value.end
287
+ };
288
+ }
289
+ // Parse an expression. We're not building a calculator (yet), so we
290
+ // just accept a value on the right for now.
291
+ parseExpression(ignore) {
292
+ const token = this.tokenizer.next(ignore || ["whitespace"]);
293
+ switch (token.type) {
294
+ case "string":
295
+ case "number":
296
+ case "boolean":
297
+ return token;
298
+ case "bracket":
299
+ if (token.value === "[") {
300
+ return this.parseArray();
301
+ }
302
+ break;
303
+ case "curly":
304
+ if (token.value === "{") {
305
+ return this.parseObject();
306
+ } else {
307
+ break;
308
+ }
309
+ default:
310
+ break;
311
+ }
312
+ this.errors.push({
313
+ expected: ["expression"],
314
+ received: token.type,
315
+ message: `Expected expression but got ${token.type}`,
316
+ line: token.line,
317
+ column: token.column,
318
+ start: token.start,
319
+ end: token.end
320
+ });
321
+ return {
322
+ type: "string",
323
+ value: '"<error>"',
324
+ line: token.line,
325
+ column: token.column,
326
+ start: token.start,
327
+ end: token.end
328
+ };
329
+ }
330
+ parseArray() {
331
+ const elements = [];
332
+ let next = this.tokenizer.peek(["whitespace", "newline"]);
333
+ if (next.type === "bracket" && next.value === "]") {
334
+ this.tokenizer.next(["whitespace", "newline"]);
335
+ return { type: "array", elements, line: next.line, column: next.column, start: next.start, end: next.end };
336
+ }
337
+ while (true) {
338
+ elements.push(this.parseExpression(["whitespace", "newline"]));
339
+ next = this.tokenizer.peek(["whitespace", "newline"]);
340
+ if (next.type === "bracket" && next.value === "]") {
341
+ this.tokenizer.next(["whitespace", "newline"]);
342
+ return { type: "array", elements, line: next.line, column: next.column, start: next.start, end: next.end };
343
+ }
344
+ next = this.tokenizer.peek(["whitespace", "newline"]);
345
+ if (next.type === "comma") {
346
+ this.tokenizer.next();
347
+ next = this.tokenizer.peek(["whitespace", "newline"]);
348
+ if (next.type === "bracket" && next.value === "]") {
349
+ this.tokenizer.next(["whitespace", "newline"]);
350
+ return { type: "array", elements, line: next.line, column: next.column, start: next.start, end: next.end };
351
+ }
352
+ continue;
353
+ }
354
+ this.errors.push({
355
+ expected: ["bracket", "comma"],
356
+ received: next.type,
357
+ message: `Expected ] or , but got ${next.type} at ${next.line}:${next.column}`,
358
+ line: next.line,
359
+ column: next.column,
360
+ start: next.start,
361
+ end: next.end
362
+ });
363
+ return { type: "array", elements, line: next.line, column: next.column, start: next.start, end: next.end };
364
+ }
365
+ }
366
+ parseObject() {
367
+ const properties = [];
368
+ let next = this.tokenizer.peek(["whitespace", "newline"]);
369
+ while (true) {
370
+ if (next.type === "end") {
371
+ this.errors.push({
372
+ expected: ["identifier"],
373
+ received: "end",
374
+ message: `Unexpected end of input at ${next.line}:${next.column}`,
375
+ line: next.line,
376
+ column: next.column,
377
+ start: next.start,
378
+ end: next.end
379
+ });
380
+ break;
381
+ }
382
+ if (next.type === "curly" && next.value === "}") {
383
+ this.tokenizer.next(["whitespace", "newline"]);
384
+ break;
385
+ }
386
+ if (next.type === "identifier" || next.type === "string") {
387
+ properties.push(this.parseProperty(this.tokenizer.next(["whitespace", "newline"])));
388
+ next = this.tokenizer.peek(["whitespace", "newline"]);
389
+ continue;
390
+ }
391
+ const token = this.tokenizer.next(["whitespace", "newline"]);
392
+ next = this.tokenizer.peek(["whitespace", "newline"]);
393
+ this.errors.push({
394
+ expected: ["identifier"],
395
+ received: next.type,
396
+ message: `Expected identifier but got ${token.type} at ${next.line}:${next.column}`,
397
+ line: next.line,
398
+ column: next.column,
399
+ start: next.start,
400
+ end: next.end
401
+ });
402
+ }
403
+ return { type: "object", properties, line: next.line, column: next.column, start: next.start, end: next.end };
404
+ }
405
+ parseProperty(token) {
406
+ if (token.type !== "identifier" && token.type !== "string") {
407
+ throw new Error(`Expected identifier or string but got ${token.type} at ${token.line}:${token.column}`);
408
+ }
409
+ const key = token;
410
+ const operator = this.expect("operator", "=");
411
+ const value = this.parseExpression();
412
+ return {
413
+ type: "property",
414
+ operator,
415
+ key,
416
+ value,
417
+ line: key.line,
418
+ column: key.column,
419
+ start: key.start,
420
+ end: value.end
421
+ };
422
+ }
423
+ // Expect a token of a certain type, optionally with a certain
424
+ // value.
425
+ expect(type, value) {
426
+ const token = this.tokenizer.peek();
427
+ if (token.type === "end" && type !== "end") {
428
+ this.errors.push({
429
+ expected: [type],
430
+ received: "end",
431
+ message: `Unexpected end of input at ${token.line}:${token.column}`,
432
+ line: token.line,
433
+ column: token.column,
434
+ start: token.start,
435
+ end: token.end
436
+ });
437
+ return this.tokenizer.next();
438
+ }
439
+ if (token.type !== type) {
440
+ this.errors.push({
441
+ expected: [type],
442
+ received: token.type,
443
+ message: `Expected ${type} but got ${token.type} at ${token.line}:${token.column}`,
444
+ line: token.line,
445
+ column: token.column,
446
+ start: token.start,
447
+ end: token.end
448
+ });
449
+ return {
450
+ type,
451
+ value: token.value,
452
+ start: token.start,
453
+ end: token.end,
454
+ line: token.line,
455
+ column: token.column
456
+ };
457
+ }
458
+ if (value && token.value !== value) {
459
+ this.errors.push({
460
+ message: `Expected ${value} but got ${token.value} at ${token.line}:${token.column}`,
461
+ line: token.line,
462
+ column: token.column,
463
+ start: token.start,
464
+ end: token.end
465
+ });
466
+ return {
467
+ type,
468
+ value,
469
+ start: token.start,
470
+ end: token.end,
471
+ line: token.line,
472
+ column: token.column
473
+ };
474
+ }
475
+ return this.tokenizer.next();
476
+ }
477
+ };
478
+ function fmt(ast, indent = 0, sibling) {
479
+ if (ast === null) {
480
+ return "";
481
+ }
482
+ const INDENT = " ".repeat(indent);
483
+ let str = "";
484
+ switch (ast.type) {
485
+ case "stanza":
486
+ str += `${INDENT}${ast.name} `;
487
+ for (const arg of ast.args) {
488
+ str += `${arg.value} `;
489
+ }
490
+ str += "{";
491
+ str += fmt(ast.block, indent + 2);
492
+ if (!ast.block?.children.every((child) => child.type === "newline")) {
493
+ str += `${INDENT}`;
494
+ }
495
+ str += "}";
496
+ break;
497
+ case "block":
498
+ if (ast.children.every((child) => child.type === "newline")) {
499
+ } else {
500
+ for (const child of ast.children) {
501
+ str += fmt(child, indent, sibling);
502
+ sibling = child;
503
+ }
504
+ }
505
+ break;
506
+ case "property":
507
+ case "assignment":
508
+ str += `${INDENT}${fmt(ast.key)} = ${fmt(ast.value)}`;
509
+ break;
510
+ case "expression":
511
+ str += `${fmt(ast.left)} ${ast.operator.value} ${fmt(ast.right)}`;
512
+ break;
513
+ case "comment":
514
+ if (sibling?.type !== "newline") {
515
+ str += ` `;
516
+ } else {
517
+ str += `${INDENT}`;
518
+ }
519
+ str += `${ast.value}`;
520
+ break;
521
+ case "empty":
522
+ break;
523
+ case "array":
524
+ const oneLine = `[${ast.elements.map((el) => fmt(el)).join(", ")}]`;
525
+ if (oneLine.length > 80) {
526
+ str += `[`;
527
+ for (const el of ast.elements) {
528
+ str += `
529
+ ${fmt(el, indent + 2)}`;
530
+ }
531
+ str += `
532
+ ${INDENT}]`;
533
+ } else {
534
+ return oneLine;
535
+ }
536
+ break;
537
+ case "object":
538
+ str += "{";
539
+ if (ast.properties.length > 0) {
540
+ str += "\n";
541
+ for (const assign of ast.properties) {
542
+ str += `${fmt(assign, indent + 2)}
543
+ `;
544
+ }
545
+ str += `
546
+ ${INDENT}}`;
547
+ }
548
+ break;
549
+ default:
550
+ str += `${ast?.value}`;
551
+ }
552
+ return str;
553
+ }
554
+
555
+ // ../drizzle/dist/appify/build.js
556
+ function valueOf(token) {
557
+ if (token.type === "number") {
558
+ return Number(token.value);
559
+ }
560
+ if (token.type === "boolean") {
561
+ return token.value == "true";
562
+ }
563
+ if (token.type === "string") {
564
+ return token.value.slice(1, -1);
565
+ }
566
+ throw new Error(`unexpected token type: ${token}`);
567
+ }
568
+ var EMPTY_CONFIG_OBJECT = {
569
+ line: 0,
570
+ column: 0,
571
+ start: 0,
572
+ end: 0
573
+ };
574
+ var ConfigError = class {
575
+ message;
576
+ line;
577
+ column;
578
+ start;
579
+ end;
580
+ constructor(message, obj) {
581
+ this.message = message;
582
+ this.line = obj.line;
583
+ this.column = obj.column;
584
+ this.start = obj.start;
585
+ this.end = obj.end;
586
+ }
587
+ };
588
+ function buildManifest(node) {
589
+ const applications = [];
590
+ const errors = [];
591
+ for (const child of node.children) {
592
+ switch (child.type) {
593
+ case "stanza":
594
+ if (child.name === "application") {
595
+ buildStanza(buildApplication, child, applications, errors);
596
+ } else {
597
+ errors.push({ message: "expected application", ...child });
598
+ }
599
+ break;
600
+ case "comment":
601
+ case "newline":
602
+ break;
603
+ default:
604
+ errors.push({ message: "expected application", ...child });
605
+ }
606
+ }
607
+ return [applications, errors];
608
+ }
609
+ function buildName0(stanzaName, node) {
610
+ const errors = [];
611
+ if (node.args.length > 0) {
612
+ errors.push({ message: `${stanzaName} does not take a name argument`, ...node.args[0] });
613
+ }
614
+ return [
615
+ {
616
+ type: "string",
617
+ value: `"${stanzaName}"`,
618
+ line: node.line,
619
+ column: node.column,
620
+ start: node.start,
621
+ end: node.block?.start || node.end
622
+ },
623
+ errors
624
+ ];
625
+ }
626
+ function buildName1(node) {
627
+ const errors = [];
628
+ const invalid = {
629
+ type: "string",
630
+ value: '"<invalid>"',
631
+ line: node.line,
632
+ column: node.column,
633
+ start: node.start,
634
+ end: node.block?.start || node.end
635
+ };
636
+ if (node.args.length === 0) {
637
+ errors.push({ message: "expected name", ...node });
638
+ return [invalid, errors];
639
+ }
640
+ if (node.args.length > 1) {
641
+ errors.push({ message: "unexpected additional args", ...node });
642
+ }
643
+ if (node.args[0]?.type !== "string") {
644
+ errors.push({ message: "expected string", ...node.args[0] });
645
+ return [invalid, errors];
646
+ }
647
+ return [node.args[0], errors];
648
+ }
649
+ function buildOptionalName(node) {
650
+ const errors = [];
651
+ if (node.args.length === 0) {
652
+ return [void 0, errors];
653
+ }
654
+ if (node.args.length > 1) {
655
+ errors.push({ message: "unexpected additional args", ...node });
656
+ }
657
+ if (node.args[0]?.type !== "string") {
658
+ errors.push({ message: "expected string", ...node.args[0] });
659
+ return [void 0, errors];
660
+ }
661
+ return [node.args[0], errors];
662
+ }
663
+ function buildStanza(handler, child, into, errors) {
664
+ const [buildItem, buildErrors] = handler(child);
665
+ if (buildItem) {
666
+ into.push(buildItem);
667
+ }
668
+ errors.push(...buildErrors);
669
+ }
670
+ function buildAssignment(obj, field, expected, child, errors) {
671
+ if (obj[field]) {
672
+ errors.push({ message: `duplicate ${fmt(child.key)} assignment ${fmt(child.value)}`, ...child.key });
673
+ }
674
+ if (child.value.type !== expected) {
675
+ errors.push({ message: `expected ${expected}`, ...child.value });
676
+ } else {
677
+ obj[field] = child.value;
678
+ }
679
+ }
680
+ function buildLabelset(target, field, child, errors) {
681
+ if (child.value.type !== "object") {
682
+ errors.push({ message: `${child.key.value} must be an object`, ...child });
683
+ return;
684
+ }
685
+ if (!target[field]) {
686
+ target[field] = {};
687
+ }
688
+ const labelset = target[field];
689
+ for (const prop of child.value.properties) {
690
+ const key = prop.key.type === "string" ? valueOf(prop.key) : prop.key.value;
691
+ if (prop.value.type === "string") {
692
+ labelset[key] = valueOf(prop.value);
693
+ } else {
694
+ errors.push({
695
+ message: `${child.key.value} must have string values, found non-string value for key "${prop.key.value}"`,
696
+ ...prop.value
697
+ });
698
+ }
699
+ }
700
+ }
701
+ function buildApplication(node) {
702
+ const errors = [];
703
+ const [name, nameErrors] = buildName1(node);
704
+ errors.push(...nameErrors);
705
+ const app = new Application(name, node);
706
+ const children = node.block ? node.block.children : [];
707
+ for (const child of children) {
708
+ switch (child.type) {
709
+ case "stanza":
710
+ switch (child.name) {
711
+ case "service":
712
+ buildStanza(buildService, child, app.service, errors);
713
+ break;
714
+ case "mcp_service":
715
+ buildStanza(buildMcpService, child, app.mcpService, errors);
716
+ break;
717
+ case "env":
718
+ buildStanza(buildEnv, child, app.env, errors);
719
+ break;
720
+ case "observer":
721
+ buildStanza(buildObserver, child, app.observer, errors);
722
+ break;
723
+ case "actor":
724
+ buildStanza(buildActor, child, app.actor, errors);
725
+ break;
726
+ case "task":
727
+ buildStanza(buildTask, child, app.task, errors);
728
+ break;
729
+ case "bucket":
730
+ buildStanza(buildBucket, child, app.bucket, errors);
731
+ break;
732
+ case "queue":
733
+ buildStanza(buildQueue, child, app.queue, errors);
734
+ break;
735
+ case "vector_index":
736
+ buildStanza(buildVectorIndex, child, app.vectorIndex, errors);
737
+ break;
738
+ case "sql_database":
739
+ buildStanza(buildSqlDatabase, child, app.sqlDatabase, errors);
740
+ break;
741
+ case "kv_cache":
742
+ buildStanza(buildKvCache, child, app.kvCache, errors);
743
+ break;
744
+ case "kv_store":
745
+ buildStanza(buildKvCache, child, app.kvCache, errors);
746
+ break;
747
+ case "smartbucket":
748
+ buildStanza(buildSmartBucket, child, app.smartBucket, errors);
749
+ break;
750
+ case "smartsql":
751
+ buildStanza(buildSmartSql, child, app.smartSql, errors);
752
+ break;
753
+ case "smartmemory":
754
+ buildStanza(buildSmartMemory, child, app.smartMemory, errors);
755
+ break;
756
+ case "payments":
757
+ buildStanza(buildPayments, child, app.payments, errors);
758
+ break;
759
+ default:
760
+ errors.push({ message: "unexpected stanza", ...child });
761
+ }
762
+ break;
763
+ case "assignment":
764
+ switch (child.key.value) {
765
+ case "labels":
766
+ buildLabelset(app, "labels", child, errors);
767
+ break;
768
+ default:
769
+ errors.push({ message: "unexpected assignment", ...child });
770
+ }
771
+ break;
772
+ case "comment":
773
+ break;
774
+ case "newline":
775
+ break;
776
+ default:
777
+ errors.push({ message: `unexpected ${child.type}`, ...child });
778
+ }
779
+ }
780
+ return [app, errors];
781
+ }
782
+ function buildService(stanza) {
783
+ const errors = [];
784
+ const [name, nameErrors] = buildName1(stanza);
785
+ errors.push(...nameErrors);
786
+ const service = new Service(name, stanza);
787
+ const children = stanza.block ? stanza.block.children : [];
788
+ for (const child of children) {
789
+ switch (child.type) {
790
+ case "stanza":
791
+ switch (child.name) {
792
+ case "route":
793
+ buildStanza(buildRoute, child, service.routes, errors);
794
+ break;
795
+ case "domain":
796
+ buildStanza(buildDomain, child, service.domains, errors);
797
+ break;
798
+ case "binding":
799
+ buildStanza(buildBinding, child, service.bindings, errors);
800
+ break;
801
+ case "env":
802
+ buildStanza(buildEnv, child, service.env, errors);
803
+ break;
804
+ default:
805
+ errors.push({ message: "unexpected stanza", ...child });
806
+ }
807
+ break;
808
+ case "assignment":
809
+ switch (child.key.value) {
810
+ case "visibility":
811
+ buildAssignment(service, "visibility", "string", child, errors);
812
+ break;
813
+ case "labels":
814
+ buildLabelset(service, "labels", child, errors);
815
+ break;
816
+ default:
817
+ errors.push({ message: "unexpected assignment", ...child });
818
+ }
819
+ break;
820
+ case "comment":
821
+ case "newline":
822
+ break;
823
+ default:
824
+ errors.push({ message: "unexpected node", ...child });
825
+ }
826
+ }
827
+ return [service, errors];
828
+ }
829
+ function buildMcpService(stanza) {
830
+ const errors = [];
831
+ const [name, nameErrors] = buildName1(stanza);
832
+ errors.push(...nameErrors);
833
+ const service = new McpService(name, stanza);
834
+ const children = stanza.block ? stanza.block.children : [];
835
+ for (const child of children) {
836
+ switch (child.type) {
837
+ case "stanza":
838
+ switch (child.name) {
839
+ case "route":
840
+ buildStanza(buildRoute, child, service.routes, errors);
841
+ break;
842
+ case "domain":
843
+ buildStanza(buildDomain, child, service.domains, errors);
844
+ break;
845
+ case "binding":
846
+ buildStanza(buildBinding, child, service.bindings, errors);
847
+ break;
848
+ case "env":
849
+ buildStanza(buildEnv, child, service.env, errors);
850
+ break;
851
+ default:
852
+ errors.push({ message: "unexpected stanza", ...child });
853
+ }
854
+ break;
855
+ case "assignment":
856
+ switch (child.key.value) {
857
+ case "visibility":
858
+ buildAssignment(service, "visibility", "string", child, errors);
859
+ break;
860
+ case "authorization_server":
861
+ buildAssignment(service, "authorizationServer", "string", child, errors);
862
+ break;
863
+ case "jwks_url":
864
+ buildAssignment(service, "jwksUrl", "string", child, errors);
865
+ break;
866
+ case "labels":
867
+ buildLabelset(service, "labels", child, errors);
868
+ break;
869
+ default:
870
+ errors.push({ message: "unexpected assignment", ...child });
871
+ }
872
+ break;
873
+ case "comment":
874
+ case "newline":
875
+ break;
876
+ default:
877
+ errors.push({ message: "unexpected node", ...child });
878
+ }
879
+ }
880
+ return [service, errors];
881
+ }
882
+ function buildBucket(stanza) {
883
+ const errors = [];
884
+ const [name, nameErrors] = buildName1(stanza);
885
+ errors.push(...nameErrors);
886
+ const bucket = new Bucket(name, stanza);
887
+ for (const child of stanza.block?.children ?? []) {
888
+ switch (child.type) {
889
+ case "stanza":
890
+ errors.push({ message: "unexpected stanza", ...child });
891
+ break;
892
+ case "assignment":
893
+ switch (child.key.value) {
894
+ case "visibility":
895
+ buildAssignment(bucket, "visibility", "string", child, errors);
896
+ break;
897
+ case "location_hint":
898
+ buildAssignment(bucket, "locationHint", "string", child, errors);
899
+ break;
900
+ default:
901
+ errors.push({ message: "unexpected assignment", ...child });
902
+ }
903
+ break;
904
+ case "comment":
905
+ case "newline":
906
+ break;
907
+ default:
908
+ errors.push({ message: `unexpected ${child.type}`, ...child });
909
+ }
910
+ }
911
+ return [bucket, errors];
912
+ }
913
+ function buildQueue(stanza) {
914
+ const errors = [];
915
+ const [name, nameErrors] = buildName1(stanza);
916
+ errors.push(...nameErrors);
917
+ const queue = new Queue(name, stanza);
918
+ for (const child of stanza.block?.children ?? []) {
919
+ switch (child.type) {
920
+ case "stanza":
921
+ errors.push({ message: "unexpected stanza", ...child });
922
+ break;
923
+ case "assignment":
924
+ switch (child.key.value) {
925
+ case "visibility":
926
+ buildAssignment(queue, "visibility", "string", child, errors);
927
+ break;
928
+ default:
929
+ errors.push({ message: "unexpected assignment", ...child });
930
+ }
931
+ break;
932
+ case "comment":
933
+ case "newline":
934
+ break;
935
+ default:
936
+ errors.push({ message: `unexpected ${child.type}`, ...child });
937
+ }
938
+ }
939
+ return [queue, errors];
940
+ }
941
+ function buildVectorIndex(stanza) {
942
+ const errors = [];
943
+ const [name, nameErrors] = buildName1(stanza);
944
+ errors.push(...nameErrors);
945
+ const bucket = new VectorIndex(name, stanza);
946
+ for (const child of stanza.block?.children ?? []) {
947
+ switch (child.type) {
948
+ case "stanza":
949
+ errors.push({ message: "unexpected stanza", ...child });
950
+ break;
951
+ case "assignment":
952
+ switch (child.key.value) {
953
+ case "visibility":
954
+ buildAssignment(bucket, "visibility", "string", child, errors);
955
+ break;
956
+ case "dimensions":
957
+ buildAssignment(bucket, "dimensions", "number", child, errors);
958
+ break;
959
+ case "metric":
960
+ buildAssignment(bucket, "metric", "string", child, errors);
961
+ break;
962
+ default:
963
+ errors.push({ message: "unexpected assignment", ...child });
964
+ }
965
+ break;
966
+ case "comment":
967
+ case "newline":
968
+ break;
969
+ default:
970
+ errors.push({ message: `unexpected ${child.type}`, ...child });
971
+ }
972
+ }
973
+ return [bucket, errors];
974
+ }
975
+ function buildSqlDatabase(stanza) {
976
+ const errors = [];
977
+ const [name, nameErrors] = buildName1(stanza);
978
+ errors.push(...nameErrors);
979
+ const sqlDatabase = new SqlDatabase(name, stanza);
980
+ for (const child of stanza.block?.children ?? []) {
981
+ switch (child.type) {
982
+ case "stanza":
983
+ errors.push({ message: "unexpected stanza", ...child });
984
+ break;
985
+ case "assignment":
986
+ switch (child.key.value) {
987
+ case "disable_prisma":
988
+ buildAssignment(sqlDatabase, "disable_prisma", "boolean", child, errors);
989
+ break;
990
+ case "visibility":
991
+ buildAssignment(sqlDatabase, "visibility", "string", child, errors);
992
+ break;
993
+ default:
994
+ errors.push({ message: "unexpected assignment", ...child });
995
+ }
996
+ break;
997
+ case "comment":
998
+ case "newline":
999
+ break;
1000
+ default:
1001
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1002
+ }
1003
+ }
1004
+ return [sqlDatabase, errors];
1005
+ }
1006
+ function buildKvCache(stanza) {
1007
+ const errors = [];
1008
+ const [name, nameErrors] = buildName1(stanza);
1009
+ errors.push(...nameErrors);
1010
+ const kvCache = new KvCache(name, stanza);
1011
+ for (const child of stanza.block?.children ?? []) {
1012
+ switch (child.type) {
1013
+ case "stanza":
1014
+ errors.push({ message: "unexpected stanza", ...child });
1015
+ break;
1016
+ case "assignment":
1017
+ switch (child.key.value) {
1018
+ case "visibility":
1019
+ buildAssignment(kvCache, "visibility", "string", child, errors);
1020
+ break;
1021
+ default:
1022
+ errors.push({ message: "unexpected assignment", ...child });
1023
+ }
1024
+ break;
1025
+ case "comment":
1026
+ case "newline":
1027
+ break;
1028
+ default:
1029
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1030
+ }
1031
+ }
1032
+ return [kvCache, errors];
1033
+ }
1034
+ function buildSmartBucket(stanza) {
1035
+ const errors = [];
1036
+ const [name, nameErrors] = buildName1(stanza);
1037
+ errors.push(...nameErrors);
1038
+ const smartBucket = new SmartBucket(name, stanza);
1039
+ for (const child of stanza.block?.children ?? []) {
1040
+ switch (child.type) {
1041
+ case "assignment":
1042
+ switch (child.key.value) {
1043
+ case "location_hint":
1044
+ buildAssignment(smartBucket, "locationHint", "string", child, errors);
1045
+ break;
1046
+ default:
1047
+ errors.push({ message: "unexpected assignment", ...child });
1048
+ }
1049
+ break;
1050
+ case "comment":
1051
+ case "newline":
1052
+ break;
1053
+ default:
1054
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1055
+ }
1056
+ }
1057
+ return [smartBucket, errors];
1058
+ }
1059
+ function buildSmartSql(stanza) {
1060
+ const errors = [];
1061
+ const [name, nameErrors] = buildName1(stanza);
1062
+ errors.push(...nameErrors);
1063
+ const smartSql = new SmartSql(name, stanza);
1064
+ for (const child of stanza.block?.children ?? []) {
1065
+ switch (child.type) {
1066
+ case "assignment":
1067
+ switch (child.key.value) {
1068
+ case "location_hint":
1069
+ buildAssignment(smartSql, "locationHint", "string", child, errors);
1070
+ break;
1071
+ default:
1072
+ errors.push({ message: "unexpected assignment", ...child });
1073
+ }
1074
+ break;
1075
+ }
1076
+ }
1077
+ return [smartSql, errors];
1078
+ }
1079
+ function buildSmartMemory(stanza) {
1080
+ const errors = [];
1081
+ const [name, nameErrors] = buildName1(stanza);
1082
+ errors.push(...nameErrors);
1083
+ const smartMemory = new SmartMemory(name, stanza);
1084
+ for (const child of stanza.block?.children ?? []) {
1085
+ switch (child.type) {
1086
+ case "comment":
1087
+ case "newline":
1088
+ break;
1089
+ default:
1090
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1091
+ }
1092
+ }
1093
+ return [smartMemory, errors];
1094
+ }
1095
+ function buildPayments(stanza) {
1096
+ const errors = [];
1097
+ const [name, nameErrors] = buildName0("payments", stanza);
1098
+ errors.push(...nameErrors);
1099
+ const payments = new Payments(name, stanza);
1100
+ for (const child of stanza.block?.children ?? []) {
1101
+ switch (child.type) {
1102
+ case "assignment":
1103
+ switch (child.key.value) {
1104
+ case "mode":
1105
+ buildAssignment(payments, "mode", "string", child, errors);
1106
+ if (payments.mode && child.value.type === "string") {
1107
+ const modeValue = valueOf(payments.mode);
1108
+ if (modeValue !== "live" && modeValue !== "test") {
1109
+ errors.push({
1110
+ message: `mode must be either "live" or "test", got "${modeValue}"`,
1111
+ ...child.value
1112
+ });
1113
+ }
1114
+ }
1115
+ break;
1116
+ default:
1117
+ errors.push({ message: "unexpected assignment", ...child });
1118
+ }
1119
+ break;
1120
+ case "comment":
1121
+ case "newline":
1122
+ break;
1123
+ default:
1124
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1125
+ }
1126
+ }
1127
+ return [payments, errors];
1128
+ }
1129
+ function buildObserver(stanza) {
1130
+ const errors = [];
1131
+ const [name, nameErrors] = buildName1(stanza);
1132
+ errors.push(...nameErrors);
1133
+ const observer = new Observer(name, stanza);
1134
+ const children = stanza.block ? stanza.block.children : [];
1135
+ for (const child of children) {
1136
+ switch (child.type) {
1137
+ case "stanza":
1138
+ switch (child.name) {
1139
+ case "source":
1140
+ buildStanza(buildSource, child, observer.source, errors);
1141
+ break;
1142
+ case "binding":
1143
+ buildStanza(buildBinding, child, observer.bindings, errors);
1144
+ break;
1145
+ case "env":
1146
+ buildStanza(buildEnv, child, observer.env, errors);
1147
+ break;
1148
+ default:
1149
+ errors.push({ message: "unexpected stanza", ...child });
1150
+ }
1151
+ break;
1152
+ case "assignment":
1153
+ switch (child.key.value) {
1154
+ case "labels":
1155
+ buildLabelset(observer, "labels", child, errors);
1156
+ break;
1157
+ default:
1158
+ errors.push({ message: "unexpected assignment", ...child });
1159
+ }
1160
+ break;
1161
+ case "comment":
1162
+ case "newline":
1163
+ break;
1164
+ default:
1165
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1166
+ }
1167
+ }
1168
+ return [observer, errors];
1169
+ }
1170
+ function buildActor(stanza) {
1171
+ const errors = [];
1172
+ const [name, nameErrors] = buildName1(stanza);
1173
+ errors.push(...nameErrors);
1174
+ const actor = new Actor(name, stanza);
1175
+ const children = stanza.block ? stanza.block.children : [];
1176
+ for (const child of children) {
1177
+ switch (child.type) {
1178
+ case "stanza":
1179
+ switch (child.name) {
1180
+ case "route":
1181
+ buildStanza(buildRoute, child, actor.routes, errors);
1182
+ break;
1183
+ case "domain":
1184
+ buildStanza(buildDomain, child, actor.domains, errors);
1185
+ break;
1186
+ case "binding":
1187
+ buildStanza(buildBinding, child, actor.bindings, errors);
1188
+ break;
1189
+ case "env":
1190
+ buildStanza(buildEnv, child, actor.env, errors);
1191
+ break;
1192
+ default:
1193
+ errors.push({ message: "unexpected stanza", ...child });
1194
+ }
1195
+ break;
1196
+ case "assignment":
1197
+ switch (child.key.value) {
1198
+ case "visibility":
1199
+ buildAssignment(actor, "visibility", "string", child, errors);
1200
+ break;
1201
+ case "labels":
1202
+ buildLabelset(actor, "labels", child, errors);
1203
+ break;
1204
+ default:
1205
+ errors.push({ message: "unexpected assignment", ...child });
1206
+ }
1207
+ break;
1208
+ case "comment":
1209
+ break;
1210
+ case "newline":
1211
+ break;
1212
+ default:
1213
+ errors.push({ message: `unexpected ${child.type}`, ...child });
1214
+ }
1215
+ }
1216
+ return [actor, errors];
1217
+ }
1218
+ function buildTask(stanza) {
1219
+ const errors = [];
1220
+ const [name, nameErrors] = buildName1(stanza);
1221
+ errors.push(...nameErrors);
1222
+ const task = new Task(name, stanza);
1223
+ const children = stanza.block ? stanza.block.children : [];
1224
+ for (const child of children) {
1225
+ switch (child.type) {
1226
+ case "stanza":
1227
+ switch (child.name) {
1228
+ case "binding":
1229
+ buildStanza(buildBinding, child, task.bindings, errors);
1230
+ break;
1231
+ case "env":
1232
+ buildStanza(buildEnv, child, task.env, errors);
1233
+ break;
1234
+ default:
1235
+ errors.push({ message: "unexpected stanza", ...child });
1236
+ }
1237
+ break;
1238
+ case "assignment":
1239
+ switch (child.key.value) {
1240
+ case "type":
1241
+ buildAssignment(task, "type", "string", child, errors);
1242
+ break;
1243
+ case "cron":
1244
+ buildAssignment(task, "cron", "string", child, errors);
1245
+ break;
1246
+ case "visibility":
1247
+ buildAssignment(task, "visibility", "string", child, errors);
1248
+ break;
1249
+ default:
1250
+ errors.push({ message: "unexpected assignment", ...child });
1251
+ }
1252
+ break;
1253
+ }
1254
+ }
1255
+ return [task, errors];
1256
+ }
1257
+ function buildSource(stanza) {
1258
+ const errors = [];
1259
+ const source = new Source(stanza);
1260
+ for (const child of stanza.block?.children ?? []) {
1261
+ if (child.type === "assignment") {
1262
+ switch (child.key.value) {
1263
+ case "bucket":
1264
+ buildAssignment(source, "bucket", "string", child, errors);
1265
+ break;
1266
+ case "queue":
1267
+ buildAssignment(source, "queue", "string", child, errors);
1268
+ break;
1269
+ case "batch_size":
1270
+ buildAssignment(source, "batchSize", "number", child, errors);
1271
+ break;
1272
+ case "max_wait_time_ms":
1273
+ buildAssignment(source, "maxWaitTimeMs", "number", child, errors);
1274
+ break;
1275
+ case "max_retries":
1276
+ buildAssignment(source, "maxRetries", "number", child, errors);
1277
+ break;
1278
+ default:
1279
+ errors.push({ message: "unexpected assignment", ...child });
1280
+ }
1281
+ } else if (child.type === "stanza") {
1282
+ if (child.name === "rule") {
1283
+ source.rule = source.rule ?? [];
1284
+ const rule = new Rule(child);
1285
+ for (const ruleChild of child.block?.children ?? []) {
1286
+ if (ruleChild.type === "stanza") {
1287
+ errors.push({ message: "unexpected stanza", ...ruleChild });
1288
+ } else if (ruleChild.type === "assignment") {
1289
+ switch (ruleChild.key.value) {
1290
+ case "actions":
1291
+ buildAssignment(rule, "actions", "array", ruleChild, errors);
1292
+ break;
1293
+ case "prefix":
1294
+ buildAssignment(rule, "prefix", "string", ruleChild, errors);
1295
+ break;
1296
+ case "suffix":
1297
+ buildAssignment(rule, "suffix", "string", ruleChild, errors);
1298
+ break;
1299
+ default:
1300
+ errors.push({ message: "unexpected assignment", ...ruleChild });
1301
+ }
1302
+ }
1303
+ }
1304
+ source.rule.push(rule);
1305
+ } else {
1306
+ errors.push({ message: "unexpected stanza", ...child });
1307
+ }
1308
+ }
1309
+ }
1310
+ return [source, errors];
1311
+ }
1312
+ function buildRoute(stanza) {
1313
+ const errors = [];
1314
+ const [name, nameErrors] = buildOptionalName(stanza);
1315
+ errors.push(...nameErrors);
1316
+ const route = new Route(stanza, name);
1317
+ for (const child of stanza.block?.children ?? []) {
1318
+ if (child.type === "assignment") {
1319
+ switch (child.key.value) {
1320
+ case "cname":
1321
+ buildAssignment(route, "cname", "string", child, errors);
1322
+ break;
1323
+ case "domain":
1324
+ buildAssignment(route, "domain", "string", child, errors);
1325
+ break;
1326
+ case "path":
1327
+ buildAssignment(route, "path", "string", child, errors);
1328
+ break;
1329
+ case "zone":
1330
+ buildAssignment(route, "zone", "string", child, errors);
1331
+ break;
1332
+ default:
1333
+ errors.push({ message: `unexpected assignment ${child.key}`, ...child });
1334
+ }
1335
+ }
1336
+ }
1337
+ if (route.cname && route.domain) {
1338
+ errors.push({ message: "cname cannot be used with domain", ...stanza });
1339
+ }
1340
+ return [route, errors];
1341
+ }
1342
+ function buildDomain(stanza) {
1343
+ const errors = [];
1344
+ const [name, nameErrors] = buildOptionalName(stanza);
1345
+ errors.push(...nameErrors);
1346
+ const domain = new Domain(stanza, name);
1347
+ for (const child of stanza.block?.children ?? []) {
1348
+ if (child.type === "assignment") {
1349
+ switch (child.key.value) {
1350
+ case "cname":
1351
+ buildAssignment(domain, "cname", "string", child, errors);
1352
+ break;
1353
+ case "fqdn":
1354
+ buildAssignment(domain, "fqdn", "string", child, errors);
1355
+ break;
1356
+ default:
1357
+ errors.push({ message: `unexpected assignment ${child.key}`, ...child });
1358
+ }
1359
+ }
1360
+ }
1361
+ return [domain, errors];
1362
+ }
1363
+ function buildBinding(stanza) {
1364
+ const errors = [];
1365
+ const bindings = [];
1366
+ function hasBinding(key) {
1367
+ return bindings.some((binding) => binding.key.value === key);
1368
+ }
1369
+ for (const child of stanza.block?.children ?? []) {
1370
+ if (child.type === "assignment") {
1371
+ if (hasBinding(child.key.value)) {
1372
+ errors.push({ message: `duplicate binding ${child.key.value}`, ...child.key });
1373
+ }
1374
+ if (child.value.type === "string") {
1375
+ bindings.push(child);
1376
+ } else {
1377
+ errors.push({ message: "expected string", ...child.value });
1378
+ }
1379
+ }
1380
+ }
1381
+ return [new Binding(bindings, stanza), errors];
1382
+ }
1383
+ function buildEnv(stanza) {
1384
+ const errors = [];
1385
+ const [name, nameErrors] = buildName1(stanza);
1386
+ errors.push(...nameErrors);
1387
+ const env = new Env(name, stanza);
1388
+ for (const child of stanza.block?.children ?? []) {
1389
+ if (child.type === "assignment") {
1390
+ switch (child.key.value) {
1391
+ case "secret":
1392
+ buildAssignment(env, "secret", "boolean", child, errors);
1393
+ break;
1394
+ case "default":
1395
+ buildAssignment(env, "default", "string", child, errors);
1396
+ break;
1397
+ default:
1398
+ errors.push({ message: `unexpected assignment ${child.key}`, ...child });
1399
+ }
1400
+ }
1401
+ }
1402
+ return [env, errors];
1403
+ }
1404
+ var Application = class {
1405
+ obj;
1406
+ name;
1407
+ service = [];
1408
+ observer = [];
1409
+ actor = [];
1410
+ task = [];
1411
+ bucket = [];
1412
+ queue = [];
1413
+ env = [];
1414
+ sqlDatabase = [];
1415
+ vectorIndex = [];
1416
+ kvCache = [];
1417
+ // Backward compatibility: kvStore points to the same array as kvCache
1418
+ get kvStore() {
1419
+ return this.kvCache;
1420
+ }
1421
+ set kvStore(value) {
1422
+ this.kvCache = value;
1423
+ }
1424
+ smartBucket = [];
1425
+ smartSql = [];
1426
+ smartMemory = [];
1427
+ payments = [];
1428
+ labels = {};
1429
+ mcpService = [];
1430
+ constructor(name, obj) {
1431
+ this.name = name;
1432
+ this.obj = obj;
1433
+ }
1434
+ // Return all objects that require code handlers.
1435
+ handlers() {
1436
+ return [...this.service, ...this.observer, ...this.actor, ...this.task, ...this.mcpService];
1437
+ }
1438
+ };
1439
+ var Service = class {
1440
+ obj;
1441
+ name;
1442
+ visibility;
1443
+ routes = [];
1444
+ domains = [];
1445
+ bindings = [];
1446
+ env = [];
1447
+ labels = {};
1448
+ constructor(name, obj) {
1449
+ this.name = name;
1450
+ this.obj = obj;
1451
+ }
1452
+ };
1453
+ var Actor = class {
1454
+ obj;
1455
+ name;
1456
+ routes = [];
1457
+ domains = [];
1458
+ bindings = [];
1459
+ env = [];
1460
+ visibility;
1461
+ labels = {};
1462
+ constructor(name, obj) {
1463
+ this.name = name;
1464
+ this.obj = obj;
1465
+ }
1466
+ };
1467
+ var McpService = class {
1468
+ obj;
1469
+ name;
1470
+ visibility;
1471
+ routes = [];
1472
+ domains = [];
1473
+ bindings = [];
1474
+ env = [];
1475
+ authorizationServer;
1476
+ jwksUrl;
1477
+ labels = {};
1478
+ constructor(name, obj) {
1479
+ this.name = name;
1480
+ this.obj = obj;
1481
+ }
1482
+ };
1483
+ var Task = class {
1484
+ obj;
1485
+ name;
1486
+ type;
1487
+ cron;
1488
+ bindings = [];
1489
+ env = [];
1490
+ visibility;
1491
+ constructor(name, obj) {
1492
+ this.name = name;
1493
+ this.obj = obj;
1494
+ }
1495
+ };
1496
+ var Observer = class {
1497
+ obj;
1498
+ name;
1499
+ source = [];
1500
+ bindings = [];
1501
+ env = [];
1502
+ labels = {};
1503
+ constructor(name, obj) {
1504
+ this.name = name;
1505
+ this.obj = obj;
1506
+ }
1507
+ };
1508
+ var Source = class {
1509
+ obj;
1510
+ bucket;
1511
+ rule;
1512
+ queue;
1513
+ batchSize;
1514
+ maxWaitTimeMs;
1515
+ maxRetries;
1516
+ constructor(obj) {
1517
+ this.obj = obj;
1518
+ }
1519
+ };
1520
+ var Rule = class {
1521
+ obj;
1522
+ actions;
1523
+ prefix;
1524
+ suffix;
1525
+ constructor(obj) {
1526
+ this.obj = obj;
1527
+ }
1528
+ };
1529
+ var Route = class {
1530
+ obj;
1531
+ name;
1532
+ zone;
1533
+ domain;
1534
+ cname;
1535
+ path;
1536
+ constructor(obj, name) {
1537
+ this.obj = obj;
1538
+ this.name = name;
1539
+ }
1540
+ };
1541
+ var Domain = class {
1542
+ obj;
1543
+ name;
1544
+ cname;
1545
+ fqdn;
1546
+ constructor(obj, name) {
1547
+ this.obj = obj;
1548
+ this.name = name;
1549
+ }
1550
+ };
1551
+ var Binding = class {
1552
+ bindings;
1553
+ obj;
1554
+ constructor(bindings, obj) {
1555
+ this.bindings = bindings;
1556
+ this.obj = obj;
1557
+ }
1558
+ };
1559
+ var Env = class {
1560
+ name;
1561
+ secret;
1562
+ default;
1563
+ obj;
1564
+ constructor(name, obj) {
1565
+ this.name = name;
1566
+ this.obj = obj;
1567
+ }
1568
+ };
1569
+ var Bucket = class {
1570
+ name;
1571
+ visibility;
1572
+ locationHint;
1573
+ obj;
1574
+ constructor(name, obj) {
1575
+ this.name = name;
1576
+ this.obj = obj;
1577
+ }
1578
+ };
1579
+ var KvCache = class {
1580
+ name;
1581
+ visibility;
1582
+ obj;
1583
+ constructor(name, obj) {
1584
+ this.name = name;
1585
+ this.obj = obj;
1586
+ }
1587
+ };
1588
+ var KvStore = class extends KvCache {
1589
+ };
1590
+ var Queue = class {
1591
+ name;
1592
+ visibility;
1593
+ obj;
1594
+ constructor(name, obj) {
1595
+ this.name = name;
1596
+ this.obj = obj;
1597
+ }
1598
+ };
1599
+ var VectorIndex = class {
1600
+ name;
1601
+ visibility;
1602
+ dimensions;
1603
+ metric;
1604
+ obj;
1605
+ constructor(name, obj) {
1606
+ this.name = name;
1607
+ this.obj = obj;
1608
+ }
1609
+ };
1610
+ var SqlDatabase = class {
1611
+ name;
1612
+ schema;
1613
+ visibility;
1614
+ disable_prisma;
1615
+ obj;
1616
+ constructor(name, obj) {
1617
+ this.name = name;
1618
+ this.obj = obj;
1619
+ }
1620
+ };
1621
+ var SmartBucket = class {
1622
+ name;
1623
+ locationHint;
1624
+ obj;
1625
+ constructor(name, obj) {
1626
+ this.name = name;
1627
+ this.obj = obj;
1628
+ }
1629
+ };
1630
+ var SmartSql = class {
1631
+ name;
1632
+ locationHint;
1633
+ obj;
1634
+ constructor(name, obj) {
1635
+ this.name = name;
1636
+ this.obj = obj;
1637
+ }
1638
+ };
1639
+ var SmartMemory = class {
1640
+ name;
1641
+ obj;
1642
+ constructor(name, obj) {
1643
+ this.name = name;
1644
+ this.obj = obj;
1645
+ }
1646
+ };
1647
+ var Payments = class {
1648
+ name;
1649
+ obj;
1650
+ mode;
1651
+ constructor(name, obj) {
1652
+ this.name = name;
1653
+ this.obj = obj;
1654
+ }
1655
+ };
1656
+ var VISIBILITIES = ["none", "public", "private", "protected", "paid", "application", "suite", "tenant"];
1657
+ var TASK_TYPES = ["cron"];
1658
+
1659
+ export {
1660
+ __require,
1661
+ __commonJS,
1662
+ __export,
1663
+ __toESM,
1664
+ init_cjs_shims,
1665
+ Tokenizer,
1666
+ Parser,
1667
+ fmt,
1668
+ valueOf,
1669
+ EMPTY_CONFIG_OBJECT,
1670
+ ConfigError,
1671
+ buildManifest,
1672
+ buildApplication,
1673
+ Application,
1674
+ Service,
1675
+ Actor,
1676
+ McpService,
1677
+ Task,
1678
+ Observer,
1679
+ Source,
1680
+ Rule,
1681
+ Route,
1682
+ Domain,
1683
+ Binding,
1684
+ Env,
1685
+ Bucket,
1686
+ KvCache,
1687
+ KvStore,
1688
+ Queue,
1689
+ VectorIndex,
1690
+ SqlDatabase,
1691
+ SmartBucket,
1692
+ SmartSql,
1693
+ SmartMemory,
1694
+ Payments,
1695
+ VISIBILITIES,
1696
+ TASK_TYPES
1697
+ };