language-operator 0.1.81 → 0.1.82

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 (427) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/agents/README.md +16 -0
  3. data/.claude/agents/changelog-writer.md +181 -0
  4. data/.claude/hooks/README.md +43 -0
  5. data/.claude/hooks/node_modules/.bin/esbuild +1 -0
  6. data/.claude/hooks/node_modules/.bin/tsc +1 -0
  7. data/.claude/hooks/node_modules/.bin/tsserver +1 -0
  8. data/.claude/hooks/node_modules/.bin/tsx +1 -0
  9. data/.claude/hooks/node_modules/.package-lock.json +136 -0
  10. data/.claude/hooks/node_modules/@esbuild/linux-x64/README.md +3 -0
  11. data/.claude/hooks/node_modules/@esbuild/linux-x64/bin/esbuild +0 -0
  12. data/.claude/hooks/node_modules/@esbuild/linux-x64/package.json +20 -0
  13. data/.claude/hooks/node_modules/@types/node/LICENSE +21 -0
  14. data/.claude/hooks/node_modules/@types/node/README.md +15 -0
  15. data/.claude/hooks/node_modules/@types/node/assert/strict.d.ts +105 -0
  16. data/.claude/hooks/node_modules/@types/node/assert.d.ts +955 -0
  17. data/.claude/hooks/node_modules/@types/node/async_hooks.d.ts +623 -0
  18. data/.claude/hooks/node_modules/@types/node/buffer.buffer.d.ts +466 -0
  19. data/.claude/hooks/node_modules/@types/node/buffer.d.ts +1810 -0
  20. data/.claude/hooks/node_modules/@types/node/child_process.d.ts +1428 -0
  21. data/.claude/hooks/node_modules/@types/node/cluster.d.ts +486 -0
  22. data/.claude/hooks/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
  23. data/.claude/hooks/node_modules/@types/node/console.d.ts +151 -0
  24. data/.claude/hooks/node_modules/@types/node/constants.d.ts +20 -0
  25. data/.claude/hooks/node_modules/@types/node/crypto.d.ts +4065 -0
  26. data/.claude/hooks/node_modules/@types/node/dgram.d.ts +564 -0
  27. data/.claude/hooks/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
  28. data/.claude/hooks/node_modules/@types/node/dns/promises.d.ts +503 -0
  29. data/.claude/hooks/node_modules/@types/node/dns.d.ts +922 -0
  30. data/.claude/hooks/node_modules/@types/node/domain.d.ts +166 -0
  31. data/.claude/hooks/node_modules/@types/node/events.d.ts +1054 -0
  32. data/.claude/hooks/node_modules/@types/node/fs/promises.d.ts +1316 -0
  33. data/.claude/hooks/node_modules/@types/node/fs.d.ts +4676 -0
  34. data/.claude/hooks/node_modules/@types/node/globals.d.ts +150 -0
  35. data/.claude/hooks/node_modules/@types/node/globals.typedarray.d.ts +101 -0
  36. data/.claude/hooks/node_modules/@types/node/http.d.ts +2143 -0
  37. data/.claude/hooks/node_modules/@types/node/http2.d.ts +2480 -0
  38. data/.claude/hooks/node_modules/@types/node/https.d.ts +399 -0
  39. data/.claude/hooks/node_modules/@types/node/index.d.ts +115 -0
  40. data/.claude/hooks/node_modules/@types/node/inspector/promises.d.ts +41 -0
  41. data/.claude/hooks/node_modules/@types/node/inspector.d.ts +224 -0
  42. data/.claude/hooks/node_modules/@types/node/inspector.generated.d.ts +4226 -0
  43. data/.claude/hooks/node_modules/@types/node/module.d.ts +819 -0
  44. data/.claude/hooks/node_modules/@types/node/net.d.ts +933 -0
  45. data/.claude/hooks/node_modules/@types/node/os.d.ts +507 -0
  46. data/.claude/hooks/node_modules/@types/node/package.json +155 -0
  47. data/.claude/hooks/node_modules/@types/node/path/posix.d.ts +8 -0
  48. data/.claude/hooks/node_modules/@types/node/path/win32.d.ts +8 -0
  49. data/.claude/hooks/node_modules/@types/node/path.d.ts +187 -0
  50. data/.claude/hooks/node_modules/@types/node/perf_hooks.d.ts +621 -0
  51. data/.claude/hooks/node_modules/@types/node/process.d.ts +2097 -0
  52. data/.claude/hooks/node_modules/@types/node/punycode.d.ts +117 -0
  53. data/.claude/hooks/node_modules/@types/node/querystring.d.ts +152 -0
  54. data/.claude/hooks/node_modules/@types/node/quic.d.ts +910 -0
  55. data/.claude/hooks/node_modules/@types/node/readline/promises.d.ts +161 -0
  56. data/.claude/hooks/node_modules/@types/node/readline.d.ts +541 -0
  57. data/.claude/hooks/node_modules/@types/node/repl.d.ts +415 -0
  58. data/.claude/hooks/node_modules/@types/node/sea.d.ts +162 -0
  59. data/.claude/hooks/node_modules/@types/node/sqlite.d.ts +937 -0
  60. data/.claude/hooks/node_modules/@types/node/stream/consumers.d.ts +38 -0
  61. data/.claude/hooks/node_modules/@types/node/stream/promises.d.ts +211 -0
  62. data/.claude/hooks/node_modules/@types/node/stream/web.d.ts +296 -0
  63. data/.claude/hooks/node_modules/@types/node/stream.d.ts +1760 -0
  64. data/.claude/hooks/node_modules/@types/node/string_decoder.d.ts +67 -0
  65. data/.claude/hooks/node_modules/@types/node/test/reporters.d.ts +96 -0
  66. data/.claude/hooks/node_modules/@types/node/test.d.ts +2239 -0
  67. data/.claude/hooks/node_modules/@types/node/timers/promises.d.ts +108 -0
  68. data/.claude/hooks/node_modules/@types/node/timers.d.ts +159 -0
  69. data/.claude/hooks/node_modules/@types/node/tls.d.ts +1194 -0
  70. data/.claude/hooks/node_modules/@types/node/trace_events.d.ts +197 -0
  71. data/.claude/hooks/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
  72. data/.claude/hooks/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
  73. data/.claude/hooks/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
  74. data/.claude/hooks/node_modules/@types/node/ts5.6/index.d.ts +117 -0
  75. data/.claude/hooks/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
  76. data/.claude/hooks/node_modules/@types/node/ts5.7/index.d.ts +117 -0
  77. data/.claude/hooks/node_modules/@types/node/tty.d.ts +250 -0
  78. data/.claude/hooks/node_modules/@types/node/url.d.ts +519 -0
  79. data/.claude/hooks/node_modules/@types/node/util/types.d.ts +558 -0
  80. data/.claude/hooks/node_modules/@types/node/util.d.ts +1653 -0
  81. data/.claude/hooks/node_modules/@types/node/v8.d.ts +979 -0
  82. data/.claude/hooks/node_modules/@types/node/vm.d.ts +1180 -0
  83. data/.claude/hooks/node_modules/@types/node/wasi.d.ts +202 -0
  84. data/.claude/hooks/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
  85. data/.claude/hooks/node_modules/@types/node/web-globals/blob.d.ts +23 -0
  86. data/.claude/hooks/node_modules/@types/node/web-globals/console.d.ts +9 -0
  87. data/.claude/hooks/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
  88. data/.claude/hooks/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
  89. data/.claude/hooks/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
  90. data/.claude/hooks/node_modules/@types/node/web-globals/events.d.ts +106 -0
  91. data/.claude/hooks/node_modules/@types/node/web-globals/fetch.d.ts +54 -0
  92. data/.claude/hooks/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
  93. data/.claude/hooks/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
  94. data/.claude/hooks/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
  95. data/.claude/hooks/node_modules/@types/node/web-globals/performance.d.ts +45 -0
  96. data/.claude/hooks/node_modules/@types/node/web-globals/storage.d.ts +24 -0
  97. data/.claude/hooks/node_modules/@types/node/web-globals/streams.d.ts +115 -0
  98. data/.claude/hooks/node_modules/@types/node/web-globals/timers.d.ts +44 -0
  99. data/.claude/hooks/node_modules/@types/node/web-globals/url.d.ts +24 -0
  100. data/.claude/hooks/node_modules/@types/node/worker_threads.d.ts +714 -0
  101. data/.claude/hooks/node_modules/@types/node/zlib.d.ts +618 -0
  102. data/.claude/hooks/node_modules/esbuild/LICENSE.md +21 -0
  103. data/.claude/hooks/node_modules/esbuild/README.md +3 -0
  104. data/.claude/hooks/node_modules/esbuild/bin/esbuild +0 -0
  105. data/.claude/hooks/node_modules/esbuild/install.js +289 -0
  106. data/.claude/hooks/node_modules/esbuild/lib/main.d.ts +716 -0
  107. data/.claude/hooks/node_modules/esbuild/lib/main.js +2242 -0
  108. data/.claude/hooks/node_modules/esbuild/package.json +49 -0
  109. data/.claude/hooks/node_modules/get-tsconfig/LICENSE +21 -0
  110. data/.claude/hooks/node_modules/get-tsconfig/README.md +235 -0
  111. data/.claude/hooks/node_modules/get-tsconfig/dist/index.cjs +7 -0
  112. data/.claude/hooks/node_modules/get-tsconfig/dist/index.d.cts +2088 -0
  113. data/.claude/hooks/node_modules/get-tsconfig/dist/index.d.mts +2088 -0
  114. data/.claude/hooks/node_modules/get-tsconfig/dist/index.mjs +7 -0
  115. data/.claude/hooks/node_modules/get-tsconfig/package.json +46 -0
  116. data/.claude/hooks/node_modules/resolve-pkg-maps/LICENSE +21 -0
  117. data/.claude/hooks/node_modules/resolve-pkg-maps/README.md +216 -0
  118. data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.cjs +1 -0
  119. data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.d.cts +11 -0
  120. data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.d.mts +11 -0
  121. data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.mjs +1 -0
  122. data/.claude/hooks/node_modules/resolve-pkg-maps/package.json +42 -0
  123. data/.claude/hooks/node_modules/tsx/LICENSE +21 -0
  124. data/.claude/hooks/node_modules/tsx/README.md +32 -0
  125. data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.cjs +1 -0
  126. data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.d.cts +35 -0
  127. data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.d.mts +35 -0
  128. data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.mjs +1 -0
  129. data/.claude/hooks/node_modules/tsx/dist/cjs/index.cjs +1 -0
  130. data/.claude/hooks/node_modules/tsx/dist/cjs/index.mjs +1 -0
  131. data/.claude/hooks/node_modules/tsx/dist/cli.cjs +54 -0
  132. data/.claude/hooks/node_modules/tsx/dist/cli.mjs +55 -0
  133. data/.claude/hooks/node_modules/tsx/dist/client-BQVF1NaW.mjs +1 -0
  134. data/.claude/hooks/node_modules/tsx/dist/client-D6NvIMSC.cjs +1 -0
  135. data/.claude/hooks/node_modules/tsx/dist/esm/api/index.cjs +1 -0
  136. data/.claude/hooks/node_modules/tsx/dist/esm/api/index.d.cts +35 -0
  137. data/.claude/hooks/node_modules/tsx/dist/esm/api/index.d.mts +35 -0
  138. data/.claude/hooks/node_modules/tsx/dist/esm/api/index.mjs +1 -0
  139. data/.claude/hooks/node_modules/tsx/dist/esm/index.cjs +2 -0
  140. data/.claude/hooks/node_modules/tsx/dist/esm/index.mjs +2 -0
  141. data/.claude/hooks/node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs +1 -0
  142. data/.claude/hooks/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs +1 -0
  143. data/.claude/hooks/node_modules/tsx/dist/index-7AaEi15b.mjs +14 -0
  144. data/.claude/hooks/node_modules/tsx/dist/index-BWFBUo6r.cjs +1 -0
  145. data/.claude/hooks/node_modules/tsx/dist/index-gbaejti9.mjs +1 -0
  146. data/.claude/hooks/node_modules/tsx/dist/index-gckBtVBf.cjs +14 -0
  147. data/.claude/hooks/node_modules/tsx/dist/lexer-DQCqS3nf.mjs +3 -0
  148. data/.claude/hooks/node_modules/tsx/dist/lexer-DgIbo0BU.cjs +3 -0
  149. data/.claude/hooks/node_modules/tsx/dist/loader.cjs +1 -0
  150. data/.claude/hooks/node_modules/tsx/dist/loader.mjs +1 -0
  151. data/.claude/hooks/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs +1 -0
  152. data/.claude/hooks/node_modules/tsx/dist/node-features-roYmp9jK.cjs +1 -0
  153. data/.claude/hooks/node_modules/tsx/dist/package-CeBgXWuR.mjs +1 -0
  154. data/.claude/hooks/node_modules/tsx/dist/package-Dxt5kIHw.cjs +1 -0
  155. data/.claude/hooks/node_modules/tsx/dist/patch-repl.cjs +1 -0
  156. data/.claude/hooks/node_modules/tsx/dist/patch-repl.mjs +1 -0
  157. data/.claude/hooks/node_modules/tsx/dist/preflight.cjs +1 -0
  158. data/.claude/hooks/node_modules/tsx/dist/preflight.mjs +1 -0
  159. data/.claude/hooks/node_modules/tsx/dist/register-2sWVXuRQ.cjs +1 -0
  160. data/.claude/hooks/node_modules/tsx/dist/register-B7jrtLTO.mjs +1 -0
  161. data/.claude/hooks/node_modules/tsx/dist/register-CFH5oNdT.mjs +4 -0
  162. data/.claude/hooks/node_modules/tsx/dist/register-D46fvsV_.cjs +4 -0
  163. data/.claude/hooks/node_modules/tsx/dist/repl.cjs +3 -0
  164. data/.claude/hooks/node_modules/tsx/dist/repl.mjs +3 -0
  165. data/.claude/hooks/node_modules/tsx/dist/require-D4F1Lv60.cjs +1 -0
  166. data/.claude/hooks/node_modules/tsx/dist/require-DQxpCAr4.mjs +1 -0
  167. data/.claude/hooks/node_modules/tsx/dist/suppress-warnings.cjs +1 -0
  168. data/.claude/hooks/node_modules/tsx/dist/suppress-warnings.mjs +1 -0
  169. data/.claude/hooks/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs +1 -0
  170. data/.claude/hooks/node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs +1 -0
  171. data/.claude/hooks/node_modules/tsx/dist/types-Cxp8y2TL.d.ts +5 -0
  172. data/.claude/hooks/node_modules/tsx/package.json +68 -0
  173. data/.claude/hooks/node_modules/typescript/LICENSE.txt +55 -0
  174. data/.claude/hooks/node_modules/typescript/README.md +50 -0
  175. data/.claude/hooks/node_modules/typescript/SECURITY.md +41 -0
  176. data/.claude/hooks/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
  177. data/.claude/hooks/node_modules/typescript/bin/tsc +2 -0
  178. data/.claude/hooks/node_modules/typescript/bin/tsserver +2 -0
  179. data/.claude/hooks/node_modules/typescript/lib/_tsc.js +133818 -0
  180. data/.claude/hooks/node_modules/typescript/lib/_tsserver.js +659 -0
  181. data/.claude/hooks/node_modules/typescript/lib/_typingsInstaller.js +222 -0
  182. data/.claude/hooks/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
  183. data/.claude/hooks/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
  184. data/.claude/hooks/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
  185. data/.claude/hooks/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
  186. data/.claude/hooks/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
  187. data/.claude/hooks/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
  188. data/.claude/hooks/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
  189. data/.claude/hooks/node_modules/typescript/lib/lib.d.ts +22 -0
  190. data/.claude/hooks/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
  191. data/.claude/hooks/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
  192. data/.claude/hooks/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
  193. data/.claude/hooks/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
  194. data/.claude/hooks/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
  195. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
  196. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
  197. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
  198. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
  199. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
  200. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
  201. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
  202. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
  203. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
  204. data/.claude/hooks/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
  205. data/.claude/hooks/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
  206. data/.claude/hooks/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
  207. data/.claude/hooks/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
  208. data/.claude/hooks/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
  209. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
  210. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
  211. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
  212. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
  213. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
  214. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
  215. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
  216. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
  217. data/.claude/hooks/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
  218. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
  219. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
  220. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
  221. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
  222. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
  223. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
  224. data/.claude/hooks/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
  225. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
  226. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
  227. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
  228. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
  229. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
  230. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
  231. data/.claude/hooks/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
  232. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
  233. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
  234. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
  235. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
  236. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
  237. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
  238. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
  239. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
  240. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
  241. data/.claude/hooks/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
  242. data/.claude/hooks/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
  243. data/.claude/hooks/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
  244. data/.claude/hooks/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
  245. data/.claude/hooks/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
  246. data/.claude/hooks/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
  247. data/.claude/hooks/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
  248. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
  249. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
  250. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
  251. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
  252. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
  253. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
  254. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
  255. data/.claude/hooks/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
  256. data/.claude/hooks/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
  257. data/.claude/hooks/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
  258. data/.claude/hooks/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
  259. data/.claude/hooks/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
  260. data/.claude/hooks/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
  261. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
  262. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
  263. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
  264. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
  265. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
  266. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
  267. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
  268. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
  269. data/.claude/hooks/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
  270. data/.claude/hooks/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
  271. data/.claude/hooks/node_modules/typescript/lib/lib.es6.d.ts +23 -0
  272. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
  273. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
  274. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
  275. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
  276. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
  277. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
  278. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
  279. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
  280. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
  281. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
  282. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  283. data/.claude/hooks/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
  284. data/.claude/hooks/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
  285. data/.claude/hooks/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
  286. data/.claude/hooks/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
  287. data/.claude/hooks/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
  288. data/.claude/hooks/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
  289. data/.claude/hooks/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
  290. data/.claude/hooks/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
  291. data/.claude/hooks/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
  292. data/.claude/hooks/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
  293. data/.claude/hooks/node_modules/typescript/lib/tsc.js +8 -0
  294. data/.claude/hooks/node_modules/typescript/lib/tsserver.js +8 -0
  295. data/.claude/hooks/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
  296. data/.claude/hooks/node_modules/typescript/lib/tsserverlibrary.js +21 -0
  297. data/.claude/hooks/node_modules/typescript/lib/typesMap.json +497 -0
  298. data/.claude/hooks/node_modules/typescript/lib/typescript.d.ts +11437 -0
  299. data/.claude/hooks/node_modules/typescript/lib/typescript.js +200276 -0
  300. data/.claude/hooks/node_modules/typescript/lib/typingsInstaller.js +8 -0
  301. data/.claude/hooks/node_modules/typescript/lib/watchGuard.js +53 -0
  302. data/.claude/hooks/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
  303. data/.claude/hooks/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
  304. data/.claude/hooks/node_modules/typescript/package.json +120 -0
  305. data/.claude/hooks/node_modules/undici-types/LICENSE +21 -0
  306. data/.claude/hooks/node_modules/undici-types/README.md +6 -0
  307. data/.claude/hooks/node_modules/undici-types/agent.d.ts +32 -0
  308. data/.claude/hooks/node_modules/undici-types/api.d.ts +43 -0
  309. data/.claude/hooks/node_modules/undici-types/balanced-pool.d.ts +29 -0
  310. data/.claude/hooks/node_modules/undici-types/cache-interceptor.d.ts +172 -0
  311. data/.claude/hooks/node_modules/undici-types/cache.d.ts +36 -0
  312. data/.claude/hooks/node_modules/undici-types/client-stats.d.ts +15 -0
  313. data/.claude/hooks/node_modules/undici-types/client.d.ts +108 -0
  314. data/.claude/hooks/node_modules/undici-types/connector.d.ts +34 -0
  315. data/.claude/hooks/node_modules/undici-types/content-type.d.ts +21 -0
  316. data/.claude/hooks/node_modules/undici-types/cookies.d.ts +30 -0
  317. data/.claude/hooks/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
  318. data/.claude/hooks/node_modules/undici-types/dispatcher.d.ts +276 -0
  319. data/.claude/hooks/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
  320. data/.claude/hooks/node_modules/undici-types/errors.d.ts +161 -0
  321. data/.claude/hooks/node_modules/undici-types/eventsource.d.ts +66 -0
  322. data/.claude/hooks/node_modules/undici-types/fetch.d.ts +211 -0
  323. data/.claude/hooks/node_modules/undici-types/formdata.d.ts +108 -0
  324. data/.claude/hooks/node_modules/undici-types/global-dispatcher.d.ts +9 -0
  325. data/.claude/hooks/node_modules/undici-types/global-origin.d.ts +7 -0
  326. data/.claude/hooks/node_modules/undici-types/h2c-client.d.ts +73 -0
  327. data/.claude/hooks/node_modules/undici-types/handlers.d.ts +15 -0
  328. data/.claude/hooks/node_modules/undici-types/header.d.ts +160 -0
  329. data/.claude/hooks/node_modules/undici-types/index.d.ts +80 -0
  330. data/.claude/hooks/node_modules/undici-types/interceptors.d.ts +39 -0
  331. data/.claude/hooks/node_modules/undici-types/mock-agent.d.ts +68 -0
  332. data/.claude/hooks/node_modules/undici-types/mock-call-history.d.ts +111 -0
  333. data/.claude/hooks/node_modules/undici-types/mock-client.d.ts +27 -0
  334. data/.claude/hooks/node_modules/undici-types/mock-errors.d.ts +12 -0
  335. data/.claude/hooks/node_modules/undici-types/mock-interceptor.d.ts +94 -0
  336. data/.claude/hooks/node_modules/undici-types/mock-pool.d.ts +27 -0
  337. data/.claude/hooks/node_modules/undici-types/package.json +55 -0
  338. data/.claude/hooks/node_modules/undici-types/patch.d.ts +29 -0
  339. data/.claude/hooks/node_modules/undici-types/pool-stats.d.ts +19 -0
  340. data/.claude/hooks/node_modules/undici-types/pool.d.ts +41 -0
  341. data/.claude/hooks/node_modules/undici-types/proxy-agent.d.ts +29 -0
  342. data/.claude/hooks/node_modules/undici-types/readable.d.ts +68 -0
  343. data/.claude/hooks/node_modules/undici-types/retry-agent.d.ts +8 -0
  344. data/.claude/hooks/node_modules/undici-types/retry-handler.d.ts +125 -0
  345. data/.claude/hooks/node_modules/undici-types/snapshot-agent.d.ts +109 -0
  346. data/.claude/hooks/node_modules/undici-types/util.d.ts +18 -0
  347. data/.claude/hooks/node_modules/undici-types/utility.d.ts +7 -0
  348. data/.claude/hooks/node_modules/undici-types/webidl.d.ts +341 -0
  349. data/.claude/hooks/node_modules/undici-types/websocket.d.ts +186 -0
  350. data/.claude/hooks/package-lock.json +562 -0
  351. data/.claude/hooks/package.json +19 -0
  352. data/.claude/hooks/skill-activation-prompt.sh +11 -0
  353. data/.claude/hooks/skill-activation-prompt.ts +185 -0
  354. data/.claude/hooks/tsconfig.json +12 -0
  355. data/.claude/settings.json +33 -0
  356. data/.claude/skills/README.md +29 -0
  357. data/.claude/skills/ruby-gem-development/SKILL.md +293 -0
  358. data/.claude/skills/skill-rules.json +117 -0
  359. data/.claude/skills/thor-cli-development/SKILL.md +431 -0
  360. data/CHANGELOG.md +7 -0
  361. data/Gemfile.lock +3 -1
  362. data/completions/{_aictl → _langop} +37 -37
  363. data/completions/{aictl.bash → langop.bash} +16 -16
  364. data/completions/langop.fish +114 -0
  365. data/components/agent/Gemfile +1 -1
  366. data/components/tool/Gemfile +1 -1
  367. data/docs/README.md +10 -10
  368. data/docs/agent-internals.md +1 -1
  369. data/docs/cheat-sheet.md +76 -76
  370. data/docs/cli-reference.md +71 -71
  371. data/docs/how-agents-work.md +1 -1
  372. data/docs/installation.md +30 -30
  373. data/docs/quickstart.md +30 -30
  374. data/docs/using-tools.md +11 -11
  375. data/docs/webhooks.md +6 -6
  376. data/examples/ux_helpers_demo.rb +4 -4
  377. data/lib/language_operator/agent/task_executor.rb +0 -37
  378. data/lib/language_operator/agent/web_server.rb +311 -323
  379. data/lib/language_operator/cli/commands/agent/base.rb +16 -15
  380. data/lib/language_operator/cli/commands/agent/code_operations.rb +6 -6
  381. data/lib/language_operator/cli/commands/agent/helpers/synthesis_watcher.rb +1 -1
  382. data/lib/language_operator/cli/commands/agent/lifecycle.rb +2 -2
  383. data/lib/language_operator/cli/commands/agent/logs.rb +2 -2
  384. data/lib/language_operator/cli/commands/agent/workspace.rb +8 -8
  385. data/lib/language_operator/cli/commands/cluster.rb +172 -158
  386. data/lib/language_operator/cli/commands/install.rb +878 -81
  387. data/lib/language_operator/cli/commands/model/base.rb +7 -6
  388. data/lib/language_operator/cli/commands/organization.rb +61 -0
  389. data/lib/language_operator/cli/commands/persona.rb +10 -8
  390. data/lib/language_operator/cli/commands/status.rb +83 -13
  391. data/lib/language_operator/cli/commands/system/exec.rb +10 -10
  392. data/lib/language_operator/cli/commands/system/schema.rb +6 -6
  393. data/lib/language_operator/cli/commands/system/synthesis_template.rb +6 -6
  394. data/lib/language_operator/cli/commands/system/synthesize.rb +14 -14
  395. data/lib/language_operator/cli/commands/system/validate_template.rb +4 -4
  396. data/lib/language_operator/cli/commands/tool/base.rb +1 -1
  397. data/lib/language_operator/cli/commands/tool/install.rb +2 -2
  398. data/lib/language_operator/cli/commands/tool/search.rb +3 -3
  399. data/lib/language_operator/cli/commands/ui.rb +173 -0
  400. data/lib/language_operator/cli/commands/use.rb +80 -9
  401. data/lib/language_operator/cli/errors/suggestions.rb +21 -21
  402. data/lib/language_operator/cli/formatters/progress_formatter.rb +2 -1
  403. data/lib/language_operator/cli/formatters/table_formatter.rb +21 -1
  404. data/lib/language_operator/cli/helpers/cluster_validator.rb +2 -2
  405. data/lib/language_operator/cli/helpers/health_checker.rb +263 -0
  406. data/lib/language_operator/cli/helpers/kubeconfig_validator.rb +3 -3
  407. data/lib/language_operator/cli/helpers/ux_helper.rb +4 -3
  408. data/lib/language_operator/cli/main.rb +30 -21
  409. data/lib/language_operator/cli/wizards/model_wizard.rb +7 -5
  410. data/lib/language_operator/config/cluster_config.rb +3 -3
  411. data/lib/language_operator/constants/kubernetes_labels.rb +1 -1
  412. data/lib/language_operator/kubernetes/client.rb +53 -109
  413. data/lib/language_operator/kubernetes/resource_builder.rb +46 -14
  414. data/lib/language_operator/templates/schema/agent_dsl_openapi.yaml +1 -1
  415. data/lib/language_operator/templates/schema/agent_dsl_schema.json +1 -1
  416. data/lib/language_operator/utils/org_context.rb +100 -0
  417. data/lib/language_operator/version.rb +1 -1
  418. data/synth/001/Makefile +1 -1
  419. data/synth/002/Makefile +1 -1
  420. data/synth/003/Makefile +1 -1
  421. data/synth/004/Makefile +1 -1
  422. metadata +384 -11
  423. data/completions/aictl.fish +0 -114
  424. data/lib/language_operator/agent/event_config.rb +0 -172
  425. data/lib/language_operator/cli/commands/quickstart.rb +0 -22
  426. data/lib/language_operator/cli/wizards/quickstart_wizard.rb +0 -561
  427. /data/bin/{aictl → langop} +0 -0
@@ -22,7 +22,7 @@ module LanguageOperator
22
22
  models = list_resources_or_empty(RESOURCE_MODEL, resource_name: 'models') do
23
23
  puts
24
24
  puts 'Create a model with:'
25
- puts ' aictl model create <name> --provider <provider> --model <model>'
25
+ puts ' langop model create <name> --provider <provider> --model <model>'
26
26
  end
27
27
 
28
28
  return if models.empty?
@@ -53,10 +53,10 @@ module LanguageOperator
53
53
  If NAME is omitted and no options are provided, an interactive wizard will guide you.
54
54
 
55
55
  Examples:
56
- aictl model create # Launch interactive wizard
57
- aictl model create gpt4 --provider openai --model gpt-4-turbo
58
- aictl model create claude --provider anthropic --model claude-3-opus-20240229
59
- aictl model create local --provider openai_compatible --model llama-3 --endpoint http://localhost:8080
56
+ langop model create # Launch interactive wizard
57
+ langop model create gpt4 --provider openai --model gpt-4-turbo
58
+ langop model create claude --provider anthropic --model claude-3-opus-20240229
59
+ langop model create local --provider openai_compatible --model llama-3 --endpoint http://localhost:8080
60
60
  DESC
61
61
  option :provider, type: :string, required: false, desc: 'LLM provider (e.g., openai, anthropic, openai_compatible)'
62
62
  option :model, type: :string, required: false, desc: 'Model identifier (e.g., gpt-4, claude-3-opus)'
@@ -87,7 +87,8 @@ module LanguageOperator
87
87
  model: options[:model],
88
88
  endpoint: options[:endpoint],
89
89
  cluster: ctx.namespace,
90
- cluster_ref: ctx.name
90
+ cluster_ref: ctx.name,
91
+ k8s_client: ctx.client
91
92
  )
92
93
 
93
94
  # Handle dry-run: output manifest and exit
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../base_command'
4
+ require_relative '../formatters/table_formatter'
5
+ require_relative '../formatters/progress_formatter'
6
+ require_relative '../../kubernetes/client'
7
+
8
+ module LanguageOperator
9
+ module CLI
10
+ module Commands
11
+ # Organization management commands
12
+ class Organization < BaseCommand
13
+ desc 'list', 'List all organizations in the cluster'
14
+ long_desc <<-DESC
15
+ Lists all organizations present in the Kubernetes cluster.
16
+
17
+ Organizations are identified by namespaces with the label:
18
+ langop.io/type=organization
19
+
20
+ Examples:
21
+ # List all organizations
22
+ langop organization list
23
+ DESC
24
+ def list
25
+ handle_command_error('list organizations') do
26
+ organizations_data = get_organizations_data
27
+ Formatters::TableFormatter.organizations(organizations_data)
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def get_organizations_data
34
+ k8s = Kubernetes::Client.new
35
+
36
+ # Find all namespaces with organization label
37
+ namespaces = k8s.list_namespaces(
38
+ label_selector: 'langop.io/type=organization'
39
+ )
40
+
41
+ namespaces.map do |namespace|
42
+ {
43
+ namespace: namespace.dig('metadata', 'name'),
44
+ organization_id: namespace.dig('metadata', 'labels', 'langop.io/organization-id') || 'N/A',
45
+ plan: namespace.dig('metadata', 'labels', 'langop.io/plan') || 'N/A',
46
+ created: format_creation_date(namespace.dig('metadata', 'creationTimestamp'))
47
+ }
48
+ end
49
+ end
50
+
51
+ def format_creation_date(timestamp)
52
+ return 'N/A' unless timestamp
53
+
54
+ Time.parse(timestamp).strftime('%Y-%m-%d %H:%M')
55
+ rescue StandardError
56
+ 'N/A'
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -21,7 +21,7 @@ module LanguageOperator
21
21
  puts 'Personas define the personality and capabilities of agents.'
22
22
  puts
23
23
  puts 'Create a persona with:'
24
- puts ' aictl persona create <name>'
24
+ puts ' langop persona create <name>'
25
25
  end
26
26
 
27
27
  return if personas.empty?
@@ -95,7 +95,7 @@ module LanguageOperator
95
95
  puts '═' * 80
96
96
  puts
97
97
  Formatters::ProgressFormatter.info('Use this persona when creating agents:')
98
- puts " aictl agent create \"description\" --persona #{name}"
98
+ puts " langop agent create \"description\" --persona #{name}"
99
99
  puts
100
100
  end
101
101
  end
@@ -105,8 +105,8 @@ module LanguageOperator
105
105
  Create a new persona with the specified name using an interactive wizard.
106
106
 
107
107
  Examples:
108
- aictl persona create helpful-assistant
109
- aictl persona create code-reviewer --from helpful-assistant
108
+ langop persona create helpful-assistant
109
+ langop persona create code-reviewer --from helpful-assistant
110
110
  DESC
111
111
  option :cluster, type: :string, desc: 'Override current cluster context'
112
112
  option :from, type: :string, desc: 'Copy from existing persona as starting point'
@@ -118,7 +118,7 @@ module LanguageOperator
118
118
  Formatters::ProgressFormatter.error("Persona '#{name}' already exists in cluster '#{ctx.name}'")
119
119
  puts
120
120
  puts 'Use a different name or delete the existing persona first:'
121
- puts " aictl persona delete #{name}"
121
+ puts " langop persona delete #{name}"
122
122
  exit 1
123
123
  rescue K8s::Error::NotFound
124
124
  # Good - persona doesn't exist yet
@@ -192,7 +192,9 @@ module LanguageOperator
192
192
  persona_resource = Kubernetes::ResourceBuilder.build_persona(
193
193
  name: name,
194
194
  spec: persona_spec,
195
- namespace: ctx.namespace
195
+ namespace: ctx.namespace,
196
+ cluster_ref: ctx.name,
197
+ k8s_client: ctx.client
196
198
  )
197
199
 
198
200
  # Show preview
@@ -218,7 +220,7 @@ module LanguageOperator
218
220
  Formatters::ProgressFormatter.success("Persona '#{name}' created successfully")
219
221
  puts
220
222
  puts 'Use this persona when creating agents:'
221
- puts " aictl agent create \"description\" --persona #{name}"
223
+ puts " langop agent create \"description\" --persona #{name}"
222
224
  end
223
225
  end
224
226
 
@@ -230,7 +232,7 @@ module LanguageOperator
230
232
  Any agents using this persona will be automatically re-synthesized.
231
233
 
232
234
  Example:
233
- aictl persona edit helpful-assistant
235
+ langop persona edit helpful-assistant
234
236
  DESC
235
237
  option :cluster, type: :string, desc: 'Override current cluster context'
236
238
  def edit(name)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative '../command_loader'
4
+ require_relative '../helpers/health_checker'
4
5
 
5
6
  module LanguageOperator
6
7
  module CLI
@@ -33,14 +34,39 @@ module LanguageOperator
33
34
  end
34
35
  end
35
36
 
36
- # Format cluster info using UxHelper
37
+ # Early exit if operator not installed
38
+ unless k8s.operator_installed?
39
+ logo(title: 'cluster status')
40
+ puts
41
+ puts 'Install the operator with:'
42
+ puts ' langop install'
43
+ puts
44
+ return
45
+ end
46
+
47
+ # Run health checks first
37
48
  logo(title: 'cluster status')
49
+ begin
50
+ # Use 'language-operator' namespace for system components, not the cluster namespace
51
+ health_checker = Helpers::HealthChecker.new(k8s, 'language-operator', current_cluster, cluster_config[:namespace])
52
+ health_results = health_checker.run_all_checks
53
+
54
+ # Display any health check failures
55
+ display_health_summary(health_results)
56
+ rescue StandardError => e
57
+ Formatters::ProgressFormatter.error("Health check failed: #{e.message}")
58
+ puts e.backtrace.first(3).join("\n") if ENV['DEBUG']
59
+ end
60
+
61
+ # Then show cluster details
62
+ puts
38
63
 
39
64
  if cluster_resource
40
65
  # Use actual cluster resource data
41
66
  status = cluster_resource.dig('status', 'phase') || 'Unknown'
42
67
  domain = cluster_resource.dig('spec', 'domain')
43
68
  created = cluster_resource.dig('metadata', 'creationTimestamp')
69
+ org_id = cluster_resource.dig('metadata', 'labels', 'langop.io/organization-id')
44
70
 
45
71
  format_cluster_details(
46
72
  name: current_cluster,
@@ -48,7 +74,8 @@ module LanguageOperator
48
74
  context: cluster_config[:context],
49
75
  status: status,
50
76
  domain: domain,
51
- created: created
77
+ created: created,
78
+ org_id: org_id
52
79
  )
53
80
  else
54
81
  # Fallback to local config and operator status
@@ -60,15 +87,6 @@ module LanguageOperator
60
87
  )
61
88
  end
62
89
 
63
- # Early exit if operator not installed
64
- unless k8s.operator_installed?
65
- puts
66
- puts 'Install the operator with:'
67
- puts ' aictl install'
68
- puts
69
- return
70
- end
71
-
72
90
  else
73
91
  Formatters::ProgressFormatter.warn('No cluster selected')
74
92
  puts
@@ -79,10 +97,10 @@ module LanguageOperator
79
97
  end
80
98
  puts
81
99
  puts 'Select a cluster with:'
82
- puts ' aictl use <cluster>'
100
+ puts ' langop use <cluster>'
83
101
  else
84
102
  puts 'No clusters found. Create one with:'
85
- puts ' aictl cluster create <name>'
103
+ puts ' langop cluster create <name>'
86
104
  end
87
105
  end
88
106
 
@@ -106,6 +124,58 @@ module LanguageOperator
106
124
  end
107
125
  stats
108
126
  end
127
+
128
+ def display_health_summary(results)
129
+ # Show any health issues
130
+ issues = []
131
+
132
+ results.each do |component, result|
133
+ next if result[:healthy]
134
+
135
+ case component
136
+ when :cluster
137
+ if result[:error]
138
+ issues << "Cluster: #{result[:error]}"
139
+ else
140
+ issues << "Cluster: unexpected issue"
141
+ end
142
+ when :dashboard
143
+ if result[:error]
144
+ issues << "Dashboard: #{result[:error]}"
145
+ else
146
+ issues << "Dashboard: #{result[:ready_replicas]}/#{result[:desired_replicas]} pods ready"
147
+ end
148
+ when :operator
149
+ if result[:error]
150
+ issues << "Operator: #{result[:error]}"
151
+ else
152
+ issues << "Operator: #{result[:ready_replicas]}/#{result[:desired_replicas]} pods ready"
153
+ end
154
+ when :clickhouse
155
+ if result[:error]
156
+ issues << "ClickHouse: #{result[:error]}"
157
+ else
158
+ auth_status = result[:auth_works] ? 'auth OK' : 'auth failed'
159
+ issues << "ClickHouse: connection failed (#{auth_status})"
160
+ end
161
+ when :postgres
162
+ if result[:error]
163
+ issues << "PostgreSQL: #{result[:error]}"
164
+ else
165
+ auth_status = result[:auth_works] ? 'auth OK' : 'auth failed'
166
+ issues << "PostgreSQL: connection failed (#{auth_status})"
167
+ end
168
+ end
169
+ end
170
+
171
+ if issues.any?
172
+ puts
173
+ Formatters::ProgressFormatter.warn('Health check issues detected:')
174
+ issues.each do |issue|
175
+ puts " • #{issue}"
176
+ end
177
+ end
178
+ end
109
179
  end
110
180
  end
111
181
  end
@@ -22,22 +22,22 @@ module LanguageOperator
22
22
 
23
23
  Examples:
24
24
  # Execute a synthesized agent file
25
- aictl system exec agent.rb
25
+ langop system exec agent.rb
26
26
 
27
27
  # Execute with a custom agent name
28
- aictl system exec agent.rb --agent-name my-test
28
+ langop system exec agent.rb --agent-name my-test
29
29
 
30
30
  # Keep the pod after execution for debugging
31
- aictl system exec agent.rb --keep-pod
31
+ langop system exec agent.rb --keep-pod
32
32
 
33
33
  # Use a different agent image
34
- aictl system exec agent.rb --image ghcr.io/language-operator/agent:v0.1.0
34
+ langop system exec agent.rb --image ghcr.io/language-operator/agent:v0.1.0
35
35
 
36
36
  # Read agent code from STDIN
37
- cat agent.rb | aictl system exec
37
+ cat agent.rb | langop system exec
38
38
 
39
39
  # Pipe synthesized code directly to execution
40
- cat agent.txt | aictl system synthesize | aictl system exec
40
+ cat agent.txt | langop system synthesize | langop system exec
41
41
  DESC
42
42
  option :agent_name, type: :string, default: 'test-agent', desc: 'Name for the test agent pod'
43
43
  option :keep_pod, type: :boolean, default: false, desc: 'Keep the pod after execution (for debugging)'
@@ -68,8 +68,8 @@ module LanguageOperator
68
68
  Formatters::ProgressFormatter.error('No agent code provided')
69
69
  puts
70
70
  puts 'Provide agent code either as a file or via STDIN:'
71
- puts ' aictl system exec agent.rb'
72
- puts ' cat agent.rb | aictl system exec'
71
+ puts ' langop system exec agent.rb'
72
+ puts ' cat agent.rb | langop system exec'
73
73
  exit 1
74
74
  else
75
75
  code = $stdin.read.strip
@@ -77,8 +77,8 @@ module LanguageOperator
77
77
  Formatters::ProgressFormatter.error('No agent code provided')
78
78
  puts
79
79
  puts 'Provide agent code either as a file or via STDIN:'
80
- puts ' aictl system exec agent.rb'
81
- puts ' cat agent.rb | aictl system exec'
80
+ puts ' langop system exec agent.rb'
81
+ puts ' cat agent.rb | langop system exec'
82
82
  exit 1
83
83
  end
84
84
  code
@@ -21,20 +21,20 @@ module LanguageOperator
21
21
 
22
22
  Examples:
23
23
  # Export JSON schema (default)
24
- aictl system schema
24
+ langop system schema
25
25
 
26
26
  # Export as YAML
27
- aictl system schema --format yaml
27
+ langop system schema --format yaml
28
28
 
29
29
  # Export OpenAPI 3.0 specification
30
- aictl system schema --format openapi
30
+ langop system schema --format openapi
31
31
 
32
32
  # Show schema version only
33
- aictl system schema --version
33
+ langop system schema --version
34
34
 
35
35
  # Save to file
36
- aictl system schema > schema.json
37
- aictl system schema --format openapi > openapi.json
36
+ langop system schema > schema.json
37
+ langop system schema --format openapi > openapi.json
38
38
  DESC
39
39
  option :format, type: :string, default: 'json', desc: 'Output format (json, yaml, openapi)'
40
40
  option :version, type: :boolean, default: false, desc: 'Show schema version only'
@@ -21,22 +21,22 @@ module LanguageOperator
21
21
 
22
22
  Examples:
23
23
  # Export agent synthesis template (default)
24
- aictl system synthesis-template
24
+ langop system synthesis-template
25
25
 
26
26
  # Export persona distillation template
27
- aictl system synthesis-template --type persona
27
+ langop system synthesis-template --type persona
28
28
 
29
29
  # Export as JSON with schema included
30
- aictl system synthesis-template --format json --with-schema
30
+ langop system synthesis-template --format json --with-schema
31
31
 
32
32
  # Export as YAML
33
- aictl system synthesis-template --format yaml
33
+ langop system synthesis-template --format yaml
34
34
 
35
35
  # Validate template syntax
36
- aictl system synthesis-template --validate
36
+ langop system synthesis-template --validate
37
37
 
38
38
  # Save to file
39
- aictl system synthesis-template > agent_synthesis.tmpl
39
+ langop system synthesis-template > agent_synthesis.tmpl
40
40
  DESC
41
41
  option :format, type: :string, default: 'template', desc: 'Output format (template, json, yaml)'
42
42
  option :type, type: :string, default: 'agent', desc: 'Template type (agent, persona)'
@@ -26,25 +26,25 @@ module LanguageOperator
26
26
 
27
27
  Examples:
28
28
  # Test with dry-run (show prompt only)
29
- aictl system synthesize "Monitor GitHub issues daily" --dry-run
29
+ langop system synthesize "Monitor GitHub issues daily" --dry-run
30
30
 
31
31
  # Generate code from instructions (auto-selects first available model)
32
- aictl system synthesize "Send daily reports to Slack"
32
+ langop system synthesize "Send daily reports to Slack"
33
33
 
34
34
  # Use a specific cluster model
35
- aictl system synthesize "Process webhooks from GitHub" --model my-claude
35
+ langop system synthesize "Process webhooks from GitHub" --model my-claude
36
36
 
37
37
  # Output raw code without formatting (useful for piping to files)
38
- aictl system synthesize "Monitor logs" --raw > agent.rb
38
+ langop system synthesize "Monitor logs" --raw > agent.rb
39
39
 
40
40
  # Read instructions from STDIN
41
- cat instructions.txt | aictl system synthesize > agent.rb
41
+ cat instructions.txt | langop system synthesize > agent.rb
42
42
 
43
43
  # Read from STDIN with pipe
44
- echo "Monitor GitHub issues" | aictl system synthesize --raw
44
+ echo "Monitor GitHub issues" | langop system synthesize --raw
45
45
 
46
46
  # Specify custom agent name and tools
47
- aictl system synthesize "Process webhooks from GitHub" \\
47
+ langop system synthesize "Process webhooks from GitHub" \\
48
48
  --agent-name github-processor \\
49
49
  --tools github,slack \\
50
50
  --model my-gpt4
@@ -64,8 +64,8 @@ module LanguageOperator
64
64
  Formatters::ProgressFormatter.error('No instructions provided')
65
65
  puts
66
66
  puts 'Provide instructions either as an argument or via STDIN:'
67
- puts ' aictl system synthesize "Your instructions here"'
68
- puts ' cat instructions.txt | aictl system synthesize'
67
+ puts ' langop system synthesize "Your instructions here"'
68
+ puts ' cat instructions.txt | langop system synthesize'
69
69
  exit 1
70
70
  else
71
71
  instructions = $stdin.read.strip
@@ -73,8 +73,8 @@ module LanguageOperator
73
73
  Formatters::ProgressFormatter.error('No instructions provided')
74
74
  puts
75
75
  puts 'Provide instructions either as an argument or via STDIN:'
76
- puts ' aictl system synthesize "Your instructions here"'
77
- puts ' cat instructions.txt | aictl system synthesize'
76
+ puts ' langop system synthesize "Your instructions here"'
77
+ puts ' cat instructions.txt | langop system synthesize'
78
78
  exit 1
79
79
  end
80
80
  end
@@ -177,7 +177,7 @@ module LanguageOperator
177
177
  models = detect_available_models
178
178
  return models.map { |model| "- #{model}" }.join("\n") unless models.empty?
179
179
 
180
- return 'No models available (run: aictl model list)'
180
+ return 'No models available (run: langop model list)'
181
181
  end
182
182
 
183
183
  models = models_str.split(',').map(&:strip)
@@ -205,10 +205,10 @@ module LanguageOperator
205
205
  Formatters::ProgressFormatter.error('No models available in cluster')
206
206
  puts
207
207
  puts 'Please create a model first:'
208
- puts ' aictl model create'
208
+ puts ' langop model create'
209
209
  puts
210
210
  puts 'Or list existing models:'
211
- puts ' aictl model list'
211
+ puts ' langop model list'
212
212
  exit 1
213
213
  end
214
214
 
@@ -18,16 +18,16 @@ module LanguageOperator
18
18
 
19
19
  Examples:
20
20
  # Validate a custom template file
21
- aictl system validate_template --template /path/to/template.tmpl
21
+ langop system validate_template --template /path/to/template.tmpl
22
22
 
23
23
  # Validate the bundled agent template (default)
24
- aictl system validate_template
24
+ langop system validate_template
25
25
 
26
26
  # Validate the bundled persona template
27
- aictl system validate_template --type persona
27
+ langop system validate_template --type persona
28
28
 
29
29
  # Verbose output with all violations
30
- aictl system validate_template --template mytemplate.tmpl --verbose
30
+ langop system validate_template --template mytemplate.tmpl --verbose
31
31
  DESC
32
32
  option :template, type: :string, desc: 'Path to template file (defaults to bundled template)'
33
33
  option :type, type: :string, default: 'agent', desc: 'Template type if using bundled template (agent, persona)'
@@ -31,7 +31,7 @@ module LanguageOperator
31
31
  tools = list_resources_or_empty(RESOURCE_TOOL, resource_name: 'tools') do
32
32
  puts
33
33
  puts 'Install a tool with:'
34
- puts ' aictl tool install <name>'
34
+ puts ' langop tool install <name>'
35
35
  end
36
36
 
37
37
  return if tools.empty?
@@ -127,7 +127,7 @@ module LanguageOperator
127
127
  puts
128
128
  if tool_config['authRequired']
129
129
  puts 'This tool requires authentication. Configure it with:'
130
- puts pastel.dim(" aictl tool auth #{tool_name}")
130
+ puts pastel.dim(" langop tool auth #{tool_name}")
131
131
  else
132
132
  puts "Tool '#{tool_name}' is now available for agents to use"
133
133
  end
@@ -139,7 +139,7 @@ module LanguageOperator
139
139
  def auth(tool_name)
140
140
  handle_command_error('configure auth') do
141
141
  tool = get_resource_or_exit(LanguageOperator::Constants::RESOURCE_TOOL, tool_name,
142
- error_message: "Tool '#{tool_name}' not found. Install it first with: aictl tool install #{tool_name}")
142
+ error_message: "Tool '#{tool_name}' not found. Install it first with: langop tool install #{tool_name}")
143
143
 
144
144
  puts "Configure authentication for tool '#{tool_name}'"
145
145
  puts
@@ -18,9 +18,9 @@ module LanguageOperator
18
18
  With a pattern, filters tools by name or description (case-insensitive).
19
19
 
20
20
  Examples:
21
- aictl tool search # List all tools
22
- aictl tool search web # Find tools matching "web"
23
- aictl tool search email # Find tools matching "email"
21
+ langop tool search # List all tools
22
+ langop tool search web # Find tools matching "web"
23
+ langop tool search email # Find tools matching "email"
24
24
  DESC
25
25
  def search(pattern = nil)
26
26
  handle_command_error('search tools') do