@neocode-ai/web 1.1.1
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.
- package/README.md +54 -0
- package/astro.config.mjs +145 -0
- package/config.mjs +14 -0
- package/package.json +41 -0
- package/public/robots.txt +6 -0
- package/public/theme.json +183 -0
- package/src/assets/lander/check.svg +2 -0
- package/src/assets/lander/copy.svg +2 -0
- package/src/assets/lander/screenshot-github.png +0 -0
- package/src/assets/lander/screenshot-splash.png +0 -0
- package/src/assets/lander/screenshot-vscode.png +0 -0
- package/src/assets/lander/screenshot.png +0 -0
- package/src/assets/logo-dark.svg +20 -0
- package/src/assets/logo-light.svg +20 -0
- package/src/assets/logo-ornate-dark.svg +18 -0
- package/src/assets/logo-ornate-light.svg +18 -0
- package/src/assets/web/web-homepage-active-session.png +0 -0
- package/src/assets/web/web-homepage-new-session.png +0 -0
- package/src/assets/web/web-homepage-see-servers.png +0 -0
- package/src/components/Head.astro +50 -0
- package/src/components/Header.astro +128 -0
- package/src/components/Hero.astro +11 -0
- package/src/components/Lander.astro +713 -0
- package/src/components/Share.tsx +634 -0
- package/src/components/SiteTitle.astro +59 -0
- package/src/components/icons/custom.tsx +87 -0
- package/src/components/icons/index.tsx +4454 -0
- package/src/components/share/common.tsx +77 -0
- package/src/components/share/content-bash.module.css +85 -0
- package/src/components/share/content-bash.tsx +67 -0
- package/src/components/share/content-code.module.css +26 -0
- package/src/components/share/content-code.tsx +32 -0
- package/src/components/share/content-diff.module.css +153 -0
- package/src/components/share/content-diff.tsx +231 -0
- package/src/components/share/content-error.module.css +64 -0
- package/src/components/share/content-error.tsx +24 -0
- package/src/components/share/content-markdown.module.css +154 -0
- package/src/components/share/content-markdown.tsx +75 -0
- package/src/components/share/content-text.module.css +63 -0
- package/src/components/share/content-text.tsx +37 -0
- package/src/components/share/copy-button.module.css +30 -0
- package/src/components/share/copy-button.tsx +28 -0
- package/src/components/share/part.module.css +428 -0
- package/src/components/share/part.tsx +780 -0
- package/src/components/share.module.css +832 -0
- package/src/content/docs/1-0.mdx +67 -0
- package/src/content/docs/acp.mdx +156 -0
- package/src/content/docs/agents.mdx +720 -0
- package/src/content/docs/cli.mdx +597 -0
- package/src/content/docs/commands.mdx +323 -0
- package/src/content/docs/config.mdx +683 -0
- package/src/content/docs/custom-tools.mdx +170 -0
- package/src/content/docs/ecosystem.mdx +76 -0
- package/src/content/docs/enterprise.mdx +170 -0
- package/src/content/docs/formatters.mdx +130 -0
- package/src/content/docs/github.mdx +321 -0
- package/src/content/docs/gitlab.mdx +195 -0
- package/src/content/docs/ide.mdx +48 -0
- package/src/content/docs/index.mdx +359 -0
- package/src/content/docs/keybinds.mdx +191 -0
- package/src/content/docs/lsp.mdx +188 -0
- package/src/content/docs/mcp-servers.mdx +511 -0
- package/src/content/docs/models.mdx +223 -0
- package/src/content/docs/modes.mdx +331 -0
- package/src/content/docs/network.mdx +57 -0
- package/src/content/docs/permissions.mdx +237 -0
- package/src/content/docs/plugins.mdx +362 -0
- package/src/content/docs/providers.mdx +1889 -0
- package/src/content/docs/rules.mdx +180 -0
- package/src/content/docs/sdk.mdx +391 -0
- package/src/content/docs/server.mdx +286 -0
- package/src/content/docs/share.mdx +128 -0
- package/src/content/docs/skills.mdx +220 -0
- package/src/content/docs/themes.mdx +369 -0
- package/src/content/docs/tools.mdx +345 -0
- package/src/content/docs/troubleshooting.mdx +300 -0
- package/src/content/docs/tui.mdx +390 -0
- package/src/content/docs/web.mdx +136 -0
- package/src/content/docs/windows-wsl.mdx +113 -0
- package/src/content/docs/zen.mdx +251 -0
- package/src/content.config.ts +7 -0
- package/src/pages/[...slug].md.ts +18 -0
- package/src/pages/s/[id].astro +113 -0
- package/src/styles/custom.css +405 -0
- package/src/types/lang-map.d.ts +27 -0
- package/tsconfig.json +9 -0
package/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Starlight Starter Kit: Basics
|
|
2
|
+
|
|
3
|
+
[](https://starlight.astro.build)
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
npm create astro@latest -- --template starlight
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
[](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
|
|
10
|
+
[](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
|
|
11
|
+
[](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
|
|
12
|
+
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)
|
|
13
|
+
|
|
14
|
+
> 🧑🚀 **Seasoned astronaut?** Delete this file. Have fun!
|
|
15
|
+
|
|
16
|
+
## 🚀 Project Structure
|
|
17
|
+
|
|
18
|
+
Inside of your Astro + Starlight project, you'll see the following folders and files:
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
.
|
|
22
|
+
├── public/
|
|
23
|
+
├── src/
|
|
24
|
+
│ ├── assets/
|
|
25
|
+
│ ├── content/
|
|
26
|
+
│ │ ├── docs/
|
|
27
|
+
│ └── content.config.ts
|
|
28
|
+
├── astro.config.mjs
|
|
29
|
+
├── package.json
|
|
30
|
+
└── tsconfig.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.
|
|
34
|
+
|
|
35
|
+
Images can be added to `src/assets/` and embedded in Markdown with a relative link.
|
|
36
|
+
|
|
37
|
+
Static assets, like favicons, can be placed in the `public/` directory.
|
|
38
|
+
|
|
39
|
+
## 🧞 Commands
|
|
40
|
+
|
|
41
|
+
All commands are run from the root of the project, from a terminal:
|
|
42
|
+
|
|
43
|
+
| Command | Action |
|
|
44
|
+
| :------------------------ | :----------------------------------------------- |
|
|
45
|
+
| `npm install` | Installs dependencies |
|
|
46
|
+
| `npm run dev` | Starts local dev server at `localhost:4321` |
|
|
47
|
+
| `npm run build` | Build your production site to `./dist/` |
|
|
48
|
+
| `npm run preview` | Preview your build locally, before deploying |
|
|
49
|
+
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` |
|
|
50
|
+
| `npm run astro -- --help` | Get help using the Astro CLI |
|
|
51
|
+
|
|
52
|
+
## 👀 Want to learn more?
|
|
53
|
+
|
|
54
|
+
Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
|
package/astro.config.mjs
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { defineConfig } from "astro/config"
|
|
3
|
+
import starlight from "@astrojs/starlight"
|
|
4
|
+
import solidJs from "@astrojs/solid-js"
|
|
5
|
+
import cloudflare from "@astrojs/cloudflare"
|
|
6
|
+
import theme from "toolbeam-docs-theme"
|
|
7
|
+
import config from "./config.mjs"
|
|
8
|
+
import { rehypeHeadingIds } from "@astrojs/markdown-remark"
|
|
9
|
+
import rehypeAutolinkHeadings from "rehype-autolink-headings"
|
|
10
|
+
import { spawnSync } from "child_process"
|
|
11
|
+
|
|
12
|
+
// https://astro.build/config
|
|
13
|
+
export default defineConfig({
|
|
14
|
+
site: config.url,
|
|
15
|
+
base: "/docs",
|
|
16
|
+
output: "server",
|
|
17
|
+
adapter: cloudflare({
|
|
18
|
+
imageService: "passthrough",
|
|
19
|
+
}),
|
|
20
|
+
devToolbar: {
|
|
21
|
+
enabled: false,
|
|
22
|
+
},
|
|
23
|
+
server: {
|
|
24
|
+
host: "0.0.0.0",
|
|
25
|
+
},
|
|
26
|
+
markdown: {
|
|
27
|
+
rehypePlugins: [rehypeHeadingIds, [rehypeAutolinkHeadings, { behavior: "wrap" }]],
|
|
28
|
+
},
|
|
29
|
+
build: {},
|
|
30
|
+
integrations: [
|
|
31
|
+
configSchema(),
|
|
32
|
+
solidJs(),
|
|
33
|
+
starlight({
|
|
34
|
+
title: "NeoCode",
|
|
35
|
+
favicon: "/favicon-v3.svg",
|
|
36
|
+
head: [
|
|
37
|
+
{
|
|
38
|
+
tag: "link",
|
|
39
|
+
attrs: {
|
|
40
|
+
rel: "icon",
|
|
41
|
+
href: "/favicon-v3.ico",
|
|
42
|
+
sizes: "32x32",
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
tag: "link",
|
|
47
|
+
attrs: {
|
|
48
|
+
rel: "icon",
|
|
49
|
+
type: "image/png",
|
|
50
|
+
href: "/favicon-96x96-v3.png",
|
|
51
|
+
sizes: "96x96",
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
tag: "link",
|
|
56
|
+
attrs: {
|
|
57
|
+
rel: "apple-touch-icon",
|
|
58
|
+
href: "/apple-touch-icon-v3.png",
|
|
59
|
+
sizes: "180x180",
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
lastUpdated: true,
|
|
64
|
+
expressiveCode: { themes: ["github-light", "github-dark"] },
|
|
65
|
+
social: [
|
|
66
|
+
{ icon: "github", label: "GitHub", href: config.github },
|
|
67
|
+
{ icon: "discord", label: "Discord", href: config.discord },
|
|
68
|
+
],
|
|
69
|
+
editLink: {
|
|
70
|
+
baseUrl: `${config.github}/edit/dev/packages/web/`,
|
|
71
|
+
},
|
|
72
|
+
markdown: {
|
|
73
|
+
headingLinks: false,
|
|
74
|
+
},
|
|
75
|
+
customCss: ["./src/styles/custom.css"],
|
|
76
|
+
logo: {
|
|
77
|
+
light: "./src/assets/logo-light.svg",
|
|
78
|
+
dark: "./src/assets/logo-dark.svg",
|
|
79
|
+
replacesTitle: true,
|
|
80
|
+
},
|
|
81
|
+
sidebar: [
|
|
82
|
+
"",
|
|
83
|
+
"config",
|
|
84
|
+
"providers",
|
|
85
|
+
"network",
|
|
86
|
+
"enterprise",
|
|
87
|
+
"troubleshooting",
|
|
88
|
+
"windows-wsl",
|
|
89
|
+
"1-0",
|
|
90
|
+
{
|
|
91
|
+
label: "Usage",
|
|
92
|
+
items: ["tui", "cli", "web", "ide", "zen", "share", "github", "gitlab"],
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
{
|
|
96
|
+
label: "Configure",
|
|
97
|
+
items: [
|
|
98
|
+
"tools",
|
|
99
|
+
"rules",
|
|
100
|
+
"agents",
|
|
101
|
+
"models",
|
|
102
|
+
"themes",
|
|
103
|
+
"keybinds",
|
|
104
|
+
"commands",
|
|
105
|
+
"formatters",
|
|
106
|
+
"permissions",
|
|
107
|
+
"lsp",
|
|
108
|
+
"mcp-servers",
|
|
109
|
+
"acp",
|
|
110
|
+
"skills",
|
|
111
|
+
"custom-tools",
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
{
|
|
116
|
+
label: "Develop",
|
|
117
|
+
items: ["sdk", "server", "plugins", "ecosystem"],
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
components: {
|
|
121
|
+
Hero: "./src/components/Hero.astro",
|
|
122
|
+
Head: "./src/components/Head.astro",
|
|
123
|
+
Header: "./src/components/Header.astro",
|
|
124
|
+
SiteTitle: "./src/components/SiteTitle.astro",
|
|
125
|
+
},
|
|
126
|
+
plugins: [
|
|
127
|
+
theme({
|
|
128
|
+
headerLinks: config.headerLinks,
|
|
129
|
+
}),
|
|
130
|
+
],
|
|
131
|
+
}),
|
|
132
|
+
],
|
|
133
|
+
})
|
|
134
|
+
|
|
135
|
+
function configSchema() {
|
|
136
|
+
return {
|
|
137
|
+
name: "configSchema",
|
|
138
|
+
hooks: {
|
|
139
|
+
"astro:build:done": async () => {
|
|
140
|
+
console.log("generating config schema")
|
|
141
|
+
spawnSync("../neocode/script/schema.ts", ["./dist/config.json"])
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
}
|
|
145
|
+
}
|
package/config.mjs
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const stage = process.env.SST_STAGE || "dev"
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
url: stage === "production" ? "https://neo.khulnasoft.com" : `https://${stage}.neo.khulnasoft.com`,
|
|
5
|
+
console: stage === "production" ? "https://neo.khulnasoft.com/auth" : `https://${stage}.neo.khulnasoft.com/auth`,
|
|
6
|
+
email: "contact@anoma.ly",
|
|
7
|
+
socialCard: "https://social-cards.khulnasoft.com",
|
|
8
|
+
github: "https://github.com/neopilot-ai/neocode",
|
|
9
|
+
discord: "https://neo.khulnasoft.com/discord",
|
|
10
|
+
headerLinks: [
|
|
11
|
+
{ name: "Home", url: "/" },
|
|
12
|
+
{ name: "Docs", url: "/docs/" },
|
|
13
|
+
],
|
|
14
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@neocode-ai/web",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"version": "1.1.1",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"dev": "astro dev",
|
|
8
|
+
"dev:remote": "VITE_API_URL=https://api.neo.khulnasoft.com astro dev",
|
|
9
|
+
"start": "astro dev",
|
|
10
|
+
"build": "astro build",
|
|
11
|
+
"preview": "astro preview",
|
|
12
|
+
"astro": "astro"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"@astrojs/cloudflare": "12.6.3",
|
|
16
|
+
"@astrojs/markdown-remark": "6.3.1",
|
|
17
|
+
"@astrojs/solid-js": "5.1.0",
|
|
18
|
+
"@astrojs/starlight": "0.34.3",
|
|
19
|
+
"@fontsource/ibm-plex-mono": "5.2.5",
|
|
20
|
+
"@shikijs/transformers": "3.4.2",
|
|
21
|
+
"@types/luxon": "catalog:",
|
|
22
|
+
"ai": "catalog:",
|
|
23
|
+
"astro": "5.7.13",
|
|
24
|
+
"diff": "catalog:",
|
|
25
|
+
"js-base64": "3.7.7",
|
|
26
|
+
"lang-map": "0.4.0",
|
|
27
|
+
"luxon": "catalog:",
|
|
28
|
+
"marked": "catalog:",
|
|
29
|
+
"marked-shiki": "catalog:",
|
|
30
|
+
"rehype-autolink-headings": "7.1.0",
|
|
31
|
+
"remeda": "catalog:",
|
|
32
|
+
"shiki": "catalog:",
|
|
33
|
+
"solid-js": "catalog:",
|
|
34
|
+
"toolbeam-docs-theme": "0.4.8"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"neocode": "workspace:*",
|
|
38
|
+
"@types/node": "catalog:",
|
|
39
|
+
"typescript": "catalog:"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"$schema": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"description": "JSON schema reference for configuration validation"
|
|
8
|
+
},
|
|
9
|
+
"defs": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"description": "Color definitions that can be referenced in the theme",
|
|
12
|
+
"patternProperties": {
|
|
13
|
+
"^[a-zA-Z][a-zA-Z0-9_]*$": {
|
|
14
|
+
"oneOf": [
|
|
15
|
+
{
|
|
16
|
+
"type": "string",
|
|
17
|
+
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
18
|
+
"description": "Hex color value"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "integer",
|
|
22
|
+
"minimum": 0,
|
|
23
|
+
"maximum": 255,
|
|
24
|
+
"description": "ANSI color code (0-255)"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "string",
|
|
28
|
+
"enum": ["none"],
|
|
29
|
+
"description": "No color (uses terminal default)"
|
|
30
|
+
}
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"additionalProperties": false
|
|
35
|
+
},
|
|
36
|
+
"theme": {
|
|
37
|
+
"type": "object",
|
|
38
|
+
"description": "Theme color definitions",
|
|
39
|
+
"properties": {
|
|
40
|
+
"primary": { "$ref": "#/definitions/colorValue" },
|
|
41
|
+
"secondary": { "$ref": "#/definitions/colorValue" },
|
|
42
|
+
"accent": { "$ref": "#/definitions/colorValue" },
|
|
43
|
+
"error": { "$ref": "#/definitions/colorValue" },
|
|
44
|
+
"warning": { "$ref": "#/definitions/colorValue" },
|
|
45
|
+
"success": { "$ref": "#/definitions/colorValue" },
|
|
46
|
+
"info": { "$ref": "#/definitions/colorValue" },
|
|
47
|
+
"text": { "$ref": "#/definitions/colorValue" },
|
|
48
|
+
"textMuted": { "$ref": "#/definitions/colorValue" },
|
|
49
|
+
"selectedListItemText": { "$ref": "#/definitions/colorValue" },
|
|
50
|
+
"background": { "$ref": "#/definitions/colorValue" },
|
|
51
|
+
"backgroundPanel": { "$ref": "#/definitions/colorValue" },
|
|
52
|
+
"backgroundElement": { "$ref": "#/definitions/colorValue" },
|
|
53
|
+
"border": { "$ref": "#/definitions/colorValue" },
|
|
54
|
+
"borderActive": { "$ref": "#/definitions/colorValue" },
|
|
55
|
+
"borderSubtle": { "$ref": "#/definitions/colorValue" },
|
|
56
|
+
"diffAdded": { "$ref": "#/definitions/colorValue" },
|
|
57
|
+
"diffRemoved": { "$ref": "#/definitions/colorValue" },
|
|
58
|
+
"diffContext": { "$ref": "#/definitions/colorValue" },
|
|
59
|
+
"diffHunkHeader": { "$ref": "#/definitions/colorValue" },
|
|
60
|
+
"diffHighlightAdded": { "$ref": "#/definitions/colorValue" },
|
|
61
|
+
"diffHighlightRemoved": { "$ref": "#/definitions/colorValue" },
|
|
62
|
+
"diffAddedBg": { "$ref": "#/definitions/colorValue" },
|
|
63
|
+
"diffRemovedBg": { "$ref": "#/definitions/colorValue" },
|
|
64
|
+
"diffContextBg": { "$ref": "#/definitions/colorValue" },
|
|
65
|
+
"diffLineNumber": { "$ref": "#/definitions/colorValue" },
|
|
66
|
+
"diffAddedLineNumberBg": { "$ref": "#/definitions/colorValue" },
|
|
67
|
+
"diffRemovedLineNumberBg": { "$ref": "#/definitions/colorValue" },
|
|
68
|
+
"markdownText": { "$ref": "#/definitions/colorValue" },
|
|
69
|
+
"markdownHeading": { "$ref": "#/definitions/colorValue" },
|
|
70
|
+
"markdownLink": { "$ref": "#/definitions/colorValue" },
|
|
71
|
+
"markdownLinkText": { "$ref": "#/definitions/colorValue" },
|
|
72
|
+
"markdownCode": { "$ref": "#/definitions/colorValue" },
|
|
73
|
+
"markdownBlockQuote": { "$ref": "#/definitions/colorValue" },
|
|
74
|
+
"markdownEmph": { "$ref": "#/definitions/colorValue" },
|
|
75
|
+
"markdownStrong": { "$ref": "#/definitions/colorValue" },
|
|
76
|
+
"markdownHorizontalRule": { "$ref": "#/definitions/colorValue" },
|
|
77
|
+
"markdownListItem": { "$ref": "#/definitions/colorValue" },
|
|
78
|
+
"markdownListEnumeration": { "$ref": "#/definitions/colorValue" },
|
|
79
|
+
"markdownImage": { "$ref": "#/definitions/colorValue" },
|
|
80
|
+
"markdownImageText": { "$ref": "#/definitions/colorValue" },
|
|
81
|
+
"markdownCodeBlock": { "$ref": "#/definitions/colorValue" },
|
|
82
|
+
"syntaxComment": { "$ref": "#/definitions/colorValue" },
|
|
83
|
+
"syntaxKeyword": { "$ref": "#/definitions/colorValue" },
|
|
84
|
+
"syntaxFunction": { "$ref": "#/definitions/colorValue" },
|
|
85
|
+
"syntaxVariable": { "$ref": "#/definitions/colorValue" },
|
|
86
|
+
"syntaxString": { "$ref": "#/definitions/colorValue" },
|
|
87
|
+
"syntaxNumber": { "$ref": "#/definitions/colorValue" },
|
|
88
|
+
"syntaxType": { "$ref": "#/definitions/colorValue" },
|
|
89
|
+
"syntaxOperator": { "$ref": "#/definitions/colorValue" },
|
|
90
|
+
"syntaxPunctuation": { "$ref": "#/definitions/colorValue" }
|
|
91
|
+
},
|
|
92
|
+
"required": ["primary", "secondary", "accent", "text", "textMuted", "background"],
|
|
93
|
+
"additionalProperties": false
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"required": ["theme"],
|
|
97
|
+
"additionalProperties": false,
|
|
98
|
+
"definitions": {
|
|
99
|
+
"colorValue": {
|
|
100
|
+
"oneOf": [
|
|
101
|
+
{
|
|
102
|
+
"type": "string",
|
|
103
|
+
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
104
|
+
"description": "Hex color value (same for dark and light)"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"type": "integer",
|
|
108
|
+
"minimum": 0,
|
|
109
|
+
"maximum": 255,
|
|
110
|
+
"description": "ANSI color code (0-255, same for dark and light)"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "string",
|
|
114
|
+
"enum": ["none"],
|
|
115
|
+
"description": "No color (uses terminal default)"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"type": "string",
|
|
119
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_]*$",
|
|
120
|
+
"description": "Reference to another color in the theme or defs"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"type": "object",
|
|
124
|
+
"properties": {
|
|
125
|
+
"dark": {
|
|
126
|
+
"oneOf": [
|
|
127
|
+
{
|
|
128
|
+
"type": "string",
|
|
129
|
+
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
130
|
+
"description": "Hex color value for dark mode"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"type": "integer",
|
|
134
|
+
"minimum": 0,
|
|
135
|
+
"maximum": 255,
|
|
136
|
+
"description": "ANSI color code for dark mode"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"type": "string",
|
|
140
|
+
"enum": ["none"],
|
|
141
|
+
"description": "No color (uses terminal default)"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "string",
|
|
145
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_]*$",
|
|
146
|
+
"description": "Reference to another color for dark mode"
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
},
|
|
150
|
+
"light": {
|
|
151
|
+
"oneOf": [
|
|
152
|
+
{
|
|
153
|
+
"type": "string",
|
|
154
|
+
"pattern": "^#[0-9a-fA-F]{6}$",
|
|
155
|
+
"description": "Hex color value for light mode"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"type": "integer",
|
|
159
|
+
"minimum": 0,
|
|
160
|
+
"maximum": 255,
|
|
161
|
+
"description": "ANSI color code for light mode"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"type": "string",
|
|
165
|
+
"enum": ["none"],
|
|
166
|
+
"description": "No color (uses terminal default)"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"type": "string",
|
|
170
|
+
"pattern": "^[a-zA-Z][a-zA-Z0-9_]*$",
|
|
171
|
+
"description": "Reference to another color for light mode"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"required": ["dark", "light"],
|
|
177
|
+
"additionalProperties": false,
|
|
178
|
+
"description": "Separate colors for dark and light modes"
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 512 512"><rect width="336" height="336" x="128" y="128" fill="none" stroke="currentColor" stroke-linejoin="round" stroke-width="32" rx="57" ry="57"/><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="32" d="m383.5 128l.5-24a56.16 56.16 0 0 0-56-56H112a64.19 64.19 0 0 0-64 64v216a56.16 56.16 0 0 0 56 56h24"/></svg>
|
|
2
|
+
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg width="234" height="42" viewBox="0 0 234 42" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="NEO">
|
|
3
|
+
<path d="M18 36H6V18H18V36Z" fill="#4B4646"/>
|
|
4
|
+
<path d="M18 12H6V36H0V6H18V12ZM24 36H18V12H24V36Z" fill="#B7B1B1"/>
|
|
5
|
+
<path d="M54 24V30H36V24H54Z" fill="#4B4646"/>
|
|
6
|
+
<path d="M54 24H36V30H54V36H30V6H54V24ZM36 18H48V12H36V18Z" fill="#B7B1B1"/>
|
|
7
|
+
<path d="M78 30H66V18H78V30Z" fill="#4B4646"/>
|
|
8
|
+
<path d="M78 12H66V30H78V12ZM84 36H60V6H84V36Z" fill="#B7B1B1"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="CODE">
|
|
11
|
+
<path d="M144 30H126V18H144V30Z" fill="#4B4646"/>
|
|
12
|
+
<path d="M144 12H126V30H144V36H120V6H144V12Z" fill="#F1ECEC"/>
|
|
13
|
+
<path d="M168 30H156V18H168V30Z" fill="#4B4646"/>
|
|
14
|
+
<path d="M168 12H156V30H168V12ZM174 36H150V6H174V36Z" fill="#F1ECEC"/>
|
|
15
|
+
<path d="M198 30H186V18H198V30Z" fill="#4B4646"/>
|
|
16
|
+
<path d="M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z" fill="#F1ECEC"/>
|
|
17
|
+
<path d="M234 24V30H216V24H234Z" fill="#4B4646"/>
|
|
18
|
+
<path d="M234 24H216V30H234V36H210V6H234V24ZM216 18H228V12H216V18Z" fill="#F1ECEC"/>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg width="234" height="42" viewBox="0 0 234 42" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="NEO">
|
|
3
|
+
<path d="M18 36H6V18H18V36Z" fill="#CFCECD"/>
|
|
4
|
+
<path d="M18 12H6V36H0V6H18V12ZM24 36H18V12H24V36Z" fill="#656363"/>
|
|
5
|
+
<path d="M54 24V30H36V24H54Z" fill="#CFCECD"/>
|
|
6
|
+
<path d="M54 24H36V30H54V36H30V6H54V24ZM36 18H48V12H36V18Z" fill="#656363"/>
|
|
7
|
+
<path d="M78 30H66V18H78V30Z" fill="#CFCECD"/>
|
|
8
|
+
<path d="M78 12H66V30H78V12ZM84 36H60V6H84V36Z" fill="#656363"/>
|
|
9
|
+
</g>
|
|
10
|
+
<g id="CODE">
|
|
11
|
+
<path d="M144 30H126V18H144V30Z" fill="#CFCECD"/>
|
|
12
|
+
<path d="M144 12H126V30H144V36H120V6H144V12Z" fill="#211E1E"/>
|
|
13
|
+
<path d="M168 30H156V18H168V30Z" fill="#CFCECD"/>
|
|
14
|
+
<path d="M168 12H156V30H168V12ZM174 36H150V6H174V36Z" fill="#211E1E"/>
|
|
15
|
+
<path d="M198 30H186V18H198V30Z" fill="#CFCECD"/>
|
|
16
|
+
<path d="M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z" fill="#211E1E"/>
|
|
17
|
+
<path d="M234 24V30H216V24H234Z" fill="#CFCECD"/>
|
|
18
|
+
<path d="M234 24H216V30H234V36H210V6H234V24ZM216 18H228V12H216V18Z" fill="#211E1E"/>
|
|
19
|
+
</g>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="234" height="42" viewBox="0 0 234 42" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M18 30H6V18H18V30Z" fill="#4B4646"/>
|
|
3
|
+
<path d="M18 12H6V30H18V12ZM24 36H0V6H24V36Z" fill="#B7B1B1"/>
|
|
4
|
+
<path d="M48 30H36V18H48V30Z" fill="#4B4646"/>
|
|
5
|
+
<path d="M36 30H48V12H36V30ZM54 36H36V42H30V6H54V36Z" fill="#B7B1B1"/>
|
|
6
|
+
<path d="M84 24V30H66V24H84Z" fill="#4B4646"/>
|
|
7
|
+
<path d="M84 24H66V30H84V36H60V6H84V24ZM66 18H78V12H66V18Z" fill="#B7B1B1"/>
|
|
8
|
+
<path d="M108 36H96V18H108V36Z" fill="#4B4646"/>
|
|
9
|
+
<path d="M108 12H96V36H90V6H108V12ZM114 36H108V12H114V36Z" fill="#B7B1B1"/>
|
|
10
|
+
<path d="M144 30H126V18H144V30Z" fill="#4B4646"/>
|
|
11
|
+
<path d="M144 12H126V30H144V36H120V6H144V12Z" fill="#F1ECEC"/>
|
|
12
|
+
<path d="M168 30H156V18H168V30Z" fill="#4B4646"/>
|
|
13
|
+
<path d="M168 12H156V30H168V12ZM174 36H150V6H174V36Z" fill="#F1ECEC"/>
|
|
14
|
+
<path d="M198 30H186V18H198V30Z" fill="#4B4646"/>
|
|
15
|
+
<path d="M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z" fill="#F1ECEC"/>
|
|
16
|
+
<path d="M234 24V30H216V24H234Z" fill="#4B4646"/>
|
|
17
|
+
<path d="M216 12V18H228V12H216ZM234 24H216V30H234V36H210V6H234V24Z" fill="#F1ECEC"/>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="234" height="42" viewBox="0 0 234 42" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M18 30H6V18H18V30Z" fill="#CFCECD"/>
|
|
3
|
+
<path d="M18 12H6V30H18V12ZM24 36H0V6H24V36Z" fill="#656363"/>
|
|
4
|
+
<path d="M48 30H36V18H48V30Z" fill="#CFCECD"/>
|
|
5
|
+
<path d="M36 30H48V12H36V30ZM54 36H36V42H30V6H54V36Z" fill="#656363"/>
|
|
6
|
+
<path d="M84 24V30H66V24H84Z" fill="#CFCECD"/>
|
|
7
|
+
<path d="M84 24H66V30H84V36H60V6H84V24ZM66 18H78V12H66V18Z" fill="#656363"/>
|
|
8
|
+
<path d="M108 36H96V18H108V36Z" fill="#CFCECD"/>
|
|
9
|
+
<path d="M108 12H96V36H90V6H108V12ZM114 36H108V12H114V36Z" fill="#656363"/>
|
|
10
|
+
<path d="M144 30H126V18H144V30Z" fill="#CFCECD"/>
|
|
11
|
+
<path d="M144 12H126V30H144V36H120V6H144V12Z" fill="#211E1E"/>
|
|
12
|
+
<path d="M168 30H156V18H168V30Z" fill="#CFCECD"/>
|
|
13
|
+
<path d="M168 12H156V30H168V12ZM174 36H150V6H174V36Z" fill="#211E1E"/>
|
|
14
|
+
<path d="M198 30H186V18H198V30Z" fill="#CFCECD"/>
|
|
15
|
+
<path d="M198 12H186V30H198V12ZM204 36H180V6H198V0H204V36Z" fill="#211E1E"/>
|
|
16
|
+
<path d="M234 24V30H216V24H234Z" fill="#CFCECD"/>
|
|
17
|
+
<path d="M216 12V18H228V12H216ZM234 24H216V30H234V36H210V6H234V24Z" fill="#211E1E"/>
|
|
18
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Base64 } from "js-base64";
|
|
3
|
+
import type { Props } from '@astrojs/starlight/props'
|
|
4
|
+
import Default from '@astrojs/starlight/components/Head.astro'
|
|
5
|
+
import config from '../../config.mjs'
|
|
6
|
+
|
|
7
|
+
const base = import.meta.env.BASE_URL.slice(1)
|
|
8
|
+
|
|
9
|
+
const slug = Astro.url.pathname.replace(/^\//, "").replace(/\/$/, "");
|
|
10
|
+
const {
|
|
11
|
+
entry: {
|
|
12
|
+
data: { title , description },
|
|
13
|
+
},
|
|
14
|
+
} = Astro.locals.starlightRoute;
|
|
15
|
+
const isDocs = slug.startsWith("docs")
|
|
16
|
+
|
|
17
|
+
let encodedTitle = '';
|
|
18
|
+
let ogImage = `${config.url}/social-share.png`;
|
|
19
|
+
let truncatedDesc = '';
|
|
20
|
+
|
|
21
|
+
if (isDocs) {
|
|
22
|
+
// Truncate to fit S3's max key size
|
|
23
|
+
encodedTitle = encodeURIComponent(
|
|
24
|
+
Base64.encode(
|
|
25
|
+
// Convert to ASCII
|
|
26
|
+
encodeURIComponent(
|
|
27
|
+
// Truncate to fit S3's max key size
|
|
28
|
+
title.substring(0, 700)
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
if (description) {
|
|
34
|
+
truncatedDesc = encodeURIComponent(description.substring(0, 400))
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
ogImage = `${config.socialCard}/neocode-docs/${encodedTitle}.png?desc=${truncatedDesc}`;
|
|
38
|
+
}
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
{ slug === "" && (
|
|
42
|
+
<title>{title} | AI coding agent built for the terminal</title>
|
|
43
|
+
)}
|
|
44
|
+
|
|
45
|
+
<Default {...Astro.props}><slot /></Default>
|
|
46
|
+
|
|
47
|
+
{ (!slug.startsWith(`${base}/s`)) && (
|
|
48
|
+
<meta property="og:image" content={ogImage} />
|
|
49
|
+
<meta property="twitter:image" content={ogImage} />
|
|
50
|
+
)}
|