sha256:0d5986c5c23cf95e5376fac5be243deeb5b7a9d422bf10a5af6607e1b21a7554
Last pushed
2 days by mrweiland
Type
Sandbox Kit
Manifest digest
sha256:0d5986c5c23cf95e5376fac5be243deeb5b7a9d422bf10a5af6607e1b21a7554
schemaVersion: "3"
displayName: MyOrg utvecklarsandlåda
author: MyOrg Platform Team
description: Shell-workload med Claude Code, GitHub CLI och MyOrg:s verktyg (Java/Maven), nätverksregler och kodkonventioner.
sourceUrl: https://github.com/myorg/team-sandbox
version: 1.0.1
licenses:
- Apache-2.0
- GPL-2.0-with-classpath-exception
- MIT
kind: workload
provides:
- [email protected]
- [email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/ca-certificates-java@20240118
- deb/ca-certificates@20250419
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/iputils-ping@20240905
- deb/[email protected]
- deb/[email protected]
- deb/less@668
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- deb/[email protected]
- [email protected]
- [email protected]
capabilities:
- group:
capabilities:
- source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[0]
type: com.docker.sandbox/network-policy@1
config:
runtime:
allow:
- api.anthropic.com:443
- platform.claude.com:443
- downloads.claude.ai:443
- claude.com:443
- mcp-proxy.anthropic.com:443
- bridge.claudeusercontent.com:443
declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[0]
- group:
description: Anthropic API access (API key or claude.ai OAuth)
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[1]
type: com.docker.sandbox/credential@1
config:
apiKey:
inject:
- domain: api.anthropic.com
format: '%s'
header: x-api-key
- domain: mcp-proxy.anthropic.com
format: '%s'
header: x-api-key
name: ANTHROPIC_API_KEY
oauth:
credentialFile:
path: ~/.claude/.credentials.json
structure:
claudeAiOauth:
accessToken: '{{.AccessToken}}'
expiresAt: '{{.ExpiresAt}}'
refreshToken: '{{.RefreshToken}}'
scopes: '{{.Scopes}}'
primaryApiKey: '{{.PrimaryApiKey}}'
sentinels:
accessToken: sk-ant-oat01-proxy-managed
refreshToken: sk-ant-ort01-proxy-managed
tokenEndpoint:
host: platform.claude.com
path: /v1/oauth/token
phase: runtime
service: anthropic
description: Anthropic API access (API key or claude.ai OAuth)
declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[1]
- declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[2]
type: com.docker.sandbox/volume@1
config:
path: /home/agent/.claude/projects
size: 2g
description: Conversation history; grows without bound, gets the headroom
- declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[3]
type: com.docker.sandbox/volume@1
config:
path: /home/agent/.claude/sessions
size: 512m
description: Per-session state; load-bearing for `claude -c`
- declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[4]
type: com.docker.sandbox/volume@1
config:
path: /home/agent/.claude/todos
size: 512m
description: TodoWrite state
- declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[5]
type: com.docker.sandbox/volume@1
config:
path: /home/agent/.claude/shell-snapshots
size: 512m
description: Bash state snapshots across sessions
- declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[6]
type: com.docker.sandbox/volume@1
config:
path: /home/agent/.claude/statsig
size: 512m
description: Local feature-flag cache
- group:
capabilities:
- source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[7]
type: com.docker.sandbox/lifecycle@1
config:
install:
- command: |
set -e
ws="${WORKSPACE_DIR:-/}"
esc=$(printf '%s' "$ws" | sed 's/\\/\\\\/g; s/"/\\"/g; s/\t/\\t/g; s/\r/\\r/g')
projects="\"/\": { \"hasTrustDialogAccepted\": true }"
[ "$ws" = "/" ] || projects="$projects, \"$esc\": { \"hasTrustDialogAccepted\": true }"
printf '%s\n' "{
\"bypassPermissionsModeAccepted\": true,
\"hasCompletedOnboarding\": true,
\"hasSeenAutoDefaultNudge\": true,
\"projects\": { $projects }
}" > /home/agent/.claude.json
chown agent:agent /home/agent/.claude.json
description: Seed Claude bypass and trust flags
env:
- WORKSPACE_DIR
user: "0"
- command: mkdir -p /home/agent/.claude && chown agent:agent /home/agent/.claude
description: Ensure ~/.claude is agent-owned before settings seed
user: "0"
- command: |
set -e
HELPER=''
if [ "${SBX_CRED_ANTHROPIC_MODE:-none}" != none ]; then
HELPER=' "apiKeyHelper": "echo proxy-managed",
'
fi
# Model selection from the create-phase args. The args'
# patterns admit no quote or backslash, so the expanded
# value is safe inside the JSON string. effortLevel accepts
# low/medium/high/xhigh; max and auto persist only through
# CLAUDE_CODE_EFFORT_LEVEL (settings.json rejects them).
model=''
effort=''
MODEL=''
EFFORT=''
ENV_BLOCK=''
[ -z "$model" ] || MODEL=" \"model\": \"$model\",
"
case "$effort" in
'') ;;
max|auto)
ENV_BLOCK=" \"env\": { \"CLAUDE_CODE_EFFORT_LEVEL\": \"$effort\" },
"
;;
*)
EFFORT=" \"effortLevel\": \"$effort\",
"
;;
esac
# Lifecycle hooks for Narwhal (see /usr/local/bin/sbx-claude-hook):
# Stop and StopFailure report a finished turn, Notification the
# moments Claude waits on the user, UserPromptSubmit the prompt
# that names the conversation (Claude Code lists sessions by id
# only). The script never fails, never writes stdout and runs
# async, so a session without the desktop app sees no delay and
# no hook error.
HOOK='{ "type": "command", "command": "/usr/local/bin/sbx-claude-hook claude", "timeout": 10, "async": true }'
HOOKS=" \"hooks\": {
\"Stop\": [ { \"hooks\": [ $HOOK ] } ],
\"StopFailure\": [ { \"hooks\": [ $HOOK ] } ],
\"UserPromptSubmit\": [ { \"hooks\": [ $HOOK ] } ],
\"Notification\": [ { \"matcher\": \"permission_prompt|idle_prompt|elicitation_dialog|elicitation_url_dialog|agent_needs_input\", \"hooks\": [ $HOOK ] } ]
},
"
# The statusLine command is the only place Claude Code exposes
# the live session (model, context window, cost, lines changed);
# sbx-agent-hook forwards it to Narwhal's status bar and prints
# nothing, so no status line is drawn in the terminal. A mixin that
# sets its own statusLine (e.g. claude-sbx-statusline) replaces
# this one and the app's session view goes quiet for that sandbox.
STATUSLINE=" \"statusLine\": { \"type\": \"command\", \"command\": \"/usr/local/bin/sbx-claude-hook claude-status\" },
"
printf '%s' "{
\"themeId\": 1,
\"alwaysThinkingEnabled\": true,
${HELPER}${MODEL}${EFFORT}${ENV_BLOCK}${HOOKS}${STATUSLINE} \"permissions\": { \"defaultMode\": \"bypassPermissions\" },
\"bypassPermissionsModeAccepted\": true,
\"skipDangerousModePermissionPrompt\": true
}
" > /home/agent/.claude/settings.json
description: Seed Claude settings.json from the surfaced auth mode
env:
- SBX_CRED_ANTHROPIC_MODE
user: agent
- command: |
set -e
[ -n "$MCP_GATEWAY_URL" ] || exit 0
claude mcp add mcp-gateway "$MCP_GATEWAY_URL" \
--transport http \
--scope user \
--header "Authorization: Bearer $MCP_SENTINEL_TOKEN_NAME" || true
description: Register the sandbox MCP gateway at install
env:
- MCP_GATEWAY_URL
- MCP_SENTINEL_TOKEN_NAME
user: agent
startup:
- command:
- sh
- -c
- chown -R agent:agent /home/agent/.claude/projects /home/agent/.claude/sessions /home/agent/.claude/todos /home/agent/.claude/shell-snapshots /home/agent/.claude/statsig 2>/dev/null || true
description: Re-own claude session-state volume mount roots to agent
user: "0"
- command: |
set -e
[ -n "$MCP_GATEWAY_URL" ] || exit 0
claude mcp add mcp-gateway "$MCP_GATEWAY_URL" \
--transport http \
--scope user \
--header "Authorization: Bearer $MCP_SENTINEL_TOKEN_NAME" || true
description: Register the sandbox MCP gateway (startup fallback)
env:
- MCP_GATEWAY_URL
- MCP_SENTINEL_TOKEN_NAME
user: agent
declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[7]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[8]
type: com.docker.sandbox/agent-skills@1
config:
path: /home/agent/.claude/skills
declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[8]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[9]
type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/myorg-dev/context.md.parts/0.md
directory: /home/agent/.claude
filename: CLAUDE.md
declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[9]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[10]
type: com.docker.sandbox/agent-context@2
config:
content: |
Claude Code is installed at `/usr/local/bin/claude`. Run `claude` for an
interactive session or `claude -p "<prompt>"` for a one-shot answer.
Authentication is proxy-mediated: `ANTHROPIC_API_KEY` in this container is
a sentinel — the sandbox proxy substitutes the real key bound on the host
(`sbx secret set anthropic`) on requests to Anthropic's APIs. Without a
bound key, `claude` will ask you to log in.
directory: /home/agent/.claude
filename: CLAUDE.md
declarationBlocks:
- "0:0"
source:
kit: docker.io/docker/sbx-kit-claude-mixin:2.1.314
path: capabilities[10]
- group:
capabilities:
- source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[0]
type: com.docker.sandbox/network-policy@2
config:
runtime:
allow:
- github.com
- hosts:
- api.github.com
methods:
- GET
- HEAD
- POST
- PATCH
- PUT
- DELETE
- hosts:
- uploads.github.com
methods:
- POST
- PUT
deny:
- hosts:
- api.github.com
methods:
- DELETE
paths:
- /repos/**
declarationBlocks:
- "1:0"
source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[0]
- group:
description: GitHub API access for gh
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[1]
type: com.docker.sandbox/credential@1
config:
apiKey:
inject:
- domain: api.github.com
format: Bearer %s
header: Authorization
- domain: uploads.github.com
format: Bearer %s
header: Authorization
- domain: github.com
format: Bearer %s
header: Authorization
name: GH_TOKEN
proxyManaged: true
phase:
- runtime
service: github
description: GitHub API access for gh
declarationBlocks:
- "1:0"
source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[1]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[2]
type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/myorg-dev/context.md.parts/1.md
declarationBlocks:
- "1:0"
source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[2]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[3]
type: com.docker.sandbox/agent-context@2
config:
content: |
# GitHub CLI
`gh` is on PATH at `/usr/local/bin/gh`.
- Authentication is proxy-managed: `GH_TOKEN` is set to a sentinel and the
real credential is injected on requests to github.com, api.github.com,
and uploads.github.com. Never print or copy the token; it is not the
real value anyway.
- Do not run `gh auth login` — authentication already works.
- Prefer `gh` over raw git for GitHub operations: `gh pr create`,
`gh issue list`, `gh run watch`, `gh api` for anything without a
dedicated subcommand.
declarationBlocks:
- "1:0"
source:
kit: docker.io/docker/sbx-kit-gh:2.103.2
path: capabilities[3]
- group:
capabilities:
- source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[0]
type: com.docker.sandbox/sbx@1
declarationBlocks:
- "2:0"
source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[0]
- group:
capabilities:
- source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[1]
type: com.docker.sandbox/network-policy@1
config:
runtime:
allow:
- deb.debian.org
- dhi.io
declarationBlocks:
- "2:0"
source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[1]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[2]
type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/myorg-dev/context.md.parts/2.md
filename: AGENTS.md
declarationBlocks:
- "2:0"
source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[2]
- group:
optional: true
capabilities:
- source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[3]
type: com.docker.sandbox/agent-context@2
config:
content: |
This is a plain shell sandbox on the shell-docker template: bash,
git, apt, Docker (compose/buildx), curl, gh, jq, make, gcc,
Python 3, and Node/npm. Install more with apt; composed kits list
their own capabilities below.
filename: AGENTS.md
declarationBlocks:
- "2:0"
source:
kit: docker.io/docker/sbx-kit-shell:1.0.0
path: capabilities[3]
- group:
capabilities:
- source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[0]
type: com.docker.sandbox/network-policy@2
config:
runtime:
allow:
- repo.maven.apache.org
- repo1.maven.org
- nexus.myorg.example
deny:
- hosts:
- nexus.myorg.example
methods:
- PUT
- POST
- DELETE
declarationBlocks:
- "3:0"
source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[0]
- group:
optional: true
capabilities:
- source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[1]
type: com.docker.sandbox/resources@1
config:
cpu: 4
memory: 8g
declarationBlocks:
- "3:0"
source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[1]
- group:
name: Maven cache
description: Behåll ~/.m2/repository mellan omstarter
optional: true
capabilities:
- source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[2].group.capabilities[0]
type: com.docker.sandbox/volume@1
config:
path: /home/agent/.m2/repository
size: 10g
- source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[2].group.capabilities[1]
type: com.docker.sandbox/lifecycle@1
config:
install:
- command: mkdir -p /home/agent/.m2/repository && chown agent:agent /home/agent/.m2 /home/agent/.m2/repository
description: Gör Maven-cachen ägd av agent
user: "0"
source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[2]
- group:
optional: true
capabilities:
- source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[3]
type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/myorg-dev/context.md.parts/3.md
declarationBlocks:
- "3:0"
source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[3]
- group:
optional: true
capabilities:
- source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[4]
type: com.docker.sandbox/agent-context@2
config:
content: |
## MyOrg dev tools
Den här sandlådan har MyOrg:s standardverktyg:
- `java` / `javac` — Temurin JDK (version i kit-arg `jdkVersion`)
- `mvn` — Apache Maven; lokal cache i `~/.m2/repository`
Konventioner:
- Bygg och testa med `mvn -B verify` innan du föreslår en ändring.
- Skapa pull requests i stället för att pusha till `main`.
- Nätverket är begränsat till godkända domäner. Om en nedladdning
nekas (HTTP 403 från proxyn) ska du inte försöka kringgå det —
be användaren lägga till domänen i kit eller org-policy.
declarationBlocks:
- "3:0"
source:
kit: docker.io/mrweiland/myorg-tools:1.0.1
path: capabilities[4]
- group:
optional: true
capabilities:
- source:
kit: the set descriptor
path: capabilities[0]
type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/myorg-dev/context.md.parts/4.md
declarationBlocks:
- "4:0"
source:
kit: the set descriptor
path: capabilities[0]
- group:
optional: true
capabilities:
- source:
kit: the set descriptor
path: capabilities[1]
type: com.docker.sandbox/agent-context@2
config:
content: |
# MyOrg utvecklarsandlåda
Du kör i MyOrg:s standardsandlåda. Ingående kits och deras källor
finns under `/usr/share/sandbox/kit/`.
- Arbeta i en feature-branch och öppna PR med `gh pr create`.
- Hemligheter finns aldrig i sandlådan; proxyn injicerar dem.
Kör inte `gh auth login` och skriv aldrig ut tokens.
declarationBlocks:
- "4:0"
source:
kit: the set descriptor
path: capabilities[1]
args:
registry:
default: docker.io/mrweiland
description: Registry-namespace där myorg-tools är publicerad
pattern: ^[a-z0-9][a-z0-9._/:-]*$
buildArg: KIT_REGISTRY
kits:
- ref: docker.io/docker/sbx-kit-shell:1.0.0
digest: sha256:a72c2ead8a2ab26ac552e4578ea0e23b5e777e81e8a90108e676be09cffa69a4
- ref: docker.io/docker/sbx-kit-claude-mixin:2.1.314
digest: sha256:23c168d27d2a4779163bd2d7427e2ab6ce45adab5f99b2dd6da9cb6f2991cbbe
- ref: docker.io/docker/sbx-kit-gh:2.103.2
digest: sha256:2af919e2a6782f3aa5aa15711d0dadc08088b529f07df5d7005e3271e97da1cb
- ref: docker.io/mrweiland/myorg-tools:1.0.1
digest: sha256:93d813e4c41d5dab24e85a2d8b8b942fbb5740fd0f8fa3bc587d0105a20cee85