Skip to content

Instantly share code, notes, and snippets.

View zeroasterisk's full-sized avatar

alan blount zeroasterisk

View GitHub Profile
@zeroasterisk
zeroasterisk / google_genai_design.md
Created April 11, 2026 19:52
OpenClaw Google Gen AI SDK Provider Design

Design Document: google-genai Model Provider for OpenClaw

1. Background & Findings

A review of the openclaw/openclaw repository reveals numerous open issues related to the existing google-vertex provider (e.g., #48033, #49039, #49191, #56253).

The Core Bug: The new @google/genai SDK is used downstream (via @mariozechner/pi-ai). Currently, when Application Default Credentials (ADC) are detected, a sentinel value ("<authenticated>") is returned. OpenClaw blindly treats this string as a literal API key and passes it down. The @google/genai SDK constructor sees a truthy apiKey, assumes it should use the Gemini Developer API, and sends x-goog-api-key: <authenticated>, which immediately results in a 401 UNAUTHENTICATED from Vertex AI.

There is a clear need for a unified google-genai provider that gracefully handles both standard API keys and IAM/Vertex ADC workflows, mapping cleanly to the @google/genai SDK's design.

@zeroasterisk
zeroasterisk / SKILL.md
Last active April 5, 2026 03:48
Video Tour Skill for OpenClaw — Ken Burns narrated tours from screenshots + TTS
name tour
description Generate narrated video tours of completed work — Ken Burns over real captures, TTS narration, posted to Discord.

Tour Skill

Show what was built. Don't just describe it.


@zeroasterisk
zeroasterisk / vertex-audit.md
Created March 30, 2026 18:16
ADK Vertex AI Mentions Audit — All Languages (py, go, java, ts, docs)

ADK Vertex AI Mentions Audit — All Languages

Date: 2026-03-30

Repos audited: adk-python, adk-go, adk-java, adk-js, adk-docs

Method: grep -rni 'vertex' across all source/doc files

Summary Table

@zeroasterisk
zeroasterisk / vertex-audit.md
Created March 30, 2026 18:12
ADK Vertex AI Mentions Audit - All Languages

ADK Vertex AI Mentions Audit — All Languages

Date: 2026-03-30

Repos audited: adk-python, adk-go, adk-java, adk-js, adk-docs

Method: grep -rni 'vertex' across all source/doc files

Summary Table

@zeroasterisk
zeroasterisk / a2ui-openclaw-analysis.md
Last active March 3, 2026 19:29
A2UI Integration in OpenClaw: Usage Analysis & v0.9 Upgrade Path
@zeroasterisk
zeroasterisk / SKILL.md
Created February 14, 2026 04:06
CUJ Screenshots Skill - Capture Critical User Journey screenshots and GIFs from web apps using headless Chromium
name cuj-screenshots
description Capture Critical User Journey (CUJ) screenshots and GIFs from web apps using headless Chromium. Use when you need to create visual demos, verify UI changes, or document user flows.

CUJ Screenshots Skill

Automate visual documentation of web app user journeys using headless browser automation.

When to Use This

import fnmatch
import os
import re
class CodeToMarkdown:
def __init__(self, output_filename, src_folders, exclusion_patterns, inclusion_patterns):
self.output_filename = output_filename
self.src_folders = src_folders
self.exclusion_patterns = exclusion_patterns
@zeroasterisk
zeroasterisk / spec.json
Created March 22, 2023 01:40
Radar Chart Vega spec from Tue Mar 21 2023
{
"$schema": "https://vega.github.io/schema/vega/v5.json",
"description": "A radar chart example, showing multiple dimensions in a radial layout.",
"width": 400,
"height": 400,
"padding": 40,
"autosize": {"type": "none", "contains": "padding"},
"signals": [{"name": "radius", "update": "width / 2"}],
"data": [
{
@zeroasterisk
zeroasterisk / user.ex
Last active August 4, 2021 03:22
Example Elixir+Ecto schema to mirror a Mongo DB with complicated data structures
defmodule Eltoroportal.Accounts.User do
use Ecto.Schema
import Ecto.Changeset
alias Eltoroportal.Accounts.User
@primary_key {:_id, :string, autogenerate: false}
schema "users" do
field :username, :string
# field :created, :date # <-- ? mongo translation?
@zeroasterisk
zeroasterisk / make_class_teams.js
Last active May 3, 2017 14:57
Code Lou - FSJS - teams
/**
* Build a set of randomized, evenly distrubted teams
*
* goal team size = ~5 or 6
*
* usage:
* download file and save as make_class_teams.js
*
* $ node make_class_teams.js
*