onde-cli 0.2.0__tar.gz → 0.3.0__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 (50) hide show
  1. onde_cli-0.3.0/.agents/skills/git/SKILL.md +43 -0
  2. {onde_cli-0.2.0 → onde_cli-0.3.0}/.github/workflows/ci.yml +5 -3
  3. {onde_cli-0.2.0 → onde_cli-0.3.0}/.github/workflows/release-crates.yml +1 -17
  4. {onde_cli-0.2.0 → onde_cli-0.3.0}/.github/workflows/release-github.yml +3 -2
  5. onde_cli-0.3.0/.github/workflows/release-npm.yml +225 -0
  6. {onde_cli-0.2.0 → onde_cli-0.3.0}/.github/workflows/release-pypi.yml +4 -3
  7. onde_cli-0.3.0/.nvmrc +1 -0
  8. {onde_cli-0.2.0 → onde_cli-0.3.0}/Cargo.lock +3382 -156
  9. {onde_cli-0.2.0 → onde_cli-0.3.0}/Cargo.toml +5 -1
  10. onde_cli-0.3.0/PKG-INFO +248 -0
  11. onde_cli-0.3.0/README.md +166 -0
  12. {onde_cli-0.2.0 → onde_cli-0.3.0}/build.rs +16 -5
  13. onde_cli-0.3.0/npm/README.md.tmpl +32 -0
  14. onde_cli-0.3.0/npm/onde-cli/.gitignore +2 -0
  15. onde_cli-0.3.0/npm/onde-cli/README.md +147 -0
  16. onde_cli-0.3.0/npm/onde-cli/package-lock.json +77 -0
  17. onde_cli-0.3.0/npm/onde-cli/package.json +45 -0
  18. onde_cli-0.3.0/npm/onde-cli/src/index.ts +41 -0
  19. onde_cli-0.3.0/npm/onde-cli/tsconfig.json +12 -0
  20. onde_cli-0.3.0/npm/package-main.json.tmpl +42 -0
  21. onde_cli-0.3.0/npm/package.json.tmpl +14 -0
  22. onde_cli-0.3.0/npm/scripts/render-main-package.cjs +34 -0
  23. onde_cli-0.3.0/npm/scripts/render-platform-package.cjs +56 -0
  24. onde_cli-0.3.0/pypi/README.md +220 -0
  25. onde_cli-0.3.0/src/app.rs +2821 -0
  26. onde_cli-0.3.0/src/chat.rs +330 -0
  27. {onde_cli-0.2.0 → onde_cli-0.3.0}/src/finetune.rs +122 -17
  28. onde_cli-0.3.0/src/gguf.rs +774 -0
  29. {onde_cli-0.2.0 → onde_cli-0.3.0}/src/hf.rs +1 -1
  30. onde_cli-0.3.0/src/hf_clone.rs +275 -0
  31. onde_cli-0.3.0/src/hf_upload.rs +659 -0
  32. onde_cli-0.3.0/src/main.rs +110 -0
  33. onde_cli-0.3.0/src/merge.rs +233 -0
  34. onde_cli-0.3.0/src/project.rs +359 -0
  35. {onde_cli-0.2.0 → onde_cli-0.3.0}/src/ui.rs +1211 -45
  36. onde_cli-0.2.0/PKG-INFO +0 -169
  37. onde_cli-0.2.0/README.md +0 -121
  38. onde_cli-0.2.0/pypi/README.md +0 -141
  39. onde_cli-0.2.0/src/app.rs +0 -1390
  40. onde_cli-0.2.0/src/main.rs +0 -49
  41. {onde_cli-0.2.0 → onde_cli-0.3.0}/.github/workflows/release-homebrew.yml +0 -0
  42. {onde_cli-0.2.0 → onde_cli-0.3.0}/.gitignore +0 -0
  43. {onde_cli-0.2.0 → onde_cli-0.3.0}/LICENSE +0 -0
  44. {onde_cli-0.2.0 → onde_cli-0.3.0}/assets/ondeinference-apps.png +0 -0
  45. {onde_cli-0.2.0 → onde_cli-0.3.0}/pypi/pyproject.toml +0 -0
  46. {onde_cli-0.2.0 → onde_cli-0.3.0}/pyproject.toml +0 -0
  47. {onde_cli-0.2.0 → onde_cli-0.3.0}/rust-toolchain.toml +0 -0
  48. {onde_cli-0.2.0 → onde_cli-0.3.0}/src/gresiq.rs +0 -0
  49. {onde_cli-0.2.0 → onde_cli-0.3.0}/src/hf_search.rs +0 -0
  50. {onde_cli-0.2.0 → onde_cli-0.3.0}/src/token.rs +0 -0
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: git
3
+ description: Git workflow rules for this repository.
4
+ allowed-tools: Read, Write, Edit, Glob, Grep, AskUserQuestion
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Git skill
9
+
10
+ ## Core rule
11
+
12
+ - Use `--no-ff`. Important.
13
+
14
+ ## What this means in practice
15
+
16
+ - Do not fast-forward merge feature branches, release branches, or hotfix branches.
17
+ - Prefer explicit merge commits so the branch history stays visible.
18
+ - If release prep happens on a branch, merge it into `main` with `--no-ff` before tagging.
19
+ - Tag the merge commit that contains the final release state.
20
+
21
+ ## Release guidance
22
+
23
+ For releases, prefer a flow like this:
24
+
25
+ ```bash
26
+ git checkout main
27
+ git merge --no-ff <release-branch> -m "Merge release prep for vX.Y.Z"
28
+ git tag vX.Y.Z
29
+ git push origin main
30
+ git push origin vX.Y.Z
31
+ ```
32
+
33
+ If the work is already on `main`, make a normal commit and tag that commit. Do not rewrite history just to avoid a merge commit.
34
+
35
+ ## Avoid
36
+
37
+ - `git merge --ff`
38
+ - `git pull --ff-only` as a default recommendation for this repo's merge policy
39
+ - Tagging a branch tip that has not been merged into `main` when the intended release source of truth is `main`
40
+
41
+ ## Why
42
+
43
+ The repo wants explicit history. Release commits should be easy to find, easy to audit, and clearly connected to the branch that introduced them.
@@ -2,8 +2,6 @@ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches:
6
- - main
7
5
  pull_request:
8
6
  workflow_dispatch:
9
7
 
@@ -58,6 +56,7 @@ jobs:
58
56
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
59
57
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
60
58
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
59
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
61
60
 
62
61
  test:
63
62
  name: Test
@@ -82,6 +81,7 @@ jobs:
82
81
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
83
82
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
84
83
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
84
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
85
85
 
86
86
  check:
87
87
  name: Cargo check
@@ -106,10 +106,11 @@ jobs:
106
106
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
107
107
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
108
108
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
109
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
109
110
 
110
111
  build:
111
112
  name: Build (aarch64-apple-darwin)
112
- runs-on: macos-latest
113
+ runs-on: macos-26
113
114
  steps:
114
115
  - name: Checkout
115
116
  uses: actions/checkout@v6
@@ -129,6 +130,7 @@ jobs:
129
130
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
130
131
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
131
132
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
133
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
132
134
 
133
135
  ci:
134
136
  name: CI status
@@ -19,6 +19,7 @@ env:
19
19
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
20
20
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
21
21
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
22
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
22
23
 
23
24
  jobs:
24
25
  verify:
@@ -101,20 +102,3 @@ jobs:
101
102
  env:
102
103
  CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
103
104
  run: cargo publish --locked
104
-
105
- github-release:
106
- name: Create GitHub release
107
- runs-on: ubuntu-latest
108
- needs:
109
- - verify
110
- - publish
111
- if: github.event_name == 'push'
112
- permissions:
113
- contents: write
114
- steps:
115
- - name: Create release
116
- uses: softprops/action-gh-release@v2
117
- with:
118
- tag_name: v${{ needs.verify.outputs.version }}
119
- generate_release_notes: true
120
- name: onde-cli v${{ needs.verify.outputs.version }}
@@ -21,6 +21,7 @@ env:
21
21
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
22
22
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
23
23
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
24
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
24
25
 
25
26
  jobs:
26
27
  build:
@@ -44,10 +45,10 @@ jobs:
44
45
  runner: windows-latest
45
46
  target: aarch64-pc-windows-msvc
46
47
  - name: macos-amd64
47
- runner: macos-15-intel
48
+ runner: macos-26-intel
48
49
  target: x86_64-apple-darwin
49
50
  - name: macos-arm64
50
- runner: macos-latest
51
+ runner: macos-26
51
52
  target: aarch64-apple-darwin
52
53
 
53
54
  steps:
@@ -0,0 +1,225 @@
1
+ name: NPM Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*.*.*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ tag:
10
+ description: "Release tag (e.g. v0.2.0)"
11
+ required: true
12
+
13
+ permissions:
14
+ id-token: write
15
+ contents: read
16
+
17
+ env:
18
+ CARGO_TERM_COLOR: always
19
+ ONDE_APP_ID: ${{ secrets.ONDE_APP_ID }}
20
+ ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
21
+ GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
22
+ GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
23
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
24
+
25
+ jobs:
26
+ publish-npm-binaries:
27
+ name: Publish NPM platform packages
28
+ runs-on: ${{ matrix.build.OS }}
29
+ strategy:
30
+ fail-fast: false
31
+ matrix:
32
+ build:
33
+ - {
34
+ NAME: linux-x64-glibc,
35
+ OS: ubuntu-latest,
36
+ TARGET: x86_64-unknown-linux-gnu,
37
+ }
38
+ - {
39
+ NAME: linux-arm64-glibc,
40
+ OS: ubuntu-24.04-arm,
41
+ TARGET: aarch64-unknown-linux-gnu,
42
+ }
43
+ - {
44
+ NAME: win32-x64-msvc,
45
+ OS: windows-2022,
46
+ TARGET: x86_64-pc-windows-msvc,
47
+ }
48
+ - {
49
+ NAME: win32-arm64-msvc,
50
+ OS: windows-2022,
51
+ TARGET: aarch64-pc-windows-msvc,
52
+ }
53
+ - {
54
+ NAME: darwin-x64,
55
+ OS: macos-26-intel,
56
+ TARGET: x86_64-apple-darwin,
57
+ }
58
+ - {
59
+ NAME: darwin-arm64,
60
+ OS: macos-26,
61
+ TARGET: aarch64-apple-darwin,
62
+ }
63
+
64
+ steps:
65
+ - name: Checkout
66
+ uses: actions/checkout@v6
67
+ with:
68
+ ref: ${{ github.event.inputs.tag || github.ref }}
69
+
70
+ - name: Set the release version
71
+ shell: bash
72
+ run: |
73
+ if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
74
+ release_version="${GITHUB_REF_NAME#v}"
75
+ else
76
+ release_version="${{ github.event.inputs.tag }}"
77
+ release_version="${release_version#v}"
78
+ fi
79
+ echo "RELEASE_VERSION=${release_version}" >> "$GITHUB_ENV"
80
+
81
+ - name: Read Rust toolchain
82
+ shell: bash
83
+ run: |
84
+ rust_toolchain="$(sed -n 's/^channel = "\(.*\)"/\1/p' rust-toolchain.toml | head -n 1)"
85
+ if [ -z "$rust_toolchain" ]; then
86
+ echo "Failed to read Rust toolchain from rust-toolchain.toml" >&2
87
+ exit 1
88
+ fi
89
+ echo "RUST_TOOLCHAIN=${rust_toolchain}" >> "$GITHUB_ENV"
90
+
91
+ - name: Install Rust toolchain
92
+ uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9
93
+ with:
94
+ toolchain: ${{ env.RUST_TOOLCHAIN }}
95
+
96
+ - name: Install Rust target
97
+ shell: bash
98
+ run: |
99
+ rustup target add ${{ matrix.build.TARGET }} --toolchain ${{ env.RUST_TOOLCHAIN }}
100
+ rustup target list --installed
101
+
102
+ - name: Setup Rust cache
103
+ uses: Swatinem/rust-cache@v2
104
+ with:
105
+ key: npm-${{ matrix.build.TARGET }}
106
+
107
+ - name: Build binary
108
+ shell: bash
109
+ run: cargo build --locked --release --target ${{ matrix.build.TARGET }}
110
+
111
+ - name: Install Node
112
+ uses: actions/setup-node@v6
113
+ with:
114
+ node-version-file: .nvmrc
115
+ registry-url: "https://registry.npmjs.org"
116
+
117
+ - name: Publish platform package to NPM
118
+ env:
119
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
120
+ shell: bash
121
+ run: |
122
+ cd npm
123
+
124
+ # Binary name from Cargo.toml
125
+ cargo_bin="onde"
126
+
127
+ # Prefix used for optional dependency package names
128
+ node_pkg_prefix="cli"
129
+
130
+ # Derive OS and architecture from the build matrix name
131
+ # Matrix name format: <os>-<arch>[-<extra>]
132
+ node_os=$(echo "${{ matrix.build.NAME }}" | cut -d '-' -f1)
133
+ export node_os
134
+ node_arch=$(echo "${{ matrix.build.NAME }}" | cut -d '-' -f2)
135
+ export node_arch
136
+
137
+ # Set the version
138
+ export node_version="${{ env.RELEASE_VERSION }}"
139
+
140
+ # Build the platform package name; normalise win32 → windows
141
+ if [ "${{ matrix.build.OS }}" = "windows-2022" ]; then
142
+ export node_pkg="${node_pkg_prefix}-windows-${node_arch}"
143
+ else
144
+ export node_pkg="${node_pkg_prefix}-${node_os}-${node_arch}"
145
+ fi
146
+
147
+ # Create the package directory
148
+ mkdir -p "${node_pkg}/bin"
149
+
150
+ # Generate package.json + README for this platform slice
151
+ node ./scripts/render-platform-package.cjs \
152
+ "${node_pkg}" \
153
+ "${node_version}" \
154
+ "${node_os}" \
155
+ "${node_arch}"
156
+
157
+ # Windows binaries carry a .exe extension
158
+ if [ "${{ matrix.build.OS }}" = "windows-2022" ]; then
159
+ cargo_bin="${cargo_bin}.exe"
160
+ fi
161
+
162
+ cp "../target/${{ matrix.build.TARGET }}/release/${cargo_bin}" "${node_pkg}/bin"
163
+
164
+ cd "${node_pkg}"
165
+
166
+ npm_package_name="@ondeinference/${node_pkg}"
167
+ if npm view "${npm_package_name}@${node_version}" version >/dev/null 2>&1; then
168
+ echo "${npm_package_name}@${node_version} already exists on npm, skipping publish"
169
+ exit 0
170
+ fi
171
+
172
+ npm publish --access public --provenance
173
+
174
+ publish-npm-base:
175
+ name: Publish base NPM package (@ondeinference/cli)
176
+ needs: publish-npm-binaries
177
+ runs-on: ubuntu-latest
178
+
179
+ steps:
180
+ - name: Checkout
181
+ uses: actions/checkout@v6
182
+ with:
183
+ ref: ${{ github.event.inputs.tag || github.ref }}
184
+
185
+ - name: Set the release version
186
+ shell: bash
187
+ run: |
188
+ if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
189
+ release_version="${GITHUB_REF_NAME#v}"
190
+ else
191
+ release_version="${{ github.event.inputs.tag }}"
192
+ release_version="${release_version#v}"
193
+ fi
194
+ echo "RELEASE_VERSION=${release_version}" >> "$GITHUB_ENV"
195
+
196
+ - name: Install Node
197
+ uses: actions/setup-node@v6
198
+ with:
199
+ node-version-file: .nvmrc
200
+ registry-url: "https://registry.npmjs.org"
201
+
202
+ - name: Publish base package to NPM
203
+ env:
204
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
205
+ shell: bash
206
+ run: |
207
+ cd npm/onde-cli
208
+
209
+ # Rewrite package.json with the correct release version and
210
+ # matching optionalDependency versions
211
+ node ../scripts/render-main-package.cjs \
212
+ "./package.json" \
213
+ "${{ env.RELEASE_VERSION }}"
214
+
215
+ npm_package_name="@ondeinference/cli"
216
+ npm_package_version="${{ env.RELEASE_VERSION }}"
217
+
218
+ if npm view "${npm_package_name}@${npm_package_version}" version >/dev/null 2>&1; then
219
+ echo "${npm_package_name}@${npm_package_version} already exists on npm, skipping publish"
220
+ exit 0
221
+ fi
222
+
223
+ npm install
224
+ npm run build
225
+ npm publish --access public --provenance
@@ -20,6 +20,7 @@ env:
20
20
  ONDE_APP_SECRET: ${{ secrets.ONDE_APP_SECRET }}
21
21
  GRESIQ_API_KEY: ${{ secrets.GRESIQ_API_KEY }}
22
22
  GRESIQ_API_SECRET: ${{ secrets.GRESIQ_API_SECRET }}
23
+ HF_TOKEN: ${{ secrets.HF_TOKEN }}
23
24
 
24
25
  jobs:
25
26
  build-wheels:
@@ -51,10 +52,10 @@ jobs:
51
52
  OS: windows-2022,
52
53
  TARGET: aarch64-pc-windows-msvc,
53
54
  }
54
- - { NAME: darwin-x64, OS: macos-latest, TARGET: x86_64-apple-darwin }
55
+ - { NAME: darwin-x64, OS: macos-26-intel, TARGET: x86_64-apple-darwin }
55
56
  - {
56
57
  NAME: darwin-arm64,
57
- OS: macos-latest,
58
+ OS: macos-26,
58
59
  TARGET: aarch64-apple-darwin,
59
60
  }
60
61
  steps:
@@ -103,7 +104,7 @@ jobs:
103
104
  working-directory: pypi
104
105
  args: --release --locked --compatibility pypi --out dist
105
106
  before-script-linux: yum install -y perl-core
106
- docker-options: -e ONDE_APP_ID -e ONDE_APP_SECRET -e GRESIQ_API_KEY -e GRESIQ_API_SECRET
107
+ docker-options: -e ONDE_APP_ID -e ONDE_APP_SECRET -e GRESIQ_API_KEY -e GRESIQ_API_SECRET -e HF_TOKEN
107
108
 
108
109
  - name: Upload wheel artifact
109
110
  uses: actions/upload-artifact@v4
onde_cli-0.3.0/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 20