@tryarcanist/cli 0.1.36 → 0.1.38

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 (2) hide show
  1. package/dist/index.js +34 -0
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -484,6 +484,8 @@ function getRawSessionEventKind(event) {
484
484
  return "session_error";
485
485
  case "bridge.event":
486
486
  return bridgeEventType ?? event.phase;
487
+ case "timeline":
488
+ return bridgeEventType ?? "agent_timeline";
487
489
  case "idle":
488
490
  return bridgeEventType ?? "session_idle";
489
491
  case "opencode.session.create":
@@ -562,6 +564,16 @@ function getRawSessionEventData(event) {
562
564
  });
563
565
  case "bridge.event":
564
566
  return normalizeBridgeCompatEventData(event, bridgeEventType, base);
567
+ case "timeline":
568
+ return withPromptId(event, {
569
+ ...base,
570
+ ...typeof payload.eventType === "string" ? { eventType: payload.eventType } : {},
571
+ ...typeof payload.source === "string" ? { source: payload.source } : {},
572
+ ...typeof payload.observer === "string" ? { observer: payload.observer } : {},
573
+ ...typeof payload.summary === "string" ? { summary: payload.summary } : {},
574
+ ...typeof payload.status === "string" ? { status: payload.status } : {},
575
+ ...isRecord(payload.metadata) ? { metadata: payload.metadata } : {}
576
+ });
565
577
  case "idle":
566
578
  return withPromptId(event, {
567
579
  ...base,
@@ -694,6 +706,20 @@ function flattenSessionEvents(raw) {
694
706
  });
695
707
  continue;
696
708
  }
709
+ if (type === "agent_timeline") {
710
+ merged.push({
711
+ type: "agent_timeline",
712
+ id: `atl-${merged.length}-${typeof data?.eventType === "string" ? data.eventType : "unknown"}`,
713
+ eventType: typeof data?.eventType === "string" ? data.eventType : "unknown",
714
+ source: typeof data?.source === "string" ? data.source : "observed",
715
+ observer: typeof data?.observer === "string" ? data.observer : "unknown",
716
+ summary: typeof data?.summary === "string" ? data.summary : "Observed agent timeline event.",
717
+ ...typeof data?.status === "string" ? { status: data.status } : {},
718
+ ...isRecord(data?.metadata) ? { metadata: data.metadata } : {},
719
+ ...resolvePromptId(data) ? { promptId: resolvePromptId(data) } : {}
720
+ });
721
+ continue;
722
+ }
697
723
  if (type === "session_error") {
698
724
  merged.push({
699
725
  type: "session_error",
@@ -1118,6 +1144,9 @@ ${event.answer ? `**Answer:** ${event.answer}
1118
1144
  `;
1119
1145
  case "branch_changed":
1120
1146
  return `*[switched to branch \`${event.branch}\`]*
1147
+ `;
1148
+ case "agent_timeline":
1149
+ return `*[${event.eventType}${event.status ? ` (${event.status})` : ""}: ${event.summary}]*
1121
1150
  `;
1122
1151
  case "session_error":
1123
1152
  return `**Error:** ${formatSessionErrorMessage(event.error, event.code)}
@@ -1317,6 +1346,11 @@ function renderWatchEvent(event, state) {
1317
1346
  }
1318
1347
  case "branch_changed":
1319
1348
  return { kind: "line", line: `[branch] ${String(data.branch ?? "")}` };
1349
+ case "agent_timeline": {
1350
+ const eventType = String(data.eventType ?? "timeline");
1351
+ const status = typeof data.status === "string" ? ` ${data.status}` : "";
1352
+ return { kind: "line", line: `[agent] ${eventType}${status}: ${String(data.summary ?? "")}` };
1353
+ }
1320
1354
  case "session_error":
1321
1355
  return {
1322
1356
  kind: "line",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryarcanist/cli",
3
- "version": "0.1.36",
3
+ "version": "0.1.38",
4
4
  "description": "CLI for Arcanist — create and manage coding agent sessions",
5
5
  "type": "module",
6
6
  "bin": {