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