{"_id":"@aimform/agent-sdk","_rev":"2-d853b7f200653a88723f0a84718eefe7","name":"@aimform/agent-sdk","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@aimform/agent-sdk","version":"0.1.0","keywords":["aimform","ai","chat","react","agent","llm","tool-calling","chatbot","widget","sdk"],"author":{"name":"Universal Reason LLC"},"license":"MIT","_id":"@aimform/agent-sdk@0.1.0","maintainers":[{"name":"adamhalasz","email":"mail@adamhalasz.com"}],"homepage":"https://aimform-landing.pages.dev","bugs":{"url":"https://github.com/adamhalasz/aimform/issues"},"dist":{"shasum":"7c2204c87148e4b969a4fda9da403c8d11b2b434","tarball":"https://registry.npmjs.org/@aimform/agent-sdk/-/agent-sdk-0.1.0.tgz","fileCount":19,"integrity":"sha512-vNIn3bMwsIcNgJ2E1BMcFN+N/JwEbzdJIhFoiMh7kdfpdwHdYnJU3zADWSB5qqmv+we4kixk5aX6X353kUmfuA==","signatures":[{"sig":"MEUCIAiBMsJvR0yjyqtokqLADu+ysi6vgFoR/B+EJ/zThR2OAiEA3bueP08jKO8f9pRswTEwa17XR0PG2Swv/iIJ8clDIOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20554},"type":"module","exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./ui":{"types":"./src/ui/index.ts","import":"./src/ui/index.ts"},"./core":{"types":"./src/core/index.ts","import":"./src/core/index.ts"}},"gitHead":"c6111dfac54208c920905b2bce2bee3d32d10f4f","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"adamhalasz","email":"mail@adamhalasz.com"},"repository":{"url":"git+https://github.com/adamhalasz/aimform.git","type":"git","directory":"packages/agent-sdk"},"_npmVersion":"11.8.0","description":"Aimform Agent SDK — React components and hooks for AI chat. Drop-in ChatWidget, headless hooks, tool-calling, approval prompts. Built on @aimform/identity-sdk.","directories":{},"sideEffects":false,"_nodeVersion":"25.6.0","dependencies":{"@aimform/identity-sdk":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/react":"^19.0.0","@types/react-dom":"^19.0.0"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agent-sdk_0.1.0_1785168308103_0.8367480178801077","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@aimform/agent-sdk","version":"0.2.0","description":"Aimform Agent SDK — React components and hooks for AI chat. Drop-in ChatWidget, headless hooks, tool-calling, approval prompts. Built on @aimform/identity-sdk.","type":"module","license":"MIT","sideEffects":false,"exports":{".":{"types":"./src/index.ts","import":"./src/index.ts"},"./core":{"types":"./src/core/index.ts","import":"./src/core/index.ts"},"./ui":{"types":"./src/ui/index.ts","import":"./src/ui/index.ts"}},"scripts":{"typecheck":"tsc --noEmit"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"dependencies":{"@aimform/identity-sdk":"^0.2.0"},"devDependencies":{"@types/react":"^19.0.0","@types/react-dom":"^19.0.0","typescript":"^5.7.0"},"repository":{"type":"git","url":"git+https://github.com/adamhalasz/aimform.git","directory":"packages/agent-sdk"},"keywords":["aimform","ai","chat","react","agent","llm","tool-calling","chatbot","widget","sdk"],"author":{"name":"Universal Reason LLC"},"bugs":{"url":"https://github.com/adamhalasz/aimform/issues"},"homepage":"https://aimform-landing.pages.dev","gitHead":"c6111dfac54208c920905b2bce2bee3d32d10f4f","_id":"@aimform/agent-sdk@0.2.0","_nodeVersion":"25.6.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-BLB/shhvyMucZddY8s5aT0Zh3/Ep0JeRSkpXKZHr5Bt0MDGZpbmS7jWbDRAFx5Vkb0vrczfbsuXU+UWmTSU2GQ==","shasum":"c92b09c1753a9d63cb2b8f7e2b0606789d5f2af1","tarball":"https://registry.npmjs.org/@aimform/agent-sdk/-/agent-sdk-0.2.0.tgz","fileCount":19,"unpackedSize":20554,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAMduAf1i2wnKQOUmf6hoxZSG4dCf5Aphp5fs0VK4TXzAiEAxnUiu7YygKter7iPIkRz6puk5i5bkbWvfH47pMiL5B8="}]},"_npmUser":{"name":"adamhalasz","email":"mail@adamhalasz.com"},"directories":{},"maintainers":[{"name":"adamhalasz","email":"mail@adamhalasz.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-sdk_0.2.0_1785168842908_0.2853623026724632"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T16:05:07.885Z","modified":"2026-07-27T16:14:03.339Z","0.1.0":"2026-07-27T16:05:08.332Z","0.2.0":"2026-07-27T16:14:03.045Z"},"bugs":{"url":"https://github.com/adamhalasz/aimform/issues"},"author":{"name":"Universal Reason LLC"},"license":"MIT","homepage":"https://aimform-landing.pages.dev","keywords":["aimform","ai","chat","react","agent","llm","tool-calling","chatbot","widget","sdk"],"repository":{"type":"git","url":"git+https://github.com/adamhalasz/aimform.git","directory":"packages/agent-sdk"},"description":"Aimform Agent SDK — React components and hooks for AI chat. Drop-in ChatWidget, headless hooks, tool-calling, approval prompts. Built on @aimform/identity-sdk.","maintainers":[{"name":"adamhalasz","email":"mail@adamhalasz.com"}],"readme":"# @aimform/agent-sdk\n\nAimform Agent SDK — React components and hooks for building AI chat interfaces. Drop-in `<ChatWidget />`, headless hooks, tool-calling, approval prompts, and more. Built on `@aimform/identity-sdk`.\n\n## Installation\n\n```bash\nnpm install @aimform/agent-sdk @aimform/identity-sdk react react-dom\n```\n\n## Quick Start\n\n### One-line Chat Widget\n\n```tsx\nimport { AgentProvider, ChatWidget } from \"@aimform/agent-sdk\";\n\nfunction App() {\n  return (\n    <AgentProvider\n      orgId=\"org_abc123\"\n      identityUrl=\"https://identity.aimform.com\"\n      token={userToken}\n    >\n      <div style={{ height: \"100vh\" }}>\n        <ChatWidget />\n      </div>\n    </AgentProvider>\n  );\n}\n```\n\n### Headless Hooks (build your own UI)\n\n```tsx\nimport { AgentProvider, useConversation, useMessages, useSendMessage } from \"@aimform/agent-sdk\";\n\nfunction CustomChat() {\n  const { conversations, createConversation, activeConversationId } = useConversation({\n    orgId, identityUrl, token,\n  });\n  const { messages, loadMessages } = useMessages({\n    orgId, conversationId: activeConversationId, identityUrl, token,\n  });\n  const { sendMessage, sending } = useSendMessage({\n    orgId, conversationId: activeConversationId, identityUrl, token,\n  });\n\n  // Build your own chat UI\n  return (\n    <div>\n      {messages.map(msg => (\n        <div key={msg.id} className={msg.role}>{msg.content}</div>\n      ))}\n      <input onKeyDown={e => { if (e.key === \"Enter\") sendMessage(e.target.value); }} />\n    </div>\n  );\n}\n```\n\n### Tool Confirmation\n\n```tsx\nimport { useToolConfirmation } from \"@aimform/agent-sdk\";\n\nfunction ApprovalPrompt() {\n  const { pendingConfirmation, approve, deny } = useToolConfirmation();\n\n  if (!pendingConfirmation) return null;\n\n  return (\n    <div className=\"approval-banner\">\n      <p>Aimform wants to: {pendingConfirmation.name}</p>\n      <button onClick={() => approve()}>Approve</button>\n      <button onClick={() => deny()}>Deny</button>\n    </div>\n  );\n}\n```\n\n## Components\n\n| Component | Description |\n|-----------|-------------|\n| `<AgentProvider>` | Context provider — wraps your app with orgId, identityUrl, token |\n| `<ChatWidget>` | Full chat interface — conversation list + messages + input |\n| `<MessageList>` | Message list with role-based styling |\n| `<ChatInput>` | Chat input with send button |\n\n## Hooks\n\n| Hook | Description |\n|------|-------------|\n| `useConversation()` | Create, list, and select conversations |\n| `useMessages()` | Load messages for the active conversation |\n| `useSendMessage()` | Send messages to the active conversation |\n| `useTools()` | Load available tool definitions |\n| `useToolConfirmation()` | Handle confirm-tier tool approvals |\n| `useSearch()` | Search across Spaces and Entities |\n| `useAgentContext()` | Show what the current conversation can see |\n\n## Types\n\n```typescript\nimport type {\n  Message,\n  MessageRole,\n  ToolCall,\n  Conversation,\n  ToolDefinition,\n} from \"@aimform/agent-sdk\";\n```\n\n## Peer Dependencies\n\n- `react` ^18.0.0 | ^19.0.0\n- `react-dom` ^18.0.0 | ^19.0.0\n\n## License\n\nMIT\n","readmeFilename":"README.md"}