├── .prettierignore ├── src ├── pages │ ├── 404.mdx │ ├── deploy │ │ ├── _meta.json │ │ ├── kubernetes.mdx │ │ ├── golem-cloud.mdx │ │ └── docker.mdx │ ├── invoke │ │ ├── making-custom-apis │ │ │ ├── _meta.json │ │ │ ├── troubleshooting.mdx │ │ │ └── authentication.mdx │ │ ├── _meta.json │ │ ├── repl.mdx │ │ ├── cli.mdx │ │ └── http.mdx │ ├── operate │ │ ├── _meta.json │ │ ├── invocation_context.mdx │ │ ├── logs.mdx │ │ └── persistence.mdx │ ├── invoke.mdx │ ├── _document.tsx │ ├── cli │ │ ├── _meta.json │ │ ├── shell-completion.mdx │ │ ├── install-from-source.mdx │ │ ├── permissions.mdx │ │ ├── profiles.mdx │ │ ├── components.mdx │ │ └── app-manifest.mdx │ ├── concepts │ │ ├── _meta.json │ │ ├── worker-gateway.mdx │ │ ├── agent-to-agent-communication.mdx │ │ ├── api-definitions.mdx │ │ └── plugins.mdx │ ├── usage.mdx │ ├── develop │ │ ├── building-components.mdx │ │ ├── _meta.json │ │ ├── next-steps.mdx │ │ ├── setup.mdx │ │ ├── http.mdx │ │ ├── updating.mdx │ │ ├── retries.mdx │ │ ├── promises.mdx │ │ └── durability.mdx │ ├── _app.tsx │ ├── _meta.json │ ├── rest-api.mdx │ ├── rest-api │ │ ├── limits.mdx │ │ ├── api-security.mdx │ │ ├── project-policy.mdx │ │ ├── api-domain.mdx │ │ ├── api-certificate.mdx │ │ ├── token.mdx │ │ ├── account.mdx │ │ ├── project-grant.mdx │ │ ├── api-deployment.mdx │ │ ├── plugin.mdx │ │ ├── login.mdx │ │ └── project.mdx │ ├── index.mdx │ ├── debug.mdx │ ├── develop.mdx │ ├── fundamentals.mdx │ ├── name-mapping.mdx │ ├── cli.mdx │ ├── deploy.mdx │ ├── why-golem.mdx │ └── desktop.mdx ├── styles │ └── globals.css └── components │ ├── multi-platform-command.tsx │ ├── all-wit-deps.tsx │ └── footer.tsx ├── .eslintrc.json ├── bun.lockb ├── public ├── favicon.ico ├── images │ ├── projects-link.png │ ├── create-new-api.png │ └── project-apis-link.png └── icon.svg ├── postcss.config.js ├── check-links ├── markdown-link-extractor.d.ts └── check-links.ts ├── prettier.config.js ├── .gitignore ├── tsconfig.json ├── tailwind.config.ts ├── lefthook.yml ├── next.config.js ├── rib-grammar.json ├── README.md ├── theme.config.tsx └── package.json /.prettierignore: -------------------------------------------------------------------------------- 1 | *.mdx -------------------------------------------------------------------------------- /src/pages/404.mdx: -------------------------------------------------------------------------------- 1 | # Page Not Found 2 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/golemcloud/docs/HEAD/bun.lockb -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/golemcloud/docs/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/images/projects-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/golemcloud/docs/HEAD/public/images/projects-link.png -------------------------------------------------------------------------------- /public/images/create-new-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/golemcloud/docs/HEAD/public/images/create-new-api.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/images/project-apis-link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/golemcloud/docs/HEAD/public/images/project-apis-link.png -------------------------------------------------------------------------------- /src/pages/deploy/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "docker": "Docker", 3 | "kubernetes": "Kubernetes", 4 | "golem-cloud": "Golem Cloud" 5 | } 6 | -------------------------------------------------------------------------------- /src/pages/invoke/making-custom-apis/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "authentication": "Authentication", 3 | "trouble-shooting": "Troubleshooting" 4 | } 5 | -------------------------------------------------------------------------------- /src/pages/invoke/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "http": "HTTP", 3 | "cli": "CLI", 4 | "repl": "REPL", 5 | "making-custom-apis": "Making Custom APIs" 6 | } 7 | -------------------------------------------------------------------------------- /check-links/markdown-link-extractor.d.ts: -------------------------------------------------------------------------------- 1 | declare module "markdown-link-extractor" { 2 | export default function markdownLinkExtractor(markdown: string): string[] 3 | } 4 | -------------------------------------------------------------------------------- /src/pages/operate/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "persistence": "Persistence", 3 | "metrics": "Metrics", 4 | "logs": "Logs", 5 | "invocation_context": "Invocation Context" 6 | } 7 | -------------------------------------------------------------------------------- /src/pages/invoke.mdx: -------------------------------------------------------------------------------- 1 | # Invoke workers 2 | 3 | Learn how to invoke [workers](/concepts/agents) using: 4 | 5 | - The [HTTP API](invoke/http) 6 | - The [CLI](invoke/cli) 7 | - The [REPL](invoke/repl) 8 | - By mapping to a [custom API](invoke/making-custom-apis) 9 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: ["prettier-plugin-tailwindcss"], 3 | trailingComma: "es5", 4 | tabWidth: 2, 5 | semi: false, 6 | singleQuote: false, 7 | printWidth: 100, 8 | arrowParens: "avoid", 9 | jsxSingleQuote: false, 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import { Html, Head, Main, NextScript } from "next/document" 2 | 3 | export default function Document() { 4 | return ( 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /src/pages/deploy/kubernetes.mdx: -------------------------------------------------------------------------------- 1 | # Deploy to Kubernetes 2 | 3 | Golem currently does not provide an official Helm chart or equivalent for Kubernetes deployments. However all the Golem services are containerized and deployed to Docker Hub, and configurable though environment variables, so it is possible to create your own Kubernetes manifests. -------------------------------------------------------------------------------- /src/pages/cli/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "app-manifest": "Application Manifest", 3 | "components": "Components", 4 | "agents": "Agents", 5 | "profiles": "Profiles", 6 | "permissions": "Permissions", 7 | "plugins": "Plugins", 8 | "shell-completion": "Shell Completion", 9 | "install-from-source": "Install from Source" 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/concepts/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "reliability": "Reliability", 3 | "components": "Components", 4 | "agents": "Agents", 5 | "invocations": "Invocations", 6 | "worker-gateway": "Worker Gateway", 7 | "agent-to-agent-communication": "Agent to Agent Communication", 8 | "api-definitions": "API Definitions", 9 | "plugins": "Plugins" 10 | } 11 | -------------------------------------------------------------------------------- /src/pages/deploy/golem-cloud.mdx: -------------------------------------------------------------------------------- 1 | # Deploy to Golem Cloud 2 | 3 | Golem Cloud is hosted version of Golem. It is easiest and fastest way to run Golem [agents](/concepts/agents), 4 | in the cloud, at scale, without any infrastructure setup or maintenance required. 5 | 6 | Golem Cloud can be managed by: 7 | 8 | - [Web management console](https://console.golem.cloud/) 9 | - [golem-cloud-cli](/cli) 10 | - [REST API](/rest-api) 11 | -------------------------------------------------------------------------------- /src/pages/usage.mdx: -------------------------------------------------------------------------------- 1 | import { Cards, Card } from "nextra/components" 2 | 3 | # Usage 4 | 5 | Learn about deploying, invoking and debugging agents, using the command line interface and more. 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | 4 | .idea/ 5 | 6 | # dependencies 7 | /node_modules 8 | /.pnp 9 | .pnp.js 10 | .yarn/install-state.gz 11 | 12 | # testing 13 | /coverage 14 | 15 | # next.js 16 | /.next/ 17 | /out/ 18 | 19 | # production 20 | /build 21 | 22 | # misc 23 | .DS_Store 24 | *.pem 25 | 26 | # debug 27 | npm-debug.log* 28 | yarn-debug.log* 29 | yarn-error.log* 30 | 31 | # local env files 32 | .env*.local 33 | 34 | # vercel 35 | .vercel 36 | 37 | # typescript 38 | *.tsbuildinfo 39 | next-env.d.ts 40 | -------------------------------------------------------------------------------- /src/pages/develop/building-components.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from "nextra/components" 2 | import { Steps } from "nextra/components" 3 | 4 | # Building Golem Components 5 | Building Golem components having an [application manifest](/app-manifest) is straightforward. 6 | 7 | Use the `golem` command line interface to run the build: 8 | 9 | ```shell copy 10 | golem app build 11 | ``` 12 | 13 | The result of the `golem app build` command is a WebAssembly component file ready to be deployed to Golem. To deploy it, use the `deploy` command: 14 | 15 | ```shell copy 16 | golem app deploy 17 | ``` 18 | -------------------------------------------------------------------------------- /src/styles/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | /* Table of contents */ 6 | .nextra-toc > div.nextra-scrollbar > div:last-child { 7 | @apply bg-background-light shadow-none dark:bg-background-dark; 8 | } 9 | 10 | /* Theme switcher and collapse */ 11 | aside.nextra-sidebar-container > div:last-child { 12 | @apply bg-background-light shadow-none dark:bg-background-dark; 13 | } 14 | 15 | @layer base { 16 | * { 17 | /* Handle overly bold fonts in safari */ 18 | -webkit-font-smoothing: antialiased; 19 | min-width: 0; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noImplicitAny": true, 9 | "noEmit": true, 10 | "esModuleInterop": true, 11 | "module": "esnext", 12 | "moduleResolution": "bundler", 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "jsx": "preserve", 16 | "incremental": true, 17 | "paths": { 18 | "@/*": ["./src/*"] 19 | } 20 | }, 21 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], 22 | "exclude": ["node_modules"] 23 | } 24 | -------------------------------------------------------------------------------- /src/pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import "../styles/globals.css" 2 | 3 | import type { AppProps } from "next/app" 4 | 5 | import { Inter } from "next/font/google" 6 | 7 | const font = Inter({ 8 | subsets: ["latin"], 9 | display: "swap", 10 | variable: "--font-sans", 11 | }) 12 | 13 | export default function MyApp({ Component, pageProps }: AppProps) { 14 | return ( 15 |
22 | 23 |
24 | ) 25 | } 26 | -------------------------------------------------------------------------------- /src/pages/invoke/repl.mdx: -------------------------------------------------------------------------------- 1 | ## Golem REPL 2 | 3 | Once you have a component using `golem app` commands, 4 | you can spin up a REPL to interact with your functions. 5 | 6 | Golem REPL is backed by the language [Rib](/rib) 7 | 8 | For example, using the [quickstart example](/quickstart): 9 | 10 | ```shell 11 | golem repl 12 | ``` 13 | 14 | ```shell 15 | >>> let a1 = counter-agent("agent-1") 16 | () 17 | >>> let a2 = counter-agent("another") 18 | () 19 | >>> a1.increment() 20 | 1 21 | >>> a1.increment() 22 | 2 23 | >>> a2.increment() 24 | 1 25 | ``` 26 | 27 | REPL is a great way to test the component and its functions, 28 | however note that it's a brand new feature and is experimental in nature. -------------------------------------------------------------------------------- /src/pages/develop/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "-- getting-started": { 3 | "type": "separator", 4 | "title": "Getting Started" 5 | }, 6 | "setup": "Setup", 7 | "defining-components": "Defining Components", 8 | "building-components": "Building Components", 9 | "next-steps": "Next Steps", 10 | "-- golem-sdk": { 11 | "type": "separator", 12 | "title": "Golem SDK" 13 | }, 14 | "http": "HTTP client", 15 | "durability": "Durability", 16 | "retries": "Retries", 17 | "transactions": "Transactions", 18 | "promises": "Promises", 19 | "updating": "Updating Agents", 20 | "additional": "Additional runtime APIs", 21 | "rpc": "Agent to Agent Communication", 22 | "agent-filesystem": "Agent Filesystem", 23 | "ai": "Using AI Providers", 24 | "rdbms": "Using Relational Databases", 25 | "forking": "Forking Agents" 26 | } 27 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss" 2 | 3 | const config: Config = { 4 | content: [ 5 | "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", 6 | "./src/components/**/*.{js,ts,jsx,tsx,mdx}", 7 | "./src/app/**/*.{js,ts,jsx,tsx,mdx}", 8 | "./theme.config.tsx", 9 | ], 10 | theme: { 11 | extend: { 12 | fontFamily: { 13 | sans: ["var(--font-sans)"], 14 | }, 15 | backgroundImage: { 16 | "gradient-radial": "radial-gradient(var(--tw-gradient-stops))", 17 | "gradient-conic": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 18 | }, 19 | colors: { 20 | "background-dark": "#0a0a0a", 21 | "background-light": "#ffffff", 22 | }, 23 | }, 24 | }, 25 | plugins: [], 26 | darkMode: "class", 27 | } 28 | export default config 29 | -------------------------------------------------------------------------------- /src/pages/_meta.json: -------------------------------------------------------------------------------- 1 | { 2 | "index": "Home", 3 | "-- Getting Started": { 4 | "type": "separator", 5 | "title": "Getting Started" 6 | }, 7 | "why-golem": "Why Golem?", 8 | "fundamentals": "Fundamentals", 9 | "quickstart": "Quickstart", 10 | "concepts": { 11 | "title": "Concepts" 12 | }, 13 | "-- Develop": { 14 | "type": "separator", 15 | "title": "Develop" 16 | }, 17 | "develop": "Develop", 18 | "-- Usage": { 19 | "type": "separator", 20 | "title": "Usage" 21 | }, 22 | "deploy": { 23 | "title": "Deploy" 24 | }, 25 | "invoke": { 26 | "title": "Invoke" 27 | }, 28 | "debug": { 29 | "title": "Debug" 30 | }, 31 | "operate": { 32 | "title": "Operate" 33 | }, 34 | "cli": { 35 | "title": "CLI" 36 | }, 37 | "desktop": { 38 | "title": "Desktop" 39 | }, 40 | "-- References": { 41 | "type": "separator", 42 | "title": "References" 43 | }, 44 | "app-manifest": "Application Manifest", 45 | "name-mapping": "Name Mapping", 46 | "type-mapping": "Type Mapping", 47 | "rest-api": "REST API", 48 | "rib": "Rib", 49 | "js-apis": "JavaScript APIs" 50 | } 51 | -------------------------------------------------------------------------------- /src/pages/rest-api.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from "nextra/components" 2 | import { Card, Cards } from "nextra/components" 3 | import { GolemIcon } from "src/components/golem-logo" 4 | 5 | # REST API 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/pages/cli/shell-completion.mdx: -------------------------------------------------------------------------------- 1 | import { Callout, Tabs } from "nextra/components" 2 | 3 | # Golem CLI shell completion 4 | 5 | The `golem completion` command can be used to generate shell completions for many popular shells: 6 | 7 | 8 | 9 | ```shell copy 10 | golem completion bash 11 | ``` 12 | 13 | 14 | ```shell copy 15 | golem completion elvish 16 | ``` 17 | 18 | 19 | ```shell copy 20 | golem completion fish 21 | ``` 22 | 23 | 24 | ```shell copy 25 | golem completion powershell 26 | ``` 27 | 28 | 29 | ```shell copy 30 | golem completion zsh 31 | ``` 32 | 33 | 34 | 35 | The above command will generate and print the shell completion script to standard output. Redirect the output to a file to save the script. Consult your shell documentation about where to place it. 36 | 37 | 38 | After every Golem update, it is recommended to regenerate the shell completions to include the latest commands and flags. 39 | 40 | -------------------------------------------------------------------------------- /src/pages/rest-api/limits.mdx: -------------------------------------------------------------------------------- 1 | # Limits API 2 | The limits API allows users to query their current resource limits. 3 | ## Get resource limits for a given account. 4 | Path|Method|Protected 5 | ---|---|--- 6 | `/v1/resource-limits`|GET|Yes 7 | 8 | 9 | 10 | **Query Parameters** 11 | 12 | Name|Type|Required|Description 13 | ---|---|---|--- 14 | account-id|string|Yes|The Account ID to check resource limits for. 15 | 16 | 17 | 18 | **Example Response JSON** 19 | 20 | ```json copy 21 | { 22 | "availableFuel": 0, 23 | "maxMemoryPerWorker": 0 24 | } 25 | ``` 26 | 27 | ## Update resource limits for a given account. 28 | Path|Method|Protected 29 | ---|---|--- 30 | `/v1/resource-limits`|POST|Yes 31 | 32 | 33 | 34 | 35 | 36 | **Example Request JSON** 37 | ```json copy 38 | { 39 | "updates": { 40 | "property1": 0, 41 | "property2": 0 42 | } 43 | } 44 | ``` 45 | 46 | **Example Response JSON** 47 | 48 | ```json copy 49 | {} 50 | ``` 51 | ## Limits API Errors 52 | Status Code|Description|Body 53 | ---|---|--- 54 | 400|Invalid request, returning with a list of issues detected in the request|`{"errors":["string"]}` 55 | 401|Unauthorized request|`{"error":"string"}` 56 | 403||`{"error":"string"}` 57 | 500|Internal server error|`{"error":"string"}` -------------------------------------------------------------------------------- /lefthook.yml: -------------------------------------------------------------------------------- 1 | lint_glob: &lint_glob "*.{js,jsx,ts,tsx,cjs,mjs}" 2 | prettier_glob: &prettier_glob "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc,md,mdx}" 3 | 4 | pre-commit: 5 | parallel: false 6 | commands: 7 | lint: 8 | glob: *lint_glob 9 | run: bunx eslint --fix {staged_files} 10 | lint-add: 11 | glob: *lint_glob 12 | run: git add {staged_files} 13 | prettier: 14 | glob: *prettier_glob 15 | run: bunx prettier --log-level warn --write {staged_files} 16 | prettier-add: 17 | glob: *prettier_glob 18 | run: git add {staged_files} 19 | typecheck: 20 | run: bunx tsc 21 | check-links: 22 | run: bun run check-links {staged_files} 23 | 24 | pre-build: 25 | parallel: true 26 | commands: 27 | lint: 28 | glob: *lint_glob 29 | run: bunx eslint {all_files} 30 | prettier: 31 | glob: *prettier_glob 32 | run: bunx prettier --log-level warn --check {all_files} 33 | typecheck: 34 | run: bunx tsc 35 | check-links: 36 | run: bun run check-links {all_files} 37 | 38 | fix: 39 | parallel: false 40 | commands: 41 | lint: 42 | glob: *lint_glob 43 | run: next lint --fix . 44 | prettier: 45 | glob: *prettier_glob 46 | run: bunx prettier --log-level silent --write ./src -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | const shiki = require("shiki") 2 | const nextra = require("nextra") 3 | 4 | const withNextra = nextra({ 5 | theme: "nextra-theme-docs", 6 | themeConfig: "./theme.config.tsx", 7 | mdxOptions: { 8 | rehypePrettyCodeOptions: { 9 | getHighlighter: options => 10 | shiki.getHighlighter({ 11 | ...options, 12 | langs: [ 13 | ...shiki.BUNDLED_LANGUAGES, 14 | { 15 | id: "wit", 16 | scopeName: "source.wit", 17 | aliases: [""], // Along with id, aliases will be included in the allowed names you can use when writing markdown. 18 | // this is relative path from node_modules/shiki/index.js 19 | path: "../../wit-grammar.json", 20 | }, 21 | { 22 | id: "rib", 23 | scopeName: "source.rib", 24 | aliases: [""], // Along with id, aliases will be included in the allowed names you can use when writing markdown. 25 | // this is relative path from node_modules/shiki/index.js 26 | path: "../../rib-grammar.json", 27 | }, 28 | ], 29 | }), 30 | }, 31 | }, 32 | }) 33 | 34 | module.exports = withNextra({ 35 | reactStrictMode: true, 36 | experimental: { 37 | scrollRestoration: true, 38 | }, 39 | }) 40 | -------------------------------------------------------------------------------- /src/pages/develop/next-steps.mdx: -------------------------------------------------------------------------------- 1 | import { Steps } from "nextra/components" 2 | 3 | # Next steps 4 | 5 | After [setting up the TypeScript development environment](/develop/setup) and learning the basic steps [writing a Golem component](/develop/defining-components) and [building them](/develop/building-components), 6 | consider learning about the following topics for creating more advanced Golem agents, or proceed to the [Invoke section](/invoke) to learn how to call these agents: 7 | 8 | 9 | 10 | ### Making HTTP requests from a Golem component 11 | Learn how to [send HTTP requests from a Golem component written in TypeScript](/develop/http). 12 | 13 | ### Control durability guarantees 14 | 15 | Check how the TypeScript Golem SDK can [control various durability settings](/develop/durability) of Golem. 16 | 17 | ### Automatic retries 18 | 19 | Learn about Golem's retry mechanism and [how it can be customized](/develop/retries). 20 | 21 | ### Transactions 22 | 23 | Use the higher level [transactions library](/develop/transactions) to implement the _Saga pattern_. 24 | 25 | ### Promises 26 | 27 | Create and use [promises](/develop/promises) to await external events from within a running agent. 28 | 29 | ### Call other agents from an agent 30 | 31 | [Agent to Agent communication](/develop/rpc) 32 | 33 | ### Set up the agent's filesystem 34 | 35 | [Agent filesystem](/develop/agent-filesystem) 36 | 37 | ### Use LLMs 38 | 39 | [LLMs](/develop/ai) 40 | 41 | ### Use fork to achieve parallelism 42 | 43 | [Forking agents](/develop/forking) 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/pages/rest-api/api-security.mdx: -------------------------------------------------------------------------------- 1 | # API Security API 2 | 3 | ## Get a security scheme 4 | Path|Method|Protected 5 | ---|---|--- 6 | `/v1/api/security/{project_id}/{security_scheme_identifier}`|GET|Yes 7 | 8 | Get a security scheme by name 9 | 10 | 11 | 12 | 13 | 14 | **Example Response JSON** 15 | 16 | ```json copy 17 | { 18 | "providerType": "Google", 19 | "schemeIdentifier": "string", 20 | "clientId": "string", 21 | "clientSecret": "string", 22 | "redirectUrl": "string", 23 | "scopes": [ 24 | "string" 25 | ] 26 | } 27 | ``` 28 | 29 | ## Create a security scheme 30 | Path|Method|Protected 31 | ---|---|--- 32 | `/v1/api/security/{project_id}`|POST|Yes 33 | 34 | 35 | 36 | 37 | 38 | **Example Request JSON** 39 | ```json copy 40 | { 41 | "providerType": "Google", 42 | "schemeIdentifier": "string", 43 | "clientId": "string", 44 | "clientSecret": "string", 45 | "redirectUrl": "string", 46 | "scopes": [ 47 | "string" 48 | ] 49 | } 50 | ``` 51 | 52 | **Example Response JSON** 53 | 54 | ```json copy 55 | { 56 | "providerType": "Google", 57 | "schemeIdentifier": "string", 58 | "clientId": "string", 59 | "clientSecret": "string", 60 | "redirectUrl": "string", 61 | "scopes": [ 62 | "string" 63 | ] 64 | } 65 | ``` 66 | ## API Security API Errors 67 | Status Code|Description|Body 68 | ---|---|--- 69 | 400||`{"errors":["string"]}` 70 | 401||`{"error":"string"}` 71 | 403||`{"error":"string"}` 72 | 404||`{"error":"string"}` 73 | 409||`{"error":"string"}` 74 | 500||`{"error":"string","workerError":{"cause":"string","stderr":"string"}}` -------------------------------------------------------------------------------- /rib-grammar.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", 3 | "name": "Rib", 4 | "scopeName": "source.rib", 5 | "patterns": [ 6 | { "include": "#keywords" }, 7 | { "include": "#operators" }, 8 | { "include": "#literals" }, 9 | { "include": "#types" }, 10 | { "include": "#identifiers" } 11 | ], 12 | "repository": { 13 | "keywords": { 14 | "patterns": [ 15 | { 16 | "match": "\\b(let|if|then|else|for|in|yield|reduce|from|some|none|ok|error|instance)\\b", 17 | "name": "keyword.control.rib" 18 | } 19 | ] 20 | }, 21 | "operators": { 22 | "patterns": [ 23 | { "match": "\\b(>=|<=|==|<|>|&&|\\|\\||\\+|\\-|\\*|/)\\b", "name": "keyword.operator.rib" }, 24 | { "match": "\\.{2,3}=?", "name": "keyword.operator.range.rib" } 25 | ] 26 | }, 27 | "literals": { 28 | "patterns": [ 29 | { "match": "\\b(true|false)\\b", "name": "constant.language.boolean.rib" }, 30 | { "match": "\\d+", "name": "constant.numeric.rib" }, 31 | { "match": "\"(\\\\.|[^\"])*\"", "name": "string.quoted.double.rib" } 32 | ] 33 | }, 34 | "types": { 35 | "patterns": [ 36 | { 37 | "match": "\\b(bool|s8|u8|s16|u16|s32|u32|s64|u64|f32|f64|char|string|list|tuple|option|result)\\b", 38 | "name": "storage.type.rib" 39 | } 40 | ] 41 | }, 42 | "identifiers": { 43 | "patterns": [{ "match": "[a-zA-Z_][a-zA-Z0-9_-]*", "name": "variable.rib" }] 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Getting Started 2 | 3 | 1. [Install Bun](https://bun.sh/docs/installation) 4 | 2. Install dependencies 5 | 6 | `bun install` 7 | 8 | 3. Run the development server 9 | 10 | `bun run dev` 11 | 12 | 4. Open http://localhost:3001 with your browser to see the result. 13 | 14 | ## Development Guide 15 | 16 | This docs site is built with [Nextra](https://nextra.site/). 17 | 18 | ## Adding a new page 19 | 20 | Each documentation page is created from a .mdx file. To add a new page, create a new .mdx file in the `src/pages` directory. The file name will be the URL path. 21 | 22 | For example, `src/pages/docs/getting-started.mdx` will be available at `/docs/getting-started`. 23 | 24 | ### Changing page metadata 25 | 26 | To change the page title or its position in the left-hand sidebar, create a `_meta.json` file in the same directory as the .mdx file. 27 | 28 | [Read more about Nextra's \_meta.json files](https://nextra.site/docs/guide/organize-files#_metajson). 29 | 30 | [Read more about Nextra's docs theme](https://nextra.site/docs/docs-theme). 31 | 32 | If we had a page `/src/pages/docs/getting-started.mdx`, we could add a `_meta.json` file to change the title and make it the first entry in the sidebar. 33 | 34 | ```json 35 | { 36 | "getting-started": { 37 | "title": "Getting Started - Overview" 38 | }, 39 | "other-page": "Other Page" 40 | } 41 | ``` 42 | 43 | Note how the key in the JSON object matches the file name. This is how Nextra knows which page to apply the metadata to. 44 | 45 | > If the value is a JSON object, you can set multiple parameters. If it's a string, it will just change the title. 46 | -------------------------------------------------------------------------------- /src/pages/index.mdx: -------------------------------------------------------------------------------- 1 | import { Callout } from "nextra/components" 2 | import { Card, Cards } from "nextra/components" 3 | import { 4 | Code, 5 | Cog, 6 | Gamepad, 7 | LibraryBig, 8 | Terminal, 9 | ArrowUpDown, 10 | SquareFunction, 11 | HardHat, 12 | CircleHelp, 13 | Rocket, 14 | } from "lucide-react" 15 | import { GolemIcon } from "src/components/golem-logo" 16 | 17 | # Golem Developer Documentation 18 | 19 | Welcome to the Golem developer documentation portal! Here you will find comprehensive documentation on how to build, deploy, and manage applications on Golem. 20 | 21 | 22 |
23 | Golem is available in both an open source version that you can deploy yourself and a hosted 24 | version that we manage for you. This documentation covers both versions, and we will discuss any 25 | differences between the two. 26 |
27 |
28 | 29 | ### Getting Started 30 | 31 | 32 | } /> 33 | } /> 34 | } /> 35 | 36 | 37 | ### Quick Links 38 | 39 | 40 | } /> 41 | } /> 42 | } /> 43 | } /> 44 | } /> 45 | } /> 46 | 47 | -------------------------------------------------------------------------------- /theme.config.tsx: -------------------------------------------------------------------------------- 1 | import React from "react" 2 | import { DocsThemeConfig } from "nextra-theme-docs" 3 | import { Footer } from "@/components/footer" 4 | import { GolemLogo } from "@/components/golem-logo" 5 | import { useRouter } from "next/router" 6 | 7 | const config: DocsThemeConfig = { 8 | logo: , 9 | banner: { 10 | key: "docs-launch", 11 | text: ( 12 |
13 | Welcome to the new Golem Cloud Docs! 👋 14 |
15 | ), 16 | }, 17 | primaryHue: { 18 | dark: 213, 19 | light: 226, 20 | }, 21 | primarySaturation: { 22 | light: 90, 23 | dark: 93, 24 | }, 25 | sidebar: { 26 | toggleButton: true, 27 | defaultMenuCollapseLevel: 1, 28 | }, 29 | project: { 30 | link: "https://github.com/golemcloud/docs", 31 | }, 32 | chat: { 33 | link: "https://discord.gg/UjXeH8uG4x", 34 | }, 35 | docsRepositoryBase: "https://github.com/golemcloud/docs/blob/main", 36 | footer: { 37 | component: