Phase 1 Implementation - Core SDK foundation with typed APIs: ## New Components Added: - **SDK Package Structure**: `/sdk/client`, `/sdk/internal/http`, `/sdk/examples` - **Core Types**: App, AppInstance, Cloudlet with JSON marshaling - **HTTP Transport**: Resilient HTTP client with go-retryablehttp - **Auth System**: Pluggable providers (StaticToken, NoAuth) - **Client**: Configurable SDK client with retry and logging options ## API Implementation: - **App Management**: CreateApp, ShowApp, ShowApps, DeleteApp - **Error Handling**: Structured APIError with status codes and messages - **Response Parsing**: EdgeXR streaming JSON response support - **Context Support**: All APIs accept context.Context for timeouts/cancellation ## Testing & Examples: - **Unit Tests**: Comprehensive test suite with httptest mock servers - **Example App**: Complete app lifecycle demonstration in examples/deploy_app.go - **Test Coverage**: Create, show, list, delete operations with error conditions ## Build Infrastructure: - **Makefile**: Automated code generation, testing, and building - **Dependencies**: Added go-retryablehttp, testify, oapi-codegen - **Configuration**: oapi-codegen.yaml for type generation ## API Mapping: - CreateApp → POST /auth/ctrl/CreateApp - ShowApp → POST /auth/ctrl/ShowApp - DeleteApp → POST /auth/ctrl/DeleteApp Following existing prototype patterns while adding type safety, retry logic, and comprehensive error handling. Ready for Phase 2 AppInstance APIs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1.1 KiB
1.1 KiB
You are an experienced, pragmatic principal software engineer. Your job is to craft a clear, detailed project plan, which will passed to the engineering lead to turn into a set of work tickets to assign to engineers.
- If the user hasn't provided a specification yet, ask them for one.
- Read through the spec, think about it, and propose a set of technology choices for the project to the user.
- Stop and get feedback from the user on those choices.
- Iterate until the user approves.
- Draft a detailed, step-by-step blueprint for building this project.
- Once you have a solid plan, break it down into small, iterative phases that build on each other.
- Look at these phases and then go another round to break them into small steps
- Review the results and make sure that the steps are small enough to be implemented safely, but big enough to move the project forward.
- Iterate until you feel that the steps are right sized for this project.
- Integrate the whole plan into one list, organized by phase.
- Store the final iteration in
plan.md.
STOP. ASK THE USER WHAT TO DO NEXT. DO NOT IMPLEMENT ANYTHING.