ffwf-tau 0.9.3__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.
ffwf_tau-0.9.3/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Fight Fire with Fire Robotics, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.4
2
+ Name: ffwf-tau
3
+ Version: 0.9.3
4
+ Summary: τ: the guessable name. Installs ffwf-tau-coding-agent[tui] — the `tau` command with its TUI.
5
+ Author: Fight Fire with Fire Robotics, LLC
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://ffwfrobotics.github.io/tau/
8
+ Project-URL: Documentation, https://ffwfrobotics.github.io/tau/
9
+ Project-URL: Repository, https://github.com/jmccardle/tau
10
+ Project-URL: Issues, https://github.com/jmccardle/tau/issues
11
+ Requires-Python: >=3.11
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: ffwf-tau-coding-agent[tui]==0.9.3
15
+ Dynamic: license-file
16
+
17
+ # ffwf-tau
18
+
19
+ The guessable name for **Tau**, a programmable coding-agent harness with an
20
+ optional TUI.
21
+
22
+ ```bash
23
+ pip install ffwf-tau
24
+ tau
25
+ ```
26
+
27
+ This distribution contains no code. It depends on
28
+ `ffwf-tau-coding-agent[tui]` at the same version and nothing else, so the two
29
+ commands above install the `tau` program with its interface and start it.
30
+
31
+ ## Why it exists
32
+
33
+ Tau publishes four distributions, and none of them is called `ffwf-tau`:
34
+
35
+ | Distribution | Imports as | What it is |
36
+ |---|---|---|
37
+ | `ffwf-tau-llm` | `tau_llm` | the provider and streaming layer |
38
+ | `ffwf-tau-agent-core` | `tau_agent_core` | the agent loop, tools, sessions, extensions |
39
+ | `ffwf-tau-coding-agent` | `tau_coding_agent` | the `tau` command and the Textual TUI |
40
+ | `ffwf-tau-jmfts` | `tau_jmfts` | the optional JMFTS session store |
41
+
42
+ `pip install ffwf-tau` used to fail with `could not find a version that
43
+ satisfies the requirement`, which reads as "wrong Python" or "wrong index" and
44
+ is neither. It also matches the name of a command Tau already installs: the
45
+ `ffwf-tau` executable is the prefixed spelling of `tau`, for scripts that need a
46
+ name PyPI guarantees. One name now means one thing in both places.
47
+
48
+ Note the `ffwf-` prefix throughout. `tau`, `tau-llm`, and `tau-ai` on PyPI are
49
+ unrelated projects.
50
+
51
+ ## What you get, and what you do not
52
+
53
+ `ffwf-tau` resolves to `ffwf-tau-coding-agent[tui]`: the CLI, the headless
54
+ modes, and the Textual interface.
55
+
56
+ It deliberately does **not** pull in `[jmfts]`. The JMFTS session store needs a
57
+ running server, so an install that added it by default would answer a question
58
+ nobody asked. Install it when you want it:
59
+
60
+ ```bash
61
+ pip install 'ffwf-tau-coding-agent[tui,jmfts]'
62
+ ```
63
+
64
+ If you want the headless agent without any interface libraries — 15 packages
65
+ instead of 27 — install the real distribution rather than this one:
66
+
67
+ ```bash
68
+ pip install ffwf-tau-coding-agent
69
+ ```
70
+
71
+ ## Everything else
72
+
73
+ Documentation: <https://ffwfrobotics.github.io/tau/>
74
+
75
+ Repository: <https://github.com/jmccardle/tau>
76
+
77
+ MIT © Fight Fire with Fire Robotics, LLC
@@ -0,0 +1,61 @@
1
+ # ffwf-tau
2
+
3
+ The guessable name for **Tau**, a programmable coding-agent harness with an
4
+ optional TUI.
5
+
6
+ ```bash
7
+ pip install ffwf-tau
8
+ tau
9
+ ```
10
+
11
+ This distribution contains no code. It depends on
12
+ `ffwf-tau-coding-agent[tui]` at the same version and nothing else, so the two
13
+ commands above install the `tau` program with its interface and start it.
14
+
15
+ ## Why it exists
16
+
17
+ Tau publishes four distributions, and none of them is called `ffwf-tau`:
18
+
19
+ | Distribution | Imports as | What it is |
20
+ |---|---|---|
21
+ | `ffwf-tau-llm` | `tau_llm` | the provider and streaming layer |
22
+ | `ffwf-tau-agent-core` | `tau_agent_core` | the agent loop, tools, sessions, extensions |
23
+ | `ffwf-tau-coding-agent` | `tau_coding_agent` | the `tau` command and the Textual TUI |
24
+ | `ffwf-tau-jmfts` | `tau_jmfts` | the optional JMFTS session store |
25
+
26
+ `pip install ffwf-tau` used to fail with `could not find a version that
27
+ satisfies the requirement`, which reads as "wrong Python" or "wrong index" and
28
+ is neither. It also matches the name of a command Tau already installs: the
29
+ `ffwf-tau` executable is the prefixed spelling of `tau`, for scripts that need a
30
+ name PyPI guarantees. One name now means one thing in both places.
31
+
32
+ Note the `ffwf-` prefix throughout. `tau`, `tau-llm`, and `tau-ai` on PyPI are
33
+ unrelated projects.
34
+
35
+ ## What you get, and what you do not
36
+
37
+ `ffwf-tau` resolves to `ffwf-tau-coding-agent[tui]`: the CLI, the headless
38
+ modes, and the Textual interface.
39
+
40
+ It deliberately does **not** pull in `[jmfts]`. The JMFTS session store needs a
41
+ running server, so an install that added it by default would answer a question
42
+ nobody asked. Install it when you want it:
43
+
44
+ ```bash
45
+ pip install 'ffwf-tau-coding-agent[tui,jmfts]'
46
+ ```
47
+
48
+ If you want the headless agent without any interface libraries — 15 packages
49
+ instead of 27 — install the real distribution rather than this one:
50
+
51
+ ```bash
52
+ pip install ffwf-tau-coding-agent
53
+ ```
54
+
55
+ ## Everything else
56
+
57
+ Documentation: <https://ffwfrobotics.github.io/tau/>
58
+
59
+ Repository: <https://github.com/jmccardle/tau>
60
+
61
+ MIT © Fight Fire with Fire Robotics, LLC
@@ -0,0 +1,52 @@
1
+ [project]
2
+ name = "ffwf-tau"
3
+ # The version is not a literal here. Each distribution reads it from its own
4
+ # package's ``__version__``, so the wheel metadata and what the code reports can
5
+ # never disagree -- they are the same line. Bump that line to cut a release.
6
+ #
7
+ # This distribution ships no functional code, and ``tau_meta/__init__.py`` exists
8
+ # only to hold that line. The alternative -- a plain ``version = "..."`` literal,
9
+ # the exemption the repo-root pyproject gets -- is the second copy of the number
10
+ # that tests/test_packaging.py forbids by name, and this tree already shipped
11
+ # ``0.0.0`` in four pyprojects while ``tau --version`` said ``0.9.1``. A one-line
12
+ # module is cheaper than an exception to the rule that caught that.
13
+ dynamic = ["version"]
14
+ description = "τ: the guessable name. Installs ffwf-tau-coding-agent[tui] — the `tau` command with its TUI."
15
+ requires-python = ">=3.11"
16
+ readme = "README.md"
17
+ # SPDX expression + the file itself (PEP 639), which is why build-system below
18
+ # needs setuptools >= 77.0.3: earlier versions ignore `license-files` and the
19
+ # wheel ships without the licence text. Each package carries its own copy of the
20
+ # repo-root LICENSE because a wheel is built from one package directory and
21
+ # cannot reach outside it.
22
+ license = "MIT"
23
+ license-files = ["LICENSE"]
24
+ authors = [{ name = "Fight Fire with Fire Robotics, LLC" }]
25
+ # The whole distribution. `[tui]` and not the bare package, because someone who
26
+ # types the shortest name wants the program: `tau` with no arguments launches the
27
+ # TUI, and without this extra that is the one thing it cannot do. `[jmfts]` is
28
+ # deliberately absent -- it needs a running server, and an install that pulls one
29
+ # in by default would be answering a question nobody asked.
30
+ dependencies = [
31
+ "ffwf-tau-coding-agent[tui]==0.9.3",
32
+ ]
33
+
34
+ # The PUBLIC repository only. This tree has a second, private git remote whose
35
+ # history is unfiltered; its hostname must never reach this file or a README,
36
+ # because both are uploaded verbatim (pyproject.toml ships inside the sdist).
37
+ # tests/test_packaging.py enforces that.
38
+ [project.urls]
39
+ Homepage = "https://ffwfrobotics.github.io/tau/"
40
+ Documentation = "https://ffwfrobotics.github.io/tau/"
41
+ Repository = "https://github.com/jmccardle/tau"
42
+ Issues = "https://github.com/jmccardle/tau/issues"
43
+
44
+ [build-system]
45
+ requires = ["setuptools>=77.0.3", "wheel"]
46
+ build-backend = "setuptools.build_meta"
47
+
48
+ [tool.setuptools.packages.find]
49
+ where = ["src"]
50
+
51
+ [tool.setuptools.dynamic]
52
+ version = { attr = "tau_meta.__version__" }
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,77 @@
1
+ Metadata-Version: 2.4
2
+ Name: ffwf-tau
3
+ Version: 0.9.3
4
+ Summary: τ: the guessable name. Installs ffwf-tau-coding-agent[tui] — the `tau` command with its TUI.
5
+ Author: Fight Fire with Fire Robotics, LLC
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://ffwfrobotics.github.io/tau/
8
+ Project-URL: Documentation, https://ffwfrobotics.github.io/tau/
9
+ Project-URL: Repository, https://github.com/jmccardle/tau
10
+ Project-URL: Issues, https://github.com/jmccardle/tau/issues
11
+ Requires-Python: >=3.11
12
+ Description-Content-Type: text/markdown
13
+ License-File: LICENSE
14
+ Requires-Dist: ffwf-tau-coding-agent[tui]==0.9.3
15
+ Dynamic: license-file
16
+
17
+ # ffwf-tau
18
+
19
+ The guessable name for **Tau**, a programmable coding-agent harness with an
20
+ optional TUI.
21
+
22
+ ```bash
23
+ pip install ffwf-tau
24
+ tau
25
+ ```
26
+
27
+ This distribution contains no code. It depends on
28
+ `ffwf-tau-coding-agent[tui]` at the same version and nothing else, so the two
29
+ commands above install the `tau` program with its interface and start it.
30
+
31
+ ## Why it exists
32
+
33
+ Tau publishes four distributions, and none of them is called `ffwf-tau`:
34
+
35
+ | Distribution | Imports as | What it is |
36
+ |---|---|---|
37
+ | `ffwf-tau-llm` | `tau_llm` | the provider and streaming layer |
38
+ | `ffwf-tau-agent-core` | `tau_agent_core` | the agent loop, tools, sessions, extensions |
39
+ | `ffwf-tau-coding-agent` | `tau_coding_agent` | the `tau` command and the Textual TUI |
40
+ | `ffwf-tau-jmfts` | `tau_jmfts` | the optional JMFTS session store |
41
+
42
+ `pip install ffwf-tau` used to fail with `could not find a version that
43
+ satisfies the requirement`, which reads as "wrong Python" or "wrong index" and
44
+ is neither. It also matches the name of a command Tau already installs: the
45
+ `ffwf-tau` executable is the prefixed spelling of `tau`, for scripts that need a
46
+ name PyPI guarantees. One name now means one thing in both places.
47
+
48
+ Note the `ffwf-` prefix throughout. `tau`, `tau-llm`, and `tau-ai` on PyPI are
49
+ unrelated projects.
50
+
51
+ ## What you get, and what you do not
52
+
53
+ `ffwf-tau` resolves to `ffwf-tau-coding-agent[tui]`: the CLI, the headless
54
+ modes, and the Textual interface.
55
+
56
+ It deliberately does **not** pull in `[jmfts]`. The JMFTS session store needs a
57
+ running server, so an install that added it by default would answer a question
58
+ nobody asked. Install it when you want it:
59
+
60
+ ```bash
61
+ pip install 'ffwf-tau-coding-agent[tui,jmfts]'
62
+ ```
63
+
64
+ If you want the headless agent without any interface libraries — 15 packages
65
+ instead of 27 — install the real distribution rather than this one:
66
+
67
+ ```bash
68
+ pip install ffwf-tau-coding-agent
69
+ ```
70
+
71
+ ## Everything else
72
+
73
+ Documentation: <https://ffwfrobotics.github.io/tau/>
74
+
75
+ Repository: <https://github.com/jmccardle/tau>
76
+
77
+ MIT © Fight Fire with Fire Robotics, LLC
@@ -0,0 +1,9 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ src/ffwf_tau.egg-info/PKG-INFO
5
+ src/ffwf_tau.egg-info/SOURCES.txt
6
+ src/ffwf_tau.egg-info/dependency_links.txt
7
+ src/ffwf_tau.egg-info/requires.txt
8
+ src/ffwf_tau.egg-info/top_level.txt
9
+ src/tau_meta/__init__.py
@@ -0,0 +1 @@
1
+ ffwf-tau-coding-agent[tui]==0.9.3
@@ -0,0 +1 @@
1
+ tau_meta
@@ -0,0 +1,12 @@
1
+ """The version literal for the ``ffwf-tau`` metapackage, and nothing else.
2
+
3
+ ``ffwf-tau`` ships no functional code: it is a name that resolves to
4
+ ``ffwf-tau-coding-agent[tui]``. This module exists so that its wheel version is
5
+ read from a package attribute like every other distribution in this tree, rather
6
+ than from a second copy of the number written into a pyproject.
7
+
8
+ Nothing imports this. ``tau_coding_agent.__version__`` is the version the running
9
+ program reports.
10
+ """
11
+
12
+ __version__ = "0.9.3"