Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/labelers/area.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# .github/labelers/area.yml
# Classifies issues by technical area/subsystem.

instructions: |
This is the Strands Agents SDK repository (Python + TypeScript monorepo).
CI dependency bumps (dependabot, renovate) should be labeled area-community.
Comment thread
yonib05 marked this conversation as resolved.
MCP tools should be labeled area-mcp, not area-tool.
Provider-specific async/streaming bugs belong to area-provider, not area-async.
Issues about hook lifecycle events belong to area-hooks even if they mention tools or agents.

labels:
area-a2a:
description: "Agent-to-Agent protocol, A2AAgent, A2AClient, A2AServer, agent cards"
area-async:
description: "Asynchronous flows, multi-threading, asyncio, concurrent execution, event loops"
area-bidirectional-streaming:
description: "Bidirectional streaming, BidiAgent, real-time audio/video, WebRTC, WebSocket, Nova Sonic"
area-community:
description: "Community health, monorepo consolidation, contributor guides, governance, CI dependency bumps"
area-config:
description: "Config-based agents, agent config files, mcp-config, declarative definitions"
area-context:
description: "Conversation management, context windows, context reduction, sliding window, token management"
area-devx:
description: "Developer experience, better APIs, ergonomics, helper methods, error messages, usability"
area-hil:
description: "Human-in-the-loop, interrupt/resume, suspend/resume, approval workflows"
area-hooks:
description: "Hook events, hook registry, callbacks, lifecycle events, BeforeEvent/AfterEvent"
area-language:
description: "New language SDKs (Ruby, .NET, Rust, Go, etc.)"
area-mcp:
description: "Model Context Protocol, MCP servers/clients/transport/tools"
area-multiagent:
description: "Multi-agent patterns, swarm, graph, orchestrator, agent-as-tool, arena"
area-otel:
description: "OpenTelemetry, tracing, metrics, spans, observability, OTLP"
area-persistence:
description: "Session storage, checkpointing, S3SessionManager, DynamoDB sessions, state serialization"
area-provider:
description: "Model providers (Bedrock, OpenAI, Anthropic, Ollama, LiteLLM, SageMaker, vLLM, Mistral)"
area-structured-output:
description: "Structured output API, JSON schema enforcement, Pydantic output models"
area-tool:
description: "Tool behavior, tool definitions, tool execution, @tool decorator, tool results"
16 changes: 16 additions & 0 deletions .github/labelers/language.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# .github/labelers/language.yml
# Identifies which SDK language the issue relates to.
# Use max_labels: 1 since most issues target one language.
Comment thread
yonib05 marked this conversation as resolved.

instructions: |
This is a monorepo with Python and TypeScript SDKs.
Look for language-specific keywords: Python paths (strands-py/, .py files, pip, pyproject.toml),
TypeScript paths (strands-ts/, .ts files, npm, package.json).
If the issue clearly targets both languages equally, prefer the language where the bug or feature originates.
If the issue is language-agnostic or unclear, do not assign a label.

labels:
python:
description: "Issue relates to the Python SDK (strands-py/, .py files, pip, pyproject.toml)"
javascript:
description: "Issue relates to the TypeScript/JavaScript SDK (strands-ts/, .ts files, npm, package.json)"
18 changes: 18 additions & 0 deletions .github/labelers/type.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# .github/labelers/type.yml
# Classifies issues by type (bug, feature, etc.)
# Use max_labels: 1 in the workflow since these are mutually exclusive.

instructions: |
Choose exactly one type. If the title starts with [BUG] it is a bug.
If the title starts with [FEATURE] it is an enhancement.
CI/dependency PRs that open as issues are chores.

labels:
bug:
description: "Something is broken or not working as documented"
enhancement:
description: "New feature request or improvement to existing functionality"
question:
description: "User asking for help, clarification, or how to do something"
chore:
description: "Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact"
56 changes: 56 additions & 0 deletions .github/workflows/issue-labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Issue Labeler

on:
issues:
types: [opened]

permissions:
issues: write
id-token: write
contents: read

jobs:
label-area:
name: "Label: Area"
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: .github/labelers
sparse-checkout-cone-mode: false
# max_labels omitted: issues may span multiple areas
- uses: strands-agents/devtools/issue-labeler@main
with:
aws_role_arn: ${{ secrets.AWS_ROLE_ARN }}
config_path: '.github/labelers/area.yml'
Comment thread
yonib05 marked this conversation as resolved.

label-type:
name: "Label: Type"
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: .github/labelers
sparse-checkout-cone-mode: false
- uses: strands-agents/devtools/issue-labeler@main
with:
aws_role_arn: ${{ secrets.AWS_ROLE_ARN }}
config_path: '.github/labelers/type.yml'
max_labels: '1'

label-language:
name: "Label: Language"
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
with:
sparse-checkout: .github/labelers
sparse-checkout-cone-mode: false
- uses: strands-agents/devtools/issue-labeler@main
with:
aws_role_arn: ${{ secrets.AWS_ROLE_ARN }}
config_path: '.github/labelers/language.yml'
max_labels: '1'
Loading