Implements the foundational gRPC client class with: - Lazy ClientChannel initialization with proper credentials - DeliveryServiceClient lazy initialization - Authentication via Bearer token in gRPC metadata - CallOptions builder with token injection - gRPC error to ApiError mapping (status codes -> HTTP equivalents) - Token refresh on UNAUTHENTICATED errors (single retry) - Proper channel shutdown/terminate methods The core _executeWithAuth and _executeCommandWithAuth methods provide the foundation for query and command methods in subsequent subtasks. Co-Authored-By: Claude <noreply@anthropic.com>
39 lines
2.6 KiB
JSON
39 lines
2.6 KiB
JSON
{
|
|
"sandbox": {
|
|
"enabled": true,
|
|
"autoAllowBashIfSandboxed": true
|
|
},
|
|
"permissions": {
|
|
"defaultMode": "acceptEdits",
|
|
"allow": [
|
|
"Read(./**)",
|
|
"Write(./**)",
|
|
"Edit(./**)",
|
|
"Glob(./**)",
|
|
"Grep(./**)",
|
|
"Read(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Write(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Edit(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Glob(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Grep(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Read(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/.auto-claude/specs/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Write(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/.auto-claude/specs/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Edit(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/worktrees/tasks/002-migrate-api-routes-from-http-to-grpc/.auto-claude/specs/002-migrate-api-routes-from-http-to-grpc/**)",
|
|
"Read(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/**)",
|
|
"Write(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/**)",
|
|
"Edit(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/**)",
|
|
"Glob(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/**)",
|
|
"Grep(/Users/mathias/Documents/workspaces/plan-b/ionic-planb-logistic-app-flutter/.auto-claude/**)",
|
|
"Bash(*)",
|
|
"WebFetch(*)",
|
|
"WebSearch(*)",
|
|
"mcp__context7__resolve-library-id(*)",
|
|
"mcp__context7__get-library-docs(*)",
|
|
"mcp__graphiti-memory__search_nodes(*)",
|
|
"mcp__graphiti-memory__search_facts(*)",
|
|
"mcp__graphiti-memory__add_episode(*)",
|
|
"mcp__graphiti-memory__get_episodes(*)",
|
|
"mcp__graphiti-memory__get_entity_edge(*)"
|
|
]
|
|
}
|
|
} |