Compare commits

..

3 Commits

Author SHA1 Message Date
Bryan Thompson
fb48c3af93 Update nimble plugin: remove SHA pin
Allow Nimble to resolve from latest HEAD rather than a pinned commit.
2026-04-14 09:42:49 -05:00
Bryan Thompson
3ffb4b4ca8 Add adlc plugin (#1394) 2026-04-13 19:41:08 +01:00
Bryan Thompson
656b617198 Add base44 plugin (#1389)
Official Base44 plugin — full-stack app development with CLI project management
and JavaScript/TypeScript SDK skills. MIT licensed, skills-only (no MCP server).

Partner escalation from #plugin-partner-escalations.
Already merged on -internal (PR #1466, 2026-04-07).
2026-04-13 17:24:33 +01:00
2 changed files with 23 additions and 10 deletions

View File

@@ -7,6 +7,16 @@
"email": "support@anthropic.com"
},
"plugins": [
{
"name": "adlc",
"description": "Agentforce Agent Development Life Cycle — author, discover, scaffold, deploy, test, and optimize .agent files",
"category": "development",
"source": {
"source": "url",
"url": "https://github.com/SalesforceAIResearch/agentforce-adlc.git"
},
"homepage": "https://github.com/SalesforceAIResearch/agentforce-adlc"
},
{
"name": "adspirer-ads-agent",
"description": "Cross-platform ad management for Google Ads, Meta Ads, TikTok Ads, and LinkedIn Ads. 91 tools for keyword research, campaign creation, performance analysis, and budget optimization.",
@@ -169,6 +179,17 @@
"category": "database",
"homepage": "https://github.com/AzureCosmosDB/cosmosdb-claude-code-plugin"
},
{
"name": "base44",
"description": "Build and deploy Base44 full-stack apps with CLI project management and JavaScript/TypeScript SDK development skills",
"category": "development",
"source": {
"source": "url",
"url": "https://github.com/base44/skills.git",
"sha": "c7039b37eca0e2916a565a7395040c00055bcf8b"
},
"homepage": "https://docs.base44.com"
},
{
"name": "box",
"description": "Work with your Box content directly from Claude Code — search files, organize folders, collaborate with your team, and use Box AI to answer questions, summarize documents, and extract data without leaving your workflow.",
@@ -865,8 +886,7 @@
"description": "Nimble web data toolkit — search, extract, map, crawl the web and work with structured data agents",
"source": {
"source": "url",
"url": "https://github.com/Nimbleway/agent-skills.git",
"sha": "cf391e95bd8ac009e3641f172434a1d130dde7fe"
"url": "https://github.com/Nimbleway/agent-skills.git"
},
"homepage": "https://docs.nimbleway.com/integrations/agent-skills/plugin-installation"
},

View File

@@ -222,8 +222,6 @@ type GateResult =
const recentSentIds = new Set<string>()
const RECENT_SENT_CAP = 200
const dmChannelUsers = new Map<string, string>()
function noteSent(id: string): void {
recentSentIds.add(id)
if (recentSentIds.size > RECENT_SENT_CAP) {
@@ -406,8 +404,7 @@ async function fetchAllowedChannel(id: string) {
const ch = await fetchTextChannel(id)
const access = loadAccess()
if (ch.type === ChannelType.DM) {
const userId = ch.recipientId ?? dmChannelUsers.get(id)
if (userId && access.allowFrom.includes(userId)) return ch
if (access.allowFrom.includes(ch.recipientId)) return ch
} else {
const key = ch.isThread() ? ch.parentId ?? ch.id : ch.id
if (key in access.groups) return ch
@@ -826,10 +823,6 @@ async function handleInbound(msg: Message): Promise<void> {
const chat_id = msg.channelId
if (msg.channel.type === ChannelType.DM) {
dmChannelUsers.set(chat_id, msg.author.id)
}
// Permission-reply intercept: if this looks like "yes xxxxx" for a
// pending permission request, emit the structured event instead of
// relaying as chat. The sender is already gate()-approved at this point