p-spore 0.1.4 → 0.1.42
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/README.md +110 -15
- package/dist/agents/agent-manager.d.ts +3 -3
- package/dist/agents/agent-manager.d.ts.map +1 -1
- package/dist/agents/agent-manager.js +3 -2
- package/dist/agents/agent-manager.js.map +1 -1
- package/dist/application/agent-application.d.ts +29 -5
- package/dist/application/agent-application.d.ts.map +1 -1
- package/dist/application/agent-application.js +444 -14
- package/dist/application/agent-application.js.map +1 -1
- package/dist/articles/diff.d.ts +70 -0
- package/dist/articles/diff.d.ts.map +1 -0
- package/dist/articles/diff.js +330 -0
- package/dist/articles/diff.js.map +1 -0
- package/dist/articles/docx.d.ts +10 -0
- package/dist/articles/docx.d.ts.map +1 -0
- package/dist/articles/docx.js +219 -0
- package/dist/articles/docx.js.map +1 -0
- package/dist/articles/draft.d.ts +18 -0
- package/dist/articles/draft.d.ts.map +1 -0
- package/dist/articles/draft.js +88 -0
- package/dist/articles/draft.js.map +1 -0
- package/dist/articles/edits.d.ts +24 -0
- package/dist/articles/edits.d.ts.map +1 -0
- package/dist/articles/edits.js +54 -0
- package/dist/articles/edits.js.map +1 -0
- package/dist/articles/html.d.ts +10 -0
- package/dist/articles/html.d.ts.map +1 -0
- package/dist/articles/html.js +122 -0
- package/dist/articles/html.js.map +1 -0
- package/dist/articles/plain.d.ts +8 -0
- package/dist/articles/plain.d.ts.map +1 -0
- package/dist/articles/plain.js +69 -0
- package/dist/articles/plain.js.map +1 -0
- package/dist/articles/preview.d.ts +43 -0
- package/dist/articles/preview.d.ts.map +1 -0
- package/dist/articles/preview.js +90 -0
- package/dist/articles/preview.js.map +1 -0
- package/dist/articles/publish.d.ts +10 -0
- package/dist/articles/publish.d.ts.map +1 -0
- package/dist/articles/publish.js +54 -0
- package/dist/articles/publish.js.map +1 -0
- package/dist/articles/receipt.d.ts +16 -0
- package/dist/articles/receipt.d.ts.map +1 -0
- package/dist/articles/receipt.js +27 -0
- package/dist/articles/receipt.js.map +1 -0
- package/dist/articles/store.d.ts +78 -0
- package/dist/articles/store.d.ts.map +1 -0
- package/dist/articles/store.js +308 -0
- package/dist/articles/store.js.map +1 -0
- package/dist/articles/tool.d.ts +14 -0
- package/dist/articles/tool.d.ts.map +1 -0
- package/dist/articles/tool.js +175 -0
- package/dist/articles/tool.js.map +1 -0
- package/dist/articles/writer-context.d.ts +5 -0
- package/dist/articles/writer-context.d.ts.map +1 -0
- package/dist/articles/writer-context.js +56 -0
- package/dist/articles/writer-context.js.map +1 -0
- package/dist/articles/writer.d.ts +18 -0
- package/dist/articles/writer.d.ts.map +1 -0
- package/dist/articles/writer.js +79 -0
- package/dist/articles/writer.js.map +1 -0
- package/dist/articles/zip-write.d.ts +11 -0
- package/dist/articles/zip-write.d.ts.map +1 -0
- package/dist/articles/zip-write.js +63 -0
- package/dist/articles/zip-write.js.map +1 -0
- package/dist/bundled-skills/README.md +17 -0
- package/dist/bundled-skills/aegis-search/SKILL.md +59 -0
- package/dist/bundled-skills/aegis-search/bin/.gitkeep +0 -0
- package/dist/bundled-skills/article-canvas/SKILL.md +28 -0
- package/dist/bundled-skills/binaries.json +23 -0
- package/dist/bundled-skills/doc-extract/SKILL.md +56 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +407 -54
- package/dist/cli/main.js.map +1 -1
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +150 -6
- package/dist/config/config.js.map +1 -1
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +80 -11
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/desktop/application.d.ts +4 -0
- package/dist/desktop/application.d.ts.map +1 -0
- package/dist/desktop/application.js +1688 -0
- package/dist/desktop/application.js.map +1 -0
- package/dist/desktop/article-export.d.ts +12 -0
- package/dist/desktop/article-export.d.ts.map +1 -0
- package/dist/desktop/article-export.js +87 -0
- package/dist/desktop/article-export.js.map +1 -0
- package/dist/desktop/assets/pspore.png +0 -0
- package/dist/desktop/assets/pspore.svg +24 -0
- package/dist/desktop/conversation-smoke.d.ts +5 -0
- package/dist/desktop/conversation-smoke.d.ts.map +1 -0
- package/dist/desktop/conversation-smoke.js +93 -0
- package/dist/desktop/conversation-smoke.js.map +1 -0
- package/dist/desktop/daemon-bridge.d.ts.map +1 -1
- package/dist/desktop/daemon-bridge.js +62 -17
- package/dist/desktop/daemon-bridge.js.map +1 -1
- package/dist/desktop/ipc-contract.d.ts +124 -0
- package/dist/desktop/ipc-contract.d.ts.map +1 -1
- package/dist/desktop/ipc-contract.js +191 -12
- package/dist/desktop/ipc-contract.js.map +1 -1
- package/dist/desktop/local-path.d.ts +15 -0
- package/dist/desktop/local-path.d.ts.map +1 -0
- package/dist/desktop/local-path.js +59 -0
- package/dist/desktop/local-path.js.map +1 -0
- package/dist/desktop/main.d.ts +10 -1
- package/dist/desktop/main.d.ts.map +1 -1
- package/dist/desktop/main.js +122 -530
- package/dist/desktop/main.js.map +1 -1
- package/dist/desktop/native-startup.d.ts +4 -0
- package/dist/desktop/native-startup.d.ts.map +1 -0
- package/dist/desktop/native-startup.js +57 -0
- package/dist/desktop/native-startup.js.map +1 -0
- package/dist/desktop/preload.cjs +28 -1
- package/dist/desktop/renderer/article-panel.d.ts +45 -0
- package/dist/desktop/renderer/article-panel.d.ts.map +1 -0
- package/dist/desktop/renderer/article-panel.js +1126 -0
- package/dist/desktop/renderer/article-panel.js.map +1 -0
- package/dist/desktop/renderer/article-split.d.ts +32 -0
- package/dist/desktop/renderer/article-split.d.ts.map +1 -0
- package/dist/desktop/renderer/article-split.js +48 -0
- package/dist/desktop/renderer/article-split.js.map +1 -0
- package/dist/desktop/renderer/composer-file-references.d.ts +23 -0
- package/dist/desktop/renderer/composer-file-references.d.ts.map +1 -0
- package/dist/desktop/renderer/composer-file-references.js +51 -0
- package/dist/desktop/renderer/composer-file-references.js.map +1 -0
- package/dist/desktop/renderer/conversation.d.ts +23 -0
- package/dist/desktop/renderer/conversation.d.ts.map +1 -0
- package/dist/desktop/renderer/conversation.js +66 -0
- package/dist/desktop/renderer/conversation.js.map +1 -0
- package/dist/desktop/renderer/dom-reconcile.d.ts +15 -0
- package/dist/desktop/renderer/dom-reconcile.d.ts.map +1 -0
- package/dist/desktop/renderer/dom-reconcile.js +33 -0
- package/dist/desktop/renderer/dom-reconcile.js.map +1 -0
- package/dist/desktop/renderer/index.html +211 -34
- package/dist/desktop/renderer/indexing-view.d.ts +22 -0
- package/dist/desktop/renderer/indexing-view.d.ts.map +1 -0
- package/dist/desktop/renderer/indexing-view.js +115 -0
- package/dist/desktop/renderer/indexing-view.js.map +1 -0
- package/dist/desktop/renderer/markdown-view.d.ts +23 -0
- package/dist/desktop/renderer/markdown-view.d.ts.map +1 -0
- package/dist/desktop/renderer/markdown-view.js +436 -0
- package/dist/desktop/renderer/markdown-view.js.map +1 -0
- package/dist/desktop/renderer/motion.d.ts +67 -0
- package/dist/desktop/renderer/motion.d.ts.map +1 -0
- package/dist/desktop/renderer/motion.js +296 -0
- package/dist/desktop/renderer/motion.js.map +1 -0
- package/dist/desktop/renderer/renderer.js +1788 -151
- package/dist/desktop/renderer/renderer.js.map +1 -1
- package/dist/desktop/renderer/session-find.d.ts +18 -0
- package/dist/desktop/renderer/session-find.d.ts.map +1 -0
- package/dist/desktop/renderer/session-find.js +29 -0
- package/dist/desktop/renderer/session-find.js.map +1 -0
- package/dist/desktop/renderer/session-search.d.ts +30 -0
- package/dist/desktop/renderer/session-search.d.ts.map +1 -0
- package/dist/desktop/renderer/session-search.js +296 -0
- package/dist/desktop/renderer/session-search.js.map +1 -0
- package/dist/desktop/renderer/store.d.ts +33 -0
- package/dist/desktop/renderer/store.d.ts.map +1 -1
- package/dist/desktop/renderer/store.js +92 -19
- package/dist/desktop/renderer/store.js.map +1 -1
- package/dist/desktop/renderer/styles.css +910 -268
- package/dist/desktop/renderer/vendor/gsap.min.js +11 -0
- package/dist/desktop/renderer-diagnostics.d.ts +5 -0
- package/dist/desktop/renderer-diagnostics.d.ts.map +1 -0
- package/dist/desktop/renderer-diagnostics.js +47 -0
- package/dist/desktop/renderer-diagnostics.js.map +1 -0
- package/dist/desktop/security.d.ts +26 -1
- package/dist/desktop/security.d.ts.map +1 -1
- package/dist/desktop/security.js +26 -6
- package/dist/desktop/security.js.map +1 -1
- package/dist/desktop/smoke-fixture.d.ts.map +1 -1
- package/dist/desktop/smoke-fixture.js +77 -3
- package/dist/desktop/smoke-fixture.js.map +1 -1
- package/dist/desktop/splash/index.html +25 -0
- package/dist/desktop/splash/splash.d.ts +2 -0
- package/dist/desktop/splash/splash.d.ts.map +1 -0
- package/dist/desktop/splash/splash.js +8 -0
- package/dist/desktop/splash/splash.js.map +1 -0
- package/dist/desktop/splash/styles.css +24 -0
- package/dist/desktop/system-open.d.ts +16 -0
- package/dist/desktop/system-open.d.ts.map +1 -0
- package/dist/desktop/system-open.js +90 -0
- package/dist/desktop/system-open.js.map +1 -0
- package/dist/desktop/validation.d.ts.map +1 -1
- package/dist/desktop/validation.js +99 -21
- package/dist/desktop/validation.js.map +1 -1
- package/dist/desktop/window-security.d.ts +4 -0
- package/dist/desktop/window-security.d.ts.map +1 -0
- package/dist/desktop/window-security.js +26 -0
- package/dist/desktop/window-security.js.map +1 -0
- package/dist/documents/errors.d.ts +12 -0
- package/dist/documents/errors.d.ts.map +1 -0
- package/dist/documents/errors.js +12 -0
- package/dist/documents/errors.js.map +1 -0
- package/dist/documents/extract.d.ts +37 -0
- package/dist/documents/extract.d.ts.map +1 -0
- package/dist/documents/extract.js +90 -0
- package/dist/documents/extract.js.map +1 -0
- package/dist/documents/legacy-office.d.ts +23 -0
- package/dist/documents/legacy-office.d.ts.map +1 -0
- package/dist/documents/legacy-office.js +439 -0
- package/dist/documents/legacy-office.js.map +1 -0
- package/dist/documents/ole.d.ts +20 -0
- package/dist/documents/ole.d.ts.map +1 -0
- package/dist/documents/ole.js +189 -0
- package/dist/documents/ole.js.map +1 -0
- package/dist/documents/ooxml.d.ts +23 -0
- package/dist/documents/ooxml.d.ts.map +1 -0
- package/dist/documents/ooxml.js +197 -0
- package/dist/documents/ooxml.js.map +1 -0
- package/dist/documents/pdf.d.ts +20 -0
- package/dist/documents/pdf.d.ts.map +1 -0
- package/dist/documents/pdf.js +95 -0
- package/dist/documents/pdf.js.map +1 -0
- package/dist/documents/plain-text.d.ts +22 -0
- package/dist/documents/plain-text.d.ts.map +1 -0
- package/dist/documents/plain-text.js +57 -0
- package/dist/documents/plain-text.js.map +1 -0
- package/dist/documents/zip.d.ts +15 -0
- package/dist/documents/zip.d.ts.map +1 -0
- package/dist/documents/zip.js +137 -0
- package/dist/documents/zip.js.map +1 -0
- package/dist/domain/indexing.d.ts +60 -0
- package/dist/domain/indexing.d.ts.map +1 -0
- package/dist/domain/indexing.js +13 -0
- package/dist/domain/indexing.js.map +1 -0
- package/dist/domain/runtime.d.ts +133 -5
- package/dist/domain/runtime.d.ts.map +1 -1
- package/dist/gateway/local-gateway.d.ts +8 -0
- package/dist/gateway/local-gateway.d.ts.map +1 -1
- package/dist/gateway/local-gateway.js +105 -21
- package/dist/gateway/local-gateway.js.map +1 -1
- package/dist/indexing/index-service.d.ts +56 -0
- package/dist/indexing/index-service.d.ts.map +1 -0
- package/dist/indexing/index-service.js +262 -0
- package/dist/indexing/index-service.js.map +1 -0
- package/dist/kernel/loop.d.ts +10 -0
- package/dist/kernel/loop.d.ts.map +1 -1
- package/dist/kernel/loop.js +6 -2
- package/dist/kernel/loop.js.map +1 -1
- package/dist/kernel/reducer.d.ts.map +1 -1
- package/dist/kernel/reducer.js +17 -1
- package/dist/kernel/reducer.js.map +1 -1
- package/dist/kernel/state.d.ts +17 -4
- package/dist/kernel/state.d.ts.map +1 -1
- package/dist/kernel/state.js +2 -0
- package/dist/kernel/state.js.map +1 -1
- package/dist/pi/context-budget.d.ts +8 -0
- package/dist/pi/context-budget.d.ts.map +1 -0
- package/dist/pi/context-budget.js +62 -0
- package/dist/pi/context-budget.js.map +1 -0
- package/dist/pi/pi-runtime-adapter.d.ts +38 -3
- package/dist/pi/pi-runtime-adapter.d.ts.map +1 -1
- package/dist/pi/pi-runtime-adapter.js +551 -56
- package/dist/pi/pi-runtime-adapter.js.map +1 -1
- package/dist/plugins/bundled-skills.d.ts +56 -0
- package/dist/plugins/bundled-skills.d.ts.map +1 -0
- package/dist/plugins/bundled-skills.js +243 -0
- package/dist/plugins/bundled-skills.js.map +1 -0
- package/dist/plugins/extension-manager.d.ts +23 -1
- package/dist/plugins/extension-manager.d.ts.map +1 -1
- package/dist/plugins/extension-manager.js +117 -0
- package/dist/plugins/extension-manager.js.map +1 -1
- package/dist/plugins/types.d.ts +29 -0
- package/dist/plugins/types.d.ts.map +1 -1
- package/dist/plugins/workspace-skills.d.ts +36 -0
- package/dist/plugins/workspace-skills.d.ts.map +1 -0
- package/dist/plugins/workspace-skills.js +309 -0
- package/dist/plugins/workspace-skills.js.map +1 -0
- package/dist/policy/policy.d.ts.map +1 -1
- package/dist/policy/policy.js +22 -3
- package/dist/policy/policy.js.map +1 -1
- package/dist/protocol/client.d.ts +1 -0
- package/dist/protocol/client.d.ts.map +1 -1
- package/dist/protocol/client.js +49 -24
- package/dist/protocol/client.js.map +1 -1
- package/dist/protocol/limits.d.ts +69 -0
- package/dist/protocol/limits.d.ts.map +1 -0
- package/dist/protocol/limits.js +166 -0
- package/dist/protocol/limits.js.map +1 -0
- package/dist/protocol/schema.d.ts +6 -0
- package/dist/protocol/schema.d.ts.map +1 -1
- package/dist/protocol/schema.js.map +1 -1
- package/dist/protocol/server-frame-codec.d.ts +18 -0
- package/dist/protocol/server-frame-codec.d.ts.map +1 -0
- package/dist/protocol/server-frame-codec.js +211 -0
- package/dist/protocol/server-frame-codec.js.map +1 -0
- package/dist/service/legacy-daemon.d.ts +6 -0
- package/dist/service/legacy-daemon.d.ts.map +1 -0
- package/dist/service/legacy-daemon.js +42 -0
- package/dist/service/legacy-daemon.js.map +1 -0
- package/dist/service/service-launch.d.ts +10 -0
- package/dist/service/service-launch.d.ts.map +1 -0
- package/dist/service/service-launch.js +56 -0
- package/dist/service/service-launch.js.map +1 -0
- package/dist/service/system-service.d.ts +57 -0
- package/dist/service/system-service.d.ts.map +1 -0
- package/dist/service/system-service.js +263 -0
- package/dist/service/system-service.js.map +1 -0
- package/dist/sessions/session-catalog.d.ts +45 -0
- package/dist/sessions/session-catalog.d.ts.map +1 -0
- package/dist/sessions/session-catalog.js +270 -0
- package/dist/sessions/session-catalog.js.map +1 -0
- package/dist/sessions/session-file.d.ts +12 -0
- package/dist/sessions/session-file.d.ts.map +1 -0
- package/dist/sessions/session-file.js +47 -0
- package/dist/sessions/session-file.js.map +1 -0
- package/dist/settings/compaction-settings.d.ts +10 -0
- package/dist/settings/compaction-settings.d.ts.map +1 -0
- package/dist/settings/compaction-settings.js +8 -0
- package/dist/settings/compaction-settings.js.map +1 -0
- package/dist/settings/indexing-settings-service.d.ts +16 -0
- package/dist/settings/indexing-settings-service.d.ts.map +1 -0
- package/dist/settings/indexing-settings-service.js +57 -0
- package/dist/settings/indexing-settings-service.js.map +1 -0
- package/dist/settings/indexing-settings.d.ts +30 -0
- package/dist/settings/indexing-settings.d.ts.map +1 -0
- package/dist/settings/indexing-settings.js +58 -0
- package/dist/settings/indexing-settings.js.map +1 -0
- package/dist/settings/llm-settings-service.d.ts +6 -0
- package/dist/settings/llm-settings-service.d.ts.map +1 -1
- package/dist/settings/llm-settings-service.js +137 -12
- package/dist/settings/llm-settings-service.js.map +1 -1
- package/dist/settings/llm-settings.d.ts +68 -2
- package/dist/settings/llm-settings.d.ts.map +1 -1
- package/dist/settings/llm-settings.js +119 -17
- package/dist/settings/llm-settings.js.map +1 -1
- package/dist/settings/model-api.d.ts +10 -0
- package/dist/settings/model-api.d.ts.map +1 -0
- package/dist/settings/model-api.js +10 -0
- package/dist/settings/model-api.js.map +1 -0
- package/dist/storage/home.d.ts +1 -0
- package/dist/storage/home.d.ts.map +1 -1
- package/dist/storage/home.js +37 -2
- package/dist/storage/home.js.map +1 -1
- package/dist/tools/core-tools.d.ts +2 -0
- package/dist/tools/core-tools.d.ts.map +1 -1
- package/dist/tools/core-tools.js +91 -1
- package/dist/tools/core-tools.js.map +1 -1
- package/dist/ui/shared/activity.d.ts +2 -0
- package/dist/ui/shared/activity.d.ts.map +1 -1
- package/dist/ui/shared/activity.js +18 -4
- package/dist/ui/shared/activity.js.map +1 -1
- package/dist/ui/shared/full-message.d.ts +22 -0
- package/dist/ui/shared/full-message.d.ts.map +1 -0
- package/dist/ui/shared/full-message.js +40 -0
- package/dist/ui/shared/full-message.js.map +1 -0
- package/dist/ui/shared/local-links.d.ts +7 -0
- package/dist/ui/shared/local-links.d.ts.map +1 -0
- package/dist/ui/shared/local-links.js +24 -0
- package/dist/ui/shared/local-links.js.map +1 -0
- package/dist/ui/shared/markdown-stream.d.ts +25 -0
- package/dist/ui/shared/markdown-stream.d.ts.map +1 -0
- package/dist/ui/shared/markdown-stream.js +35 -0
- package/dist/ui/shared/markdown-stream.js.map +1 -0
- package/dist/ui/shared/markdown.d.ts +70 -0
- package/dist/ui/shared/markdown.d.ts.map +1 -0
- package/dist/ui/shared/markdown.js +434 -0
- package/dist/ui/shared/markdown.js.map +1 -0
- package/dist/ui/shared/presentation.d.ts +10 -2
- package/dist/ui/shared/presentation.d.ts.map +1 -1
- package/dist/ui/shared/presentation.js +83 -22
- package/dist/ui/shared/presentation.js.map +1 -1
- package/dist/ui/shared/protocol-state.d.ts +19 -0
- package/dist/ui/shared/protocol-state.d.ts.map +1 -1
- package/dist/ui/shared/protocol-state.js +188 -26
- package/dist/ui/shared/protocol-state.js.map +1 -1
- package/dist/ui/shared/virtual-list.d.ts +34 -0
- package/dist/ui/shared/virtual-list.d.ts.map +1 -0
- package/dist/ui/shared/virtual-list.js +143 -0
- package/dist/ui/shared/virtual-list.js.map +1 -0
- package/dist/ui/tui/commands.d.ts +1 -1
- package/dist/ui/tui/commands.d.ts.map +1 -1
- package/dist/ui/tui/commands.js +8 -3
- package/dist/ui/tui/commands.js.map +1 -1
- package/dist/ui/tui/store.d.ts +22 -1
- package/dist/ui/tui/store.d.ts.map +1 -1
- package/dist/ui/tui/store.js +50 -3
- package/dist/ui/tui/store.js.map +1 -1
- package/dist/ui/tui/tui-app.d.ts.map +1 -1
- package/dist/ui/tui/tui-app.js +231 -31
- package/dist/ui/tui/tui-app.js.map +1 -1
- package/dist/ui/tui/view.d.ts +7 -0
- package/dist/ui/tui/view.d.ts.map +1 -1
- package/dist/ui/tui/view.js +161 -57
- package/dist/ui/tui/view.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +13 -2
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reports whether a scroll viewport is close enough to its lower boundary to
|
|
3
|
+
* keep following newly appended content. Non-scrollable viewports are at end.
|
|
4
|
+
*/
|
|
5
|
+
export function isScrollNearEnd(scrollHeight, scrollTop, clientHeight, threshold = 24) {
|
|
6
|
+
if (![scrollHeight, scrollTop, clientHeight, threshold].every(Number.isFinite))
|
|
7
|
+
return false;
|
|
8
|
+
const maximumTop = Math.max(0, scrollHeight - Math.max(0, clientHeight));
|
|
9
|
+
const currentTop = Math.min(maximumTop, Math.max(0, scrollTop));
|
|
10
|
+
return maximumTop - currentTop <= Math.max(0, threshold);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* How far outside the viewport an item may be dragged back in by `keep`.
|
|
14
|
+
*
|
|
15
|
+
* Keeping one item means keeping everything between it and the viewport, since
|
|
16
|
+
* the window is contiguous. A reader holding a selection is looking at
|
|
17
|
+
* something near what is on screen; past this many items it is scrollback they
|
|
18
|
+
* have left behind, and the list stops paying to render the gap.
|
|
19
|
+
*/
|
|
20
|
+
const KEEP_SPAN_LIMIT = 40;
|
|
21
|
+
/**
|
|
22
|
+
* Variable-height list index backed by a Fenwick tree. Message measurements are
|
|
23
|
+
* retained by stable key, while viewport lookup and height updates stay O(log n).
|
|
24
|
+
*/
|
|
25
|
+
export class VirtualHeightIndex {
|
|
26
|
+
#estimatedSize;
|
|
27
|
+
#measured = new Map();
|
|
28
|
+
#keys = [];
|
|
29
|
+
#positions = new Map();
|
|
30
|
+
#sizes = [];
|
|
31
|
+
#tree = [0];
|
|
32
|
+
constructor(estimatedSize = 160) {
|
|
33
|
+
if (!Number.isFinite(estimatedSize) || estimatedSize <= 0) {
|
|
34
|
+
throw new Error("estimatedSize must be positive");
|
|
35
|
+
}
|
|
36
|
+
this.#estimatedSize = estimatedSize;
|
|
37
|
+
}
|
|
38
|
+
get count() {
|
|
39
|
+
return this.#keys.length;
|
|
40
|
+
}
|
|
41
|
+
sync(keys) {
|
|
42
|
+
if (sameKeys(this.#keys, keys))
|
|
43
|
+
return;
|
|
44
|
+
this.#keys = [...keys];
|
|
45
|
+
this.#positions = new Map(keys.map((key, index) => [key, index]));
|
|
46
|
+
this.#sizes = keys.map((key) => this.#measured.get(key) ?? this.#estimatedSize);
|
|
47
|
+
this.#tree = Array.from({ length: keys.length + 1 }, () => 0);
|
|
48
|
+
for (const [index, size] of this.#sizes.entries())
|
|
49
|
+
this.#add(index, size);
|
|
50
|
+
// Measurements from replaced/compacted histories should not retain DOM-sized
|
|
51
|
+
// state forever. Keep only keys that still exist in the current transcript.
|
|
52
|
+
for (const key of this.#measured.keys()) {
|
|
53
|
+
if (!this.#positions.has(key))
|
|
54
|
+
this.#measured.delete(key);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
update(key, size) {
|
|
58
|
+
const index = this.#positions.get(key);
|
|
59
|
+
if (index === undefined || !Number.isFinite(size) || size <= 0)
|
|
60
|
+
return false;
|
|
61
|
+
const previous = this.#sizes[index] ?? this.#estimatedSize;
|
|
62
|
+
if (Math.abs(previous - size) < 0.5)
|
|
63
|
+
return false;
|
|
64
|
+
this.#sizes[index] = size;
|
|
65
|
+
this.#measured.set(key, size);
|
|
66
|
+
this.#add(index, size - previous);
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* `keep` names one item that must stay in the window even if the viewport has
|
|
71
|
+
* moved off it — the item holding the reader's selection. Dropping its element
|
|
72
|
+
* would collapse the selection, and a growing message at the tail is enough to
|
|
73
|
+
* shift the window by an item while they are still dragging.
|
|
74
|
+
*/
|
|
75
|
+
range(scrollTop, viewportSize, overscan = 600, keep) {
|
|
76
|
+
const count = this.#keys.length;
|
|
77
|
+
const totalSize = this.totalSize();
|
|
78
|
+
if (count === 0)
|
|
79
|
+
return { start: 0, end: 0, paddingStart: 0, paddingEnd: 0, totalSize: 0 };
|
|
80
|
+
const safeTop = Math.max(0, Number.isFinite(scrollTop) ? scrollTop : 0);
|
|
81
|
+
const safeViewport = Math.max(0, Number.isFinite(viewportSize) ? viewportSize : 0);
|
|
82
|
+
const safeOverscan = Math.max(0, Number.isFinite(overscan) ? overscan : 0);
|
|
83
|
+
let start = this.#indexAtOffset(Math.max(0, safeTop - safeOverscan));
|
|
84
|
+
const last = this.#indexAtOffset(Math.min(totalSize, safeTop + safeViewport + safeOverscan));
|
|
85
|
+
let end = Math.min(count, last + 1);
|
|
86
|
+
if (keep !== undefined && Number.isInteger(keep) && keep >= 0 && keep < count) {
|
|
87
|
+
if (keep < start && start - keep <= KEEP_SPAN_LIMIT)
|
|
88
|
+
start = keep;
|
|
89
|
+
if (keep >= end && keep - end < KEEP_SPAN_LIMIT)
|
|
90
|
+
end = keep + 1;
|
|
91
|
+
}
|
|
92
|
+
const paddingStart = this.#prefix(start);
|
|
93
|
+
const paddingEnd = Math.max(0, totalSize - this.#prefix(end));
|
|
94
|
+
return { start, end, paddingStart, paddingEnd, totalSize };
|
|
95
|
+
}
|
|
96
|
+
totalSize() {
|
|
97
|
+
return this.#prefix(this.#keys.length);
|
|
98
|
+
}
|
|
99
|
+
/** Pixel offset of an item, used to scroll a match into the virtual window. */
|
|
100
|
+
offsetAt(index) {
|
|
101
|
+
if (!Number.isInteger(index) || index <= 0)
|
|
102
|
+
return 0;
|
|
103
|
+
return this.#prefix(Math.min(index, this.#keys.length));
|
|
104
|
+
}
|
|
105
|
+
#add(index, delta) {
|
|
106
|
+
for (let cursor = index + 1; cursor < this.#tree.length; cursor += cursor & -cursor) {
|
|
107
|
+
this.#tree[cursor] = (this.#tree[cursor] ?? 0) + delta;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
#prefix(end) {
|
|
111
|
+
let total = 0;
|
|
112
|
+
for (let cursor = Math.min(end, this.#keys.length); cursor > 0; cursor -= cursor & -cursor) {
|
|
113
|
+
total += this.#tree[cursor] ?? 0;
|
|
114
|
+
}
|
|
115
|
+
return total;
|
|
116
|
+
}
|
|
117
|
+
#indexAtOffset(offset) {
|
|
118
|
+
if (offset <= 0)
|
|
119
|
+
return 0;
|
|
120
|
+
let index = 0;
|
|
121
|
+
let accumulated = 0;
|
|
122
|
+
let bit = highestPowerOfTwoAtMost(this.#keys.length);
|
|
123
|
+
while (bit > 0) {
|
|
124
|
+
const next = index + bit;
|
|
125
|
+
const value = next < this.#tree.length ? this.#tree[next] ?? 0 : 0;
|
|
126
|
+
if (next <= this.#keys.length && accumulated + value <= offset) {
|
|
127
|
+
index = next;
|
|
128
|
+
accumulated += value;
|
|
129
|
+
}
|
|
130
|
+
bit >>= 1;
|
|
131
|
+
}
|
|
132
|
+
return Math.min(this.#keys.length - 1, index);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function sameKeys(left, right) {
|
|
136
|
+
return left.length === right.length && left.every((key, index) => key === right[index]);
|
|
137
|
+
}
|
|
138
|
+
function highestPowerOfTwoAtMost(value) {
|
|
139
|
+
if (value <= 0)
|
|
140
|
+
return 0;
|
|
141
|
+
return 2 ** Math.floor(Math.log2(value));
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=virtual-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-list.js","sourceRoot":"","sources":["../../../src/ui/shared/virtual-list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const TUI_HELP_LINES: readonly ["CONVERSATION", " text Send to selected target", " /
|
|
1
|
+
export declare const TUI_HELP_LINES: readonly ["CONVERSATION", " text Send to selected target", " /new [TITLE] Create a persistent session", " /select ID Switch session and history", " /delete [ID] 删除会话及其聊天记录(默认当前会话)", " /send-now N 直接发送消息(否则继续排队)", " /abort /compact", " /work [STEP_ID] Work history or step details", "", "MODEL SETTINGS", " /config Show current settings", " /config wizard Launch guided setup", " /config set PROVIDER [MODEL] [THINKING]", " /config set custom-openai MODEL BASE_URL [chat|responses] [THINKING]", " /config provider deepseek|openai", " /config model MODEL /config thinking LEVEL", " /config endpoint BASE_URL [chat|responses]", " /config permissions ask_risky|ask_all|allow_all|deny", " /config compact on|off [RESERVE] [KEEP] [TRIGGER]", " /config key /config clear-key", " /config cookie /config clear-cookie", "", "AGENTS & AUTOMATION", " /agents /agent-spawn TEXT /agent ID MESSAGE", " /agent-join ID... /agent-cancel ID", " /jobs /runs /notifications /run JOB /cancel RUN", "", "INTEGRATIONS & RESOURCES", " /mcp /mcp-tools /mcp-discover ID /mcp-ping ID", " /resources /skills /plugins", " /resource-inspect NAME /resource-install NAME SHA256", " /resource-disable KIND NAME SHA256", "", "APPROVAL & NAVIGATION", " /approve [ID] [once|session|job] /deny [ID]", " /back /help /quit PgUp/PgDn Ctrl+C"];
|
|
2
2
|
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/ui/tui/commands.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/ui/tui/commands.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,m9CAqCjB,CAAC"}
|
package/dist/ui/tui/commands.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export const TUI_HELP_LINES = [
|
|
2
2
|
"CONVERSATION",
|
|
3
3
|
" text Send to selected target",
|
|
4
|
-
" /
|
|
5
|
-
" /
|
|
6
|
-
" /
|
|
4
|
+
" /new [TITLE] Create a persistent session",
|
|
5
|
+
" /select ID Switch session and history",
|
|
6
|
+
" /delete [ID] 删除会话及其聊天记录(默认当前会话)",
|
|
7
|
+
" /send-now N 直接发送消息(否则继续排队)",
|
|
8
|
+
" /abort /compact",
|
|
7
9
|
" /work [STEP_ID] Work history or step details",
|
|
8
10
|
"",
|
|
9
11
|
"MODEL SETTINGS",
|
|
@@ -14,7 +16,10 @@ export const TUI_HELP_LINES = [
|
|
|
14
16
|
" /config provider deepseek|openai",
|
|
15
17
|
" /config model MODEL /config thinking LEVEL",
|
|
16
18
|
" /config endpoint BASE_URL [chat|responses]",
|
|
19
|
+
" /config permissions ask_risky|ask_all|allow_all|deny",
|
|
20
|
+
" /config compact on|off [RESERVE] [KEEP] [TRIGGER]",
|
|
17
21
|
" /config key /config clear-key",
|
|
22
|
+
" /config cookie /config clear-cookie",
|
|
18
23
|
"",
|
|
19
24
|
"AGENTS & AUTOMATION",
|
|
20
25
|
" /agents /agent-spawn TEXT /agent ID MESSAGE",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/ui/tui/commands.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,wDAAwD;IACxD,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/ui/tui/commands.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,wDAAwD;IACxD,4DAA4D;IAC5D,2DAA2D;IAC3D,mDAAmD;IACnD,+CAA+C;IAC/C,oBAAoB;IACpB,6DAA6D;IAC7D,EAAE;IACF,gBAAgB;IAChB,sDAAsD;IACtD,oDAAoD;IACpD,2CAA2C;IAC3C,wEAAwE;IACxE,oCAAoC;IACpC,+CAA+C;IAC/C,8CAA8C;IAC9C,wDAAwD;IACxD,qDAAqD;IACrD,kCAAkC;IAClC,wCAAwC;IACxC,EAAE;IACF,qBAAqB;IACrB,iDAAiD;IACjD,uCAAuC;IACvC,uDAAuD;IACvD,EAAE;IACF,0BAA0B;IAC1B,oDAAoD;IACpD,iCAAiC;IACjC,yDAAyD;IACzD,sCAAsC;IACtC,EAAE;IACF,uBAAuB;IACvB,gDAAgD;IAChD,0CAA0C;CAClC,CAAC"}
|
package/dist/ui/tui/store.d.ts
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import type { ModelRef } from "../../domain/runtime.js";
|
|
1
|
+
import type { ModelRef, RuntimeMessage } from "../../domain/runtime.js";
|
|
2
2
|
import type { KernelState } from "../../kernel/state.js";
|
|
3
3
|
import type { EventEnvelope, ServerHelloFrame } from "../../protocol/schema.js";
|
|
4
4
|
import { type CoworkActivity } from "../shared/activity.js";
|
|
5
|
+
/** Matches the desktop settle window so both shells report outages alike. */
|
|
6
|
+
export declare const TUI_CONNECTION_SETTLE_MS = 2000;
|
|
5
7
|
export interface TuiStoreSnapshot {
|
|
8
|
+
/** Presented connection state: a reconnect inside the settle window stays true. */
|
|
6
9
|
connected: boolean;
|
|
10
|
+
/** True while a short reconnect is in flight but still presented as connected. */
|
|
11
|
+
reconnecting: boolean;
|
|
7
12
|
instanceId?: string;
|
|
8
13
|
selectedSessionId: string;
|
|
9
14
|
kernel: KernelState;
|
|
@@ -14,6 +19,9 @@ export interface TuiStoreSnapshot {
|
|
|
14
19
|
received: number;
|
|
15
20
|
};
|
|
16
21
|
streamingText: Readonly<Record<string, string>>;
|
|
22
|
+
streamingThinking: Readonly<Record<string, string>>;
|
|
23
|
+
/** Transcript item each session is streaming, keyed by session id. */
|
|
24
|
+
streamingItems: Readonly<Record<string, string>>;
|
|
17
25
|
activities: readonly CoworkActivity[];
|
|
18
26
|
configuredModel?: ModelRef;
|
|
19
27
|
notice: string;
|
|
@@ -24,6 +32,12 @@ export interface TuiStoreSnapshot {
|
|
|
24
32
|
}
|
|
25
33
|
export declare class TuiStore {
|
|
26
34
|
#private;
|
|
35
|
+
constructor(now?: () => number);
|
|
36
|
+
/**
|
|
37
|
+
* Re-checks the settle window from a timer so a real outage still surfaces
|
|
38
|
+
* once the masking window expires. Returns true when the view changed.
|
|
39
|
+
*/
|
|
40
|
+
settleConnection(): boolean;
|
|
27
41
|
snapshot(): TuiStoreSnapshot;
|
|
28
42
|
applyHello(hello: ServerHelloFrame): void;
|
|
29
43
|
disconnected(message: string): void;
|
|
@@ -32,6 +46,13 @@ export declare class TuiStore {
|
|
|
32
46
|
setPanel(title: string, lines: readonly string[]): void;
|
|
33
47
|
clearPanel(): void;
|
|
34
48
|
selectSession(id: string): string;
|
|
49
|
+
/** Merges an older page of history fetched by the scrollback request. */
|
|
50
|
+
applyTranscriptPage(page: {
|
|
51
|
+
sessionId: string;
|
|
52
|
+
from: number;
|
|
53
|
+
count: number;
|
|
54
|
+
messages: readonly RuntimeMessage[];
|
|
55
|
+
}): boolean;
|
|
35
56
|
applyEvent(event: EventEnvelope): void;
|
|
36
57
|
}
|
|
37
58
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/ui/tui/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/ui/tui/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAUtF,6EAA6E;AAC7E,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,SAAS,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1C,GAAG,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,sEAAsE;IACtE,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IACtC,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CACrD;AAED,qBAAa,QAAQ;;gBAYP,GAAG,GAAE,MAAM,MAAyB;IAIhD;;;OAGG;IACH,gBAAgB,IAAI,OAAO;IAO3B,QAAQ,IAAI,gBAAgB;IAM5B,UAAU,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAiBzC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAanC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,kBAAkB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI;IASrD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIvD,UAAU,IAAI,IAAI;IAOlB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAMjC,yEAAyE;IACzE,mBAAmB,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAA;KAAE,GAAG,OAAO;IAQ3H,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;CAavC"}
|
package/dist/ui/tui/store.js
CHANGED
|
@@ -1,14 +1,37 @@
|
|
|
1
1
|
import { applyCoworkActivityEvent } from "../shared/activity.js";
|
|
2
|
-
import { applyProtocolEvent, initialProtocolUiState, replaceProtocolSnapshot, selectProtocolSession, } from "../shared/protocol-state.js";
|
|
2
|
+
import { applyProtocolEvent, applyTranscriptPage as mergeTranscriptPage, initialProtocolUiState, replaceProtocolSnapshot, selectProtocolSession, } from "../shared/protocol-state.js";
|
|
3
|
+
/** Matches the desktop settle window so both shells report outages alike. */
|
|
4
|
+
export const TUI_CONNECTION_SETTLE_MS = 2_000;
|
|
3
5
|
export class TuiStore {
|
|
6
|
+
#now;
|
|
7
|
+
#unsettledSince;
|
|
8
|
+
#everConnected = false;
|
|
4
9
|
#state = {
|
|
5
10
|
connected: false,
|
|
11
|
+
reconnecting: false,
|
|
6
12
|
...initialProtocolUiState(),
|
|
7
13
|
activities: [],
|
|
8
14
|
notice: "Connecting to daemon…",
|
|
9
15
|
};
|
|
16
|
+
constructor(now = () => Date.now()) {
|
|
17
|
+
this.#now = now;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Re-checks the settle window from a timer so a real outage still surfaces
|
|
21
|
+
* once the masking window expires. Returns true when the view changed.
|
|
22
|
+
*/
|
|
23
|
+
settleConnection() {
|
|
24
|
+
if (!this.#state.reconnecting)
|
|
25
|
+
return false;
|
|
26
|
+
if (this.#unsettledSince !== undefined && this.#now() - this.#unsettledSince < TUI_CONNECTION_SETTLE_MS)
|
|
27
|
+
return false;
|
|
28
|
+
this.#state = { ...this.#state, connected: false, reconnecting: false };
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
10
31
|
snapshot() {
|
|
11
|
-
|
|
32
|
+
// Protocol reducers replace state immutably and clone IPC payloads at the
|
|
33
|
+
// boundary. Avoid copying every historical message on each terminal frame.
|
|
34
|
+
return this.#state;
|
|
12
35
|
}
|
|
13
36
|
applyHello(hello) {
|
|
14
37
|
const cursors = { ...this.#state.cursors, [hello.streamId]: hello.latestSeq };
|
|
@@ -18,13 +41,26 @@ export class TuiStore {
|
|
|
18
41
|
...replaceProtocolSnapshot(protocolState(this.#state), hello.snapshot, cursors),
|
|
19
42
|
activities,
|
|
20
43
|
connected: true,
|
|
44
|
+
reconnecting: false,
|
|
21
45
|
instanceId: hello.instanceId,
|
|
22
46
|
notice: "Connected",
|
|
23
47
|
};
|
|
24
48
|
delete this.#state.gap;
|
|
49
|
+
this.#everConnected = true;
|
|
50
|
+
this.#unsettledSince = undefined;
|
|
25
51
|
}
|
|
26
52
|
disconnected(message) {
|
|
27
|
-
|
|
53
|
+
if (this.#unsettledSince === undefined)
|
|
54
|
+
this.#unsettledSince = this.#now();
|
|
55
|
+
// Long runs briefly drop and re-establish the socket. Masking that for the
|
|
56
|
+
// settle window keeps the status line steady instead of flapping.
|
|
57
|
+
const masked = this.#everConnected && this.#now() - this.#unsettledSince < TUI_CONNECTION_SETTLE_MS;
|
|
58
|
+
this.#state = {
|
|
59
|
+
...this.#state,
|
|
60
|
+
connected: masked,
|
|
61
|
+
reconnecting: masked,
|
|
62
|
+
...(masked ? {} : { notice: message }),
|
|
63
|
+
};
|
|
28
64
|
}
|
|
29
65
|
setNotice(notice) {
|
|
30
66
|
this.#state = { ...this.#state, notice };
|
|
@@ -53,6 +89,15 @@ export class TuiStore {
|
|
|
53
89
|
this.#state = { ...this.#state, ...protocol, notice: `Selected ${id}` };
|
|
54
90
|
return protocol.selectedSessionId;
|
|
55
91
|
}
|
|
92
|
+
/** Merges an older page of history fetched by the scrollback request. */
|
|
93
|
+
applyTranscriptPage(page) {
|
|
94
|
+
const current = protocolState(this.#state);
|
|
95
|
+
const next = mergeTranscriptPage(current, page);
|
|
96
|
+
if (next === current)
|
|
97
|
+
return false;
|
|
98
|
+
this.#state = { ...this.#state, ...next };
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
56
101
|
applyEvent(event) {
|
|
57
102
|
const result = applyProtocolEvent(protocolState(this.#state), event);
|
|
58
103
|
const activities = result.applied
|
|
@@ -72,6 +117,8 @@ function protocolState(state) {
|
|
|
72
117
|
kernel: state.kernel,
|
|
73
118
|
cursors: state.cursors,
|
|
74
119
|
streamingText: state.streamingText,
|
|
120
|
+
streamingThinking: state.streamingThinking,
|
|
121
|
+
streamingItems: state.streamingItems,
|
|
75
122
|
selectedSessionId: state.selectedSessionId,
|
|
76
123
|
...(state.gap ? { gap: state.gap } : {}),
|
|
77
124
|
};
|
package/dist/ui/tui/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ui/tui/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAuB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GAEtB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/ui/tui/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tui-app.d.ts","sourceRoot":"","sources":["../../../src/ui/tui/tui-app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tui-app.d.ts","sourceRoot":"","sources":["../../../src/ui/tui/tui-app.ts"],"names":[],"mappings":"AAOA,OAAO,EASL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAIvB,MAAM,gCAAgC,CAAC;AASxC,MAAM,WAAW,eAAe;IAC9B,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,iBAAiB,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAEhF,eAAO,MAAM,uBAAuB,UAOnC,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI1E;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClG;AAKD,qBAAa,YAAY;;gBAgBX,OAAO,EAAE,aAAa;IAK5B,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsyB3B"}
|