Skip to content

Commit 46ff3fe

Browse files
Fix last-msg and pr-url commands to use correct activity field names (#16)
- Update `last-msg` text extraction to use `lastMsg.planGenerated.plan.steps` or `lastMsg.userFeedbackRequired.message` - Update `pr-url` to use `session.outputs[].pullRequest.url` fetched via `getSession(id)` Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
1 parent 70d8537 commit 46ff3fe

1 file changed

Lines changed: 15 additions & 20 deletions

File tree

packages/cli/src/index.ts

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -216,16 +216,13 @@ program
216216
if (!lastMsg) {
217217
console.log('No message found from Jules.');
218218
} else {
219-
// Extract text from the actual typed payload fields
220-
// A real Jules API response has payload inside `message` or similar
221-
// Typical Jules activity format: a.message?.text or a.text
222219
let text = JSON.stringify(lastMsg, null, 2);
223-
if (lastMsg.message?.text) {
224-
text = lastMsg.message.text;
225-
} else if (lastMsg.text) {
226-
text = lastMsg.text;
227-
} else if (lastMsg.message) {
228-
text = typeof lastMsg.message === 'string' ? lastMsg.message : JSON.stringify(lastMsg.message, null, 2);
220+
if (lastMsg.planGenerated?.plan?.steps) {
221+
text = lastMsg.planGenerated.plan.steps
222+
.map((s: any, i: number) => `Step ${i + 1}: ${s.title}`)
223+
.join('\n');
224+
} else if (lastMsg.userFeedbackRequired?.message) {
225+
text = lastMsg.userFeedbackRequired.message;
229226
}
230227

231228
console.log(text);
@@ -244,25 +241,23 @@ program
244241
.action(async (sessionId, options) => {
245242
try {
246243
const client = new JulesClient();
247-
const response = await client.getActivities(sessionId);
248-
const activities = response.activities || [];
244+
const session = await client.getSession(sessionId);
249245

250-
// Find an activity with a pull request URL
251-
// A typical session activity that contains PR data has `completedSession.pullRequestUrl`
252-
// or similar. Let's inspect `completedSession` or `sessionCompletion` payload.
253-
const prActivity = activities.find((a: any) => a.completedSession?.pullRequestUrl !== undefined);
246+
const outputs = session.outputs || [];
247+
const prOutput = outputs.find((o: any) => o.pullRequest?.url);
248+
const url = prOutput?.pullRequest?.url;
254249

255250
if (options.json) {
256-
console.log(JSON.stringify(prActivity ? { pullRequestUrl: prActivity.completedSession.pullRequestUrl } : {}, null, 2));
251+
console.log(JSON.stringify(url ? { pullRequestUrl: url } : {}, null, 2));
257252
} else {
258-
if (prActivity && prActivity.completedSession?.pullRequestUrl) {
259-
console.log(prActivity.completedSession.pullRequestUrl);
253+
if (url) {
254+
console.log(url);
260255
} else {
261-
console.log('No PR URL found in session activities.');
256+
console.log('No PR URL found in session outputs.');
262257
}
263258
}
264259
} catch (error: any) {
265-
console.error('Error fetching activities:', error.message);
260+
console.error('Error fetching session:', error.message);
266261
process.exit(1);
267262
}
268263
});

0 commit comments

Comments
 (0)