Skip to content
15 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

The phone app's scaffolding, in apps/mobile: Expo SDK 57 with Expo Router, Android first, with Chat, Code and Customize. It signs in with g1t's own OAuth 2.1 (PKCE, a client id that encodes "g1t for Android" and g1t://oauth/callback, so nothing is registered), keeps the server and credentials in the phone's keystore, refreshes the 30-day token a minute early and shares the single-use refresh between requests. A personal access token is the other way in, and a self-hosted g1t the other server.1import assert from "node:assert/strict";
2import { test } from "node:test";
3
4import { CUSTOMIZE, CUSTOMIZE_SECTIONS, customizePath, sectionOfListing } from "./customize.ts";
5
6test("every Marketplace listing has a place in Customize", () => {
7 assert.equal(sectionOfListing("integration"), "connectors");
8 assert.equal(sectionOfListing("extension"), "plugins");
9 for (const section of CUSTOMIZE_SECTIONS) assert.equal(CUSTOMIZE[section].id, section);
10});
11
12test("a section's site path names its workspace", () => {
13 assert.equal(customizePath("connectors", "acme"), "/acme/-/marketplace/integrations");
14 assert.equal(customizePath("skills", "a b"), "/a%20b/-/agents/skills");
15});