sigit-code 1.5.3__tar.gz → 1.5.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.
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/AGENTS.md +12 -2
- {sigit_code-1.5.3/.claude → sigit_code-1.5.5/.agents}/skills/branding/SKILL.md +6 -6
- {sigit_code-1.5.3/.agents → sigit_code-1.5.5/.claude}/skills/branding/SKILL.md +6 -6
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-github.yml +35 -2
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-npm.yml +21 -9
- sigit_code-1.5.5/.github/workflows/release-winget.yml +170 -0
- sigit_code-1.5.5/.nvmrc +1 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/AGENTS.md +12 -2
- {sigit_code-1.5.3 → sigit_code-1.5.5}/CHANGELOG.md +26 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/CLAUDE.md +12 -2
- {sigit_code-1.5.3 → sigit_code-1.5.5}/Cargo.lock +1 -1
- {sigit_code-1.5.3 → sigit_code-1.5.5}/Cargo.toml +1 -1
- {sigit_code-1.5.3 → sigit_code-1.5.5}/PKG-INFO +3 -3
- {sigit_code-1.5.3 → sigit_code-1.5.5}/README.md +2 -2
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/README.md.tmpl +10 -10
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/package-main.json.tmpl +7 -7
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/package.json.tmpl +1 -1
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/sigit/README.md +8 -8
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/sigit/package.json +7 -7
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/sigit/src/index.ts +1 -1
- {sigit_code-1.5.3 → sigit_code-1.5.5}/nuget/sigit/README.md +1 -1
- {sigit_code-1.5.3 → sigit_code-1.5.5}/packaging/nfpm.yaml +3 -1
- sigit_code-1.5.5/packaging/winget/getSigit.siGitCode.installer.yaml.in +18 -0
- sigit_code-1.5.5/packaging/winget/getSigit.siGitCode.locale.en-US.yaml.in +40 -0
- sigit_code-1.5.5/packaging/winget/getSigit.siGitCode.yaml.in +6 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/pypi/README.md +2 -2
- sigit_code-1.5.3/.github/workflows/release-winget.yml +0 -71
- sigit_code-1.5.3/.nvmrc +0 -1
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/agent-client-protocol/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/ai-assisted-coding/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/run-sigit/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/run-sigit/driver.mjs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/run-sigit/tui-smoke.sh +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/sigit-code-release/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.agents/skills/tool-calling/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/agent-client-protocol/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/ai-assisted-coding/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/run-sigit/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/run-sigit/driver.mjs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/run-sigit/tui-smoke.sh +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/sigit-code-release/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.claude/skills/tool-calling/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/ci.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-aur.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-crates.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-homebrew.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-mcp-registry.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-nuget.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-pypi.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.github/workflows/release-scoop.yml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/.gitignore +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/LICENSE +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/docs/hooks.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/docs/mcp.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/examples/settings-with-hooks.toml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/examples/skills/README.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/examples/skills/commit-message/SKILL.md +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/scripts/render-main-package.cjs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/scripts/render-platform-package.cjs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/sigit/.gitignore +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/npm/sigit/tsconfig.json +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/nuget/.gitignore +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/nuget/sigit/Program.cs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/nuget/sigit/SiGit.Code.csproj +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/packaging/aur/PKGBUILD.in +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/pypi/pyproject.toml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/pyproject.toml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/rust-toolchain.toml +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/server.json +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/account.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/backend.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/browser_auth.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/chat.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/commands.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/credentials.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/frontmatter.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/headless.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/hooks.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/instructions.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/main.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/mcp.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/models.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/permissions.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/provider.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/session_store.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/settings.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/setup.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/skills.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/subagents.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/src/tools.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/tests/acp_permissions.rs +0 -0
- {sigit_code-1.5.3 → sigit_code-1.5.5}/tests/headless_mode.rs +0 -0
|
@@ -267,6 +267,12 @@ Publishing splits into two groups. **Language registries** each get their own ta
|
|
|
267
267
|
workflow: `release-crates`, `release-npm`, `release-nuget`, `release-pypi`. The `npm/`, `nuget/`,
|
|
268
268
|
and `pypi/` dirs hold their wrapper-package templates.
|
|
269
269
|
|
|
270
|
+
npm and NuGet authenticate with OIDC (Trusted Publishing), so neither needs a stored token. On
|
|
271
|
+
npm that is configured per package, not per org: all seven `@getsigit/*` names carry a trusted
|
|
272
|
+
publisher pointing at `release-npm.yml`, and a package added later needs the same setup or its
|
|
273
|
+
publish step will fail. OIDC also requires npm >= 11.5.1 and Node >= 22.14.0, which is why the
|
|
274
|
+
workflow upgrades npm and why `.nvmrc` cannot drop below 22.
|
|
275
|
+
|
|
270
276
|
**OS package managers** all publish somewhere outside this repo and all need checksums from the
|
|
271
277
|
GitHub release, so `release-github` builds the binaries, attaches the assets, and then dispatches
|
|
272
278
|
`release-homebrew`, `release-scoop`, `release-winget`, and `release-aur`. A dispatch failure in one
|
|
@@ -283,8 +289,12 @@ Three of these need credentials or a one-time manual step before they work:
|
|
|
283
289
|
- Scoop needs a `getsigit/scoop-bucket` repo and a `SCOOP_BUCKET_TOKEN` secret, mirroring the
|
|
284
290
|
Homebrew tap setup.
|
|
285
291
|
- winget needs a `WINGET_TOKEN` (PAT with `public_repo`) so `wingetcreate` can fork
|
|
286
|
-
`microsoft/winget-pkgs`.
|
|
287
|
-
|
|
292
|
+
`microsoft/winget-pkgs`. It is passed as `WINGET_CREATE_GITHUB_TOKEN` rather than `--token`,
|
|
293
|
+
which wingetcreate warns can leak the token into logs. `wingetcreate update` only works on a
|
|
294
|
+
package that already exists in `microsoft/winget-pkgs`, so the workflow checks the
|
|
295
|
+
`manifests/g/getSigit/siGitCode` path first and falls back to rendering
|
|
296
|
+
`packaging/winget/*.yaml.in` and running `wingetcreate submit` for a first submission. That
|
|
297
|
+
fallback runs once, then every later release takes the `update` path.
|
|
288
298
|
- The AUR needs `AUR_USERNAME`, `AUR_EMAIL`, and `AUR_SSH_PRIVATE_KEY`. It publishes `sigit-bin`
|
|
289
299
|
(a prebuilt binary) so Arch users are not compiling the on-device inference stack to install a
|
|
290
300
|
CLI.
|
|
@@ -14,7 +14,7 @@ The short version:
|
|
|
14
14
|
- **Product / brand name:** `siGit Code`
|
|
15
15
|
- **CLI command:** `sigit`
|
|
16
16
|
- **Rust crate:** `sigit`
|
|
17
|
-
- **npm package:** `@
|
|
17
|
+
- **npm package:** `@getsigit/sigit`
|
|
18
18
|
- **PyPI package:** `sigit-code`
|
|
19
19
|
- **Company name:** `smbCloud`
|
|
20
20
|
- **LLM backend name:** `Onde Inference`
|
|
@@ -38,7 +38,7 @@ These names are case-sensitive.
|
|
|
38
38
|
- **CLI command:** `sigit`
|
|
39
39
|
- **Rust crate:** `sigit`
|
|
40
40
|
- **Repository slug:** `getsigit/sigit`
|
|
41
|
-
- **npm package:** `@
|
|
41
|
+
- **npm package:** `@getsigit/sigit`
|
|
42
42
|
- **PyPI package:** `sigit-code`
|
|
43
43
|
- **Company:** `smbCloud`
|
|
44
44
|
- **LLM backend in prose:** `Onde Inference`
|
|
@@ -73,7 +73,7 @@ When you mean something users type, install, import, or clone, use the literal l
|
|
|
73
73
|
That means:
|
|
74
74
|
|
|
75
75
|
- `sigit` for the command, crate, and repo slug
|
|
76
|
-
- `@
|
|
76
|
+
- `@getsigit/sigit` for npm
|
|
77
77
|
- `sigit-code` for PyPI
|
|
78
78
|
- `onde` for the Rust crate
|
|
79
79
|
|
|
@@ -81,7 +81,7 @@ Examples:
|
|
|
81
81
|
|
|
82
82
|
- Run `sigit` in a terminal.
|
|
83
83
|
- Install with `cargo install sigit`.
|
|
84
|
-
- Install with `npm install -g @
|
|
84
|
+
- Install with `npm install -g @getsigit/sigit`.
|
|
85
85
|
- Install with `pip install sigit-code`.
|
|
86
86
|
- The repository is `getsigit/sigit`.
|
|
87
87
|
|
|
@@ -169,7 +169,7 @@ That includes:
|
|
|
169
169
|
- `Onde Inference`
|
|
170
170
|
- `ACP`
|
|
171
171
|
- `sigit`
|
|
172
|
-
- `@
|
|
172
|
+
- `@getsigit/sigit`
|
|
173
173
|
- `sigit-code`
|
|
174
174
|
- `onde`
|
|
175
175
|
|
|
@@ -181,7 +181,7 @@ Before you finish any doc or release-note edit, check these:
|
|
|
181
181
|
|
|
182
182
|
1. Did you use `siGit Code` when referring to the product?
|
|
183
183
|
2. Did you keep `sigit` lowercase for commands, crates, and repo references?
|
|
184
|
-
3. Did you keep `@
|
|
184
|
+
3. Did you keep `@getsigit/sigit` and `sigit-code` exact?
|
|
185
185
|
4. Did you keep `smbCloud` and `Onde Inference` cased correctly?
|
|
186
186
|
5. In setup examples, does the visible editor label say `siGit Code` while the command stays `sigit`?
|
|
187
187
|
|
|
@@ -14,7 +14,7 @@ The short version:
|
|
|
14
14
|
- **Product / brand name:** `siGit Code`
|
|
15
15
|
- **CLI command:** `sigit`
|
|
16
16
|
- **Rust crate:** `sigit`
|
|
17
|
-
- **npm package:** `@
|
|
17
|
+
- **npm package:** `@getsigit/sigit`
|
|
18
18
|
- **PyPI package:** `sigit-code`
|
|
19
19
|
- **Company name:** `smbCloud`
|
|
20
20
|
- **LLM backend name:** `Onde Inference`
|
|
@@ -38,7 +38,7 @@ These names are case-sensitive.
|
|
|
38
38
|
- **CLI command:** `sigit`
|
|
39
39
|
- **Rust crate:** `sigit`
|
|
40
40
|
- **Repository slug:** `getsigit/sigit`
|
|
41
|
-
- **npm package:** `@
|
|
41
|
+
- **npm package:** `@getsigit/sigit`
|
|
42
42
|
- **PyPI package:** `sigit-code`
|
|
43
43
|
- **Company:** `smbCloud`
|
|
44
44
|
- **LLM backend in prose:** `Onde Inference`
|
|
@@ -73,7 +73,7 @@ When you mean something users type, install, import, or clone, use the literal l
|
|
|
73
73
|
That means:
|
|
74
74
|
|
|
75
75
|
- `sigit` for the command, crate, and repo slug
|
|
76
|
-
- `@
|
|
76
|
+
- `@getsigit/sigit` for npm
|
|
77
77
|
- `sigit-code` for PyPI
|
|
78
78
|
- `onde` for the Rust crate
|
|
79
79
|
|
|
@@ -81,7 +81,7 @@ Examples:
|
|
|
81
81
|
|
|
82
82
|
- Run `sigit` in a terminal.
|
|
83
83
|
- Install with `cargo install sigit`.
|
|
84
|
-
- Install with `npm install -g @
|
|
84
|
+
- Install with `npm install -g @getsigit/sigit`.
|
|
85
85
|
- Install with `pip install sigit-code`.
|
|
86
86
|
- The repository is `getsigit/sigit`.
|
|
87
87
|
|
|
@@ -169,7 +169,7 @@ That includes:
|
|
|
169
169
|
- `Onde Inference`
|
|
170
170
|
- `ACP`
|
|
171
171
|
- `sigit`
|
|
172
|
-
- `@
|
|
172
|
+
- `@getsigit/sigit`
|
|
173
173
|
- `sigit-code`
|
|
174
174
|
- `onde`
|
|
175
175
|
|
|
@@ -181,7 +181,7 @@ Before you finish any doc or release-note edit, check these:
|
|
|
181
181
|
|
|
182
182
|
1. Did you use `siGit Code` when referring to the product?
|
|
183
183
|
2. Did you keep `sigit` lowercase for commands, crates, and repo references?
|
|
184
|
-
3. Did you keep `@
|
|
184
|
+
3. Did you keep `@getsigit/sigit` and `sigit-code` exact?
|
|
185
185
|
4. Did you keep `smbCloud` and `Onde Inference` cased correctly?
|
|
186
186
|
5. In setup examples, does the visible editor label say `siGit Code` while the command stays `sigit`?
|
|
187
187
|
|
|
@@ -141,8 +141,41 @@ jobs:
|
|
|
141
141
|
export PKG_VERSION="${RELEASE_VERSION}"
|
|
142
142
|
export PKG_BINARY="./release/${PROJECT_NAME}-${{ matrix.name }}"
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
# An empty version is worse than a hard failure here: nfpm accepts it
|
|
145
|
+
# and silently emits a "0.0.0~rc0" package that would be attached to
|
|
146
|
+
# the release. Same for a missing binary, which only surfaces as an
|
|
147
|
+
# opaque glob error. Fail loudly instead.
|
|
148
|
+
if [ -z "${PKG_VERSION}" ]; then
|
|
149
|
+
echo "RELEASE_VERSION is empty; refusing to build packages" >&2
|
|
150
|
+
exit 1
|
|
151
|
+
fi
|
|
152
|
+
if [ ! -f "${PKG_BINARY}" ]; then
|
|
153
|
+
echo "Staged binary ${PKG_BINARY} not found" >&2
|
|
154
|
+
exit 1
|
|
155
|
+
fi
|
|
156
|
+
|
|
157
|
+
# nfpm expands ${VAR} in most fields but NOT in contents.src, so the
|
|
158
|
+
# config is rendered up front and nfpm only ever sees literal values.
|
|
159
|
+
# envsubst comes from gettext-base, preinstalled on the Ubuntu runner
|
|
160
|
+
# images. The explicit variable list keeps it from clobbering any
|
|
161
|
+
# other shell-looking text added to the config later.
|
|
162
|
+
if ! command -v envsubst >/dev/null 2>&1; then
|
|
163
|
+
sudo apt-get update && sudo apt-get install -y gettext-base
|
|
164
|
+
fi
|
|
165
|
+
|
|
166
|
+
envsubst '${PKG_ARCH} ${PKG_VERSION} ${PKG_BINARY}' \
|
|
167
|
+
< packaging/nfpm.yaml > /tmp/nfpm.rendered.yaml
|
|
168
|
+
|
|
169
|
+
/tmp/nfpm package --config /tmp/nfpm.rendered.yaml --packager deb --target ./release/
|
|
170
|
+
/tmp/nfpm package --config /tmp/nfpm.rendered.yaml --packager rpm --target ./release/
|
|
171
|
+
|
|
172
|
+
# Guard against a packager silently producing nothing.
|
|
173
|
+
for ext in deb rpm; do
|
|
174
|
+
if ! compgen -G "./release/*.${ext}" >/dev/null; then
|
|
175
|
+
echo "No .${ext} produced" >&2
|
|
176
|
+
exit 1
|
|
177
|
+
fi
|
|
178
|
+
done
|
|
146
179
|
|
|
147
180
|
ls -la ./release/
|
|
148
181
|
|
|
@@ -101,9 +101,16 @@ jobs:
|
|
|
101
101
|
node-version-file: .nvmrc
|
|
102
102
|
registry-url: "https://registry.npmjs.org"
|
|
103
103
|
|
|
104
|
+
# Trusted Publishing (OIDC) needs npm >= 11.5.1. .nvmrc pins the Node
|
|
105
|
+
# version (>= 22.14.0, also an OIDC requirement); npm still needs
|
|
106
|
+
# upgrading past whatever ships with it.
|
|
107
|
+
- name: Upgrade npm for Trusted Publishing
|
|
108
|
+
shell: bash
|
|
109
|
+
run: npm install -g npm@latest
|
|
110
|
+
|
|
111
|
+
# Authentication is OIDC: each @getsigit/* package has a Trusted
|
|
112
|
+
# Publisher pointing at this workflow, so there is no token to leak.
|
|
104
113
|
- name: Publish platform package to NPM
|
|
105
|
-
env:
|
|
106
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
107
114
|
shell: bash
|
|
108
115
|
run: |
|
|
109
116
|
cd npm
|
|
@@ -150,16 +157,16 @@ jobs:
|
|
|
150
157
|
|
|
151
158
|
cd "${node_pkg}"
|
|
152
159
|
|
|
153
|
-
npm_package_name="@
|
|
160
|
+
npm_package_name="@getsigit/${node_pkg}"
|
|
154
161
|
if npm view "${npm_package_name}@${node_version}" version >/dev/null 2>&1; then
|
|
155
162
|
echo "${npm_package_name}@${node_version} already exists on npm, skipping publish"
|
|
156
163
|
exit 0
|
|
157
164
|
fi
|
|
158
165
|
|
|
159
|
-
npm publish --access public
|
|
166
|
+
npm publish --access public
|
|
160
167
|
|
|
161
168
|
publish-npm-base:
|
|
162
|
-
name: Publish base NPM package (@
|
|
169
|
+
name: Publish base NPM package (@getsigit/sigit)
|
|
163
170
|
needs: publish-npm-binaries
|
|
164
171
|
runs-on: ubuntu-latest
|
|
165
172
|
|
|
@@ -186,9 +193,14 @@ jobs:
|
|
|
186
193
|
node-version-file: .nvmrc
|
|
187
194
|
registry-url: "https://registry.npmjs.org"
|
|
188
195
|
|
|
196
|
+
# Trusted Publishing (OIDC) needs npm >= 11.5.1. .nvmrc pins the Node
|
|
197
|
+
# version (>= 22.14.0, also an OIDC requirement); npm still needs
|
|
198
|
+
# upgrading past whatever ships with it.
|
|
199
|
+
- name: Upgrade npm for Trusted Publishing
|
|
200
|
+
shell: bash
|
|
201
|
+
run: npm install -g npm@latest
|
|
202
|
+
|
|
189
203
|
- name: Publish base package to NPM
|
|
190
|
-
env:
|
|
191
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
192
204
|
shell: bash
|
|
193
205
|
run: |
|
|
194
206
|
cd npm/sigit
|
|
@@ -199,7 +211,7 @@ jobs:
|
|
|
199
211
|
"./package.json" \
|
|
200
212
|
"${{ env.RELEASE_VERSION }}"
|
|
201
213
|
|
|
202
|
-
npm_package_name="@
|
|
214
|
+
npm_package_name="@getsigit/sigit"
|
|
203
215
|
npm_package_version="${{ env.RELEASE_VERSION }}"
|
|
204
216
|
|
|
205
217
|
if npm view "${npm_package_name}@${npm_package_version}" version >/dev/null 2>&1; then
|
|
@@ -209,4 +221,4 @@ jobs:
|
|
|
209
221
|
|
|
210
222
|
npm install
|
|
211
223
|
npm run build
|
|
212
|
-
npm publish --access public
|
|
224
|
+
npm publish --access public
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
name: winget Release
|
|
2
|
+
|
|
3
|
+
# Dispatched by release-github.yml once the release and its checksums exist.
|
|
4
|
+
#
|
|
5
|
+
# winget manifests live in microsoft/winget-pkgs, and `wingetcreate update`
|
|
6
|
+
# only works on a package that is already there. So this workflow branches:
|
|
7
|
+
#
|
|
8
|
+
# - package already in winget-pkgs -> `wingetcreate update`, which rewrites
|
|
9
|
+
# the URLs and re-hashes the installers for us.
|
|
10
|
+
# - package not there yet -> render the manifests in packaging/winget/ and
|
|
11
|
+
# `wingetcreate submit` them as a new package.
|
|
12
|
+
#
|
|
13
|
+
# The second path only runs once, but keeping it here means a first release
|
|
14
|
+
# does not need someone to sit at a Windows box running `wingetcreate new`
|
|
15
|
+
# interactively.
|
|
16
|
+
on:
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
inputs:
|
|
19
|
+
tag:
|
|
20
|
+
description: "Release tag (e.g. v1.5.2)"
|
|
21
|
+
required: true
|
|
22
|
+
|
|
23
|
+
permissions:
|
|
24
|
+
contents: read
|
|
25
|
+
|
|
26
|
+
env:
|
|
27
|
+
REPO: getsigit/sigit
|
|
28
|
+
PACKAGE_IDENTIFIER: getSigit.siGitCode
|
|
29
|
+
|
|
30
|
+
jobs:
|
|
31
|
+
submit-winget-manifest:
|
|
32
|
+
name: Submit winget manifest
|
|
33
|
+
# wingetcreate is a Windows-only tool.
|
|
34
|
+
runs-on: windows-latest
|
|
35
|
+
|
|
36
|
+
steps:
|
|
37
|
+
- name: Check out repository
|
|
38
|
+
uses: actions/checkout@v6
|
|
39
|
+
|
|
40
|
+
- name: Resolve tag, version and release date
|
|
41
|
+
id: release
|
|
42
|
+
shell: bash
|
|
43
|
+
env:
|
|
44
|
+
GH_TOKEN: ${{ github.token }}
|
|
45
|
+
run: |
|
|
46
|
+
TAG="${{ github.event.inputs.tag }}"
|
|
47
|
+
VERSION="${TAG#v}"
|
|
48
|
+
# wingetcreate wants ReleaseDate as YYYY-MM-DD.
|
|
49
|
+
DATE=$(gh release view "$TAG" --repo "$REPO" --json publishedAt --jq '.publishedAt[0:10]')
|
|
50
|
+
|
|
51
|
+
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
|
|
52
|
+
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
|
53
|
+
echo "date=${DATE}" >> "$GITHUB_OUTPUT"
|
|
54
|
+
|
|
55
|
+
- name: Check whether the package is already in winget-pkgs
|
|
56
|
+
id: exists
|
|
57
|
+
shell: bash
|
|
58
|
+
env:
|
|
59
|
+
GH_TOKEN: ${{ github.token }}
|
|
60
|
+
run: |
|
|
61
|
+
# manifests are filed under the lowercased first letter of the
|
|
62
|
+
# publisher, e.g. manifests/g/getSigit/siGitCode.
|
|
63
|
+
PUBLISHER="${PACKAGE_IDENTIFIER%%.*}"
|
|
64
|
+
NAME="${PACKAGE_IDENTIFIER#*.}"
|
|
65
|
+
FIRST=$(echo "${PUBLISHER:0:1}" | tr '[:upper:]' '[:lower:]')
|
|
66
|
+
PATH_IN_REPO="manifests/${FIRST}/${PUBLISHER}/${NAME}"
|
|
67
|
+
|
|
68
|
+
if gh api "repos/microsoft/winget-pkgs/contents/${PATH_IN_REPO}" >/dev/null 2>&1; then
|
|
69
|
+
echo "Found ${PACKAGE_IDENTIFIER} at ${PATH_IN_REPO}; submitting an update."
|
|
70
|
+
echo "found=true" >> "$GITHUB_OUTPUT"
|
|
71
|
+
else
|
|
72
|
+
echo "No ${PACKAGE_IDENTIFIER} at ${PATH_IN_REPO}; submitting it as a new package."
|
|
73
|
+
echo "found=false" >> "$GITHUB_OUTPUT"
|
|
74
|
+
fi
|
|
75
|
+
|
|
76
|
+
- name: Render manifests for a first submission
|
|
77
|
+
if: steps.exists.outputs.found == 'false'
|
|
78
|
+
shell: bash
|
|
79
|
+
env:
|
|
80
|
+
GH_TOKEN: ${{ github.token }}
|
|
81
|
+
run: |
|
|
82
|
+
TAG="${{ steps.release.outputs.tag }}"
|
|
83
|
+
VERSION="${{ steps.release.outputs.version }}"
|
|
84
|
+
|
|
85
|
+
mkdir -p artifacts manifests
|
|
86
|
+
|
|
87
|
+
gh release download "$TAG" \
|
|
88
|
+
--repo "$REPO" \
|
|
89
|
+
--pattern "sigit-win-*.exe.sha256" \
|
|
90
|
+
--dir artifacts/
|
|
91
|
+
|
|
92
|
+
# The schema wants 64 hex characters; the community validation
|
|
93
|
+
# pipeline writes them uppercase, so match that.
|
|
94
|
+
SHA_AMD64=$(tr -d '[:space:]' < artifacts/sigit-win-amd64.exe.sha256 | tr '[:lower:]' '[:upper:]')
|
|
95
|
+
SHA_ARM64=$(tr -d '[:space:]' < artifacts/sigit-win-arm64.exe.sha256 | tr '[:lower:]' '[:upper:]')
|
|
96
|
+
|
|
97
|
+
RELEASE_DATE="${{ steps.release.outputs.date }}"
|
|
98
|
+
|
|
99
|
+
for template in packaging/winget/*.yaml.in; do
|
|
100
|
+
out="manifests/$(basename "$template" .in)"
|
|
101
|
+
sed \
|
|
102
|
+
-e "s|@VERSION@|${VERSION}|g" \
|
|
103
|
+
-e "s|@TAG@|${TAG}|g" \
|
|
104
|
+
-e "s|@REPO@|${REPO}|g" \
|
|
105
|
+
-e "s|@SHA_AMD64@|${SHA_AMD64}|g" \
|
|
106
|
+
-e "s|@SHA_ARM64@|${SHA_ARM64}|g" \
|
|
107
|
+
-e "s|@RELEASE_DATE@|${RELEASE_DATE}|g" \
|
|
108
|
+
"$template" > "$out"
|
|
109
|
+
|
|
110
|
+
echo "--- ${out} ---"
|
|
111
|
+
cat "$out"
|
|
112
|
+
done
|
|
113
|
+
|
|
114
|
+
- name: Download wingetcreate
|
|
115
|
+
shell: pwsh
|
|
116
|
+
run: Invoke-WebRequest -Uri "https://aka.ms/wingetcreate/latest" -OutFile wingetcreate.exe
|
|
117
|
+
|
|
118
|
+
- name: Submit new package
|
|
119
|
+
if: steps.exists.outputs.found == 'false'
|
|
120
|
+
shell: pwsh
|
|
121
|
+
env:
|
|
122
|
+
# wingetcreate reads the token from this variable. Passing it as
|
|
123
|
+
# --token instead makes the tool warn that the token can end up in
|
|
124
|
+
# logs, which on a shared runner is not a warning worth ignoring.
|
|
125
|
+
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_TOKEN }}
|
|
126
|
+
run: |
|
|
127
|
+
if (-not $env:WINGET_CREATE_GITHUB_TOKEN) {
|
|
128
|
+
Write-Error "WINGET_TOKEN is not set. It needs a PAT with public_repo scope so wingetcreate can fork microsoft/winget-pkgs and open the manifest PR."
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
$version = "${{ steps.release.outputs.version }}"
|
|
132
|
+
|
|
133
|
+
# --no-open because the runner has no browser to open the PR in.
|
|
134
|
+
.\wingetcreate.exe submit manifests `
|
|
135
|
+
--prtitle "New package: $env:PACKAGE_IDENTIFIER version $version" `
|
|
136
|
+
--no-open
|
|
137
|
+
|
|
138
|
+
if ($LASTEXITCODE -ne 0) {
|
|
139
|
+
Write-Error "wingetcreate submit failed with exit code $LASTEXITCODE"
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
- name: Submit manifest update
|
|
143
|
+
if: steps.exists.outputs.found == 'true'
|
|
144
|
+
shell: pwsh
|
|
145
|
+
env:
|
|
146
|
+
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_TOKEN }}
|
|
147
|
+
run: |
|
|
148
|
+
if (-not $env:WINGET_CREATE_GITHUB_TOKEN) {
|
|
149
|
+
Write-Error "WINGET_TOKEN is not set. It needs a PAT with public_repo scope so wingetcreate can fork microsoft/winget-pkgs and open the manifest PR."
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
$tag = "${{ steps.release.outputs.tag }}"
|
|
153
|
+
$version = "${{ steps.release.outputs.version }}"
|
|
154
|
+
$base = "https://github.com/${env:REPO}/releases/download/$tag"
|
|
155
|
+
|
|
156
|
+
# The trailing |x64 and |arm64 tell wingetcreate which installer
|
|
157
|
+
# entry each URL replaces. Without them it guesses from the file
|
|
158
|
+
# name, and "sigit-win-amd64.exe" is not a spelling it recognises.
|
|
159
|
+
.\wingetcreate.exe update $env:PACKAGE_IDENTIFIER `
|
|
160
|
+
--version $version `
|
|
161
|
+
--urls "$base/sigit-win-amd64.exe|x64" "$base/sigit-win-arm64.exe|arm64" `
|
|
162
|
+
--release-notes-url "https://github.com/${env:REPO}/releases/tag/$tag" `
|
|
163
|
+
--release-date "${{ steps.release.outputs.date }}" `
|
|
164
|
+
--prtitle "Update $env:PACKAGE_IDENTIFIER to version $version" `
|
|
165
|
+
--submit `
|
|
166
|
+
--no-open
|
|
167
|
+
|
|
168
|
+
if ($LASTEXITCODE -ne 0) {
|
|
169
|
+
Write-Error "wingetcreate failed with exit code $LASTEXITCODE"
|
|
170
|
+
}
|
sigit_code-1.5.5/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
22
|
|
@@ -267,6 +267,12 @@ Publishing splits into two groups. **Language registries** each get their own ta
|
|
|
267
267
|
workflow: `release-crates`, `release-npm`, `release-nuget`, `release-pypi`. The `npm/`, `nuget/`,
|
|
268
268
|
and `pypi/` dirs hold their wrapper-package templates.
|
|
269
269
|
|
|
270
|
+
npm and NuGet authenticate with OIDC (Trusted Publishing), so neither needs a stored token. On
|
|
271
|
+
npm that is configured per package, not per org: all seven `@getsigit/*` names carry a trusted
|
|
272
|
+
publisher pointing at `release-npm.yml`, and a package added later needs the same setup or its
|
|
273
|
+
publish step will fail. OIDC also requires npm >= 11.5.1 and Node >= 22.14.0, which is why the
|
|
274
|
+
workflow upgrades npm and why `.nvmrc` cannot drop below 22.
|
|
275
|
+
|
|
270
276
|
**OS package managers** all publish somewhere outside this repo and all need checksums from the
|
|
271
277
|
GitHub release, so `release-github` builds the binaries, attaches the assets, and then dispatches
|
|
272
278
|
`release-homebrew`, `release-scoop`, `release-winget`, and `release-aur`. A dispatch failure in one
|
|
@@ -283,8 +289,12 @@ Three of these need credentials or a one-time manual step before they work:
|
|
|
283
289
|
- Scoop needs a `getsigit/scoop-bucket` repo and a `SCOOP_BUCKET_TOKEN` secret, mirroring the
|
|
284
290
|
Homebrew tap setup.
|
|
285
291
|
- winget needs a `WINGET_TOKEN` (PAT with `public_repo`) so `wingetcreate` can fork
|
|
286
|
-
`microsoft/winget-pkgs`.
|
|
287
|
-
|
|
292
|
+
`microsoft/winget-pkgs`. It is passed as `WINGET_CREATE_GITHUB_TOKEN` rather than `--token`,
|
|
293
|
+
which wingetcreate warns can leak the token into logs. `wingetcreate update` only works on a
|
|
294
|
+
package that already exists in `microsoft/winget-pkgs`, so the workflow checks the
|
|
295
|
+
`manifests/g/getSigit/siGitCode` path first and falls back to rendering
|
|
296
|
+
`packaging/winget/*.yaml.in` and running `wingetcreate submit` for a first submission. That
|
|
297
|
+
fallback runs once, then every later release takes the `update` path.
|
|
288
298
|
- The AUR needs `AUR_USERNAME`, `AUR_EMAIL`, and `AUR_SSH_PRIVATE_KEY`. It publishes `sigit-bin`
|
|
289
299
|
(a prebuilt binary) so Arch users are not compiling the on-device inference stack to install a
|
|
290
300
|
CLI.
|
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.5.5
|
|
4
|
+
|
|
5
|
+
A distribution release. siGit Code itself is unchanged. What moved is how it
|
|
6
|
+
reaches you on npm and on Windows.
|
|
7
|
+
|
|
8
|
+
### What changed
|
|
9
|
+
|
|
10
|
+
- **The npm package is now `@getsigit/sigit`.** The six platform packages moved
|
|
11
|
+
with it. `@smbcloud/sigit` stays on the registry but stops receiving updates,
|
|
12
|
+
so upgrading means switching names:
|
|
13
|
+
`npm uninstall -g @smbcloud/sigit && npm install -g @getsigit/sigit`. The old
|
|
14
|
+
package had been stuck at 1.5.2, so this picks up 1.5.3 and 1.5.4 as well.
|
|
15
|
+
- **npm publishes over OIDC.** Every `@getsigit/*` package has a trusted
|
|
16
|
+
publisher pointing at the release workflow, so no npm token is stored in the
|
|
17
|
+
repository. The release workflow moves to Node 22, which trusted publishing
|
|
18
|
+
requires.
|
|
19
|
+
- **winget releases actually go out.** The workflow could only update a package
|
|
20
|
+
already present in `microsoft/winget-pkgs`, and siGit Code had never been
|
|
21
|
+
submitted there, so every dispatch failed. It now submits the package the
|
|
22
|
+
first time and updates it on later releases. The identifier is
|
|
23
|
+
`getSigit.siGitCode`.
|
|
24
|
+
|
|
25
|
+
## 1.5.4
|
|
26
|
+
|
|
27
|
+
- **CI**: nfpm config expanded to include package version and binary path
|
|
28
|
+
|
|
3
29
|
## 1.5.3
|
|
4
30
|
|
|
5
31
|
Adds browser-based sign-in, expands distribution channels to Windows (winget,
|
|
@@ -267,6 +267,12 @@ Publishing splits into two groups. **Language registries** each get their own ta
|
|
|
267
267
|
workflow: `release-crates`, `release-npm`, `release-nuget`, `release-pypi`. The `npm/`, `nuget/`,
|
|
268
268
|
and `pypi/` dirs hold their wrapper-package templates.
|
|
269
269
|
|
|
270
|
+
npm and NuGet authenticate with OIDC (Trusted Publishing), so neither needs a stored token. On
|
|
271
|
+
npm that is configured per package, not per org: all seven `@getsigit/*` names carry a trusted
|
|
272
|
+
publisher pointing at `release-npm.yml`, and a package added later needs the same setup or its
|
|
273
|
+
publish step will fail. OIDC also requires npm >= 11.5.1 and Node >= 22.14.0, which is why the
|
|
274
|
+
workflow upgrades npm and why `.nvmrc` cannot drop below 22.
|
|
275
|
+
|
|
270
276
|
**OS package managers** all publish somewhere outside this repo and all need checksums from the
|
|
271
277
|
GitHub release, so `release-github` builds the binaries, attaches the assets, and then dispatches
|
|
272
278
|
`release-homebrew`, `release-scoop`, `release-winget`, and `release-aur`. A dispatch failure in one
|
|
@@ -283,8 +289,12 @@ Three of these need credentials or a one-time manual step before they work:
|
|
|
283
289
|
- Scoop needs a `getsigit/scoop-bucket` repo and a `SCOOP_BUCKET_TOKEN` secret, mirroring the
|
|
284
290
|
Homebrew tap setup.
|
|
285
291
|
- winget needs a `WINGET_TOKEN` (PAT with `public_repo`) so `wingetcreate` can fork
|
|
286
|
-
`microsoft/winget-pkgs`.
|
|
287
|
-
|
|
292
|
+
`microsoft/winget-pkgs`. It is passed as `WINGET_CREATE_GITHUB_TOKEN` rather than `--token`,
|
|
293
|
+
which wingetcreate warns can leak the token into logs. `wingetcreate update` only works on a
|
|
294
|
+
package that already exists in `microsoft/winget-pkgs`, so the workflow checks the
|
|
295
|
+
`manifests/g/getSigit/siGitCode` path first and falls back to rendering
|
|
296
|
+
`packaging/winget/*.yaml.in` and running `wingetcreate submit` for a first submission. That
|
|
297
|
+
fallback runs once, then every later release takes the `update` path.
|
|
288
298
|
- The AUR needs `AUR_USERNAME`, `AUR_EMAIL`, and `AUR_SSH_PRIVATE_KEY`. It publishes `sigit-bin`
|
|
289
299
|
(a prebuilt binary) so Arch users are not compiling the on-device inference stack to install a
|
|
290
300
|
CLI.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sigit-code
|
|
3
|
-
Version: 1.5.
|
|
3
|
+
Version: 1.5.5
|
|
4
4
|
Classifier: Development Status :: 4 - Beta
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -35,7 +35,7 @@ Project-URL: Repository, https://github.com/getsigit/sigit
|
|
|
35
35
|
<p align="center">
|
|
36
36
|
<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>
|
|
37
37
|
<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>
|
|
38
|
-
<a href="https://www.npmjs.com/package/@
|
|
38
|
+
<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>
|
|
39
39
|
<a href="https://smbcloud.xyz"><img src="https://img.shields.io/badge/smbcloud.xyz-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
|
|
40
40
|
<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>
|
|
41
41
|
</p>
|
|
@@ -80,7 +80,7 @@ Then pick **siGit Code** in the assistant panel.
|
|
|
80
80
|
|
|
81
81
|
| Method | Command |
|
|
82
82
|
|--------|---------|
|
|
83
|
-
| npm | `npm install -g @
|
|
83
|
+
| npm | `npm install -g @getsigit/sigit` |
|
|
84
84
|
| Homebrew | `brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit` |
|
|
85
85
|
| Cargo | `cargo install sigit` |
|
|
86
86
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<p align="center">
|
|
4
4
|
<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>
|
|
5
5
|
<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>
|
|
6
|
-
<a href="https://www.npmjs.com/package/@
|
|
6
|
+
<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>
|
|
7
7
|
<a href="https://smbcloud.xyz"><img src="https://img.shields.io/badge/smbcloud.xyz-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
|
|
8
8
|
<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>
|
|
9
9
|
</p>
|
|
@@ -36,7 +36,7 @@ cargo install sigit
|
|
|
36
36
|
| Homebrew | `brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit` |
|
|
37
37
|
| pip | `pip install sigit-code` |
|
|
38
38
|
| uv | `uvx --from sigit-code sigit` |
|
|
39
|
-
| npm | `npm install -g @
|
|
39
|
+
| npm | `npm install -g @getsigit/sigit` |
|
|
40
40
|
| NuGet | `dotnet tool install --global SiGit.Code` |
|
|
41
41
|
| winget | `winget install smbCloud.siGitCode` |
|
|
42
42
|
| Scoop | `scoop bucket add getsigit https://github.com/getsigit/scoop-bucket && scoop install sigit` |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<a href="https://www.npmjs.com/package/@
|
|
9
|
+
<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>
|
|
10
10
|
<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>
|
|
11
11
|
<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>
|
|
12
12
|
<a href="https://smbcloud.xyz"><img src="https://img.shields.io/badge/smbcloud.xyz-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
|
|
@@ -15,19 +15,19 @@
|
|
|
15
15
|
|
|
16
16
|
## `${node_pkg}`
|
|
17
17
|
|
|
18
|
-
This package is one of the platform-specific binaries behind [`@
|
|
18
|
+
This package is one of the platform-specific binaries behind [`@getsigit/sigit`](https://www.npmjs.com/package/@getsigit/sigit). You usually do not need to install it directly.
|
|
19
19
|
|
|
20
20
|
Install the main package and npm will pull in the right binary for your OS and architecture:
|
|
21
21
|
|
|
22
22
|
```sh
|
|
23
|
-
npm install -g @
|
|
23
|
+
npm install -g @getsigit/sigit
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
## Other install methods
|
|
27
27
|
|
|
28
28
|
| Channel | Command |
|
|
29
29
|
|---------|---------|
|
|
30
|
-
| npm | `npm install -g @
|
|
30
|
+
| npm | `npm install -g @getsigit/sigit` |
|
|
31
31
|
| Homebrew | `brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit` |
|
|
32
32
|
| pip | `pip install sigit-code` |
|
|
33
33
|
| uv | `uvx --from sigit-code sigit` |
|
|
@@ -37,12 +37,12 @@ npm install -g @smbcloud/sigit
|
|
|
37
37
|
|
|
38
38
|
| Platform | Architecture | Package |
|
|
39
39
|
|----------|--------------|---------|
|
|
40
|
-
| macOS | Apple Silicon (arm64) | [`@
|
|
41
|
-
| macOS | Intel (x64) | [`@
|
|
42
|
-
| Linux | x64 | [`@
|
|
43
|
-
| Linux | arm64 | [`@
|
|
44
|
-
| Windows | x64 | [`@
|
|
45
|
-
| Windows | arm64 | [`@
|
|
40
|
+
| macOS | Apple Silicon (arm64) | [`@getsigit/sigit-darwin-arm64`](https://www.npmjs.com/package/@getsigit/sigit-darwin-arm64) |
|
|
41
|
+
| macOS | Intel (x64) | [`@getsigit/sigit-darwin-x64`](https://www.npmjs.com/package/@getsigit/sigit-darwin-x64) |
|
|
42
|
+
| Linux | x64 | [`@getsigit/sigit-linux-x64`](https://www.npmjs.com/package/@getsigit/sigit-linux-x64) |
|
|
43
|
+
| Linux | arm64 | [`@getsigit/sigit-linux-arm64`](https://www.npmjs.com/package/@getsigit/sigit-linux-arm64) |
|
|
44
|
+
| Windows | x64 | [`@getsigit/sigit-windows-x64`](https://www.npmjs.com/package/@getsigit/sigit-windows-x64) |
|
|
45
|
+
| Windows | arm64 | [`@getsigit/sigit-windows-arm64`](https://www.npmjs.com/package/@getsigit/sigit-windows-arm64) |
|
|
46
46
|
|
|
47
47
|
## Links
|
|
48
48
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@
|
|
2
|
+
"name": "@getsigit/sigit",
|
|
3
3
|
"version": "${release_version}",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"sigit",
|
|
@@ -31,11 +31,11 @@
|
|
|
31
31
|
"typescript": "^5.0.0"
|
|
32
32
|
},
|
|
33
33
|
"optionalDependencies": {
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
34
|
+
"@getsigit/sigit-darwin-arm64": "${release_version}",
|
|
35
|
+
"@getsigit/sigit-darwin-x64": "${release_version}",
|
|
36
|
+
"@getsigit/sigit-linux-arm64": "${release_version}",
|
|
37
|
+
"@getsigit/sigit-linux-x64": "${release_version}",
|
|
38
|
+
"@getsigit/sigit-windows-arm64": "${release_version}",
|
|
39
|
+
"@getsigit/sigit-windows-x64": "${release_version}"
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
8
|
<p align="center">
|
|
9
|
-
<a href="https://www.npmjs.com/package/@
|
|
9
|
+
<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>
|
|
10
10
|
<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>
|
|
11
11
|
<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>
|
|
12
12
|
<a href="https://smbcloud.xyz"><img src="https://img.shields.io/badge/smbcloud.xyz-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
## Install
|
|
17
17
|
|
|
18
18
|
```sh
|
|
19
|
-
npm install -g @
|
|
19
|
+
npm install -g @getsigit/sigit
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
npm pulls in the right binary for your platform automatically.
|
|
@@ -81,12 +81,12 @@ Install [ACP Client](https://marketplace.visualstudio.com/items?itemName=formula
|
|
|
81
81
|
|
|
82
82
|
| Platform | Architecture | Package |
|
|
83
83
|
|---|---|---|
|
|
84
|
-
| macOS | Apple Silicon (arm64) | [`@
|
|
85
|
-
| macOS | Intel (x64) | [`@
|
|
86
|
-
| Linux | x64 | [`@
|
|
87
|
-
| Linux | arm64 | [`@
|
|
88
|
-
| Windows | x64 | [`@
|
|
89
|
-
| Windows | arm64 | [`@
|
|
84
|
+
| macOS | Apple Silicon (arm64) | [`@getsigit/sigit-darwin-arm64`](https://www.npmjs.com/package/@getsigit/sigit-darwin-arm64) |
|
|
85
|
+
| macOS | Intel (x64) | [`@getsigit/sigit-darwin-x64`](https://www.npmjs.com/package/@getsigit/sigit-darwin-x64) |
|
|
86
|
+
| Linux | x64 | [`@getsigit/sigit-linux-x64`](https://www.npmjs.com/package/@getsigit/sigit-linux-x64) |
|
|
87
|
+
| Linux | arm64 | [`@getsigit/sigit-linux-arm64`](https://www.npmjs.com/package/@getsigit/sigit-linux-arm64) |
|
|
88
|
+
| Windows | x64 | [`@getsigit/sigit-windows-x64`](https://www.npmjs.com/package/@getsigit/sigit-windows-x64) |
|
|
89
|
+
| Windows | arm64 | [`@getsigit/sigit-windows-arm64`](https://www.npmjs.com/package/@getsigit/sigit-windows-arm64) |
|
|
90
90
|
|
|
91
91
|
## Links
|
|
92
92
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@
|
|
2
|
+
"name": "@getsigit/sigit",
|
|
3
3
|
"version": "0.0.0-dev",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"sigit",
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"typescript": "^5.0.0"
|
|
35
35
|
},
|
|
36
36
|
"optionalDependencies": {
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"@
|
|
41
|
-
"@
|
|
42
|
-
"@
|
|
37
|
+
"@getsigit/sigit-darwin-arm64": "0.0.0-dev",
|
|
38
|
+
"@getsigit/sigit-darwin-x64": "0.0.0-dev",
|
|
39
|
+
"@getsigit/sigit-linux-arm64": "0.0.0-dev",
|
|
40
|
+
"@getsigit/sigit-linux-x64": "0.0.0-dev",
|
|
41
|
+
"@getsigit/sigit-windows-arm64": "0.0.0-dev",
|
|
42
|
+
"@getsigit/sigit-windows-x64": "0.0.0-dev"
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -22,7 +22,7 @@ function getExePath() {
|
|
|
22
22
|
try {
|
|
23
23
|
// Since the binary will be located inside node_modules, we can simply call require.resolve
|
|
24
24
|
return require.resolve(
|
|
25
|
-
`@
|
|
25
|
+
`@getsigit/sigit-${os}-${arch}/bin/sigit${extension}`,
|
|
26
26
|
);
|
|
27
27
|
} catch (e) {
|
|
28
28
|
throw new Error(
|
|
@@ -45,7 +45,7 @@ npm, and PyPI packages each download only the binary for your platform.
|
|
|
45
45
|
## Other installation methods
|
|
46
46
|
|
|
47
47
|
- Cargo: `cargo install sigit`
|
|
48
|
-
- npm: `npm install -g @
|
|
48
|
+
- npm: `npm install -g @getsigit/sigit`
|
|
49
49
|
- pip: `pip install sigit-code`
|
|
50
50
|
- Homebrew: `brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit`
|
|
51
51
|
- GitHub Releases: <https://github.com/getsigit/sigit/releases>
|
|
@@ -7,7 +7,9 @@
|
|
|
7
7
|
# config.
|
|
8
8
|
#
|
|
9
9
|
# PKG_ARCH and PKG_VERSION are set by release-github.yml; PKG_BINARY points at
|
|
10
|
-
# the renamed binary already staged in release/.
|
|
10
|
+
# the renamed binary already staged in release/. nfpm does not expand env vars
|
|
11
|
+
# in contents.src, so release-github.yml renders this file with envsubst before
|
|
12
|
+
# invoking nfpm.
|
|
11
13
|
name: sigit
|
|
12
14
|
arch: ${PKG_ARCH}
|
|
13
15
|
platform: linux
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.6.0.schema.json
|
|
2
|
+
PackageIdentifier: getSigit.siGitCode
|
|
3
|
+
PackageVersion: @VERSION@
|
|
4
|
+
InstallerType: portable
|
|
5
|
+
# `Commands` is what winget names the shim it drops on PATH. The release
|
|
6
|
+
# assets are sigit-win-<arch>.exe, but the command has to be `sigit`.
|
|
7
|
+
Commands:
|
|
8
|
+
- sigit
|
|
9
|
+
ReleaseDate: "@RELEASE_DATE@"
|
|
10
|
+
Installers:
|
|
11
|
+
- Architecture: x64
|
|
12
|
+
InstallerUrl: https://github.com/@REPO@/releases/download/@TAG@/sigit-win-amd64.exe
|
|
13
|
+
InstallerSha256: @SHA_AMD64@
|
|
14
|
+
- Architecture: arm64
|
|
15
|
+
InstallerUrl: https://github.com/@REPO@/releases/download/@TAG@/sigit-win-arm64.exe
|
|
16
|
+
InstallerSha256: @SHA_ARM64@
|
|
17
|
+
ManifestType: installer
|
|
18
|
+
ManifestVersion: 1.6.0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.6.0.schema.json
|
|
2
|
+
PackageIdentifier: getSigit.siGitCode
|
|
3
|
+
PackageVersion: @VERSION@
|
|
4
|
+
PackageLocale: en-US
|
|
5
|
+
Publisher: getSigit
|
|
6
|
+
PublisherUrl: https://sigit.si/
|
|
7
|
+
PublisherSupportUrl: https://github.com/@REPO@/issues
|
|
8
|
+
PackageName: siGit Code
|
|
9
|
+
PackageUrl: https://code.sigit.si
|
|
10
|
+
License: Apache-2.0
|
|
11
|
+
LicenseUrl: https://github.com/@REPO@/blob/main/LICENSE
|
|
12
|
+
Copyright: Copyright 2026 PT Sigit Mitra Bangun
|
|
13
|
+
ShortDescription: siGit Code, an AI coding agent that runs on your machine.
|
|
14
|
+
Description: |-
|
|
15
|
+
siGit Code is a local coding agent. It runs on your machine, not someone
|
|
16
|
+
else's. No API keys, no cloud round-trips, no subscription.
|
|
17
|
+
|
|
18
|
+
It works two ways from the same binary. Zed and other ACP-compatible
|
|
19
|
+
editors start it over stdio and talk the Agent Client Protocol to it. Run
|
|
20
|
+
it from a terminal and you get an interactive chat UI instead. On Windows
|
|
21
|
+
it speaks ACP; the full-screen terminal UI is Unix-only.
|
|
22
|
+
|
|
23
|
+
Inference runs on-device against a GGUF model, or against siGit Code Cloud
|
|
24
|
+
or any OpenAI-compatible endpoint you point it at.
|
|
25
|
+
Moniker: sigit
|
|
26
|
+
Tags:
|
|
27
|
+
- acp
|
|
28
|
+
- agent
|
|
29
|
+
- ai
|
|
30
|
+
- cli
|
|
31
|
+
- coding-agent
|
|
32
|
+
- developer-tools
|
|
33
|
+
- llm
|
|
34
|
+
- terminal
|
|
35
|
+
ReleaseNotesUrl: https://github.com/@REPO@/releases/tag/@TAG@
|
|
36
|
+
Documentations:
|
|
37
|
+
- DocumentLabel: Readme
|
|
38
|
+
DocumentUrl: https://github.com/@REPO@/blob/main/README.md
|
|
39
|
+
ManifestType: defaultLocale
|
|
40
|
+
ManifestVersion: 1.6.0
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<p align="center">
|
|
9
9
|
<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>
|
|
10
10
|
<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>
|
|
11
|
-
<a href="https://www.npmjs.com/package/@
|
|
11
|
+
<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>
|
|
12
12
|
<a href="https://smbcloud.xyz"><img src="https://img.shields.io/badge/smbcloud.xyz-235843?style=flat-square&labelColor=17211D" alt="Website"></a>
|
|
13
13
|
<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>
|
|
14
14
|
</p>
|
|
@@ -53,7 +53,7 @@ Then pick **siGit Code** in the assistant panel.
|
|
|
53
53
|
|
|
54
54
|
| Method | Command |
|
|
55
55
|
|--------|---------|
|
|
56
|
-
| npm | `npm install -g @
|
|
56
|
+
| npm | `npm install -g @getsigit/sigit` |
|
|
57
57
|
| Homebrew | `brew tap getsigit/tap && brew trust --tap getsigit/tap && brew install sigit` |
|
|
58
58
|
| Cargo | `cargo install sigit` |
|
|
59
59
|
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
name: winget Release
|
|
2
|
-
|
|
3
|
-
# Dispatched by release-github.yml once the release and its checksums exist.
|
|
4
|
-
#
|
|
5
|
-
# This workflow only handles *updates*. winget manifests live in
|
|
6
|
-
# microsoft/winget-pkgs, and a package has to exist there before it can be
|
|
7
|
-
# updated, so the very first submission is a one-time manual step:
|
|
8
|
-
#
|
|
9
|
-
# wingetcreate new https://github.com/getsigit/sigit/releases/download/vX.Y.Z/sigit-win-amd64.exe
|
|
10
|
-
#
|
|
11
|
-
# answering `portable` for the installer type and `smbCloud.siGitCode` for the
|
|
12
|
-
# package identifier. Every release after that is automated here.
|
|
13
|
-
on:
|
|
14
|
-
workflow_dispatch:
|
|
15
|
-
inputs:
|
|
16
|
-
tag:
|
|
17
|
-
description: "Release tag (e.g. v1.5.2)"
|
|
18
|
-
required: true
|
|
19
|
-
|
|
20
|
-
permissions:
|
|
21
|
-
contents: read
|
|
22
|
-
|
|
23
|
-
env:
|
|
24
|
-
REPO: getsigit/sigit
|
|
25
|
-
PACKAGE_IDENTIFIER: smbCloud.siGitCode
|
|
26
|
-
|
|
27
|
-
jobs:
|
|
28
|
-
submit-winget-manifest:
|
|
29
|
-
name: Submit winget manifest
|
|
30
|
-
# wingetcreate is a Windows-only tool.
|
|
31
|
-
runs-on: windows-latest
|
|
32
|
-
|
|
33
|
-
steps:
|
|
34
|
-
- name: Resolve tag and version
|
|
35
|
-
id: release
|
|
36
|
-
shell: bash
|
|
37
|
-
run: |
|
|
38
|
-
TAG="${{ github.event.inputs.tag }}"
|
|
39
|
-
VERSION="${TAG#v}"
|
|
40
|
-
|
|
41
|
-
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
|
|
42
|
-
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
|
|
43
|
-
|
|
44
|
-
- name: Submit manifest update
|
|
45
|
-
shell: pwsh
|
|
46
|
-
env:
|
|
47
|
-
WINGET_TOKEN: ${{ secrets.WINGET_TOKEN }}
|
|
48
|
-
run: |
|
|
49
|
-
if (-not $env:WINGET_TOKEN) {
|
|
50
|
-
Write-Error "WINGET_TOKEN is not set. It needs a PAT with public_repo scope so wingetcreate can fork microsoft/winget-pkgs and open the manifest PR."
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
$tag = "${{ steps.release.outputs.tag }}"
|
|
54
|
-
$version = "${{ steps.release.outputs.version }}"
|
|
55
|
-
$base = "https://github.com/${env:REPO}/releases/download/$tag"
|
|
56
|
-
|
|
57
|
-
Invoke-WebRequest -Uri "https://aka.ms/wingetcreate/latest" -OutFile wingetcreate.exe
|
|
58
|
-
|
|
59
|
-
# The trailing |x64 and |arm64 tell wingetcreate which installer
|
|
60
|
-
# entry each URL replaces. Without them it guesses from the file
|
|
61
|
-
# name, and "sigit-win-amd64.exe" is not a spelling it recognises.
|
|
62
|
-
.\wingetcreate.exe update $env:PACKAGE_IDENTIFIER `
|
|
63
|
-
--version $version `
|
|
64
|
-
--urls "$base/sigit-win-amd64.exe|x64" "$base/sigit-win-arm64.exe|arm64" `
|
|
65
|
-
--release-notes-url "https://github.com/${env:REPO}/releases/tag/$tag" `
|
|
66
|
-
--submit `
|
|
67
|
-
--token $env:WINGET_TOKEN
|
|
68
|
-
|
|
69
|
-
if ($LASTEXITCODE -ne 0) {
|
|
70
|
-
Write-Error "wingetcreate failed with exit code $LASTEXITCODE"
|
|
71
|
-
}
|
sigit_code-1.5.3/.nvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
20
|
|
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
|
|
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
|