{"_id":"@aipexstudio/aipex-core","_rev":"12-0d3dd5d6618dfbab8485628b12b9ac93","name":"@aipexstudio/aipex-core","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.6":{"name":"@aipexstudio/aipex-core","version":"0.0.6","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.6","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"31679a66786e0268ecf860d6ccb7a342df60bccc","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.6.tgz","fileCount":62,"integrity":"sha512-IRBAUl+Ft737WXM/VasZEr8d706nUb+X+le9UVsPRF18mxO/06y2GPQMr4k4ih5yZgdTfOklSQSorjlBnFG9cQ==","signatures":[{"sig":"MEUCIGriLYz7/CiC4uGg+cb/d24nK4NqfYtmhKWhfy94aBB7AiEAjm2hw1b4T4ocCx09GYlVssu9Jd3FeEBJqdVQNxVTfPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98607},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.6.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/638e29765532955531acae0e3471fdd1/aipexstudio-aipex-core-0.0.6.tgz","_integrity":"sha512-IRBAUl+Ft737WXM/VasZEr8d706nUb+X+le9UVsPRF18mxO/06y2GPQMr4k4ih5yZgdTfOklSQSorjlBnFG9cQ==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.6_1767697122370_0.4716125691275137","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@aipexstudio/aipex-core","version":"0.0.7","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.7","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"6a58d3ea7d56228953564a7731a7a7c04e75a70e","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.7.tgz","fileCount":62,"integrity":"sha512-XmEOoG/EVEyxdokPpOADEFqQjWwosV+s3O0pJAR45qk+/b6THm7mrq/4ts3r9KeywncbodeJA5EJUA/VgCYn5Q==","signatures":[{"sig":"MEUCIFQnuShjcbXjGTiD2b+XIWrwZcZ12HkPIO5pR9tUEgEEAiEAji32T+373I1mUr6ZqZT6tWjMU/A2UglAxxtFXBVUUyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98607},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.7.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/536026a9ff6dfe7e86d2fc2216e013e6/aipexstudio-aipex-core-0.0.7.tgz","_integrity":"sha512-XmEOoG/EVEyxdokPpOADEFqQjWwosV+s3O0pJAR45qk+/b6THm7mrq/4ts3r9KeywncbodeJA5EJUA/VgCYn5Q==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.7_1767797117217_0.009808650817220821","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@aipexstudio/aipex-core","version":"0.0.8","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.8","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"d6b32026fb77aa6696fb9a2b2e7e2d09e0e240a3","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.8.tgz","fileCount":62,"integrity":"sha512-Q9UXl4xkzUfUISKx5gAdAHG9tbekb8hCGoNrLdZ5YcpwNddjohyPva8KYUcUmmKuAtEsL8d3ka553VDhy5PNkA==","signatures":[{"sig":"MEUCIQCEE7gMb5NiJbmqS0ETCrPtzYk8CYvL/Z8ypgQquNDThQIgazTC7Zuxdda8vbp7AwrG9fu1l0cUjICCifBxzQyV0Lg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98607},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.8.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/0669d70a0ce7ad69e2961dc7e3c1137a/aipexstudio-aipex-core-0.0.8.tgz","_integrity":"sha512-Q9UXl4xkzUfUISKx5gAdAHG9tbekb8hCGoNrLdZ5YcpwNddjohyPva8KYUcUmmKuAtEsL8d3ka553VDhy5PNkA==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.8_1767846522535_0.3134831769911697","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@aipexstudio/aipex-core","version":"0.0.9","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.9","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"bd41681ee1487a11410caf90071de07dcd222d6c","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.9.tgz","fileCount":62,"integrity":"sha512-dMNwl+ELJTPX+wtczRDTBUrWQRRIokUAD55kC9GVMbvPHrGKOaoOSS6UwhtCK2E+lfrrhfZGoYXj7cka8JpQbQ==","signatures":[{"sig":"MEUCICAMxgIS0UK2g//1tbkUgtRFRW1Ft63b5kJTA+0hsSLIAiEAzaqkxPU3o7PX5mU57qJrE6aTUGNhQSI2F83k0ok2AyI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98607},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.9.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/fdcd2486bd21441a379e68d29b434640/aipexstudio-aipex-core-0.0.9.tgz","_integrity":"sha512-dMNwl+ELJTPX+wtczRDTBUrWQRRIokUAD55kC9GVMbvPHrGKOaoOSS6UwhtCK2E+lfrrhfZGoYXj7cka8JpQbQ==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.9_1767851841689_0.841638436833507","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@aipexstudio/aipex-core","version":"0.0.10","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.10","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"6e011d79452815e0a9ec95c24aa47ec5681ebc66","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.10.tgz","fileCount":62,"integrity":"sha512-znxLkNXvaFQ1KO6z8oqmYJsGLwhr8hAUdRRkMCJiFVkBotmD2dYIAGOGtX3JpkHdzoKFCs37iUZD/ysJbraCOQ==","signatures":[{"sig":"MEUCIQCtj9xyEqk8cr04Fd7mMeYWbmv+i4Hz16kVrksBv2RPIwIgQ26+cHpcYR9+AOLaBl9H4nh2xl60g+zvS39GzxXB+Vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98608},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.10.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/63e0dbaf1115faf36f2c89807934b301/aipexstudio-aipex-core-0.0.10.tgz","_integrity":"sha512-znxLkNXvaFQ1KO6z8oqmYJsGLwhr8hAUdRRkMCJiFVkBotmD2dYIAGOGtX3JpkHdzoKFCs37iUZD/ysJbraCOQ==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.10_1767852803286_0.744903875214135","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@aipexstudio/aipex-core","version":"0.0.11","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.11","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"8f80e0733ef9d1479ff453b1501a79aa07ddc434","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.11.tgz","fileCount":62,"integrity":"sha512-f3FWh3v7fwBrv6tE0wpf3Mg0adp52ASwJnlFMmdux9W5VQMpd5r80tYv9btOJMCi1U2d8wTGeXvobMQseFOQRQ==","signatures":[{"sig":"MEUCIAiZIU+XzwaNHNXgNE6dmtm+rXTA9OzAYRcPIULJ7/TkAiEAj2bIWyQsF0LlMlugHuXW42PAUhd7yJKOp2jEU+vgkaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98608},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.11.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/f80b185442124698a28052c7385ed9b4/aipexstudio-aipex-core-0.0.11.tgz","_integrity":"sha512-f3FWh3v7fwBrv6tE0wpf3Mg0adp52ASwJnlFMmdux9W5VQMpd5r80tYv9btOJMCi1U2d8wTGeXvobMQseFOQRQ==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.11_1767856868047_0.5113414968997743","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@aipexstudio/aipex-core","version":"0.0.12","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.12","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"055151a5380051f13bfb3e1a794b4122052ff840","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.12.tgz","fileCount":62,"integrity":"sha512-aBTaRCi8vvcUkKJjEek0BCMvo0yTC8ZtOBfiaKOgOa6XWzncAXSH66XbzEGzcA7FuYfO6ilSrVW4jp/lkgVz8w==","signatures":[{"sig":"MEYCIQCZ/CPapQYAUQO3/Z6GKlMEyIbCLuXAilMbCcmfaCZ1qwIhALNE75fMIdDTTstrct/mtalepJDctzCzA5VZxX88u3zx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98608},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.12.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/2787c54d59d0a69e937c89ecf0904bec/aipexstudio-aipex-core-0.0.12.tgz","_integrity":"sha512-aBTaRCi8vvcUkKJjEek0BCMvo0yTC8ZtOBfiaKOgOa6XWzncAXSH66XbzEGzcA7FuYfO6ilSrVW4jp/lkgVz8w==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.12_1767860265291_0.30800671097130206","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@aipexstudio/aipex-core","version":"0.0.13","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.13","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"563688bb7650116a9b6ba096388bd7ecd0640ee6","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.13.tgz","fileCount":62,"integrity":"sha512-GeX88YDm/IfJ3kfyrSsRcAwTHOOv9W9ib5+5hk4ePBPU5E8EJltRqwuPRbHmDK+z+aCgJpLG7zEM5alB1x1e3Q==","signatures":[{"sig":"MEUCIQCHGZIh+LQV5jIKoD0ICgRtBwKe2Bh6XMMK35MA9V38UwIgDNf2LsBT5wzMsMxk7kRuiAJbHg8JhdKJUPbRI9fhBtA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98608},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.13.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/24e6eb3a9af1449e138bcb9a23a22797/aipexstudio-aipex-core-0.0.13.tgz","_integrity":"sha512-GeX88YDm/IfJ3kfyrSsRcAwTHOOv9W9ib5+5hk4ePBPU5E8EJltRqwuPRbHmDK+z+aCgJpLG7zEM5alB1x1e3Q==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.13_1767862461341_0.2884736328610491","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@aipexstudio/aipex-core","version":"0.0.14","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.14","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"6d06a762fea4979500dbb1aac281e643ab883653","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.14.tgz","fileCount":62,"integrity":"sha512-xV+ulpFJJrnFyh7vpbm9kW+DduMfjV67Ktln7wfq25cyTToH932KICZIZwL300Hb1RE69u75pFtqySx/UeWBQg==","signatures":[{"sig":"MEYCIQDSD6h+t8XERxYwS84+RXgiuLFBDw9Yn52/34VBlyi0hAIhALsl2zKvRbtcjUuk6WTfchOluhbotBVlkB6FHm89oKBx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98608},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.14.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/0b8620d16460a7b1597d53ab4eeacba0/aipexstudio-aipex-core-0.0.14.tgz","_integrity":"sha512-xV+ulpFJJrnFyh7vpbm9kW+DduMfjV67Ktln7wfq25cyTToH932KICZIZwL300Hb1RE69u75pFtqySx/UeWBQg==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^2.0.44","@ai-sdk/openai":"^2.0.75"},"peerDependencies":{"@ai-sdk/google":"^2.0.0","@ai-sdk/openai":"^2.0.0","@ai-sdk/anthropic":"^2.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.14_1767873346826_0.9527719177275038","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@aipexstudio/aipex-core","version":"0.0.15","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.15","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"4e769bd1a014a93507e6e783f7d6b9cf1148ca70","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.15.tgz","fileCount":63,"integrity":"sha512-ZtERa/TDgLUpLlzOGK7kmgoYaSPqFmh5FH9HZYBFazljB3vj3Hpi+cQpa2No6aHqoUvFCp2mZkZEw+Vt6cCwug==","signatures":[{"sig":"MEQCIHnpEEEOJvNmSHsxOdRbzPBY0YfF34GYJikBK6KixvGpAiB1QQeK49xpe7KR7DRtW89oYwGqjupgOQtYuB8PeTRsrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114590},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.15.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/5b9c99dae8b4b1e08d6d80ce2d71ea21/aipexstudio-aipex-core-0.0.15.tgz","_integrity":"sha512-ZtERa/TDgLUpLlzOGK7kmgoYaSPqFmh5FH9HZYBFazljB3vj3Hpi+cQpa2No6aHqoUvFCp2mZkZEw+Vt6cCwug==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","hono":"^4.11.3","lru-cache":"^11.2.4","@openai/agents":"^0.3.7","@openai/agents-extensions":"^0.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^3.0.6","@ai-sdk/openai":"^3.0.8"},"peerDependencies":{"@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.15_1768239347831_0.560875102830074","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@aipexstudio/aipex-core","version":"0.0.16","keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","_id":"@aipexstudio/aipex-core@0.0.16","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"homepage":"https://github.com/AIPexStudio/AIPex#readme","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"dist":{"shasum":"8299b2d829f24baed058c5f60bb4273bda6d518e","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.0.16.tgz","fileCount":63,"integrity":"sha512-Lmex+L569w8mw6IjwFYupEtj3Z9PRYPD5HtstsHPrBzf6eVP7amd+GIQpysN8f33t5hFxIJl4n0XDw/hYRWQ9w==","signatures":[{"sig":"MEQCIE+g3Cjn7m4pkT74USCxeRDNuJrSbdzQjiI06P6I+WVwAiBlmAD/Ydiz99l8As/9hqqFa7xqWgzEOZ/alk3UdKWYPw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114567},"main":"./dist/src/index.js","type":"module","_from":"file:aipexstudio-aipex-core-0.0.16.tgz","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"test":"vitest run","build":"tsc","typecheck":"tsc --project tsconfig.json","example:fork":"tsx examples/fork-example.ts","example:basic":"tsx examples/basic-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"_resolved":"/tmp/881957ac26e576f205e5083b7d1d2b7d/aipexstudio-aipex-core-0.0.16.tgz","_integrity":"sha512-Lmex+L569w8mw6IjwFYupEtj3Z9PRYPD5HtstsHPrBzf6eVP7amd+GIQpysN8f33t5hFxIJl4n0XDw/hYRWQ9w==","repository":{"url":"git+https://github.com/AIPexStudio/AIPex.git","type":"git"},"_npmVersion":"11.6.2","description":"AIPex Agent - Pure TypeScript AI Agent Framework","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.1.13","lru-cache":"^11.2.4","@openai/agents":"^0.3.8","@openai/agents-extensions":"^0.3.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","dotenv":"^17.2.3","@types/node":"^24.10.1","@ai-sdk/google":"^3.0.6","@ai-sdk/openai":"^3.0.8"},"peerDependencies":{"@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@ai-sdk/anthropic":"^3.0.0","@openrouter/ai-sdk-provider":"^0.4.0"},"peerDependenciesMeta":{"@ai-sdk/google":{"optional":true},"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/aipex-core_0.0.16_1768404859480_0.39864011109442266","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@aipexstudio/aipex-core","version":"0.1.0","description":"AIPex Agent - Pure TypeScript AI Agent Framework","main":"./dist/src/index.js","types":"./dist/src/index.d.ts","repository":{"type":"git","url":"git+https://github.com/AIPexStudio/AIPex.git"},"exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"keywords":["ai","agent","llm","gemini","typescript"],"author":{"name":"AIPex Studio"},"license":"MIT","type":"module","dependencies":{"@openai/agents":"^0.5.4","@openai/agents-extensions":"^0.5.4","lru-cache":"^11.2.4","zod":"^4.3.6"},"devDependencies":{"@ai-sdk/google":"^3.0.43","@ai-sdk/openai":"^3.0.25","@types/node":"^25.2.3","dotenv":"^17.3.1","tsx":"^4.21.0"},"peerDependencies":{"@ai-sdk/anthropic":"^3.0.0","@ai-sdk/google":"^3.0.0","@ai-sdk/openai":"^3.0.0","@openrouter/ai-sdk-provider":"^2.0.0"},"peerDependenciesMeta":{"@ai-sdk/openai":{"optional":true},"@ai-sdk/anthropic":{"optional":true},"@ai-sdk/google":{"optional":true},"@openrouter/ai-sdk-provider":{"optional":true}},"scripts":{"build":"tsc","test":"vitest run","typecheck":"tsc --project tsconfig.json","example:basic":"tsx examples/basic-example.ts","example:fork":"tsx examples/fork-example.ts","example:metrics":"tsx examples/metrics-example.ts"},"_id":"@aipexstudio/aipex-core@0.1.0","bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"homepage":"https://github.com/AIPexStudio/AIPex#readme","_integrity":"sha512-Sc98rseqdVojU1BbqbUwOGi0Vv/PfiwcfD30RPGSEmouZTMl1nuzqdbp17MQMNCGuxNHp+A1or8XAJpd0Hj3PQ==","_resolved":"/tmp/b2656ef724453c59eefdf345a6a4f6e3/aipexstudio-aipex-core-0.1.0.tgz","_from":"file:aipexstudio-aipex-core-0.1.0.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-Sc98rseqdVojU1BbqbUwOGi0Vv/PfiwcfD30RPGSEmouZTMl1nuzqdbp17MQMNCGuxNHp+A1or8XAJpd0Hj3PQ==","shasum":"705486fe29e2dc97f936db5ded2bc8ef117b26f3","tarball":"https://registry.npmjs.org/@aipexstudio/aipex-core/-/aipex-core-0.1.0.tgz","fileCount":69,"unpackedSize":146335,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aipexstudio%2faipex-core@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDzWnBwRjmPOToOmz2g9+J0HfN0amjyvM3TYu9ajDxC9gIgXb7cSo2YXMOu4DCDHLF0wPbM2z7Ze2XAmHX5Tqi+bgQ="}]},"_npmUser":{"name":"ropzislaw","email":"buttercanbentley@gmail.com"},"directories":{},"maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aipex-core_0.1.0_1773226208102_0.7472436991222282"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-06T10:58:42.251Z","modified":"2026-03-11T10:50:08.580Z","0.0.6":"2026-01-06T10:58:42.516Z","0.0.7":"2026-01-07T14:45:17.369Z","0.0.8":"2026-01-08T04:28:42.690Z","0.0.9":"2026-01-08T05:57:21.850Z","0.0.10":"2026-01-08T06:13:23.423Z","0.0.11":"2026-01-08T07:21:08.193Z","0.0.12":"2026-01-08T08:17:45.469Z","0.0.13":"2026-01-08T08:54:21.470Z","0.0.14":"2026-01-08T11:55:46.961Z","0.0.15":"2026-01-12T17:35:47.973Z","0.0.16":"2026-01-14T15:34:19.635Z","0.1.0":"2026-03-11T10:50:08.278Z"},"bugs":{"url":"https://github.com/AIPexStudio/AIPex/issues"},"author":{"name":"AIPex Studio"},"license":"MIT","homepage":"https://github.com/AIPexStudio/AIPex#readme","keywords":["ai","agent","llm","gemini","typescript"],"repository":{"type":"git","url":"git+https://github.com/AIPexStudio/AIPex.git"},"description":"AIPex Agent - Pure TypeScript AI Agent Framework","maintainers":[{"name":"ropzislaw","email":"buttercanbentley@gmail.com"}],"readme":"# @aipexstudio/aipex-core\n\nPlatform-agnostic TypeScript building blocks for creating **streaming, tool-using AI agents**.\n\n`@aipexstudio/aipex-core` wraps `@openai/agents` and adds a few opinionated layers that are\nuseful for productizing agents:\n\n- A stable **event stream** (`AgentEvent`) that UIs can consume\n- Optional **conversation/session management** (persistence, listing, forking)\n- Optional **conversation compression** for long-running sessions\n- A **context system** for attaching external data to a turn (`ContextManager` + `ContextProvider`)\n- Tool utilities, including a schema-first `ToolRegistry`\n\n## Why a separate \"core\" package?\n\n- **Platform boundary**: no Chrome APIs, no Node-only assumptions. This keeps core usable in\n  browsers, servers, and extensions.\n- **Streaming-first**: instead of returning a single string, the agent emits structured events\n  (text deltas, tool lifecycle, metrics, errors).\n- **Composable integrations**: persistence, context providers, and UI are all optional and pluggable.\n\n## Core concepts\n\n### Agent + event stream\n\n`AIPex.chat()` returns an `AsyncGenerator<AgentEvent>`. Typical consumers:\n\n- **CLI**: print `content_delta` as it streams\n- **UI**: render streaming text, show tool calls, attach contexts, show metrics\n\nKey event types include:\n\n- `content_delta`: incremental text tokens\n- `tool_call_start` / `tool_call_complete` / `tool_call_error`\n- `tool_call_args_streaming_start` / `tool_call_args_streaming_complete` (best-effort, provider-dependent)\n- `session_created` / `session_resumed` (when conversation management is enabled)\n- `metrics_update` / `execution_complete`\n- `contexts_attached` / `context_error`\n\n### Tools\n\nThere are two complementary ways to work with tools:\n\n1) **Direct function tools** via `tool()` (re-exported from `@openai/agents`)\n\n- Define name/description + a Zod schema\n- Provide an `execute()` implementation\n\n2) **Registry-managed tools** via `ToolRegistry`\n\n- Register a `UnifiedToolDefinition` (`schema` + `handler(input, ctx)`)\n- Execute locally (`registry.execute(...)`)\n- Convert to OpenAI-compatible function tools (`registry.toOpenAIFunctions()`)\n\nBuilt-in tools shipped by core:\n\n- `calculatorTool`: basic arithmetic\n- `httpFetchTool`: simple HTTP GET fetch (returns JSON when content-type is JSON)\n\n### Conversations, sessions, and compression\n\nWhen conversation management is enabled (default), the agent creates a **session** and persists\nturn items via a `SessionStorageAdapter`.\n\n- **Disable sessions** by setting `conversation: false`\n- **Persist sessions** by providing your own storage adapter\n- **Fork sessions** (branch conversation history) with `ConversationManager.forkSession(...)`\n- **Compress sessions** using `ConversationCompressor` to summarize older turns\n\n### Contexts\n\nA **context** is an additional piece of information you attach to a single turn (e.g. current page text,\na selected tab, a file, a screenshot, etc.).\n\n- Implement a `ContextProvider` for your environment\n- Register providers with a `ContextManager`\n- Attach contexts to a message via `ChatOptions.contexts` (either full `Context` objects or context IDs)\n\n### Plugins\n\nPlugins are a lightweight way to observe and customize runtime behavior without forking the agent.\nThey can:\n\n- mutate input before a turn (`beforeChat`)\n- observe tool lifecycle events (`onToolEvent`)\n- observe per-turn usage metrics (`onMetrics`)\n- observe the final response (`afterResponse`)\n\n## Installation\n\n```bash\nnpm install @aipexstudio/aipex-core\n# or\npnpm add @aipexstudio/aipex-core\n```\n\n### Optional peer dependencies (model providers)\n\n`@aipexstudio/aipex-core` integrates well with the AI SDK ecosystem. Install the provider(s) you plan to use:\n\n- `@ai-sdk/openai`\n- `@ai-sdk/google`\n- `@ai-sdk/anthropic`\n- `@openrouter/ai-sdk-provider`\n\n## Usage\n\n### 1) Basic streaming chat\n\n```ts\nimport { google } from \"@ai-sdk/google\";\nimport { AIPex, aisdk } from \"@aipexstudio/aipex-core\";\n\nconst agent = AIPex.create({\n  instructions: \"You are a helpful assistant.\",\n  model: aisdk(google(\"gemini-2.5-flash\")),\n});\n\nfor await (const event of agent.chat(\"Say hello in one sentence.\")) {\n  if (event.type === \"content_delta\") process.stdout.write(event.delta);\n}\n```\n\n### 2) Using built-in tools (`calculatorTool`, `httpFetchTool`)\n\n```ts\nimport { google } from \"@ai-sdk/google\";\nimport { AIPex, aisdk, calculatorTool, httpFetchTool } from \"@aipexstudio/aipex-core\";\n\nconst agent = AIPex.create({\n  instructions: \"Use tools when appropriate.\",\n  model: aisdk(google(\"gemini-2.5-flash\")),\n  tools: [calculatorTool, httpFetchTool],\n});\n\nfor await (const event of agent.chat(\"What is 15 * 234?\")) {\n  if (event.type === \"content_delta\") process.stdout.write(event.delta);\n  if (event.type === \"tool_call_start\") {\n    console.log(\"\\n[tool_call_start]\", event.toolName, event.params);\n  }\n  if (event.type === \"tool_call_complete\") {\n    console.log(\"\\n[tool_call_complete]\", event.toolName, event.result);\n  }\n}\n```\n\n### 3) Define a custom tool (schema-first with Zod)\n\n```ts\nimport { z } from \"zod\";\nimport { tool } from \"@aipexstudio/aipex-core\";\n\nexport const weatherTool = tool({\n  name: \"get_weather\",\n  description: \"Get the weather for a city (demo tool).\",\n  parameters: z.object({\n    city: z.string().describe(\"The city name\"),\n  }),\n  execute: async ({ city }) => {\n    return `The weather in ${city} is sunny and 72°F`;\n  },\n});\n```\n\n### 4) Sessions: continue a conversation with `sessionId`\n\nBy default, each `chat()` call starts a new session. To continue a conversation, pass the `sessionId`\nreturned in the `session_created` event:\n\n```ts\nimport { google } from \"@ai-sdk/google\";\nimport { AIPex, aisdk } from \"@aipexstudio/aipex-core\";\n\nconst agent = AIPex.create({\n  instructions: \"You remember things within a session.\",\n  model: aisdk(google(\"gemini-2.5-flash\")),\n});\n\nlet sessionId: string | undefined;\n\nfor await (const event of agent.chat(\"My name is Alice.\")) {\n  if (event.type === \"session_created\") sessionId = event.sessionId;\n}\n\nif (sessionId) {\n  for await (const event of agent.chat(\"What is my name?\", { sessionId })) {\n    if (event.type === \"content_delta\") process.stdout.write(event.delta);\n  }\n}\n```\n\n### 5) Conversation compression (summarize older turns)\n\n```ts\nimport { google } from \"@ai-sdk/google\";\nimport { AIPex, aisdk } from \"@aipexstudio/aipex-core\";\n\nconst model = aisdk(google(\"gemini-2.5-flash\"));\n\nconst agent = AIPex.create({\n  instructions: \"You are a helpful assistant.\",\n  model,\n  compression: {\n    model,\n    summarizeAfterItems: 20,\n    keepRecentItems: 10,\n    maxSummaryLength: 500,\n  },\n});\n```\n\n### 6) Attaching contexts to a turn\n\n```ts\nimport { google } from \"@ai-sdk/google\";\nimport { AIPex, aisdk, ContextManager, type Context } from \"@aipexstudio/aipex-core\";\n\nconst contextManager = new ContextManager();\n\nconst agent = AIPex.create({\n  instructions: \"Use attached contexts when answering.\",\n  model: aisdk(google(\"gemini-2.5-flash\")),\n  contextManager,\n});\n\nconst pageContext: Context = {\n  id: \"page:example\",\n  type: \"page\",\n  providerId: \"manual\",\n  label: \"Example page\",\n  value: \"This page describes the AIPex Core API.\",\n  timestamp: Date.now(),\n};\n\nfor await (const event of agent.chat(\"Summarize the page.\", { contexts: [pageContext] })) {\n  if (event.type === \"content_delta\") process.stdout.write(event.delta);\n}\n```\n\n### 7) Plugins\n\n```ts\nimport { google } from \"@ai-sdk/google\";\nimport { AIPex, aisdk, type AgentPlugin } from \"@aipexstudio/aipex-core\";\n\nconst loggerPlugin: AgentPlugin = {\n  id: \"logger\",\n  hooks: {\n    beforeChat: (payload) => {\n      console.log(\"[beforeChat]\", payload.input);\n      return payload;\n    },\n    onToolEvent: ({ event }) => {\n      if (event.type === \"tool_call_start\") {\n        console.log(\"[tool]\", event.toolName, event.params);\n      }\n    },\n  },\n};\n\nconst agent = AIPex.create({\n  instructions: \"You are a helpful assistant.\",\n  model: aisdk(google(\"gemini-2.5-flash\")),\n  plugins: [loggerPlugin],\n});\n```\n\n### 8) ToolRegistry (register and execute tools dynamically)\n\n```ts\nimport { z } from \"zod\";\nimport { ToolRegistry } from \"@aipexstudio/aipex-core\";\n\nconst registry = new ToolRegistry();\n\nregistry.register({\n  name: \"echo_tool\",\n  description: \"Echo text back\",\n  schema: z.object({ text: z.string() }),\n  handler: ({ text }) => `echo:${text}`,\n});\n\nconst result = await registry.execute(\"echo_tool\", { text: \"hello\" }, { sessionId: \"s1\" });\nconsole.log(result); // \"echo:hello\"\n```\n\n## API reference\n\n### `AIPex`\n\n- `AIPex.create(options: AIPexOptions): AIPex`\n- `agent.chat(input: string, options?: ChatOptions): AsyncGenerator<AgentEvent>`\n- `agent.getConversationManager(): ConversationManager | undefined`\n- `agent.getContextManager(): ContextManager | undefined`\n\n### `ChatOptions`\n\n- `sessionId?: string` - resume an existing session\n- `contexts?: Context[] | string[]` - attach contexts for this turn (IDs require `contextManager`)\n\n### `AgentEvent` (stream contract)\n\n```ts\nexport type AgentEvent =\n  | { type: \"session_created\"; sessionId: string }\n  | { type: \"session_resumed\"; sessionId: string; itemCount: number }\n  | { type: \"content_delta\"; delta: string }\n  | { type: \"tool_call_args_streaming_start\"; toolName: string }\n  | { type: \"tool_call_args_streaming_complete\"; toolName: string; params: unknown }\n  | { type: \"tool_call_start\"; toolName: string; params: unknown }\n  | { type: \"tool_call_complete\"; toolName: string; result: unknown }\n  | { type: \"tool_call_error\"; toolName: string; error: Error }\n  | { type: \"contexts_attached\"; contexts: Context[] }\n  | { type: \"contexts_loaded\"; providerId: string; count: number }\n  | { type: \"context_error\"; providerId: string; error: Error }\n  | { type: \"metrics_update\"; metrics: AgentMetrics }\n  | { type: \"error\"; error: AgentError }\n  | { type: \"execution_complete\"; finalOutput: string; metrics: AgentMetrics };\n```\n\n### `AIPexOptions`\n\nKey fields:\n\n- `instructions: string`\n- `model: AiSdkModel`\n- `tools?: FunctionTool[]`\n- `maxTurns?: number`\n- `conversation?: false` (disable session management)\n- `storage?: SessionStorageAdapter`\n- `compression?: { model: AiSdkModel; summarizeAfterItems?; keepRecentItems?; maxSummaryLength? }`\n- `conversationManager?: ConversationManager` (advanced override)\n- `contextManager?: ContextManager`\n- `plugins?: AgentPlugin[]`\n\n### Conversations\n\n- `ConversationManager`: `createSession`, `getSession`, `saveSession`, `deleteSession`, `listSessions`,\n  `forkSession`, `compressSession`, `getSessionTree`\n- `Session`: implements the OpenAI Agents `Session` interface and adds helpers like\n  `getItemCount`, `getSummary`, `fork`, `addMetrics`, `getSessionMetrics`\n- `SessionStorage`: adapts a `KeyValueStorage<SerializedSession>` to a `SessionStorageAdapter`\n- `ConversationCompressor`: summarizes older turns and keeps the most recent items\n\n### Contexts\n\n- `ContextManager`: register/unregister providers, list/query contexts, fetch by ID, watch providers\n- `ContextProvider`: interface for pluggable context sources\n- `Context`: `{ id, type, providerId, label, value, metadata?, timestamp? }`\n\n### Tools\n\n- `tool(...)`: re-export from `@openai/agents` to define `FunctionTool`s with a Zod `parameters` schema\n- `ToolRegistry`: registry for schema-first tools + execution + conversion to function tools\n- Built-ins: `calculatorTool`, `httpFetchTool`\n\n### Storage\n\n- `KeyValueStorage<T>`: `save`, `load`, `delete`, `listAll`, `query`, `watch`\n- `InMemoryStorage<T>`: reference implementation of `KeyValueStorage`\n\n## Development (monorepo)\n\nFrom the repository root:\n\n```bash\npnpm --filter @aipexstudio/aipex-core build\npnpm --filter @aipexstudio/aipex-core typecheck\npnpm --filter @aipexstudio/aipex-core test\n```\n\nRun the included examples:\n\n```bash\npnpm --filter @aipexstudio/aipex-core example:basic\npnpm --filter @aipexstudio/aipex-core example:fork\npnpm --filter @aipexstudio/aipex-core example:metrics\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}