akernel-runtime 0.1.4__tar.gz → 0.1.5__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.
- akernel_runtime-0.1.5/.github/release-notes/v0.1.5.md +31 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/CHANGELOG.md +7 -0
- {akernel_runtime-0.1.4/src/akernel_runtime.egg-info → akernel_runtime-0.1.5}/PKG-INFO +1 -1
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/packages/npm/akernel/package.json +1 -1
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/pyproject.toml +1 -1
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5/src/akernel_runtime.egg-info}/PKG-INFO +1 -1
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/SOURCES.txt +1 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/__init__.py +1 -1
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/cli.py +1 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/providers.py +7 -4
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/tests/test_runtime.py +30 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.env.example +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/pull_request_template.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/release-notes/v0.1.0.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/release-notes/v0.1.1.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/release-notes/v0.1.2.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/release-notes/v0.1.3.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/release-notes/v0.1.4.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/workflows/ci.yml +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/.github/workflows/release.yml +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/CODE_OF_CONDUCT.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/CONTRIBUTING.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/LICENSE +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/MANIFEST.in +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/NOTICE +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/README.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/SECURITY.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/00-vision.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/01-architecture.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/02-execution-plan.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/03-cli-mvp.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/04-evaluation.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/05-local-wake.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/06-skill-compiler.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/07-release-and-ci.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/08-open-source-plan.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/09-product-roadmap.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/10-benchmark-evidence.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/docs/11-publishing-setup.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/phase2/01-routing.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/phase2/02-memory.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/phase2/03-budget-profiles.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/scale/01-context-pressure.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/scale/02-agent-editing.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/scale/03-global-memory-marketplace.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/evals/phase2.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/marketplace/skills/index.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/skills/context_budget.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/skills/edit_file.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/skills/markdown/context_budget.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/packages/npm/akernel/README.md +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/packages/npm/akernel/bin/akernel.js +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/scripts/install_remote.ps1 +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/scripts/release_check.ps1 +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/setup.cfg +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/setup.cmd +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/setup.ps1 +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/dependency_links.txt +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/entry_points.txt +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/requires.txt +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/top_level.txt +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/__main__.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/agent_reports.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/benchmarks.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/budget.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/context.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/evals.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/global_memory.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/loop.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace_data/skills/context_budget.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace_data/skills/context_compaction.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace_data/skills/edit_file.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace_data/skills/index.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace_data/skills/long_task_planning.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/marketplace_data/skills/multi_file_bugfix.json +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/memory.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/models.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/planner.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/policy.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/project.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/report_costs.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/runner.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/skills.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/state_writer.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/storage.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/tasks.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/text.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/tokenizer.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/tools.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/context_kernel/verifier.py +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/wake.cmd +0 -0
- {akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/wake.ps1 +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Context Kernel v0.1.5
|
|
2
|
+
|
|
3
|
+
This patch fixes a critical interactive TUI startup bug.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
Python:
|
|
8
|
+
|
|
9
|
+
```powershell
|
|
10
|
+
python -m pip install --user --upgrade akernel-runtime
|
|
11
|
+
akernel setup
|
|
12
|
+
akernel
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
npm launcher:
|
|
16
|
+
|
|
17
|
+
```powershell
|
|
18
|
+
npm install -g @context-akernel/akernel
|
|
19
|
+
akernel setup
|
|
20
|
+
akernel
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Fixes
|
|
24
|
+
|
|
25
|
+
- Fixed TUI chat sessions exiting on the first normal user message.
|
|
26
|
+
- Stabilized `.env` lookup so the launcher project root is used before unrelated parent-directory `.env` files.
|
|
27
|
+
|
|
28
|
+
## Verification
|
|
29
|
+
|
|
30
|
+
- Added a forced `--ui tui` regression test that sends a task and confirms the agent loop completes.
|
|
31
|
+
- Ran the full Python test suite.
|
|
@@ -8,6 +8,13 @@ The project follows a pragmatic pre-1.0 changelog: breaking changes may occur, b
|
|
|
8
8
|
|
|
9
9
|
No changes yet.
|
|
10
10
|
|
|
11
|
+
## 0.1.5 - 2026-05-12
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
- Fixed TUI chat sessions exiting on the first user message because the interactive state holder was not initialized.
|
|
16
|
+
- Made project-root `.env` fallback stable when a user-level parent directory also contains a `.env` file.
|
|
17
|
+
|
|
11
18
|
## 0.1.4 - 2026-05-12
|
|
12
19
|
|
|
13
20
|
### Changed
|
|
@@ -1214,6 +1214,7 @@ def run_chat_loop_tui(
|
|
|
1214
1214
|
args: argparse.Namespace,
|
|
1215
1215
|
) -> None:
|
|
1216
1216
|
last_report: dict[str, Any] | None = None
|
|
1217
|
+
state: dict[str, Any] = {"last_report": None}
|
|
1217
1218
|
pending_context: list[str] = []
|
|
1218
1219
|
transcript: list[dict[str, str]] = [
|
|
1219
1220
|
{
|
|
@@ -848,15 +848,18 @@ def env_value(name: str) -> str | None:
|
|
|
848
848
|
|
|
849
849
|
|
|
850
850
|
def project_env_values() -> dict[str, str]:
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
return parse_env_file(path)
|
|
851
|
+
cwd_env = Path.cwd() / ".env"
|
|
852
|
+
if cwd_env.exists():
|
|
853
|
+
return parse_env_file(cwd_env)
|
|
855
854
|
project_root = os.environ.get("AKERNEL_PROJECT_ROOT") or os.environ.get("CONTEXT_KERNEL_PROJECT_ROOT")
|
|
856
855
|
if project_root:
|
|
857
856
|
path = Path(project_root) / ".env"
|
|
858
857
|
if path.exists():
|
|
859
858
|
return parse_env_file(path)
|
|
859
|
+
for directory in Path.cwd().parents:
|
|
860
|
+
path = directory / ".env"
|
|
861
|
+
if path.exists():
|
|
862
|
+
return parse_env_file(path)
|
|
860
863
|
return {}
|
|
861
864
|
|
|
862
865
|
|
|
@@ -1328,6 +1328,36 @@ class RuntimeTests(unittest.TestCase):
|
|
|
1328
1328
|
self.assertIn("Last Run", screen)
|
|
1329
1329
|
self.assertIn("actions: respond", screen)
|
|
1330
1330
|
|
|
1331
|
+
def test_tui_chat_runs_agent_loop_after_user_message(self) -> None:
|
|
1332
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
1333
|
+
workspace = Workspace(Path(tmp))
|
|
1334
|
+
workspace.init()
|
|
1335
|
+
|
|
1336
|
+
with patch("builtins.input", side_effect=["Continue the runtime work", "/exit"]):
|
|
1337
|
+
with patch("sys.stdout", new=io.StringIO()) as stdout:
|
|
1338
|
+
main(
|
|
1339
|
+
[
|
|
1340
|
+
"--workspace",
|
|
1341
|
+
str(workspace.root),
|
|
1342
|
+
"chat",
|
|
1343
|
+
"--provider",
|
|
1344
|
+
"mock",
|
|
1345
|
+
"--max-steps",
|
|
1346
|
+
"1",
|
|
1347
|
+
"--ui",
|
|
1348
|
+
"tui",
|
|
1349
|
+
]
|
|
1350
|
+
)
|
|
1351
|
+
|
|
1352
|
+
output = stdout.getvalue()
|
|
1353
|
+
reports = list(workspace.agent_runs_dir.glob("*.json"))
|
|
1354
|
+
|
|
1355
|
+
self.assertEqual(len(reports), 1)
|
|
1356
|
+
self.assertIn("Context Kernel TUI", output)
|
|
1357
|
+
self.assertIn("Assistant", output)
|
|
1358
|
+
self.assertIn("Mock agent response", output)
|
|
1359
|
+
self.assertIn("bye", output)
|
|
1360
|
+
|
|
1331
1361
|
def test_tui_screen_surfaces_task_plan_and_command_strip(self) -> None:
|
|
1332
1362
|
with tempfile.TemporaryDirectory() as tmp:
|
|
1333
1363
|
workspace = Workspace(Path(tmp))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/phase2/03-budget-profiles.json
RENAMED
|
File without changes
|
{akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/scale/01-context-pressure.json
RENAMED
|
File without changes
|
{akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/examples/benchmarks/scale/02-agent-editing.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{akernel_runtime-0.1.4 → akernel_runtime-0.1.5}/src/akernel_runtime.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|