11#! /bin/bash
2+ # shellcheck disable=SC2016 # Single-quoted strings with $ and backticks are intentional template text
23#
34# Workbench LLM Context Generator
45#
@@ -2353,8 +2354,10 @@ generate_bucket_list() {
23532354 local cloud_platform=" ${2:- GCP} "
23542355
23552356 if [ " $cloud_platform " = " AWS" ]; then
2356- local buckets=$( echo " $resources " | jq ' [.[] | select(.resourceType == "AWS_S3_STORAGE_FOLDER")]' 2> /dev/null || echo " []" )
2357- local count=$( echo " $buckets " | jq ' length' 2> /dev/null || echo " 0" )
2357+ local buckets
2358+ buckets=$( echo " $resources " | jq ' [.[] | select(.resourceType == "AWS_S3_STORAGE_FOLDER")]' 2> /dev/null || echo " []" )
2359+ local count
2360+ count=$( echo " $buckets " | jq ' length' 2> /dev/null || echo " 0" )
23582361
23592362 if [ " $count " -eq 0 ] || [ " $count " = " 0" ]; then
23602363 echo " *No S3 buckets in this workspace.* Create one with:"
@@ -2369,8 +2372,10 @@ generate_bucket_list() {
23692372 echo " $buckets " | jq -r ' .[] | "| `s3://\(.bucketName // "unknown")/\(.prefix // "")` | `\(.id // "—")` | \(.description // "—" | if . == "" then "—" else . end) |"' 2> /dev/null || true
23702373 else
23712374 # GCP
2372- local buckets=$( echo " $resources " | jq ' [.[] | select(.resourceType == "GCS_BUCKET")]' 2> /dev/null || echo " []" )
2373- local count=$( echo " $buckets " | jq ' length' 2> /dev/null || echo " 0" )
2375+ local buckets
2376+ buckets=$( echo " $resources " | jq ' [.[] | select(.resourceType == "GCS_BUCKET")]' 2> /dev/null || echo " []" )
2377+ local count
2378+ count=$( echo " $buckets " | jq ' length' 2> /dev/null || echo " 0" )
23742379
23752380 if [ " $count " -eq 0 ] || [ " $count " = " 0" ]; then
23762381 echo " *No GCS buckets in this workspace.* Create one with:"
@@ -2392,20 +2397,20 @@ generate_claude_md() {
23922397
23932398 local workspace=" $1 "
23942399 local resources=" $2 "
2395- local workflows=" $3 "
2396- local apps=" $4 "
2397-
2400+ # $3 (workflows) and $4 (apps) reserved for future use
2401+
23982402 # Extract workspace values - field names match UFWorkspaceLight.java
2399- local ws_name=$( echo " $workspace " | jq -r ' .name // "Unnamed Workspace"' )
2400- local ws_id=$( echo " $workspace " | jq -r ' .id // "unknown"' )
2401- local ws_desc=$( echo " $workspace " | jq -r ' .description // "No description"' )
2402- local ws_cloud=$( echo " $workspace " | jq -r ' .cloudPlatform // "GCP"' )
2403- local ws_gcp_project=$( echo " $workspace " | jq -r ' .googleProjectId // ""' )
2404- local ws_aws_account=$( echo " $workspace " | jq -r ' .awsAccountId // ""' )
2405- local ws_role=$( echo " $workspace " | jq -r ' .highestRole // "READER"' )
2406- local ws_user=$( echo " $workspace " | jq -r ' .userEmail // "unknown"' )
2407- local ws_org=$( echo " $workspace " | jq -r ' .orgId // ""' )
2408- local ws_server=$( echo " $workspace " | jq -r ' .serverName // ""' )
2403+ local ws_name ws_id ws_desc ws_cloud ws_gcp_project ws_aws_account ws_role ws_user ws_org ws_server
2404+ ws_name=$( echo " $workspace " | jq -r ' .name // "Unnamed Workspace"' )
2405+ ws_id=$( echo " $workspace " | jq -r ' .id // "unknown"' )
2406+ ws_desc=$( echo " $workspace " | jq -r ' .description // "No description"' )
2407+ ws_cloud=$( echo " $workspace " | jq -r ' .cloudPlatform // "GCP"' )
2408+ ws_gcp_project=$( echo " $workspace " | jq -r ' .googleProjectId // ""' )
2409+ ws_aws_account=$( echo " $workspace " | jq -r ' .awsAccountId // ""' )
2410+ ws_role=$( echo " $workspace " | jq -r ' .highestRole // "READER"' )
2411+ ws_user=$( echo " $workspace " | jq -r ' .userEmail // "unknown"' )
2412+ ws_org=$( echo " $workspace " | jq -r ' .orgId // ""' )
2413+ ws_server=$( echo " $workspace " | jq -r ' .serverName // ""' )
24092414
24102415 # Determine project display
24112416 local project_display=" $ws_gcp_project "
@@ -2596,8 +2601,9 @@ wb resource add-ref gcs-bucket --name external-data --bucket-name existing-bucke
25962601 fi
25972602
25982603 # Generate dynamic sections
2599- local embedded_json=$( generate_embedded_json " $resources " )
2600- local bucket_list=$( generate_bucket_list " $resources " " $ws_cloud " )
2604+ local embedded_json bucket_list
2605+ embedded_json=$( generate_embedded_json " $resources " )
2606+ bucket_list=$( generate_bucket_list " $resources " " $ws_cloud " )
26012607
26022608 # Write the file
26032609 cat > " ${CLAUDE_FILE} " << EOF
0 commit comments