@kb-labs/rest-api-app 1.3.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 (255) hide show
  1. package/.kb/agents/sessions/session-1771531145393-ws3uh6q/turns.json +42 -0
  2. package/.kb/agents/sessions/session-1771548930486-ui6rtvm/turns.json +33 -0
  3. package/.kb/agents/sessions/session-1771549691485-nibqroq/turns.json +133 -0
  4. package/.kb/agents/sessions/session-1771550943182-dkwqdjc/turns.json +130 -0
  5. package/.kb/agents/sessions/session-1771551564182-cr4bwzn/turns.json +349 -0
  6. package/.kb/agents/sessions/session-1771552401370-g4ztwd1/turns.json +206 -0
  7. package/.kb/commit/current/plan.json +248 -0
  8. package/.kb/commit/current/status.json +472 -0
  9. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/health.d.ts +10 -0
  10. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/health.js +215 -0
  11. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/health.js.map +1 -0
  12. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/list.d.ts +10 -0
  13. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/list.js +271 -0
  14. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/list.js.map +1 -0
  15. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/logs.d.ts +10 -0
  16. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/logs.js +230 -0
  17. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/logs.js.map +1 -0
  18. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/metrics.d.ts +10 -0
  19. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/metrics.js +228 -0
  20. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/metrics.js.map +1 -0
  21. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/run.d.ts +11 -0
  22. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/run.js +281 -0
  23. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/run.js.map +1 -0
  24. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/status.d.ts +10 -0
  25. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/status.js +266 -0
  26. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/status.js.map +1 -0
  27. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/workflow-run.d.ts +11 -0
  28. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/workflow-run.js +284 -0
  29. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/commands/workflow-run.js.map +1 -0
  30. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/flags-WLdpSZl4.d.ts +77 -0
  31. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/index.d.ts +2 -0
  32. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/index.js +441 -0
  33. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/index.js.map +1 -0
  34. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/manifest.d.ts +196 -0
  35. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/manifest.js +441 -0
  36. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/manifest.js.map +1 -0
  37. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/cron-list-handler.d.ts +19 -0
  38. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/cron-list-handler.js +48 -0
  39. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/cron-list-handler.js.map +1 -0
  40. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/index.d.ts +6 -0
  41. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/index.js +170 -0
  42. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/index.js.map +1 -0
  43. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-cancel-handler.d.ts +12 -0
  44. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-cancel-handler.js +52 -0
  45. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-cancel-handler.js.map +1 -0
  46. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-detail-handler.d.ts +22 -0
  47. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-detail-handler.js +52 -0
  48. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-detail-handler.js.map +1 -0
  49. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-logs-handler.d.ts +13 -0
  50. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-logs-handler.js +52 -0
  51. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-logs-handler.js.map +1 -0
  52. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-steps-handler.d.ts +9 -0
  53. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-steps-handler.js +43 -0
  54. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/job-steps-handler.js.map +1 -0
  55. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/jobs-list-handler.d.ts +26 -0
  56. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/jobs-list-handler.js +63 -0
  57. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/jobs-list-handler.js.map +1 -0
  58. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/pending-approvals-handler.d.ts +9 -0
  59. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/pending-approvals-handler.js +46 -0
  60. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/pending-approvals-handler.js.map +1 -0
  61. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/resolve-approval-handler.d.ts +16 -0
  62. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/resolve-approval-handler.js +58 -0
  63. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/resolve-approval-handler.js.map +1 -0
  64. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/run-detail-handler.d.ts +9 -0
  65. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/run-detail-handler.js +46 -0
  66. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/run-detail-handler.js.map +1 -0
  67. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/runs-list-handler.d.ts +11 -0
  68. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/runs-list-handler.js +50 -0
  69. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/runs-list-handler.js.map +1 -0
  70. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/stats-handler.d.ts +7 -0
  71. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/stats-handler.js +39 -0
  72. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/stats-handler.js.map +1 -0
  73. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-detail-handler.d.ts +10 -0
  74. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-detail-handler.js +46 -0
  75. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-detail-handler.js.map +1 -0
  76. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-run-cancel-handler.d.ts +13 -0
  77. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-run-cancel-handler.js +47 -0
  78. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-run-cancel-handler.js.map +1 -0
  79. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-run-handler.d.ts +14 -0
  80. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-run-handler.js +53 -0
  81. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-run-handler.js.map +1 -0
  82. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-runs-handler.d.ts +13 -0
  83. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-runs-handler.js +54 -0
  84. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflow-runs-handler.js.map +1 -0
  85. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflows-list-handler.d.ts +12 -0
  86. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflows-list-handler.js +51 -0
  87. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/rest/workflows-list-handler.js.map +1 -0
  88. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/ws/logs-channel.d.ts +17 -0
  89. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/ws/logs-channel.js +133 -0
  90. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/ws/logs-channel.js.map +1 -0
  91. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/ws/progress-channel.d.ts +11 -0
  92. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/ws/progress-channel.js +46 -0
  93. package/.kb/runtime/workspaces/ws_94c2deab-4cf9-49cb-94ac-3958062754a1/ws/progress-channel.js.map +1 -0
  94. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/health.d.ts +10 -0
  95. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/health.js +215 -0
  96. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/health.js.map +1 -0
  97. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/list.d.ts +10 -0
  98. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/list.js +271 -0
  99. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/list.js.map +1 -0
  100. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/logs.d.ts +10 -0
  101. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/logs.js +230 -0
  102. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/logs.js.map +1 -0
  103. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/metrics.d.ts +10 -0
  104. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/metrics.js +228 -0
  105. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/metrics.js.map +1 -0
  106. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/run.d.ts +11 -0
  107. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/run.js +281 -0
  108. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/run.js.map +1 -0
  109. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/status.d.ts +10 -0
  110. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/status.js +266 -0
  111. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/status.js.map +1 -0
  112. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/workflow-run.d.ts +11 -0
  113. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/workflow-run.js +284 -0
  114. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/commands/workflow-run.js.map +1 -0
  115. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/flags-WLdpSZl4.d.ts +77 -0
  116. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/index.d.ts +2 -0
  117. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/index.js +441 -0
  118. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/index.js.map +1 -0
  119. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/manifest.d.ts +196 -0
  120. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/manifest.js +441 -0
  121. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/manifest.js.map +1 -0
  122. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/cron-list-handler.d.ts +19 -0
  123. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/cron-list-handler.js +48 -0
  124. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/cron-list-handler.js.map +1 -0
  125. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/index.d.ts +6 -0
  126. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/index.js +170 -0
  127. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/index.js.map +1 -0
  128. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-cancel-handler.d.ts +12 -0
  129. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-cancel-handler.js +52 -0
  130. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-cancel-handler.js.map +1 -0
  131. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-detail-handler.d.ts +22 -0
  132. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-detail-handler.js +52 -0
  133. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-detail-handler.js.map +1 -0
  134. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-logs-handler.d.ts +13 -0
  135. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-logs-handler.js +52 -0
  136. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-logs-handler.js.map +1 -0
  137. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-steps-handler.d.ts +9 -0
  138. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-steps-handler.js +43 -0
  139. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/job-steps-handler.js.map +1 -0
  140. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/jobs-list-handler.d.ts +26 -0
  141. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/jobs-list-handler.js +63 -0
  142. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/jobs-list-handler.js.map +1 -0
  143. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/pending-approvals-handler.d.ts +9 -0
  144. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/pending-approvals-handler.js +46 -0
  145. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/pending-approvals-handler.js.map +1 -0
  146. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/resolve-approval-handler.d.ts +16 -0
  147. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/resolve-approval-handler.js +58 -0
  148. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/resolve-approval-handler.js.map +1 -0
  149. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/run-detail-handler.d.ts +9 -0
  150. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/run-detail-handler.js +46 -0
  151. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/run-detail-handler.js.map +1 -0
  152. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/runs-list-handler.d.ts +11 -0
  153. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/runs-list-handler.js +50 -0
  154. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/runs-list-handler.js.map +1 -0
  155. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/stats-handler.d.ts +7 -0
  156. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/stats-handler.js +39 -0
  157. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/stats-handler.js.map +1 -0
  158. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-detail-handler.d.ts +10 -0
  159. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-detail-handler.js +46 -0
  160. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-detail-handler.js.map +1 -0
  161. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-run-cancel-handler.d.ts +13 -0
  162. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-run-cancel-handler.js +47 -0
  163. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-run-cancel-handler.js.map +1 -0
  164. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-run-handler.d.ts +14 -0
  165. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-run-handler.js +53 -0
  166. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-run-handler.js.map +1 -0
  167. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-runs-handler.d.ts +13 -0
  168. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-runs-handler.js +54 -0
  169. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflow-runs-handler.js.map +1 -0
  170. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflows-list-handler.d.ts +12 -0
  171. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflows-list-handler.js +51 -0
  172. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/rest/workflows-list-handler.js.map +1 -0
  173. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/ws/logs-channel.d.ts +17 -0
  174. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/ws/logs-channel.js +133 -0
  175. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/ws/logs-channel.js.map +1 -0
  176. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/ws/progress-channel.d.ts +11 -0
  177. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/ws/progress-channel.js +46 -0
  178. package/.kb/runtime/workspaces/ws_f0f301b8-388d-4dc4-b301-475f2bc95f02/ws/progress-channel.js.map +1 -0
  179. package/README.md +54 -0
  180. package/eslint.config.js +23 -0
  181. package/package.json +72 -0
  182. package/src/.kb/agents/sessions/session-1773470583796-ximqnfk/kpi-baseline.json +17 -0
  183. package/src/.kb/memory/sessions/session-1773470583796-ximqnfk/fact-sheet.json +1 -0
  184. package/src/bootstrap.ts +233 -0
  185. package/src/diagnostics/header-debug.ts +37 -0
  186. package/src/events/hub.ts +60 -0
  187. package/src/events/index.ts +1 -0
  188. package/src/index.ts +13 -0
  189. package/src/manifest.ts +21 -0
  190. package/src/middleware/__tests__/cache.spec.ts +184 -0
  191. package/src/middleware/__tests__/envelope.spec.ts +268 -0
  192. package/src/middleware/__tests__/metrics.redis.spec.ts +64 -0
  193. package/src/middleware/__tests__/rate-limit.spec.ts +283 -0
  194. package/src/middleware/__tests__/request-id.spec.ts +160 -0
  195. package/src/middleware/cache.ts +67 -0
  196. package/src/middleware/envelope.ts +136 -0
  197. package/src/middleware/error-guard.ts +69 -0
  198. package/src/middleware/index.ts +37 -0
  199. package/src/middleware/metrics.ts +810 -0
  200. package/src/middleware/mock-mode.ts +44 -0
  201. package/src/middleware/prom-metrics.ts +284 -0
  202. package/src/middleware/rate-limit-routes.ts +73 -0
  203. package/src/middleware/rate-limit.ts +72 -0
  204. package/src/middleware/request-id.ts +41 -0
  205. package/src/middleware/request-timeout.ts +69 -0
  206. package/src/middleware/security-headers.ts +24 -0
  207. package/src/middleware/startup-guard.ts +107 -0
  208. package/src/observability/service-contract.ts +192 -0
  209. package/src/plugins/index.ts +118 -0
  210. package/src/routes/__tests__/adapters-date-helpers.spec.ts +332 -0
  211. package/src/routes/__tests__/adapters.spec.ts +680 -0
  212. package/src/routes/__tests__/cache.spec.ts +264 -0
  213. package/src/routes/__tests__/events.spec.ts +434 -0
  214. package/src/routes/__tests__/health.spec.ts +414 -0
  215. package/src/routes/__tests__/logs.spec.ts +494 -0
  216. package/src/routes/__tests__/observability.spec.ts +392 -0
  217. package/src/routes/__tests__/plugins.spec.ts +931 -0
  218. package/src/routes/__tests__/workflow-management.spec.ts +698 -0
  219. package/src/routes/__tests__/workflows.spec.ts +204 -0
  220. package/src/routes/adapter-call.ts +220 -0
  221. package/src/routes/adapters.ts +1206 -0
  222. package/src/routes/analytics.ts +328 -0
  223. package/src/routes/cache.ts +104 -0
  224. package/src/routes/debug-routes.ts +95 -0
  225. package/src/routes/events.ts +115 -0
  226. package/src/routes/health.ts +348 -0
  227. package/src/routes/hello.ts +47 -0
  228. package/src/routes/index.ts +395 -0
  229. package/src/routes/jobs.ts +253 -0
  230. package/src/routes/logs.ts +718 -0
  231. package/src/routes/metrics.ts +120 -0
  232. package/src/routes/observability.ts +1388 -0
  233. package/src/routes/openapi.ts +101 -0
  234. package/src/routes/platform.ts +143 -0
  235. package/src/routes/plugins.ts +998 -0
  236. package/src/routes/readiness.ts +83 -0
  237. package/src/routes/workflow-management.ts +469 -0
  238. package/src/routes/workflows.ts +256 -0
  239. package/src/server.ts +203 -0
  240. package/src/services/historical-metrics.ts +496 -0
  241. package/src/services/incident-analyzer.ts +289 -0
  242. package/src/services/incident-detector.ts +691 -0
  243. package/src/services/incident-schema.sql +76 -0
  244. package/src/services/incident-storage.ts +593 -0
  245. package/src/services/system-metrics-collector.ts +244 -0
  246. package/src/types/fastify.d.ts +58 -0
  247. package/src/utils/__tests__/sse-auth.spec.ts +113 -0
  248. package/src/utils/path-helpers.ts +15 -0
  249. package/src/utils/repo.ts +42 -0
  250. package/src/utils/schema.ts +20 -0
  251. package/src/utils/sse-auth.ts +81 -0
  252. package/test-sandbox.sh +105 -0
  253. package/tsconfig.build.json +15 -0
  254. package/tsconfig.json +9 -0
  255. package/tsup.config.ts +18 -0
@@ -0,0 +1,348 @@
1
+ /**
2
+ * @module @kb-labs/rest-api-app/routes/health
3
+ * Health check and diagnostics endpoints
4
+ */
5
+
6
+ import type { FastifyInstance } from 'fastify';
7
+ import type { RestApiConfig } from '@kb-labs/rest-api-core';
8
+ import type { IEntityRegistry, SystemHealthSnapshot } from '@kb-labs/core-registry';
9
+ import { normalizeBasePath, resolvePaths } from '../utils/path-helpers';
10
+ import type { ReadinessState } from './readiness';
11
+ import { isReady, resolveReadinessReason } from './readiness';
12
+ import type { PluginsMetricsSnapshot } from '../middleware/metrics.js';
13
+ import { metricsCollector } from '../middleware/metrics.js';
14
+ import { updateServiceHealthStatus } from '../middleware/prom-metrics.js';
15
+ import {
16
+ buildRestObservabilityDescribe,
17
+ buildRestObservabilityHealth,
18
+ } from '../observability/service-contract.js';
19
+
20
+ // Version is injected at build time by tsup define
21
+ declare const __REST_API_VERSION__: string;
22
+ const REST_VERSION = typeof __REST_API_VERSION__ !== 'undefined' ? __REST_API_VERSION__ : '0.0.0';
23
+
24
+ const CACHE_WINDOW_MS = 200;
25
+ const READY_SCHEMA = 'kb.ready/1';
26
+
27
+ interface CachedSnapshot {
28
+ base: SystemHealthSnapshot;
29
+ expiresAt: number;
30
+ }
31
+
32
+ let cachedBaseSnapshot: CachedSnapshot | null = null;
33
+ let inFlightBaseSnapshot: Promise<SystemHealthSnapshot> | null = null;
34
+
35
+ /**
36
+ * Register health and readiness routes
37
+ */
38
+ export async function registerHealthRoutes(
39
+ fastify: FastifyInstance,
40
+ config: RestApiConfig,
41
+ _repoRoot: string,
42
+ registry: IEntityRegistry,
43
+ readiness: ReadinessState
44
+ ): Promise<void> {
45
+ const basePath = normalizeBasePath(config.basePath);
46
+ const healthPaths = resolvePaths(basePath, '/health');
47
+ const readyPaths = resolvePaths(basePath, '/ready');
48
+ const observabilityDescribePaths = resolvePaths(basePath, '/observability/describe');
49
+ const observabilityHealthPaths = resolvePaths(basePath, '/observability/health');
50
+
51
+ for (const path of healthPaths) {
52
+ fastify.get(path, async (_request, reply) => {
53
+ const eventHub = fastify.kbEventHub;
54
+ try {
55
+ const baseSnapshot = await getBaseSnapshot(registry);
56
+ const { registryLoaded, registryPartial, registryStale } = evaluateRegistryState(registry);
57
+ readiness.registryLoaded = registryLoaded;
58
+ readiness.registryPartial = registryPartial;
59
+ readiness.registryStale = registryStale;
60
+ const ready = isReady(readiness);
61
+ const reason = resolveReadinessReason(readiness);
62
+ const pluginsMetrics = metricsCollector.getLastPluginMountSnapshot();
63
+ const response = augmentSnapshot(baseSnapshot, readiness, pluginsMetrics);
64
+ updateServiceHealthStatus(
65
+ response.status === 'healthy' ? 'healthy' : response.status === 'degraded' ? 'degraded' : 'unhealthy',
66
+ );
67
+ eventHub?.publish({
68
+ type: 'health',
69
+ status: response.status,
70
+ ts: response.ts,
71
+ ready,
72
+ reason,
73
+ registryPartial: readiness.registryPartial,
74
+ registryStale: readiness.registryStale,
75
+ registryLoaded: readiness.registryLoaded,
76
+ });
77
+ return reply.send(response);
78
+ } catch (error) {
79
+ const fallback = buildFallbackSnapshot(error, readiness);
80
+ updateServiceHealthStatus('degraded');
81
+ const ready = isReady(readiness);
82
+ const reason = resolveReadinessReason(readiness);
83
+ eventHub?.publish({
84
+ type: 'health',
85
+ status: fallback.status,
86
+ ts: fallback.ts,
87
+ ready,
88
+ reason,
89
+ registryPartial: readiness.registryPartial,
90
+ registryStale: readiness.registryStale,
91
+ registryLoaded: readiness.registryLoaded,
92
+ });
93
+ return reply.send(fallback);
94
+ }
95
+ });
96
+ }
97
+
98
+ for (const path of readyPaths) {
99
+ fastify.get(path, async (_request, reply) => {
100
+ const eventHub = fastify.kbEventHub;
101
+ const { registryLoaded, registryPartial, registryStale } = evaluateRegistryState(registry);
102
+ readiness.registryLoaded = registryLoaded;
103
+ readiness.registryPartial = registryPartial;
104
+ readiness.registryStale = registryStale;
105
+
106
+ const response = buildReadinessResponse(readiness);
107
+ const statusCode = response.ready ? 200 : 503;
108
+ updateServiceHealthStatus(response.ready ? 'healthy' : 'degraded');
109
+
110
+ eventHub?.publish({
111
+ type: 'health',
112
+ status: response.ready ? 'healthy' : 'degraded',
113
+ ts: new Date().toISOString(),
114
+ ready: response.ready,
115
+ reason: response.reason,
116
+ registryPartial: readiness.registryPartial,
117
+ registryStale: readiness.registryStale,
118
+ registryLoaded: readiness.registryLoaded,
119
+ pluginMountInProgress: readiness.pluginMountInProgress,
120
+ pluginRoutesMounted: readiness.pluginRoutesMounted,
121
+ lastPluginMountTs: readiness.lastPluginMountTs,
122
+ pluginRoutesLastDurationMs: readiness.pluginRoutesLastDurationMs,
123
+ pluginsMounted: metricsCollector.getLastPluginMountSnapshot()?.succeeded ?? 0,
124
+ pluginsFailed: metricsCollector.getLastPluginMountSnapshot()?.failed ?? 0,
125
+ });
126
+
127
+ return reply.code(statusCode).send(response);
128
+ });
129
+ }
130
+
131
+ for (const path of observabilityDescribePaths) {
132
+ fastify.get(path, async () => buildRestObservabilityDescribe(basePath));
133
+ }
134
+
135
+ for (const path of observabilityHealthPaths) {
136
+ fastify.get(path, async () => {
137
+ try {
138
+ const baseSnapshot = await getBaseSnapshot(registry);
139
+ const pluginsMetrics = metricsCollector.getLastPluginMountSnapshot();
140
+ const augmented = augmentSnapshot(baseSnapshot, readiness, pluginsMetrics);
141
+ updateServiceHealthStatus(
142
+ augmented.status === 'healthy' ? 'healthy' : augmented.status === 'degraded' ? 'degraded' : 'unhealthy',
143
+ );
144
+ return buildRestObservabilityHealth(basePath, augmented, readiness, metricsCollector.getMetrics());
145
+ } catch (error) {
146
+ const fallback = buildFallbackSnapshot(error, readiness);
147
+ updateServiceHealthStatus('degraded');
148
+ return buildRestObservabilityHealth(basePath, fallback, readiness, metricsCollector.getMetrics());
149
+ }
150
+ });
151
+ }
152
+ }
153
+
154
+ async function getBaseSnapshot(registry: IEntityRegistry): Promise<SystemHealthSnapshot> {
155
+ const now = Date.now();
156
+ if (cachedBaseSnapshot && now < cachedBaseSnapshot.expiresAt) {
157
+ return cachedBaseSnapshot.base;
158
+ }
159
+
160
+ if (inFlightBaseSnapshot) {
161
+ return inFlightBaseSnapshot;
162
+ }
163
+
164
+ inFlightBaseSnapshot = registry
165
+ .getSystemHealth({
166
+ uptimeSec: process.uptime(),
167
+ version: { rest: REST_VERSION },
168
+ })
169
+ .then(snapshot => {
170
+ cachedBaseSnapshot = {
171
+ base: snapshot,
172
+ expiresAt: Date.now() + CACHE_WINDOW_MS,
173
+ };
174
+ inFlightBaseSnapshot = null;
175
+ return snapshot;
176
+ })
177
+ .catch(error => {
178
+ inFlightBaseSnapshot = null;
179
+ throw error;
180
+ });
181
+
182
+ return inFlightBaseSnapshot;
183
+ }
184
+
185
+ function augmentSnapshot(
186
+ base: SystemHealthSnapshot,
187
+ readiness: ReadinessState,
188
+ pluginsMetrics?: PluginsMetricsSnapshot | null
189
+ ): SystemHealthSnapshot {
190
+ const snapshot = cloneSnapshot(base);
191
+ const failures = new Map(readiness.pluginRouteFailures.map(f => [f.id, f.error]));
192
+
193
+ const components = snapshot.components.map(component => {
194
+ const failure = failures.get(component.id);
195
+ return failure
196
+ ? {
197
+ ...component,
198
+ lastError: failure,
199
+ }
200
+ : component;
201
+ });
202
+
203
+ const readinessMeta = {
204
+ pluginRoutesMounted: readiness.pluginRoutesMounted,
205
+ pluginMountInProgress: readiness.pluginMountInProgress,
206
+ pluginRoutesCount: readiness.pluginRoutesCount,
207
+ pluginRouteErrors: readiness.pluginRouteErrors,
208
+ pluginRouteFailures: readiness.pluginRouteFailures,
209
+ registryPartial: readiness.registryPartial,
210
+ registryStale: readiness.registryStale,
211
+ pluginMounts: pluginsMetrics ?? null,
212
+ lastPluginMountTs: readiness.lastPluginMountTs ?? null,
213
+ pluginRoutesLastDurationMs: readiness.pluginRoutesLastDurationMs ?? null,
214
+ redisEnabled: readiness.redisEnabled,
215
+ redisConnected: readiness.redisConnected,
216
+ redisStates: readiness.redisStates,
217
+ };
218
+
219
+ const meta: Record<string, unknown> = {
220
+ source: 'rest',
221
+ ...(snapshot.meta || {}),
222
+ readiness: readinessMeta,
223
+ };
224
+
225
+ if (readiness.pluginRouteFailures.length > 0) {
226
+ meta.readinessFailures = readiness.pluginRouteFailures;
227
+ }
228
+
229
+ const hasReadinessErrors = readiness.pluginRouteErrors > 0 || readiness.pluginRouteFailures.length > 0;
230
+
231
+ return {
232
+ ...snapshot,
233
+ status: hasReadinessErrors ? 'degraded' : snapshot.status,
234
+ components,
235
+ meta,
236
+ };
237
+ }
238
+
239
+ function buildFallbackSnapshot(
240
+ error: unknown,
241
+ readiness: ReadinessState
242
+ ): SystemHealthSnapshot {
243
+ const message = sanitizeError(error);
244
+ const now = new Date();
245
+
246
+ const snapshot: SystemHealthSnapshot = {
247
+ schema: 'kb.health/1',
248
+ ts: now.toISOString(),
249
+ uptimeSec: Math.max(0, Math.floor(process.uptime())),
250
+ version: {
251
+ kbLabs: process.env.KB_LABS_VERSION || process.env.KB_VERSION || 'unknown',
252
+ rest: REST_VERSION,
253
+ },
254
+ registry: {
255
+ total: 0,
256
+ withRest: 0,
257
+ withStudio: 0,
258
+ errors: 1,
259
+ generatedAt: new Date(0).toISOString(),
260
+ expiresAt: undefined,
261
+ partial: true,
262
+ stale: true,
263
+ },
264
+ status: 'degraded',
265
+ components: [],
266
+ meta: {
267
+ source: 'rest',
268
+ error: message,
269
+ },
270
+ };
271
+
272
+ return augmentSnapshot(snapshot, readiness, metricsCollector.getLastPluginMountSnapshot());
273
+ }
274
+
275
+ function cloneSnapshot(base: SystemHealthSnapshot): SystemHealthSnapshot {
276
+ return {
277
+ schema: base.schema,
278
+ ts: base.ts,
279
+ uptimeSec: base.uptimeSec,
280
+ version: { ...base.version },
281
+ registry: { ...base.registry },
282
+ status: base.status,
283
+ components: base.components.map(component => ({ ...component })),
284
+ ...(base.meta ? { meta: { ...base.meta } } : {}),
285
+ };
286
+ }
287
+
288
+ function sanitizeError(error: unknown): string {
289
+ if (!error) {
290
+ return 'unknown_error';
291
+ }
292
+ const message = error instanceof Error ? error.message : String(error);
293
+ const firstLine = message.trim().split('\n')[0] ?? message.trim();
294
+ return firstLine.length > 160 ? `${firstLine.slice(0, 157)}...` : firstLine;
295
+ }
296
+
297
+ function evaluateRegistryState(registry: IEntityRegistry): {
298
+ registryLoaded: boolean;
299
+ registryPartial: boolean;
300
+ registryStale: boolean;
301
+ } {
302
+ const snapshot = registry.snapshot();
303
+ return {
304
+ registryLoaded: snapshot.plugins.length > 0 && !snapshot.partial && !snapshot.stale,
305
+ registryPartial: snapshot.partial,
306
+ registryStale: snapshot.stale,
307
+ };
308
+ }
309
+
310
+ function buildReadinessResponse(readiness: ReadinessState) {
311
+ const ready = isReady(readiness);
312
+ const pluginIssues =
313
+ readiness.pluginRouteErrors > 0 || readiness.pluginRouteFailures.length > 0;
314
+ const status = ready ? (pluginIssues ? 'degraded' : 'ready') : 'initializing';
315
+ const reason = ready ? 'ready' : resolveReadinessReason(readiness);
316
+
317
+ return {
318
+ schema: READY_SCHEMA,
319
+ ts: new Date().toISOString(),
320
+ ready,
321
+ status,
322
+ reason,
323
+ components: {
324
+ cliApi: {
325
+ initialized: readiness.cliApiInitialized,
326
+ },
327
+ registry: {
328
+ loaded: readiness.registryLoaded,
329
+ partial: readiness.registryPartial,
330
+ stale: readiness.registryStale,
331
+ },
332
+ plugins: {
333
+ mounted: readiness.pluginRoutesMounted,
334
+ inProgress: readiness.pluginMountInProgress,
335
+ routeCount: readiness.pluginRoutesCount,
336
+ errors: readiness.pluginRouteErrors,
337
+ failures: readiness.pluginRouteFailures,
338
+ lastCompletedAt: readiness.lastPluginMountTs ?? null,
339
+ lastDurationMs: readiness.pluginRoutesLastDurationMs ?? null,
340
+ },
341
+ redis: {
342
+ enabled: readiness.redisEnabled,
343
+ healthy: readiness.redisConnected,
344
+ states: readiness.redisStates,
345
+ },
346
+ },
347
+ };
348
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @module @kb-labs/rest-api-app/routes/hello
3
+ * Hello service endpoint — simple liveness / greeting check
4
+ */
5
+
6
+ import type { FastifyInstance } from 'fastify';
7
+ import type { RestApiConfig } from '@kb-labs/rest-api-core';
8
+ import type { HelloResponse } from '@kb-labs/rest-api-contracts';
9
+ import { normalizeBasePath } from '../utils/path-helpers';
10
+
11
+ /**
12
+ * Register hello routes
13
+ *
14
+ * GET /api/v1/hello
15
+ * Returns a greeting message together with the current server timestamp.
16
+ * Useful as a lightweight smoke-test that the REST API is reachable.
17
+ */
18
+ export async function registerHelloRoutes(
19
+ fastify: FastifyInstance,
20
+ config: RestApiConfig
21
+ ): Promise<void> {
22
+ const basePath = normalizeBasePath(config.basePath);
23
+
24
+ /**
25
+ * GET /hello
26
+ * Returns { schema, message, ts } wrapped in a SuccessEnvelope.
27
+ */
28
+ fastify.get(`${basePath}/hello`, async (request, reply) => {
29
+ const start = Date.now();
30
+
31
+ const response: HelloResponse = {
32
+ ok: true,
33
+ data: {
34
+ schema: 'kb.hello/1',
35
+ message: 'Hello from KB Labs REST API!',
36
+ ts: new Date().toISOString(),
37
+ },
38
+ meta: {
39
+ requestId: request.id as string,
40
+ durationMs: Date.now() - start,
41
+ apiVersion: '1.0.0',
42
+ },
43
+ };
44
+
45
+ return reply.code(200).send(response);
46
+ });
47
+ }