mirror of
https://github.com/outbackdingo/optimclaw.git
synced 2026-08-25 14:53:34 +00:00
part of #1046 - Implement Feishu Event Subscription v2.0 webhook (URL verification + im.message.receive_v1) - Token exchange via workspace-cached app credentials with 5-min pre-expiry refresh - Host-side secret injection into config JSON (setup.rs) so WASM can access app_id/app_secret without env vars - Reply and broadcast via /open-apis/im/v1/messages - Enforce allow_from user filtering in message handler - DM pairing flow with owner_id restriction - Dual API base support: open.feishu.cn (Feishu) / open.larksuite.com (Lark) - Registry manifest, bundled channel entry, messaging bundle integration - Strip raw config_json debug log to prevent secret leakage
44 lines
1.4 KiB
Bash
Executable File
44 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Build the Feishu/Lark channel WASM component
|
|
#
|
|
# Prerequisites:
|
|
# - Rust with wasm32-wasip2 target: rustup target add wasm32-wasip2
|
|
# - wasm-tools for component creation: cargo install wasm-tools
|
|
#
|
|
# Output:
|
|
# - feishu.wasm - WASM component ready for deployment
|
|
# - feishu.capabilities.json - Capabilities file (copy alongside .wasm)
|
|
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
echo "Building Feishu/Lark channel WASM component..."
|
|
|
|
# Build the WASM module
|
|
cargo build --release --target wasm32-wasip2
|
|
|
|
# Convert to component model (if not already a component)
|
|
# wasm-tools component new is idempotent on components
|
|
WASM_PATH="target/wasm32-wasip2/release/feishu_channel.wasm"
|
|
|
|
if [ -f "$WASM_PATH" ]; then
|
|
# Create component if needed
|
|
wasm-tools component new "$WASM_PATH" -o feishu.wasm 2>/dev/null || cp "$WASM_PATH" feishu.wasm
|
|
|
|
# Optimize the component
|
|
wasm-tools strip feishu.wasm -o feishu.wasm
|
|
|
|
echo "Built: feishu.wasm ($(du -h feishu.wasm | cut -f1))"
|
|
echo ""
|
|
echo "To install:"
|
|
echo " mkdir -p ~/.ironclaw/channels"
|
|
echo " cp feishu.wasm feishu.capabilities.json ~/.ironclaw/channels/"
|
|
echo ""
|
|
echo "Then add your Feishu App credentials to secrets:"
|
|
echo " # Set FEISHU_APP_ID and FEISHU_APP_SECRET in your environment or secrets store"
|
|
else
|
|
echo "Error: WASM output not found at $WASM_PATH"
|
|
exit 1
|
|
fi
|