gauss-ai 0.89.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.
Files changed (54) hide show
  1. gauss_ai-0.89.2/LICENSE +21 -0
  2. gauss_ai-0.89.2/PKG-INFO +132 -0
  3. gauss_ai-0.89.2/README.md +193 -0
  4. gauss_ai-0.89.2/docs/pypi-readme.md +104 -0
  5. gauss_ai-0.89.2/pyproject.toml +94 -0
  6. gauss_ai-0.89.2/scripts/command_doc_lookup.py +723 -0
  7. gauss_ai-0.89.2/scripts/gauss_ai.egg-info/PKG-INFO +132 -0
  8. gauss_ai-0.89.2/scripts/gauss_ai.egg-info/SOURCES.txt +52 -0
  9. gauss_ai-0.89.2/scripts/gauss_ai.egg-info/dependency_links.txt +1 -0
  10. gauss_ai-0.89.2/scripts/gauss_ai.egg-info/entry_points.txt +3 -0
  11. gauss_ai-0.89.2/scripts/gauss_ai.egg-info/requires.txt +3 -0
  12. gauss_ai-0.89.2/scripts/gauss_ai.egg-info/top_level.txt +42 -0
  13. gauss_ai-0.89.2/scripts/gauss_ai_chat.py +437 -0
  14. gauss_ai-0.89.2/scripts/gauss_ai_cli.py +435 -0
  15. gauss_ai-0.89.2/scripts/gauss_ai_config.py +371 -0
  16. gauss_ai-0.89.2/scripts/gauss_ai_doctor.py +342 -0
  17. gauss_ai-0.89.2/scripts/gauss_ai_export.py +79 -0
  18. gauss_ai-0.89.2/scripts/gauss_ai_guided_repair.py +420 -0
  19. gauss_ai-0.89.2/scripts/gauss_ai_init.py +208 -0
  20. gauss_ai-0.89.2/scripts/gauss_chat_provider.py +541 -0
  21. gauss_ai-0.89.2/scripts/gauss_code_assistant_cli.py +2269 -0
  22. gauss_ai-0.89.2/scripts/gauss_code_assistant_workflow.py +447 -0
  23. gauss_ai-0.89.2/scripts/gauss_code_execution.py +1671 -0
  24. gauss_ai-0.89.2/scripts/gauss_conversation_engine.py +2600 -0
  25. gauss_ai-0.89.2/scripts/gauss_doc_concept_index.py +424 -0
  26. gauss_ai-0.89.2/scripts/gauss_doc_reader.py +246 -0
  27. gauss_ai-0.89.2/scripts/gauss_docs_fetch.py +345 -0
  28. gauss_ai-0.89.2/scripts/gauss_environment_check.py +944 -0
  29. gauss_ai-0.89.2/scripts/gauss_error_catalog.py +724 -0
  30. gauss_ai-0.89.2/scripts/gauss_execution_adapter.py +593 -0
  31. gauss_ai-0.89.2/scripts/gauss_execution_diagnostics.py +304 -0
  32. gauss_ai-0.89.2/scripts/gauss_execution_handoff.py +734 -0
  33. gauss_ai-0.89.2/scripts/gauss_execution_interpreter.py +243 -0
  34. gauss_ai-0.89.2/scripts/gauss_execution_session.py +490 -0
  35. gauss_ai-0.89.2/scripts/gauss_execution_workflow.py +1121 -0
  36. gauss_ai-0.89.2/scripts/gauss_mcp_server.py +936 -0
  37. gauss_ai-0.89.2/scripts/gauss_orchestration_state_store.py +1058 -0
  38. gauss_ai-0.89.2/scripts/gauss_package_inspection.py +1023 -0
  39. gauss_ai-0.89.2/scripts/gauss_pre_execution_validation.py +4764 -0
  40. gauss_ai-0.89.2/scripts/gauss_repair_application.py +599 -0
  41. gauss_ai-0.89.2/scripts/gauss_repair_application_approval.py +197 -0
  42. gauss_ai-0.89.2/scripts/gauss_repair_application_gate.py +288 -0
  43. gauss_ai-0.89.2/scripts/gauss_repair_approval.py +147 -0
  44. gauss_ai-0.89.2/scripts/gauss_repair_draft.py +408 -0
  45. gauss_ai-0.89.2/scripts/gauss_repair_draft_approval.py +186 -0
  46. gauss_ai-0.89.2/scripts/gauss_repair_draft_generation.py +329 -0
  47. gauss_ai-0.89.2/scripts/gauss_repair_planner.py +550 -0
  48. gauss_ai-0.89.2/scripts/gauss_repair_session_summary.py +250 -0
  49. gauss_ai-0.89.2/scripts/gauss_runtime_orchestration.py +1756 -0
  50. gauss_ai-0.89.2/scripts/gauss_verification_execution.py +330 -0
  51. gauss_ai-0.89.2/scripts/gauss_verification_review.py +259 -0
  52. gauss_ai-0.89.2/scripts/gauss_workspace.py +474 -0
  53. gauss_ai-0.89.2/scripts/gauss_workspace_file_reader.py +399 -0
  54. gauss_ai-0.89.2/setup.cfg +4 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Eric Clower
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,132 @@
1
+ Metadata-Version: 2.4
2
+ Name: gauss-ai
3
+ Version: 0.89.2
4
+ Summary: GAUSS programming assistant: official-docs search, deterministic code validation and a human-approved execution handoff, as an MCP server and CLI.
5
+ Author: Eric Clower
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/ec78/gauss-ai
8
+ Project-URL: Repository, https://github.com/ec78/gauss-ai
9
+ Project-URL: Documentation, https://github.com/ec78/gauss-ai#readme
10
+ Project-URL: Issues, https://github.com/ec78/gauss-ai/issues
11
+ Classifier: Development Status :: 3 - Alpha
12
+ Classifier: Intended Audience :: Science/Research
13
+ Classifier: Operating System :: Microsoft :: Windows
14
+ Classifier: Operating System :: POSIX :: Linux
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Scientific/Engineering
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Provides-Extra: mcp
26
+ Requires-Dist: mcp>=2.3.0; extra == "mcp"
27
+ Dynamic: license-file
28
+
29
+ # GAUSS AI
30
+
31
+ <!-- mcp-name: io.github.ec78/gauss-ai -->
32
+
33
+ **GAUSS AI** helps an AI assistant work with the [GAUSS](https://www.aptech.com/) programming language without guessing. It runs on your machine as an MCP server (for Claude Code, Claude Desktop and other MCP clients) and as a command-line tool, `gauss-ai`.
34
+
35
+ - **Search the official GAUSS documentation**, downloaded once to your machine, and read any page or section in full.
36
+ - **Check GAUSS code deterministically**: documented call signatures, documented preconditions (for example, `invpd` needs a symmetric positive-definite matrix), syntax, unknown or invented functions, and statements that reach outside GAUSS. No model makes these decisions.
37
+ - **Run checked code in your own GAUSS**, optionally. Only after you approve the exact code, once, and only code that computes in memory.
38
+
39
+ Status: **alpha**. gauss-ai is an unofficial, independent project, not affiliated with or endorsed by Aptech Systems, Inc. GAUSS is a trademark of Aptech Systems, Inc.
40
+
41
+ ## Quickstart
42
+
43
+ You need Python 3.10 or newer. GAUSS itself is optional; without it, search and validation still work. Run every command below in one terminal (PowerShell or Command Prompt on Windows, Terminal on macOS or Linux), from any folder: the `pip` there must belong to the Python you want gauss-ai installed in, and the `claude mcp` commands register the server for your user account, not for a folder.
44
+
45
+ **1. Install**
46
+
47
+ ```
48
+ pip install "gauss-ai[mcp]"
49
+ gauss-ai version
50
+ ```
51
+
52
+ `pipx install "gauss-ai[mcp]"` or `uv tool install "gauss-ai[mcp]"` work too, and keep it out of your other Python environments. The `[mcp]` extra is needed only for the MCP server; the CLI alone has no third-party dependencies.
53
+
54
+ **2. Download the documentation (once)**
55
+
56
+ ```
57
+ gauss-ai docs fetch
58
+ gauss-ai doctor
59
+ ```
60
+
61
+ This downloads the published GAUSS documentation (about 8 MB) from docs.aptech.com into `~/.gauss-ai/docs/` and configures it. It runs only when you run it. It takes a few minutes; let it finish, since an interrupted download starts over (it never leaves a partial copy). `gauss-ai doctor` should end with `Overall: PASS` or `Overall: WARN`. A warning that no workspace parent is configured is expected and harmless: only `gauss-ai repair` uses one.
62
+
63
+ **3. Connect your MCP client**
64
+
65
+ Claude Code:
66
+
67
+ ```
68
+ claude mcp add --transport stdio --scope user gauss-ai -- gauss-ai-mcp
69
+ ```
70
+
71
+ Claude Desktop (Windows and macOS): add this to `claude_desktop_config.json` (Settings → Developer → Edit Config), then restart Claude Desktop. Desktop may not find `gauss-ai-mcp` on its own, so use the full path that `where gauss-ai-mcp` (Windows) or `which gauss-ai-mcp` (macOS) prints:
72
+
73
+ ```json
74
+ {
75
+ "mcpServers": {
76
+ "gauss-ai": {
77
+ "command": "C:\\full\\path\\to\\gauss-ai-mcp.exe",
78
+ "args": []
79
+ }
80
+ }
81
+ }
82
+ ```
83
+
84
+ In a new conversation, ask the assistant to start a gauss-ai session. It should report `docs_root_configured: true`.
85
+
86
+ **4. Real GAUSS (optional)**
87
+
88
+ Point gauss-ai at your **terminal** GAUSS executable (`tgauss` or `tgauss.exe`, never the GUI), and make it the default runner. On Windows it is `tgauss.exe` in your GAUSS folder. On macOS, use the `tgauss` script in your GAUSS home folder, not the program inside the app, since the script sets up GAUSS's environment. On Linux, it is in the folder where you unpacked GAUSS and ran `./ginstall`.
89
+
90
+ ```
91
+ gauss-ai config set gauss-executable "C:\gauss26\tgauss.exe"
92
+ gauss-ai config set default-runner gauss
93
+ ```
94
+
95
+ Then give the server process your opt-in, `GAUSS_AI_MCP_ALLOW_REAL_GAUSS=1`. Only whoever starts the server can set it, and every run still needs your own "yes":
96
+
97
+ - Claude Code: `claude mcp remove gauss-ai --scope user`, then
98
+ `claude mcp add --transport stdio --scope user gauss-ai -e GAUSS_AI_MCP_ALLOW_REAL_GAUSS=1 -- gauss-ai-mcp`
99
+ (the server name must come before `-e`, which takes several values)
100
+ - Claude Desktop: add `"env": { "GAUSS_AI_MCP_ALLOW_REAL_GAUSS": "1" }` to the entry above, and restart.
101
+
102
+ Set it for yourself only. Never put it in a project's shared `.mcp.json`, where it would turn real execution on for everyone who clones the project.
103
+
104
+ To check: in a new conversation, a new session must report `real_gauss_allowed: true`. That confirms the opt-in, not that GAUSS starts; the first approved run shows that. For a first run, ask the assistant to validate and run `x = { 1, 1 }; print sumc(x);`, and answer the prompt yourself. Code must call at least one documented function to be eligible, so `print 1+1;` is refused, by design.
105
+
106
+ **5. Upgrading**
107
+
108
+ Close your MCP client (on Windows a running server locks its files), run `pip install -U "gauss-ai[mcp]"`, then reopen the client and start a new conversation. If a session reports a `server_version` other than the one you installed, or a tool asks for an argument its description does not mention, restart the client again: some clients keep old tool descriptions.
109
+
110
+ ## What it will and won't do
111
+
112
+ - Code from the assistant is **never run** unless gauss-ai's own checks rate it `handoff_candidate` and you approve that exact code. One approval runs it once, in a temporary directory that is deleted afterwards.
113
+ - Code that reaches outside GAUSS is **always blocked** from running: OS commands, other programs, `run`/`#include`, directory changes, any file read, write or delete, web data APIs and databases.
114
+ - A verdict is **evidence, not a guarantee** of correct results. Much real code is `review_required` (for example, most loops, or an argument computed by an expression, since expressions are never evaluated), and gauss-ai says exactly what it could not check.
115
+ - No telemetry. The only network access is `gauss-ai docs fetch`, run by you, and a model provider you explicitly enable for the optional built-in chat.
116
+
117
+ ## Platforms
118
+
119
+ Search, validation and the MCP server are tested on Windows, Linux and macOS. Running real GAUSS has been verified on Windows (GAUSS 26.1) only; on Linux and macOS the `tgauss` path is implemented but not yet verified. Reports are welcome.
120
+
121
+ ## The GAUSS documentation
122
+
123
+ gauss-ai never bundles, mirrors or redistributes the GAUSS documentation. Each user downloads Aptech's public documentation from docs.aptech.com with `gauss-ai docs fetch`. Searches run locally, and excerpts go only to your own MCP client.
124
+
125
+ ## More
126
+
127
+ - [Full README and guides](https://github.com/ec78/gauss-ai#readme)
128
+ - [MCP server reference](https://github.com/ec78/gauss-ai/blob/main/docs/mcp-server.md)
129
+ - [Known limitations](https://github.com/ec78/gauss-ai/blob/main/KNOWN_LIMITATIONS.md)
130
+ - [Report an issue](https://github.com/ec78/gauss-ai/issues)
131
+
132
+ MIT License.
@@ -0,0 +1,193 @@
1
+ # GAUSS AI
2
+
3
+ <!-- mcp-name: io.github.ec78/gauss-ai -->
4
+
5
+ **GAUSS AI** helps an AI assistant work with the [GAUSS](https://www.aptech.com/) programming language without guessing. It runs on your machine as an MCP server (for Claude Code, Claude Desktop and other MCP clients) and as a command-line tool, `gauss-ai`.
6
+
7
+ - **Search the official GAUSS documentation**, downloaded once to your machine, and read any page or section in full.
8
+ - **Check GAUSS code deterministically**: documented call signatures, documented preconditions (for example, `invpd` needs a symmetric positive-definite matrix), syntax, unknown or invented functions, and statements that reach outside GAUSS. No model makes these decisions.
9
+ - **Run checked code in your own GAUSS**, optionally. Only after you approve the exact code, once, and only code that computes in memory.
10
+ - **Repair a GAUSS file**, one approved step at a time, through the guided repair pipeline (`gauss-ai repair`).
11
+
12
+ ## Status
13
+
14
+ **Alpha.** Current milestone: `v0.89.0` - Release Readiness (package version `0.89.2`). gauss-ai is an unofficial, independent project, not affiliated with or endorsed by Aptech Systems, Inc. GAUSS is a trademark of Aptech Systems, Inc. The milestone history is in [docs/development-history.md](docs/development-history.md).
15
+
16
+ ## Quickstart
17
+
18
+ You need Python 3.10 or newer. GAUSS itself is optional; without it, search and validation still work. Run every command below in one terminal (PowerShell or Command Prompt on Windows, Terminal on macOS or Linux), from any folder: the `pip` there must belong to the Python you want gauss-ai installed in, and the `claude mcp` commands register the server for your user account, not for a folder.
19
+
20
+ **1. Install**
21
+
22
+ ```
23
+ pip install "gauss-ai[mcp]"
24
+ gauss-ai version
25
+ ```
26
+
27
+ `pipx install "gauss-ai[mcp]"` or `uv tool install "gauss-ai[mcp]"` work too, and keep it out of your other Python environments. The `[mcp]` extra is needed only for the MCP server; the CLI alone has no third-party dependencies. To work on gauss-ai itself, see "Working on gauss-ai" below.
28
+
29
+ **2. Download the documentation (once)**
30
+
31
+ ```
32
+ gauss-ai docs fetch
33
+ gauss-ai doctor
34
+ ```
35
+
36
+ This downloads the published GAUSS documentation (about 8 MB) from docs.aptech.com into `~/.gauss-ai/docs/` and configures it. It runs only when you run it. It takes a few minutes; let it finish, since an interrupted download starts over (it never leaves a partial copy). `gauss-ai doctor` should end with `Overall: PASS` or `Overall: WARN`. A warning that no workspace parent is configured is expected and harmless: only `gauss-ai repair` uses one. See [docs/gauss-documentation-setup.md](docs/gauss-documentation-setup.md).
37
+
38
+ **3. Connect your MCP client**
39
+
40
+ Claude Code:
41
+
42
+ ```
43
+ claude mcp add --transport stdio --scope user gauss-ai -- gauss-ai-mcp
44
+ ```
45
+
46
+ Claude Desktop (Windows and macOS): add this to `claude_desktop_config.json` (Settings → Developer → Edit Config), then restart Claude Desktop. Desktop may not find `gauss-ai-mcp` on its own, so use the full path that `where gauss-ai-mcp` (Windows) or `which gauss-ai-mcp` (macOS) prints:
47
+
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "gauss-ai": {
52
+ "command": "C:\\full\\path\\to\\gauss-ai-mcp.exe",
53
+ "args": []
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ In a new conversation, ask the assistant to start a gauss-ai session. It should report `docs_root_configured: true`. The tools are described in [docs/mcp-server.md](docs/mcp-server.md).
60
+
61
+ **4. Real GAUSS (optional)**
62
+
63
+ Point gauss-ai at your **terminal** GAUSS executable (`tgauss` or `tgauss.exe`, never the GUI), and make it the default runner. On Windows it is `tgauss.exe` in your GAUSS folder. On macOS, use the `tgauss` script in your GAUSS home folder, not the program inside the app, since the script sets up GAUSS's environment. On Linux, it is in the folder where you unpacked GAUSS and ran `./ginstall`.
64
+
65
+ ```
66
+ gauss-ai config set gauss-executable "C:\gauss26\tgauss.exe"
67
+ gauss-ai config set default-runner gauss
68
+ ```
69
+
70
+ Then give the server process your opt-in, `GAUSS_AI_MCP_ALLOW_REAL_GAUSS=1`. Only whoever starts the server can set it, and every run still needs your own "yes":
71
+
72
+ - Claude Code: `claude mcp remove gauss-ai --scope user`, then
73
+ `claude mcp add --transport stdio --scope user gauss-ai -e GAUSS_AI_MCP_ALLOW_REAL_GAUSS=1 -- gauss-ai-mcp`
74
+ (the server name must come before `-e`, which takes several values)
75
+ - Claude Desktop: add `"env": { "GAUSS_AI_MCP_ALLOW_REAL_GAUSS": "1" }` to the entry above, and restart.
76
+
77
+ Set it for yourself only. Never put it in a project's shared `.mcp.json` (this repository's own `.mcp.json` deliberately leaves it out), where it would turn real execution on for everyone who clones the project.
78
+
79
+ To check: in a new conversation, a new session must report `real_gauss_allowed: true`. That confirms the opt-in, not that GAUSS starts; the first approved run shows that. For a first run, ask the assistant to validate and run `x = { 1, 1 }; print sumc(x);`, and answer the prompt yourself. Code must call at least one documented function to be eligible, so `print 1+1;` is refused, by design.
80
+
81
+ **5. Upgrading**
82
+
83
+ Close your MCP client (on Windows a running server locks its files), run `pip install -U "gauss-ai[mcp]"`, then reopen the client and start a new conversation. If a session reports a `server_version` other than the one you installed, or a tool asks for an argument its description does not mention, restart the client again: some clients keep old tool descriptions.
84
+
85
+ ## What it will and won't do
86
+
87
+ - Code from the assistant is **never run** unless gauss-ai's own checks rate it `handoff_candidate` and you approve that exact code. One approval runs it once, in a temporary directory that is deleted afterwards.
88
+ - Code that reaches outside GAUSS is **always blocked** from running: OS commands, other programs, `run`/`#include`, directory changes, any file read, write or delete, web data APIs and databases.
89
+ - A verdict is **evidence, not a guarantee** of correct results. Much real code is `review_required` (for example, most loops, or an argument computed by an expression, since expressions are never evaluated), and gauss-ai says exactly what it could not check.
90
+ - No telemetry. The only network access is `gauss-ai docs fetch`, run by you, and a model provider you explicitly enable for the optional built-in chat.
91
+
92
+ ## Platforms
93
+
94
+ Search, validation and the MCP server are tested on Windows, Linux and macOS. Running real GAUSS has been verified on Windows (GAUSS 26.1) only; on Linux and macOS the `tgauss` path is implemented but not yet verified. Reports are welcome.
95
+
96
+ ## The GAUSS documentation
97
+
98
+ gauss-ai never bundles, mirrors or redistributes the GAUSS documentation. Each user downloads Aptech's public documentation from docs.aptech.com with `gauss-ai docs fetch`. Searches run locally, and excerpts go only to your own MCP client.
99
+
100
+ ## Safety Model
101
+
102
+ Every approval layer is independent, digest-bound, and never inferred: execution confirmation, strategy approval, draft approval, application approval, the application gate, explicit file reading, and human verification review. The guided `gauss-ai repair` command may simplify *navigation* through these steps, but it never simplifies *authorization* — see [docs/alpha-tester-guide.md](docs/alpha-tester-guide.md)'s "Current safety boundaries" for the complete list, and `planning/v0.67.0-productization-and-alpha-packaging.md` for the tests that prove the guided command cannot bypass any of them.
103
+
104
+ ## Conversational GAUSS Q&A
105
+
106
+ ```
107
+ gauss-ai
108
+ ```
109
+
110
+ launches a chat you can ask GAUSS questions in plain language, with follow-up context retained ("What does reshape do?" → "Show me a simple example." → "What's the difference between that and vec?"). It answers from this repository's verified error catalog and, when you configure `docs-root`, real local GAUSS documentation — always disclosing whether an answer is grounded or not. It never applies a repair and never writes a file. As of `v0.78.0`, generated code that reaches `HANDOFF_CANDIDATE` readiness (the strongest deterministic evidence level) can be executed through one narrow, explicit, single-use, digest-bound approval — see [docs/controlled-execution-handoff.md](docs/controlled-execution-handoff.md); asking to "run this" for anything else still gets an honest redirect or a clear "nothing eligible right now" message, never a silent no-op. The prior command-by-command workflow REPL is unchanged and still available at `gauss-ai repl`. See [docs/conversational-qa.md](docs/conversational-qa.md) for the full guide, including how to configure a real model provider.
111
+
112
+ ## What Happens to My Files?
113
+
114
+ Before you point this at your own code, here is exactly what it does and does not do to your files, in one place:
115
+
116
+ - **Your original source file is never modified directly.** `gauss-ai repair <file.gss>` copies the named file into a fresh, contained workspace and works there instead.
117
+ - **All repair work happens inside that workspace** — not in place, and not anywhere else on disk.
118
+ - **Explicit approval is required before every stage** — execution, repair strategy, repair draft, and application are each a separate, independent decision; nothing is inferred or defaulted to "yes."
119
+ - **Applying a repair always creates a mandatory, never-overwritten backup** before anything is written.
120
+ - **Verification is evidence-based, not assumed.** The repaired file is re-executed and compared against the original run; the result is a factual comparison, never a fabricated correctness claim.
121
+ - **You decide whether a repair is accepted.** The final verification review (`accepted` / `rejected` / `inconclusive`) is always your own recorded decision, never inferred automatically.
122
+
123
+ See "Safety Model" above and [docs/alpha-tester-guide.md](docs/alpha-tester-guide.md) for the complete list of safety boundaries this summarizes.
124
+
125
+ ## Using the CLI
126
+
127
+ Everything above also works without an MCP client: `gauss-ai` (no subcommand) opens a conversational GAUSS assistant, and `gauss-ai repair <file.gss>` runs the guided repair pipeline.
128
+
129
+ ## Repair quickstart (fake mode, no GAUSS required)
130
+
131
+ ```
132
+ gauss-ai init
133
+ gauss-ai doctor
134
+ gauss-ai repair examples/alpha-demo/broken.gss --fake-result failure
135
+ ```
136
+
137
+ Walks you through the entire pipeline — confirm execution, approve a repair strategy, describe and approve a draft, approve applying it, verify, and record your review — in well under 10 minutes. See [docs/alpha-quickstart.md](docs/alpha-quickstart.md) for the full walkthrough.
138
+
139
+ ## Real GAUSS Mode
140
+
141
+ Once you have a configured, valid **terminal** GAUSS executable (`tgauss`/`tgauss.exe` — never the GUI `gauss.exe`):
142
+
143
+ ```
144
+ gauss-ai config set gauss-executable C:\gauss26\tgauss.exe
145
+ gauss-ai repair <your-file.gss> --runner gauss
146
+ ```
147
+
148
+ Every approval step is identical to fake mode; only the underlying runner changes. Verified against **GAUSS 26.1.1 on Windows** — see [KNOWN_LIMITATIONS.md](KNOWN_LIMITATIONS.md) for the exact supported scope.
149
+
150
+ ## Guided Repair Workflow
151
+
152
+ `gauss-ai repair <file.gss>` is orchestration/UI only over the exact same modules the lower-level command-by-command REPL uses (`python scripts/gauss_code_assistant_cli.py`, still fully supported — see the "Recommended reasoning sequence" section below for its full command reference). It hides internal identifiers by default and shows plain-language next steps; digests and trace IDs are still shown at every approval point, since they are what you are actually approving. As of `v0.69.0`, it also shows the evidence behind a repair immediately after strategy approval and, for a small, verified set of patterns, a candidate replacement you can accept, edit, or reject — never applied without your own decision, and never a substitute for the approval steps that follow.
153
+
154
+ ## Expected Workflow
155
+
156
+ For a real repair, on your own file:
157
+
158
+ ```
159
+ gauss-ai init
160
+ gauss-ai doctor
161
+ gauss-ai config set gauss-executable <path to your tgauss/tgauss.exe>
162
+ gauss-ai repair <your-file.gss> --runner gauss
163
+ ```
164
+
165
+ You will be asked to explicitly confirm execution, approve a repair strategy, describe and approve a draft, approve applying it, and record a review of the verification evidence — every step is yours to decide. Add `--export-session <path>` to write a read-only diagnostic bundle (config, runner, workspace, full transcript, no secrets) you can attach to a bug report.
166
+
167
+ ## How to Report Issues
168
+
169
+ See [docs/reporting-bugs.md](docs/reporting-bugs.md) for the process and [docs/alpha-feedback-template.md](docs/alpha-feedback-template.md) for the structured template. In short: run `gauss-ai doctor` first, gather a `--export-session` diagnostic bundle if possible, and report any apparent unauthorized approval/execution/read/write as Critical severity regardless of anything else.
170
+
171
+ ## Documentation
172
+
173
+ - [docs/alpha-installation.md](docs/alpha-installation.md) — prerequisites, install, configuration, first-run setup.
174
+ - [docs/alpha-quickstart.md](docs/alpha-quickstart.md) — under 10 minutes to a successful fake-mode repair.
175
+ - [docs/alpha-troubleshooting.md](docs/alpha-troubleshooting.md) — common setup and workflow problems.
176
+ - [docs/alpha-tester-guide.md](docs/alpha-tester-guide.md) — what to test, safety boundaries, how to report issues.
177
+ - [docs/alpha-feedback-template.md](docs/alpha-feedback-template.md) — structured bug/feedback template.
178
+ - [docs/private-alpha-testing.md](docs/private-alpha-testing.md) — the private alpha entry point: what was validated, expected workflow, how to report issues.
179
+ - [docs/reporting-bugs.md](docs/reporting-bugs.md) — how to gather evidence (including `--export-session`) and where to report.
180
+ - [docs/known-alpha-limitations.md](docs/known-alpha-limitations.md) — tester-facing summary of current limitations.
181
+ - [docs/conversational-qa.md](docs/conversational-qa.md) — how to use conversational GAUSS Q&A, provider configuration, grounding, execution boundary.
182
+ - [docs/conversational-code-generation.md](docs/conversational-code-generation.md), [docs/grounding-gated-generation.md](docs/grounding-gated-generation.md), [docs/pre-execution-validation.md](docs/pre-execution-validation.md) — conversational GAUSS code generation, the deterministic generation gate, and documented call-signature/precondition checking with an execution-eligibility verdict.
183
+ - [examples/alpha-demo/](examples/alpha-demo/) — a small, ready-to-run demo scenario.
184
+ - [docs/mcp-server.md](docs/mcp-server.md) — the MCP server's tools, the hybrid and strict paths, the real-GAUSS opt-in and the session model.
185
+ - [docs/development-history.md](docs/development-history.md) — every milestone's summary, newest first, and the architecture notes.
186
+
187
+ ## Known Limitations
188
+
189
+ See [docs/known-alpha-limitations.md](docs/known-alpha-limitations.md) for a tester-facing summary, or [KNOWN_LIMITATIONS.md](KNOWN_LIMITATIONS.md) for the complete, per-milestone record. In short: much real code stops at `review_required`, since expressions are never evaluated; single-file repair only, no autonomous repair, no rerun/rollback beyond the one mandatory backup; no durable sessions; no telemetry; and real execution verified on Windows (GAUSS 26.1) only.
190
+
191
+ ## Working on gauss-ai
192
+
193
+ From a checkout: `pip install -e ".[mcp]"`, re-run after every pull that touches `scripts/`. Each `scripts/test_*.py` is a standalone script (`python scripts/test_<module>.py`); `python scripts/check_release_readiness.py` runs the evidence and tracking checks. This repository's `.mcp.json` registers the server for Claude Code at project scope. `CLAUDE.md` holds the project's rules, `planning/` one design document per milestone, and `evaluations/` the benchmark prompts and live-evaluation records.
@@ -0,0 +1,104 @@
1
+ # GAUSS AI
2
+
3
+ <!-- mcp-name: io.github.ec78/gauss-ai -->
4
+
5
+ **GAUSS AI** helps an AI assistant work with the [GAUSS](https://www.aptech.com/) programming language without guessing. It runs on your machine as an MCP server (for Claude Code, Claude Desktop and other MCP clients) and as a command-line tool, `gauss-ai`.
6
+
7
+ - **Search the official GAUSS documentation**, downloaded once to your machine, and read any page or section in full.
8
+ - **Check GAUSS code deterministically**: documented call signatures, documented preconditions (for example, `invpd` needs a symmetric positive-definite matrix), syntax, unknown or invented functions, and statements that reach outside GAUSS. No model makes these decisions.
9
+ - **Run checked code in your own GAUSS**, optionally. Only after you approve the exact code, once, and only code that computes in memory.
10
+
11
+ Status: **alpha**. gauss-ai is an unofficial, independent project, not affiliated with or endorsed by Aptech Systems, Inc. GAUSS is a trademark of Aptech Systems, Inc.
12
+
13
+ ## Quickstart
14
+
15
+ You need Python 3.10 or newer. GAUSS itself is optional; without it, search and validation still work. Run every command below in one terminal (PowerShell or Command Prompt on Windows, Terminal on macOS or Linux), from any folder: the `pip` there must belong to the Python you want gauss-ai installed in, and the `claude mcp` commands register the server for your user account, not for a folder.
16
+
17
+ **1. Install**
18
+
19
+ ```
20
+ pip install "gauss-ai[mcp]"
21
+ gauss-ai version
22
+ ```
23
+
24
+ `pipx install "gauss-ai[mcp]"` or `uv tool install "gauss-ai[mcp]"` work too, and keep it out of your other Python environments. The `[mcp]` extra is needed only for the MCP server; the CLI alone has no third-party dependencies.
25
+
26
+ **2. Download the documentation (once)**
27
+
28
+ ```
29
+ gauss-ai docs fetch
30
+ gauss-ai doctor
31
+ ```
32
+
33
+ This downloads the published GAUSS documentation (about 8 MB) from docs.aptech.com into `~/.gauss-ai/docs/` and configures it. It runs only when you run it. It takes a few minutes; let it finish, since an interrupted download starts over (it never leaves a partial copy). `gauss-ai doctor` should end with `Overall: PASS` or `Overall: WARN`. A warning that no workspace parent is configured is expected and harmless: only `gauss-ai repair` uses one.
34
+
35
+ **3. Connect your MCP client**
36
+
37
+ Claude Code:
38
+
39
+ ```
40
+ claude mcp add --transport stdio --scope user gauss-ai -- gauss-ai-mcp
41
+ ```
42
+
43
+ Claude Desktop (Windows and macOS): add this to `claude_desktop_config.json` (Settings → Developer → Edit Config), then restart Claude Desktop. Desktop may not find `gauss-ai-mcp` on its own, so use the full path that `where gauss-ai-mcp` (Windows) or `which gauss-ai-mcp` (macOS) prints:
44
+
45
+ ```json
46
+ {
47
+ "mcpServers": {
48
+ "gauss-ai": {
49
+ "command": "C:\\full\\path\\to\\gauss-ai-mcp.exe",
50
+ "args": []
51
+ }
52
+ }
53
+ }
54
+ ```
55
+
56
+ In a new conversation, ask the assistant to start a gauss-ai session. It should report `docs_root_configured: true`.
57
+
58
+ **4. Real GAUSS (optional)**
59
+
60
+ Point gauss-ai at your **terminal** GAUSS executable (`tgauss` or `tgauss.exe`, never the GUI), and make it the default runner. On Windows it is `tgauss.exe` in your GAUSS folder. On macOS, use the `tgauss` script in your GAUSS home folder, not the program inside the app, since the script sets up GAUSS's environment. On Linux, it is in the folder where you unpacked GAUSS and ran `./ginstall`.
61
+
62
+ ```
63
+ gauss-ai config set gauss-executable "C:\gauss26\tgauss.exe"
64
+ gauss-ai config set default-runner gauss
65
+ ```
66
+
67
+ Then give the server process your opt-in, `GAUSS_AI_MCP_ALLOW_REAL_GAUSS=1`. Only whoever starts the server can set it, and every run still needs your own "yes":
68
+
69
+ - Claude Code: `claude mcp remove gauss-ai --scope user`, then
70
+ `claude mcp add --transport stdio --scope user gauss-ai -e GAUSS_AI_MCP_ALLOW_REAL_GAUSS=1 -- gauss-ai-mcp`
71
+ (the server name must come before `-e`, which takes several values)
72
+ - Claude Desktop: add `"env": { "GAUSS_AI_MCP_ALLOW_REAL_GAUSS": "1" }` to the entry above, and restart.
73
+
74
+ Set it for yourself only. Never put it in a project's shared `.mcp.json`, where it would turn real execution on for everyone who clones the project.
75
+
76
+ To check: in a new conversation, a new session must report `real_gauss_allowed: true`. That confirms the opt-in, not that GAUSS starts; the first approved run shows that. For a first run, ask the assistant to validate and run `x = { 1, 1 }; print sumc(x);`, and answer the prompt yourself. Code must call at least one documented function to be eligible, so `print 1+1;` is refused, by design.
77
+
78
+ **5. Upgrading**
79
+
80
+ Close your MCP client (on Windows a running server locks its files), run `pip install -U "gauss-ai[mcp]"`, then reopen the client and start a new conversation. If a session reports a `server_version` other than the one you installed, or a tool asks for an argument its description does not mention, restart the client again: some clients keep old tool descriptions.
81
+
82
+ ## What it will and won't do
83
+
84
+ - Code from the assistant is **never run** unless gauss-ai's own checks rate it `handoff_candidate` and you approve that exact code. One approval runs it once, in a temporary directory that is deleted afterwards.
85
+ - Code that reaches outside GAUSS is **always blocked** from running: OS commands, other programs, `run`/`#include`, directory changes, any file read, write or delete, web data APIs and databases.
86
+ - A verdict is **evidence, not a guarantee** of correct results. Much real code is `review_required` (for example, most loops, or an argument computed by an expression, since expressions are never evaluated), and gauss-ai says exactly what it could not check.
87
+ - No telemetry. The only network access is `gauss-ai docs fetch`, run by you, and a model provider you explicitly enable for the optional built-in chat.
88
+
89
+ ## Platforms
90
+
91
+ Search, validation and the MCP server are tested on Windows, Linux and macOS. Running real GAUSS has been verified on Windows (GAUSS 26.1) only; on Linux and macOS the `tgauss` path is implemented but not yet verified. Reports are welcome.
92
+
93
+ ## The GAUSS documentation
94
+
95
+ gauss-ai never bundles, mirrors or redistributes the GAUSS documentation. Each user downloads Aptech's public documentation from docs.aptech.com with `gauss-ai docs fetch`. Searches run locally, and excerpts go only to your own MCP client.
96
+
97
+ ## More
98
+
99
+ - [Full README and guides](https://github.com/ec78/gauss-ai#readme)
100
+ - [MCP server reference](https://github.com/ec78/gauss-ai/blob/main/docs/mcp-server.md)
101
+ - [Known limitations](https://github.com/ec78/gauss-ai/blob/main/KNOWN_LIMITATIONS.md)
102
+ - [Report an issue](https://github.com/ec78/gauss-ai/issues)
103
+
104
+ MIT License.
@@ -0,0 +1,94 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "gauss-ai"
7
+ version = "0.89.2"
8
+ description = "GAUSS programming assistant: official-docs search, deterministic code validation and a human-approved execution handoff, as an MCP server and CLI."
9
+ readme = "docs/pypi-readme.md"
10
+ requires-python = ">=3.10"
11
+ license = "MIT"
12
+ license-files = ["LICENSE"]
13
+ authors = [{ name = "Eric Clower" }]
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Science/Research",
17
+ "Operating System :: Microsoft :: Windows",
18
+ "Operating System :: POSIX :: Linux",
19
+ "Operating System :: MacOS",
20
+ "Programming Language :: Python :: 3",
21
+ "Programming Language :: Python :: 3 :: Only",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Topic :: Scientific/Engineering",
26
+ ]
27
+
28
+ [project.urls]
29
+ Homepage = "https://github.com/ec78/gauss-ai"
30
+ Repository = "https://github.com/ec78/gauss-ai"
31
+ Documentation = "https://github.com/ec78/gauss-ai#readme"
32
+ Issues = "https://github.com/ec78/gauss-ai/issues"
33
+
34
+ [project.optional-dependencies]
35
+ # Only required to run the local MCP server (`gauss-ai mcp` / `gauss-ai-mcp`);
36
+ # the base CLI remains stdlib-only with no third-party runtime dependency.
37
+ mcp = ["mcp>=2.3.0"]
38
+
39
+ [project.scripts]
40
+ gauss-ai = "gauss_ai_cli:main"
41
+ gauss-ai-mcp = "gauss_mcp_server:main"
42
+
43
+ [tool.setuptools]
44
+ package-dir = { "" = "scripts" }
45
+ # v0.89.0 (planning v0.89 §2.1, §3.1, decision 13): product modules only.
46
+ # The developer tools (build_differential_corpus, check_evaluation_tracking,
47
+ # check_release_readiness, gauss_differential_harness,
48
+ # gauss_syntax_mutations, validate_all_evidence, validate_lookup_evidence)
49
+ # stay in scripts/ and run from a checkout; installing them put generic
50
+ # top-level names such as `check_release_readiness` into site-packages.
51
+ py-modules = [
52
+ "command_doc_lookup",
53
+ "gauss_ai_chat",
54
+ "gauss_ai_cli",
55
+ "gauss_ai_config",
56
+ "gauss_ai_doctor",
57
+ "gauss_ai_export",
58
+ "gauss_ai_guided_repair",
59
+ "gauss_ai_init",
60
+ "gauss_chat_provider",
61
+ "gauss_code_assistant_cli",
62
+ "gauss_code_assistant_workflow",
63
+ "gauss_code_execution",
64
+ "gauss_conversation_engine",
65
+ "gauss_doc_concept_index",
66
+ "gauss_doc_reader",
67
+ "gauss_docs_fetch",
68
+ "gauss_environment_check",
69
+ "gauss_error_catalog",
70
+ "gauss_execution_adapter",
71
+ "gauss_execution_diagnostics",
72
+ "gauss_execution_handoff",
73
+ "gauss_execution_interpreter",
74
+ "gauss_execution_session",
75
+ "gauss_execution_workflow",
76
+ "gauss_mcp_server",
77
+ "gauss_orchestration_state_store",
78
+ "gauss_package_inspection",
79
+ "gauss_pre_execution_validation",
80
+ "gauss_repair_application",
81
+ "gauss_repair_application_approval",
82
+ "gauss_repair_application_gate",
83
+ "gauss_repair_approval",
84
+ "gauss_repair_draft",
85
+ "gauss_repair_draft_approval",
86
+ "gauss_repair_draft_generation",
87
+ "gauss_repair_planner",
88
+ "gauss_repair_session_summary",
89
+ "gauss_runtime_orchestration",
90
+ "gauss_verification_execution",
91
+ "gauss_verification_review",
92
+ "gauss_workspace",
93
+ "gauss_workspace_file_reader",
94
+ ]