abstractcode 0.3.0__tar.gz → 0.3.1__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.
Files changed (64) hide show
  1. abstractcode-0.3.1/PKG-INFO +158 -0
  2. abstractcode-0.3.1/README.md +119 -0
  3. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/__init__.py +1 -1
  4. abstractcode-0.3.1/abstractcode/cli.py +1012 -0
  5. abstractcode-0.3.1/abstractcode/file_mentions.py +276 -0
  6. abstractcode-0.3.1/abstractcode/fullscreen_ui.py +2971 -0
  7. abstractcode-0.3.1/abstractcode/gateway_cli.py +715 -0
  8. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/react_shell.py +2474 -116
  9. abstractcode-0.3.1/abstractcode/terminal_markdown.py +557 -0
  10. abstractcode-0.3.1/abstractcode/theme.py +244 -0
  11. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/workflow_agent.py +630 -112
  12. abstractcode-0.3.1/abstractcode/workflow_cli.py +229 -0
  13. abstractcode-0.3.1/abstractcode.egg-info/PKG-INFO +158 -0
  14. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode.egg-info/SOURCES.txt +17 -1
  15. {abstractcode-0.3.0 → abstractcode-0.3.1}/pyproject.toml +1 -1
  16. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_async_run_controls_and_copy_button.py +3 -1
  17. abstractcode-0.3.1/tests/test_at_file_mentions_accept_absolute_paths.py +146 -0
  18. abstractcode-0.3.1/tests/test_cli_prompt_mode.py +255 -0
  19. abstractcode-0.3.1/tests/test_file_mentions_parsing_and_search.py +76 -0
  20. abstractcode-0.3.1/tests/test_fullscreen_ui_cancel_hotkeys_and_dnd_attachments.py +171 -0
  21. abstractcode-0.3.1/tests/test_fullscreen_ui_clickable_links.py +28 -0
  22. abstractcode-0.3.1/tests/test_gateway_cli_defaults.py +53 -0
  23. abstractcode-0.3.1/tests/test_gateway_cli_kg_command.py +244 -0
  24. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_history_copy_full_to_clipboard.py +2 -2
  25. abstractcode-0.3.1/tests/test_link_extraction.py +10 -0
  26. abstractcode-0.3.1/tests/test_react_shell_artifact_store_wiring.py +56 -0
  27. abstractcode-0.3.1/tests/test_react_shell_tool_approval_cancel_mode.py +127 -0
  28. abstractcode-0.3.1/tests/test_tools_include_skim_files.py +70 -0
  29. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_workflow_agent.py +58 -19
  30. abstractcode-0.3.1/tests/test_workflow_registry_install_and_run.py +157 -0
  31. abstractcode-0.3.0/PKG-INFO +0 -270
  32. abstractcode-0.3.0/README.md +0 -231
  33. abstractcode-0.3.0/abstractcode/cli.py +0 -401
  34. abstractcode-0.3.0/abstractcode/fullscreen_ui.py +0 -1453
  35. abstractcode-0.3.0/abstractcode/terminal_markdown.py +0 -168
  36. abstractcode-0.3.0/abstractcode.egg-info/PKG-INFO +0 -270
  37. {abstractcode-0.3.0 → abstractcode-0.3.1}/LICENSE +0 -0
  38. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/flow_cli.py +0 -0
  39. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/input_handler.py +0 -0
  40. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/py.typed +0 -0
  41. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/recall.py +0 -0
  42. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode/remember.py +0 -0
  43. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode.egg-info/dependency_links.txt +0 -0
  44. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode.egg-info/entry_points.txt +0 -0
  45. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode.egg-info/requires.txt +0 -0
  46. {abstractcode-0.3.0 → abstractcode-0.3.1}/abstractcode.egg-info/top_level.txt +0 -0
  47. {abstractcode-0.3.0 → abstractcode-0.3.1}/setup.cfg +0 -0
  48. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_answer_markdown_newline_unescape.py +0 -0
  49. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_compact_integration_llm.py +0 -0
  50. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_executor_command.py +0 -0
  51. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_executor_real_logic.py +0 -0
  52. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_file_tool_ui_no_cwd_injection.py +0 -0
  53. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_flow_cli.py +0 -0
  54. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_fullscreen_ui_spinner_shimmer.py +0 -0
  55. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_log_provider_no_tool_defs.py +0 -0
  56. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_log_provider_tool_calls_anthropic.py +0 -0
  57. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_mcp_activity_spinner.py +0 -0
  58. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_provenance_recall.py +0 -0
  59. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_recall_command.py +0 -0
  60. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_remember_command.py +0 -0
  61. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_remote_mcp_tool_execution.py +0 -0
  62. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_remote_mcp_tool_execution_stdio.py +0 -0
  63. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_repeat_guardrail_write_file_content.py +0 -0
  64. {abstractcode-0.3.0 → abstractcode-0.3.1}/tests/test_tools_examples_toggle.py +0 -0
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.4
2
+ Name: abstractcode
3
+ Version: 0.3.1
4
+ Summary: A clean terminal CLI for multi-agent agentic coding
5
+ Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
+ Maintainer-email: Laurent-Philippe Albou <contact@abstractcore.ai>
7
+ License: MIT
8
+ Project-URL: Homepage, https://abstractcore.ai
9
+ Project-URL: Documentation, https://abstractcore.ai
10
+ Project-URL: Repository, https://github.com/lpalbou/abstractcode
11
+ Project-URL: Bug Tracker, https://github.com/lpalbou/abstractcode/issues
12
+ Keywords: ai,llm,cli,coding,agent,multi-agent,agentic,terminal,abstractcore,abstractruntime,abstractagent
13
+ Classifier: Development Status :: 2 - Pre-Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: abstractagent>=0.2.0
27
+ Requires-Dist: abstractruntime>=0.2.0
28
+ Requires-Dist: abstractcore[tools]>=2.6.8
29
+ Requires-Dist: ddgs<10.0.0,>=9.10.0
30
+ Requires-Dist: prompt_toolkit>=3.0.0
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
33
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
34
+ Requires-Dist: black>=23.0.0; extra == "dev"
35
+ Requires-Dist: ruff>=0.1.0; extra == "dev"
36
+ Provides-Extra: flow
37
+ Requires-Dist: abstractflow>=0.1.0; extra == "flow"
38
+ Dynamic: license-file
39
+
40
+ # AbstractCode
41
+
42
+ Durable terminal TUI for agentic coding on the Abstract* stack (**AbstractAgent + AbstractRuntime + AbstractCore**).
43
+
44
+ Status: **pre-alpha** (APIs and UX may change).
45
+
46
+ Next: [`docs/getting-started.md`](docs/getting-started.md).
47
+
48
+ ## Features
49
+
50
+ - Interactive TUI (`abstractcode`) with **durable runs** (resume/pause/cancel), snapshots, and logs
51
+ - **Approval-gated tools** by default (with an allowlist you can configure)
52
+ - Built-in agents: `react`, `memact`, `codeact`
53
+ - VisualFlow workflows:
54
+ - run locally: `abstractcode flow ...` (optional extra)
55
+ - run as an agent: `abstractcode --agent <flow_ref>`
56
+ - Remote tool execution via **MCP** (`/mcp`, `/executor`)
57
+ - Optional gateway-first Web UI in `web/`
58
+
59
+ ## Install
60
+
61
+ Python: **3.10+**
62
+
63
+ ```bash
64
+ pip install abstractcode
65
+ ```
66
+
67
+ Optional (run VisualFlow locally via `abstractcode flow ...`):
68
+
69
+ ```bash
70
+ pip install "abstractcode[flow]"
71
+ ```
72
+
73
+ From source (development):
74
+
75
+ ```bash
76
+ pip install -e ".[dev]"
77
+ ```
78
+
79
+ ## Quickstart (TUI)
80
+
81
+ Ollama (default provider):
82
+
83
+ ```bash
84
+ abstractcode --provider ollama --model qwen3:1.7b-q4_K_M
85
+ ```
86
+
87
+ OpenAI-compatible server (e.g. LM Studio):
88
+
89
+ ```bash
90
+ abstractcode --provider openai --base-url http://127.0.0.1:1234/v1 --model qwen/qwen3-next-80b
91
+ ```
92
+
93
+ Inside the app:
94
+ - `/help` shows the authoritative command list
95
+ - type a task (or use `/task ...`)
96
+ - tool approvals: `/auto-accept` (or start with `--auto-approve`)
97
+ - attach files with `@path/to/file` in your prompt
98
+
99
+ ## Persistence (durable runs)
100
+
101
+ Default paths:
102
+ - state file: `~/.abstractcode/state.json`
103
+ - durable stores: `~/.abstractcode/state.d/`
104
+ - saved settings: `~/.abstractcode/state.config.json`
105
+
106
+ Disable persistence:
107
+
108
+ ```bash
109
+ abstractcode --no-state
110
+ ```
111
+
112
+ ## Workflows
113
+
114
+ - Local runs: `abstractcode flow run <flow_id_or_path> ...` (requires `abstractcode[flow]`)
115
+ - Workflow agent: `abstractcode --agent /path/to/workflow.json ...`
116
+ - Remote control-plane: `abstractcode gateway --help`
117
+ - Bundle management on a gateway: `abstractcode workflow --help`
118
+
119
+ Details: [`docs/workflows.md`](docs/workflows.md).
120
+
121
+ ## Web UI
122
+
123
+ The web host lives in `web/` and connects to an `abstractgateway` at `/api/gateway/*`.
124
+
125
+ Start here:
126
+ - [`docs/web.md`](docs/web.md)
127
+ - [`docs/deployment-web.md`](docs/deployment-web.md)
128
+
129
+ ## Documentation
130
+
131
+ - Start here: [`docs/getting-started.md`](docs/getting-started.md)
132
+ - FAQ: [`docs/faq.md`](docs/faq.md)
133
+ - Docs index: [`docs/README.md`](docs/README.md)
134
+ - [`docs/architecture.md`](docs/architecture.md)
135
+ - [`docs/cli.md`](docs/cli.md)
136
+ - [`docs/api.md`](docs/api.md)
137
+ - [`docs/workflows.md`](docs/workflows.md)
138
+ - [`docs/ui_events.md`](docs/ui_events.md)
139
+
140
+ ## Development
141
+
142
+ ```bash
143
+ pip install -e ".[dev]"
144
+ pytest -q
145
+ ruff check .
146
+ black .
147
+ ```
148
+
149
+ ## Project
150
+
151
+ - Changelog: [`CHANGELOG.md`](CHANGELOG.md)
152
+ - Contributing: [`CONTRIBUTING.md`](CONTRIBUTING.md)
153
+ - Security: [`SECURITY.md`](SECURITY.md)
154
+ - Acknowledgments: [`ACKNOWLEDMENTS.md`](ACKNOWLEDMENTS.md)
155
+
156
+ ## License
157
+
158
+ MIT. See [`LICENSE`](LICENSE).
@@ -0,0 +1,119 @@
1
+ # AbstractCode
2
+
3
+ Durable terminal TUI for agentic coding on the Abstract* stack (**AbstractAgent + AbstractRuntime + AbstractCore**).
4
+
5
+ Status: **pre-alpha** (APIs and UX may change).
6
+
7
+ Next: [`docs/getting-started.md`](docs/getting-started.md).
8
+
9
+ ## Features
10
+
11
+ - Interactive TUI (`abstractcode`) with **durable runs** (resume/pause/cancel), snapshots, and logs
12
+ - **Approval-gated tools** by default (with an allowlist you can configure)
13
+ - Built-in agents: `react`, `memact`, `codeact`
14
+ - VisualFlow workflows:
15
+ - run locally: `abstractcode flow ...` (optional extra)
16
+ - run as an agent: `abstractcode --agent <flow_ref>`
17
+ - Remote tool execution via **MCP** (`/mcp`, `/executor`)
18
+ - Optional gateway-first Web UI in `web/`
19
+
20
+ ## Install
21
+
22
+ Python: **3.10+**
23
+
24
+ ```bash
25
+ pip install abstractcode
26
+ ```
27
+
28
+ Optional (run VisualFlow locally via `abstractcode flow ...`):
29
+
30
+ ```bash
31
+ pip install "abstractcode[flow]"
32
+ ```
33
+
34
+ From source (development):
35
+
36
+ ```bash
37
+ pip install -e ".[dev]"
38
+ ```
39
+
40
+ ## Quickstart (TUI)
41
+
42
+ Ollama (default provider):
43
+
44
+ ```bash
45
+ abstractcode --provider ollama --model qwen3:1.7b-q4_K_M
46
+ ```
47
+
48
+ OpenAI-compatible server (e.g. LM Studio):
49
+
50
+ ```bash
51
+ abstractcode --provider openai --base-url http://127.0.0.1:1234/v1 --model qwen/qwen3-next-80b
52
+ ```
53
+
54
+ Inside the app:
55
+ - `/help` shows the authoritative command list
56
+ - type a task (or use `/task ...`)
57
+ - tool approvals: `/auto-accept` (or start with `--auto-approve`)
58
+ - attach files with `@path/to/file` in your prompt
59
+
60
+ ## Persistence (durable runs)
61
+
62
+ Default paths:
63
+ - state file: `~/.abstractcode/state.json`
64
+ - durable stores: `~/.abstractcode/state.d/`
65
+ - saved settings: `~/.abstractcode/state.config.json`
66
+
67
+ Disable persistence:
68
+
69
+ ```bash
70
+ abstractcode --no-state
71
+ ```
72
+
73
+ ## Workflows
74
+
75
+ - Local runs: `abstractcode flow run <flow_id_or_path> ...` (requires `abstractcode[flow]`)
76
+ - Workflow agent: `abstractcode --agent /path/to/workflow.json ...`
77
+ - Remote control-plane: `abstractcode gateway --help`
78
+ - Bundle management on a gateway: `abstractcode workflow --help`
79
+
80
+ Details: [`docs/workflows.md`](docs/workflows.md).
81
+
82
+ ## Web UI
83
+
84
+ The web host lives in `web/` and connects to an `abstractgateway` at `/api/gateway/*`.
85
+
86
+ Start here:
87
+ - [`docs/web.md`](docs/web.md)
88
+ - [`docs/deployment-web.md`](docs/deployment-web.md)
89
+
90
+ ## Documentation
91
+
92
+ - Start here: [`docs/getting-started.md`](docs/getting-started.md)
93
+ - FAQ: [`docs/faq.md`](docs/faq.md)
94
+ - Docs index: [`docs/README.md`](docs/README.md)
95
+ - [`docs/architecture.md`](docs/architecture.md)
96
+ - [`docs/cli.md`](docs/cli.md)
97
+ - [`docs/api.md`](docs/api.md)
98
+ - [`docs/workflows.md`](docs/workflows.md)
99
+ - [`docs/ui_events.md`](docs/ui_events.md)
100
+
101
+ ## Development
102
+
103
+ ```bash
104
+ pip install -e ".[dev]"
105
+ pytest -q
106
+ ruff check .
107
+ black .
108
+ ```
109
+
110
+ ## Project
111
+
112
+ - Changelog: [`CHANGELOG.md`](CHANGELOG.md)
113
+ - Contributing: [`CONTRIBUTING.md`](CONTRIBUTING.md)
114
+ - Security: [`SECURITY.md`](SECURITY.md)
115
+ - Acknowledgments: [`ACKNOWLEDMENTS.md`](ACKNOWLEDMENTS.md)
116
+
117
+ ## License
118
+
119
+ MIT. See [`LICENSE`](LICENSE).
@@ -9,7 +9,7 @@ Email: contact@abstractcore.ai
9
9
  Website: https://abstractcore.ai
10
10
  """
11
11
 
12
- __version__ = "0.2.0"
12
+ __version__ = "0.3.1"
13
13
  __author__ = "Laurent-Philippe Albou"
14
14
  __email__ = "contact@abstractcore.ai"
15
15
  __license__ = "MIT"