feat: add managed tool catalog and build environments - #397
Conversation
# Conflicts: # lambda/v2-orchestrator/index.js
jeromevdl
left a comment
There was a problem hiding this comment.
This feature is quite complex and there is legitimately complexity in the PR to handle this, but the PR adds 20-30% incidental complexity on top of it because of duplicated subsystems:
- recipe v1 vs v2
- 3 different ways to evaluate if environment is ready:
readPublishedEnvironment,resolveEnvironmentSnapshot,publishedBase - one stack for environments, one for tools very close to the environment (createStore, createHandler, startBuild, createStatusHandler, ... in index/status/store vs tools-index/tools-status/tools-store, both modeled as: a versioned entity with DRAFT/BUILDING/READY/PUBLISHED-style revisions, built via CodeBuild, whose status is reconciled by a polling handler, fronted by a CRUD API handler backed by a DynamoDB store. That shared lifecycle is implemented twice. I've compared the shapes and signatures here, not diffed the two stacks line by line, so I can't put a precise "X% identical" number on it.
Can you check what could be merged (schema v1/v2 ? duplications of env and tools ? one environment resolution function ?) and maybe others to simplify / reduce the amount of code?
|
Also, agents/index.js:79-80,107-108 (fetchRuntimeCapabilities, verifyMcpServers) still hit the core AGENTCORE_RUNTIME_ARN, never a project's managed environment. |
|
@jeromevdl Addressed the |
|
@jeromevdl I worked through the duplicated-subsystems change request:
I kept the two domain state machines explicit because their publication semantics differ materially: environments supersede revisions and provision/verify AgentCore runtimes, while tools maintain version aliases/recommendations/dependency graphs and finish at image readiness. Merging those layers would replace visible domain rules with callback/configuration branching rather than reducing complexity. |
Summary
Tool ingestion
Publisher verifiedevidence fromPlatform pinnedimportsCompatibility
Verification
npm run format:checknpm run lintnpm run secretlintnpm run sdk:checknpm --prefix frontend run typechecknpm --prefix frontend run buildterraform fmt -recursive -check terraformTerraform was not planned or applied against AWS. The deployed-stack workflow and .NET catalog example are documented in
docs/development/testing.md.Closes #390