@ailog/cli 0.2.3 → 0.3.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.
- package/LICENSE +202 -0
- package/NOTICE +12 -0
- package/README.md +115 -18
- package/bin/cli.js +9 -0
- package/dist/client/assets/index-BBTm7Mxn.js +160 -0
- package/dist/client/assets/index-x-B7u97h.css +1 -0
- package/dist/client/index.html +19 -0
- package/dist/index.d.ts +122 -0
- package/dist/index.js +681 -0
- package/dist/viewer/server.js +413 -0
- package/package.json +65 -45
- package/dist/bin/cli.js +0 -1980
- package/dist/standalone/.next/BUILD_ID +0 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +0 -10
- package/dist/standalone/.next/build-manifest.json +0 -21
- package/dist/standalone/.next/package.json +0 -1
- package/dist/standalone/.next/prerender-manifest.json +0 -118
- package/dist/standalone/.next/required-server-files.json +0 -333
- package/dist/standalone/.next/routes-manifest.json +0 -102
- package/dist/standalone/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/_global-error/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
- package/dist/standalone/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/_global-error/page.js +0 -11
- package/dist/standalone/.next/server/app/_global-error/page.js.map +0 -5
- package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/_global-error.html +0 -2
- package/dist/standalone/.next/server/app/_global-error.meta +0 -15
- package/dist/standalone/.next/server/app/_global-error.rsc +0 -13
- package/dist/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
- package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +0 -13
- package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +0 -8
- package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +0 -4
- package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
- package/dist/standalone/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/_not-found/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/_not-found/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/_not-found/page.js +0 -14
- package/dist/standalone/.next/server/app/_not-found/page.js.map +0 -5
- package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/_not-found.html +0 -1
- package/dist/standalone/.next/server/app/_not-found.meta +0 -16
- package/dist/standalone/.next/server/app/_not-found.rsc +0 -19
- package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +0 -19
- package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +0 -8
- package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +0 -10
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -4
- package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -2
- package/dist/standalone/.next/server/app/api/[[...route]]/route/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/api/[[...route]]/route/build-manifest.json +0 -11
- package/dist/standalone/.next/server/app/api/[[...route]]/route/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/api/[[...route]]/route.js +0 -7
- package/dist/standalone/.next/server/app/api/[[...route]]/route.js.map +0 -5
- package/dist/standalone/.next/server/app/api/[[...route]]/route.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/api/[[...route]]/route_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/apps/[appId]/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/apps/[appId]/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/apps/[appId]/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/apps/[appId]/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/apps/[appId]/page.js +0 -17
- package/dist/standalone/.next/server/app/apps/[appId]/page.js.map +0 -5
- package/dist/standalone/.next/server/app/apps/[appId]/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page.js +0 -17
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page.js.map +0 -5
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page.js +0 -17
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page.js.map +0 -5
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/favicon.ico/route/build-manifest.json +0 -11
- package/dist/standalone/.next/server/app/favicon.ico/route.js +0 -7
- package/dist/standalone/.next/server/app/favicon.ico/route.js.map +0 -5
- package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/favicon.ico.body +0 -0
- package/dist/standalone/.next/server/app/favicon.ico.meta +0 -1
- package/dist/standalone/.next/server/app/index.html +0 -1
- package/dist/standalone/.next/server/app/index.meta +0 -14
- package/dist/standalone/.next/server/app/index.rsc +0 -26
- package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -9
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +0 -26
- package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +0 -8
- package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +0 -10
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +0 -5
- package/dist/standalone/.next/server/app/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/page.js +0 -16
- package/dist/standalone/.next/server/app/page.js.map +0 -5
- package/dist/standalone/.next/server/app/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app-paths-manifest.json +0 -10
- package/dist/standalone/.next/server/chunks/32a5c_next_0375a1f1._.js +0 -17
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__5f8f2b74._.js +0 -3
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__7970807c._.js +0 -7
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__a0f47697._.js +0 -28
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__b89b5a39._.js +0 -3
- package/dist/standalone/.next/server/chunks/[turbopack]_runtime.js +0 -770
- package/dist/standalone/.next/server/chunks/apps_web__next-internal_server_app_api_[[___route]]_route_actions_ad756856.js +0 -3
- package/dist/standalone/.next/server/chunks/apps_web__next-internal_server_app_favicon_ico_route_actions_63c3b0d9.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_c1a879d9._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_c1fdfc17._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_9085e245._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_builtin_forbidden_3bc2a141.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_builtin_global-error_4bb26d7f.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_builtin_unauthorized_5c95c9e3.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_esm_af731943._.js +0 -6
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_esm_build_templates_app-page_5d311e9f.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/37f04__next-internal_server_app_apps_[appId]_threads_[threadId]_page_actions_0a164142.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/8eb43_sonner_dist_index_mjs_a249e53a._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__15021a09._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__1764fab0._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__1d8f92d3._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__277f3037._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__379bd934._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__42df4b63._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__5064350d._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__659dbfe7._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__80ea63f6._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__9f3ff72e._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__b6cee269._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__e55c02ca._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__f7807403._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -770
- package/dist/standalone/.next/server/chunks/ssr/_1db4c18c._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_203f0b29._.js +0 -7
- package/dist/standalone/.next/server/chunks/ssr/_289820d0._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_442031f8._.js +0 -7
- package/dist/standalone/.next/server/chunks/ssr/_4b4df737._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_5066b883._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_70dfbe56._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_8c0bfb07._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_b00f40b3._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_d81226f8._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_e5c457a7._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_fce9eb14._.js +0 -6
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_e7650f86.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_3df07a96.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app_apps_[appId]_page_actions_3e495976.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app_apps_[appId]_settings_page_actions_e98061b7.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_a0623280.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_layout_tsx_4c06ec7f._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_page_tsx_15e4fa55._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_settings_page_tsx_c072e295._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_threads_[threadId]_page_tsx_7dd7d764._.js +0 -39
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_e92ffe16._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_page_tsx_66bf978b._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_9822aec4._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_alert-dialog_tsx_9188904e._.js +0 -9
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_c8132c43._.js +0 -9
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_card_tsx_2c0359d4._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_cbe5b2b9._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_cc5b288d._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_2e4b1ed0._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_4bd60410._.js +0 -6
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_930fb349._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_d2520564._.js +0 -3
- package/dist/standalone/.next/server/functions-config-manifest.json +0 -4
- package/dist/standalone/.next/server/middleware-build-manifest.js +0 -22
- package/dist/standalone/.next/server/middleware-manifest.json +0 -6
- package/dist/standalone/.next/server/next-font-manifest.js +0 -1
- package/dist/standalone/.next/server/next-font-manifest.json +0 -32
- package/dist/standalone/.next/server/pages/404.html +0 -1
- package/dist/standalone/.next/server/pages/500.html +0 -2
- package/dist/standalone/.next/server/pages-manifest.json +0 -4
- package/dist/standalone/.next/server/server-reference-manifest.js +0 -1
- package/dist/standalone/.next/server/server-reference-manifest.json +0 -5
- package/dist/standalone/.next/static/chunks/001d990e82d317e7.js +0 -1
- package/dist/standalone/.next/static/chunks/26aa014f0977bc3a.js +0 -4
- package/dist/standalone/.next/static/chunks/3468e573c929d9d3.js +0 -1
- package/dist/standalone/.next/static/chunks/3815bbfffdbb534d.js +0 -1
- package/dist/standalone/.next/static/chunks/3c1f17874396f056.js +0 -1
- package/dist/standalone/.next/static/chunks/5521918d58602ba4.css +0 -4
- package/dist/standalone/.next/static/chunks/61ce30fe62669a20.js +0 -1
- package/dist/standalone/.next/static/chunks/6a4ccd90d00f8188.js +0 -2
- package/dist/standalone/.next/static/chunks/6de1dc14b2653311.js +0 -2
- package/dist/standalone/.next/static/chunks/6ee1158d12a0c765.js +0 -1
- package/dist/standalone/.next/static/chunks/8bd29684c211a1e1.js +0 -37
- package/dist/standalone/.next/static/chunks/8eae4355671b488f.js +0 -1
- package/dist/standalone/.next/static/chunks/8ef339e3fd7a82de.js +0 -1
- package/dist/standalone/.next/static/chunks/a6dad97d9634a72d.js +0 -1
- package/dist/standalone/.next/static/chunks/ab703521ea4f2141.js +0 -1
- package/dist/standalone/.next/static/chunks/b337946fdc3c17b3.js +0 -1
- package/dist/standalone/.next/static/chunks/b46c6c394477214a.js +0 -1
- package/dist/standalone/.next/static/chunks/b8bc41a0b408222e.js +0 -5
- package/dist/standalone/.next/static/chunks/bbf59b867827b224.js +0 -7
- package/dist/standalone/.next/static/chunks/c416de6f3efbbe15.js +0 -7
- package/dist/standalone/.next/static/chunks/d70eda393c3966c3.js +0 -1
- package/dist/standalone/.next/static/chunks/f8e57df1af00077e.js +0 -5
- package/dist/standalone/.next/static/chunks/turbopack-e09224df42d3769a.js +0 -3
- package/dist/standalone/.next/static/media/13bf9871fe164e7f-s.f2220059.woff2 +0 -0
- package/dist/standalone/.next/static/media/3fe682a82f50d426-s.23358719.woff2 +0 -0
- package/dist/standalone/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/dist/standalone/.next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2 +0 -0
- package/dist/standalone/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/dist/standalone/.next/static/media/71b036adf157cdcf-s.bd5f4d11.woff2 +0 -0
- package/dist/standalone/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/dist/standalone/.next/static/media/89b21bb081cb7469-s.51c18f09.woff2 +0 -0
- package/dist/standalone/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/dist/standalone/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/dist/standalone/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- package/dist/standalone/.next/static/media/cc545e633e20c56d-s.f6f1950f.woff2 +0 -0
- package/dist/standalone/.next/static/media/favicon.0b3bf435.ico +0 -0
- package/dist/standalone/.next/static/p6HYmiCvyNSugdZfDkX0R/_buildManifest.js +0 -11
- package/dist/standalone/.next/static/p6HYmiCvyNSugdZfDkX0R/_clientMiddlewareManifest.json +0 -1
- package/dist/standalone/.next/static/p6HYmiCvyNSugdZfDkX0R/_ssgManifest.js +0 -1
- package/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/package.json +0 -66
- package/dist/standalone/public/file.svg +0 -1
- package/dist/standalone/public/globe.svg +0 -1
- package/dist/standalone/public/next.svg +0 -1
- package/dist/standalone/public/vercel.svg +0 -1
- package/dist/standalone/public/window.svg +0 -1
- package/dist/standalone/server.js +0 -44
- package/dist/standalone/tsconfig.json +0 -34
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{box-sizing:border-box}:root{--bg-0: oklch(.145 .005 264);--bg-1: oklch(.175 .006 264);--bg-2: oklch(.205 .007 264);--bg-3: oklch(.235 .008 264);--bg-4: oklch(.265 .009 264);--bg-input: oklch(.195 .007 264);--border: oklch(.27 .01 264);--border-strong: oklch(.34 .012 264);--border-subtle: oklch(.22 .008 264);--fg: oklch(.965 .002 264);--fg-muted: oklch(.74 .006 264);--fg-dim: oklch(.55 .008 264);--fg-faint: oklch(.42 .008 264);--accent: oklch(.72 .16 254);--accent-soft: oklch(.72 .16 254 / .14);--accent-fg: oklch(.78 .13 254);--tool: oklch(.74 .16 305);--tool-soft: oklch(.74 .16 305 / .14);--text-out: oklch(.78 .14 165);--text-out-soft: oklch(.78 .14 165 / .14);--reasoning: oklch(.82 .13 80);--reasoning-soft: oklch(.82 .13 80 / .14);--subagent: oklch(.78 .13 200);--subagent-soft: oklch(.78 .13 200 / .14);--error: oklch(.7 .18 25);--error-soft: oklch(.7 .18 25 / .16);--warn: oklch(.78 .13 80);--warn-soft: oklch(.78 .13 80 / .14);--ok: oklch(.74 .13 152);--ok-soft: oklch(.74 .13 152 / .14);--radius-sm: 4px;--radius: 6px;--radius-md: 8px;--radius-lg: 10px;--shadow-card: 0 1px 0 0 oklch(1 0 0 / .03) inset, 0 1px 2px oklch(0 0 0 / .4);--mono: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--sans: ui-sans-serif, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--fg);font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;font-feature-settings:"cv11","ss01","ss03"}.dot-bg{background-image:radial-gradient(oklch(1 0 0 / .025) 1px,transparent 1px);background-size:24px 24px;background-position:-1px -1px}.app{display:grid;grid-template-rows:44px 1fr;height:100vh}.topbar{display:flex;align-items:center;gap:12px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--bg-1);-webkit-app-region:drag}.brand{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--fg)}.brand .logo{width:22px;height:22px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent),var(--tool));display:grid;place-items:center;color:#0f1216;font-weight:700;font-size:11px;letter-spacing:0}.brand .sep{width:1px;height:14px;background:var(--border-strong);margin:0 4px}.brand .ver{color:var(--fg-faint);font-size:11px}.topbar .url{font-family:var(--mono);font-size:11px;color:var(--fg-dim);padding:3px 8px;border-radius:999px;background:var(--bg-2);border:1px solid var(--border);display:inline-flex;align-items:center;gap:6px}.topbar .url .dot{width:6px;height:6px;border-radius:999px;background:var(--ok);box-shadow:0 0 8px var(--ok)}.topbar-spacer{flex:1}.topbar-actions{display:flex;gap:4px;align-items:center;-webkit-app-region:no-drag}.btn{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius);font-family:var(--sans);font-size:12px;background:transparent;border:1px solid transparent;color:var(--fg-muted);cursor:pointer;transition:.1s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:hover{background:var(--bg-2);color:var(--fg)}.btn:active{background:var(--bg-3)}.btn.ghost-border{border-color:var(--border);background:var(--bg-2)}.btn.ghost-border:hover{background:var(--bg-3);border-color:var(--border-strong)}.btn.danger:hover{color:var(--error);border-color:var(--error-soft);background:var(--error-soft)}.btn .sh{font-family:var(--mono);font-size:10px;color:var(--fg-faint);padding:1px 4px;border-radius:3px;background:#ffffff0a;border:1px solid var(--border-subtle);margin-left:4px}.btn.icon{padding:5px 6px}.tabs{display:flex;padding:2px;background:var(--bg-2);border-radius:var(--radius);border:1px solid var(--border)}.tabs button{background:transparent;border:0;color:var(--fg-dim);font-size:12px;padding:4px 10px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:var(--sans)}.tabs button.active{background:var(--bg-3);color:var(--fg);box-shadow:0 0 0 1px var(--border-strong)}.body{display:grid;grid-template-columns:260px 1fr 1.35fr;grid-template-rows:auto 1fr;height:100%;min-height:0}.body .sidebar{grid-row:1 / 3;grid-column:1}.body .thread-head-full{grid-column:2 / 4;grid-row:1}.body .middle{grid-column:2;grid-row:2;min-height:0;overflow:hidden;display:grid;grid-template-rows:1fr;background:var(--bg-0);border-right:1px solid var(--border)}.body .middle>*{min-height:0}.body .run-details-pane{grid-column:3;grid-row:2;min-height:0;border-left:1px solid var(--border);display:grid;grid-template-rows:1fr;overflow:hidden}.body .run-details-pane>*{min-height:0;min-width:0}.body>.empty-spread{grid-column:2 / 4;grid-row:2}.app.focus-thread .sidebar .run-card.active,.app.focus-step .middle .step-group.selected,.app.focus-step .middle .run-row-compact.selected,.app.focus-step .middle .ttl-runline.selected{background:var(--accent-soft)}.focus-hint{position:fixed;bottom:12px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;font-family:var(--mono);font-size:10.5px;color:var(--fg-muted);pointer-events:none;opacity:0;transition:opacity .18s;z-index:50}.focus-hint.visible{opacity:1}.focus-hint .kbd{font-family:var(--mono);font-size:9.5px;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:3px;padding:1px 4px;color:var(--fg)}.thread-head-full{display:flex;flex-direction:column;gap:4px;padding:6px 18px;border-bottom:1px solid var(--border);background:var(--bg-1)}.th-row1{display:flex;align-items:center;gap:12px;min-height:22px}.thread-head-title{font-size:13px;font-weight:600;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;line-height:22px}.th-row1 .tabs{flex-shrink:0;padding:1px;border-radius:4px}.th-row1 .tabs button{font-size:10.5px;padding:2px 7px;gap:4px;border-radius:3px}.th-row1 .tabs button svg{width:10px;height:10px}.th-row2{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);white-space:nowrap;overflow-x:auto;overflow-y:hidden;min-height:18px;scrollbar-width:none}.th-row2::-webkit-scrollbar{display:none}.th-row2>*{flex-shrink:0}.th-sep{width:1px;height:11px;background:var(--border)}.th-id{cursor:pointer;border-radius:3px;padding:1px 4px;margin:0 -4px;transition:background .1s}.th-id:hover{background:var(--bg-2)}.th-id .mono.auto{color:var(--fg-faint);font-style:italic}.th-stat{color:var(--fg-faint)}.th-stat .v{color:var(--fg-muted)}.th-stat .th-k{color:var(--fg-faint);opacity:.7;margin-right:1px}.th-bad{color:var(--error);background:var(--error-soft);border-radius:3px;padding:1px 5px;font-size:10px}.th-meta-label{color:var(--fg-faint);letter-spacing:.04em;font-size:9.5px;text-transform:uppercase}.th-meta-empty{color:var(--fg-faint);opacity:.55;font-style:italic}.th-meta-pills{display:inline-flex;gap:4px}.th-pill{background:var(--bg-2);border:1px solid var(--border);border-radius:3px;padding:0 5px;font-size:10px;display:inline-flex;gap:3px;align-items:baseline;line-height:14px}.th-pill .k{color:var(--fg-faint)}.th-pill .v{color:var(--fg-muted)}.sidebar{border-right:1px solid var(--border);background:var(--bg-1);display:grid;grid-template-rows:36px 36px 1fr;min-height:0}.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:11px;font-family:var(--mono);letter-spacing:.08em;color:var(--fg-faint);text-transform:uppercase;border-bottom:1px solid var(--border)}.sidebar-head .count{font-family:var(--mono);font-size:11px;color:var(--fg-dim);background:var(--bg-2);padding:1px 6px;border-radius:999px;border:1px solid var(--border)}.sidebar-search{display:flex;align-items:center;gap:6px;padding:0 10px;border-bottom:1px solid var(--border)}.sidebar-search input{flex:1;background:transparent;border:0;color:var(--fg);font:inherit;outline:none;padding:6px 0}.sidebar-search input::placeholder{color:var(--fg-faint)}.sidebar-search .kbd{font-family:var(--mono);font-size:10px;color:var(--fg-faint);border:1px solid var(--border);padding:1px 5px;border-radius:3px;background:var(--bg-2)}.runs{overflow-y:auto;padding:4px}.run-card{display:block;padding:9px 10px;border-radius:var(--radius);cursor:pointer;position:relative;border:1px solid transparent}.run-card+.run-card{margin-top:1px}.run-card:hover{background:var(--bg-2)}.run-card.active{border-color:transparent}.run-card.active:before{content:"";position:absolute;left:-1px;top:8px;bottom:8px;width:2px;border-radius:2px;background:var(--accent)}.run-status{display:none}@keyframes pulse{0%,to{box-shadow:0 0 0 3px #5da7ff29;box-shadow:0 0 0 3px oklch(.72 .16 254 / .16)}50%{box-shadow:0 0 0 6px #5da7ff05;box-shadow:0 0 0 6px oklch(.72 .16 254 / .02)}}.run-main{min-width:0}.run-title{font-size:12.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.run-meta{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);display:flex;gap:8px;margin-top:4px;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.run-meta .fn{color:var(--fg-dim)}.run-meta .sep{color:var(--fg-faint);opacity:.6}.run-meta .err{color:var(--error)}.run-meta .warn{color:var(--warn)}.run-time{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);align-self:start;padding-top:1px}.type-badge{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;padding:1px 5px;border-radius:3px;border:1px solid var(--border);color:var(--fg-dim);background:var(--bg-2);text-transform:uppercase}.type-badge.stream{color:#59e0ad;border-color:#49d3a159;background:#49d3a11a}.type-badge.generate{color:#d5b1ff;color:oklch(.82 .14 305);border-color:#c28efb59;background:#c28efb1a}.chat-scroll{overflow-y:auto;padding:14px 16px 80px}.chat-inner{display:grid;gap:8px}.run-divider{text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);margin:12px 0 6px;position:relative}.run-divider:before,.run-divider:after{content:"";position:absolute;top:50%;width:calc(50% - 36px);height:1px;background:var(--border)}.run-divider:before{left:0}.run-divider:after{right:0}.run-divider span{background:var(--bg-0);padding:0 8px;position:relative;z-index:1}.chat-scroll .md pre{white-space:pre-wrap;word-break:break-word;overflow-x:hidden}.chat-scroll .cm-tool-line,.chat-scroll .cm-body{overflow-wrap:anywhere;word-break:break-word}.step-group{position:relative;padding:6px 10px 6px 14px;border-radius:8px;border-left:2px solid transparent;display:grid;gap:6px;cursor:pointer;transition:background .12s,border-color .12s}.step-group:hover{border-left-color:var(--border-strong);background:#ffffff04}.step-group.selected{border-left-color:var(--accent)}.step-group .cm{cursor:pointer}.step-group .cm.focused{outline:1px dashed var(--accent);outline-offset:-1px}.cm{border-radius:8px;padding:8px 12px;border:1px solid var(--border);background:var(--bg-1);cursor:pointer;font-size:13px;line-height:1.55;transition:border-color .1s ease,background .1s ease}.cm:hover{border-color:var(--border-strong)}.cm.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.cm-meta{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;color:var(--fg-faint);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}.cm-meta>*{white-space:nowrap}.cm-meta .sep{opacity:.55;text-transform:none}.cm-meta .tc-id{font-family:var(--mono);font-size:9.5px;padding:0 5px;border-radius:3px;background:#c28efb29;color:#d5b1ff;color:oklch(.82 .14 305);text-transform:none;letter-spacing:0}.cm-meta .tc-id.matched{background:#49d3a129;color:#70e9b9}.cm-body{color:var(--fg)}.cm-body .md{font-size:13px}.cm-user{justify-self:end;max-width:86%;background:var(--accent-soft);border-color:#5da7ff59;border-color:oklch(.72 .16 254 / .35);margin-left:14%}.cm-user .cm-meta{color:#83bbff;color:oklch(.78 .13 254)}.cm-user .cm-body{color:var(--fg);white-space:pre-wrap}.cm-text{background:var(--bg-1)}.cm-tool-call{background:#c28efb12;border-color:#c28efb40}.cm-tool-call .cm-meta{color:var(--tool)}.cm-tool-call .cm-tool-line{font-family:var(--mono);font-size:12.5px;color:var(--fg)}.cm-tool-call .tc-name{color:#dcbfff;color:oklch(.85 .14 305);font-weight:600}.cm-tool-call .tc-args{color:var(--fg-muted)}.cm-tool-result{background:#49d3a10f;border-color:#49d3a138}.cm-tool-result .cm-meta{color:var(--text-out)}.cm-tool-result .cm-tool-line{font-family:var(--mono);font-size:12.5px;color:var(--fg)}.cm-tool-result .tc-name{color:#70e9b9;font-weight:600}.cm-tool-result .tc-args{color:var(--fg-muted)}.cm-reasoning{background:#f0ba590d;border-color:#f0ba5938}.cm-reasoning .cm-meta{color:var(--reasoning)}.cm-reasoning-text{color:var(--fg-muted);font-style:italic;font-size:12.5px;line-height:1.5}.cm-error{background:#fa686314;border-color:#fa68634d}.cm-error .cm-meta{color:var(--error)}.cm-error .cm-body{color:var(--error);font-family:var(--mono);font-size:12px}.cm-aborted{background:#e3ad4b12;border-color:#e3ad4b4d}.cm-aborted .cm-meta{color:var(--warn)}.cm-aborted .cm-body{color:var(--warn);font-family:var(--mono);font-size:12px}.rv{display:grid;grid-template-rows:auto 1fr;min-height:0;min-width:0;height:100%;background:var(--bg-0);overflow:hidden}.rv.rv-inspector{grid-template-rows:auto auto 1fr auto}.rh{padding:12px 16px 10px;border-bottom:1px solid var(--border);background:var(--bg-1);display:grid;gap:8px;min-width:0}.rh-row1{display:flex;align-items:center;gap:10px;min-width:0}.rh-title{font-size:14px;font-weight:600;color:var(--fg);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rh-row2{display:flex;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);align-items:center}.rh-row2>span{white-space:nowrap}.rh-row2 .k{color:var(--fg-faint);margin-right:3px}.rh-row2 .v{color:var(--fg-muted)}.rh-more{background:transparent;border:1px solid var(--border);color:var(--fg-faint);font-family:var(--mono);font-size:10px;padding:2px 8px;border-radius:3px;cursor:pointer;margin-left:auto}.rh-more:hover{color:var(--fg-muted);border-color:var(--border-strong)}.rh-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-top:4px}.rh-id{font-family:var(--mono);font-size:10.5px;color:var(--fg-dim);padding:2px 6px;background:var(--bg-2);border:1px solid var(--border);border-radius:3px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.rh-id:hover{color:var(--fg)}.rv-body{overflow-y:auto;min-height:0}.rv-toolbar{display:flex;align-items:center;gap:4px;margin-bottom:10px;padding:0 2px}.rv-toolbar-muted{font-family:var(--mono);font-size:11px;color:var(--fg-faint)}.rv-mini-btn{background:var(--bg-2);border:1px solid var(--border);color:var(--fg-dim);font-family:var(--mono);font-size:10.5px;padding:3px 9px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.rv-mini-btn:hover{color:var(--fg);border-color:var(--border-strong)}.rv-mini-btn:disabled{opacity:.4;cursor:not-allowed}.rv-compact-body{padding:14px 14px 60px;display:grid;gap:4px}.rv-compact-body .step-body{grid-template-columns:1fr}.rv-compact-body .step-pane+.step-pane{border-left:0;border-top:1px solid var(--border)}.rv-compact-body .step-summary-aside{gap:8px;font-size:10.5px}.rv-notebook-body{padding:14px 14px 60px;display:grid;gap:12px}.nb-cell{display:grid;grid-template-columns:28px 1fr;gap:12px;position:relative}.nb-cell-rail{display:grid;justify-content:center;position:relative}.nb-cell-rail:after{content:"";position:absolute;top:28px;bottom:-12px;left:50%;transform:translate(-50%);width:2px;background:var(--border)}.nb-cell:last-child .nb-cell-rail:after{display:none}.nb-cell-rail .step-num{width:24px;height:24px;font-size:11px;z-index:1}.nb-cell-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .12s,box-shadow .12s}.nb-cell.focused .nb-cell-card{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.nb-cell.err .nb-cell-card{border-color:#fa686366}.nb-cell.ab .nb-cell-card{border-color:#e3ad4b66}.nb-cell-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--bg-2);border-bottom:1px solid var(--border)}.nb-cell.sub .nb-cell-head{background:#17d0d80f}.nb-meta{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);white-space:nowrap}.nb-meta .k{color:var(--fg-faint)}.nb-cell-sec{padding:12px 14px}.nb-cell-sec+.nb-cell-sec{border-top:1px dashed var(--border-subtle)}.nb-sec-head{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:8px}.nb-sec-aside{color:var(--fg-dim);font-family:var(--mono);text-transform:none;letter-spacing:0}.rv-inspector{grid-template-rows:auto 1fr}.rv-inspector-body{padding:14px 14px 60px;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.rv-inspector-body>*{min-width:0}.ic{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-1);overflow:hidden;transition:border-color .12s}.ic:hover{border-color:var(--border-strong)}.ic.focused{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.ic.err{border-color:#fa686366}.ic.ab{border-color:#e3ad4b66}.ic.sub .ic-head{background:linear-gradient(90deg,oklch(.78 .13 200 / .06),transparent 240px)}.ic-head{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:0}.ic-head:hover{background:var(--bg-2)}.ic.open .ic-head{border-bottom:1px solid var(--border)}.ic-chev{color:var(--fg-faint);transition:transform .12s;flex-shrink:0}.ic-chev.open{transform:rotate(90deg)}.ic-meta{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);white-space:nowrap;flex-shrink:0}.ic-summary{font-size:12px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;font-family:var(--sans);margin-left:6px}.ic-body{background:var(--bg-0)}.ic-finish{padding:8px 14px;font-family:var(--mono);font-size:10.5px;color:var(--fg-muted);border-bottom:1px dashed var(--border-subtle);background:var(--bg-1);display:flex;gap:5px;flex-wrap:wrap;align-items:center}.ic-finish .k{color:var(--fg-faint);margin-right:2px}.ic-finish .sep{opacity:.5}.ic-io{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.ic-io>.ic-section{padding:12px 14px}.ic-io>.ic-section+.ic-section{border-top:1px solid var(--border);border-left:0}@supports (selector(:has(*))){.ic-io:has(>.ic-section:nth-child(2))>.ic-section+.ic-section{border-top:1px solid var(--border)}}@container (min-width: 580px){.ic-io>.ic-section+.ic-section{border-top:0;border-left:1px solid var(--border)}}.ic-body{container-type:inline-size}.ic-section{padding:12px 14px}.ic-section-head{display:flex;gap:8px;align-items:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:10px}.ic-section-aside{color:var(--fg-dim);text-transform:none;letter-spacing:0;font-size:10.5px}.rv-mini-btn.icon-only{padding:4px 6px;width:28px;justify-content:center}.step-pane-root{display:grid;grid-template-rows:auto auto 1fr;min-height:0;background:var(--bg-0);overflow:hidden}.step-pane-head{padding:7px 12px;background:var(--bg-1);border-bottom:1px solid var(--border);display:grid;gap:0}.sph-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:26px}.sph-row-main{gap:14px}.sph-row-crumb{gap:6px 10px;font-size:11.5px;color:var(--fg-muted);min-width:0;justify-content:space-between}.sph-row-left,.sph-row-right{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;min-width:0}.sph-row-left{flex:0 1 auto;min-width:0}.sph-row-right{flex:0 0 auto}.sph-sep{width:1px;height:14px;background:var(--border);display:inline-block}.sph-row-crumb svg{color:var(--fg-faint);flex-shrink:0}.sph-crumb-thread{color:var(--fg);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.sph-crumb-run,.sph-crumb-step{color:var(--fg-muted);white-space:nowrap}.sph-crumb-run .mono,.sph-crumb-step .mono{color:var(--fg);font-variant-numeric:tabular-nums;font-weight:500}.sph-crumb-of{color:var(--fg-faint);font-family:var(--mono);font-variant-numeric:tabular-nums}.sph-crumb-fn{font-family:var(--mono);font-size:10.5px;color:var(--fg-muted);background:var(--bg-2);border:1px solid var(--border);padding:1px 5px;border-radius:3px;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.sph-status{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;font-weight:500;padding:2px 6px;border-radius:3px;margin-left:4px}.sph-status.err{background:var(--error-soft);color:var(--error)}.sph-status.ab{background:var(--warn-soft);color:var(--warn)}.sph-ts{font-family:var(--mono);font-size:11px;color:var(--fg-faint);white-space:nowrap;margin-left:4px}.sph-id-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px solid var(--border);color:var(--fg-muted);border-radius:4px;cursor:pointer;padding:0;margin-left:2px;transition:color .12s,background .12s,border-color .12s}.sph-id-btn:hover{color:var(--fg);background:var(--bg-2);border-color:var(--border-strong)}.sph-title{display:inline-flex;align-items:center;gap:7px;min-width:0;color:var(--fg-muted)}.sph-step-label{font-size:12px;font-weight:500;color:var(--fg-muted);letter-spacing:.01em;line-height:1;white-space:nowrap}.sph-step-n{color:var(--fg);font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:600}.sph-step-of{color:var(--fg-faint);font-family:var(--mono);font-variant-numeric:tabular-nums}.sph-metric{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--mono);font-size:12.5px;color:var(--fg);white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.005em}.sph-metric-l{font-size:9.5px;color:var(--fg-faint);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.sph-metric-v{color:var(--fg);font-weight:500}.sph-row-sub{gap:8px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint)}.sph-sub{display:inline-flex;align-items:center;gap:4px}.sph-sub svg{color:var(--fg-faint)}.sph-sub-sep{color:var(--fg-faint);opacity:.5}.sph-id{cursor:pointer;color:var(--fg-dim);border-radius:3px;padding:1px 4px;margin:-1px -4px;transition:color .12s,background .12s}.sph-id:hover{color:var(--fg-muted);background:var(--bg-2)}.sph-id svg{color:var(--fg-faint);opacity:.7}.sph-id:hover svg{opacity:1}.sph-meta{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);white-space:nowrap}.sph-tabs{background:var(--bg-1);border-bottom:1px solid var(--border);padding:0 12px}.step-pane-body{overflow-y:auto;min-height:0}.sp-io{padding:14px;display:grid;gap:12px}.sp-meta-strip{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:2px 0 0}.sp-meta-item{font-family:var(--mono);font-size:11px;color:var(--fg-muted);white-space:nowrap}.sp-meta-item .sp-meta-k{color:var(--fg-faint);text-transform:uppercase;letter-spacing:.05em;font-size:9.5px;margin-right:4px}.sp-section{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.sp-section-head{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-faint);margin-bottom:10px}.sp-padded{padding:14px 18px 60px}.sp-meta-grid{margin-top:12px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;font-family:var(--mono);font-size:11.5px;color:var(--fg-muted);display:grid;grid-template-columns:auto 1fr;gap:6px 14px}.sp-meta-grid .k{color:var(--fg-faint)}.sp-block-head{margin-top:18px;margin-bottom:6px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);letter-spacing:.04em;text-transform:uppercase}.sp-empty{font-family:var(--mono);font-size:11.5px;color:var(--fg-faint);font-style:italic;padding:6px 10px;background:var(--bg-2);border:1px dashed var(--border);border-radius:4px;width:fit-content}.sp-raw-grid{display:flex;flex-direction:column;gap:4px}.raw-row{display:flex;align-items:center;gap:10px;padding:5px 10px;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;font-family:var(--mono);font-size:11.5px}.raw-row.blob{border-left:2px solid var(--accent)}.raw-row-k{color:var(--fg-faint);min-width:110px;flex-shrink:0}.raw-row-empty{color:var(--fg-faint);opacity:.6;font-style:italic}.raw-blob-chip{display:inline-flex;align-items:center;gap:4px;color:var(--fg-muted);background:var(--accent-soft);padding:2px 6px;border-radius:3px;font-size:11px}.raw-row-inline{display:flex;gap:8px;align-items:baseline;color:var(--fg-muted);flex:1;min-width:0}.raw-inline-len{color:var(--fg-faint);font-size:10.5px;flex-shrink:0}.raw-inline-peek{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;color:var(--fg-muted);opacity:.85}.run-meta .mono.tiny{font-family:var(--mono);font-size:9.5px;color:var(--fg-faint);letter-spacing:-.01em}.run-meta .mono.tiny.auto{font-style:italic;opacity:.7}.step-list{overflow-y:auto;padding:12px 14px 60px;display:grid;gap:14px}.step-list-run{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-1);overflow:hidden}.step-list-run-head{padding:9px 12px;border-bottom:1px solid var(--border);background:var(--bg-2);display:flex;align-items:center;gap:10px}.step-list-run-title{font-size:12.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.step-list-run-meta{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);flex-shrink:0}.step-list-run-meta .sep{opacity:.5}.step-list-rows{display:grid}.step-list-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border-subtle);cursor:pointer;transition:background .1s;min-width:0}.step-list-row:first-child{border-top:0}.step-list-row:hover{background:var(--bg-2)}.step-list-row.selected{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.step-list-row.errored{box-shadow:inset 2px 0 0 var(--error)}.step-list-row.aborted{box-shadow:inset 2px 0 0 var(--warn)}.step-list-row .step-num{width:20px;height:20px;font-size:10.5px;border-radius:4px}.step-list-row .model-badge{flex-shrink:0;color:var(--fg-dim)}.step-list-summary{font-size:12px;color:var(--fg-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.step-list-aside{display:inline-flex;gap:4px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);white-space:nowrap;flex-shrink:0}.step-list-aside .sep{opacity:.5}.step-num.small{width:18px;height:18px;font-size:10px;border-radius:4px}.step-num.err{background:var(--error-soft);color:var(--error);border-color:#fa686380}.step-num.ab{background:var(--warn-soft);color:var(--warn);border-color:#e3ad4b80}.step-num.sub{background:var(--subagent-soft);color:var(--subagent);border-color:#17d0d880}.run-list-mid{overflow-y:auto;padding:8px 12px 60px;display:flex;flex-direction:column;gap:1px;align-content:flex-start}.run-row-compact{display:grid;grid-template-columns:20px 1fr auto auto auto;gap:10px;align-items:center;padding:3px 10px;height:26px;border-radius:4px;cursor:pointer;border-left:2px solid transparent;min-width:0;line-height:1}.run-row-compact:hover{background:var(--bg-2)}.run-row-compact.selected{border-left-color:var(--accent)}.run-row-compact.errored{border-left-color:var(--error)}.run-row-compact.aborted{border-left-color:var(--warn)}.rrc-idx{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);text-align:right}.rrc-title{font-size:12.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.rrc-meta{font-family:var(--mono);font-size:10.5px;color:var(--fg-dim);white-space:nowrap}.rrc-time{font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);white-space:nowrap}.ttl-scroll{overflow-y:auto;padding:12px 16px 60px;display:flex;flex-direction:column;gap:14px}.ttl-axis-wrap{position:sticky;top:0;background:var(--bg-0);padding-bottom:6px;z-index:2}.ttl-axis{position:relative;height:18px;border-bottom:1px solid var(--border)}.ttl-tick{position:absolute;top:0;height:18px;font-family:var(--mono);font-size:10px;color:var(--fg-faint);padding-left:4px;border-left:1px solid var(--border)}.ttl-runs{display:flex;flex-direction:column;gap:4px}.ttl-runline{display:grid;grid-template-columns:180px 1fr auto;gap:10px;align-items:center;flex-shrink:0;cursor:pointer;padding:3px 6px;border-radius:4px;border-left:2px solid transparent}.ttl-runline:hover{background:var(--bg-2)}.ttl-runline.selected{border-left-color:var(--accent)}.ttl-rl-label{display:flex;align-items:center;gap:6px;min-width:0}.ttl-rl-idx{font-family:var(--mono);font-size:10px;color:var(--fg-faint);background:var(--bg-2);border:1px solid var(--border);padding:0 5px;border-radius:3px;flex-shrink:0}.ttl-rl-title{font-size:12px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ttl-rl-track{position:relative;height:22px;background:linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px) 0 0 / 10% 100% repeat-x,var(--bg-1);border:1px solid var(--border);border-radius:4px}.ttl-rl-bar{position:absolute;top:2px;bottom:2px;background:var(--accent);border-radius:3px;min-width:4px;cursor:pointer;display:flex;align-items:center;padding:0 6px;gap:6px;overflow:hidden;transition:filter .1s}.ttl-rl-bar:hover{filter:brightness(1.2)}.ttl-rl-bar.has-sub{background:linear-gradient(90deg,var(--accent) 60%,var(--subagent))}.ttl-rl-bar.err{background:var(--error)}.ttl-rl-bar.ab{background:var(--warn)}.ttl-rl-bar.selected{outline:2px solid var(--accent-fg);outline-offset:1px;z-index:2}.ttl-rl-bar-inner{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9.5px;font-weight:700;color:#0a0b0d;white-space:nowrap;pointer-events:none}.ttl-rl-bar-steps{opacity:.75;font-weight:600}.ttl-rl-meta{font-family:var(--mono);font-size:10px;color:var(--fg-faint);white-space:nowrap}.ttl-legend{display:flex;gap:14px;flex-wrap:wrap;padding:8px 0 0;border-top:1px solid var(--border);font-family:var(--mono);font-size:10px;color:var(--fg-faint)}.ttl-legend span{display:inline-flex;align-items:center;gap:6px}.ttl-legend .dot{width:10px;height:10px;border-radius:2px}.ttl-legend .dot.orch{background:var(--accent)}.ttl-legend .dot.sub{background:var(--subagent)}.ttl-legend .dot.err{background:var(--error)}.ttl-legend .dot.ab{background:var(--warn)}.run-row{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;transition:border-color .1s,background .1s}.run-row:hover{border-color:var(--border-strong);background:var(--bg-2)}.run-row.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.run-row.errored{border-color:#fa686366}.run-row.aborted{border-color:#e3ad4b66}.run-row-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.run-row-idx{font-family:var(--mono);font-size:11px;color:var(--fg-faint);background:var(--bg-3);border:1px solid var(--border);padding:1px 6px;border-radius:4px;flex-shrink:0}.run-row-title{font-size:12.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.run-row-meta{display:flex;gap:6px;align-items:center;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint)}.run-row-meta .sep{opacity:.5}.details{display:grid;grid-template-rows:auto 1fr;min-height:0;background:var(--bg-0);overflow:hidden}.details.empty{display:grid;place-items:center;background:var(--bg-0)}.details-head{padding:12px 18px;border-bottom:1px solid var(--border);background:var(--bg-1);min-height:78px;display:grid;gap:6px;align-content:center}.d-kind{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;white-space:nowrap}.d-bread{margin-top:4px;display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:11px;color:var(--fg-faint);white-space:nowrap;overflow:hidden}.d-bread>*{flex-shrink:0}.d-bread .d-bread-item:first-child{flex-shrink:1;overflow:hidden;text-overflow:ellipsis;min-width:0}.d-bread svg{color:var(--fg-faint)}.d-bread-item.mono{color:var(--fg-dim)}.details-scroll{overflow-y:auto;padding:14px 18px 60px;display:grid;gap:12px}.d-section{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px}.d-section-head{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:10px;min-width:0}.d-section-head .model-badge{text-transform:none;letter-spacing:0;margin-left:auto}.d-section-head svg{color:var(--fg-faint);flex-shrink:0}.d-section-head .d-small{overflow:hidden;text-overflow:ellipsis;min-width:0;white-space:nowrap}.d-section-head .d-small .copy-btn{flex-shrink:0}.d-quote{font-size:14px;line-height:1.55;color:var(--fg);padding-left:10px;border-left:2px solid var(--accent);white-space:pre-wrap}.d-prose{font-size:13px;line-height:1.6;color:var(--fg)}.d-prose.d-reasoning{color:var(--fg-muted);font-style:italic}.d-kv{display:flex;gap:8px;align-items:baseline;margin-bottom:8px;font-size:12px}.d-kv .k{color:var(--fg-faint);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;width:60px}.d-kv .v{color:var(--fg)}.d-kv .v.mono{font-family:var(--mono);font-size:12px}.d-sub-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-faint);margin-bottom:4px}.d-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;font-family:var(--mono);font-size:11.5px}.d-grid>div{display:flex;justify-content:space-between;padding:2px 0;border-bottom:1px dashed var(--border-subtle)}.d-grid .k{color:var(--fg-faint)}.d-grid .v{color:var(--fg)}.d-jump{margin-top:10px;display:inline-flex}.d-note{font-size:11.5px;color:var(--fg-faint);font-style:italic;padding:6px 0}.d-pre{font-family:var(--mono);font-size:12px;background:var(--bg-4);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;white-space:pre-wrap;color:var(--fg);max-height:360px;overflow-y:auto;margin:0}.d-small{font-family:var(--mono);font-size:10.5px;color:var(--fg-muted);display:inline-flex;align-items:center}.d-small-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--fg-dim);font-family:var(--mono);font-size:10px;padding:1px 6px;border-radius:3px;cursor:pointer}.d-small-btn:hover{color:var(--fg);border-color:var(--border-strong)}.d-prompt{margin-top:8px}.run-detail-embedded{display:grid;grid-template-rows:auto 1fr}.run-detail-embedded .detail-head{padding:12px 16px;background:var(--bg-1)}.run-detail-embedded .detail-title{font-size:13.5px}.run-detail-embedded .stat-row{gap:10px}.run-detail-embedded .steps-scroll{padding:12px 14px 60px}.run-detail-embedded .step-summary{padding:8px 10px;gap:8px}.run-detail-embedded .timeline{padding:12px 14px 60px}.run-detail-embedded .tl-head,.run-detail-embedded .tl-row{grid-template-columns:140px 1fr}.run-detail-embedded .step-summary-aside{display:none}.main{min-height:0;display:grid;grid-template-rows:auto 1fr;background:var(--bg-0)}.empty{display:grid;place-items:center;height:100%}.empty-card{max-width:480px;padding:32px;text-align:center}.empty-card h2{margin:0 0 6px;font-size:16px;font-weight:600;color:var(--fg)}.empty-card p{margin:0;color:var(--fg-dim);font-size:13px}.empty-card .install{margin-top:18px;text-align:left;background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;font-family:var(--mono);font-size:12px;color:var(--fg-muted)}.empty-card .install .c{color:var(--accent-fg)}.empty-card .install .d{color:var(--fg-faint)}.detail-head{padding:16px 24px 14px;border-bottom:1px solid var(--border);background:var(--bg-1);display:grid;gap:8px}.detail-title-row{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}.detail-title{font-size:16px;font-weight:600;color:var(--fg);line-height:1.4;flex:1;text-wrap:pretty}.detail-title .quote{color:var(--fg-muted);font-weight:500}.detail-id{font-family:var(--mono);font-size:11px;color:var(--fg-faint);display:inline-flex;align-items:center;gap:6px}.detail-id .copy-btn{color:var(--fg-faint);cursor:pointer;padding:2px;border-radius:3px}.detail-id .copy-btn:hover{color:var(--fg);background:var(--bg-3)}.stat-row{display:flex;gap:18px;flex-wrap:wrap;align-items:center}.stat{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11.5px;color:var(--fg-muted);white-space:nowrap}.stat .l{color:var(--fg-faint)}.stat .v{color:var(--fg)}.stat svg{color:var(--fg-faint)}.pill-row{display:flex;gap:6px;flex-wrap:wrap}.pill{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg-2);border:1px solid var(--border);color:var(--fg-muted);display:inline-flex;gap:4px}.pill .k{color:var(--fg-faint)}.pill .v{color:var(--fg)}.state-chip{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-family:var(--mono);padding:2px 9px;border-radius:999px;border:1px solid var(--border);color:var(--fg-muted);background:var(--bg-2);text-transform:uppercase;letter-spacing:.04em}.state-chip .d{display:none}.state-chip.ok{color:var(--ok);border-color:#65c28159;background:var(--ok-soft)}.state-chip.err{color:var(--error);border-color:#fa686359;background:var(--error-soft)}.state-chip.warn{color:var(--warn);border-color:#e3ad4b59;background:var(--warn-soft)}.state-chip.running{color:var(--accent-fg);border-color:#5da7ff66;border-color:oklch(.72 .16 254 / .4);background:var(--accent-soft)}.steps-scroll{overflow-y:auto;padding:18px 24px 80px}.step{position:relative}.step+.step{margin-top:4px}.step-num{width:22px;height:22px;border-radius:6px;background:var(--bg-3);border:1px solid var(--border);color:var(--fg-muted);font-family:var(--mono);font-size:11px;display:grid;place-items:center;flex-shrink:0}.step.subagent .step-num{border-color:#17d0d880;color:var(--subagent);background:var(--subagent-soft)}.step.errored .step-num{border-color:#fa686380;color:var(--error);background:var(--error-soft)}.step.aborted .step-num{border-color:#e3ad4b80;color:var(--warn);background:var(--warn-soft)}.step-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .1s ease}.step-card:hover{border-color:var(--border-strong)}.step.errored .step-card{border-color:#fa686359}.step-summary{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:9px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.step-summary:hover{background:var(--bg-2)}.step.subagent .step-card{background:linear-gradient(90deg,oklch(.78 .13 200 / .06) 0%,var(--bg-1) 220px);border-left:2px solid oklch(.78 .13 200 / .5)}.chev{width:14px;height:14px;color:var(--fg-faint);transition:transform .12s ease;flex-shrink:0}.step.open .chev{transform:rotate(90deg)}.step-summary-main{display:flex;align-items:center;gap:10px;min-width:0}.fn-badge{font-family:var(--mono);font-size:10.5px;color:var(--fg-muted);background:var(--bg-3);border:1px solid var(--border);padding:1px 6px;border-radius:4px;white-space:nowrap}.fn-badge.subagent{color:var(--subagent);background:var(--subagent-soft);border-color:#17d0d84d}.model-badge{font-family:var(--mono);font-size:11px;color:var(--fg-muted);display:inline-flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap}.model-badge .dot{display:none}.snip{font-size:12px;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--sans);min-width:0}.snip .arrow{color:var(--fg-faint);margin:0 4px}.snip .out{color:var(--fg-muted)}.snip .tag{color:var(--tool);font-family:var(--mono);font-size:11px}.snip .tag.text{color:var(--text-out)}.snip .tag.reason{color:var(--reasoning)}.step-summary-aside{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;color:var(--fg-faint);flex-shrink:0}.step-summary-aside .v{color:var(--fg-muted)}.step-body{border-top:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:0}.step-pane{padding:14px;min-width:0}.step-pane+.step-pane{border-left:1px solid var(--border)}.pane-head{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint);margin-bottom:10px}.pane-head .actions{display:flex;gap:4px}.pane-head .actions button{color:var(--fg-faint);background:transparent;border:0;font:inherit;cursor:pointer;padding:2px 4px;border-radius:3px}.pane-head .actions button:hover{color:var(--fg);background:var(--bg-3)}.msg{border-radius:var(--radius);background:var(--bg-2);border:1px solid var(--border);padding:8px 10px;margin-bottom:6px;font-size:12.5px}.msg.system{background:#23262c66}.msg-role{font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fg-faint);text-transform:uppercase;margin-bottom:4px;display:flex;align-items:center;gap:6px}.msg-content{font-family:var(--sans);color:var(--fg);line-height:1.5;white-space:pre-wrap;word-break:break-word}.msg.system .msg-content{color:var(--fg-muted);font-size:12px}.part{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;overflow:hidden}.part-head{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}.part-head .ico{width:12px;height:12px}.part-head .name{color:var(--fg);font-weight:500}.part-head .tail{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--fg-faint);text-transform:none;letter-spacing:0}.part-head .chev{width:11px;height:11px;color:var(--fg-faint)}.part.tool-call .part-head{background:#c28efb14;color:var(--tool);border-bottom:1px solid oklch(.74 .16 305 / .15)}.part.tool-result .part-head{background:#49d3a112;color:var(--text-out);border-bottom:1px solid oklch(.78 .14 165 / .15)}.part.reasoning .part-head{background:#f0ba5912;color:var(--reasoning);border-bottom:1px solid oklch(.82 .13 80 / .18)}.part.text-out .part-head{background:#49d3a10f;color:var(--text-out);border-bottom:1px solid oklch(.78 .14 165 / .15)}.part.collapsed .part-head{border-bottom:0}.part-body{padding:10px 12px;font-size:12.5px;color:var(--fg)}.part-body .reasoning-text{color:var(--fg-muted);font-style:italic;line-height:1.6;white-space:pre-wrap}.tool-call-id{font-family:var(--mono);font-size:10px;padding:1px 5px;border-radius:3px;background:#c28efb24;color:#d5b1ff;color:oklch(.82 .14 305);cursor:pointer;border:1px solid transparent}.tool-call-id.matched{background:#49d3a129;color:#70e9b9}.tool-call-id:hover{border-color:currentColor}.tool-call-id.highlight{outline:2px solid var(--accent);outline-offset:1px}.json{font-family:var(--mono);font-size:11.5px;color:var(--fg);background:var(--bg-4);border-radius:var(--radius-sm);padding:8px 10px;white-space:pre;overflow-x:auto;line-height:1.55;max-height:360px;overflow-y:auto}.json .k{color:#83bbff;color:oklch(.78 .13 254)}.json .s{color:#7fdc9a}.json .n{color:#f0ba59}.json .b{color:#cc9fff;color:oklch(.78 .16 305)}.json .nu,.json .p{color:var(--fg-faint)}.md{font-size:13px;line-height:1.6;color:var(--fg)}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md strong{color:var(--fg);font-weight:600}.md em{color:var(--fg-muted)}.md code{font-family:var(--mono);font-size:12px;background:var(--bg-4);border:1px solid var(--border);padding:0 5px;border-radius:3px;color:#f0ba59}.md pre{font-family:var(--mono);font-size:12px;background:var(--bg-4);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin:8px 0;overflow-x:auto;color:var(--fg);line-height:1.55}.md pre code{background:transparent;border:0;padding:0;color:inherit}.md ul,.md ol{margin:0 0 8px 18px;padding:0}.md li{margin-bottom:2px}.md h2,.md h3{margin:8px 0 6px;font-size:14px;font-weight:600}.stream-cursor{display:inline-block;width:7px;height:14px;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink 1s steps(2,end) infinite}@keyframes blink{50%{opacity:0}}.usage-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.usage-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.usage-card .l{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-faint)}.usage-card .v{font-family:var(--mono);font-size:18px;color:var(--fg);margin-top:4px}.usage-card .bd{margin-top:6px;font-family:var(--mono);font-size:10.5px;color:var(--fg-dim);display:flex;flex-direction:column;gap:2px}.error-pane{margin-top:8px;border:1px solid oklch(.7 .18 25 / .35);background:var(--error-soft);border-radius:var(--radius);padding:10px 12px;display:flex;gap:10px;align-items:flex-start;color:var(--error);font-family:var(--mono);font-size:12px}.error-pane.warn{border-color:#e3ad4b59;background:var(--warn-soft);color:var(--warn)}.error-pane svg{flex-shrink:0;margin-top:1px}.step-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);padding:0 12px;background:var(--bg-1)}.step-tabs button{background:transparent;border:0;font-family:var(--sans);font-size:11.5px;color:var(--fg-dim);padding:8px 12px;cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:6px;border-bottom:2px solid transparent;margin-bottom:-1px}.step-tabs button:hover{color:var(--fg)}.step-tabs button.active{color:var(--fg);border-bottom-color:var(--accent)}.step-tabs button .ct{font-family:var(--mono);font-size:10px;color:var(--fg-faint);background:var(--bg-3);padding:0 5px;border-radius:999px}.step-single{padding:14px}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#ffffff0f;border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#ffffff1f;border:2px solid transparent;background-clip:padding-box}.timeline{padding:16px 24px 80px;overflow-y:auto}.tl-head{display:grid;grid-template-columns:200px 1fr;gap:12px;position:sticky;top:0;background:var(--bg-0);z-index:2;padding-bottom:8px;border-bottom:1px solid var(--border)}.tl-axis{position:relative;height:22px}.tl-tick{position:absolute;top:0;font-family:var(--mono);font-size:10px;color:var(--fg-faint);padding-left:4px;border-left:1px solid var(--border);height:22px}.tl-rows{display:grid;gap:6px;padding-top:12px}.tl-row{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:center;min-height:32px}.tl-label{font-size:12px;color:var(--fg-muted);display:flex;align-items:center;gap:8px;min-width:0}.tl-label .step-num{width:22px;height:22px;font-size:10.5px}.tl-label .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--mono);font-size:11px}.tl-track{position:relative;height:28px;background:linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px) 0 0 / 10% 100% repeat-x,var(--bg-1);border-radius:var(--radius-sm);border:1px solid var(--border)}.tl-bar{position:absolute;top:4px;bottom:4px;border-radius:3px;background:var(--accent);border:1px solid oklch(1 0 0 / .1);cursor:pointer;transition:filter .1s ease}.tl-bar:hover{filter:brightness(1.15)}.tl-bar.subagent{background:var(--subagent)}.tl-bar.errored{background:var(--error)}.tl-bar.aborted{background:var(--warn)}.tl-bar.running{background:linear-gradient(90deg,var(--accent),oklch(.72 .16 254 / .3));animation:shimmer 2s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:.95}50%{opacity:.6}}.tl-bar-label{position:absolute;left:6px;top:50%;transform:translateY(-50%);font-family:var(--mono);font-size:10px;color:#0a0b0d;white-space:nowrap;pointer-events:none;font-weight:600;letter-spacing:.02em}.tweaks-anchor{position:fixed;bottom:16px;right:16px;z-index:50}.chat-scroll{overflow-y:auto;padding:18px 24px 80px}.chat-inner{max-width:820px;margin:0 auto;display:grid;gap:14px}.chat-turn{display:grid;gap:6px}.chat-bubble{border-radius:10px;padding:10px 14px;background:var(--bg-1);border:1px solid var(--border);font-size:13px;line-height:1.55;max-width:92%}.chat-bubble.user{justify-self:end;background:var(--accent-soft);border-color:#5da7ff59;border-color:oklch(.72 .16 254 / .35);color:var(--fg);max-width:72%}.chat-bubble.assistant{justify-self:start;background:var(--bg-1);width:100%}.chat-bubble.assistant.error{border-color:#fa68634d}.chat-bubble.assistant.aborted{border-color:#e3ad4b4d}.bubble-meta{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);margin-bottom:6px;flex-wrap:wrap}.bubble-meta>*{white-space:nowrap}.bubble-meta .sep{opacity:.55}.bubble-meta .model-extra{color:var(--fg-dim);background:var(--bg-3);padding:0 5px;border-radius:999px;font-size:10px}.chat-bubble.user .bubble-meta{color:#83bbff;color:oklch(.78 .13 254)}.bubble-body{color:var(--fg)}.bubble-body .md{font-size:13px}.bubble-empty{color:var(--fg-faint);font-style:italic;font-size:12.5px;display:inline-flex;align-items:center;gap:6px}.bubble-empty.err{color:var(--error);font-style:normal}.bubble-foot{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border);display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10.5px;color:var(--fg-faint);cursor:pointer;-webkit-user-select:none;user-select:none}.bubble-foot:hover{color:var(--fg-muted)}.bubble-foot .run-id-chip{margin-left:auto;font-size:10px;color:var(--fg-faint);background:var(--bg-3);border:1px solid var(--border);padding:0 6px;border-radius:999px}.inline-steps{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);display:grid;gap:4px}.thread-run{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:6px}.thread-run:hover,.thread-run.open{border-color:var(--border-strong)}.thread-run.errored{border-color:#fa68634d}.thread-run-head{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:10px 14px;cursor:pointer;-webkit-user-select:none;user-select:none}.thread-run-head .chev{color:var(--fg-faint);transition:transform .12s ease}.thread-run.open .thread-run-head .chev{transform:rotate(90deg)}.thread-run-title{font-size:12.5px;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-run-aside{display:flex;gap:14px;font-family:var(--mono);font-size:11px;color:var(--fg-faint)}.thread-run .inline-steps{margin:0;padding:12px 14px;border-top:1px solid var(--border)}.kbd-inline{font-family:var(--mono);font-size:10.5px;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:3px;padding:0 4px;color:var(--fg-muted)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:grid;place-items:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog{background:var(--bg-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:20px;width:380px;box-shadow:0 16px 40px #00000080}.dialog h3{margin:0 0 6px;font-size:14px;font-weight:600}.dialog p{margin:0 0 16px;color:var(--fg-muted);font-size:13px}.dialog .actions{display:flex;justify-content:flex-end;gap:8px}.btn.primary{background:var(--accent);color:#0f1216;border-color:var(--accent);font-weight:500}.btn.primary:hover{background:#77b4ff;background:oklch(.76 .16 254)}.btn.dangerous{background:var(--error);color:#0f1216;border-color:var(--error);font-weight:500}.btn.dangerous:hover{background:#ff7e77;background:oklch(.74 .18 25)}.app.dense .run-card{padding:7px 10px 7px 6px}.app.dense .step+.step{margin-top:2px}.app.dense .steps-scroll{padding:12px 18px 60px}.app.dense .detail-head{padding:12px 18px}.sidebar-load-more{display:block;width:calc(100% - 16px);margin:8px;padding:8px 10px;font-family:var(--mono);font-size:11px;color:var(--fg-muted);background:var(--bg-2);border:1px dashed var(--border);border-radius:6px;cursor:pointer;text-align:center;letter-spacing:.04em;text-transform:uppercase}.sidebar-load-more:hover:not(:disabled){border-style:solid;border-color:var(--border-strong);color:var(--fg)}.sidebar-load-more:disabled{opacity:.5;cursor:progress}.cm.subagent{border-left:2px solid var(--subagent)}.cm.subagent .cm-meta{color:var(--subagent)}.sub-badge{font-family:var(--mono);font-size:9px;padding:0 5px;border-radius:3px;background:var(--subagent-soft);color:var(--subagent);letter-spacing:.04em;text-transform:uppercase}.run-row-compact.subagent .rrc-idx{background:var(--subagent-soft);color:var(--subagent);border-color:#17d0d880}.run-row-compact.subagent .rrc-title{color:var(--subagent)}.ttl-rl-idx.subagent{background:var(--subagent-soft);color:var(--subagent);border-color:#17d0d880}.ttl-rl-bar.subagent{background:var(--subagent-soft);border-color:var(--subagent)}.ttl-rl-bar.subagent .ttl-rl-bar-dur,.ttl-rl-bar.subagent .ttl-rl-bar-steps{color:var(--subagent)}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>ailog — LLM viewer</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
9
|
+
<link
|
|
10
|
+
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap"
|
|
11
|
+
rel="stylesheet"
|
|
12
|
+
/>
|
|
13
|
+
<script type="module" crossorigin src="/assets/index-BBTm7Mxn.js"></script>
|
|
14
|
+
<link rel="stylesheet" crossorigin href="/assets/index-x-B7u97h.css">
|
|
15
|
+
</head>
|
|
16
|
+
<body>
|
|
17
|
+
<div id="root"></div>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { LanguageModelV4Middleware } from '@ai-sdk/provider';
|
|
2
|
+
|
|
3
|
+
interface AiSdkMiddlewareOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Optional label stored on the run, surfaced as `function_id` in the
|
|
6
|
+
* viewer. Honored only when the run is created (first writer wins).
|
|
7
|
+
*/
|
|
8
|
+
functionId?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Optional thread id. When provided, every run produced by this
|
|
11
|
+
* middleware instance is tagged with this thread, so orchestrator and
|
|
12
|
+
* subagent runs that share the same `threadId` show up side-by-side
|
|
13
|
+
* under one Thread in the viewer. **If omitted**, an `auto-<short>`
|
|
14
|
+
* thread is generated for each run.
|
|
15
|
+
*/
|
|
16
|
+
threadId?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Caller-supplied metadata stored on the **Thread** (e.g. `userId`,
|
|
19
|
+
* `organizationId`, `topic`, `persona`). First-writer-wins: only the
|
|
20
|
+
* call that creates the Thread record sets this; subsequent runs
|
|
21
|
+
* joining the same thread can't change it.
|
|
22
|
+
*/
|
|
23
|
+
metadata?: Record<string, unknown> | null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* AI SDK `LanguageModelV4Middleware` that records every `generateText`
|
|
27
|
+
* / `streamText` call to ailog.
|
|
28
|
+
*
|
|
29
|
+
* Each middleware instance owns one Run. Within a single `generateText`
|
|
30
|
+
* invocation (incl. multi-step tool-calling) every step lands in that
|
|
31
|
+
* Run. To group multiple Runs (e.g. orchestrator + subagent calls that
|
|
32
|
+
* each construct their own wrapped model), share a `threadId`:
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* import { aiSdkMiddleware } from '@ailog/cli';
|
|
36
|
+
*
|
|
37
|
+
* const orchestrator = wrapLanguageModel({
|
|
38
|
+
* middleware: aiSdkMiddleware({ threadId: 'tokyo', functionId: 'plan-trip' }),
|
|
39
|
+
* model,
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* // Inside a tool's execute callback — share the threadId, not the run:
|
|
43
|
+
* const subagent = wrapLanguageModel({
|
|
44
|
+
* middleware: aiSdkMiddleware({ threadId: 'tokyo' }),
|
|
45
|
+
* model,
|
|
46
|
+
* });
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
declare const aiSdkMiddleware: (options?: AiSdkMiddlewareOptions) => LanguageModelV4Middleware;
|
|
50
|
+
|
|
51
|
+
interface StartStepInput {
|
|
52
|
+
type?: 'generate' | 'stream';
|
|
53
|
+
modelId: string;
|
|
54
|
+
provider?: string | null;
|
|
55
|
+
input: unknown;
|
|
56
|
+
providerOptions?: unknown;
|
|
57
|
+
}
|
|
58
|
+
interface EndStepInput {
|
|
59
|
+
output?: unknown;
|
|
60
|
+
usage?: unknown;
|
|
61
|
+
error?: unknown;
|
|
62
|
+
rawRequest?: unknown;
|
|
63
|
+
rawResponse?: unknown;
|
|
64
|
+
rawChunks?: unknown;
|
|
65
|
+
}
|
|
66
|
+
interface StepHandle {
|
|
67
|
+
id: string;
|
|
68
|
+
end(result: EndStepInput): Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
interface RunHandle {
|
|
71
|
+
id: string;
|
|
72
|
+
step(input: StartStepInput): Promise<StepHandle>;
|
|
73
|
+
}
|
|
74
|
+
interface CreateLoggerOptions {
|
|
75
|
+
/**
|
|
76
|
+
* Run label shown in the viewer. Honored only when the run is being
|
|
77
|
+
* created (first writer wins).
|
|
78
|
+
*/
|
|
79
|
+
functionId?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Optional thread id. When provided, the run is tagged with this id
|
|
82
|
+
* and a `Thread` record is created or updated. **If omitted**, an
|
|
83
|
+
* `auto-<short>` thread is generated. Two loggers that share a
|
|
84
|
+
* `threadId` create two distinct Runs that show up side-by-side in
|
|
85
|
+
* the same Thread (run-level merging across loggers is intentionally
|
|
86
|
+
* not supported — share a Thread, not a Run).
|
|
87
|
+
*/
|
|
88
|
+
threadId?: string;
|
|
89
|
+
/**
|
|
90
|
+
* Caller-supplied metadata stored on the **Thread** (e.g. `userId`,
|
|
91
|
+
* `topic`, `persona`). First-writer-wins — only the call that
|
|
92
|
+
* actually creates the Thread record sets this.
|
|
93
|
+
*/
|
|
94
|
+
metadata?: Record<string, unknown> | null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Provider-agnostic logger. Use this to record LLM calls from any SDK
|
|
98
|
+
* or provider, not just the Vercel AI SDK. Each `createLogger()` call
|
|
99
|
+
* creates a fresh Run; pass a shared `threadId` to group several Runs
|
|
100
|
+
* (orchestrator + subagent loggers) under one Thread in the viewer.
|
|
101
|
+
*
|
|
102
|
+
* ```ts
|
|
103
|
+
* import { createLogger } from '@ailog/cli';
|
|
104
|
+
*
|
|
105
|
+
* const run = await createLogger({ functionId: 'chat' });
|
|
106
|
+
* const step = await run.step({
|
|
107
|
+
* modelId: 'claude-opus-4-7',
|
|
108
|
+
* provider: 'anthropic',
|
|
109
|
+
* input: { messages },
|
|
110
|
+
* });
|
|
111
|
+
* try {
|
|
112
|
+
* const response = await callAnthropic(messages);
|
|
113
|
+
* await step.end({ output: response, usage: response.usage });
|
|
114
|
+
* } catch (error) {
|
|
115
|
+
* await step.end({ error });
|
|
116
|
+
* throw error;
|
|
117
|
+
* }
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
declare function createLogger(options?: CreateLoggerOptions): Promise<RunHandle>;
|
|
121
|
+
|
|
122
|
+
export { aiSdkMiddleware, createLogger };
|