@tomsun28/pizza 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -143
- package/README.zh-CN.md +36 -0
- package/dist/bun/cli.d.ts +2 -0
- package/dist/bun/cli.js +6 -0
- package/dist/bun/register-bedrock.d.ts +1 -0
- package/dist/bun/register-bedrock.js +3 -0
- package/dist/cli/args.d.ts +48 -0
- package/dist/cli/args.js +330 -0
- package/dist/cli/config-selector.d.ts +13 -0
- package/dist/cli/config-selector.js +30 -0
- package/dist/cli/file-processor.d.ts +14 -0
- package/dist/cli/file-processor.js +82 -0
- package/dist/cli/initial-message.d.ts +17 -0
- package/dist/cli/initial-message.js +21 -0
- package/dist/cli/list-models.d.ts +8 -0
- package/dist/cli/list-models.js +96 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +68 -0
- package/dist/config.d.ts +79 -0
- package/dist/config.js +223 -0
- package/dist/core/agent/index.d.ts +6 -0
- package/dist/core/agent/index.js +6 -0
- package/dist/core/agent/types.d.ts +202 -0
- package/dist/core/agent/types.js +51 -0
- package/dist/core/auth-storage.d.ts +135 -0
- package/dist/core/auth-storage.js +417 -0
- package/dist/core/bash-executor.d.ts +31 -0
- package/dist/core/bash-executor.js +107 -0
- package/dist/core/compaction/branch-summarization.d.ts +87 -0
- package/dist/core/compaction/branch-summarization.js +242 -0
- package/dist/core/compaction/compaction-engine.d.ts +40 -0
- package/dist/core/compaction/compaction-engine.js +292 -0
- package/dist/core/compaction/compaction.d.ts +106 -0
- package/dist/core/compaction/compaction.js +295 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/utils.d.ts +37 -0
- package/dist/core/compaction/utils.js +152 -0
- package/dist/core/defaults.d.ts +2 -0
- package/dist/core/defaults.js +1 -0
- package/dist/core/diagnostics.d.ts +14 -0
- package/dist/core/diagnostics.js +1 -0
- package/dist/core/event-bus.d.ts +8 -0
- package/dist/core/event-bus.js +24 -0
- package/dist/core/event-store/events.d.ts +465 -0
- package/dist/core/event-store/events.js +6 -0
- package/dist/core/event-store/index.d.ts +10 -0
- package/dist/core/event-store/index.js +10 -0
- package/dist/core/event-store/sqlite-store.d.ts +27 -0
- package/dist/core/event-store/sqlite-store.js +275 -0
- package/dist/core/event-store/store.d.ts +91 -0
- package/dist/core/event-store/store.js +7 -0
- package/dist/core/event-store/thread-scoped-store.d.ts +29 -0
- package/dist/core/event-store/thread-scoped-store.js +50 -0
- package/dist/core/event-store/types.d.ts +70 -0
- package/dist/core/event-store/types.js +7 -0
- package/dist/core/event-store/workspace.d.ts +37 -0
- package/dist/core/event-store/workspace.js +71 -0
- package/dist/core/exec.d.ts +28 -0
- package/dist/core/exec.js +74 -0
- package/dist/core/export-html/ansi-to-html.d.ts +21 -0
- package/dist/core/export-html/ansi-to-html.js +248 -0
- package/dist/core/export-html/index.d.ts +29 -0
- package/dist/core/export-html/index.js +186 -0
- package/dist/core/export-html/template.css +1017 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1742 -0
- package/dist/core/export-html/tool-renderer.d.ts +39 -0
- package/dist/core/export-html/tool-renderer.js +94 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +6 -0
- package/dist/core/extensions/index.d.ts +12 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/loader.d.ts +24 -0
- package/dist/core/extensions/loader.js +492 -0
- package/dist/core/extensions/runner.d.ts +167 -0
- package/dist/core/extensions/runner.js +898 -0
- package/dist/core/extensions/session-context.d.ts +67 -0
- package/dist/core/extensions/session-context.js +272 -0
- package/dist/core/extensions/types.d.ts +1147 -0
- package/dist/core/extensions/types.js +44 -0
- package/dist/core/extensions/wrapper.d.ts +19 -0
- package/dist/core/extensions/wrapper.js +21 -0
- package/dist/core/footer-data-provider.d.ts +47 -0
- package/dist/core/footer-data-provider.js +321 -0
- package/dist/core/goal/index.d.ts +3 -0
- package/dist/core/goal/index.js +1 -0
- package/dist/core/goal/scheduler.d.ts +83 -0
- package/dist/core/goal/scheduler.js +154 -0
- package/dist/core/goal/types.d.ts +182 -0
- package/dist/core/goal/types.js +11 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.js +8 -0
- package/dist/core/intent/classifier.d.ts +53 -0
- package/dist/core/intent/classifier.js +353 -0
- package/dist/core/intent/index.d.ts +8 -0
- package/dist/core/intent/index.js +8 -0
- package/dist/core/intent/tool-adapter.d.ts +31 -0
- package/dist/core/intent/tool-adapter.js +168 -0
- package/dist/core/intent/types.d.ts +71 -0
- package/dist/core/intent/types.js +6 -0
- package/dist/core/keybindings.d.ts +297 -0
- package/dist/core/keybindings.js +250 -0
- package/dist/core/messages.d.ts +30 -0
- package/dist/core/messages.js +134 -0
- package/dist/core/model-registry.d.ts +131 -0
- package/dist/core/model-registry.js +634 -0
- package/dist/core/model-resolver.d.ts +109 -0
- package/dist/core/model-resolver.js +486 -0
- package/dist/core/output-guard.d.ts +5 -0
- package/dist/core/output-guard.js +58 -0
- package/dist/core/package-manager.d.ts +196 -0
- package/dist/core/package-manager.js +1873 -0
- package/dist/core/projection/boundary-inferrer.d.ts +58 -0
- package/dist/core/projection/boundary-inferrer.js +122 -0
- package/dist/core/projection/event-to-message.d.ts +35 -0
- package/dist/core/projection/event-to-message.js +253 -0
- package/dist/core/projection/goal-projection.d.ts +67 -0
- package/dist/core/projection/goal-projection.js +339 -0
- package/dist/core/projection/index.d.ts +13 -0
- package/dist/core/projection/index.js +13 -0
- package/dist/core/projection/session-manager.d.ts +100 -0
- package/dist/core/projection/session-manager.js +331 -0
- package/dist/core/projection/session-projection.d.ts +58 -0
- package/dist/core/projection/session-projection.js +257 -0
- package/dist/core/projection/task-history.d.ts +13 -0
- package/dist/core/projection/task-history.js +61 -0
- package/dist/core/projection/timeline-projection.d.ts +82 -0
- package/dist/core/projection/timeline-projection.js +276 -0
- package/dist/core/projection/types.d.ts +69 -0
- package/dist/core/projection/types.js +6 -0
- package/dist/core/prompt-templates.d.ts +51 -0
- package/dist/core/prompt-templates.js +249 -0
- package/dist/core/resolve-config-value.d.ts +22 -0
- package/dist/core/resolve-config-value.js +125 -0
- package/dist/core/resource-loader.d.ts +193 -0
- package/dist/core/resource-loader.js +685 -0
- package/dist/core/runtime/ai-client.d.ts +12 -0
- package/dist/core/runtime/ai-client.js +153 -0
- package/dist/core/runtime/checkpoint.d.ts +12 -0
- package/dist/core/runtime/checkpoint.js +78 -0
- package/dist/core/runtime/index.d.ts +12 -0
- package/dist/core/runtime/index.js +12 -0
- package/dist/core/runtime/llm-types.d.ts +99 -0
- package/dist/core/runtime/llm-types.js +6 -0
- package/dist/core/runtime/local-runtime.d.ts +23 -0
- package/dist/core/runtime/local-runtime.js +59 -0
- package/dist/core/runtime/policies.d.ts +72 -0
- package/dist/core/runtime/policies.js +37 -0
- package/dist/core/runtime/reactor.d.ts +213 -0
- package/dist/core/runtime/reactor.js +992 -0
- package/dist/core/runtime/runtime.d.ts +191 -0
- package/dist/core/runtime/runtime.js +449 -0
- package/dist/core/runtime/types.d.ts +42 -0
- package/dist/core/runtime/types.js +1 -0
- package/dist/core/sdk.d.ts +12 -0
- package/dist/core/sdk.js +10 -0
- package/dist/core/session-context-builder.d.ts +9 -0
- package/dist/core/session-context-builder.js +87 -0
- package/dist/core/session-cwd.d.ts +18 -0
- package/dist/core/session-cwd.js +36 -0
- package/dist/core/session-facade-factory.d.ts +79 -0
- package/dist/core/session-facade-factory.js +460 -0
- package/dist/core/session-facade.d.ts +57 -0
- package/dist/core/session-facade.js +91 -0
- package/dist/core/session-listing.d.ts +30 -0
- package/dist/core/session-listing.js +168 -0
- package/dist/core/session-reader.d.ts +19 -0
- package/dist/core/session-reader.js +101 -0
- package/dist/core/session-ref.d.ts +7 -0
- package/dist/core/session-ref.js +25 -0
- package/dist/core/session-services.d.ts +51 -0
- package/dist/core/session-services.js +90 -0
- package/dist/core/session-stats.d.ts +43 -0
- package/dist/core/session-stats.js +41 -0
- package/dist/core/settings-manager.d.ts +236 -0
- package/dist/core/settings-manager.js +706 -0
- package/dist/core/skill-block-parser.d.ts +12 -0
- package/dist/core/skill-block-parser.js +15 -0
- package/dist/core/skills.d.ts +59 -0
- package/dist/core/skills.js +408 -0
- package/dist/core/slash-commands.d.ts +13 -0
- package/dist/core/slash-commands.js +17 -0
- package/dist/core/source-info.d.ts +17 -0
- package/dist/core/source-info.js +18 -0
- package/dist/core/system-prompt.d.ts +27 -0
- package/dist/core/system-prompt.js +179 -0
- package/dist/core/timings.d.ts +7 -0
- package/dist/core/timings.js +30 -0
- package/dist/core/tools/bash.d.ts +95 -0
- package/dist/core/tools/bash.js +513 -0
- package/dist/core/tools/builtin-commands.d.ts +75 -0
- package/dist/core/tools/builtin-commands.js +503 -0
- package/dist/core/tools/compat-commands.d.ts +12 -0
- package/dist/core/tools/compat-commands.js +1280 -0
- package/dist/core/tools/edit-diff.d.ts +59 -0
- package/dist/core/tools/edit-diff.js +263 -0
- package/dist/core/tools/edit.d.ts +49 -0
- package/dist/core/tools/edit.js +340 -0
- package/dist/core/tools/file-mutation-queue.d.ts +5 -0
- package/dist/core/tools/file-mutation-queue.js +36 -0
- package/dist/core/tools/find.d.ts +34 -0
- package/dist/core/tools/find.js +459 -0
- package/dist/core/tools/grep.d.ts +36 -0
- package/dist/core/tools/grep.js +422 -0
- package/dist/core/tools/index.d.ts +70 -0
- package/dist/core/tools/index.js +129 -0
- package/dist/core/tools/line-anchors.d.ts +33 -0
- package/dist/core/tools/line-anchors.js +151 -0
- package/dist/core/tools/ls.d.ts +36 -0
- package/dist/core/tools/ls.js +268 -0
- package/dist/core/tools/path-utils.d.ts +7 -0
- package/dist/core/tools/path-utils.js +80 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.js +244 -0
- package/dist/core/tools/render-utils.d.ts +20 -0
- package/dist/core/tools/render-utils.js +48 -0
- package/dist/core/tools/session-split.d.ts +9 -0
- package/dist/core/tools/session-split.js +77 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +13 -0
- package/dist/core/tools/tool-definition-wrapper.js +32 -0
- package/dist/core/tools/truncate.d.ts +69 -0
- package/dist/core/tools/truncate.js +204 -0
- package/dist/core/tools/write.d.ts +25 -0
- package/dist/core/tools/write.js +211 -0
- package/dist/core/types/session-types.d.ts +123 -0
- package/dist/core/types/session-types.js +8 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +38 -0
- package/dist/main.d.ts +11 -2
- package/dist/main.js +577 -149
- package/dist/modes/event-mapper.d.ts +115 -0
- package/dist/modes/event-mapper.js +200 -0
- package/dist/modes/gui/server.d.ts +14 -0
- package/dist/modes/gui/server.js +1032 -0
- package/dist/modes/index.d.ts +10 -0
- package/dist/modes/index.js +9 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +33 -0
- package/dist/modes/interactive/components/armin.js +328 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +19 -0
- package/dist/modes/interactive/components/assistant-message.js +115 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +33 -0
- package/dist/modes/interactive/components/bash-execution.js +169 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +15 -0
- package/dist/modes/interactive/components/bordered-loader.js +50 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +15 -0
- package/dist/modes/interactive/components/branch-summary-message.js +41 -0
- package/dist/modes/interactive/components/brand-header.d.ts +33 -0
- package/dist/modes/interactive/components/brand-header.js +235 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +15 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +42 -0
- package/dist/modes/interactive/components/config-selector.d.ts +70 -0
- package/dist/modes/interactive/components/config-selector.js +469 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +13 -0
- package/dist/modes/interactive/components/countdown-timer.js +27 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +27 -0
- package/dist/modes/interactive/components/custom-editor.js +94 -0
- package/dist/modes/interactive/components/custom-message.d.ts +19 -0
- package/dist/modes/interactive/components/custom-message.js +73 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +22 -0
- package/dist/modes/interactive/components/daxnuts.js +137 -0
- package/dist/modes/interactive/components/diff.d.ts +11 -0
- package/dist/modes/interactive/components/diff.js +132 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +14 -0
- package/dist/modes/interactive/components/dynamic-border.js +19 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +4 -0
- package/dist/modes/interactive/components/earendil-announcement.js +39 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +19 -0
- package/dist/modes/interactive/components/extension-editor.js +105 -0
- package/dist/modes/interactive/components/extension-input.d.ts +22 -0
- package/dist/modes/interactive/components/extension-input.js +54 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +23 -0
- package/dist/modes/interactive/components/extension-selector.js +70 -0
- package/dist/modes/interactive/components/footer.d.ts +55 -0
- package/dist/modes/interactive/components/footer.js +207 -0
- package/dist/modes/interactive/components/index.d.ts +31 -0
- package/dist/modes/interactive/components/index.js +32 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +7 -0
- package/dist/modes/interactive/components/keybinding-hints.js +21 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +41 -0
- package/dist/modes/interactive/components/login-dialog.js +138 -0
- package/dist/modes/interactive/components/model-selector.d.ts +32 -0
- package/dist/modes/interactive/components/model-selector.js +209 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +18 -0
- package/dist/modes/interactive/components/oauth-selector.js +91 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +57 -0
- package/dist/modes/interactive/components/settings-selector.js +299 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +9 -0
- package/dist/modes/interactive/components/show-images-selector.js +37 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +16 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +44 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +10 -0
- package/dist/modes/interactive/components/theme-selector.js +47 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +10 -0
- package/dist/modes/interactive/components/thinking-selector.js +50 -0
- package/dist/modes/interactive/components/timeline-view.d.ts +31 -0
- package/dist/modes/interactive/components/timeline-view.js +81 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +64 -0
- package/dist/modes/interactive/components/tool-execution.js +305 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +88 -0
- package/dist/modes/interactive/components/tree-selector.js +1072 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +29 -0
- package/dist/modes/interactive/components/user-message-selector.js +110 -0
- package/dist/modes/interactive/components/user-message.d.ts +9 -0
- package/dist/modes/interactive/components/user-message.js +27 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +23 -0
- package/dist/modes/interactive/components/visual-truncate.js +32 -0
- package/dist/modes/interactive/interactive-mode.d.ts +394 -0
- package/dist/modes/interactive/interactive-mode.js +4116 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/light.json +84 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +80 -0
- package/dist/modes/interactive/theme/theme.js +973 -0
- package/dist/modes/print-mode.d.ts +27 -0
- package/dist/modes/print-mode.js +102 -0
- package/dist/modes/rpc/jsonl.d.ts +16 -0
- package/dist/modes/rpc/jsonl.js +48 -0
- package/dist/modes/rpc/rpc-client.d.ts +219 -0
- package/dist/modes/rpc/rpc-client.js +405 -0
- package/dist/modes/rpc/rpc-mode.d.ts +19 -0
- package/dist/modes/rpc/rpc-mode.js +381 -0
- package/dist/modes/rpc/rpc-types.d.ts +406 -0
- package/dist/modes/rpc/rpc-types.js +7 -0
- package/dist/package-manager-cli.d.ts +3 -0
- package/dist/package-manager-cli.js +233 -0
- package/dist/utils/changelog.d.ts +20 -0
- package/dist/utils/changelog.js +86 -0
- package/dist/utils/child-process.d.ts +10 -0
- package/dist/utils/child-process.js +77 -0
- package/dist/utils/clipboard-image.d.ts +10 -0
- package/dist/utils/clipboard-image.js +244 -0
- package/dist/utils/clipboard-native.d.ts +7 -0
- package/dist/utils/clipboard-native.js +13 -0
- package/dist/utils/clipboard.d.ts +1 -0
- package/dist/utils/clipboard.js +77 -0
- package/dist/utils/exif-orientation.d.ts +4 -0
- package/dist/utils/exif-orientation.js +157 -0
- package/dist/utils/frontmatter.d.ts +7 -0
- package/dist/utils/frontmatter.js +25 -0
- package/dist/utils/git.d.ts +25 -0
- package/dist/utils/git.js +162 -0
- package/dist/utils/image-convert.d.ts +8 -0
- package/dist/utils/image-convert.js +38 -0
- package/dist/utils/image-resize.d.ts +35 -0
- package/dist/utils/image-resize.js +136 -0
- package/dist/utils/mime.d.ts +1 -0
- package/dist/utils/mime.js +25 -0
- package/dist/utils/path-shims.d.ts +1 -0
- package/dist/utils/path-shims.js +90 -0
- package/dist/utils/paths.d.ts +6 -0
- package/dist/utils/paths.js +18 -0
- package/dist/utils/photon.d.ts +20 -0
- package/dist/utils/photon.js +120 -0
- package/dist/utils/shell.d.ts +29 -0
- package/dist/utils/shell.js +189 -0
- package/dist/utils/sleep.d.ts +4 -0
- package/dist/utils/sleep.js +16 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.js +101 -0
- package/dist/vendor/bin/darwin-arm64/fd +0 -0
- package/dist/vendor/bin/darwin-arm64/rg +0 -0
- package/dist/vendor/bin/darwin-x64/fd +0 -0
- package/dist/vendor/bin/darwin-x64/rg +0 -0
- package/dist/vendor/bin/linux-arm64/fd +0 -0
- package/dist/vendor/bin/linux-arm64/rg +0 -0
- package/dist/vendor/bin/linux-x64/fd +0 -0
- package/dist/vendor/bin/linux-x64/rg +0 -0
- package/dist/vendor/bin/win32-arm64/fd.exe +0 -0
- package/dist/vendor/bin/win32-arm64/rg.exe +0 -0
- package/dist/vendor/bin/win32-x64/fd.exe +0 -0
- package/dist/vendor/bin/win32-x64/rg.exe +0 -0
- package/package.json +90 -26
- package/dist/extension/core.d.ts +0 -69
- package/dist/extension/core.js +0 -270
- package/dist/extension/core.js.map +0 -1
- package/dist/extension/index.d.ts +0 -14
- package/dist/extension/index.js +0 -374
- package/dist/extension/index.js.map +0 -1
- package/dist/main.js.map +0 -1
- package/themes/pizza.json +0 -87
package/dist/core/sdk.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public SDK entry point.
|
|
3
|
+
*
|
|
4
|
+
* Exposes `createSessionFacade()` as the primary session creation API,
|
|
5
|
+
* plus tool factories and type exports for extension development.
|
|
6
|
+
*/
|
|
7
|
+
export { createSessionFacade, } from "./session-facade-factory.js";
|
|
8
|
+
export { withFileMutationQueue,
|
|
9
|
+
// Tool factories (for custom cwd)
|
|
10
|
+
createCodingTools, createReadOnlyTools, createReadTool, createBashTool, createEditTool, createWriteTool, createGrepTool, createFindTool, createLsTool, } from "./tools/index.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Context Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds a SessionContext (messages, thinkingLevel, model) from an array
|
|
5
|
+
* of SessionEntry objects. Extracted from the legacy SessionManager to
|
|
6
|
+
* allow its removal.
|
|
7
|
+
*/
|
|
8
|
+
import type { SessionContext, SessionEntry } from "./types/session-types.js";
|
|
9
|
+
export declare function buildSessionContext(entries: SessionEntry[], leafId?: string | null, byId?: Map<string, SessionEntry>): SessionContext;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Context Builder
|
|
3
|
+
*
|
|
4
|
+
* Builds a SessionContext (messages, thinkingLevel, model) from an array
|
|
5
|
+
* of SessionEntry objects. Extracted from the legacy SessionManager to
|
|
6
|
+
* allow its removal.
|
|
7
|
+
*/
|
|
8
|
+
import { createBranchSummaryMessage, createCompactionSummaryMessage, createCustomMessage, } from "./messages.js";
|
|
9
|
+
export function buildSessionContext(entries, leafId, byId) {
|
|
10
|
+
if (!byId) {
|
|
11
|
+
byId = new Map();
|
|
12
|
+
for (const entry of entries) {
|
|
13
|
+
byId.set(entry.id, entry);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
let leaf;
|
|
17
|
+
if (leafId === null) {
|
|
18
|
+
return { messages: [], thinkingLevel: "off", model: null };
|
|
19
|
+
}
|
|
20
|
+
if (leafId) {
|
|
21
|
+
leaf = byId.get(leafId);
|
|
22
|
+
}
|
|
23
|
+
if (!leaf) {
|
|
24
|
+
leaf = entries[entries.length - 1];
|
|
25
|
+
}
|
|
26
|
+
if (!leaf) {
|
|
27
|
+
return { messages: [], thinkingLevel: "off", model: null };
|
|
28
|
+
}
|
|
29
|
+
const path = [];
|
|
30
|
+
let current = leaf;
|
|
31
|
+
while (current) {
|
|
32
|
+
path.unshift(current);
|
|
33
|
+
current = current.parentId ? byId.get(current.parentId) : undefined;
|
|
34
|
+
}
|
|
35
|
+
let thinkingLevel = "off";
|
|
36
|
+
let model = null;
|
|
37
|
+
let compaction = null;
|
|
38
|
+
for (const entry of path) {
|
|
39
|
+
if (entry.type === "thinking_level_change") {
|
|
40
|
+
thinkingLevel = entry.thinkingLevel;
|
|
41
|
+
}
|
|
42
|
+
else if (entry.type === "model_change") {
|
|
43
|
+
model = { provider: entry.provider, modelId: entry.modelId };
|
|
44
|
+
}
|
|
45
|
+
else if (entry.type === "message" && entry.message.role === "assistant") {
|
|
46
|
+
model = { provider: entry.message.provider, modelId: entry.message.model };
|
|
47
|
+
}
|
|
48
|
+
else if (entry.type === "compaction") {
|
|
49
|
+
compaction = entry;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const messages = [];
|
|
53
|
+
const appendMessage = (entry) => {
|
|
54
|
+
if (entry.type === "message") {
|
|
55
|
+
messages.push(entry.message);
|
|
56
|
+
}
|
|
57
|
+
else if (entry.type === "custom_message") {
|
|
58
|
+
messages.push(createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp));
|
|
59
|
+
}
|
|
60
|
+
else if (entry.type === "branch_summary" && entry.summary) {
|
|
61
|
+
messages.push(createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp));
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
if (compaction) {
|
|
65
|
+
messages.push(createCompactionSummaryMessage(compaction.summary, compaction.tokensBefore, compaction.timestamp));
|
|
66
|
+
const compactionIdx = path.findIndex((e) => e.type === "compaction" && e.id === compaction.id);
|
|
67
|
+
let foundFirstKept = false;
|
|
68
|
+
for (let i = 0; i < compactionIdx; i++) {
|
|
69
|
+
const entry = path[i];
|
|
70
|
+
if (entry.id === compaction.firstKeptEntryId) {
|
|
71
|
+
foundFirstKept = true;
|
|
72
|
+
}
|
|
73
|
+
if (foundFirstKept) {
|
|
74
|
+
appendMessage(entry);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
for (let i = compactionIdx + 1; i < path.length; i++) {
|
|
78
|
+
appendMessage(path[i]);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
for (const entry of path) {
|
|
83
|
+
appendMessage(entry);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return { messages, thinkingLevel, model };
|
|
87
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface SessionCwdIssue {
|
|
2
|
+
sessionFile?: string;
|
|
3
|
+
sessionCwd: string;
|
|
4
|
+
fallbackCwd: string;
|
|
5
|
+
}
|
|
6
|
+
interface SessionCwdSource {
|
|
7
|
+
getCwd(): string;
|
|
8
|
+
getSessionFile(): string | undefined;
|
|
9
|
+
}
|
|
10
|
+
export declare function getMissingSessionCwdIssue(sessionManager: SessionCwdSource, fallbackCwd: string): SessionCwdIssue | undefined;
|
|
11
|
+
export declare function formatMissingSessionCwdError(issue: SessionCwdIssue): string;
|
|
12
|
+
export declare function formatMissingSessionCwdPrompt(issue: SessionCwdIssue): string;
|
|
13
|
+
export declare class MissingSessionCwdError extends Error {
|
|
14
|
+
readonly issue: SessionCwdIssue;
|
|
15
|
+
constructor(issue: SessionCwdIssue);
|
|
16
|
+
}
|
|
17
|
+
export declare function assertSessionCwdExists(sessionManager: SessionCwdSource, fallbackCwd: string): void;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
export function getMissingSessionCwdIssue(sessionManager, fallbackCwd) {
|
|
3
|
+
const sessionFile = sessionManager.getSessionFile();
|
|
4
|
+
if (!sessionFile) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
const sessionCwd = sessionManager.getCwd();
|
|
8
|
+
if (!sessionCwd || existsSync(sessionCwd)) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
return {
|
|
12
|
+
sessionFile,
|
|
13
|
+
sessionCwd,
|
|
14
|
+
fallbackCwd,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function formatMissingSessionCwdError(issue) {
|
|
18
|
+
const sessionFile = issue.sessionFile ? `\nSession file: ${issue.sessionFile}` : "";
|
|
19
|
+
return `Stored session working directory does not exist: ${issue.sessionCwd}${sessionFile}\nCurrent working directory: ${issue.fallbackCwd}`;
|
|
20
|
+
}
|
|
21
|
+
export function formatMissingSessionCwdPrompt(issue) {
|
|
22
|
+
return `cwd from session file does not exist\n${issue.sessionCwd}\n\ncontinue in current cwd\n${issue.fallbackCwd}`;
|
|
23
|
+
}
|
|
24
|
+
export class MissingSessionCwdError extends Error {
|
|
25
|
+
constructor(issue) {
|
|
26
|
+
super(formatMissingSessionCwdError(issue));
|
|
27
|
+
this.name = "MissingSessionCwdError";
|
|
28
|
+
this.issue = issue;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function assertSessionCwdExists(sessionManager, fallbackCwd) {
|
|
32
|
+
const issue = getMissingSessionCwdIssue(sessionManager, fallbackCwd);
|
|
33
|
+
if (issue) {
|
|
34
|
+
throw new MissingSessionCwdError(issue);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionFacade factory.
|
|
3
|
+
*
|
|
4
|
+
* Builds a fully wired, pure event-sourced session: EventStore (SQLite) +
|
|
5
|
+
* projection SessionManager + EventSourcedRuntime, wrapped in a SessionFacade.
|
|
6
|
+
*
|
|
7
|
+
* This is the primary session creation API. Modes and extensions subscribe
|
|
8
|
+
* directly to EventStore TypedEvents through the facade.
|
|
9
|
+
*/
|
|
10
|
+
import { type Model } from "@earendil-works/pi-ai/compat";
|
|
11
|
+
import type { ThinkingLevel } from "./agent/index.js";
|
|
12
|
+
import { AuthStorage } from "./auth-storage.js";
|
|
13
|
+
import { type LoadExtensionsResult, type SessionStartEvent, type ToolDefinition as ExtensionToolDefinition } from "./extensions/index.js";
|
|
14
|
+
import { ModelRegistry } from "./model-registry.js";
|
|
15
|
+
import { type ResourceLoader } from "./resource-loader.js";
|
|
16
|
+
import { EventSourcedRuntime } from "./runtime/runtime.js";
|
|
17
|
+
import { SessionFacade } from "./session-facade.js";
|
|
18
|
+
import { SettingsManager } from "./settings-manager.js";
|
|
19
|
+
export interface CreateSessionFacadeOptions {
|
|
20
|
+
/** Working directory for project-local discovery. Default: process.cwd() */
|
|
21
|
+
cwd?: string;
|
|
22
|
+
/** Global config directory. Default: ~/.pizza/agent */
|
|
23
|
+
agentDir?: string;
|
|
24
|
+
/** Auth storage for credentials. */
|
|
25
|
+
authStorage?: AuthStorage;
|
|
26
|
+
/** Model registry. */
|
|
27
|
+
modelRegistry?: ModelRegistry;
|
|
28
|
+
/** Settings manager. */
|
|
29
|
+
settingsManager?: SettingsManager;
|
|
30
|
+
/** Resource loader (skills/context/extensions/system prompt). */
|
|
31
|
+
resourceLoader?: ResourceLoader;
|
|
32
|
+
/** Model to use. Default: resolved from settings/registry. */
|
|
33
|
+
model?: Model<any>;
|
|
34
|
+
/** Thinking level. Default: from settings, clamped to model capabilities. */
|
|
35
|
+
thinkingLevel?: ThinkingLevel;
|
|
36
|
+
/**
|
|
37
|
+
* Allowlist of tool names to expose to the LLM.
|
|
38
|
+
* Default: DEFAULT_LLM_TOOLS (["cli"]) plus custom/extension tools.
|
|
39
|
+
*/
|
|
40
|
+
tools?: string[];
|
|
41
|
+
/** Custom tools to register (in addition to built-in and extension tools). */
|
|
42
|
+
customTools?: ExtensionToolDefinition[];
|
|
43
|
+
/** Session start event metadata for extension runtime startup. */
|
|
44
|
+
sessionStartEvent?: SessionStartEvent;
|
|
45
|
+
/** Override SQLite event database path (e.g. ":memory:" for tests). */
|
|
46
|
+
storagePath?: string;
|
|
47
|
+
/** Override session index path. */
|
|
48
|
+
sessionIndexPath?: string;
|
|
49
|
+
/** Override workspace id when opening a session from another workspace. */
|
|
50
|
+
workspaceId?: string;
|
|
51
|
+
/** Existing projection session id to activate before prompting. */
|
|
52
|
+
sessionId?: string;
|
|
53
|
+
/** Existing projection session to fork into the target workspace before prompting. */
|
|
54
|
+
forkFrom?: {
|
|
55
|
+
workspaceId: string;
|
|
56
|
+
sessionId: string;
|
|
57
|
+
agentDir?: string;
|
|
58
|
+
};
|
|
59
|
+
/** Context token budget. Default: model.contextWindow ?? 128000. */
|
|
60
|
+
contextBudget?: number;
|
|
61
|
+
}
|
|
62
|
+
export interface CreateSessionFacadeResult {
|
|
63
|
+
/** The created facade. */
|
|
64
|
+
facade: SessionFacade;
|
|
65
|
+
/** The underlying runtime (escape hatch for advanced wiring). */
|
|
66
|
+
runtime: EventSourcedRuntime;
|
|
67
|
+
/** Resolved model. */
|
|
68
|
+
model: Model<any> | undefined;
|
|
69
|
+
/** Resolved thinking level. */
|
|
70
|
+
thinkingLevel: ThinkingLevel;
|
|
71
|
+
/** Extensions result (for UI context setup in interactive mode). */
|
|
72
|
+
extensionsResult: LoadExtensionsResult;
|
|
73
|
+
/** Warning if no model could be resolved. */
|
|
74
|
+
modelFallbackMessage?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Create a pure event-sourced SessionFacade.
|
|
78
|
+
*/
|
|
79
|
+
export declare function createSessionFacade(options?: CreateSessionFacadeOptions): Promise<CreateSessionFacadeResult>;
|