cotal-ai 0.89.0 → 0.90.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cotal-ai",
3
- "version": "0.89.0",
3
+ "version": "0.90.1",
4
4
  "description": "Cotal — lateral agent coordination over NATS. Run `npx cotal-ai` for the CLI.",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -33,24 +33,24 @@
33
33
  "node": ">=22"
34
34
  },
35
35
  "dependencies": {
36
- "@cotal-ai/auth": "0.89.0",
37
- "@cotal-ai/cli": "0.89.0",
38
- "@cotal-ai/connector-core": "0.89.0",
39
- "@cotal-ai/core": "0.89.0",
40
- "@cotal-ai/delivery": "0.89.0",
41
- "@cotal-ai/manager": "0.89.0",
42
- "@cotal-ai/runtime": "0.89.0",
43
- "@cotal-ai/workspace": "0.89.0"
36
+ "@cotal-ai/auth": "0.90.1",
37
+ "@cotal-ai/cli": "0.90.1",
38
+ "@cotal-ai/connector-core": "0.90.1",
39
+ "@cotal-ai/core": "0.90.1",
40
+ "@cotal-ai/delivery": "0.90.1",
41
+ "@cotal-ai/manager": "0.90.1",
42
+ "@cotal-ai/runtime": "0.90.1",
43
+ "@cotal-ai/workspace": "0.90.1"
44
44
  },
45
45
  "devDependencies": {
46
- "@cotal-ai/connector-claude-code": "0.89.0",
47
- "@cotal-ai/connector-codex": "0.89.0",
48
- "@cotal-ai/connector-hermes": "0.89.0",
49
- "@cotal-ai/connector-jcode": "0.89.0",
50
- "@cotal-ai/connector-opencode": "0.89.0",
51
- "@cotal-ai/pi": "0.89.0",
46
+ "@cotal-ai/connector-claude-code": "0.90.1",
47
+ "@cotal-ai/connector-codex": "0.90.1",
48
+ "@cotal-ai/connector-hermes": "0.90.1",
49
+ "@cotal-ai/connector-jcode": "0.90.1",
50
+ "@cotal-ai/connector-opencode": "0.90.1",
51
+ "@cotal-ai/pi": "0.90.1",
52
52
  "@cotal-ai/smoke-kit": "0.0.0",
53
- "@cotal-ai/web": "0.89.0",
53
+ "@cotal-ai/web": "0.90.1",
54
54
  "@nats-io/jetstream": "^3.4.0",
55
55
  "@nats-io/transport-node": "^3.4.0",
56
56
  "typescript": "^5.9.3"
@@ -10,70 +10,26 @@ import.
10
10
  See [docs/connect-claude.md](../../docs/connect-claude.md) for the integration guide, and the
11
11
  [root AGENTS.md](../../AGENTS.md) for the tier rules.
12
12
 
13
- ## Claude Code hook reference
13
+ ## Claude Code hooks
14
14
 
15
- The full set of Claude Code hook events, grouped by lifecycle — this is Claude *product*
16
- surface, kept here with the adapter rather than in the protocol docs. Source:
17
- [code.claude.com/docs/en/hooks](https://code.claude.com/docs/en/hooks) (Claude Code
18
- 2.1.16x, 31 events; the `StopFailure` matchers re-read off 2.1.237's own hook schema, which
19
- carries two the earlier list was missing). The connector consumes the subset mapped in
20
- [docs/connect-claude.md](../../docs/connect-claude.md) (presence mapping + message
21
- delivery); the rest are listed for completeness.
15
+ Claude Code documents every hook event and its matchers in its
16
+ [hooks reference](https://code.claude.com/docs/en/hooks). This README does not copy that list.
22
17
 
23
- ### Once per session
24
- | Event | Fires when | Matchers |
25
- |---|---|---|
26
- | `SessionStart` | a session begins or resumes | `startup`, `resume`, `clear`, `compact` |
27
- | `Setup` | started with `--init-only`, or `--init`/`--maintenance` in `-p` | `init`, `maintenance` |
28
- | `SessionEnd` | a session terminates | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |
29
-
30
- ### Once per turn
31
- | Event | Fires when | Matchers |
32
- |---|---|---|
33
- | `UserPromptSubmit` | user submits a prompt, before Claude processes it | (none) |
34
- | `UserPromptExpansion` | a typed command expands into a prompt | command name |
35
- | `Stop` | Claude finishes responding | (none) |
36
- | `StopFailure` | turn ends due to an API error | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `unknown` |
37
-
38
- ### Per tool call (agentic loop)
39
- | Event | Fires when | Matchers |
40
- |---|---|---|
41
- | `PreToolUse` | before a tool call executes (can block) | tool name |
42
- | `PermissionRequest` | a permission dialog appears | tool name |
43
- | `PermissionDenied` | a tool call denied by auto-mode classifier | tool name |
44
- | `PostToolUse` | after a tool call succeeds | tool name |
45
- | `PostToolUseFailure` | after a tool call fails | tool name |
46
- | `PostToolBatch` | after a parallel tool batch resolves, before next model call | (none) |
47
- | `SubagentStart` | a subagent is spawned | agent type |
48
- | `SubagentStop` | a subagent finishes | agent type |
49
- | `TaskCreated` | a task is created via `TaskCreate` | (none) |
50
- | `TaskCompleted` | a task is marked completed | (none) |
51
- | `TeammateIdle` | an agent-team teammate is about to go idle | (none) |
52
-
53
- ### Compaction
54
- | Event | Fires when | Matchers |
55
- |---|---|---|
56
- | `PreCompact` | before context compaction | `manual`, `auto` |
57
- | `PostCompact` | after compaction completes | `manual`, `auto` |
58
-
59
- ### Async / background
60
- | Event | Fires when | Matchers |
61
- |---|---|---|
62
- | `CwdChanged` | working directory changes | (none) |
63
- | `FileChanged` | a watched file changes on disk | literal filenames |
64
- | `ConfigChange` | a config file changes mid-session | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` |
65
- | `InstructionsLoaded` | CLAUDE.md / `.claude/rules/*.md` loaded into context | `session_start`, `nested_traversal`, `path_glob_match`, `include`, `compact` |
66
- | `Notification` | Claude Code emits a notification | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |
67
- | `MessageDisplay` | while assistant message text is displayed (display-only) | (none) |
68
-
69
- ### Worktree
70
- | Event | Fires when | Matchers |
71
- |---|---|---|
72
- | `WorktreeCreate` | a worktree is created (`--worktree` / `isolation: "worktree"`) | (none) |
73
- | `WorktreeRemove` | a worktree is removed | (none) |
18
+ The plugin registers the nine hooks below in [`hooks/hooks.json`](hooks/hooks.json). Each runs
19
+ `dist/hook.cjs`, which relays the event to the session's connector over its authenticated control
20
+ socket. A Cotal session, one that Cotal launched, carries a mesh identity in its environment. A
21
+ plain session, such as a `claude` you started yourself, carries none and has no connector, so there
22
+ the hook only runs the hosted connection checks in the `PreToolUse` and `PostToolUse` rows. The presence states are described in
23
+ [presence mapping](../../docs/connect-claude.md#presence-mapping).
74
24
 
75
- ### MCP elicitation
76
- | Event | Fires when | Matchers |
25
+ | Hook | Matcher | What the plugin does |
77
26
  |---|---|---|
78
- | `Elicitation` | an MCP server requests user input during a tool call | MCP server name |
79
- | `ElicitationResult` | after the user responds, before it is sent to the server | MCP server name |
27
+ | `SessionStart` | all | Surfaces the channel briefing and waiting messages, sets `idle` when no turn is open, resets attention to `open`, and records the session's model when none is pinned. On `startup`, `resume` or `fork` it also records the session's directory. |
28
+ | `UserPromptSubmit` | all | Sets `working` and surfaces waiting messages and run turns. |
29
+ | `PreToolUse` | all | Records the pending tool so a permission wait can name it. In a Cotal session, it denies a Cotal tool from any server other than the local one. In a plain session, it denies a hosted `connection_id` that it recorded as opened by a different session. |
30
+ | `PostToolUse` | `^mcp__.+__cotal_(connect\|disconnect)$` | Plain sessions only: records or forgets which session opened a hosted connection. |
31
+ | `PostToolBatch` | all | Sets `working` again when the main agent's batch resolves after a prompt left the seat `waiting`. A subagent's batch changes nothing. |
32
+ | `Notification` | `permission_prompt\|agent_needs_input\|elicitation_dialog` | Sets `waiting`. `permission_prompt` adds condition `approval`, and `agent_needs_input` adds `input`. |
33
+ | `Stop` | all | Ends the turn: closes the run on the event plane, sets `idle`, and asks for a wake turn when held messages are waiting. |
34
+ | `StopFailure` | all | Same as `Stop`, but closes the run with `RUN_ERROR` and sets a condition mapped from the error type. |
35
+ | `SessionEnd` | all | Sets `offline`. |