Skip to content

Instantly share code, notes, and snippets.

View amiller's full-sized avatar

Andrew Miller amiller

View GitHub Profile
@amiller
amiller / microsoft-email-fetch.ts
Created February 10, 2026 01:57
OAuth3 Demo: Microsoft Email Fetch (read-only, 5 messages)
// @skill Microsoft Email Fetch
// @description Fetch recent emails from Microsoft Graph API (read-only, limited to 5 messages)
// @secrets MICROSOFT_API_KEY
// @network graph.microsoft.com
// @timeout 30
const MICROSOFT_API_KEY = Deno.env.get("MICROSOFT_API_KEY");
if (!MICROSOFT_API_KEY) {
console.error("Error: MICROSOFT_API_KEY required");
@amiller
amiller / constrained-claude-query.ts
Created February 10, 2026 00:23
OAuth3 Demo: Constrained Claude Query (template-based delegation)
// @skill Constrained Claude Query
// @description Template-based Anthropic API delegation - Agent provides word (≤20 chars) for character counting
// @secrets ANTHROPIC_API_KEY
// @network api.anthropic.com
// @timeout 30
const WORD = Deno.env.get("WORD");
const ANTHROPIC_API_KEY = Deno.env.get("ANTHROPIC_API_KEY");
if (!WORD) {
@amiller
amiller / constrained-claude-query.ts
Created February 10, 2026 00:23
OAuth3 Demo: Constrained Claude Query (template-based delegation)
$(cat /tmp/constrained-claude-query.ts | jq -Rs .)
@amiller
amiller / test-hello.ts
Last active February 9, 2026 22:01
OAuth3 test skill - Hello World
// @skill test-hello-world
// @description Simple test - prints hello and checks secret
// @secrets OPENAI_API_KEY
// @timeout 5
console.log("Hello from OAuth3!");
const key = Deno.env.get("OPENAI_API_KEY");
console.log("API key length:", key ? key.length : "not found");
console.log("Test complete!");
@amiller
amiller / test-hello.ts
Created February 9, 2026 22:00
OAuth3 test skill - Hello World
/**
* @skill-metadata
* {
* "description": "Simple test execution - prints hello and checks secret access",
* "secrets": ["OPENAI_API_KEY"],
* "network": [],
* "timeout": 5
* }
*/
@amiller
amiller / README.md
Last active February 3, 2026 20:36
Genesis Transparency Verification - Feb 3 2026 (Complete Files on GitHub)

EPUB Indexing Tools & Scripts

Problem Solved

  • EPUB files are compressed archives containing HTML, making direct text extraction difficult
  • Needed to extract case studies and structured content from Team Topologies book
  • Initial attempts using simple text conversion lost formatting and structure

Tools Created

1. epub_to_txt.py

@amiller
amiller / Dockerfile
Last active September 20, 2023 18:12
hibe
FROM python:3.8.0-buster AS charm
# Get the Dockerfile from here
# https://raw.githubusercontent.com/sbellem/docker-charm-crypto/master/latest/python3.8/buster/Dockerfile
# docker build -f docker-charm-crypto/master/latest/python3.8/buster/Dockerfile -t charm .
ENV PYTHONUNBUFFERED 1
RUN apt-get update && apt-get install -y --no-install-recommends \
bison \
flex \
@amiller
amiller / VeiledToken.sol
Created June 19, 2023 16:30
Off-chain linear scan ORAM token
Struct AddrBal = { address addr; uint balance };
enum RequestType = { TRANSFER; DEPOSIT; WITHDRAW };
Struct Request = { RequestType type, address from; address to; uint amt; bytes32 memo }
Struct Response = { uint seqNo, bool status, uint amt, string response };
contract {
// Key for encryption
bytes32 key;
// Checkpoint public state
pragma solidity ^0.8.0;
// "SPDX-License-Identifier: UNLICENSED"
/*
Honey Object as an Oasis Sapphire contract
Could be used to demonstrate side channels
*/