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.
- checksums.yaml +4 -4
- data/.claude/agents/README.md +16 -0
- data/.claude/agents/changelog-writer.md +181 -0
- data/.claude/hooks/README.md +43 -0
- data/.claude/hooks/node_modules/.bin/esbuild +1 -0
- data/.claude/hooks/node_modules/.bin/tsc +1 -0
- data/.claude/hooks/node_modules/.bin/tsserver +1 -0
- data/.claude/hooks/node_modules/.bin/tsx +1 -0
- data/.claude/hooks/node_modules/.package-lock.json +136 -0
- data/.claude/hooks/node_modules/@esbuild/linux-x64/README.md +3 -0
- data/.claude/hooks/node_modules/@esbuild/linux-x64/bin/esbuild +0 -0
- data/.claude/hooks/node_modules/@esbuild/linux-x64/package.json +20 -0
- data/.claude/hooks/node_modules/@types/node/LICENSE +21 -0
- data/.claude/hooks/node_modules/@types/node/README.md +15 -0
- data/.claude/hooks/node_modules/@types/node/assert/strict.d.ts +105 -0
- data/.claude/hooks/node_modules/@types/node/assert.d.ts +955 -0
- data/.claude/hooks/node_modules/@types/node/async_hooks.d.ts +623 -0
- data/.claude/hooks/node_modules/@types/node/buffer.buffer.d.ts +466 -0
- data/.claude/hooks/node_modules/@types/node/buffer.d.ts +1810 -0
- data/.claude/hooks/node_modules/@types/node/child_process.d.ts +1428 -0
- data/.claude/hooks/node_modules/@types/node/cluster.d.ts +486 -0
- data/.claude/hooks/node_modules/@types/node/compatibility/iterators.d.ts +21 -0
- data/.claude/hooks/node_modules/@types/node/console.d.ts +151 -0
- data/.claude/hooks/node_modules/@types/node/constants.d.ts +20 -0
- data/.claude/hooks/node_modules/@types/node/crypto.d.ts +4065 -0
- data/.claude/hooks/node_modules/@types/node/dgram.d.ts +564 -0
- data/.claude/hooks/node_modules/@types/node/diagnostics_channel.d.ts +576 -0
- data/.claude/hooks/node_modules/@types/node/dns/promises.d.ts +503 -0
- data/.claude/hooks/node_modules/@types/node/dns.d.ts +922 -0
- data/.claude/hooks/node_modules/@types/node/domain.d.ts +166 -0
- data/.claude/hooks/node_modules/@types/node/events.d.ts +1054 -0
- data/.claude/hooks/node_modules/@types/node/fs/promises.d.ts +1316 -0
- data/.claude/hooks/node_modules/@types/node/fs.d.ts +4676 -0
- data/.claude/hooks/node_modules/@types/node/globals.d.ts +150 -0
- data/.claude/hooks/node_modules/@types/node/globals.typedarray.d.ts +101 -0
- data/.claude/hooks/node_modules/@types/node/http.d.ts +2143 -0
- data/.claude/hooks/node_modules/@types/node/http2.d.ts +2480 -0
- data/.claude/hooks/node_modules/@types/node/https.d.ts +399 -0
- data/.claude/hooks/node_modules/@types/node/index.d.ts +115 -0
- data/.claude/hooks/node_modules/@types/node/inspector/promises.d.ts +41 -0
- data/.claude/hooks/node_modules/@types/node/inspector.d.ts +224 -0
- data/.claude/hooks/node_modules/@types/node/inspector.generated.d.ts +4226 -0
- data/.claude/hooks/node_modules/@types/node/module.d.ts +819 -0
- data/.claude/hooks/node_modules/@types/node/net.d.ts +933 -0
- data/.claude/hooks/node_modules/@types/node/os.d.ts +507 -0
- data/.claude/hooks/node_modules/@types/node/package.json +155 -0
- data/.claude/hooks/node_modules/@types/node/path/posix.d.ts +8 -0
- data/.claude/hooks/node_modules/@types/node/path/win32.d.ts +8 -0
- data/.claude/hooks/node_modules/@types/node/path.d.ts +187 -0
- data/.claude/hooks/node_modules/@types/node/perf_hooks.d.ts +621 -0
- data/.claude/hooks/node_modules/@types/node/process.d.ts +2097 -0
- data/.claude/hooks/node_modules/@types/node/punycode.d.ts +117 -0
- data/.claude/hooks/node_modules/@types/node/querystring.d.ts +152 -0
- data/.claude/hooks/node_modules/@types/node/quic.d.ts +910 -0
- data/.claude/hooks/node_modules/@types/node/readline/promises.d.ts +161 -0
- data/.claude/hooks/node_modules/@types/node/readline.d.ts +541 -0
- data/.claude/hooks/node_modules/@types/node/repl.d.ts +415 -0
- data/.claude/hooks/node_modules/@types/node/sea.d.ts +162 -0
- data/.claude/hooks/node_modules/@types/node/sqlite.d.ts +937 -0
- data/.claude/hooks/node_modules/@types/node/stream/consumers.d.ts +38 -0
- data/.claude/hooks/node_modules/@types/node/stream/promises.d.ts +211 -0
- data/.claude/hooks/node_modules/@types/node/stream/web.d.ts +296 -0
- data/.claude/hooks/node_modules/@types/node/stream.d.ts +1760 -0
- data/.claude/hooks/node_modules/@types/node/string_decoder.d.ts +67 -0
- data/.claude/hooks/node_modules/@types/node/test/reporters.d.ts +96 -0
- data/.claude/hooks/node_modules/@types/node/test.d.ts +2239 -0
- data/.claude/hooks/node_modules/@types/node/timers/promises.d.ts +108 -0
- data/.claude/hooks/node_modules/@types/node/timers.d.ts +159 -0
- data/.claude/hooks/node_modules/@types/node/tls.d.ts +1194 -0
- data/.claude/hooks/node_modules/@types/node/trace_events.d.ts +197 -0
- data/.claude/hooks/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +462 -0
- data/.claude/hooks/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
- data/.claude/hooks/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
- data/.claude/hooks/node_modules/@types/node/ts5.6/index.d.ts +117 -0
- data/.claude/hooks/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
- data/.claude/hooks/node_modules/@types/node/ts5.7/index.d.ts +117 -0
- data/.claude/hooks/node_modules/@types/node/tty.d.ts +250 -0
- data/.claude/hooks/node_modules/@types/node/url.d.ts +519 -0
- data/.claude/hooks/node_modules/@types/node/util/types.d.ts +558 -0
- data/.claude/hooks/node_modules/@types/node/util.d.ts +1653 -0
- data/.claude/hooks/node_modules/@types/node/v8.d.ts +979 -0
- data/.claude/hooks/node_modules/@types/node/vm.d.ts +1180 -0
- data/.claude/hooks/node_modules/@types/node/wasi.d.ts +202 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/console.d.ts +9 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/domexception.d.ts +68 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/events.d.ts +106 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/fetch.d.ts +54 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/streams.d.ts +115 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- data/.claude/hooks/node_modules/@types/node/web-globals/url.d.ts +24 -0
- data/.claude/hooks/node_modules/@types/node/worker_threads.d.ts +714 -0
- data/.claude/hooks/node_modules/@types/node/zlib.d.ts +618 -0
- data/.claude/hooks/node_modules/esbuild/LICENSE.md +21 -0
- data/.claude/hooks/node_modules/esbuild/README.md +3 -0
- data/.claude/hooks/node_modules/esbuild/bin/esbuild +0 -0
- data/.claude/hooks/node_modules/esbuild/install.js +289 -0
- data/.claude/hooks/node_modules/esbuild/lib/main.d.ts +716 -0
- data/.claude/hooks/node_modules/esbuild/lib/main.js +2242 -0
- data/.claude/hooks/node_modules/esbuild/package.json +49 -0
- data/.claude/hooks/node_modules/get-tsconfig/LICENSE +21 -0
- data/.claude/hooks/node_modules/get-tsconfig/README.md +235 -0
- data/.claude/hooks/node_modules/get-tsconfig/dist/index.cjs +7 -0
- data/.claude/hooks/node_modules/get-tsconfig/dist/index.d.cts +2088 -0
- data/.claude/hooks/node_modules/get-tsconfig/dist/index.d.mts +2088 -0
- data/.claude/hooks/node_modules/get-tsconfig/dist/index.mjs +7 -0
- data/.claude/hooks/node_modules/get-tsconfig/package.json +46 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/LICENSE +21 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/README.md +216 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.cjs +1 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.d.cts +11 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.d.mts +11 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/dist/index.mjs +1 -0
- data/.claude/hooks/node_modules/resolve-pkg-maps/package.json +42 -0
- data/.claude/hooks/node_modules/tsx/LICENSE +21 -0
- data/.claude/hooks/node_modules/tsx/README.md +32 -0
- data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.d.cts +35 -0
- data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.d.mts +35 -0
- data/.claude/hooks/node_modules/tsx/dist/cjs/api/index.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/cjs/index.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/cjs/index.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/cli.cjs +54 -0
- data/.claude/hooks/node_modules/tsx/dist/cli.mjs +55 -0
- data/.claude/hooks/node_modules/tsx/dist/client-BQVF1NaW.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/client-D6NvIMSC.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/esm/api/index.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/esm/api/index.d.cts +35 -0
- data/.claude/hooks/node_modules/tsx/dist/esm/api/index.d.mts +35 -0
- data/.claude/hooks/node_modules/tsx/dist/esm/api/index.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/esm/index.cjs +2 -0
- data/.claude/hooks/node_modules/tsx/dist/esm/index.mjs +2 -0
- data/.claude/hooks/node_modules/tsx/dist/get-pipe-path-BHW2eJdv.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/get-pipe-path-BoR10qr8.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/index-7AaEi15b.mjs +14 -0
- data/.claude/hooks/node_modules/tsx/dist/index-BWFBUo6r.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/index-gbaejti9.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/index-gckBtVBf.cjs +14 -0
- data/.claude/hooks/node_modules/tsx/dist/lexer-DQCqS3nf.mjs +3 -0
- data/.claude/hooks/node_modules/tsx/dist/lexer-DgIbo0BU.cjs +3 -0
- data/.claude/hooks/node_modules/tsx/dist/loader.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/loader.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/node-features-_8ZFwP_x.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/node-features-roYmp9jK.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/package-CeBgXWuR.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/package-Dxt5kIHw.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/patch-repl.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/patch-repl.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/preflight.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/preflight.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/register-2sWVXuRQ.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/register-B7jrtLTO.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/register-CFH5oNdT.mjs +4 -0
- data/.claude/hooks/node_modules/tsx/dist/register-D46fvsV_.cjs +4 -0
- data/.claude/hooks/node_modules/tsx/dist/repl.cjs +3 -0
- data/.claude/hooks/node_modules/tsx/dist/repl.mjs +3 -0
- data/.claude/hooks/node_modules/tsx/dist/require-D4F1Lv60.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/require-DQxpCAr4.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/suppress-warnings.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/suppress-warnings.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/temporary-directory-B83uKxJF.cjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/temporary-directory-CwHp0_NW.mjs +1 -0
- data/.claude/hooks/node_modules/tsx/dist/types-Cxp8y2TL.d.ts +5 -0
- data/.claude/hooks/node_modules/tsx/package.json +68 -0
- data/.claude/hooks/node_modules/typescript/LICENSE.txt +55 -0
- data/.claude/hooks/node_modules/typescript/README.md +50 -0
- data/.claude/hooks/node_modules/typescript/SECURITY.md +41 -0
- data/.claude/hooks/node_modules/typescript/ThirdPartyNoticeText.txt +193 -0
- data/.claude/hooks/node_modules/typescript/bin/tsc +2 -0
- data/.claude/hooks/node_modules/typescript/bin/tsserver +2 -0
- data/.claude/hooks/node_modules/typescript/lib/_tsc.js +133818 -0
- data/.claude/hooks/node_modules/typescript/lib/_tsserver.js +659 -0
- data/.claude/hooks/node_modules/typescript/lib/_typingsInstaller.js +222 -0
- data/.claude/hooks/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/de/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/es/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/it/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.d.ts +22 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.decorators.d.ts +384 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.decorators.legacy.d.ts +22 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.dom.asynciterable.d.ts +41 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.dom.d.ts +39429 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.dom.iterable.d.ts +571 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.collection.d.ts +147 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.core.d.ts +597 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.d.ts +28 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.generator.d.ts +77 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.iterable.d.ts +605 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.promise.d.ts +81 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.proxy.d.ts +128 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.reflect.d.ts +144 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.symbol.d.ts +46 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts +326 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2016.array.include.d.ts +116 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2016.d.ts +21 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2016.full.d.ts +23 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2016.intl.d.ts +31 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts +21 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.d.ts +26 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.date.d.ts +31 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.full.d.ts +23 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.intl.d.ts +44 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.object.d.ts +49 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts +135 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.string.d.ts +45 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts +53 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts +77 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts +53 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.intl.d.ts +83 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.promise.d.ts +30 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2018.regexp.d.ts +37 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.array.d.ts +79 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.intl.d.ts +23 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.object.d.ts +33 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.string.d.ts +37 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2019.symbol.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.bigint.d.ts +765 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.d.ts +27 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.date.d.ts +42 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.intl.d.ts +474 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.number.d.ts +28 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.promise.d.ts +47 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts +99 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.string.d.ts +44 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts +41 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2021.d.ts +23 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2021.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2021.intl.d.ts +166 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2021.promise.d.ts +48 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2021.string.d.ts +33 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2021.weakref.d.ts +78 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.array.d.ts +121 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.d.ts +25 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.error.d.ts +75 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.intl.d.ts +145 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.object.d.ts +26 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.regexp.d.ts +39 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2022.string.d.ts +25 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2023.array.d.ts +924 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2023.collection.d.ts +21 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2023.d.ts +22 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2023.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2023.intl.d.ts +56 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts +65 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.collection.d.ts +29 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.d.ts +26 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.object.d.ts +29 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.promise.d.ts +35 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.regexp.d.ts +25 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts +68 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es2024.string.d.ts +29 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es5.d.ts +4601 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.es6.d.ts +23 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.array.d.ts +35 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.collection.d.ts +96 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.d.ts +29 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.decorators.d.ts +28 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.disposable.d.ts +193 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.error.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.float16.d.ts +445 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.full.d.ts +24 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.intl.d.ts +21 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.iterator.d.ts +148 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts +25 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.scripthost.d.ts +322 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.webworker.asynciterable.d.ts +41 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.webworker.d.ts +13150 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.webworker.importscripts.d.ts +23 -0
- data/.claude/hooks/node_modules/typescript/lib/lib.webworker.iterable.d.ts +340 -0
- data/.claude/hooks/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/tsc.js +8 -0
- data/.claude/hooks/node_modules/typescript/lib/tsserver.js +8 -0
- data/.claude/hooks/node_modules/typescript/lib/tsserverlibrary.d.ts +17 -0
- data/.claude/hooks/node_modules/typescript/lib/tsserverlibrary.js +21 -0
- data/.claude/hooks/node_modules/typescript/lib/typesMap.json +497 -0
- data/.claude/hooks/node_modules/typescript/lib/typescript.d.ts +11437 -0
- data/.claude/hooks/node_modules/typescript/lib/typescript.js +200276 -0
- data/.claude/hooks/node_modules/typescript/lib/typingsInstaller.js +8 -0
- data/.claude/hooks/node_modules/typescript/lib/watchGuard.js +53 -0
- data/.claude/hooks/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +2122 -0
- data/.claude/hooks/node_modules/typescript/package.json +120 -0
- data/.claude/hooks/node_modules/undici-types/LICENSE +21 -0
- data/.claude/hooks/node_modules/undici-types/README.md +6 -0
- data/.claude/hooks/node_modules/undici-types/agent.d.ts +32 -0
- data/.claude/hooks/node_modules/undici-types/api.d.ts +43 -0
- data/.claude/hooks/node_modules/undici-types/balanced-pool.d.ts +29 -0
- data/.claude/hooks/node_modules/undici-types/cache-interceptor.d.ts +172 -0
- data/.claude/hooks/node_modules/undici-types/cache.d.ts +36 -0
- data/.claude/hooks/node_modules/undici-types/client-stats.d.ts +15 -0
- data/.claude/hooks/node_modules/undici-types/client.d.ts +108 -0
- data/.claude/hooks/node_modules/undici-types/connector.d.ts +34 -0
- data/.claude/hooks/node_modules/undici-types/content-type.d.ts +21 -0
- data/.claude/hooks/node_modules/undici-types/cookies.d.ts +30 -0
- data/.claude/hooks/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
- data/.claude/hooks/node_modules/undici-types/dispatcher.d.ts +276 -0
- data/.claude/hooks/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
- data/.claude/hooks/node_modules/undici-types/errors.d.ts +161 -0
- data/.claude/hooks/node_modules/undici-types/eventsource.d.ts +66 -0
- data/.claude/hooks/node_modules/undici-types/fetch.d.ts +211 -0
- data/.claude/hooks/node_modules/undici-types/formdata.d.ts +108 -0
- data/.claude/hooks/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- data/.claude/hooks/node_modules/undici-types/global-origin.d.ts +7 -0
- data/.claude/hooks/node_modules/undici-types/h2c-client.d.ts +73 -0
- data/.claude/hooks/node_modules/undici-types/handlers.d.ts +15 -0
- data/.claude/hooks/node_modules/undici-types/header.d.ts +160 -0
- data/.claude/hooks/node_modules/undici-types/index.d.ts +80 -0
- data/.claude/hooks/node_modules/undici-types/interceptors.d.ts +39 -0
- data/.claude/hooks/node_modules/undici-types/mock-agent.d.ts +68 -0
- data/.claude/hooks/node_modules/undici-types/mock-call-history.d.ts +111 -0
- data/.claude/hooks/node_modules/undici-types/mock-client.d.ts +27 -0
- data/.claude/hooks/node_modules/undici-types/mock-errors.d.ts +12 -0
- data/.claude/hooks/node_modules/undici-types/mock-interceptor.d.ts +94 -0
- data/.claude/hooks/node_modules/undici-types/mock-pool.d.ts +27 -0
- data/.claude/hooks/node_modules/undici-types/package.json +55 -0
- data/.claude/hooks/node_modules/undici-types/patch.d.ts +29 -0
- data/.claude/hooks/node_modules/undici-types/pool-stats.d.ts +19 -0
- data/.claude/hooks/node_modules/undici-types/pool.d.ts +41 -0
- data/.claude/hooks/node_modules/undici-types/proxy-agent.d.ts +29 -0
- data/.claude/hooks/node_modules/undici-types/readable.d.ts +68 -0
- data/.claude/hooks/node_modules/undici-types/retry-agent.d.ts +8 -0
- data/.claude/hooks/node_modules/undici-types/retry-handler.d.ts +125 -0
- data/.claude/hooks/node_modules/undici-types/snapshot-agent.d.ts +109 -0
- data/.claude/hooks/node_modules/undici-types/util.d.ts +18 -0
- data/.claude/hooks/node_modules/undici-types/utility.d.ts +7 -0
- data/.claude/hooks/node_modules/undici-types/webidl.d.ts +341 -0
- data/.claude/hooks/node_modules/undici-types/websocket.d.ts +186 -0
- data/.claude/hooks/package-lock.json +562 -0
- data/.claude/hooks/package.json +19 -0
- data/.claude/hooks/skill-activation-prompt.sh +11 -0
- data/.claude/hooks/skill-activation-prompt.ts +185 -0
- data/.claude/hooks/tsconfig.json +12 -0
- data/.claude/settings.json +33 -0
- data/.claude/skills/README.md +29 -0
- data/.claude/skills/ruby-gem-development/SKILL.md +293 -0
- data/.claude/skills/skill-rules.json +117 -0
- data/.claude/skills/thor-cli-development/SKILL.md +431 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile.lock +3 -1
- data/completions/{_aictl → _langop} +37 -37
- data/completions/{aictl.bash → langop.bash} +16 -16
- data/completions/langop.fish +114 -0
- data/components/agent/Gemfile +1 -1
- data/components/tool/Gemfile +1 -1
- data/docs/README.md +10 -10
- data/docs/agent-internals.md +1 -1
- data/docs/cheat-sheet.md +76 -76
- data/docs/cli-reference.md +71 -71
- data/docs/how-agents-work.md +1 -1
- data/docs/installation.md +30 -30
- data/docs/quickstart.md +30 -30
- data/docs/using-tools.md +11 -11
- data/docs/webhooks.md +6 -6
- data/examples/ux_helpers_demo.rb +4 -4
- data/lib/language_operator/agent/task_executor.rb +0 -37
- data/lib/language_operator/agent/web_server.rb +311 -323
- data/lib/language_operator/cli/commands/agent/base.rb +16 -15
- data/lib/language_operator/cli/commands/agent/code_operations.rb +6 -6
- data/lib/language_operator/cli/commands/agent/helpers/synthesis_watcher.rb +1 -1
- data/lib/language_operator/cli/commands/agent/lifecycle.rb +2 -2
- data/lib/language_operator/cli/commands/agent/logs.rb +2 -2
- data/lib/language_operator/cli/commands/agent/workspace.rb +8 -8
- data/lib/language_operator/cli/commands/cluster.rb +172 -158
- data/lib/language_operator/cli/commands/install.rb +878 -81
- data/lib/language_operator/cli/commands/model/base.rb +7 -6
- data/lib/language_operator/cli/commands/organization.rb +61 -0
- data/lib/language_operator/cli/commands/persona.rb +10 -8
- data/lib/language_operator/cli/commands/status.rb +83 -13
- data/lib/language_operator/cli/commands/system/exec.rb +10 -10
- data/lib/language_operator/cli/commands/system/schema.rb +6 -6
- data/lib/language_operator/cli/commands/system/synthesis_template.rb +6 -6
- data/lib/language_operator/cli/commands/system/synthesize.rb +14 -14
- data/lib/language_operator/cli/commands/system/validate_template.rb +4 -4
- data/lib/language_operator/cli/commands/tool/base.rb +1 -1
- data/lib/language_operator/cli/commands/tool/install.rb +2 -2
- data/lib/language_operator/cli/commands/tool/search.rb +3 -3
- data/lib/language_operator/cli/commands/ui.rb +173 -0
- data/lib/language_operator/cli/commands/use.rb +80 -9
- data/lib/language_operator/cli/errors/suggestions.rb +21 -21
- data/lib/language_operator/cli/formatters/progress_formatter.rb +2 -1
- data/lib/language_operator/cli/formatters/table_formatter.rb +21 -1
- data/lib/language_operator/cli/helpers/cluster_validator.rb +2 -2
- data/lib/language_operator/cli/helpers/health_checker.rb +263 -0
- data/lib/language_operator/cli/helpers/kubeconfig_validator.rb +3 -3
- data/lib/language_operator/cli/helpers/ux_helper.rb +4 -3
- data/lib/language_operator/cli/main.rb +30 -21
- data/lib/language_operator/cli/wizards/model_wizard.rb +7 -5
- data/lib/language_operator/config/cluster_config.rb +3 -3
- data/lib/language_operator/constants/kubernetes_labels.rb +1 -1
- data/lib/language_operator/kubernetes/client.rb +53 -109
- data/lib/language_operator/kubernetes/resource_builder.rb +46 -14
- data/lib/language_operator/templates/schema/agent_dsl_openapi.yaml +1 -1
- data/lib/language_operator/templates/schema/agent_dsl_schema.json +1 -1
- data/lib/language_operator/utils/org_context.rb +100 -0
- data/lib/language_operator/version.rb +1 -1
- data/synth/001/Makefile +1 -1
- data/synth/002/Makefile +1 -1
- data/synth/003/Makefile +1 -1
- data/synth/004/Makefile +1 -1
- metadata +384 -11
- data/completions/aictl.fish +0 -114
- data/lib/language_operator/agent/event_config.rb +0 -172
- data/lib/language_operator/cli/commands/quickstart.rb +0 -22
- data/lib/language_operator/cli/wizards/quickstart_wizard.rb +0 -561
- /data/bin/{aictl → langop} +0 -0
data/docs/quickstart.md
CHANGED
|
@@ -4,7 +4,7 @@ Get your first Language Operator agent running in 5 minutes.
|
|
|
4
4
|
|
|
5
5
|
## Before You Begin
|
|
6
6
|
|
|
7
|
-
- Install
|
|
7
|
+
- Install langop: `gem install language-operator`
|
|
8
8
|
- Have Kubernetes cluster access
|
|
9
9
|
- Set up API keys for your preferred LLM provider
|
|
10
10
|
|
|
@@ -13,7 +13,7 @@ Get your first Language Operator agent running in 5 minutes.
|
|
|
13
13
|
Run the interactive setup wizard:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
|
|
16
|
+
langop quickstart
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
The wizard will guide you through:
|
|
@@ -30,38 +30,38 @@ If you prefer step-by-step setup:
|
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
# Create cluster configuration
|
|
33
|
-
|
|
33
|
+
langop cluster create my-cluster
|
|
34
34
|
|
|
35
35
|
# Switch to it
|
|
36
|
-
|
|
36
|
+
langop use my-cluster
|
|
37
37
|
|
|
38
38
|
# Check connectivity
|
|
39
|
-
|
|
39
|
+
langop status
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
### Install Language Operator
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
|
|
45
|
+
langop install
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Wait for installation to complete, then verify:
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
|
|
51
|
+
langop status
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### Create a Model
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
57
|
# For OpenAI (set OPENAI_API_KEY first)
|
|
58
|
-
|
|
58
|
+
langop model create gpt4 --provider openai --model gpt-4-turbo
|
|
59
59
|
|
|
60
60
|
# For Anthropic (set ANTHROPIC_API_KEY first)
|
|
61
|
-
|
|
61
|
+
langop model create claude --provider anthropic --model claude-3-sonnet
|
|
62
62
|
|
|
63
63
|
# Verify model
|
|
64
|
-
|
|
64
|
+
langop model list
|
|
65
65
|
```
|
|
66
66
|
|
|
67
67
|
## Step 3: Create Your First Agent
|
|
@@ -71,7 +71,7 @@ aictl model list
|
|
|
71
71
|
Create an agent that runs daily:
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
|
|
74
|
+
langop agent create daily-reporter
|
|
75
75
|
```
|
|
76
76
|
|
|
77
77
|
You'll be prompted to describe what the agent should do. Try:
|
|
@@ -81,13 +81,13 @@ You'll be prompted to describe what the agent should do. Try:
|
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
83
|
# List all agents
|
|
84
|
-
|
|
84
|
+
langop agent list
|
|
85
85
|
|
|
86
86
|
# Get detailed info
|
|
87
|
-
|
|
87
|
+
langop agent inspect daily-reporter
|
|
88
88
|
|
|
89
89
|
# View logs
|
|
90
|
-
|
|
90
|
+
langop agent logs daily-reporter -f
|
|
91
91
|
```
|
|
92
92
|
|
|
93
93
|
## Step 4: Understanding What Was Created
|
|
@@ -96,7 +96,7 @@ aictl agent logs daily-reporter -f
|
|
|
96
96
|
|
|
97
97
|
```bash
|
|
98
98
|
# Open agent workspace
|
|
99
|
-
|
|
99
|
+
langop agent workspace daily-reporter
|
|
100
100
|
```
|
|
101
101
|
|
|
102
102
|
This shows the synthesized agent definition that Language Operator created from your description.
|
|
@@ -146,7 +146,7 @@ end
|
|
|
146
146
|
Create an agent that responds to GitHub webhooks:
|
|
147
147
|
|
|
148
148
|
```bash
|
|
149
|
-
|
|
149
|
+
langop agent create github-responder
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
Description: "Respond to GitHub pull request webhooks with automated code reviews"
|
|
@@ -156,7 +156,7 @@ Description: "Respond to GitHub pull request webhooks with automated code review
|
|
|
156
156
|
Create a conversational agent:
|
|
157
157
|
|
|
158
158
|
```bash
|
|
159
|
-
|
|
159
|
+
langop agent create support-bot
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
Description: "Provide customer support through a chat interface"
|
|
@@ -166,7 +166,7 @@ Description: "Provide customer support through a chat interface"
|
|
|
166
166
|
Create an agent that runs continuously:
|
|
167
167
|
|
|
168
168
|
```bash
|
|
169
|
-
|
|
169
|
+
langop agent create system-monitor
|
|
170
170
|
```
|
|
171
171
|
|
|
172
172
|
Description: "Continuously monitor system health and alert on issues"
|
|
@@ -176,17 +176,17 @@ Description: "Continuously monitor system health and alert on issues"
|
|
|
176
176
|
### View All Agents
|
|
177
177
|
|
|
178
178
|
```bash
|
|
179
|
-
|
|
179
|
+
langop agent list
|
|
180
180
|
```
|
|
181
181
|
|
|
182
182
|
### Check Agent Logs
|
|
183
183
|
|
|
184
184
|
```bash
|
|
185
185
|
# Follow logs in real-time
|
|
186
|
-
|
|
186
|
+
langop agent logs daily-reporter -f
|
|
187
187
|
|
|
188
188
|
# View recent logs
|
|
189
|
-
|
|
189
|
+
langop agent logs daily-reporter --since 1h
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
### Monitoring Agents
|
|
@@ -195,10 +195,10 @@ Monitor your agent's execution and performance:
|
|
|
195
195
|
|
|
196
196
|
```bash
|
|
197
197
|
# View detailed agent information
|
|
198
|
-
|
|
198
|
+
langop agent inspect daily-reporter
|
|
199
199
|
|
|
200
200
|
# Check recent execution logs
|
|
201
|
-
|
|
201
|
+
langop agent logs daily-reporter --since 1h
|
|
202
202
|
```
|
|
203
203
|
|
|
204
204
|
## Common Patterns
|
|
@@ -247,13 +247,13 @@ end
|
|
|
247
247
|
|
|
248
248
|
```bash
|
|
249
249
|
# Check agent status
|
|
250
|
-
|
|
250
|
+
langop agent inspect my-agent
|
|
251
251
|
|
|
252
252
|
# View detailed logs
|
|
253
|
-
|
|
253
|
+
langop agent logs my-agent
|
|
254
254
|
|
|
255
255
|
# Check cluster status
|
|
256
|
-
|
|
256
|
+
langop status
|
|
257
257
|
```
|
|
258
258
|
|
|
259
259
|
### High Costs
|
|
@@ -262,7 +262,7 @@ Agents use LLM APIs which have costs. Monitor usage:
|
|
|
262
262
|
|
|
263
263
|
```bash
|
|
264
264
|
# Check agent configuration
|
|
265
|
-
|
|
265
|
+
langop agent inspect my-agent
|
|
266
266
|
|
|
267
267
|
# Look for budget constraints
|
|
268
268
|
# Adjust constraints if needed
|
|
@@ -278,7 +278,7 @@ kubectl get nodes
|
|
|
278
278
|
kubectl get pods -n language-operator
|
|
279
279
|
|
|
280
280
|
# Verify model connectivity
|
|
281
|
-
|
|
281
|
+
langop model test my-model
|
|
282
282
|
```
|
|
283
283
|
|
|
284
284
|
## Next Steps
|
|
@@ -293,7 +293,7 @@ Now that you have a working agent:
|
|
|
293
293
|
|
|
294
294
|
## Getting Help
|
|
295
295
|
|
|
296
|
-
- View command help: `
|
|
297
|
-
- Check specific commands: `
|
|
296
|
+
- View command help: `langop --help`
|
|
297
|
+
- Check specific commands: `langop agent --help`
|
|
298
298
|
- Report issues: [GitHub Issues](https://github.com/language-operator/language-operator-gem/issues)
|
|
299
299
|
- Join discussions: [GitHub Discussions](https://github.com/language-operator/language-operator/discussions)
|
data/docs/using-tools.md
CHANGED
|
@@ -210,7 +210,7 @@ For advanced use cases, you can specify tool requirements:
|
|
|
210
210
|
|
|
211
211
|
```bash
|
|
212
212
|
# During agent creation
|
|
213
|
-
|
|
213
|
+
langop agent create my-agent \
|
|
214
214
|
--tools database,slack,github \
|
|
215
215
|
--database-url postgres://... \
|
|
216
216
|
--slack-token xoxb-... \
|
|
@@ -242,13 +242,13 @@ Language Operator provides basic tool management commands:
|
|
|
242
242
|
|
|
243
243
|
```bash
|
|
244
244
|
# Deploy a tool server to your cluster
|
|
245
|
-
|
|
245
|
+
langop tool deploy ./path/to/tool
|
|
246
246
|
|
|
247
247
|
# Test tool connectivity
|
|
248
|
-
|
|
248
|
+
langop tool test my-tool
|
|
249
249
|
|
|
250
250
|
# View tool logs
|
|
251
|
-
|
|
251
|
+
langop tool logs my-tool
|
|
252
252
|
```
|
|
253
253
|
|
|
254
254
|
For available tools, check the `components/tool/examples/` directory in the repository.
|
|
@@ -323,10 +323,10 @@ end
|
|
|
323
323
|
|
|
324
324
|
```bash
|
|
325
325
|
# Deploy your custom tool server
|
|
326
|
-
|
|
326
|
+
langop tool deploy ./my-custom-tools
|
|
327
327
|
|
|
328
328
|
# Register with Language Operator
|
|
329
|
-
|
|
329
|
+
langop tool register my-custom-tools \
|
|
330
330
|
--endpoint https://my-tools.company.com
|
|
331
331
|
```
|
|
332
332
|
|
|
@@ -369,10 +369,10 @@ All tool usage is logged for security and debugging:
|
|
|
369
369
|
|
|
370
370
|
```bash
|
|
371
371
|
# View tool usage logs
|
|
372
|
-
|
|
372
|
+
langop agent logs my-agent --tools-only
|
|
373
373
|
|
|
374
374
|
# Audit specific tool usage
|
|
375
|
-
|
|
375
|
+
langop tool audit database --agent my-agent --since 24h
|
|
376
376
|
```
|
|
377
377
|
|
|
378
378
|
## Performance Optimization
|
|
@@ -434,13 +434,13 @@ end
|
|
|
434
434
|
|
|
435
435
|
```bash
|
|
436
436
|
# Test tool connectivity
|
|
437
|
-
|
|
437
|
+
langop tool test database
|
|
438
438
|
|
|
439
439
|
# Check tool configuration
|
|
440
|
-
|
|
440
|
+
langop tool config database
|
|
441
441
|
|
|
442
442
|
# View tool logs
|
|
443
|
-
|
|
443
|
+
langop tool logs database --since 1h
|
|
444
444
|
```
|
|
445
445
|
|
|
446
446
|
### Common Issues
|
data/docs/webhooks.md
CHANGED
|
@@ -9,7 +9,7 @@ When you describe an agent that responds to external events, Language Operator c
|
|
|
9
9
|
### Creating Webhook Agents
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
|
|
12
|
+
langop agent create github-pr-reviewer
|
|
13
13
|
# Wizard asks:
|
|
14
14
|
# - What service sends webhooks? (GitHub, Stripe, Slack, custom)
|
|
15
15
|
# - What events should trigger the agent? (pull_request, push, etc.)
|
|
@@ -422,13 +422,13 @@ Monitor webhook activity:
|
|
|
422
422
|
|
|
423
423
|
```bash
|
|
424
424
|
# View webhook logs
|
|
425
|
-
|
|
425
|
+
langop agent logs pr-reviewer --webhooks-only
|
|
426
426
|
|
|
427
427
|
# Follow webhook activity in real-time
|
|
428
|
-
|
|
428
|
+
langop agent logs pr-reviewer --follow --filter webhook
|
|
429
429
|
|
|
430
430
|
# View specific webhook processing
|
|
431
|
-
|
|
431
|
+
langop agent webhook-logs pr-reviewer --webhook-id abc123
|
|
432
432
|
```
|
|
433
433
|
|
|
434
434
|
### Webhook Testing
|
|
@@ -437,12 +437,12 @@ Test webhooks during development:
|
|
|
437
437
|
|
|
438
438
|
```bash
|
|
439
439
|
# Test webhook endpoint
|
|
440
|
-
|
|
440
|
+
langop agent test-webhook pr-reviewer \
|
|
441
441
|
--payload ./test-payload.json \
|
|
442
442
|
--event pull_request.opened
|
|
443
443
|
|
|
444
444
|
# Simulate webhook with custom data
|
|
445
|
-
|
|
445
|
+
langop agent simulate-webhook pr-reviewer \
|
|
446
446
|
--github-pr 123 \
|
|
447
447
|
--repository company/main-repo
|
|
448
448
|
```
|
data/examples/ux_helpers_demo.rb
CHANGED
|
@@ -119,10 +119,10 @@ class UxDemo
|
|
|
119
119
|
|
|
120
120
|
# Multi-line box
|
|
121
121
|
puts box(<<~MSG, title: 'Next Steps', padding: 2)
|
|
122
|
-
1. Monitor logs:
|
|
123
|
-
2. Check status:
|
|
124
|
-
3. View metrics:
|
|
125
|
-
4. Scale replicas:
|
|
122
|
+
1. Monitor logs: langop agent logs my-agent
|
|
123
|
+
2. Check status: langop agent inspect my-agent
|
|
124
|
+
3. View metrics: langop agent metrics my-agent
|
|
125
|
+
4. Scale replicas: langop agent scale my-agent --replicas=3
|
|
126
126
|
MSG
|
|
127
127
|
puts "\n"
|
|
128
128
|
end
|
|
@@ -142,25 +142,20 @@ module LanguageOperator
|
|
|
142
142
|
current_span = OpenTelemetry::Trace.current_span
|
|
143
143
|
current_span&.set_attribute('task.outputs', result.to_json) if current_span && capture_enabled?(:outputs)
|
|
144
144
|
|
|
145
|
-
# Emit Kubernetes event for successful task completion
|
|
146
|
-
emit_task_execution_event(task_name, success: true, execution_start: execution_start)
|
|
147
145
|
|
|
148
146
|
result
|
|
149
147
|
end
|
|
150
148
|
rescue ArgumentError => e
|
|
151
149
|
# Validation errors should not be retried - re-raise immediately
|
|
152
150
|
log_task_error(task_name, e, :validation, execution_start)
|
|
153
|
-
emit_task_execution_event(task_name, success: false, execution_start: execution_start, error: e, event_type: :validation)
|
|
154
151
|
raise TaskValidationError.new(task_name, e.message, e)
|
|
155
152
|
rescue TaskValidationError => e
|
|
156
153
|
# TaskValidationError from validate_inputs should be logged as :validation
|
|
157
154
|
log_task_error(task_name, e, :validation, execution_start)
|
|
158
|
-
emit_task_execution_event(task_name, success: false, execution_start: execution_start, error: e, event_type: :validation)
|
|
159
155
|
raise e
|
|
160
156
|
rescue StandardError => e
|
|
161
157
|
# Catch any unexpected errors that escaped retry logic
|
|
162
158
|
log_task_error(task_name, e, :system, execution_start)
|
|
163
|
-
emit_task_execution_event(task_name, success: false, execution_start: execution_start, error: e)
|
|
164
159
|
raise create_appropriate_error(task_name, e)
|
|
165
160
|
end
|
|
166
161
|
|
|
@@ -383,38 +378,6 @@ module LanguageOperator
|
|
|
383
378
|
'Agent::TaskExecutor'
|
|
384
379
|
end
|
|
385
380
|
|
|
386
|
-
# Emit Kubernetes event for task execution
|
|
387
|
-
#
|
|
388
|
-
# @param task_name [Symbol, String] Task name
|
|
389
|
-
# @param success [Boolean] Whether task succeeded
|
|
390
|
-
# @param execution_start [Time] Task execution start time
|
|
391
|
-
# @param error [Exception, nil] Error if task failed
|
|
392
|
-
# @param event_type [Symbol, nil] Event type override (:success, :failure, :validation)
|
|
393
|
-
def emit_task_execution_event(task_name, success:, execution_start:, error: nil, event_type: nil)
|
|
394
|
-
return unless @agent.respond_to?(:kubernetes_client)
|
|
395
|
-
|
|
396
|
-
duration_ms = ((Time.now - execution_start) * 1000).round(2)
|
|
397
|
-
|
|
398
|
-
metadata = {
|
|
399
|
-
'task_type' => determine_task_type(@tasks[task_name.to_sym])
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
if error
|
|
403
|
-
metadata['error_type'] = error.class.name
|
|
404
|
-
metadata['error_category'] = categorize_error(error).to_s
|
|
405
|
-
end
|
|
406
|
-
|
|
407
|
-
@agent.kubernetes_client.emit_execution_event(
|
|
408
|
-
task_name.to_s,
|
|
409
|
-
success: success,
|
|
410
|
-
duration_ms: duration_ms,
|
|
411
|
-
metadata: metadata
|
|
412
|
-
)
|
|
413
|
-
rescue StandardError => e
|
|
414
|
-
logger.warn('Failed to emit task execution event',
|
|
415
|
-
task: task_name,
|
|
416
|
-
error: e.message)
|
|
417
|
-
end
|
|
418
381
|
|
|
419
382
|
# Summarize hash values for logging (truncate long strings)
|
|
420
383
|
# Optimized for performance with lazy computation
|