infini-cli 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,159 @@
1
+ Metadata-Version: 2.4
2
+ Name: infini-cli
3
+ Version: 0.1.0
4
+ Summary: INFINI — the open standard for agent loops. Write a Loopfile, run it on any engine.
5
+ Author: NickAiNYC and INFINI contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/NickAiNYC/infini
8
+ Project-URL: Documentation, https://github.com/NickAiNYC/infini#readme
9
+ Project-URL: Repository, https://github.com/NickAiNYC/infini
10
+ Project-URL: Issues, https://github.com/NickAiNYC/infini/issues
11
+ Keywords: agents,loops,ai,standard,loopfile,infini
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development :: Libraries
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: pyyaml>=6.0
24
+ Requires-Dist: jsonschema>=4.20
25
+ Requires-Dist: rich>=13.0
26
+ Requires-Dist: click>=8.1
27
+ Provides-Extra: dev
28
+ Requires-Dist: pytest>=7.0; extra == "dev"
29
+ Requires-Dist: pytest-cov; extra == "dev"
30
+ Provides-Extra: ui
31
+ Requires-Dist: flask>=3.0; extra == "ui"
32
+
33
+ # INFINI CLI
34
+
35
+ The reference implementation of the `infini` command-line tool.
36
+
37
+ > The CLI is the **INFINI Reference Engine**. It conforms to the same Loopfile spec as every other engine. The only asymmetry: it ships first with new spec features, since the spec is developed against it.
38
+
39
+ ---
40
+
41
+ ## Install
42
+
43
+ ```bash
44
+ pip install infini-cli
45
+
46
+ # With adapter extras
47
+ pip install infini-cli[hermes,openclaw]
48
+
49
+ # From source
50
+ git clone https://github.com/NickAiNYC/infini
51
+ cd infini/cli && pip install -e .
52
+ ```
53
+
54
+ Requires Python 3.10+.
55
+
56
+ ---
57
+
58
+ ## Commands
59
+
60
+ ```bash
61
+ infini validate [Loopfile] # check spec compliance
62
+ infini run [Loopfile] # execute a loop (--mock for no API key)
63
+ infini inspect [run_dir] # inspect a trace (--web opens Observatory, coming soon)
64
+ infini replay [run_dir] # time-travel debug from any step
65
+ infini diff [v1] [v2] # semantic diff between loops or traces
66
+ infini ui [trace] # launch the Observatory web app
67
+ infini engines # list detected adapters (reads adapter.yaml)
68
+ infini init [--target] # scaffold a minimal project (Loopfile, loops/, state/, runs/)
69
+ infini new <name> # create a new project scaffold
70
+ infini graph [Loopfile] # render a simple ASCII graph of steps
71
+ infini benchmark [Loopfile] # preview benchmark estimate (real profiling needs a run)
72
+ ```
73
+
74
+ ### Commands not yet implemented (planned)
75
+
76
+ ```bash
77
+ infini install [loop_ref] # pull from registry (planned — registry not yet live)
78
+ infini publish [Loopfile] # push to registry (planned)
79
+ infini ci [Loopfile] # run loop against fixtures (GitHub Action)
80
+ infini search [query] # search the registry (planned)
81
+ infini migrate [Loopfile] # migrate a Loopfile between spec versions
82
+ infini keys generate # generate a publisher signing keypair
83
+ ```
84
+
85
+ ### Mock mode
86
+
87
+ `infini run --mock` simulates LLM calls so you can run any Loopfile
88
+ without an API key. Useful for evaluation, CI, demos, and the conformance
89
+ suite. Mock mode is deterministic: same Loopfile + same seed = same output.
90
+
91
+ ---
92
+
93
+ ## Conformance
94
+
95
+ The CLI implements:
96
+
97
+ | Capability | Status |
98
+ | ---------------- | :----: |
99
+ | Parse Loopfile | ✅ |
100
+ | Run Loop | ✅ |
101
+ | Verify | ✅ |
102
+ | Inspect Trace | ✅ |
103
+ | Replay | ✅ |
104
+ | Diff | ✅ |
105
+
106
+ This makes the CLI the **canonical conformance reference**. If your adapter disagrees with the CLI on a spec edge case, the CLI is right until an RFC says otherwise.
107
+
108
+ ---
109
+
110
+ ## Architecture
111
+
112
+ ```
113
+ cli/
114
+ ├── README.md # you are here
115
+ ├── pyproject.toml # package metadata
116
+ ├── src/infini/
117
+ │ ├── __init__.py
118
+ │ ├── main.py # entrypoint
119
+ │ ├── parse.py # Loopfile parser
120
+ │ ├── validate.py # JSON Schema validator
121
+ │ ├── run.py # reference engine
122
+ │ ├── inspect.py # trace inspector (Loop Observatory)
123
+ │ ├── replay.py # time-travel debugger
124
+ │ ├── diff.py # semantic diff
125
+ │ ├── registry.py # publish/install/search
126
+ │ ├── ci.py # CI mode
127
+ │ ├── migrate.py # spec migration
128
+ │ └── keys.py # signing key management
129
+ └── tests/
130
+ ├── conformance/ # spec conformance suite
131
+ ├── fixtures/ # example Loopfiles
132
+ └── expected/ # expected trace shapes
133
+ ```
134
+
135
+ The full source ships with the next CLI release. This README documents the contract.
136
+
137
+ ---
138
+
139
+ ## The Loop Observatory
140
+
141
+ `infini inspect <run_dir>` opens the Loop Observatory — the signature feature.
142
+
143
+ The Observatory shows, for any run:
144
+
145
+ - the graph of decisions taken,
146
+ - every verification checkpoint and its verdict,
147
+ - total runtime, token count, and dollar cost,
148
+ - artifacts produced at each step,
149
+ - where the loop failed (if it did), and what was retried,
150
+ - what changed between iterations,
151
+ - governance events (Hermes) and tool calls (OpenClaw) in a swimlane view.
152
+
153
+ The Inspector ships today. The full UI (annotated timeline, cost waterfall, artifact gallery, replay studio) is in preview.
154
+
155
+ ---
156
+
157
+ ## License
158
+
159
+ MIT. See [repository LICENSE](../LICENSE).
@@ -0,0 +1,18 @@
1
+ infini/__init__.py,sha256=hZj9QhOb5A17a191GIYdUK6Pa4PVoT_H6vAugLoTLLs,117
2
+ infini/__main__.py,sha256=Pwe_ejewY25INYi1zRyqYkeFQfgQBYpclvIVwu-XF-o,67
3
+ infini/adapters.py,sha256=twmSIwf8Xsb15J1ntex9ITypbKApqwq1y-obrhs7zQQ,2173
4
+ infini/cli.py,sha256=NlCu27DYRGv_WGX7LmLRWjLNST3MMs_2YbUPPvlGmrA,10715
5
+ infini/diff.py,sha256=lT9bp1boKpHJC_gI2Eldx6_hoT-449mIYlwzCBTmdX4,6958
6
+ infini/engine.py,sha256=_h__o_6vst-RLnzgP2FuLwbK35nmU7muYZlmLv82BxQ,7462
7
+ infini/inspect.py,sha256=nawR65_LEBzwliGouxruNzvWrrnsCrNs78RyZ1pEQFA,3522
8
+ infini/mock.py,sha256=_3rYhXnOFncur-NXrikBy1NeYLEkRLEggZ8K29EqwLw,3502
9
+ infini/parse.py,sha256=WL_m6SEFSOqwRQ2KYOWA8sSsH53Goi33R-_KsGfSGuQ,5597
10
+ infini/replay.py,sha256=7oRqhjbfaj0SX5cH8ld10GRUaZHrYHupIDo1nUAt1Jk,5300
11
+ infini/schema.json,sha256=eOTxnqdrMSvonbhBvfBM5t-d4AakqbyBOt-hcidQ8AQ,5274
12
+ infini/trace.py,sha256=E_Wo58wOKnBw__XnuTJJLzHqJ-sSExY7GAkRaaMDU7c,5311
13
+ infini/ui.py,sha256=NJWoCg0b9l2oSX7mAXh4WkyRLS5gWWYn3NZszCClqyA,3361
14
+ infini_cli-0.1.0.dist-info/METADATA,sha256=-XiIeWEge4x3sYcfDz5I7FbcH3SjM4iVgVYMHVBf4_U,5490
15
+ infini_cli-0.1.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
16
+ infini_cli-0.1.0.dist-info/entry_points.txt,sha256=kvvzDKKPxIMbawPBaHVvQlQnQ3Jwx7fTyMOChoSx6o8,43
17
+ infini_cli-0.1.0.dist-info/top_level.txt,sha256=3DBo5l7eEus-AzE5TLqknRYx4CqCTh_x9mXCiUK7-y0,7
18
+ infini_cli-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ infini = infini.cli:main
@@ -0,0 +1 @@
1
+ infini