Adds a `type` field (app | llm | mcp) to ProviderDefinition so consumers
can filter and display providers by category. Backfills all 71 bundled
providers. Also introduces a `parse_jsonc` utility that strips // and /* */
comments before JSON parsing, and wires it into the bundled loader and the
CLI register command so both .json and .jsonc provider files are accepted.
Closes#362
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Delete the server-rendered dashboard pages, remove the static asset mount, and route the Next dashboard provider login form through the browser-session auth path.
Implement ADR 005 by routing audit events through OpenTelemetry with a server-owned SQLite exporter and query endpoint. Implement ADR 006 by persisting principal roles, assigning first principal admin, and enforcing admin-only routes at the FastAPI dependency layer.
Entire-Checkpoint: df60966364f1
Enables authenticated access to sites like X/Twitter and LinkedIn that
use browser session cookies rather than OAuth or API keys.
Core logic lives entirely in auth/ — BrowserFlow.run_login() reads
Chrome's on-disk SQLite cookie database via browser-cookie3 (macOS
Keychain / Linux GNOME Keyring / Windows DPAPI), opens the site in the
user's default browser if no valid session exists, then polls until the
required auth cookies appear. No separate Chrome profile, no Playwright.
- auth/browser_cookies.py: read_chrome_cookies(), cookies_are_valid(),
normalize_jsessionid() with lazy browser-cookie3 import
- auth/flows/browser.py: BrowserFlow (begin/resume/refresh) + static
run_login() for CLI use
- auth/models/: AuthType.BROWSER, FlowType.BROWSER, BrowserConfig,
ExtractRule, ConnectionRecord.credentials field
- server/: register flow, header rendering, export branch, BrowserAction
schema, _session_response wiring (~35 lines total)
- cli/main.py: 8-line elif block calling BrowserFlow.run_login()
- Bundled providers: x-browser, linkedin-browser
- 30 new tests in tests/auth/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 3753e27e5941
Replace authsome.actors with authsome.identity, splitting into four
focused sub-modules:
identity/local.py — IdentityMetadata, keys, DID helpers, create_identity
identity/proof.py — PoP JWT creation and validation
identity/registry.py — daemon IdentityRegistry (Handle → DID)
identity/principal.py — ClaimStatus, PrincipalRegistry, VaultRegistry,
IdentityClaimRegistry, PrincipalVaultBindingRegistry
Update all imports across src/ and tests/. Move tests/actors/test_registry.py
to tests/identity/test_registry.py. Delete the actors/ package.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 88222782ec3b
Remove evals/run_evals.py (replaced by inline orchestration in
run-evals.md), bump version to 0.3.2, update lockfile, and add
authsome skill command file.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Switch grading from anthropic SDK to `claude -p` subprocess to avoid
a hard dependency. Truncate transcript to last 4000 chars to stay within
CLI arg limits. Grade partial transcripts even when rate limit is hit
(emit WARNING instead of skipping).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add local HTTP proxy runner for on-the-fly credential injection in child processes
- Add RC publish workflow triggered on successful tests on develop branch
- Add OAuth scope management and prompting during client login
* refactor: unify API key flow logic, update authentication tests to use bridge, and add CI workflow badge.
* refactor: expand test coverage and add Codecov badge to README
* refactor: remove unused TokenExpiredError alias from client tests
* chore: remove ty type checking from CI workflow
* feat: add type checking, improve token refresh error handling, and enable HTTP server port reuse in tests
* refactor: add whitespace to conftest for improved readability
* fix: ensure HTTPServer cleanup via finally blocks and improved test fixture teardown
* style: reorder imports in conftest.py to follow PEP 8 standards
* refactor: clean up whitespace and formatting in test server cleanup fixture
* refactor: enable address reuse directly in PKCE flow handlers and remove global test configuration
* feat: make callback port configurable in PKCE and DCR PKCE flows and update tests to use dynamic ports
* test: dynamic callback port assignment in PKCE and DCR PKCE flow tests
- Set requires-python to >=3.13, target-version to py313, line-length to 120
- Add LICENSE file (MIT) and license-files field
- Update author name/email to Manoj Bajaj <manojbajaj95@gmail.com>
- Add py.typed marker, ruff config, and coverage config
- Fix test_flows.py: use LocalFileCryptoBackend instead of KeyringCryptoBackend
- Fix test_registry.py: assert "github" instead of non-existent "anthropic" bundled provider
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>