velaclaw-dev 0.2.0
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/.gitignore +14 -0
- package/ARCHITECTURE.md +143 -0
- package/README.dev.md +208 -0
- package/README.local-before-remote-sync.md +224 -0
- package/README.md +211 -0
- package/README.public.md +115 -0
- package/RELEASING.md +162 -0
- package/TESTING.md +195 -0
- package/dist/cli.js +213 -0
- package/dist/data.js +2988 -0
- package/dist/server.js +1020 -0
- package/dist/ui.js +1486 -0
- package/members/LAUNCH_CHECKLIST.md +13 -0
- package/members/README.md +17 -0
- package/members/member-template/README.md +9 -0
- package/members/member-template/private-docs/README.md +3 -0
- package/members/member-template/private-memory/README.md +3 -0
- package/members/member-template/private-skills/README.md +4 -0
- package/members/member-template/private-tools/README.md +4 -0
- package/members/member-template/runtime/config/README.md +3 -0
- package/members/member-template/runtime/config/local-plugins/member-quota-guard/index.js +123 -0
- package/members/member-template/runtime/config/local-plugins/member-quota-guard/openclaw.plugin.json +19 -0
- package/members/member-template/runtime/config/local-plugins/member-quota-guard/package.json +10 -0
- package/members/member-template/runtime/config/local-plugins/member-runtime-upgrader/index.js +97 -0
- package/members/member-template/runtime/config/local-plugins/member-runtime-upgrader/openclaw.plugin.json +21 -0
- package/members/member-template/runtime/config/local-plugins/member-runtime-upgrader/package.json +10 -0
- package/members/member-template/runtime/config/local-plugins/shared-asset-injector/index.js +548 -0
- package/members/member-template/runtime/config/local-plugins/shared-asset-injector/openclaw.plugin.json +33 -0
- package/members/member-template/runtime/config/local-plugins/shared-asset-injector/package.json +10 -0
- package/members/member-template/runtime/config/openclaw.json +104 -0
- package/members/member-template/runtime/docker-compose.yml +53 -0
- package/members/member-template/runtime/logs/README.md +3 -0
- package/members/member-template/runtime/secrets/.gitkeep +1 -0
- package/members/member-template/runtime/secrets/README.md +3 -0
- package/members/member-template/runtime/workspace/.gitkeep +1 -0
- package/members/member-template/runtime/workspace/README.md +3 -0
- package/package.json +57 -0
- package/pic/banner.jpg +0 -0
- package/provision-member.md +87 -0
- package/scripts/shared-asset-stack-test.mjs +369 -0
- package/scripts/shared-skill-combo-test.mjs +282 -0
- package/scripts/team-load-test.mjs +358 -0
- package/scripts/verify-install.mjs +44 -0
- package/services/litellm/config.yaml +35 -0
- package/services/litellm/docker-compose.yml +36 -0
- package/services/litellm/litellm.env.example +13 -0
- package/shared-snapshots/README.md +16 -0
- package/shared-snapshots/docs/README.md +3 -0
- package/shared-snapshots/memory/README.md +3 -0
- package/shared-snapshots/skills/README.md +3 -0
- package/shared-snapshots/tools/README.md +4 -0
- package/shared-snapshots/workflows/README.md +3 -0
- package/team-assets/README.md +11 -0
- package/team-assets/policies/README.md +7 -0
- package/team-assets/policies/asset-visibility.md +24 -0
- package/team-assets/policies/high-risk-action-approval.md +18 -0
- package/team-assets/policies/promotion-rules.md +25 -0
- package/team-assets/policies/tool-binding-rules.md +26 -0
- package/team-assets/shared-docs/README.md +3 -0
- package/team-assets/shared-memory/README.md +8 -0
- package/team-assets/shared-skills/README.md +8 -0
- package/team-assets/shared-tools/README.md +8 -0
- package/team-assets/shared-workflows/README.md +9 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
model_list:
|
|
2
|
+
- model_name: gpt-4.1-mini
|
|
3
|
+
litellm_params:
|
|
4
|
+
model: openai/gpt-4.1-mini
|
|
5
|
+
api_base: https://saymycode.xyz/v1
|
|
6
|
+
api_key: os.environ/OPENAI_API_KEY
|
|
7
|
+
extra_headers:
|
|
8
|
+
User-Agent: curl/8.5.0
|
|
9
|
+
Accept: "*/*"
|
|
10
|
+
|
|
11
|
+
- model_name: gpt-5.1-codex-mini
|
|
12
|
+
litellm_params:
|
|
13
|
+
model: openai/gpt-5.1-codex-mini
|
|
14
|
+
api_base: https://saymycode.xyz/v1
|
|
15
|
+
api_key: os.environ/OPENAI_API_KEY
|
|
16
|
+
extra_headers:
|
|
17
|
+
User-Agent: curl/8.5.0
|
|
18
|
+
Accept: "*/*"
|
|
19
|
+
|
|
20
|
+
- model_name: gpt-5.4
|
|
21
|
+
litellm_params:
|
|
22
|
+
model: openai/gpt-5.4
|
|
23
|
+
api_base: https://saymycode.xyz/v1
|
|
24
|
+
api_key: os.environ/OPENAI_API_KEY
|
|
25
|
+
extra_headers:
|
|
26
|
+
User-Agent: curl/8.5.0
|
|
27
|
+
Accept: "*/*"
|
|
28
|
+
|
|
29
|
+
general_settings:
|
|
30
|
+
master_key: os.environ/LITELLM_MASTER_KEY
|
|
31
|
+
database_url: os.environ/DATABASE_URL
|
|
32
|
+
set_verbose: false
|
|
33
|
+
|
|
34
|
+
litellm_settings:
|
|
35
|
+
drop_params: true
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
services:
|
|
2
|
+
postgres:
|
|
3
|
+
image: postgres:16-alpine
|
|
4
|
+
container_name: velaclaw-litellm-postgres
|
|
5
|
+
restart: unless-stopped
|
|
6
|
+
env_file:
|
|
7
|
+
- ${HOME}/.config/velaclaw/litellm.env
|
|
8
|
+
environment:
|
|
9
|
+
POSTGRES_DB: litellm
|
|
10
|
+
POSTGRES_USER: litellm
|
|
11
|
+
volumes:
|
|
12
|
+
- ./postgres-data:/var/lib/postgresql/data
|
|
13
|
+
healthcheck:
|
|
14
|
+
test: ["CMD-SHELL", "pg_isready -U litellm -d litellm"]
|
|
15
|
+
interval: 10s
|
|
16
|
+
timeout: 5s
|
|
17
|
+
retries: 10
|
|
18
|
+
|
|
19
|
+
litellm:
|
|
20
|
+
image: ghcr.io/berriai/litellm:main-latest
|
|
21
|
+
container_name: velaclaw-litellm
|
|
22
|
+
restart: unless-stopped
|
|
23
|
+
depends_on:
|
|
24
|
+
postgres:
|
|
25
|
+
condition: service_healthy
|
|
26
|
+
env_file:
|
|
27
|
+
- ${HOME}/.config/velaclaw/litellm.env
|
|
28
|
+
ports:
|
|
29
|
+
- "127.0.0.1:4000:4000"
|
|
30
|
+
volumes:
|
|
31
|
+
- ./config.yaml:/app/config.yaml:ro
|
|
32
|
+
command:
|
|
33
|
+
- "--config"
|
|
34
|
+
- "/app/config.yaml"
|
|
35
|
+
- "--port"
|
|
36
|
+
- "4000"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Copy this file to:
|
|
2
|
+
# ~/.config/velaclaw/litellm.env
|
|
3
|
+
#
|
|
4
|
+
# Keep POSTGRES_PASSWORD and DATABASE_URL in sync.
|
|
5
|
+
|
|
6
|
+
POSTGRES_PASSWORD=change-me
|
|
7
|
+
DATABASE_URL=postgresql://litellm:change-me@postgres:5432/litellm
|
|
8
|
+
|
|
9
|
+
# Upstream key used by the model gateway backing LiteLLM.
|
|
10
|
+
OPENAI_API_KEY=replace-with-your-upstream-key
|
|
11
|
+
|
|
12
|
+
# Shared key used by Velaclaw to call LiteLLM locally.
|
|
13
|
+
LITELLM_MASTER_KEY=replace-with-a-long-random-secret
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Shared asset snapshots
|
|
2
|
+
|
|
3
|
+
This directory is for read-only snapshots of approved team assets that may be distributed into member runtimes.
|
|
4
|
+
|
|
5
|
+
Recommended subdirectories:
|
|
6
|
+
- `skills/`
|
|
7
|
+
- `tools/`
|
|
8
|
+
- `workflows/`
|
|
9
|
+
- `docs/`
|
|
10
|
+
- `memory/`
|
|
11
|
+
|
|
12
|
+
Guidelines:
|
|
13
|
+
- snapshots should be generated from approved team assets only
|
|
14
|
+
- snapshots should be mounted read-only into member runtimes if used
|
|
15
|
+
- never place raw secrets here
|
|
16
|
+
- prefer summary/approved memory, not raw private conversation logs
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Team asset registry
|
|
2
|
+
|
|
3
|
+
This directory is for assets shared across the whole team.
|
|
4
|
+
|
|
5
|
+
Subdirectories:
|
|
6
|
+
- `shared-memory/` — approved team memory and shared facts
|
|
7
|
+
- `shared-skills/` — team-approved reusable skills
|
|
8
|
+
- `shared-tools/` — tool definitions and shared non-secret bindings metadata
|
|
9
|
+
- `shared-workflows/` — SOPs and workflows
|
|
10
|
+
- `shared-docs/` — common documents and references
|
|
11
|
+
- `policies/` — access, approval, and sync policies
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Asset visibility policy
|
|
2
|
+
|
|
3
|
+
## Default rules
|
|
4
|
+
|
|
5
|
+
1. Team assets are readable only when explicitly marked shared.
|
|
6
|
+
2. Member-private assets are readable only by that member runtime and the control plane.
|
|
7
|
+
3. Task/session assets are temporary and should not be promoted automatically.
|
|
8
|
+
4. Secrets are private by default, even if the related tool definition is shared.
|
|
9
|
+
|
|
10
|
+
## Allowed visibility levels
|
|
11
|
+
|
|
12
|
+
- `system`
|
|
13
|
+
- `team`
|
|
14
|
+
- `member`
|
|
15
|
+
- `task`
|
|
16
|
+
|
|
17
|
+
## Promotion rule
|
|
18
|
+
|
|
19
|
+
Information should move upward only after review:
|
|
20
|
+
- task -> member
|
|
21
|
+
- task -> team
|
|
22
|
+
- member -> team
|
|
23
|
+
|
|
24
|
+
Never auto-promote raw private chat content into team assets.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# High-risk action approval
|
|
2
|
+
|
|
3
|
+
## High-risk actions include
|
|
4
|
+
|
|
5
|
+
- sending external email
|
|
6
|
+
- posting to public channels
|
|
7
|
+
- using financial accounts or trading actions
|
|
8
|
+
- modifying production systems
|
|
9
|
+
- accessing another member's private assets
|
|
10
|
+
- changing runtime security or container settings
|
|
11
|
+
|
|
12
|
+
## Recommended rule
|
|
13
|
+
|
|
14
|
+
Member runtimes should not perform high-risk external actions directly.
|
|
15
|
+
Instead:
|
|
16
|
+
1. prepare draft/action request
|
|
17
|
+
2. send to control plane for approval
|
|
18
|
+
3. execute only after approval
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Promotion rules
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
|
|
5
|
+
Define how private or temporary assets become team-shared assets.
|
|
6
|
+
|
|
7
|
+
## Recommended flow
|
|
8
|
+
|
|
9
|
+
1. Create privately first.
|
|
10
|
+
2. Stabilize through actual use.
|
|
11
|
+
3. Review for privacy and sensitivity.
|
|
12
|
+
4. Publish a cleaned version into the team asset registry.
|
|
13
|
+
|
|
14
|
+
## Applies to
|
|
15
|
+
|
|
16
|
+
- skills
|
|
17
|
+
- workflows
|
|
18
|
+
- documents
|
|
19
|
+
- memory summaries
|
|
20
|
+
|
|
21
|
+
## Avoid
|
|
22
|
+
|
|
23
|
+
- publishing raw conversations
|
|
24
|
+
- publishing secrets or private credentials
|
|
25
|
+
- publishing personal preferences unless intentionally generalized
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Tool binding rules
|
|
2
|
+
|
|
3
|
+
## Core split
|
|
4
|
+
|
|
5
|
+
Separate:
|
|
6
|
+
1. tool capability definitions
|
|
7
|
+
2. credential / binding instances
|
|
8
|
+
|
|
9
|
+
## Examples
|
|
10
|
+
|
|
11
|
+
Capability definitions:
|
|
12
|
+
- gmail.send
|
|
13
|
+
- github.issue.create
|
|
14
|
+
- market.search
|
|
15
|
+
|
|
16
|
+
Binding instances:
|
|
17
|
+
- gmail:zane
|
|
18
|
+
- github:alice
|
|
19
|
+
- smtp:team-support
|
|
20
|
+
|
|
21
|
+
## Rules
|
|
22
|
+
|
|
23
|
+
- capabilities may be team-shared
|
|
24
|
+
- bindings are private by default
|
|
25
|
+
- team-shared bindings must be created intentionally as team assets
|
|
26
|
+
- member runtimes should not receive other members' bindings
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Shared team tools
|
|
2
|
+
|
|
3
|
+
This directory is for shared tool definitions, not personal credentials.
|
|
4
|
+
|
|
5
|
+
Recommended split:
|
|
6
|
+
- share tool capability definitions here
|
|
7
|
+
- keep personal bindings/credentials in member-private directories
|
|
8
|
+
- create separate team bindings for truly shared team accounts
|