Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
477 commits
Select commit Hold shift + click to select a range
1e7fa9d
feat: add rebased telemetry implementation (#579)
lizradway Mar 2, 2026
1435196
refactor: remove monkey patching for mcp (#593)
lizradway Mar 3, 2026
c507c9a
feat: rename agent state to app state (#591)
pgrayy Mar 3, 2026
0a6358b
feat: structured output - per invocation override (#596)
pgrayy Mar 4, 2026
d4d2ecf
feat: multiagents - components - part 2 (#589)
pgrayy Mar 4, 2026
df97d87
fix: update import to fix build (#599)
zastrowm Mar 4, 2026
c6a2bce
fix: get rid of <name> tags since in docstrings (#598)
zastrowm Mar 4, 2026
c117a43
feat: multiagents - components - part 3 (#600)
pgrayy Mar 4, 2026
3d31e16
feat: add CitationsBlock for document citation support (#568)
dbschmigelski Mar 5, 2026
97040b5
fix: remove circular import of barrel index.js in agent.ts (#605)
zastrowm Mar 5, 2026
a4458cd
ci: bump express-rate-limit from 8.2.1 to 8.3.0 (#607)
dependabot[bot] Mar 6, 2026
d5f768a
feat: add session manager implementation and related tests (#569)
JackYPCOnline Mar 6, 2026
1e39fd2
test: remove color assertions from image/video integ tests (#609)
Unshure Mar 6, 2026
53bf6e6
feat(mcp): make tasks opt-in via tasksConfig (#516)
LucaButBoring Mar 7, 2026
6553ed0
feat(multiagent): swarm orchestration pattern (#606)
pgrayy Mar 9, 2026
b39d10a
fix: remove deprecated eslint-env comments incompatible with flat con…
awsarron Mar 9, 2026
b5da873
chore: tidy registry tests in to separate __tests__ dir (#612)
awsarron Mar 9, 2026
7b8832f
feat(telemetry): browser-compatible tracer with NodeTracerProvider…
chaynabors Mar 9, 2026
ae03eab
feat: add getTracer to telemetry api surface (#604)
lizradway Mar 9, 2026
7968764
refactor: simplify ToolRegistry to name-based CRUDL interface (#616)
awsarron Mar 9, 2026
24513e3
feat: support both Zod and JSON schemas for tool() factory (#617)
awsarron Mar 9, 2026
5fc30c8
fix: use source import for Agent in swarm integ tests (#628)
pgrayy Mar 9, 2026
3e5adba
ci: bump actions/upload-artifact from 6 to 7 (#580)
dependabot[bot] Mar 10, 2026
fe59268
ci: bump aws-actions/configure-aws-credentials from 5 to 6 (#496)
dependabot[bot] Mar 10, 2026
be6a1f3
ci: bump actions/github-script from 7 to 8 (#525)
dependabot[bot] Mar 10, 2026
f988e85
ci: bump amannn/action-semantic-pull-request from 5 to 6 (#526)
dependabot[bot] Mar 10, 2026
ebf2f50
feat(bedrock): add guardrail redaction support with input/output hand…
Unshure Mar 10, 2026
6d439ca
feat(multiagent): graph orchestration pattern (#632)
pgrayy Mar 11, 2026
0b0127e
feat: local metrics tracking for agent loop (#597)
lizradway Mar 11, 2026
02c91f5
feat: add delete session & list pagination API, update tests (#623)
JackYPCOnline Mar 11, 2026
5acfb01
chore: npm audit fix (#638)
pgrayy Mar 11, 2026
84a619a
fix: add warn log when node execution fails in multi-agent orchestrat…
pgrayy Mar 11, 2026
33b51e2
feat(bedrock): add guardLatestUserMessage guardrail option (#635)
Unshure Mar 11, 2026
8c4197e
feat: implement Plugin system to replace HookProvider (#619)
zastrowm Mar 11, 2026
0687d12
fix: delete package-lock.json (#649)
Unshure Mar 11, 2026
f0c4e7a
test: add concrete metric assertions and usage support to MockMessage…
lizradway Mar 12, 2026
e5dcdfe
docs: add multi-agent orchestration documentation and examples (#648)
pgrayy Mar 12, 2026
4108d50
fix: fix build errors locally and on actions (#653)
zastrowm Mar 12, 2026
fa02632
fix: migrate plugins to be an interface (#654)
zastrowm Mar 12, 2026
67c4e54
feat(a2a): add A2A protocol support with AgentBase interface (#601)
dbschmigelski Mar 12, 2026
6b84675
refactor: extract MIME type utilities into dedicated mime module (#656)
pgrayy Mar 12, 2026
e9bf06d
feat(telemetry): add otel meter (#655)
lizradway Mar 12, 2026
b8029c7
feat: make Swarm start optional, defaulting to first node (#657)
pgrayy Mar 12, 2026
21d1c25
feat: add promptcaching for bedrock model provider (#595)
mehtarac Mar 13, 2026
a2b547a
feat: add agents-as-tools example (#662)
pgrayy Mar 16, 2026
f7d9930
feat: replace agentId with id and add id/name/description to AgentBas…
pgrayy Mar 16, 2026
23cbf1e
feat: support documentblock, imageblock, videoblock in model provider…
mehtarac Mar 16, 2026
dcc0bf4
feat: strongly type the conversation-manager (#664)
zastrowm Mar 16, 2026
36025ff
feat: add MultiAgentState to remaining multi-agent streaming events (…
pgrayy Mar 16, 2026
d346566
refactor: widen AgentNode and orchestrators to accept AgentBase with …
pgrayy Mar 16, 2026
906fa90
chore: make StateSerializable use symbols for private api implementat…
zastrowm Mar 17, 2026
9afb63d
refactor: rename vended tools modules from snake_case to kebab-case (…
pgrayy Mar 17, 2026
3222d3c
refactor: split agent interfaces into InvokableAgent and LocalAgent, …
pgrayy Mar 17, 2026
f57ef9a
fix: resolve peer dependency type errors for consumers with skipLibCh…
pgrayy Mar 17, 2026
515107a
docs: document NodeStreamUpdateInnerEvent source values (#677)
pgrayy Mar 17, 2026
9130a11
fix: export LocalAgent and MultiAgent types for plugin authors (#683)
pgrayy Mar 17, 2026
1f829b0
fix: narrow multi-agent input type to exclude Message[] and MessageDa…
pgrayy Mar 18, 2026
0b08622
feat(media): align S3 location pattern with Python SDK (#679)
zastrowm Mar 18, 2026
19734c4
chore: remove v1 issue template (#686)
pgrayy Mar 18, 2026
54b2b4d
fix: fix export type bug (#674)
JackYPCOnline Mar 18, 2026
b9c75ec
feat(telemetry): add TTFB metric, Langfuse detection, system prompt o…
lizradway Mar 18, 2026
de715e1
refactor: rename AppState to StateStore and Agent.state to Agent.appS…
pgrayy Mar 18, 2026
5d4b893
fix: fix model sliently overwrites syntaxerror when both maxtoken& sy…
JackYPCOnline Mar 18, 2026
8f73828
fix: fix file editor replace bug (#688)
JackYPCOnline Mar 18, 2026
4ab6306
fix: fix agent retry pass in same arg (#687)
JackYPCOnline Mar 18, 2026
9509599
fix: gemini model should handle throttling correctly (#691)
JackYPCOnline Mar 19, 2026
548b203
feat: prevent self-handoffs in Swarm (#697)
pgrayy Mar 19, 2026
0115b33
fix: use logger instead of console log that bypass logging system (#698)
JackYPCOnline Mar 19, 2026
a51fabb
feat: update default model to Claude Sonnet 4 (claude-sonnet-4-6) (#692)
zastrowm Mar 19, 2026
4fad779
fix: remove vi.restoreAllMocks() breaking Anthropic mock in browser t…
Unshure Mar 19, 2026
f55d195
feat: add before tool cancellation support (#696)
lizradway Mar 20, 2026
8b4c3c5
fix: swarm maxstep throws when finish normally (#678)
JackYPCOnline Mar 20, 2026
895a677
feat: add local traces into agentResult (#620)
lizradway Mar 20, 2026
5962a05
fix(snapshot): correctly restore null systemPrompt in loadSnapshot (#…
zastrowm Mar 20, 2026
33ac262
ci: bump uuid from 10.0.0 to 13.0.0 (#625)
dependabot[bot] Mar 20, 2026
a5a2be6
fix: add newline after printing agent response (#705)
Unshure Mar 20, 2026
0a0be5b
fix: update anthropic log line to follow structured logging conventio…
Unshure Mar 20, 2026
169102d
feat: add multi-agent traces (#666)
lizradway Mar 20, 2026
d84449f
fix: use undefined rather than falsy system prompt check (#707)
lizradway Mar 20, 2026
3b3165f
refactor: simplify structured output internals and fix infinite loop …
pgrayy Mar 20, 2026
3043ebb
feat: add model subpath exports, rename GeminiModel to GoogleModel, a…
pgrayy Mar 23, 2026
e07b988
fix: clarify A2AAgent log message for non-text content stripping (#718)
pgrayy Mar 23, 2026
559d6c6
fix: sliding window conversation manager treats windowSize 0 as no-op…
pgrayy Mar 23, 2026
6c8cab9
fix: standardize log messages to follow structured logging format (#722)
pgrayy Mar 23, 2026
33b94e1
fix: update default OpenAI model IDs to current generation (#723)
pgrayy Mar 23, 2026
35f6ac2
fix: inner node status should propagate (#726)
JackYPCOnline Mar 23, 2026
4889bc1
fix: add SessionManager guard rails and widen snapshot types to Local…
pgrayy Mar 24, 2026
4b16dd3
fix: add persistence to vended bash tool (#738)
notowen333 Mar 24, 2026
d967206
fix: force slidingWindowConversationManager to use user message (#739)
JackYPCOnline Mar 24, 2026
2c6c437
feat: add toJSON() to multiagent and a2a streaming events for wire-sa…
pgrayy Mar 25, 2026
01f9083
feat: add toJSON() to all streaming events for wire-safe serializatio…
agent-of-mkmeral Mar 25, 2026
94a5a67
fix: guarantee after-events fire during hook errors and stream cleanu…
pgrayy Mar 25, 2026
aa916f2
fix: move A2AExpressServer to dedicated subpath export for browser co…
pgrayy Mar 25, 2026
e451a73
fix: allow pre-release versions in NPM publish workflow (#745)
zastrowm Mar 25, 2026
9fbf3bd
fix: add --tag latest to npm publish for pre-release versions (#747)
zastrowm Mar 26, 2026
67a1385
fix: remove top level telemetry export (#748)
lizradway Mar 26, 2026
62c272f
feat: make multiagent state implements stateSerializable (#740)
JackYPCOnline Mar 26, 2026
42c1efd
feat: add VercelModel adapter for Language Model Specification v3 pro…
awsarron Mar 27, 2026
1925be0
refactor: rename VercelModelOptions.model to provider (#753)
awsarron Mar 27, 2026
9ec24fe
feat: add SummarizationConversationManager (#746)
notowen333 Mar 27, 2026
75af068
feat: mark LocalAgent interface as internal-only (#755)
pgrayy Mar 27, 2026
181bce5
feat: add Model to Before/AfterModelCallEvent. add Model to Conversat…
notowen333 Mar 31, 2026
8791299
feat: rename summarization -> SummarizingConversationManager; mark mo…
notowen333 Mar 31, 2026
cfc9ec2
feat(examples): add browser-based agent example (#384)
michaelruelas Apr 1, 2026
82d4b7a
feat: add multiagent snapshot (#756)
JackYPCOnline Apr 1, 2026
336c992
fix: sync BEDROCK_CONTEXT_WINDOW_OVERFLOW_MESSAGES with Python SDK (#…
opieter-aws Apr 3, 2026
e4112e7
fix: update browser-agent example for current SDK API (#792)
pgrayy Apr 6, 2026
68eb9af
feat: add AgentAsTool internal class (#768)
notowen333 Apr 7, 2026
b4cf8a6
feat: enable session manager in multiagent (P0, resume logic will be …
JackYPCOnline Apr 7, 2026
58b40ae
feat: add mid-execution cancellation (#781)
notowen333 Apr 7, 2026
eeecbfc
fix: prevent invocation lock leak when consumer breaks from stream (#…
pgrayy Apr 7, 2026
70346b0
fix: migrate MultiagentPlugin to be an interface (#794)
JackYPCOnline Apr 8, 2026
afb3912
fix(bedrock): disable thinking when tool_choice forces tool use (#798)
pgrayy Apr 8, 2026
acd69ec
fix(multiagent): evaluate all incoming edge handlers in Graph._findRe…
pgrayy Apr 10, 2026
ee0cd1a
feat: add swarm+session manager resume logic,unit tests, integration …
JackYPCOnline Apr 10, 2026
6d12bed
feat(a2a): support custom ClientFactory in A2AAgent for authenticated…
cogwirrel Apr 13, 2026
b9102d1
feat(context): track agent.messages token size (#790)
lizradway Apr 15, 2026
b652a15
fix(tool): added function replacer for notebook_tool replace (#814)
poshinchen Apr 15, 2026
028a9f6
ci: add package-lock.json (#813)
mkmeral Apr 16, 2026
1a92fa3
feat: add graph+session manager integration + tests (#809)
JackYPCOnline Apr 16, 2026
3bf1a78
feat: add agent skills plugin (#807)
notowen333 Apr 16, 2026
010da77
feat: expose metrics/usage on message metadata (#815)
lizradway Apr 17, 2026
8823825
docs: remove preview status from README (#828)
pgrayy Apr 20, 2026
563d941
refactor: move TS package into strands-ts/ for monorepo structure (#827)
chaynabors Apr 20, 2026
2041897
feat: add strands-wasm, strands-py, strands-dev, and wit from wasm mo…
chaynabors Apr 20, 2026
2356467
docs: update AGENTS.md and CONTRIBUTING.md for strands-ts workspace l…
pgrayy Apr 20, 2026
d59772d
ci: update setuptools requirement from >=68.0 to >=82.0.1 in /strands…
dependabot[bot] Apr 20, 2026
b956192
ci: update pytest-asyncio requirement from >=0.23 to >=1.3.0 in /stra…
dependabot[bot] Apr 20, 2026
5ae281a
ci: update boto3 requirement from >=1.35 to >=1.42.92 in /strands-py …
dependabot[bot] Apr 20, 2026
d5d497b
ci: bump actions/github-script from 8 to 9 (#805)
dependabot[bot] Apr 20, 2026
a4ce8ea
chore(deps-dev): bump the npm_and_yarn group across 2 directories wit…
dependabot[bot] Apr 20, 2026
e36fb15
ci: update pydantic requirement from >=2.0 to >=2.13.3 in /strands-py…
dependabot[bot] Apr 20, 2026
7c27cd3
ci: update pytest requirement from >=8.0 to >=9.0.3 in /strands-py (#…
dependabot[bot] Apr 20, 2026
7741283
ci: bump the development-dependencies group across 1 directory with 1…
dependabot[bot] Apr 20, 2026
75ce44e
feat: add contextWindowLimit to BaseModelConfig (#848)
opieter-aws Apr 21, 2026
2cc5e37
chore: rename AgentSkillsPlugin -> AgentSkills (#861)
notowen333 Apr 22, 2026
959a367
docs: add README for wasm (#863)
mehtarac Apr 22, 2026
7302166
docs: update AGENTS.md (#862)
mehtarac Apr 22, 2026
0a4956c
feat(mcp): handle -32042 elicitation error in tool results (#864)
gautamsirdeshmukh Apr 22, 2026
47e86ed
fix(anthropic): update maxTokens default value, remove dead default a…
opieter-aws Apr 22, 2026
e1ca5d4
chore: upgrade to otel js sdk v2 (#867)
lizradway Apr 22, 2026
986421d
feat: export MultiagentSaveLatestStrategy in top level index (#873)
JackYPCOnline Apr 22, 2026
d33272f
feat: add prepack script so git installs build dist/ (#874)
notowen333 Apr 22, 2026
df7399a
fix: add version field to root package.json so downstream file: insta…
notowen333 Apr 22, 2026
6a838ad
feat: add mcp tool result multimodal support (#865)
mehtarac Apr 23, 2026
ec4f087
feat: add concise inline comments in the wit contract (#878)
mehtarac Apr 23, 2026
6989e8b
docs: update wasm content with guides (#879)
mehtarac Apr 23, 2026
6a59a89
feat: add countTokens() heuristic to Model base class (#853)
opieter-aws Apr 23, 2026
fc1de2f
feat(mcp): add elicitation callback support (#876)
gautamsirdeshmukh Apr 24, 2026
c404b9e
feat: make tool result mutable (#907)
lizradway Apr 27, 2026
ad8006f
feat: add cancellation support to BeforeInvocationEvent and BeforeMod…
lizradway Apr 27, 2026
c099234
feat: centralize model defaults; emit warnings when defaults are used…
notowen333 Apr 27, 2026
92484ec
feat: estimate input tokens before model calls (#890)
opieter-aws Apr 27, 2026
8569512
feat: override countTokens with native token counting for supported p…
opieter-aws Apr 28, 2026
03f3c53
fix: remove internal ProviderTokenCountError from public exports (#937)
opieter-aws Apr 28, 2026
cfa2fba
feat: add concurrent tool execution (#854)
notowen333 Apr 28, 2026
4da677d
feat: add bridge in wasm for conversation manager (#880)
mehtarac Apr 28, 2026
d5611a8
fix: change token counting fallback log from warn to debug (#942)
opieter-aws Apr 28, 2026
9bc7912
fix(mcp): fix transport type cast for StreamableHTTPClientTransport (…
gautamsirdeshmukh Apr 28, 2026
4ad115f
feat: add invocation state; apply to all events (#887)
notowen333 Apr 28, 2026
b6077a7
feat: add openai-responses model provider and stateful model support …
notowen333 Apr 28, 2026
3d7e0c6
fix: add prepare script to examples for standalone install (#961)
pgrayy Apr 29, 2026
9f9e6b7
feat: add optional session token to browser-agent Bedrock settings (#…
pgrayy Apr 29, 2026
4cbe3b1
fix: include README and LICENSE files in published npm package (#969)
pgrayy Apr 30, 2026
714aa5f
feat: concurrent tool execution strategy by default (#970)
notowen333 Apr 30, 2026
c56ed23
fix(wasm): migrate LifecycleBridge from deleted HookProvider to Plugi…
mathpal Apr 30, 2026
e44d5a9
fix: format entry.ts (#975)
mehtarac Apr 30, 2026
3f62faa
feat: add hook fields on Before/After Tool Call Event and AfterInvoca…
notowen333 Apr 30, 2026
f47c707
fix(wasm): fix stale imports and ToolRegistry API in WASM bridge (#973)
mathpal Apr 30, 2026
e168b50
fix: add missing root script delegations (#972)
pgrayy Apr 30, 2026
1af7df8
feat(wasm): add tsc type-checking to strands-wasm (#979)
mathpal Apr 30, 2026
68b5143
ci: bump @anthropic-ai/sdk from 0.89.0 to 0.92.0 (#978)
dependabot[bot] Apr 30, 2026
7c00a77
feat: auto-populate contextWindowLimit from model ID lookup tables (#…
opieter-aws May 1, 2026
c2ba394
feat: expose model on local agent (#938)
lizradway May 1, 2026
a12ea3e
fix: run generate before type-check in strands-wasm (#987)
opieter-aws May 1, 2026
d85fefc
fix(mcp): paginate listTools(), improve fallback description (#984)
gautamsirdeshmukh May 2, 2026
90bebf9
test(wasm): add contract tests for the WASM bridge (#983)
mathpal May 4, 2026
f2b885b
refactor(wasm): eliminate type safety gaps in entry.ts bridge (#988)
mathpal May 4, 2026
5891a07
refactor(wasm): decompose mapEvent into typed functions (#989)
mathpal May 4, 2026
ec1de83
ci: update tenacity requirement from >=8.0 to >=9.1.4 in /strands-py …
dependabot[bot] May 4, 2026
d0e2ff2
ci: update docstring-parser requirement from >=0.16 to >=0.18.0 in /s…
dependabot[bot] May 4, 2026
14f0123
ci: bump commander from 12.1.0 to 14.0.3 (#845)
dependabot[bot] May 4, 2026
b9ba756
ci: bump fast-xml-parser and @aws-sdk/xml-builder (#940)
dependabot[bot] May 4, 2026
8607974
ci: bump uuid from 13.0.0 to 14.0.0 (#962)
dependabot[bot] May 4, 2026
835c176
feat: add agent guide for wasm feature development (#992)
mehtarac May 4, 2026
8f70e6e
ci: update boto3 requirement from >=1.42.92 to >=1.43.2 in /strands-p…
dependabot[bot] May 4, 2026
e24deab
ci: bump @aws-sdk/client-bedrock-runtime from 3.1033.0 to 3.1037.0 in…
dependabot[bot] May 4, 2026
48639b3
feat(context): add result offload plugin (#974)
lizradway May 4, 2026
80194f7
feat(interrupt): implement interrupt system for human-in-the-loop wor…
zastrowm May 4, 2026
e71c13f
feat: add structured output implementation for wasm (#1000)
mehtarac May 5, 2026
f5e38ce
fix(wasm): mapEvent interrupt guard, broken test imports (#1003)
gautamsirdeshmukh May 5, 2026
851b4e3
fix: remove type checking for wasm temporarily (#1007)
mehtarac May 5, 2026
6dcb38b
feat(mcp): surface server logs, enable failOpen, metadata getters (#1…
gautamsirdeshmukh May 6, 2026
2614968
feat: add timeouts to graph/swarm; bedrock request timeout (#1008)
notowen333 May 6, 2026
b21144c
fix: cache unsupported models for bedrocks token counting (#999)
opieter-aws May 6, 2026
beb25b7
feat(hooks): add endTurn decision field to AfterToolsEvent (#982)
mathpal May 6, 2026
ed32a30
feat: add useNativeTokenCount flag to skip token counting API calls (…
opieter-aws May 6, 2026
bae3013
fix(test): allow browser env in OpenAI responses integ fixture (#1014)
notowen333 May 6, 2026
9b73795
feat(mcp): add Symbol.asyncDispose to McpClient to enable await-using…
gautamsirdeshmukh May 7, 2026
a83d095
feat: add optional hook order (#1005)
lizradway May 7, 2026
be309fe
feat: add proactive context compression to conversation managers (#965)
opieter-aws May 7, 2026
17756da
refactor: rename hook order to SDK first/last (#1024)
lizradway May 7, 2026
ec9570b
feat: normalize invalid tool names (#1017)
notowen333 May 7, 2026
9d6ae1a
feat: add DefaultModelRetryStrategy, ModelRetryStrategy, and BackoffS…
notowen333 May 7, 2026
902cf04
feat: refine sliding window coversation manager logic (#1018)
notowen333 May 8, 2026
984817a
feat: add npm-pack test to ci-cd (#996)
notowen333 May 8, 2026
d99cd49
feat: cache AccessDenied error for count tokens (#1032)
opieter-aws May 8, 2026
ca121a2
fix: npm security audit fix (#1041)
poshinchen May 11, 2026
bcf4f98
chore: serialized interrupts and structuredOutput as JSON and citatio…
poshinchen May 11, 2026
148044a
feat(mcp): handle toolsChanged notifications (#1038)
gautamsirdeshmukh May 11, 2026
0cc2e2b
feat: WIT-first SDK contract and strands-py 2.0.0a1 rewrite (#1034)
chaynabors May 12, 2026
d122446
feat: expose takeSnapshot and loadSnapshot on Agent (#1045)
zastrowm May 12, 2026
a29f250
fix: align context overflow detection patterns(#894) (#966)
Luffy2208 May 12, 2026
e1a6da8
chore: persist guardrails redaction (#1040)
poshinchen May 12, 2026
9a9e151
feat: add official Discord link (#1051)
Albertozhao May 12, 2026
1e4e4f2
fix: default useNativeTokenCount to false (#1056)
opieter-aws May 13, 2026
61bd88d
fix: structured tool output user/assistant bug fix (#1049)
notowen333 May 13, 2026
f120833
feat: normalize tool-name and update correct MessageAddedEvent behavi…
poshinchen May 13, 2026
42b67a7
update AGENTS.MD (#1057)
mehtarac May 13, 2026
f72cbc8
fix: use correct 'citation' delta key for streaming citations in Bedr…
pgrayy May 13, 2026
d326ee5
fix: give maintainers auto integ tests (#1064)
lizradway May 13, 2026
59a115b
fix: replace Node 22+ globSync with readdirSync in strands-dev CLI (#…
zastrowm May 13, 2026
6619b65
perf: make totalDuration and averageCycleTime O(1) on AgentMetrics (#…
pgrayy May 13, 2026
75988a6
feat: support multi-agent interrupts; add InterruptEvent (#1044)
notowen333 May 13, 2026
4d3c355
feat(mcp): support url + auth fields on McpClientConfig (#1059)
gautamsirdeshmukh May 13, 2026
2c4c5c1
feat(mcp): forward agent cancel signal to MCP server (#1069)
gautamsirdeshmukh May 13, 2026
13a1272
feat: add interventions primitive (#883)
lizradway May 14, 2026
0fb0d90
feat(offloader): add search results tool (#1060)
lizradway May 14, 2026
e96a6f4
feat: added bedrock-mantle support (#1066)
poshinchen May 14, 2026
081daec
feat(interventions): add confirm action with built-in approve/deny se…
lizradway May 15, 2026
6a95bb5
fix(printer): defer tool announcement until after hooks resolve (#1076)
lizradway May 15, 2026
6bf845f
chore: update anthropic-provider (#1075)
poshinchen May 18, 2026
61db428
chore: Migrate strands-py to strands-py-wasm (#1078)
zastrowm May 18, 2026
4dd13ca
feat(bedrock): add TTL support for prompt caching (#1089)
kpx-dev May 21, 2026
6987b01
feat: add direct tool calling via agent.tool accessor (#985)
agent-of-mkmeral May 21, 2026
c0559cf
feat: add optional preserveContext property to AgentNode (#1015)
notowen333 May 21, 2026
d0d636e
test: add interventions integ tests (#1079)
lizradway May 21, 2026
fda9850
feat: add top level skills directories with initial strands-reivew/ s…
notowen333 May 21, 2026
61cb28b
feat(interventions): add human in the loop intervention handler (#1073)
lizradway May 22, 2026
67ac970
feat(mcp): load MCP servers from JSON (#1070)
gautamsirdeshmukh May 22, 2026
2a39311
feat(strands-py-wasm): wire Agent runtime through wasmtime-py (#1091)
chaynabors May 22, 2026
e96692e
ci: remove broken py-check workflow (#1093)
chaynabors May 22, 2026
83faa91
fix: cap Meter invocation history to prevent unbounded memory growth …
pgrayy May 22, 2026
117ce4e
feat(steering): add vended-interventions/steering module (#1084)
notowen333 May 22, 2026
17d9d80
fix(wasm): update deps and externalize node-only modules for WASM bui…
pgrayy May 26, 2026
a25111b
feat: Add barrel exports for vended-tools and vended-plugins (#1095)
zastrowm May 26, 2026
bb696fc
feat: base Sandbox interface (#1090)
gautamsirdeshmukh May 27, 2026
0f99011
ci: prepare workflows and templates for monorepo convergence (#1103)
zastrowm May 27, 2026
ea31f48
chore: merge strands-agents/sdk-typescript into monorepo
zastrowm May 28, 2026
ccdb99e
ci: integrate TypeScript into CI gate
zastrowm May 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
281 changes: 281 additions & 0 deletions .agents/skills/strands-review/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
---
name: strands-review
description: Local preview of the strands-agents/devtools `/strands review` agent. Body is the upstream Task Reviewer SOP verbatim — do not paraphrase. Use when the user types `/strands-review`, asks for a "strands review" of a PR, or wants to anticipate what the remote `/strands review` GitHub Action will flag. Findings are close but not identical to the remote agent. Strongly prefer running this skill in a fresh-context subagent rather than inline — the SOP is long and reviewer judgment is more reliable when it isn't entangled with the parent conversation's prior context.
source: https://github.com/strands-agents/devtools/blob/main/strands-command/agent-sops/task-reviewer.sop.md
---

<!--
Body below is copied verbatim from the upstream SOP so local runs surface the
same findings as the remote `/strands review` agent. If the upstream changes,
re-sync from the source URL above. Do not edit the body to fit local
conventions — divergence here defeats the purpose of the skill.

NOTE: an SDK monorepo merge is imminent (sdk-typescript + sdk-python +
devtools). Once that lands, the upstream SOP lives in-tree at something like
`devtools/strands-command/agent-sops/task-reviewer.sop.md` instead of a
separate repo. At that point:
- Replace this file with a symlink to the in-tree SOP (or `include` it via
a build step) so re-sync is automatic and drift is impossible.
- The `source:` URL in frontmatter becomes a relative repo path.
- The "re-sync from source URL" instruction below becomes obsolete — a
`git pull` is the sync.
Until then, re-sync manually:
curl -sL https://raw.githubusercontent.com/strands-agents/devtools/main/strands-command/agent-sops/task-reviewer.sop.md \
> .agents/skills/strands-review/SKILL.md.body
# then splice the new body in below this comment block

Tool-name mapping (the SOP names upstream Strands tools; locally use these):
- `get_pr_files` -> `gh pr view <pr> --json files` / `gh pr diff <pr>`
- `add_pr_comment` (inline) -> `gh api repos/{owner}/{repo}/pulls/{pr}/comments`
- `add_pr_comment` (file) -> `gh pr comment <pr> --body ...`
- `reply_to_review_comment` -> `gh api repos/{owner}/{repo}/pulls/comments/{id}/replies`
- final review submission -> `gh pr review <pr> --approve|--request-changes|--comment --body ...`
-->

# Task Reviewer SOP

## Role

You are a Task Reviewer, and your goal is to review code changes in a pull request and provide constructive feedback to improve code quality, maintainability, and adherence to project standards. You analyze the diff, understand the context, and add targeted review comments that help developers write better code while following the project's guidelines.

## Steps

### 1. Setup Review Environment

Initialize the review environment by checking out the main branch for guidance.

**Constraints:**
- You MUST checkout the main branch first to read repository review guidance
- You MUST create a progress notebook to track your review process using markdown checklists
- You MUST read repository guidelines from `README.md`, `CONTRIBUTING.md`, and `AGENTS.md` (if present)
- You MUST read API bar raising guidelines from https://github.com/strands-agents/docs/blob/main/team/API_BAR_RAISING.md
- You MUST create a checklist of items to review based on the repository guidelines

### 2. Analyze Pull Request Context

Checkout the PR branch and understand what the PR is trying to accomplish.

**Constraints:**
- You MUST checkout the PR branch to review the actual changes
- You MUST read the pull request description and understand the purpose of the changes
- You MUST note the PR number and branch name in your notebook
- You MUST identify the type of changes (feature, bugfix, refactor, etc.)
- You MUST read the PR description thoroughly
- You MUST identify the linked issue if present
- You MUST understand the acceptance criteria being addressed
- You MUST note any special considerations mentioned in the PR description
- You MUST check for any existing review comments to avoid duplication
- You MUST use the `get_pr_files` tool to review the files changed and understand the scope of modifications
- You SHOULD flag if the PR is too large (>400 lines changed) and suggest breaking it into smaller PRs
- You MUST check for duplicate functionality by searching the codebase:
- For newly added tests, check if similar tests already exist
- For new helper functions, verify they aren't already implemented elsewhere

### 3. Code Analysis Phase

Perform a comprehensive analysis of the code changes.

#### 3.1 Structural Review

Analyze the overall structure and architecture of the changes.

**Constraints:**
- You MUST review the file organization and directory structure
- You MUST check if new files follow existing naming conventions
- You MUST verify that changes align with the project's architectural patterns
- You MUST identify any potential breaking changes
- You MUST check for proper separation of concerns

#### 3.2 API Bar Raising Review

If the PR introduces or modifies public APIs, evaluate the API design from a customer perspective.

**Constraints:**
- You MUST check if the PR has `needs-api-review` or `completed-api-review` labels
- You MUST verify the PR includes API documentation in the description:
- Expected use cases for the new feature
- Example code snippets demonstrating usage
- Complete API signatures with default parameter values
- Module exports (what's exported from each module)
- You MUST evaluate the API against SDK tenets (https://github.com/strands-agents/docs/blob/main/team/TENETS.md) and decision records (https://github.com/strands-agents/docs/blob/main/team/DECISIONS.md)
- You MUST verify the API addresses documented use cases
- You MUST check if default parameters/behavior represent the most common usage
- You MUST assess the level of abstraction and extensibility:
- What is customizable and what is not?
- Is it the proper level of abstraction?
- You MUST identify use cases that are not addressed and question why
- You MUST flag if the PR requires API review but lacks the `needs-api-review` label for:
- New public classes or abstractions customers will use
- New primitives or frequently-used functionality
- Changes to existing public API contracts
- You MAY suggest the change scope requires designated API reviewer or team consensus if substantial

#### 3.3 Code Quality Review

Examine the code for quality, readability, and maintainability issues.

**Constraints:**
- You MUST check for language-specific best practices as defined in repository guidelines
- You MUST verify code is readable with clear variable/function names and logical structure
- You MUST check that code is maintainable with modular design and loose coupling
- You MUST check for code complexity and suggest simplifications
- You MUST identify unclear or confusing code patterns
- You MUST verify proper error handling
- You MUST check for potential performance issues
- You MUST verify design decisions are documented (why certain patterns were chosen, alternatives considered, tradeoffs made)

#### 3.4 Testing Review

Analyze the test coverage and quality of tests.

**Constraints:**
- You MUST verify that new functionality has corresponding tests
- You MUST check that tests follow the patterns defined in repository documentation
- You MUST ensure tests are in the correct directories as specified in guidelines
- You MUST check for proper test organization and naming
- You MUST identify missing edge cases or error scenarios
- You MUST verify integration tests are included when appropriate
- You MUST flag tests that assert on individual fields when the full object or shape can be asserted in a single equality check, since per-field assertions silently miss unexpected or regressed fields
- You MAY accept per-field assertions only when a field is non-deterministic or irrelevant to the behavior under test, and the test isolates that field rather than splitting the whole assertion

### 4. Generate Review Comments

Create specific, actionable review comments for identified issues.

**Constraints:**
- You MUST focus on the most impactful improvements first
- You MUST provide specific suggestions rather than vague feedback
- You MUST be concise in your feedback
- You MUST avoid nitpicking on minor style issues (nits) - focus on substantive problems:
- Nits include: comment wording, code organization preferences, bracket/semicolon position, filename conventions
- Substantive issues include: bugs, security vulnerabilities, performance problems, maintainability concerns
- You MUST assume positive intent from the code author
- You MUST categorize feedback as:
- **Critical**: Must be fixed (security, breaking changes, major bugs)
- **Important**: Should be fixed (quality, maintainability, standards)
- **Suggestion**: Nice to have (optimizations, style preferences)
- You MUST be constructive and educational in your feedback
- You MUST prioritize feedback that helps the developer learn and improve
- You MAY skip this step if you have no feedback to provide

#### 4.1 Comment Structure

Format review comments to be clear and actionable.

**Constraints:**
- You MUST be concise - avoid verbose explanations
- You MUST provide specific suggestions
- You MAY reference documentation or standards when applicable
- You SHOULD use this format:
```
**Issue**: [Brief description]
**Suggestion**: [Specific recommendation]
```

### 5. Post Review Comments

Add the review comments to the pull request.

**Constraints:**
- You MUST use the `add_pr_comment` tool for inline comments on specific lines
- You MUST use the `add_pr_comment` tool with no line number for file-level comments
- You MUST use the `reply_to_review_comment` tool to reply to existing inline comments
- You MUST group related comments when possible
- You MUST avoid overwhelming the author with too many minor comments
- You MUST prioritize the most important feedback
- You MUST be respectful and professional in all comments
- You SHOULD limit to 10-15 comments per review to avoid overwhelming the author
- You MUST focus on improvements and suggestions only
- You MUST NOT add inline comments praising good coding practices

### 6. Summary Review Comment

Provide a concise overall summary of the review.

**Constraints:**
- You MUST create a pull request review using GitHub's review feature
- You MUST provide an overall assessment (Approve, Request Changes, Comment)
- You MUST keep the summary concise, informative, and easy to read
- You MUST NOT repeat information already covered in inline comments
- You MUST focus on high-level themes and patterns, not individual issues
- You MUST use collapsible `<details>` sections if the summary contains multiple categories or is longer than 5 lines
- You MAY include a brief positive note at the end (1 sentence maximum)
- You SHOULD use this format:
```
**Assessment**: [Approve/Request Changes/Comment]

[Brief high-level summary of review themes - 1-2 sentences]

<details>
<summary>Review Categories</summary>

- **[Category]**: [High-level pattern or theme, not specific issues]
- **[Category]**: [High-level pattern or theme, not specific issues]

</details>

[Optional: Brief positive note - 1 sentence max]
```

## Review Focus Areas

### Code Quality Priorities

Focus on substantive issues that impact code quality, not stylistic preferences:

1. **Functionality**: Does the code work as intended? Are edge cases and error conditions handled?
2. **Readability**: Is the code clear with descriptive names and logical structure?
3. **Maintainability**: Is the code modular, loosely coupled, and easy to modify in the future?
4. **Security**: Are there vulnerabilities or data exposure risks?
5. **Performance**: Are there bottlenecks or inefficient algorithms?
6. **Testing**: Is there comprehensive test coverage including edge cases?
7. **Language Best Practices**: Does it follow language-specific best practices as defined in repository guidelines?
8. **Design Documentation**: Are design decisions, alternatives, and tradeoffs documented?
9. **Dependency Bounds**: Do new or changed dependencies have a supported upper bound to prevent breakage from major version releases?

## Best Practices

### Review Efficiency
- Focus on the most impactful issues first
- Provide specific, actionable feedback
- Be concise and avoid verbose explanations
- Reference project standards and documentation when applicable
- Be educational and constructive

### Communication
- Be respectful and professional
- Assume positive intent from the code author
- Acknowledge good practices
- Explain the reasoning behind feedback
- Provide learning opportunities
- Encourage the developer
- Focus on ideas for improving the system, not criticisms of the author

### Quality Gates
- Ensure critical issues are marked as blocking
- Verify tests meet repository requirements
- Check language-specific compliance as defined in guidelines
- Validate documentation completeness

## Troubleshooting

### Large Pull Requests
If the PR is very large:
- Focus on architectural and design issues first
- Prioritize critical bugs and security issues
- Suggest breaking the PR into smaller pieces if appropriate
- Provide high-level feedback on structure and approach

### Complex Changes
For complex technical changes:
- Take time to understand the full context
- Ask clarifying questions if needed
- Focus on maintainability and future extensibility
- Verify that the solution aligns with project guidelines

### Disagreements
If you disagree with the approach:
- Explain your reasoning clearly
- Reference project guidelines and standards
- Suggest alternative approaches
- Be open to discussion and learning
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto eol=lf
22 changes: 17 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ body:
required: true
- label: "I have searched [./issues](./issues?q=) and there are no duplicates of my issue"
required: true
- type: dropdown
id: sdk-language
attributes:
label: SDK Language
description: Which Strands SDK are you using?
options:
- Python
- TypeScript
validations:
required: true
- type: input
id: strands-version
attributes:
Expand All @@ -28,11 +38,11 @@ body:
validations:
required: true
- type: input
id: python-version
id: language-version
attributes:
label: Python Version
description: Which version of Python are you using?
placeholder: e.g., 3.10.5
label: Language Runtime Version
description: Which version of Python or Node.js are you using?
placeholder: e.g., Python 3.10.5 or Node.js 20.17.0
validations:
required: true
- type: input
Expand All @@ -50,8 +60,10 @@ body:
description: How did you install Strands?
options:
- pip
- npm
- yarn
- pnpm
- git clone
- binary
- other
validations:
required: true
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
blank_issues_enabled: false
contact_links:
- name: Strands Agents SDK Support
# Only one repo has Discussions enabled; point users there.
url: https://github.com/strands-agents/sdk-python/discussions
about: Please ask and answer questions here
- name: Strands Agents SDK Documentation
Expand Down
28 changes: 28 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,41 @@ updates:
dev-dependencies:
patterns:
- "pytest"
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 100
commit-message:
prefix: "ci(typescript)"
cooldown:
default-days: 5
semver-major-days: 30
semver-minor-days: 7
semver-patch-days: 3
groups:
development-dependencies:
dependency-type: "development"
applies-to: version-updates
production-minor:
dependency-type: "production"
applies-to: version-updates
update-types:
- "minor"
- "patch"
- package-ecosystem: "npm"
directory: "/site"
schedule:
interval: "daily"
open-pull-requests-limit: 100
commit-message:
prefix: "ci(docs)"
- package-ecosystem: "pip"
directory: "/strands-py-wasm"
schedule:
interval: "daily"
commit-message:
prefix: "ci(python)"
- package-ecosystem: "github-actions"
directory: "/"
schedule:
Expand Down
Loading
Loading