@getbourdon/participants 0.4.0 → 0.5.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,16 +9,20 @@ agent's private, vendor-specific state and the cross-machine federation library.
9
9
  Python (`pip install bourdon`) is the oracle; this TS mirror asserts against the
10
10
  `@getbourdon/conformance` `native_stores` fixtures (output shape only).
11
11
 
12
- ## Reader categories
12
+ ## Reader examples
13
13
 
14
14
  | Reader | Category | Native store |
15
15
  |---|---|---|
16
16
  | `HermesParticipant` | SQLite (read-only) | `~/.hermes/` — `state.db` sessions + `memories/*.md` |
17
17
  | `ClaudeCodeParticipant` | file / convention | `~/agent-brain/` + `~/.claude/projects/*/memory/` + KG JSONL |
18
18
  | `GitHubCopilotParticipant` | network (TTL cache) | `api.github.com` PR activity → `~/.cache/bourdon/github-copilot/` |
19
+ | `CursorParticipant` | SQLite | Cursor `state.vscdb` workspace state |
20
+ | `CopilotCliParticipant` | SQLite | `~/.copilot/session-store.db` |
21
+ | `OpenClawParticipant` | local HTTP API | OpenClaw's local instance |
19
22
 
20
- The heavier SQLite readers (`cursor`, `codex`, `copilot_cli`) are **deferred to
21
- the follow-on slice**; `openclaw` ships as the `@getbourdon/openclaw` plugin.
23
+ These are examples; `FIRST_PARTY` in `src/registry.ts` is the current reader
24
+ roster. The full Codex turn-compiler reader is deferred. The Codex automation
25
+ reader and session-index title lookup are narrower integrations already present.
22
26
 
23
27
  `ClaudeCodeParticipant` resolves its knowledge repo in this order: the
24
28
  `AGENT_BRAIN` env var, then `$HOME/agent-brain/`, then `./agent-brain/`. The
package/dist/index.cjs CHANGED
@@ -137,6 +137,7 @@ var import_meta = {};
137
137
  var moduleUrl = typeof import_meta !== "undefined" && import_meta.url || (typeof __filename !== "undefined" ? __filename : process.cwd());
138
138
  var nodeRequire = (0, import_node_module.createRequire)(moduleUrl);
139
139
  var driver;
140
+ var nativeAvailable;
140
141
  function loadDriver() {
141
142
  if (driver !== void 0) return driver;
142
143
  try {
@@ -147,7 +148,17 @@ function loadDriver() {
147
148
  return driver;
148
149
  }
149
150
  function sqliteAvailable() {
150
- return loadDriver() !== null;
151
+ if (nativeAvailable !== void 0) return nativeAvailable;
152
+ const Ctor = loadDriver();
153
+ if (!Ctor) return nativeAvailable = false;
154
+ try {
155
+ const probe = new Ctor(":memory:");
156
+ probe.close();
157
+ nativeAvailable = true;
158
+ } catch {
159
+ nativeAvailable = false;
160
+ }
161
+ return nativeAvailable;
151
162
  }
152
163
  function openReadonly(dbPath, opts = {}) {
153
164
  const Ctor = loadDriver();