claude-all-config 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/LICENSE.md +70 -0
- package/README.md +133 -0
- package/VERSION +1 -0
- package/agents/accessibility-reviewer.md +96 -0
- package/agents/ai-prompt-optimizer.md +94 -0
- package/agents/api-tester.md +102 -0
- package/agents/code-generator.md +94 -0
- package/agents/code-reviewer.md +47 -0
- package/agents/component-generator.md +102 -0
- package/agents/doc-generator.md +91 -0
- package/agents/migration-generator.md +94 -0
- package/agents/performance-analyzer.md +90 -0
- package/agents/proactive-mode.md +91 -0
- package/agents/readme-generator.md +101 -0
- package/agents/security-auditor.md +86 -0
- package/agents/terraform-generator.md +94 -0
- package/agents/test-generator.md +76 -0
- package/bin/agentrouter.json +36 -0
- package/bin/ai-chat +20 -0
- package/bin/antigravity.json +76 -0
- package/bin/api-manager +340 -0
- package/bin/claude-launcher +19 -0
- package/bin/claude-master +15 -0
- package/bin/claude_master.py +295 -0
- package/bin/cohere.json +7 -0
- package/bin/deepseek.json +44 -0
- package/bin/gemini.json +56 -0
- package/bin/glm.json +21 -0
- package/bin/groq.json +41 -0
- package/bin/minimax.json +26 -0
- package/bin/mistral.json +7 -0
- package/bin/moonshot.json +7 -0
- package/bin/ollama.json +36 -0
- package/bin/openai.json +46 -0
- package/bin/openrouter.json +38 -0
- package/bin/perplexity.json +12 -0
- package/bin/qwen.json +7 -0
- package/bin/switch-provider +73 -0
- package/bin/test.json +7 -0
- package/bin/xai.json +41 -0
- package/claude-all +2707 -0
- package/claude-config.json +340 -0
- package/claude-suite/REFACTORING_SUMMARY.md +88 -0
- package/claude-suite/auth/.antigravity_proxy.py +78 -0
- package/claude-suite/auth/__pycache__/openai_auth.cpython-312.pyc +0 -0
- package/claude-suite/auth/gemini_auth.py +80 -0
- package/claude-suite/auth/openai_auth.py +138 -0
- package/claude-suite/backups/claude-all-before-refactor +1075 -0
- package/claude-suite/backups/claude-all.backup +840 -0
- package/claude-suite/backups/claude-all.original +840 -0
- package/claude-suite/models/add-model-manual.sh +588 -0
- package/claude-suite/models/add-model.sh +114 -0
- package/claude-suite/models/model-switcher.sh +69 -0
- package/claude-suite/providers/claude-glm +89 -0
- package/claude-suite/providers/claude-glm-wrapper.sh +55 -0
- package/claude-suite/providers/claude-minimax +12 -0
- package/claude-suite/providers/claude-smart +132 -0
- package/claude-suite/providers/xai_chat.sh +56 -0
- package/claude-suite/utils/__pycache__/claude_master.cpython-312.pyc +0 -0
- package/claude-suite/utils/antigravity_proxy_server.py +168 -0
- package/claude-suite/utils/claude-all-help.txt +83 -0
- package/claude-suite/utils/claude_master.py +408 -0
- package/commands/brainstorm.md +5 -0
- package/commands/execute-plan.md +5 -0
- package/commands/write-plan.md +5 -0
- package/docs/ANTIGRAVITY-SETUP.md +176 -0
- package/docs/AUTH_CREDENTIALS.md +54 -0
- package/docs/NPM-INSTALLATION.md +166 -0
- package/hooks/hooks.json +15 -0
- package/hooks/run-hook.cmd +19 -0
- package/hooks/session-start.sh +52 -0
- package/install.sh +155 -0
- package/mcp.json +34 -0
- package/model/perplexity.json +12 -0
- package/package.json +69 -0
- package/plugins/README.md +47 -0
- package/plugins/installed_plugins.json +317 -0
- package/plugins/known_marketplaces.json +10 -0
- package/plugins/marketplace-info/marketplace.json +517 -0
- package/postinstall.js +100 -0
- package/scripts/antigravity_proxy_server.py +168 -0
- package/scripts/get_gemini_api_key.py +96 -0
- package/scripts/setup_antigravity_auth.py +171 -0
- package/skills/api-development/SKILL.md +11 -0
- package/skills/api-development/openapi/api-documentation.yaml +108 -0
- package/skills/brainstorming/SKILL.md +54 -0
- package/skills/code-quality/SKILL.md +196 -0
- package/skills/condition-based-waiting/SKILL.md +120 -0
- package/skills/condition-based-waiting/example.ts +158 -0
- package/skills/database-development/SKILL.md +11 -0
- package/skills/database-development/migrations/migration.template.sql +49 -0
- package/skills/defense-in-depth/SKILL.md +127 -0
- package/skills/deployment/SKILL.md +11 -0
- package/skills/deployment/ci-cd/github-actions.yml +95 -0
- package/skills/deployment/docker/Dockerfile.template +39 -0
- package/skills/dispatching-parallel-agents/SKILL.md +180 -0
- package/skills/documentation-generation/SKILL.md +8 -0
- package/skills/documentation-generation/templates/README.template.md +60 -0
- package/skills/error-handling/SKILL.md +267 -0
- package/skills/executing-plans/SKILL.md +76 -0
- package/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/frontend-design/frontend-design/SKILL.md +42 -0
- package/skills/integration-testing/SKILL.md +13 -0
- package/skills/integration-testing/examples/contract-test.py +317 -0
- package/skills/integration-testing/examples/e2e-test.js +147 -0
- package/skills/integration-testing/examples/test-isolation.md +94 -0
- package/skills/logging-monitoring/SKILL.md +66 -0
- package/skills/mobile-development/SKILL.md +11 -0
- package/skills/mobile-development/responsive/responsive.css +80 -0
- package/skills/performance-optimization/SKILL.md +9 -0
- package/skills/performance-optimization/profiling/profile.template.js +21 -0
- package/skills/receiving-code-review/SKILL.md +209 -0
- package/skills/refactoring/SKILL.md +11 -0
- package/skills/refactoring/code-smells/common-smells.md +115 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +146 -0
- package/skills/root-cause-tracing/SKILL.md +174 -0
- package/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/skills/security-review/SKILL.md +11 -0
- package/skills/security-review/checklists/owasp-checklist.md +31 -0
- package/skills/sharing-skills/SKILL.md +194 -0
- package/skills/subagent-driven-development/SKILL.md +240 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +20 -0
- package/skills/subagent-driven-development/implementer-prompt.md +78 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +295 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/test-driven-development/SKILL.md +364 -0
- package/skills/testing-anti-patterns/SKILL.md +302 -0
- package/skills/testing-skills-with-subagents/SKILL.md +387 -0
- package/skills/testing-skills-with-subagents/examples/CLAUDE_MD_TESTING.md +189 -0
- package/skills/ui-ux-review/SKILL.md +13 -0
- package/skills/ui-ux-review/checklists/ux-heuristics.md +61 -0
- package/skills/using-git-worktrees/SKILL.md +213 -0
- package/skills/using-superpowers/SKILL.md +101 -0
- package/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/writing-plans/SKILL.md +116 -0
- package/skills/writing-skills/SKILL.md +622 -0
- package/skills/writing-skills/anthropic-best-practices.md +1150 -0
- package/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/skills/writing-skills/persuasion-principles.md +187 -0
- package/update.sh +36 -0
- package/utils/check-superpowers.sh +114 -0
- package/utils/claude-branding.md +166 -0
- package/utils/config.js +185 -0
- package/utils/custom-claude-config.sh +89 -0
- package/utils/custom-claude-hooks.md +129 -0
- package/utils/custom-claude-lib.js +222 -0
- package/utils/customize-claude-ui.sh +162 -0
- package/utils/fix-claude-integration.sh +133 -0
- package/utils/help.js +125 -0
- package/utils/install-curl.ps1 +135 -0
- package/utils/install-curl.sh +525 -0
- package/utils/install-superpowers.js +411 -0
- package/utils/install.js +298 -0
- package/utils/install.sh +182 -0
- package/utils/postinstall.js +63 -0
- package/utils/rename-claude.sh +96 -0
- package/utils/uninstall-superpowers.js +273 -0
- package/utils/uninstall.ps1 +136 -0
- package/utils/uninstall.sh +163 -0
- package/utils/update.sh +160 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import json
|
|
3
|
+
import sys
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
# Configure logging to suppress stderr output from libraries
|
|
7
|
+
logging.getLogger('google_auth_oauthlib').setLevel(logging.ERROR)
|
|
8
|
+
logging.getLogger('werkzeug').setLevel(logging.ERROR)
|
|
9
|
+
|
|
10
|
+
try:
|
|
11
|
+
from google_auth_oauthlib.flow import InstalledAppFlow
|
|
12
|
+
except ImportError:
|
|
13
|
+
print("Error: 'google-auth-oauthlib' is required.")
|
|
14
|
+
print("Run: pip install google-auth-oauthlib")
|
|
15
|
+
sys.exit(1)
|
|
16
|
+
|
|
17
|
+
# Scopes required for Vertex AI
|
|
18
|
+
SCOPES = ['https://www.googleapis.com/auth/cloud-platform']
|
|
19
|
+
# Standard location for ADC
|
|
20
|
+
CREDENTIALS_PATH = os.path.expanduser('~/.config/gcloud/application_default_credentials.json')
|
|
21
|
+
|
|
22
|
+
def main():
|
|
23
|
+
print("\n\033[1;34mGoogle Cloud Authentication Helper (No gcloud required)\033[0m")
|
|
24
|
+
|
|
25
|
+
# 1. Client Secret
|
|
26
|
+
client_config = None
|
|
27
|
+
if len(sys.argv) > 1 and os.path.exists(sys.argv[1]):
|
|
28
|
+
client_config = sys.argv[1]
|
|
29
|
+
else:
|
|
30
|
+
print("\nTo login, you need an OAuth 2.0 Client ID (Desktop App).")
|
|
31
|
+
print("1. Go to https://console.cloud.google.com/apis/credentials")
|
|
32
|
+
print("2. Create Credentials > OAuth client ID > Application type: Desktop app")
|
|
33
|
+
print("3. Download the JSON file.")
|
|
34
|
+
print("-----------------------------------------------------")
|
|
35
|
+
path = input("Enter path to your client_secret.json: ").strip()
|
|
36
|
+
# Remove quotes if user added them
|
|
37
|
+
path = path.strip("'" ).strip('"')
|
|
38
|
+
|
|
39
|
+
if os.path.exists(path):
|
|
40
|
+
client_config = path
|
|
41
|
+
else:
|
|
42
|
+
print(f"\033[1;31mError: File not found at {path}\033[0m")
|
|
43
|
+
return
|
|
44
|
+
|
|
45
|
+
# 2. Perform Auth
|
|
46
|
+
try:
|
|
47
|
+
print("\n\033[1;33mStarting terminal-based authentication...\033[0m")
|
|
48
|
+
print("(Copy the link below to your browser if it doesn't open automatically)")
|
|
49
|
+
flow = InstalledAppFlow.from_client_secrets_file(client_config, SCOPES)
|
|
50
|
+
# run_console for headless/terminal environments
|
|
51
|
+
creds = flow.run_console()
|
|
52
|
+
except Exception as e:
|
|
53
|
+
print(f"\nError during auth: {e}")
|
|
54
|
+
print("\n\033[1;33mTrying alternative method...\033[0m")
|
|
55
|
+
try:
|
|
56
|
+
# Try with open_browser=False
|
|
57
|
+
flow = InstalledAppFlow.from_client_secrets_file(client_config, SCOPES)
|
|
58
|
+
creds = flow.run_local_server(port=0, open_browser=False)
|
|
59
|
+
except Exception as e2:
|
|
60
|
+
print(f"\nError during auth: {e2}")
|
|
61
|
+
print("\n\033[1;31mAuthentication failed. Please ensure you have internet connection.\033[0m")
|
|
62
|
+
return
|
|
63
|
+
|
|
64
|
+
# 3. Save as ADC
|
|
65
|
+
# ADC format for user credentials
|
|
66
|
+
adc_data = {
|
|
67
|
+
"client_id": flow.client_config['client_id'],
|
|
68
|
+
"client_secret": flow.client_config['client_secret'],
|
|
69
|
+
"refresh_token": creds.refresh_token,
|
|
70
|
+
"type": "authorized_user"
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
os.makedirs(os.path.dirname(CREDENTIALS_PATH), exist_ok=True)
|
|
74
|
+
with open(CREDENTIALS_PATH, 'w') as f:
|
|
75
|
+
json.dump(adc_data, f, indent=2)
|
|
76
|
+
|
|
77
|
+
print(f"\n\033[1;32mSuccess! Credentials saved to: {CREDENTIALS_PATH}\033[0m")
|
|
78
|
+
|
|
79
|
+
if __name__ == '__main__':
|
|
80
|
+
main()
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
import json
|
|
4
|
+
import webbrowser
|
|
5
|
+
import requests
|
|
6
|
+
import hashlib
|
|
7
|
+
import base64
|
|
8
|
+
import secrets
|
|
9
|
+
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
10
|
+
from urllib.parse import urlparse, parse_qs
|
|
11
|
+
import threading
|
|
12
|
+
|
|
13
|
+
# Configuration
|
|
14
|
+
# This Client ID is widely used/found in OpenAI's public SDKs or assumed for CLI apps.
|
|
15
|
+
# If this fails, it means OpenAI has restricted it or rotated it.
|
|
16
|
+
CLIENT_ID = "pdlLIX2Y72MIl2rhLhTE9VV9bN905kBh" # Common Auth0 Client ID for OpenAI
|
|
17
|
+
AUTH_DOMAIN = "auth0.openai.com"
|
|
18
|
+
REDIRECT_URI = "http://localhost:3000/callback"
|
|
19
|
+
SCOPE = "openid profile email offline_access"
|
|
20
|
+
AUDIENCE = "https://api.openai.com/v1"
|
|
21
|
+
|
|
22
|
+
CREDENTIALS_PATH = os.path.expanduser('~/.config/openai/credentials.json')
|
|
23
|
+
|
|
24
|
+
class OAuthCallbackHandler(BaseHTTPRequestHandler):
|
|
25
|
+
code = None
|
|
26
|
+
|
|
27
|
+
def do_GET(self):
|
|
28
|
+
query = urlparse(self.path).query
|
|
29
|
+
params = parse_qs(query)
|
|
30
|
+
|
|
31
|
+
if 'code' in params:
|
|
32
|
+
OAuthCallbackHandler.code = params['code'][0]
|
|
33
|
+
self.send_response(200)
|
|
34
|
+
self.send_header('Content-type', 'text/html')
|
|
35
|
+
self.end_headers()
|
|
36
|
+
self.wfile.write(b"<html><body><h1>Login Successful!</h1><p>You can close this tab and return to the terminal.</p></body></html>")
|
|
37
|
+
else:
|
|
38
|
+
self.send_response(400)
|
|
39
|
+
self.wfile.write(b"Missing code parameter.")
|
|
40
|
+
|
|
41
|
+
def log_message(self, format, *args):
|
|
42
|
+
return # Suppress logging
|
|
43
|
+
|
|
44
|
+
def generate_pkce_pair():
|
|
45
|
+
verifier = secrets.token_urlsafe(32)
|
|
46
|
+
digest = hashlib.sha256(verifier.encode()).digest()
|
|
47
|
+
challenge = base64.urlsafe_b64encode(digest).decode().rstrip('=')
|
|
48
|
+
return verifier, challenge
|
|
49
|
+
|
|
50
|
+
def main():
|
|
51
|
+
print("\n\033[1;35mOpenAI OAuth Helper (Experimental)\033[0m")
|
|
52
|
+
|
|
53
|
+
try:
|
|
54
|
+
# PKCE
|
|
55
|
+
code_verifier, code_challenge = generate_pkce_pair()
|
|
56
|
+
|
|
57
|
+
# Start Listener with error handling
|
|
58
|
+
try:
|
|
59
|
+
server = HTTPServer(('localhost', 3000), OAuthCallbackHandler)
|
|
60
|
+
server_thread = threading.Thread(target=server.handle_request)
|
|
61
|
+
server_thread.start()
|
|
62
|
+
except OSError as e:
|
|
63
|
+
print(f"\n\033[1;31mError: Failed to start callback server: {e}\033[0m")
|
|
64
|
+
print("Please make sure port 3000 is available.")
|
|
65
|
+
return
|
|
66
|
+
|
|
67
|
+
# Construct Auth URL
|
|
68
|
+
auth_url = (
|
|
69
|
+
f"https://{AUTH_DOMAIN}/authorize?"
|
|
70
|
+
f"response_type=code&"
|
|
71
|
+
f"client_id={CLIENT_ID}&"
|
|
72
|
+
f"redirect_uri={REDIRECT_URI}&"
|
|
73
|
+
f"scope={SCOPE}&"
|
|
74
|
+
f"audience={AUDIENCE}&"
|
|
75
|
+
f"code_challenge={code_challenge}&"
|
|
76
|
+
f"code_challenge_method=S256"
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
print("\n1. Opening browser for login...")
|
|
80
|
+
print(f"URL: {auth_url}")
|
|
81
|
+
|
|
82
|
+
try:
|
|
83
|
+
webbrowser.open(auth_url)
|
|
84
|
+
except Exception as e:
|
|
85
|
+
print(f"\n\033[1;33mWarning: Could not open browser automatically: {e}\033[0m")
|
|
86
|
+
print("Please manually open the URL above in your browser.")
|
|
87
|
+
|
|
88
|
+
print("\n2. Waiting for callback...")
|
|
89
|
+
server_thread.join(timeout=120) # 2 minute timeout
|
|
90
|
+
|
|
91
|
+
if not OAuthCallbackHandler.code:
|
|
92
|
+
print("\n\033[1;31mError: Failed to capture authorization code or timeout expired.\033[0m")
|
|
93
|
+
print("Please try again and make sure to complete the authentication within 2 minutes.")
|
|
94
|
+
return
|
|
95
|
+
|
|
96
|
+
print("\n3. Exchanging code for tokens...")
|
|
97
|
+
|
|
98
|
+
token_url = f"https://{AUTH_DOMAIN}/oauth/token"
|
|
99
|
+
payload = {
|
|
100
|
+
"grant_type": "authorization_code",
|
|
101
|
+
"client_id": CLIENT_ID,
|
|
102
|
+
"code_verifier": code_verifier,
|
|
103
|
+
"code": OAuthCallbackHandler.code,
|
|
104
|
+
"redirect_uri": REDIRECT_URI,
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
try:
|
|
108
|
+
response = requests.post(token_url, json=payload, timeout=30)
|
|
109
|
+
response.raise_for_status() # Raise exception for HTTP errors
|
|
110
|
+
except requests.exceptions.RequestException as e:
|
|
111
|
+
print(f"\n\033[1;31mError: Failed to exchange code for tokens: {e}\033[0m")
|
|
112
|
+
if hasattr(e, 'response') and e.response is not None:
|
|
113
|
+
print(f"Response: {e.response.text}")
|
|
114
|
+
return
|
|
115
|
+
|
|
116
|
+
tokens = response.json()
|
|
117
|
+
|
|
118
|
+
# Save credentials with error handling
|
|
119
|
+
try:
|
|
120
|
+
os.makedirs(os.path.dirname(CREDENTIALS_PATH), exist_ok=True)
|
|
121
|
+
with open(CREDENTIALS_PATH, 'w') as f:
|
|
122
|
+
json.dump(tokens, f, indent=2)
|
|
123
|
+
|
|
124
|
+
print(f"\n\033[1;32mSuccess! Access Token acquired.\033[0m")
|
|
125
|
+
print(f"Saved to: {CREDENTIALS_PATH}")
|
|
126
|
+
print("Note: This token is a standard JWT access token, not a 'sk-' API key.")
|
|
127
|
+
print("Use it as a Bearer token in headers.")
|
|
128
|
+
except IOError as e:
|
|
129
|
+
print(f"\n\033[1;33mWarning: Could not save credentials to file: {e}\033[0m")
|
|
130
|
+
print("However, the token was successfully acquired.")
|
|
131
|
+
print("Access Token:", tokens.get('access_token', 'Not available'))
|
|
132
|
+
|
|
133
|
+
except Exception as e:
|
|
134
|
+
print(f"\n\033[1;31mUnexpected error during authentication: {e}\033[0m")
|
|
135
|
+
return
|
|
136
|
+
|
|
137
|
+
if __name__ == "__main__":
|
|
138
|
+
main()
|