bmalph 2.7.5 → 2.7.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.
Files changed (53) hide show
  1. package/README.md +20 -5
  2. package/dist/commands/doctor-runtime-checks.js +104 -86
  3. package/dist/commands/doctor-runtime-checks.js.map +1 -1
  4. package/dist/installer/bmad-assets.js +182 -0
  5. package/dist/installer/bmad-assets.js.map +1 -0
  6. package/dist/installer/commands.js +324 -0
  7. package/dist/installer/commands.js.map +1 -0
  8. package/dist/installer/install.js +42 -0
  9. package/dist/installer/install.js.map +1 -0
  10. package/dist/installer/metadata.js +56 -0
  11. package/dist/installer/metadata.js.map +1 -0
  12. package/dist/installer/project-files.js +169 -0
  13. package/dist/installer/project-files.js.map +1 -0
  14. package/dist/installer/ralph-assets.js +91 -0
  15. package/dist/installer/ralph-assets.js.map +1 -0
  16. package/dist/installer/template-files.js +168 -0
  17. package/dist/installer/template-files.js.map +1 -0
  18. package/dist/installer/types.js +2 -0
  19. package/dist/installer/types.js.map +1 -0
  20. package/dist/installer.js +5 -843
  21. package/dist/installer.js.map +1 -1
  22. package/dist/transition/artifact-loading.js +91 -0
  23. package/dist/transition/artifact-loading.js.map +1 -0
  24. package/dist/transition/context-output.js +85 -0
  25. package/dist/transition/context-output.js.map +1 -0
  26. package/dist/transition/fix-plan-sync.js +119 -0
  27. package/dist/transition/fix-plan-sync.js.map +1 -0
  28. package/dist/transition/orchestration.js +25 -362
  29. package/dist/transition/orchestration.js.map +1 -1
  30. package/dist/transition/specs-sync.js +78 -2
  31. package/dist/transition/specs-sync.js.map +1 -1
  32. package/dist/utils/ralph-runtime-state.js +222 -0
  33. package/dist/utils/ralph-runtime-state.js.map +1 -0
  34. package/dist/utils/state.js +17 -16
  35. package/dist/utils/state.js.map +1 -1
  36. package/dist/utils/validate.js +16 -0
  37. package/dist/utils/validate.js.map +1 -1
  38. package/dist/watch/renderer.js +48 -6
  39. package/dist/watch/renderer.js.map +1 -1
  40. package/dist/watch/state-reader.js +79 -44
  41. package/dist/watch/state-reader.js.map +1 -1
  42. package/package.json +1 -1
  43. package/ralph/RALPH-REFERENCE.md +33 -13
  44. package/ralph/drivers/claude-code.sh +25 -0
  45. package/ralph/drivers/codex.sh +11 -0
  46. package/ralph/drivers/copilot.sh +11 -0
  47. package/ralph/drivers/cursor.sh +11 -0
  48. package/ralph/lib/circuit_breaker.sh +3 -3
  49. package/ralph/lib/date_utils.sh +28 -9
  50. package/ralph/lib/response_analyzer.sh +127 -7
  51. package/ralph/ralph_loop.sh +464 -121
  52. package/ralph/templates/PROMPT.md +5 -0
  53. package/ralph/templates/ralphrc.template +14 -4
@@ -0,0 +1,222 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ import { RALPH_DIR, RALPH_STATUS_FILE } from "./constants.js";
4
+ import { isEnoent } from "./errors.js";
5
+ import { validateCircuitBreakerState, validateRalphLoopStatus, validateRalphSession, } from "./validate.js";
6
+ const RALPH_SESSION_FILE = ".ralph_session";
7
+ const CIRCUIT_BREAKER_STATE_FILE = ".circuit_breaker_state";
8
+ const CAMEL_CASE_CORE_KEYS = ["loopCount", "tasksCompleted", "tasksTotal"];
9
+ const SNAKE_CASE_CORE_KEYS = ["loop_count", "tasks_completed", "tasks_total"];
10
+ const RAW_RALPH_STATUS_MAP = {
11
+ running: "running",
12
+ halted: "blocked",
13
+ stopped: "blocked",
14
+ completed: "completed",
15
+ success: "completed",
16
+ graceful_exit: "completed",
17
+ paused: "blocked",
18
+ error: "blocked",
19
+ };
20
+ export async function readRalphRuntimeStatus(projectDir) {
21
+ const path = join(projectDir, RALPH_STATUS_FILE);
22
+ const raw = await readRuntimeJson(path);
23
+ if (raw.kind !== "ok") {
24
+ return raw;
25
+ }
26
+ try {
27
+ const data = asObject(raw.value);
28
+ const format = classifyStatusFormat(data);
29
+ const normalized = format === "camelCase" ? validateRalphLoopStatus(data) : validateRalphSnakeCaseStatus(data);
30
+ const [callsKey, maxCallsKey, lastActionKey] = format === "camelCase"
31
+ ? [
32
+ ["callsMadeThisHour", "calls_made_this_hour"],
33
+ ["maxCallsPerHour", "max_calls_per_hour"],
34
+ ["lastAction", "last_action"],
35
+ ]
36
+ : [
37
+ ["calls_made_this_hour", "callsMadeThisHour"],
38
+ ["max_calls_per_hour", "maxCallsPerHour"],
39
+ ["last_action", "lastAction"],
40
+ ];
41
+ return {
42
+ kind: "ok",
43
+ path,
44
+ value: {
45
+ ...normalized,
46
+ callsMadeThisHour: readOptionalNumber(data, ...callsKey),
47
+ maxCallsPerHour: readOptionalNumber(data, ...maxCallsKey),
48
+ lastAction: readOptionalString(data, ...lastActionKey),
49
+ },
50
+ };
51
+ }
52
+ catch (error) {
53
+ return invalidResult(path, error);
54
+ }
55
+ }
56
+ export async function readRalphRuntimeSession(projectDir) {
57
+ const path = join(projectDir, RALPH_DIR, RALPH_SESSION_FILE);
58
+ const raw = await readRuntimeJson(path);
59
+ if (raw.kind !== "ok") {
60
+ return raw;
61
+ }
62
+ try {
63
+ return {
64
+ kind: "ok",
65
+ path,
66
+ value: validateRalphSession(raw.value),
67
+ };
68
+ }
69
+ catch (error) {
70
+ return invalidResult(path, error);
71
+ }
72
+ }
73
+ export async function readRalphCircuitBreaker(projectDir) {
74
+ const path = join(projectDir, RALPH_DIR, CIRCUIT_BREAKER_STATE_FILE);
75
+ const raw = await readRuntimeJson(path);
76
+ if (raw.kind !== "ok") {
77
+ return raw;
78
+ }
79
+ try {
80
+ const state = validateCircuitBreakerState(raw.value);
81
+ const data = asObject(raw.value);
82
+ return {
83
+ kind: "ok",
84
+ path,
85
+ value: {
86
+ state: state.state,
87
+ consecutiveNoProgress: state.consecutive_no_progress,
88
+ totalOpens: readOptionalNumber(data, "total_opens", "totalOpens"),
89
+ reason: state.reason,
90
+ },
91
+ };
92
+ }
93
+ catch (error) {
94
+ return invalidResult(path, error);
95
+ }
96
+ }
97
+ async function readRuntimeJson(path) {
98
+ let content;
99
+ try {
100
+ content = await readFile(path, "utf-8");
101
+ }
102
+ catch (error) {
103
+ if (isEnoent(error)) {
104
+ return { kind: "missing", path };
105
+ }
106
+ return unreadableResult(path, error);
107
+ }
108
+ try {
109
+ return {
110
+ kind: "ok",
111
+ path,
112
+ value: JSON.parse(content),
113
+ };
114
+ }
115
+ catch (error) {
116
+ return invalidResult(path, new Error(`Invalid JSON in ${path}`, { cause: error }));
117
+ }
118
+ }
119
+ function hasKnownCamelCaseLoopKey(data) {
120
+ if (!isObject(data)) {
121
+ return false;
122
+ }
123
+ return CAMEL_CASE_CORE_KEYS.some((key) => key in data);
124
+ }
125
+ function hasKnownSnakeCaseCoreKey(data) {
126
+ if (!isObject(data)) {
127
+ return false;
128
+ }
129
+ return SNAKE_CASE_CORE_KEYS.some((key) => key in data);
130
+ }
131
+ function classifyStatusFormat(data) {
132
+ const hasCamelCore = hasKnownCamelCaseLoopKey(data);
133
+ const hasSnakeCore = hasKnownSnakeCaseCoreKey(data);
134
+ if (hasCamelCore && hasSnakeCore) {
135
+ throw new Error("Mixed camelCase and snake_case core status fields are not supported");
136
+ }
137
+ if (hasCamelCore) {
138
+ return "camelCase";
139
+ }
140
+ if ("loop_count" in data) {
141
+ return "snakeCase";
142
+ }
143
+ throw new Error("Expected a camelCase loop status or Ralph snake_case status with loop_count");
144
+ }
145
+ function validateRalphSnakeCaseStatus(data) {
146
+ if (typeof data.loop_count !== "number") {
147
+ throw new Error("ralphSnakeCaseStatus.loop_count must be a number");
148
+ }
149
+ if (typeof data.status !== "string") {
150
+ throw new Error("ralphSnakeCaseStatus.status must be a string");
151
+ }
152
+ const mappedStatus = RAW_RALPH_STATUS_MAP[data.status] ?? undefined;
153
+ if (mappedStatus === undefined) {
154
+ throw new Error(`ralphSnakeCaseStatus.status must be one of: ${Object.keys(RAW_RALPH_STATUS_MAP).join(", ")}`);
155
+ }
156
+ if ("tasks_completed" in data && typeof data.tasks_completed !== "number") {
157
+ throw new Error("ralphSnakeCaseStatus.tasks_completed must be a number");
158
+ }
159
+ if ("tasks_total" in data && typeof data.tasks_total !== "number") {
160
+ throw new Error("ralphSnakeCaseStatus.tasks_total must be a number");
161
+ }
162
+ return {
163
+ loopCount: data.loop_count,
164
+ status: mappedStatus,
165
+ tasksCompleted: typeof data.tasks_completed === "number" ? data.tasks_completed : 0,
166
+ tasksTotal: typeof data.tasks_total === "number" ? data.tasks_total : 0,
167
+ };
168
+ }
169
+ function readOptionalNumber(data, ...keys) {
170
+ for (const key of keys) {
171
+ if (!(key in data)) {
172
+ continue;
173
+ }
174
+ if (typeof data[key] === "number") {
175
+ return data[key];
176
+ }
177
+ throw new Error(`Expected ${keys.join(" or ")} to be a number`);
178
+ }
179
+ return 0;
180
+ }
181
+ function readOptionalString(data, ...keys) {
182
+ for (const key of keys) {
183
+ if (!(key in data)) {
184
+ continue;
185
+ }
186
+ if (typeof data[key] === "string") {
187
+ return data[key];
188
+ }
189
+ throw new Error(`Expected ${keys.join(" or ")} to be a string`);
190
+ }
191
+ return "";
192
+ }
193
+ function asObject(data) {
194
+ if (isObject(data)) {
195
+ return data;
196
+ }
197
+ throw new Error("Expected a JSON object");
198
+ }
199
+ function isObject(data) {
200
+ return data !== null && typeof data === "object" && !Array.isArray(data);
201
+ }
202
+ function invalidResult(path, error) {
203
+ return {
204
+ kind: "invalid",
205
+ path,
206
+ error: toError(error),
207
+ };
208
+ }
209
+ function unreadableResult(path, error) {
210
+ return {
211
+ kind: "unreadable",
212
+ path,
213
+ error: toError(error),
214
+ };
215
+ }
216
+ function toError(error) {
217
+ if (error instanceof Error) {
218
+ return error;
219
+ }
220
+ return new Error(String(error));
221
+ }
222
+ //# sourceMappingURL=ralph-runtime-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ralph-runtime-state.js","sourceRoot":"","sources":["../../src/utils/ralph-runtime-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,GAIrB,MAAM,eAAe,CAAC;AAqBvB,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAC5C,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAC5D,MAAM,oBAAoB,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,YAAY,CAAU,CAAC;AACpF,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,iBAAiB,EAAE,aAAa,CAAU,CAAC;AACvF,MAAM,oBAAoB,GAAG;IAC3B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,WAAW;IACpB,aAAa,EAAE,WAAW;IAC1B,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE,SAAS;CACR,CAAC;AAIX,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,UAAU,GACd,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;QAC9F,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,GAC1C,MAAM,KAAK,WAAW;YACpB,CAAC,CAAE;gBACC,CAAC,mBAAmB,EAAE,sBAAsB,CAAC;gBAC7C,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;gBACzC,CAAC,YAAY,EAAE,aAAa,CAAC;aACpB;YACb,CAAC,CAAE;gBACC,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;gBAC7C,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;gBACzC,CAAC,aAAa,EAAE,YAAY,CAAC;aACpB,CAAC;QAElB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,KAAK,EAAE;gBACL,GAAG,UAAU;gBACb,iBAAiB,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;gBACxD,eAAe,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC;gBACzD,UAAU,EAAE,kBAAkB,CAAC,IAAI,EAAE,GAAG,aAAa,CAAC;aACvD;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAkB;IAElB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACrE,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEjC,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,qBAAqB,EAAE,KAAK,CAAC,uBAAuB;gBACpD,UAAU,EAAE,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,YAAY,CAAC;gBACjE,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,IAAY;IACzC,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC;QACH,OAAO;YACL,IAAI,EAAE,IAAI;YACV,IAAI;YACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAY;SACtC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAa;IAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAa;IAC7C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,IAA6B;IACzD,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACzB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;AACjG,CAAC;AAED,SAAS,4BAA4B,CAAC,IAA6B;IACjE,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,YAAY,GAChB,oBAAoB,CAAC,IAAI,CAAC,MAA2C,CAAC,IAAI,SAAS,CAAC;IACtF,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,+CAA+C,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9F,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,aAAa,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,UAAU;QAC1B,MAAM,EAAE,YAAY;QACpB,cAAc,EAAE,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACnF,UAAU,EAAE,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA6B,EAAE,GAAG,IAAc;IAC1E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,IAA6B,EAAE,GAAG,IAAc;IAC1E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;YACnB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa;IAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CAAI,IAAY,EAAE,KAAc;IACpD,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAI,IAAY,EAAE,KAAc;IACvD,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { mkdir } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { readJsonFile } from "./json.js";
4
- import { validateState, validateRalphLoopStatus, normalizeRalphStatus } from "./validate.js";
5
- import { STATE_DIR, RALPH_STATUS_FILE } from "./constants.js";
4
+ import { validateState } from "./validate.js";
5
+ import { STATE_DIR } from "./constants.js";
6
6
  import { atomicWriteFile } from "./file-system.js";
7
7
  import { warn } from "./logger.js";
8
8
  import { formatError } from "./errors.js";
9
+ import { readRalphRuntimeStatus } from "./ralph-runtime-state.js";
9
10
  export async function readState(projectDir) {
10
11
  const data = await readJsonFile(join(projectDir, STATE_DIR, "current-phase.json"));
11
12
  if (data === null)
@@ -179,22 +180,22 @@ const DEFAULT_RALPH_STATUS = {
179
180
  tasksTotal: 0,
180
181
  };
181
182
  export async function readRalphStatus(projectDir) {
182
- const data = await readJsonFile(join(projectDir, RALPH_STATUS_FILE));
183
- if (data === null) {
183
+ const result = await readRalphRuntimeStatus(projectDir);
184
+ if (result.kind === "missing") {
184
185
  return DEFAULT_RALPH_STATUS;
185
186
  }
186
- try {
187
- return validateRalphLoopStatus(data);
188
- }
189
- catch {
190
- // camelCase validation failed — try bash snake_case format
191
- }
192
- try {
193
- return normalizeRalphStatus(data);
194
- }
195
- catch (err) {
196
- warn(`Ralph status file is corrupted, using defaults: ${formatError(err)}`);
197
- return DEFAULT_RALPH_STATUS;
187
+ if (result.kind === "ok") {
188
+ return {
189
+ loopCount: result.value.loopCount,
190
+ status: result.value.status,
191
+ tasksCompleted: result.value.tasksCompleted,
192
+ tasksTotal: result.value.tasksTotal,
193
+ };
198
194
  }
195
+ const label = result.kind === "unreadable"
196
+ ? "Ralph status file is unreadable"
197
+ : "Ralph status file is corrupted";
198
+ warn(`${label}, using defaults: ${formatError(result.error)}`);
199
+ return DEFAULT_RALPH_STATUS;
199
200
  }
200
201
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/utils/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAuBlE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAkB;IAChD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAU,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC5F,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,uDAAuD,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,UAAkB,EAAE,KAAkB;IACrE,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACjE,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,MAAM,MAAM,GAA2B;QACrC,CAAC,EAAE,UAAU;QACb,CAAC,EAAE,UAAU;QACb,CAAC,EAAE,aAAa;QAChB,CAAC,EAAE,gBAAgB;KACpB,CAAC;IACF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,IAAI,GAA8B;QACtC,CAAC,EAAE;YACD,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,SAAS;YAChB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,6DAA6D;oBAC1E,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,wDAAwD;oBACrE,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,qDAAqD;oBAClE,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,6CAA6C;oBAC1D,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,kDAAkD;oBAC/D,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,SAAS;oBAChB,WAAW,EAAE,sCAAsC;oBACnD,QAAQ,EAAE,KAAK;iBAChB;aACF;SACF;QACD,CAAC,EAAE;YACD,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,6CAA6C;oBAC1D,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,4CAA4C;oBACzD,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,aAAa;oBACpB,WAAW,EAAE,iDAAiD;oBAC9D,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,aAAa;oBACnB,KAAK,EAAE,aAAa;oBACpB,WAAW,EAAE,kCAAkC;oBAC/C,QAAQ,EAAE,KAAK;iBAChB;aACF;SACF;QACD,CAAC,EAAE;YACD,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,qBAAqB;oBAC3B,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,iDAAiD;oBAC9D,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,uBAAuB;oBAC7B,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,qCAAqC;oBAClD,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,0BAA0B;oBAChC,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,sCAAsC;oBACnD,QAAQ,EAAE,IAAI;iBACf;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,4BAA4B;oBAClC,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,0CAA0C;oBACvD,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,oBAAoB;oBAC1B,KAAK,EAAE,IAAI;oBACX,WAAW,EAAE,2DAA2D;oBACxE,QAAQ,EAAE,KAAK;iBAChB;gBACD;oBACE,IAAI,EAAE,IAAI;oBACV,IAAI,EAAE,0BAA0B;oBAChC,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,uDAAuD;oBACpE,QAAQ,EAAE,IAAI;iBACf;aACF;SACF;QACD,CAAC,EAAE;YACD,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,oBAAoB;YAC3B,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC5E,CAAC;AAED,MAAM,oBAAoB,GAAoB;IAC5C,SAAS,EAAE,CAAC;IACZ,MAAM,EAAE,aAAa;IACrB,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;YACjC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;YAC3B,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc;YAC3C,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU;SACpC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GACT,MAAM,CAAC,IAAI,KAAK,YAAY;QAC1B,CAAC,CAAC,iCAAiC;QACnC,CAAC,CAAC,gCAAgC,CAAC;IACvC,IAAI,CAAC,GAAG,KAAK,qBAAqB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/D,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
@@ -115,11 +115,25 @@ export function validateRalphSession(data) {
115
115
  if (typeof data.session_id !== "string") {
116
116
  throw new Error("ralphSession.session_id must be a string");
117
117
  }
118
+ if (data.session_id === "") {
119
+ const reset_at = typeof data.reset_at === "string" ? data.reset_at : undefined;
120
+ const reset_reason = typeof data.reset_reason === "string" ? data.reset_reason : undefined;
121
+ return {
122
+ kind: "inactive",
123
+ session_id: "",
124
+ reset_at,
125
+ reset_reason,
126
+ };
127
+ }
118
128
  if (typeof data.created_at !== "string") {
119
129
  throw new Error("ralphSession.created_at must be a string");
120
130
  }
131
+ if (Number.isNaN(new Date(data.created_at).getTime())) {
132
+ throw new Error("ralphSession.created_at must be a valid timestamp");
133
+ }
121
134
  const last_used = typeof data.last_used === "string" ? data.last_used : undefined;
122
135
  return {
136
+ kind: "active",
123
137
  session_id: data.session_id,
124
138
  created_at: data.created_at,
125
139
  last_used,
@@ -172,6 +186,8 @@ const BASH_STATUS_MAP = {
172
186
  success: "completed",
173
187
  graceful_exit: "completed",
174
188
  };
189
+ // Loose normalization helper for non-runtime consumers and legacy tests.
190
+ // Runtime-file parsing uses the stricter contract in ralph-runtime-state.ts.
175
191
  export function normalizeRalphStatus(data) {
176
192
  assertObject(data, "normalizeRalphStatus");
177
193
  const loopCount = typeof data.loop_count === "number" ? data.loop_count : 0;
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/utils/validate.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,9 @@ export function progressBar(completed, total, width) {
39
39
  export function formatSessionAge(createdAt) {
40
40
  const now = Date.now();
41
41
  const start = new Date(createdAt).getTime();
42
+ if (Number.isNaN(start)) {
43
+ return "0m 0s";
44
+ }
42
45
  const diffSeconds = Math.max(0, Math.floor((now - start) / 1000));
43
46
  const hours = Math.floor(diffSeconds / 3600);
44
47
  const minutes = Math.floor((diffSeconds % 3600) / 60);
@@ -48,6 +51,14 @@ export function formatSessionAge(createdAt) {
48
51
  }
49
52
  return `${String(minutes)}m ${String(seconds)}s`;
50
53
  }
54
+ export function formatElapsed(seconds) {
55
+ if (seconds < 60) {
56
+ return `${String(seconds)}s`;
57
+ }
58
+ const minutes = Math.floor(seconds / 60);
59
+ const remaining = seconds % 60;
60
+ return `${String(minutes)}m ${String(remaining)}s`;
61
+ }
51
62
  export function formatCBState(state) {
52
63
  switch (state) {
53
64
  case "CLOSED":
@@ -102,13 +113,29 @@ export function renderLoopPanel(loop, execution, session, cols) {
102
113
  const statusStr = `Status: ${formatStatus(loop.status)}`;
103
114
  const apiStr = `API: ${String(loop.callsMadeThisHour)}/${String(loop.maxCallsPerHour)} (${String(apiPercent)}%)`;
104
115
  const line1 = `${padRight(loopStr, 17)}${padRight(statusStr, 21)}${apiStr}`;
105
- const actionLabel = execution !== null ? execution.status : loop.lastAction;
106
- const actionStr = `Action: ${actionLabel}`;
107
116
  const sessionStr = session !== null ? `Session: ${formatSessionAge(session.createdAt)}` : "";
108
117
  const innerWidth = cols - 4;
109
- const sessionPad = Math.max(0, innerWidth - actionStr.length - sessionStr.length);
110
- const line2 = `${actionStr}${" ".repeat(sessionPad)}${sessionStr}`;
111
- return box("Loop Status", [line1, line2], cols);
118
+ let line2;
119
+ if (execution !== null) {
120
+ const elapsedStr = formatElapsed(execution.elapsedSeconds);
121
+ const executingStr = `${execution.indicator} executing (${elapsedStr})`;
122
+ const sessionPad = Math.max(0, innerWidth - executingStr.length - sessionStr.length);
123
+ line2 = `${executingStr}${" ".repeat(sessionPad)}${sessionStr}`;
124
+ }
125
+ else {
126
+ const actionStr = `Action: ${loop.lastAction}`;
127
+ const sessionPad = Math.max(0, innerWidth - actionStr.length - sessionStr.length);
128
+ line2 = `${actionStr}${" ".repeat(sessionPad)}${sessionStr}`;
129
+ }
130
+ const lines = [line1, line2];
131
+ if (execution !== null && execution.lastOutput.length > 0) {
132
+ const maxOutputLen = Math.max(0, innerWidth - 2);
133
+ const truncated = execution.lastOutput.length > maxOutputLen
134
+ ? execution.lastOutput.slice(0, maxOutputLen)
135
+ : execution.lastOutput;
136
+ lines.push(chalk.dim(` ${truncated}`));
137
+ }
138
+ return box("Loop Status", lines, cols);
112
139
  }
113
140
  export function renderCircuitBreakerPanel(cb, cols) {
114
141
  const halfCols = Math.floor(cols / 2) - 1;
@@ -188,6 +215,17 @@ export function renderLogsPanel(logs, cols) {
188
215
  });
189
216
  return box("Recent Activity", lines, cols);
190
217
  }
218
+ export function renderLiveLogPanel(liveLog, cols) {
219
+ if (liveLog.length === 0) {
220
+ return box("Live Output", [chalk.dim("No live output yet")], cols);
221
+ }
222
+ const innerWidth = cols - 4;
223
+ const lines = liveLog.map((line) => {
224
+ const trimmed = line.length > innerWidth ? line.slice(0, innerWidth) : line;
225
+ return chalk.dim(trimmed);
226
+ });
227
+ return box("Live Output", lines, cols);
228
+ }
191
229
  export function renderFooter(lastUpdated, cols) {
192
230
  const left = chalk.dim("q quit");
193
231
  const right = `Updated: ${formatTime(lastUpdated)}`;
@@ -201,7 +239,8 @@ function hasAnyData(state) {
201
239
  state.analysis !== null ||
202
240
  state.execution !== null ||
203
241
  state.session !== null ||
204
- state.recentLogs.length > 0);
242
+ state.recentLogs.length > 0 ||
243
+ state.liveLog.length > 0);
205
244
  }
206
245
  export function renderDashboard(state, cols) {
207
246
  const width = cols ?? process.stdout.columns ?? 80;
@@ -221,6 +260,9 @@ export function renderDashboard(state, cols) {
221
260
  const rightPanel = renderStoriesPanel(state.stories, width);
222
261
  sections.push(renderSideBySide(leftPanel, rightPanel, width));
223
262
  sections.push(renderAnalysisPanel(state.analysis, width));
263
+ if (state.execution !== null) {
264
+ sections.push(renderLiveLogPanel(state.liveLog, width));
265
+ }
224
266
  sections.push(renderLogsPanel(state.recentLogs, width));
225
267
  sections.push(renderFooter(state.lastUpdated, width));
226
268
  return sections.join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/watch/renderer.ts"],"names":[],"mappings":"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"}