showtime-review 0.1.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.
- showtime_review-0.1.0/LICENSE +21 -0
- showtime_review-0.1.0/PKG-INFO +142 -0
- showtime_review-0.1.0/README.md +116 -0
- showtime_review-0.1.0/pyproject.toml +48 -0
- showtime_review-0.1.0/setup.cfg +4 -0
- showtime_review-0.1.0/src/showtime/__init__.py +3 -0
- showtime_review-0.1.0/src/showtime/cli.py +1119 -0
- showtime_review-0.1.0/src/showtime/config.json +48 -0
- showtime_review-0.1.0/src/showtime/skill/.showtime-adapter.json +1 -0
- showtime_review-0.1.0/src/showtime/skill/SKILL.md +131 -0
- showtime_review-0.1.0/src/showtime/skill/docs/config.md +114 -0
- showtime_review-0.1.0/src/showtime/ui/agent.js +31 -0
- showtime_review-0.1.0/src/showtime/ui/assets/index-6O1-qOeG.js +9 -0
- showtime_review-0.1.0/src/showtime/ui/assets/index-CXbtvS8P.css +1 -0
- showtime_review-0.1.0/src/showtime/ui/index.html +13 -0
- showtime_review-0.1.0/src/showtime_review.egg-info/PKG-INFO +142 -0
- showtime_review-0.1.0/src/showtime_review.egg-info/SOURCES.txt +18 -0
- showtime_review-0.1.0/src/showtime_review.egg-info/dependency_links.txt +1 -0
- showtime_review-0.1.0/src/showtime_review.egg-info/entry_points.txt +2 -0
- showtime_review-0.1.0/src/showtime_review.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Darrick Oliver
|
|
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,142 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: showtime-review
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Browser review loop for agent-authored plans
|
|
5
|
+
Author: Darrick Oliver
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Darrick-Oliver/showtime-skill
|
|
8
|
+
Project-URL: Repository, https://github.com/Darrick-Oliver/showtime-skill
|
|
9
|
+
Project-URL: Issues, https://github.com/Darrick-Oliver/showtime-skill/issues
|
|
10
|
+
Keywords: agent-skills,planning,review,cli
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
21
|
+
Classifier: Topic :: Software Development :: User Interfaces
|
|
22
|
+
Requires-Python: >=3.8
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Dynamic: license-file
|
|
26
|
+
|
|
27
|
+
# Showtime
|
|
28
|
+
|
|
29
|
+
An [Agent Skills](https://agentskills.io) review loop for plans. An agent turns
|
|
30
|
+
a finished plan into a single-page HTML artifact, hosts it in a dark browser
|
|
31
|
+
shell, and blocks until the user approves or returns a comment batch.
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
- Agent-facing contract: [src/showtime/skill/SKILL.md](src/showtime/skill/SKILL.md)
|
|
36
|
+
- Runtime: Python 3.8+, standard library only
|
|
37
|
+
- Contributor UI: React, TypeScript, Vite, and Tailwind
|
|
38
|
+
|
|
39
|
+
## Install
|
|
40
|
+
|
|
41
|
+
Install the runtime once, then copy thin skill adapters into every harness that
|
|
42
|
+
should discover Showtime:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
uv tool install showtime-review
|
|
46
|
+
showtime skill install agents
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`pipx install showtime-review` is equivalent. Before the PyPI release exists,
|
|
50
|
+
install from the source repository:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
uv tool install git+https://github.com/Darrick-Oliver/showtime-skill
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Known destinations are `agents`, `claude`, `codex`, and `pi`; several may be
|
|
57
|
+
installed together. Use `--destination` for another harness. `skill install`
|
|
58
|
+
never overwrites a non-empty directory. To replace an old full clone with a
|
|
59
|
+
thin adapter and timestamped backup, preview the operation first:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
showtime skill migrate agents --dry-run
|
|
63
|
+
showtime skill migrate agents
|
|
64
|
+
showtime doctor
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Update
|
|
68
|
+
|
|
69
|
+
Upgrade the shared runtime, then refresh each installed adapter:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
uv tool upgrade showtime-review
|
|
73
|
+
showtime skill install agents
|
|
74
|
+
showtime doctor
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
For pipx installations, use `pipx upgrade showtime-review` followed by the same
|
|
78
|
+
adapter command. Managed adapter updates are idempotent. Runtime upgrades never
|
|
79
|
+
touch project artifacts or sidecars.
|
|
80
|
+
|
|
81
|
+
## Architecture
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
src/showtime/cli.py CLI, stdlib server, review protocol, adapter installer
|
|
85
|
+
serve ARTIFACT host the review and block for its outcome
|
|
86
|
+
reply ARTIFACT FILE validated agent reply channel into the sidecar
|
|
87
|
+
reattach ARTIFACT ID repair or accept an orphaned thread anchor
|
|
88
|
+
config resolve and print the section contract
|
|
89
|
+
doctor verify runtime assets and installed adapters
|
|
90
|
+
skill install|migrate manage thin harness adapters
|
|
91
|
+
|
|
92
|
+
src/showtime/config.json runtime-default section contract
|
|
93
|
+
src/showtime/ui/ compiled shell and iframe agent, bundled in the wheel
|
|
94
|
+
src/showtime/skill/ thin Agent Skill adapter and its authoring docs
|
|
95
|
+
scripts/showtime.py source-checkout compatibility launcher
|
|
96
|
+
|
|
97
|
+
ui/src/shell/ React shell: chips, popover, drawer, composers
|
|
98
|
+
ui/src/agent/ iframe agent: quote anchoring and layout bridge
|
|
99
|
+
ui/src/protocol.ts shared protocol and sidecar types
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The shell frames the artifact in an iframe and communicates with the injected
|
|
103
|
+
iframe agent over `postMessage`. Threads persist in a server-owned sidecar next
|
|
104
|
+
to the artifact. The runtime binds `127.0.0.1` only. Approval is stamped into
|
|
105
|
+
the artifact itself.
|
|
106
|
+
|
|
107
|
+
Config resolves whole-file layers in this order: `<cwd>/.showtime/config.json`,
|
|
108
|
+
`~/.showtime/config.json`, then the runtime default. See the adapter's
|
|
109
|
+
`docs/config.md` for its schema and section obligations.
|
|
110
|
+
|
|
111
|
+
## Developing
|
|
112
|
+
|
|
113
|
+
The Python runtime has no dependencies. Node 20+ is required only to change the
|
|
114
|
+
shell:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
cd ui
|
|
118
|
+
npm install
|
|
119
|
+
npm run build # typecheck + builds -> src/showtime/ui/
|
|
120
|
+
npm test # Vitest unit tests
|
|
121
|
+
npm run e2e # Playwright against scripts/showtime.py
|
|
122
|
+
npm run dev # shell only; artifact routes require `showtime serve`
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
`src/showtime/ui/` is committed and included as wheel package data. Rebuild and
|
|
126
|
+
commit it with every UI change; there is no CI check for stale assets.
|
|
127
|
+
|
|
128
|
+
## Release
|
|
129
|
+
|
|
130
|
+
The package version has one source: `src/showtime/__init__.py`. To release:
|
|
131
|
+
|
|
132
|
+
1. Update `__version__` and commit it.
|
|
133
|
+
2. Create a GitHub release tagged with the same version prefixed by `v`, such
|
|
134
|
+
as `v0.2.0`.
|
|
135
|
+
3. The `publish.yml` workflow verifies the tag, builds the wheel and source
|
|
136
|
+
distribution, and publishes them to PyPI through OIDC trusted publishing.
|
|
137
|
+
|
|
138
|
+
One-time PyPI setup is required: register a pending trusted publisher for
|
|
139
|
+
project `showtime-review`, owner `Darrick-Oliver`, repository
|
|
140
|
+
`showtime-skill`, workflow `publish.yml`, and GitHub environment `pypi`. Add
|
|
141
|
+
required reviewers to that environment before the first release. No PyPI token
|
|
142
|
+
or GitHub secret is needed.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Showtime
|
|
2
|
+
|
|
3
|
+
An [Agent Skills](https://agentskills.io) review loop for plans. An agent turns
|
|
4
|
+
a finished plan into a single-page HTML artifact, hosts it in a dark browser
|
|
5
|
+
shell, and blocks until the user approves or returns a comment batch.
|
|
6
|
+
|
|
7
|
+

|
|
8
|
+
|
|
9
|
+
- Agent-facing contract: [src/showtime/skill/SKILL.md](src/showtime/skill/SKILL.md)
|
|
10
|
+
- Runtime: Python 3.8+, standard library only
|
|
11
|
+
- Contributor UI: React, TypeScript, Vite, and Tailwind
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
Install the runtime once, then copy thin skill adapters into every harness that
|
|
16
|
+
should discover Showtime:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
uv tool install showtime-review
|
|
20
|
+
showtime skill install agents
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
`pipx install showtime-review` is equivalent. Before the PyPI release exists,
|
|
24
|
+
install from the source repository:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
uv tool install git+https://github.com/Darrick-Oliver/showtime-skill
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Known destinations are `agents`, `claude`, `codex`, and `pi`; several may be
|
|
31
|
+
installed together. Use `--destination` for another harness. `skill install`
|
|
32
|
+
never overwrites a non-empty directory. To replace an old full clone with a
|
|
33
|
+
thin adapter and timestamped backup, preview the operation first:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
showtime skill migrate agents --dry-run
|
|
37
|
+
showtime skill migrate agents
|
|
38
|
+
showtime doctor
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Update
|
|
42
|
+
|
|
43
|
+
Upgrade the shared runtime, then refresh each installed adapter:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uv tool upgrade showtime-review
|
|
47
|
+
showtime skill install agents
|
|
48
|
+
showtime doctor
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
For pipx installations, use `pipx upgrade showtime-review` followed by the same
|
|
52
|
+
adapter command. Managed adapter updates are idempotent. Runtime upgrades never
|
|
53
|
+
touch project artifacts or sidecars.
|
|
54
|
+
|
|
55
|
+
## Architecture
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
src/showtime/cli.py CLI, stdlib server, review protocol, adapter installer
|
|
59
|
+
serve ARTIFACT host the review and block for its outcome
|
|
60
|
+
reply ARTIFACT FILE validated agent reply channel into the sidecar
|
|
61
|
+
reattach ARTIFACT ID repair or accept an orphaned thread anchor
|
|
62
|
+
config resolve and print the section contract
|
|
63
|
+
doctor verify runtime assets and installed adapters
|
|
64
|
+
skill install|migrate manage thin harness adapters
|
|
65
|
+
|
|
66
|
+
src/showtime/config.json runtime-default section contract
|
|
67
|
+
src/showtime/ui/ compiled shell and iframe agent, bundled in the wheel
|
|
68
|
+
src/showtime/skill/ thin Agent Skill adapter and its authoring docs
|
|
69
|
+
scripts/showtime.py source-checkout compatibility launcher
|
|
70
|
+
|
|
71
|
+
ui/src/shell/ React shell: chips, popover, drawer, composers
|
|
72
|
+
ui/src/agent/ iframe agent: quote anchoring and layout bridge
|
|
73
|
+
ui/src/protocol.ts shared protocol and sidecar types
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
The shell frames the artifact in an iframe and communicates with the injected
|
|
77
|
+
iframe agent over `postMessage`. Threads persist in a server-owned sidecar next
|
|
78
|
+
to the artifact. The runtime binds `127.0.0.1` only. Approval is stamped into
|
|
79
|
+
the artifact itself.
|
|
80
|
+
|
|
81
|
+
Config resolves whole-file layers in this order: `<cwd>/.showtime/config.json`,
|
|
82
|
+
`~/.showtime/config.json`, then the runtime default. See the adapter's
|
|
83
|
+
`docs/config.md` for its schema and section obligations.
|
|
84
|
+
|
|
85
|
+
## Developing
|
|
86
|
+
|
|
87
|
+
The Python runtime has no dependencies. Node 20+ is required only to change the
|
|
88
|
+
shell:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
cd ui
|
|
92
|
+
npm install
|
|
93
|
+
npm run build # typecheck + builds -> src/showtime/ui/
|
|
94
|
+
npm test # Vitest unit tests
|
|
95
|
+
npm run e2e # Playwright against scripts/showtime.py
|
|
96
|
+
npm run dev # shell only; artifact routes require `showtime serve`
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`src/showtime/ui/` is committed and included as wheel package data. Rebuild and
|
|
100
|
+
commit it with every UI change; there is no CI check for stale assets.
|
|
101
|
+
|
|
102
|
+
## Release
|
|
103
|
+
|
|
104
|
+
The package version has one source: `src/showtime/__init__.py`. To release:
|
|
105
|
+
|
|
106
|
+
1. Update `__version__` and commit it.
|
|
107
|
+
2. Create a GitHub release tagged with the same version prefixed by `v`, such
|
|
108
|
+
as `v0.2.0`.
|
|
109
|
+
3. The `publish.yml` workflow verifies the tag, builds the wheel and source
|
|
110
|
+
distribution, and publishes them to PyPI through OIDC trusted publishing.
|
|
111
|
+
|
|
112
|
+
One-time PyPI setup is required: register a pending trusted publisher for
|
|
113
|
+
project `showtime-review`, owner `Darrick-Oliver`, repository
|
|
114
|
+
`showtime-skill`, workflow `publish.yml`, and GitHub environment `pypi`. Add
|
|
115
|
+
required reviewers to that environment before the first release. No PyPI token
|
|
116
|
+
or GitHub secret is needed.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "showtime-review"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Browser review loop for agent-authored plans"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.8"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [{ name = "Darrick Oliver" }]
|
|
13
|
+
keywords = ["agent-skills", "planning", "review", "cli"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Programming Language :: Python :: 3 :: Only",
|
|
18
|
+
"Programming Language :: Python :: 3.8",
|
|
19
|
+
"Programming Language :: Python :: 3.9",
|
|
20
|
+
"Programming Language :: Python :: 3.10",
|
|
21
|
+
"Programming Language :: Python :: 3.11",
|
|
22
|
+
"Programming Language :: Python :: 3.12",
|
|
23
|
+
"Programming Language :: Python :: 3.13",
|
|
24
|
+
"Programming Language :: Python :: 3.14",
|
|
25
|
+
"Topic :: Software Development :: User Interfaces",
|
|
26
|
+
]
|
|
27
|
+
dependencies = []
|
|
28
|
+
|
|
29
|
+
[project.urls]
|
|
30
|
+
Homepage = "https://github.com/Darrick-Oliver/showtime-skill"
|
|
31
|
+
Repository = "https://github.com/Darrick-Oliver/showtime-skill"
|
|
32
|
+
Issues = "https://github.com/Darrick-Oliver/showtime-skill/issues"
|
|
33
|
+
|
|
34
|
+
[project.scripts]
|
|
35
|
+
showtime = "showtime.cli:main"
|
|
36
|
+
|
|
37
|
+
[tool.setuptools]
|
|
38
|
+
package-dir = { "" = "src" }
|
|
39
|
+
include-package-data = true
|
|
40
|
+
|
|
41
|
+
[tool.setuptools.dynamic]
|
|
42
|
+
version = { attr = "showtime.__version__" }
|
|
43
|
+
|
|
44
|
+
[tool.setuptools.packages.find]
|
|
45
|
+
where = ["src"]
|
|
46
|
+
|
|
47
|
+
[tool.setuptools.package-data]
|
|
48
|
+
showtime = ["config.json", "skill/.showtime-adapter.json", "skill/SKILL.md", "skill/docs/*.md", "ui/index.html", "ui/agent.js", "ui/assets/*"]
|