ai-ify 0.1.0__py3-none-any.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.
@@ -0,0 +1,107 @@
1
+ Metadata-Version: 2.4
2
+ Name: ai-ify
3
+ Version: 0.1.0
4
+ Summary: Embed a subscription-backed AI agent inside any app, controlled the way the developer allows
5
+ Author: Brancaccio Lab
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/Jay2owe/ai-ify
8
+ Project-URL: Documentation, https://github.com/Jay2owe/ai-ify/blob/main/docs/embedding-guide.md
9
+ Project-URL: Issues, https://github.com/Jay2owe/ai-ify/issues
10
+ Project-URL: Changelog, https://github.com/Jay2owe/ai-ify/blob/main/CHANGELOG.md
11
+ Keywords: ai agent,embedded assistant,agent client protocol,claude,codex
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Framework :: FastAPI
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Programming Language :: Python :: 3.14
24
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
25
+ Requires-Python: >=3.10
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ License-File: src/aiify/static/vendor/PAGE_CONTROLLER_LICENSE
29
+ Requires-Dist: agent-client-protocol<0.13,>=0.12
30
+ Provides-Extra: web
31
+ Requires-Dist: fastapi>=0.115; extra == "web"
32
+ Requires-Dist: uvicorn>=0.30; extra == "web"
33
+ Requires-Dist: websockets>=12; extra == "web"
34
+ Provides-Extra: test
35
+ Requires-Dist: pytest>=8.0; extra == "test"
36
+ Requires-Dist: httpx>=0.27; extra == "test"
37
+ Requires-Dist: playwright<2,>=1.49; extra == "test"
38
+ Provides-Extra: release
39
+ Requires-Dist: build>=1.2; extra == "release"
40
+ Requires-Dist: twine>=6.1; extra == "release"
41
+ Dynamic: license-file
42
+
43
+ # ai-ify
44
+
45
+ Embed an AI agent inside any app. The person chats with it in a panel inside
46
+ the app (or opens a console on the same conversation); the agent runs on the
47
+ Claude or Codex subscription already logged in on the machine, and controls the
48
+ app only in the ways the app's developer allows: backend actions, named UI
49
+ commands, and an automatic tree of the page's controls.
50
+
51
+ ## Install
52
+
53
+ ```bash
54
+ pip install "ai-ify[web]" # chat panel for FastAPI apps
55
+ pip install ai-ify # control port and the aiify command only
56
+ ```
57
+
58
+ Also needed: Node.js with `npx` (the first chat downloads the agent adapter), and
59
+ a signed-in subscription (`claude` once, or `codex login`). No API key is used.
60
+
61
+ ## Use
62
+
63
+ ```python
64
+ from aiify import Agent, Profile
65
+ from aiify.actions import from_functions
66
+
67
+ agent = Agent(
68
+ app="myapp",
69
+ actions=from_functions({"notes.add": add_note, "notes.clear": clear_notes},
70
+ destructive=["notes.clear"]),
71
+ profiles={"default": Profile(provider="claude")},
72
+ )
73
+ agent.mount(fastapi_app) # chat panel + websocket + local control port
74
+ ```
75
+
76
+ and in the page:
77
+
78
+ ```html
79
+ <script src="/aiify/panel.js" defer></script>
80
+ ```
81
+
82
+ Destructive actions show a "Run it?" card before they run. Agents (the embedded
83
+ one, or any other on the machine) reach the running app with the `aiify` command:
84
+ `aiify apps`, `aiify --app myapp action.list`, `aiify --app myapp ui tree`.
85
+
86
+ ## Documentation
87
+
88
+ - Usage guide, shipped with the package: `python -m aiify.context [topic]`, or
89
+ `from aiify import context; print(context.read())`. Also as
90
+ [README_AI.md](https://github.com/Jay2owe/ai-ify/blob/main/README_AI.md).
91
+ - [Embedding guide](https://github.com/Jay2owe/ai-ify/blob/main/docs/embedding-guide.md),
92
+ with Circadian Workbench as the worked example.
93
+ - [Message format](https://github.com/Jay2owe/ai-ify/blob/main/docs/protocol.md).
94
+
95
+ ## Development
96
+
97
+ ```bash
98
+ python -m venv .venv
99
+ .venv/bin/python -m pip install -e ".[web,test]" # Windows: .venv\Scripts\python.exe
100
+ .venv/bin/python -m pytest -m "not browser" # browser tests need Edge or Playwright's Chromium
101
+ ```
102
+
103
+ Releases are published by GitHub Actions when a `vX.Y.Z` tag matching the
104
+ package version is pushed ([RELEASING.md](https://github.com/Jay2owe/ai-ify/blob/main/RELEASING.md)).
105
+
106
+ Install name `ai-ify`, import name `aiify`. MIT licence. The bundled
107
+ `page-controller` (Alibaba, MIT) builds the page control tree.
@@ -0,0 +1,44 @@
1
+ ai_ify-0.1.0.dist-info/licenses/LICENSE,sha256=19o-ubrGLho02Ng4NU0UoD75T9MQVtPH_5d-wZNshhE,1071
2
+ ai_ify-0.1.0.dist-info/licenses/src/aiify/static/vendor/PAGE_CONTROLLER_LICENSE,sha256=DK75UqN8Itgd6I0z44Iup_YRnb_TvNzXDMg2CKeF2J4,2491
3
+ aiify/README_AI.md,sha256=WElpAVIaWArCPVFTP1HgRcvApOUYxNFmN-hsNoMTfzE,23068
4
+ aiify/__init__.py,sha256=IHPaHeDkE4Srn98sdzlR0qENmh1gvJ81cTUEWOyq5Kc,688
5
+ aiify/__main__.py,sha256=ttCWlmtOvOezzkpLP1nFXVyGAaYhogWhnCSNvEnNxUc,120
6
+ aiify/accounts.py,sha256=CVmpoYTn98JsIWw-F6A5T1AB0LXUB4tqURz5eZLA8TE,5621
7
+ aiify/actions.py,sha256=4rJW5BqHlkIVMg21R7Eclb-yABN08deMxhieMCX3NcE,18161
8
+ aiify/agent.py,sha256=FbSrQCEbzOcqiGdbRvMDAiP0PkyOHLvfPxyl-_l7xF0,28234
9
+ aiify/aiify_context.json,sha256=1J9xNUseSJusxGXJ7GMFQSae2Rn_vIrz6yNRO4Ioy-k,28113
10
+ aiify/cli.py,sha256=W1TNl3MmVqrmw2H04SY4vLQIwk7zaZIN-U4cfbjvRW4,5623
11
+ aiify/console.py,sha256=_Y45LDByFOoz_t6r6WkrFiUhCk0tk1JTcLjRc83lNak,5244
12
+ aiify/context.py,sha256=ITD8I1YNxHcGedBK6EinSce3J3abQ_Z18SwxqhbWh6M,9658
13
+ aiify/control_port.py,sha256=NHOpcCodLppAaBIZRfSZW2Q4N9C7zMNc8pwTXHfXFXw,8986
14
+ aiify/engine.py,sha256=HBwmG5XTMvK73xbApH4wAT9YbnldyrL-3wt1WJuXi6w,19039
15
+ aiify/policy.py,sha256=8aTHWF8UuSj-HO2DO0-xlk_gRv--Bt5NRk2Hv3jMSoQ,1327
16
+ aiify/profile.py,sha256=SDF7xaYzoa5irIHIFqhx8ncQTwlwhcC-uMO99Gj0JAE,2089
17
+ aiify/prompting.py,sha256=UGiN_z9_rac-MEcrc0RJxD8E3TBkZwW1kIVTYCxX6Ro,4564
18
+ aiify/protocol.py,sha256=5RusisErQ-VYgIp8Vfh0_pJXr55ztRJwFzKbmwVgl5g,3305
19
+ aiify/ui_relay.py,sha256=uSloXSW_ctSCWoOYDfv0B_sgucCr7YC5UaXHUSTAl7s,7080
20
+ aiify/usage.py,sha256=MqPASJ38o8_IQ4wW6hl1ShQ3noA996SljZHmb3YBLC8,14014
21
+ aiify/web.py,sha256=914H5nAStmc5xPsAnXTahiXibzKwuLcI2NUHY-UFHhs,6802
22
+ aiify/guide/actions.md,sha256=u-eMtM_9NmcidxAxZ7dcN-mvyRlYv8uPRgIAZLkiSiI,1954
23
+ aiify/guide/agent-commands.md,sha256=XHHr-RAd20tuh7mQfoqseoftm3RXDQ-HfkMJrwKiOEw,1735
24
+ aiify/guide/console-and-limits.md,sha256=cvrZDfyb46jHY4XJWHlv7PjiQJBvR0215RCf6JqCPQM,1461
25
+ aiify/guide/other-apps.md,sha256=3TP36tLUnqf33kq3-UaurxE7B2kBWXGexVpvkH-1kMg,1171
26
+ aiify/guide/overview.md,sha256=Ta16pKO3gIlmSq-aRIKtKNn8DVm1MHa_WMeU7_XCyfE,1362
27
+ aiify/guide/page-control.md,sha256=U9g1M_TmFPh8aRl68Xx9-iAH5bN8xupME_eRpB7LAkE,1859
28
+ aiify/guide/profiles.md,sha256=rLBIu8hly_5_tznDLmB6oKH6dmiW0eM6TAc6c0-oKcA,1861
29
+ aiify/guide/quickstart.md,sha256=-Klje5sYsakXxdEUUl6p6EEh8Gwm0AURZMWlTX3g23Q,1965
30
+ aiify/guide/setup.md,sha256=EEUEQ7lYqAYIaZQaNZb1eH5_g22yi5Tf3Nt10QFao4I,1518
31
+ aiify/guide/testing.md,sha256=Zb7x8OlT6lPi4LR_Md6fsG9ySCIM1mFdtEoosZ4TcsY,1417
32
+ aiify/guide/troubleshooting.md,sha256=_lLJieJfG5Ymt4gwlocubf_EdjQYxjkoeH2-C95vxs4,1886
33
+ aiify/static/bridge.js,sha256=idNr1_NRh1yflrhSaskvQn-xjNf8442_vT3WOg-9ujI,14079
34
+ aiify/static/panel.css,sha256=o1ECA8CtH9uEt26IJQeNmvteNZ2Q5ZWFF0XQkvk__4A,6656
35
+ aiify/static/panel.js,sha256=HnfvoZxhRANoRfHmscXdEjswUrF4r2rhiocdXcCb1Aw,17973
36
+ aiify/static/vendor/PAGE_CONTROLLER_LICENSE,sha256=DK75UqN8Itgd6I0z44Iup_YRnb_TvNzXDMg2CKeF2J4,2491
37
+ aiify/static/vendor/page-controller.js,sha256=42rFQeKqZRQ8GZb2b_fJnhaxXsd95OMrubKzU94Unc8,104479
38
+ aiify/testing/__init__.py,sha256=QvfKlic2wjX2hT60oti4F3YNKgm2Dvp47XZ56yi-418,235
39
+ aiify/testing/fake_agent.py,sha256=U52yEHOmGQSYgTQVSMP5QrU4omEDyPm_EWJWFjwjAlk,6555
40
+ ai_ify-0.1.0.dist-info/METADATA,sha256=YvlMHJUfnW2ikBHRHbwm3LGW1pFZcgJKOoTLvfIrzCc,4305
41
+ ai_ify-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
42
+ ai_ify-0.1.0.dist-info/entry_points.txt,sha256=AOFoMx98t8dwaJplyo2BA1idusGmCWlghQVSMuXC6Mc,41
43
+ ai_ify-0.1.0.dist-info/top_level.txt,sha256=vTf-mYmZwfzANOjENBvSIo1Xc8R8QfPLZJbL_NV5cHc,6
44
+ ai_ify-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ aiify = aiify.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Brancaccio Lab
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,51 @@
1
+ Vendored file: page-controller.js
2
+ Package: @page-agent/page-controller 1.12.4 (https://github.com/alibaba/page-agent, packages/page-controller)
3
+ Bundled dependency: ai-motion 0.4.8
4
+ Bundled 2026-10-01 with esbuild (ESM, unminified).
5
+
6
+ === @page-agent/page-controller ===
7
+ MIT License
8
+
9
+ Copyright (c) 2026 SimonLuvRamen
10
+ Copyright (c) 2026 Alibaba Group Holding Limited
11
+
12
+ Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ of this software and associated documentation files (the "Software"), to deal
14
+ in the Software without restriction, including without limitation the rights
15
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
16
+ copies of the Software, and to permit persons to whom the Software is
17
+ furnished to do so, subject to the following conditions:
18
+
19
+ The above copyright notice and this permission notice shall be included in all
20
+ copies or substantial portions of the Software.
21
+
22
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28
+ SOFTWARE.
29
+
30
+ === ai-motion ===
31
+ MIT License
32
+
33
+ Copyright (c) 2025 Simon<gaomeng1900@gmail.com>
34
+
35
+ Permission is hereby granted, free of charge, to any person obtaining a copy
36
+ of this software and associated documentation files (the "Software"), to deal
37
+ in the Software without restriction, including without limitation the rights
38
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
39
+ copies of the Software, and to permit persons to whom the Software is
40
+ furnished to do so, subject to the following conditions:
41
+
42
+ The above copyright notice and this permission notice shall be included in all
43
+ copies or substantial portions of the Software.
44
+
45
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
46
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
47
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
48
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
49
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
50
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
51
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ aiify