@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.
- package/README.md +95 -2
- package/package.json +75 -4
- package/packages/cli/dist/K_ENT_Entity-PQ5MURQY-ZG6FZXXX.js +13 -0
- package/packages/cli/dist/K_LIB_Krnl_Aiko_Client-OPZAVZCW-K4CRQYA5.js +8 -0
- package/packages/cli/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF-LNPXZYOE.js +110 -0
- package/packages/cli/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF-3ALZPNX4.js +11 -0
- package/packages/cli/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X-PJTICYSW.js +11 -0
- package/packages/cli/dist/K_LIB_Krnl_Registry_Client-NXV6D2QW-M5TYU55O.js +8 -0
- package/packages/cli/dist/K_LIB_Krnl_SubApp_Engine-7HR5HWW2-H6STOXRK.js +20 -0
- package/packages/cli/dist/K_LIB_Krnl_SubApp_Registry-7XYGDKJK-XPJXSF7D.js +19 -0
- package/packages/cli/dist/K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7-CUYGTWOW.js +7 -0
- package/packages/cli/dist/K_LIB_Krnl_System_App_Adapter-M6FJKLGU-VR6T4N6J.js +17 -0
- package/packages/cli/dist/K_LIB_Krnl_System_Base_Functionality_APIs-ZZUZ6ZG5-RLJ4QWDP.js +58 -0
- package/packages/cli/dist/K_LIB_Krnl_System_Magnetic_Loader-XBQO2KXF-BOQGUASC.js +22 -0
- package/packages/cli/dist/K_LIB_Krnl_System_Unified_Http_Adapter-RCEGP3OG-XJI7KIT5.js +8 -0
- package/packages/cli/dist/K_LIB_Krnl_Telemetry-77FRZ3KV-K5VCWAFW.js +9 -0
- package/packages/cli/dist/bin/krnl.cjs +9758 -0
- package/packages/cli/dist/bin/krnl.d.cts +1 -0
- package/packages/cli/dist/bin/krnl.d.ts +1 -0
- package/packages/cli/dist/bin/krnl.js +2006 -0
- package/packages/cli/dist/chunk-3TRM6CYL.js +152 -0
- package/packages/cli/dist/chunk-5JDK35TG.js +3872 -0
- package/packages/cli/dist/chunk-63PTK33I.js +997 -0
- package/packages/cli/dist/chunk-6NIKAMUZ.js +82 -0
- package/packages/cli/dist/chunk-BOXWWXQG.js +400 -0
- package/packages/cli/dist/chunk-EEKLK7QJ.js +565 -0
- package/packages/cli/dist/chunk-EG7T2IAD.js +107 -0
- package/packages/cli/dist/chunk-F5EHXE2O.js +1036 -0
- package/packages/cli/dist/chunk-F65ANSQG.js +269 -0
- package/packages/cli/dist/chunk-FDNCADFE.js +71 -0
- package/packages/cli/dist/chunk-GDLRMDAN.js +127 -0
- package/packages/cli/dist/chunk-HWMTCMOS.js +656 -0
- package/packages/cli/dist/chunk-I74QIQOD.js +5536 -0
- package/packages/cli/dist/chunk-JTLSTO25.js +71 -0
- package/packages/cli/dist/chunk-JULBBJ27.js +1033 -0
- package/packages/cli/dist/chunk-OHVMVRBP.js +117 -0
- package/packages/cli/dist/chunk-P2PCLEKX.js +666 -0
- package/packages/cli/dist/chunk-PJQIUOX2.js +7767 -0
- package/packages/cli/dist/chunk-PPOF3DJW.js +471 -0
- package/packages/cli/dist/chunk-Q45257P6.js +173 -0
- package/packages/cli/dist/chunk-QNROWGBI.js +1036 -0
- package/packages/cli/dist/chunk-RJNYUXZD.js +977 -0
- package/packages/cli/dist/chunk-SRTOPJ5W.js +104 -0
- package/packages/cli/dist/chunk-TCEX3MPS.js +702 -0
- package/packages/cli/dist/chunk-TNOAJO2J.js +675 -0
- package/packages/cli/dist/chunk-UR2SUCSF.js +701 -0
- package/packages/cli/dist/chunk-X5LOIFM7.js +68 -0
- package/packages/cli/dist/chunk-XIRFOO3H.js +589 -0
- package/packages/cli/dist/chunk-ZAAV3JXQ.js +809 -0
- package/packages/cli/dist/index.cjs +7798 -0
- package/packages/cli/dist/index.d.cts +7 -0
- package/packages/cli/dist/index.d.ts +7 -0
- package/packages/cli/dist/index.js +29 -0
- package/packages/cli/package.json +34 -0
- package/packages/core/dist/K_ENT_Entity-4MB7CU4A.js +12 -0
- package/packages/core/dist/K_ENT_Entity-DEJGIDGH.js +12 -0
- package/packages/core/dist/K_ENT_Entity-FXZO5UZ2.js +12 -0
- package/packages/core/dist/K_ENT_Entity-HDSCXC5F.js +12 -0
- package/packages/core/dist/K_ENT_Entity-JILABHLW.js +12 -0
- package/packages/core/dist/K_ENT_Entity-PQ5MURQY.js +13 -0
- package/packages/core/dist/K_ENT_Entity-ROAKDIHW.js +12 -0
- package/packages/core/dist/K_ENT_Entity-TBVFSKDV.js +12 -0
- package/packages/core/dist/K_ENT_Entity-ZFLKG3JO.js +12 -0
- package/packages/core/dist/K_LIB_Krnl_Aiko_Client-OPZAVZCW.js +8 -0
- package/packages/core/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF.js +110 -0
- package/packages/core/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF.js +9 -0
- package/packages/core/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X.js +9 -0
- package/packages/core/dist/K_LIB_Krnl_Registry_Client-NXV6D2QW.js +8 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Engine-7HR5HWW2.js +20 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-4C6GBQAG.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-6V23A6F6.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-7XYGDKJK.js +19 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-DYLLC5G2.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-F4FOFAUP.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-FBOXXMI3.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-Q73BWLNP.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-QM2C4MVA.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-QUGI6SMP.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-RGMTBHNP.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Registry-RWR7UNDW.js +18 -0
- package/packages/core/dist/K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7.js +7 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-32MFJJ5Z.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-4J4CEWRY.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-A366YHF2.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-LK4LYJHI.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-M6FJKLGU.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-NW3K63II.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-QDHTI5ZV.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-VHCT6VIW.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-WBRKF24R.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-XKYQYT6Q.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_App_Adapter-Z2PWZYDZ.js +17 -0
- package/packages/core/dist/K_LIB_Krnl_System_Base_Functionality_APIs-ZZUZ6ZG5.js +58 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-2EZU7QF4.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-6G3AQNAV.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-B2NZMQUG.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-C2RABMZP.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-HHE3NZ4F.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-LHFGR6WK.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-M74BLM3N.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-PT6ZA6EA.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-SP52V3CX.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-XBQO2KXF.js +22 -0
- package/packages/core/dist/K_LIB_Krnl_System_Magnetic_Loader-YNSEUHJJ.js +21 -0
- package/packages/core/dist/K_LIB_Krnl_System_Unified_Http_Adapter-M6SBHIVA.js +8 -0
- package/packages/core/dist/K_LIB_Krnl_System_Unified_Http_Adapter-RCEGP3OG.js +8 -0
- package/packages/core/dist/K_LIB_Krnl_Telemetry-77FRZ3KV.js +9 -0
- package/packages/core/dist/chunk-33L2J7V7.js +82 -0
- package/packages/core/dist/chunk-3ES4K2ZP.js +817 -0
- package/packages/core/dist/chunk-3SMHVVLL.js +82 -0
- package/packages/core/dist/chunk-3UEZ7JQA.js +4877 -0
- package/packages/core/dist/chunk-3XIE6KBD.js +4877 -0
- package/packages/core/dist/chunk-46ZLCML6.js +107 -0
- package/packages/core/dist/chunk-4UEL3DWJ.js +107 -0
- package/packages/core/dist/chunk-54GWZ5PC.js +82 -0
- package/packages/core/dist/chunk-6QCYRS5L.js +127 -0
- package/packages/core/dist/chunk-6ULMHNXR.js +104 -0
- package/packages/core/dist/chunk-7WUETJEV.js +117 -0
- package/packages/core/dist/chunk-A5KRAYDB.js +107 -0
- package/packages/core/dist/chunk-ANEAZ3PO.js +107 -0
- package/packages/core/dist/chunk-BE76RL6F.js +82 -0
- package/packages/core/dist/chunk-CIARVYDO.js +107 -0
- package/packages/core/dist/chunk-CR2ANE62.js +107 -0
- package/packages/core/dist/chunk-DI27MOR7.js +173 -0
- package/packages/core/dist/chunk-E6RLFHM5.js +596 -0
- package/packages/core/dist/chunk-EELAPMNV.js +4877 -0
- package/packages/core/dist/chunk-ENZ2RQVJ.js +107 -0
- package/packages/core/dist/chunk-F2U6CX4F.js +4877 -0
- package/packages/core/dist/chunk-FKG64OHL.js +82 -0
- package/packages/core/dist/chunk-FYAZJYM5.js +772 -0
- package/packages/core/dist/chunk-G4NP4RDQ.js +82 -0
- package/packages/core/dist/chunk-GADIRLRS.js +473 -0
- package/packages/core/dist/chunk-GR6CSLQJ.js +772 -0
- package/packages/core/dist/chunk-HDS7AT6O.js +772 -0
- package/packages/core/dist/chunk-HIMEZUU2.js +71 -0
- package/packages/core/dist/chunk-IB4UHG5I.js +596 -0
- package/packages/core/dist/chunk-J7ZYNVRS.js +772 -0
- package/packages/core/dist/chunk-JVLZU4K7.js +604 -0
- package/packages/core/dist/chunk-JYXXI7Q3.js +82 -0
- package/packages/core/dist/chunk-K54K2KZW.js +192 -0
- package/packages/core/dist/chunk-K6VHLBNH.js +3316 -0
- package/packages/core/dist/chunk-KCBP7ZYA.js +596 -0
- package/packages/core/dist/chunk-KFQGP6VL.js +33 -0
- package/packages/core/dist/chunk-KIUEUI7K.js +82 -0
- package/packages/core/dist/chunk-LB67NIZP.js +949 -0
- package/packages/core/dist/chunk-LDTYFUNW.js +596 -0
- package/packages/core/dist/chunk-MLVWARD4.js +596 -0
- package/packages/core/dist/chunk-MPYVXHKO.js +2777 -0
- package/packages/core/dist/chunk-MRQ3MITU.js +772 -0
- package/packages/core/dist/chunk-MVUN7I7O.js +107 -0
- package/packages/core/dist/chunk-NDDOIRW7.js +596 -0
- package/packages/core/dist/chunk-O3KDB5MH.js +3330 -0
- package/packages/core/dist/chunk-OEINUDSE.js +400 -0
- package/packages/core/dist/chunk-OPDENPT4.js +4877 -0
- package/packages/core/dist/chunk-P6XEM2LA.js +429 -0
- package/packages/core/dist/chunk-QKMRSQV4.js +82 -0
- package/packages/core/dist/chunk-R6CCWALL.js +4877 -0
- package/packages/core/dist/chunk-RAMMOO73.js +774 -0
- package/packages/core/dist/chunk-S3FTZFG6.js +772 -0
- package/packages/core/dist/chunk-T2ZVN434.js +4877 -0
- package/packages/core/dist/chunk-TFHLDMIA.js +107 -0
- package/packages/core/dist/chunk-TI3QUCIJ.js +107 -0
- package/packages/core/dist/chunk-TR2BAIGI.js +107 -0
- package/packages/core/dist/chunk-UGVVJKC6.js +4877 -0
- package/packages/core/dist/chunk-V2DX7YIU.js +984 -0
- package/packages/core/dist/chunk-W4IHYUYD.js +772 -0
- package/packages/core/dist/chunk-W6WBG5OY.js +4877 -0
- package/packages/core/dist/chunk-WN3M7O7H.js +3312 -0
- package/packages/core/dist/chunk-WR3NCU7U.js +4877 -0
- package/packages/core/dist/chunk-XC6B6L27.js +82 -0
- package/packages/core/dist/chunk-XNSE64ZY.js +3316 -0
- package/packages/core/dist/chunk-XROES2WN.js +634 -0
- package/packages/core/dist/chunk-XSCKNRCZ.js +5020 -0
- package/packages/core/dist/chunk-XVABPAUZ.js +82 -0
- package/packages/core/dist/chunk-YOBCB5C5.js +596 -0
- package/packages/core/dist/chunk-YUK6Q563.js +666 -0
- package/packages/core/dist/chunk-YXGL3ZEU.js +1030 -0
- package/packages/core/dist/chunk-ZINJ5OUX.js +596 -0
- package/packages/core/dist/chunk-ZPFD4BIQ.js +604 -0
- package/packages/core/dist/chunk-ZQZBFG6F.js +4826 -0
- package/packages/core/dist/chunk-ZZFRJGXM.js +4877 -0
- package/packages/core/dist/index.cjs +760 -0
- package/packages/core/dist/index.d.cts +360 -0
- package/packages/core/dist/index.d.ts +360 -0
- package/packages/core/dist/index.js +707 -0
- package/packages/core/package.json +34 -0
- package/packages/create-krnl/dist/K_ENT_Entity-PQ5MURQY-R2OH4VXE.js +14 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_Aiko_Client-OPZAVZCW-AZM5HF4M.js +9 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF-X5N6SV2S.js +111 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF-5PFHF4JU.js +12 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X-ED33OQPH.js +12 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_Registry_Client-NXV6D2QW-YGQLVR4P.js +9 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_SubApp_Engine-7HR5HWW2-VM7CTU2L.js +21 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_SubApp_Registry-7XYGDKJK-Y2GQFJ7I.js +21 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_SubApp_Worker_Host-CQVTGGG7-L3JQWO54.js +8 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_System_App_Adapter-M6FJKLGU-KQARASPR.js +19 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_System_Base_Functionality_APIs-ZZUZ6ZG5-OF3IGLVL.js +59 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_System_Magnetic_Loader-XBQO2KXF-JOLHKOEX.js +24 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_System_Unified_Http_Adapter-RCEGP3OG-L46LSHKQ.js +10 -0
- package/packages/create-krnl/dist/K_LIB_Krnl_Telemetry-77FRZ3KV-4JUPRR3X.js +10 -0
- package/packages/create-krnl/dist/chunk-3TRM6CYL.js +152 -0
- package/packages/create-krnl/dist/chunk-3URCB3QS.js +127 -0
- package/packages/create-krnl/dist/chunk-5JDK35TG.js +3872 -0
- package/packages/create-krnl/dist/chunk-A2XAXDOW.js +812 -0
- package/packages/create-krnl/dist/chunk-AN6TMQHG.js +1033 -0
- package/packages/create-krnl/dist/chunk-BOXWWXQG.js +400 -0
- package/packages/create-krnl/dist/chunk-BPTBREBG.js +38 -0
- package/packages/create-krnl/dist/chunk-FDNCADFE.js +71 -0
- package/packages/create-krnl/dist/chunk-JTLSTO25.js +71 -0
- package/packages/create-krnl/dist/chunk-M3NCUIPL.js +107 -0
- package/packages/create-krnl/dist/chunk-N2EONSOC.js +7769 -0
- package/packages/create-krnl/dist/chunk-OHVMVRBP.js +117 -0
- package/packages/create-krnl/dist/chunk-Q45257P6.js +173 -0
- package/packages/create-krnl/dist/chunk-QGM4M3NI.js +37 -0
- package/packages/create-krnl/dist/chunk-RJNYUXZD.js +977 -0
- package/packages/create-krnl/dist/chunk-SRTOPJ5W.js +104 -0
- package/packages/create-krnl/dist/chunk-UPBIGEC3.js +666 -0
- package/packages/create-krnl/dist/chunk-V2DB7UD7.js +82 -0
- package/packages/create-krnl/dist/chunk-WMHLIUI6.js +3644 -0
- package/packages/create-krnl/dist/chunk-XIRFOO3H.js +589 -0
- package/packages/create-krnl/dist/chunk-Y2CEEVZP.js +5536 -0
- package/packages/create-krnl/dist/index.cjs +395 -0
- package/packages/create-krnl/dist/index.js +372 -0
- package/packages/create-krnl/dist/main-DXUMPBND.js +2217 -0
- package/packages/create-krnl/dist/wrapper-SDF2VKX3.js +31 -0
- package/packages/create-krnl/package.json +23 -0
- package/packages/eslint-plugin/dist/index.cjs +439 -0
- package/packages/eslint-plugin/dist/index.d.cts +336 -0
- package/packages/eslint-plugin/dist/index.d.ts +336 -0
- package/packages/eslint-plugin/dist/index.js +416 -0
- package/packages/eslint-plugin/package.json +24 -0
- package/packages/validate/dist/index.cjs +499 -0
- package/packages/validate/dist/index.d.cts +49 -0
- package/packages/validate/dist/index.d.ts +49 -0
- package/packages/validate/dist/index.js +462 -0
- package/packages/validate/package.json +27 -0
package/README.md
CHANGED
|
@@ -1,3 +1,96 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Krnl Framework
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **Krnl**: Backend Service Framework for Skipo — a modular TypeScript framework for authoring, composing, executing, and validating backend services, facades, protocols, and workflows.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 🚀 Overview
|
|
8
|
+
|
|
9
|
+
In the **Skipo** ecosystem, services are the foundational backend modules. **Krnl** provides the kernel architecture, lifecycle hooks, transport gateways, protocol decoders, and validation engine for building robust, decoupled backend services.
|
|
10
|
+
|
|
11
|
+
- **Modular Service Architecture**: Define pure, stateful, and protocol-enabled backend service facades.
|
|
12
|
+
- **Workflow & Flow Execution**: Compose multi-service pipelines and background execution boundaries.
|
|
13
|
+
- **AST Purity & Validation**: Enforce 4-layer function purity, contract standards, and architecture rules via `ts-morph`.
|
|
14
|
+
- **Protocol & Network Ingress**: Support REST, WebSocket, RPC, and MCP protocol bindings out of the box.
|
|
15
|
+
- **Universal Backend Readiness**: Run seamlessly across Local FS, Local-Hosted, and Serverless environments.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 🚀 Quickstart: Starting a Fresh Workspace
|
|
20
|
+
|
|
21
|
+
### 1. Scaffold a New Project
|
|
22
|
+
Run the official interactive project generator:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Using npm
|
|
26
|
+
npm create krnl my-service-app
|
|
27
|
+
|
|
28
|
+
# Using npx
|
|
29
|
+
npx create-krnl my-service-app
|
|
30
|
+
|
|
31
|
+
# Using pnpm
|
|
32
|
+
pnpm dlx create-krnl my-service-app
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
This generates a fully configured Krnl backend workspace:
|
|
36
|
+
- `krnl.json` (Workspace manifest & provider bindings)
|
|
37
|
+
- `package.json` & `tsconfig.json`
|
|
38
|
+
- `src/services/` (Backend service definitions & facades)
|
|
39
|
+
- `src/libraries/` (Layer 0 pure concept libraries)
|
|
40
|
+
- `docs/HISTORY.md` (Project intent & architectural memory)
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
### 2. Run and Validate Services
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
cd my-service-app
|
|
48
|
+
|
|
49
|
+
# Start Krnl service dev server
|
|
50
|
+
krnl dev
|
|
51
|
+
|
|
52
|
+
# Run deep AST 4-layer service purity validation
|
|
53
|
+
krnl validate
|
|
54
|
+
|
|
55
|
+
# Build production bundle
|
|
56
|
+
krnl build
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
### 3. CLI Commands Reference
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Start Krnl service dev server & boot service entrypoint
|
|
65
|
+
krnl dev
|
|
66
|
+
|
|
67
|
+
# Run deep AST 4-layer function purity audit
|
|
68
|
+
krnl validate
|
|
69
|
+
|
|
70
|
+
# Validate and build production bundle into dist/
|
|
71
|
+
krnl build
|
|
72
|
+
|
|
73
|
+
# Generate ambient TypeScript declarations for auto-discovery
|
|
74
|
+
krnl watch
|
|
75
|
+
|
|
76
|
+
# Scaffold architectural primitives via CLI
|
|
77
|
+
krnl generate entity UserSystem
|
|
78
|
+
krnl generate functionality UserSystem CreateProfile
|
|
79
|
+
krnl generate library BillingConcepts
|
|
80
|
+
krnl generate subapp OrderEngine
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 🏛️ Monorepo Framework Packages
|
|
86
|
+
|
|
87
|
+
- **[`@ultrst-armada/krnl`](packages/core)**: Core runtime engine, Service facades, Protocols, Transports, Registry, Lifecycle, and Execution flows.
|
|
88
|
+
- **[`@dinilmusick/krnl-validate`](packages/validate)**: `ts-morph` AST engine enforcing 4-layer function purity, backend contracts, and line limits.
|
|
89
|
+
- **[`@dinilmusick/eslint-plugin-krnl`](packages/eslint-plugin)**: ESLint rules with auto-fixers for Krnl backend service standards.
|
|
90
|
+
- **[`@dinilmusick/krnl-cli`](packages/cli)**: Unified `krnl` binary for running, building, and validating backend services.
|
|
91
|
+
- **[`create-krnl`](packages/create-krnl)**: Interactive project scaffolder for Krnl backend service modules.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 📜 License
|
|
96
|
+
MIT © Dinil Palackal
|
package/package.json
CHANGED
|
@@ -1,6 +1,77 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultrst-armada/krnl",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"description": "
|
|
6
|
-
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Krnl: Backend Service Framework for Skipo — authoring, executing, and validating modular backend services, facades, and workflows",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./packages/core/dist/index.js",
|
|
8
|
+
"module": "./packages/core/dist/index.js",
|
|
9
|
+
"types": "./packages/core/dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"packages/*/dist/**",
|
|
12
|
+
"packages/*/package.json"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"types": "./packages/core/dist/index.d.ts",
|
|
17
|
+
"import": "./packages/core/dist/index.js",
|
|
18
|
+
"require": "./packages/core/dist/index.cjs",
|
|
19
|
+
"default": "./packages/core/dist/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./validate": {
|
|
22
|
+
"types": "./packages/validate/dist/index.d.ts",
|
|
23
|
+
"import": "./packages/validate/dist/index.js",
|
|
24
|
+
"require": "./packages/validate/dist/index.cjs",
|
|
25
|
+
"default": "./packages/validate/dist/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./cli": {
|
|
28
|
+
"types": "./packages/cli/dist/index.d.ts",
|
|
29
|
+
"import": "./packages/cli/dist/index.js",
|
|
30
|
+
"require": "./packages/cli/dist/index.cjs",
|
|
31
|
+
"default": "./packages/cli/dist/index.js"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"bin": {
|
|
35
|
+
"krnl": "./packages/cli/dist/bin/krnl.js",
|
|
36
|
+
"krnlts-watch": "./packages/cli/dist/bin/krnl.js",
|
|
37
|
+
"krnlts-validate": "./packages/cli/dist/bin/krnl.js"
|
|
38
|
+
},
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public",
|
|
41
|
+
"registry": "https://registry.npmjs.org/"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "pnpm --filter @dinilmusick/krnl-core run build",
|
|
45
|
+
"test": "vitest run",
|
|
46
|
+
"validate": "node packages/cli/dist/bin/krnl.js validate",
|
|
47
|
+
"dev": "node packages/cli/dist/bin/krnl.js dev",
|
|
48
|
+
"watch": "node packages/cli/dist/bin/krnl.js watch"
|
|
49
|
+
},
|
|
50
|
+
"keywords": [
|
|
51
|
+
"krnl",
|
|
52
|
+
"skipo",
|
|
53
|
+
"service-framework",
|
|
54
|
+
"backend",
|
|
55
|
+
"backend-modules",
|
|
56
|
+
"services",
|
|
57
|
+
"service-facades",
|
|
58
|
+
"protocols",
|
|
59
|
+
"workflows",
|
|
60
|
+
"ast-purity"
|
|
61
|
+
],
|
|
62
|
+
"author": "Dinil Palackal",
|
|
63
|
+
"license": "MIT",
|
|
64
|
+
"devDependencies": {
|
|
65
|
+
"@types/better-sqlite3": "^9.6.0",
|
|
66
|
+
"@types/node": "^25.6.0",
|
|
67
|
+
"better-sqlite3": "^13.0.3",
|
|
68
|
+
"protobufjs": "^8.7.1",
|
|
69
|
+
"tsup": "^8.4.0",
|
|
70
|
+
"turbo": "^2.4.4",
|
|
71
|
+
"typescript": "^5.7.3",
|
|
72
|
+
"vitest": "^3.1.0",
|
|
73
|
+
"ws": "^8.20.0",
|
|
74
|
+
"zod": "3.24.1",
|
|
75
|
+
"zod-to-json-schema": "3.24.1"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Entity
|
|
3
|
+
} from "./chunk-RJNYUXZD.js";
|
|
4
|
+
import "./chunk-BOXWWXQG.js";
|
|
5
|
+
import "./chunk-FDNCADFE.js";
|
|
6
|
+
import "./chunk-5JDK35TG.js";
|
|
7
|
+
import "./chunk-Q45257P6.js";
|
|
8
|
+
import "./chunk-XIRFOO3H.js";
|
|
9
|
+
import "./chunk-JTLSTO25.js";
|
|
10
|
+
import "./chunk-X5LOIFM7.js";
|
|
11
|
+
export {
|
|
12
|
+
Entity
|
|
13
|
+
};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import "./chunk-X5LOIFM7.js";
|
|
2
|
+
|
|
3
|
+
// ../core/dist/K_LIB_Krnl_Ep_Tools-ROOE2TQF.js
|
|
4
|
+
var KrnlEpTools = {
|
|
5
|
+
calculator: {
|
|
6
|
+
id: "calculator",
|
|
7
|
+
description: "eval arith-expr(str) \u2192 num. use-when: derive numeric val from schema fields.",
|
|
8
|
+
schema: {
|
|
9
|
+
input: { expression: "str: arith expr. ops: +,-,*,/,(). e.g. '(a+b)*c'" },
|
|
10
|
+
output: "num"
|
|
11
|
+
},
|
|
12
|
+
examples: [
|
|
13
|
+
{ input: { expression: "10 + 5 * 2" }, output: 20 },
|
|
14
|
+
{ input: { expression: "(100-30)/7" }, output: 10 }
|
|
15
|
+
],
|
|
16
|
+
execute: (expression) => {
|
|
17
|
+
const sanitized = expression.replace(/[^0-9+\-*/().\s]/g, "");
|
|
18
|
+
try {
|
|
19
|
+
const result = new Function(`return (${sanitized});`)();
|
|
20
|
+
if (typeof result === "number") return result;
|
|
21
|
+
throw new Error("Result is not a number");
|
|
22
|
+
} catch (e) {
|
|
23
|
+
throw new Error(`Math evaluation failed: ${e.message}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
jsonCreator: {
|
|
28
|
+
id: "jsonCreator",
|
|
29
|
+
description: "parse(jsonStr) \u2192 obj | merge(obj,base) \u2192 merged. use-when: validate/build payload.",
|
|
30
|
+
schema: {
|
|
31
|
+
input: { jsonStr: "str: valid JSON", mergeWith: "obj? base to merge into" },
|
|
32
|
+
output: "obj"
|
|
33
|
+
},
|
|
34
|
+
examples: [
|
|
35
|
+
{ input: { jsonStr: '{"a":1}' }, output: { a: 1 } },
|
|
36
|
+
{ input: { jsonStr: '{"b":2}', mergeWith: { a: 1 } }, output: { a: 1, b: 2 } }
|
|
37
|
+
],
|
|
38
|
+
execute: (jsonStr, mergeWith) => {
|
|
39
|
+
try {
|
|
40
|
+
const parsed = JSON.parse(jsonStr);
|
|
41
|
+
if (mergeWith && typeof mergeWith === "object") {
|
|
42
|
+
return { ...mergeWith, ...parsed };
|
|
43
|
+
}
|
|
44
|
+
return parsed;
|
|
45
|
+
} catch (e) {
|
|
46
|
+
throw new Error(`JSON validation/parsing failed: ${e.message}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
textFormatter: {
|
|
51
|
+
id: "textFormatter",
|
|
52
|
+
description: "render(template,vars) \u2192 str. use-when: replace placeholders in templates.",
|
|
53
|
+
schema: {
|
|
54
|
+
input: { template: "str w/ {{key}} placeholders", variables: "obj mapping keys \u2192 values" },
|
|
55
|
+
output: "str"
|
|
56
|
+
},
|
|
57
|
+
examples: [
|
|
58
|
+
{ input: { template: "hello {{name}}", variables: { name: "alice" } }, output: "hello alice" }
|
|
59
|
+
],
|
|
60
|
+
execute: (template, variables) => {
|
|
61
|
+
let result = template;
|
|
62
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
63
|
+
result = result.replace(new RegExp(`{{\\s*${key}\\s*}}`, "g"), String(value));
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
endpointCaller: {
|
|
69
|
+
id: "endpointCaller",
|
|
70
|
+
description: "call(endpointId,payload) \u2192 res. use-when: invoke sibling endpoint in same system.",
|
|
71
|
+
schema: {
|
|
72
|
+
input: { endpointId: "str: target endpoint", payload: "obj: input matching target schema" },
|
|
73
|
+
output: "any"
|
|
74
|
+
},
|
|
75
|
+
examples: [
|
|
76
|
+
{ input: { endpointId: "StoreKey", payload: { name: "test", value: "val" } }, output: { status: "success" } }
|
|
77
|
+
],
|
|
78
|
+
execute: async (system, endpointId, payload) => {
|
|
79
|
+
if (!system || typeof system.call !== "function") {
|
|
80
|
+
throw new Error("System host entity not available or invalid.");
|
|
81
|
+
}
|
|
82
|
+
return await system.call(endpointId, payload, { unwrap: true });
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
healthChecker: {
|
|
86
|
+
id: "healthChecker",
|
|
87
|
+
description: "ping(peerId) \u2192 status. use-when: verify component/sibling system is alive.",
|
|
88
|
+
schema: {
|
|
89
|
+
input: { peerId: "str: peer system identifier" },
|
|
90
|
+
output: "obj"
|
|
91
|
+
},
|
|
92
|
+
examples: [
|
|
93
|
+
{ input: { peerId: "Aiko" }, output: { status: "alive" } }
|
|
94
|
+
],
|
|
95
|
+
execute: async (system, peerId) => {
|
|
96
|
+
if (!system) throw new Error("System host entity not available.");
|
|
97
|
+
const peer = system.getRemoteEntity ? system.getRemoteEntity(peerId) : null;
|
|
98
|
+
if (peer) {
|
|
99
|
+
return await peer.call("heartbeat", {});
|
|
100
|
+
}
|
|
101
|
+
if (system.localFunctionalities?.has("heartbeat")) {
|
|
102
|
+
return await system.call("heartbeat", {});
|
|
103
|
+
}
|
|
104
|
+
throw new Error(`Peer or heartbeat endpoint not found for: ${peerId}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
export {
|
|
109
|
+
KrnlEpTools
|
|
110
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KrnlFrontendBuilder,
|
|
3
|
+
init_K_LIB_Krnl_Frontend_Builder
|
|
4
|
+
} from "./chunk-GDLRMDAN.js";
|
|
5
|
+
import "./chunk-X5LOIFM7.js";
|
|
6
|
+
|
|
7
|
+
// ../core/dist/K_LIB_Krnl_Frontend_Builder-2ZDUH6PF.js
|
|
8
|
+
init_K_LIB_Krnl_Frontend_Builder();
|
|
9
|
+
export {
|
|
10
|
+
KrnlFrontendBuilder
|
|
11
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KrnlFrontendGenerator,
|
|
3
|
+
init_K_LIB_Krnl_Frontend_Generator
|
|
4
|
+
} from "./chunk-JULBBJ27.js";
|
|
5
|
+
import "./chunk-X5LOIFM7.js";
|
|
6
|
+
|
|
7
|
+
// ../core/dist/K_LIB_Krnl_Frontend_Generator-UYNRNX2X.js
|
|
8
|
+
init_K_LIB_Krnl_Frontend_Generator();
|
|
9
|
+
export {
|
|
10
|
+
KrnlFrontendGenerator
|
|
11
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DefaultEventRegistrar,
|
|
3
|
+
DefaultOperationRegistrar,
|
|
4
|
+
DefaultServiceContainer,
|
|
5
|
+
KrnlSubAppDiscovery,
|
|
6
|
+
KrnlSubAppLifecycle,
|
|
7
|
+
KrnlSubAppValidator,
|
|
8
|
+
createHttpsAppAdapter
|
|
9
|
+
} from "./chunk-BOXWWXQG.js";
|
|
10
|
+
import "./chunk-JTLSTO25.js";
|
|
11
|
+
import "./chunk-X5LOIFM7.js";
|
|
12
|
+
export {
|
|
13
|
+
DefaultEventRegistrar,
|
|
14
|
+
DefaultOperationRegistrar,
|
|
15
|
+
DefaultServiceContainer,
|
|
16
|
+
KrnlSubAppDiscovery,
|
|
17
|
+
KrnlSubAppLifecycle,
|
|
18
|
+
KrnlSubAppValidator,
|
|
19
|
+
createHttpsAppAdapter
|
|
20
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KrnlSubAppLoader
|
|
3
|
+
} from "./chunk-6NIKAMUZ.js";
|
|
4
|
+
import "./chunk-P2PCLEKX.js";
|
|
5
|
+
import "./chunk-FDNCADFE.js";
|
|
6
|
+
import "./chunk-PJQIUOX2.js";
|
|
7
|
+
import "./chunk-GDLRMDAN.js";
|
|
8
|
+
import "./chunk-I74QIQOD.js";
|
|
9
|
+
import "./chunk-ZAAV3JXQ.js";
|
|
10
|
+
import "./chunk-5JDK35TG.js";
|
|
11
|
+
import "./chunk-Q45257P6.js";
|
|
12
|
+
import "./chunk-3TRM6CYL.js";
|
|
13
|
+
import "./chunk-XIRFOO3H.js";
|
|
14
|
+
import "./chunk-JTLSTO25.js";
|
|
15
|
+
import "./chunk-JULBBJ27.js";
|
|
16
|
+
import "./chunk-X5LOIFM7.js";
|
|
17
|
+
export {
|
|
18
|
+
KrnlSubAppLoader
|
|
19
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KrnlNonKrnlAppAdapter
|
|
3
|
+
} from "./chunk-EG7T2IAD.js";
|
|
4
|
+
import "./chunk-PJQIUOX2.js";
|
|
5
|
+
import "./chunk-GDLRMDAN.js";
|
|
6
|
+
import "./chunk-I74QIQOD.js";
|
|
7
|
+
import "./chunk-ZAAV3JXQ.js";
|
|
8
|
+
import "./chunk-5JDK35TG.js";
|
|
9
|
+
import "./chunk-Q45257P6.js";
|
|
10
|
+
import "./chunk-3TRM6CYL.js";
|
|
11
|
+
import "./chunk-XIRFOO3H.js";
|
|
12
|
+
import "./chunk-JTLSTO25.js";
|
|
13
|
+
import "./chunk-JULBBJ27.js";
|
|
14
|
+
import "./chunk-X5LOIFM7.js";
|
|
15
|
+
export {
|
|
16
|
+
KrnlNonKrnlAppAdapter
|
|
17
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
adminCommandApi,
|
|
3
|
+
aiOrchestrationApi,
|
|
4
|
+
buildEndpointDefinition,
|
|
5
|
+
deregisterAppApi,
|
|
6
|
+
discoverPeersApi,
|
|
7
|
+
findFreePortsApi,
|
|
8
|
+
getAikoCatalogApi,
|
|
9
|
+
getEndpointDefinitionsApi,
|
|
10
|
+
getFullDocumentationApi,
|
|
11
|
+
getIngressNetworkTopologyApi,
|
|
12
|
+
getLastActionDocsApi,
|
|
13
|
+
getManifestApi,
|
|
14
|
+
getSiblingNetworkTopologyApi,
|
|
15
|
+
getSubAppTopologyApi,
|
|
16
|
+
getTaskListApi,
|
|
17
|
+
getTelemetryLogApi,
|
|
18
|
+
getUsedPortsApi,
|
|
19
|
+
heartbeatApi,
|
|
20
|
+
heartbeatAppApi,
|
|
21
|
+
listAppsApi,
|
|
22
|
+
lookupAppApi,
|
|
23
|
+
registerAppApi,
|
|
24
|
+
setEndpointDefinitionApi,
|
|
25
|
+
shutdownApi,
|
|
26
|
+
systemCommandsCollectorHandler,
|
|
27
|
+
telemetryApi
|
|
28
|
+
} from "./chunk-I74QIQOD.js";
|
|
29
|
+
import "./chunk-Q45257P6.js";
|
|
30
|
+
import "./chunk-X5LOIFM7.js";
|
|
31
|
+
export {
|
|
32
|
+
adminCommandApi,
|
|
33
|
+
aiOrchestrationApi,
|
|
34
|
+
buildEndpointDefinition,
|
|
35
|
+
deregisterAppApi,
|
|
36
|
+
discoverPeersApi,
|
|
37
|
+
findFreePortsApi,
|
|
38
|
+
getAikoCatalogApi,
|
|
39
|
+
getEndpointDefinitionsApi,
|
|
40
|
+
getFullDocumentationApi,
|
|
41
|
+
getIngressNetworkTopologyApi,
|
|
42
|
+
getLastActionDocsApi,
|
|
43
|
+
getManifestApi,
|
|
44
|
+
getSiblingNetworkTopologyApi,
|
|
45
|
+
getSubAppTopologyApi,
|
|
46
|
+
getTaskListApi,
|
|
47
|
+
getTelemetryLogApi,
|
|
48
|
+
getUsedPortsApi,
|
|
49
|
+
heartbeatApi,
|
|
50
|
+
heartbeatAppApi,
|
|
51
|
+
listAppsApi,
|
|
52
|
+
lookupAppApi,
|
|
53
|
+
registerAppApi,
|
|
54
|
+
setEndpointDefinitionApi,
|
|
55
|
+
shutdownApi,
|
|
56
|
+
systemCommandsCollectorHandler,
|
|
57
|
+
telemetryApi
|
|
58
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {
|
|
2
|
+
KrnlMagneticLoader,
|
|
3
|
+
magneticStorage,
|
|
4
|
+
subappLocalStorage
|
|
5
|
+
} from "./chunk-P2PCLEKX.js";
|
|
6
|
+
import "./chunk-FDNCADFE.js";
|
|
7
|
+
import "./chunk-PJQIUOX2.js";
|
|
8
|
+
import "./chunk-GDLRMDAN.js";
|
|
9
|
+
import "./chunk-I74QIQOD.js";
|
|
10
|
+
import "./chunk-ZAAV3JXQ.js";
|
|
11
|
+
import "./chunk-5JDK35TG.js";
|
|
12
|
+
import "./chunk-Q45257P6.js";
|
|
13
|
+
import "./chunk-3TRM6CYL.js";
|
|
14
|
+
import "./chunk-XIRFOO3H.js";
|
|
15
|
+
import "./chunk-JTLSTO25.js";
|
|
16
|
+
import "./chunk-JULBBJ27.js";
|
|
17
|
+
import "./chunk-X5LOIFM7.js";
|
|
18
|
+
export {
|
|
19
|
+
KrnlMagneticLoader,
|
|
20
|
+
magneticStorage,
|
|
21
|
+
subappLocalStorage
|
|
22
|
+
};
|