opencode-skills-antigravity 1.0.26 → 1.0.27

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "updatedAt": "2026-03-28T21:31:15.217Z",
3
+ "updatedAt": "2026-03-28T22:31:13.757Z",
4
4
  "entries": [
5
5
  ".gitignore",
6
6
  "00-andruia-consultant",
@@ -47,19 +47,17 @@ def check_env_vars() -> tuple[bool, list[str]]:
47
47
  return len(missing) == 0, missing
48
48
 
49
49
 
50
- def _format_api_failure(response: httpx.Response) -> dict[str, str]:
51
- """Return sanitized API failure details without echoing sensitive payloads."""
52
- try:
53
- error = response.json().get("error", {})
54
- except ValueError:
55
- error = {}
56
- return {
57
- "status_code": str(response.status_code),
58
- "error_code": str(error.get("code", "?")),
59
- }
50
+ def _phone_lookup_failure_message() -> str:
51
+ """Return a static failure summary for the phone lookup."""
52
+ return "Graph API rejected the phone-number lookup. Review your token, phone number ID, and app permissions."
53
+
54
+
55
+ def _waba_lookup_failure_message() -> str:
56
+ """Return a static failure summary for the WABA lookup."""
57
+ return "Graph API rejected the WABA lookup. Review your WABA ID, token, and assigned assets."
60
58
 
61
59
 
62
- def test_api_connection() -> tuple[bool, dict[str, str]]:
60
+ def test_api_connection() -> tuple[bool, str]:
63
61
  """Test connection to WhatsApp Cloud API."""
64
62
  token = os.environ.get("WHATSAPP_TOKEN", "")
65
63
  phone_id = os.environ.get("PHONE_NUMBER_ID", "")
@@ -73,27 +71,19 @@ def test_api_connection() -> tuple[bool, dict[str, str]]:
73
71
  )
74
72
 
75
73
  if response.status_code == 200:
76
- data = response.json()
77
- return True, {
78
- "phone": str(data.get("display_phone_number", "N/A")),
79
- "name": str(data.get("verified_name", "N/A")),
80
- "status": str(data.get("code_verification_status", "N/A")),
81
- "quality": str(data.get("quality_rating", "N/A")),
82
- }
74
+ return True, "Phone-number endpoint reachable."
83
75
 
84
- return False, _format_api_failure(response)
76
+ return False, _phone_lookup_failure_message()
85
77
 
86
78
  except httpx.ConnectError:
87
- return False, {"reason": "Connection failed. Check your internet connection."}
79
+ return False, "Connection failed. Check your internet connection."
88
80
  except httpx.TimeoutException:
89
- return False, {"reason": "Request timed out after 10 seconds."}
81
+ return False, "Request timed out after 10 seconds."
90
82
  except Exception as exc:
91
- return False, {
92
- "reason": f"Unexpected {exc.__class__.__name__} while contacting the Graph API."
93
- }
83
+ return False, f"Unexpected {exc.__class__.__name__} while contacting the Graph API."
94
84
 
95
85
 
96
- def test_waba_access() -> tuple[bool, dict[str, str]]:
86
+ def test_waba_access() -> tuple[bool, str]:
97
87
  """Test access to WhatsApp Business Account."""
98
88
  token = os.environ.get("WHATSAPP_TOKEN", "")
99
89
  waba_id = os.environ.get("WABA_ID", "")
@@ -106,16 +96,12 @@ def test_waba_access() -> tuple[bool, dict[str, str]]:
106
96
  )
107
97
 
108
98
  if response.status_code == 200:
109
- data = response.json()
110
- count = len(data.get("data", []))
111
- return True, {"count": str(count)}
99
+ return True, "WABA phone-numbers endpoint reachable."
112
100
 
113
- return False, _format_api_failure(response)
101
+ return False, _waba_lookup_failure_message()
114
102
 
115
103
  except Exception as exc:
116
- return False, {
117
- "reason": f"Unexpected {exc.__class__.__name__} while checking WABA access."
118
- }
104
+ return False, f"Unexpected {exc.__class__.__name__} while checking WABA access."
119
105
 
120
106
 
121
107
  def main():
@@ -134,6 +120,7 @@ def main():
134
120
  print("=" * 50)
135
121
  print("WhatsApp Cloud API - Configuration Validator")
136
122
  print("=" * 50)
123
+ print("Detailed API payloads are intentionally omitted to protect sensitive configuration data.")
137
124
  print()
138
125
 
139
126
  all_ok = True
@@ -157,37 +144,22 @@ def main():
157
144
 
158
145
  # Check 2: API connection
159
146
  print("[2/3] Testing API connection (Phone Number)...")
160
- api_ok, api_details = test_api_connection()
147
+ api_ok, api_message = test_api_connection()
161
148
  if api_ok:
162
- print(" OK - Connected successfully")
163
- print(f" Phone: {api_details['phone']}")
164
- print(f" Name: {api_details['name']}")
165
- print(f" Status: {api_details['status']}")
166
- print(f" Quality: {api_details['quality']}")
149
+ print(f" OK - {api_message}")
167
150
  else:
168
- if "reason" in api_details:
169
- print(f" FAIL - {api_details['reason']}")
170
- else:
171
- print(" FAIL - API request failed.")
172
- print(f" HTTP Status: {api_details['status_code']}")
173
- print(f" Error Code: {api_details['error_code']}")
151
+ print(f" FAIL - {api_message}")
174
152
  all_ok = False
175
153
 
176
154
  print()
177
155
 
178
156
  # Check 3: WABA access
179
157
  print("[3/3] Testing WABA access...")
180
- waba_ok, waba_details = test_waba_access()
158
+ waba_ok, waba_message = test_waba_access()
181
159
  if waba_ok:
182
- print(" OK - WABA accessible")
183
- print(f" Phone Numbers Found: {waba_details['count']}")
160
+ print(f" OK - {waba_message}")
184
161
  else:
185
- if "reason" in waba_details:
186
- print(f" FAIL - {waba_details['reason']}")
187
- else:
188
- print(" FAIL - API request failed.")
189
- print(f" HTTP Status: {waba_details['status_code']}")
190
- print(f" Error Code: {waba_details['error_code']}")
162
+ print(f" FAIL - {waba_message}")
191
163
  all_ok = False
192
164
 
193
165
  print()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-antigravity",
3
- "version": "1.0.26",
3
+ "version": "1.0.27",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps Antigravity Awesome Skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",