Files
nvim/claude/settings.local.json
T

268 lines
19 KiB
JSON
Raw Normal View History

2025-11-11 13:21:36 -05:00
{
"permissions": {
"allow": [
"Bash(find:*)",
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(grep:*)",
"Bash(chmod:*)",
"Bash(goreleaser build:*)",
"Bash(go version:*)",
"Bash(goreleaser check:*)",
"Bash(rm:*)",
"mcp__github__create_issue",
"mcp__github__get_issue",
"mcp__github__create_branch",
"Bash(git checkout:*)",
"Bash(git fetch:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git push:*)",
"Bash(task gen:sqlc)",
"mcp__github__update_issue",
"mcp__exa__web_search_exa",
"mcp__godoc__get_doc",
"mcp__github__create_pull_request",
"mcp__github__update_pull_request",
"Bash(gh label:*)",
"Bash(gh pr edit:*)",
"Bash(open https://github.com/sonr-io/sonr/pull/10)",
"Bash(open https://github.com/sonr-io/sonr/pull/12)",
"Bash(rg:*)",
"mcp__github__list_issues",
"mcp__github__list_branches",
"Bash(gh issue:*)",
"Bash(open https://github.com/sonr-io/sonr/pull/17)",
"Bash(mkdir:*)",
"Bash(task gen:templ)",
"WebFetch(domain:templ.guide)",
"Bash(gh api:*)",
"Bash(open https://github.com/sonr-io/sonr/pull/18)",
"Bash(go get:*)",
"Bash(go build:*)",
"Bash(./build/sonr:*)",
"Bash(make lint)",
"Bash(go mod:*)",
"Bash(./build/snrd --help)",
"Bash(ln:*)",
"Bash(timeout:*)",
"Bash(make:*)",
"Bash(pushd:*)",
"Bash(popd:*)",
"Bash(gh pr view:*)",
"mcp__mcp-supermemory-ai__search",
"mcp__mcp-supermemory-ai__addToSupermemory",
"mcp__github__list_notifications",
"Bash(docker build:*)",
"Bash(docker stop:*)",
"Bash(docker rm:*)",
"Bash(docker volume:*)",
"Bash(docker-compose up:*)",
"Bash(docker-compose:*)",
"Bash(docker logs:*)",
"Bash(curl:*)",
"Bash(gh pr create:*)",
"Bash(task serve:ipfs:start:*)",
"Bash(task serve:ipfs:id:*)",
"Bash(docker exec:*)",
"Bash(open https://github.com/sonr-io/sonr/pull/29)",
"mcp__github__search_issues",
"Bash(jq:*)",
"Bash(diff:*)",
"Bash(open:*)",
"WebFetch(domain:pkl-lang.org)",
"Bash(GOOS=linux GOARCH=amd64 make release-hway-build)",
"Bash(CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make release-hway-build)",
"Bash(/project:sessions:session-current)",
"Bash(gh pr list:*)",
"Bash(/project:sessions:session-update \"Added todo list with 8 implementation tasks from Issue #34. Ready to begin proto definition work starting with domain.proto\")",
"Bash(go test:*)",
"mcp__github__get_me",
"Bash(gh repo view:*)",
"Bash(mv:*)",
"Bash(CGO_ENABLED=0 go install ./cmd/snrd)",
"WebFetch(domain:www.w3.org)",
"Bash(go install:*)",
"Bash(ogcd:*)",
"Bash(npm run gen:api-docs:*)",
"Bash(node:*)",
"Bash(ognode:*)",
"Bash(bun run:*)",
"Bash(bun add:*)",
"WebFetch(domain:fumadocs.dev)",
"Bash(pnpm run:*)",
"mcp__github__get_file_contents",
"WebFetch(domain:raw.githubusercontent.com)",
"Bash(trunk check:*)",
"WebFetch(domain:www.rybbit.io)",
"WebFetch(domain:mcaptcha.org)",
"WebFetch(domain:github.com)",
"Bash(forge install:*)",
"Bash(forge build:*)",
"Bash(forge test:*)",
"Bash(npm run build:*)",
"WebFetch(domain:docs.uncloud.run)",
"Bash(gh milestone create:*)",
"Bash(# Move wallet module issues to v0.11.0\nfor issue in 89 90 91 92 93 94 95 96 97 85; do\n gh issue edit $issue --repo sonr-io/sonr --milestone \"\"v0.11.0\"\"\ndone)",
"Bash(go fmt:*)",
"Bash(./build/snrd:*)",
"Bash(snrd testnet start:*)",
"Bash(go list:*)",
"Bash(go doc:*)",
"Bash(./bin/snrd:*)",
"Bash(for:*)",
"Bash(do)",
"Bash(done)",
"Bash(go run:*)",
"Bash(gofmt:*)",
"Bash(go vet:*)",
"Bash(golangci-lint run:*)",
"WebFetch(domain:golangci-lint.run)",
"Bash(golangci-lint:*)",
"Bash(goimports:*)",
"Bash(git restore:*)",
"Bash(GOOS=js GOARCH=wasm go build -o main.wasm main.go)",
"Bash(./scripts/extract_changelog.sh:*)",
"Bash(VERSION_TAG=v1.0.1 BINARY_TYPE=test OS=linux ARCH=amd64 bash -c 'source ./scripts/package_release.sh && echo \"\"\"\"Release type: $RELEASE_TYPE, Version: $VERSION_TAG\"\"\"\"')",
"Bash(VERSION_TAG=v2.0.0 BINARY_TYPE=test OS=linux ARCH=amd64 bash -c 'source ./scripts/package_release.sh && echo \"\"\"\"Major release test: $RELEASE_TYPE\"\"\"\"')",
"Bash(VERSION_TAG=v1.5.0 BINARY_TYPE=test OS=linux ARCH=amd64 bash -c 'source ./scripts/package_release.sh && echo \"\"\"\"Minor release test: $RELEASE_TYPE\"\"\"\"')",
"Bash(zizmor:*)",
"mcp__github__search_repositories",
"mcp__github__list_tags",
"mcp__github__get_commit",
"Bash(yamllint:*)",
"Bash(./scripts/create-network.sh:*)",
"mcp__github__add_issue_comment",
"Bash(go env:*)",
"Bash(TARGET_PLATFORMS=\"darwin/arm64\" VERSION_TAG=\"test\" make release-package-snrd)",
"mcp__github__list_commits",
"mcp__mcp-gopls__ListDocumentSymbols",
"mcp__mcp-gopls__SearchSymbol",
"mcp__cclsp__get_diagnostics",
"mcp__mcp-gopls__GoToDefinition",
"mcp__mcp-gopls__Hover",
"mcp__mcp-gopls__GetDiagnostics",
"mcp__github__delete_file",
"mcp__mcp-gopls__FindReferences",
"mcp__cclsp__find_definition",
"Bash(go clean:*)",
"Bash(sed:*)",
"Bash(cp:*)",
"mcp__exa__crawling_exa",
"mcp__Ref__ref_search_documentation",
"mcp__context7__resolve-library-id",
"mcp__context7__get-library-docs",
"mcp__sequential-thinking__sequentialthinking",
"Bash(python3:*)",
"mcp__filesystem__read_multiple_files",
"mcp__Ref__ref_read_url",
"Bash(--title \"Implement Go client SDK with transaction signing and broadcasting\" )",
"Bash(--assignee prnk28 )",
"Bash(--label \"feature\" )",
"Bash(--body \"## Requirements\n\n- Must provide transaction building and signing capabilities for all custom modules\n- Must support both gRPC and REST endpoints for queries and broadcasting \n- Must include key management and wallet functionality\n- Must have comprehensive examples and documentation\n- Must be distributed as separate Go module with independent versioning\n\n## Context\n\n### Affected Files\n\n#### New Client Package Structure\n- \\`client/go.mod\\` - Independent Go module for the client SDK\n- \\`client/sonr/client.go\\` - Main client interface and configuration\n- \\`client/tx/builder.go\\` - Transaction building utilities \n- \\`client/tx/broadcaster.go\\` - Transaction broadcasting via gRPC/REST/RPC\n- \\`client/keys/keyring.go\\` - Key management and signing operations\n- \\`client/query/client.go\\` - Query client for all modules\n- \\`client/modules/did/client.go\\` - DID-specific transaction builders\n- \\`client/modules/dwn/client.go\\` - DWN-specific transaction builders \n- \\`client/modules/svc/client.go\\` - Service module transaction builders\n- \\`client/modules/ucan/client.go\\` - UCAN module transaction builders\n- \\`client/config/networks.go\\` - Mainnet/testnet configurations\n- \\`client/examples/\\` - Usage examples and CLI tools\n\n#### Integration Points \n- \\`x/did/types/\\` - DID transaction and query types\n- \\`x/dwn/types/\\` - DWN transaction and query types\n- \\`x/svc/types/\\` - Service transaction and query types \n- \\`x/ucan/types/\\` - UCAN transaction and query types\n- \\`api/\\` - Generated protobuf client stubs\n\n### Relevant Documentation\n\n- [Cosmos SDK Transaction Signing](https://docs.cosmos.network/main/learn/advanced/transactions#signing-transactions)\n- [Cosmos SDK gRPC and REST](https://docs.cosmos.network/main/learn/advanced/grpc_rest) \n- [Cosmos SDK Transaction Broadcasting](https://docs.cosmos.network/main/user/run-node/txs)\n- [Cosmos SDK Node Interaction](https://docs.cosmos.network/main/user/run-node/interact-node)\n\n## Acceptance Criteria\n\n- [ ] **Transaction Building**: Create transaction builders for all module types (MsgRegisterDID, MsgCreateRecord, etc.)\n- [ ] **Key Management**: Implement keyring interface with mnemonic generation, import/export, and signing\n- [ ] **Broadcasting Methods**: Support transaction broadcasting via gRPC, REST, and Tendermint RPC endpoints \n- [ ] **Query Interface**: Implement query clients for all custom modules with pagination support\n- [ ] **Network Configuration**: Provide pre-configured mainnet and testnet endpoint settings\n- [ ] **Fee Estimation**: Include gas estimation and fee calculation utilities\n- [ ] **Error Handling**: Comprehensive error types and retry logic for network failures\n- [ ] **WebAuthn Integration**: Support gasless WebAuthn registration transactions\n- [ ] **Examples**: CLI examples demonstrating common operations (create DID, manage records, etc.)\n- [ ] **Unit Tests**: Test coverage > 90% for all client components\n- [ ] **Integration Tests**: End-to-end tests against local testnet for transaction flows\n- [ ] **Documentation**: API docs, integration guides, and migration examples\n- [ ] **Independent Module**: Separate go.mod with semantic versioning for client SDK\")",
"Bash(--title \"feat: implement WebAuthn CLI registration with gasless transactions\" )",
"Bash(--assignee prnk28 )",
"Bash(--label \"feature\" )",
"Bash(--label \"breaking\" )",
"Bash(--body \"## Summary\n\nImplements hybrid CLI + browser WebAuthn registration with gasless transaction support. This comprehensive implementation includes CLI orchestration, browser integration, server infrastructure, and a novel gasless transaction architecture that allows users to create their first decentralized identity without requiring existing tokens.\n\nFixes #160\n\n## 🚀 Key Features Implemented\n\n### WebAuthn CLI Registration Flow\n- **Hybrid Architecture**: CLI spawns local HTTP server, launches browser for WebAuthn ceremony\n- **Channel Synchronization**: Go channel coordination between CLI and server components \n- **Timeout Protection**: 10-second CLI timeout with 15-second server failsafe\n- **Cross-platform**: Browser opening support across operating systems\n\n### Gasless Transaction Architecture\n- **Custom AnteDecorators**: WebAuthn-specific transaction identification and validation\n- **Fee Waiving Logic**: Conditional fee bypass for qualifying WebAuthn registration transactions\n- **Security Validation**: Cryptographic credential validation to prevent abuse\n- **Anti-Replay Protection**: Credential ID uniqueness checking prevents reuse attacks\n\n### Enhanced Protobuf Schemas\n- **WebAuthn Credential Types**: Comprehensive W3C-compliant credential structures\n- **Transaction Messages**: Dedicated \\`MsgRegisterWebAuthnCredential\\` for WebAuthn registration\n- **Query Methods**: \\`GetWebAuthnCredentials\\` and \\`ListWebAuthnCredentials\\` with pagination\n- **Configuration Parameters**: WebAuthn timeout, origins, algorithms, RP settings\n\n## 🔧 Implementation Details\n\n### Core Components\n- \\`app/commands/auth_register.go\\` - CLI orchestration with server lifecycle management\n- \\`app/server/handlers.go\\` - WebAuthn HTTP handlers with embedded HTML templates\n- \\`app/ante/webauthn_decorator.go\\` - Gasless transaction AnteDecorator implementation\n- \\`x/did/types/webauthn.go\\` - WebAuthn credential validation as struct methods\n\n### Security Architecture\n**Gasless Transaction Eligibility:**\n1. Single \\`MsgRegisterWebAuthnCredential\\` message only\n2. Full cryptographic credential validation (ES256/RS256)\n3. Global credential ID uniqueness enforcement\n4. Account existence verification with auto-creation\n5. WebAuthn inherent anti-abuse properties (user presence, device binding)\n\n### Breaking Changes\n- **Protobuf Schema Updates**: Enhanced WebAuthn credential types in \\`proto/did/v1/\\`\n- **New Transaction Types**: \\`MsgRegisterWebAuthnCredential\\` message type\n- **Ante Handler Chain**: Modified transaction processing flow for gasless support\n\n## 🧪 Testing Status\n\n### ✅ Completed Implementation\n- [x] CLI-to-browser WebAuthn workflow with timeout handling\n- [x] Server infrastructure with embedded HTML templates and JavaScript\n- [x] Gasless transaction architecture with security validation\n- [x] Enhanced protobuf schemas with comprehensive WebAuthn support\n- [x] Base64url encoding compliance (RFC 4648 Section 5)\n- [x] Cross-platform browser integration\n- [x] Channel-based CLI/server synchronization\n\n### 🔄 Pending Implementation Tasks\n\nBased on PLAN.md analysis, the following tasks remain for full completion:\n\n#### Final Integration (15% remaining)\n- [ ] \\`x/did/keeper/msg_server.go\\` - Complete RegisterWebAuthnCredential RPC handler implementation\n- [ ] \\`x/did/keeper/query_server.go\\` - Complete GetWebAuthnCredentials and ListWebAuthnCredentials handlers\n- [ ] \\`app/server/handlers.go\\` - Bridge server handlers to existing keeper WebAuthn methods\n- [ ] \\`x/dwn/keeper/keeper.go\\` - Auto-vault creation integration for WebAuthn registration\n\n#### Comprehensive Testing Suite\n- [ ] Server infrastructure extension tests\n- [ ] CLI orchestration and lifecycle tests \n- [ ] WebAuthn challenge generation and validation tests\n- [ ] Browser-server communication API tests\n- [ ] Gasless transaction flow integration tests\n- [ ] Security validation and anti-abuse tests\n- [ ] Cross-platform browser opening tests\n- [ ] Error hand
"WebFetch(domain:pkg.go.dev)",
"mcp__filesystem__directory_tree",
"mcp__filesystem__list_directory",
"Bash(npx wrangler kv key get:*)",
"mcp__cclsp__restart_server",
"mcp__deep-graph__folder-tree-structure",
"mcp__deep-graph__get-code",
"mcp__deep-graph__nodes-semantic-search",
"mcp__deep-graph__find-direct-connections",
"mcp__openmemory__add-memory",
"Bash(CI=true go test -v ./internal/bridge/tasks/... -timeout 15s)",
"Bash(snrd auth:*)",
"Bash(snrd query did:*)",
"Bash(snrd keys:*)",
"Bash(snrd tx bank send:*)",
"Bash(snrd query:*)",
"Bash(snrd tx did:*)",
"Bash(snrd status:*)",
"Bash(snrd tx broadcast:*)",
"Bash(--username \"testuser\" )",
"Bash(--auto-create-vault )",
"Bash(--webauthn-credential '{\n \"\"credential_id\"\": \"\"test_credential_123\"\",\n \"\"public_key\"\": \"\"BEKGAqB8CRk-Z4V-SvtZ5q8DCJYRoJQbAKA_FJhYCWQF7zGUpMRLlEv6-Ap1Zm98Rr-h0mGBzs6TLaLdJQA\"\",\n \"\"attestation_type\"\": \"\"packed\"\",\n \"\"authenticator_data\"\": \"\"dKbqkhPJnC90siSSeSyVIa7BwVu4biAddrVC3ZelgdGFAAAACA\"\",\n \"\"client_data_json\"\": \"\"eyJ0eXBlIjoid2ViYXV0aG4uY3JlYXRlIiwiY2hhbGxlbmdlIjoiVGVzdENoYWxsZW5nZSIsIm9yaWdpbiI6Imh0dHA6Ly9sb2NhbGhvc3Q6ODA4MCIsImNyb3NzT3JpZ2luIjpmYWxzZX0\"\",\n \"\"signature\"\": \"\"MEUCIQCqS_O-X2MjKKUB_r3-_7N5z6IbY4bZ2S7MjF8KHT7JRQIBS0q6j0pQ4OGk5aG7R4g4Aa1e8L5l0ZxJQWZoNFxBNgM\"\",\n \"\"user_present\"\": true,\n \"\"user_verified\"\": true\n }' )",
"Bash(--generate-only )",
"Bash(--chain-id localchain_9000-1)",
"Bash(npm:*)",
"Bash(npx:*)",
"mcp__memory__search_nodes",
"mcp__memory__read_graph",
"mcp__memory__open_nodes",
"mcp__memory__create_entities",
"mcp__memory__create_relations",
"mcp__memory__delete_entities",
"mcp__memory__delete_relations",
"mcp__memory__delete_observations",
"mcp__memory__add_observations",
"Bash(pkill:*)",
"Bash(true)",
"Bash(kubectl get:*)",
"Bash(kubectl logs:*)",
"Bash(kubectl describe:*)",
"Bash(kubectl exec:*)",
"Bash(kubectl wait:*)",
"Bash(snrd genesis:*)",
"Bash(snrd start:*)",
"Bash(snrd init:*)",
"Bash(pnpm install:*)",
"Bash(pnpm ls:*)",
"Bash(biome check:*)",
"Bash(biome migrate:*)",
"Bash(pnpm build:*)",
"Bash(pnpm add:*)",
"Bash(pnpm changeset:*)",
"Bash(gh milestone list:*)",
"Bash(docker ps:*)",
"Bash(CHAIN_ID=\"sonrtest_1-1\" BLOCK_TIME=\"1000ms\" CLEAN=false FORCE_DOCKER=true DOCKER_DETACHED=true bash scripts/test_node.sh)",
"Bash(touch:*)",
"mcp__filesystem__list_allowed_directories",
"Bash(export FORCE_DOCKER=false)",
"Bash(go tool cover:*)",
"Bash(pnpm exec tsc:*)",
"Bash(pnpm lint:*)",
"Bash(pnpm check:*)",
"Bash(pnpm format:*)",
"Bash(pnpm --filter @sonr.io/ui run check --write)",
"Bash(pnpm --filter @sonr.io/ui lint)",
"Bash(pnpm --filter @sonr.io/ui install)",
"Bash(pnpm --filter @sonr.io/ui build)",
"Bash(pnpm --filter @sonr.io/ui check)",
"Bash(FORCE_DOCKER=false make localnet)",
"Bash(gh:*)",
"mcp__memory__aim_create_entities",
"mcp__memory__aim_search_nodes",
"mcp__memory__aim_create_relations",
"Bash(CHAIN_ID=\"sonrtest_1-1\" BLOCK_TIME=\"1000ms\" CLEAN=true FORCE_DOCKER=false bash scripts/test_node.sh)",
"mcp__memory__aim_add_observations",
"Bash(pnpm exec biome check:*)",
"Bash(pnpm --filter @sonr.io/auth lint)",
"Bash(pnpm biome lint:*)",
"Bash(docker compose:*)",
"mcp__shadcn__list_components",
"mcp__shadcn__list_blocks",
"mcp__shadcn__get_component",
"Bash(pnpm:*)",
"Bash(./scripts/cli-docgen.sh:*)",
"Bash(PATH:*)",
"mcp__magic__21st_magic_component_builder",
"Bash(snrd:*)",
"mcp__shadcn__get_block",
"Bash(buf dep update:*)",
"WebSearch",
"Bash(tree:*)",
"Bash(cargo test:*)",
"Bash(devbox run:*)",
"Bash(process-compose:*)",
"Bash(devbox services:*)",
"Bash(bun tsc:*)"
],
"deny": []
},
"enableAllProjectMcpServers": true
}