File size: 3,473 Bytes
3436bdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/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"