chore: rebrand companion-os to clanker-agent

- Rename all package names from companion-* to clanker-*
- Update npm scopes from @mariozechner to @harivansh-afk
- Rename config directories .companion -> .clanker
- Rename environment variables COMPANION_* -> CLANKER_*
- Update all documentation, README files, and install scripts
- Rename package directories (companion-channels, companion-grind, companion-teams)
- Update GitHub URLs to harivansh-afk/clanker-agent
- Preserve full git history from companion-cloud monorepo
This commit is contained in:
Harivansh Rathi 2026-03-26 16:22:52 -04:00
parent f93fe7d1a0
commit 67168d8289
356 changed files with 2249 additions and 10223 deletions

View file

@ -1,18 +1,18 @@
# @mariozechner/companion-agent-core
# @mariozechner/clanker-agent-core
Stateful agent with tool execution and event streaming. Built on `@mariozechner/companion-ai`.
Stateful agent with tool execution and event streaming. Built on `@mariozechner/clanker-ai`.
## Installation
```bash
npm install @mariozechner/companion-agent-core
npm install @mariozechner/clanker-agent-core
```
## Quick Start
```typescript
import { Agent } from "@mariozechner/companion-agent-core";
import { getModel } from "@mariozechner/companion-ai";
import { Agent } from "@mariozechner/clanker-agent-core";
import { getModel } from "@mariozechner/clanker-ai";
const agent = new Agent({
initialState: {
@ -298,7 +298,7 @@ Follow-up messages are checked only when there are no more tool calls and no ste
Extend `AgentMessage` via declaration merging:
```typescript
declare module "@mariozechner/companion-agent-core" {
declare module "@mariozechner/clanker-agent-core" {
interface CustomAgentMessages {
notification: { role: "notification"; text: string; timestamp: number };
}
@ -378,7 +378,7 @@ Thrown errors are caught by the agent and reported to the LLM as tool errors wit
For browser apps that proxy through a backend:
```typescript
import { Agent, streamProxy } from "@mariozechner/companion-agent-core";
import { Agent, streamProxy } from "@mariozechner/clanker-agent-core";
const agent = new Agent({
streamFn: (model, context, options) =>
@ -395,7 +395,7 @@ const agent = new Agent({
For direct control without the Agent class:
```typescript
import { agentLoop, agentLoopContinue } from "@mariozechner/companion-agent-core";
import { agentLoop, agentLoopContinue } from "@mariozechner/clanker-agent-core";
const context: AgentContext = {
systemPrompt: "You are helpful.",

View file

@ -1,5 +1,5 @@
{
"name": "@mariozechner/companion-agent-core",
"name": "@harivansh-afk/clanker-agent-core",
"version": "0.56.2",
"description": "General-purpose agent with transport abstraction, state management, and attachment support",
"type": "module",
@ -17,7 +17,7 @@
"prepublishOnly": "npm run clean && npm run build"
},
"dependencies": {
"@mariozechner/companion-ai": "^0.56.2"
"@harivansh-afk/clanker-ai": "^0.56.2"
},
"keywords": [
"ai",
@ -30,7 +30,7 @@
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/getcompanion-ai/co-mono.git",
"url": "git+https://github.com/harivansh-afk/clanker-agent.git",
"directory": "packages/agent"
},
"engines": {

View file

@ -10,7 +10,7 @@ import {
streamSimple,
type ToolResultMessage,
validateToolArguments,
} from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
import type {
AgentContext,
AgentEvent,

View file

@ -12,7 +12,7 @@ import {
type TextContent,
type ThinkingBudgets,
type Transport,
} from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
import { agentLoop, agentLoopContinue } from "./agent-loop.js";
import type {
AgentContext,

View file

@ -14,7 +14,7 @@ import {
type SimpleStreamOptions,
type StopReason,
type ToolCall,
} from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
// Create stream class matching ProxyMessageEventStream
class ProxyMessageEventStream extends EventStream<

View file

@ -8,7 +8,7 @@ import type {
TextContent,
Tool,
ToolResultMessage,
} from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
import type { Static, TSchema } from "@sinclair/typebox";
/** Stream function - can return sync or Promise for async config lookup */

View file

@ -5,7 +5,7 @@ import {
type Message,
type Model,
type UserMessage,
} from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
import { Type } from "@sinclair/typebox";
import { describe, expect, it } from "vitest";
import { agentLoop, agentLoopContinue } from "../src/agent-loop.js";

View file

@ -3,7 +3,7 @@ import {
type AssistantMessageEvent,
EventStream,
getModel,
} from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
import { describe, expect, it } from "vitest";
import { Agent } from "../src/index.js";

View file

@ -9,7 +9,7 @@
*
* You can run this test suite with:
* ```bash
* $ AWS_REGION=us-east-1 BEDROCK_EXTENSIVE_MODEL_TEST=1 AWS_PROFILE=companion npm test -- ./test/bedrock-models.test.ts
* $ AWS_REGION=us-east-1 BEDROCK_EXTENSIVE_MODEL_TEST=1 AWS_PROFILE=clanker npm test -- ./test/bedrock-models.test.ts
* ```
*
* ## Known Issues by Category
@ -21,8 +21,8 @@
* 5. **Invalid Signature Format**: Model validates signature format (Anthropic newer models).
*/
import type { AssistantMessage } from "@mariozechner/companion-ai";
import { getModels } from "@mariozechner/companion-ai";
import type { AssistantMessage } from "@mariozechner/clanker-ai";
import { getModels } from "@mariozechner/clanker-ai";
import { describe, expect, it } from "vitest";
import { Agent } from "../src/index.js";
import { hasBedrockCredentials } from "./bedrock-utils.js";

View file

@ -3,8 +3,8 @@ import type {
Model,
ToolResultMessage,
UserMessage,
} from "@mariozechner/companion-ai";
import { getModel } from "@mariozechner/companion-ai";
} from "@mariozechner/clanker-ai";
import { getModel } from "@mariozechner/clanker-ai";
import { describe, expect, it } from "vitest";
import { Agent } from "../src/index.js";
import { hasBedrockCredentials } from "./bedrock-utils.js";