diff --git a/README.md b/README.md index 1dac5fb..35a6968 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,10 @@ Verify the installation by running `npi version`. If you see the output similar #### Setting Up NPi Server +> [!TIP] +> Don't have installed Docker? Follow the official [Docker Installation Guide](https://docs.docker.com/get-docker/) to install Docker on your system. + + Replace `YOUR_OAI_KEY` with your actual OpenAI API Key, then execute: ```sh @@ -117,6 +121,12 @@ npi app github "Star, fork, and leave a supportive message in issue #27 of npi-a 1. [Calendar Negotiator](examples/calendar_negotiator/main.py) 2. [Twitter Crawler](examples/twitter_crawler/main.py) +More: https://docs.npi.ai/examples + +## Roadmap + +https://docs.npi.ai/roadmap + ## License [BSL v1.1](LICENSE). diff --git a/docs/components/youtube/index.tsx b/docs/components/youtube/index.tsx new file mode 100644 index 0000000..b3698d8 --- /dev/null +++ b/docs/components/youtube/index.tsx @@ -0,0 +1,16 @@ +import YouTube from 'react-youtube'; + +export function YouTubeComponent({videoId}: { videoId: string }) { + const opts = { + height: '360', + width: '640', + playerVars: { + // https://developers.google.com/youtube/player_parameters + autoplay: 0, + }, + }; + return ( + + ); +} + diff --git a/docs/package.json b/docs/package.json index 53a4a81..28f1fe0 100644 --- a/docs/package.json +++ b/docs/package.json @@ -19,13 +19,14 @@ }, "homepage": "https://github.com/npi-ai/npi", "dependencies": { - "next-plausible": "^3.12.0", "jotai": "^2.8.0", "next": "^14.2.2", + "next-plausible": "^3.12.0", "nextra": "^2.13.4", "nextra-theme-docs": "^2.13.4", "react": "^18.2.0", - "react-dom": "^18.2.0" + "react-dom": "^18.2.0", + "react-youtube": "^10.1.0" }, "devDependencies": { "@types/node": "18.11.10", diff --git a/docs/pages/_meta.json b/docs/pages/_meta.json index 2ecc822..4b2ba2e 100644 --- a/docs/pages/_meta.json +++ b/docs/pages/_meta.json @@ -1,6 +1,8 @@ { "index": "Quick Start", "overview": "Overview", + "examples": "Examples", + "roadmap": "Roadmap", "api-apps": "", "browser-apps": "", "cli": "CLI Reference", diff --git a/docs/pages/api-apps/github.mdx b/docs/pages/api-apps/github.mdx index b17759b..bd300a2 100644 --- a/docs/pages/api-apps/github.mdx +++ b/docs/pages/api-apps/github.mdx @@ -1,4 +1,4 @@ -import { Steps, Callout } from 'nextra/components'; +import { Steps } from 'nextra/components'; import { Tabs } from '@components/tabs'; import { FeatureRequest } from '@components/feature-request'; diff --git a/docs/pages/examples.mdx b/docs/pages/examples.mdx new file mode 100644 index 0000000..546a19a --- /dev/null +++ b/docs/pages/examples.mdx @@ -0,0 +1,25 @@ +import { YouTubeComponent } from '@components/youtube'; +import { Todo } from '@components/todo'; +import { FeatureRequest } from '@components/feature-request'; + + +# NPi AI Show cases + +## Calendar Negotiator + + + +**Code**: https://github.com/npi-ai/npi/examples/calendar_negotiator/main.py + +## X.com collaboration with Discord + + + +**Code**: https://github.com/npi-ai/npi/examples/twitter_crawler/main.py + + +## X.com Crawler + + + + diff --git a/docs/pages/index.mdx b/docs/pages/index.mdx index d1d5ef3..c84e93d 100644 --- a/docs/pages/index.mdx +++ b/docs/pages/index.mdx @@ -3,7 +3,7 @@ title: NPi AI description: Welcome to NPi AI --- -import { Cards, Steps, Tabs } from 'nextra/components'; +import { Callout, Steps, Tabs } from 'nextra/components'; ## What is NPi? @@ -58,7 +58,9 @@ NPi (**N**atural-language **P**rogramming **I**nterface), pronounced as **"N π" ``` ### Setting Up NPi Server - + + Don't have installed Docker? Follow the official [Docker Installation Guide](https://docs.docker.com/get-docker/) to install Docker on your system. + Replace `YOUR_OAI_KEY` with your actual OpenAI API Key, then execute: diff --git a/docs/pages/roadmap.mdx b/docs/pages/roadmap.mdx new file mode 100644 index 0000000..7723dc9 --- /dev/null +++ b/docs/pages/roadmap.mdx @@ -0,0 +1,47 @@ +import { Callout } from 'nextra/components'; +import { Todo } from '@components/todo'; +import { FeatureRequest } from '@components/feature-request'; + + + +# Roadmap + + + + We are continuously breaking down these functionalities to give accuracy release date. + + If you have insights on these functionalities, please discuss with us at [Join our Discord](https://discord.gg/4tyWuHpu) + or [Create an issue](https://github.com/npi-ai/npi/issues/new). + + + + +NPi AI will focus on the following functionalities in the next months: + +## More Applications +Covering the most popular applications in the world, including API and UI. + +## Easy to use + +- Minimize the mental burden of debugging agent. +- Seeped up onboarding. +- Friendly Command line tool and SDK(Python and Golang are planned). + +## State Management +- Persistent +- Reliability + +## App Version Control + +We know add/change functions and prompts may affect the behaviors of Apps, so we will introduce this functionality for increasing confidence on you upgrade NPi. + +## Authorization Management +Make your credentials always SAFE! + +## Customization +Easily extends NPi provisioned apps and create new your own apps. + +## Testing Coverage +Add more test cases to NPi, including unit test, integration test, and end-to-end test. + + diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 942265e..0260ac8 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -22,6 +22,9 @@ dependencies: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + react-youtube: + specifier: ^10.1.0 + version: 10.1.0(react@18.2.0) devDependencies: '@types/node': @@ -904,6 +907,17 @@ packages: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false + /debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.0.0 + dev: false + /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -1041,6 +1055,10 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: false + /flexsearch@0.7.31: resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} dev: false @@ -1390,6 +1408,10 @@ packages: resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} dev: false + /load-script@1.0.0: + resolution: {integrity: sha512-kPEjMFtZvwL9TaZo0uZ2ml+Ye9HUMmPwbYRJ324qF9tqMejwykJ5ggTyvzmrbBeapCAbk98BSbTeovHEEP1uCA==} + dev: false + /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false @@ -2046,6 +2068,10 @@ packages: engines: {node: '>=4'} dev: false + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + dev: false + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false @@ -2235,6 +2261,11 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + /p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -2307,6 +2338,14 @@ packages: source-map-js: 1.0.2 dev: false + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + /property-information@6.2.0: resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} dev: false @@ -2329,6 +2368,24 @@ packages: scheduler: 0.23.0 dev: false + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react-youtube@10.1.0(react@18.2.0): + resolution: {integrity: sha512-ZfGtcVpk0SSZtWCSTYOQKhfx5/1cfyEW1JN/mugGNfAxT3rmVJeMbGpA9+e78yG21ls5nc/5uZJETE3cm3knBg==} + engines: {node: '>= 14.x'} + peerDependencies: + react: '>=0.14.1' + dependencies: + fast-deep-equal: 3.1.3 + prop-types: 15.8.1 + react: 18.2.0 + youtube-player: 5.5.2 + transitivePeerDependencies: + - supports-color + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -2501,6 +2558,10 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: false + /sister@3.0.2: + resolution: {integrity: sha512-p19rtTs+NksBRKW9qn0UhZ8/TUI9BPw9lmtHny+Y3TinWlOa9jWh9xB0AtPSdmOy49NJJJSSe0Ey4C7h0TrcYA==} + dev: false + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -2867,6 +2928,16 @@ packages: engines: {node: '>=10'} dev: false + /youtube-player@5.5.2: + resolution: {integrity: sha512-ZGtsemSpXnDky2AUYWgxjaopgB+shFHgXVpiJFeNB5nWEugpW1KWYDaHKuLqh2b67r24GtP6HoSW5swvf0fFIQ==} + dependencies: + debug: 2.6.9 + load-script: 1.0.0 + sister: 3.0.2 + transitivePeerDependencies: + - supports-color + dev: false + /zod@3.23.3: resolution: {integrity: sha512-tPvq1B/2Yu/dh2uAIH2/BhUlUeLIUvAjr6dpL/75I0pCYefHgjhXk1o1Kob3kTU8C7yU1j396jFHlsVWFi9ogg==} dev: false