sha256:24130250f0aaa7b297c3caf2de89daf6aa1a528698b72d6ce28db8edb7749197
Last pushed
9 days by cdupuis
Type
Sandbox Kit
Manifest digest
sha256:24130250f0aaa7b297c3caf2de89daf6aa1a528698b72d6ce28db8edb7749197
schemaVersion: "3"
displayName: AI-DLC Quick Start
description: Starter Kit for AWS AI-DLC — installs a pinned Bun, clones the latest aidlc-workflows main commit for a fresh project or the commit that project already recorded, and copies its Claude harness into the workspace, merging its settings.json keys and .gitignore rules into the files a project already has.
version: 1.0.0
kind: mixin
requires:
- claude-bedrock
capabilities:
- type: com.docker.sandbox/network-policy@1
config:
install:
allow:
- github.com
runtime:
allow:
- github.com
- archive.ubuntu.com
- security.ubuntu.com
- ports.ubuntu.com
- download.docker.com
- type: com.docker.sandbox/lifecycle@1
config:
install:
- command: |
set -eu
AIDLC_REPO=/home/agent/aidlc-workflows
if [ -d "$AIDLC_REPO/.git" ] && git -C "$AIDLC_REPO" rev-parse --git-dir >/dev/null 2>&1; then
exit 0
fi
rm -rf "$AIDLC_REPO"
git clone --branch main https://github.com/awslabs/aidlc-workflows.git "$AIDLC_REPO"
description: Clone the latest aidlc-workflows main branch into ~/aidlc-workflows before Claude launches
env:
- HTTP_PROXY
- HTTPS_PROXY
user: "1000"
startup:
- command:
- sh
- -c
- |
set -eu
AIDLC_REPO=/home/agent/aidlc-workflows
PIN_FILE="$WORKSPACE_DIR/aidlc/.aidlc-workflows-version"
PINNED_SHA=
if [ -f "$PIN_FILE" ]; then
PINNED_SHA=$(cat "$PIN_FILE")
case "$PINNED_SHA" in
*[!0-9a-fA-F]*)
echo "Invalid AI-DLC pin in $PIN_FILE: expected a full 40-character commit SHA" >&2
exit 1
;;
esac
if [ "${#PINNED_SHA}" -ne 40 ]; then
echo "Invalid AI-DLC pin in $PIN_FILE: expected a full 40-character commit SHA" >&2
exit 1
fi
fi
if [ ! -d "$AIDLC_REPO/.git" ] || ! git -C "$AIDLC_REPO" rev-parse --git-dir >/dev/null 2>&1; then
echo "AI-DLC clone is missing or invalid at $AIDLC_REPO; the pre-launch install step did not complete" >&2
exit 1
fi
if [ -n "$PINNED_SHA" ]; then
if ! git -C "$AIDLC_REPO" cat-file -e "$PINNED_SHA^{commit}" 2>/dev/null; then
git -C "$AIDLC_REPO" fetch origin "$PINNED_SHA"
fi
git -C "$AIDLC_REPO" checkout --detach "$PINNED_SHA"
else
PINNED_SHA=$(git -C "$AIDLC_REPO" rev-parse HEAD)
mkdir -p "$WORKSPACE_DIR/aidlc"
PIN_TMP=$(mktemp "$WORKSPACE_DIR/aidlc/.aidlc-workflows-version.tmp.XXXXXX")
printf '%s\n' "$PINNED_SHA" > "$PIN_TMP"
mv "$PIN_TMP" "$PIN_FILE"
fi
SRC=$AIDLC_REPO/dist/claude
bun /home/agent/.local/lib/aidlc-merge-settings.ts \
"$SRC/.claude/settings.json" "$WORKSPACE_DIR/.claude/settings.json"
bun /home/agent/.local/lib/aidlc-merge-gitignore.ts \
"$SRC/.gitignore" "$WORKSPACE_DIR/.gitignore"
cp -R --update=none "$SRC/.claude/." "$WORKSPACE_DIR/.claude/"
cp -R --update=none "$SRC/aidlc/." "$WORKSPACE_DIR/aidlc/"
description: Check out aidlc/.aidlc-workflows-version if the project has recorded a pin, otherwise record the pre-launch main clone's SHA, then reconcile .claude/settings.json (merging the AI-DLC hooks, env, and models into any file the project already has) and .gitignore (merging the AI-DLC commit/ignore rules into any file the project already has), then copy the rest of the Claude harness into $WORKSPACE_DIR
env:
- WORKSPACE_DIR
- HTTP_PROXY
- HTTPS_PROXY
user: "1000"
- type: com.docker.sandbox/agent-context@1
config:
contentFile: /usr/share/sandbox/kit/aidlc-claude/aidlc-claude-context.md