omnius 1.0.868 → 1.0.870

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 (75) hide show
  1. package/README.md +48 -840
  2. package/dist/index.js +2 -2
  3. package/dist/library.js +2 -0
  4. package/dist/tui/native/worker.js +27 -2
  5. package/docs/DISCOVERY.json +3144 -788
  6. package/docs/DISCOVERY.md +65 -2
  7. package/docs/design/media-unification-TODO.md +45 -20
  8. package/docs/design/session-presentation-TODO.md +55 -0
  9. package/docs/design/single-final-response-TODO.md +93 -0
  10. package/docs/design/update-session-restoration-TODO.md +47 -10
  11. package/docs/reference/rest-api.md +17 -5
  12. package/docs/work-orders/evidence/final-reply-browser-20261016.json +1225 -0
  13. package/docs/work-orders/evidence/final-reply-dark-1440-accepted-final.png +0 -0
  14. package/docs/work-orders/evidence/final-reply-light-320-accepted-final.png +0 -0
  15. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-failed-partial.png +0 -0
  16. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-100x30.png +0 -0
  17. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-120x36.png +0 -0
  18. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-160x48.png +0 -0
  19. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-60x20.png +0 -0
  20. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-80x24.png +0 -0
  21. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-final-clean.png +0 -0
  22. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-live-clean.png +0 -0
  23. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-paused-partial.png +0 -0
  24. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-restored-clean.png +0 -0
  25. package/docs/work-orders/evidence/instrument-completion-live-20261016/completion-technical-expanded.png +0 -0
  26. package/docs/work-orders/evidence/instrument-completion-live-20261016/report.json +743 -0
  27. package/docs/work-orders/evidence/instrument-interface-live-20261016/interface-after-reconstruction.png +0 -0
  28. package/docs/work-orders/evidence/instrument-interface-live-20261016/interface-before-reconstruction.png +0 -0
  29. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-audio-playing.png +0 -0
  30. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-image-100x30.png +0 -0
  31. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-image-120x36.png +0 -0
  32. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-image-160x48.png +0 -0
  33. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-image-60x20.png +0 -0
  34. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-image-80x24.png +0 -0
  35. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-progress-collapsed.png +0 -0
  36. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-video-frame-a.png +0 -0
  37. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-video-frame-b.png +0 -0
  38. package/docs/work-orders/evidence/instrument-interface-live-20261016/media-voice-autocomplete-junction.png +0 -0
  39. package/docs/work-orders/evidence/instrument-interface-live-20261016/report.json +1054 -0
  40. package/docs/work-orders/evidence/instrument-working-live-20261016/action-working-progress.png +0 -0
  41. package/docs/work-orders/evidence/instrument-working-live-20261016/action-working-result-json.png +0 -0
  42. package/docs/work-orders/evidence/instrument-working-live-20261016/interface-after-reconstruction.png +0 -0
  43. package/docs/work-orders/evidence/instrument-working-live-20261016/interface-before-reconstruction.png +0 -0
  44. package/docs/work-orders/evidence/instrument-working-live-20261016/media-audio-playing.png +0 -0
  45. package/docs/work-orders/evidence/instrument-working-live-20261016/media-image-100x30.png +0 -0
  46. package/docs/work-orders/evidence/instrument-working-live-20261016/media-image-120x36.png +0 -0
  47. package/docs/work-orders/evidence/instrument-working-live-20261016/media-image-160x48.png +0 -0
  48. package/docs/work-orders/evidence/instrument-working-live-20261016/media-image-60x20.png +0 -0
  49. package/docs/work-orders/evidence/instrument-working-live-20261016/media-image-80x24.png +0 -0
  50. package/docs/work-orders/evidence/instrument-working-live-20261016/media-progress-collapsed.png +0 -0
  51. package/docs/work-orders/evidence/instrument-working-live-20261016/media-video-frame-a.png +0 -0
  52. package/docs/work-orders/evidence/instrument-working-live-20261016/media-video-frame-b.png +0 -0
  53. package/docs/work-orders/evidence/instrument-working-live-20261016/media-voice-autocomplete-junction.png +0 -0
  54. package/docs/work-orders/evidence/instrument-working-live-20261016/report.json +1180 -0
  55. package/docs/work-orders/evidence/native-completion-presentation-verification-20261016.json +65 -0
  56. package/docs/work-orders/evidence/native-interface-state-verification-20261016.json +33 -13
  57. package/docs/work-orders/evidence/native-working-state-verification-20261016.json +66 -0
  58. package/docs/work-orders/evidence/project-media-browser-20261016/dark-1440-image-output.png +0 -0
  59. package/docs/work-orders/evidence/project-media-browser-20261016/dark-360-image-output.png +0 -0
  60. package/docs/work-orders/evidence/project-media-browser-20261016/light-1440-image-output.png +0 -0
  61. package/docs/work-orders/evidence/project-media-browser-20261016/report.json +47455 -0
  62. package/docs/work-orders/evidence/session-native-restore-followup-20261016.json +30 -0
  63. package/docs/work-orders/evidence/session-transcript-browser-20261016.json +1196 -0
  64. package/docs/work-orders/evidence/session-transcript-dark-1440-session-code.png +0 -0
  65. package/docs/work-orders/evidence/session-transcript-dark-1440-session-image.png +0 -0
  66. package/docs/work-orders/evidence/session-transcript-dark-1440-session-working.png +0 -0
  67. package/docs/work-orders/evidence/session-transcript-light-320-session-code.png +0 -0
  68. package/docs/work-orders/evidence/session-transcript-light-320-session-image.png +0 -0
  69. package/docs/work-orders/evidence/session-transcript-light-320-session-working.png +0 -0
  70. package/docs/work-orders/evidence/tool-event-presentation-verification-20261016.json +87 -0
  71. package/docs/work-orders/evidence/tui-response-ownership-verification-20261016.json +79 -0
  72. package/docs/work-orders/evidence/update-operation-cancellation-20261016.json +106 -0
  73. package/docs/work-orders/session-transcript-browser-20261016.md +21 -0
  74. package/npm-shrinkwrap.json +2 -2
  75. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/dist/index.js
3
- size: 37552273 bytes
4
- sha256: 42418e6a79ee03f64d41e1c35332e9082958d309c9b967652dc243fce5b9f9eb
3
+ size: 37608117 bytes
4
+ sha256: 7199e816f692c421698bd83eeb2a71b8c835591202033d9fc84e3561a3c5ad07
package/dist/library.js CHANGED
@@ -404525,6 +404525,7 @@ All source chunks are processed and retained for automatic context recovery; do
404525
404525
  }
404526
404526
  this.emit({
404527
404527
  type: "status",
404528
+ actionId: request.callId,
404528
404529
  visibility: "user_progress",
404529
404530
  toolName: "artifact_read",
404530
404531
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -404675,6 +404676,7 @@ All source chunks are processed and retained for automatic context recovery; do
404675
404676
  const completed = value?.chunks.filter((chunk) => !!chunk.result) ?? [];
404676
404677
  this.emit({
404677
404678
  type: "status",
404679
+ actionId: input.callId,
404678
404680
  toolName: input.toolName,
404679
404681
  visibility: "user_progress",
404680
404682
  turn: input.turn,
@@ -39,6 +39,7 @@ function sanitizeNativeInterfaceState(value) {
39
39
  version: 1,
40
40
  ...typeof value.sessionId === "string" ? { sessionId: value.sessionId.slice(0, 1024) } : {},
41
41
  activeViewId: value.activeViewId.slice(0, 1024),
42
+ ...typeof value.focusId === "string" && value.focusId.length <= 4096 && !value.focusId.startsWith("modal-") ? { focusId: value.focusId } : {},
42
43
  presentation: value.presentation === "tree" ? "tree" : "stack",
43
44
  input: { text, cursor: Math.min(text.length, offset(value.input.cursor)) },
44
45
  views,
@@ -934,6 +935,10 @@ function nativeControlFocus(control, baseAttributes = 0) {
934
935
  control.on(RenderableEvents.BLURRED, update);
935
936
  update();
936
937
  }
938
+ function keepMarkdownFallback(node) {
939
+ if (node instanceof CodeRenderable) node.drawUnstyledText = true;
940
+ for (const child of node.getChildren()) keepMarkdownFallback(child);
941
+ }
937
942
  var NativeBlockView = class {
938
943
  constructor(context, spec, inline = false) {
939
944
  this.context = context;
@@ -1087,6 +1092,12 @@ var NativeBlockView = class {
1087
1092
  });
1088
1093
  }
1089
1094
  });
1095
+ const markdown = this.text;
1096
+ const lifecycle = markdown.onLifecyclePass;
1097
+ markdown.onLifecyclePass = () => {
1098
+ lifecycle?.();
1099
+ keepMarkdownFallback(markdown);
1100
+ };
1090
1101
  this.body.add(this.text);
1091
1102
  } else if (spec.kind === "code") {
1092
1103
  this.text = new CodeRenderable(renderer2, {
@@ -1188,6 +1199,7 @@ var NativeBlockView = class {
1188
1199
  this.text.content = sections ? "" : code?.content ?? plainText(spec.text);
1189
1200
  this.text.streaming = spec.streaming ?? false;
1190
1201
  if (this.text instanceof CodeRenderable) this.text.filetype = code?.language ?? "text";
1202
+ else keepMarkdownFallback(this.text);
1191
1203
  }
1192
1204
  if (this.media && spec.media) this.media.update(spec.media);
1193
1205
  if (this.image && spec.imagePath && this.image.source !== spec.imagePath) this.image.source = spec.imagePath;
@@ -5652,8 +5664,11 @@ var NativeFrontend = class {
5652
5664
  }
5653
5665
  renderActivity() {
5654
5666
  const activity = this.state?.activity;
5655
- const stage = activity?.stage === "idle" ? void 0 : activity?.stage;
5656
- const reading = activity?.label || stage || this.state?.instruments?.runtimeStatus || "";
5667
+ const stage = activity?.stage === "idle" ? void 0 : activity?.stage?.replace(/_/g, " ").toUpperCase();
5668
+ const label = activity?.label && activity.label.toUpperCase() !== stage ? activity.label : void 0;
5669
+ const elapsed = activity?.elapsedMs === void 0 ? void 0 : `${Math.max(0, Math.floor(activity.elapsedMs / 1e3))}s`;
5670
+ const progress = activity?.progress === void 0 ? void 0 : `${Math.round(activity.progress * 100)}% source accounted`;
5671
+ const reading = [stage, label, elapsed, progress].filter(Boolean).join(" · ") || this.state?.instruments?.runtimeStatus || "";
5657
5672
  this.activity.visible = Boolean(activity?.processing || reading);
5658
5673
  this.activity.content = `${activity?.processing ? "RUN · " : ""}${reading}`;
5659
5674
  this.status.visible = this.activity.visible || this.media.visible || this.copyFeedback.visible;
@@ -5815,6 +5830,15 @@ var NativeFrontend = class {
5815
5830
  this.instruments.restorePresentation(state.instruments);
5816
5831
  this.sessions.restoreOffset(state.tabs.sessions);
5817
5832
  this.tabs.restoreOffset(state.tabs.agents);
5833
+ const focus = state.focusId && !this.modals.active ? this.getRenderable(state.focusId) : void 0;
5834
+ if (focus?.focusable) {
5835
+ let ancestor = focus, visible = true;
5836
+ while (ancestor) {
5837
+ visible &&= ancestor.visible;
5838
+ ancestor = ancestor.parent;
5839
+ }
5840
+ if (visible) focus.focus();
5841
+ }
5818
5842
  }
5819
5843
  if (this.pendingScrollRestore) {
5820
5844
  const restore = this.pendingScrollRestore;
@@ -6281,6 +6305,7 @@ var NativeFrontend = class {
6281
6305
  sessionId: this.state?.sessions?.activeId,
6282
6306
  activeViewId: this.state?.activeViewId ?? "main",
6283
6307
  presentation: this.state?.presentation ?? "stack",
6308
+ focusId: this.renderer.currentFocusedRenderable?.id,
6284
6309
  input: { text: this.editor.plainText, cursor: this.inputCursor() },
6285
6310
  views: Object.fromEntries([...this.viewScroll].slice(-256).map(([id, view]) => [id, { ...view, disclosures: this.viewDisclosures.get(id) ?? {} }])),
6286
6311
  layout: { sidebarWidth: this.sidebarWidth, detailsOpen: this.detailsOpen, narrowDetailsOpen: this.narrowDetailsOpen, headerPanelCollapsed: this.headerPanelCollapsed },