intent-cli-python 0.5.0__tar.gz → 0.6.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.
- intent_cli_python-0.6.0/PKG-INFO +141 -0
- intent_cli_python-0.6.0/README.md +117 -0
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/pyproject.toml +1 -1
- intent_cli_python-0.6.0/src/intent_cli/__init__.py +1 -0
- intent_cli_python-0.6.0/src/intent_cli/__main__.py +3 -0
- intent_cli_python-0.6.0/src/intent_cli/cli.py +493 -0
- intent_cli_python-0.6.0/src/intent_cli/output.py +23 -0
- intent_cli_python-0.6.0/src/intent_cli/store.py +90 -0
- intent_cli_python-0.6.0/src/intent_cli_python.egg-info/PKG-INFO +141 -0
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/src/intent_cli_python.egg-info/SOURCES.txt +2 -7
- intent_cli_python-0.5.0/PKG-INFO +0 -155
- intent_cli_python-0.5.0/README.md +0 -131
- intent_cli_python-0.5.0/src/intent_cli/__init__.py +0 -29
- intent_cli_python-0.5.0/src/intent_cli/__main__.py +0 -5
- intent_cli_python-0.5.0/src/intent_cli/cli.py +0 -162
- intent_cli_python-0.5.0/src/intent_cli/constants.py +0 -19
- intent_cli_python-0.5.0/src/intent_cli/core.py +0 -443
- intent_cli_python-0.5.0/src/intent_cli/errors.py +0 -33
- intent_cli_python-0.5.0/src/intent_cli/git.py +0 -83
- intent_cli_python-0.5.0/src/intent_cli/helpers.py +0 -25
- intent_cli_python-0.5.0/src/intent_cli/store.py +0 -102
- intent_cli_python-0.5.0/src/intent_cli_python.egg-info/PKG-INFO +0 -155
- intent_cli_python-0.5.0/tests/test_cli.py +0 -347
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/LICENSE +0 -0
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/setup.cfg +0 -0
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/src/intent_cli_python.egg-info/dependency_links.txt +0 -0
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/src/intent_cli_python.egg-info/entry_points.txt +0 -0
- {intent_cli_python-0.5.0 → intent_cli_python-0.6.0}/src/intent_cli_python.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: intent-cli-python
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: Semantic history for agent-driven development. Records what you did and why.
|
|
5
|
+
Author: Zeng Deyang
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/dozybot001/Intent
|
|
8
|
+
Project-URL: Repository, https://github.com/dozybot001/Intent
|
|
9
|
+
Keywords: agent,git,semantic-history,intent,developer-tools
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
19
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
20
|
+
Requires-Python: >=3.9
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
# Intent CLI
|
|
26
|
+
|
|
27
|
+
[中文](README.CN.md) | English
|
|
28
|
+
|
|
29
|
+
Semantic history for agent-driven development. Records **what you did** and **why**.
|
|
30
|
+
|
|
31
|
+
Intent CLI gives AI agents a structured way to track goals, interactions, and decisions across sessions. Instead of losing context when a conversation ends, agents persist their understanding into three simple objects stored alongside your code.
|
|
32
|
+
|
|
33
|
+
## Three objects, one graph
|
|
34
|
+
|
|
35
|
+
| Object | What it captures |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **Intent** | A goal the agent identified from your query |
|
|
38
|
+
| **Snap** | One agent interaction — query, summary, feedback |
|
|
39
|
+
| **Decision** | A long-lived decision that spans multiple intents |
|
|
40
|
+
|
|
41
|
+
Objects link automatically: creating an intent attaches all active decisions; creating a decision attaches all active intents. Relationships are always bidirectional and append-only.
|
|
42
|
+
|
|
43
|
+
## Install
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pip install intent-cli-python
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Requires Python 3.9+ and Git.
|
|
50
|
+
|
|
51
|
+
## Quick start
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Initialize in any git repo
|
|
55
|
+
itt init
|
|
56
|
+
|
|
57
|
+
# Agent identifies a new intent from user query
|
|
58
|
+
itt intent create "Fix the login timeout bug" \
|
|
59
|
+
--query "why does login timeout after 5s?"
|
|
60
|
+
|
|
61
|
+
# Record what the agent did
|
|
62
|
+
itt snap create "Raise timeout to 30s" \
|
|
63
|
+
--intent intent-001 \
|
|
64
|
+
--query "login timeout still fails on slow networks" \
|
|
65
|
+
--summary "Updated timeout config and ran the login test"
|
|
66
|
+
|
|
67
|
+
# Capture a long-lived decision
|
|
68
|
+
itt decision create "Timeout must stay configurable" \
|
|
69
|
+
--rationale "Different deployments have different latency envelopes"
|
|
70
|
+
|
|
71
|
+
# See the full object graph
|
|
72
|
+
itt inspect
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Commands
|
|
76
|
+
|
|
77
|
+
### Global
|
|
78
|
+
|
|
79
|
+
| Command | Description |
|
|
80
|
+
|---|---|
|
|
81
|
+
| `itt version` | Print version |
|
|
82
|
+
| `itt init` | Initialize `.intent/` in current git repo |
|
|
83
|
+
| `itt inspect` | Show the live object graph snapshot |
|
|
84
|
+
|
|
85
|
+
### Intent
|
|
86
|
+
|
|
87
|
+
| Command | Description |
|
|
88
|
+
|---|---|
|
|
89
|
+
| `itt intent create TITLE --query Q` | Create a new intent |
|
|
90
|
+
| `itt intent list [--status S]` | List intents |
|
|
91
|
+
| `itt intent show ID` | Show intent details |
|
|
92
|
+
| `itt intent activate ID` | Resume a suspended intent |
|
|
93
|
+
| `itt intent suspend ID` | Suspend an active intent |
|
|
94
|
+
| `itt intent done ID` | Mark intent as completed |
|
|
95
|
+
|
|
96
|
+
### Snap
|
|
97
|
+
|
|
98
|
+
| Command | Description |
|
|
99
|
+
|---|---|
|
|
100
|
+
| `itt snap create TITLE --intent ID` | Record an interaction snapshot |
|
|
101
|
+
| `itt snap list [--intent ID] [--status S]` | List snaps |
|
|
102
|
+
| `itt snap show ID` | Show snap details |
|
|
103
|
+
| `itt snap feedback ID TEXT` | Set or overwrite feedback |
|
|
104
|
+
| `itt snap revert ID` | Mark a snap as reverted |
|
|
105
|
+
|
|
106
|
+
### Decision
|
|
107
|
+
|
|
108
|
+
| Command | Description |
|
|
109
|
+
|---|---|
|
|
110
|
+
| `itt decision create TITLE --rationale R` | Create a long-lived decision |
|
|
111
|
+
| `itt decision list [--status S]` | List decisions |
|
|
112
|
+
| `itt decision show ID` | Show decision details |
|
|
113
|
+
| `itt decision deprecate ID` | Deprecate a decision |
|
|
114
|
+
| `itt decision attach ID --intent ID` | Manually link a decision to an intent |
|
|
115
|
+
|
|
116
|
+
## Design principles
|
|
117
|
+
|
|
118
|
+
- **Agent-first**: designed to be called by AI agents, not typed by hand
|
|
119
|
+
- **Append-only history**: content fields are immutable after creation; correct mistakes in new snaps, don't rewrite old ones
|
|
120
|
+
- **Relationships only grow**: no detach — deprecate a decision instead
|
|
121
|
+
- **All output is JSON**: machine-readable by default
|
|
122
|
+
- **Zero dependencies**: pure Python, stdlib only
|
|
123
|
+
|
|
124
|
+
## Storage
|
|
125
|
+
|
|
126
|
+
All data lives in `.intent/` at your git repo root:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
.intent/
|
|
130
|
+
config.json
|
|
131
|
+
intents/
|
|
132
|
+
intent-001.json
|
|
133
|
+
snaps/
|
|
134
|
+
snap-001.json
|
|
135
|
+
decisions/
|
|
136
|
+
decision-001.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## License
|
|
140
|
+
|
|
141
|
+
MIT
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Intent CLI
|
|
2
|
+
|
|
3
|
+
[中文](README.CN.md) | English
|
|
4
|
+
|
|
5
|
+
Semantic history for agent-driven development. Records **what you did** and **why**.
|
|
6
|
+
|
|
7
|
+
Intent CLI gives AI agents a structured way to track goals, interactions, and decisions across sessions. Instead of losing context when a conversation ends, agents persist their understanding into three simple objects stored alongside your code.
|
|
8
|
+
|
|
9
|
+
## Three objects, one graph
|
|
10
|
+
|
|
11
|
+
| Object | What it captures |
|
|
12
|
+
|---|---|
|
|
13
|
+
| **Intent** | A goal the agent identified from your query |
|
|
14
|
+
| **Snap** | One agent interaction — query, summary, feedback |
|
|
15
|
+
| **Decision** | A long-lived decision that spans multiple intents |
|
|
16
|
+
|
|
17
|
+
Objects link automatically: creating an intent attaches all active decisions; creating a decision attaches all active intents. Relationships are always bidirectional and append-only.
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
pip install intent-cli-python
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Requires Python 3.9+ and Git.
|
|
26
|
+
|
|
27
|
+
## Quick start
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Initialize in any git repo
|
|
31
|
+
itt init
|
|
32
|
+
|
|
33
|
+
# Agent identifies a new intent from user query
|
|
34
|
+
itt intent create "Fix the login timeout bug" \
|
|
35
|
+
--query "why does login timeout after 5s?"
|
|
36
|
+
|
|
37
|
+
# Record what the agent did
|
|
38
|
+
itt snap create "Raise timeout to 30s" \
|
|
39
|
+
--intent intent-001 \
|
|
40
|
+
--query "login timeout still fails on slow networks" \
|
|
41
|
+
--summary "Updated timeout config and ran the login test"
|
|
42
|
+
|
|
43
|
+
# Capture a long-lived decision
|
|
44
|
+
itt decision create "Timeout must stay configurable" \
|
|
45
|
+
--rationale "Different deployments have different latency envelopes"
|
|
46
|
+
|
|
47
|
+
# See the full object graph
|
|
48
|
+
itt inspect
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Commands
|
|
52
|
+
|
|
53
|
+
### Global
|
|
54
|
+
|
|
55
|
+
| Command | Description |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `itt version` | Print version |
|
|
58
|
+
| `itt init` | Initialize `.intent/` in current git repo |
|
|
59
|
+
| `itt inspect` | Show the live object graph snapshot |
|
|
60
|
+
|
|
61
|
+
### Intent
|
|
62
|
+
|
|
63
|
+
| Command | Description |
|
|
64
|
+
|---|---|
|
|
65
|
+
| `itt intent create TITLE --query Q` | Create a new intent |
|
|
66
|
+
| `itt intent list [--status S]` | List intents |
|
|
67
|
+
| `itt intent show ID` | Show intent details |
|
|
68
|
+
| `itt intent activate ID` | Resume a suspended intent |
|
|
69
|
+
| `itt intent suspend ID` | Suspend an active intent |
|
|
70
|
+
| `itt intent done ID` | Mark intent as completed |
|
|
71
|
+
|
|
72
|
+
### Snap
|
|
73
|
+
|
|
74
|
+
| Command | Description |
|
|
75
|
+
|---|---|
|
|
76
|
+
| `itt snap create TITLE --intent ID` | Record an interaction snapshot |
|
|
77
|
+
| `itt snap list [--intent ID] [--status S]` | List snaps |
|
|
78
|
+
| `itt snap show ID` | Show snap details |
|
|
79
|
+
| `itt snap feedback ID TEXT` | Set or overwrite feedback |
|
|
80
|
+
| `itt snap revert ID` | Mark a snap as reverted |
|
|
81
|
+
|
|
82
|
+
### Decision
|
|
83
|
+
|
|
84
|
+
| Command | Description |
|
|
85
|
+
|---|---|
|
|
86
|
+
| `itt decision create TITLE --rationale R` | Create a long-lived decision |
|
|
87
|
+
| `itt decision list [--status S]` | List decisions |
|
|
88
|
+
| `itt decision show ID` | Show decision details |
|
|
89
|
+
| `itt decision deprecate ID` | Deprecate a decision |
|
|
90
|
+
| `itt decision attach ID --intent ID` | Manually link a decision to an intent |
|
|
91
|
+
|
|
92
|
+
## Design principles
|
|
93
|
+
|
|
94
|
+
- **Agent-first**: designed to be called by AI agents, not typed by hand
|
|
95
|
+
- **Append-only history**: content fields are immutable after creation; correct mistakes in new snaps, don't rewrite old ones
|
|
96
|
+
- **Relationships only grow**: no detach — deprecate a decision instead
|
|
97
|
+
- **All output is JSON**: machine-readable by default
|
|
98
|
+
- **Zero dependencies**: pure Python, stdlib only
|
|
99
|
+
|
|
100
|
+
## Storage
|
|
101
|
+
|
|
102
|
+
All data lives in `.intent/` at your git repo root:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
.intent/
|
|
106
|
+
config.json
|
|
107
|
+
intents/
|
|
108
|
+
intent-001.json
|
|
109
|
+
snaps/
|
|
110
|
+
snap-001.json
|
|
111
|
+
decisions/
|
|
112
|
+
decision-001.json
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## License
|
|
116
|
+
|
|
117
|
+
MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "intent-cli-python"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.6.0"
|
|
8
8
|
description = "Semantic history for agent-driven development. Records what you did and why."
|
|
9
9
|
requires-python = ">=3.9"
|
|
10
10
|
readme = "README.md"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Intent CLI — semantic history for agent-driven development."""
|