ai-hist-mcp 0.16.0 → 0.17.0

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.
Files changed (2) hide show
  1. package/README.md +22 -69
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -1,71 +1,24 @@
1
1
  # ai-hist-mcp
2
2
 
3
- Thin `npx` wrapper for the MCP server shipped by the public `ai-hist` SDK:
4
-
5
- ```bash
6
- npx -y ai-hist-mcp
7
- ```
8
-
9
- The server imports only `ai-hist` public functions. It never opens SQLite,
10
- loads the native addon directly, scans provider files, or invokes a CLI.
11
-
12
- Tools: `search_history`, `recent_history`, `list_sessions`,
13
- `discover_sessions`, `hydrate_session`, `get_session`, `get_session_events`,
14
- `get_session_relationships`, `get_session_tree`, `get_session_thread`,
15
- `get_session_tool_calls`, `get_session_file_edits`, `history_stats`, and
16
- `sync`. Search, recent history, session listing, discovery, statistics, and sync accept a
17
- `scope` of `local`, `remote`, or `all`; scope defaults to `local`.
18
- `get_session`, `get_session_events`, `get_session_relationships`,
19
- `get_session_tree`, and `get_session_thread` address one session by identity
20
- and take no `scope`.
21
- `get_session_tool_calls` and `get_session_file_edits` are bounded, cursor-paged
22
- reads that require both a `source` and a `session_id`, because provider session
23
- IDs collide.
24
-
25
- Cached reads support all three scopes. Remote acquisition runs through
26
- provider connectors (claude.ai/code web sessions, Codex cloud tasks) that are
27
- configured by the provider CLI's own sign-in on the machine; explicit `remote`
28
- acquisition returns `UNSUPPORTED_OPERATION` when none is configured, while
29
- `all` runs local adapters plus every configured connector. The discovery and
30
- sync tools are therefore annotated as open-world writes.
31
- `hydrate_session` is an idempotent write that fully indexes one previously
32
- discovered identity and optionally its related provider-native sessions from
33
- local provider evidence, so it stays annotated as a local, closed-world write.
34
-
35
- `get_session_thread` is the *lifecycle* fan-out for one session: the commits it
36
- shipped plus the pull requests, reviews, incidents, tickets, Slack threads,
37
- hotfixes and follow-up sessions the cloud has stitched to it. It complements
38
- `get_session_tree` — that one is the *subagent* fan-out — and an agent may call
39
- both. It is cloud-only and never cached: a thread exists once the cloud has
40
- ingested lens events, and it changes as PRs and incidents land, so every call
41
- fetches. With no stored cloud session it returns `UNSUPPORTED_OPERATION` with
42
- the same `no remote provider connectors are configured` message the sibling
43
- connectors use, without making a request. Tenancy is derived from the token
44
- server-side; there is no org parameter. `kinds` filters `link_kind`, `since`
45
- bounds link event time, and `limit` (1-500, default 100) with `cursor` pages the
46
- links; outcomes come back whole on every page.
47
-
48
- Credentials come exclusively from the native stage store
49
- (`$RELAYHISTORY_HOME/stages`, default `~/.agentworkforce/relayhistory/stages`).
50
- `RELAYHISTORY_BASE_URL` takes precedence over `AI_HIST_BASE_URL`; with multiple
51
- stages and no selection, the tool refuses to guess. Use `ai-hist login` to
52
- create a session for the selected stage.
53
-
54
- A stored session must meet the same bar the engine's `cloud` connector
55
- applies to recall — an `rth_at_` access token, an expiry at least 60s away, and
56
- a recorded org for provenance. A session missing a token prefix or an org is one the
57
- connector itself reports as unconfigured, so the tool reports it the same way
58
- and names the missing precondition rather than issuing a request that would
59
- fail. `ai-hist login` restores them.
60
-
61
- Expiry is the exception, because rotation exists to repair it: a rejected
62
- session with a refresh token is rotated under the native stage lock and the
63
- new pair saved atomically, so the CLI and the MCP stay in step. A pair another process rotated first is adopted rather than spending
64
- the one-time refresh token again. Only a session with nothing left to rotate
65
- reports expiry as unconfigured.
66
-
67
- `get_session_relationships` and `get_session_tree` read the delegation topology
68
- recorded by hydration and sync: who delegated to whom, what evidence
69
- established the link, whether the child has a stable identity, and whether its
70
- events are independently addressable. Tree traversal is cycle-safe,
71
- deterministically ordered, and bounded by `max_depth` and `max_nodes`.
3
+ Thin `npx -y ai-hist-mcp` wrapper for the local `ai-hist` MCP server.
4
+ It calls public SDK operations; it never opens SQLite or loads cloud auth.
5
+
6
+ Default tools cover cached search/recent/catalog/statistics, discovery/sync,
7
+ identity-addressed events/tool calls/file edits/relationships/session trees, and
8
+ generic durable delivery status/control. Cached scopes local/remote/all do not
9
+ read credentials; acquisition defaults to local. Tool and file edit pages require
10
+ both source and session ID and use bounded deterministic cursors.
11
+
12
+ Remote acquisition and commercial tools are optional. Install a source or
13
+ destination package and set `AI_HIST_PLUGIN_CONFIG` to its explicit module config.
14
+ Loading a configured plugin is inert. `source_connectors` selects configured
15
+ source IDs; an empty array disables remote acquisition. Acquisition tools declare
16
+ open-world writes. Arbitrary plugin callbacks receive conservative annotations,
17
+ and duplicate/reserved tool names are rejected before registration.
18
+
19
+ The optional `@agent-relay/relayhistory` package registers `get_session_thread`
20
+ and `read_delivered_history`. The former composes freshly delivered evidence
21
+ with legacy lifecycle links under one pinned account and reports each outcome;
22
+ the latter is an explicit live listing, not an incremental feed. Neither tool
23
+ is shipped in the default inventory. See the repository's optional package README
24
+ for auth, expected-account pinning and stage selection.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-hist-mcp",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "Thin npx wrapper for the ai-hist stdio MCP server.",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -22,7 +22,7 @@
22
22
  "access": "public"
23
23
  },
24
24
  "dependencies": {
25
- "ai-hist": "0.16.0"
25
+ "ai-hist": "0.17.0"
26
26
  },
27
27
  "engines": {
28
28
  "node": ">=20"