Skip to content

feat: add agent-sdk package for programmatic governance#40

Merged
Skanislav merged 7 commits into
devfrom
feat/agent-sdk
Apr 13, 2026
Merged

feat: add agent-sdk package for programmatic governance#40
Skanislav merged 7 commits into
devfrom
feat/agent-sdk

Conversation

@Skanislav

Copy link
Copy Markdown
Contributor

Summary

Introduces `packages/agent-sdk` — a typed SDK for agents and external systems to interact with hollab.eth governance contracts. Wraps `@hollab-io/viem-extension` with higher-level modules per domain.

Modules

  • `org` — organization discovery and metadata
  • `roles` — role CRUD via governance execution
  • `circles` — circle operations
  • `meetings` — meeting lifecycle
  • `governance` — proposal encoding and execution
  • `voting` — action voting

Exports an `Agent` class for stateful clients plus encoding helpers for all governance change types.

Test plan

  • `pnpm --filter @hollab-io/agent-sdk build` produces dist
  • `pnpm --filter @hollab-io/agent-sdk check-types` passes
  • Import from a consumer works

🤖 Generated with Claude Code

Skanislav and others added 7 commits April 12, 2026 17:56
Introduces packages/agent-sdk — a typed SDK for agents and external
systems to interact with hollab.eth governance contracts. Wraps
viem-extension with higher-level modules per domain:

- org — organization discovery and metadata
- roles — role CRUD via governance execution
- circles — circle operations
- meetings — meeting lifecycle
- governance — proposal encoding and execution
- voting — action voting

Exports an Agent class for stateful clients, plus encoding helpers
for all governance change types.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ent and selectors

42 tests for createIndexingClient covering all query methods, response
unwrapping, pagination forwarding, and address lowercasing invariants.
29 tests for viem-extension selectors (createPartnerMap, createCircleMap,
createRoleMap, getAnchorCircle, getSubCircles, getRolesForCircle) against
both minimal fixtures and the full mock snapshot.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…est files

Add package-level tsconfig path alias (@/* → src/*) and test/** include so
TypeScript resolves @/ imports in test files. Add .eslintrc.cjs to
indexing-client to use its local tsconfig (ESLint was using the root tsconfig
which has no paths configured). Switch indexing-client mock from vi.spyOn
(graphql-request.request is not spyable via prototype in v7) to vi.mock +
vi.mocked. Fix noUncheckedIndexedAccess TS2532 errors in viem-extension
selectors test with non-null assertions on known-present map keys.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Skanislav Skanislav merged commit e3f9c3a into dev Apr 13, 2026
6 checks passed
@Skanislav Skanislav deleted the feat/agent-sdk branch April 13, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant