Compare commits

..

2 Commits

Author SHA1 Message Date
d3d0c2d8e9 Sync chart from pieced-operator 0.1.46 2026-05-16 18:14:59 +00:00
d965413a9d Sync chart from pieced-operator 0.1.45 2026-05-11 20:13:23 +00:00
3 changed files with 98 additions and 41 deletions

View File

@@ -1,6 +1,6 @@
apiVersion: v2
name: pieced-operator
description: PieCed IT tenant lifecycle operator
version: 0.1.44
appVersion: "0.1.44"
version: 0.1.46
appVersion: "0.1.46"
type: application

View File

@@ -37,18 +37,22 @@ data:
check inbox, calendar, and other configured sources and message
you proactively when something needs attention. Without this, the
assistant only responds when you message it first.
# OpenClaw treats an absent agents.defaults.heartbeat block as
# "no heartbeat scheduler". When core-heartbeat is enabled, this
# patch installs the every-30-minute cadence. The actual checklist
# OpenClaw 2026.x ships heartbeat ON by default (30m, or 1h on
# Anthropic OAuth) when agents.defaults.heartbeat is absent —
# see issues openclaw/openclaw#64293, #19445, #8123. The builder
# accordingly writes `every: "0m"` (the known off-switch) into
# the baseline configRaw. core-heartbeat's config_patch below
# overlays the 30m cadence on top of that. The actual checklist
# the heartbeat reads lives in workspace HEARTBEAT.md (seeded
# separately via spec.workspaceFiles); without a HEARTBEAT.md the
# heartbeat fires harmlessly and replies HEARTBEAT_OK.
# separately via spec.workspaceFiles); without a HEARTBEAT.md
# the heartbeat fires harmlessly and replies HEARTBEAT_OK.
#
# Quiet hours: OpenClaw supports both a config-level active window
# under agents.defaults.heartbeat (skipped outside the window) and
# in-content rules inside HEARTBEAT.md. Neither is exposed in the
# portal yet — when added, they become extra fields on this
# package, not a separate core-quiet-hours package.
# Quiet hours: OpenClaw supports both a config-level activeHours
# window under agents.defaults.heartbeat (skipped outside the
# window) and in-content rules inside HEARTBEAT.md. Neither is
# exposed in the portal yet — when added, they become extra
# fields on this package, not a separate core-quiet-hours
# package.
config_patch:
agents:
defaults:
@@ -111,31 +115,86 @@ data:
name: Voice Interaction
category: core
description: >
Speech-to-text on incoming voice notes and text-to-speech on
replies. Routed through PieCed's LiteLLM gateway so audio cost
is tracked per-tenant alongside chat.
# PHASE A: catalog entry only. No config_patch yet — toggling
# this package stores customer intent but does not change the
# OCI config. PHASE B (next iteration) wires in chatterbox-tts
# and a whisper adapter (or speaches-server) behind LiteLLM and
# adds the config_patch below, roughly:
Speech-to-text on incoming voice notes, automatic text-to-speech
on replies, and interactive Talk mode. Audio is routed through
PieCed's LiteLLM gateway so STT/TTS spend is tracked per-tenant
alongside chat usage. Inbound TTS uses kani-tts; Talk mode uses
kokoro-fastapi; STT uses self-hosted Whisper (faster-whisper-
large-v3). All three are private to the cluster.
# PHASE B — wired in. Toggling this package now installs the full
# voice surface into the tenant's OpenClawInstance config:
#
# config_patch:
# tools:
# media:
# audio:
# enabled: true
# models:
# - provider: openai
# model: pieced-whisper
# apiBase: http://litellm.inference.svc:4000/v1
# messages:
# tts:
# auto: inbound
# provider: openai
# openai:
# model: pieced-tts
# voice: nova
# - messages.tts: auto TTS on inbound replies, routed to
# `pieced-tts-inbound` (kani-tts behind LiteLLM).
# - talk: interactive Talk mode, routed to `pieced-tts-talk`
# (kokoro-fastapi behind LiteLLM). `interruptOnSpeech: true`
# so the agent stops talking when the user starts talking.
# - tools.media.audio: STT for inbound voice notes, capped at
# 20 MiB per message, routed to `pieced-stt` (whisper-openai
# behind LiteLLM).
#
# Provider config notes
# ---------------------
# `models.providers.openai` is declared here with no chat models
# (`models: []`) — its only role is to give the STT block under
# `tools.media.audio` a place to resolve its apiKey/baseUrl from.
# The agent's primary chat model still lives under
# `models.providers.litellm` (set in builder.go base) and is
# unaffected by this patch — deep-merge adds `openai` as a
# sibling provider, not a replacement.
#
# `allowPrivateNetwork: true` on the openai provider is required
# because the LiteLLM endpoint is a `http://*.svc` private-
# network address. Without it OpenClaw refuses the outbound
# call as a private-network destination.
#
# `${LITELLM_API_KEY}` is supplied via the tenant's envFrom
# secretRef (see builder.go), populated by ESO from
# secret/data/tenants/<ns>/litellm.
#
# Network policy
# --------------
# Audio traffic shares the existing LiteLLM egress hole in the
# per-tenant CiliumNetworkPolicy (toEndpoints inference ns,
# port 4000). No additional CNP rule needed — voice routes
# through the same gateway as chat completions.
config_patch:
models:
providers:
openai:
apiKey: "${LITELLM_API_KEY}"
baseUrl: "http://litellm.inference.svc:4000/v1"
models: []
request:
allowPrivateNetwork: true
messages:
tts:
auto: "inbound"
provider: "openai"
providers:
openai:
apiKey: "${LITELLM_API_KEY}"
baseUrl: "http://litellm.inference.svc:4000/v1"
model: "pieced-tts-inbound"
voice: "alloy"
talk:
provider: "openai"
providers:
openai:
apiKey: "${LITELLM_API_KEY}"
baseUrl: "http://litellm.inference.svc:4000/v1"
model: "pieced-tts-talk"
voice: "af_bella"
interruptOnSpeech: true
tools:
media:
audio:
enabled: true
maxBytes: 20971520
models:
- provider: "openai"
model: "pieced-stt"
baseUrl: "http://litellm.inference.svc:4000/v1"
# =====================================================================
# CHANNELS — messaging integrations. Each ships a Channels map that
@@ -197,16 +256,14 @@ data:
# =====================================================================
# SKILLS — ClawHub skill installs. Operator passes each entry through
# to OpenClawInstance.spec.skills, where the OpenClaw operator's init
# container fetches it before the agent starts. Bare "<owner>/<slug>"
# resolves through ClawHub by default.
# to spec.skills on the OpenClawInstance.
# =====================================================================
git-cli:
name: Git CLI
category: skill
description: >
Standalone git command-line operations (clone, commit, branch,
Use git from the assistant's shell (clone, commit, push, pull,
diff, log, status). For private repositories, configure
credentials in your workspace.
skills:

View File

@@ -1,6 +1,6 @@
image:
repository: registry.c5ai.ch/pieced/pieced-operator
tag: "0.1.44"
tag: "0.1.46"
pullPolicy: IfNotPresent
imagePullSecrets: