@knowzai/cli 0.1.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 (578) hide show
  1. package/LICENSE +21 -0
  2. package/assets/portable/.env.example +250 -0
  3. package/assets/portable/docker-compose.yml +444 -0
  4. package/assets/portable/postgres-initdb/00-databases-and-extensions.sql +16 -0
  5. package/assets/portable/releases.json +37 -0
  6. package/assets/portable/runtime-contract.json +149 -0
  7. package/bin/run.js +4 -0
  8. package/dist/.tsbuildinfo +1 -0
  9. package/dist/base-command.d.ts +47 -0
  10. package/dist/base-command.d.ts.map +1 -0
  11. package/dist/base-command.js +98 -0
  12. package/dist/base-command.js.map +1 -0
  13. package/dist/commands/activate.d.ts +39 -0
  14. package/dist/commands/activate.d.ts.map +1 -0
  15. package/dist/commands/activate.js +103 -0
  16. package/dist/commands/activate.js.map +1 -0
  17. package/dist/commands/ask.d.ts +14 -0
  18. package/dist/commands/ask.d.ts.map +1 -0
  19. package/dist/commands/ask.js +33 -0
  20. package/dist/commands/ask.js.map +1 -0
  21. package/dist/commands/auth/status.d.ts +7 -0
  22. package/dist/commands/auth/status.d.ts.map +1 -0
  23. package/dist/commands/auth/status.js +26 -0
  24. package/dist/commands/auth/status.js.map +1 -0
  25. package/dist/commands/backup.d.ts +15 -0
  26. package/dist/commands/backup.d.ts.map +1 -0
  27. package/dist/commands/backup.js +52 -0
  28. package/dist/commands/backup.js.map +1 -0
  29. package/dist/commands/capture/observe.d.ts +23 -0
  30. package/dist/commands/capture/observe.d.ts.map +1 -0
  31. package/dist/commands/capture/observe.js +68 -0
  32. package/dist/commands/capture/observe.js.map +1 -0
  33. package/dist/commands/capture/seal.d.ts +27 -0
  34. package/dist/commands/capture/seal.d.ts.map +1 -0
  35. package/dist/commands/capture/seal.js +144 -0
  36. package/dist/commands/capture/seal.js.map +1 -0
  37. package/dist/commands/capture/status.d.ts +33 -0
  38. package/dist/commands/capture/status.d.ts.map +1 -0
  39. package/dist/commands/capture/status.js +52 -0
  40. package/dist/commands/capture/status.js.map +1 -0
  41. package/dist/commands/chat.d.ts +21 -0
  42. package/dist/commands/chat.d.ts.map +1 -0
  43. package/dist/commands/chat.js +142 -0
  44. package/dist/commands/chat.js.map +1 -0
  45. package/dist/commands/cmek/decrypt.d.ts +13 -0
  46. package/dist/commands/cmek/decrypt.d.ts.map +1 -0
  47. package/dist/commands/cmek/decrypt.js +25 -0
  48. package/dist/commands/cmek/decrypt.js.map +1 -0
  49. package/dist/commands/cmek/encrypt.d.ts +15 -0
  50. package/dist/commands/cmek/encrypt.d.ts.map +1 -0
  51. package/dist/commands/cmek/encrypt.js +26 -0
  52. package/dist/commands/cmek/encrypt.js.map +1 -0
  53. package/dist/commands/cmek/init.d.ts +13 -0
  54. package/dist/commands/cmek/init.d.ts.map +1 -0
  55. package/dist/commands/cmek/init.js +27 -0
  56. package/dist/commands/cmek/init.js.map +1 -0
  57. package/dist/commands/cmek/status.d.ts +11 -0
  58. package/dist/commands/cmek/status.d.ts.map +1 -0
  59. package/dist/commands/cmek/status.js +23 -0
  60. package/dist/commands/cmek/status.js.map +1 -0
  61. package/dist/commands/completion.d.ts +13 -0
  62. package/dist/commands/completion.d.ts.map +1 -0
  63. package/dist/commands/completion.js +19 -0
  64. package/dist/commands/completion.js.map +1 -0
  65. package/dist/commands/config/get.d.ts +13 -0
  66. package/dist/commands/config/get.d.ts.map +1 -0
  67. package/dist/commands/config/get.js +28 -0
  68. package/dist/commands/config/get.js.map +1 -0
  69. package/dist/commands/config/list.d.ts +7 -0
  70. package/dist/commands/config/list.d.ts.map +1 -0
  71. package/dist/commands/config/list.js +28 -0
  72. package/dist/commands/config/list.js.map +1 -0
  73. package/dist/commands/config/path.d.ts +9 -0
  74. package/dist/commands/config/path.d.ts.map +1 -0
  75. package/dist/commands/config/path.js +15 -0
  76. package/dist/commands/config/path.js.map +1 -0
  77. package/dist/commands/config/set.d.ts +16 -0
  78. package/dist/commands/config/set.d.ts.map +1 -0
  79. package/dist/commands/config/set.js +36 -0
  80. package/dist/commands/config/set.js.map +1 -0
  81. package/dist/commands/doctor.d.ts +56 -0
  82. package/dist/commands/doctor.d.ts.map +1 -0
  83. package/dist/commands/doctor.js +151 -0
  84. package/dist/commands/doctor.js.map +1 -0
  85. package/dist/commands/down.d.ts +30 -0
  86. package/dist/commands/down.d.ts.map +1 -0
  87. package/dist/commands/down.js +20 -0
  88. package/dist/commands/down.js.map +1 -0
  89. package/dist/commands/entities/find.d.ts +16 -0
  90. package/dist/commands/entities/find.d.ts.map +1 -0
  91. package/dist/commands/entities/find.js +27 -0
  92. package/dist/commands/entities/find.js.map +1 -0
  93. package/dist/commands/hooks/install.d.ts +19 -0
  94. package/dist/commands/hooks/install.d.ts.map +1 -0
  95. package/dist/commands/hooks/install.js +53 -0
  96. package/dist/commands/hooks/install.js.map +1 -0
  97. package/dist/commands/index/graph.d.ts +11 -0
  98. package/dist/commands/index/graph.d.ts.map +1 -0
  99. package/dist/commands/index/graph.js +31 -0
  100. package/dist/commands/index/graph.js.map +1 -0
  101. package/dist/commands/index/scan.d.ts +22 -0
  102. package/dist/commands/index/scan.d.ts.map +1 -0
  103. package/dist/commands/index/scan.js +48 -0
  104. package/dist/commands/index/scan.js.map +1 -0
  105. package/dist/commands/index/search.d.ts +18 -0
  106. package/dist/commands/index/search.d.ts.map +1 -0
  107. package/dist/commands/index/search.js +40 -0
  108. package/dist/commands/index/search.js.map +1 -0
  109. package/dist/commands/ingest/add.d.ts +15 -0
  110. package/dist/commands/ingest/add.d.ts.map +1 -0
  111. package/dist/commands/ingest/add.js +50 -0
  112. package/dist/commands/ingest/add.js.map +1 -0
  113. package/dist/commands/knowledge/amend.d.ts +19 -0
  114. package/dist/commands/knowledge/amend.d.ts.map +1 -0
  115. package/dist/commands/knowledge/amend.js +27 -0
  116. package/dist/commands/knowledge/amend.js.map +1 -0
  117. package/dist/commands/knowledge/comment.d.ts +16 -0
  118. package/dist/commands/knowledge/comment.d.ts.map +1 -0
  119. package/dist/commands/knowledge/comment.js +27 -0
  120. package/dist/commands/knowledge/comment.js.map +1 -0
  121. package/dist/commands/knowledge/comments.d.ts +11 -0
  122. package/dist/commands/knowledge/comments.d.ts.map +1 -0
  123. package/dist/commands/knowledge/comments.js +20 -0
  124. package/dist/commands/knowledge/comments.js.map +1 -0
  125. package/dist/commands/knowledge/create.d.ts +18 -0
  126. package/dist/commands/knowledge/create.d.ts.map +1 -0
  127. package/dist/commands/knowledge/create.js +45 -0
  128. package/dist/commands/knowledge/create.js.map +1 -0
  129. package/dist/commands/knowledge/delete.d.ts +14 -0
  130. package/dist/commands/knowledge/delete.d.ts.map +1 -0
  131. package/dist/commands/knowledge/delete.js +30 -0
  132. package/dist/commands/knowledge/delete.js.map +1 -0
  133. package/dist/commands/knowledge/get.d.ts +13 -0
  134. package/dist/commands/knowledge/get.d.ts.map +1 -0
  135. package/dist/commands/knowledge/get.js +20 -0
  136. package/dist/commands/knowledge/get.js.map +1 -0
  137. package/dist/commands/knowledge/list.d.ts +13 -0
  138. package/dist/commands/knowledge/list.d.ts.map +1 -0
  139. package/dist/commands/knowledge/list.js +31 -0
  140. package/dist/commands/knowledge/list.js.map +1 -0
  141. package/dist/commands/knowledge/status.d.ts +11 -0
  142. package/dist/commands/knowledge/status.d.ts.map +1 -0
  143. package/dist/commands/knowledge/status.js +23 -0
  144. package/dist/commands/knowledge/status.js.map +1 -0
  145. package/dist/commands/knowledge/update.d.ts +16 -0
  146. package/dist/commands/knowledge/update.d.ts.map +1 -0
  147. package/dist/commands/knowledge/update.js +32 -0
  148. package/dist/commands/knowledge/update.js.map +1 -0
  149. package/dist/commands/knowledge/versions.d.ts +11 -0
  150. package/dist/commands/knowledge/versions.d.ts.map +1 -0
  151. package/dist/commands/knowledge/versions.js +22 -0
  152. package/dist/commands/knowledge/versions.js.map +1 -0
  153. package/dist/commands/local/info.d.ts +17 -0
  154. package/dist/commands/local/info.d.ts.map +1 -0
  155. package/dist/commands/local/info.js +26 -0
  156. package/dist/commands/local/info.js.map +1 -0
  157. package/dist/commands/local/init.d.ts +16 -0
  158. package/dist/commands/local/init.d.ts.map +1 -0
  159. package/dist/commands/local/init.js +31 -0
  160. package/dist/commands/local/init.js.map +1 -0
  161. package/dist/commands/local/list.d.ts +13 -0
  162. package/dist/commands/local/list.d.ts.map +1 -0
  163. package/dist/commands/local/list.js +29 -0
  164. package/dist/commands/local/list.js.map +1 -0
  165. package/dist/commands/local/reset.d.ts +12 -0
  166. package/dist/commands/local/reset.d.ts.map +1 -0
  167. package/dist/commands/local/reset.js +34 -0
  168. package/dist/commands/local/reset.js.map +1 -0
  169. package/dist/commands/local/show.d.ts +15 -0
  170. package/dist/commands/local/show.d.ts.map +1 -0
  171. package/dist/commands/local/show.js +33 -0
  172. package/dist/commands/local/show.js.map +1 -0
  173. package/dist/commands/login.d.ts +23 -0
  174. package/dist/commands/login.d.ts.map +1 -0
  175. package/dist/commands/login.js +139 -0
  176. package/dist/commands/login.js.map +1 -0
  177. package/dist/commands/logout.d.ts +11 -0
  178. package/dist/commands/logout.d.ts.map +1 -0
  179. package/dist/commands/logout.js +23 -0
  180. package/dist/commands/logout.js.map +1 -0
  181. package/dist/commands/menu.d.ts +10 -0
  182. package/dist/commands/menu.d.ts.map +1 -0
  183. package/dist/commands/menu.js +50 -0
  184. package/dist/commands/menu.js.map +1 -0
  185. package/dist/commands/pg/destroy.d.ts +13 -0
  186. package/dist/commands/pg/destroy.d.ts.map +1 -0
  187. package/dist/commands/pg/destroy.js +36 -0
  188. package/dist/commands/pg/destroy.js.map +1 -0
  189. package/dist/commands/pg/down.d.ts +12 -0
  190. package/dist/commands/pg/down.d.ts.map +1 -0
  191. package/dist/commands/pg/down.js +20 -0
  192. package/dist/commands/pg/down.js.map +1 -0
  193. package/dist/commands/pg/status.d.ts +13 -0
  194. package/dist/commands/pg/status.d.ts.map +1 -0
  195. package/dist/commands/pg/status.js +28 -0
  196. package/dist/commands/pg/status.js.map +1 -0
  197. package/dist/commands/pg/up.d.ts +13 -0
  198. package/dist/commands/pg/up.d.ts.map +1 -0
  199. package/dist/commands/pg/up.js +34 -0
  200. package/dist/commands/pg/up.js.map +1 -0
  201. package/dist/commands/platform/destroy.d.ts +18 -0
  202. package/dist/commands/platform/destroy.d.ts.map +1 -0
  203. package/dist/commands/platform/destroy.js +41 -0
  204. package/dist/commands/platform/destroy.js.map +1 -0
  205. package/dist/commands/platform/doctor.d.ts +11 -0
  206. package/dist/commands/platform/doctor.d.ts.map +1 -0
  207. package/dist/commands/platform/doctor.js +18 -0
  208. package/dist/commands/platform/doctor.js.map +1 -0
  209. package/dist/commands/platform/down.d.ts +26 -0
  210. package/dist/commands/platform/down.d.ts.map +1 -0
  211. package/dist/commands/platform/down.js +16 -0
  212. package/dist/commands/platform/down.js.map +1 -0
  213. package/dist/commands/platform/logs.d.ts +26 -0
  214. package/dist/commands/platform/logs.d.ts.map +1 -0
  215. package/dist/commands/platform/logs.js +24 -0
  216. package/dist/commands/platform/logs.js.map +1 -0
  217. package/dist/commands/platform/reset.d.ts +26 -0
  218. package/dist/commands/platform/reset.d.ts.map +1 -0
  219. package/dist/commands/platform/reset.js +49 -0
  220. package/dist/commands/platform/reset.js.map +1 -0
  221. package/dist/commands/platform/setup.d.ts +24 -0
  222. package/dist/commands/platform/setup.d.ts.map +1 -0
  223. package/dist/commands/platform/setup.js +21 -0
  224. package/dist/commands/platform/setup.js.map +1 -0
  225. package/dist/commands/platform/status.d.ts +28 -0
  226. package/dist/commands/platform/status.d.ts.map +1 -0
  227. package/dist/commands/platform/status.js +37 -0
  228. package/dist/commands/platform/status.js.map +1 -0
  229. package/dist/commands/platform/up.d.ts +42 -0
  230. package/dist/commands/platform/up.d.ts.map +1 -0
  231. package/dist/commands/platform/up.js +22 -0
  232. package/dist/commands/platform/up.js.map +1 -0
  233. package/dist/commands/platform/upgrade.d.ts +14 -0
  234. package/dist/commands/platform/upgrade.d.ts.map +1 -0
  235. package/dist/commands/platform/upgrade.js +22 -0
  236. package/dist/commands/platform/upgrade.js.map +1 -0
  237. package/dist/commands/profile/add.d.ts +18 -0
  238. package/dist/commands/profile/add.d.ts.map +1 -0
  239. package/dist/commands/profile/add.js +26 -0
  240. package/dist/commands/profile/add.js.map +1 -0
  241. package/dist/commands/profile/list.d.ts +10 -0
  242. package/dist/commands/profile/list.d.ts.map +1 -0
  243. package/dist/commands/profile/list.js +20 -0
  244. package/dist/commands/profile/list.js.map +1 -0
  245. package/dist/commands/profile/remove.d.ts +15 -0
  246. package/dist/commands/profile/remove.d.ts.map +1 -0
  247. package/dist/commands/profile/remove.js +19 -0
  248. package/dist/commands/profile/remove.js.map +1 -0
  249. package/dist/commands/profile/use.d.ts +12 -0
  250. package/dist/commands/profile/use.d.ts.map +1 -0
  251. package/dist/commands/profile/use.js +18 -0
  252. package/dist/commands/profile/use.js.map +1 -0
  253. package/dist/commands/recall.d.ts +29 -0
  254. package/dist/commands/recall.d.ts.map +1 -0
  255. package/dist/commands/recall.js +94 -0
  256. package/dist/commands/recall.js.map +1 -0
  257. package/dist/commands/repo/context.d.ts +24 -0
  258. package/dist/commands/repo/context.d.ts.map +1 -0
  259. package/dist/commands/repo/context.js +52 -0
  260. package/dist/commands/repo/context.js.map +1 -0
  261. package/dist/commands/repo/graph.d.ts +24 -0
  262. package/dist/commands/repo/graph.d.ts.map +1 -0
  263. package/dist/commands/repo/graph.js +72 -0
  264. package/dist/commands/repo/graph.js.map +1 -0
  265. package/dist/commands/repo/index/index.d.ts +28 -0
  266. package/dist/commands/repo/index/index.d.ts.map +1 -0
  267. package/dist/commands/repo/index/index.js +76 -0
  268. package/dist/commands/repo/index/index.js.map +1 -0
  269. package/dist/commands/repo/search.d.ts +22 -0
  270. package/dist/commands/repo/search.d.ts.map +1 -0
  271. package/dist/commands/repo/search.js +50 -0
  272. package/dist/commands/repo/search.js.map +1 -0
  273. package/dist/commands/repo/setup.d.ts +41 -0
  274. package/dist/commands/repo/setup.d.ts.map +1 -0
  275. package/dist/commands/repo/setup.js +144 -0
  276. package/dist/commands/repo/setup.js.map +1 -0
  277. package/dist/commands/repo/status.d.ts +31 -0
  278. package/dist/commands/repo/status.d.ts.map +1 -0
  279. package/dist/commands/repo/status.js +60 -0
  280. package/dist/commands/repo/status.js.map +1 -0
  281. package/dist/commands/restore.d.ts +16 -0
  282. package/dist/commands/restore.d.ts.map +1 -0
  283. package/dist/commands/restore.js +53 -0
  284. package/dist/commands/restore.js.map +1 -0
  285. package/dist/commands/search.d.ts +14 -0
  286. package/dist/commands/search.d.ts.map +1 -0
  287. package/dist/commands/search.js +32 -0
  288. package/dist/commands/search.js.map +1 -0
  289. package/dist/commands/setup.d.ts +24 -0
  290. package/dist/commands/setup.d.ts.map +1 -0
  291. package/dist/commands/setup.js +21 -0
  292. package/dist/commands/setup.js.map +1 -0
  293. package/dist/commands/stats.d.ts +6 -0
  294. package/dist/commands/stats.d.ts.map +1 -0
  295. package/dist/commands/stats.js +16 -0
  296. package/dist/commands/stats.js.map +1 -0
  297. package/dist/commands/status.d.ts +20 -0
  298. package/dist/commands/status.d.ts.map +1 -0
  299. package/dist/commands/status.js +33 -0
  300. package/dist/commands/status.js.map +1 -0
  301. package/dist/commands/sync/conflicts.d.ts +14 -0
  302. package/dist/commands/sync/conflicts.d.ts.map +1 -0
  303. package/dist/commands/sync/conflicts.js +23 -0
  304. package/dist/commands/sync/conflicts.js.map +1 -0
  305. package/dist/commands/sync/pull.d.ts +13 -0
  306. package/dist/commands/sync/pull.d.ts.map +1 -0
  307. package/dist/commands/sync/pull.js +26 -0
  308. package/dist/commands/sync/pull.js.map +1 -0
  309. package/dist/commands/sync/push.d.ts +13 -0
  310. package/dist/commands/sync/push.d.ts.map +1 -0
  311. package/dist/commands/sync/push.js +26 -0
  312. package/dist/commands/sync/push.js.map +1 -0
  313. package/dist/commands/sync/recover.d.ts +16 -0
  314. package/dist/commands/sync/recover.d.ts.map +1 -0
  315. package/dist/commands/sync/recover.js +29 -0
  316. package/dist/commands/sync/recover.js.map +1 -0
  317. package/dist/commands/sync/resolve.d.ts +21 -0
  318. package/dist/commands/sync/resolve.d.ts.map +1 -0
  319. package/dist/commands/sync/resolve.js +38 -0
  320. package/dist/commands/sync/resolve.js.map +1 -0
  321. package/dist/commands/sync/run.d.ts +13 -0
  322. package/dist/commands/sync/run.d.ts.map +1 -0
  323. package/dist/commands/sync/run.js +26 -0
  324. package/dist/commands/sync/run.js.map +1 -0
  325. package/dist/commands/sync/status.d.ts +13 -0
  326. package/dist/commands/sync/status.d.ts.map +1 -0
  327. package/dist/commands/sync/status.js +28 -0
  328. package/dist/commands/sync/status.js.map +1 -0
  329. package/dist/commands/topics/list.d.ts +11 -0
  330. package/dist/commands/topics/list.d.ts.map +1 -0
  331. package/dist/commands/topics/list.js +20 -0
  332. package/dist/commands/topics/list.js.map +1 -0
  333. package/dist/commands/tui.d.ts +10 -0
  334. package/dist/commands/tui.d.ts.map +1 -0
  335. package/dist/commands/tui.js +124 -0
  336. package/dist/commands/tui.js.map +1 -0
  337. package/dist/commands/up.d.ts +108 -0
  338. package/dist/commands/up.d.ts.map +1 -0
  339. package/dist/commands/up.js +210 -0
  340. package/dist/commands/up.js.map +1 -0
  341. package/dist/commands/vault/contents.d.ts +14 -0
  342. package/dist/commands/vault/contents.d.ts.map +1 -0
  343. package/dist/commands/vault/contents.js +24 -0
  344. package/dist/commands/vault/contents.js.map +1 -0
  345. package/dist/commands/vault/create.d.ts +15 -0
  346. package/dist/commands/vault/create.d.ts.map +1 -0
  347. package/dist/commands/vault/create.js +26 -0
  348. package/dist/commands/vault/create.js.map +1 -0
  349. package/dist/commands/vault/get.d.ts +10 -0
  350. package/dist/commands/vault/get.d.ts.map +1 -0
  351. package/dist/commands/vault/get.js +25 -0
  352. package/dist/commands/vault/get.js.map +1 -0
  353. package/dist/commands/vault/list.d.ts +7 -0
  354. package/dist/commands/vault/list.d.ts.map +1 -0
  355. package/dist/commands/vault/list.js +17 -0
  356. package/dist/commands/vault/list.js.map +1 -0
  357. package/dist/commands/web.d.ts +14 -0
  358. package/dist/commands/web.d.ts.map +1 -0
  359. package/dist/commands/web.js +50 -0
  360. package/dist/commands/web.js.map +1 -0
  361. package/dist/commands/whoami.d.ts +7 -0
  362. package/dist/commands/whoami.d.ts.map +1 -0
  363. package/dist/commands/whoami.js +24 -0
  364. package/dist/commands/whoami.js.map +1 -0
  365. package/dist/hooks/init/launch-menu.d.ts +10 -0
  366. package/dist/hooks/init/launch-menu.d.ts.map +1 -0
  367. package/dist/hooks/init/launch-menu.js +11 -0
  368. package/dist/hooks/init/launch-menu.js.map +1 -0
  369. package/dist/lib/activate.d.ts +92 -0
  370. package/dist/lib/activate.d.ts.map +1 -0
  371. package/dist/lib/activate.js +292 -0
  372. package/dist/lib/activate.js.map +1 -0
  373. package/dist/lib/browser.d.ts +30 -0
  374. package/dist/lib/browser.d.ts.map +1 -0
  375. package/dist/lib/browser.js +45 -0
  376. package/dist/lib/browser.js.map +1 -0
  377. package/dist/lib/chat.d.ts +41 -0
  378. package/dist/lib/chat.d.ts.map +1 -0
  379. package/dist/lib/chat.js +63 -0
  380. package/dist/lib/chat.js.map +1 -0
  381. package/dist/lib/claude-hooks.d.ts +34 -0
  382. package/dist/lib/claude-hooks.d.ts.map +1 -0
  383. package/dist/lib/claude-hooks.js +85 -0
  384. package/dist/lib/claude-hooks.js.map +1 -0
  385. package/dist/lib/completion.d.ts +9 -0
  386. package/dist/lib/completion.d.ts.map +1 -0
  387. package/dist/lib/completion.js +57 -0
  388. package/dist/lib/completion.js.map +1 -0
  389. package/dist/lib/container-engine.d.ts +45 -0
  390. package/dist/lib/container-engine.d.ts.map +1 -0
  391. package/dist/lib/container-engine.js +348 -0
  392. package/dist/lib/container-engine.js.map +1 -0
  393. package/dist/lib/content.d.ts +9 -0
  394. package/dist/lib/content.d.ts.map +1 -0
  395. package/dist/lib/content.js +20 -0
  396. package/dist/lib/content.js.map +1 -0
  397. package/dist/lib/doctor-fixture.d.ts +8 -0
  398. package/dist/lib/doctor-fixture.d.ts.map +1 -0
  399. package/dist/lib/doctor-fixture.js +50 -0
  400. package/dist/lib/doctor-fixture.js.map +1 -0
  401. package/dist/lib/embedding-guard.d.ts +34 -0
  402. package/dist/lib/embedding-guard.d.ts.map +1 -0
  403. package/dist/lib/embedding-guard.js +50 -0
  404. package/dist/lib/embedding-guard.js.map +1 -0
  405. package/dist/lib/hook-io.d.ts +24 -0
  406. package/dist/lib/hook-io.d.ts.map +1 -0
  407. package/dist/lib/hook-io.js +73 -0
  408. package/dist/lib/hook-io.js.map +1 -0
  409. package/dist/lib/ingest.d.ts +24 -0
  410. package/dist/lib/ingest.d.ts.map +1 -0
  411. package/dist/lib/ingest.js +44 -0
  412. package/dist/lib/ingest.js.map +1 -0
  413. package/dist/lib/login.d.ts +40 -0
  414. package/dist/lib/login.d.ts.map +1 -0
  415. package/dist/lib/login.js +56 -0
  416. package/dist/lib/login.js.map +1 -0
  417. package/dist/lib/pending-captures.d.ts +25 -0
  418. package/dist/lib/pending-captures.d.ts.map +1 -0
  419. package/dist/lib/pending-captures.js +143 -0
  420. package/dist/lib/pending-captures.js.map +1 -0
  421. package/dist/lib/platform-backup.d.ts +110 -0
  422. package/dist/lib/platform-backup.d.ts.map +1 -0
  423. package/dist/lib/platform-backup.js +579 -0
  424. package/dist/lib/platform-backup.js.map +1 -0
  425. package/dist/lib/platform-command-shared.d.ts +132 -0
  426. package/dist/lib/platform-command-shared.d.ts.map +1 -0
  427. package/dist/lib/platform-command-shared.js +159 -0
  428. package/dist/lib/platform-command-shared.js.map +1 -0
  429. package/dist/lib/platform-frontdoor-runtime.d.ts +33 -0
  430. package/dist/lib/platform-frontdoor-runtime.d.ts.map +1 -0
  431. package/dist/lib/platform-frontdoor-runtime.js +285 -0
  432. package/dist/lib/platform-frontdoor-runtime.js.map +1 -0
  433. package/dist/lib/platform-frontdoor.d.ts +155 -0
  434. package/dist/lib/platform-frontdoor.d.ts.map +1 -0
  435. package/dist/lib/platform-frontdoor.js +467 -0
  436. package/dist/lib/platform-frontdoor.js.map +1 -0
  437. package/dist/lib/platform-image-source.d.ts +81 -0
  438. package/dist/lib/platform-image-source.d.ts.map +1 -0
  439. package/dist/lib/platform-image-source.js +143 -0
  440. package/dist/lib/platform-image-source.js.map +1 -0
  441. package/dist/lib/platform-lifecycle.d.ts +112 -0
  442. package/dist/lib/platform-lifecycle.d.ts.map +1 -0
  443. package/dist/lib/platform-lifecycle.js +725 -0
  444. package/dist/lib/platform-lifecycle.js.map +1 -0
  445. package/dist/lib/platform-onboarding.d.ts +128 -0
  446. package/dist/lib/platform-onboarding.d.ts.map +1 -0
  447. package/dist/lib/platform-onboarding.js +227 -0
  448. package/dist/lib/platform-onboarding.js.map +1 -0
  449. package/dist/lib/platform-preflight.d.ts +48 -0
  450. package/dist/lib/platform-preflight.d.ts.map +1 -0
  451. package/dist/lib/platform-preflight.js +90 -0
  452. package/dist/lib/platform-preflight.js.map +1 -0
  453. package/dist/lib/platform-profile-purge.d.ts +18 -0
  454. package/dist/lib/platform-profile-purge.d.ts.map +1 -0
  455. package/dist/lib/platform-profile-purge.js +26 -0
  456. package/dist/lib/platform-profile-purge.js.map +1 -0
  457. package/dist/lib/platform-provider-fields.d.ts +2 -0
  458. package/dist/lib/platform-provider-fields.d.ts.map +1 -0
  459. package/dist/lib/platform-provider-fields.js +2 -0
  460. package/dist/lib/platform-provider-fields.js.map +1 -0
  461. package/dist/lib/platform-provider-probe.d.ts +75 -0
  462. package/dist/lib/platform-provider-probe.d.ts.map +1 -0
  463. package/dist/lib/platform-provider-probe.js +781 -0
  464. package/dist/lib/platform-provider-probe.js.map +1 -0
  465. package/dist/lib/platform-provider-prompt.d.ts +118 -0
  466. package/dist/lib/platform-provider-prompt.d.ts.map +1 -0
  467. package/dist/lib/platform-provider-prompt.js +245 -0
  468. package/dist/lib/platform-provider-prompt.js.map +1 -0
  469. package/dist/lib/platform-release-manifest.d.ts +34 -0
  470. package/dist/lib/platform-release-manifest.d.ts.map +1 -0
  471. package/dist/lib/platform-release-manifest.js +100 -0
  472. package/dist/lib/platform-release-manifest.js.map +1 -0
  473. package/dist/lib/platform-runtime.d.ts +212 -0
  474. package/dist/lib/platform-runtime.d.ts.map +1 -0
  475. package/dist/lib/platform-runtime.js +866 -0
  476. package/dist/lib/platform-runtime.js.map +1 -0
  477. package/dist/lib/poll.d.ts +9 -0
  478. package/dist/lib/poll.d.ts.map +1 -0
  479. package/dist/lib/poll.js +18 -0
  480. package/dist/lib/poll.js.map +1 -0
  481. package/dist/lib/prompt.d.ts +7 -0
  482. package/dist/lib/prompt.d.ts.map +1 -0
  483. package/dist/lib/prompt.js +28 -0
  484. package/dist/lib/prompt.js.map +1 -0
  485. package/dist/lib/provider-presets.d.ts +108 -0
  486. package/dist/lib/provider-presets.d.ts.map +1 -0
  487. package/dist/lib/provider-presets.js +184 -0
  488. package/dist/lib/provider-presets.js.map +1 -0
  489. package/dist/lib/recall.d.ts +32 -0
  490. package/dist/lib/recall.d.ts.map +1 -0
  491. package/dist/lib/recall.js +69 -0
  492. package/dist/lib/recall.js.map +1 -0
  493. package/dist/lib/redact.d.ts +41 -0
  494. package/dist/lib/redact.d.ts.map +1 -0
  495. package/dist/lib/redact.js +130 -0
  496. package/dist/lib/redact.js.map +1 -0
  497. package/dist/lib/render.d.ts +55 -0
  498. package/dist/lib/render.d.ts.map +1 -0
  499. package/dist/lib/render.js +172 -0
  500. package/dist/lib/render.js.map +1 -0
  501. package/dist/lib/repo-binding.d.ts +53 -0
  502. package/dist/lib/repo-binding.d.ts.map +1 -0
  503. package/dist/lib/repo-binding.js +127 -0
  504. package/dist/lib/repo-binding.js.map +1 -0
  505. package/dist/lib/repo-command-support.d.ts +18 -0
  506. package/dist/lib/repo-command-support.d.ts.map +1 -0
  507. package/dist/lib/repo-command-support.js +54 -0
  508. package/dist/lib/repo-command-support.js.map +1 -0
  509. package/dist/lib/seal-core.d.ts +34 -0
  510. package/dist/lib/seal-core.d.ts.map +1 -0
  511. package/dist/lib/seal-core.js +154 -0
  512. package/dist/lib/seal-core.js.map +1 -0
  513. package/dist/lib/setup-console.d.ts +46 -0
  514. package/dist/lib/setup-console.d.ts.map +1 -0
  515. package/dist/lib/setup-console.js +191 -0
  516. package/dist/lib/setup-console.js.map +1 -0
  517. package/dist/lib/setup-page.d.ts +21 -0
  518. package/dist/lib/setup-page.d.ts.map +1 -0
  519. package/dist/lib/setup-page.js +656 -0
  520. package/dist/lib/setup-page.js.map +1 -0
  521. package/dist/lib/setup-plan.d.ts +52 -0
  522. package/dist/lib/setup-plan.d.ts.map +1 -0
  523. package/dist/lib/setup-plan.js +154 -0
  524. package/dist/lib/setup-plan.js.map +1 -0
  525. package/dist/lib/setup-server.d.ts +71 -0
  526. package/dist/lib/setup-server.d.ts.map +1 -0
  527. package/dist/lib/setup-server.js +936 -0
  528. package/dist/lib/setup-server.js.map +1 -0
  529. package/dist/lib/tui.d.ts +77 -0
  530. package/dist/lib/tui.d.ts.map +1 -0
  531. package/dist/lib/tui.js +126 -0
  532. package/dist/lib/tui.js.map +1 -0
  533. package/dist/lib/ui.d.ts +23 -0
  534. package/dist/lib/ui.d.ts.map +1 -0
  535. package/dist/lib/ui.js +100 -0
  536. package/dist/lib/ui.js.map +1 -0
  537. package/dist/lib/vault.d.ts +10 -0
  538. package/dist/lib/vault.d.ts.map +1 -0
  539. package/dist/lib/vault.js +18 -0
  540. package/dist/lib/vault.js.map +1 -0
  541. package/dist/menu/forms.d.ts +13 -0
  542. package/dist/menu/forms.d.ts.map +1 -0
  543. package/dist/menu/forms.js +45 -0
  544. package/dist/menu/forms.js.map +1 -0
  545. package/dist/menu/frontends.d.ts +32 -0
  546. package/dist/menu/frontends.d.ts.map +1 -0
  547. package/dist/menu/frontends.js +31 -0
  548. package/dist/menu/frontends.js.map +1 -0
  549. package/dist/menu/help.d.ts +11 -0
  550. package/dist/menu/help.d.ts.map +1 -0
  551. package/dist/menu/help.js +33 -0
  552. package/dist/menu/help.js.map +1 -0
  553. package/dist/menu/palette.d.ts +28 -0
  554. package/dist/menu/palette.d.ts.map +1 -0
  555. package/dist/menu/palette.js +57 -0
  556. package/dist/menu/palette.js.map +1 -0
  557. package/dist/menu/reducer.d.ts +19 -0
  558. package/dist/menu/reducer.d.ts.map +1 -0
  559. package/dist/menu/reducer.js +37 -0
  560. package/dist/menu/reducer.js.map +1 -0
  561. package/dist/menu/run.d.ts +34 -0
  562. package/dist/menu/run.d.ts.map +1 -0
  563. package/dist/menu/run.js +490 -0
  564. package/dist/menu/run.js.map +1 -0
  565. package/dist/menu/screens.d.ts +15 -0
  566. package/dist/menu/screens.d.ts.map +1 -0
  567. package/dist/menu/screens.js +251 -0
  568. package/dist/menu/screens.js.map +1 -0
  569. package/dist/menu/should-launch.d.ts +19 -0
  570. package/dist/menu/should-launch.d.ts.map +1 -0
  571. package/dist/menu/should-launch.js +22 -0
  572. package/dist/menu/should-launch.js.map +1 -0
  573. package/dist/menu/types.d.ts +95 -0
  574. package/dist/menu/types.d.ts.map +1 -0
  575. package/dist/menu/types.js +7 -0
  576. package/dist/menu/types.js.map +1 -0
  577. package/oclif.manifest.json +7995 -0
  578. package/package.json +133 -0
@@ -0,0 +1,444 @@
1
+ # Knowz Portable — customer-runnable PULL kit (spec OPS_PortableImageRelease N2 / R6).
2
+ # Requires Docker Compose v2.20+ (`depends_on.required` and external deactivation overlays).
3
+ #
4
+ # ZERO-SOURCE: every app service pulls a PREBUILT private GHCR image (no build context, no repo checkout).
5
+ # Derived from the in-repo docker-compose.portable.yml, with every `build:` block replaced by an `image:`
6
+ # ref. Seven services, ZERO Azure resources: Postgres+pgvector, MinIO, Redis, the platform API, the
7
+ # Knowz.Worker enrichment host, the SPA, and the MCP server.
8
+ #
9
+ # QUICKSTART (see docs/CUSTOMER_PORTABLE_QUICKSTART.md):
10
+ # docker login ghcr.io # with your GHCR_PULL_TOKEN (read:packages)
11
+ # cp .env.example .env # then edit .env: KNOWZ_VERSION + REAL secrets
12
+ # docker compose -f docker-compose.yml up -d
13
+ #
14
+ # IMAGE SELECTION:
15
+ # KNOWZ_VERSION — the platform release, e.g. 0.2.0 (REQUIRED; fail-closed).
16
+ # KNOWZ_FLAVOR — "" (empty, default) pulls the Azure/stub/BYO-OpenAI-compat portable build;
17
+ # "-gcp" pulls the Vertex-flavored portable build. api/worker => :X.Y.Z-portable[-gcp];
18
+ # web/mcp are cloud-neutral => plain :X.Y.Z.
19
+ #
20
+ # FAIL-CLOSED CREDS: every secret uses ${VAR:?message} — `up` aborts with a clear message if any is unset.
21
+ # There are NO committed prod-shaped defaults.
22
+ #
23
+ # Access: web http://localhost:3000 | API http://localhost:5000/swagger | MCP http://localhost:3001.
24
+ # Postgres, Redis, and MinIO are intentionally available only on the internal Compose network.
25
+
26
+ services:
27
+ # ── Postgres + pgvector: KnowzMaster + KnowzKnowledge, `vector` + `pg_trgm` extensions ─────────────
28
+ postgres:
29
+ image: pgvector/pgvector:pg16
30
+ # Register enlists MasterDb + KnowledgeDb in one TransactionScope, which Npgsql
31
+ # escalates to a 2PC PREPARE TRANSACTION across the two databases. The pgvector
32
+ # image defaults max_prepared_transactions=0 (→ 55000 "prepared transactions are
33
+ # disabled"); enable it (sized to match the default max_connections).
34
+ command: ["postgres", "-c", "max_prepared_transactions=100"]
35
+ environment:
36
+ POSTGRES_USER: "${PG_USER:-knowz}"
37
+ POSTGRES_PASSWORD: "${PG_PASSWORD:?PG_PASSWORD must be set in .env}"
38
+ POSTGRES_DB: postgres
39
+ volumes:
40
+ - knowz-portable-pgdata:/var/lib/postgresql/data
41
+ # Kit-local init (shipped in this directory) — creates the DBs + extensions on first cluster init.
42
+ - ./postgres-initdb:/docker-entrypoint-initdb.d:ro
43
+ healthcheck:
44
+ # Succeeds only once the init script has created KnowzKnowledge — gates API/worker start on a ready DB.
45
+ test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d KnowzKnowledge"]
46
+ interval: 5s
47
+ timeout: 5s
48
+ retries: 20
49
+ start_period: 20s
50
+
51
+ # ── MinIO: S3-compatible object store ──────────────────────────────────────────────────────────────
52
+ minio:
53
+ image: minio/minio:latest
54
+ command: server /data --console-address ":9001"
55
+ environment:
56
+ MINIO_ROOT_USER: "${MINIO_ROOT_USER:-knowzminio}"
57
+ MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD:?MINIO_ROOT_PASSWORD must be set in .env (>=8 chars)}"
58
+ volumes:
59
+ - knowz-portable-miniodata:/data
60
+ healthcheck:
61
+ test: ["CMD-SHELL", "mc ready local || curl -f http://localhost:9000/minio/health/ready || exit 1"]
62
+ interval: 10s
63
+ timeout: 5s
64
+ retries: 10
65
+ start_period: 10s
66
+
67
+ # ── One-shot: wait for MinIO, create the portable bucket, then exit (gates API/worker on bucket-ready) ─
68
+ minio-createbucket:
69
+ image: minio/mc:latest
70
+ depends_on:
71
+ minio:
72
+ condition: service_started
73
+ environment:
74
+ MINIO_ROOT_USER: "${MINIO_ROOT_USER:-knowzminio}"
75
+ MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD:?MINIO_ROOT_PASSWORD must be set in .env}"
76
+ MINIO_BUCKET: "${MINIO_BUCKET:-knowz-portable}"
77
+ MINIO_APP_ACCESS_KEY: "${MINIO_APP_ACCESS_KEY:-knowzapp}"
78
+ MINIO_APP_SECRET_KEY: "${MINIO_APP_SECRET_KEY:?MINIO_APP_SECRET_KEY must be set in .env}"
79
+ entrypoint: >
80
+ /bin/sh -c "
81
+ until mc alias set local http://minio:9000 \"$${MINIO_ROOT_USER}\" \"$${MINIO_ROOT_PASSWORD}\"; do
82
+ echo 'waiting for minio...'; sleep 2;
83
+ done;
84
+ mc mb --ignore-existing local/$${MINIO_BUCKET};
85
+ mc anonymous set none local/$${MINIO_BUCKET} || true;
86
+ printf '{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucket\",\"s3:ListBucketMultipartUploads\"],\"Resource\":[\"arn:aws:s3:::%s\"]},{\"Effect\":\"Allow\",\"Action\":[\"s3:GetObject\",\"s3:PutObject\",\"s3:DeleteObject\",\"s3:AbortMultipartUpload\",\"s3:ListMultipartUploadParts\"],\"Resource\":[\"arn:aws:s3:::%s/*\"]}]}\n' "$${MINIO_BUCKET}" "$${MINIO_BUCKET}" > /tmp/knowz-portable-app-policy.json;
87
+ mc admin policy create local knowz-portable-app /tmp/knowz-portable-app-policy.json;
88
+ mc admin user add local "$${MINIO_APP_ACCESS_KEY}" "$${MINIO_APP_SECRET_KEY}";
89
+ mc admin policy attach local knowz-portable-app --user "$${MINIO_APP_ACCESS_KEY}";
90
+ echo 'private bucket and scoped application identity ready';
91
+ "
92
+
93
+ # ── Redis: cache / model-selector cache ────────────────────────────────────────────────────────────
94
+ redis:
95
+ image: redis:7
96
+ healthcheck:
97
+ test: ["CMD", "redis-cli", "ping"]
98
+ interval: 10s
99
+ timeout: 3s
100
+ retries: 10
101
+ start_period: 5s
102
+
103
+ # ── API: platform API. Auto-creates the Postgres schema on first boot; publishes jobs to PortableQueueJobs ─
104
+ api:
105
+ # Prebuilt portable image. ""=azure/stub/BYO-OpenAI-compat build; KNOWZ_FLAVOR=-gcp => Vertex build.
106
+ image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-api:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}-portable${KNOWZ_FLAVOR:-}"
107
+ ports:
108
+ - "${BIND_ADDRESS:-127.0.0.1}:${API_PORT:-5000}:8080"
109
+ depends_on:
110
+ postgres:
111
+ condition: service_healthy
112
+ required: false
113
+ redis:
114
+ condition: service_healthy
115
+ required: false
116
+ minio-createbucket:
117
+ condition: service_completed_successfully
118
+ required: false
119
+ # Reach a host-local OpenAI-compatible endpoint (e.g. Ollama on the host) at host.docker.internal.
120
+ extra_hosts:
121
+ - "host.docker.internal:host-gateway"
122
+ environment:
123
+ ASPNETCORE_ENVIRONMENT: Staging
124
+ ASPNETCORE_URLS: http://+:8080
125
+
126
+ # ── Portable substrate provider switches (the three subsystem axes) ──────────────────────────
127
+ Knowz__Database__Provider: Postgres
128
+ Knowz__Queue__Provider: Postgres
129
+ Knowz__Storage__Provider: "${STORAGE_PROVIDER:-MinioS3}"
130
+ Knowz__Storage__FileSystem__RootPath: "/data/objects"
131
+ Knowz__Search__Provider: Postgres
132
+
133
+ # ── Postgres connection strings (Npgsql format) + first-boot schema bring-up ─────────────────
134
+ ConnectionStrings__KnowledgeDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzKnowledge;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
135
+ ConnectionStrings__MasterDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzMaster;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
136
+ Database__AutoMigrate: "true"
137
+
138
+ # ── Embedding (offline deterministic stub by default; MUST match the pgvector column dim) ──────
139
+ Embedding__Provider: "${EMBEDDING_PROVIDER:-Stub}"
140
+ Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
141
+ Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-1536}"
142
+ Embedding__Endpoint: "${EMBEDDING_ENDPOINT:-}"
143
+ Embedding__ApiKey: "${EMBEDDING_API_KEY:-}"
144
+ # OpenAI direct is configured through the OpenAiCompat provider (Option A), not Embedding__Provider.
145
+ OpenAI__ApiKey: "${OPENAI_API_KEY:-}"
146
+
147
+ # ── MinIO object storage + its credential (via the portable config-backed ISecretStore) ──────
148
+ Knowz__Storage__Minio__Endpoint: "${S3_ENDPOINT:-http://minio:9000}"
149
+ Knowz__Storage__Minio__Bucket: "${MINIO_BUCKET:-knowz-portable}"
150
+ Knowz__Storage__Minio__ForcePathStyle: "${S3_FORCE_PATH_STYLE:-true}"
151
+ Knowz__Storage__Minio__Region: "${S3_REGION:-us-east-1}"
152
+ PortableSecrets__MinioAccessKeyId: "${MINIO_APP_ACCESS_KEY:-knowzapp}"
153
+ PortableSecrets__MinioSecretAccessKey: "${MINIO_APP_SECRET_KEY:?MINIO_APP_SECRET_KEY must be set}"
154
+
155
+ # ── Redis ─────────────────────────────────────────────────────────────────────────────────────
156
+ Redis__ConnectionString: "${REDIS_CONNECTION_STRING:-redis:6379}"
157
+ ConnectionStrings__Redis: "${REDIS_CONNECTION_STRING:-redis:6379}"
158
+ DataProtection__KeyRingPath: "/var/lib/knowz/data-protection-keys"
159
+
160
+ # ── Licensing: empty defaults preserve the unlinked portable behavior ──────────────────────
161
+ Knowz__Licensing__MothershipUrl: "${KNOWZ_LICENSING_MOTHERSHIP_URL:-}"
162
+ Knowz__Licensing__InstallCredential: "${KNOWZ_LICENSING_INSTALL_CREDENTIAL:-}"
163
+ Knowz__Licensing__InstallationId: "${KNOWZ_LICENSING_INSTALLATION_ID:-}"
164
+
165
+ # ── Auth — fail-closed (omit any of these and `up` aborts) ────────────────────────────────────
166
+ Jwt__Secret: "${JWT_SECRET:?JWT_SECRET must be set in .env (>=32 random chars)}"
167
+ Jwt__Key: "${JWT_SECRET}"
168
+ JwtSettings__Secret: "${JWT_SECRET}"
169
+ Authentication__Jwt__Secret: "${JWT_SECRET}"
170
+ SuperAdmin__Passphrase: "${SUPERADMIN_PASSPHRASE:?SUPERADMIN_PASSPHRASE must be set in .env}"
171
+
172
+ # ── MCP service-to-service key (must match the mcp container) ────────────────────────────────
173
+ MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
174
+
175
+ InternalApi__Key: "${INTERNAL_API_KEY:?INTERNAL_API_KEY must be set in .env (must match worker)}"
176
+
177
+ PlatformOrganization__Slug: "${PLATFORM_ORG_SLUG:-knowz}"
178
+ PlatformOrganization__Name: "${PLATFORM_ORG_NAME:-Knowz}"
179
+
180
+ AzureOpenAI__Endpoint: "${AZURE_OPENAI_ENDPOINT:-}"
181
+ AzureOpenAI__ApiKey: "${AZURE_OPENAI_API_KEY:-}"
182
+ PortableSecrets__openai--primary--key: "${AZURE_OPENAI_API_KEY:-}"
183
+
184
+ # ── BYOK cloud perception (optional; each cloud axis is opt-in and customer-billed) ──────────
185
+ AzureAIVision__Endpoint: "${AZUREAIVISION__ENDPOINT:-}"
186
+ AzureAIVision__ApiKey: "${AZUREAIVISION__APIKEY:-}"
187
+ AzureAIVision__Features: "${AZUREAIVISION__FEATURES:-}"
188
+ DocumentIntelligence__Endpoint: "${DOCUMENTINTELLIGENCE__ENDPOINT:-}"
189
+ DocumentIntelligence__ApiKey: "${DOCUMENTINTELLIGENCE__APIKEY:-}"
190
+ DocumentIntelligence__UseManagedIdentity: "${DOCUMENTINTELLIGENCE__USEMANAGEDIDENTITY:-false}"
191
+ AzureOpenAI__WhisperDeploymentName: "${AZUREOPENAI__WHISPERDEPLOYMENTNAME:-}"
192
+ AzureOpenAI__TranscriptionDeploymentName: "${AZUREOPENAI__TRANSCRIPTIONDEPLOYMENTNAME:-}"
193
+ AzureOpenAI__Transcription__Endpoint: "${AZUREOPENAI__TRANSCRIPTION__ENDPOINT:-}"
194
+ AzureOpenAI__Transcription__ApiKey: "${AZUREOPENAI__TRANSCRIPTION__APIKEY:-}"
195
+ AssemblyAi__ApiKey: "${ASSEMBLYAI__APIKEY:-}"
196
+ AssemblyAi__EnableBatchPremiumTier: "${ASSEMBLYAI__ENABLEBATCHPREMIUMTIER:-false}"
197
+ Knowz__CloudProvider__RealtimeTranscription: "${KNOWZ__CLOUDPROVIDER__REALTIMETRANSCRIPTION:-}"
198
+ Enrichment__FaceRecognition__Enabled: "${ENRICHMENT__FACERECOGNITION__ENABLED:-false}"
199
+ FaceRecognition__MatchThreshold: "${FACERECOGNITION__MATCHTHRESHOLD:-}"
200
+
201
+ # ── CORS: allow the SPA origin ──────────────────────────────────────────────────────────────
202
+ KNOWZ_EXTRA_CORS_ORIGINS: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
203
+
204
+ # ── Outbound link origin ────────────────────────────────────────────────────────────────────
205
+ # Every mailed link (invites, verification, share CTAs, /m/{shortCode}) and the device-code
206
+ # approval URL resolve through WebAppUrl. Left unset, the image's baked appsettings.json wins
207
+ # and a customer's portable install mails links to https://dev.knowz.io — Knowz's own dev
208
+ # environment. Confirmed live on a 0.34.4 portable install, 2026-07-28.
209
+ WebAppUrl: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
210
+ PUBLIC_WEB_ORIGIN: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
211
+
212
+ # ── AI provider selection (all optional; empty => offline stub, so the default `up` is unchanged) ─
213
+ # * Google Vertex (Gemini): KNOWZ_FLAVOR=-gcp image + KNOWZ__CLOUDPROVIDER__AI=Gcp + VERTEX__PROJECT,
214
+ # ADC mounted read-only below. * BYO OpenAI-compatible (OpenAI/Together/Ollama/vLLM/LM Studio):
215
+ # KNOWZ__CLOUDPROVIDER__AI=OpenAiCompat + OPENAICOMPAT__ENDPOINT/CHATMODEL/EMBEDDINGMODEL
216
+ # (works on the default "" flavor — vendor-neutral, no -gcp image needed). See the quickstart. ──
217
+ Knowz__CloudProvider: "${KNOWZ__CLOUDPROVIDER:-}"
218
+ Knowz__CloudProvider__Ai: "${KNOWZ__CLOUDPROVIDER__AI:-}"
219
+ Knowz__CloudProvider__DocIntelligence: "${KNOWZ__CLOUDPROVIDER__DOCINTELLIGENCE:-}"
220
+ Knowz__CloudProvider__Vision: "${KNOWZ__CLOUDPROVIDER__VISION:-}"
221
+ Knowz__CloudProvider__Transcription: "${KNOWZ__CLOUDPROVIDER__TRANSCRIPTION:-}"
222
+ Vertex__Project: "${VERTEX__PROJECT:-}"
223
+ Vertex__Region: "${VERTEX__REGION:-}"
224
+ Vertex__ChatModel: "${VERTEX__CHATMODEL:-}"
225
+ Vertex__EmbeddingModel: "${VERTEX__EMBEDDINGMODEL:-}"
226
+ Vertex__EmbeddingDimensions: "${VERTEX__EMBEDDINGDIMENSIONS:-1536}"
227
+ # BYO OpenAI-compatible endpoint (N3). ChatModel + EmbeddingModel are REQUIRED when selected (no
228
+ # universal default — boot fails loud naming the key). ApiKey optional (Ollama/vLLM run keyless).
229
+ # EmbeddingDimensions MUST match Embedding__Dimensions / the pgvector column (local models often 384/768).
230
+ OpenAiCompat__Endpoint: "${OPENAICOMPAT__ENDPOINT:-}"
231
+ OpenAiCompat__ApiKey: "${OPENAICOMPAT__APIKEY:-}"
232
+ OpenAiCompat__ChatModel: "${OPENAICOMPAT__CHATMODEL:-}"
233
+ OpenAiCompat__EmbeddingModel: "${OPENAICOMPAT__EMBEDDINGMODEL:-}"
234
+ OpenAiCompat__EmbeddingDimensions: "${OPENAICOMPAT__EMBEDDINGDIMENSIONS:-}"
235
+ # Points at the neutral read-only ADC mount below only when host ADC is configured. Keeping the
236
+ # well-known gcloud path vacant lets Google's credential chain reach GCE metadata ADC when unset.
237
+ GOOGLE_APPLICATION_CREDENTIALS: "${GCLOUD_ADC_PATH:+/gcloud/adc.json}"
238
+ volumes:
239
+ # Host Application Default Credentials, READ-ONLY (:ro) — NO service-account key files. Defaults to
240
+ # /dev/null (always present, inert) so the stub/offline/OpenAI-compat default `up` still works; for the
241
+ # Google AI flavor run `gcloud auth application-default login` once on the host, then set
242
+ # GCLOUD_ADC_PATH to the ABSOLUTE path of ~/.config/gcloud/application_default_credentials.json in .env.
243
+ - "${GCLOUD_ADC_PATH:-/dev/null}:/gcloud/adc.json:ro"
244
+ - knowz-portable-objectsdata:/data/objects
245
+ - knowz-portable-identity:/var/lib/knowz/identity
246
+ - knowz-portable-dpkeys:/var/lib/knowz/data-protection-keys
247
+ # The aspnet:10.0 runtime image ships no curl/wget — run an HTTP readiness probe
248
+ # over bash /dev/tcp and assert a 200 status line (/health/ready, /healthz fallback).
249
+ # Migrations complete before Kestrel binds 8080, so a 200 means the API is ready.
250
+ healthcheck:
251
+ test:
252
+ - CMD-SHELL
253
+ - >-
254
+ timeout 5 bash -c '{ exec 3<>/dev/tcp/127.0.0.1/8080 && printf "GET /health/ready HTTP/1.0\r\n\r\n" >&3 && head -1 <&3 | grep -q 200; } || { exec 3<>/dev/tcp/127.0.0.1/8080 && printf "GET /healthz HTTP/1.0\r\n\r\n" >&3 && head -1 <&3 | grep -q 200; }'
255
+ interval: 15s
256
+ timeout: 10s
257
+ retries: 10
258
+ start_period: 90s
259
+
260
+ # ── Worker: Knowz.Worker BackgroundService — drains PortableQueueJobs + enrichment auto-driver ─────
261
+ worker:
262
+ image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-worker:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}-portable${KNOWZ_FLAVOR:-}"
263
+ depends_on:
264
+ postgres:
265
+ condition: service_healthy
266
+ required: false
267
+ redis:
268
+ condition: service_healthy
269
+ required: false
270
+ minio-createbucket:
271
+ condition: service_completed_successfully
272
+ required: false
273
+ api:
274
+ condition: service_healthy
275
+ extra_hosts:
276
+ - "host.docker.internal:host-gateway"
277
+ environment:
278
+ DOTNET_ENVIRONMENT: Staging
279
+ ASPNETCORE_ENVIRONMENT: Staging
280
+
281
+ Knowz__Database__Provider: Postgres
282
+ Knowz__Queue__Provider: Postgres
283
+ Knowz__Storage__Provider: "${STORAGE_PROVIDER:-MinioS3}"
284
+ Knowz__Storage__FileSystem__RootPath: "/data/objects"
285
+ Knowz__Search__Provider: Postgres
286
+
287
+ # Same reason as on the api service: the Worker mails links too (summaries, engagement
288
+ # invites), and without this it inherits the image's baked https://dev.knowz.io.
289
+ WebAppUrl: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
290
+
291
+ ConnectionStrings__KnowledgeDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzKnowledge;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
292
+ ConnectionStrings__MasterDb: "Host=${PG_HOST:-postgres};Port=${PG_PORT:-5432};Database=KnowzMaster;Username=${PG_USER:-knowz};Password=${PG_PASSWORD:?PG_PASSWORD must be set};Ssl Mode=${PG_SSL_MODE:-Prefer}${PG_EXTRA_OPTIONS:-}"
293
+ Database__AutoMigrate: "false"
294
+
295
+ Embedding__Provider: "${EMBEDDING_PROVIDER:-Stub}"
296
+ Embedding__ModelName: "${EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
297
+ Embedding__Dimensions: "${EMBEDDING_DIMENSIONS:-1536}"
298
+ Embedding__Endpoint: "${EMBEDDING_ENDPOINT:-}"
299
+ Embedding__ApiKey: "${EMBEDDING_API_KEY:-}"
300
+ OpenAI__ApiKey: "${OPENAI_API_KEY:-}"
301
+
302
+ Knowz__Storage__Minio__Endpoint: "${S3_ENDPOINT:-http://minio:9000}"
303
+ Knowz__Storage__Minio__Bucket: "${MINIO_BUCKET:-knowz-portable}"
304
+ Knowz__Storage__Minio__ForcePathStyle: "${S3_FORCE_PATH_STYLE:-true}"
305
+ Knowz__Storage__Minio__Region: "${S3_REGION:-us-east-1}"
306
+ PortableSecrets__MinioAccessKeyId: "${MINIO_APP_ACCESS_KEY:-knowzapp}"
307
+ PortableSecrets__MinioSecretAccessKey: "${MINIO_APP_SECRET_KEY:?MINIO_APP_SECRET_KEY must be set}"
308
+
309
+ Redis__ConnectionString: "${REDIS_CONNECTION_STRING:-redis:6379}"
310
+ ConnectionStrings__Redis: "${REDIS_CONNECTION_STRING:-redis:6379}"
311
+ DataProtection__KeyRingPath: "/var/lib/knowz/data-protection-keys"
312
+
313
+ # ── Licensing: empty defaults preserve the unlinked portable behavior ──────────────────────
314
+ Knowz__Licensing__MothershipUrl: "${KNOWZ_LICENSING_MOTHERSHIP_URL:-}"
315
+ Knowz__Licensing__InstallCredential: "${KNOWZ_LICENSING_INSTALL_CREDENTIAL:-}"
316
+ Knowz__Licensing__InstallationId: "${KNOWZ_LICENSING_INSTALLATION_ID:-}"
317
+
318
+ ApiBaseUrl: "http://api:8080"
319
+ InternalApi__Key: "${INTERNAL_API_KEY:?INTERNAL_API_KEY must be set in .env (must match api)}"
320
+
321
+ PlatformOrganization__Slug: "${PLATFORM_ORG_SLUG:-knowz}"
322
+ PlatformOrganization__Name: "${PLATFORM_ORG_NAME:-Knowz}"
323
+
324
+ AzureOpenAI__Endpoint: "${AZURE_OPENAI_ENDPOINT:-}"
325
+ AzureOpenAI__ApiKey: "${AZURE_OPENAI_API_KEY:-}"
326
+ PortableSecrets__openai--primary--key: "${AZURE_OPENAI_API_KEY:-}"
327
+
328
+ # ── BYOK cloud perception (optional; each cloud axis is opt-in and customer-billed) ──────────
329
+ AzureAIVision__Endpoint: "${AZUREAIVISION__ENDPOINT:-}"
330
+ AzureAIVision__ApiKey: "${AZUREAIVISION__APIKEY:-}"
331
+ AzureAIVision__Features: "${AZUREAIVISION__FEATURES:-}"
332
+ DocumentIntelligence__Endpoint: "${DOCUMENTINTELLIGENCE__ENDPOINT:-}"
333
+ DocumentIntelligence__ApiKey: "${DOCUMENTINTELLIGENCE__APIKEY:-}"
334
+ DocumentIntelligence__UseManagedIdentity: "${DOCUMENTINTELLIGENCE__USEMANAGEDIDENTITY:-false}"
335
+ AzureOpenAI__WhisperDeploymentName: "${AZUREOPENAI__WHISPERDEPLOYMENTNAME:-}"
336
+ AzureOpenAI__TranscriptionDeploymentName: "${AZUREOPENAI__TRANSCRIPTIONDEPLOYMENTNAME:-}"
337
+ AzureOpenAI__Transcription__Endpoint: "${AZUREOPENAI__TRANSCRIPTION__ENDPOINT:-}"
338
+ AzureOpenAI__Transcription__ApiKey: "${AZUREOPENAI__TRANSCRIPTION__APIKEY:-}"
339
+ AssemblyAi__ApiKey: "${ASSEMBLYAI__APIKEY:-}"
340
+ AssemblyAi__EnableBatchPremiumTier: "${ASSEMBLYAI__ENABLEBATCHPREMIUMTIER:-false}"
341
+ Knowz__CloudProvider__RealtimeTranscription: "${KNOWZ__CLOUDPROVIDER__REALTIMETRANSCRIPTION:-}"
342
+ Enrichment__FaceRecognition__Enabled: "${ENRICHMENT__FACERECOGNITION__ENABLED:-false}"
343
+ FaceRecognition__MatchThreshold: "${FACERECOGNITION__MATCHTHRESHOLD:-}"
344
+
345
+ # ── AI provider selection (same one-config contract as the api service; empty => offline stub) ──
346
+ Knowz__CloudProvider: "${KNOWZ__CLOUDPROVIDER:-}"
347
+ Knowz__CloudProvider__Ai: "${KNOWZ__CLOUDPROVIDER__AI:-}"
348
+ Knowz__CloudProvider__DocIntelligence: "${KNOWZ__CLOUDPROVIDER__DOCINTELLIGENCE:-}"
349
+ Knowz__CloudProvider__Vision: "${KNOWZ__CLOUDPROVIDER__VISION:-}"
350
+ Knowz__CloudProvider__Transcription: "${KNOWZ__CLOUDPROVIDER__TRANSCRIPTION:-}"
351
+ Vertex__Project: "${VERTEX__PROJECT:-}"
352
+ Vertex__Region: "${VERTEX__REGION:-}"
353
+ Vertex__ChatModel: "${VERTEX__CHATMODEL:-}"
354
+ Vertex__EmbeddingModel: "${VERTEX__EMBEDDINGMODEL:-}"
355
+ Vertex__EmbeddingDimensions: "${VERTEX__EMBEDDINGDIMENSIONS:-1536}"
356
+ OpenAiCompat__Endpoint: "${OPENAICOMPAT__ENDPOINT:-}"
357
+ OpenAiCompat__ApiKey: "${OPENAICOMPAT__APIKEY:-}"
358
+ OpenAiCompat__ChatModel: "${OPENAICOMPAT__CHATMODEL:-}"
359
+ OpenAiCompat__EmbeddingModel: "${OPENAICOMPAT__EMBEDDINGMODEL:-}"
360
+ OpenAiCompat__EmbeddingDimensions: "${OPENAICOMPAT__EMBEDDINGDIMENSIONS:-}"
361
+ GOOGLE_APPLICATION_CREDENTIALS: "${GCLOUD_ADC_PATH:+/gcloud/adc.json}"
362
+ volumes:
363
+ # Host ADC at a neutral READ-ONLY path, leaving the well-known path vacant for GCE metadata ADC.
364
+ # Defaults to /dev/null (inert); set GCLOUD_ADC_PATH to an absolute ADC path for host-file auth.
365
+ - "${GCLOUD_ADC_PATH:-/dev/null}:/gcloud/adc.json:ro"
366
+ - knowz-portable-objectsdata:/data/objects
367
+ - knowz-portable-identity:/var/lib/knowz/identity
368
+ - knowz-portable-dpkeys:/var/lib/knowz/data-protection-keys
369
+
370
+ # ── Web: the SPA (nginx). Runtime /config.js points the browser at the host-mapped API/MCP ports ───
371
+ web:
372
+ # Cloud-neutral SPA — plain versioned image (no portable/gcp flavor).
373
+ image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-web:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}"
374
+ ports:
375
+ - "${BIND_ADDRESS:-127.0.0.1}:${WEB_PORT:-3000}:8080"
376
+ depends_on:
377
+ api:
378
+ condition: service_started
379
+ environment:
380
+ KNOWZ_API_URL: "${PUBLIC_API_URL:-http://localhost:${API_PORT:-5000}}"
381
+ KNOWZ_MCP_URL: "${PUBLIC_MCP_URL:-http://localhost:${MCP_PORT:-3001}}"
382
+ # nginx:alpine has wget, but `localhost` resolves to ::1 (IPv6) while nginx binds
383
+ # IPv4 — hit 127.0.0.1 explicitly so the probe reaches the listener.
384
+ healthcheck:
385
+ test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/ || exit 1"]
386
+ interval: 10s
387
+ timeout: 5s
388
+ retries: 10
389
+ start_period: 10s
390
+
391
+ # ── MCP: Model Context Protocol server, backed by the portable API ─────────────────────────────────
392
+ mcp:
393
+ profiles: ["mcp"]
394
+ # Cloud-neutral MCP server — plain versioned image (no portable/gcp flavor).
395
+ image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-mcp:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env (the platform release, e.g. 0.2.0)}"
396
+ ports:
397
+ - "${BIND_ADDRESS:-127.0.0.1}:${MCP_PORT:-3001}:8080"
398
+ depends_on:
399
+ api:
400
+ condition: service_healthy
401
+ environment:
402
+ ASPNETCORE_URLS: http://+:8080
403
+ Knowz__BaseUrl: "http://api:8080"
404
+ MCP__BackendMode: "${MCP_BACKEND_MODE:-selfhosted}"
405
+ MCP__ApiKeyValidationEndpoint: "${MCP_API_KEY_VALIDATION_ENDPOINT:-/api/vaults}"
406
+ MCP__ServiceKey: "${MCP_SERVICE_KEY:?MCP_SERVICE_KEY must be set in .env}"
407
+ Authentication__ValidateApiKey: "${MCP_VALIDATE_API_KEY:-true}"
408
+ # aspnet:10.0 ships no curl/wget — HTTP readiness probe over bash /dev/tcp (200 on /healthz).
409
+ healthcheck:
410
+ test:
411
+ - CMD-SHELL
412
+ - >-
413
+ timeout 5 bash -c 'exec 3<>/dev/tcp/127.0.0.1/8080 && printf "GET /healthz HTTP/1.0\r\n\r\n" >&3 && head -1 <&3 | grep -q 200'
414
+ interval: 15s
415
+ timeout: 10s
416
+ retries: 10
417
+ start_period: 30s
418
+
419
+ public-site:
420
+ image: "${KNOWZ_REGISTRY:-ghcr.io/knowz-io}/knowz-public-site:${KNOWZ_VERSION:?KNOWZ_VERSION must be set in .env}"
421
+ profiles: ["public-site"]
422
+ ports:
423
+ - "${BIND_ADDRESS:-127.0.0.1}:${PUBLIC_SITE_PORT:-3002}:8080"
424
+ depends_on:
425
+ api:
426
+ condition: service_started
427
+ environment:
428
+ KNOWZ_API_URL: "${PUBLIC_API_URL:-http://localhost:${API_PORT:-5000}}"
429
+ KNOWZ_MCP_URL: "${PUBLIC_MCP_URL:-http://localhost:${MCP_PORT:-3001}}"
430
+ KNOWZ_PLATFORM_MAIN_APP_URL: "${PUBLIC_WEB_ORIGIN:-http://localhost:${WEB_PORT:-3000}}"
431
+ KNOWZ_PLATFORM_BASE_DOMAINS: "localhost"
432
+ healthcheck:
433
+ test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/ || exit 1"]
434
+ interval: 10s
435
+ timeout: 5s
436
+ retries: 10
437
+ start_period: 10s
438
+
439
+ volumes:
440
+ knowz-portable-pgdata:
441
+ knowz-portable-miniodata:
442
+ knowz-portable-objectsdata:
443
+ knowz-portable-identity:
444
+ knowz-portable-dpkeys:
@@ -0,0 +1,16 @@
1
+ -- Portable Postgres bring-up (spec TEST_ComposeProofHarness R4).
2
+ -- Runs once on first cluster init (docker-entrypoint-initdb.d) against the default POSTGRES_DB, via psql.
3
+ -- Creates the platform databases and installs the pgvector (`vector`) + trigram (`pg_trgm`) extensions in
4
+ -- each. The `vector` binary ships in the pgvector/pgvector:pg16 image; `pg_trgm` ships in postgres-contrib.
5
+ -- The API's PortablePostgresSchemaInitializer then EnsureCreates the schema + raw pgvector DDL on first boot.
6
+
7
+ CREATE DATABASE "KnowzKnowledge";
8
+ CREATE DATABASE "KnowzMaster";
9
+
10
+ \connect "KnowzKnowledge"
11
+ CREATE EXTENSION IF NOT EXISTS vector;
12
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
13
+
14
+ \connect "KnowzMaster"
15
+ CREATE EXTENSION IF NOT EXISTS vector;
16
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;
@@ -0,0 +1,37 @@
1
+ {
2
+ "releases": [
3
+ {
4
+ "version": "0.35.2",
5
+ "flavors": [
6
+ "portable",
7
+ "portable-gcp"
8
+ ],
9
+ "releasedAt": "2026-07-30T00:00:00Z",
10
+ "minCliVersion": null,
11
+ "notes": null,
12
+ "digests": null
13
+ },
14
+ {
15
+ "version": "0.33.1",
16
+ "flavors": [
17
+ "portable",
18
+ "portable-gcp"
19
+ ],
20
+ "releasedAt": "2026-07-10T00:00:00Z",
21
+ "minCliVersion": null,
22
+ "notes": null,
23
+ "digests": null
24
+ },
25
+ {
26
+ "version": "0.32.0",
27
+ "flavors": [
28
+ "portable",
29
+ "portable-gcp"
30
+ ],
31
+ "releasedAt": "2026-07-01T00:00:00Z",
32
+ "minCliVersion": null,
33
+ "notes": null,
34
+ "digests": null
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,149 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "contractVersion": "1.4.0",
4
+ "description": "Management contract for the pull-only Knowz portable container runtime.",
5
+ "services": [
6
+ { "id": "api", "required": true, "health": "http" },
7
+ { "id": "worker", "required": true, "health": "compose-process" },
8
+ { "id": "web", "required": true, "health": "http" },
9
+ { "id": "mcp", "required": false, "profile": "mcp", "health": "http" },
10
+ { "id": "public-site", "required": false, "profile": "public-site", "health": "http" },
11
+ { "id": "postgres", "required": true, "health": "pg_isready" },
12
+ { "id": "redis", "required": true, "health": "redis-ping" },
13
+ { "id": "object-storage", "required": true, "health": "http", "implementations": ["minio", "filesystem"] }
14
+ ],
15
+ "imageFlavors": {
16
+ "default": {
17
+ "suffix": "",
18
+ "providers": ["offline", "azure", "knowz-cloud", "openai-compatible"]
19
+ },
20
+ "gcp": {
21
+ "suffix": "-gcp",
22
+ "providers": ["gcp"]
23
+ }
24
+ },
25
+ "providerAxes": {
26
+ "master": "KNOWZ__CLOUDPROVIDER",
27
+ "ai": "KNOWZ__CLOUDPROVIDER__AI",
28
+ "documentIntelligence": "KNOWZ__CLOUDPROVIDER__DOCINTELLIGENCE",
29
+ "vision": "KNOWZ__CLOUDPROVIDER__VISION",
30
+ "transcription": "KNOWZ__CLOUDPROVIDER__TRANSCRIPTION",
31
+ "allowedValues": ["Azure", "Gcp", "OpenAiCompat", "None"]
32
+ },
33
+ "licensing": {
34
+ "activation": "device-code",
35
+ "mothershipUrlEnvironment": "KNOWZ_LICENSING_MOTHERSHIP_URL",
36
+ "installCredentialEnvironment": "KNOWZ_LICENSING_INSTALL_CREDENTIAL",
37
+ "identityVolume": "knowz-portable-identity",
38
+ "identityMountPath": "/var/lib/knowz/identity",
39
+ "credentialFile": "credential"
40
+ },
41
+ "providerPresets": {
42
+ "offline": {
43
+ "imageFlavor": "",
44
+ "masterProvider": "Azure",
45
+ "requiredEnvironment": [],
46
+ "defaults": { "EMBEDDING_PROVIDER": "Stub", "EMBEDDING_DIMENSIONS": "1536" }
47
+ },
48
+ "azure": {
49
+ "imageFlavor": "",
50
+ "masterProvider": "Azure",
51
+ "requiredEnvironment": ["AZURE_OPENAI_ENDPOINT", "AZURE_OPENAI_API_KEY"],
52
+ "defaults": { "EMBEDDING_PROVIDER": "AzureOpenAI", "EMBEDDING_DIMENSIONS": "1536" }
53
+ },
54
+ "gcp": {
55
+ "imageFlavor": "-gcp",
56
+ "masterProvider": "Gcp",
57
+ "requiredEnvironment": ["VERTEX__PROJECT", "GCLOUD_ADC_PATH"],
58
+ "defaults": { "VERTEX__REGION": "us-central1", "EMBEDDING_DIMENSIONS": "1536" }
59
+ },
60
+ "openai-compatible": {
61
+ "imageFlavor": "",
62
+ "masterProvider": "OpenAiCompat",
63
+ "requiredEnvironment": [
64
+ "OPENAICOMPAT__ENDPOINT",
65
+ "OPENAICOMPAT__CHATMODEL",
66
+ "OPENAICOMPAT__EMBEDDINGMODEL",
67
+ "OPENAICOMPAT__EMBEDDINGDIMENSIONS"
68
+ ],
69
+ "defaults": { "EMBEDDING_PROVIDER": "OpenAiCompat" }
70
+ },
71
+ "knowz-cloud": {
72
+ "imageFlavor": "",
73
+ "masterProvider": "OpenAiCompat",
74
+ "requiredEnvironment": [
75
+ "OPENAICOMPAT__ENDPOINT",
76
+ "OPENAICOMPAT__APIKEY",
77
+ "OPENAICOMPAT__CHATMODEL",
78
+ "OPENAICOMPAT__EMBEDDINGMODEL",
79
+ "OPENAICOMPAT__EMBEDDINGDIMENSIONS"
80
+ ],
81
+ "defaults": {
82
+ "OPENAICOMPAT__ENDPOINT": "https://ai.knowz.io/v1",
83
+ "OPENAICOMPAT__EMBEDDINGDIMENSIONS": "1536",
84
+ "EMBEDDING_PROVIDER": "OpenAiCompat",
85
+ "EMBEDDING_DIMENSIONS": "1536"
86
+ }
87
+ }
88
+ },
89
+ "storageModes": {
90
+ "minio": {
91
+ "providerValue": "MinioS3",
92
+ "persistentVolume": "knowz-portable-miniodata"
93
+ },
94
+ "filesystem": {
95
+ "providerValue": "FileSystem",
96
+ "rootPath": "/data/objects",
97
+ "persistentVolume": "knowz-portable-objectsdata"
98
+ }
99
+ },
100
+ "backingServices": {
101
+ "postgres": {
102
+ "modes": ["bundled", "external"],
103
+ "externalOverlay": "docker-compose.external-db.yml",
104
+ "initOverlay": "docker-compose.external-db-init.yml",
105
+ "environment": ["PG_HOST", "PG_PORT", "PG_SSL_MODE", "PG_EXTRA_OPTIONS"]
106
+ },
107
+ "object-storage": {
108
+ "modes": ["bundled", "external"],
109
+ "externalOverlay": "docker-compose.external-storage.yml",
110
+ "environment": ["S3_ENDPOINT", "S3_REGION", "S3_FORCE_PATH_STYLE"]
111
+ },
112
+ "redis": {
113
+ "modes": ["bundled", "external"],
114
+ "externalOverlay": "docker-compose.external-redis.yml",
115
+ "environment": ["REDIS_CONNECTION_STRING"]
116
+ },
117
+ "edge": {
118
+ "modes": ["none", "caddy"],
119
+ "overlay": "docker-compose.edge.yml"
120
+ }
121
+ },
122
+ "capabilities": {
123
+ "core-enrichment": { "status": "full", "queues": ["ai-processing", "processing-completed"] },
124
+ "text-extraction": { "status": "full", "queues": ["text-extraction", "document-intelligence"] },
125
+ "summarization": { "status": "full", "queues": ["summarization"] },
126
+ "chunking-indexing": { "status": "full", "queues": ["chunking", "indexing", "search-indexing"] },
127
+ "vision-transcription": { "status": "full", "queues": ["vision-analysis", "transcription"] },
128
+ "realtime-progress": { "status": "full", "transport": "worker-api-redis-sse" },
129
+ "entity-extraction": { "status": "degraded", "behavior": "terminal completion without structured entities" },
130
+ "face-recognition": { "status": "degraded", "behavior": "job consumed without recognition output" },
131
+ "graph-sync": { "status": "degraded", "behavior": "job consumed without graph output" },
132
+ "git-sync": { "status": "unavailable" },
133
+ "engagement-jobs": { "status": "unavailable" },
134
+ "ingestion-jobs": { "status": "unavailable" },
135
+ "sequence-execution": { "status": "unavailable" },
136
+ "vault-reindex": { "status": "unavailable" },
137
+ "notification-jobs": { "status": "unavailable" }
138
+ },
139
+ "lifecycle": {
140
+ "composeProjectPrefix": "knowz",
141
+ "preserveVolumesOnDown": true,
142
+ "destroyRequiresConfirmation": true,
143
+ "defaultBindAddress": "127.0.0.1",
144
+ "infrastructureHostPortsPublished": false,
145
+ "publicUrlEnvironment": ["PUBLIC_API_URL", "PUBLIC_WEB_ORIGIN", "PUBLIC_MCP_URL", "PUBLIC_SITE_URL"],
146
+ "upgradeStrategy": "pull-and-reapply",
147
+ "rollbackSupported": false
148
+ }
149
+ }
package/bin/run.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { execute } from '@oclif/core';
3
+
4
+ await execute({ dir: import.meta.url });