Skip to content

v0.9.0: user-intent-kit embedded

Choose a tag to compare

@ThinkOffApp ThinkOffApp released this 10 Jun 10:47
· 326 commits to main since this release

Added

  • user-intent-kit embedded: the UIK codebase now lives at packages/user-intent-kit (JS client + adapters + Python/Swift/Kotlin ports), wired in as a file: dependency. It remains independently publishable.
  • src/intent.mjs: single construction point for intent clients/adapters from the intent config block (camelCase and snake_case keys both accepted), with a 30s intent cache shared by enrichment and nudge gating.
  • intent CLI command: ide-agent-kit intent <get|profile|derived|state|patch|heartbeat|daemon>. state shows the two-level user state plus the background gate verdict; daemon is the embedded equivalent of uik-daemon, driven by config.intent.* instead of env vars.
  • Nudge suppression in rooms watch: when config.intent is set and the user's urgency_mode is emergency-only, the poller still writes notification files but skips the tmux/command nudge. Opt out with intent.suppress_nudges: false. Fails open on API errors.

Fixed

  • Intent enrichment never worked: enrichment.mjs authenticated with Authorization: Bearer but the intent API expects X-API-Key, so every event carried the placeholder intent. Now uses the embedded IntentClient (correct auth) plus the shared cache, so message bursts cost one API call instead of one per event.
  • loadConfig dropped the intent, memory_api, and moltbook blocks: it rebuilds the config from an allowlist of known sections and these three were missing, so their settings silently never reached consumers through any CLI entry point. All three now pass through, with a regression test.

Changed

  • fetchIntentGate in background.mjs is built on the embedded IntentClient instead of a hand-rolled fetch. Same gate rules, same return shape, same fail-open behavior.
  • npm test now also runs the embedded user-intent-kit suite (101 tests).

Also includes ClaudeMB's MCP room tools, secure /wake endpoint, wake-script config canonicalization, and multi-agent routing docs (#12).