sigit-code 1.7.5__tar.gz → 1.7.6__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.
- {sigit_code-1.7.5 → sigit_code-1.7.6}/Cargo.lock +2 -2
- {sigit_code-1.7.5 → sigit_code-1.7.6}/Cargo.toml +2 -2
- {sigit_code-1.7.5 → sigit_code-1.7.6}/PKG-INFO +1 -1
- sigit_code-1.7.6/crates/cli/README.md +90 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/chat.rs +18 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/main.rs +453 -89
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/permissions.rs +3 -1
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/tools.rs +350 -11
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_permissions.rs +73 -1
- sigit_code-1.7.5/crates/cli/README.md +0 -234
- {sigit_code-1.7.5 → sigit_code-1.7.6}/README.md +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/Cargo.toml +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/account.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/backend.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/client_fs.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/client_terminal.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/commands.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/frontmatter.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/harness_markup.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/headless.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/hooks.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/inline_tool_calls.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/instructions.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/mcp.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/models.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/program_status.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/provider.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/repetition.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/session_store.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/settings.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/setup.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/skills.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/subagents.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/src/workspace.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_audio.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_client_fs.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_client_terminal.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_cloud_reauth.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_concurrent_sessions.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_elicitation.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_embedded_context.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_endpoint_errors.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_error_codes.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_harness_markup.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_images.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_logout.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_multi_root.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_session_list.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_session_load.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_stop_reasons.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_tool_call_name.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/acp_tool_stdin.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/headless_mode.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/cli/tests/version_flag.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/Cargo.toml +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/README.md +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/assets/sign-in-logo.png +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/src/auth.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/src/browser_auth.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/src/credentials.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/src/lib.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/src/profile.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/src/prompt.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/crates/sigit-agent/tests/embedded.rs +0 -0
- {sigit_code-1.7.5 → sigit_code-1.7.6}/pyproject.toml +0 -0
|
@@ -5945,7 +5945,7 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
|
5945
5945
|
|
|
5946
5946
|
[[package]]
|
|
5947
5947
|
name = "sigit"
|
|
5948
|
-
version = "1.7.
|
|
5948
|
+
version = "1.7.6"
|
|
5949
5949
|
dependencies = [
|
|
5950
5950
|
"agent-client-protocol",
|
|
5951
5951
|
"anyhow",
|
|
@@ -5976,7 +5976,7 @@ dependencies = [
|
|
|
5976
5976
|
|
|
5977
5977
|
[[package]]
|
|
5978
5978
|
name = "sigit-agent"
|
|
5979
|
-
version = "1.7.
|
|
5979
|
+
version = "1.7.6"
|
|
5980
5980
|
dependencies = [
|
|
5981
5981
|
"agent-client-protocol",
|
|
5982
5982
|
"anyhow",
|
|
@@ -3,7 +3,7 @@ resolver = "3"
|
|
|
3
3
|
members = ["crates/cli", "crates/sigit-*"]
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
|
-
version = "1.7.
|
|
6
|
+
version = "1.7.6"
|
|
7
7
|
edition = "2024"
|
|
8
8
|
license = "Apache-2.0"
|
|
9
9
|
repository = "https://github.com/getsigit/sigit"
|
|
@@ -16,7 +16,7 @@ authors = ["Seto Elkahfi <seto@sigit.si>", "paydii <193906237+paydii@users.norep
|
|
|
16
16
|
# crates.io, so this resolves from the registry rather than the onde-ed checkout next door.
|
|
17
17
|
ed-acp = { version = "1.3.0", default-features = false }
|
|
18
18
|
ed-acp-testkit = "1.3.0"
|
|
19
|
-
sigit-agent = { version = "1.7.
|
|
19
|
+
sigit-agent = { version = "1.7.6", default-features = false, path = "crates/sigit-agent" }
|
|
20
20
|
|
|
21
21
|
# ACP protocol SDK
|
|
22
22
|
agent-client-protocol = { version = "2.2", features = ["unstable_session_fork"] }
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/assets/logo.png" alt="siGit Code" width="96">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">siGit Code</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center"><strong>The coding agent that runs where your code lives.</strong></p>
|
|
8
|
+
<p align="center">A modular on-device inference LLM coding agent. Core component of siGit Factory.</p>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<a href="https://crates.io/crates/sigit"><img src="https://img.shields.io/crates/v/sigit?style=flat-square&labelColor=17211D&color=235843" alt="Crates.io"></a>
|
|
12
|
+
<a href="https://pypi.org/project/sigit-code/"><img src="https://img.shields.io/pypi/v/sigit-code?style=flat-square&labelColor=17211D&color=235843" alt="PyPI"></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/@getsigit/sigit"><img src="https://img.shields.io/npm/v/@getsigit/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
|
|
14
|
+
<a href="https://snapcraft.io/sigit"><img src="https://snapcraft.io/sigit/badge.svg" alt="sigit"></a>
|
|
15
|
+
<a href="https://sigit.si/code"><img src="https://img.shields.io/badge/sigit.si%2Fcode-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
|
|
16
|
+
<a href="https://github.com/getsigit/sigit/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-235843?style=flat-square&labelColor=17211D" alt="License"></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="https://www.nuget.org/packages/SiGit.Code"><img src="https://img.shields.io/nuget/v/SiGit.Code?style=flat-square&labelColor=17211D&color=235843&label=nuget" alt="NuGet"></a>
|
|
21
|
+
<a href="https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/getSigit/siGitCode"><img src="https://img.shields.io/winget/v/getSigit.siGitCode?style=flat-square&labelColor=17211D&color=235843" alt="winget"></a>
|
|
22
|
+
<a href="https://marketplace.visualstudio.com/items?itemName=getsigit.sigit-code"><img src="https://img.shields.io/badge/VS%20Code-Marketplace-235843?style=flat-square&labelColor=17211D" alt="VS Code Marketplace"></a>
|
|
23
|
+
<a href="https://pypi.org/project/sigit-code/"><img src="https://img.shields.io/pypi/dm/sigit-code?style=flat-square&labelColor=17211D&color=235843&label=pypi%20downloads" alt="PyPI downloads"></a>
|
|
24
|
+
<a href="https://github.com/getsigit/sigit/releases"><img src="https://img.shields.io/github/v/release/getsigit/sigit?style=flat-square&labelColor=17211D&color=235843" alt="Release"></a>
|
|
25
|
+
<a href="https://github.com/getsigit/sigit/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/getsigit/sigit/ci.yml?style=flat-square&labelColor=17211D&label=ci" alt="CI"></a>
|
|
26
|
+
<a href="https://github.com/getsigit/sigit/releases"><img src="https://img.shields.io/github/downloads/getsigit/sigit/total?style=flat-square&labelColor=17211D&color=235843" alt="GitHub downloads"></a>
|
|
27
|
+
</p>
|
|
28
|
+
|
|
29
|
+
siGit Code runs on your machine and works in any codebase. Inference runs on-device by default through the [Onde Inference on-device inference SDK](https://ondeinference.com/sdk), or on siGit Code Cloud when you choose it. You need no API key to start, and it works with any editor that speaks the [Agent Client Protocol](https://agentclientprotocol.com). The agent is Apache-2.0. siGit Code Cloud and [siGit Factory](https://factory.sigit.si/) are the hosted, paid side.
|
|
30
|
+
|
|
31
|
+
## Install
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
cargo install sigit
|
|
35
|
+
brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit
|
|
36
|
+
npm install -g @getsigit/sigit
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
More ways, including pip, NuGet, winget, Scoop and Linux packages, are in [docs/install.md](docs/install.md).
|
|
40
|
+
|
|
41
|
+
## Get siGit anywhere
|
|
42
|
+
|
|
43
|
+
The command-line agent and the desktop and mobile app are separate products. Each cell links to where it ships.
|
|
44
|
+
|
|
45
|
+
| Desktop and mobile apps | macOS | Windows | Linux | iOS | Android |
|
|
46
|
+
|---|:-:|:-:|:-:|:-:|:-:|
|
|
47
|
+
| [App Store](https://apps.apple.com/app/id6753018849) | [✓](https://apps.apple.com/app/id6753018849) | | | [✓](https://apps.apple.com/app/id6753018849) | |
|
|
48
|
+
| [Google Play](https://play.google.com/store/apps/details?id=xyz.smbcloud.SiGit) | | | | | [✓](https://play.google.com/store/apps/details?id=xyz.smbcloud.SiGit) |
|
|
49
|
+
| [Microsoft Store](https://apps.microsoft.com/detail/9p69ph1k7nxx) | | [✓](https://apps.microsoft.com/detail/9p69ph1k7nxx) | | | |
|
|
50
|
+
| [Snap Store](https://snapcraft.io/sigit) | | | [✓](https://snapcraft.io/sigit) | | |
|
|
51
|
+
| [Direct download](https://getsigit.5mb.app/download) | [✓](https://getsigit.5mb.app/download) | [✓](https://getsigit.5mb.app/download) | [✓](https://getsigit.5mb.app/download) | | |
|
|
52
|
+
|
|
53
|
+
| Command line | macOS | Windows | Linux |
|
|
54
|
+
|---|:-:|:-:|:-:|
|
|
55
|
+
| [crates.io](https://crates.io/crates/sigit) | ✓ | ✓ | ✓ |
|
|
56
|
+
| [Homebrew](docs/install.md) | ✓ | | |
|
|
57
|
+
| [npm](https://www.npmjs.com/package/@getsigit/sigit) | ✓ | ✓ | ✓ |
|
|
58
|
+
| [PyPI and uv](https://pypi.org/project/sigit-code/) | ✓ | ✓ | ✓ |
|
|
59
|
+
| [NuGet](https://www.nuget.org/packages/SiGit.Code) | ✓ | ✓ | ✓ |
|
|
60
|
+
| [winget](docs/install.md) | | ✓ | |
|
|
61
|
+
| [Scoop](https://github.com/getsigit/scoop-bucket) | | ✓ | |
|
|
62
|
+
| [deb and rpm](https://github.com/getsigit/sigit/releases) | | | ✓ |
|
|
63
|
+
|
|
64
|
+
`sudo snap install sigit` installs the desktop app, not the terminal agent. The app currently uses siGit Code Cloud for inference, while the command line runs models on-device. Details are in [docs/distribution.md](docs/distribution.md).
|
|
65
|
+
|
|
66
|
+
Every channel, kept current: https://getsigit.5mb.app/
|
|
67
|
+
|
|
68
|
+
## Use it your way
|
|
69
|
+
|
|
70
|
+
- **In your editor.** Any ACP client starts `sigit --acp`. See [ACP support](docs/acp.md).
|
|
71
|
+
- **In the terminal.** Run `sigit` for a full-screen chat UI. See [terminal mode](docs/terminal.md).
|
|
72
|
+
- **In scripts and CI.** `sigit run "<prompt>"` gives you JSONL events and exit codes. See [headless mode](docs/headless.md).
|
|
73
|
+
|
|
74
|
+
Setup guides for Zed, Xcode, VS Code and the JetBrains IDEs are in [docs/editors.md](docs/editors.md).
|
|
75
|
+
|
|
76
|
+
## Docs
|
|
77
|
+
|
|
78
|
+
[Install](docs/install.md), [editors](docs/editors.md), [ACP](docs/acp.md), [terminal](docs/terminal.md), [headless](docs/headless.md), [hooks](docs/hooks.md), [MCP](docs/mcp.md), [telemetry](docs/telemetry.md), [distribution](docs/distribution.md). The index is [docs/README.md](docs/README.md).
|
|
79
|
+
|
|
80
|
+
## Contributing
|
|
81
|
+
|
|
82
|
+
Issues and pull requests are welcome. Open one against `development`.
|
|
83
|
+
|
|
84
|
+
## License
|
|
85
|
+
|
|
86
|
+
[Apache 2.0](https://github.com/getsigit/sigit/blob/main/LICENSE)
|
|
87
|
+
|
|
88
|
+
## Copyright
|
|
89
|
+
|
|
90
|
+
© 2026 [siGit Code & Deploy](https://sigit.si).
|
|
@@ -167,6 +167,13 @@ pub(crate) fn tool_title(name: &str, arguments_json: &str) -> String {
|
|
|
167
167
|
str_arg("path")
|
|
168
168
|
}
|
|
169
169
|
"search_files" | "glob" => str_arg("pattern"),
|
|
170
|
+
"command_output" | "monitor_command" | "kill_command" => {
|
|
171
|
+
let id = args.as_ref().and_then(|a| a.get("task_id")?.as_u64());
|
|
172
|
+
id.map(|id| match crate::tools::background_task_command(id) {
|
|
173
|
+
Some(command) => format!("task {id} (`{command}`)"),
|
|
174
|
+
None => format!("task {id}"),
|
|
175
|
+
})
|
|
176
|
+
}
|
|
170
177
|
_ => None,
|
|
171
178
|
};
|
|
172
179
|
(name.to_string(), summary)
|
|
@@ -4145,6 +4152,17 @@ mod tests {
|
|
|
4145
4152
|
);
|
|
4146
4153
|
}
|
|
4147
4154
|
|
|
4155
|
+
#[test]
|
|
4156
|
+
fn tool_title_task_tools_name_the_task() {
|
|
4157
|
+
for name in ["command_output", "monitor_command", "kill_command"] {
|
|
4158
|
+
assert_eq!(
|
|
4159
|
+
tool_title(name, r#"{"task_id":999999}"#),
|
|
4160
|
+
format!("{name} · task 999999")
|
|
4161
|
+
);
|
|
4162
|
+
}
|
|
4163
|
+
assert_eq!(tool_title("monitor_command", "{}"), "monitor_command");
|
|
4164
|
+
}
|
|
4165
|
+
|
|
4148
4166
|
#[test]
|
|
4149
4167
|
fn tool_title_file_tools_show_the_path() {
|
|
4150
4168
|
for name in [
|