{"_id":"@sayknow-cli/ai","_rev":"57-445e6ff8f76ab162ab860ac41f4105f0","name":"@sayknow-cli/ai","dist-tags":{"latest":"0.6.3"},"versions":{"0.2.2":{"name":"@sayknow-cli/ai","version":"0.2.2","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.2.2","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"2ca3fcd829720468504b0cbc1164cd740aff70db","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.2.2.tgz","fileCount":361,"integrity":"sha512-F4I09Lf0pRa0vKd9Ry3tUcyDzPIG0Ks0Rx+8z/U4S3uBP6WGgZSgEpY9zZoFTauGj7oiQEhOeOWoOsAdF9JCrQ==","signatures":[{"sig":"MEUCIQCEzNyzkj59tCjeb4a8N+lq25w+z7sjVsopmfeLsXuOBwIgCRgtKTz2Bld0Q9ixJLlKxv6gJyKiL0cDuWrHwvIXPzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5114891},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"93aac3dcb92c96c01475d95056e3726d0d695da3","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.2.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.2_1781802459915_0.6772176802557766","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@sayknow-cli/ai","version":"0.2.3","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.2.3","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"71b52cfe3ffc685c8ec2a8a8c2ceae8dffa611d8","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.2.3.tgz","fileCount":361,"integrity":"sha512-UvYdCHxNGHkHLDhPkgOKBf5Lv6X7d8ulymvec0NWWyYN9cQ/RwhSJ7NfXemVyUdWcb5ySe+1P5N7VIwfrU6bKA==","signatures":[{"sig":"MEUCIQDgNg8KZ1aw4yP7C0Qi/Vh8zkVk3PT6YEcPbShfqZz4jQIgSy8kCSkhMo8h5lket6pg49/JpD2/tBWcZEYBPXVGk04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5114891},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"beedd7a34221d938ef6059589b338171e5957c94","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.2.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.3_1781806285035_0.6673002569320325","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@sayknow-cli/ai","version":"0.2.4","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.2.4","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"8fad13ce844b13174aa5c78fa16d500daac061a7","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.2.4.tgz","fileCount":361,"integrity":"sha512-sgmOGOxKi2Gu4YeXjj/5RZAOIZuQ5PZz8B3/a6DY9C9/pWBcCbHY3iQH2tw6qqiRcW6UXI5SxfvTTJg3kh1SXg==","signatures":[{"sig":"MEQCIF9IqF9FYYBiBsqqCNAZaB0jSEVxHNIsdqFuZpfjesf3AiBqHk7gcFCm5EeJ96wH/pPKVeipq3YTDFIluAHUkxyGZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5114891},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"294c7fcc2c3cc07fb0abf6bb6a97ab760ef77688","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.2.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.4_1781808279151_0.9484204412910799","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@sayknow-cli/ai","version":"0.2.5","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.2.5","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"6fd51d58608d3f8d86f268fb4551b912141f08e8","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.2.5.tgz","fileCount":363,"integrity":"sha512-z8cBX8eNzcDy5HFO7jUFQ+5zFLkXp4UhuV5v9szu3iamYcZA+M8D3hh6EsAxIhvkXQK7ugGiy5s33vLzCxanoA==","signatures":[{"sig":"MEUCIBHtq/Tq9osQS9mOT4tkagMEOOb5dzFlP+MSjB2IIcUrAiEAlOJd34zpOjexlSl0CoxLdg0aDA74L0/42+TCU+T8osA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5223154},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"b2ebcd307a4dfa6d3b3a9152f90bb58f5e2a4163","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.2.5"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.5_1782102007072_0.6347684680956645","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@sayknow-cli/ai","version":"0.2.6","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.2.6","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"8575481a4bfcae3c91ec320fe92cf8eeacc9fa99","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.2.6.tgz","fileCount":363,"integrity":"sha512-Ix1LU7PlTFNLHoeLD8pCuO2/qW6RhKlAAus49k8+zmnqQsQW69iW7LEAsUWSHKdpLfYTcYnUppMWH/AZSOPvAA==","signatures":[{"sig":"MEUCIQC+PKOUCDG851tYyHHSKYq2iQiJCSmuKTtg0Iy4JFDaSAIgNB/96qf4sUUwDqZMKhLkvwccvBjIM4Jh+lg8ToDuHWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5223154},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"da13b8fbcd7ca046f760edcc340821b7790e1aea","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.2.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.6_1782105621415_0.9269761120195197","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@sayknow-cli/ai","version":"0.2.7","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.2.7","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"4dfc1fd6cb4edfe22753458369f69902eb7c39e1","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.2.7.tgz","fileCount":363,"integrity":"sha512-iFxoLN+pCch3GuVT22xUBVihN/Nk4ED5Gg0JUm4TDc+qGG47SiWDE2xMRkPISexmyg10xr497gRiXCiIPf9hxA==","signatures":[{"sig":"MEUCIQCbPJD8nSoJNHx1S9y/k7ApRpU7kPfs5tMifNxZCk63eAIgHGXx6Dblx1QFIiYhveeH25MslVFM/CbW8uxk0WLvftU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5223154},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"bec161883e0ea67f1a69ec515c2693c8ee647d25","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.2.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.2.7_1782150568849_0.18027590401089744","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@sayknow-cli/ai","version":"0.3.0","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.0","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"5a04c9f563adc9d41ebafbd3e83d3c2a258aaa50","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.0.tgz","fileCount":365,"integrity":"sha512-+6e/sPn4l/jIYDPSZli/aFrZ86bZLmns4S2QDJZg74uFz1RZst7dQJCxUUxU8ts8Kqua70P5NH0n8FdjVDXomw==","signatures":[{"sig":"MEYCIQCnYN3x90EYBWMPDwMfxzqlEZ1stgFqf4Z4xKp2U81qmAIhAKwQ72R9Lx+4gK+dpKqgKlI1FtYA4YmR+9bJcbdi14zI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5263050},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"fe1892bcafec7bbe3aeba35e0d860573b73d9e01","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.0_1782233477840_0.9325547844293061","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@sayknow-cli/ai","version":"0.3.1","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.1","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"d567cd604a6294cd94cb2747eab7457571e5ef83","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.1.tgz","fileCount":365,"integrity":"sha512-fO4FBxnQpPNina4l18e0kRTQgtMgtl6x+q3w6H0JeB8VEaOoxP9NdT2rBcpqrzPQO6ql6xIAJ04LdNpzuLohIg==","signatures":[{"sig":"MEYCIQDrM7V8PGEEulcvPoG2RPXaDAsLaFZgcvpObbyEIfT5NQIhANbviz7ZDPb6ZC62Uj19Zds/7ruVsg6ZL2wozwS6uvjS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5269623},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"74a752615e43ef445a0c4b8ef0cb9cf52400404a","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.1_1782378853984_0.6872595526722622","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@sayknow-cli/ai","version":"0.3.2","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.2","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"5ea40f3d628ad72509f2cc80227e87160e9a6b75","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.2.tgz","fileCount":367,"integrity":"sha512-SOPImkv8gPhnuB1Lowxt9uT0kS8opBj4zCnYv4sEnixvr7v9PY/JGb6Fgx76ms5LqugwVHAZkiGQZ3rDZyn+Mw==","signatures":[{"sig":"MEQCIFBJRw436OEVxQsPf+dbUna0+vZiEWnQ3FCcMa44ro0CAiA09oP58SWm4RANSgK/e5ANxQ5wKofgU2PzLS522u9wQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5291222},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"f2765a64f64e7912eab2191fe632f349e548d99c","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.2_1782644929315_0.2832220305212889","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@sayknow-cli/ai","version":"0.3.4","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.4","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"5d4bc7c237e0f54078ad4ed33ce81cfd00ed8b09","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.4.tgz","fileCount":367,"integrity":"sha512-Vez6SSUtvu8w37/IFocXKfLRnMR2wpYKXZ40AVQcdYtXsrEyHZblEKDCwsT4X4blvF9wiUh5505LnTBcCNprIQ==","signatures":[{"sig":"MEYCIQDm+Qw468YfpbyS2hCvjZ3cQ6sttW66YULgbSL7sloo4QIhANfmUcLl9O4BETIFD+oRFNB94vFf66XDMpDKZ6pXvUQj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5291824},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"c7f53744daa22043a7c44a3db11b8a2bb6124f78","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.4_1782658323151_0.8179693576679257","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@sayknow-cli/ai","version":"0.3.5","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.5","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"d03a6c289d2d356267815a653c7a76258e50d6d1","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.5.tgz","fileCount":367,"integrity":"sha512-t6vZ2mVGgYXkiFcHRUIuRkeNRdXKXGXhEeXdA5xjyRpse8Jy4cAkRfnamvoiDe1fPlXMsQTLVRw5EKaYhwUDFw==","signatures":[{"sig":"MEQCIFIDpi4LpJ7wCy16kPXYbcwvQgAxi5exq/Pr9fKz+wI8AiBlLvIKgAb/bx5EmTuzp9uKRyqK7f0jDqVMDu5sYkVnOg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5291824},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"ea2951b5882ff99e321359af21737b29f280a5f7","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.13.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.5"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.5_1782719252064_0.6594415387356014","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@sayknow-cli/ai","version":"0.3.6","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.6","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"c530edcd8b981ac9340a5d509ea6dccd0b5cff87","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.6.tgz","fileCount":190,"integrity":"sha512-DXzadhT9UEV3FfjZnP1L2S29zaw4l/kq8zOinZJ8INZKvwYreGrvlUQyYJ62eDHDYTaV2vu6vZ2Fs7WwNRPfIw==","signatures":[{"sig":"MEUCIEA0V0ft7FCZ/uj/Jfyo2VsH/HIUHX8PUatX9nCoWsHeAiEAtLQ+jacTRoc7JloniL4Bd+QF7zY4Vq71qAbq6Rx8mII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4483723},"main":"./src/index.ts","type":"module","_from":"file:sayknow-cli-ai-0.3.6.tgz","types":"./src/index.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./src/usage/*.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./src/utils/*.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./src/auth-broker/index.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./src/models.json.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./src/providers/*.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./src/utils/oauth/index.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./src/auth-gateway/index.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./src/utils/schema/index.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./src/auth-broker/*.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./src/utils/oauth/*.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./src/auth-gateway/*.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./src/utils/schema/*.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./src/provider-models/index.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./src/utils/discovery/index.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./src/provider-models/*.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./src/utils/discovery/*.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./src/providers/cursor/gen/*.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./src/providers/openai-codex/*.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/Volumes/jmin-G/Dev/sayknowCLI/sayknow-cli/packages/ai/sayknow-cli-ai-0.3.6.tgz","_integrity":"sha512-DXzadhT9UEV3FfjZnP1L2S29zaw4l/kq8zOinZJ8INZKvwYreGrvlUQyYJ62eDHDYTaV2vu6vZ2Fs7WwNRPfIw==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.12.1","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.6_1782890638033_0.5368365603983287","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@sayknow-cli/ai","version":"0.3.7","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.7","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://github.com/jaybeyond/Sayknow_CLI","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"f6d002bc05e1afab060d1e23de862e7294db3e61","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.7.tgz","fileCount":369,"integrity":"sha512-UY22/XeWUGhz0fSPcjUDHGxC9yk+m6++RwFxdy3SN4tbPCDgb+EoCImAOlJLRk1wNmRD9AIIF1nPDiUf8+FFJQ==","signatures":[{"sig":"MEUCIQDYE8APDvOui1PFGHdmAaKzVFVVmP3E92BathF+8zdULwIgHnCRXxTuQvkBxkJaLL5nEwf8ed49SXa9FRws2AjJ0J0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5298429},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"3f7b5c4ed72af60be4c329e855defc4337214d34","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.12.1","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.7_1783358474006_0.11085891300856798","host":"s3://npm-registry-packages-npm-production"}},"0.3.8":{"name":"@sayknow-cli/ai","version":"0.3.8","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.8","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"48bd1196b8a99137ca0697a065cd5306a85f9fe1","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.8.tgz","fileCount":371,"integrity":"sha512-f+nm1KMaAUCqEEjaKXRx6Bn4AQbm6dvbvrHLAbCrYVC6hIrdNOD29HEF3jCg21I0pTvNL7iGvUr7VvssKilY6A==","signatures":[{"sig":"MEQCIQCx9zPtETBe9PFAX/1YCmsfrrO6D2ArGGVGqUfzgUAmxgIfC77i+Gn9XKWTcCGfq+c+aEbF7/HOItNb/eNNbVmU2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5305878},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"b2d48fcb0197406a2cdd9ea45a4f91ab9712828c","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.12.1","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.8"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.8_1783511321159_0.9331721889926108","host":"s3://npm-registry-packages-npm-production"}},"0.3.9":{"name":"@sayknow-cli/ai","version":"0.3.9","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.9","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"82eba74c147e6dacaaed30491bfd3d12c6591500","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.9.tgz","fileCount":373,"integrity":"sha512-uyLm0QnFGCHcM/L7CykgVQVM9+dCA3dNQ4fCywxWAxF2bLe6dxzy/DGb0Hw7TU4IB0qsppojJheArnJMNy9Brg==","signatures":[{"sig":"MEQCIDv0OJXsMRTc5KQmldB2VgSOfgFqWlRGTX2eKf/BY95sAiBHZPB0zWanZ7rVxMUM2Ce8mKHsQOToMOBoEUAi0EIXPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5308548},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"a6c21623fa89f24f7b063b0165c3933fbef7e4ea","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.9"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.9_1783530564192_0.12071310390043899","host":"s3://npm-registry-packages-npm-production"}},"0.3.10":{"name":"@sayknow-cli/ai","version":"0.3.10","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.10","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"6088c43cf8bb8262f549340dfc68f53c593a91f4","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.10.tgz","fileCount":373,"integrity":"sha512-ONCHNHbYkZlCst/bzL3mSECSb/RQuY9v0CS2NHaIRGtqAVN7ggj+OaFmtQFZDio8DzWiu+IG7t7eaO5hf4adeQ==","signatures":[{"sig":"MEYCIQDnc99SX2DGIdZVPgkGO4blyoHXIuLoFJKtleN/wYGI/QIhAPyVd6vniJFQIe/mjRhw78JwlSpQ8jsW+193Nb95nPpt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5375882},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"c2b6d37c1b5be0db1d43381e78f9ff035b56a392","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.10"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.10_1783586638222_0.04877445314070061","host":"s3://npm-registry-packages-npm-production"}},"0.3.11":{"name":"@sayknow-cli/ai","version":"0.3.11","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.11","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"6c9c9cc79d6ecc14120d61fcd5599b85199069a2","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.11.tgz","fileCount":373,"integrity":"sha512-86rYVWj64rdPcCa75kJgfVPWOZTP2fnTxroYScnpXMLiTdagyXFrBBJJL/NMK0fg5BW7E+tl+3xAgSR7HNv8Fg==","signatures":[{"sig":"MEYCIQD3IF2BmKqh0DDAza0q6FE9wOZMyhGwOq3aS6btgh1TJQIhAM7cHp5dAoVz1bMZULMdIDAtolWup1Epu6Vb7jGFgS5o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5375882},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"3244f90500bc60e2eb8cda5e9d09a249bd5a7ff5","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.11"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.11_1783591384157_0.241616302779319","host":"s3://npm-registry-packages-npm-production"}},"0.3.12":{"name":"@sayknow-cli/ai","version":"0.3.12","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.12","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"8e736f7e4dd5bf10b12b27ba7e96271e19ecb510","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.12.tgz","fileCount":375,"integrity":"sha512-xQleQHjtSnfH7nirCMAGX4O8Uab+uGij7DOrskTekDK81ySn9N4Xm9lvDWrHM5zsdKu6UfoDw1Cq2k+a6OrlJw==","signatures":[{"sig":"MEYCIQDwqD19yo6On+tMMhvSvCujHG9Y6KzXGwNISFhPDp8pUQIhAOPlNeX5xVEyDkj6Fl3D5FmdksFWiQzf0dSXZAz4/NSe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5382183},"main":"./src/index.ts","type":"module","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"gitHead":"1f44fc8c9ab560882fe73b04f473cebc91a0e457","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.12"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.12_1783668481066_0.26594448767055123","host":"s3://npm-registry-packages-npm-production"}},"0.3.13":{"name":"@sayknow-cli/ai","version":"0.3.13","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":"jaybeyond","license":"MIT","_id":"@sayknow-cli/ai@0.3.13","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":["Mario Zechner"],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"4c9e2794dc0b1fa22a111219d96f01dee14a5c9c","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.13.tgz","fileCount":194,"integrity":"sha512-SpYSw09nCltahuSpl2oFi5nmhnYxAMnBwGz3mb6lVsCQBKx/DvcdAx5WCRSY8bW0c5iYLeVAi36VXVUcb8FNMA==","signatures":[{"sig":"MEYCIQC94XUQ/8fsc9OORqQ/0oXzCpy62wtXf8LQ+oyZpSAFlAIhAIhDJBTwdYpBltDyjPtAkgfN2nF5ZNSMOlyRMp5OPpC3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4578193},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"4c9e2794dc0b1fa22a111219d96f01dee14a5c9c","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./src/usage/*.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./src/utils/*.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./src/auth-broker/index.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./src/models.json.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./src/providers/*.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./src/utils/oauth/index.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./src/auth-gateway/index.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./src/utils/schema/index.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./src/auth-broker/*.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./src/utils/oauth/*.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./src/auth-gateway/*.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./src/utils/schema/*.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./src/provider-models/index.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./src/utils/discovery/index.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./src/provider-models/*.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./src/utils/discovery/*.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./src/providers/cursor/gen/*.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./src/providers/openai-codex/*.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_integrity":"sha512-SpYSw09nCltahuSpl2oFi5nmhnYxAMnBwGz3mb6lVsCQBKx/DvcdAx5WCRSY8bW0c5iYLeVAi36VXVUcb8FNMA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.8.3","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.13"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.13_1783936152004_0.30198013253028355","host":"s3://npm-registry-packages-npm-production"}},"0.3.15":{"name":"@sayknow-cli/ai","version":"0.3.15","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.15","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"3c8ac77878c609893ec4d419de5a8d65538b528e","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.15.tgz","fileCount":377,"integrity":"sha512-g0YSblSIzxLjA2SpS78lze/36lL4judJvW3vZH5Szdbqt7aWRS3VVdlwCbUmX1qR+gvx4GrEV5Pp5+R3dCOiEg==","signatures":[{"sig":"MEUCIQDATATRvudjxaQryvA66wPUJ25gYXfVxLA486bKOprOpAIgZXCS6VaN/I/FCC8UfLUGwjC/mhOlVvtpmNwMCesGJvE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5391630},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/sayknow-release-evidence/tarballs/8346126e5488cf12e30364a94bbf25cdeff7ea52f88ee749bd6def647e52cdd6eab7b696452dd555d97009b5265f5a91fa0bf1e06ac45793e9e7e4777423a212.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/sayknow-release-evidence/tarballs/8346126e5488cf12e30364a94bbf25cdeff7ea52f88ee749bd6def647e52cdd6eab7b696452dd555d97009b5265f5a91fa0bf1e06ac45793e9e7e4777423a212.tgz","_integrity":"sha512-g0YSblSIzxLjA2SpS78lze/36lL4judJvW3vZH5Szdbqt7aWRS3VVdlwCbUmX1qR+gvx4GrEV5Pp5+R3dCOiEg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.15"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.15_1783985952803_0.5702193971340574","host":"s3://npm-registry-packages-npm-production"}},"0.3.16":{"name":"@sayknow-cli/ai","version":"0.3.16","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.3.16","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"5aa2affa2addcf641403a2180ec1c20040bc9c61","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.3.16.tgz","fileCount":377,"integrity":"sha512-WDuz4e6m0FwCKaUYNkn+N/Da5rf2BXP3hbh5TyLDFONTfTmttTznx4suiD1j0C3Z/SimCLWactryRlG05lDjHQ==","signatures":[{"sig":"MEUCIQCKcHQS2vqtjQFjQwuw90M4l6a7lOYfXYsELbWPVYPQdgIgRG+s71dmbYl4d9K6n5KJcHj+M9A59cuXVuWt3e9xk68=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5391630},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/sayknow-release-evidence/tarballs/583bb3e1eea6d05c0229a5183649fe37f0dae6b7f60573f785b8794f22c314e3537d39adb53ce7c78b2e883d63d02dd9fd28a608b59a72daf24651b4e650e31d.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/sayknow-release-evidence/tarballs/583bb3e1eea6d05c0229a5183649fe37f0dae6b7f60573f785b8794f22c314e3537d39adb53ce7c78b2e883d63d02dd9fd28a608b59a72daf24651b4e650e31d.tgz","_integrity":"sha512-WDuz4e6m0FwCKaUYNkn+N/Da5rf2BXP3hbh5TyLDFONTfTmttTznx4suiD1j0C3Z/SimCLWactryRlG05lDjHQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.16"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.3.16_1784020522331_0.5146337829139953","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@sayknow-cli/ai","version":"0.4.0","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":"jaybeyond","license":"MIT","_id":"@sayknow-cli/ai@0.4.0","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":["Mario Zechner"],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"0d40a7492821cbdd5db3e7a63ee821143252369c","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.0.tgz","fileCount":196,"integrity":"sha512-Jt5qyIkBH/fcBgFpn9yGqJFMsQNKQNOVrfBhBowbZezMvMq4pC78kIm0onGlyQiQhSiQk/wQxHDqQNPOvVrKxA==","signatures":[{"sig":"MEYCIQC6D/bo9Md9vKDkgIbU8N/V9pNCk7QA02jmQNuL9My08QIhAJBC7BUQIBUN2S9m4zB32VAyi/C3LYTBeOt6MEnz1kLk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4642393},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"0d40a7492821cbdd5db3e7a63ee821143252369c","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./src/usage/*.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./src/utils/*.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./src/auth-broker/index.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./src/models.json.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./src/providers/*.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./src/utils/oauth/index.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./src/auth-gateway/index.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./src/utils/schema/index.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./src/auth-broker/*.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./src/utils/oauth/*.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./src/auth-gateway/*.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./src/utils/schema/*.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./src/provider-models/index.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./src/utils/discovery/index.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./src/provider-models/*.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./src/utils/discovery/*.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./src/providers/cursor/gen/*.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./src/providers/openai-codex/*.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_integrity":"sha512-Jt5qyIkBH/fcBgFpn9yGqJFMsQNKQNOVrfBhBowbZezMvMq4pC78kIm0onGlyQiQhSiQk/wQxHDqQNPOvVrKxA==","deprecated":"broken catalog: resolution — use 0.4.1+ instead","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.8.3","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.3.16"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.0_1784622168620_0.11818024049931797","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@sayknow-cli/ai","version":"0.4.1","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":"jaybeyond","license":"MIT","_id":"@sayknow-cli/ai@0.4.1","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":["Mario Zechner"],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"e556333e3b69ea201ea8bee5b88d2759d8985812","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.1.tgz","fileCount":196,"integrity":"sha512-zQEJ2froGm69MLHDuWzYUMP8Rv6lbcNeibM4+yrmLqBuICn1gORv75YkxgHH628IoopcXQEk6AOHpY1/8ZT7Ig==","signatures":[{"sig":"MEUCIE4aUnR4cZ2HPjtmBS5tIOE6drcXdbFJItyPyv10shkkAiEAmVdiaowiAj3lPyiHXEU9WQYqhhHeGa1gYPp9iTeY1Zw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4642392},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"e556333e3b69ea201ea8bee5b88d2759d8985812","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./src/usage/*.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./src/utils/*.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./src/auth-broker/index.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./src/models.json.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./src/providers/*.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./src/utils/oauth/index.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./src/auth-gateway/index.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./src/utils/schema/index.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./src/auth-broker/*.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./src/utils/oauth/*.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./src/auth-gateway/*.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./src/utils/schema/*.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./src/provider-models/index.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./src/utils/discovery/index.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./src/provider-models/*.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./src/utils/discovery/*.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./src/providers/cursor/gen/*.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./src/providers/openai-codex/*.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_integrity":"sha512-zQEJ2froGm69MLHDuWzYUMP8Rv6lbcNeibM4+yrmLqBuICn1gORv75YkxgHH628IoopcXQEk6AOHpY1/8ZT7Ig==","deprecated":"loader nested-node_modules fallback missing — use 0.4.2+","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.8.3","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.1_1784623629332_0.8404308451389031","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@sayknow-cli/ai","version":"0.4.2","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":"jaybeyond","license":"MIT","_id":"@sayknow-cli/ai@0.4.2","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":["Mario Zechner"],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"09c8288bc94ac9f11fa23e97aebf09db0a1e7e69","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.2.tgz","fileCount":196,"integrity":"sha512-tpd+QuwOqQCgW8qN7Df+PCEttJtrLowVsXofoPzeGdtnlRE6HcXvFX9Lfsu7mPhA7hU6AKmdpmCAKWW6mShpTw==","signatures":[{"sig":"MEQCICt6HofBcaBq/IDuDVi93vy4Et9dhs3P5ZDRpmVC7zECAiAxSfmN00wac+G06t32M3z4FT/ElUmjo4IHAUaJC1rSHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4642392},"main":"./src/index.ts","type":"module","types":"./src/index.ts","shasum":"09c8288bc94ac9f11fa23e97aebf09db0a1e7e69","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./*":{"types":"./src/*.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./src/usage/*.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./src/utils/*.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./src/auth-broker/index.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./src/models.json.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./src/providers/*.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./src/utils/oauth/index.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./src/auth-gateway/index.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./src/utils/schema/index.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./src/auth-broker/*.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./src/utils/oauth/*.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./src/auth-gateway/*.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./src/utils/schema/*.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./src/provider-models/index.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./src/utils/discovery/index.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./src/provider-models/*.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./src/utils/discovery/*.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./src/providers/cursor/gen/*.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./src/providers/openai-codex/*.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_integrity":"sha512-tpd+QuwOqQCgW8qN7Df+PCEttJtrLowVsXofoPzeGdtnlRE6HcXvFX9Lfsu7mPhA7hU6AKmdpmCAKWW6mShpTw==","deprecated":"superseded by 0.4.3 — CI now publishes all platforms atomically","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"10.8.3","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.2_1784624281105_0.6834893395708803","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@sayknow-cli/ai","version":"0.4.3","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.4.3","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"5f2e0f005b10321c0375c07f3fadccbb3d355e69","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.3.tgz","fileCount":381,"integrity":"sha512-lT85oq+QpkOws5K99v47D06kkYR9XlZMNYLyZpKF9Bx3y0j85rNXRx/2fIL3iovgKVNMoadANMpIQtIq7/We7A==","signatures":[{"sig":"MEYCIQD3BKasKjng4+adyw6iP8shE5byBobKRYk5ir1FfeQbCAIhAM7DR9j3zcrGFq+OLyWMJP7oMgIhgDImpk4ToeHsQIek","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5464585},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/953f39a2af90a643b0b392bdf6fe3b0f4ea491847d5e564c3582f2669285f41c77cb48fce6b357471ff67c82f78a8be029534ca1a74034ca4842d22aeff59eec.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/953f39a2af90a643b0b392bdf6fe3b0f4ea491847d5e564c3582f2669285f41c77cb48fce6b357471ff67c82f78a8be029534ca1a74034ca4842d22aeff59eec.tgz","_integrity":"sha512-lT85oq+QpkOws5K99v47D06kkYR9XlZMNYLyZpKF9Bx3y0j85rNXRx/2fIL3iovgKVNMoadANMpIQtIq7/We7A==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.3_1784638276246_0.025988020658226807","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@sayknow-cli/ai","version":"0.4.4","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.4.4","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"e7d360c0f7580e643b77088510573d2bb65aec90","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.4.tgz","fileCount":381,"integrity":"sha512-jk/O1vMZrruSAv/vBOLoZ7033dh4g4CGo/SAecZawgGoS3OsT01QnWLkLfnAypBzDjXIEQWsvoDQOjQ6B4RUvA==","signatures":[{"sig":"MEYCIQCzEImi48/90TLaNhbLeH9cXl72qkuJ4Rb+njlxSYB3hQIhAKn2cXqNJXr67YKmEIprRLkl/N4LRQqfOi2K7TNeYYmx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5464585},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/8e4fced6f319aebb9202ffef04e2e867bd37ddd878838086a3f48079c65ac201a84b73ac4f4d509d62e42df9c0ca90730e35c81105acbe80d03a343a078454bc.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/8e4fced6f319aebb9202ffef04e2e867bd37ddd878838086a3f48079c65ac201a84b73ac4f4d509d62e42df9c0ca90730e35c81105acbe80d03a343a078454bc.tgz","_integrity":"sha512-jk/O1vMZrruSAv/vBOLoZ7033dh4g4CGo/SAecZawgGoS3OsT01QnWLkLfnAypBzDjXIEQWsvoDQOjQ6B4RUvA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.4_1784741955981_0.3669283783929218","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@sayknow-cli/ai","version":"0.4.5","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.4.5","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"c2f14352e82cd114edebc8ee55a891ce304672fb","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.5.tgz","fileCount":381,"integrity":"sha512-hgTqI7b1iAyotToe72Ai1RSQApowk0ehjZiV4BLdur84myOBuY+gHoqPkF/alxiPyBCaWnFjW/KbgWYKUZs/vw==","signatures":[{"sig":"MEQCIB8LiVok0zTxK2q3L9AzbLcMGEyxtXieMuaaeleZ7aeyAiBhGYU6tFHTjzR1u+CU/W91dDmZj3jrscvNCCcZj+kVvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5464585},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/8604ea23b6f5880ca8b53a1eef6022d51490029a309347a18d9895e012ddbabf389b2381b98fa01e8a8f905fda97188fc8109a5a71635bf29b81660a519b3fbf.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/8604ea23b6f5880ca8b53a1eef6022d51490029a309347a18d9895e012ddbabf389b2381b98fa01e8a8f905fda97188fc8109a5a71635bf29b81660a519b3fbf.tgz","_integrity":"sha512-hgTqI7b1iAyotToe72Ai1RSQApowk0ehjZiV4BLdur84myOBuY+gHoqPkF/alxiPyBCaWnFjW/KbgWYKUZs/vw==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.5"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.5_1784795811654_0.15988628079050793","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"@sayknow-cli/ai","version":"0.4.6","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.4.6","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"2a2fe6db3e83d9655dc43548db1a1bfa8e9210be","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.6.tgz","fileCount":381,"integrity":"sha512-JEYmd+S8cGfp3udfaDjgcDz9HNEuBBQbFVwULDlDKXAD40Ac6JsQhd4KWY0BlNhGHycu4EThHy8awn0t56wSmg==","signatures":[{"sig":"MEYCIQDCj2426vdkB4pHmjm/9GZNZE4me5TDYnGkC3w6+RTrKAIhAOQSa/F8oPWkbJNUuJul7XWmG50IJi7ylhy1lrND/k3L","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5464585},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/24462677e4bc7067e9dee75f6838e0703cfd1cd12e04141b155c142c3943297003e3401ce89b1085de0a598d0194d8461f272ee044e11f2f1ac27d2de7ac129a.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/24462677e4bc7067e9dee75f6838e0703cfd1cd12e04141b155c142c3943297003e3401ce89b1085de0a598d0194d8461f272ee044e11f2f1ac27d2de7ac129a.tgz","_integrity":"sha512-JEYmd+S8cGfp3udfaDjgcDz9HNEuBBQbFVwULDlDKXAD40Ac6JsQhd4KWY0BlNhGHycu4EThHy8awn0t56wSmg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.6_1784809928549_0.4800078391863871","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"@sayknow-cli/ai","version":"0.4.7","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.4.7","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"b7ae0c3689d209754ffd13cf0b45857c24afa106","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.4.7.tgz","fileCount":381,"integrity":"sha512-b7BrU4G3EmuqJyBlG0HTlzOFWE3qP6ktvC0XPjZskms9hNbXdbEWSLIx64RD9QtAmQmbVR7qndod6KEOmIiKQw==","signatures":[{"sig":"MEUCIHeQytjH/0V/MaA9d9fIXuweiS10WFvO90QavJ9yPzzrAiEArFJNX8bC1RL94JPe/zLW+OyLyEj8fj5seje1KQtbkfg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5464585},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/6fb06b5381b7126baa2720651b41d3973385584dea3fa92dbc2d173e366c926b3d84d6d775b11648b231eb8443f50b4099099b551eea9dda1de8a10e98888a43.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/6fb06b5381b7126baa2720651b41d3973385584dea3fa92dbc2d173e366c926b3d84d6d775b11648b231eb8443f50b4099099b551eea9dda1de8a10e98888a43.tgz","_integrity":"sha512-b7BrU4G3EmuqJyBlG0HTlzOFWE3qP6ktvC0XPjZskms9hNbXdbEWSLIx64RD9QtAmQmbVR7qndod6KEOmIiKQw==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.4.7"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.4.7_1784881373861_0.49032351192791546","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@sayknow-cli/ai","version":"0.5.0","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.0","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"de56198b6bd9ac543b0c67f5143ed088e6298798","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.0.tgz","fileCount":385,"integrity":"sha512-Ebbc26jSfixdHxOy/r1JPjXiSlk+9/G9VeAlVmsqVGEyrr9K2FYB0BpcnaMs6Fd7HfV0xQoQ3va8TBieAaRROQ==","signatures":[{"sig":"MEUCIDaJn2fK0O6nAjNtrSCdKpQDv7Br/1EVvjWlF0H6l4exAiEA7bJTmeJ4VfnkWeX1SledD1MUhpQuTWJvHDiZ/+oTImE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5570717},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/11b6dcdba8d27e2c5d1f13b2febd493e35e24a593ef7f1bd55e025566b2a546132aebf4ad85601d01a5c9da32ce8577b1df574c50a10def6bc4c189e01a45139.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/11b6dcdba8d27e2c5d1f13b2febd493e35e24a593ef7f1bd55e025566b2a546132aebf4ad85601d01a5c9da32ce8577b1df574c50a10def6bc4c189e01a45139.tgz","_integrity":"sha512-Ebbc26jSfixdHxOy/r1JPjXiSlk+9/G9VeAlVmsqVGEyrr9K2FYB0BpcnaMs6Fd7HfV0xQoQ3va8TBieAaRROQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.0_1785259085432_0.8421116282056129","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@sayknow-cli/ai","version":"0.5.1","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.1","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"6b41eb5c617be265a407e1f192d21a6cf6f815ee","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.1.tgz","fileCount":385,"integrity":"sha512-EkX/dBxULh4Vt1JB6qEOsSp8kdmQ1ByMBgqmQRQNM75FkYUNU/BbxfzHyb2sivHDt6XXG9zJiDOVTRLAf5MdgQ==","signatures":[{"sig":"MEQCIAHJ9cZ46I91FujgWlTPfnRFv1Js3ufwKNmBi8H914/aAiB2LO8RidCRnG2Gw1NFQtNIWpKkfXj5VzPTAkwH1vrqEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5570717},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/1245ff741c542e1e15b75241eaa10eb12a7c91d990d41c8c060aa641140d33be4591850d53f05bc5fcc7c9bdac8af1c3b7a5d71bdcc98833954d12c07f931d81.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/1245ff741c542e1e15b75241eaa10eb12a7c91d990d41c8c060aa641140d33be4591850d53f05bc5fcc7c9bdac8af1c3b7a5d71bdcc98833954d12c07f931d81.tgz","_integrity":"sha512-EkX/dBxULh4Vt1JB6qEOsSp8kdmQ1ByMBgqmQRQNM75FkYUNU/BbxfzHyb2sivHDt6XXG9zJiDOVTRLAf5MdgQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.1_1785304337921_0.297676168128445","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@sayknow-cli/ai","version":"0.5.2","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.2","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"a992bb1b91d94c5c10ea02163b1b4264c345ae8f","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.2.tgz","fileCount":385,"integrity":"sha512-LG1vZqzbAS8y9mYxDTFn5tyh6vG4hcaGaWW87+H7aFMrKjWkNlyppugS40jFkSEbfF/p7CyWJMEieUkfsdxYvA==","signatures":[{"sig":"MEQCIBmPkCpMY+uBiaWkTi4kbBB9gzLPtSuuFUFPZesJvRosAiBDGBoJy0YwqUMPa6QOpgfeogfLdD6F8z2VFPezdQaNgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5570825},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/2c6d6f66acdb012f32f666310d3167e6dca1eaf1b885c6866965bcefe1fb68532b2a35a4365ca9a6e812e348c591211b7c5fe9ec2c9624c12279491fb1dc58bc.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/2c6d6f66acdb012f32f666310d3167e6dca1eaf1b885c6866965bcefe1fb68532b2a35a4365ca9a6e812e348c591211b7c5fe9ec2c9624c12279491fb1dc58bc.tgz","_integrity":"sha512-LG1vZqzbAS8y9mYxDTFn5tyh6vG4hcaGaWW87+H7aFMrKjWkNlyppugS40jFkSEbfF/p7CyWJMEieUkfsdxYvA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.17.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.2_1786709444918_0.24532057683043207","host":"s3://npm-registry-packages-npm-production"}},"0.5.6":{"name":"@sayknow-cli/ai","version":"0.5.6","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.6","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"d92add7e0e29a7781d6c4bc49afe24cf5ade1a96","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.6.tgz","fileCount":387,"integrity":"sha512-bZpa7Dzh0MivPgwtyHiRH4vPXF6W9sV2CF/W7kI3IheALPYipmSfZw/K3oa6miuQhHTmdAOZ1+4+Hn6+W7Ru9g==","signatures":[{"sig":"MEQCICpk0YWmqkCrQDIEsIBzHRj6Fr+3cpBsUfXA8QVpZEqBAiBZKxzwVIkQ1WXYVlvOQGlfPDb6TSy3H7IYSDz78GLJNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5590670},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/6d9a5aec3ce1d0c8af3e0c2dc878911f8bcf5c5e96f6c576085fd6ee42372217802cf622a6649f670fcade86ba9a2b908474e6740399d7ee3e1e7ebe5bb46ef6.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/6d9a5aec3ce1d0c8af3e0c2dc878911f8bcf5c5e96f6c576085fd6ee42372217802cf622a6649f670fcade86ba9a2b908474e6740399d7ee3e1e7ebe5bb46ef6.tgz","_integrity":"sha512-bZpa7Dzh0MivPgwtyHiRH4vPXF6W9sV2CF/W7kI3IheALPYipmSfZw/K3oa6miuQhHTmdAOZ1+4+Hn6+W7Ru9g==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.17.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.19.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.6_1787915137122_0.7663170218029389","host":"s3://npm-registry-packages-npm-production"}},"0.5.8":{"name":"@sayknow-cli/ai","version":"0.5.8","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.8","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"8b2e0f2225f5ddff3e788cc6aaba2690eff31760","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.8.tgz","fileCount":387,"integrity":"sha512-UxhHOHmNQmZEc2AG5VAGFqwQ3RWEGi5qv3ugTxmezIEJ5kevi1rh9xl1vWXVvhMsGH782Nc2Eq5KXbUwz/OeMg==","signatures":[{"sig":"MEYCIQDC3p549BpImL48K9F3xTJEJJF+zJgfreUPqscKBr7lPAIhAN5N4xvIYNVy/2KquTT6dCI6S3npQchLsdMG6NWoayXJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGvwUI1Ydlr58IVNgQgY3tqN2z1l6VgitHzE70Lfj17aAiEA5+K9w9wkK4pywBRCKWJyQaxi0fWt5nQEnGRfVUHfxUA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5829134},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/53184738798d426644736006e5500616ac10dd15841a2e6abf7ba04f199ecc8109e647af8b5ae1f71975bd65d5be132c187efcd8d73612ae4a5db530cff39e32.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/53184738798d426644736006e5500616ac10dd15841a2e6abf7ba04f199ecc8109e647af8b5ae1f71975bd65d5be132c187efcd8d73612ae4a5db530cff39e32.tgz","_integrity":"sha512-UxhHOHmNQmZEc2AG5VAGFqwQ3RWEGi5qv3ugTxmezIEJ5kevi1rh9xl1vWXVvhMsGH782Nc2Eq5KXbUwz/OeMg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.8"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.8_1789030782912_0.5475212405634811","host":"s3://npm-registry-packages-npm-production"}},"0.5.9":{"name":"@sayknow-cli/ai","version":"0.5.9","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.9","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"bc4e1d60f690cb5e007fded1bff6b73a7702c464","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.9.tgz","fileCount":387,"integrity":"sha512-KnCsvoWC5G/3U5H5mTYaA8pwZT6CPqhECr0nQJ+AoSlUt0CKuQzJILKxEu315OM2n1IZYwQH7eEAeOwSnBxhwQ==","signatures":[{"sig":"MEQCIF+B9oKSezCEURvuS5EH5ndXwITBUn/DXeLTtBA5jYfuAiBSBTjFgZ8GaY/Tl6afTNPdBJKGakFjDS2NOuUVvGRavA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDEs8aFzcOGDOywKSgENd6l4D0w+u0KsvkEHmruk+6YNwIhANk5VyJHo2UgvgJmP9e1sj8bdDs07s6VK0ML4HsrPHdd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5829134},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/2a70acbe8582e46ff75391f999361a03ca70653e823ea8440abd27409f80a12954b7408ab90cc920b2b112edf5e4e3369f5219630407ede10078ec129c1c61c1.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/2a70acbe8582e46ff75391f999361a03ca70653e823ea8440abd27409f80a12954b7408ab90cc920b2b112edf5e4e3369f5219630407ede10078ec129c1c61c1.tgz","_integrity":"sha512-KnCsvoWC5G/3U5H5mTYaA8pwZT6CPqhECr0nQJ+AoSlUt0CKuQzJILKxEu315OM2n1IZYwQH7eEAeOwSnBxhwQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.9"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.9_1789039242861_0.05636334021643208","host":"s3://npm-registry-packages-npm-production"}},"0.5.10":{"name":"@sayknow-cli/ai","version":"0.5.10","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.10","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"3ac67d7dce0587e934335b31ee48692ec8a3b8be","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.10.tgz","fileCount":387,"integrity":"sha512-9bS8lbpnCH1lGwWZAU6gB4OC5U55zlOSZI9ZL4Jb/wY6kKsaxSBSlsKXXqL2le2ymZUhHqB46U/q7R0GR66bgg==","signatures":[{"sig":"MEUCIEWEE2efbdxln0i0X5sTt5BmQqouK7cxo52kLwTz0Sd9AiEAl/S80Ax5um9lmJyPTzF40k8KzcrfU/dPepBnT+B0nzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDyDYr0su0KAjYfSNeIyr2u8QRK6z0XS0xHfotwT1+L6AiAb50VFYrXvffdDlRVQ7wWvh25DRzH7Bd0/57eioBRcoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5830544},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/f5b4bc95ba67087d651b0599014ea0078382e54e79ce5392648f592f825bff063a90ab1ac5205296c2975ea2f695edb29995211ea078e94feaed1d0647ae9b82.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/f5b4bc95ba67087d651b0599014ea0078382e54e79ce5392648f592f825bff063a90ab1ac5205296c2975ea2f695edb29995211ea078e94feaed1d0647ae9b82.tgz","_integrity":"sha512-9bS8lbpnCH1lGwWZAU6gB4OC5U55zlOSZI9ZL4Jb/wY6kKsaxSBSlsKXXqL2le2ymZUhHqB46U/q7R0GR66bgg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.10"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.10_1789045790433_0.6551625305205406","host":"s3://npm-registry-packages-npm-production"}},"0.5.11":{"name":"@sayknow-cli/ai","version":"0.5.11","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.11","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"d8f6f4711de58b4b7bfdbff9513870ed92b7bc4d","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.11.tgz","fileCount":387,"integrity":"sha512-mhbPsTIVI3cDmTbJ7iCBCHwPJl6Sc4pNfRM/pU+N9ZKJa3zF2ra/xnRAWC2W5BsThLCg/J6/q/loHrsb9S41HA==","signatures":[{"sig":"MEQCIEbhYTKdPXjWzAZcdCjXapcKhXObC7gxgpGYveliWIsJAiAc9lHT1Z0UecivDSF8R7drqYRdGJKWFxIJnwn5vRDcpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC3v1ZNWBq1ckVu/aoaKmTPHz/n/yyG78XkCLrH2+v0+gIgCTvYzXOGIYELvipcAOH1zv7yRnR/n6AomenSgyG1QTI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5830570},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/9a16cfb132152377039936c9ee2081087c0f265e92738a4d7d133fa54f8df592896b7cc5dab6bfc67440582d96e41b1384b0a0fc9ebfabf9681ebb1bf52e351c.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/9a16cfb132152377039936c9ee2081087c0f265e92738a4d7d133fa54f8df592896b7cc5dab6bfc67440582d96e41b1384b0a0fc9ebfabf9681ebb1bf52e351c.tgz","_integrity":"sha512-mhbPsTIVI3cDmTbJ7iCBCHwPJl6Sc4pNfRM/pU+N9ZKJa3zF2ra/xnRAWC2W5BsThLCg/J6/q/loHrsb9S41HA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.11"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.11_1789053558620_0.12450522832224498","host":"s3://npm-registry-packages-npm-production"}},"0.5.13":{"name":"@sayknow-cli/ai","version":"0.5.13","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.13","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"fafb3b18f06c298069878bf6e03769ec3304f8a6","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.13.tgz","fileCount":387,"integrity":"sha512-3g4UNRmvPMfxyzRzofquQ0pALXob86P0z1HssOyFytBEGusDi+pjj38UzL04s8yRSUpikQBmwSfqjWlypsCM8g==","signatures":[{"sig":"MEYCIQD/EBPeJNhI1sCG6sZZEeJMvZv7TjQNd8I4LLBKtyXBkwIhAKSYVZcR111OM4LpKSJ2O2+UTF28QAtbp9qWyuph4IAm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDDO97wIeLRvbvkmuGZtDts3V4z1JACJPxJHjdWpRAs3gIgXPdDtIKG9yNp3ekq9Am+iv5Fr6QXg2Dk3X4EC0PxmCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/de0e143519af3cc7f1cb3473a1faae434a402d7a1bf3a3f4cf51ecb0ec85cad0441aeb038bea638f7f14ccbd38b3cc91494a62910066c127ea8d6972a6c08cf2.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/de0e143519af3cc7f1cb3473a1faae434a402d7a1bf3a3f4cf51ecb0ec85cad0441aeb038bea638f7f14ccbd38b3cc91494a62910066c127ea8d6972a6c08cf2.tgz","_integrity":"sha512-3g4UNRmvPMfxyzRzofquQ0pALXob86P0z1HssOyFytBEGusDi+pjj38UzL04s8yRSUpikQBmwSfqjWlypsCM8g==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.13"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.13_1789490217992_0.2345470314993212","host":"s3://npm-registry-packages-npm-production"}},"0.5.14":{"name":"@sayknow-cli/ai","version":"0.5.14","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.14","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"33adcd36fc136eccadc356a9bab6db3c585f0539","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.14.tgz","fileCount":387,"integrity":"sha512-2v0Uzsh7nMIeaIH+yTYA4e6yQBSUQ0iW1CqyPOj0ICbxtsxsKaL6K67Dhp2IEvxKBaQLt18ifqh1MvHxIXAwCQ==","signatures":[{"sig":"MEUCIQC0CLnGYBakmo1YmFplRVoM79X5oTcXhxCujpPDu7fj9wIgELFJJMNj4P4Grm6y01XnfT2wEE3LGDobE3qjKMZkLjg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDTALtqhLTo5R9SNXhA9L8MpvuNPmAVvY8mjIQnjSEBgIgF6539UVrUT72nQETwUht5Wy4OdhW6XZ5puB2LHVNKQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/dafd14cec87b9cc21e6881fec93600e1eeb2401494434896d42ab23ce8f42026f1b6cc6c29a2fa2baec3869d8812fc4a05a40bb75f227ea87532f1f121703009.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/dafd14cec87b9cc21e6881fec93600e1eeb2401494434896d42ab23ce8f42026f1b6cc6c29a2fa2baec3869d8812fc4a05a40bb75f227ea87532f1f121703009.tgz","_integrity":"sha512-2v0Uzsh7nMIeaIH+yTYA4e6yQBSUQ0iW1CqyPOj0ICbxtsxsKaL6K67Dhp2IEvxKBaQLt18ifqh1MvHxIXAwCQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.14"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.14_1789555894037_0.331643720847663","host":"s3://npm-registry-packages-npm-production"}},"0.5.15":{"name":"@sayknow-cli/ai","version":"0.5.15","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.15","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"45eebbc50e8a4bafcdb9972e83a291f1d4313b2b","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.15.tgz","fileCount":387,"integrity":"sha512-3nsjgTZRpssxI6ngldlV5b/N/pAx0mT9OyAkYpIzXUGYFuQQXXmDFf6VLECTkuvOASuUqhfXXod7I9AXUmhtLA==","signatures":[{"sig":"MEYCIQD0FhEvZhDjxeuiyFW9fe1HePwPlRjKmV9OHneXLltgNgIhAK4PJVWwk20vJq7le2X9YHA9Berp+XyYAEuFYTNlFEh0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD4FtVl56BZWPuAgWQA4ai7etVjwqgi5jOWyHcv8VUWcQIhANK6mkeNgRDPG1X9/HpqsQYZ8CxuZwh50MvMraek0s5z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/de7b23813651a6cb3123a9e095d955e5bfcdfe9031d264fd3b20246292335d419816e4105d798315fe952c409392ebce012b94aa17d75e877b23d01752686d2c.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/de7b23813651a6cb3123a9e095d955e5bfcdfe9031d264fd3b20246292335d419816e4105d798315fe952c409392ebce012b94aa17d75e877b23d01752686d2c.tgz","_integrity":"sha512-3nsjgTZRpssxI6ngldlV5b/N/pAx0mT9OyAkYpIzXUGYFuQQXXmDFf6VLECTkuvOASuUqhfXXod7I9AXUmhtLA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.15"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.15_1789557937044_0.8223906459608061","host":"s3://npm-registry-packages-npm-production"}},"0.5.16":{"name":"@sayknow-cli/ai","version":"0.5.16","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.16","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"c132ccfffd96149e876748251b7d4fbeab2f7530","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.16.tgz","fileCount":387,"integrity":"sha512-eIOjMrdpSnGuLFo+D5iPDeecqxxBtzQ+pGI85Jr370KSbi3h1W3lUpFFPZRP+7iZxLqpeQ39etml4Q3b/Z6caA==","signatures":[{"sig":"MEUCIHeOHvfgD/01bBuhiPO35WYTAk3nMMstkOiBOGlnCfjjAiEA9r+bGA2qbKS1YKmt+LQJckmhziYIV2n6Ll3/FpPC33g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD9hReEDo/e6gG9xp3lv5ip6A2PWaREMQIa9MGYFme6XAIhAKlKa3DaVEOvMC/OS7C3Am/lpskD/k81dZ1/jOdo08ed","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/7883a332b7694a71ae2c5a3e0f988f0de79cab1c41b7343ea4623ce49af7ef42926e2de1d56de55291453d944ffbb899c4baa9790dfd7ad9a5e10ddbfd9e9c68.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/7883a332b7694a71ae2c5a3e0f988f0de79cab1c41b7343ea4623ce49af7ef42926e2de1d56de55291453d944ffbb899c4baa9790dfd7ad9a5e10ddbfd9e9c68.tgz","_integrity":"sha512-eIOjMrdpSnGuLFo+D5iPDeecqxxBtzQ+pGI85Jr370KSbi3h1W3lUpFFPZRP+7iZxLqpeQ39etml4Q3b/Z6caA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.16"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.16_1789559633853_0.6985874102971816","host":"s3://npm-registry-packages-npm-production"}},"0.5.17":{"name":"@sayknow-cli/ai","version":"0.5.17","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.17","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"d9f800815fc4f957c8b353d2210d8e02355241a5","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.17.tgz","fileCount":387,"integrity":"sha512-+4S1wXmKGN8JwpZY3+ZYFVy9mROXzx91Gyhrss2++jupebg3Lo9cp+AoTp64NZvm5Kdr618xT6qrztcWK4Xo4A==","signatures":[{"sig":"MEQCIChkF2IktlzYU3cGp7wGVv4htsCoGBxW2QFup2t2Ri7sAiASQDa6coY+xqandnHK5Wu0LHlIYLBtucQt+XL5uf1wtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDUezhGqIlU77hBCGejXBoELRq403OVvEPzE+AYzG2fTwIgCBFa6qBcqFgE9q9WTIdDdGDJRy9vCvFlfYj3UA64+D8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/fb84b5c1798a18df09c29658dfe658155cbd991397cf1f751b286bb2cdbefa3ba979b8372e8f5ca7e0284e9eb8359be6e4a76beb5f314faaabced7162b85e8e0.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/fb84b5c1798a18df09c29658dfe658155cbd991397cf1f751b286bb2cdbefa3ba979b8372e8f5ca7e0284e9eb8359be6e4a76beb5f314faaabced7162b85e8e0.tgz","_integrity":"sha512-+4S1wXmKGN8JwpZY3+ZYFVy9mROXzx91Gyhrss2++jupebg3Lo9cp+AoTp64NZvm5Kdr618xT6qrztcWK4Xo4A==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.17"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.17_1789560614729_0.8802614921923126","host":"s3://npm-registry-packages-npm-production"}},"0.5.19":{"name":"@sayknow-cli/ai","version":"0.5.19","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.19","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"a3b89dfa8c9b590dbe669e12a5a747889032ccb3","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.19.tgz","fileCount":387,"integrity":"sha512-iDs1cdpDQIXmPBR2LRbRsI72eEt10olRD704403PcNmP4dBnQ1HVvE6XCDStsWAjJixVgvkGZJwv1iOZ87FYLQ==","signatures":[{"sig":"MEYCIQDhtH0tmzrZim6s2FTDcuJnPeWM48H1FqqkB1VRj4aRKQIhALrOYmNG3PaH4TXzSKvd888Co4sc6u9d+OjUp7s5+dEb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIASSCXaoaqq23jYQBFTSp9d0f+gMruo+vfoLWz8Ip7tZAiBAE1xbHOl1edXtgQAdCHBrHWwssAVOwSE7fMmXLUrFuA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/883b3571da434085e63c14762d16d1b08ef6784b75d289510fbd38e34dcf70d98fe1d0674351d5bc4e970834adb16023262c5582f906649c2fd62399f3b1582d.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/883b3571da434085e63c14762d16d1b08ef6784b75d289510fbd38e34dcf70d98fe1d0674351d5bc4e970834adb16023262c5582f906649c2fd62399f3b1582d.tgz","_integrity":"sha512-iDs1cdpDQIXmPBR2LRbRsI72eEt10olRD704403PcNmP4dBnQ1HVvE6XCDStsWAjJixVgvkGZJwv1iOZ87FYLQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.19_1789562857763_0.7743898627609866","host":"s3://npm-registry-packages-npm-production"}},"0.5.20":{"name":"@sayknow-cli/ai","version":"0.5.20","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.20","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"73756d55fb5a623d2f1ec7d0c0c6f771a71e22a2","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.20.tgz","fileCount":387,"integrity":"sha512-Ui4mKMcXSITlThJvTJ4k3ruSDugKtqo/7xoduDmEVd8c1yb2R38Oj2/n+LYdZ61VoVsnPeZlb4z5KrsYBvvVFg==","signatures":[{"sig":"MEQCIG+bqMtnzgJmHdJT94NluueU01t49jOLZRU1oajySxX+AiAV+7L3jtV8sxzE+gi+IPyVGFl1jpMHZI5xfLApmfGZWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGJ9st95wAD3SoxdgwCyrGwtiO56FQiHRl5iJ6pJn1xOAiEAuOQPnOuzkFIF4Dx8AYocRiug12/2rOJdnyMaxNBIqn0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/522e2628c7174884e54e126f4c9e24debb920ee80ab6aa3fef1a1db8398455df1cd726f6477f0e8f6fe7f8b61d67ad55a15b273de6656f8cf92abb1806fbd516.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/522e2628c7174884e54e126f4c9e24debb920ee80ab6aa3fef1a1db8398455df1cd726f6477f0e8f6fe7f8b61d67ad55a15b273de6656f8cf92abb1806fbd516.tgz","_integrity":"sha512-Ui4mKMcXSITlThJvTJ4k3ruSDugKtqo/7xoduDmEVd8c1yb2R38Oj2/n+LYdZ61VoVsnPeZlb4z5KrsYBvvVFg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.20"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.20_1789614163652_0.9355529219123406","host":"s3://npm-registry-packages-npm-production"}},"0.5.21":{"name":"@sayknow-cli/ai","version":"0.5.21","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.21","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"70649d7080b9692598c51439e374ae7dbe8252fa","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.21.tgz","fileCount":387,"integrity":"sha512-P7I34X3S6aF3viiKfeOCqd7Re6+D/AIsbJ2PTVS2sTzo7bqnJiej8dAprKVISLu02aK/DEbg2kueuFSDdC7Rqg==","signatures":[{"sig":"MEUCIC3x96Qr6cpbdY3zT0HI5dyW98VVOO3BaevlpQfJvoh+AiEA/Onq6YiuIAgcdABlV0kdzkyH2lDz8ppSZw+4Vhd3XNU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFqp21BrTz0Foq9HfpEYtwsCvh3HIYcCHBd89ss14nB3AiEA3Czc0SGouvMOIlPEsBAX365xkzpw7q9Nox2Jxs9X2aw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/3fb237e17dd2e9a177be288a7de382a9ded17baf83fc022c6c9d8f4d54b6b13ce8edbaa72627a3f1d029aca54848bbb4d9a2bf0c46e0da4b9eb85483742ed1aa.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/3fb237e17dd2e9a177be288a7de382a9ded17baf83fc022c6c9d8f4d54b6b13ce8edbaa72627a3f1d029aca54848bbb4d9a2bf0c46e0da4b9eb85483742ed1aa.tgz","_integrity":"sha512-P7I34X3S6aF3viiKfeOCqd7Re6+D/AIsbJ2PTVS2sTzo7bqnJiej8dAprKVISLu02aK/DEbg2kueuFSDdC7Rqg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.21"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.21_1789633788626_0.5306428574221642","host":"s3://npm-registry-packages-npm-production"}},"0.5.22":{"name":"@sayknow-cli/ai","version":"0.5.22","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.22","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"52c343a84241ce0b525164e4157b59c08a38377e","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.22.tgz","fileCount":387,"integrity":"sha512-lPCJW1WWixFGqk/wC8UZLqrrNKYGIv59xHjRR8vo+SMEjCKMyMATAtSZ20tMNoA4Yg+U9DsaUsFqTdaBchLwIQ==","signatures":[{"sig":"MEYCIQDsjHpuIu+9Xk2UcauPDrfzLxXMFhgLx42RS2waofAsaQIhAIzayVdekwKMOZUTLYP5dF4au9zrZ8fAH2ZpxIm5aOEQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDpNJN3WZaWhkCqaRjmmOlcdgx6FKljoIEs5615J7YV3wIgMUCOb5i0v9h8PCzniXq9uF3chfSp2CSIxAlNp3xpAgg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/94f0895b55968b1146aa4ff00bc5192eaaeb34a60622fe7dc478d147cbe8f923048c228cc8c01302d499db4b4c368038620f94f43b1a52c16a4dd6817212f021.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/94f0895b55968b1146aa4ff00bc5192eaaeb34a60622fe7dc478d147cbe8f923048c228cc8c01302d499db4b4c368038620f94f43b1a52c16a4dd6817212f021.tgz","_integrity":"sha512-lPCJW1WWixFGqk/wC8UZLqrrNKYGIv59xHjRR8vo+SMEjCKMyMATAtSZ20tMNoA4Yg+U9DsaUsFqTdaBchLwIQ==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.22"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.22_1789840171042_0.3910496233276004","host":"s3://npm-registry-packages-npm-production"}},"0.5.23":{"name":"@sayknow-cli/ai","version":"0.5.23","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.23","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"f7946090dc157a59cd3993af3a473d67a2a03e6e","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.23.tgz","fileCount":387,"integrity":"sha512-2qk3W2N4fAUcHETWw76xGmJWhrPlAYIwqWXJ0i0jJpVzqrzGIILXIMR2o/JVBbqdvKcxPdMa8sgv+IGImuB27A==","signatures":[{"sig":"MEUCIQD1PFshS/i9DdE/JsV4SwwyWFvJKWR+HBQg+QiysvWfOAIgf9Sa2h5pX9CiFmmTvfHAp1oy2ZmlN9ub/eriT/W2oOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDC5BRMG8V1sjJPL2YlPYdupuqJWR7P7919WUVC9c71DwIgXeanzHgTHNa4VF0VNONN2ZlN/6hMvXn9GHDI0CV7/rA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/daa9375b63787c051c1c44d6c3beb11a625686b3e5018230a965c9d22d23269573aabcc62082d720c476a3f25505ba9dbca7313dd31af2c82ff881889ae076ec.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/daa9375b63787c051c1c44d6c3beb11a625686b3e5018230a965c9d22d23269573aabcc62082d720c476a3f25505ba9dbca7313dd31af2c82ff881889ae076ec.tgz","_integrity":"sha512-2qk3W2N4fAUcHETWw76xGmJWhrPlAYIwqWXJ0i0jJpVzqrzGIILXIMR2o/JVBbqdvKcxPdMa8sgv+IGImuB27A==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.23"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.23_1789897552414_0.18354371238872003","host":"s3://npm-registry-packages-npm-production"}},"0.5.24":{"name":"@sayknow-cli/ai","version":"0.5.24","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.24","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"048cd41c4cea2a626fb117e5c1a2b49ebfbb2efd","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.24.tgz","fileCount":387,"integrity":"sha512-95IOS4T3yITIlv/q0AkAb768+ANr9R5jckmJE0C2Z4ifSxeG6aOGUOuIc7ACFUiuQhB+wJu/CyHXnpAkzrb0Fg==","signatures":[{"sig":"MEQCIDwzpX3a+ZJPE8MlHjBSldyoPW5kyj02ve+tkhdWyufCAiAEZ+/Q/Z78ht/6moBREpiy9fCRGHljP8QS1L8VcooYrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBgbUR0ZBUVN17RJvdkWcHjG8pYRoi7dAaIhEEHBUBeKAiBY8r6QEyUE6LDO7QLef0SWtCc9M9zE7o/QdJ0Y7Txbfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/f7920e4b84f7c884c896ffead009006fbebcf8036bf51e637249891340b667889f4b1786e9a38650eb8873b0021548ae42107ec09bbf0b21d79e9024ceb6f416.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/f7920e4b84f7c884c896ffead009006fbebcf8036bf51e637249891340b667889f4b1786e9a38650eb8873b0021548ae42107ec09bbf0b21d79e9024ceb6f416.tgz","_integrity":"sha512-95IOS4T3yITIlv/q0AkAb768+ANr9R5jckmJE0C2Z4ifSxeG6aOGUOuIc7ACFUiuQhB+wJu/CyHXnpAkzrb0Fg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.24"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.24_1789967655346_0.3726632563994594","host":"s3://npm-registry-packages-npm-production"}},"0.5.25":{"name":"@sayknow-cli/ai","version":"0.5.25","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.25","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"467607b8fcf0254d4fa4e75b409d5a6faaafc325","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.25.tgz","fileCount":387,"integrity":"sha512-tOOhbC1svwRc1bMvCuw8bwaSucQ4ZX0UNa5dwMKjKLxBxwZUeN/iog/C1BB05vy6QxHyfkjRFEV5e29tQFdL0Q==","signatures":[{"sig":"MEUCIQDCOdv/075DMiJE2AUci4RcJ6OhH1Hu4TAKRD18SiuxfAIgFAx+1YnkJdSPP97oEqleWSew/FfY8FXUr2EwqQ9Rlz8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDb1txK4EghZY3Dk+tiP/l9c5lSa9oDmf48++/i6jIGYAIhAL35oSdfmIiPaYw/XIP5I0LF7u59Zo8VUCd1m4F+Q5xg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5833143},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/b4e3a16c2d6cbf045cd5b32f0aec3c6f0692b9c438657d1435ae5dc0c2a328bc41c7065478dfe2a20fc2d41074e6fcba4311f27e48d11445797b6f6d40574bd1.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/b4e3a16c2d6cbf045cd5b32f0aec3c6f0692b9c438657d1435ae5dc0c2a328bc41c7065478dfe2a20fc2d41074e6fcba4311f27e48d11445797b6f6d40574bd1.tgz","_integrity":"sha512-tOOhbC1svwRc1bMvCuw8bwaSucQ4ZX0UNa5dwMKjKLxBxwZUeN/iog/C1BB05vy6QxHyfkjRFEV5e29tQFdL0Q==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.25"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.25_1789983484366_0.8825447285908361","host":"s3://npm-registry-packages-npm-production"}},"0.5.26":{"name":"@sayknow-cli/ai","version":"0.5.26","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.5.26","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"c24b8bc20d9b0be33af0cf0b0518a727feb1891e","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.5.26.tgz","fileCount":387,"integrity":"sha512-D8JxUjbm24q7V2Ip4WIN0CftkhIWnGNo2MHNovtA8CC+StyqTnzIMynD1D8nRZHhFIXiFLCbdRJjd+gJwCSxnA==","signatures":[{"sig":"MEYCIQDDuhcofj+vAd/OF3j7WFC85TqvnnWIaNL+Up/3HgnWpQIhANUygdBHLvNdc3qjEWV3eWfkV83LSXNwn//O6itaDhTx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHbaBMx28ChhJbCOaUuFPwaf6PAZ8+SGEpARKuntV9pbAiEAqnGyLDIGwp899Qjr/lBsLTXgfnO1Kftp369zGLAb6g8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5835839},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/0fc2715236e6db8abb576229e1620dd027ed9212169c6368d8c1cda2fb40f020be4adcaa4e7cc83329c3d43f274591e11485e214b09b75126377e809c024b19c.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/0fc2715236e6db8abb576229e1620dd027ed9212169c6368d8c1cda2fb40f020be4adcaa4e7cc83329c3d43f274591e11485e214b09b75126377e809c024b19c.tgz","_integrity":"sha512-D8JxUjbm24q7V2Ip4WIN0CftkhIWnGNo2MHNovtA8CC+StyqTnzIMynD1D8nRZHhFIXiFLCbdRJjd+gJwCSxnA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.5.26"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.5.26_1790155793348_0.6935468484535634","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@sayknow-cli/ai","version":"0.6.0","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.6.0","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"d7d5d76eb3e95c3ac0eb0df372145f10c069789f","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.6.0.tgz","fileCount":387,"integrity":"sha512-SLVELqysZWO+aVAAGkGeuKKH0DMt1HTg+csrzKmvuq6BygaOzYyVftYwmLwRa3vlVWTqn2VKNLJkFma7isyoCg==","signatures":[{"sig":"MEYCIQD50KMRvjsuIs5rEl8ojV+MuaB6oXrScPciq5/oRf1UcQIhAKrPyI9VclNVgpdtPdZWNs3VfOg6pfEoBtG1phE3sIl6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD3JnBOTkBg+XL47ETAfYpH7eZ+5l8rL5ZEPfK5VNn0ewIhAN6QxWTuyODyM5AMX3TpxTTkALB4cGM7F4HEBDREBkDq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5837396},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/48b5442eacac6563be6950001a419eb8a287d0332dd474e0f9cb2bcca9afbaae81ca068ecd8c957ed63098bc116b7be55564ea9f654a34b2641666bb8acca80a.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/48b5442eacac6563be6950001a419eb8a287d0332dd474e0f9cb2bcca9afbaae81ca068ecd8c957ed63098bc116b7be55564ea9f654a34b2641666bb8acca80a.tgz","_integrity":"sha512-SLVELqysZWO+aVAAGkGeuKKH0DMt1HTg+csrzKmvuq6BygaOzYyVftYwmLwRa3vlVWTqn2VKNLJkFma7isyoCg==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.6.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.0_1790224063338_0.6939330482934736","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@sayknow-cli/ai","version":"0.6.1","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.6.1","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"2d92b824859fd399f116b9c8347ef220c4e6b59b","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.6.1.tgz","fileCount":387,"integrity":"sha512-YFXq+hvyybfGZ0TkyV/15ek0JhFROgF9ujktegwZrHHY0hLLaFMpIU6TRq5ut1qBXt/QsKCaKoX3IV8P5Dww4g==","signatures":[{"sig":"MEUCIAkQxF5onw7www8zT+SflebOQMnUnFS5jdIoAnNlfgL2AiEArU6qdR1L5GDnlOIM3x4Xx2f0Q7FbsUftljLbXuKiZ2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCoqhN0KCsPfelpteADYcmT0ySE4E6p/rXkHP7AvCxRqgIgbE9auweyGesvHYsstFloRAr6qMmWQpmUgc98lZE6Cqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5837421},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/6055eafa1bf2c9b7c66744e4c95ff5e5e9342611513a017dba392d7a0c19ac71d8d212cb685329214e9346ae6eb75a815edfd0b0a09a2a85f7215f0fe43c30e2.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/6055eafa1bf2c9b7c66744e4c95ff5e5e9342611513a017dba392d7a0c19ac71d8d212cb685329214e9346ae6eb75a815edfd0b0a09a2a85f7215f0fe43c30e2.tgz","_integrity":"sha512-YFXq+hvyybfGZ0TkyV/15ek0JhFROgF9ujktegwZrHHY0hLLaFMpIU6TRq5ut1qBXt/QsKCaKoX3IV8P5Dww4g==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.20.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.6.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.1_1790242197916_0.8208965915340425","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@sayknow-cli/ai","version":"0.6.2","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"author":{"name":"jaybeyond"},"license":"MIT","_id":"@sayknow-cli/ai@0.6.2","maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"contributors":[{"name":"Mario Zechner"}],"homepage":"https://sayknow-cli.com","bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"bin":{"pi-ai":"src/cli.ts"},"dist":{"shasum":"f4dd639a290536f68beee23dd12c4a3a21ce9664","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.6.2.tgz","fileCount":387,"integrity":"sha512-VBxnciYKmINfSUE7BYohH8NdBvRYqZyw+AS26UY9o1prse02ZwYMsSNmpd1QhmeYRxlswzQnOZNRGlqRrqbVCA==","signatures":[{"sig":"MEUCIGVUev0w1+jKP2gd2WxsZW0N/26QaJFI8kf1fS8n8/iRAiEAy4eZsz0Rk2XSzBX1resKCMRAkF8QV/CvCZK+9dczDzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZaB0hhAC7fCW6h/sEN1Im6qB5mTVWds4HKOwlGfwY2AiEAobUtaDe3qhhJzbwa8mqSswmpSrVjXZyF6UummHRxRHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5838024},"main":"./src/index.ts","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/541c6772260a98835f49413b058a211fc35d06f458a99cb0f804b6e9463da35a6bb1ed3667060cb12366a5dd5086679847196cc334273993511a5a91aea6d508.tgz","types":"./dist/types/index.d.ts","engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/541c6772260a98835f49413b058a211fc35d06f458a99cb0f804b6e9463da35a6bb1ed3667060cb12366a5dd5086679847196cc334273993511a5a91aea6d508.tgz","_integrity":"sha512-VBxnciYKmINfSUE7BYohH8NdBvRYqZyw+AS26UY9o1prse02ZwYMsSNmpd1QhmeYRxlswzQnOZNRGlqRrqbVCA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.6.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"tmp":"tmp/ai_0.6.2_1790268382210_0.5401481928553147","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"_id":"@sayknow-cli/ai@0.6.3","bin":{"pi-ai":"src/cli.ts"},"bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"dist":{"shasum":"badb52041399cad89a06d6c4b9ee7b5f978e5d3c","tarball":"https://registry.npmjs.org/@sayknow-cli/ai/-/ai-0.6.3.tgz","fileCount":387,"integrity":"sha512-PF4x7+iRV1vHhTbLBT5PANelfXt7HAJ59bFKrMocnhTJbGpLZoMGap+y/DxWNb53jPRjLEvPx4grt4BtCgJKrA==","signatures":[{"sig":"MEYCIQDZqu8zKdJMWZr5T4iS8cN/+oiwzKxxQtmpkgFCyEnECgIhAJIKzVKrk5nSZ16eWpHU5VeMfdqIYgTuxGcVOjzquB0f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD/zOS1jFX3XFhUExCrUJb58jKDtYGutFwxM2O7T1nU4gIgCDCjAOzV/fU+zslsFFOJsRN7XeplwmAZsNk6wjXfvEo="}],"unpackedSize":5838927},"main":"./src/index.ts","name":"@sayknow-cli/ai","type":"module","_from":"file:/home/runner/work/_temp/release-evidence/tarballs/3c5e31efe891575bc78536cb053e4f00d7a57d7b7b1c0279f5b14aacca1c9e14c96c6a4b6683066a9fb2fc3c5635be778cf4632c4bcfc7882bb7806d0a024aac.tgz","types":"./dist/types/index.d.ts","author":{"name":"jaybeyond"},"engines":{"bun":">=1.3.14"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./src/index.ts"},"./*":{"types":"./dist/types/*.d.ts","import":"./src/*.ts"},"./*.js":"./src/*.ts","./usage/*":{"types":"./dist/types/usage/*.d.ts","import":"./src/usage/*.ts"},"./utils/*":{"types":"./dist/types/utils/*.d.ts","import":"./src/utils/*.ts"},"./auth-broker":{"types":"./dist/types/auth-broker/index.d.ts","import":"./src/auth-broker/index.ts"},"./models.json":{"types":"./dist/types/models.json.d.d.ts","import":"./src/models.json"},"./providers/*":{"types":"./dist/types/providers/*.d.ts","import":"./src/providers/*.ts"},"./utils/oauth":{"types":"./dist/types/utils/oauth/index.d.ts","import":"./src/utils/oauth/index.ts"},"./auth-gateway":{"types":"./dist/types/auth-gateway/index.d.ts","import":"./src/auth-gateway/index.ts"},"./utils/schema":{"types":"./dist/types/utils/schema/index.d.ts","import":"./src/utils/schema/index.ts"},"./auth-broker/*":{"types":"./dist/types/auth-broker/*.d.ts","import":"./src/auth-broker/*.ts"},"./utils/oauth/*":{"types":"./dist/types/utils/oauth/*.d.ts","import":"./src/utils/oauth/*.ts"},"./auth-gateway/*":{"types":"./dist/types/auth-gateway/*.d.ts","import":"./src/auth-gateway/*.ts"},"./utils/schema/*":{"types":"./dist/types/utils/schema/*.d.ts","import":"./src/utils/schema/*.ts"},"./provider-models":{"types":"./dist/types/provider-models/index.d.ts","import":"./src/provider-models/index.ts"},"./utils/discovery":{"types":"./dist/types/utils/discovery/index.d.ts","import":"./src/utils/discovery/index.ts"},"./provider-models/*":{"types":"./dist/types/provider-models/*.d.ts","import":"./src/provider-models/*.ts"},"./utils/discovery/*":{"types":"./dist/types/utils/discovery/*.d.ts","import":"./src/utils/discovery/*.ts"},"./providers/cursor/gen/*":{"types":"./dist/types/providers/cursor/gen/*.d.ts","import":"./src/providers/cursor/gen/*.ts"},"./providers/openai-codex/*":{"types":"./dist/types/providers/openai-codex/*.d.ts","import":"./src/providers/openai-codex/*.ts"}},"license":"MIT","scripts":{"fix":"biome check --write --unsafe .","fmt":"biome format --write .","lint":"biome lint .","test":"bun test","check":"biome check . && bun run check:types","check:types":"tsgo -p tsconfig.json --noEmit","generate-models":"bun scripts/generate-models.ts"},"version":"0.6.3","_npmUser":{"name":"saykonwwork","email":"jminchae88@gmail.com"},"homepage":"https://sayknow-cli.com","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"_resolved":"/home/runner/work/_temp/release-evidence/tarballs/3c5e31efe891575bc78536cb053e4f00d7a57d7b7b1c0279f5b14aacca1c9e14c96c6a4b6683066a9fb2fc3c5635be778cf4632c4bcfc7882bb7806d0a024aac.tgz","_integrity":"sha512-PF4x7+iRV1vHhTbLBT5PANelfXt7HAJ59bFKrMocnhTJbGpLZoMGap+y/DxWNb53jPRjLEvPx4grt4BtCgJKrA==","repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.19.0","description":"Unified LLM API with automatic model discovery and provider configuration","directories":{},"maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"_nodeVersion":"24.21.0","contributors":[{"name":"Mario Zechner"}],"dependencies":{"zod":"4.4.3","openai":"^6.36.0","partial-json":"^0.1.7","@anthropic-ai/sdk":"^0.94.0","@bufbuild/protobuf":"^2.12.0","@sayknow-cli/utils":"0.6.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.14"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai_0.6.3_1790331150417_0.46401504124200876"}}},"time":{"created":"2026-06-18T17:07:39.827Z","modified":"2026-09-25T10:12:30.688Z","0.2.2":"2026-06-18T17:07:40.123Z","0.2.3":"2026-06-18T18:11:25.335Z","0.2.4":"2026-06-18T18:44:39.408Z","0.2.5":"2026-06-22T04:20:07.259Z","0.2.6":"2026-06-22T05:20:21.602Z","0.2.7":"2026-06-22T17:49:29.034Z","0.3.0":"2026-06-23T16:51:18.019Z","0.3.1":"2026-06-25T09:14:14.199Z","0.3.2":"2026-06-28T11:08:49.513Z","0.3.4":"2026-06-28T14:52:03.348Z","0.3.5":"2026-06-29T07:47:32.243Z","0.3.6":"2026-07-01T07:23:58.243Z","0.3.7":"2026-07-06T17:21:14.223Z","0.3.8":"2026-07-08T11:48:41.341Z","0.3.9":"2026-07-08T17:09:24.367Z","0.3.10":"2026-07-09T08:43:58.404Z","0.3.11":"2026-07-09T10:03:04.331Z","0.3.12":"2026-07-10T07:28:01.220Z","0.3.13":"2026-07-13T09:49:12.198Z","0.3.15":"2026-07-13T23:39:13.036Z","0.3.16":"2026-07-14T09:15:22.519Z","0.4.0":"2026-07-21T08:22:48.828Z","0.4.1":"2026-07-21T08:47:09.514Z","0.4.2":"2026-07-21T08:58:01.274Z","0.4.3":"2026-07-21T12:51:16.439Z","0.4.4":"2026-07-22T17:39:16.173Z","0.4.5":"2026-07-23T08:36:51.830Z","0.4.6":"2026-07-23T12:32:08.721Z","0.4.7":"2026-07-24T08:22:54.052Z","0.5.0":"2026-07-28T17:18:05.653Z","0.5.1":"2026-07-29T05:52:18.130Z","0.5.2":"2026-08-14T12:10:45.123Z","0.5.6":"2026-08-28T11:05:37.299Z","0.5.8":"2026-09-10T08:59:43.100Z","0.5.9":"2026-09-10T11:20:43.020Z","0.5.10":"2026-09-10T13:09:50.710Z","0.5.11":"2026-09-10T15:19:18.739Z","0.5.13":"2026-09-15T16:36:58.125Z","0.5.14":"2026-09-16T10:51:34.188Z","0.5.15":"2026-09-16T11:25:37.190Z","0.5.16":"2026-09-16T11:53:53.983Z","0.5.17":"2026-09-16T12:10:14.893Z","0.5.19":"2026-09-16T12:47:37.890Z","0.5.20":"2026-09-17T03:02:43.774Z","0.5.21":"2026-09-17T08:29:48.777Z","0.5.22":"2026-09-19T17:49:31.165Z","0.5.23":"2026-09-20T09:45:52.551Z","0.5.24":"2026-09-21T05:14:15.471Z","0.5.25":"2026-09-21T09:38:04.496Z","0.5.26":"2026-09-23T09:29:53.455Z","0.6.0":"2026-09-24T04:27:43.472Z","0.6.1":"2026-09-24T09:29:58.051Z","0.6.2":"2026-09-24T16:46:22.348Z","0.6.3":"2026-09-25T10:12:30.526Z"},"bugs":{"url":"https://github.com/jaybeyond/Sayknow_CLI/issues"},"author":{"name":"jaybeyond"},"license":"MIT","homepage":"https://sayknow-cli.com","keywords":["ai","llm","openai","anthropic","gemini","unified","api"],"repository":{"url":"git+https://github.com/jaybeyond/Sayknow_CLI.git","type":"git","directory":"packages/ai"},"description":"Unified LLM API with automatic model discovery and provider configuration","contributors":[{"name":"Mario Zechner"}],"maintainers":[{"name":"saykonwwork","email":"jminchae88@gmail.com"}],"readme":"# @sayknow-cli/ai\n\nUnified LLM API with automatic model discovery, provider configuration, token and cost tracking, and simple context persistence and hand-off to other models mid-session.\n\n**Note**: This library only includes models that support tool calling (function calling), as this is essential for agentic workflows.\n\n## Table of Contents\n\n- [Supported Providers](#supported-providers)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Tools](#tools)\n  - [Defining Tools](#defining-tools)\n  - [Handling Tool Calls](#handling-tool-calls)\n  - [Streaming Tool Calls with Partial JSON](#streaming-tool-calls-with-partial-json)\n  - [Validating Tool Arguments](#validating-tool-arguments)\n  - [Complete Event Reference](#complete-event-reference)\n- [Image Input](#image-input)\n- [Thinking/Reasoning](#thinkingreasoning)\n  - [Unified Interface](#unified-interface-streamsimplecompletesimple)\n  - [Provider-Specific Options](#provider-specific-options-streamcomplete)\n  - [Streaming Thinking Content](#streaming-thinking-content)\n- [Stop Reasons](#stop-reasons)\n- [Error Handling](#error-handling)\n  - [Aborting Requests](#aborting-requests)\n  - [Continuing After Abort](#continuing-after-abort)\n- [APIs, Models, and Providers](#apis-models-and-providers)\n  - [Providers and Models](#providers-and-models)\n  - [Querying Providers and Models](#querying-providers-and-models)\n  - [Custom Models](#custom-models)\n  - [OpenAI Compatibility Settings](#openai-compatibility-settings)\n  - [Type Safety](#type-safety)\n- [Cross-Provider Handoffs](#cross-provider-handoffs)\n- [Context Serialization](#context-serialization)\n- [Browser Usage](#browser-usage)\n  - [Environment Variables](#environment-variables-nodejs-only)\n  - [Checking Environment Variables](#checking-environment-variables)\n- [OAuth Providers](#oauth-providers)\n  - [Vertex AI (ADC)](#vertex-ai-adc)\n  - [CLI Login](#cli-login)\n  - [Programmatic OAuth](#programmatic-oauth)\n  - [Login Flow Example](#login-flow-example)\n  - [Using OAuth Tokens](#using-oauth-tokens)\n  - [Provider Notes](#provider-notes)\n- [License](#license)\n\n## Supported Providers\n\n- **OpenAI**\n- **OpenAI code provider** (ChatGPT Plus/Pro subscription, requires OAuth, see below)\n- **Anthropic**\n- **Google**\n- **Vertex AI** (Gemini via Vertex AI)\n- **Mistral**\n- **Groq**\n- **Cerebras**\n- **Together**\n- **Moonshot** (requires `MOONSHOT_API_KEY`)\n- **Qianfan** (requires `QIANFAN_API_KEY`)\n- **NVIDIA** (requires `NVIDIA_API_KEY`)\n- **NanoGPT** (requires `NANO_GPT_API_KEY`)\n- **Hugging Face Inference**\n- **xAI**\n- **Venice** (requires `VENICE_API_KEY`)\n- **OpenRouter**\n- **Kilo Gateway** (supports OAuth `/login kilo` or `KILO_API_KEY`)\n- **LiteLLM** (requires `LITELLM_API_KEY`)\n- **zAI** (requires `ZAI_API_KEY`)\n- **MiniMax Coding Plan** (requires `MINIMAX_CODE_API_KEY` or `MINIMAX_CODE_CN_API_KEY`)\n- **Xiaomi MiMo** (requires `XIAOMI_API_KEY`)\n- **ZenMux** (requires `ZENMUX_API_KEY`)\n- **OpenGateway by Sionic AI** (requires `OPENGATEWAY_API_KEY`)\n- **BizRouter** (requires `BIZROUTER_API_KEY`)\n- **Qwen Portal** (supports `QWEN_OAUTH_TOKEN` or `QWEN_PORTAL_API_KEY`)\n- **Cloudflare AI Gateway** (requires `CLOUDFLARE_AI_GATEWAY_API_KEY` and provider-specific gateway base URL)\n- **Ollama** (local OpenAI-compatible runtime; optional `OLLAMA_API_KEY`)\n- **Ollama Cloud** (hosted native Ollama API; requires `OLLAMA_CLOUD_API_KEY`)\n- **llama.cpp** (local OpenAI and Anthropic compatible inference server)\n- **vLLM** (OpenAI-compatible server; `VLLM_API_KEY` for secured deployments)\n- **GitHub Copilot** (requires OAuth, see below)\n- **Google Gemini CLI** (requires OAuth, see below)\n- **Antigravity** (requires OAuth, see below)\n- **Any OpenAI-compatible API**: LM Studio, custom proxies, etc.\n\n## Installation\n\n```bash\nnpm install @sayknow-cli/ai\n```\n\n## Quick Start\n\n```typescript\nimport { z, getModel, stream, complete, Context, Tool } from \"@sayknow-cli/ai\";\n\n// Fully typed with auto-complete support for both providers and models\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\n\n// Define tools with Zod schemas for type safety and validation\nconst tools: Tool[] = [\n\t{\n\t\tname: \"get_time\",\n\t\tdescription: \"Get the current time\",\n\t\tparameters: z.object({\n\t\t\ttimezone: z\n\t\t\t\t.string()\n\t\t\t\t.optional()\n\t\t\t\t.describe(\"Optional timezone (e.g., America/New_York)\"),\n\t\t}),\n\t},\n];\n\n// Build a conversation context (easily serializable and transferable between models)\nconst context: Context = {\n\tsystemPrompt: [\"You are a helpful assistant.\"],\n\tmessages: [{ role: \"user\", content: \"What time is it?\" }],\n\ttools,\n};\n\n// Option 1: Streaming with all event types\nconst s = stream(model, context);\n\nfor await (const event of s) {\n\tswitch (event.type) {\n\t\tcase \"start\":\n\t\t\tconsole.log(`Starting with ${event.partial.model}`);\n\t\t\tbreak;\n\t\tcase \"text_start\":\n\t\t\tconsole.log(\"\\n[Text started]\");\n\t\t\tbreak;\n\t\tcase \"text_delta\":\n\t\t\tprocess.stdout.write(event.delta);\n\t\t\tbreak;\n\t\tcase \"text_end\":\n\t\t\tconsole.log(\"\\n[Text ended]\");\n\t\t\tbreak;\n\t\tcase \"thinking_start\":\n\t\t\tconsole.log(\"[Model is thinking...]\");\n\t\t\tbreak;\n\t\tcase \"thinking_delta\":\n\t\t\tprocess.stdout.write(event.delta);\n\t\t\tbreak;\n\t\tcase \"thinking_end\":\n\t\t\tconsole.log(\"[Thinking complete]\");\n\t\t\tbreak;\n\t\tcase \"toolcall_start\":\n\t\t\tconsole.log(`\\n[Tool call started: index ${event.contentIndex}]`);\n\t\t\tbreak;\n\t\tcase \"toolcall_delta\":\n\t\t\t// Partial tool arguments are being streamed\n\t\t\tconst partialCall = event.partial.content[event.contentIndex];\n\t\t\tif (partialCall.type === \"toolCall\") {\n\t\t\t\tconsole.log(`[Streaming args for ${partialCall.name}]`);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"toolcall_end\":\n\t\t\tconsole.log(`\\nTool called: ${event.toolCall.name}`);\n\t\t\tconsole.log(`Arguments: ${JSON.stringify(event.toolCall.arguments)}`);\n\t\t\tbreak;\n\t\tcase \"done\":\n\t\t\tconsole.log(`\\nFinished: ${event.reason}`);\n\t\t\tbreak;\n\t\tcase \"error\":\n\t\t\tconsole.error(`Error: ${event.error}`);\n\t\t\tbreak;\n\t}\n}\n\n// Get the final message after streaming, add it to the context\nconst finalMessage = await s.result();\ncontext.messages.push(finalMessage);\n\n// Handle tool calls if any\nconst toolCalls = finalMessage.content.filter((b) => b.type === \"toolCall\");\nfor (const call of toolCalls) {\n\t// Execute the tool\n\tconst result =\n\t\tcall.name === \"get_time\"\n\t\t\t? new Date().toLocaleString(\"en-US\", {\n\t\t\t\t\ttimeZone: call.arguments.timezone || \"UTC\",\n\t\t\t\t\tdateStyle: \"full\",\n\t\t\t\t\ttimeStyle: \"long\",\n\t\t\t\t})\n\t\t\t: \"Unknown tool\";\n\n\t// Add tool result to context (supports text and images)\n\tcontext.messages.push({\n\t\trole: \"toolResult\",\n\t\ttoolCallId: call.id,\n\t\ttoolName: call.name,\n\t\tcontent: [{ type: \"text\", text: result }],\n\t\tisError: false,\n\t\ttimestamp: Date.now(),\n\t});\n}\n\n// Continue if there were tool calls\nif (toolCalls.length > 0) {\n\tconst continuation = await complete(model, context);\n\tcontext.messages.push(continuation);\n\tconsole.log(\"After tool execution:\", continuation.content);\n}\n\nconsole.log(`Total tokens: ${finalMessage.usage.input} in, ${finalMessage.usage.output} out`);\nconsole.log(`Cost: $${finalMessage.usage.cost.total.toFixed(4)}`);\n\n// Option 2: Get complete response without streaming\nconst response = await complete(model, context);\n\nfor (const block of response.content) {\n\tif (block.type === \"text\") {\n\t\tconsole.log(block.text);\n\t} else if (block.type === \"toolCall\") {\n\t\tconsole.log(`Tool: ${block.name}(${JSON.stringify(block.arguments)})`);\n\t}\n}\n```\n\n## Tools\n\nTools enable LLMs to interact with external systems. This library uses **Zod** schemas for type-safe tool definitions with automatic validation. Schemas are converted to JSON Schema for providers as needed.\n\n### Defining Tools\n\n```typescript\nimport { z, Tool } from \"@sayknow-cli/ai\";\n\n// Define tool parameters with Zod\nconst weatherTool: Tool = {\n\tname: \"get_weather\",\n\tdescription: \"Get current weather for a location\",\n\tparameters: z.object({\n\t\tlocation: z.string().describe(\"City name or coordinates\"),\n\t\tunits: z.enum([\"celsius\", \"fahrenheit\"]).default(\"celsius\"),\n\t}),\n};\n\nconst bookMeetingTool: Tool = {\n\tname: \"book_meeting\",\n\tdescription: \"Schedule a meeting\",\n\tparameters: z.object({\n\t\ttitle: z.string().min(1),\n\t\tstartTime: z.string().describe(\"ISO 8601 date-time\"),\n\t\tendTime: z.string().describe(\"ISO 8601 date-time\"),\n\t\tattendees: z.array(z.email()).min(1),\n\t}),\n};\n```\n\n### Handling Tool Calls\n\nTool results use content blocks and can include both text and images:\n\n```typescript\nimport * as fs from \"node:fs\";\n\nconst context: Context = {\n\tmessages: [{ role: \"user\", content: \"What is the weather in London?\" }],\n\ttools: [weatherTool],\n};\n\nconst response = await complete(model, context);\n\n// Check for tool calls in the response\nfor (const block of response.content) {\n\tif (block.type === \"toolCall\") {\n\t\t// Execute your tool with the arguments\n\t\t// See \"Validating Tool Arguments\" section for validation\n\t\tconst result = await executeWeatherApi(block.arguments);\n\n\t\t// Add tool result with text content\n\t\tcontext.messages.push({\n\t\t\trole: \"toolResult\",\n\t\t\ttoolCallId: block.id,\n\t\t\ttoolName: block.name,\n\t\t\tcontent: [{ type: \"text\", text: JSON.stringify(result) }],\n\t\t\tisError: false,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n}\n\n// Tool results can also include images (for vision-capable models)\nconst imageBuffer = fs.readFileSync(\"chart.png\");\ncontext.messages.push({\n\trole: \"toolResult\",\n\ttoolCallId: \"tool_xyz\",\n\ttoolName: \"generate_chart\",\n\tcontent: [\n\t\t{ type: \"text\", text: \"Generated chart showing temperature trends\" },\n\t\t{ type: \"image\", data: imageBuffer.toBase64(), mimeType: \"image/png\" },\n\t],\n\tisError: false,\n\ttimestamp: Date.now(),\n});\n```\n\n### Streaming Tool Calls with Partial JSON\n\nDuring streaming, tool call arguments are progressively parsed as they arrive. This enables real-time UI updates before the complete arguments are available:\n\n```typescript\nconst s = stream(model, context);\n\nfor await (const event of s) {\n\tif (event.type === \"toolcall_delta\") {\n\t\tconst toolCall = event.partial.content[event.contentIndex];\n\n\t\t// toolCall.arguments contains partially parsed JSON during streaming\n\t\t// This allows for progressive UI updates\n\t\tif (toolCall.type === \"toolCall\" && toolCall.arguments) {\n\t\t\t// BE DEFENSIVE: arguments may be incomplete\n\t\t\t// Example: Show file path being written even before content is complete\n\t\t\tif (toolCall.name === \"write_file\" && toolCall.arguments.path) {\n\t\t\t\tconsole.log(`Writing to: ${toolCall.arguments.path}`);\n\n\t\t\t\t// Content might be partial or missing\n\t\t\t\tif (toolCall.arguments.content) {\n\t\t\t\t\tconsole.log(`Content preview: ${toolCall.arguments.content.substring(0, 100)}...`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (event.type === \"toolcall_end\") {\n\t\t// Here toolCall.arguments is complete (but not yet validated)\n\t\tconst toolCall = event.toolCall;\n\t\tconsole.log(`Tool completed: ${toolCall.name}`, toolCall.arguments);\n\t}\n}\n```\n\n**Important notes about partial tool arguments:**\n\n- During `toolcall_delta` events, `arguments` contains the best-effort parse of partial JSON\n- Fields may be missing or incomplete - always check for existence before use\n- String values may be truncated mid-word\n- Arrays may be incomplete\n- Nested objects may be partially populated\n- At minimum, `arguments` will be an empty object `{}`, never `undefined`\n- The Google provider does not support function call streaming. Instead, you will receive a single `toolcall_delta` event with the full arguments.\n\n### Validating Tool Arguments\n\nWhen using `agentLoop`, tool arguments are automatically validated against your Zod parameter schemas before execution. If validation fails, the error is returned to the model as a tool result, allowing it to retry.\n\nWhen implementing your own tool execution loop with `stream()` or `complete()`, use `validateToolCall` to validate arguments before passing them to your tools:\n\n```typescript\nimport { stream, validateToolCall, Tool } from \"@sayknow-cli/ai\";\n\nconst tools: Tool[] = [weatherTool, calculatorTool];\nconst s = stream(model, { messages, tools });\n\nfor await (const event of s) {\n\tif (event.type === \"toolcall_end\") {\n\t\tconst toolCall = event.toolCall;\n\n\t\ttry {\n\t\t\t// Validate arguments against the tool's schema (throws on invalid args)\n\t\t\tconst validatedArgs = validateToolCall(tools, toolCall);\n\t\t\tconst result = await executeMyTool(toolCall.name, validatedArgs);\n\t\t\t// ... add tool result to context\n\t\t} catch (error) {\n\t\t\t// Validation failed - return error as tool result so model can retry\n\t\t\tcontext.messages.push({\n\t\t\t\trole: \"toolResult\",\n\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\ttoolName: toolCall.name,\n\t\t\t\tcontent: [{ type: \"text\", text: error.message }],\n\t\t\t\tisError: true,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t});\n\t\t}\n\t}\n}\n```\n\n### Complete Event Reference\n\nAll streaming events emitted during assistant message generation:\n\n| Event Type       | Description              | Key Properties                                                                              |\n| ---------------- | ------------------------ | ------------------------------------------------------------------------------------------- |\n| `start`          | Stream begins            | `partial`: Initial assistant message structure                                              |\n| `text_start`     | Text block starts        | `contentIndex`: Position in content array                                                   |\n| `text_delta`     | Text chunk received      | `delta`: New text, `contentIndex`: Position                                                 |\n| `text_end`       | Text block complete      | `content`: Full text, `contentIndex`: Position                                              |\n| `thinking_start` | Thinking block starts    | `contentIndex`: Position in content array                                                   |\n| `thinking_delta` | Thinking chunk received  | `delta`: New text, `contentIndex`: Position                                                 |\n| `thinking_end`   | Thinking block complete  | `content`: Full thinking, `contentIndex`: Position                                          |\n| `toolcall_start` | Tool call begins         | `contentIndex`: Position in content array                                                   |\n| `toolcall_delta` | Tool arguments streaming | `delta`: JSON chunk, `partial.content[contentIndex].arguments`: Partial parsed args         |\n| `toolcall_end`   | Tool call complete       | `toolCall`: Complete validated tool call with `id`, `name`, `arguments`                     |\n| `done`           | Stream complete          | `reason`: Stop reason (\"stop\", \"length\", \"toolUse\"), `message`: Final assistant message     |\n| `error`          | Error occurred           | `reason`: Error type (\"error\" or \"aborted\"), `error`: AssistantMessage with partial content |\n\n## Image Input\n\nModels with vision capabilities can process images. You can check if a model supports images via the `input` property. If you pass images to a non-vision model, they are silently ignored.\n\n```typescript\nimport * as fs from \"node:fs\";\nimport { getModel, complete } from \"@sayknow-cli/ai\";\n\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\n\n// Check if model supports images\nif (model.input.includes(\"image\")) {\n\tconsole.log(\"Model supports vision\");\n}\n\nconst imageBuffer = fs.readFileSync(\"image.png\");\nconst base64Image = imageBuffer.toBase64();\n\nconst response = await complete(model, {\n\tmessages: [\n\t\t{\n\t\t\trole: \"user\",\n\t\t\tcontent: [\n\t\t\t\t{ type: \"text\", text: \"What is in this image?\" },\n\t\t\t\t{ type: \"image\", data: base64Image, mimeType: \"image/png\" },\n\t\t\t],\n\t\t},\n\t],\n});\n\n// Access the response\nfor (const block of response.content) {\n\tif (block.type === \"text\") {\n\t\tconsole.log(block.text);\n\t}\n}\n```\n\n## Thinking/Reasoning\n\nMany models support thinking/reasoning capabilities where they can show their internal thought process. You can check if a model supports reasoning via the `reasoning` property. If you pass reasoning options to a non-reasoning model, they are silently ignored.\n\n### Unified Interface (streamSimple/completeSimple)\n\n```typescript\nimport { getModel, streamSimple, completeSimple } from \"@sayknow-cli/ai\";\n\n// Many models across providers support thinking/reasoning\nconst model = getModel(\"anthropic\", \"anthropic-model-sonnet-4-20250514\");\n// or getModel('openai', 'gpt-5-mini');\n// or getModel('google', 'gemini-2.5-flash');\n// or getModel('xai', 'grok-code-fast-1');\n// or getModel('groq', 'openai/gpt-oss-20b');\n// or getModel('cerebras', 'gpt-oss-120b');\n// or getModel('openrouter', 'z-ai/glm-4.5v');\n\n// Check if model supports reasoning\nif (model.reasoning) {\n\tconsole.log(\"Model supports reasoning/thinking\");\n}\n\n// Use the simplified reasoning option\nconst response = await completeSimple(\n\tmodel,\n\t{\n\t\tmessages: [{ role: \"user\", content: \"Solve: 2x + 5 = 13\" }],\n\t},\n\t{\n\t\treasoning: \"medium\", // 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' (xhigh maps to high on non-OpenAI providers)\n\t}\n);\n\n// Access thinking and text blocks\nfor (const block of response.content) {\n\tif (block.type === \"thinking\") {\n\t\tconsole.log(\"Thinking:\", block.thinking);\n\t} else if (block.type === \"text\") {\n\t\tconsole.log(\"Response:\", block.text);\n\t}\n}\n```\n\n### Provider-Specific Options (stream/complete)\n\nFor fine-grained control, use the provider-specific options:\n\n```typescript\nimport { getModel, complete } from \"@sayknow-cli/ai\";\n\n// OpenAI Reasoning (o1, o3, gpt-5)\nconst openaiModel = getModel(\"openai\", \"gpt-5-mini\");\nawait complete(openaiModel, context, {\n\treasoningEffort: \"medium\",\n\treasoningSummary: \"detailed\", // OpenAI Responses API only\n});\n\n// Anthropic Thinking (Anthropic model Sonnet 4)\nconst anthropicModel = getModel(\"anthropic\", \"anthropic-model-sonnet-4-20250514\");\nawait complete(anthropicModel, context, {\n\tthinkingEnabled: true,\n\tthinkingBudgetTokens: 8192, // Optional token limit\n});\n\n// Google Gemini Thinking\nconst googleModel = getModel(\"google\", \"gemini-2.5-flash\");\nawait complete(googleModel, context, {\n\tthinking: {\n\t\tenabled: true,\n\t\tbudgetTokens: 8192, // -1 for dynamic, 0 to disable\n\t},\n});\n```\n\n### Streaming Thinking Content\n\nWhen streaming, thinking content is delivered through specific events:\n\n```typescript\nconst s = streamSimple(model, context, { reasoning: \"high\" });\n\nfor await (const event of s) {\n\tswitch (event.type) {\n\t\tcase \"thinking_start\":\n\t\t\tconsole.log(\"[Model started thinking]\");\n\t\t\tbreak;\n\t\tcase \"thinking_delta\":\n\t\t\tprocess.stdout.write(event.delta); // Stream thinking content\n\t\t\tbreak;\n\t\tcase \"thinking_end\":\n\t\t\tconsole.log(\"\\n[Thinking complete]\");\n\t\t\tbreak;\n\t}\n}\n```\n\n## Stop Reasons\n\nEvery `AssistantMessage` includes a `stopReason` field that indicates how the generation ended:\n\n- `\"stop\"` - Normal completion, the model finished its response\n- `\"length\"` - Output hit the maximum token limit\n- `\"toolUse\"` - Model is calling tools and expects tool results\n- `\"error\"` - An error occurred during generation\n- `\"aborted\"` - Request was cancelled via abort signal\n\n## Error Handling\n\nWhen a request ends with an error (including aborts and tool call validation errors), the streaming API emits an error event:\n\n```typescript\n// In streaming\nfor await (const event of stream) {\n\tif (event.type === \"error\") {\n\t\t// event.reason is either \"error\" or \"aborted\"\n\t\t// event.error is the AssistantMessage with partial content\n\t\tconsole.error(`Error (${event.reason}):`, event.error.errorMessage);\n\t\tconsole.log(\"Partial content:\", event.error.content);\n\t}\n}\n\n// The final message will have the error details\nconst message = await stream.result();\nif (message.stopReason === \"error\" || message.stopReason === \"aborted\") {\n\tconsole.error(\"Request failed:\", message.errorMessage);\n\t// message.content contains any partial content received before the error\n\t// message.usage contains partial token counts and costs\n}\n```\n\n### Aborting Requests\n\nThe abort signal allows you to cancel in-progress requests. Aborted requests have `stopReason === 'aborted'`:\n\n```typescript\nimport { getModel, stream } from \"@sayknow-cli/ai\";\n\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\n\n// Abort after 2 seconds\nconst signal = AbortSignal.timeout(2000);\n\nconst s = stream(\n\tmodel,\n\t{\n\t\tmessages: [{ role: \"user\", content: \"Write a long story\" }],\n\t},\n\t{\n\t\tsignal,\n\t}\n);\n\nfor await (const event of s) {\n\tif (event.type === \"text_delta\") {\n\t\tprocess.stdout.write(event.delta);\n\t} else if (event.type === \"error\") {\n\t\t// event.reason tells you if it was \"error\" or \"aborted\"\n\t\tconsole.log(`${event.reason === \"aborted\" ? \"Aborted\" : \"Error\"}:`, event.error.errorMessage);\n\t}\n}\n\n// Get results (may be partial if aborted)\nconst response = await s.result();\nif (response.stopReason === \"aborted\") {\n\tconsole.log(\"Request was aborted:\", response.errorMessage);\n\tconsole.log(\"Partial content received:\", response.content);\n\tconsole.log(\"Tokens used:\", response.usage);\n}\n```\n\n### Continuing After Abort\n\nAborted messages can be added to the conversation context and continued in subsequent requests:\n\n```typescript\nconst context = {\n\tmessages: [{ role: \"user\", content: \"Explain quantum computing in detail\" }],\n};\n\n// First request gets aborted after 2 seconds\nconst controller1 = new AbortController();\nsetTimeout(() => controller1.abort(), 2000);\n\nconst partial = await complete(model, context, { signal: controller1.signal });\n\n// Add the partial response to context\ncontext.messages.push(partial);\ncontext.messages.push({ role: \"user\", content: \"Please continue\" });\n\n// Continue the conversation\nconst continuation = await complete(model, context);\n```\n\n### Common Stream Options\n\nAll providers accept the base `StreamOptions` (in addition to provider-specific options):\n\n- `apiKey`: Override the provider API key\n- `headers`: Extra request headers merged on top of model-defined headers\n- `sessionId`: Provider-specific session identifier (prompt caching/routing)\n- `signal`: Abort in-flight requests\n- `onPayload`: Callback invoked with the provider request payload just before sending\n\nExample:\n\n```typescript\nconst response = await complete(model, context, {\n\tapiKey: \"sk-live\",\n\theaders: { \"X-Debug-Trace\": \"true\" },\n\tonPayload: (payload) => {\n\t\tconsole.log(\"request payload\", payload);\n\t},\n});\n```\n\n## APIs, Models, and Providers\n\nThe library implements 4 API interfaces, each with its own streaming function and options:\n\n- **`anthropic-messages`**: Anthropic's Messages API (`streamAnthropic`, `AnthropicOptions`)\n- **`google-generative-ai`**: Google's Generative AI API (`streamGoogle`, `GoogleOptions`)\n- **`openai-completions`**: OpenAI's Chat Completions API (`streamOpenAICompletions`, `OpenAICompletionsOptions`)\n- **`openai-responses`**: OpenAI's Responses API (`streamOpenAIResponses`, `OpenAIResponsesOptions`)\n\n### Providers and Models\n\nA **provider** offers models through a specific API. For example:\n\n- **Anthropic** models use the `anthropic-messages` API\n- **Google** models use the `google-generative-ai` API\n- **OpenAI** models use the `openai-responses` API\n- **Mistral, xAI, Cerebras, Groq, etc.** models use the `openai-completions` API (OpenAI-compatible)\n\n### Querying Providers and Models\n\n```typescript\nimport { getProviders, getModels, getModel } from \"@sayknow-cli/ai\";\n\n// Get all available providers\nconst providers = getProviders();\nconsole.log(providers); // ['openai', 'anthropic', 'google', 'xai', 'groq', ...]\n\n// Get all models from a provider (fully typed)\nconst anthropicModels = getModels(\"anthropic\");\nfor (const model of anthropicModels) {\n\tconsole.log(`${model.id}: ${model.name}`);\n\tconsole.log(`  API: ${model.api}`); // 'anthropic-messages'\n\tconsole.log(`  Context: ${model.contextWindow} tokens`);\n\tconsole.log(`  Vision: ${model.input.includes(\"image\")}`);\n\tconsole.log(`  Reasoning: ${model.reasoning}`);\n}\n\n// Get a specific model (both provider and model ID are auto-completed in IDEs)\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\nconsole.log(`Using ${model.name} via ${model.api} API`);\n```\n\n### Custom Models\n\nYou can create custom models for local inference servers or custom endpoints.\n\nFor local Ollama, `OLLAMA_API_KEY` is optional and mainly needed for authenticated/self-hosted gateways. `ollama` remains the local OpenAI-compatible runtime integration.\n\n```typescript\nimport { Model, stream } from \"@sayknow-cli/ai\";\n\n// Example: local Ollama using the OpenAI-compatible API\nconst ollamaModel: Model<\"openai-completions\"> = {\n\tid: \"llama-3.1-8b\",\n\tname: \"Llama 3.1 8B (Ollama)\",\n\tapi: \"openai-completions\",\n\tprovider: \"ollama\",\n\tbaseUrl: \"http://localhost:11434/v1\",\n\treasoning: false,\n\tinput: [\"text\"],\n\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\tcontextWindow: 128000,\n\tmaxTokens: 32000,\n};\n\nconst localResponse = await stream(ollamaModel, context, {\n\tapiKey: process.env.OLLAMA_API_KEY, // Optional; local Ollama usually runs without auth\n});\n\n// Example: Ollama Cloud using the native /api/chat transport\nconst ollamaCloudModel: Model<\"ollama-chat\"> = {\n\tid: \"gpt-oss:120b\",\n\tname: \"GPT OSS 120B (Ollama Cloud)\",\n\tapi: \"ollama-chat\",\n\tprovider: \"ollama-cloud\",\n\tbaseUrl: \"https://ollama.com\",\n\treasoning: true,\n\tinput: [\"text\", \"image\"],\n\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\tcontextWindow: 262144,\n\tmaxTokens: 8192,\n};\n\nconst cloudResponse = await stream(ollamaCloudModel, context, {\n\tapiKey: process.env.OLLAMA_CLOUD_API_KEY,\n});\n\n// Example: LiteLLM proxy with explicit compat settings\nconst litellmModel: Model<\"openai-completions\"> = {\n\tid: \"gpt-4o\",\n\tname: \"GPT-4o (via LiteLLM)\",\n\tapi: \"openai-completions\",\n\tprovider: \"litellm\",\n\tbaseUrl: \"http://localhost:4000/v1\",\n\treasoning: false,\n\tinput: [\"text\", \"image\"],\n\tcost: { input: 2.5, output: 10, cacheRead: 0, cacheWrite: 0 },\n\tcontextWindow: 128000,\n\tmaxTokens: 16384,\n\tcompat: {\n\t\tsupportsStore: false, // LiteLLM doesn't support the store field\n\t},\n};\n\n// Example: Custom endpoint with headers (bypassing Cloudflare bot detection)\nconst proxyModel: Model<\"anthropic-messages\"> = {\n\tid: \"anthropic-model-sonnet-4\",\n\tname: \"Anthropic model Sonnet 4 (Proxied)\",\n\tapi: \"anthropic-messages\",\n\tprovider: \"custom-proxy\",\n\tbaseUrl: \"https://proxy.example.com/v1\",\n\treasoning: true,\n\tinput: [\"text\", \"image\"],\n\tcost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },\n\tcontextWindow: 200000,\n\tmaxTokens: 8192,\n\theaders: {\n\t\t\"User-Agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36\",\n\t\t\"X-Custom-Auth\": \"bearer-token-here\",\n\t},\n};\n```\n\n### OpenAI Compatibility Settings\n\nThe `openai-completions` API is implemented by many providers with minor differences. By default, the library auto-detects compatibility settings based on `baseUrl` for known providers (Cerebras, xAI, Mistral, Chutes, etc.). For custom proxies or unknown endpoints, you can override these settings via the `compat` field:\n\n```typescript\ninterface OpenAICompat {\n\tsupportsStore?: boolean; // Whether provider supports the `store` field (default: true)\n\tsupportsDeveloperRole?: boolean; // Whether provider supports `developer` role vs `system` (default: true)\n\tsendSessionHeaders?: boolean; // Forward the session id as `session_id`/`x-session-id` headers for relay session-affinity & prompt-cache reuse (default: false)\n\tsupportsReasoningEffort?: boolean; // Whether provider supports `reasoning_effort` (default: true)\n\tmaxTokensField?: \"max_completion_tokens\" | \"max_tokens\"; // Which field name to use (default: max_completion_tokens)\n\textraBody?: Record<string, unknown>; // Extra request-body fields for custom proxy routing or provider-specific options\n}\n```\n\nIf `compat` is not set, the library falls back to URL-based detection. If `compat` is partially set, unspecified fields use the detected defaults. This is useful for:\n\n- **LiteLLM proxies**: May not support `store` field\n- **Custom inference servers**: May use non-standard field names\n- **Self-hosted endpoints**: May have different feature support\n\n### Type Safety\n\nModels are typed by their API, ensuring type-safe options:\n\n```typescript\n// TypeScript knows this is an Anthropic model\nconst anthropic-model = getModel(\"anthropic\", \"anthropic-model-sonnet-4-20250514\");\n\n// So these options are type-checked for AnthropicOptions\nawait stream(anthropic-model, context, {\n\tthinkingEnabled: true, // ✓ Valid for anthropic-messages\n\tthinkingBudgetTokens: 2048, // ✓ Valid for anthropic-messages\n\t// reasoningEffort: 'high'  // ✗ TypeScript error: not valid for anthropic-messages\n});\n```\n\n## Cross-Provider Handoffs\n\nThe library supports seamless handoffs between different LLM providers within the same conversation. This allows you to switch models mid-conversation while preserving context, including thinking blocks, tool calls, and tool results.\n\n### How It Works\n\nWhen messages from one provider are sent to a different provider, the library automatically transforms them for compatibility:\n\n- **User and tool result messages** are passed through unchanged\n- **Assistant messages from the same provider/API** are preserved as-is\n- **Assistant messages from different providers** have their thinking blocks converted to text with `<thinking>` tags\n- **Tool calls and regular text** are preserved unchanged\n\n### Example: Multi-Provider Conversation\n\n```typescript\nimport { getModel, complete, Context } from \"@sayknow-cli/ai\";\n\n// Start with Anthropic model\nconst anthropic-model = getModel(\"anthropic\", \"anthropic-model-sonnet-4-20250514\");\nconst context: Context = {\n\tmessages: [],\n};\n\ncontext.messages.push({ role: \"user\", content: \"What is 25 * 18?\" });\nconst anthropic-modelResponse = await complete(anthropic-model, context, {\n\tthinkingEnabled: true,\n});\ncontext.messages.push(anthropic-modelResponse);\n\n// Switch to GPT-5 - it will see Anthropic model's thinking as <thinking> tagged text\nconst gpt5 = getModel(\"openai\", \"gpt-5-mini\");\ncontext.messages.push({ role: \"user\", content: \"Is that calculation correct?\" });\nconst gptResponse = await complete(gpt5, context);\ncontext.messages.push(gptResponse);\n\n// Switch to Gemini\nconst gemini = getModel(\"google\", \"gemini-2.5-flash\");\ncontext.messages.push({ role: \"user\", content: \"What was the original question?\" });\nconst geminiResponse = await complete(gemini, context);\n```\n\n### Provider Compatibility\n\nAll providers can handle messages from other providers, including:\n\n- Text content\n- Tool calls and tool results (including images in tool results)\n- Thinking/reasoning blocks (transformed to tagged text for cross-provider compatibility)\n- Aborted messages with partial content\n\nThis enables flexible workflows where you can:\n\n- Start with a fast model for initial responses\n- Switch to a more capable model for complex reasoning\n- Use specialized models for specific tasks\n- Maintain conversation continuity across provider outages\n\n## Context Serialization\n\nThe `Context` object can be easily serialized and deserialized using standard JSON methods, making it simple to persist conversations, implement chat history, or transfer contexts between services:\n\n```typescript\nimport { Context, getModel, complete } from \"@sayknow-cli/ai\";\n\n// Create and use a context\nconst context: Context = {\n\tsystemPrompt: [\"You are a helpful assistant.\"],\n\tmessages: [{ role: \"user\", content: \"What is TypeScript?\" }],\n};\n\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\nconst response = await complete(model, context);\ncontext.messages.push(response);\n\n// Serialize the entire context\nconst serialized = JSON.stringify(context);\nconsole.log(\"Serialized context size:\", serialized.length, \"bytes\");\n\n// Save to database, localStorage, file, etc.\nlocalStorage.setItem(\"conversation\", serialized);\n\n// Later: deserialize and continue the conversation\nconst restored: Context = JSON.parse(localStorage.getItem(\"conversation\")!);\nrestored.messages.push({ role: \"user\", content: \"Tell me more about its type system\" });\n\n// Continue with any model\nconst newModel = getModel(\"anthropic\", \"anthropic-model-haiku-4-5-20251001\");\nconst continuation = await complete(newModel, restored);\n```\n\n> **Note**: If the context contains images (encoded as base64 as shown in the Image Input section), those will also be serialized.\n\n## Browser Usage\n\nThe library supports browser environments. You must pass the API key explicitly since environment variables are not available in browsers:\n\n```typescript\nimport { getModel, complete } from \"@sayknow-cli/ai\";\n\n// API key must be passed explicitly in browser\nconst model = getModel(\"anthropic\", \"anthropic-model-haiku-4-5-20251001\");\n\nconst response = await complete(\n\tmodel,\n\t{\n\t\tmessages: [{ role: \"user\", content: \"Hello!\" }],\n\t},\n\t{\n\t\tapiKey: \"your-api-key\",\n\t}\n);\n```\n\n> **Security Warning**: Exposing API keys in frontend code is dangerous. Anyone can extract and abuse your keys. Only use this approach for internal tools or demos. For production applications, use a backend proxy that keeps your API keys secure.\n\n### Environment Variables (Node.js only)\n\nIn Node.js environments, you can set environment variables to avoid passing API keys:\n\n| Provider       | Environment Variable(s)                                                      |\n| -------------- | ---------------------------------------------------------------------------- |\n| OpenAI         | `OPENAI_API_KEY`                                                             |\n| Anthropic      | `ANTHROPIC_API_KEY` or `ANTHROPIC_OAUTH_TOKEN` (or `ANTHROPIC_FOUNDRY_API_KEY` when `ANTHROPIC_MODEL_CODE_USE_FOUNDRY=true`) |\n| Google         | `GEMINI_API_KEY`                                                             |\n| Vertex AI      | `GOOGLE_CLOUD_PROJECT` (or `GCLOUD_PROJECT`) + `GOOGLE_CLOUD_LOCATION` + ADC |\n| Mistral        | `MISTRAL_API_KEY`                                                            |\n| Groq           | `GROQ_API_KEY`                                                               |\n| Cerebras       | `CEREBRAS_API_KEY`                                                           |\n| Together       | `TOGETHER_API_KEY`                                                           |\n| Qianfan        | `QIANFAN_API_KEY`                                                            |\n| Hugging Face   | `HUGGINGFACE_HUB_TOKEN` or `HF_TOKEN`                                        |\n| Synthetic      | `SYNTHETIC_API_KEY`                                                          |\n| NVIDIA         | `NVIDIA_API_KEY`                                                             |\n| NanoGPT        | `NANO_GPT_API_KEY`                                                          |\n| Venice         | `VENICE_API_KEY`                                                             |\n| Moonshot       | `MOONSHOT_API_KEY`                                                           |\n| xAI            | `XAI_API_KEY`                                                                |\n| OpenRouter     | `OPENROUTER_API_KEY`                                                         |\n| LiteLLM        | `LITELLM_API_KEY`                                                            |\n| Ollama         | `OLLAMA_API_KEY` (optional for local deployments)                            |\n| Ollama Cloud   | `OLLAMA_CLOUD_API_KEY`                                                     |\n| Qwen Portal    | `QWEN_OAUTH_TOKEN` or `QWEN_PORTAL_API_KEY`                                  |\n| zAI            | `ZAI_API_KEY`                                                                |\n| MiniMax Code   | `MINIMAX_CODE_API_KEY` (international) or `MINIMAX_CODE_CN_API_KEY` (China) |\n| Xiaomi MiMo    | `XIAOMI_API_KEY`                                                             |\n| ZenMux         | `ZENMUX_API_KEY`                                                             |\n| OpenGateway    | `OPENGATEWAY_API_KEY`                                                        |\n| BizRouter      | `BIZROUTER_API_KEY`                                                          |\n| vLLM           | `VLLM_API_KEY`                                                               |\n| Cloudflare AI Gateway | `CLOUDFLARE_AI_GATEWAY_API_KEY`                                      |\n| GitHub Copilot | `COPILOT_GITHUB_TOKEN` or `GH_TOKEN` or `GITHUB_TOKEN`                      |\n\nFor Cloudflare AI Gateway models, use provider base URL format\n`https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/anthropic`.\n\nFor Anthropic Foundry routing, set `ANTHROPIC_MODEL_CODE_USE_FOUNDRY=true` plus:\n`FOUNDRY_BASE_URL`, `ANTHROPIC_FOUNDRY_API_KEY`, optional `ANTHROPIC_CUSTOM_HEADERS`,\nand optional mTLS material (`ANTHROPIC_MODEL_CODE_CLIENT_CERT`, `ANTHROPIC_MODEL_CODE_CLIENT_KEY`, `NODE_EXTRA_CA_CERTS`).\n\nProvider endpoint defaults for the current OpenAI-compatible integrations:\n\n- Together: `https://api.together.xyz/v1`\n- Moonshot: `https://api.moonshot.ai/v1`\n- Qianfan: `https://qianfan.baidubce.com/v2`\n- NVIDIA: `https://integrate.api.nvidia.com/v1`\n- NanoGPT: `https://nano-gpt.com/api/v1`\n- Hugging Face Inference: `https://router.huggingface.co/v1`\n- Venice: `https://api.venice.ai/api/v1`\n- Xiaomi MiMo: `https://api.xiaomimimo.com/anthropic`\n- ZenMux (OpenAI): `https://zenmux.ai/api/v1`\n- ZenMux (Anthropic models): `https://zenmux.ai/api/anthropic`\n- OpenGateway by Sionic AI: `https://apis.opengateway.ai/v1`\n- BizRouter: `https://api.bizrouter.ai/v1`\n- vLLM: `http://127.0.0.1:8000/v1`\n- Ollama: local OpenAI-compatible runtime (`http://127.0.0.1:11434/v1`)\n- Ollama Cloud: native Ollama API host (`https://ollama.com/api`, configured here as base URL `https://ollama.com`)\n- LiteLLM: `http://localhost:4000/v1`\n- Cloudflare AI Gateway: `https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/anthropic`\n- Qwen Portal: `https://portal.qwen.ai/v1`\nWhen set, the library automatically uses these keys:\n\n```typescript\n// Uses OPENAI_API_KEY from environment\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\nconst response = await complete(model, context);\n\n// Or override with explicit key\nconst response = await complete(model, context, {\n\tapiKey: \"sk-different-key\",\n});\n```\n\n### Checking Environment Variables\n\n```typescript\nimport { getEnvApiKey } from \"@sayknow-cli/ai\";\n\n// Check if an API key is set in environment variables\nconst key = getEnvApiKey(\"openai\"); // checks OPENAI_API_KEY\n```\n\n## OAuth Providers\n\nSeveral providers support OAuth authentication (some also support static API keys):\n\n- **Anthropic** (Anthropic model Pro/Max subscription)\n- **OpenAI code provider** (ChatGPT Plus/Pro subscription, access to GPT-5.x OpenAI code models)\n- **GitHub Copilot** (Copilot subscription)\n- **Google Gemini CLI** (Gemini 2.0/2.5 via Google Cloud Code Assist; free tier or paid subscription)\n- **Antigravity** (Free Gemini 3, Anthropic model, GPT-OSS via Google Cloud)\n- **Qwen Portal** (Qwen OAuth token or API key)\n- **xAI** (Grok OAuth login via xAI account)\n\nFor paid Cloud Code Assist subscriptions, set `GOOGLE_CLOUD_PROJECT` or `GOOGLE_CLOUD_PROJECT_ID` to your project ID.\n\n### Vertex AI (ADC)\n\nVertex AI models use Application Default Credentials (ADC):\n\n- **Local development**: Run `gcloud auth application-default login`\n- **CI/Production**: Set `GOOGLE_APPLICATION_CREDENTIALS` to point to a service account JSON key file\n\nAlso set `GOOGLE_CLOUD_PROJECT` (or `GCLOUD_PROJECT`) and `GOOGLE_CLOUD_LOCATION`. You can also pass `project`/`location` in the call options.\n\nExample:\n\n```bash\n# Local (uses your user credentials)\ngcloud auth application-default login\nexport GOOGLE_CLOUD_PROJECT=\"my-project\"\nexport GOOGLE_CLOUD_LOCATION=\"us-central1\"\n\n# CI/Production (service account key file)\nexport GOOGLE_APPLICATION_CREDENTIALS=\"/path/to/service-account.json\"\n```\n\n```typescript\nimport { getModel, complete } from \"@sayknow-cli/ai\";\n\n(async () => {\n\tconst model = getModel(\"google-vertex\", \"gemini-2.5-flash\");\n\tconst response = await complete(model, {\n\t\tmessages: [{ role: \"user\", content: \"Hello from Vertex AI\" }],\n\t});\n\n\tfor (const block of response.content) {\n\t\tif (block.type === \"text\") console.log(block.text);\n\t}\n})().catch(console.error);\n```\n\nOfficial docs: [Application Default Credentials](https://cloud.google.com/docs/authentication/application-default-credentials)\n\n### CLI Login\n\nThe quickest way to authenticate:\n\n```bash\nbunx @sayknow-cli/ai login              # interactive provider selection\nbunx @sayknow-cli/ai login anthropic    # login to specific provider\nbunx @sayknow-cli/ai login vllm         # store vLLM API key (or placeholder for local no-auth)\nbunx @sayknow-cli/ai login xai          # sign in with xAI/Grok OAuth\nbunx @sayknow-cli/ai list               # list available providers\n```\n\nCredentials are saved to `agent.db` in the agent directory. `/login qianfan` opens the Qianfan console and stores the pasted API key; `/login xai` opens xAI/Grok OAuth login and stores refreshable OAuth credentials.\n\n`login` supports OAuth providers (Anthropic, OpenAI code provider, GitHub Copilot, Gemini CLI, Antigravity, xAI) and API-key onboarding flows.\n\nFor the current API-key onboarding flows, the library covers Together, Moonshot, Qianfan, NVIDIA, NanoGPT, Hugging Face, Venice, Xiaomi, vLLM, LiteLLM, Cloudflare AI Gateway, Qwen Portal, and Ollama Cloud. Ollama remains the local runtime integration; set `OLLAMA_API_KEY` only when your local or self-hosted deployment enforces bearer auth.\n\n### Programmatic OAuth\n\nThe library provides login and token refresh functions. Credential storage is the caller's responsibility.\n\n```typescript\nimport {\n\t// Login functions (return credentials, do not store)\n\tloginAnthropic,\n\tloginOpenAIOpenAI code,\n\tloginGitHubCopilot,\n\tloginGeminiCli,\n\tloginAntigravity,\n\tloginCloudflareAiGateway,\n\tloginHuggingface,\n\tloginLiteLLM,\n\tloginMoonshot,\n\tloginNvidia,\n\tloginNanoGPT,\n\tloginQianfan,\n\tloginQwenPortal,\n\tloginTogether,\n\tloginVenice,\n\tloginVllm,\n\tloginXiaomi,\n\n\t// Token management\n\trefreshOAuthToken, // (provider, credentials) => new credentials\n\tgetOAuthApiKey, // (provider, credentialsMap) => { newCredentials, apiKey } | null\n\n\t// Types\n\ttype OAuthProvider, // includes 'anthropic', 'openai-code', 'github-copilot', 'google-gemini-cli', 'google-antigravity', 'together', 'moonshot', 'qianfan', 'nvidia', 'nanogpt', 'huggingface', 'venice', 'xiaomi', 'vllm', 'litellm', 'cloudflare-ai-gateway', 'qwen-portal', ...\n\ttype OAuthCredentials,\n} from \"@sayknow-cli/ai\";\n```\n\n`loginOpenAIOpenAI code` accepts an optional `originator` value used in the OAuth flow:\n\n```typescript\nawait loginOpenAIOpenAI code({\n\tonAuth: ({ url }) => console.log(url),\n\toriginator: \"my-cli\",\n});\n```\n\n### Login Flow Example\n\n```typescript\nimport { loginGitHubCopilot } from \"@sayknow-cli/ai\";\nimport * as fs from \"node:fs\";\n\nconst credentials = await loginGitHubCopilot({\n\tonAuth: (url, instructions) => {\n\t\tconsole.log(`Open: ${url}`);\n\t\tif (instructions) console.log(instructions);\n\t},\n\tonPrompt: async (prompt) => {\n\t\treturn await getUserInput(prompt.message);\n\t},\n\tonProgress: (message) => console.log(message),\n});\n\n// Store credentials yourself\nconst auth = { \"github-copilot\": { type: \"oauth\", ...credentials } };\nfs.writeFileSync(\"credentials.json\", JSON.stringify(auth, null, 2));\n```\n\n### Using OAuth Tokens\n\nUse `getOAuthApiKey()` to get an API key, automatically refreshing if expired:\n\n```typescript\nimport { getModel, complete, getOAuthApiKey } from \"@sayknow-cli/ai\";\nimport * as fs from \"node:fs\";\n\n// Load your stored credentials\nconst auth = JSON.parse(fs.readFileSync(\"credentials.json\", \"utf-8\"));\n\n// Get API key (refreshes if expired)\nconst result = await getOAuthApiKey(\"github-copilot\", auth);\nif (!result) throw new Error(\"Not logged in\");\n\n// Save refreshed credentials\nauth[\"github-copilot\"] = { type: \"oauth\", ...result.newCredentials };\nfs.writeFileSync(\"credentials.json\", JSON.stringify(auth, null, 2));\n\n// Use the API key\nconst model = getModel(\"github-copilot\", \"gpt-4o\");\nconst response = await complete(\n\tmodel,\n\t{\n\t\tmessages: [{ role: \"user\", content: \"Hello!\" }],\n\t},\n\t{ apiKey: result.apiKey }\n);\n```\n\n### Provider Notes\n\n**OpenAI code provider**: Requires a ChatGPT Plus or Pro subscription. Provides access to GPT-5.x OpenAI code models with extended context windows and reasoning capabilities. The library automatically handles session-based prompt caching when `sessionId` is provided in stream options.\n\n**GitHub Copilot**: If you get \"The requested model is not supported\" error, enable the model manually in VS Code: open Copilot Chat, click the model selector, select the model (warning icon), and click \"Enable\".\n\n**Google Gemini CLI / Antigravity**: These use Google Cloud OAuth. The `apiKey` returned by `getOAuthApiKey()` is a JSON string containing both the token and project ID, which the library handles automatically.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}