@arcteninc/core
v0.0.180
Published
Core hooks, types, and utilities for building AI-powered agent interfaces.
Readme
@arcteninc/core
Core hooks, types, and utilities for building AI-powered agent interfaces.
Installation
npm install @arcteninc/core
# or
yarn add @arcteninc/core
# or
pnpm add @arcteninc/core
# or
bun add @arcteninc/coreNote: For the pre-built UI component (
<ArctenAgent>), install@arcteninc/uiinstead. See @arcteninc/ui for details.
What's in this package
This package provides the headless building blocks for creating AI agent interfaces:
useAgent- React hook for managing agent conversations, tool calls, and stateuseGenerate- React hook for one-off AI text/object generation- Types - TypeScript types for tool definitions, conversations, and configurations
- Utilities - Helper functions like
extractToolsMetadata
Usage
useAgent Hook
import { useAgent } from "@arcteninc/core";
import type { UseAgentOptions } from "@arcteninc/core";
function MyCustomChat() {
const {
messages,
sendMessage,
status,
stop,
} = useAgent({
apiBaseUrl: "https://api.arcten.com",
user: { id: "user-123" },
tools: myTools,
});
return (
<div>
{messages.map((msg) => (
<div key={msg.id}>{msg.content}</div>
))}
<button onClick={() => sendMessage({ text: "Hello!" })}>
Send
</button>
</div>
);
}useGenerate Hook
import { useGenerate } from "@arcteninc/core";
function MyComponent() {
const { generateText, generateObject, isLoading } = useGenerate({
apiBaseUrl: "https://api.arcten.com",
});
const handleGenerate = async () => {
const result = await generateText({
prompt: "Write a haiku about coding",
});
console.log(result);
};
return <button onClick={handleGenerate}>Generate</button>;
}Pre-built UI Component
If you want a ready-to-use chat interface, use the @arcteninc/ui package:
npm install @arcteninc/core @arcteninc/uiimport { ArctenAgent } from "@arcteninc/ui";
import "@arcteninc/ui/styles";
function App() {
return (
<ArctenAgent
apiBaseUrl="https://api.arcten.com"
user={{ id: "user-123" }}
/>
);
}CLI Utilities
This package includes a utility for extracting tool metadata:
# Extract tool types and metadata
npx arcten extract-types
# Or specify a custom tools file
npx arcten extract-types --tools ./src/tools.tsDevelopment
bun install # Install dependencies
bun run build # Build the package
bun run dev # Watch for changes