{"id":50434652,"url":"https://github.com/constructive-io/agentic-kit","last_synced_at":"2026-05-31T16:30:49.518Z","repository":{"id":341116960,"uuid":"998616615","full_name":"constructive-io/agentic-kit","owner":"constructive-io","description":"A unified, streaming-capable interface for multiple LLM providers.","archived":false,"fork":false,"pushed_at":"2026-05-21T23:31:38.000Z","size":990,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T06:08:17.769Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/constructive-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-09T01:15:46.000Z","updated_at":"2026-05-21T23:31:42.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/constructive-io/agentic-kit","commit_stats":null,"previous_names":["constructive-io/agentic-kit"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/constructive-io/agentic-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fagentic-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fagentic-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fagentic-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fagentic-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/constructive-io","download_url":"https://codeload.github.com/constructive-io/agentic-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/constructive-io%2Fagentic-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33739860,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T16:30:47.693Z","updated_at":"2026-05-31T16:30:49.513Z","avatar_url":"https://github.com/constructive-io.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Agentic Kit Monorepo\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003cimg height=\"250\" src=\"https://raw.githubusercontent.com/constructive-io/constructive/refs/heads/main/assets/outline-logo.svg\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\" width=\"100%\"\u003e\n  \u003ca href=\"https://github.com/constructive-io/agentic-kit/actions/workflows/run-tests.yaml\"\u003e\n    \u003cimg height=\"20\" src=\"https://github.com/constructive-io/agentic-kit/actions/workflows/run-tests.yaml/badge.svg\" /\u003e\n  \u003c/a\u003e\n   \u003ca href=\"https://github.com/constructive-io/agentic-kit/blob/main/LICENSE\"\u003e\u003cimg height=\"20\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nA provider-portable LLM toolkit with structured streaming, model registries,\ncross-provider message normalization, and an optional stateful agent runtime.\n\n## Packages\n\n- **agentic-kit** — low-level portability layer with model descriptors, registries, structured event streams, and compatibility helpers\n- **@agentic-kit/agent** — minimal stateful runtime with sequential tool execution and lifecycle events\n- **@agentic-kit/ollama** — adapter for local Ollama inference\n- **@agentic-kit/anthropic** — adapter for Anthropic Claude models\n- **@agentic-kit/openai** — generalized adapter for OpenAI-compatible chat completion APIs\n\n## Getting Started\n\n```bash\ngit clone git@github.com:constructive-io/agentic-kit.git\ncd agentic-kit\npnpm install\npnpm build\npnpm test\n```\n\n## Usage\n\n```typescript\nimport { complete, getModel } from \"agentic-kit\";\n\nconst model = getModel(\"openai\", \"gpt-4o-mini\");\nconst message = await complete(model!, {\n  messages: [{ role: \"user\", content: \"Hello\", timestamp: Date.now() }],\n});\n\nconsole.log(message.content);\n```\n\n## Consuming from webpack / Next.js\n\nThe packages publish ESM with `.js`-suffixed relative imports (e.g.\n`from './foo.js'`), which is the correct ESM-with-TS pattern. Webpack does not\nauto-rewrite `.js` → `.ts` when reading TypeScript sources directly (e.g. when\nlinking the workspace from `apps/`), so add an `extensionAlias` to your\n`next.config.mjs`:\n\n```js\n// next.config.mjs\nexport default {\n  transpilePackages: [\n    'agentic-kit',\n    '@agentic-kit/agent',\n    '@agentic-kit/react',\n    '@agentic-kit/openai',\n    '@agentic-kit/anthropic',\n    '@agentic-kit/ollama',\n  ],\n  webpack: (config) =\u003e {\n    config.resolve.extensionAlias = {\n      '.js': ['.ts', '.tsx', '.js'],\n      '.mjs': ['.mts', '.mjs'],\n    };\n    return config;\n  },\n};\n```\n\nOnce a published artifact is installed (`npm install agentic-kit`), the\ncompiled `dist/` is what resolves and no `extensionAlias` is required — this\nworkaround only matters when reading TypeScript source through webpack.\n\nVite, Bun, and esbuild handle `.js` → `.ts` natively. Vite users who want to\nconsume the workspace TypeScript source via the package `\"source\"` condition\ncan opt in with:\n\n```js\n// vite.config.ts\nexport default {\n  resolve: {\n    conditions: ['source', 'import', 'module', 'browser', 'default'],\n  },\n};\n```\n\n## Contributing\n\nSee individual package READMEs for docs and local dev instructions.\n\n## Testing\n\nDefault tests stay deterministic and local:\n\n```bash\npnpm test\n```\n\nThere is also a local-only Ollama live lane that does not hit hosted\nproviders. The default root command runs the fast smoke tier:\n\n```bash\nOLLAMA_LIVE_MODEL=qwen3.5:4b pnpm test:live:ollama\n```\n\nRun the broader lane explicitly when you want slower behavioral coverage:\n\n```bash\nOLLAMA_LIVE_MODEL=qwen3.5:4b pnpm test:live:ollama:extended\n```\n\nThe Ollama live script performs a preflight against `OLLAMA_BASE_URL` and exits\ncleanly if the local server or requested model is unavailable. If\n`nomic-embed-text:latest` is installed, the lane also exercises local embedding\ngeneration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstructive-io%2Fagentic-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconstructive-io%2Fagentic-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconstructive-io%2Fagentic-kit/lists"}