agent-chat-plugin 0.3.0__tar.gz → 0.4.0__tar.gz

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 (26) hide show
  1. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/PKG-INFO +43 -22
  2. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/README.md +42 -21
  3. agent_chat_plugin-0.4.0/agent_chat/lease_store.py +1871 -0
  4. agent_chat_plugin-0.4.0/agent_chat/path_locks.py +1823 -0
  5. agent_chat_plugin-0.4.0/agent_chat/state_store.py +793 -0
  6. agent_chat_plugin-0.4.0/agent_chat/task_model.py +347 -0
  7. agent_chat_plugin-0.4.0/agent_chat/task_store.py +687 -0
  8. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/agent_chat_plugin.egg-info/PKG-INFO +43 -22
  9. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/agent_chat_plugin.egg-info/SOURCES.txt +11 -1
  10. agent_chat_plugin-0.4.0/agent_chat_plugin.egg-info/top_level.txt +2 -0
  11. agent_chat_plugin-0.4.0/chat.py +1373 -0
  12. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/pyproject.toml +5 -3
  13. agent_chat_plugin-0.4.0/tests/test_capabilities.py +166 -0
  14. agent_chat_plugin-0.4.0/tests/test_leases.py +1337 -0
  15. agent_chat_plugin-0.4.0/tests/test_path_locks.py +638 -0
  16. agent_chat_plugin-0.4.0/tests/test_state.py +814 -0
  17. agent_chat_plugin-0.4.0/tests/test_tasks.py +696 -0
  18. agent_chat_plugin-0.3.0/agent_chat_plugin.egg-info/top_level.txt +0 -1
  19. agent_chat_plugin-0.3.0/chat.py +0 -587
  20. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/LICENSE +0 -0
  21. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/agent_chat_plugin.egg-info/dependency_links.txt +0 -0
  22. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/agent_chat_plugin.egg-info/entry_points.txt +0 -0
  23. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/setup.cfg +0 -0
  24. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/tests/test_chat.py +0 -0
  25. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/tests/test_hooks.py +0 -0
  26. {agent_chat_plugin-0.3.0 → agent_chat_plugin-0.4.0}/tests/test_plugin_manifest.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-chat-plugin
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Peer AI agents coordinate through markdown messages in shared channel folders — no orchestrator, autonomous zero-token waiting, cross-platform.
5
5
  Author: n24q02m
6
6
  License: Apache-2.0
@@ -97,11 +97,25 @@ python chat.py init review --members alice,bob --topic "code review"
97
97
  # alice posts to bob
98
98
  python chat.py post review --from alice --to bob --title "Schema v0.2" --body-file msg.md
99
99
 
100
- # bob reads what's new for him (only messages addressed to him or the group)
100
+ # bob reads what's new for him
101
101
  python chat.py read review --as bob
102
102
 
103
- # alice waits for bob's reply — burns 0 tokens while blocked
104
- python chat.py wait review --as alice --timeout 900
103
+ # create dependent work
104
+ python chat.py task create review T-0001 --from alice --title "Implement schema"
105
+ python chat.py task create review T-0002 --from alice --title "Review schema" --depends-on T-0001
106
+
107
+ # claim, renew and complete a ready task
108
+ python chat.py task claim review T-0001 --as alice --lease-seconds 900
109
+ python chat.py task renew review T-0001 --as alice --lease-seconds 900
110
+ python chat.py task done review T-0001 --as alice
111
+
112
+ # coordinate paths and state
113
+ python chat.py lock review src/schema.py --as alice --lease-seconds 900
114
+ python chat.py state review
115
+ python chat.py compact review --as alice
116
+
117
+ # capability handshake without claiming host-native execution
118
+ python chat.py event post review --from alice --type capability --harness generic-shell
105
119
  ```
106
120
 
107
121
  Root defaults to `~/agent-chat`; override with `$AGENT_CHAT_ROOT` or `--root`. Run
@@ -109,36 +123,43 @@ Root defaults to `~/agent-chat`; override with `$AGENT_CHAT_ROOT` or `--root`. R
109
123
 
110
124
  ## How it works
111
125
 
112
- - **Channels** — one folder per group chat; make as many as you need (`init`).
113
- - **Messages** — `NNNN-<from>-<slug>.md` with frontmatter (`from`, `to`, `reply_to`,
114
- `status`, `title`). `to: all` broadcasts.
115
- - **Cursors** — `read`/`wait` show only what's new for you and never re-scan the thread.
116
- - **Atomic** — sequence numbers are allocated under a lock (no duplicate `-11`); task
117
- claiming uses atomic rename (lose the race -> move on).
126
+ - **Channels** — one folder per group chat; make as many as needed with `init`.
127
+ - **Messages** — numbered Markdown files with frontmatter and immutable replies.
128
+ - **Cursors** — `read`/`wait` show only new relevant messages.
129
+ - **Tasks** — JSON records with dependencies, readiness, status and acceptance.
130
+ - **Leases** — owner-bound claims with expiry and explicit stale recovery.
131
+ - **Path locks** — normalized workspace-relative ownership records with conflict checks.
132
+ - **State** — deterministic derived `state.md`; compaction never replaces source records.
133
+ - **Events** — versioned capability/status JSON carried through ordinary messages.
134
+ - **Atomicity** — filesystem transactions, audit events and recovery markers protect concurrent work.
118
135
 
119
- Six rules keep peers from stepping on each other: one channel per topic; claim before
120
- you act; message don't chatter; `wait` don't poll-with-the-model; read since your
121
- cursor; reply in a new file. Full protocol in `SPEC.md`.
136
+ Agent Chat is a coordination data layer. It does not execute agents, assign models,
137
+ approve permissions, run MCP/ACP, or wake another process.
122
138
 
123
139
  ## Two modes, two budgets
124
140
 
125
- - **Live swarm** — N sessions running concurrently, `wait`-ing on each other. Buys
126
- wall-clock parallelism + fault tolerance; costs more tokens. For abundant budgets.
127
- - **Async handoff / audit** — post a summary when a session ends; the next session
128
- reads it. Nearly free — usable on a tight budget.
141
+ - **Live swarm** — N sessions run concurrently and use `wait` for wall-clock parallelism.
142
+ - **Async handoff / audit** — a session posts an artifact summary for the next session.
143
+
144
+ Both modes use the same file-backed protocol and remain auditable.
129
145
 
130
146
  ## Install & distribution
131
147
 
132
148
  - **As a CLI** — `pipx install agent-chat-plugin` then run `agent-chat`
133
149
  (or `uvx --from agent-chat-plugin agent-chat`).
134
- - **As a skill** — drop `SKILL.md` + `chat.py` into your agent's skills directory;
135
- works across tools that read the Agent Skills / `SKILL.md` standard.
136
- - **As a Claude Code plugin** — via a plugin marketplace.
150
+ - **As a Skill** — copy `SKILL.md` and `chat.py` into a compatible Skills directory.
151
+ - **As a Claude Code plugin** — install from the marketplace package.
152
+
153
+ The CLI/Skill protocol is portable. A portable protocol claim is not a first-class
154
+ native integration claim for a specific host; verify each host's manifest, hooks and
155
+ domain call separately.
137
156
 
138
157
  ## Status
139
158
 
140
- Early (v0). The reference implementation is tested end-to-end; the protocol may still
141
- change. Feedback and interop with `tap` / `TICK.md` welcome.
159
+ The reference implementation covers file-backed messages, cursors, token-free wait,
160
+ structured tasks/dependencies, leases, normalized path locks, derived state and
161
+ adapter-neutral capability/status events. MCP wrappers, ACP/wake bridges and agent
162
+ execution remain separate future designs.
142
163
 
143
164
  ## License
144
165
 
@@ -79,11 +79,25 @@ python chat.py init review --members alice,bob --topic "code review"
79
79
  # alice posts to bob
80
80
  python chat.py post review --from alice --to bob --title "Schema v0.2" --body-file msg.md
81
81
 
82
- # bob reads what's new for him (only messages addressed to him or the group)
82
+ # bob reads what's new for him
83
83
  python chat.py read review --as bob
84
84
 
85
- # alice waits for bob's reply — burns 0 tokens while blocked
86
- python chat.py wait review --as alice --timeout 900
85
+ # create dependent work
86
+ python chat.py task create review T-0001 --from alice --title "Implement schema"
87
+ python chat.py task create review T-0002 --from alice --title "Review schema" --depends-on T-0001
88
+
89
+ # claim, renew and complete a ready task
90
+ python chat.py task claim review T-0001 --as alice --lease-seconds 900
91
+ python chat.py task renew review T-0001 --as alice --lease-seconds 900
92
+ python chat.py task done review T-0001 --as alice
93
+
94
+ # coordinate paths and state
95
+ python chat.py lock review src/schema.py --as alice --lease-seconds 900
96
+ python chat.py state review
97
+ python chat.py compact review --as alice
98
+
99
+ # capability handshake without claiming host-native execution
100
+ python chat.py event post review --from alice --type capability --harness generic-shell
87
101
  ```
88
102
 
89
103
  Root defaults to `~/agent-chat`; override with `$AGENT_CHAT_ROOT` or `--root`. Run
@@ -91,36 +105,43 @@ Root defaults to `~/agent-chat`; override with `$AGENT_CHAT_ROOT` or `--root`. R
91
105
 
92
106
  ## How it works
93
107
 
94
- - **Channels** — one folder per group chat; make as many as you need (`init`).
95
- - **Messages** — `NNNN-<from>-<slug>.md` with frontmatter (`from`, `to`, `reply_to`,
96
- `status`, `title`). `to: all` broadcasts.
97
- - **Cursors** — `read`/`wait` show only what's new for you and never re-scan the thread.
98
- - **Atomic** — sequence numbers are allocated under a lock (no duplicate `-11`); task
99
- claiming uses atomic rename (lose the race -> move on).
108
+ - **Channels** — one folder per group chat; make as many as needed with `init`.
109
+ - **Messages** — numbered Markdown files with frontmatter and immutable replies.
110
+ - **Cursors** — `read`/`wait` show only new relevant messages.
111
+ - **Tasks** — JSON records with dependencies, readiness, status and acceptance.
112
+ - **Leases** — owner-bound claims with expiry and explicit stale recovery.
113
+ - **Path locks** — normalized workspace-relative ownership records with conflict checks.
114
+ - **State** — deterministic derived `state.md`; compaction never replaces source records.
115
+ - **Events** — versioned capability/status JSON carried through ordinary messages.
116
+ - **Atomicity** — filesystem transactions, audit events and recovery markers protect concurrent work.
100
117
 
101
- Six rules keep peers from stepping on each other: one channel per topic; claim before
102
- you act; message don't chatter; `wait` don't poll-with-the-model; read since your
103
- cursor; reply in a new file. Full protocol in `SPEC.md`.
118
+ Agent Chat is a coordination data layer. It does not execute agents, assign models,
119
+ approve permissions, run MCP/ACP, or wake another process.
104
120
 
105
121
  ## Two modes, two budgets
106
122
 
107
- - **Live swarm** — N sessions running concurrently, `wait`-ing on each other. Buys
108
- wall-clock parallelism + fault tolerance; costs more tokens. For abundant budgets.
109
- - **Async handoff / audit** — post a summary when a session ends; the next session
110
- reads it. Nearly free — usable on a tight budget.
123
+ - **Live swarm** — N sessions run concurrently and use `wait` for wall-clock parallelism.
124
+ - **Async handoff / audit** — a session posts an artifact summary for the next session.
125
+
126
+ Both modes use the same file-backed protocol and remain auditable.
111
127
 
112
128
  ## Install & distribution
113
129
 
114
130
  - **As a CLI** — `pipx install agent-chat-plugin` then run `agent-chat`
115
131
  (or `uvx --from agent-chat-plugin agent-chat`).
116
- - **As a skill** — drop `SKILL.md` + `chat.py` into your agent's skills directory;
117
- works across tools that read the Agent Skills / `SKILL.md` standard.
118
- - **As a Claude Code plugin** — via a plugin marketplace.
132
+ - **As a Skill** — copy `SKILL.md` and `chat.py` into a compatible Skills directory.
133
+ - **As a Claude Code plugin** — install from the marketplace package.
134
+
135
+ The CLI/Skill protocol is portable. A portable protocol claim is not a first-class
136
+ native integration claim for a specific host; verify each host's manifest, hooks and
137
+ domain call separately.
119
138
 
120
139
  ## Status
121
140
 
122
- Early (v0). The reference implementation is tested end-to-end; the protocol may still
123
- change. Feedback and interop with `tap` / `TICK.md` welcome.
141
+ The reference implementation covers file-backed messages, cursors, token-free wait,
142
+ structured tasks/dependencies, leases, normalized path locks, derived state and
143
+ adapter-neutral capability/status events. MCP wrappers, ACP/wake bridges and agent
144
+ execution remain separate future designs.
124
145
 
125
146
  ## License
126
147