orchestrix 16.1.4 → 16.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -45,11 +45,23 @@ if [ -z "$REPO_ID" ]; then
|
|
|
45
45
|
fi
|
|
46
46
|
|
|
47
47
|
# Generate dynamic session name and log file
|
|
48
|
-
#
|
|
49
|
-
#
|
|
48
|
+
# Priority:
|
|
49
|
+
# 1. $ORCHESTRIX_SESSION env var (explicit override by Yuri)
|
|
50
|
+
# 2. .youlidao/blueprint.json → op-{blueprintName} (Blueprint mode)
|
|
51
|
+
# 3. orchestrix-{REPO_ID} (standalone fallback)
|
|
50
52
|
if [ -n "$ORCHESTRIX_SESSION" ]; then
|
|
51
53
|
SESSION_NAME="$ORCHESTRIX_SESSION"
|
|
52
54
|
echo "🏷️ Using pre-set session name: $SESSION_NAME"
|
|
55
|
+
elif [ -f "$WORK_DIR/.youlidao/blueprint.json" ]; then
|
|
56
|
+
# Blueprint mode: auto-derive op-{name} from blueprint metadata
|
|
57
|
+
BP_NAME=$(cat "$WORK_DIR/.youlidao/blueprint.json" 2>/dev/null | grep -o '"blueprintName"[[:space:]]*:[[:space:]]*"[^"]*"' | sed 's/.*: *"//;s/"$//')
|
|
58
|
+
if [ -n "$BP_NAME" ]; then
|
|
59
|
+
SESSION_NAME="op-${BP_NAME}"
|
|
60
|
+
echo "🏷️ Blueprint detected: $BP_NAME → session: $SESSION_NAME"
|
|
61
|
+
else
|
|
62
|
+
SESSION_NAME="orchestrix-${REPO_ID}"
|
|
63
|
+
echo "🏷️ Blueprint file found but no name, fallback: $SESSION_NAME"
|
|
64
|
+
fi
|
|
53
65
|
else
|
|
54
66
|
SESSION_NAME="orchestrix-${REPO_ID}"
|
|
55
67
|
echo "🏷️ Repository ID: $REPO_ID"
|
|
@@ -107,7 +119,7 @@ if [ -f "$SETTINGS_LOCAL" ]; then
|
|
|
107
119
|
if command -v jq &>/dev/null; then
|
|
108
120
|
EXISTING=$(cat "$SETTINGS_LOCAL")
|
|
109
121
|
echo "$EXISTING" | jq --arg cmd "$HANDOFF_HOOK_CMD" \
|
|
110
|
-
'.hooks.Stop = (.hooks.Stop // []) + [{"hooks": [{"type": "command", "command": $cmd}]}]' \
|
|
122
|
+
'.hooks.Stop = (.hooks.Stop // []) + [{"matcher": "", "hooks": [{"type": "command", "command": $cmd}]}]' \
|
|
111
123
|
> "$SETTINGS_LOCAL.tmp" && mv "$SETTINGS_LOCAL.tmp" "$SETTINGS_LOCAL"
|
|
112
124
|
echo "✅ Handoff hook injected into existing settings.local.json"
|
|
113
125
|
else
|
|
@@ -116,15 +128,18 @@ if [ -f "$SETTINGS_LOCAL" ]; then
|
|
|
116
128
|
fi
|
|
117
129
|
else
|
|
118
130
|
# Create new settings.local.json with handoff hook
|
|
119
|
-
|
|
131
|
+
# IMPORTANT: Use quoted heredoc <<'EOF' to prevent $() execution and keep \" intact.
|
|
132
|
+
# The command string needs JSON-escaped quotes (\") around $(git rev-parse).
|
|
133
|
+
cat > "$SETTINGS_LOCAL" << 'SETTINGS_EOF'
|
|
120
134
|
{
|
|
121
135
|
"hooks": {
|
|
122
136
|
"Stop": [
|
|
123
137
|
{
|
|
138
|
+
"matcher": "",
|
|
124
139
|
"hooks": [
|
|
125
140
|
{
|
|
126
141
|
"type": "command",
|
|
127
|
-
"command": "$
|
|
142
|
+
"command": "bash -c 'cd \"$(git rev-parse --show-toplevel)\" && .orchestrix-core/scripts/handoff-detector.sh'"
|
|
128
143
|
}
|
|
129
144
|
]
|
|
130
145
|
}
|
package/lib/embedded/yuri.md
CHANGED
|
@@ -140,6 +140,8 @@ op-{project-name} ← separate tmux session
|
|
|
140
140
|
|
|
141
141
|
**Key principle**: Yuri **never leaves its own window**. All agent operations happen in the `op-{name}` session via tmux commands.
|
|
142
142
|
|
|
143
|
+
**🚫 HARD CONSTRAINT**: NEVER run `/o {agent}`, `/clear`, or any agent activation command in YOUR OWN window. These commands replace your Yuri persona with another agent — you lose your identity and cannot coordinate anymore. Agent commands go ONLY to the `op-{name}` session via `tmux send-keys`.
|
|
144
|
+
|
|
143
145
|
### Phase A: Remote Planning Pipeline
|
|
144
146
|
|
|
145
147
|
#### Step 1: Create op-session
|