open-index/open-npm huggingface dataset:
npm package: @ophirai/autogen
Description: AutoGen tool for Ophir agent negotiation
Latest version: 0.1.0

# @ophirai/autogen

AutoGen-compatible tools for the Ophir agent negotiation protocol. Exports tools in the OpenAI function calling format that AutoGen uses natively.

## Install

```bash
npm install @ophirai/autogen
```

## Usage

```typescript
import { registerOphirTools } from "@ophirai/autogen";

const tools = registerOphirTools();

// Register with an AutoGen agent:
for (const tool of tools) {
  agent.register_function(tool.definition, tool.handler);
}
```

### Individual tools

```typescript
import { negotiateFunction, discoverFunction, executeInferenceFunction } from "@ophirai/autogen";

// Use the negotiate handler directly
const result = await negotiateFunction.handler({
  service_category: "inference",
  model: "llama-3-70b",
  max_price_per_unit: 0.01,
  sla_requirements: { p99_latency_ms: 200, uptime_pct: 99.9 },
});
const { agreement } = JSON.parse(result);

// Then execute inference using the agreement
const inference = await executeInferenceFunction.handler({
  agreement_id: agreement.agreement_id,
  endpoint: agreement.endpoint,
  prompt: "Explain quantum computing",
});
```

## Tools

| Tool | Description |
|---|---|
| `ophir_negotiate` | Negotiate with AI providers for best price and SLA guarantees |
| `ophir_discover` | Discover available providers on the Ophir network |
| `ophir_execute_inference` | Execute inference using an existing Ophir agreement |

## API

| Export | Description |
|---|---|
| `registerOphirTools()` | Returns all tool registrations as an array |
| `negotiateFunction` | Negotiate tool registration (definition + handler) |
| `discoverFunction` | Discover tool registration (definition + handler) |
| `executeInferenceFunction` | Execute inference tool registration (definition + handler) |
| `AutoGenFunction` | TypeScript type for OpenAI function definitions |
| `AutoGenToolRegistration` | TypeScript type for definition + handler pairs |
npm package: @ophirai/crewai
Description: CrewAI tool for Ophir agent negotiation
Latest version: 0.1.0

# @ophirai/crewai

CrewAI-compatible tools for the Ophir agent negotiation protocol. Provides both class-based tools (matching CrewAI's `BaseTool` pattern) and plain-object tools for generic function-calling frameworks.

## Install

```bash
npm install @ophirai/crewai
```

## Usage

### Class-based (CrewAI pattern)

```typescript
import { OphirNegotiateTool, OphirDiscoverTool, OphirCheckSLATool } from "@ophirai/crewai";

const negotiate = new OphirNegotiateTool({ registryUrl: "https://registry.ophir.ai/v1" });
const result = await negotiate._run({
  service_category: "inference",
  model: "llama-3-70b",
  max_price_per_unit: 0.01,
  sla_requirements: { p99_latency_ms: 200, uptime_pct: 99.9 },
});
const { agreement } = JSON.parse(result);
// agreement.endpoint -> use this URL for inference calls
```

### Plain-object (function-calling)

```typescript
import { getOphirToolkit, toFunctionDefinition, handleToolCall } from "@ophirai/crewai";

const tools = getOphirToolkit();
const functions = tools.map(toFunctionDefinition);

// In your agent loop, when the LLM returns a tool call:
const result = await handleToolCall(tools, "ophir_negotiate", {
  service_category: "inference",
});
```

### Custom configuration

```typescript
import { createOphirToolkit } from "@ophirai/crewai";

const tools = createOphirToolkit({
  registryUrl: "https://my-registry.example.com/v1",
  defaultRanking: "best_sla",
  defaultCurrency: "USDT",
  timeoutMs: 30_000,
});
```

## Tools

| Tool | Description |
|---|---|
| `ophir_negotiate` | Negotiate with AI providers — discover, quote, rank, and accept the best deal |
| `ophir_discover` | Survey available providers, their services, pricing, and reputation |
| `ophir_check_sla` | Verify SLA compliance for an active agreement via Lockstep verification |

## API

| Export | Description |
|---|---|
| `createOphirToolkit(config?)` | Plain-object tools with custom config |
| `createOphirCrewTools(config?)` | Class-based `OphirBaseTool` instances with `_run()` and `args_schema` |
| `getOphirToolkit()` | Default plain-object toolkit |
| `toFunctionDefinition(tool)` | Convert to OpenAI function-calling format |
| `handleToolCall(tools, name, params)` | Dispatch a function call by name |