fork: rename IronClaw → OptimClaw

Full rename of all identifiers, filenames, and references:
  ironclaw → optimclaw
  IronClaw → OptimClaw
  IRONCLAW → OPTIMCLAW
  ironclaw_common → optimclaw_common
  ironclaw_safety → optimclaw_safety

Upstream: nearai/ironclaw
This commit is contained in:
OutBack Dingo
2026-03-29 06:27:52 +07:00
parent 8a320ae9db
commit 6d9dbbb3b9
404 changed files with 2382 additions and 2382 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
name = "discord-channel"
version = "0.2.0"
edition = "2021"
description = "Discord channel for IronClaw"
description = "Discord channel for OptimClaw"
license = "MIT OR Apache-2.0"
publish = false
+6 -6
View File
@@ -1,4 +1,4 @@
# Discord Channel for IronClaw
# Discord Channel for OptimClaw
WASM channel for Discord integration - handle slash commands and button interactions via webhooks.
@@ -13,12 +13,12 @@ WASM channel for Discord integration - handle slash commands and button interact
1. Create a Discord Application at <https://discord.com/developers/applications>
2. Create a Bot and get the token
3. Set up Interactions URL to point to your IronClaw instance
3. Set up Interactions URL to point to your OptimClaw instance
4. Copy the Application ID and Public Key
5. Store in IronClaw secrets:
5. Store in OptimClaw secrets:
```bash
ironclaw secret set discord_bot_token YOUR_BOT_TOKEN
optimclaw secret set discord_bot_token YOUR_BOT_TOKEN
```
**Note:** The `discord_bot_token` secret is used for Discord REST API calls.
@@ -51,7 +51,7 @@ curl -X POST \
In your Discord app settings, set:
- Interactions Endpoint URL: `https://your-ironclaw.com/webhook/discord`
- Interactions Endpoint URL: `https://your-optimclaw.com/webhook/discord`
## Usage Examples
@@ -127,7 +127,7 @@ To send embeds, include an `embeds` array in the `metadata_json` field of the ag
### "401 Unauthorized"
- Check that `discord_bot_token` is set correctly in IronClaw secrets.
- Check that `discord_bot_token` is set correctly in OptimClaw secrets.
- Ensure the bot is added to the server.
### "Interaction Failed"
+2 -2
View File
@@ -1,4 +1,4 @@
//! Discord Gateway/Webhook channel for IronClaw.
//! Discord Gateway/Webhook channel for OptimClaw.
//!
//! This WASM component implements the channel interface for handling Discord
//! interactions via webhooks and sending messages back to Discord.
@@ -1171,7 +1171,7 @@ fn send_pairing_reply(ctx: &PairingReplyCtx, code: &str) -> Result<(), String> {
);
let payload = serde_json::json!({
"content": format!(
"To pair with this bot, run: `ironclaw pairing approve discord {}`",
"To pair with this bot, run: `optimclaw pairing approve discord {}`",
code
),
"flags": 64
+1 -1
View File
@@ -2,7 +2,7 @@
name = "feishu-channel"
version = "0.1.0"
edition = "2021"
description = "Feishu/Lark Bot channel for IronClaw"
description = "Feishu/Lark Bot channel for OptimClaw"
license = "MIT OR Apache-2.0"
[lib]
+1 -1
View File
@@ -7,7 +7,7 @@
"auth": {
"secret_name": "feishu_app_id",
"display_name": "Feishu / Lark",
"instructions": "Create a bot at https://open.feishu.cn/app (Feishu) or https://open.larksuite.com/app (Lark). You need the App ID and App Secret. Note: IronClaw supports Event Subscription webhook delivery, but not Feishu's long-connection websocket mode.",
"instructions": "Create a bot at https://open.feishu.cn/app (Feishu) or https://open.larksuite.com/app (Lark). You need the App ID and App Secret. Note: OptimClaw supports Event Subscription webhook delivery, but not Feishu's long-connection websocket mode.",
"setup_url": "https://open.feishu.cn/app",
"token_hint": "App ID looks like cli_XXXX, App Secret is a long alphanumeric string",
"env_var": "FEISHU_APP_ID"
+2 -2
View File
@@ -1,11 +1,11 @@
// Feishu API types have fields reserved for future use.
#![allow(dead_code)]
//! Feishu/Lark Bot channel for IronClaw.
//! Feishu/Lark Bot channel for OptimClaw.
//!
//! This WASM component implements the channel interface for handling Feishu
//! webhooks (Event Subscription v2.0) and sending messages back via the
//! Feishu/Lark Bot API. IronClaw currently does not connect to Feishu's
//! Feishu/Lark Bot API. OptimClaw currently does not connect to Feishu's
//! long-connection websocket subscription mode; use Event Subscription
//! webhooks for this channel.
//!
+1 -1
View File
@@ -2,7 +2,7 @@
name = "slack-channel"
version = "0.2.1"
edition = "2021"
description = "Slack Events API channel for IronClaw"
description = "Slack Events API channel for OptimClaw"
license = "MIT OR Apache-2.0"
[lib]
+2 -2
View File
@@ -1,4 +1,4 @@
//! Slack Events API channel for IronClaw.
//! Slack Events API channel for OptimClaw.
//!
//! This WASM component implements the channel interface for handling Slack
//! webhooks and sending messages back to Slack.
@@ -650,7 +650,7 @@ fn send_pairing_reply(channel_id: &str, code: &str) -> Result<(), String> {
let payload = serde_json::json!({
"channel": channel_id,
"text": format!(
"To pair with this bot, run: `ironclaw pairing approve slack {}`",
"To pair with this bot, run: `optimclaw pairing approve slack {}`",
code
),
});
+1 -1
View File
@@ -2,7 +2,7 @@
name = "telegram-channel"
version = "0.2.1"
edition = "2021"
description = "Telegram Bot API channel for IronClaw"
description = "Telegram Bot API channel for OptimClaw"
license = "MIT OR Apache-2.0"
[lib]
+4 -4
View File
@@ -1,7 +1,7 @@
// Telegram API types have fields reserved for future use (entities, reply threading, etc.)
#![allow(dead_code)]
//! Telegram Bot API channel for IronClaw.
//! Telegram Bot API channel for OptimClaw.
//!
//! This WASM component implements the channel interface for handling Telegram
//! webhooks and sending messages back via the Bot API.
@@ -1170,7 +1170,7 @@ fn send_photo(
);
}
let boundary = format!("ironclaw-{}", channel_host::now_millis());
let boundary = format!("optimclaw-{}", channel_host::now_millis());
let mut body = Vec::new();
write_multipart_field(&mut body, &boundary, "chat_id", &chat_id.to_string());
@@ -1235,7 +1235,7 @@ fn send_document(
) -> Result<(), String> {
let message_thread_id = normalize_thread_id(message_thread_id);
let boundary = format!("ironclaw-{}", channel_host::now_millis());
let boundary = format!("optimclaw-{}", channel_host::now_millis());
let mut body = Vec::new();
write_multipart_field(&mut body, &boundary, "chat_id", &chat_id.to_string());
@@ -1552,7 +1552,7 @@ fn send_pairing_reply(chat_id: i64, code: &str) -> Result<(), String> {
send_message(
chat_id,
&format!(
"To pair with this bot, run: `ironclaw pairing approve telegram {}`",
"To pair with this bot, run: `optimclaw pairing approve telegram {}`",
code
),
None,
+1 -1
View File
@@ -2,7 +2,7 @@
name = "whatsapp-channel"
version = "0.2.0"
edition = "2021"
description = "WhatsApp Cloud API channel for IronClaw"
description = "WhatsApp Cloud API channel for OptimClaw"
[lib]
crate-type = ["cdylib"]
+2 -2
View File
@@ -1,7 +1,7 @@
// WhatsApp API types have fields reserved for future use (contacts, statuses, etc.)
#![allow(dead_code)]
//! WhatsApp Cloud API channel for IronClaw.
//! WhatsApp Cloud API channel for OptimClaw.
//!
//! This WASM component implements the channel interface for handling WhatsApp
//! webhooks and sending messages back via the Cloud API.
@@ -910,7 +910,7 @@ fn send_pairing_reply(
"text": {
"preview_url": false,
"body": format!(
"To pair with this bot, run: ironclaw pairing approve whatsapp {}",
"To pair with this bot, run: optimclaw pairing approve whatsapp {}",
code
)
}