sigit-code 1.5.4__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.
Files changed (92) hide show
  1. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/AGENTS.md +12 -2
  2. {sigit_code-1.5.4/.claude → sigit_code-1.5.5/.agents}/skills/branding/SKILL.md +6 -6
  3. {sigit_code-1.5.4/.agents → sigit_code-1.5.5/.claude}/skills/branding/SKILL.md +6 -6
  4. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-npm.yml +21 -9
  5. sigit_code-1.5.5/.github/workflows/release-winget.yml +170 -0
  6. sigit_code-1.5.5/.nvmrc +1 -0
  7. {sigit_code-1.5.4 → sigit_code-1.5.5}/AGENTS.md +12 -2
  8. {sigit_code-1.5.4 → sigit_code-1.5.5}/CHANGELOG.md +22 -0
  9. {sigit_code-1.5.4 → sigit_code-1.5.5}/CLAUDE.md +12 -2
  10. {sigit_code-1.5.4 → sigit_code-1.5.5}/Cargo.lock +1 -1
  11. {sigit_code-1.5.4 → sigit_code-1.5.5}/Cargo.toml +1 -1
  12. {sigit_code-1.5.4 → sigit_code-1.5.5}/PKG-INFO +3 -3
  13. {sigit_code-1.5.4 → sigit_code-1.5.5}/README.md +2 -2
  14. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/README.md.tmpl +10 -10
  15. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/package-main.json.tmpl +7 -7
  16. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/package.json.tmpl +1 -1
  17. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/sigit/README.md +8 -8
  18. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/sigit/package.json +7 -7
  19. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/sigit/src/index.ts +1 -1
  20. {sigit_code-1.5.4 → sigit_code-1.5.5}/nuget/sigit/README.md +1 -1
  21. sigit_code-1.5.5/packaging/winget/getSigit.siGitCode.installer.yaml.in +18 -0
  22. sigit_code-1.5.5/packaging/winget/getSigit.siGitCode.locale.en-US.yaml.in +40 -0
  23. sigit_code-1.5.5/packaging/winget/getSigit.siGitCode.yaml.in +6 -0
  24. {sigit_code-1.5.4 → sigit_code-1.5.5}/pypi/README.md +2 -2
  25. sigit_code-1.5.4/.github/workflows/release-winget.yml +0 -71
  26. sigit_code-1.5.4/.nvmrc +0 -1
  27. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/agent-client-protocol/SKILL.md +0 -0
  28. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/ai-assisted-coding/SKILL.md +0 -0
  29. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/run-sigit/SKILL.md +0 -0
  30. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/run-sigit/driver.mjs +0 -0
  31. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/run-sigit/tui-smoke.sh +0 -0
  32. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/sigit-code-release/SKILL.md +0 -0
  33. {sigit_code-1.5.4 → sigit_code-1.5.5}/.agents/skills/tool-calling/SKILL.md +0 -0
  34. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/agent-client-protocol/SKILL.md +0 -0
  35. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/ai-assisted-coding/SKILL.md +0 -0
  36. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/run-sigit/SKILL.md +0 -0
  37. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/run-sigit/driver.mjs +0 -0
  38. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/run-sigit/tui-smoke.sh +0 -0
  39. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/sigit-code-release/SKILL.md +0 -0
  40. {sigit_code-1.5.4 → sigit_code-1.5.5}/.claude/skills/tool-calling/SKILL.md +0 -0
  41. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/ci.yml +0 -0
  42. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-aur.yml +0 -0
  43. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-crates.yml +0 -0
  44. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-github.yml +0 -0
  45. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-homebrew.yml +0 -0
  46. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-mcp-registry.yml +0 -0
  47. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-nuget.yml +0 -0
  48. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-pypi.yml +0 -0
  49. {sigit_code-1.5.4 → sigit_code-1.5.5}/.github/workflows/release-scoop.yml +0 -0
  50. {sigit_code-1.5.4 → sigit_code-1.5.5}/.gitignore +0 -0
  51. {sigit_code-1.5.4 → sigit_code-1.5.5}/LICENSE +0 -0
  52. {sigit_code-1.5.4 → sigit_code-1.5.5}/docs/hooks.md +0 -0
  53. {sigit_code-1.5.4 → sigit_code-1.5.5}/docs/mcp.md +0 -0
  54. {sigit_code-1.5.4 → sigit_code-1.5.5}/examples/settings-with-hooks.toml +0 -0
  55. {sigit_code-1.5.4 → sigit_code-1.5.5}/examples/skills/README.md +0 -0
  56. {sigit_code-1.5.4 → sigit_code-1.5.5}/examples/skills/commit-message/SKILL.md +0 -0
  57. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/scripts/render-main-package.cjs +0 -0
  58. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/scripts/render-platform-package.cjs +0 -0
  59. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/sigit/.gitignore +0 -0
  60. {sigit_code-1.5.4 → sigit_code-1.5.5}/npm/sigit/tsconfig.json +0 -0
  61. {sigit_code-1.5.4 → sigit_code-1.5.5}/nuget/.gitignore +0 -0
  62. {sigit_code-1.5.4 → sigit_code-1.5.5}/nuget/sigit/Program.cs +0 -0
  63. {sigit_code-1.5.4 → sigit_code-1.5.5}/nuget/sigit/SiGit.Code.csproj +0 -0
  64. {sigit_code-1.5.4 → sigit_code-1.5.5}/packaging/aur/PKGBUILD.in +0 -0
  65. {sigit_code-1.5.4 → sigit_code-1.5.5}/packaging/nfpm.yaml +0 -0
  66. {sigit_code-1.5.4 → sigit_code-1.5.5}/pypi/pyproject.toml +0 -0
  67. {sigit_code-1.5.4 → sigit_code-1.5.5}/pyproject.toml +0 -0
  68. {sigit_code-1.5.4 → sigit_code-1.5.5}/rust-toolchain.toml +0 -0
  69. {sigit_code-1.5.4 → sigit_code-1.5.5}/server.json +0 -0
  70. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/account.rs +0 -0
  71. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/backend.rs +0 -0
  72. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/browser_auth.rs +0 -0
  73. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/chat.rs +0 -0
  74. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/commands.rs +0 -0
  75. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/credentials.rs +0 -0
  76. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/frontmatter.rs +0 -0
  77. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/headless.rs +0 -0
  78. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/hooks.rs +0 -0
  79. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/instructions.rs +0 -0
  80. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/main.rs +0 -0
  81. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/mcp.rs +0 -0
  82. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/models.rs +0 -0
  83. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/permissions.rs +0 -0
  84. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/provider.rs +0 -0
  85. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/session_store.rs +0 -0
  86. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/settings.rs +0 -0
  87. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/setup.rs +0 -0
  88. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/skills.rs +0 -0
  89. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/subagents.rs +0 -0
  90. {sigit_code-1.5.4 → sigit_code-1.5.5}/src/tools.rs +0 -0
  91. {sigit_code-1.5.4 → sigit_code-1.5.5}/tests/acp_permissions.rs +0 -0
  92. {sigit_code-1.5.4 → 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`. The workflow only handles *updates*; the first submission has to be made
287
- by hand with `wingetcreate new`, since a package must exist before it can be updated.
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:** `@smbcloud/sigit`
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:** `@smbcloud/sigit`
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
- - `@smbcloud/sigit` for npm
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 @smbcloud/sigit`.
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
- - `@smbcloud/sigit`
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 `@smbcloud/sigit` and `sigit-code` exact?
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:** `@smbcloud/sigit`
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:** `@smbcloud/sigit`
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
- - `@smbcloud/sigit` for npm
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 @smbcloud/sigit`.
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
- - `@smbcloud/sigit`
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 `@smbcloud/sigit` and `sigit-code` exact?
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
 
@@ -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="@smbcloud/${node_pkg}"
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 --provenance
166
+ npm publish --access public
160
167
 
161
168
  publish-npm-base:
162
- name: Publish base NPM package (@smbcloud/sigit)
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="@smbcloud/sigit"
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 --provenance
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
+ }
@@ -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`. The workflow only handles *updates*; the first submission has to be made
287
- by hand with `wingetcreate new`, since a package must exist before it can be updated.
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,27 @@
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
+
3
25
  ## 1.5.4
4
26
 
5
27
  - **CI**: nfpm config expanded to include package version and binary path
@@ -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`. The workflow only handles *updates*; the first submission has to be made
287
- by hand with `wingetcreate new`, since a package must exist before it can be updated.
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.
@@ -5778,7 +5778,7 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
5778
5778
 
5779
5779
  [[package]]
5780
5780
  name = "sigit"
5781
- version = "1.5.4"
5781
+ version = "1.5.5"
5782
5782
  dependencies = [
5783
5783
  "agent-client-protocol",
5784
5784
  "anyhow",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sigit"
3
- version = "1.5.4"
3
+ version = "1.5.5"
4
4
  edition = "2024"
5
5
  description = "siGit Code — ACP-compatible AI coding agent. Sí, git."
6
6
  documentation = "https://github.com/getsigit/sigit"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sigit-code
3
- Version: 1.5.4
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/@smbcloud/sigit"><img src="https://img.shields.io/npm/v/@smbcloud/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
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 @smbcloud/sigit` |
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/@smbcloud/sigit"><img src="https://img.shields.io/npm/v/@smbcloud/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
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 @smbcloud/sigit` |
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/@smbcloud/sigit"><img src="https://img.shields.io/npm/v/@smbcloud/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
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 [`@smbcloud/sigit`](https://www.npmjs.com/package/@smbcloud/sigit). You usually do not need to install it directly.
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 @smbcloud/sigit
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 @smbcloud/sigit` |
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) | [`@smbcloud/sigit-darwin-arm64`](https://www.npmjs.com/package/@smbcloud/sigit-darwin-arm64) |
41
- | macOS | Intel (x64) | [`@smbcloud/sigit-darwin-x64`](https://www.npmjs.com/package/@smbcloud/sigit-darwin-x64) |
42
- | Linux | x64 | [`@smbcloud/sigit-linux-x64`](https://www.npmjs.com/package/@smbcloud/sigit-linux-x64) |
43
- | Linux | arm64 | [`@smbcloud/sigit-linux-arm64`](https://www.npmjs.com/package/@smbcloud/sigit-linux-arm64) |
44
- | Windows | x64 | [`@smbcloud/sigit-windows-x64`](https://www.npmjs.com/package/@smbcloud/sigit-windows-x64) |
45
- | Windows | arm64 | [`@smbcloud/sigit-windows-arm64`](https://www.npmjs.com/package/@smbcloud/sigit-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": "@smbcloud/sigit",
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
- "@smbcloud/sigit-darwin-arm64": "${release_version}",
35
- "@smbcloud/sigit-darwin-x64": "${release_version}",
36
- "@smbcloud/sigit-linux-arm64": "${release_version}",
37
- "@smbcloud/sigit-linux-x64": "${release_version}",
38
- "@smbcloud/sigit-windows-arm64": "${release_version}",
39
- "@smbcloud/sigit-windows-x64": "${release_version}"
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
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "@smbcloud/${node_pkg}",
2
+ "name": "@getsigit/${node_pkg}",
3
3
  "version": "${node_version}",
4
4
  "description": "Platform binary for siGit Code.",
5
5
  "license": "Apache-2.0",
@@ -6,7 +6,7 @@
6
6
  </p>
7
7
 
8
8
  <p align="center">
9
- <a href="https://www.npmjs.com/package/@smbcloud/sigit"><img src="https://img.shields.io/npm/v/@smbcloud/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
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 @smbcloud/sigit
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) | [`@smbcloud/sigit-darwin-arm64`](https://www.npmjs.com/package/@smbcloud/sigit-darwin-arm64) |
85
- | macOS | Intel (x64) | [`@smbcloud/sigit-darwin-x64`](https://www.npmjs.com/package/@smbcloud/sigit-darwin-x64) |
86
- | Linux | x64 | [`@smbcloud/sigit-linux-x64`](https://www.npmjs.com/package/@smbcloud/sigit-linux-x64) |
87
- | Linux | arm64 | [`@smbcloud/sigit-linux-arm64`](https://www.npmjs.com/package/@smbcloud/sigit-linux-arm64) |
88
- | Windows | x64 | [`@smbcloud/sigit-windows-x64`](https://www.npmjs.com/package/@smbcloud/sigit-windows-x64) |
89
- | Windows | arm64 | [`@smbcloud/sigit-windows-arm64`](https://www.npmjs.com/package/@smbcloud/sigit-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": "@smbcloud/sigit",
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
- "@smbcloud/sigit-darwin-arm64": "0.0.0-dev",
38
- "@smbcloud/sigit-darwin-x64": "0.0.0-dev",
39
- "@smbcloud/sigit-linux-arm64": "0.0.0-dev",
40
- "@smbcloud/sigit-linux-x64": "0.0.0-dev",
41
- "@smbcloud/sigit-windows-arm64": "0.0.0-dev",
42
- "@smbcloud/sigit-windows-x64": "0.0.0-dev"
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
- `@smbcloud/sigit-${os}-${arch}/bin/sigit${extension}`,
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 @smbcloud/sigit`
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>
@@ -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
@@ -0,0 +1,6 @@
1
+ # yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.6.0.schema.json
2
+ PackageIdentifier: getSigit.siGitCode
3
+ PackageVersion: @VERSION@
4
+ DefaultLocale: en-US
5
+ ManifestType: version
6
+ 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/@smbcloud/sigit"><img src="https://img.shields.io/npm/v/@smbcloud/sigit?style=flat-square&labelColor=17211D&color=235843" alt="npm"></a>
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 @smbcloud/sigit` |
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.4/.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