-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into feat_adr_002
- Loading branch information
Showing
45 changed files
with
29,400 additions
and
7,892 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,158 @@ | ||
name: Jan Build MacOS App | ||
|
||
on: | ||
push: | ||
tags: ['v*.*.*'] | ||
|
||
jobs: | ||
build-macos: | ||
runs-on: macos-latest | ||
environment: production | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Getting the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Installing node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
|
||
- name: Install jq | ||
uses: dcarbone/[email protected] | ||
|
||
- name: Get tag | ||
id: tag | ||
uses: dawidd6/action-get-tag@v1 | ||
|
||
- name: Update app version base on tag | ||
run: | | ||
if [[ ! "${VERSION_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | ||
echo "Error: Tag is not valid!" | ||
exit 1 | ||
fi | ||
jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json | ||
mv /tmp/package.json electron/package.json | ||
env: | ||
VERSION_TAG: ${{ steps.tag.outputs.tag }} | ||
|
||
- name: Get Cer for code signing | ||
run: base64 -d <<< "$CODE_SIGN_P12_BASE64" > /tmp/codesign.p12 | ||
shell: bash | ||
env: | ||
CODE_SIGN_P12_BASE64: ${{ secrets.CODE_SIGN_P12_BASE64 }} | ||
|
||
- uses: apple-actions/import-codesign-certs@v2 | ||
with: | ||
p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} | ||
p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} | ||
|
||
- name: Install yarn dependencies | ||
run: | | ||
yarn install | ||
yarn build:plugins-darwin | ||
- name: Build and publish app | ||
run: | | ||
yarn build:publish-darwin | ||
env: | ||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
CSC_LINK: "/tmp/codesign.p12" | ||
CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} | ||
CSC_IDENTITY_AUTO_DISCOVERY: "true" | ||
APPLE_ID: ${{ secrets.APPLE_ID }} | ||
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} | ||
|
||
build-windows-x64: | ||
runs-on: windows-latest | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Getting the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Installing node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
|
||
- name: Install jq | ||
uses: dcarbone/[email protected] | ||
|
||
- name: Get tag | ||
id: tag | ||
uses: dawidd6/action-get-tag@v1 | ||
|
||
- name: Update app version base on tag | ||
shell: bash | ||
run: | | ||
if [[ ! "${VERSION_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | ||
echo "Error: Tag is not valid!" | ||
exit 1 | ||
fi | ||
jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json | ||
mv /tmp/package.json electron/package.json | ||
env: | ||
VERSION_TAG: ${{ steps.tag.outputs.tag }} | ||
|
||
- name: Install yarn dependencies | ||
run: | | ||
yarn config set network-timeout 300000 | ||
yarn install | ||
yarn build:plugins | ||
- name: Build and publish app | ||
run: | | ||
yarn build:publish-win32 | ||
env: | ||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
build-linux-x64: | ||
runs-on: ubuntu-latest | ||
environment: production | ||
env: | ||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }} | ||
permissions: | ||
contents: write | ||
steps: | ||
- name: Getting the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Installing node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
|
||
- name: Install jq | ||
uses: dcarbone/[email protected] | ||
|
||
- name: Install Snapcraft | ||
uses: samuelmeuli/action-snapcraft@v2 | ||
|
||
- name: Get tag | ||
id: tag | ||
uses: dawidd6/action-get-tag@v1 | ||
|
||
- name: Update app version base on tag | ||
run: | | ||
if [[ ! "${VERSION_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | ||
echo "Error: Tag is not valid!" | ||
exit 1 | ||
fi | ||
jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json | ||
mv /tmp/package.json electron/package.json | ||
env: | ||
VERSION_TAG: ${{ steps.tag.outputs.tag }} | ||
|
||
- name: Install yarn dependencies | ||
run: | | ||
yarn config set network-timeout 300000 | ||
yarn install | ||
yarn build:plugins | ||
- name: Build and publish app | ||
run: | | ||
yarn build:publish-linux | ||
env: | ||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
name: Linter & Test | ||
on: | ||
push: | ||
branches: | ||
- main | ||
paths: | ||
- 'electron/**' | ||
- .github/workflows/linter-and-test.yml | ||
- 'web/**' | ||
- 'package.json' | ||
- 'node_modules/**' | ||
- 'yarn.lock' | ||
|
||
pull_request: | ||
branches: | ||
- main | ||
paths: | ||
- 'electron/**' | ||
- .github/workflows/linter-and-test.yml | ||
- 'web/**' | ||
- 'package.json' | ||
- 'node_modules/**' | ||
- 'yarn.lock' | ||
|
||
jobs: | ||
test-on-macos: | ||
runs-on: [self-hosted, macOS, macos-desktop] | ||
steps: | ||
- name: Getting the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Installing node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
|
||
- name: Linter and test | ||
run: | | ||
yarn config set network-timeout 300000 | ||
yarn install | ||
yarn lint | ||
yarn build:plugins | ||
yarn build | ||
yarn test | ||
env: | ||
CSC_IDENTITY_AUTO_DISCOVERY: "false" | ||
|
||
test-on-windows: | ||
runs-on: [self-hosted, Windows, windows-desktop] | ||
steps: | ||
- name: Getting the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Installing node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
|
||
- name: Linter and test | ||
run: | | ||
yarn config set network-timeout 300000 | ||
yarn install | ||
yarn lint | ||
yarn build:plugins | ||
yarn build:win32 | ||
yarn test | ||
test-on-ubuntu: | ||
runs-on: [self-hosted, Linux, ubuntu-desktop] | ||
steps: | ||
- name: Getting the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: Installing node | ||
uses: actions/setup-node@v1 | ||
with: | ||
node-version: 20 | ||
|
||
- name: Linter and test | ||
run: | | ||
yarn config set network-timeout 300000 | ||
yarn install | ||
yarn lint | ||
yarn build:plugins | ||
yarn build:linux | ||
yarn test | ||
env: | ||
DISPLAY: ":0" |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,6 @@ | |
models/** | ||
error.log | ||
node_modules | ||
package-lock.json | ||
*.tgz | ||
yarn.lock | ||
dist | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# ADR 003: JAN PLUGINS | ||
|
||
## Changelog | ||
|
||
- Oct 5th 2023: Initial draft | ||
|
||
## Status | ||
|
||
Accepted | ||
|
||
## Context | ||
|
||
Modular Architecture w/ Plugins: | ||
|
||
- Jan will have an architecture similar to VSCode or k8Lens | ||
- "Desktop Application" whose functionality can be extended thru plugins | ||
- Jan's architecture will need to accomodate plugins for (a) Persistence(b) IAM(c) Teams and RBAC(d) Policy engines(e) "Apps" (i.e. higher-order business logic)(f) Themes (UI) | ||
- Nitro's architecture will need to accomodate plugins for different "model backends"(a) llama.cpp(b) rkwk (and others)(c) 3rd-party AIs | ||
|
||
## Decision | ||
|
||
![Architecture](./images/adr-003-01.png) | ||
|
||
## Consequences | ||
|
||
What becomes easier or more difficult to do because of this change? | ||
|
||
## Reference | ||
[Plugin APIs](./adr-003-jan-plugins.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
## JAN service & plugin APIs | ||
|
||
Jan frontend components will communicate with plugin functions via Service Interfaces: | ||
|
||
|
||
All of the available APIs are listed in [CoreService](../../web/shared/coreService.ts) | ||
|
||
- Data Service: | ||
- GET_CONVERSATIONS: retrieve all of the conversations | ||
- CREATE_CONVERSATION: start a new conversation | ||
- DELETE_CONVERSATION: delete an existing conversation | ||
- GET_CONVERSATION_MESSAGES: retrieve a certain conversation messages | ||
- CREATE_MESSAGE: store a new message (both sent & received) | ||
- UPDATE_MESSAGE: update an existing message (streaming) | ||
- STORE_MODEL: store new model information (when clicking download) | ||
- UPDATE_FINISHED_DOWNLOAD: mark a model as downloaded | ||
- GET_UNFINISHED_DOWNLOAD_MODELS: retrieve all unfinished downloading model (TBD) | ||
- GET_FINISHED_DOWNLOAD_MODELS: retrieve all finished downloading model (TBD) | ||
- DELETE_DOWNLOAD_MODEL: delete a model (TBD) | ||
- GET_MODEL_BY_ID: retrieve model information by its ID | ||
|
||
- Inference Service: | ||
- INFERENCE_URL: retrieve inference endpoint served by plugin | ||
- INIT_MODEL: runs a model | ||
- STOP_MODEL: stop a running model | ||
|
||
- Model Management Service: (TBD) | ||
- GET_AVAILABLE_MODELS: retrieve available models (deprecate soon) | ||
- GET_DOWNLOADED_MODELS: (deprecated) | ||
- DELETE_MODEL: (deprecated) | ||
- DOWNLOAD_MODEL: start to download a model | ||
- SEARCH_MODELS: explore models with search query on HuggingFace (TBD) | ||
|
||
- Monitoring service: | ||
- GET_RESOURCES_INFORMATION: retrieve total & used memory information | ||
- GET_CURRENT_LOAD_INFORMATION: retrieve CPU load information | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#!/bin/bash | ||
|
||
DEVELOPER_ID="Developer ID Application: Eigenvector Pte Ltd" | ||
|
||
find electron -type f -perm +111 -exec codesign -s "Developer ID Application: Eigenvector Pte Ltd (YT49P7GXG4)" --options=runtime {} \; |
Oops, something went wrong.