Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Fix build after eslint updates #979

Closed
wants to merge 6 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions editor/vscode/ai-workbook-ext/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"root": true,
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module"
},
"plugins": [
"@typescript-eslint"
],
"rules": {
"@typescript-eslint/naming-convention": [
"warn",
{
"selector": "import",
"format": [ "camelCase", "PascalCase" ]
}
],
"@typescript-eslint/semi": "warn",
"curly": "warn",
"eqeqeq": "warn",
"no-throw-literal": "warn",
"semi": "off"
},
"ignorePatterns": [
"out",
"dist",
"**/*.d.ts"
]
}
5 changes: 5 additions & 0 deletions editor/vscode/ai-workbook-ext/.vscode-test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { defineConfig } from '@vscode/test-cli';

export default defineConfig({
files: 'out/test/**/*.test.js',
});
8 changes: 8 additions & 0 deletions editor/vscode/ai-workbook-ext/.vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"dbaeumer.vscode-eslint",
"ms-vscode.extension-test-runner"
]
}
17 changes: 17 additions & 0 deletions editor/vscode/ai-workbook-ext/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// A launch configuration that compiles the extension and then opens it inside a new window
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Extension",
"type": "extensionHost",
"request": "launch",
"args": ["--extensionDevelopmentPath=${workspaceFolder}"],
"outFiles": ["${workspaceFolder}/out/**/*.js"],
"preLaunchTask": "${defaultBuildTask}"
}
]
}
12 changes: 12 additions & 0 deletions editor/vscode/ai-workbook-ext/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Place your settings in this file to overwrite default and user settings.
{
"files.exclude": {
"out": false // set this to true to hide the "out" folder with the compiled JS files
},
"search.exclude": {
"out": true // set this to false to include "out" folder in search results
},
// Turn off tsc task auto detection since we have the necessary tasks as npm scripts
"typescript.tsc.autoDetect": "off",
"editor.formatOnSave": true
}
20 changes: 20 additions & 0 deletions editor/vscode/ai-workbook-ext/.vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "watch",
"problemMatcher": "$tsc-watch",
"isBackground": true,
"presentation": {
"reveal": "never"
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
11 changes: 11 additions & 0 deletions editor/vscode/ai-workbook-ext/.vscodeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.vscode/**
.vscode-test/**
src/**
.gitignore
.yarnrc
vsc-extension-quickstart.md
**/tsconfig.json
**/.eslintrc.json
**/*.map
**/*.ts
**/.vscode-test.*
1 change: 1 addition & 0 deletions editor/vscode/ai-workbook-ext/.yarnrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--ignore-engines true
9 changes: 9 additions & 0 deletions editor/vscode/ai-workbook-ext/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Change Log

All notable changes to the "ai-workbook-ext" extension will be documented in this file.

Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.

## [Unreleased]

- Initial release
71 changes: 71 additions & 0 deletions editor/vscode/ai-workbook-ext/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# ai-workbook-ext README

This is the README for your extension "ai-workbook-ext". After writing up a brief description, we recommend including the following sections.

## Features

Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file.

For example if there is an image subfolder under your extension project workspace:

\!\[feature X\]\(images/feature-x.png\)

> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow.

## Requirements

If you have any requirements or dependencies, add a section describing those and how to install and configure them.

## Extension Settings

Include if your extension adds any VS Code settings through the `contributes.configuration` extension point.

For example:

This extension contributes the following settings:

* `myExtension.enable`: Enable/disable this extension.
* `myExtension.thing`: Set to `blah` to do something.

## Known Issues

Calling out known issues can help limit users opening duplicate issues against your extension.

## Release Notes

Users appreciate release notes as you update your extension.

### 1.0.0

Initial release of ...

### 1.0.1

Fixed issue #.

### 1.1.0

Added features X, Y, and Z.

---

## Following extension guidelines

Ensure that you've read through the extensions guidelines and follow the best practices for creating your extension.

* [Extension Guidelines](https://code.visualstudio.com/api/references/extension-guidelines)

## Working with Markdown

You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts:

* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux).
* Toggle preview (`Shift+Cmd+V` on macOS or `Shift+Ctrl+V` on Windows and Linux).
* Press `Ctrl+Space` (Windows, Linux, macOS) to see a list of Markdown snippets.

## For more information

* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown)
* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/)

**Enjoy!**
105 changes: 105 additions & 0 deletions editor/vscode/ai-workbook-ext/editor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Editor

## Usage (prod)

One liner for local testing; run this inside the root of aiconfig repo. Create a model parser registry py file to get started.

`python -m 'aiconfig.scripts.aiconfig_cli' edit --aiconfig-path=../cookbooks/Getting-Started/travel.aiconfig.json --server-mode='prod' `

### Install:

Install python-aiconfig from pip, then set `aiconfig` alias (in shell, .bashrc, .zshrc, etc.)

One-liner:
`pip install python-aiconfig; alias aiconfig="python -m 'aiconfig.scripts.aiconfig_cli'"`

### Run

`aiconfig edit --aiconfig-path=/my/path'`

```
[INFO] 2023-12-18 23:54:14,379 server.py:32: Edit config: {
"server_port": 8080,
"aiconfig_path": "/my/path"
}
[INFO] 2023-12-18 23:54:14,379 server.py:33: Editor server running on http://localhost:8080
```

Go to url in browser to use app.

### Loading model parsers

To use a model parser that doesn't ship with aiconfig: 0. Make sure your model parser package is installed, e.g.
`pip install python-aiconfig-llama`, or
`pip install -e path/to/my/local/parser/package`

1. Make a Python file e.g. my_editor_plugin.py. It must define a () -> None called `register_model_parsers.
Example:

```
from aiconfig import AIConfigRuntime
from llama import LlamaModelParser


def register_model_parsers() -> None:
model_path = "/Users/jonathan/Projects/aiconfig/models/llama-2-7b-chat.Q4_K_M.gguf"
llama_model_parser = LlamaModelParser(model_path)
AIConfigRuntime.register_model_parser(llama_model_parser, "llama-2-7b-chat")
```

2. Run aiconfig edit server with `--parsers-module-path="/path/to/my_editor_plugin.py"`

e.g. `aiconfig edit --parsers-module-path="/path/to/my_editor_plugin.py"`

3. Use editor as usual.

## Dev

### Install:

`pip install -e path/to/local/aiconfig/python`
`alias aiconfig="python -m 'aiconfig.scripts.aiconfig_cli'"``

### Run backend and frontend servers:

(debug mode will run the react server)
`aiconfig edit --aiconfig-path=/my/path --server-port=8080 --server-mode=debug_servers`

More info:
`aiconfig --help`
`aiconfig edit --help`

### Frontent

Use React server localhost:3000

### Backend

Tip: use `--server-mode=debug_backend`
Server will hot reload when you save file. Recommend disabling autosave.

Send POST requests from

- curl (https://stackoverflow.com/questions/22947905/flask-example-with-post)
- Chrome dev tools (https://stackoverflow.com/questions/14248296/making-http-requests-using-chrome-developer-tools)
- Jupyter:

```
import requests
url = 'http://localhost:8080/api/add_prompt'
data = {
"prompt_name": "gen_packing_list",
"prompt_data": {

}
}
response = requests.post(url, json=data)
print(f"{response=}"),

import json
response_json = json.loads(response.text)
message, output = response_json['message'], response_json['output']
print(f"{message=}")
print("output:")
print(output)
```
Empty file.
44 changes: 44 additions & 0 deletions editor/vscode/ai-workbook-ext/editor/client/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*
13 changes: 13 additions & 0 deletions editor/vscode/ai-workbook-ext/editor/client/@types/ufetch.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
declare module "ufetch" {
export namespace ufetch {
function setCookie(key: string, value: string, expiry: number): void;
function getCookie(key: string): string;

function post(path: string, data: any, options?: any);
function get(path: string, options?: any);
function put(path: string, data: any, options?: any);
function _delete(path: string, data: any, options?: any);

export { _delete as delete, setCookie, getCookie, post, get, put };
}
}
Empty file.
Loading