twf-cli 0.9.0__py3-none-macosx_11_0_arm64.whl

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.
twf_cli/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """twf-cli: a thin Python wrapper around the bundled twf binary."""
2
+
3
+ __version__ = "0.9.0"
twf_cli/__main__.py ADDED
@@ -0,0 +1,46 @@
1
+ """Resolve and exec the bundled twf binary with the wrapper's argv.
2
+
3
+ Pattern: the wheel ships a single platform-specific binary at
4
+ ``twf_cli/_binary/twf`` (or ``twf.exe`` on Windows). The wrapper's
5
+ console-script (``twf = twf_cli.__main__:main``) execs it.
6
+
7
+ On POSIX, ``os.execv`` replaces the Python process so the binary's exit
8
+ code and signals propagate directly. On Windows, ``os.execv`` exists but
9
+ doesn't quite share the same semantics, so we use ``subprocess`` and
10
+ forward the return code.
11
+ """
12
+ import os
13
+ import sys
14
+ from pathlib import Path
15
+
16
+
17
+ def _binary_path() -> Path:
18
+ here = Path(__file__).parent / "_binary"
19
+ name = "twf.exe" if sys.platform == "win32" else "twf"
20
+ return here / name
21
+
22
+
23
+ def main() -> int:
24
+ binary = _binary_path()
25
+ if not binary.exists():
26
+ sys.stderr.write(
27
+ f"twf-cli: bundled binary not found at {binary}.\n"
28
+ "Reinstall twf-cli from PyPI. If you installed from source, "
29
+ "stage the binary into this directory first.\n"
30
+ )
31
+ return 1
32
+
33
+ if sys.platform == "win32":
34
+ import subprocess
35
+
36
+ return subprocess.call([str(binary), *sys.argv[1:]])
37
+
38
+ # POSIX: replace this process with the binary so signals + exit code
39
+ # propagate naturally.
40
+ os.execv(str(binary), [str(binary), *sys.argv[1:]])
41
+ # Unreachable, but satisfies type checkers / linters.
42
+ return 0
43
+
44
+
45
+ if __name__ == "__main__":
46
+ sys.exit(main())
twf_cli/_binary/twf ADDED
Binary file
@@ -0,0 +1,89 @@
1
+ Metadata-Version: 2.4
2
+ Name: twf-cli
3
+ Version: 0.9.0
4
+ Summary: Toolchain for designing and validating entire Temporal systems in .twf — CLI, language server, and MCP server.
5
+ Project-URL: Homepage, https://github.com/jmbarzee/temporal-architect
6
+ Project-URL: Source, https://github.com/jmbarzee/temporal-architect-dist
7
+ Project-URL: Issues, https://github.com/jmbarzee/temporal-architect-dist/issues
8
+ Author: Jamie Barzee
9
+ License: MIT
10
+ Keywords: architecture,cli,lsp,mcp,system design,temporal,twf,workflow
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Operating System :: MacOS
13
+ Classifier: Operating System :: Microsoft :: Windows
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Topic :: Software Development
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+
20
+ # twf-cli
21
+
22
+ The `twf` CLI for Python projects — design and validate **entire Temporal
23
+ systems** in `.twf`, emit the deployment graph, and serve Language Server /
24
+ MCP protocols. A thin wrapper around the bundled platform binary: same tool,
25
+ same flags, same output as the standalone `twf` distribution, installable via
26
+ `pip`. See the [project README](https://github.com/jmbarzee/temporal-architect)
27
+ for the full picture (visualizer, skills, examples).
28
+
29
+ ## Install
30
+
31
+ ```bash
32
+ pip install twf-cli
33
+ twf --help
34
+ ```
35
+
36
+ The wheel for your platform ships the matching `twf` binary. Supported
37
+ platforms (one wheel each):
38
+
39
+ | Platform | Wheel tag |
40
+ |---|---|
41
+ | macOS arm64 (Apple Silicon) | `macosx_11_0_arm64` |
42
+ | macOS x64 (Intel) | `macosx_10_15_x86_64` |
43
+ | Linux x64 | `manylinux2014_x86_64` |
44
+ | Linux arm64 | `manylinux2014_aarch64` |
45
+ | Windows x64 | `win_amd64` |
46
+
47
+ ## Use as an MCP server
48
+
49
+ Once installed:
50
+
51
+ ```json
52
+ {
53
+ "mcpServers": {
54
+ "twf": {
55
+ "command": "twf",
56
+ "args": ["mcp"]
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ Works in any MCP-compatible client (Claude Desktop, Cursor MCP,
63
+ Continue, Windsurf, Zed). See the
64
+ [main project README](https://github.com/jmbarzee/temporal-architect) for
65
+ the full MCP feature surface.
66
+
67
+ ## Subprocess use from Python
68
+
69
+ ```python
70
+ import subprocess
71
+ import json
72
+
73
+ result = subprocess.run(
74
+ ["twf", "parse", "workflow.twf"],
75
+ capture_output=True,
76
+ text=True,
77
+ check=True,
78
+ )
79
+ ast = json.loads(result.stdout)
80
+ ```
81
+
82
+ ## Versioning
83
+
84
+ Versions are synced to the upstream `temporal-architect` Git tag, so `0.3.x`
85
+ of this package corresponds to `v0.3.x` of the toolchain.
86
+
87
+ ## License
88
+
89
+ MIT. See [LICENSE](https://github.com/jmbarzee/temporal-architect/blob/main/LICENSE).
@@ -0,0 +1,7 @@
1
+ twf_cli/__init__.py,sha256=TuvtrzB1L_0DtvBQ_jN-3sdg5fuVIvKLMTvX1nqpBEM,91
2
+ twf_cli/__main__.py,sha256=vqP9iQTgvvzwnwQGLVNiE8XQkEApv7BlN3I_lSqxxFo,1431
3
+ twf_cli/_binary/twf,sha256=Ik-sxqEHuoWHg5ud7x2I4QI_K8H9AN1lDJAIeWnFi_Q,17595346
4
+ twf_cli-0.9.0.dist-info/METADATA,sha256=_6-WNmM04bt151GN2s47HB6D9DKNllycB0NSbyFBgvE,2587
5
+ twf_cli-0.9.0.dist-info/WHEEL,sha256=HORzynITIhbJIvameEsMHqxPAqxnsl0biSKiW5kn4Ks,102
6
+ twf_cli-0.9.0.dist-info/entry_points.txt,sha256=nx2Dn14Ciffkyh3B4qEcs6Fj-N16--zJefsecSSfOHw,46
7
+ twf_cli-0.9.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: hatchling 1.30.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-macosx_11_0_arm64
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ twf = twf_cli.__main__:main