ensue-cli 0.2.1__tar.gz → 0.2.2__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.
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/PKG-INFO +21 -2
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/README.md +20 -1
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/pyproject.toml +1 -1
- ensue_cli-0.2.2/src/ensue_cli/agent.py +1962 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/agent_socket.py +67 -9
- ensue_cli-0.2.2/src/ensue_cli/campaign_data.py +183 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/cluster.py +12 -2
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/repo.py +44 -17
- ensue_cli-0.2.2/tests/test_agent.py +1065 -0
- ensue_cli-0.2.2/tests/test_agent_data.py +214 -0
- ensue_cli-0.2.2/tests/test_agent_scorecard.py +560 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_agent_socket.py +92 -12
- ensue_cli-0.2.2/tests/test_campaign_data.py +309 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_cluster.py +18 -2
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_repo.py +58 -12
- ensue_cli-0.2.2/tests/test_session_scripts.py +463 -0
- ensue_cli-0.2.1/src/ensue_cli/agent.py +0 -1179
- ensue_cli-0.2.1/tests/test_agent.py +0 -786
- ensue_cli-0.2.1/tests/test_session_scripts.py +0 -290
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/.gitignore +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/Makefile +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/__init__.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/cli.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/client.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/src/ensue_cli/mem.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/__init__.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/fakes.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_integration.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_mem.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_mem_integration.py +0 -0
- {ensue_cli-0.2.1 → ensue_cli-0.2.2}/tests/test_unit.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: ensue-cli
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: CLI for Ensue Memory - a distributed memory network for AI agents built on MCP, enabling persistent, shared context across conversations and applications
|
|
5
5
|
Project-URL: Homepage, https://www.ensue-network.ai
|
|
6
6
|
Project-URL: Repository, https://github.com/mutable-state-inc/ensue-cli
|
|
@@ -86,6 +86,20 @@ echo '{"text": "baseline measured"}' | ensue mem new LOOP-acme-conversation/agen
|
|
|
86
86
|
`text` field (or first line) unless you pass `-d`.
|
|
87
87
|
- Every verb takes `--json`. `ensue mem <verb> --help` has the details.
|
|
88
88
|
|
|
89
|
+
## A campaign's code: `ensue repo`
|
|
90
|
+
|
|
91
|
+
Each campaign has a git repository hosted by Ensue. `--project` takes the campaign's id or
|
|
92
|
+
slug (`ensue list_available_projects` lists them):
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
ensue repo clone --project <slug> [dir] # clone it, authenticated with ENSUE_TOKEN
|
|
96
|
+
ensue repo import --project <slug> <git-url> # seed an empty one from a repository, once
|
|
97
|
+
ensue repo url --project <slug> # print the clone URL (no credentials)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The key is written to `~/.ensue/git-credentials` (mode 0600) for git to read; it is never put in
|
|
101
|
+
a URL or on the command line.
|
|
102
|
+
|
|
89
103
|
## Running an autoresearch agent: `ensue agent`
|
|
90
104
|
|
|
91
105
|
`ensue agent` is the protocol an autoresearch agent follows inside one campaign
|
|
@@ -97,7 +111,8 @@ ensue agent status # phase, measure, best, editable files, m
|
|
|
97
111
|
ensue agent steer # read the person's new messages
|
|
98
112
|
ensue agent files | check [--fix] # what may be edited; current changes, allowed or locked
|
|
99
113
|
ensue agent measure measure.json # propose a measure (runs the baseline itself)
|
|
100
|
-
ensue agent
|
|
114
|
+
ensue agent queue # ideas queued for the agent, not tried yet, theirs first
|
|
115
|
+
ensue agent idea idea.json # record an idea of its own before trying it
|
|
101
116
|
ensue agent run --idea KEY -m "..." # commit, score, keep or revert, record the run
|
|
102
117
|
ensue agent note "..." -e RUN_KEY # record a lesson, citing runs
|
|
103
118
|
ensue agent say "..." | doing "..." # message the person; one-line status
|
|
@@ -111,6 +126,10 @@ ensue agent say "..." | doing "..." # message the person; one-line status
|
|
|
111
126
|
- `measure`, `idea` and `run` refuse while the person has unread messages,
|
|
112
127
|
`run` waits for an accepted measure, and Stop exits every working verb with
|
|
113
128
|
code 3.
|
|
129
|
+
- The person's queued ideas (a `/try`, or one added in the chat) come first:
|
|
130
|
+
`idea` refuses while one is untried. `queue` lists them, then onboarding's
|
|
131
|
+
proposals, and `run --idea KEY` moves each shared-schema hypothesis
|
|
132
|
+
(`deepearth.hypothesis/1`) to `running`, then `completed` or `rejected`.
|
|
114
133
|
|
|
115
134
|
## Configuration
|
|
116
135
|
|
|
@@ -54,6 +54,20 @@ echo '{"text": "baseline measured"}' | ensue mem new LOOP-acme-conversation/agen
|
|
|
54
54
|
`text` field (or first line) unless you pass `-d`.
|
|
55
55
|
- Every verb takes `--json`. `ensue mem <verb> --help` has the details.
|
|
56
56
|
|
|
57
|
+
## A campaign's code: `ensue repo`
|
|
58
|
+
|
|
59
|
+
Each campaign has a git repository hosted by Ensue. `--project` takes the campaign's id or
|
|
60
|
+
slug (`ensue list_available_projects` lists them):
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ensue repo clone --project <slug> [dir] # clone it, authenticated with ENSUE_TOKEN
|
|
64
|
+
ensue repo import --project <slug> <git-url> # seed an empty one from a repository, once
|
|
65
|
+
ensue repo url --project <slug> # print the clone URL (no credentials)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
The key is written to `~/.ensue/git-credentials` (mode 0600) for git to read; it is never put in
|
|
69
|
+
a URL or on the command line.
|
|
70
|
+
|
|
57
71
|
## Running an autoresearch agent: `ensue agent`
|
|
58
72
|
|
|
59
73
|
`ensue agent` is the protocol an autoresearch agent follows inside one campaign
|
|
@@ -65,7 +79,8 @@ ensue agent status # phase, measure, best, editable files, m
|
|
|
65
79
|
ensue agent steer # read the person's new messages
|
|
66
80
|
ensue agent files | check [--fix] # what may be edited; current changes, allowed or locked
|
|
67
81
|
ensue agent measure measure.json # propose a measure (runs the baseline itself)
|
|
68
|
-
ensue agent
|
|
82
|
+
ensue agent queue # ideas queued for the agent, not tried yet, theirs first
|
|
83
|
+
ensue agent idea idea.json # record an idea of its own before trying it
|
|
69
84
|
ensue agent run --idea KEY -m "..." # commit, score, keep or revert, record the run
|
|
70
85
|
ensue agent note "..." -e RUN_KEY # record a lesson, citing runs
|
|
71
86
|
ensue agent say "..." | doing "..." # message the person; one-line status
|
|
@@ -79,6 +94,10 @@ ensue agent say "..." | doing "..." # message the person; one-line status
|
|
|
79
94
|
- `measure`, `idea` and `run` refuse while the person has unread messages,
|
|
80
95
|
`run` waits for an accepted measure, and Stop exits every working verb with
|
|
81
96
|
code 3.
|
|
97
|
+
- The person's queued ideas (a `/try`, or one added in the chat) come first:
|
|
98
|
+
`idea` refuses while one is untried. `queue` lists them, then onboarding's
|
|
99
|
+
proposals, and `run --idea KEY` moves each shared-schema hypothesis
|
|
100
|
+
(`deepearth.hypothesis/1`) to `running`, then `completed` or `rejected`.
|
|
82
101
|
|
|
83
102
|
## Configuration
|
|
84
103
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ensue-cli"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "CLI for Ensue Memory - a distributed memory network for AI agents built on MCP, enabling persistent, shared context across conversations and applications"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|