Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
212 commits
Select commit Hold shift + click to select a range
62bc576
feat(controller): add KarsTask CRD — task-as-trust-envelope (Bridge V…
Jun 26, 2026
c4f73b8
feat(controller): capability-attenuating delegation for KarsTask (Bri…
Jun 26, 2026
1a0c961
feat(controller): execution bridge — KarsTask materializes a governed…
Jun 26, 2026
1af50db
fix(rbac): grant controller RBAC for KarsTask CRD
Jun 26, 2026
17d7cdd
feat(controller): Governance Receipt V0 — signed DSSE/Ed25519 attesta…
Jun 26, 2026
1fd4257
feat(controller): HITL approval primitive + receipt binding (Inc 4)
Jun 26, 2026
c827317
feat(controller,router): completeness floor + receipt inclusion log +…
Jun 26, 2026
c974d6d
feat(controller,cli): signed checkpoint (signed tree head) for the re…
Jun 26, 2026
b4a6a5b
fix(controller): task-materialized InferencePolicy must set a model (…
Jun 26, 2026
635cc2f
feat(controller): KarsTask blueprint composes existing CRDs into a re…
Jun 26, 2026
a9ab8c5
feat(controller): truthful delegation — attenuate effective authority…
Jun 26, 2026
ac15a41
fix(controller): KarsTask deletion strands in Terminating, leaking sa…
Jun 26, 2026
05f1477
feat(mesh): controller-driven governed task delivery to running agents
Jun 27, 2026
671d79a
feat(mesh): capture the full artifact set from a mesh-delivered task
Jun 27, 2026
7fd0af8
feat(telemetry): real execution trace, tool-call detail, clean audit …
Jun 27, 2026
9b0df0c
feat(receipt): bind the router token/cost audit chain into completeness
Jun 27, 2026
788cbf7
feat(team): KarsTeam standing-team primitive with charter cadence loop
Jun 28, 2026
e8516f6
feat(team): grant controller RBAC for karsteams resources
Jun 28, 2026
73ded52
feat(team): knowledge commons — provenance-tracked team shared memory
Jun 28, 2026
477a4d3
feat(receipt): bind the egress-guard iptables ruleset hash into compl…
Jun 28, 2026
fa3b01d
feat(team): operations health — autonomous-monitoring report
Jun 28, 2026
080bbc4
fix(team): make auto-launched standing runs reliable (no hard timeout)
Jun 28, 2026
022eb48
feat(admission): envelope-write VAP — governance fields controller-wr…
Jun 28, 2026
bafa643
feat(receipt): record the validated launch package at the receipt hea…
Jun 28, 2026
9508c96
feat(team): daily digest to the steering inbox (§20)
Jun 28, 2026
70f6b4c
feat(team): KarsSkill + KarsProfile CRDs, skill grants, profile insta…
Jun 28, 2026
a96ebbd
fix(team): promote uses merge-patch + charter CEL allows profile inhe…
Jun 28, 2026
6462030
feat(router): keyless repo access via router-held GitHub App (§14)
Jun 28, 2026
821af4a
fix(review): close panel critiques — memory poisoning, attenuation, s…
Jun 29, 2026
37922f4
fix(admission): lock ALL envelope authority axes (CPO finding)
Jun 29, 2026
2e7cddd
test(team): budget_exhausted helper + unit test (CPO GA must-have)
Jun 29, 2026
f65c967
feat(controller): transparency-log witness + kernel-datapath witness …
Jun 29, 2026
c3a07d6
feat(controller): skill cosign attestation verify + profile prompt-sc…
Jun 29, 2026
aa2ab91
fix(witness): harden per CPO critique — fork hard-clears witness, dis…
Jun 29, 2026
962b046
feat(helm): KARS_MODEL_CATALOG env + models.catalog value
Jun 29, 2026
dcbde03
feat(controller): reporting lines as verified channels — team digests…
Jun 29, 2026
9dd02dd
feat(controller): record effective model + harness on mission-output;…
Jul 2, 2026
bbc4883
feat(controller): agent-driven self-tier-raise via [[NEEDS_TIER]] sen…
Jul 2, 2026
0655154
fix(controller): enforce skill operator-approval gate; harden tier-ra…
Jul 2, 2026
a18177a
fix(controller): team memory persists via harvest, not a promised fou…
Jul 2, 2026
e1aff8e
fix(hermes): wait for router relay proxy + retry mesh keepalive (was …
Jul 2, 2026
5b6a6c8
fix(router): record reached domains in learn mode on the forward-prox…
Jul 2, 2026
f5e3a94
fix(router): accept admin token via X-Kars-Admin-Token for apiserver …
Jul 2, 2026
a3ab80e
fix(controller): allow sandbox egress to in-cluster MCP servers in Ne…
Jul 2, 2026
a98fa4f
fix(witness): make the datapath witness learning-mode aware
Jul 2, 2026
7f699b2
feat(router): record task_telemetry on the chat/completions + respons…
Jul 3, 2026
52aa4f5
feat(controller): propagate the loop to sub-agents in the team orches…
Jul 3, 2026
bd1cda7
feat(skill): skill packages can bundle scripts, delivered to the agent
Jul 3, 2026
14f3104
fix(skill): keep the version digest stable for scriptless skills
Jul 3, 2026
0ff0b67
fix(agt-mesh): release prekey lock on failed connect (Hermes run stall)
Jul 3, 2026
a60e4e7
fix(hermes): deliver controller/principal tasks E2E over the mesh
Jul 3, 2026
0405d3e
refactor(hermes): run the agent in-process like OpenClaw — drop the m…
Jul 3, 2026
ad903f7
fix(controller): reconcile sandbox when its InferencePolicy changes
Jul 3, 2026
b30620c
fix(hermes): drive kars mesh delegation + report real telemetry/trace
Jul 3, 2026
487e962
feat(openclaw): let kars_spawn request a cross-harness sub-agent runtime
Jul 3, 2026
bea6bb4
fix(mesh): make Hermes->OpenClaw cross-harness delegation work E2E
Jul 3, 2026
0202f2d
wip(kars-bridge): telemetry, cross-runtime mesh, team tasks, spawn + …
Jul 3, 2026
1c5c3d8
fix(crd): close CNCF conformance gaps on the kars-bridge CRDs (15/15)
Jul 3, 2026
fbb761a
Default Content Safety off; never point it at the Foundry endpoint
Jul 3, 2026
5f225b4
Don't claim the egress-guard ruleset is bound in receipts for un-laun…
Jul 4, 2026
e15659b
Router: gate GitHub-token minting behind admin token; controller robu…
Jul 4, 2026
5bf9205
Stamp a run-ack annotation so clients can tell "delivering" from "not…
Jul 4, 2026
00960eb
Requeue stuck team backlog tasks so a dead run can't block the queue …
Jul 4, 2026
e7f9284
Sweep mission ConfigMaps in the KarsTask finalizer so they don't orphan
Jul 4, 2026
e43b775
fix(controller): make KarsEval runs actually complete and get captured
Jul 5, 2026
afd6d17
fix(controller): cap KarsEval runner Job names to 63 bytes
Jul 6, 2026
e1d0e96
feat(controller): skills-as-package — mount uploaded skill bundles in…
Jul 6, 2026
d803b7d
feat(controller): enforce the skill trust gate at the control plane
Jul 6, 2026
03265bc
feat(controller): persist per-case eval results so a detailed report …
Jul 6, 2026
7aaff1b
feat(eval): classify unreachable-target cases as Errored, not a Block…
Jul 6, 2026
07b871e
feat(router): foolproof sub-agent model selection via provider-agnost…
Jul 6, 2026
442a4da
router: in-request model self-heal (Option A) + served fallback target
Jul 6, 2026
9545f69
in-flight capability requests: agent gaps -> Bridge inbox -> approve …
Jul 6, 2026
c0fb06e
sandbox: decode subdirectoried skill packages on mount ('__'→'/')
Jul 6, 2026
13c9ee9
keyless git write: agent opens PRs without ever holding a credential …
Jul 6, 2026
705d78b
keyless git write: router as agent-gateway (proxy-injection, zero tok…
Jul 7, 2026
ab92e2c
keyless git write: cluster-shared GitHub App key custody (multi-tenant)
Jul 7, 2026
5991bf0
keyless git write: materialize per-mission scope from the workspace c…
Jul 7, 2026
94f283a
keyless git write: clamp mission repos to the workspace connection (i…
Jul 7, 2026
450ec05
sub-agent git write: attenuated scope + role-based merge gating
Jul 7, 2026
228951c
sub-agent git write: document the review + merge handoff
Jul 7, 2026
5a35d88
kars git-write: mandatory review gate + transparent push, disable tok…
Jul 7, 2026
b2c39e7
controller: propagate git-write grant to team runs
Jul 7, 2026
865792e
controller: propagate workspace-level channels into every sandbox (ag…
Jul 7, 2026
ada6cb2
docs: keyless git-write agent gateway (router + controller changes)
Jul 7, 2026
4012104
controller: propagate team creator (created-by) onto runs for per-use…
Jul 7, 2026
80e606b
controller: skip roster role that collides with the team principal task
Jul 7, 2026
c6da8c1
controller: harness-neutral "did_work" so a productive Hermes team ru…
Jul 8, 2026
6d9a727
router: record task-telemetry on streaming model calls so Hermes runs…
Jul 8, 2026
84017d6
controller: mission/team-run retention TTL — auto-delete delivered re…
Jul 8, 2026
358dcb3
controller: fix kernel-datapath-witness binding to match the real agg…
Jul 8, 2026
dae9815
Multi-provider inference routing: real cross-provider routing + failover
pallakatos Jul 9, 2026
e64a8c5
fix(router): close multi-provider credential-leak + failover regressions
pallakatos Jul 9, 2026
7356f70
docs: local (in-cluster) inference providers via AI Runway + KAITO
pallakatos Jul 9, 2026
ac13b2a
controller: NetworkPolicy egress carve-out for in-cluster local infer…
pallakatos Jul 9, 2026
4426872
fix(router+controller): local-inference model actually reachable + se…
pallakatos Jul 10, 2026
7e6f5a4
fix(router): local inference hosts get no credential, not a WI/IMDS bail
pallakatos Jul 10, 2026
69e85ca
feat: managed MCP lifecycle and fail-closed governance
Jul 11, 2026
e103cb1
fix(helm): allow controller readiness probes to managed MCPs
Jul 11, 2026
5aac8eb
fix(controller): always pull latest router sidecars
Jul 12, 2026
eace95f
fix(aks): point legacy inference endpoint at real local model
Jul 12, 2026
003fb01
fix(mcp): isolate Playwright browser per MCP session
Jul 12, 2026
b774c56
fix(tasks): preserve strict-empty egress posture
Jul 12, 2026
35433c2
fix(witness): raise aggregator memory to stop OOM loop
Jul 12, 2026
3033a7a
fix(teams): isolate spawned roles and preserve run contracts
Jul 13, 2026
359cefa
fix(router): route Responses-only models across providers
Jul 13, 2026
cc0c7b5
fix(mesh): sanitize task sessions after registry restart
Jul 13, 2026
2b51bff
fix(mcp): recover stateful sessions after upstream restart
Jul 13, 2026
73985c9
feat(runtime-hermes): persist mesh task artifacts
Jul 13, 2026
1aa6229
feat(runtime-hermes): add governed MCP bridge
Jul 13, 2026
fa32123
fix(runtime-hermes): use writable artifact directory
Jul 13, 2026
0658d68
test(mesh): enforce Signal cryptographic negatives
Jul 13, 2026
bdfdb3b
docs: rebuild the Kars documentation experience
Jul 13, 2026
91b68d7
fix(helm): install seccomp profile on GPU nodes
Jul 13, 2026
5dda6e9
feat(git): add typed principal-scoped repository grants
Jul 13, 2026
92425ac
fix(spawn): preserve typed Git connection for children
Jul 14, 2026
dd33e00
chore(demo): enable strict GPT tool schemas
Jul 14, 2026
62e2917
feat(teams): persist collaboration evidence
Jul 16, 2026
96d9625
fix(teams): preserve honest synthesis outcomes
Jul 16, 2026
8660d79
feat(teams): bind inbox and egress evidence
Jul 16, 2026
d44e630
fix(teams): enforce workload ownership boundaries
Jul 16, 2026
81f40d4
feat(teams): let principals select relevant roles
Jul 16, 2026
e97be53
fix(mcp): allow bounded long-running tool calls
Jul 16, 2026
20c3412
fix(hermes): harvest the shared artifact workspace
Jul 16, 2026
2d4e228
feat(mcp): stream tool calls into activity telemetry
Jul 16, 2026
bdc53e1
fix(mesh): select current identity after pod recycling
Jul 17, 2026
a00b9ac
fix(mcp): distinguish tool errors from transport success
Jul 17, 2026
06d4f9d
fix(approvals): expire asks after task completion
Jul 17, 2026
18a82d6
fix(openclaw): surface collaboration evidence failures
Jul 17, 2026
d1da86c
fix(tasks): converge launch state promptly
Jul 17, 2026
288268a
fix(teams): keep control requests actionable
Jul 17, 2026
058bd06
fix(spawn): inherit approved parent egress
Jul 17, 2026
b7b1f77
feat(spawn): make child egress delegation explicit
Jul 17, 2026
cc9b9f0
fix(memory): exclude human control requests
Jul 17, 2026
7480ce8
fix(teams): preserve role runtime during spawn
Jul 17, 2026
33c69d5
fix(teams): expose approved egress to principal
Jul 17, 2026
4dbecc2
fix(teams): require inherited egress when assigned
Jul 17, 2026
84dbf03
docs(spawn): explain explicit egress delegation
Jul 17, 2026
aafb2ca
fix(memory): prune stale control requests
Jul 17, 2026
248594e
fix(teams): require structured role planning
Jul 17, 2026
75f0e6f
fix(teams): preserve spawn network contract
Jul 18, 2026
24781af
fix(mesh): correlate assignment handbacks
Jul 18, 2026
7c95157
fix(mesh): allow long-running handbacks
Jul 18, 2026
98df571
fix(memory): use Foundry-compatible team scope
Jul 18, 2026
e1f8efb
feat(hitl): resume runs after clarification
Jul 18, 2026
630721a
fix(hitl): recover plain clarification questions
Jul 18, 2026
e7a00cb
fix(controller): report sandbox rollout state honestly
Jul 19, 2026
e154f38
fix(hitl): recognize clarification questions with trailing prose
Jul 19, 2026
5f8c95c
fix(approvals): ignore pre-run egress noise
Jul 19, 2026
1a8344c
fix(foundry): use configured project API key
Jul 20, 2026
46ee2db
fix(memory): mount shared binding into runtime
Jul 20, 2026
3631d1b
fix(memory): use Foundry-valid team scope
Jul 20, 2026
3d4805f
fix(memory): provision stores from 404 envelopes
Jul 20, 2026
d21b9da
fix(approvals): filter team bootstrap egress
Jul 20, 2026
f6ef520
fix(sandbox): keep runtime npm resolution offline
Jul 20, 2026
9cca3c4
fix(approvals): suppress passive npm bootstrap probes
Jul 20, 2026
f70b970
fix(egress): resume plain approval requests in-run
Jul 20, 2026
315aafe
fix(egress): detect blocked-policy approval prose
Jul 20, 2026
c2f0c4c
fix(egress): detect semantic approval requests
Jul 20, 2026
0ce72f4
fix(mesh): preserve correlated progress frames
Jul 20, 2026
c6067f2
fix(mesh): use progress leases instead of task timers
Jul 20, 2026
3905db2
feat(mesh): propagate child progress upstream
Jul 20, 2026
26b1c79
feat(tasks): persist assignment lifecycle ledger
Jul 20, 2026
e07a9a0
fix(tasks): reconcile progress and late handbacks after restart
Jul 20, 2026
6a03e6b
fix(mesh): unify assignment correlation IDs
Jul 20, 2026
de72db4
Replace prose controls with typed lifecycle events
Jul 20, 2026
4b23523
Persist child assignment lifecycle events
Jul 20, 2026
bf24783
Fail unhealthy OpenClaw runtime processes
Jul 20, 2026
8d30bcc
Keep gated team run requests durable
Jul 20, 2026
40c0a79
Reroute assignments after worker restart
Jul 20, 2026
8da8382
Requeue backlog work after failed runs
Jul 20, 2026
1203102
Surface sub-agent access requests to the parent
Jul 20, 2026
3f1549d
test(mesh): decrypt corrected TypeScript frame in Python
Jul 20, 2026
ed5f6b0
Stop waiting on terminal child assignments
Jul 20, 2026
24ed51d
Requeue team work immediately after halt
Jul 20, 2026
94a7d29
Tear down delivered sandboxes before retention expiry
Jul 20, 2026
45b618b
Make task sandbox teardown status-independent
Jul 20, 2026
40f115a
Block PR merges without green delivery evidence
Jul 20, 2026
dddf330
Fix concurrent team egress grants
Jul 20, 2026
1b03988
Harden long-running cross-runtime assignments
Jul 21, 2026
3382388
Rebuild AGT artifacts on revision changes
Jul 21, 2026
6cd311a
Avoid duplicate mesh correlation fields
Jul 21, 2026
e8504c4
Make engineering teams continuously actionable
Jul 21, 2026
4f3e7b8
Harden standalone team orchestration
Jul 22, 2026
3539021
Stabilize repository team capabilities
Jul 22, 2026
fa35d71
Prevent nested standing-team delegation
Jul 22, 2026
4f5c8c9
Verify roster spawns by logical identity
Jul 22, 2026
b5a2997
Report active teams as working
Jul 22, 2026
6d7eb7b
Allow voluntary budget attenuation
Jul 23, 2026
805aca5
Expire approvals for failed runs
Jul 23, 2026
1ddbcc2
Keep team budgets authority-locked
Jul 23, 2026
be382a0
Reject failure-shaped team outputs
Jul 23, 2026
460cc3f
Stop Unicode transport question marks
Jul 23, 2026
737ddd6
Bound agent loop context growth
Jul 23, 2026
5545636
Add durable team workflow contracts
Jul 23, 2026
f5b4e2b
Restore governed team delegation
Jul 23, 2026
00911cd
Keep Hermes metadata inside sandbox
Jul 23, 2026
9601843
Make same-name respawns generation-safe
Jul 23, 2026
3b41bac
Tolerate slow governed model responses
Jul 23, 2026
962f48f
Disable irrelevant Hermes metadata egress
Jul 23, 2026
f175667
Make Hermes opt-out buildable in ACR
Jul 23, 2026
41af8c6
Keep Hermes handbacks on task channel
Jul 23, 2026
04cc269
Make role assignments idempotent
Jul 23, 2026
88fba9d
Forward file-backed checkpoints in heartbeats
Jul 23, 2026
2e0dc6c
Accept truthful role recovery generations
Jul 23, 2026
422a8e0
Hold team queue at review boundaries
Jul 23, 2026
1107cc9
Guarantee terminal checkpoint persistence
Jul 23, 2026
3f5892c
Promote milestones to memory after approval
Jul 23, 2026
9d1cc8a
Make task contracts Unicode-safe
Jul 23, 2026
248cfd7
Reconcile deferred milestone decisions
Jul 23, 2026
1097357
Initialize milestone checkpoints in controller
Jul 23, 2026
e69d57d
Document durable team workflows
Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 20 additions & 28 deletions .github/workflows/release-public-interim.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ permissions:
env:
VERSION: ${{ github.event.inputs.version != '' && github.event.inputs.version || (startsWith(github.ref, 'refs/tags/') && github.ref_name || format('interim-{0}', github.sha)) }}
REGISTRY: ghcr.io/azure
AGT_REPO: https://github.com/pallakatos/agent-governance-toolkit.git
AGT_SHA: c1ef74efdadd46546bc772053487c379dd825ae5

jobs:
# ─── Stage 1: multi-arch Rust binaries ─────────────────────────
Expand Down Expand Up @@ -300,31 +302,25 @@ jobs:
runner: ubuntu-24.04-arm
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version: '22'

- name: Stage patched AGT SDK (release-build correctness guard)
run: |
# A release sandbox image MUST bundle the kars-patched AGT SDK
# (POP signing + X3DH KDF fix). The Dockerfile falls back to the
# UNPATCHED public npm SDK if .agt-sdk/<tarball> is absent.
#
# The Dockerfile's `COPY .agt-sdk/` resolves against the BUILD
# CONTEXT root (the repo root — `context: .` below), NOT the
# Dockerfile's directory. Stage into <repo-root>/.agt-sdk/ to match,
# exactly like the CLI from-source dev build does
# (cli/src/commands/dev.ts -> path.join(repoRoot, ".agt-sdk")).
TARBALL=$(find vendor/agt -maxdepth 1 -name 'microsoft-agent-governance-sdk-*.tgz' | head -1 || true)
if [ -z "$TARBALL" ]; then
echo "::error::No vendored patched AGT SDK tarball under vendor/agt/."
exit 1
fi
git clone --filter=blob:none "$AGT_REPO" /tmp/agt
git -C /tmp/agt checkout "$AGT_SHA"
cd /tmp/agt/agent-governance-typescript
npm ci
npm run build
npm pack --silent
TARBALL=$(find "$PWD" -maxdepth 1 -name 'microsoft-agent-governance-sdk-*.tgz' | head -1)
test -n "$TARBALL"
cd "$GITHUB_WORKSPACE"
mkdir -p .agt-sdk
cp "$TARBALL" .agt-sdk/
echo "AGT_SDK_TARBALL=$(basename "$TARBALL")" >> "$GITHUB_ENV"

- name: Build mesh-plugin (openclaw Dockerfile COPYs mesh-plugin/dist)
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version: '22'
- name: npm ci + build mesh-plugin
working-directory: mesh-plugin
run: |
Expand Down Expand Up @@ -446,7 +442,7 @@ jobs:
# governance packages) AND runtimes/agt-mesh-python/ (kars's own
# spec-compliant Python MeshClient — in-repo source, bundled hermetically
# from the checkout). Only the upstream wheels need building here; they
# come from the pinned AGT checkout (vendor/agt/pin.json).
# come from the exact AGT checkout pinned in the workflow environment.
build-agt-wheels:
name: Build AGT Python wheels (from pinned AGT)
runs-on: ubuntu-22.04
Expand All @@ -460,11 +456,9 @@ jobs:
python-version: '3.12'
- name: Clone pinned AGT + build wheels
run: |
URL=$(jq -r .url vendor/agt/pin.json)
SHA=$(jq -r .sha vendor/agt/pin.json)
echo "::notice::Cloning $URL @ $SHA for AGT-Python wheels"
git clone --filter=blob:none "$URL" /tmp/agt
git -C /tmp/agt checkout "$SHA"
echo "::notice::Cloning $AGT_REPO @ $AGT_SHA for AGT-Python wheels"
git clone --filter=blob:none "$AGT_REPO" /tmp/agt
git -C /tmp/agt checkout "$AGT_SHA"
AGT_PYTHON_DIR=/tmp/agt/agent-governance-python ./runtimes/build-agt-wheels.sh
echo "Built wheels:" && ls -la runtimes/wheels/
- name: Guard — wheels present
Expand Down Expand Up @@ -627,10 +621,8 @@ jobs:

- name: Clone pinned AGT
run: |
URL=$(jq -r .url vendor/agt/pin.json)
SHA=$(jq -r .sha vendor/agt/pin.json)
git clone --filter=blob:none "$URL" /tmp/agt
git -C /tmp/agt checkout "$SHA"
git clone --filter=blob:none "$AGT_REPO" /tmp/agt
git -C /tmp/agt checkout "$AGT_SHA"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db # v3
Expand Down
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -154,10 +154,15 @@ image-sandbox-base: ## Build sandbox base image (heavy deps — rebuild when upg
-t $(REGISTRY)/kars-sandbox-base:latest \
-f sandbox-images/openclaw/Dockerfile.base .

image-sandbox: image-router ## Build sandbox Docker image (slim overlay — fast per-commit rebuild)
stage-agt-sdk:
bash scripts/stage-agt-sdk.sh

image-sandbox: image-router stage-agt-sdk ## Build sandbox Docker image (slim overlay — fast per-commit rebuild)
docker build --platform linux/amd64 \
--build-arg SANDBOX_BASE_IMAGE=$(REGISTRY)/kars-sandbox-base:latest \
--build-arg INFERENCE_ROUTER_IMAGE=$(REGISTRY)/kars-inference-router:latest \
--build-arg MESH_PROVIDER=agt \
--build-arg AGT_SDK_TARBALL=$$(cat .agt-sdk/name) \
-t $(REGISTRY)/openclaw-sandbox:$(IMAGE_TAG) \
-t $(REGISTRY)/openclaw-sandbox:latest \
-f sandbox-images/openclaw/Dockerfile .
Expand Down
Loading
Loading