@agent-native/core 0.35.3 → 0.36.0

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 (62) hide show
  1. package/dist/cli/index.js +1 -1
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/cli/skills.d.ts.map +1 -1
  4. package/dist/cli/skills.js +171 -11
  5. package/dist/cli/skills.js.map +1 -1
  6. package/dist/client/AssistantChat.d.ts.map +1 -1
  7. package/dist/client/AssistantChat.js +17 -21
  8. package/dist/client/AssistantChat.js.map +1 -1
  9. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  10. package/dist/client/MultiTabAssistantChat.js +18 -5
  11. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  12. package/dist/client/agent-chat-adapter.d.ts.map +1 -1
  13. package/dist/client/agent-chat-adapter.js +68 -24
  14. package/dist/client/agent-chat-adapter.js.map +1 -1
  15. package/dist/client/composer/ComposerPlusMenu.d.ts.map +1 -1
  16. package/dist/client/composer/ComposerPlusMenu.js +174 -8
  17. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  18. package/dist/client/composer/PromptComposer.d.ts +2 -0
  19. package/dist/client/composer/PromptComposer.d.ts.map +1 -1
  20. package/dist/client/composer/PromptComposer.js +2 -2
  21. package/dist/client/composer/PromptComposer.js.map +1 -1
  22. package/dist/client/composer/TiptapComposer.js +1 -1
  23. package/dist/client/composer/TiptapComposer.js.map +1 -1
  24. package/dist/client/context-xray/ContextMeter.d.ts +2 -1
  25. package/dist/client/context-xray/ContextMeter.d.ts.map +1 -1
  26. package/dist/client/context-xray/ContextMeter.js +19 -25
  27. package/dist/client/context-xray/ContextMeter.js.map +1 -1
  28. package/dist/client/context-xray/ContextXRayPanel.d.ts +1 -3
  29. package/dist/client/context-xray/ContextXRayPanel.d.ts.map +1 -1
  30. package/dist/client/context-xray/ContextXRayPanel.js +27 -24
  31. package/dist/client/context-xray/ContextXRayPanel.js.map +1 -1
  32. package/dist/client/conversation/AgentConversation.d.ts.map +1 -1
  33. package/dist/client/conversation/AgentConversation.js +2 -1
  34. package/dist/client/conversation/AgentConversation.js.map +1 -1
  35. package/dist/client/sse-event-processor.d.ts +1 -0
  36. package/dist/client/sse-event-processor.d.ts.map +1 -1
  37. package/dist/client/sse-event-processor.js +62 -15
  38. package/dist/client/sse-event-processor.js.map +1 -1
  39. package/dist/client/tool-display.d.ts +4 -0
  40. package/dist/client/tool-display.d.ts.map +1 -0
  41. package/dist/client/tool-display.js +28 -0
  42. package/dist/client/tool-display.js.map +1 -0
  43. package/dist/client/use-chat-threads.d.ts.map +1 -1
  44. package/dist/client/use-chat-threads.js +40 -31
  45. package/dist/client/use-chat-threads.js.map +1 -1
  46. package/dist/client/use-external-value.d.ts.map +1 -1
  47. package/dist/client/use-external-value.js +14 -7
  48. package/dist/client/use-external-value.js.map +1 -1
  49. package/dist/extensions/html-shell.d.ts +3 -2
  50. package/dist/extensions/html-shell.d.ts.map +1 -1
  51. package/dist/extensions/html-shell.js +12 -2
  52. package/dist/extensions/html-shell.js.map +1 -1
  53. package/dist/extensions/routes.js +2 -7
  54. package/dist/extensions/routes.js.map +1 -1
  55. package/dist/server/core-routes-plugin.js +2 -2
  56. package/dist/server/core-routes-plugin.js.map +1 -1
  57. package/dist/server/security-headers.d.ts +16 -19
  58. package/dist/server/security-headers.d.ts.map +1 -1
  59. package/dist/server/security-headers.js +24 -25
  60. package/dist/server/security-headers.js.map +1 -1
  61. package/docs/content/external-agents.md +1 -1
  62. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MultiTabAssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/MultiTabAssistantChat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAioB/B,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACzC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4ED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,kBAAkB,EAClB,OAAO,GAAG,UAAU,CACrB,GAAG;IACF,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5E,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7E,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAqB,EACrB,MAAqD,EACrD,UAAU,EACV,mBAA0B,EAC1B,YAAY,EACZ,KAAY,EACZ,GAAG,KAAK,EACT,EAAE,0BAA0B,2CAkoD5B"}
1
+ {"version":3,"file":"MultiTabAssistantChat.d.ts","sourceRoot":"","sources":["../../src/client/MultiTabAssistantChat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AAUf,OAAO,EAEL,KAAK,kBAAkB,EAExB,MAAM,oBAAoB,CAAC;AAc5B,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,uBAAuB,CAAC;AAioB/B,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;IACzC,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA8ED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,kBAAkB,EAClB,OAAO,GAAG,UAAU,CACrB,GAAG;IACF,sCAAsC;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC5E,2DAA2D;IAC3D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAC;IAC7E,sGAAsG;IACtG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAiB,EACjB,YAAY,EACZ,aAAa,EACb,aAAqB,EACrB,MAAqD,EACrD,UAAU,EACV,mBAA0B,EAC1B,YAAY,EACZ,KAAY,EACZ,GAAG,KAAK,EACT,EAAE,0BAA0B,2CAgpD5B"}
@@ -281,6 +281,7 @@ function chatTabStatusFromAgentTeamStatus(status) {
281
281
  return undefined;
282
282
  return isActiveAgentTeamStatus(status) ? "running" : "completed";
283
283
  }
284
+ const STALE_THREAD_THRESHOLD_MS = 12 * 60 * 60 * 1000;
284
285
  function runToAgentTeamTabInfo(run) {
285
286
  if (run.sourceRecord?.type && run.sourceRecord.type !== "agent-team-task") {
286
287
  return null;
@@ -698,11 +699,12 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
698
699
  const threadMap = new Map(threads.map((t) => [t.id, t]));
699
700
  // Hide tabs that have had no activity for more than 12 hours. Stale tabs
700
701
  // are removed from the sidebar on load but remain accessible via history.
701
- const STALE_THRESHOLD_MS = 12 * 60 * 60 * 1000;
702
702
  const now = Date.now();
703
703
  const isStale = (id) => {
704
704
  const thread = threadMap.get(id);
705
- return thread ? now - thread.updatedAt > STALE_THRESHOLD_MS : false;
705
+ return thread
706
+ ? now - thread.updatedAt > STALE_THREAD_THRESHOLD_MS
707
+ : false;
706
708
  };
707
709
  // If the active thread is a sub-agent, switch to its parent or the most recent main thread
708
710
  if (parentMap[activeThreadId]) {
@@ -736,11 +738,22 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
736
738
  // Ensure active thread is always in open tabs.
737
739
  // Use functional update to check inside the setter — avoids race with the
738
740
  // initialization effect that may have already added the ID in the same batch.
741
+ //
742
+ // Scoped navigation can reset openTabIds from a different localStorage key
743
+ // without changing activeThreadId. Re-check after tab-list resets so the
744
+ // sidebar cannot end up with a live active thread but no mounted chat.
739
745
  useEffect(() => {
740
- if (activeThreadId) {
741
- setOpenTabIds((prev) => prev.includes(activeThreadId) ? prev : [...prev, activeThreadId]);
746
+ if (!activeThreadId || openTabIds.includes(activeThreadId))
747
+ return;
748
+ if (parentMap[activeThreadId])
749
+ return;
750
+ const activeThread = threads.find((thread) => thread.id === activeThreadId);
751
+ if (activeThread &&
752
+ Date.now() - activeThread.updatedAt > STALE_THREAD_THRESHOLD_MS) {
753
+ return;
742
754
  }
743
- }, [activeThreadId]);
755
+ setOpenTabIds((prev) => prev.includes(activeThreadId) ? prev : [...prev, activeThreadId]);
756
+ }, [activeThreadId, openTabIds, parentMap, threads]);
744
757
  // Ensure at least one tab is always open — auto-create if sidebar is empty.
745
758
  // Skipped when an active thread already exists (e.g. the hook generated an
746
759
  // optimistic id for a brand-new session); the activeThreadId effect above