@ultrst-armada/krnl 0.0.0-stage → 1.0.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 (236) hide show
  1. package/README.md +95 -2
  2. package/package.json +75 -4
  3. package/packages/cli/dist/K_ENT_Entity-PQ5MURQY-ZG6FZXXX.js +13 -0
  4. package/packages/cli/dist/K_LIB_Krnl_Aiko_Client-OPZAVZCW-K4CRQYA5.js +8 -0
  5. package/packages/cli/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF-LNPXZYOE.js +110 -0
  6. package/packages/cli/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF-3ALZPNX4.js +11 -0
  7. package/packages/cli/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X-PJTICYSW.js +11 -0
  8. package/packages/cli/dist/K_LIB_Krnl_Registry_Client-NXV6D2QW-M5TYU55O.js +8 -0
  9. package/packages/cli/dist/K_LIB_Krnl_SubApp_Engine-7HR5HWW2-H6STOXRK.js +20 -0
  10. package/packages/cli/dist/K_LIB_Krnl_SubApp_Registry-7XYGDKJK-XPJXSF7D.js +19 -0
  11. package/packages/cli/dist/K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7-CUYGTWOW.js +7 -0
  12. package/packages/cli/dist/K_LIB_Krnl_System_App_Adapter-M6FJKLGU-VR6T4N6J.js +17 -0
  13. package/packages/cli/dist/K_LIB_Krnl_System_Base_Functionality_APIs-ZZUZ6ZG5-RLJ4QWDP.js +58 -0
  14. package/packages/cli/dist/K_LIB_Krnl_System_Magnetic_Loader-XBQO2KXF-BOQGUASC.js +22 -0
  15. package/packages/cli/dist/K_LIB_Krnl_System_Unified_Http_Adapter-RCEGP3OG-XJI7KIT5.js +8 -0
  16. package/packages/cli/dist/K_LIB_Krnl_Telemetry-77FRZ3KV-K5VCWAFW.js +9 -0
  17. package/packages/cli/dist/bin/krnl.cjs +9758 -0
  18. package/packages/cli/dist/bin/krnl.d.cts +1 -0
  19. package/packages/cli/dist/bin/krnl.d.ts +1 -0
  20. package/packages/cli/dist/bin/krnl.js +2006 -0
  21. package/packages/cli/dist/chunk-3TRM6CYL.js +152 -0
  22. package/packages/cli/dist/chunk-5JDK35TG.js +3872 -0
  23. package/packages/cli/dist/chunk-63PTK33I.js +997 -0
  24. package/packages/cli/dist/chunk-6NIKAMUZ.js +82 -0
  25. package/packages/cli/dist/chunk-BOXWWXQG.js +400 -0
  26. package/packages/cli/dist/chunk-EEKLK7QJ.js +565 -0
  27. package/packages/cli/dist/chunk-EG7T2IAD.js +107 -0
  28. package/packages/cli/dist/chunk-F5EHXE2O.js +1036 -0
  29. package/packages/cli/dist/chunk-F65ANSQG.js +269 -0
  30. package/packages/cli/dist/chunk-FDNCADFE.js +71 -0
  31. package/packages/cli/dist/chunk-GDLRMDAN.js +127 -0
  32. package/packages/cli/dist/chunk-HWMTCMOS.js +656 -0
  33. package/packages/cli/dist/chunk-I74QIQOD.js +5536 -0
  34. package/packages/cli/dist/chunk-JTLSTO25.js +71 -0
  35. package/packages/cli/dist/chunk-JULBBJ27.js +1033 -0
  36. package/packages/cli/dist/chunk-OHVMVRBP.js +117 -0
  37. package/packages/cli/dist/chunk-P2PCLEKX.js +666 -0
  38. package/packages/cli/dist/chunk-PJQIUOX2.js +7767 -0
  39. package/packages/cli/dist/chunk-PPOF3DJW.js +471 -0
  40. package/packages/cli/dist/chunk-Q45257P6.js +173 -0
  41. package/packages/cli/dist/chunk-QNROWGBI.js +1036 -0
  42. package/packages/cli/dist/chunk-RJNYUXZD.js +977 -0
  43. package/packages/cli/dist/chunk-SRTOPJ5W.js +104 -0
  44. package/packages/cli/dist/chunk-TCEX3MPS.js +702 -0
  45. package/packages/cli/dist/chunk-TNOAJO2J.js +675 -0
  46. package/packages/cli/dist/chunk-UR2SUCSF.js +701 -0
  47. package/packages/cli/dist/chunk-X5LOIFM7.js +68 -0
  48. package/packages/cli/dist/chunk-XIRFOO3H.js +589 -0
  49. package/packages/cli/dist/chunk-ZAAV3JXQ.js +809 -0
  50. package/packages/cli/dist/index.cjs +7798 -0
  51. package/packages/cli/dist/index.d.cts +7 -0
  52. package/packages/cli/dist/index.d.ts +7 -0
  53. package/packages/cli/dist/index.js +29 -0
  54. package/packages/cli/package.json +34 -0
  55. package/packages/core/dist/K_ENT_Entity-4MB7CU4A.js +12 -0
  56. package/packages/core/dist/K_ENT_Entity-DEJGIDGH.js +12 -0
  57. package/packages/core/dist/K_ENT_Entity-FXZO5UZ2.js +12 -0
  58. package/packages/core/dist/K_ENT_Entity-HDSCXC5F.js +12 -0
  59. package/packages/core/dist/K_ENT_Entity-JILABHLW.js +12 -0
  60. package/packages/core/dist/K_ENT_Entity-PQ5MURQY.js +13 -0
  61. package/packages/core/dist/K_ENT_Entity-ROAKDIHW.js +12 -0
  62. package/packages/core/dist/K_ENT_Entity-TBVFSKDV.js +12 -0
  63. package/packages/core/dist/K_ENT_Entity-ZFLKG3JO.js +12 -0
  64. package/packages/core/dist/K_LIB_Krnl_Aiko_Client-OPZAVZCW.js +8 -0
  65. package/packages/core/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF.js +110 -0
  66. package/packages/core/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF.js +9 -0
  67. package/packages/core/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X.js +9 -0
  68. package/packages/core/dist/K_LIB_Krnl_Registry_Client-NXV6D2QW.js +8 -0
  69. package/packages/core/dist/K_LIB_Krnl_SubApp_Engine-7HR5HWW2.js +20 -0
  70. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-4C6GBQAG.js +18 -0
  71. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-6V23A6F6.js +18 -0
  72. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-7XYGDKJK.js +19 -0
  73. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-DYLLC5G2.js +18 -0
  74. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-F4FOFAUP.js +18 -0
  75. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-FBOXXMI3.js +18 -0
  76. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-Q73BWLNP.js +18 -0
  77. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-QM2C4MVA.js +18 -0
  78. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-QUGI6SMP.js +18 -0
  79. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-RGMTBHNP.js +18 -0
  80. package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-RWR7UNDW.js +18 -0
  81. package/packages/core/dist/K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7.js +7 -0
  82. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-32MFJJ5Z.js +17 -0
  83. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-4J4CEWRY.js +17 -0
  84. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-A366YHF2.js +17 -0
  85. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-LK4LYJHI.js +17 -0
  86. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-M6FJKLGU.js +17 -0
  87. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-NW3K63II.js +17 -0
  88. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-QDHTI5ZV.js +17 -0
  89. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-VHCT6VIW.js +17 -0
  90. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-WBRKF24R.js +17 -0
  91. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-XKYQYT6Q.js +17 -0
  92. package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-Z2PWZYDZ.js +17 -0
  93. package/packages/core/dist/K_LIB_Krnl_System_Base_Functionality_APIs-ZZUZ6ZG5.js +58 -0
  94. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-2EZU7QF4.js +21 -0
  95. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-6G3AQNAV.js +21 -0
  96. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-B2NZMQUG.js +21 -0
  97. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-C2RABMZP.js +21 -0
  98. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-HHE3NZ4F.js +21 -0
  99. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-LHFGR6WK.js +21 -0
  100. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-M74BLM3N.js +21 -0
  101. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-PT6ZA6EA.js +21 -0
  102. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-SP52V3CX.js +21 -0
  103. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-XBQO2KXF.js +22 -0
  104. package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-YNSEUHJJ.js +21 -0
  105. package/packages/core/dist/K_LIB_Krnl_System_Unified_Http_Adapter-M6SBHIVA.js +8 -0
  106. package/packages/core/dist/K_LIB_Krnl_System_Unified_Http_Adapter-RCEGP3OG.js +8 -0
  107. package/packages/core/dist/K_LIB_Krnl_Telemetry-77FRZ3KV.js +9 -0
  108. package/packages/core/dist/chunk-33L2J7V7.js +82 -0
  109. package/packages/core/dist/chunk-3ES4K2ZP.js +817 -0
  110. package/packages/core/dist/chunk-3SMHVVLL.js +82 -0
  111. package/packages/core/dist/chunk-3UEZ7JQA.js +4877 -0
  112. package/packages/core/dist/chunk-3XIE6KBD.js +4877 -0
  113. package/packages/core/dist/chunk-46ZLCML6.js +107 -0
  114. package/packages/core/dist/chunk-4UEL3DWJ.js +107 -0
  115. package/packages/core/dist/chunk-54GWZ5PC.js +82 -0
  116. package/packages/core/dist/chunk-6QCYRS5L.js +127 -0
  117. package/packages/core/dist/chunk-6ULMHNXR.js +104 -0
  118. package/packages/core/dist/chunk-7WUETJEV.js +117 -0
  119. package/packages/core/dist/chunk-A5KRAYDB.js +107 -0
  120. package/packages/core/dist/chunk-ANEAZ3PO.js +107 -0
  121. package/packages/core/dist/chunk-BE76RL6F.js +82 -0
  122. package/packages/core/dist/chunk-CIARVYDO.js +107 -0
  123. package/packages/core/dist/chunk-CR2ANE62.js +107 -0
  124. package/packages/core/dist/chunk-DI27MOR7.js +173 -0
  125. package/packages/core/dist/chunk-E6RLFHM5.js +596 -0
  126. package/packages/core/dist/chunk-EELAPMNV.js +4877 -0
  127. package/packages/core/dist/chunk-ENZ2RQVJ.js +107 -0
  128. package/packages/core/dist/chunk-F2U6CX4F.js +4877 -0
  129. package/packages/core/dist/chunk-FKG64OHL.js +82 -0
  130. package/packages/core/dist/chunk-FYAZJYM5.js +772 -0
  131. package/packages/core/dist/chunk-G4NP4RDQ.js +82 -0
  132. package/packages/core/dist/chunk-GADIRLRS.js +473 -0
  133. package/packages/core/dist/chunk-GR6CSLQJ.js +772 -0
  134. package/packages/core/dist/chunk-HDS7AT6O.js +772 -0
  135. package/packages/core/dist/chunk-HIMEZUU2.js +71 -0
  136. package/packages/core/dist/chunk-IB4UHG5I.js +596 -0
  137. package/packages/core/dist/chunk-J7ZYNVRS.js +772 -0
  138. package/packages/core/dist/chunk-JVLZU4K7.js +604 -0
  139. package/packages/core/dist/chunk-JYXXI7Q3.js +82 -0
  140. package/packages/core/dist/chunk-K54K2KZW.js +192 -0
  141. package/packages/core/dist/chunk-K6VHLBNH.js +3316 -0
  142. package/packages/core/dist/chunk-KCBP7ZYA.js +596 -0
  143. package/packages/core/dist/chunk-KFQGP6VL.js +33 -0
  144. package/packages/core/dist/chunk-KIUEUI7K.js +82 -0
  145. package/packages/core/dist/chunk-LB67NIZP.js +949 -0
  146. package/packages/core/dist/chunk-LDTYFUNW.js +596 -0
  147. package/packages/core/dist/chunk-MLVWARD4.js +596 -0
  148. package/packages/core/dist/chunk-MPYVXHKO.js +2777 -0
  149. package/packages/core/dist/chunk-MRQ3MITU.js +772 -0
  150. package/packages/core/dist/chunk-MVUN7I7O.js +107 -0
  151. package/packages/core/dist/chunk-NDDOIRW7.js +596 -0
  152. package/packages/core/dist/chunk-O3KDB5MH.js +3330 -0
  153. package/packages/core/dist/chunk-OEINUDSE.js +400 -0
  154. package/packages/core/dist/chunk-OPDENPT4.js +4877 -0
  155. package/packages/core/dist/chunk-P6XEM2LA.js +429 -0
  156. package/packages/core/dist/chunk-QKMRSQV4.js +82 -0
  157. package/packages/core/dist/chunk-R6CCWALL.js +4877 -0
  158. package/packages/core/dist/chunk-RAMMOO73.js +774 -0
  159. package/packages/core/dist/chunk-S3FTZFG6.js +772 -0
  160. package/packages/core/dist/chunk-T2ZVN434.js +4877 -0
  161. package/packages/core/dist/chunk-TFHLDMIA.js +107 -0
  162. package/packages/core/dist/chunk-TI3QUCIJ.js +107 -0
  163. package/packages/core/dist/chunk-TR2BAIGI.js +107 -0
  164. package/packages/core/dist/chunk-UGVVJKC6.js +4877 -0
  165. package/packages/core/dist/chunk-V2DX7YIU.js +984 -0
  166. package/packages/core/dist/chunk-W4IHYUYD.js +772 -0
  167. package/packages/core/dist/chunk-W6WBG5OY.js +4877 -0
  168. package/packages/core/dist/chunk-WN3M7O7H.js +3312 -0
  169. package/packages/core/dist/chunk-WR3NCU7U.js +4877 -0
  170. package/packages/core/dist/chunk-XC6B6L27.js +82 -0
  171. package/packages/core/dist/chunk-XNSE64ZY.js +3316 -0
  172. package/packages/core/dist/chunk-XROES2WN.js +634 -0
  173. package/packages/core/dist/chunk-XSCKNRCZ.js +5020 -0
  174. package/packages/core/dist/chunk-XVABPAUZ.js +82 -0
  175. package/packages/core/dist/chunk-YOBCB5C5.js +596 -0
  176. package/packages/core/dist/chunk-YUK6Q563.js +666 -0
  177. package/packages/core/dist/chunk-YXGL3ZEU.js +1030 -0
  178. package/packages/core/dist/chunk-ZINJ5OUX.js +596 -0
  179. package/packages/core/dist/chunk-ZPFD4BIQ.js +604 -0
  180. package/packages/core/dist/chunk-ZQZBFG6F.js +4826 -0
  181. package/packages/core/dist/chunk-ZZFRJGXM.js +4877 -0
  182. package/packages/core/dist/index.cjs +760 -0
  183. package/packages/core/dist/index.d.cts +360 -0
  184. package/packages/core/dist/index.d.ts +360 -0
  185. package/packages/core/dist/index.js +707 -0
  186. package/packages/core/package.json +34 -0
  187. package/packages/create-krnl/dist/K_ENT_Entity-PQ5MURQY-R2OH4VXE.js +14 -0
  188. package/packages/create-krnl/dist/K_LIB_Krnl_Aiko_Client-OPZAVZCW-AZM5HF4M.js +9 -0
  189. package/packages/create-krnl/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF-X5N6SV2S.js +111 -0
  190. package/packages/create-krnl/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF-5PFHF4JU.js +12 -0
  191. package/packages/create-krnl/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X-ED33OQPH.js +12 -0
  192. package/packages/create-krnl/dist/K_LIB_Krnl_Registry_Client-NXV6D2QW-YGQLVR4P.js +9 -0
  193. package/packages/create-krnl/dist/K_LIB_Krnl_SubApp_Engine-7HR5HWW2-VM7CTU2L.js +21 -0
  194. package/packages/create-krnl/dist/K_LIB_Krnl_SubApp_Registry-7XYGDKJK-Y2GQFJ7I.js +21 -0
  195. package/packages/create-krnl/dist/K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7-L3JQWO54.js +8 -0
  196. package/packages/create-krnl/dist/K_LIB_Krnl_System_App_Adapter-M6FJKLGU-KQARASPR.js +19 -0
  197. package/packages/create-krnl/dist/K_LIB_Krnl_System_Base_Functionality_APIs-ZZUZ6ZG5-OF3IGLVL.js +59 -0
  198. package/packages/create-krnl/dist/K_LIB_Krnl_System_Magnetic_Loader-XBQO2KXF-JOLHKOEX.js +24 -0
  199. package/packages/create-krnl/dist/K_LIB_Krnl_System_Unified_Http_Adapter-RCEGP3OG-L46LSHKQ.js +10 -0
  200. package/packages/create-krnl/dist/K_LIB_Krnl_Telemetry-77FRZ3KV-4JUPRR3X.js +10 -0
  201. package/packages/create-krnl/dist/chunk-3TRM6CYL.js +152 -0
  202. package/packages/create-krnl/dist/chunk-3URCB3QS.js +127 -0
  203. package/packages/create-krnl/dist/chunk-5JDK35TG.js +3872 -0
  204. package/packages/create-krnl/dist/chunk-A2XAXDOW.js +812 -0
  205. package/packages/create-krnl/dist/chunk-AN6TMQHG.js +1033 -0
  206. package/packages/create-krnl/dist/chunk-BOXWWXQG.js +400 -0
  207. package/packages/create-krnl/dist/chunk-BPTBREBG.js +38 -0
  208. package/packages/create-krnl/dist/chunk-FDNCADFE.js +71 -0
  209. package/packages/create-krnl/dist/chunk-JTLSTO25.js +71 -0
  210. package/packages/create-krnl/dist/chunk-M3NCUIPL.js +107 -0
  211. package/packages/create-krnl/dist/chunk-N2EONSOC.js +7769 -0
  212. package/packages/create-krnl/dist/chunk-OHVMVRBP.js +117 -0
  213. package/packages/create-krnl/dist/chunk-Q45257P6.js +173 -0
  214. package/packages/create-krnl/dist/chunk-QGM4M3NI.js +37 -0
  215. package/packages/create-krnl/dist/chunk-RJNYUXZD.js +977 -0
  216. package/packages/create-krnl/dist/chunk-SRTOPJ5W.js +104 -0
  217. package/packages/create-krnl/dist/chunk-UPBIGEC3.js +666 -0
  218. package/packages/create-krnl/dist/chunk-V2DB7UD7.js +82 -0
  219. package/packages/create-krnl/dist/chunk-WMHLIUI6.js +3644 -0
  220. package/packages/create-krnl/dist/chunk-XIRFOO3H.js +589 -0
  221. package/packages/create-krnl/dist/chunk-Y2CEEVZP.js +5536 -0
  222. package/packages/create-krnl/dist/index.cjs +395 -0
  223. package/packages/create-krnl/dist/index.js +372 -0
  224. package/packages/create-krnl/dist/main-DXUMPBND.js +2217 -0
  225. package/packages/create-krnl/dist/wrapper-SDF2VKX3.js +31 -0
  226. package/packages/create-krnl/package.json +23 -0
  227. package/packages/eslint-plugin/dist/index.cjs +439 -0
  228. package/packages/eslint-plugin/dist/index.d.cts +336 -0
  229. package/packages/eslint-plugin/dist/index.d.ts +336 -0
  230. package/packages/eslint-plugin/dist/index.js +416 -0
  231. package/packages/eslint-plugin/package.json +24 -0
  232. package/packages/validate/dist/index.cjs +499 -0
  233. package/packages/validate/dist/index.d.cts +49 -0
  234. package/packages/validate/dist/index.d.ts +49 -0
  235. package/packages/validate/dist/index.js +462 -0
  236. package/packages/validate/package.json +27 -0
@@ -0,0 +1,429 @@
1
+ import {
2
+ telemetry
3
+ } from "./chunk-DI27MOR7.js";
4
+
5
+ // src/core/K_LIB_Krnl_System_Base_Functionality_APIs.ts
6
+ import { zodToJsonSchema } from "zod-to-json-schema";
7
+ function heartbeatApi(entity) {
8
+ return () => ({
9
+ name: entity.entityName,
10
+ type: entity.systemType,
11
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
12
+ });
13
+ }
14
+ function telemetryApi(entity) {
15
+ return () => {
16
+ const summary = telemetry.getSummary();
17
+ return {
18
+ entityName: entity.entityName,
19
+ systemType: entity.systemType,
20
+ flags: entity.getSystemFlags(),
21
+ owner: entity.hierarchyManager.getOwnerEntity()?.entityName || null,
22
+ ownedEntities: entity.hierarchyManager.getAllOwnedComponentEntities().map((e) => e.entityName),
23
+ activeRoutes: entity.commComponent.listRoutes(),
24
+ uptime: typeof process !== "undefined" && process.uptime ? process.uptime() : null,
25
+ performance: summary.metrics || summary,
26
+ callLogs: summary.callLogs,
27
+ libraryUsage: summary.libraryUsage,
28
+ dataUsage: summary.dataUsage
29
+ };
30
+ };
31
+ }
32
+ function adminCommandApi(entity) {
33
+ return async ({ command, args }) => {
34
+ console.log(`[${entity.entityName}] Admin command: ${command}`, args);
35
+ if (command === "set-discoverable") {
36
+ return {
37
+ status: "acknowledged",
38
+ command,
39
+ flags: entity.setDiscoverable(Boolean(args?.value))
40
+ };
41
+ }
42
+ if (command === "reserve") {
43
+ return {
44
+ status: "acknowledged",
45
+ command,
46
+ flags: entity.reserveFor(args?.serviceName || "unknown")
47
+ };
48
+ }
49
+ if (command === "release-reservation") {
50
+ return {
51
+ status: "acknowledged",
52
+ command,
53
+ flags: entity.releaseReservation(args?.serviceName || null)
54
+ };
55
+ }
56
+ if (command === "shutdown") {
57
+ console.log(`[${entity.entityName}] Graceful shutdown initiated via admin command.`);
58
+ setTimeout(() => {
59
+ entity.dispose();
60
+ process.exit(0);
61
+ }, 500);
62
+ return {
63
+ status: "acknowledged",
64
+ command,
65
+ message: "System will shutdown in 500ms"
66
+ };
67
+ }
68
+ return { status: "acknowledged", command, flags: entity.getSystemFlags() };
69
+ };
70
+ }
71
+ function discoverPeersApi(entity) {
72
+ return ({ includeBusy = true } = {}) => {
73
+ const peers = entity.listPeers();
74
+ if (includeBusy) return peers;
75
+ return peers.filter((peer) => !peer.busy);
76
+ };
77
+ }
78
+ function getManifestApi(entity) {
79
+ return () => entity.getManifest();
80
+ }
81
+ function getLastActionDocsApi(entity) {
82
+ return () => {
83
+ return {
84
+ preemptiveDocumentation: entity._lastPreemptiveDoc || null,
85
+ errorDocumentation: entity._lastErrorDoc || null
86
+ };
87
+ };
88
+ }
89
+ function getFullDocumentationApi(entity) {
90
+ return () => {
91
+ if (entity._documentationProvider && typeof entity._documentationProvider.getDocsForLayer === "function") {
92
+ return entity._documentationProvider.getDocsForLayer("LAYER_1_ENTRY") || [];
93
+ }
94
+ return [];
95
+ };
96
+ }
97
+ function systemCommandsCollectorHandler(entity) {
98
+ return (msg) => {
99
+ console.log(`[${entity.entityName}] system-commands received:`, JSON.stringify(msg.data));
100
+ };
101
+ }
102
+ function getUsedPortsApi(entity) {
103
+ return () => {
104
+ const registry = entity.getRegisteredPorts();
105
+ return {
106
+ entity: entity.entityName,
107
+ ports: Object.values(registry),
108
+ registry
109
+ };
110
+ };
111
+ }
112
+ function findFreePortsApi(entity) {
113
+ return async ({
114
+ count = 1,
115
+ rangeStart = 3e3,
116
+ rangeEnd = 65535
117
+ }) => {
118
+ if (count < 1) throw new Error("count must be \u2265 1");
119
+ if (rangeStart < 1 || rangeEnd > 65535 || rangeStart > rangeEnd) {
120
+ throw new Error("Invalid port range: 1 \u2264 rangeStart \u2264 rangeEnd \u2264 65535");
121
+ }
122
+ const usedSet = new Set(
123
+ Object.values(entity.getRegisteredPorts())
124
+ );
125
+ const usedByPeer = {
126
+ [entity.entityName]: Array.from(usedSet)
127
+ };
128
+ const peers = entity.listPeers();
129
+ await Promise.allSettled(
130
+ peers.map(async (peer) => {
131
+ try {
132
+ const remote = entity.getRemoteEntity(peer.id);
133
+ if (!remote) return;
134
+ const result = await remote.call("getUsedPorts", {});
135
+ const payload = result?.payload ?? result;
136
+ const peerPorts = Array.isArray(payload?.ports) ? payload.ports : [];
137
+ usedByPeer[peer.id] = peerPorts;
138
+ peerPorts.forEach((p) => usedSet.add(p));
139
+ } catch (_) {
140
+ }
141
+ })
142
+ );
143
+ const freePorts = [];
144
+ for (let p = rangeStart; p <= rangeEnd && freePorts.length < count; p++) {
145
+ if (!usedSet.has(p)) freePorts.push(p);
146
+ }
147
+ if (freePorts.length < count) {
148
+ throw new Error(
149
+ `Only ${freePorts.length} free port(s) available in [${rangeStart}, ${rangeEnd}]; requested ${count}.`
150
+ );
151
+ }
152
+ return { freePorts, queriedPeers: peers.length, totalUsedCount: usedSet.size, usedByPeer };
153
+ };
154
+ }
155
+ function shutdownApi(entity) {
156
+ return ({ timeoutMs = 1e4 } = {}) => {
157
+ setTimeout(() => {
158
+ entity.gracefulShutdown({ timeoutMs }).catch((err) => {
159
+ console.error(`[${entity.entityName}] gracefulShutdown error:`, err?.message ?? err);
160
+ process.exit(1);
161
+ });
162
+ }, 200);
163
+ return {
164
+ status: "acknowledged",
165
+ message: `Graceful shutdown initiated for '${entity.entityName}' and all owned microservices.`,
166
+ entity: entity.entityName,
167
+ timeoutMs
168
+ };
169
+ };
170
+ }
171
+ function getSiblingNetworkTopologyApi(entity) {
172
+ return () => {
173
+ if (!entity._siblingNetwork) return null;
174
+ return entity.getSiblingNetworkTopology();
175
+ };
176
+ }
177
+ function getSubAppTopologyApi(entity) {
178
+ return () => entity.getSubAppTopology();
179
+ }
180
+ function getIngressNetworkTopologyApi(entity) {
181
+ return getSiblingNetworkTopologyApi(entity);
182
+ }
183
+ function registerAppApi(entity) {
184
+ return ({ name, port, pid }) => {
185
+ if (!entity._registryApps) {
186
+ entity._registryApps = /* @__PURE__ */ new Map();
187
+ }
188
+ entity._registryApps.set(name, {
189
+ name,
190
+ port,
191
+ pid,
192
+ registeredAt: (/* @__PURE__ */ new Date()).toISOString(),
193
+ lastHeartbeat: Date.now()
194
+ });
195
+ console.log(`[Registry] Registered app "${name}" on port ${port} (PID ${pid})`);
196
+ return { success: true };
197
+ };
198
+ }
199
+ function deregisterAppApi(entity) {
200
+ return ({ name }) => {
201
+ if (entity._registryApps) {
202
+ const deleted = entity._registryApps.delete(name);
203
+ if (deleted) {
204
+ console.log(`[Registry] Deregistered app "${name}"`);
205
+ }
206
+ }
207
+ return { success: true };
208
+ };
209
+ }
210
+ function heartbeatAppApi(entity) {
211
+ return ({ name }) => {
212
+ if (entity._registryApps && entity._registryApps.has(name)) {
213
+ const app = entity._registryApps.get(name);
214
+ app.lastHeartbeat = Date.now();
215
+ return { success: true };
216
+ }
217
+ return { success: false, error: `App "${name}" not registered` };
218
+ };
219
+ }
220
+ function lookupAppApi(entity) {
221
+ return ({ name }) => {
222
+ if (entity._registryApps && entity._registryApps.has(name)) {
223
+ const app = entity._registryApps.get(name);
224
+ return {
225
+ name: app.name,
226
+ port: app.port,
227
+ pid: app.pid,
228
+ registeredAt: app.registeredAt
229
+ };
230
+ }
231
+ return { error: `App "${name}" not found` };
232
+ };
233
+ }
234
+ function listAppsApi(entity) {
235
+ return () => {
236
+ if (!entity._registryApps) return [];
237
+ return Array.from(entity._registryApps.values()).map((app) => ({
238
+ name: app.name,
239
+ port: app.port,
240
+ pid: app.pid,
241
+ registeredAt: app.registeredAt
242
+ }));
243
+ };
244
+ }
245
+ function buildEndpointDefinition(fn, entity, runtimeOverride = null, memory = "") {
246
+ const isSystem = entity._krnlSystemEndpointIds?.has(fn.id) || fn.id === "getEndpointDefinitions" || fn.id === "setEndpointDefinition" || fn.id === "getTelemetryLog";
247
+ let inputSchema = {};
248
+ let outputSchema = {};
249
+ if (fn.schema) {
250
+ if (fn.schema.input) {
251
+ try {
252
+ inputSchema = zodToJsonSchema(fn.schema.input);
253
+ } catch (e) {
254
+ inputSchema = { type: "object" };
255
+ }
256
+ }
257
+ if (fn.schema.output) {
258
+ try {
259
+ outputSchema = zodToJsonSchema(fn.schema.output);
260
+ } catch (e) {
261
+ outputSchema = { type: "object" };
262
+ }
263
+ }
264
+ }
265
+ const defaultSpec = {
266
+ reasoning: 3,
267
+ planning: 1,
268
+ toolUsage: 1,
269
+ structuredOutput: 5,
270
+ jsonStrictness: 5,
271
+ coding: 1,
272
+ extraction: 3,
273
+ classification: 3,
274
+ summarization: 3,
275
+ creativity: 3,
276
+ determinism: 5,
277
+ context: 3,
278
+ vision: 1,
279
+ multimodal: 1,
280
+ outputComplexity: 3
281
+ };
282
+ const codeSpec = fn.ai?.intelligenceSpec || fn.intelligenceSpec || defaultSpec;
283
+ const mergedSpec = runtimeOverride?.intelligenceSpec || codeSpec;
284
+ const emittersList = [];
285
+ if (fn.emitters) {
286
+ fn.emitters.forEach((_, eid) => {
287
+ emittersList.push(`${fn.id}:${eid}`);
288
+ });
289
+ }
290
+ return {
291
+ id: fn.id,
292
+ category: isSystem ? "krnl_system" : "app",
293
+ method: fn.method || "POST",
294
+ visibility: fn.visibility || "public",
295
+ inputSchema,
296
+ outputSchema,
297
+ description: runtimeOverride?.description || fn.description || `Execute ${fn.id}`,
298
+ systemInstructions: runtimeOverride?.systemInstructions || fn.ai?.systemInstructions || "",
299
+ examples: runtimeOverride?.examples || fn.examples || [],
300
+ examplePayload: runtimeOverride?.examplePayload || fn.example || null,
301
+ intelligenceSpec: mergedSpec,
302
+ agentTools: runtimeOverride?.agentTools || fn.ai?.agentTools || [],
303
+ retryConfig: runtimeOverride?.retryConfig || fn.ai?.retryConfig || { maxRetries: 4, timeoutMs: 12e3, retryDelayMs: 500, backoffStrategy: "LINEAR" },
304
+ staticWatchVars: runtimeOverride?.staticWatchVars || fn.ai?.staticWatchVars || [],
305
+ dynamicWatchVars: runtimeOverride?.dynamicWatchVars || fn.ai?.dynamicWatchVars || [],
306
+ accessPolicy: fn.accessPolicy || null,
307
+ emitters: emittersList,
308
+ sourcePath: fn.sourcePath || null,
309
+ memory: memory || "",
310
+ runtimeEdited: !!runtimeOverride
311
+ };
312
+ }
313
+ function getEndpointDefinitionsApi(entity) {
314
+ return async () => {
315
+ const list = [];
316
+ const store = entity._aiProfilesStore;
317
+ const overrides = store ? await store.getAllEndpointDefinitions() : {};
318
+ const seen = /* @__PURE__ */ new Set();
319
+ const processF = async (fn) => {
320
+ if (seen.has(fn.id)) return;
321
+ seen.add(fn.id);
322
+ const override = overrides[fn.id] || null;
323
+ const mem = store ? await store.getEndpointMemory(fn.id) : "";
324
+ list.push(buildEndpointDefinition(fn, entity, override, mem));
325
+ };
326
+ if (entity.localFunctionalities) {
327
+ for (const fn of entity.localFunctionalities.values()) {
328
+ await processF(fn);
329
+ }
330
+ }
331
+ if (entity.remoteFunctionalities) {
332
+ for (const fn of entity.remoteFunctionalities.values()) {
333
+ await processF(fn);
334
+ }
335
+ }
336
+ return list;
337
+ };
338
+ }
339
+ function setEndpointDefinitionApi(entity) {
340
+ return async ({ id, override }) => {
341
+ const store = entity._aiProfilesStore;
342
+ if (!store) {
343
+ throw new Error("Runtime Store not initialized.");
344
+ }
345
+ const current = await store.getEndpointDefinition(id) || {};
346
+ const updated = { ...current, ...override };
347
+ await store.setEndpointDefinition(id, updated);
348
+ if (typeof entity.initializeAiLayer === "function") {
349
+ await entity.initializeAiLayer(entity._entityDataDir);
350
+ }
351
+ const fn = entity.localFunctionalities.get(id) || entity.remoteFunctionalities.get(id);
352
+ if (!fn) {
353
+ throw new Error(`Endpoint ${id} not found.`);
354
+ }
355
+ const mem = await store.getEndpointMemory(id);
356
+ return buildEndpointDefinition(fn, entity, updated, mem);
357
+ };
358
+ }
359
+ function getTelemetryLogApi(entity) {
360
+ return async ({ limit } = {}) => {
361
+ const store = entity._aiProfilesStore;
362
+ if (!store) return [];
363
+ return await store.getTelemetryLog(limit);
364
+ };
365
+ }
366
+ function getAikoCatalogApi(entity) {
367
+ return async () => {
368
+ if (!entity._aikoClient) {
369
+ throw new Error("Aiko client not initialized.");
370
+ }
371
+ try {
372
+ entity._aikoCatalog = await entity._aikoClient.fetchCatalog();
373
+ return { status: "success", catalog: entity._aikoCatalog };
374
+ } catch (e) {
375
+ return { status: "error", message: `Failed to fetch catalog: ${e.message}`, catalog: entity._aikoCatalog };
376
+ }
377
+ };
378
+ }
379
+ function aiOrchestrationApi(entity) {
380
+ return async ({ message }) => {
381
+ if (!entity._aiOrchestrator) {
382
+ const { KrnlAikoClient } = await import("./K_LIB_Krnl_Aiko_Client-OPZAVZCW.js");
383
+ throw new Error(KrnlAikoClient.getNotRunningMessage());
384
+ }
385
+ try {
386
+ await entity._aiOrchestrator.orchestrate(message);
387
+ return { status: "pipeline-started", info: entity._aiOrchestrator.taskRunner.getStatus() };
388
+ } catch (e) {
389
+ return { status: "error", message: e.message };
390
+ }
391
+ };
392
+ }
393
+ function getTaskListApi(entity) {
394
+ return () => {
395
+ if (!entity._aiOrchestrator) {
396
+ return { status: "inactive", tasks: [], cursor: 0 };
397
+ }
398
+ return entity._aiOrchestrator.taskRunner.getStatus();
399
+ };
400
+ }
401
+
402
+ export {
403
+ heartbeatApi,
404
+ telemetryApi,
405
+ adminCommandApi,
406
+ discoverPeersApi,
407
+ getManifestApi,
408
+ getLastActionDocsApi,
409
+ getFullDocumentationApi,
410
+ systemCommandsCollectorHandler,
411
+ getUsedPortsApi,
412
+ findFreePortsApi,
413
+ shutdownApi,
414
+ getSiblingNetworkTopologyApi,
415
+ getSubAppTopologyApi,
416
+ getIngressNetworkTopologyApi,
417
+ registerAppApi,
418
+ deregisterAppApi,
419
+ heartbeatAppApi,
420
+ lookupAppApi,
421
+ listAppsApi,
422
+ buildEndpointDefinition,
423
+ getEndpointDefinitionsApi,
424
+ setEndpointDefinitionApi,
425
+ getTelemetryLogApi,
426
+ getAikoCatalogApi,
427
+ aiOrchestrationApi,
428
+ getTaskListApi
429
+ };
@@ -0,0 +1,82 @@
1
+ import {
2
+ subappLocalStorage
3
+ } from "./chunk-KCBP7ZYA.js";
4
+
5
+ // src/core/K_LIB_Krnl_SubApp_Registry.ts
6
+ import path from "path";
7
+ import { pathToFileURL } from "url";
8
+ var KrnlSubAppLoader = class {
9
+ /**
10
+ * Loads a single sub-app into the parent entity's _subAppRegistry.
11
+ *
12
+ * For 'local' mode the sub-app class is instantiated directly in the parent process.
13
+ * Networking is suppressed automatically because the entity is constructed inside the
14
+ * subappLocalStorage async context (sets _isSubApp = true) and _startSharedServer()
15
+ * returns early for sub-app entities.
16
+ *
17
+ * For 'worker' mode a worker_thread is spawned and a KrnlSubAppWorkerHost proxy is
18
+ * registered in its place. All calls transit via MessagePort — no TCP/HTTP involved.
19
+ */
20
+ static async load(parent, config) {
21
+ const mode = config.executionMode ?? "local";
22
+ const prefix = config.prefix.toLowerCase();
23
+ if (parent._subAppRegistry.has(prefix)) {
24
+ console.log(`[SubAppRegistry] Sub-app '${prefix}' already registered. Skipping.`);
25
+ return;
26
+ }
27
+ let entry;
28
+ if (mode === "local") {
29
+ const appDir = config.entryPath ? path.dirname(config.entryPath) : "";
30
+ let entity;
31
+ if (config.isKrnl === false || !config.ServiceClass) {
32
+ const { KrnlNonKrnlAppAdapter } = await import("./K_LIB_Krnl_System_App_Adapter-A366YHF2.js");
33
+ const adapter = new KrnlNonKrnlAppAdapter(config.prefix, config.entryPath || "");
34
+ await adapter.startApp();
35
+ entity = adapter;
36
+ } else {
37
+ const options = { host: "0.0.0.0" };
38
+ if (config.entryPath) options.sourcePath = pathToFileURL(config.entryPath).href;
39
+ entity = await subappLocalStorage.run({ appPath: appDir }, async () => {
40
+ const inst = new config.ServiceClass(-1, options, ...config.constructorArgs ?? []);
41
+ if (typeof inst.boot === "function") {
42
+ try {
43
+ await inst.boot();
44
+ } catch (bootErr) {
45
+ console.warn(`[SubAppRegistry] Auto-boot warning on sub-app '${prefix}':`, bootErr.message || bootErr);
46
+ }
47
+ }
48
+ if (inst._magneticLoadPromise) {
49
+ await inst._magneticLoadPromise;
50
+ }
51
+ return inst;
52
+ });
53
+ }
54
+ if (typeof entity._resolveReady === "function") {
55
+ entity._resolveReady();
56
+ }
57
+ parent.hierarchyManager.addComponentEntityInstance(entity);
58
+ entry = {
59
+ prefix,
60
+ executionMode: "local",
61
+ entity,
62
+ addedAt: Date.now()
63
+ };
64
+ console.log(`[SubAppRegistry] Loaded sub-app '${prefix}' in LOCAL mode (in-process).`);
65
+ } else {
66
+ const { KrnlSubAppWorkerHost } = await import("./K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7.js");
67
+ const host = await KrnlSubAppWorkerHost.create(config);
68
+ entry = {
69
+ prefix,
70
+ executionMode: "worker",
71
+ entity: host,
72
+ addedAt: Date.now()
73
+ };
74
+ console.log(`[SubAppRegistry] Loaded sub-app '${prefix}' in WORKER mode (isolated thread).`);
75
+ }
76
+ parent._subAppRegistry.set(prefix, entry);
77
+ }
78
+ };
79
+
80
+ export {
81
+ KrnlSubAppLoader
82
+ };