@agentproto/apps 0.20.0 → 0.20.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.
package/dist/index.mjs CHANGED
@@ -6616,7 +6616,7 @@ var SESSION_STORY_PANEL_HTML = `<!doctype html>
6616
6616
  <div class="h2" id="heroSub"></div>
6617
6617
  </div>
6618
6618
  <div class="modewrap"><button id="modeSimple" class="on" type="button">Simple</button><button id="modeTech" type="button">Tech</button></div>
6619
- <a class="sim" id="fullPanelLink" href="#" target="_blank" rel="noopener" title="Ouvrir le panneau complet (Terminal/Chat/JSON/TTY)">&#8599; panneau complet</a>
6619
+ <a class="sim hidden" id="fullPanelLink" href="#" target="_blank" rel="noopener" title="Ouvrir la session en direct (live-session du daemon)">&#8599; panneau complet</a>
6620
6620
  <button class="sim" id="switchBtn" type="button">&#8646; changer</button>
6621
6621
  </div>
6622
6622
  <div class="plan" id="plan"></div>
@@ -6976,7 +6976,13 @@ function openSession(id){
6976
6976
  lastSeenOutputAt=null;
6977
6977
  $('pickerScreen').classList.add('hidden');
6978
6978
  $('storyScreen').classList.remove('hidden');
6979
- $('fullPanelLink').href='https://cli.agentproto.sh/panel?session='+encodeURIComponent(id);
6979
+ // Deep-link to the daemon's own live-session panel (GET /apps/:appId/ui
6980
+ // pins it via ?sessionId=). Only resolvable when this panel is itself
6981
+ // served standalone by the daemon; inside an MCP host iframe the origin
6982
+ // isn't the daemon's, so the link stays hidden rather than dead.
6983
+ var daemonOrigin=(location.pathname.indexOf('/apps/')===0&&location.origin&&location.origin!=='null')?location.origin:'';
6984
+ $('fullPanelLink').href=daemonOrigin?daemonOrigin+'/apps/@agentproto/live-session/ui?sessionId='+encodeURIComponent(id):'#';
6985
+ $('fullPanelLink').classList.toggle('hidden',!daemonOrigin);
6980
6986
  closePanel();
6981
6987
  loadStory().then(renderAll);
6982
6988
  }
@@ -8233,6 +8239,7 @@ function escapeAttr(text) {
8233
8239
  function sessionChatEmbedHtml(initData) {
8234
8240
  const url = typeof initData.url === "string" && initData.url ? initData.url : null;
8235
8241
  const notInstalled = initData.installed === false;
8242
+ const storeUrl = typeof initData.storeUrl === "string" && initData.storeUrl ? initData.storeUrl : "/store?install=%40agentik%2Fsession-chat";
8236
8243
  const link = url != null ? `<a href="${escapeAttr(url)}" target="_blank" rel="noreferrer">open in a tab</a>` : notInstalled ? "app not installed" : "connecting\u2026";
8237
8244
  const iframe = url != null ? `<iframe id="chat" title="Session Chat"></iframe>` : "";
8238
8245
  return `<!DOCTYPE html>
@@ -8275,6 +8282,8 @@ html,body{height:100%;font-family:system-ui,-apple-system,sans-serif;background:
8275
8282
  it does not bundle the chat UI itself.</p>
8276
8283
  <p>To use it, install the app into this daemon:</p>
8277
8284
  <p><code>agentproto app install @agentik/session-chat</code></p>
8285
+ <p>or open <a href="${escapeAttr(storeUrl)}" target="_blank" rel="noreferrer">the App Store</a>
8286
+ (the daemon's <code>/store</code> panel, with the entry pre-selected).</p>
8278
8287
  </div></div>
8279
8288
  <script>
8280
8289
  window.__APP_INIT__ = ${JSON.stringify(initData)};
@@ -8619,6 +8628,8 @@ p{margin:8px 0;color:#8b949e;font-size:13px}
8619
8628
  it does not bundle the chat UI itself.</p>
8620
8629
  <p>To use it, install the app into this daemon:</p>
8621
8630
  <p><code>agentproto app install @agentik/session-chat</code></p>
8631
+ <p>or open <a href="/store?install=%40agentik%2Fsession-chat">the App Store</a>
8632
+ (the daemon's <code>/store</code> panel, with the entry pre-selected).</p>
8622
8633
  <p>Once installed, call <code>agentproto_session_chat</code> again (optionally with a
8623
8634
  <code>sessionId</code>) and the panel will embed the app's chat UI deep-linked to that
8624
8635
  session.</p>
@@ -8640,6 +8651,9 @@ function sessionChatAppUrl(httpBaseUrl, sessionId) {
8640
8651
  params.set("embed", "1");
8641
8652
  return `${base}?${params.toString()}`;
8642
8653
  }
8654
+ function sessionChatStoreUrl(httpBaseUrl) {
8655
+ return `${httpBaseUrl.replace(/\/+$/, "")}/store?install=${encodeURIComponent(SESSION_CHAT_APP_ID)}`;
8656
+ }
8643
8657
  function daemonOrigin(httpBaseUrl) {
8644
8658
  return new URL(httpBaseUrl).origin;
8645
8659
  }
@@ -8651,7 +8665,7 @@ function makeSessionChatApp(ops) {
8651
8665
  description: "Open the Session Chat app \u2014 a chat-thread view of any agentproto daemon session: full transcript replay, live follow-over SSE, and a composer that sends prompts into the same session. Requires the `@agentik/session-chat` app to be installed; without it the panel shows install instructions. Pass `sessionId` to deep-link straight into a known session.",
8652
8666
  inputSchema: sessionChatInputSchema,
8653
8667
  execute: async (input) => {
8654
- if (!installed) return { installed, url: null };
8668
+ if (!installed) return { installed, url: null, storeUrl: sessionChatStoreUrl(ops.httpBaseUrl) };
8655
8669
  const token = ops.mintEmbedToken?.();
8656
8670
  return {
8657
8671
  installed,