{"_id":"@civaapple/qi-ai","_rev":"6-6fa32deeb4b24cca4d10b4cb91f4660c","name":"@civaapple/qi-ai","dist-tags":{"latest":"0.7.4"},"versions":{"0.6.0":{"name":"@civaapple/qi-ai","version":"0.6.0","license":"MIT","_id":"@civaapple/qi-ai@0.6.0","maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"homepage":"https://github.com/civaapple-alt/qi#readme","bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"dist":{"shasum":"4d09c02e68ad437b9a92a19458c409a3f08882d0","tarball":"https://registry.npmjs.org/@civaapple/qi-ai/-/qi-ai-0.6.0.tgz","fileCount":40,"integrity":"sha512-14pI0fnGZEqA8ucj/4NbmISeUFMvxXuNz5mnzLolPtwkbMyCoOyOQ+xCkZTKk6K1z9N7OGKJLkwbYsgBWnaORA==","signatures":[{"sig":"MEYCIQCAOi3xTqHmPfCTCV6cCFyTTgTEzr9kLKimz4ZsNP+mewIhAILpJf7KPkA0d3z6+Co2azYsy+AX0YXkB9R1V4bmYEcX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civaapple%2fqi-ai@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215099},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.js"}},"gitHead":"e38f41185d88ff99099aa5cab5e5fc397ab1ace4","_npmUser":{"name":"civaapple","email":"civaapple@gmail.com"},"repository":{"url":"git+https://github.com/civaapple-alt/qi.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Portable Qi model protocol, provider adapters, and context compiler","directories":{},"_nodeVersion":"24.18.0","dependencies":{"openai":"^6.48.0","@sinclair/typebox":"0.34.52"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qi-ai_0.6.0_1785226409756_0.9915863861938605","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@civaapple/qi-ai","version":"0.7.0","license":"MIT","_id":"@civaapple/qi-ai@0.7.0","maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"homepage":"https://github.com/civaapple-alt/qi#readme","bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"dist":{"shasum":"094479465e6352c6a7d44094ec621ac36bbfe0c7","tarball":"https://registry.npmjs.org/@civaapple/qi-ai/-/qi-ai-0.7.0.tgz","fileCount":40,"integrity":"sha512-kb7uTAEiyZFrynOj9qHgjQ+5/oy8jajKcnsDawbjo6dESTa9z34NLHV1K78P3DSx14jMoMRx5zAeZ7c48t7hwA==","signatures":[{"sig":"MEUCIQCDEv3GC4NWiVzC6nf9cWp4S1eT39Ks8q8yejtKTsTtUwIgDQ3RzuPByz3yQjvXqBqfcvi2UNRpZhDsUaLuKok3zjE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civaapple%2fqi-ai@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":224841},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.js"}},"gitHead":"5d6e74c44f4fe17f8b4f35c452a6a18cc8e74956","_npmUser":{"name":"civaapple","email":"civaapple@gmail.com"},"repository":{"url":"git+https://github.com/civaapple-alt/qi.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Portable Qi model protocol, provider adapters, and context compiler","directories":{},"_nodeVersion":"24.18.0","dependencies":{"openai":"^6.48.0","@sinclair/typebox":"0.34.52"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qi-ai_0.7.0_1785242076978_0.12906775002616278","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@civaapple/qi-ai","version":"0.7.1","license":"MIT","_id":"@civaapple/qi-ai@0.7.1","maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"homepage":"https://github.com/civaapple-alt/qi#readme","bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"dist":{"shasum":"b2aaf30e557cf66352dd7c6e78a9f2032e5c13ad","tarball":"https://registry.npmjs.org/@civaapple/qi-ai/-/qi-ai-0.7.1.tgz","fileCount":40,"integrity":"sha512-htTmWnl7EpdHNy6RscbFBjPoo8KZg8b5pK3cwrgt6vcTCB6ZLxbARENQKnVuTqHmaRi3r4zTPaqmd9TvfLLH4Q==","signatures":[{"sig":"MEYCIQCXCq3E3Rkz3IBYOU9UWhnS9EKQszFlndNN+e9ljTbcpwIhAMb7mDa+Ul1ZrW51I90sBy0lrEuZk7YdCihkNOAkzvhL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civaapple%2fqi-ai@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225110},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.js"}},"gitHead":"8f6e5c5d38cc79c01e31d6b87a9857d67767d278","_npmUser":{"name":"civaapple","email":"civaapple@gmail.com"},"repository":{"url":"git+https://github.com/civaapple-alt/qi.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Portable Qi model protocol, provider adapters, and context compiler","directories":{},"_nodeVersion":"24.18.0","dependencies":{"openai":"^6.48.0","@sinclair/typebox":"0.34.52"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qi-ai_0.7.1_1785321691313_0.5155304422448226","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@civaapple/qi-ai","version":"0.7.2","license":"MIT","_id":"@civaapple/qi-ai@0.7.2","maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"homepage":"https://github.com/civaapple-alt/qi#readme","bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"dist":{"shasum":"9347c25a75cb86f3e19c4c7aa2013d632f5d5389","tarball":"https://registry.npmjs.org/@civaapple/qi-ai/-/qi-ai-0.7.2.tgz","fileCount":40,"integrity":"sha512-wytu0ako/BlYZSPaHs5WnDDgxTa5Zcb7Wg6CIc+1GezZ0gJX40o65TTM9SxW2SjgWDP/X7Z06hpaIao3/+rjBw==","signatures":[{"sig":"MEUCICUcgnB0uqCm9/gKT+oQ4MpccfmTgfo+AnY14Gnsq+7zAiEAgoQ81EuiZbjzXlBqygUOrsoiqVPol554W8W8Bc/K60s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civaapple%2fqi-ai@0.7.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":240477},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.js"}},"gitHead":"9d9d1dda6a0d6d8e3265782a7446516674898a35","_npmUser":{"name":"civaapple","email":"civaapple@gmail.com"},"repository":{"url":"git+https://github.com/civaapple-alt/qi.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Portable Qi model protocol, provider adapters, and context compiler","directories":{},"_nodeVersion":"24.18.0","dependencies":{"openai":"^6.48.0","@sinclair/typebox":"0.34.52"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qi-ai_0.7.2_1785408140404_0.45252819503119435","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@civaapple/qi-ai","version":"0.7.3","license":"MIT","_id":"@civaapple/qi-ai@0.7.3","maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"homepage":"https://github.com/civaapple-alt/qi#readme","bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"dist":{"shasum":"f5a7f93c43d3edabdbeef1470fdf4ef19d68d71b","tarball":"https://registry.npmjs.org/@civaapple/qi-ai/-/qi-ai-0.7.3.tgz","fileCount":65,"integrity":"sha512-7cx8ctjCugvBndGhWOzTd0CrOHplPGrr1NxHlh4tu0DWWF/Jr3vngoCw7HKKmVj+vBqI5MFVh/zkFJ46pIYcng==","signatures":[{"sig":"MEUCIQD/Qc0HgKiI3b/d7FIW4gGLJsPWsLmYCW3vbOQokD+LWwIgYm7rg7QcleFbtVC4Tl6USNNr02y8eh1txACbm71XgUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civaapple%2fqi-ai@0.7.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":366596},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.js"}},"gitHead":"9808d7f0df3b5c7ae5270e409bb466f3e3576122","_npmUser":{"name":"civaapple","email":"civaapple@gmail.com"},"repository":{"url":"git+https://github.com/civaapple-alt/qi.git","type":"git","directory":"packages/ai"},"_npmVersion":"11.16.0","description":"Portable Qi model protocol, provider adapters, and context compiler","directories":{},"_nodeVersion":"24.18.0","dependencies":{"openai":"^6.48.0","@sinclair/typebox":"0.34.52"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/qi-ai_0.7.3_1785745930022_0.3478114449139751","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@civaapple/qi-ai","version":"0.7.4","description":"Portable Qi model protocol, provider adapters, and context compiler","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./context":{"types":"./dist/context/index.d.ts","default":"./dist/context/index.js"}},"engines":{"node":">=22.19.0"},"dependencies":{"@sinclair/typebox":"0.34.52","openai":"^6.48.0"},"repository":{"type":"git","url":"git+https://github.com/civaapple-alt/qi.git","directory":"packages/ai"},"license":"MIT","publishConfig":{"access":"public","provenance":true},"gitHead":"8c2bdc32c6f8d67794393ee15aa0e57bb5a73182","_id":"@civaapple/qi-ai@0.7.4","bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"homepage":"https://github.com/civaapple-alt/qi#readme","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-hHTTPm1WaBoxknF6Xh5ojkyz2H4hgxnNX+QoyGR1f9FwgNDhXXP4uEyvEf8oSw8SOGi4XO57bikSWhXIMjXrSQ==","shasum":"b3756cadbece8141ea45a3f086889906e282c1b8","tarball":"https://registry.npmjs.org/@civaapple/qi-ai/-/qi-ai-0.7.4.tgz","fileCount":65,"unpackedSize":374773,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@civaapple%2fqi-ai@0.7.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA2S+MEA/viAZop9aj5TkyHrZkQmMNvcyNihdszpqT65AiEAmEjyHYqRDO1NuCQwL8XEDHdug33Tn3EMXnF0c+jU54A="}]},"_npmUser":{"name":"civaapple","email":"civaapple@gmail.com"},"directories":{},"maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/qi-ai_0.7.4_1785988611934_0.6673173384189803"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-28T08:13:29.623Z","modified":"2026-08-06T03:56:52.410Z","0.6.0":"2026-07-28T08:13:29.904Z","0.7.0":"2026-07-28T12:34:37.098Z","0.7.1":"2026-07-29T10:41:31.471Z","0.7.2":"2026-07-30T10:42:20.563Z","0.7.3":"2026-08-03T08:32:10.173Z","0.7.4":"2026-08-06T03:56:52.084Z"},"bugs":{"url":"https://github.com/civaapple-alt/qi/issues"},"license":"MIT","homepage":"https://github.com/civaapple-alt/qi#readme","repository":{"type":"git","url":"git+https://github.com/civaapple-alt/qi.git","directory":"packages/ai"},"description":"Portable Qi model protocol, provider adapters, and context compiler","maintainers":[{"name":"civaapple","email":"civaapple@gmail.com"}],"readme":"# @civaapple/qi-ai\n\nPortable model integration and deterministic context compilation for Qi.\n\nThe root exports `ModelPort`, portable request/event schemas, scripted test ports, provider profiles, and\nOpenAI-compatible Chat Completions/Responses adapters. `./context` exports the budget-aware Context Compiler.\n\n```sh\nnpm install @civaapple/qi-ai\n```\n\nProvider-specific response IDs, transport state, and credentials never enter durable Session truth. A provider\nadapter streams portable text/reasoning/action boundaries; Agent lifecycle policy remains in\n`@civaapple/qi-agent`. Profiles may declare model-specific windows and thinking modes when one provider exposes\nmaterially different models; callers can inspect them with `getProviderModelProfile` and\n`providerModelContextTokens`.\n\nBuilt-in profiles live as declarative JSON under `src/catalog/`. Wire thinking dialects (`ProviderWireHints`)\ndrive Chat Completions / Responses field shapes; composition roots may overlay `$QI_HOME/providers/*.{toml,json}`\nvia `parseProviderCatalogDocument` / `installProviderCatalogOverBuiltins` (CLI Settings can write these files for\ncustom OpenAI-compatible vendors). User `config.toml` `provider` must reference an installed catalog id after\noverlays load. Profiles also declare input modalities and optional per-model wire-API overrides. Kimi K3 and the known Kimi Coding models accept image\nparts; K3 uses a 1,048,576-token window and effort thinking (`low`/`high`/`max`, default `high`) sent as\ntop-level `reasoning_effort`. K2.7 Code keeps thinking always on with `thinking.keep=all`. Callers may discover\nremote models with `listOpenAICompatibleModels` and merge them via `mergeProviderModels` without changing\ncatalog thinking authority. DeepSeek V4 Flash uses Responses with a 1M\nwindow and effort thinking; V4 Pro stays on Chat Completions until the vendor adds Responses. Volcengine Agent\nPlan (`volcengine-agent-plan`) uses Responses at the Agent Plan base URL with `ARK_API_KEY`, default\n`glm-latest`, and deep-thinking control via `thinking.type` plus `reasoning.effort` (`low`/`medium`/`high`).\nQianwen AI Token Plan (`qianwenai`) uses\n`https://token-plan.cn-beijing.maas.aliyuncs.com/compatible-mode/v1` with `QIANWENAI_API_KEY`, default\n`qwen3.8-max` on Responses, and Chat Completions for `glm-5-2` / `deepseek-v4-pro`. Thinking uses\n`reasoning.effort` (Responses) or `enable_thinking` + `reasoning_effort` (Chat Completions). Qianwen Responses\ntool continuations replay the provider reasoning item (`id` + `summary`) from process-local adapter state;\nthose fields never enter durable Session events. OpenAI Responses accepts images; DeepSeek rejects them.\nCustom OpenAI-compatible Chat Completions endpoints deny image input\nunless `imageInput` is explicitly enabled by the operator. Portable assistant messages may carry a `reasoning`\npart so thinking-mode tool turns can round-trip CoT. Chat Completions sends portable user text/images as a\nstandard content array; image-bearing Tool results keep their Tool call/output message and add a following\nsynthetic user media message. Artifact references must be verified and materialized before either adapter is\ninvoked.\n\n```ts\nimport { createModelPortForProfile, listOpenAICompatibleModels } from \"@civaapple/qi-ai\";\nimport { compileContext } from \"@civaapple/qi-ai/context\";\n```\n\nThe compiler treats the model window, output reserve, required context, optional context, and conversation\nhistory as distinct budgets. It is deterministic and fails closed when required blocks cannot fit. Runtime-owned\nblocks are purpose-built least-information disclosures rather than serialized Session projections: internal IDs,\nauthority traces, and unrelated lifecycle diagnostics stay outside model context unless an explicit bounded\nintrospection path is authorized.\n\nThe default `TokenEstimator` is conservative for Unicode and callers add message/schema framing. A\n`ModelCapabilities.tokenEstimator` may supply a provider/model-calibrated deterministic estimator; one Turn must\nuse the same estimator for ContextBlocks, messages, and Tool schemas.\n\nThe compiler result includes deterministic per-kind ContextBlock statistics for included/omitted counts and\nestimated tokens; callers can project composition without retaining block payloads. See\n[`docs/model/`](docs/model/) and [`docs/context/`](docs/context/) for adapter and compiler contracts.\n","readmeFilename":"README.md"}