@pome-sh/cli 0.1.0 → 0.1.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 (471) hide show
  1. package/dist/build-info.json +3 -3
  2. package/dist/src/doctor/checks.js +2 -2
  3. package/node_modules/@pome-sh/sdk/dist/db.d.ts +4 -4
  4. package/node_modules/@pome-sh/sdk/dist/db.js +93 -25
  5. package/node_modules/@pome-sh/sdk/dist/db.js.map +1 -1
  6. package/node_modules/@pome-sh/sdk/package.json +2 -6
  7. package/node_modules/@pome-sh/twin-github/README.md +2 -1
  8. package/node_modules/@pome-sh/twin-github/package.json +2 -3
  9. package/node_modules/@pome-sh/twin-slack/package.json +2 -3
  10. package/node_modules/@pome-sh/twin-stripe/README.md +2 -2
  11. package/node_modules/@pome-sh/twin-stripe/package.json +2 -3
  12. package/package.json +6 -7
  13. package/dist/src/recorder/verdictArtifact.d.ts +0 -71
  14. package/dist/src/recorder/verdictArtifact.js +0 -207
  15. package/dist/src/score/view.d.ts +0 -38
  16. package/dist/src/score/view.js +0 -59
  17. package/dist/src/twin/github/app.d.ts +0 -10
  18. package/dist/src/twin/github/app.js +0 -316
  19. package/dist/src/twin/github/db/migrations.d.ts +0 -2
  20. package/dist/src/twin/github/db/migrations.js +0 -64
  21. package/dist/src/twin/github/db/openDatabase.d.ts +0 -2
  22. package/dist/src/twin/github/db/openDatabase.js +0 -13
  23. package/dist/src/twin/github/db/queries.d.ts +0 -77
  24. package/dist/src/twin/github/db/queries.js +0 -93
  25. package/dist/src/twin/github/domain/seed.d.ts +0 -74
  26. package/dist/src/twin/github/domain/seed.js +0 -104
  27. package/dist/src/twin/github/domain/serializers.d.ts +0 -113
  28. package/dist/src/twin/github/domain/serializers.js +0 -76
  29. package/dist/src/twin/github/types.d.ts +0 -66
  30. package/dist/src/twin/github/types.js +0 -1
  31. package/dist/src/twin-github/app.d.ts +0 -9
  32. package/dist/src/twin-github/app.js +0 -327
  33. package/dist/src/twin-github/auth.d.ts +0 -16
  34. package/dist/src/twin-github/auth.js +0 -142
  35. package/dist/src/twin-github/build-info.d.ts +0 -7
  36. package/dist/src/twin-github/build-info.js +0 -52
  37. package/dist/src/twin-github/db.d.ts +0 -4
  38. package/dist/src/twin-github/db.js +0 -362
  39. package/dist/src/twin-github/domain.d.ts +0 -1649
  40. package/dist/src/twin-github/domain.js +0 -957
  41. package/dist/src/twin-github/errors.d.ts +0 -14
  42. package/dist/src/twin-github/errors.js +0 -34
  43. package/dist/src/twin-github/index.d.ts +0 -9
  44. package/dist/src/twin-github/index.js +0 -7
  45. package/dist/src/twin-github/mcp.d.ts +0 -17
  46. package/dist/src/twin-github/mcp.js +0 -281
  47. package/dist/src/twin-github/recorder.d.ts +0 -2
  48. package/dist/src/twin-github/recorder.js +0 -29
  49. package/dist/src/twin-github/seed.d.ts +0 -74
  50. package/dist/src/twin-github/seed.js +0 -107
  51. package/dist/src/twin-github/serializers.d.ts +0 -449
  52. package/dist/src/twin-github/serializers.js +0 -429
  53. package/dist/src/twin-github/server.d.ts +0 -1
  54. package/dist/src/twin-github/server.js +0 -34
  55. package/dist/src/twin-github/tools.d.ts +0 -1545
  56. package/dist/src/twin-github/tools.js +0 -347
  57. package/dist/src/twin-github/types.d.ts +0 -198
  58. package/dist/src/twin-github/types.js +0 -1
  59. package/dist/src/twin-github/unsupported-envelope.d.ts +0 -10
  60. package/dist/src/twin-github/unsupported-envelope.js +0 -29
  61. package/dist/src/twin-github/util.d.ts +0 -13
  62. package/dist/src/twin-github/util.js +0 -61
  63. package/dist/src/twin-slack/app.d.ts +0 -17
  64. package/dist/src/twin-slack/app.js +0 -683
  65. package/dist/src/twin-slack/auth.d.ts +0 -38
  66. package/dist/src/twin-slack/auth.js +0 -219
  67. package/dist/src/twin-slack/build-info.d.ts +0 -7
  68. package/dist/src/twin-slack/build-info.js +0 -9
  69. package/dist/src/twin-slack/db.d.ts +0 -4
  70. package/dist/src/twin-slack/db.js +0 -213
  71. package/dist/src/twin-slack/domain.d.ts +0 -236
  72. package/dist/src/twin-slack/domain.js +0 -1293
  73. package/dist/src/twin-slack/errors.d.ts +0 -16
  74. package/dist/src/twin-slack/errors.js +0 -60
  75. package/dist/src/twin-slack/index.d.ts +0 -8
  76. package/dist/src/twin-slack/index.js +0 -8
  77. package/dist/src/twin-slack/mcp.d.ts +0 -17
  78. package/dist/src/twin-slack/mcp.js +0 -226
  79. package/dist/src/twin-slack/recorder.d.ts +0 -2
  80. package/dist/src/twin-slack/recorder.js +0 -15
  81. package/dist/src/twin-slack/seed.d.ts +0 -49
  82. package/dist/src/twin-slack/seed.js +0 -139
  83. package/dist/src/twin-slack/serializers.d.ts +0 -141
  84. package/dist/src/twin-slack/serializers.js +0 -377
  85. package/dist/src/twin-slack/tools.d.ts +0 -97
  86. package/dist/src/twin-slack/tools.js +0 -171
  87. package/dist/src/twin-slack/types.d.ts +0 -164
  88. package/dist/src/twin-slack/types.js +0 -1
  89. package/dist/src/twin-slack/unsupported-envelope.d.ts +0 -12
  90. package/dist/src/twin-slack/unsupported-envelope.js +0 -61
  91. package/dist/src/twin-slack/upstream-types.d.ts +0 -19
  92. package/dist/src/twin-slack/upstream-types.js +0 -1
  93. package/dist/src/twin-slack/util.d.ts +0 -31
  94. package/dist/src/twin-slack/util.js +0 -136
  95. package/node_modules/base64-js/LICENSE +0 -21
  96. package/node_modules/base64-js/README.md +0 -34
  97. package/node_modules/base64-js/base64js.min.js +0 -1
  98. package/node_modules/base64-js/index.d.ts +0 -3
  99. package/node_modules/base64-js/index.js +0 -150
  100. package/node_modules/base64-js/package.json +0 -47
  101. package/node_modules/better-sqlite3/LICENSE +0 -21
  102. package/node_modules/better-sqlite3/README.md +0 -99
  103. package/node_modules/better-sqlite3/binding.gyp +0 -38
  104. package/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  105. package/node_modules/better-sqlite3/deps/common.gypi +0 -68
  106. package/node_modules/better-sqlite3/deps/copy.js +0 -31
  107. package/node_modules/better-sqlite3/deps/defines.gypi +0 -42
  108. package/node_modules/better-sqlite3/deps/download.sh +0 -123
  109. package/node_modules/better-sqlite3/deps/patches/1208.patch +0 -15
  110. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +0 -269395
  111. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +0 -14347
  112. package/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +0 -739
  113. package/node_modules/better-sqlite3/deps/sqlite3.gyp +0 -80
  114. package/node_modules/better-sqlite3/deps/test_extension.c +0 -21
  115. package/node_modules/better-sqlite3/lib/database.js +0 -90
  116. package/node_modules/better-sqlite3/lib/index.js +0 -3
  117. package/node_modules/better-sqlite3/lib/methods/aggregate.js +0 -43
  118. package/node_modules/better-sqlite3/lib/methods/backup.js +0 -67
  119. package/node_modules/better-sqlite3/lib/methods/function.js +0 -31
  120. package/node_modules/better-sqlite3/lib/methods/inspect.js +0 -7
  121. package/node_modules/better-sqlite3/lib/methods/pragma.js +0 -12
  122. package/node_modules/better-sqlite3/lib/methods/serialize.js +0 -16
  123. package/node_modules/better-sqlite3/lib/methods/table.js +0 -189
  124. package/node_modules/better-sqlite3/lib/methods/transaction.js +0 -78
  125. package/node_modules/better-sqlite3/lib/methods/wrappers.js +0 -54
  126. package/node_modules/better-sqlite3/lib/sqlite-error.js +0 -20
  127. package/node_modules/better-sqlite3/lib/util.js +0 -12
  128. package/node_modules/better-sqlite3/package.json +0 -59
  129. package/node_modules/better-sqlite3/src/addon.cpp +0 -47
  130. package/node_modules/better-sqlite3/src/better_sqlite3.cpp +0 -74
  131. package/node_modules/better-sqlite3/src/objects/backup.cpp +0 -120
  132. package/node_modules/better-sqlite3/src/objects/backup.hpp +0 -36
  133. package/node_modules/better-sqlite3/src/objects/database.cpp +0 -417
  134. package/node_modules/better-sqlite3/src/objects/database.hpp +0 -103
  135. package/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +0 -113
  136. package/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +0 -50
  137. package/node_modules/better-sqlite3/src/objects/statement.cpp +0 -383
  138. package/node_modules/better-sqlite3/src/objects/statement.hpp +0 -58
  139. package/node_modules/better-sqlite3/src/util/bind-map.cpp +0 -73
  140. package/node_modules/better-sqlite3/src/util/binder.cpp +0 -193
  141. package/node_modules/better-sqlite3/src/util/constants.cpp +0 -172
  142. package/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +0 -121
  143. package/node_modules/better-sqlite3/src/util/custom-function.cpp +0 -59
  144. package/node_modules/better-sqlite3/src/util/custom-table.cpp +0 -409
  145. package/node_modules/better-sqlite3/src/util/data-converter.cpp +0 -17
  146. package/node_modules/better-sqlite3/src/util/data.cpp +0 -194
  147. package/node_modules/better-sqlite3/src/util/helpers.cpp +0 -109
  148. package/node_modules/better-sqlite3/src/util/macros.cpp +0 -90
  149. package/node_modules/better-sqlite3/src/util/query-macros.cpp +0 -71
  150. package/node_modules/better-sqlite3/src/util/row-builder.cpp +0 -49
  151. package/node_modules/bindings/LICENSE.md +0 -22
  152. package/node_modules/bindings/README.md +0 -98
  153. package/node_modules/bindings/bindings.js +0 -221
  154. package/node_modules/bindings/package.json +0 -28
  155. package/node_modules/bl/.travis.yml +0 -17
  156. package/node_modules/bl/BufferList.js +0 -396
  157. package/node_modules/bl/LICENSE.md +0 -13
  158. package/node_modules/bl/README.md +0 -247
  159. package/node_modules/bl/bl.js +0 -84
  160. package/node_modules/bl/package.json +0 -37
  161. package/node_modules/bl/test/convert.js +0 -21
  162. package/node_modules/bl/test/indexOf.js +0 -492
  163. package/node_modules/bl/test/isBufferList.js +0 -32
  164. package/node_modules/bl/test/test.js +0 -869
  165. package/node_modules/buffer/AUTHORS.md +0 -70
  166. package/node_modules/buffer/LICENSE +0 -21
  167. package/node_modules/buffer/README.md +0 -410
  168. package/node_modules/buffer/index.d.ts +0 -186
  169. package/node_modules/buffer/index.js +0 -1817
  170. package/node_modules/buffer/package.json +0 -96
  171. package/node_modules/chownr/LICENSE +0 -15
  172. package/node_modules/chownr/README.md +0 -3
  173. package/node_modules/chownr/chownr.js +0 -167
  174. package/node_modules/chownr/package.json +0 -29
  175. package/node_modules/decompress-response/index.d.ts +0 -22
  176. package/node_modules/decompress-response/index.js +0 -58
  177. package/node_modules/decompress-response/license +0 -9
  178. package/node_modules/decompress-response/package.json +0 -56
  179. package/node_modules/decompress-response/readme.md +0 -48
  180. package/node_modules/deep-extend/CHANGELOG.md +0 -46
  181. package/node_modules/deep-extend/LICENSE +0 -20
  182. package/node_modules/deep-extend/README.md +0 -91
  183. package/node_modules/deep-extend/index.js +0 -1
  184. package/node_modules/deep-extend/lib/deep-extend.js +0 -150
  185. package/node_modules/deep-extend/package.json +0 -62
  186. package/node_modules/detect-libc/LICENSE +0 -201
  187. package/node_modules/detect-libc/README.md +0 -163
  188. package/node_modules/detect-libc/index.d.ts +0 -14
  189. package/node_modules/detect-libc/lib/detect-libc.js +0 -313
  190. package/node_modules/detect-libc/lib/elf.js +0 -39
  191. package/node_modules/detect-libc/lib/filesystem.js +0 -51
  192. package/node_modules/detect-libc/lib/process.js +0 -24
  193. package/node_modules/detect-libc/package.json +0 -44
  194. package/node_modules/end-of-stream/LICENSE +0 -21
  195. package/node_modules/end-of-stream/README.md +0 -54
  196. package/node_modules/end-of-stream/index.js +0 -96
  197. package/node_modules/end-of-stream/package.json +0 -37
  198. package/node_modules/expand-template/.travis.yml +0 -6
  199. package/node_modules/expand-template/LICENSE +0 -21
  200. package/node_modules/expand-template/README.md +0 -43
  201. package/node_modules/expand-template/index.js +0 -26
  202. package/node_modules/expand-template/package.json +0 -29
  203. package/node_modules/expand-template/test.js +0 -67
  204. package/node_modules/file-uri-to-path/.npmignore +0 -1
  205. package/node_modules/file-uri-to-path/.travis.yml +0 -30
  206. package/node_modules/file-uri-to-path/History.md +0 -21
  207. package/node_modules/file-uri-to-path/LICENSE +0 -20
  208. package/node_modules/file-uri-to-path/README.md +0 -74
  209. package/node_modules/file-uri-to-path/index.d.ts +0 -2
  210. package/node_modules/file-uri-to-path/index.js +0 -66
  211. package/node_modules/file-uri-to-path/package.json +0 -32
  212. package/node_modules/file-uri-to-path/test/test.js +0 -24
  213. package/node_modules/file-uri-to-path/test/tests.json +0 -13
  214. package/node_modules/fs-constants/LICENSE +0 -21
  215. package/node_modules/fs-constants/README.md +0 -26
  216. package/node_modules/fs-constants/browser.js +0 -1
  217. package/node_modules/fs-constants/index.js +0 -1
  218. package/node_modules/fs-constants/package.json +0 -19
  219. package/node_modules/github-from-package/.travis.yml +0 -4
  220. package/node_modules/github-from-package/LICENSE +0 -18
  221. package/node_modules/github-from-package/example/package.json +0 -8
  222. package/node_modules/github-from-package/example/url.js +0 -3
  223. package/node_modules/github-from-package/index.js +0 -17
  224. package/node_modules/github-from-package/package.json +0 -30
  225. package/node_modules/github-from-package/readme.markdown +0 -53
  226. package/node_modules/github-from-package/test/a.json +0 -8
  227. package/node_modules/github-from-package/test/b.json +0 -5
  228. package/node_modules/github-from-package/test/c.json +0 -5
  229. package/node_modules/github-from-package/test/d.json +0 -7
  230. package/node_modules/github-from-package/test/e.json +0 -5
  231. package/node_modules/github-from-package/test/url.js +0 -19
  232. package/node_modules/ieee754/LICENSE +0 -11
  233. package/node_modules/ieee754/README.md +0 -51
  234. package/node_modules/ieee754/index.d.ts +0 -10
  235. package/node_modules/ieee754/index.js +0 -85
  236. package/node_modules/ieee754/package.json +0 -52
  237. package/node_modules/inherits/LICENSE +0 -16
  238. package/node_modules/inherits/README.md +0 -42
  239. package/node_modules/inherits/inherits.js +0 -9
  240. package/node_modules/inherits/inherits_browser.js +0 -27
  241. package/node_modules/inherits/package.json +0 -29
  242. package/node_modules/ini/LICENSE +0 -15
  243. package/node_modules/ini/README.md +0 -102
  244. package/node_modules/ini/ini.js +0 -206
  245. package/node_modules/ini/package.json +0 -33
  246. package/node_modules/mimic-response/index.d.ts +0 -17
  247. package/node_modules/mimic-response/index.js +0 -77
  248. package/node_modules/mimic-response/license +0 -9
  249. package/node_modules/mimic-response/package.json +0 -42
  250. package/node_modules/mimic-response/readme.md +0 -78
  251. package/node_modules/minimist/.eslintrc +0 -29
  252. package/node_modules/minimist/.github/FUNDING.yml +0 -12
  253. package/node_modules/minimist/.nycrc +0 -14
  254. package/node_modules/minimist/CHANGELOG.md +0 -298
  255. package/node_modules/minimist/LICENSE +0 -18
  256. package/node_modules/minimist/README.md +0 -121
  257. package/node_modules/minimist/example/parse.js +0 -4
  258. package/node_modules/minimist/index.js +0 -263
  259. package/node_modules/minimist/package.json +0 -75
  260. package/node_modules/minimist/test/all_bool.js +0 -34
  261. package/node_modules/minimist/test/bool.js +0 -177
  262. package/node_modules/minimist/test/dash.js +0 -43
  263. package/node_modules/minimist/test/default_bool.js +0 -37
  264. package/node_modules/minimist/test/dotted.js +0 -24
  265. package/node_modules/minimist/test/kv_short.js +0 -32
  266. package/node_modules/minimist/test/long.js +0 -33
  267. package/node_modules/minimist/test/num.js +0 -38
  268. package/node_modules/minimist/test/parse.js +0 -209
  269. package/node_modules/minimist/test/parse_modified.js +0 -11
  270. package/node_modules/minimist/test/proto.js +0 -64
  271. package/node_modules/minimist/test/short.js +0 -69
  272. package/node_modules/minimist/test/stop_early.js +0 -17
  273. package/node_modules/minimist/test/unknown.js +0 -104
  274. package/node_modules/minimist/test/whitespace.js +0 -10
  275. package/node_modules/mkdirp-classic/LICENSE +0 -21
  276. package/node_modules/mkdirp-classic/README.md +0 -18
  277. package/node_modules/mkdirp-classic/index.js +0 -98
  278. package/node_modules/mkdirp-classic/package.json +0 -18
  279. package/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +0 -31
  280. package/node_modules/napi-build-utils/LICENSE +0 -21
  281. package/node_modules/napi-build-utils/README.md +0 -52
  282. package/node_modules/napi-build-utils/index.js +0 -214
  283. package/node_modules/napi-build-utils/index.md +0 -0
  284. package/node_modules/napi-build-utils/package.json +0 -42
  285. package/node_modules/node-abi/LICENSE +0 -21
  286. package/node_modules/node-abi/README.md +0 -54
  287. package/node_modules/node-abi/abi_registry.json +0 -453
  288. package/node_modules/node-abi/index.js +0 -179
  289. package/node_modules/node-abi/package.json +0 -45
  290. package/node_modules/once/LICENSE +0 -15
  291. package/node_modules/once/README.md +0 -79
  292. package/node_modules/once/once.js +0 -42
  293. package/node_modules/once/package.json +0 -33
  294. package/node_modules/prebuild-install/CHANGELOG.md +0 -131
  295. package/node_modules/prebuild-install/CONTRIBUTING.md +0 -6
  296. package/node_modules/prebuild-install/LICENSE +0 -21
  297. package/node_modules/prebuild-install/README.md +0 -163
  298. package/node_modules/prebuild-install/asset.js +0 -44
  299. package/node_modules/prebuild-install/bin.js +0 -78
  300. package/node_modules/prebuild-install/download.js +0 -142
  301. package/node_modules/prebuild-install/error.js +0 -14
  302. package/node_modules/prebuild-install/help.txt +0 -16
  303. package/node_modules/prebuild-install/index.js +0 -1
  304. package/node_modules/prebuild-install/log.js +0 -33
  305. package/node_modules/prebuild-install/package.json +0 -67
  306. package/node_modules/prebuild-install/proxy.js +0 -35
  307. package/node_modules/prebuild-install/rc.js +0 -64
  308. package/node_modules/prebuild-install/util.js +0 -143
  309. package/node_modules/pump/.github/FUNDING.yml +0 -2
  310. package/node_modules/pump/.travis.yml +0 -5
  311. package/node_modules/pump/LICENSE +0 -21
  312. package/node_modules/pump/README.md +0 -74
  313. package/node_modules/pump/SECURITY.md +0 -5
  314. package/node_modules/pump/empty.js +0 -1
  315. package/node_modules/pump/index.js +0 -86
  316. package/node_modules/pump/package.json +0 -30
  317. package/node_modules/pump/test-browser.js +0 -66
  318. package/node_modules/pump/test-node.js +0 -53
  319. package/node_modules/rc/LICENSE.APACHE2 +0 -15
  320. package/node_modules/rc/LICENSE.BSD +0 -26
  321. package/node_modules/rc/LICENSE.MIT +0 -24
  322. package/node_modules/rc/README.md +0 -227
  323. package/node_modules/rc/browser.js +0 -7
  324. package/node_modules/rc/cli.js +0 -4
  325. package/node_modules/rc/index.js +0 -53
  326. package/node_modules/rc/lib/utils.js +0 -104
  327. package/node_modules/rc/package.json +0 -29
  328. package/node_modules/rc/test/ini.js +0 -16
  329. package/node_modules/rc/test/nested-env-vars.js +0 -50
  330. package/node_modules/rc/test/test.js +0 -59
  331. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  332. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  333. package/node_modules/readable-stream/LICENSE +0 -47
  334. package/node_modules/readable-stream/README.md +0 -106
  335. package/node_modules/readable-stream/errors-browser.js +0 -127
  336. package/node_modules/readable-stream/errors.js +0 -116
  337. package/node_modules/readable-stream/experimentalWarning.js +0 -17
  338. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -126
  339. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -37
  340. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1027
  341. package/node_modules/readable-stream/lib/_stream_transform.js +0 -190
  342. package/node_modules/readable-stream/lib/_stream_writable.js +0 -641
  343. package/node_modules/readable-stream/lib/internal/streams/async_iterator.js +0 -180
  344. package/node_modules/readable-stream/lib/internal/streams/buffer_list.js +0 -183
  345. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -96
  346. package/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +0 -86
  347. package/node_modules/readable-stream/lib/internal/streams/from-browser.js +0 -3
  348. package/node_modules/readable-stream/lib/internal/streams/from.js +0 -52
  349. package/node_modules/readable-stream/lib/internal/streams/pipeline.js +0 -86
  350. package/node_modules/readable-stream/lib/internal/streams/state.js +0 -22
  351. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  352. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  353. package/node_modules/readable-stream/package.json +0 -68
  354. package/node_modules/readable-stream/readable-browser.js +0 -9
  355. package/node_modules/readable-stream/readable.js +0 -16
  356. package/node_modules/safe-buffer/LICENSE +0 -21
  357. package/node_modules/safe-buffer/README.md +0 -584
  358. package/node_modules/safe-buffer/index.d.ts +0 -187
  359. package/node_modules/safe-buffer/index.js +0 -65
  360. package/node_modules/safe-buffer/package.json +0 -51
  361. package/node_modules/semver/LICENSE +0 -15
  362. package/node_modules/semver/README.md +0 -680
  363. package/node_modules/semver/bin/semver.js +0 -195
  364. package/node_modules/semver/classes/comparator.js +0 -143
  365. package/node_modules/semver/classes/index.js +0 -7
  366. package/node_modules/semver/classes/range.js +0 -577
  367. package/node_modules/semver/classes/semver.js +0 -350
  368. package/node_modules/semver/functions/clean.js +0 -8
  369. package/node_modules/semver/functions/cmp.js +0 -54
  370. package/node_modules/semver/functions/coerce.js +0 -62
  371. package/node_modules/semver/functions/compare-build.js +0 -9
  372. package/node_modules/semver/functions/compare-loose.js +0 -5
  373. package/node_modules/semver/functions/compare.js +0 -7
  374. package/node_modules/semver/functions/diff.js +0 -60
  375. package/node_modules/semver/functions/eq.js +0 -5
  376. package/node_modules/semver/functions/gt.js +0 -5
  377. package/node_modules/semver/functions/gte.js +0 -5
  378. package/node_modules/semver/functions/inc.js +0 -21
  379. package/node_modules/semver/functions/lt.js +0 -5
  380. package/node_modules/semver/functions/lte.js +0 -5
  381. package/node_modules/semver/functions/major.js +0 -5
  382. package/node_modules/semver/functions/minor.js +0 -5
  383. package/node_modules/semver/functions/neq.js +0 -5
  384. package/node_modules/semver/functions/parse.js +0 -18
  385. package/node_modules/semver/functions/patch.js +0 -5
  386. package/node_modules/semver/functions/prerelease.js +0 -8
  387. package/node_modules/semver/functions/rcompare.js +0 -5
  388. package/node_modules/semver/functions/rsort.js +0 -5
  389. package/node_modules/semver/functions/satisfies.js +0 -12
  390. package/node_modules/semver/functions/sort.js +0 -5
  391. package/node_modules/semver/functions/truncate.js +0 -48
  392. package/node_modules/semver/functions/valid.js +0 -8
  393. package/node_modules/semver/index.js +0 -93
  394. package/node_modules/semver/internal/constants.js +0 -37
  395. package/node_modules/semver/internal/debug.js +0 -11
  396. package/node_modules/semver/internal/identifiers.js +0 -29
  397. package/node_modules/semver/internal/lrucache.js +0 -42
  398. package/node_modules/semver/internal/parse-options.js +0 -17
  399. package/node_modules/semver/internal/re.js +0 -223
  400. package/node_modules/semver/package.json +0 -78
  401. package/node_modules/semver/preload.js +0 -4
  402. package/node_modules/semver/range.bnf +0 -17
  403. package/node_modules/semver/ranges/gtr.js +0 -6
  404. package/node_modules/semver/ranges/intersects.js +0 -9
  405. package/node_modules/semver/ranges/ltr.js +0 -6
  406. package/node_modules/semver/ranges/max-satisfying.js +0 -27
  407. package/node_modules/semver/ranges/min-satisfying.js +0 -26
  408. package/node_modules/semver/ranges/min-version.js +0 -63
  409. package/node_modules/semver/ranges/outside.js +0 -82
  410. package/node_modules/semver/ranges/simplify.js +0 -49
  411. package/node_modules/semver/ranges/subset.js +0 -249
  412. package/node_modules/semver/ranges/to-comparators.js +0 -10
  413. package/node_modules/semver/ranges/valid.js +0 -13
  414. package/node_modules/simple-concat/.travis.yml +0 -3
  415. package/node_modules/simple-concat/LICENSE +0 -20
  416. package/node_modules/simple-concat/README.md +0 -44
  417. package/node_modules/simple-concat/index.js +0 -15
  418. package/node_modules/simple-concat/package.json +0 -47
  419. package/node_modules/simple-concat/test/basic.js +0 -41
  420. package/node_modules/simple-get/.github/dependabot.yml +0 -15
  421. package/node_modules/simple-get/.github/workflows/ci.yml +0 -23
  422. package/node_modules/simple-get/LICENSE +0 -20
  423. package/node_modules/simple-get/README.md +0 -333
  424. package/node_modules/simple-get/index.js +0 -108
  425. package/node_modules/simple-get/package.json +0 -67
  426. package/node_modules/string_decoder/LICENSE +0 -48
  427. package/node_modules/string_decoder/README.md +0 -47
  428. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  429. package/node_modules/string_decoder/package.json +0 -34
  430. package/node_modules/strip-json-comments/index.js +0 -70
  431. package/node_modules/strip-json-comments/license +0 -21
  432. package/node_modules/strip-json-comments/package.json +0 -42
  433. package/node_modules/strip-json-comments/readme.md +0 -64
  434. package/node_modules/tar-fs/.travis.yml +0 -6
  435. package/node_modules/tar-fs/LICENSE +0 -21
  436. package/node_modules/tar-fs/README.md +0 -165
  437. package/node_modules/tar-fs/index.js +0 -392
  438. package/node_modules/tar-fs/package.json +0 -46
  439. package/node_modules/tar-fs/test/fixtures/a/hello.txt +0 -1
  440. package/node_modules/tar-fs/test/fixtures/b/a/test.txt +0 -1
  441. package/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  442. package/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  443. package/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  444. package/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  445. package/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  446. package/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  447. package/node_modules/tar-fs/test/fixtures/e/file +0 -0
  448. package/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  449. package/node_modules/tar-fs/test/index.js +0 -457
  450. package/node_modules/tar-stream/LICENSE +0 -21
  451. package/node_modules/tar-stream/README.md +0 -168
  452. package/node_modules/tar-stream/extract.js +0 -257
  453. package/node_modules/tar-stream/headers.js +0 -295
  454. package/node_modules/tar-stream/index.js +0 -2
  455. package/node_modules/tar-stream/pack.js +0 -255
  456. package/node_modules/tar-stream/package.json +0 -58
  457. package/node_modules/tar-stream/sandbox.js +0 -11
  458. package/node_modules/tunnel-agent/LICENSE +0 -55
  459. package/node_modules/tunnel-agent/README.md +0 -4
  460. package/node_modules/tunnel-agent/index.js +0 -244
  461. package/node_modules/tunnel-agent/package.json +0 -22
  462. package/node_modules/util-deprecate/History.md +0 -16
  463. package/node_modules/util-deprecate/LICENSE +0 -24
  464. package/node_modules/util-deprecate/README.md +0 -53
  465. package/node_modules/util-deprecate/browser.js +0 -67
  466. package/node_modules/util-deprecate/node.js +0 -6
  467. package/node_modules/util-deprecate/package.json +0 -27
  468. package/node_modules/wrappy/LICENSE +0 -15
  469. package/node_modules/wrappy/README.md +0 -36
  470. package/node_modules/wrappy/package.json +0 -29
  471. package/node_modules/wrappy/wrappy.js +0 -33
@@ -1,16 +0,0 @@
1
- export declare class TwinError extends Error {
2
- readonly status: number;
3
- readonly code: string;
4
- readonly extra?: Record<string, unknown> | undefined;
5
- constructor(message: string, status: number, code: string, extra?: Record<string, unknown> | undefined);
6
- }
7
- export declare function slackError(code: string, status?: number, extra?: Record<string, unknown>): never;
8
- export declare function notFound(code?: string): never;
9
- export declare function validationFailed(code?: string, extra?: Record<string, unknown>): never;
10
- export declare function buildSlackErrorPayload(err: TwinError): {
11
- ok: boolean;
12
- error: string;
13
- };
14
- export declare function isSqliteConstraintError(err: unknown): boolean;
15
- /** Map SQLite UNIQUE violations to Slack-shaped domain errors for concurrent requests. */
16
- export declare function twinErrorFromSqliteConstraint(method: string, err: unknown): TwinError | null;
@@ -1,60 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // TwinError carries an HTTP status + Slack-shaped error code. The HTTP layer
3
- // in `app.ts` translates this into `{ok:false, error:<code>}` with the right
4
- // status. Common codes pulled from real Slack docs:
5
- // - channel_not_found, user_not_found, message_not_found
6
- // - not_in_channel, already_in_channel, cant_kick_self, cant_leave_general
7
- // - is_archived, name_taken, restricted_action
8
- // - invalid_auth, not_authed, missing_scope
9
- // - cant_delete_message, cant_update_message, edit_window_closed
10
- // - invalid_arguments, invalid_array_arg, invalid_cursor
11
- // - rate_limited, internal_error
12
- export class TwinError extends Error {
13
- status;
14
- code;
15
- extra;
16
- constructor(message, status, code, extra) {
17
- super(message);
18
- this.status = status;
19
- this.code = code;
20
- this.extra = extra;
21
- }
22
- }
23
- export function slackError(code, status = 400, extra) {
24
- throw new TwinError(code, status, code, extra);
25
- }
26
- export function notFound(code = "not_found") {
27
- throw new TwinError(code, 404, code);
28
- }
29
- export function validationFailed(code = "invalid_arguments", extra) {
30
- throw new TwinError(code, 400, code, extra);
31
- }
32
- export function buildSlackErrorPayload(err) {
33
- return {
34
- ok: false,
35
- error: err.code,
36
- ...(err.extra ?? {}),
37
- };
38
- }
39
- export function isSqliteConstraintError(err) {
40
- if (!err || typeof err !== "object")
41
- return false;
42
- const code = err.code ?? "";
43
- return code.startsWith("SQLITE_CONSTRAINT");
44
- }
45
- /** Map SQLite UNIQUE violations to Slack-shaped domain errors for concurrent requests. */
46
- export function twinErrorFromSqliteConstraint(method, err) {
47
- if (!isSqliteConstraintError(err))
48
- return null;
49
- const message = err instanceof Error ? err.message : String(err);
50
- if (method === "conversations.create" || message.includes("channels_name_idx")) {
51
- return new TwinError("name_taken", 409, "name_taken");
52
- }
53
- if (method.startsWith("reactions.") || message.includes("reactions")) {
54
- return new TwinError("already_reacted", 400, "already_reacted");
55
- }
56
- if (method.startsWith("pins.") || message.includes("pins")) {
57
- return new TwinError("already_pinned", 400, "already_pinned");
58
- }
59
- return new TwinError("internal_error", 500, "internal_error", { warning: message });
60
- }
@@ -1,8 +0,0 @@
1
- export { createSlackTwinApp } from "./app.js";
2
- export { SlackDomain } from "./domain.js";
3
- export { openSlackTwinDatabase, migrate, resetDatabase } from "./db.js";
4
- export { createRecorder } from "./recorder.js";
5
- export { seedSchema, parseSeed, loadSeedFromEnv, defaultSeedState } from "./seed.js";
6
- export { toolDefinitions, listTools, listToolsForMcp, executeTool, MUTATING_TOOL_NAMES, isMutatingTool } from "./tools.js";
7
- export { twinBuildInfo } from "./build-info.js";
8
- export type { BookmarkRow, ChannelMemberRow, ChannelRow, FileRow, MessageRow, PinRow, ReactionRow, Recorder, RecorderEvent, ScheduledMessageRow, SlackStateSeed, SlackTwinDatabase, UserRow, WorkspaceRow, } from "./types.js";
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- export { createSlackTwinApp } from "./app.js";
3
- export { SlackDomain } from "./domain.js";
4
- export { openSlackTwinDatabase, migrate, resetDatabase } from "./db.js";
5
- export { createRecorder } from "./recorder.js";
6
- export { seedSchema, parseSeed, loadSeedFromEnv, defaultSeedState } from "./seed.js";
7
- export { toolDefinitions, listTools, listToolsForMcp, executeTool, MUTATING_TOOL_NAMES, isMutatingTool } from "./tools.js";
8
- export { twinBuildInfo } from "./build-info.js";
@@ -1,17 +0,0 @@
1
- import type { Context } from "hono";
2
- import type { SlackDomain } from "./domain.js";
3
- import type { Recorder } from "./types.js";
4
- export type McpDeps = {
5
- domain: SlackDomain;
6
- recorder?: Recorder;
7
- runId: string;
8
- };
9
- export declare function mcpMethodNotAllowed(c: Context): Response & import("hono").TypedResponse<{
10
- jsonrpc: string;
11
- id: null;
12
- error: {
13
- code: number;
14
- message: string;
15
- };
16
- }, 405, "json">;
17
- export declare function handleMcpRequest(c: Context, deps: McpDeps): Promise<Response>;
@@ -1,226 +0,0 @@
1
- import { z } from "zod";
2
- import { twinBuildInfo } from "./build-info.js";
3
- import { TwinError, twinErrorFromSqliteConstraint } from "./errors.js";
4
- import { executeTool, isMutatingTool, listToolsForMcp, toolDefinitions } from "./tools.js";
5
- import { requestId } from "./util.js";
6
- const PARSE_ERROR = -32700;
7
- const INVALID_REQUEST = -32600;
8
- const METHOD_NOT_FOUND = -32601;
9
- const INVALID_PARAMS = -32602;
10
- const INTERNAL_ERROR = -32603;
11
- const DEFAULT_PROTOCOL_VERSION = "2025-06-18";
12
- const SUPPORTED_PROTOCOL_VERSIONS = new Set(["2024-11-05", "2025-03-26", "2025-06-18"]);
13
- export function mcpMethodNotAllowed(c) {
14
- return c.json({ jsonrpc: "2.0", id: null, error: { code: METHOD_NOT_FOUND, message: "Method not allowed in stateless mode" } }, 405, { Allow: "POST" });
15
- }
16
- export async function handleMcpRequest(c, deps) {
17
- let body;
18
- try {
19
- body = await c.req.json();
20
- }
21
- catch {
22
- return jsonRpcErrorResponse(null, PARSE_ERROR, "Problems parsing JSON");
23
- }
24
- if (Array.isArray(body)) {
25
- if (body.length === 0) {
26
- return jsonRpcErrorResponse(null, INVALID_REQUEST, "Invalid Request");
27
- }
28
- const out = [];
29
- for (const message of body) {
30
- const response = await dispatch(message, deps, c);
31
- if (response)
32
- out.push(response);
33
- }
34
- if (out.length === 0)
35
- return new Response(null, { status: 202 });
36
- return Response.json(out, { status: 200, headers: { "content-type": "application/json" } });
37
- }
38
- const response = await dispatch(body, deps, c);
39
- if (!response)
40
- return new Response(null, { status: 202 });
41
- return Response.json(response, { status: 200, headers: { "content-type": "application/json" } });
42
- }
43
- async function dispatch(message, deps, c) {
44
- if (!isObject(message))
45
- return errorEnvelope(null, INVALID_REQUEST, "Invalid Request");
46
- if (message.jsonrpc !== "2.0" || typeof message.method !== "string") {
47
- return errorEnvelope(idOf(message), INVALID_REQUEST, "Invalid Request");
48
- }
49
- const method = message.method;
50
- const params = isObject(message.params) ? message.params : {};
51
- const rawId = message.id;
52
- if (rawId === undefined || rawId === null)
53
- return null;
54
- if (typeof rawId !== "string" && typeof rawId !== "number") {
55
- return errorEnvelope(null, INVALID_REQUEST, "Invalid Request: id must be string or number");
56
- }
57
- const id = rawId;
58
- try {
59
- switch (method) {
60
- case "initialize":
61
- return { jsonrpc: "2.0", id, result: buildInitializeResult(params) };
62
- case "ping":
63
- return { jsonrpc: "2.0", id, result: {} };
64
- case "tools/list":
65
- return { jsonrpc: "2.0", id, result: { tools: listToolsForMcp() } };
66
- case "tools/call":
67
- return await handleToolsCall(id, params, deps, c);
68
- default:
69
- return errorEnvelope(id, METHOD_NOT_FOUND, `Method not found: ${method}`);
70
- }
71
- }
72
- catch (err) {
73
- return errorEnvelope(id, INTERNAL_ERROR, err instanceof Error ? err.message : "Internal error");
74
- }
75
- }
76
- function buildInitializeResult(params) {
77
- const requested = typeof params.protocolVersion === "string" ? params.protocolVersion : undefined;
78
- const protocolVersion = requested && SUPPORTED_PROTOCOL_VERSIONS.has(requested) ? requested : DEFAULT_PROTOCOL_VERSION;
79
- return {
80
- protocolVersion,
81
- capabilities: { tools: { listChanged: false } },
82
- serverInfo: { name: "twin-slack", version: twinBuildInfo().version },
83
- };
84
- }
85
- async function handleToolsCall(id, params, deps, c) {
86
- const name = params.name;
87
- const args = params.arguments === undefined || params.arguments === null
88
- ? {}
89
- : isObject(params.arguments)
90
- ? params.arguments
91
- : undefined;
92
- if (typeof name !== "string" || name.length === 0 || args === undefined) {
93
- return errorEnvelope(id, INVALID_PARAMS, "Invalid params: expected { name: string, arguments?: object }");
94
- }
95
- if (!toolDefinitions.some((t) => t.name === name)) {
96
- return {
97
- jsonrpc: "2.0",
98
- id,
99
- result: makeToolErrorResult({ ok: false, error: "unknown_tool" }),
100
- };
101
- }
102
- const started = Date.now();
103
- const recordedRequestBody = { tool: name, arguments: args };
104
- let delta = null;
105
- let status = 200;
106
- let responseBody = null;
107
- let toolError = null;
108
- let mcpResult;
109
- try {
110
- const session = c.get("session");
111
- const actor = { login: session?.login };
112
- const value = executeTool(deps.domain, name, args, (d) => {
113
- delta = d;
114
- }, actor);
115
- responseBody = wrapSlackOk(value);
116
- mcpResult = { content: [{ type: "text", text: jsonText(responseBody) }] };
117
- }
118
- catch (err) {
119
- if (err instanceof TwinError) {
120
- status = err.status;
121
- const slackErr = { ok: false, error: err.code };
122
- responseBody = slackErr;
123
- toolError = err.code;
124
- mcpResult = { content: [{ type: "text", text: jsonText(slackErr) }], isError: true };
125
- }
126
- else if (err instanceof z.ZodError) {
127
- status = 422;
128
- const slackErr = {
129
- ok: false,
130
- error: "invalid_arguments",
131
- response_metadata: {
132
- messages: err.issues.map((issue) => `${issue.path.join(".") || "(root)"}: ${issue.message}`),
133
- },
134
- };
135
- responseBody = slackErr;
136
- toolError = "invalid_arguments";
137
- mcpResult = { content: [{ type: "text", text: jsonText(slackErr) }], isError: true };
138
- }
139
- else {
140
- const mapped = twinErrorFromSqliteConstraint(name, err);
141
- if (mapped) {
142
- status = mapped.status;
143
- const slackErr = { ok: false, error: mapped.code };
144
- responseBody = slackErr;
145
- toolError = mapped.code;
146
- mcpResult = { content: [{ type: "text", text: jsonText(slackErr) }], isError: true };
147
- }
148
- else {
149
- status = 500;
150
- const message = err instanceof Error ? err.message : "Internal Server Error";
151
- const slackErr = { ok: false, error: "internal_error", warning: message };
152
- responseBody = slackErr;
153
- toolError = message;
154
- mcpResult = { content: [{ type: "text", text: jsonText(slackErr) }], isError: true };
155
- }
156
- }
157
- }
158
- recordToolCall(c, deps, {
159
- started,
160
- status,
161
- requestBody: recordedRequestBody,
162
- responseBody,
163
- mutation: status < 400 && isMutatingTool(name),
164
- stateDelta: status < 400 ? delta : null,
165
- error: toolError,
166
- });
167
- return { jsonrpc: "2.0", id, result: mcpResult };
168
- }
169
- function recordToolCall(c, deps, fields) {
170
- if (!deps.recorder)
171
- return;
172
- const reqId = requestId();
173
- deps.recorder.record({
174
- ts: new Date().toISOString(),
175
- run_id: deps.runId,
176
- twin: "slack",
177
- request_id: reqId,
178
- correlation_id: reqId,
179
- scenario_step_id: c.req.header("x-pome-scenario-step-id") ?? null,
180
- step_id: null,
181
- tool_call_id: null,
182
- method: c.req.method,
183
- path: new URL(c.req.url).pathname,
184
- request_body: fields.requestBody,
185
- status: fields.status,
186
- response_body: fields.responseBody,
187
- latency_ms: Date.now() - fields.started,
188
- fidelity: "semantic",
189
- state_mutation: fields.mutation,
190
- state_delta: fields.stateDelta,
191
- error: fields.error,
192
- });
193
- }
194
- function makeToolErrorResult(payload) {
195
- return { content: [{ type: "text", text: jsonText(payload) }], isError: true };
196
- }
197
- function wrapSlackOk(value) {
198
- if (value && typeof value === "object" && !Array.isArray(value)) {
199
- const obj = value;
200
- if ("ok" in obj)
201
- return obj;
202
- return { ok: true, ...obj };
203
- }
204
- return { ok: true, result: value };
205
- }
206
- function errorEnvelope(id, code, message) {
207
- return { jsonrpc: "2.0", id, error: { code, message } };
208
- }
209
- function jsonRpcErrorResponse(id, code, message) {
210
- return Response.json(errorEnvelope(id, code, message), {
211
- status: 200,
212
- headers: { "content-type": "application/json" },
213
- });
214
- }
215
- function idOf(message) {
216
- const id = message.id;
217
- if (typeof id === "string" || typeof id === "number")
218
- return id;
219
- return null;
220
- }
221
- function isObject(value) {
222
- return typeof value === "object" && value !== null && !Array.isArray(value);
223
- }
224
- function jsonText(value) {
225
- return JSON.stringify(value);
226
- }
@@ -1,2 +0,0 @@
1
- import type { Recorder } from "./types.js";
2
- export declare function createRecorder(): Recorder;
@@ -1,15 +0,0 @@
1
- import { redactEvent } from "../recorder/redaction.js";
2
- // In-memory, run-scoped recorder for the twin pod. Events live for the
3
- // lifetime of the machine — discarded when the sandbox shuts down (DELETE
4
- // /v1/sessions/:id or 30-min TTL).
5
- export function createRecorder() {
6
- const items = [];
7
- return {
8
- record(event) {
9
- items.push(redactEvent(event));
10
- },
11
- events() {
12
- return [...items];
13
- },
14
- };
15
- }
@@ -1,49 +0,0 @@
1
- import { z } from "zod";
2
- import type { SlackStateSeed } from "./types.js";
3
- export declare const seedSchema: z.ZodObject<{
4
- team: z.ZodPrefault<z.ZodObject<{
5
- id: z.ZodOptional<z.ZodString>;
6
- name: z.ZodDefault<z.ZodString>;
7
- domain: z.ZodDefault<z.ZodString>;
8
- }, z.core.$strip>>;
9
- users: z.ZodDefault<z.ZodArray<z.ZodObject<{
10
- id: z.ZodOptional<z.ZodString>;
11
- name: z.ZodString;
12
- real_name: z.ZodDefault<z.ZodString>;
13
- email: z.ZodOptional<z.ZodString>;
14
- is_bot: z.ZodDefault<z.ZodBoolean>;
15
- is_admin: z.ZodDefault<z.ZodBoolean>;
16
- tz: z.ZodDefault<z.ZodString>;
17
- profile: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
18
- }, z.core.$strip>>>;
19
- channels: z.ZodDefault<z.ZodArray<z.ZodObject<{
20
- id: z.ZodOptional<z.ZodString>;
21
- name: z.ZodString;
22
- is_private: z.ZodDefault<z.ZodBoolean>;
23
- topic: z.ZodDefault<z.ZodString>;
24
- purpose: z.ZodDefault<z.ZodString>;
25
- creator: z.ZodOptional<z.ZodString>;
26
- members: z.ZodDefault<z.ZodArray<z.ZodString>>;
27
- messages: z.ZodDefault<z.ZodArray<z.ZodObject<{
28
- ts: z.ZodOptional<z.ZodString>;
29
- user: z.ZodString;
30
- text: z.ZodString;
31
- thread_ts: z.ZodOptional<z.ZodString>;
32
- reactions: z.ZodDefault<z.ZodArray<z.ZodObject<{
33
- name: z.ZodString;
34
- user: z.ZodString;
35
- }, z.core.$strip>>>;
36
- }, z.core.$strip>>>;
37
- }, z.core.$strip>>>;
38
- }, z.core.$strip>;
39
- export declare function parseSeed(input: unknown): SlackStateSeed;
40
- /**
41
- * Boot-time seed loader: prefer `POME_SEED_JSON` env (set by the cloud
42
- * control-plane from the CLI-supplied scenario seed). Accepts both the flat
43
- * shape and the cloud's provider-scoped envelope `{slack:{seed:...}}`. Falls
44
- * back to `defaultSeedState()` when env is absent. Throws on malformed JSON
45
- * or schema-invalid seed so a misconfigured cloud deploy fails healthz
46
- * rather than silently booting with the default world.
47
- */
48
- export declare function loadSeedFromEnv(env?: NodeJS.ProcessEnv): SlackStateSeed;
49
- export declare function defaultSeedState(): SlackStateSeed;
@@ -1,139 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- import { z } from "zod";
3
- // Slack seed schema. Matches `slackSeedStateSchema` in `@pome-sh/shared-types`
4
- // shape-for-shape. Minimum bootstrap is `{}` — every nested field has defaults
5
- // and every top-level list defaults to `[]`.
6
- export const seedSchema = z.object({
7
- team: z
8
- .object({
9
- id: z.string().regex(/^T[A-Z0-9_]+$/).optional(),
10
- name: z.string().default("Pome Twin Workspace"),
11
- domain: z.string().default("pome-twin"),
12
- })
13
- .prefault({}),
14
- users: z
15
- .array(z.object({
16
- id: z.string().regex(/^[UB][A-Z0-9_]+$/).optional(),
17
- name: z.string().min(1),
18
- real_name: z.string().default(""),
19
- email: z.string().email().optional(),
20
- is_bot: z.boolean().default(false),
21
- is_admin: z.boolean().default(false),
22
- tz: z.string().default("America/Los_Angeles"),
23
- profile: z.record(z.string(), z.unknown()).default({}),
24
- }))
25
- .default([]),
26
- channels: z
27
- .array(z.object({
28
- id: z.string().regex(/^[CGDM][A-Z0-9_]+$/).optional(),
29
- name: z.string().regex(/^[a-z0-9_-]{1,80}$/),
30
- is_private: z.boolean().default(false),
31
- topic: z.string().default(""),
32
- purpose: z.string().default(""),
33
- creator: z.string().optional(),
34
- members: z.array(z.string()).default([]),
35
- messages: z
36
- .array(z.object({
37
- ts: z.string().optional(),
38
- user: z.string(),
39
- text: z.string(),
40
- thread_ts: z.string().optional(),
41
- reactions: z
42
- .array(z.object({ name: z.string(), user: z.string() }))
43
- .default([]),
44
- }))
45
- .default([]),
46
- }))
47
- .default([]),
48
- });
49
- export function parseSeed(input) {
50
- return seedSchema.parse(input);
51
- }
52
- /**
53
- * Boot-time seed loader: prefer `POME_SEED_JSON` env (set by the cloud
54
- * control-plane from the CLI-supplied scenario seed). Accepts both the flat
55
- * shape and the cloud's provider-scoped envelope `{slack:{seed:...}}`. Falls
56
- * back to `defaultSeedState()` when env is absent. Throws on malformed JSON
57
- * or schema-invalid seed so a misconfigured cloud deploy fails healthz
58
- * rather than silently booting with the default world.
59
- */
60
- export function loadSeedFromEnv(env = process.env) {
61
- const raw = env.POME_SEED_JSON;
62
- if (raw === undefined || raw === "") {
63
- return defaultSeedState();
64
- }
65
- let parsed;
66
- try {
67
- parsed = JSON.parse(raw);
68
- }
69
- catch (err) {
70
- throw new Error(`POME_SEED_JSON is not valid JSON: ${err.message}`);
71
- }
72
- // Unwrap provider-scoped envelope if present.
73
- if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
74
- const obj = parsed;
75
- if (obj.slack && typeof obj.slack === "object" && obj.slack !== null) {
76
- const slack = obj.slack;
77
- if ("seed" in slack) {
78
- return parseSeed(slack.seed);
79
- }
80
- }
81
- }
82
- return parseSeed(parsed);
83
- }
84
- export function defaultSeedState() {
85
- return {
86
- team: {
87
- id: "T_POME",
88
- name: "Pome Twin Workspace",
89
- domain: "pome-twin",
90
- },
91
- users: [
92
- {
93
- id: "U_PRIMARY",
94
- name: "pome-agent",
95
- real_name: "Pome Agent",
96
- email: "pome-agent@pome-twin.slack.com",
97
- is_bot: false,
98
- is_admin: true,
99
- },
100
- {
101
- id: "U_ALICE",
102
- name: "alice",
103
- real_name: "Alice",
104
- email: "alice@pome-twin.slack.com",
105
- },
106
- {
107
- id: "U_BOB",
108
- name: "bob",
109
- real_name: "Bob",
110
- email: "bob@pome-twin.slack.com",
111
- },
112
- ],
113
- channels: [
114
- {
115
- id: "C_GENERAL",
116
- name: "general",
117
- is_private: false,
118
- topic: "Company-wide announcements and chatter.",
119
- purpose: "This channel is for company-wide communication.",
120
- creator: "U_PRIMARY",
121
- members: ["U_PRIMARY", "U_ALICE", "U_BOB"],
122
- messages: [
123
- { user: "U_ALICE", text: "morning team" },
124
- { user: "U_BOB", text: "morning :wave:" },
125
- ],
126
- },
127
- {
128
- id: "C_RANDOM",
129
- name: "random",
130
- is_private: false,
131
- topic: "Non-work chatter and water cooler talk.",
132
- purpose: "A place for non-work-related flimflam.",
133
- creator: "U_PRIMARY",
134
- members: [],
135
- messages: [],
136
- },
137
- ],
138
- };
139
- }