@agent-native/core 0.36.0 → 0.37.1

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 (50) hide show
  1. package/dist/agent/production-agent.d.ts.map +1 -1
  2. package/dist/agent/production-agent.js +72 -10
  3. package/dist/agent/production-agent.js.map +1 -1
  4. package/dist/cli/skills.d.ts.map +1 -1
  5. package/dist/cli/skills.js +78 -0
  6. package/dist/cli/skills.js.map +1 -1
  7. package/dist/client/AssistantChat.d.ts.map +1 -1
  8. package/dist/client/AssistantChat.js +8 -4
  9. package/dist/client/AssistantChat.js.map +1 -1
  10. package/dist/client/MultiTabAssistantChat.d.ts.map +1 -1
  11. package/dist/client/MultiTabAssistantChat.js +14 -10
  12. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  13. package/dist/client/composer/TiptapComposer.js +1 -1
  14. package/dist/client/composer/TiptapComposer.js.map +1 -1
  15. package/dist/client/composer/extensions/SkillReference.js +1 -1
  16. package/dist/client/composer/extensions/SkillReference.js.map +1 -1
  17. package/dist/client/dynamic-suggestions.d.ts +13 -7
  18. package/dist/client/dynamic-suggestions.d.ts.map +1 -1
  19. package/dist/client/dynamic-suggestions.js +23 -12
  20. package/dist/client/dynamic-suggestions.js.map +1 -1
  21. package/dist/client/index.d.ts +1 -0
  22. package/dist/client/index.d.ts.map +1 -1
  23. package/dist/client/index.js +1 -0
  24. package/dist/client/index.js.map +1 -1
  25. package/dist/client/resources/ResourcesPanel.js +2 -2
  26. package/dist/client/resources/ResourcesPanel.js.map +1 -1
  27. package/dist/client/route-state.d.ts +116 -0
  28. package/dist/client/route-state.d.ts.map +1 -0
  29. package/dist/client/route-state.js +205 -0
  30. package/dist/client/route-state.js.map +1 -0
  31. package/dist/resources/store.js +4 -4
  32. package/dist/resources/store.js.map +1 -1
  33. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  34. package/dist/server/agent-chat-plugin.js +92 -56
  35. package/dist/server/agent-chat-plugin.js.map +1 -1
  36. package/dist/server/agents-bundle.d.ts +6 -4
  37. package/dist/server/agents-bundle.d.ts.map +1 -1
  38. package/dist/server/agents-bundle.js +20 -12
  39. package/dist/server/agents-bundle.js.map +1 -1
  40. package/dist/templates/default/AGENTS.md +16 -8
  41. package/dist/templates/default/app/hooks/use-navigation-state.ts +10 -76
  42. package/dist/vite/agents-bundle-plugin.d.ts.map +1 -1
  43. package/dist/vite/agents-bundle-plugin.js +16 -6
  44. package/dist/vite/agents-bundle-plugin.js.map +1 -1
  45. package/docs/content/context-awareness.md +90 -48
  46. package/docs/content/creating-templates.md +22 -1
  47. package/docs/content/workspace.md +3 -3
  48. package/package.json +2 -1
  49. package/src/templates/default/AGENTS.md +16 -8
  50. package/src/templates/default/app/hooks/use-navigation-state.ts +10 -76
@@ -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;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"}
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,2CAqpD5B"}
@@ -1430,9 +1430,14 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
1430
1430
  switchThread(forkedId);
1431
1431
  return true;
1432
1432
  }, [forkThread, switchThread]);
1433
- // Build tabs from open thread IDs
1433
+ // Build tabs from open thread IDs. During the first thread-list fetch,
1434
+ // `activeThreadId` is seeded synchronously so the chat can mount before
1435
+ // persisted open tabs have been reconciled.
1436
+ const visibleOpenTabIds = activeThreadId && !openTabIds.includes(activeThreadId)
1437
+ ? [...openTabIds, activeThreadId]
1438
+ : openTabIds;
1434
1439
  const threadMap = new Map(threads.map((t) => [t.id, t]));
1435
- const tabs = openTabIds
1440
+ const tabs = visibleOpenTabIds
1436
1441
  .filter((id) => threadMap.has(id) || id === activeThreadId)
1437
1442
  .map((id) => {
1438
1443
  const t = threadMap.get(id);
@@ -1451,7 +1456,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
1451
1456
  };
1452
1457
  });
1453
1458
  // Include sub-agent tabs that aren't in threadMap yet (just created, not refreshed)
1454
- for (const id of openTabIds) {
1459
+ for (const id of visibleOpenTabIds) {
1455
1460
  if (!tabs.some((t) => t.id === id)) {
1456
1461
  tabs.push({
1457
1462
  id,
@@ -1477,13 +1482,12 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
1477
1482
  clearActiveTab,
1478
1483
  showHistory,
1479
1484
  toggleHistory: () => setShowHistory((v) => !v),
1480
- tabCount: openTabIds.length,
1485
+ tabCount: visibleOpenTabIds.length,
1481
1486
  };
1482
- // Wait for the first thread-list pass before mounting restored tabs. Saved
1483
- // localStorage ids may be empty client-only tabs or old ids from another
1484
- // deployment; rendering AssistantChat before validation causes harmless but
1485
- // noisy /threads/:id 404s during app startup.
1486
- if (isLoading) {
1487
+ // Wait for the first thread-list pass only when there is no synchronously
1488
+ // seeded active thread. Suggestion loading and thread-list reconciliation
1489
+ // should not block the chat shell from mounting.
1490
+ if (isLoading && !activeThreadId) {
1487
1491
  return (_jsx(ChatSkeleton, { header: renderHeader?.(headerProps), headerOnly: contentHidden }));
1488
1492
  }
1489
1493
  return (_jsxs("div", { className: "flex flex-1 flex-col h-full min-h-0 overflow-x-hidden", children: [_jsx("style", { dangerouslySetInnerHTML: {
@@ -1541,7 +1545,7 @@ export function MultiTabAssistantChat({ showTabBar = true, renderHeader, renderO
1541
1545
  }, children: _jsx(IconX, { size: 12 }) })] }, tab.id)))] }) }))] }));
1542
1546
  })()
1543
1547
  : null, _jsxs("div", { className: "relative flex-1 flex flex-col min-h-0", children: [renderOverlay ? renderOverlay(headerProps) : null, !contentHidden &&
1544
- (activeThreadScope && activeThreadId ? (_jsx(ScopeBadge, { scope: activeThreadScope, currentScope: scope, onDetach: handleDetachActiveThread, otherScopedThreads: otherScopedThreads, activeThreadId: activeThreadId, openTabIds: new Set(openTabIds), onSelectThread: openFromHistory })) : detachConfirmType ? (_jsx(DetachConfirmationBanner, {})) : null), showHistory && (_jsx(HistoryPopover, { threads: threads, openTabIds: new Set(openTabIds), activeThreadId: activeThreadId, currentScope: scope, onSelect: openFromHistory, onClose: () => setShowHistory(false), onSearch: searchThreads })), helpVisible && _jsx(HelpPopover, { onClose: () => setHelpVisible(false) }), [...new Set(openTabIds)]
1548
+ (activeThreadScope && activeThreadId ? (_jsx(ScopeBadge, { scope: activeThreadScope, currentScope: scope, onDetach: handleDetachActiveThread, otherScopedThreads: otherScopedThreads, activeThreadId: activeThreadId, openTabIds: new Set(openTabIds), onSelectThread: openFromHistory })) : detachConfirmType ? (_jsx(DetachConfirmationBanner, {})) : null), showHistory && (_jsx(HistoryPopover, { threads: threads, openTabIds: new Set(openTabIds), activeThreadId: activeThreadId, currentScope: scope, onSelect: openFromHistory, onClose: () => setShowHistory(false), onSearch: searchThreads })), helpVisible && _jsx(HelpPopover, { onClose: () => setHelpVisible(false) }), [...new Set(visibleOpenTabIds)]
1545
1549
  .filter((tabId) => tabId === activeThreadId || mountedTabsRef.current.has(tabId))
1546
1550
  .map((tabId) => {
1547
1551
  const modelSelection = resolveThreadModelSelection(tabId);