@getpaseo/server 0.1.58 → 0.1.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scripts/dev-runner.js +26 -7
- package/dist/scripts/dev-runner.js.map +1 -1
- package/dist/server/client/daemon-client-runtime-metrics.d.ts +39 -0
- package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -0
- package/dist/server/client/daemon-client-runtime-metrics.js +173 -0
- package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -0
- package/dist/server/client/daemon-client.d.ts +58 -9
- package/dist/server/client/daemon-client.d.ts.map +1 -1
- package/dist/server/client/daemon-client.js +151 -10
- package/dist/server/client/daemon-client.js.map +1 -1
- package/dist/server/server/agent/agent-manager.d.ts +55 -48
- package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
- package/dist/server/server/agent/agent-manager.js +541 -331
- package/dist/server/server/agent/agent-manager.js.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.d.ts +3 -2
- package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
- package/dist/server/server/agent/agent-metadata-generator.js +31 -16
- package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
- package/dist/server/server/agent/agent-projections.d.ts +2 -1
- package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
- package/dist/server/server/agent/agent-projections.js +29 -1
- package/dist/server/server/agent/agent-projections.js.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.d.ts +9 -5
- package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
- package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
- package/dist/server/server/agent/agent-storage.d.ts +76 -69
- package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
- package/dist/server/server/agent/agent-storage.js +13 -6
- package/dist/server/server/agent/agent-storage.js.map +1 -1
- package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
- package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -0
- package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
- package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts +54 -0
- package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -0
- package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
- package/dist/server/server/agent/agent-timeline-store-types.js.map +1 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts +32 -0
- package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -0
- package/dist/server/server/agent/agent-timeline-store.js +245 -0
- package/dist/server/server/agent/agent-timeline-store.js.map +1 -0
- package/dist/server/server/agent/mcp-server.d.ts +12 -1
- package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-server.js +276 -65
- package/dist/server/server/agent/mcp-server.js.map +1 -1
- package/dist/server/server/agent/mcp-shared.d.ts +196 -152
- package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
- package/dist/server/server/agent/mcp-shared.js +40 -42
- package/dist/server/server/agent/mcp-shared.js.map +1 -1
- package/dist/server/server/agent/model-resolver.d.ts.map +1 -1
- package/dist/server/server/agent/model-resolver.js +3 -1
- package/dist/server/server/agent/model-resolver.js.map +1 -1
- package/dist/server/server/agent/prompt-attachments.d.ts +6 -0
- package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -0
- package/dist/server/server/agent/prompt-attachments.js +31 -0
- package/dist/server/server/agent/prompt-attachments.js.map +1 -0
- package/dist/server/server/agent/provider-launch-config.d.ts +12 -10
- package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
- package/dist/server/server/agent/provider-launch-config.js +34 -0
- package/dist/server/server/agent/provider-launch-config.js.map +1 -1
- package/dist/server/server/agent/provider-manifest.d.ts +1 -0
- package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
- package/dist/server/server/agent/provider-manifest.js +22 -1
- package/dist/server/server/agent/provider-manifest.js.map +1 -1
- package/dist/server/server/agent/provider-registry.d.ts +5 -2
- package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
- package/dist/server/server/agent/provider-registry.js +20 -9
- package/dist/server/server/agent/provider-registry.js.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.d.ts +17 -5
- package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
- package/dist/server/server/agent/provider-snapshot-manager.js +150 -61
- package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.d.ts +8 -4
- package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/acp-agent.js +73 -8
- package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude/claude-models.js +21 -0
- package/dist/server/server/agent/providers/claude/claude-models.js.map +1 -1
- package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
- package/dist/server/server/agent/providers/claude-agent.d.ts +1 -1
- package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/claude-agent.js +15 -8
- package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +37 -4
- package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/codex-app-server-agent.js +61 -31
- package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -2
- package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +64 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js +585 -0
- package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -0
- package/dist/server/server/agent/providers/opencode-agent.d.ts +19 -4
- package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
- package/dist/server/server/agent/providers/opencode-agent.js +227 -118
- package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts +69 -0
- package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -0
- package/dist/server/server/agent/providers/pi-direct-agent.js +1177 -0
- package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -0
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -4
- package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.d.ts +13 -13
- package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
- package/dist/server/server/agent-attention-policy.js +20 -36
- package/dist/server/server/agent-attention-policy.js.map +1 -1
- package/dist/server/server/bootstrap.d.ts +6 -0
- package/dist/server/server/bootstrap.d.ts.map +1 -1
- package/dist/server/server/bootstrap.js +113 -11
- package/dist/server/server/bootstrap.js.map +1 -1
- package/dist/server/server/chat/chat-rpc-schemas.d.ts +44 -44
- package/dist/server/server/chat/chat-types.d.ts +6 -6
- package/dist/server/server/checkout-diff-manager.d.ts +0 -1
- package/dist/server/server/checkout-diff-manager.d.ts.map +1 -1
- package/dist/server/server/checkout-diff-manager.js +6 -4
- package/dist/server/server/checkout-diff-manager.js.map +1 -1
- package/dist/server/server/config.d.ts.map +1 -1
- package/dist/server/server/config.js +1 -0
- package/dist/server/server/config.js.map +1 -1
- package/dist/server/server/file-explorer/service.d.ts.map +1 -1
- package/dist/server/server/file-explorer/service.js +2 -1
- package/dist/server/server/file-explorer/service.js.map +1 -1
- package/dist/server/server/loop/rpc-schemas.d.ts +392 -392
- package/dist/server/server/loop-service.d.ts +52 -52
- package/dist/server/server/paseo-worktree-archive-service.d.ts +41 -0
- package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -0
- package/dist/server/server/paseo-worktree-archive-service.js +137 -0
- package/dist/server/server/paseo-worktree-archive-service.js.map +1 -0
- package/dist/server/server/paseo-worktree-service.d.ts +24 -0
- package/dist/server/server/paseo-worktree-service.d.ts.map +1 -0
- package/dist/server/server/paseo-worktree-service.js +94 -0
- package/dist/server/server/paseo-worktree-service.js.map +1 -0
- package/dist/server/server/path-utils.d.ts +1 -0
- package/dist/server/server/path-utils.d.ts.map +1 -1
- package/dist/server/server/path-utils.js +9 -0
- package/dist/server/server/path-utils.js.map +1 -1
- package/dist/server/server/persisted-config.d.ts +73 -73
- package/dist/server/server/persistence-hooks.d.ts.map +1 -1
- package/dist/server/server/persistence-hooks.js +3 -0
- package/dist/server/server/persistence-hooks.js.map +1 -1
- package/dist/server/server/resolve-worktree-creation-intent.d.ts +30 -0
- package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -0
- package/dist/server/server/resolve-worktree-creation-intent.js +163 -0
- package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -0
- package/dist/server/server/schedule/rpc-schemas.d.ts +192 -192
- package/dist/server/server/schedule/service.d.ts +1 -1
- package/dist/server/server/schedule/service.d.ts.map +1 -1
- package/dist/server/server/schedule/types.d.ts +44 -44
- package/dist/server/server/script-health-monitor.d.ts +39 -0
- package/dist/server/server/script-health-monitor.d.ts.map +1 -0
- package/dist/server/server/script-health-monitor.js +158 -0
- package/dist/server/server/script-health-monitor.js.map +1 -0
- package/dist/server/server/script-proxy.d.ts +40 -0
- package/dist/server/server/script-proxy.d.ts.map +1 -0
- package/dist/server/server/script-proxy.js +245 -0
- package/dist/server/server/script-proxy.js.map +1 -0
- package/dist/server/server/script-route-branch-handler.d.ts +10 -0
- package/dist/server/server/script-route-branch-handler.d.ts.map +1 -0
- package/dist/server/server/script-route-branch-handler.js +45 -0
- package/dist/server/server/script-route-branch-handler.js.map +1 -0
- package/dist/server/server/script-status-projection.d.ts +29 -0
- package/dist/server/server/script-status-projection.d.ts.map +1 -0
- package/dist/server/server/script-status-projection.js +133 -0
- package/dist/server/server/script-status-projection.js.map +1 -0
- package/dist/server/server/session.d.ts +77 -13
- package/dist/server/server/session.d.ts.map +1 -1
- package/dist/server/server/session.js +1290 -548
- package/dist/server/server/session.js.map +1 -1
- package/dist/server/server/websocket-server.d.ts +27 -3
- package/dist/server/server/websocket-server.d.ts.map +1 -1
- package/dist/server/server/websocket-server.js +112 -29
- package/dist/server/server/websocket-server.js.map +1 -1
- package/dist/server/server/workspace-archive-service.d.ts +8 -0
- package/dist/server/server/workspace-archive-service.d.ts.map +1 -0
- package/dist/server/server/workspace-archive-service.js +17 -0
- package/dist/server/server/workspace-archive-service.js.map +1 -0
- package/dist/server/server/workspace-git-metadata.d.ts +24 -0
- package/dist/server/server/workspace-git-metadata.d.ts.map +1 -0
- package/dist/server/server/workspace-git-metadata.js +78 -0
- package/dist/server/server/workspace-git-metadata.js.map +1 -0
- package/dist/server/server/workspace-git-service.d.ts +104 -5
- package/dist/server/server/workspace-git-service.d.ts.map +1 -1
- package/dist/server/server/workspace-git-service.js +442 -56
- package/dist/server/server/workspace-git-service.js.map +1 -1
- package/dist/server/server/workspace-reconciliation-service.d.ts +54 -0
- package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -0
- package/dist/server/server/workspace-reconciliation-service.js +176 -0
- package/dist/server/server/workspace-reconciliation-service.js.map +1 -0
- package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
- package/dist/server/server/workspace-registry-bootstrap.js +4 -3
- package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
- package/dist/server/server/workspace-registry.d.ts +8 -8
- package/dist/server/server/workspace-registry.test-helpers.d.ts +37 -0
- package/dist/server/server/workspace-registry.test-helpers.d.ts.map +1 -0
- package/dist/server/server/workspace-registry.test-helpers.js +121 -0
- package/dist/server/server/workspace-registry.test-helpers.js.map +1 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
- package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -0
- package/dist/server/server/workspace-script-runtime-store.js +78 -0
- package/dist/server/server/workspace-script-runtime-store.js.map +1 -0
- package/dist/server/server/workspace-service-env.d.ts +17 -0
- package/dist/server/server/workspace-service-env.d.ts.map +1 -0
- package/dist/server/server/workspace-service-env.js +80 -0
- package/dist/server/server/workspace-service-env.js.map +1 -0
- package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
- package/dist/server/server/workspace-service-port-registry.d.ts.map +1 -0
- package/dist/server/server/workspace-service-port-registry.js +59 -0
- package/dist/server/server/workspace-service-port-registry.js.map +1 -0
- package/dist/server/server/worktree-bootstrap.d.ts +55 -10
- package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
- package/dist/server/server/worktree-bootstrap.js +290 -112
- package/dist/server/server/worktree-bootstrap.js.map +1 -1
- package/dist/server/server/worktree-core.d.ts +25 -0
- package/dist/server/server/worktree-core.d.ts.map +1 -0
- package/dist/server/server/worktree-core.js +75 -0
- package/dist/server/server/worktree-core.js.map +1 -0
- package/dist/server/server/worktree-errors.d.ts +12 -0
- package/dist/server/server/worktree-errors.d.ts.map +1 -0
- package/dist/server/server/worktree-errors.js +31 -0
- package/dist/server/server/worktree-errors.js.map +1 -0
- package/dist/server/server/worktree-session.d.ts +56 -70
- package/dist/server/server/worktree-session.d.ts.map +1 -1
- package/dist/server/server/worktree-session.js +176 -251
- package/dist/server/server/worktree-session.js.map +1 -1
- package/dist/server/services/github-service.d.ts +225 -0
- package/dist/server/services/github-service.d.ts.map +1 -0
- package/dist/server/services/github-service.js +1381 -0
- package/dist/server/services/github-service.js.map +1 -0
- package/dist/server/shared/messages.d.ts +29408 -12268
- package/dist/server/shared/messages.d.ts.map +1 -1
- package/dist/server/shared/messages.js +391 -65
- package/dist/server/shared/messages.js.map +1 -1
- package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/dist/server/terminal/terminal-manager.d.ts +9 -0
- package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
- package/dist/server/terminal/terminal-manager.js +27 -0
- package/dist/server/terminal/terminal-manager.js.map +1 -1
- package/dist/server/terminal/terminal-output-coalescer.d.ts +30 -0
- package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -0
- package/dist/server/terminal/terminal-output-coalescer.js +55 -0
- package/dist/server/terminal/terminal-output-coalescer.js.map +1 -0
- package/dist/server/terminal/terminal.d.ts +32 -1
- package/dist/server/terminal/terminal.d.ts.map +1 -1
- package/dist/server/terminal/terminal.js +397 -17
- package/dist/server/terminal/terminal.js.map +1 -1
- package/dist/server/utils/checkout-git.d.ts +63 -10
- package/dist/server/utils/checkout-git.d.ts.map +1 -1
- package/dist/server/utils/checkout-git.js +321 -229
- package/dist/server/utils/checkout-git.js.map +1 -1
- package/dist/server/utils/promise-timeout.d.ts +9 -0
- package/dist/server/utils/promise-timeout.d.ts.map +1 -0
- package/dist/server/utils/promise-timeout.js +25 -0
- package/dist/server/utils/promise-timeout.js.map +1 -0
- package/dist/server/utils/script-hostname.d.ts +8 -0
- package/dist/server/utils/script-hostname.d.ts.map +1 -0
- package/dist/server/utils/script-hostname.js +14 -0
- package/dist/server/utils/script-hostname.js.map +1 -0
- package/dist/server/utils/string-command-shell.d.ts +10 -0
- package/dist/server/utils/string-command-shell.d.ts.map +1 -0
- package/dist/server/utils/string-command-shell.js +21 -0
- package/dist/server/utils/string-command-shell.js.map +1 -0
- package/dist/server/utils/worktree.d.ts +54 -7
- package/dist/server/utils/worktree.d.ts.map +1 -1
- package/dist/server/utils/worktree.js +434 -129
- package/dist/server/utils/worktree.js.map +1 -1
- package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
- package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
- package/package.json +11 -14
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
- package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
- package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
- package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-stream-coalescer.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/agent-stream-coalescer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE/F,eAAO,MAAM,uCAAuC,MAAM,CAAC;AAE3D,KAAK,mBAAmB,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAC7D,KAAK,uBAAuB,GAAG,mBAAmB,GAAG,WAAW,CAAC;AAEjE,KAAK,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,EAAE;IAAE,IAAI,EAAE,uBAAuB,CAAA;CAAE,CAAC,CAAC;AAK7F,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,YAAY,EAAE,OAAO,YAAY,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;CACvD,CAAC;AA+CF,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+C;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,OAAO,EAAE,2BAA2B;IAMhD,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO;IAwBzD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI/B,QAAQ,IAAI,IAAI;IAMhB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAStC,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IA0CnB,OAAO,CAAC,eAAe;CAsBxB"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
export const AGENT_STREAM_COALESCE_DEFAULT_WINDOW_MS = 200;
|
|
2
|
+
function isCoalescableTimelineEvent(event) {
|
|
3
|
+
return (event.type === "timeline" &&
|
|
4
|
+
(event.item.type === "assistant_message" ||
|
|
5
|
+
event.item.type === "reasoning" ||
|
|
6
|
+
event.item.type === "tool_call"));
|
|
7
|
+
}
|
|
8
|
+
function isTextTimelineItem(item) {
|
|
9
|
+
return item.type === "assistant_message" || item.type === "reasoning";
|
|
10
|
+
}
|
|
11
|
+
function isTerminalToolCall(item) {
|
|
12
|
+
return (item.type === "tool_call" &&
|
|
13
|
+
(item.status === "completed" || item.status === "failed" || item.status === "canceled"));
|
|
14
|
+
}
|
|
15
|
+
export class AgentStreamCoalescer {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.buffers = new Map();
|
|
18
|
+
this.windowMs = options.windowMs ?? AGENT_STREAM_COALESCE_DEFAULT_WINDOW_MS;
|
|
19
|
+
this.timers = options.timers;
|
|
20
|
+
this.onFlush = options.onFlush;
|
|
21
|
+
}
|
|
22
|
+
handle(agentId, event) {
|
|
23
|
+
if (!isCoalescableTimelineEvent(event)) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
if (isTextTimelineItem(event.item) && event.item.text === "") {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
const buffer = this.getOrCreateBuffer(agentId);
|
|
30
|
+
this.appendToBuffer(buffer, event);
|
|
31
|
+
if (isTerminalToolCall(event.item)) {
|
|
32
|
+
this.flushBuffer(agentId);
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
if (!buffer.timer) {
|
|
36
|
+
this.scheduleFlush(buffer);
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
flushFor(agentId) {
|
|
41
|
+
this.flushBuffer(agentId);
|
|
42
|
+
}
|
|
43
|
+
flushAll() {
|
|
44
|
+
for (const agentId of Array.from(this.buffers.keys())) {
|
|
45
|
+
this.flushBuffer(agentId);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
flushAndDiscard(agentId) {
|
|
49
|
+
this.flushBuffer(agentId);
|
|
50
|
+
const buffer = this.buffers.get(agentId);
|
|
51
|
+
if (buffer) {
|
|
52
|
+
this.clearTimer(buffer);
|
|
53
|
+
this.buffers.delete(agentId);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
getOrCreateBuffer(agentId) {
|
|
57
|
+
const existing = this.buffers.get(agentId);
|
|
58
|
+
if (existing) {
|
|
59
|
+
return existing;
|
|
60
|
+
}
|
|
61
|
+
const buffer = {
|
|
62
|
+
agentId,
|
|
63
|
+
entries: [],
|
|
64
|
+
toolCallEntryIndexes: new Map(),
|
|
65
|
+
timer: null,
|
|
66
|
+
flushing: false,
|
|
67
|
+
};
|
|
68
|
+
this.buffers.set(agentId, buffer);
|
|
69
|
+
return buffer;
|
|
70
|
+
}
|
|
71
|
+
appendToBuffer(buffer, event) {
|
|
72
|
+
if (isTextTimelineItem(event.item)) {
|
|
73
|
+
buffer.entries.push({
|
|
74
|
+
kind: "text",
|
|
75
|
+
item: event.item,
|
|
76
|
+
text: event.item.text,
|
|
77
|
+
provider: event.provider,
|
|
78
|
+
...(event.turnId !== undefined ? { turnId: event.turnId } : {}),
|
|
79
|
+
});
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const existingIndex = buffer.toolCallEntryIndexes.get(event.item.callId);
|
|
83
|
+
const entry = {
|
|
84
|
+
kind: "tool_call",
|
|
85
|
+
item: event.item,
|
|
86
|
+
provider: event.provider,
|
|
87
|
+
...(event.turnId !== undefined ? { turnId: event.turnId } : {}),
|
|
88
|
+
};
|
|
89
|
+
if (existingIndex !== undefined) {
|
|
90
|
+
buffer.entries[existingIndex] = entry;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
buffer.toolCallEntryIndexes.set(event.item.callId, buffer.entries.length);
|
|
94
|
+
buffer.entries.push(entry);
|
|
95
|
+
}
|
|
96
|
+
scheduleFlush(buffer) {
|
|
97
|
+
const timer = this.timers.setTimeout(() => {
|
|
98
|
+
this.flushBuffer(buffer.agentId, buffer);
|
|
99
|
+
}, this.windowMs);
|
|
100
|
+
timer.unref?.();
|
|
101
|
+
buffer.timer = timer;
|
|
102
|
+
}
|
|
103
|
+
clearTimer(buffer) {
|
|
104
|
+
if (!buffer.timer) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
this.timers.clearTimeout(buffer.timer);
|
|
108
|
+
buffer.timer = null;
|
|
109
|
+
}
|
|
110
|
+
flushBuffer(agentId, expectedBuffer) {
|
|
111
|
+
const buffer = this.buffers.get(agentId);
|
|
112
|
+
if (!buffer) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (expectedBuffer && buffer !== expectedBuffer) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (buffer.flushing) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this.clearTimer(buffer);
|
|
122
|
+
if (buffer.entries.length === 0) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const entries = buffer.entries;
|
|
126
|
+
buffer.entries = [];
|
|
127
|
+
buffer.toolCallEntryIndexes.clear();
|
|
128
|
+
buffer.flushing = true;
|
|
129
|
+
try {
|
|
130
|
+
for (const entry of this.collapseEntries(entries)) {
|
|
131
|
+
this.onFlush({
|
|
132
|
+
agentId,
|
|
133
|
+
item: entry.kind === "text"
|
|
134
|
+
? {
|
|
135
|
+
...entry.item,
|
|
136
|
+
text: entry.text,
|
|
137
|
+
}
|
|
138
|
+
: entry.item,
|
|
139
|
+
provider: entry.provider,
|
|
140
|
+
...(entry.turnId !== undefined ? { turnId: entry.turnId } : {}),
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
finally {
|
|
145
|
+
buffer.flushing = false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
collapseEntries(entries) {
|
|
149
|
+
const collapsed = [];
|
|
150
|
+
for (const entry of entries) {
|
|
151
|
+
const previous = collapsed.at(-1);
|
|
152
|
+
if (previous &&
|
|
153
|
+
previous.kind === "text" &&
|
|
154
|
+
entry.kind === "text" &&
|
|
155
|
+
previous.item.type === entry.item.type &&
|
|
156
|
+
previous.provider === entry.provider &&
|
|
157
|
+
previous.turnId === entry.turnId) {
|
|
158
|
+
previous.text += entry.text;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
collapsed.push({ ...entry });
|
|
162
|
+
}
|
|
163
|
+
return collapsed;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=agent-stream-coalescer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-stream-coalescer.js","sourceRoot":"","sources":["../../../../src/server/agent/agent-stream-coalescer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { AgentTimelineItem } from "./agent-sdk-types.js";
|
|
2
|
+
export type AgentTimelineRow = {
|
|
3
|
+
seq: number;
|
|
4
|
+
timestamp: string;
|
|
5
|
+
item: AgentTimelineItem;
|
|
6
|
+
};
|
|
7
|
+
export type AgentTimelineCursor = {
|
|
8
|
+
epoch: string;
|
|
9
|
+
seq: number;
|
|
10
|
+
};
|
|
11
|
+
export type AgentTimelineFetchDirection = "tail" | "before" | "after";
|
|
12
|
+
export type AgentTimelineFetchOptions = {
|
|
13
|
+
direction?: AgentTimelineFetchDirection;
|
|
14
|
+
cursor?: AgentTimelineCursor;
|
|
15
|
+
/**
|
|
16
|
+
* Number of canonical rows to return.
|
|
17
|
+
* - undefined: store default
|
|
18
|
+
* - 0: all rows in the selected window
|
|
19
|
+
*/
|
|
20
|
+
limit?: number;
|
|
21
|
+
};
|
|
22
|
+
export type AgentTimelineWindow = {
|
|
23
|
+
minSeq: number;
|
|
24
|
+
maxSeq: number;
|
|
25
|
+
nextSeq: number;
|
|
26
|
+
};
|
|
27
|
+
export type AgentTimelineFetchResult = {
|
|
28
|
+
epoch: string;
|
|
29
|
+
direction: AgentTimelineFetchDirection;
|
|
30
|
+
reset: boolean;
|
|
31
|
+
staleCursor: boolean;
|
|
32
|
+
gap: boolean;
|
|
33
|
+
window: AgentTimelineWindow;
|
|
34
|
+
hasOlder: boolean;
|
|
35
|
+
hasNewer: boolean;
|
|
36
|
+
rows: AgentTimelineRow[];
|
|
37
|
+
};
|
|
38
|
+
export interface AgentTimelineStore {
|
|
39
|
+
appendCommitted(agentId: string, item: AgentTimelineItem, options?: {
|
|
40
|
+
timestamp?: string;
|
|
41
|
+
}): Promise<AgentTimelineRow>;
|
|
42
|
+
fetchCommitted(agentId: string, options?: AgentTimelineFetchOptions): Promise<AgentTimelineFetchResult>;
|
|
43
|
+
getLatestCommittedSeq(agentId: string): Promise<number>;
|
|
44
|
+
getCommittedRows(agentId: string): Promise<AgentTimelineRow[]>;
|
|
45
|
+
getLastItem(agentId: string): Promise<AgentTimelineItem | null>;
|
|
46
|
+
getLastAssistantMessage(agentId: string): Promise<string | null>;
|
|
47
|
+
hasCommittedUserMessage(agentId: string, options: {
|
|
48
|
+
messageId: string;
|
|
49
|
+
text: string;
|
|
50
|
+
}): Promise<boolean>;
|
|
51
|
+
deleteAgent(agentId: string): Promise<void>;
|
|
52
|
+
bulkInsert(agentId: string, rows: readonly AgentTimelineRow[]): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=agent-timeline-store-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-timeline-store-types.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/agent-timeline-store-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,CAAC,EAAE,2BAA2B,CAAC;IACxC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,2BAA2B,CAAC;IACvC,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,gBAAgB,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,eAAe,CACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC7B,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IACrC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxD,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAC/D,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAChE,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjE,uBAAuB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-timeline-store-types.js","sourceRoot":"","sources":["../../../../src/server/agent/agent-timeline-store-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { AgentTimelineItem } from "./agent-sdk-types.js";
|
|
2
|
+
import type { AgentTimelineFetchOptions, AgentTimelineFetchResult, AgentTimelineRow } from "./agent-timeline-store-types.js";
|
|
3
|
+
export type SeedAgentTimelineOptions = {
|
|
4
|
+
items?: readonly AgentTimelineItem[];
|
|
5
|
+
rows?: readonly AgentTimelineRow[];
|
|
6
|
+
epoch?: string;
|
|
7
|
+
nextSeq?: number;
|
|
8
|
+
timestamp?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare class InMemoryAgentTimelineStore {
|
|
11
|
+
private readonly states;
|
|
12
|
+
has(agentId: string): boolean;
|
|
13
|
+
initialize(agentId: string, options?: SeedAgentTimelineOptions): void;
|
|
14
|
+
delete(agentId: string): void;
|
|
15
|
+
getItems(agentId: string): AgentTimelineItem[];
|
|
16
|
+
getRows(agentId: string): AgentTimelineRow[];
|
|
17
|
+
getEpoch(agentId: string): string;
|
|
18
|
+
fetch(agentId: string, options?: AgentTimelineFetchOptions): AgentTimelineFetchResult;
|
|
19
|
+
append(agentId: string, item: AgentTimelineItem, options?: {
|
|
20
|
+
timestamp?: string;
|
|
21
|
+
}): AgentTimelineRow;
|
|
22
|
+
getLastItem(agentId: string): AgentTimelineItem | null;
|
|
23
|
+
getLastAssistantMessage(agentId: string): string | null;
|
|
24
|
+
getCanonicalUserMessagesById(agentId: string): Map<string, string>;
|
|
25
|
+
hasCommittedUserMessage(agentId: string, options: {
|
|
26
|
+
messageId: string;
|
|
27
|
+
text: string;
|
|
28
|
+
}): boolean;
|
|
29
|
+
private requireState;
|
|
30
|
+
private buildRowsFromItems;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=agent-timeline-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-timeline-store.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/agent-timeline-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrC,IAAI,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAsBF,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEhE,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,IAAI;IAarE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAI5C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAIjC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,wBAAwB;IAuIrF,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,EACvB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC/B,gBAAgB;IAYnB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAKtD,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAqBvD,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAclE,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO;IAe/F,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,kBAAkB;CAgB3B"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
const DEFAULT_TIMELINE_FETCH_LIMIT = 200;
|
|
3
|
+
function cloneRow(row) {
|
|
4
|
+
return { ...row };
|
|
5
|
+
}
|
|
6
|
+
function normalizeTimelineMessageId(messageId) {
|
|
7
|
+
if (typeof messageId !== "string") {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
const normalized = messageId.trim();
|
|
11
|
+
return normalized.length > 0 ? normalized : undefined;
|
|
12
|
+
}
|
|
13
|
+
export class InMemoryAgentTimelineStore {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.states = new Map();
|
|
16
|
+
}
|
|
17
|
+
has(agentId) {
|
|
18
|
+
return this.states.has(agentId);
|
|
19
|
+
}
|
|
20
|
+
initialize(agentId, options) {
|
|
21
|
+
const timestamp = options?.timestamp ?? new Date().toISOString();
|
|
22
|
+
const rows = options?.rows?.length
|
|
23
|
+
? options.rows.map(cloneRow)
|
|
24
|
+
: this.buildRowsFromItems(options?.items ?? [], options?.nextSeq ?? 1, timestamp);
|
|
25
|
+
const nextSeq = options?.nextSeq ?? (rows.length ? rows[rows.length - 1].seq + 1 : 1);
|
|
26
|
+
this.states.set(agentId, {
|
|
27
|
+
epoch: options?.epoch ?? randomUUID(),
|
|
28
|
+
rows,
|
|
29
|
+
nextSeq,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
delete(agentId) {
|
|
33
|
+
this.states.delete(agentId);
|
|
34
|
+
}
|
|
35
|
+
getItems(agentId) {
|
|
36
|
+
return this.requireState(agentId).rows.map((row) => row.item);
|
|
37
|
+
}
|
|
38
|
+
getRows(agentId) {
|
|
39
|
+
return this.requireState(agentId).rows.map(cloneRow);
|
|
40
|
+
}
|
|
41
|
+
getEpoch(agentId) {
|
|
42
|
+
return this.requireState(agentId).epoch;
|
|
43
|
+
}
|
|
44
|
+
fetch(agentId, options) {
|
|
45
|
+
const state = this.requireState(agentId);
|
|
46
|
+
const direction = options?.direction ?? "tail";
|
|
47
|
+
const requestedLimit = options?.limit;
|
|
48
|
+
const limit = requestedLimit === undefined
|
|
49
|
+
? DEFAULT_TIMELINE_FETCH_LIMIT
|
|
50
|
+
: Math.max(0, Math.floor(requestedLimit));
|
|
51
|
+
const cursor = options?.cursor;
|
|
52
|
+
const minSeq = state.rows.length ? state.rows[0].seq : 0;
|
|
53
|
+
const maxSeq = state.rows.length ? state.rows[state.rows.length - 1].seq : 0;
|
|
54
|
+
const selectAll = limit === 0;
|
|
55
|
+
const window = {
|
|
56
|
+
minSeq,
|
|
57
|
+
maxSeq,
|
|
58
|
+
nextSeq: state.nextSeq,
|
|
59
|
+
};
|
|
60
|
+
if (cursor && typeof cursor.epoch === "string" && cursor.epoch !== state.epoch) {
|
|
61
|
+
return {
|
|
62
|
+
epoch: state.epoch,
|
|
63
|
+
direction,
|
|
64
|
+
reset: true,
|
|
65
|
+
staleCursor: true,
|
|
66
|
+
gap: false,
|
|
67
|
+
window,
|
|
68
|
+
hasOlder: false,
|
|
69
|
+
hasNewer: false,
|
|
70
|
+
rows: state.rows.map(cloneRow),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const cloneRows = (items) => items.map(cloneRow);
|
|
74
|
+
if (direction === "after" && cursor && state.rows.length > 0 && cursor.seq < minSeq - 1) {
|
|
75
|
+
return {
|
|
76
|
+
epoch: state.epoch,
|
|
77
|
+
direction,
|
|
78
|
+
reset: true,
|
|
79
|
+
staleCursor: false,
|
|
80
|
+
gap: true,
|
|
81
|
+
window,
|
|
82
|
+
hasOlder: false,
|
|
83
|
+
hasNewer: false,
|
|
84
|
+
rows: cloneRows(state.rows),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
if (state.rows.length === 0) {
|
|
88
|
+
return {
|
|
89
|
+
epoch: state.epoch,
|
|
90
|
+
direction,
|
|
91
|
+
reset: false,
|
|
92
|
+
staleCursor: false,
|
|
93
|
+
gap: false,
|
|
94
|
+
window,
|
|
95
|
+
hasOlder: false,
|
|
96
|
+
hasNewer: false,
|
|
97
|
+
rows: [],
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (direction === "tail") {
|
|
101
|
+
const selected = selectAll || limit >= state.rows.length
|
|
102
|
+
? state.rows
|
|
103
|
+
: state.rows.slice(state.rows.length - limit);
|
|
104
|
+
return {
|
|
105
|
+
epoch: state.epoch,
|
|
106
|
+
direction,
|
|
107
|
+
reset: false,
|
|
108
|
+
staleCursor: false,
|
|
109
|
+
gap: false,
|
|
110
|
+
window,
|
|
111
|
+
hasOlder: selected.length > 0 && selected[0].seq > minSeq,
|
|
112
|
+
hasNewer: false,
|
|
113
|
+
rows: cloneRows(selected),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (direction === "after") {
|
|
117
|
+
const baseSeq = cursor?.seq ?? 0;
|
|
118
|
+
const startIdx = state.rows.findIndex((row) => row.seq > baseSeq);
|
|
119
|
+
if (startIdx < 0) {
|
|
120
|
+
return {
|
|
121
|
+
epoch: state.epoch,
|
|
122
|
+
direction,
|
|
123
|
+
reset: false,
|
|
124
|
+
staleCursor: false,
|
|
125
|
+
gap: false,
|
|
126
|
+
window,
|
|
127
|
+
hasOlder: baseSeq >= minSeq,
|
|
128
|
+
hasNewer: false,
|
|
129
|
+
rows: [],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
const selected = selectAll
|
|
133
|
+
? state.rows.slice(startIdx)
|
|
134
|
+
: state.rows.slice(startIdx, startIdx + limit);
|
|
135
|
+
const lastSelected = selected[selected.length - 1];
|
|
136
|
+
return {
|
|
137
|
+
epoch: state.epoch,
|
|
138
|
+
direction,
|
|
139
|
+
reset: false,
|
|
140
|
+
staleCursor: false,
|
|
141
|
+
gap: false,
|
|
142
|
+
window,
|
|
143
|
+
hasOlder: selected[0].seq > minSeq,
|
|
144
|
+
hasNewer: Boolean(lastSelected && lastSelected.seq < maxSeq),
|
|
145
|
+
rows: cloneRows(selected),
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const beforeSeq = cursor?.seq ?? state.nextSeq;
|
|
149
|
+
const endExclusive = state.rows.findIndex((row) => row.seq >= beforeSeq);
|
|
150
|
+
const boundedRows = endExclusive < 0 ? state.rows : state.rows.slice(0, endExclusive);
|
|
151
|
+
const selected = selectAll || limit >= boundedRows.length
|
|
152
|
+
? boundedRows
|
|
153
|
+
: boundedRows.slice(boundedRows.length - limit);
|
|
154
|
+
return {
|
|
155
|
+
epoch: state.epoch,
|
|
156
|
+
direction,
|
|
157
|
+
reset: false,
|
|
158
|
+
staleCursor: false,
|
|
159
|
+
gap: false,
|
|
160
|
+
window,
|
|
161
|
+
hasOlder: selected.length > 0 && selected[0].seq > minSeq,
|
|
162
|
+
hasNewer: endExclusive >= 0,
|
|
163
|
+
rows: cloneRows(selected),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
append(agentId, item, options) {
|
|
167
|
+
const state = this.requireState(agentId);
|
|
168
|
+
const row = {
|
|
169
|
+
seq: state.nextSeq,
|
|
170
|
+
timestamp: options?.timestamp ?? new Date().toISOString(),
|
|
171
|
+
item,
|
|
172
|
+
};
|
|
173
|
+
state.nextSeq += 1;
|
|
174
|
+
state.rows.push(row);
|
|
175
|
+
return cloneRow(row);
|
|
176
|
+
}
|
|
177
|
+
getLastItem(agentId) {
|
|
178
|
+
const state = this.requireState(agentId);
|
|
179
|
+
return state.rows[state.rows.length - 1]?.item ?? null;
|
|
180
|
+
}
|
|
181
|
+
getLastAssistantMessage(agentId) {
|
|
182
|
+
const rows = this.requireState(agentId).rows;
|
|
183
|
+
const chunks = [];
|
|
184
|
+
for (let i = rows.length - 1; i >= 0; i -= 1) {
|
|
185
|
+
const item = rows[i].item;
|
|
186
|
+
if (item.type !== "assistant_message") {
|
|
187
|
+
if (chunks.length > 0) {
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
continue;
|
|
191
|
+
}
|
|
192
|
+
chunks.push(item.text);
|
|
193
|
+
}
|
|
194
|
+
if (chunks.length === 0) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
return chunks.reverse().join("");
|
|
198
|
+
}
|
|
199
|
+
getCanonicalUserMessagesById(agentId) {
|
|
200
|
+
const entries = this.requireState(agentId).rows.flatMap((row) => {
|
|
201
|
+
if (row.item.type !== "user_message") {
|
|
202
|
+
return [];
|
|
203
|
+
}
|
|
204
|
+
const messageId = normalizeTimelineMessageId(row.item.messageId);
|
|
205
|
+
if (!messageId) {
|
|
206
|
+
return [];
|
|
207
|
+
}
|
|
208
|
+
return [[messageId, row.item.text]];
|
|
209
|
+
});
|
|
210
|
+
return new Map(entries);
|
|
211
|
+
}
|
|
212
|
+
hasCommittedUserMessage(agentId, options) {
|
|
213
|
+
const messageId = normalizeTimelineMessageId(options.messageId);
|
|
214
|
+
if (!messageId) {
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
return this.requireState(agentId).rows.some((row) => {
|
|
218
|
+
if (row.item.type !== "user_message") {
|
|
219
|
+
return false;
|
|
220
|
+
}
|
|
221
|
+
const rowMessageId = normalizeTimelineMessageId(row.item.messageId);
|
|
222
|
+
return rowMessageId === messageId && row.item.text === options.text;
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
requireState(agentId) {
|
|
226
|
+
const state = this.states.get(agentId);
|
|
227
|
+
if (!state) {
|
|
228
|
+
throw new Error(`Unknown agent '${agentId}'`);
|
|
229
|
+
}
|
|
230
|
+
return state;
|
|
231
|
+
}
|
|
232
|
+
buildRowsFromItems(items, startSeq, timestamp) {
|
|
233
|
+
let nextSeq = startSeq;
|
|
234
|
+
return items.map((item) => {
|
|
235
|
+
const row = {
|
|
236
|
+
seq: nextSeq,
|
|
237
|
+
timestamp,
|
|
238
|
+
item,
|
|
239
|
+
};
|
|
240
|
+
nextSeq += 1;
|
|
241
|
+
return row;
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=agent-timeline-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-timeline-store.js","sourceRoot":"","sources":["../../../../src/server/agent/agent-timeline-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,17 +2,28 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import type { Logger } from "pino";
|
|
3
3
|
import type { AgentProvider } from "./agent-sdk-types.js";
|
|
4
4
|
import type { AgentManager } from "./agent-manager.js";
|
|
5
|
-
import { AgentStorage } from "./agent-storage.js";
|
|
5
|
+
import type { AgentStorage } from "./agent-storage.js";
|
|
6
|
+
import { type ArchivePaseoWorktreeDependencies } from "../paseo-worktree-archive-service.js";
|
|
6
7
|
import type { VoiceCallerContext, VoiceSpeakHandler } from "../voice-types.js";
|
|
7
8
|
import type { TerminalManager } from "../../terminal/terminal-manager.js";
|
|
8
9
|
import type { ScheduleService } from "../schedule/service.js";
|
|
9
10
|
import type { ProviderDefinition } from "./provider-registry.js";
|
|
11
|
+
import type { GitHubService } from "../../services/github-service.js";
|
|
12
|
+
import type { WorkspaceGitService } from "../workspace-git-service.js";
|
|
13
|
+
import type { CreatePaseoWorktreeFn } from "../paseo-worktree-service.js";
|
|
10
14
|
export interface AgentMcpServerOptions {
|
|
11
15
|
agentManager: AgentManager;
|
|
12
16
|
agentStorage: AgentStorage;
|
|
13
17
|
terminalManager?: TerminalManager | null;
|
|
18
|
+
getDaemonTcpPort?: () => number | null;
|
|
14
19
|
scheduleService?: ScheduleService | null;
|
|
15
20
|
providerRegistry?: Record<AgentProvider, ProviderDefinition> | null;
|
|
21
|
+
github?: GitHubService;
|
|
22
|
+
workspaceGitService?: Pick<WorkspaceGitService, "getSnapshot" | "listWorktrees">;
|
|
23
|
+
archiveWorkspaceRecord?: ArchivePaseoWorktreeDependencies["archiveWorkspaceRecord"];
|
|
24
|
+
emitWorkspaceUpdatesForCwds?: ArchivePaseoWorktreeDependencies["emitWorkspaceUpdatesForCwds"];
|
|
25
|
+
emitSessionMessage?: ArchivePaseoWorktreeDependencies["emit"];
|
|
26
|
+
createPaseoWorktree?: CreatePaseoWorktreeFn;
|
|
16
27
|
paseoHome?: string;
|
|
17
28
|
/**
|
|
18
29
|
* ID of the agent that is connecting to this MCP server.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../../../src/server/agent/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAInC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAsB,MAAM,oBAAoB,CAAC;AAc3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAG1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAiBjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,8BAA8B,CAAC;AAItC,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACvC,eAAe,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mBAAmB,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC;IACjF,sBAAsB,CAAC,EAAE,gCAAgC,CAAC,wBAAwB,CAAC,CAAC;IACpF,2BAA2B,CAAC,EAAE,gCAAgC,CAAC,6BAA6B,CAAC,CAAC;IAC9F,kBAAkB,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,CAAC;IAC9D,mBAAmB,CAAC,EAAE,qBAAqB,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,iBAAiB,GAAG,IAAI,CAAC;IAC1E,oBAAoB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,kBAAkB,GAAG,IAAI,CAAC;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AA4KD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,CAwoD7F"}
|