J94's picture
Initial Space upload
3436bdd verified
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
CANON_PATH="${1:-$ROOT/canon/system.yml}"
BUILD_DIR="$ROOT/build/system"
COMPILED_PATH="$BUILD_DIR/compiled_system.json"
USER_GOVERNANCE_PATH="$BUILD_DIR/user_governance.json"
CONTINUITY_PROVIDER_PATH="$BUILD_DIR/continuity_provider.json"
CONTINUITY_OPERATOR_PATH="$BUILD_DIR/continuity_operator.json"
PRODUCT_CANDIDATE_REGISTRY_PATH="$BUILD_DIR/product_candidate_registry.json"
TYPED_MEMORY_RUNTIME_PATH="$BUILD_DIR/typed_memory_runtime.json"
MEMORY_READINESS_PATH="$BUILD_DIR/memory_readiness.json"
API_PATH="$ROOT/api/conversational_api_v0.json"
RUNTIME_PATH="$ROOT/runtime/work_manifest_v0.json"
CONTROL_PATH="$ROOT/policy/control_language_v0.json"
INFERENCE_PATH="$ROOT/inference.yaml"
if ! command -v yq >/dev/null 2>&1; then
echo "compile_system.sh requires yq" >&2
exit 1
fi
if ! command -v jq >/dev/null 2>&1; then
echo "compile_system.sh requires jq" >&2
exit 1
fi
if [ ! -f "$CANON_PATH" ]; then
echo "canonical system file not found: $CANON_PATH" >&2
exit 1
fi
mkdir -p "$BUILD_DIR"
yq -o=json '.api' "$CANON_PATH" > "$API_PATH"
yq -o=json '.runtime' "$CANON_PATH" > "$RUNTIME_PATH"
yq -o=json '.control' "$CANON_PATH" > "$CONTROL_PATH"
yq '.inference' "$CANON_PATH" > "$INFERENCE_PATH"
yq -o=json '.continuity_provider' "$CANON_PATH" > "$CONTINUITY_PROVIDER_PATH"
yq -o=json '.continuity_operator' "$CANON_PATH" > "$CONTINUITY_OPERATOR_PATH"
python3 "$ROOT/scripts/compile_user_governance.py" >/dev/null
python3 "$ROOT/scripts/build_product_candidate_registry.py" >/dev/null
python3 "$ROOT/scripts/build_typed_memory_runtime.py" >/dev/null
python3 "$ROOT/scripts/build_memory_readiness.py" >/dev/null
jq -n \
--arg compiled_at "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \
--arg canon_path "$CANON_PATH" \
--arg user_governance_path "$USER_GOVERNANCE_PATH" \
--arg continuity_provider_path "$CONTINUITY_PROVIDER_PATH" \
--arg continuity_operator_path "$CONTINUITY_OPERATOR_PATH" \
--arg product_candidate_registry_path "$PRODUCT_CANDIDATE_REGISTRY_PATH" \
--arg typed_memory_runtime_path "$TYPED_MEMORY_RUNTIME_PATH" \
--arg memory_readiness_path "$MEMORY_READINESS_PATH" \
--arg api_path "$API_PATH" \
--arg runtime_path "$RUNTIME_PATH" \
--arg control_path "$CONTROL_PATH" \
--arg inference_path "$INFERENCE_PATH" \
--argjson canon "$(yq -o=json '.' "$CANON_PATH")" \
--argjson user_governance "$(cat "$USER_GOVERNANCE_PATH")" \
'{
compiled_at: $compiled_at,
canon_path: $canon_path,
outputs: {
api: $api_path,
runtime: $runtime_path,
control: $control_path,
inference: $inference_path,
continuity_provider: $continuity_provider_path,
continuity_operator: $continuity_operator_path,
product_candidate_registry: $product_candidate_registry_path,
typed_memory_runtime: $typed_memory_runtime_path,
memory_readiness: $memory_readiness_path,
user_governance: $user_governance_path
},
canon: $canon,
user_governance: $user_governance
}' > "$COMPILED_PATH"
printf '%s\n' "$COMPILED_PATH"
printf '%s\n' "$USER_GOVERNANCE_PATH"
printf '%s\n' "$CONTINUITY_PROVIDER_PATH"
printf '%s\n' "$CONTINUITY_OPERATOR_PATH"
printf '%s\n' "$PRODUCT_CANDIDATE_REGISTRY_PATH"
printf '%s\n' "$TYPED_MEMORY_RUNTIME_PATH"
printf '%s\n' "$MEMORY_READINESS_PATH"
printf '%s\n' "$API_PATH"
printf '%s\n' "$RUNTIME_PATH"
printf '%s\n' "$CONTROL_PATH"
printf '%s\n' "$INFERENCE_PATH"