@openadapter/koda 1.0.0-beta.3
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/CHANGELOG.md +4448 -0
- package/README.md +665 -0
- package/dist/bun/cli.d.ts +2 -0
- package/dist/bun/cli.js +2 -0
- package/dist/bun/register-bedrock.d.ts +1 -0
- package/dist/bun/register-bedrock.js +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +12 -0
- package/dist/bun/restore-sandbox-env.js +1 -0
- package/dist/cli/args.d.ts +55 -0
- package/dist/cli/args.js +167 -0
- package/dist/cli/config-selector.d.ts +13 -0
- package/dist/cli/config-selector.js +1 -0
- package/dist/cli/file-processor.d.ts +14 -0
- package/dist/cli/file-processor.js +7 -0
- package/dist/cli/import-sessions.d.ts +34 -0
- package/dist/cli/import-sessions.js +6 -0
- package/dist/cli/initial-message.d.ts +17 -0
- package/dist/cli/initial-message.js +1 -0
- package/dist/cli/list-models.d.ts +8 -0
- package/dist/cli/list-models.js +2 -0
- package/dist/cli/openadapter-setup.d.ts +29 -0
- package/dist/cli/openadapter-setup.js +3 -0
- package/dist/cli/session-picker.d.ts +8 -0
- package/dist/cli/session-picker.js +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +2 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.js +1 -0
- package/dist/core/agent-session-runtime.d.ts +116 -0
- package/dist/core/agent-session-runtime.js +1 -0
- package/dist/core/agent-session-services.d.ts +86 -0
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session.d.ts +747 -0
- package/dist/core/agent-session.js +32 -0
- package/dist/core/auth-guidance.d.ts +4 -0
- package/dist/core/auth-guidance.js +8 -0
- package/dist/core/auth-storage.d.ts +140 -0
- package/dist/core/auth-storage.js +1 -0
- package/dist/core/bash-executor.d.ts +31 -0
- package/dist/core/bash-executor.js +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +89 -0
- package/dist/core/compaction/branch-summarization.js +38 -0
- package/dist/core/compaction/compaction.d.ts +120 -0
- package/dist/core/compaction/compaction.js +104 -0
- package/dist/core/compaction/index.d.ts +6 -0
- package/dist/core/compaction/index.js +1 -0
- package/dist/core/compaction/utils.d.ts +37 -0
- package/dist/core/compaction/utils.js +19 -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 +0 -0
- package/dist/core/event-bus.d.ts +8 -0
- package/dist/core/event-bus.js +1 -0
- package/dist/core/exec.d.ts +28 -0
- package/dist/core/exec.js +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +21 -0
- package/dist/core/export-html/ansi-to-html.js +1 -0
- package/dist/core/export-html/index.d.ts +36 -0
- package/dist/core/export-html/index.js +2 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +72 -0
- package/dist/core/export-html/tool-renderer.d.ts +33 -0
- package/dist/core/export-html/tool-renderer.js +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +8 -0
- package/dist/core/export-html/vendor/marked.min.js +56 -0
- package/dist/core/extensions/index.d.ts +11 -0
- package/dist/core/extensions/index.js +1 -0
- package/dist/core/extensions/loader.d.ts +23 -0
- package/dist/core/extensions/loader.js +1 -0
- package/dist/core/extensions/runner.d.ts +160 -0
- package/dist/core/extensions/runner.js +1 -0
- package/dist/core/extensions/types.d.ts +1180 -0
- package/dist/core/extensions/types.js +1 -0
- package/dist/core/extensions/wrapper.d.ts +19 -0
- package/dist/core/extensions/wrapper.js +1 -0
- package/dist/core/footer-data-provider.d.ts +53 -0
- package/dist/core/footer-data-provider.js +1 -0
- package/dist/core/http-dispatcher.d.ts +20 -0
- package/dist/core/http-dispatcher.js +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.js +1 -0
- package/dist/core/keybindings.d.ts +352 -0
- package/dist/core/keybindings.js +1 -0
- package/dist/core/messages.d.ts +76 -0
- package/dist/core/messages.js +17 -0
- package/dist/core/model-registry.d.ts +149 -0
- package/dist/core/model-registry.js +9 -0
- package/dist/core/model-resolver.d.ts +109 -0
- package/dist/core/model-resolver.js +1 -0
- package/dist/core/output-guard.d.ts +6 -0
- package/dist/core/output-guard.js +1 -0
- package/dist/core/package-manager.d.ts +203 -0
- package/dist/core/package-manager.js +3 -0
- package/dist/core/prompt-templates.d.ts +51 -0
- package/dist/core/prompt-templates.js +2 -0
- package/dist/core/provider-attribution.d.ts +3 -0
- package/dist/core/provider-attribution.js +1 -0
- package/dist/core/provider-display-names.d.ts +1 -0
- package/dist/core/provider-display-names.js +1 -0
- package/dist/core/resolve-config-value.d.ts +30 -0
- package/dist/core/resolve-config-value.js +1 -0
- package/dist/core/resource-loader.d.ts +193 -0
- package/dist/core/resource-loader.js +1 -0
- package/dist/core/sdk.d.ts +108 -0
- package/dist/core/sdk.js +1 -0
- package/dist/core/session-cwd.d.ts +18 -0
- package/dist/core/session-cwd.js +7 -0
- package/dist/core/session-manager.d.ts +331 -0
- package/dist/core/session-manager.js +11 -0
- package/dist/core/settings-manager.d.ts +265 -0
- package/dist/core/settings-manager.js +1 -0
- package/dist/core/skills.d.ts +59 -0
- package/dist/core/skills.js +4 -0
- package/dist/core/slash-commands.d.ts +13 -0
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/source-info.d.ts +17 -0
- package/dist/core/source-info.js +1 -0
- package/dist/core/system-prompt.d.ts +27 -0
- package/dist/core/system-prompt.js +52 -0
- package/dist/core/telemetry.d.ts +2 -0
- package/dist/core/telemetry.js +1 -0
- package/dist/core/timings.d.ts +7 -0
- package/dist/core/timings.js +3 -0
- package/dist/core/tools/bash.d.ts +67 -0
- package/dist/core/tools/bash.js +18 -0
- package/dist/core/tools/edit-diff.d.ts +86 -0
- package/dist/core/tools/edit-diff.js +16 -0
- package/dist/core/tools/edit.d.ts +50 -0
- package/dist/core/tools/edit.js +2 -0
- package/dist/core/tools/file-mutation-queue.d.ts +5 -0
- package/dist/core/tools/file-mutation-queue.js +1 -0
- package/dist/core/tools/find.d.ts +34 -0
- package/dist/core/tools/find.js +13 -0
- package/dist/core/tools/grep.d.ts +36 -0
- package/dist/core/tools/grep.js +13 -0
- package/dist/core/tools/index.d.ts +39 -0
- package/dist/core/tools/index.js +1 -0
- package/dist/core/tools/ls.d.ts +36 -0
- package/dist/core/tools/ls.js +9 -0
- package/dist/core/tools/output-accumulator.d.ts +51 -0
- package/dist/core/tools/output-accumulator.js +4 -0
- package/dist/core/tools/path-utils.d.ts +9 -0
- package/dist/core/tools/path-utils.js +1 -0
- package/dist/core/tools/read.d.ts +34 -0
- package/dist/core/tools/read.js +22 -0
- package/dist/core/tools/render-utils.d.ts +23 -0
- package/dist/core/tools/render-utils.js +4 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +13 -0
- package/dist/core/tools/tool-definition-wrapper.js +1 -0
- package/dist/core/tools/truncate.d.ts +69 -0
- package/dist/core/tools/truncate.js +5 -0
- package/dist/core/tools/write.d.ts +25 -0
- package/dist/core/tools/write.js +13 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.js +1 -0
- package/dist/main.d.ts +11 -0
- package/dist/main.js +1 -0
- package/dist/migrations.d.ts +32 -0
- package/dist/migrations.js +8 -0
- package/dist/modes/index.d.ts +8 -0
- package/dist/modes/index.js +1 -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 +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +19 -0
- package/dist/modes/interactive/components/assistant-message.js +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +33 -0
- package/dist/modes/interactive/components/bash-execution.js +13 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +15 -0
- package/dist/modes/interactive/components/bordered-loader.js +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +15 -0
- package/dist/modes/interactive/components/branch-summary-message.js +3 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +15 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +3 -0
- package/dist/modes/interactive/components/config-selector.d.ts +70 -0
- package/dist/modes/interactive/components/config-selector.js +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +13 -0
- package/dist/modes/interactive/components/countdown-timer.js +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +20 -0
- package/dist/modes/interactive/components/custom-editor.js +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +19 -0
- package/dist/modes/interactive/components/custom-message.js +2 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +22 -0
- package/dist/modes/interactive/components/daxnuts.js +1 -0
- package/dist/modes/interactive/components/diff.d.ts +11 -0
- package/dist/modes/interactive/components/diff.js +3 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +14 -0
- package/dist/modes/interactive/components/dynamic-border.js +1 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +4 -0
- package/dist/modes/interactive/components/earendil-announcement.js +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +19 -0
- package/dist/modes/interactive/components/extension-editor.js +3 -0
- package/dist/modes/interactive/components/extension-input.d.ts +22 -0
- package/dist/modes/interactive/components/extension-input.js +2 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +25 -0
- package/dist/modes/interactive/components/extension-selector.js +2 -0
- package/dist/modes/interactive/components/footer.d.ts +27 -0
- package/dist/modes/interactive/components/footer.js +1 -0
- package/dist/modes/interactive/components/index.d.ts +31 -0
- package/dist/modes/interactive/components/index.js +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +12 -0
- package/dist/modes/interactive/components/keybinding-hints.js +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +51 -0
- package/dist/modes/interactive/components/login-dialog.js +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +46 -0
- package/dist/modes/interactive/components/model-selector.js +2 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +30 -0
- package/dist/modes/interactive/components/oauth-selector.js +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +41 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +22 -0
- package/dist/modes/interactive/components/session-selector-search.js +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/modes/interactive/components/session-selector.js +2 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +68 -0
- package/dist/modes/interactive/components/settings-selector.js +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +9 -0
- package/dist/modes/interactive/components/show-images-selector.js +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +16 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +3 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +10 -0
- package/dist/modes/interactive/components/theme-selector.js +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +10 -0
- package/dist/modes/interactive/components/thinking-selector.js +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +62 -0
- package/dist/modes/interactive/components/tool-execution.js +4 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +88 -0
- package/dist/modes/interactive/components/tree-selector.js +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +29 -0
- package/dist/modes/interactive/components/user-message-selector.js +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +9 -0
- package/dist/modes/interactive/components/user-message.js +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +23 -0
- package/dist/modes/interactive/components/visual-truncate.js +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +417 -0
- package/dist/modes/interactive/interactive-mode.js +116 -0
- package/dist/modes/interactive/theme/dark.json +86 -0
- package/dist/modes/interactive/theme/light.json +85 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +101 -0
- package/dist/modes/interactive/theme/theme.js +18 -0
- package/dist/modes/print-mode.d.ts +27 -0
- package/dist/modes/print-mode.js +4 -0
- package/dist/modes/rpc/jsonl.d.ts +16 -0
- package/dist/modes/rpc/jsonl.js +3 -0
- package/dist/modes/rpc/rpc-client.d.ts +226 -0
- package/dist/modes/rpc/rpc-client.js +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +19 -0
- package/dist/modes/rpc/rpc-mode.js +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +419 -0
- package/dist/modes/rpc/rpc-types.js +0 -0
- package/dist/package-manager-cli.d.ts +3 -0
- package/dist/package-manager-cli.js +49 -0
- package/dist/utils/ansi.d.ts +1 -0
- package/dist/utils/ansi.js +1 -0
- package/dist/utils/auto-update.d.ts +13 -0
- package/dist/utils/auto-update.js +1 -0
- package/dist/utils/changelog.d.ts +20 -0
- package/dist/utils/changelog.js +4 -0
- package/dist/utils/child-process.d.ts +14 -0
- package/dist/utils/child-process.js +1 -0
- package/dist/utils/clipboard-image.d.ts +10 -0
- package/dist/utils/clipboard-image.js +1 -0
- package/dist/utils/clipboard-native.d.ts +9 -0
- package/dist/utils/clipboard-native.js +1 -0
- package/dist/utils/clipboard.d.ts +1 -0
- package/dist/utils/clipboard.js +1 -0
- package/dist/utils/deprecation.d.ts +3 -0
- package/dist/utils/deprecation.js +1 -0
- package/dist/utils/exif-orientation.d.ts +4 -0
- package/dist/utils/exif-orientation.js +1 -0
- package/dist/utils/frontmatter.d.ts +7 -0
- package/dist/utils/frontmatter.js +4 -0
- package/dist/utils/fs-watch.d.ts +4 -0
- package/dist/utils/fs-watch.js +1 -0
- package/dist/utils/git.d.ts +25 -0
- package/dist/utils/git.js +1 -0
- package/dist/utils/html.d.ts +6 -0
- package/dist/utils/html.js +1 -0
- package/dist/utils/image-convert.d.ts +8 -0
- package/dist/utils/image-convert.js +1 -0
- package/dist/utils/image-resize-core.d.ts +29 -0
- package/dist/utils/image-resize-core.js +1 -0
- package/dist/utils/image-resize-worker.d.ts +1 -0
- package/dist/utils/image-resize-worker.js +1 -0
- package/dist/utils/image-resize.d.ts +15 -0
- package/dist/utils/image-resize.js +1 -0
- package/dist/utils/json.d.ts +2 -0
- package/dist/utils/json.js +1 -0
- package/dist/utils/koda-user-agent.d.ts +1 -0
- package/dist/utils/koda-user-agent.js +1 -0
- package/dist/utils/mime.d.ts +2 -0
- package/dist/utils/mime.js +1 -0
- package/dist/utils/paths.d.ts +30 -0
- package/dist/utils/paths.js +1 -0
- package/dist/utils/photon.d.ts +20 -0
- package/dist/utils/photon.js +1 -0
- package/dist/utils/shell.d.ts +29 -0
- package/dist/utils/shell.js +8 -0
- package/dist/utils/sleep.d.ts +4 -0
- package/dist/utils/sleep.js +1 -0
- package/dist/utils/syntax-highlight.d.ts +11 -0
- package/dist/utils/syntax-highlight.js +2 -0
- package/dist/utils/tools-manager.d.ts +2 -0
- package/dist/utils/tools-manager.js +1 -0
- package/dist/utils/version-check.d.ts +14 -0
- package/dist/utils/version-check.js +1 -0
- package/dist/utils/windows-self-update.d.ts +2 -0
- package/dist/utils/windows-self-update.js +1 -0
- package/docs/compaction.md +394 -0
- package/docs/custom-provider.md +736 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +148 -0
- package/docs/extensions.md +2626 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +80 -0
- package/docs/json.md +82 -0
- package/docs/keybindings.md +197 -0
- package/docs/models.md +493 -0
- package/docs/packages.md +226 -0
- package/docs/prompt-templates.md +88 -0
- package/docs/providers.md +253 -0
- package/docs/quickstart.md +165 -0
- package/docs/rpc.md +1408 -0
- package/docs/sdk.md +1137 -0
- package/docs/session-format.md +412 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +281 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +114 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tmux.md +61 -0
- package/docs/tui.md +927 -0
- package/docs/usage.md +288 -0
- package/docs/windows.md +17 -0
- package/npm-shrinkwrap.json +1792 -0
- package/openadapter/extensions/koda-ask.js +12 -0
- package/openadapter/extensions/koda-bg.js +14 -0
- package/openadapter/extensions/koda-commands.mjs +15 -0
- package/openadapter/extensions/koda-help.js +8 -0
- package/openadapter/extensions/koda-memory.js +16 -0
- package/openadapter/extensions/koda-status.js +1 -0
- package/openadapter/extensions/koda-todo.js +4 -0
- package/openadapter/extensions/koda-vision.js +4 -0
- package/openadapter/extensions/koda-web.js +7 -0
- package/openadapter/setup.mjs +173 -0
- package/openadapter/skills/code-review/SKILL.md +22 -0
- package/openadapter/skills/debugging/SKILL.md +28 -0
- package/openadapter/skills/frontend/SKILL.md +38 -0
- package/package.json +108 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var r=Object.defineProperty;var t=(o,e)=>r(o,"name",{value:e,configurable:!0});function l(o){return o}t(l,"defineTool");function u(o){return o.toolName==="bash"}t(u,"isBashToolResult");function i(o){return o.toolName==="read"}t(i,"isReadToolResult");function s(o){return o.toolName==="edit"}t(s,"isEditToolResult");function a(o){return o.toolName==="write"}t(a,"isWriteToolResult");function p(o){return o.toolName==="grep"}t(p,"isGrepToolResult");function f(o){return o.toolName==="find"}t(f,"isFindToolResult");function T(o){return o.toolName==="ls"}t(T,"isLsToolResult");function c(o,e){return e.toolName===o}t(c,"isToolCallEventType");export{l as defineTool,u as isBashToolResult,s as isEditToolResult,f as isFindToolResult,p as isGrepToolResult,T as isLsToolResult,i as isReadToolResult,c as isToolCallEventType,a as isWriteToolResult};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool wrappers for extension-registered tools.
|
|
3
|
+
*
|
|
4
|
+
* These wrappers only adapt tool execution so extension tools receive the runner context.
|
|
5
|
+
* Tool call and tool result interception is handled by AgentSession via agent-core hooks.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentTool } from "@openadapter/koda-agent-core";
|
|
8
|
+
import type { ExtensionRunner } from "./runner.ts";
|
|
9
|
+
import type { RegisteredTool } from "./types.ts";
|
|
10
|
+
/**
|
|
11
|
+
* Wrap a RegisteredTool into an AgentTool.
|
|
12
|
+
* Uses the runner's createContext() for consistent context across tools and event handlers.
|
|
13
|
+
*/
|
|
14
|
+
export declare function wrapRegisteredTool(registeredTool: RegisteredTool, runner: ExtensionRunner): AgentTool;
|
|
15
|
+
/**
|
|
16
|
+
* Wrap all registered tools into AgentTools.
|
|
17
|
+
* Uses the runner's createContext() for consistent context across tools and event handlers.
|
|
18
|
+
*/
|
|
19
|
+
export declare function wrapRegisteredTools(registeredTools: RegisteredTool[], runner: ExtensionRunner): AgentTool[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=Object.defineProperty;var t=(e,o)=>n(e,"name",{value:o,configurable:!0});import{wrapToolDefinition as r,wrapToolDefinitions as p}from"../tools/tool-definition-wrapper.js";function c(e,o){return r(e.definition,()=>o.createContext())}t(c,"wrapRegisteredTool");function d(e,o){return p(e.map(i=>i.definition),()=>o.createContext())}t(d,"wrapRegisteredTools");export{c as wrapRegisteredTool,d as wrapRegisteredTools};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provides git branch and extension statuses - data not otherwise accessible to extensions.
|
|
3
|
+
* Token stats, model info available via ctx.sessionManager and ctx.model.
|
|
4
|
+
*/
|
|
5
|
+
export declare class FooterDataProvider {
|
|
6
|
+
private cwd;
|
|
7
|
+
private static readonly WATCH_DEBOUNCE_MS;
|
|
8
|
+
private extensionStatuses;
|
|
9
|
+
private cachedBranch;
|
|
10
|
+
private gitPaths;
|
|
11
|
+
private headWatcher;
|
|
12
|
+
private headWatchFilePath;
|
|
13
|
+
private headWatchFileListener;
|
|
14
|
+
private reftableWatcher;
|
|
15
|
+
private reftableTablesListWatcher;
|
|
16
|
+
private reftableTablesListPath;
|
|
17
|
+
private branchChangeCallbacks;
|
|
18
|
+
private availableProviderCount;
|
|
19
|
+
private refreshTimer;
|
|
20
|
+
private gitWatcherRetryTimer;
|
|
21
|
+
private refreshInFlight;
|
|
22
|
+
private refreshPending;
|
|
23
|
+
private disposed;
|
|
24
|
+
constructor(cwd: string);
|
|
25
|
+
/** Current git branch, null if not in repo, "detached" if detached HEAD */
|
|
26
|
+
getGitBranch(): string | null;
|
|
27
|
+
/** Extension status texts set via ctx.ui.setStatus() */
|
|
28
|
+
getExtensionStatuses(): ReadonlyMap<string, string>;
|
|
29
|
+
/** Subscribe to git branch changes. Returns unsubscribe function. */
|
|
30
|
+
onBranchChange(callback: () => void): () => void;
|
|
31
|
+
/** Internal: set extension status */
|
|
32
|
+
setExtensionStatus(key: string, text: string | undefined): void;
|
|
33
|
+
/** Internal: clear extension statuses */
|
|
34
|
+
clearExtensionStatuses(): void;
|
|
35
|
+
/** Number of unique providers with available models (for footer display) */
|
|
36
|
+
getAvailableProviderCount(): number;
|
|
37
|
+
/** Internal: update available provider count */
|
|
38
|
+
setAvailableProviderCount(count: number): void;
|
|
39
|
+
setCwd(cwd: string): void;
|
|
40
|
+
/** Internal: cleanup */
|
|
41
|
+
dispose(): void;
|
|
42
|
+
private notifyBranchChange;
|
|
43
|
+
private scheduleRefresh;
|
|
44
|
+
private refreshGitBranchAsync;
|
|
45
|
+
private resolveGitBranchSync;
|
|
46
|
+
private resolveGitBranchAsync;
|
|
47
|
+
private clearGitWatchers;
|
|
48
|
+
private scheduleGitWatcherRetry;
|
|
49
|
+
private handleGitWatcherError;
|
|
50
|
+
private setupGitWatcher;
|
|
51
|
+
}
|
|
52
|
+
/** Read-only view for extensions - excludes setExtensionStatus, setAvailableProviderCount and dispose */
|
|
53
|
+
export type ReadonlyFooterDataProvider = Pick<FooterDataProvider, "getGitBranch" | "getExtensionStatuses" | "getAvailableProviderCount" | "onBranchChange">;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var G=Object.defineProperty;var a=(r,t)=>G(r,"name",{value:t,configurable:!0});import{execFile as B,spawnSync as C}from"child_process";import{existsSync as n,readFileSync as o,statSync as F,unwatchFile as W,watchFile as g}from"fs";import{dirname as b,join as c,resolve as P}from"path";import{closeWatcher as f,FS_WATCH_RETRY_DELAY_MS as S,watchWithErrorHandler as u}from"../utils/fs-watch.js";function T(r){let t=r;for(;;){const e=c(t,".git");if(n(e))try{const i=F(e);if(i.isFile()){const h=o(e,"utf8").trim();if(h.startsWith("gitdir: ")){const l=P(t,h.slice(8).trim()),d=c(l,"HEAD");if(!n(d))return null;const m=c(l,"commondir"),p=n(m)?P(l,o(m,"utf8").trim()):l;return{repoDir:t,commonGitDir:p,headPath:d}}}else if(i.isDirectory()){const h=c(e,"HEAD");return n(h)?{repoDir:t,commonGitDir:e,headPath:h}:null}}catch{return null}const s=b(t);if(s===t)return null;t=s}}a(T,"findGitPaths");function E(r){const t=C("git",["--no-optional-locks","symbolic-ref","--quiet","--short","HEAD"],{cwd:r,encoding:"utf8",stdio:["ignore","pipe","ignore"]});return(t.status===0?t.stdout.trim():"")||null}a(E,"resolveBranchWithGitSync");function v(r){return new Promise(t=>{B("git",["--no-optional-locks","symbolic-ref","--quiet","--short","HEAD"],{cwd:r,encoding:"utf8"},(e,s)=>{if(e){t(null);return}const i=s.trim();t(i||null)})})}a(v,"resolveBranchWithGitAsync");function D(){return process.platform==="linux"&&!!(process.env.WSL_DISTRO_NAME||process.env.WSL_INTEROP)}a(D,"isWslEnvironment");function R(r){return/^\/mnt\/[a-z](?:\/|$)/i.test(r)}a(R,"isWindowsMountedRepoPath");function L(r){return D()&&R(r)}a(L,"shouldPollGitHead");class y{static{a(this,"FooterDataProvider")}cwd;static WATCH_DEBOUNCE_MS=500;extensionStatuses=new Map;cachedBranch=void 0;gitPaths=void 0;headWatcher=null;headWatchFilePath=null;headWatchFileListener=null;reftableWatcher=null;reftableTablesListWatcher=null;reftableTablesListPath=null;branchChangeCallbacks=new Set;availableProviderCount=0;refreshTimer=null;gitWatcherRetryTimer=null;refreshInFlight=!1;refreshPending=!1;disposed=!1;constructor(t){this.cwd=t,this.gitPaths=T(t),this.setupGitWatcher()}getGitBranch(){return this.cachedBranch===void 0&&(this.cachedBranch=this.resolveGitBranchSync()),this.cachedBranch}getExtensionStatuses(){return this.extensionStatuses}onBranchChange(t){return this.branchChangeCallbacks.add(t),()=>this.branchChangeCallbacks.delete(t)}setExtensionStatus(t,e){e===void 0?this.extensionStatuses.delete(t):this.extensionStatuses.set(t,e)}clearExtensionStatuses(){this.extensionStatuses.clear()}getAvailableProviderCount(){return this.availableProviderCount}setAvailableProviderCount(t){this.availableProviderCount=t}setCwd(t){this.cwd!==t&&(this.cwd=t,this.refreshTimer&&(clearTimeout(this.refreshTimer),this.refreshTimer=null),this.clearGitWatchers(),this.cachedBranch=void 0,this.gitPaths=T(t),this.setupGitWatcher(),this.notifyBranchChange())}dispose(){this.disposed=!0,this.refreshTimer&&(clearTimeout(this.refreshTimer),this.refreshTimer=null),this.clearGitWatchers(),this.branchChangeCallbacks.clear()}notifyBranchChange(){for(const t of this.branchChangeCallbacks)t()}scheduleRefresh(){if(!(this.disposed||this.refreshTimer)){if(this.refreshInFlight){this.refreshPending=!0;return}this.refreshTimer=setTimeout(()=>{this.refreshTimer=null,this.refreshGitBranchAsync()},y.WATCH_DEBOUNCE_MS)}}async refreshGitBranchAsync(){if(!this.disposed){if(this.refreshInFlight){this.refreshPending=!0;return}this.refreshInFlight=!0;try{const t=await this.resolveGitBranchAsync();if(this.disposed)return;if(this.cachedBranch!==void 0&&this.cachedBranch!==t){this.cachedBranch=t,this.notifyBranchChange();return}this.cachedBranch=t}finally{this.refreshInFlight=!1,this.refreshPending&&!this.disposed&&(this.refreshPending=!1,this.scheduleRefresh())}}}resolveGitBranchSync(){try{if(!this.gitPaths)return null;const t=o(this.gitPaths.headPath,"utf8").trim();if(t.startsWith("ref: refs/heads/")){const e=t.slice(16);return e===".invalid"?E(this.gitPaths.repoDir)??"detached":e}return"detached"}catch{return null}}async resolveGitBranchAsync(){try{if(!this.gitPaths)return null;const t=o(this.gitPaths.headPath,"utf8").trim();if(t.startsWith("ref: refs/heads/")){const e=t.slice(16);return e===".invalid"?await v(this.gitPaths.repoDir)??"detached":e}return"detached"}catch{return null}}clearGitWatchers(){f(this.headWatcher),this.headWatcher=null,this.headWatchFilePath&&this.headWatchFileListener&&(W(this.headWatchFilePath,this.headWatchFileListener),this.headWatchFilePath=null,this.headWatchFileListener=null),f(this.reftableWatcher),this.reftableWatcher=null,f(this.reftableTablesListWatcher),this.reftableTablesListWatcher=null,this.reftableTablesListPath&&(W(this.reftableTablesListPath),this.reftableTablesListPath=null),this.gitWatcherRetryTimer&&(clearTimeout(this.gitWatcherRetryTimer),this.gitWatcherRetryTimer=null)}scheduleGitWatcherRetry(){this.disposed||this.gitWatcherRetryTimer||(this.gitWatcherRetryTimer=setTimeout(()=>{this.gitWatcherRetryTimer=null,this.setupGitWatcher()},S))}handleGitWatcherError(){this.clearGitWatchers(),this.scheduleGitWatcherRetry()}setupGitWatcher(){if(this.clearGitWatchers(),!this.gitPaths)return;const t=L(this.gitPaths.repoDir);if(this.headWatcher=u(b(this.gitPaths.headPath),(s,i)=>{(!i||i==="HEAD")&&this.scheduleRefresh()},()=>this.handleGitWatcherError()),t&&(this.headWatchFilePath=this.gitPaths.headPath,this.headWatchFileListener=(s,i)=>{(s.mtimeMs!==i.mtimeMs||s.ctimeMs!==i.ctimeMs||s.size!==i.size)&&this.scheduleRefresh()},g(this.headWatchFilePath,{interval:1e3},this.headWatchFileListener)),!this.headWatcher&&!t)return;const e=c(this.gitPaths.commonGitDir,"reftable");if(n(e)){if(this.reftableWatcher=u(e,()=>{this.scheduleRefresh()},()=>this.handleGitWatcherError()),!this.reftableWatcher)return;const s=c(e,"tables.list");if(n(s)){if(this.reftableTablesListPath=s,this.reftableTablesListWatcher=u(s,()=>{this.scheduleRefresh()},()=>this.handleGitWatcherError()),!this.reftableTablesListWatcher)return;g(s,{interval:250},(i,h)=>{(i.mtimeMs!==h.mtimeMs||i.ctimeMs!==h.ctimeMs||i.size!==h.size)&&this.scheduleRefresh()})}}}}export{y as FooterDataProvider};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const DEFAULT_HTTP_IDLE_TIMEOUT_MS = 120000;
|
|
2
|
+
export declare const HTTP_IDLE_TIMEOUT_CHOICES: readonly [{
|
|
3
|
+
readonly label: "30 sec";
|
|
4
|
+
readonly timeoutMs: 30000;
|
|
5
|
+
}, {
|
|
6
|
+
readonly label: "1 min";
|
|
7
|
+
readonly timeoutMs: 60000;
|
|
8
|
+
}, {
|
|
9
|
+
readonly label: "2 min";
|
|
10
|
+
readonly timeoutMs: 120000;
|
|
11
|
+
}, {
|
|
12
|
+
readonly label: "5 min";
|
|
13
|
+
readonly timeoutMs: 300000;
|
|
14
|
+
}, {
|
|
15
|
+
readonly label: "disabled";
|
|
16
|
+
readonly timeoutMs: 0;
|
|
17
|
+
}];
|
|
18
|
+
export declare function parseHttpIdleTimeoutMs(value: unknown): number | undefined;
|
|
19
|
+
export declare function formatHttpIdleTimeoutMs(timeoutMs: number): string;
|
|
20
|
+
export declare function configureHttpDispatcher(timeoutMs?: number): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var s=Object.defineProperty;var i=(t,e)=>s(t,"name",{value:e,configurable:!0});import*as n from"undici";const l=12e4,m=[{label:"30 sec",timeoutMs:3e4},{label:"1 min",timeoutMs:6e4},{label:"2 min",timeoutMs:12e4},{label:"5 min",timeoutMs:3e5},{label:"disabled",timeoutMs:0}];function r(t){if(typeof t=="string"){const e=t.trim();return e.toLowerCase()==="disabled"?0:e.length===0?void 0:r(Number(e))}if(!(typeof t!="number"||!Number.isFinite(t)||t<0))return Math.floor(t)}i(r,"parseHttpIdleTimeoutMs");function d(t){const e=m.find(o=>o.timeoutMs===t);return e?e.label:`${t/1e3} sec`}i(d,"formatHttpIdleTimeoutMs");function f(t=l){const e=r(t);if(e===void 0)throw new Error(`Invalid HTTP idle timeout: ${String(t)}`);n.setGlobalDispatcher(new n.EnvHttpProxyAgent({allowH2:!1,bodyTimeout:e,headersTimeout:e})),n.install?.()}i(f,"configureHttpDispatcher");export{l as DEFAULT_HTTP_IDLE_TIMEOUT_MS,m as HTTP_IDLE_TIMEOUT_CHOICES,f as configureHttpDispatcher,d as formatHttpIdleTimeoutMs,r as parseHttpIdleTimeoutMs};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core modules shared between all run modes.
|
|
3
|
+
*/
|
|
4
|
+
export { AgentSession, type AgentSessionConfig, type AgentSessionEvent, type AgentSessionEventListener, type ModelCycleResult, type PromptOptions, type SessionStats, } from "./agent-session.ts";
|
|
5
|
+
export { AgentSessionRuntime, type CreateAgentSessionRuntimeFactory, type CreateAgentSessionRuntimeResult, createAgentSessionRuntime, } from "./agent-session-runtime.ts";
|
|
6
|
+
export { type AgentSessionRuntimeDiagnostic, type AgentSessionServices, type CreateAgentSessionFromServicesOptions, type CreateAgentSessionServicesOptions, createAgentSessionFromServices, createAgentSessionServices, } from "./agent-session-services.ts";
|
|
7
|
+
export { type BashExecutorOptions, type BashResult, executeBashWithOperations } from "./bash-executor.ts";
|
|
8
|
+
export type { CompactionResult } from "./compaction/index.ts";
|
|
9
|
+
export { createEventBus, type EventBus, type EventBusController } from "./event-bus.ts";
|
|
10
|
+
export { type AgentEndEvent, type AgentStartEvent, type AgentToolResult, type AgentToolUpdateCallback, type BeforeAgentStartEvent, type BeforeAgentStartEventResult, type BuildSystemPromptOptions, type ContextEvent, defineTool, discoverAndLoadExtensions, type ExecOptions, type ExecResult, type Extension, type ExtensionAPI, type ExtensionCommandContext, type ExtensionContext, type ExtensionError, type ExtensionEvent, type ExtensionFactory, type ExtensionFlag, type ExtensionHandler, ExtensionRunner, type ExtensionShortcut, type ExtensionUIContext, type LoadExtensionsResult, type MessageRenderer, type RegisteredCommand, type SessionBeforeCompactEvent, type SessionBeforeForkEvent, type SessionBeforeSwitchEvent, type SessionBeforeTreeEvent, type SessionCompactEvent, type SessionShutdownEvent, type SessionStartEvent, type SessionTreeEvent, type ToolCallEvent, type ToolCallEventResult, type ToolDefinition, type ToolRenderResultOptions, type ToolResultEvent, type TurnEndEvent, type TurnStartEvent, type WorkingIndicatorOptions, } from "./extensions/index.ts";
|
|
11
|
+
export { createSyntheticSourceInfo } from "./source-info.ts";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{AgentSession as t}from"./agent-session.js";import{AgentSessionRuntime as n,createAgentSessionRuntime as s}from"./agent-session-runtime.js";import{createAgentSessionFromServices as c,createAgentSessionServices as m}from"./agent-session-services.js";import{executeBashWithOperations as f}from"./bash-executor.js";import{createEventBus as a}from"./event-bus.js";import{defineTool as u,discoverAndLoadExtensions as A,ExtensionRunner as g}from"./extensions/index.js";import{createSyntheticSourceInfo as v}from"./source-info.js";export{t as AgentSession,n as AgentSessionRuntime,g as ExtensionRunner,c as createAgentSessionFromServices,s as createAgentSessionRuntime,m as createAgentSessionServices,a as createEventBus,v as createSyntheticSourceInfo,u as defineTool,A as discoverAndLoadExtensions,f as executeBashWithOperations};
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { type Keybinding, type KeybindingsConfig, type KeyId, KeybindingsManager as TuiKeybindingsManager } from "@openadapter/koda-tui";
|
|
2
|
+
export interface AppKeybindings {
|
|
3
|
+
"app.interrupt": true;
|
|
4
|
+
"app.clear": true;
|
|
5
|
+
"app.exit": true;
|
|
6
|
+
"app.suspend": true;
|
|
7
|
+
"app.thinking.cycle": true;
|
|
8
|
+
"app.model.cycleForward": true;
|
|
9
|
+
"app.model.cycleBackward": true;
|
|
10
|
+
"app.model.select": true;
|
|
11
|
+
"app.tools.expand": true;
|
|
12
|
+
"app.thinking.toggle": true;
|
|
13
|
+
"app.session.toggleNamedFilter": true;
|
|
14
|
+
"app.editor.external": true;
|
|
15
|
+
"app.message.followUp": true;
|
|
16
|
+
"app.message.dequeue": true;
|
|
17
|
+
"app.clipboard.pasteImage": true;
|
|
18
|
+
"app.session.new": true;
|
|
19
|
+
"app.session.tree": true;
|
|
20
|
+
"app.session.fork": true;
|
|
21
|
+
"app.session.resume": true;
|
|
22
|
+
"app.tree.foldOrUp": true;
|
|
23
|
+
"app.tree.unfoldOrDown": true;
|
|
24
|
+
"app.tree.editLabel": true;
|
|
25
|
+
"app.tree.toggleLabelTimestamp": true;
|
|
26
|
+
"app.session.togglePath": true;
|
|
27
|
+
"app.session.toggleSort": true;
|
|
28
|
+
"app.session.rename": true;
|
|
29
|
+
"app.session.delete": true;
|
|
30
|
+
"app.session.deleteNoninvasive": true;
|
|
31
|
+
"app.models.save": true;
|
|
32
|
+
"app.models.enableAll": true;
|
|
33
|
+
"app.models.clearAll": true;
|
|
34
|
+
"app.models.toggleProvider": true;
|
|
35
|
+
"app.models.reorderUp": true;
|
|
36
|
+
"app.models.reorderDown": true;
|
|
37
|
+
"app.tree.filter.default": true;
|
|
38
|
+
"app.tree.filter.noTools": true;
|
|
39
|
+
"app.tree.filter.userOnly": true;
|
|
40
|
+
"app.tree.filter.labeledOnly": true;
|
|
41
|
+
"app.tree.filter.all": true;
|
|
42
|
+
"app.tree.filter.cycleForward": true;
|
|
43
|
+
"app.tree.filter.cycleBackward": true;
|
|
44
|
+
}
|
|
45
|
+
export type AppKeybinding = keyof AppKeybindings;
|
|
46
|
+
declare module "@openadapter/koda-tui" {
|
|
47
|
+
interface Keybindings extends AppKeybindings {
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export declare const KEYBINDINGS: {
|
|
51
|
+
readonly "tui.editor.cursorUp": {
|
|
52
|
+
readonly defaultKeys: "up";
|
|
53
|
+
readonly description: "Move cursor up";
|
|
54
|
+
};
|
|
55
|
+
readonly "tui.editor.cursorDown": {
|
|
56
|
+
readonly defaultKeys: "down";
|
|
57
|
+
readonly description: "Move cursor down";
|
|
58
|
+
};
|
|
59
|
+
readonly "tui.editor.cursorLeft": {
|
|
60
|
+
readonly defaultKeys: ["left", "ctrl+b"];
|
|
61
|
+
readonly description: "Move cursor left";
|
|
62
|
+
};
|
|
63
|
+
readonly "tui.editor.cursorRight": {
|
|
64
|
+
readonly defaultKeys: ["right", "ctrl+f"];
|
|
65
|
+
readonly description: "Move cursor right";
|
|
66
|
+
};
|
|
67
|
+
readonly "tui.editor.cursorWordLeft": {
|
|
68
|
+
readonly defaultKeys: ["alt+left", "ctrl+left", "alt+b"];
|
|
69
|
+
readonly description: "Move cursor word left";
|
|
70
|
+
};
|
|
71
|
+
readonly "tui.editor.cursorWordRight": {
|
|
72
|
+
readonly defaultKeys: ["alt+right", "ctrl+right", "alt+f"];
|
|
73
|
+
readonly description: "Move cursor word right";
|
|
74
|
+
};
|
|
75
|
+
readonly "tui.editor.cursorLineStart": {
|
|
76
|
+
readonly defaultKeys: ["home", "ctrl+a"];
|
|
77
|
+
readonly description: "Move to line start";
|
|
78
|
+
};
|
|
79
|
+
readonly "tui.editor.cursorLineEnd": {
|
|
80
|
+
readonly defaultKeys: ["end", "ctrl+e"];
|
|
81
|
+
readonly description: "Move to line end";
|
|
82
|
+
};
|
|
83
|
+
readonly "tui.editor.jumpForward": {
|
|
84
|
+
readonly defaultKeys: "ctrl+]";
|
|
85
|
+
readonly description: "Jump forward to character";
|
|
86
|
+
};
|
|
87
|
+
readonly "tui.editor.jumpBackward": {
|
|
88
|
+
readonly defaultKeys: "ctrl+alt+]";
|
|
89
|
+
readonly description: "Jump backward to character";
|
|
90
|
+
};
|
|
91
|
+
readonly "tui.editor.pageUp": {
|
|
92
|
+
readonly defaultKeys: "pageUp";
|
|
93
|
+
readonly description: "Page up";
|
|
94
|
+
};
|
|
95
|
+
readonly "tui.editor.pageDown": {
|
|
96
|
+
readonly defaultKeys: "pageDown";
|
|
97
|
+
readonly description: "Page down";
|
|
98
|
+
};
|
|
99
|
+
readonly "tui.editor.deleteCharBackward": {
|
|
100
|
+
readonly defaultKeys: "backspace";
|
|
101
|
+
readonly description: "Delete character backward";
|
|
102
|
+
};
|
|
103
|
+
readonly "tui.editor.deleteCharForward": {
|
|
104
|
+
readonly defaultKeys: ["delete", "ctrl+d"];
|
|
105
|
+
readonly description: "Delete character forward";
|
|
106
|
+
};
|
|
107
|
+
readonly "tui.editor.deleteWordBackward": {
|
|
108
|
+
readonly defaultKeys: ["ctrl+w", "alt+backspace"];
|
|
109
|
+
readonly description: "Delete word backward";
|
|
110
|
+
};
|
|
111
|
+
readonly "tui.editor.deleteWordForward": {
|
|
112
|
+
readonly defaultKeys: ["alt+d", "alt+delete"];
|
|
113
|
+
readonly description: "Delete word forward";
|
|
114
|
+
};
|
|
115
|
+
readonly "tui.editor.deleteToLineStart": {
|
|
116
|
+
readonly defaultKeys: "ctrl+u";
|
|
117
|
+
readonly description: "Delete to line start";
|
|
118
|
+
};
|
|
119
|
+
readonly "tui.editor.deleteToLineEnd": {
|
|
120
|
+
readonly defaultKeys: "ctrl+k";
|
|
121
|
+
readonly description: "Delete to line end";
|
|
122
|
+
};
|
|
123
|
+
readonly "tui.editor.yank": {
|
|
124
|
+
readonly defaultKeys: "ctrl+y";
|
|
125
|
+
readonly description: "Yank";
|
|
126
|
+
};
|
|
127
|
+
readonly "tui.editor.yankPop": {
|
|
128
|
+
readonly defaultKeys: "alt+y";
|
|
129
|
+
readonly description: "Yank pop";
|
|
130
|
+
};
|
|
131
|
+
readonly "tui.editor.undo": {
|
|
132
|
+
readonly defaultKeys: "ctrl+-";
|
|
133
|
+
readonly description: "Undo";
|
|
134
|
+
};
|
|
135
|
+
readonly "tui.input.newLine": {
|
|
136
|
+
readonly defaultKeys: "shift+enter";
|
|
137
|
+
readonly description: "Insert newline";
|
|
138
|
+
};
|
|
139
|
+
readonly "tui.input.submit": {
|
|
140
|
+
readonly defaultKeys: "enter";
|
|
141
|
+
readonly description: "Submit input";
|
|
142
|
+
};
|
|
143
|
+
readonly "tui.input.tab": {
|
|
144
|
+
readonly defaultKeys: "tab";
|
|
145
|
+
readonly description: "Tab / autocomplete";
|
|
146
|
+
};
|
|
147
|
+
readonly "tui.input.copy": {
|
|
148
|
+
readonly defaultKeys: "ctrl+c";
|
|
149
|
+
readonly description: "Copy selection";
|
|
150
|
+
};
|
|
151
|
+
readonly "tui.select.up": {
|
|
152
|
+
readonly defaultKeys: "up";
|
|
153
|
+
readonly description: "Move selection up";
|
|
154
|
+
};
|
|
155
|
+
readonly "tui.select.down": {
|
|
156
|
+
readonly defaultKeys: "down";
|
|
157
|
+
readonly description: "Move selection down";
|
|
158
|
+
};
|
|
159
|
+
readonly "tui.select.pageUp": {
|
|
160
|
+
readonly defaultKeys: "pageUp";
|
|
161
|
+
readonly description: "Selection page up";
|
|
162
|
+
};
|
|
163
|
+
readonly "tui.select.pageDown": {
|
|
164
|
+
readonly defaultKeys: "pageDown";
|
|
165
|
+
readonly description: "Selection page down";
|
|
166
|
+
};
|
|
167
|
+
readonly "tui.select.confirm": {
|
|
168
|
+
readonly defaultKeys: "enter";
|
|
169
|
+
readonly description: "Confirm selection";
|
|
170
|
+
};
|
|
171
|
+
readonly "tui.select.cancel": {
|
|
172
|
+
readonly defaultKeys: ["escape", "ctrl+c"];
|
|
173
|
+
readonly description: "Cancel selection";
|
|
174
|
+
};
|
|
175
|
+
readonly "app.interrupt": {
|
|
176
|
+
readonly defaultKeys: "escape";
|
|
177
|
+
readonly description: "Cancel or abort";
|
|
178
|
+
};
|
|
179
|
+
readonly "app.clear": {
|
|
180
|
+
readonly defaultKeys: "ctrl+c";
|
|
181
|
+
readonly description: "Clear editor";
|
|
182
|
+
};
|
|
183
|
+
readonly "app.exit": {
|
|
184
|
+
readonly defaultKeys: "ctrl+d";
|
|
185
|
+
readonly description: "Exit when editor is empty";
|
|
186
|
+
};
|
|
187
|
+
readonly "app.suspend": {
|
|
188
|
+
readonly defaultKeys: "ctrl+z" | never[];
|
|
189
|
+
readonly description: "Suspend to background";
|
|
190
|
+
};
|
|
191
|
+
readonly "app.thinking.cycle": {
|
|
192
|
+
readonly defaultKeys: "shift+tab";
|
|
193
|
+
readonly description: "Cycle thinking level";
|
|
194
|
+
};
|
|
195
|
+
readonly "app.model.cycleForward": {
|
|
196
|
+
readonly defaultKeys: "ctrl+p";
|
|
197
|
+
readonly description: "Cycle to next model";
|
|
198
|
+
};
|
|
199
|
+
readonly "app.model.cycleBackward": {
|
|
200
|
+
readonly defaultKeys: "shift+ctrl+p";
|
|
201
|
+
readonly description: "Cycle to previous model";
|
|
202
|
+
};
|
|
203
|
+
readonly "app.model.select": {
|
|
204
|
+
readonly defaultKeys: "ctrl+l";
|
|
205
|
+
readonly description: "Open model selector";
|
|
206
|
+
};
|
|
207
|
+
readonly "app.tools.expand": {
|
|
208
|
+
readonly defaultKeys: "ctrl+o";
|
|
209
|
+
readonly description: "Toggle tool output";
|
|
210
|
+
};
|
|
211
|
+
readonly "app.thinking.toggle": {
|
|
212
|
+
readonly defaultKeys: "ctrl+t";
|
|
213
|
+
readonly description: "Toggle thinking blocks";
|
|
214
|
+
};
|
|
215
|
+
readonly "app.session.toggleNamedFilter": {
|
|
216
|
+
readonly defaultKeys: "ctrl+n";
|
|
217
|
+
readonly description: "Toggle named session filter";
|
|
218
|
+
};
|
|
219
|
+
readonly "app.editor.external": {
|
|
220
|
+
readonly defaultKeys: "ctrl+g";
|
|
221
|
+
readonly description: "Open external editor";
|
|
222
|
+
};
|
|
223
|
+
readonly "app.message.followUp": {
|
|
224
|
+
readonly defaultKeys: "alt+enter";
|
|
225
|
+
readonly description: "Queue follow-up message";
|
|
226
|
+
};
|
|
227
|
+
readonly "app.message.dequeue": {
|
|
228
|
+
readonly defaultKeys: "alt+up";
|
|
229
|
+
readonly description: "Restore queued messages";
|
|
230
|
+
};
|
|
231
|
+
readonly "app.clipboard.pasteImage": {
|
|
232
|
+
readonly defaultKeys: "alt+v" | "ctrl+v";
|
|
233
|
+
readonly description: "Paste image from clipboard";
|
|
234
|
+
};
|
|
235
|
+
readonly "app.session.new": {
|
|
236
|
+
readonly defaultKeys: [];
|
|
237
|
+
readonly description: "Start a new session";
|
|
238
|
+
};
|
|
239
|
+
readonly "app.session.tree": {
|
|
240
|
+
readonly defaultKeys: [];
|
|
241
|
+
readonly description: "Open session tree";
|
|
242
|
+
};
|
|
243
|
+
readonly "app.session.fork": {
|
|
244
|
+
readonly defaultKeys: [];
|
|
245
|
+
readonly description: "Fork current session";
|
|
246
|
+
};
|
|
247
|
+
readonly "app.session.resume": {
|
|
248
|
+
readonly defaultKeys: [];
|
|
249
|
+
readonly description: "Resume a session";
|
|
250
|
+
};
|
|
251
|
+
readonly "app.tree.foldOrUp": {
|
|
252
|
+
readonly defaultKeys: ["ctrl+left", "alt+left"];
|
|
253
|
+
readonly description: "Fold tree branch or move up";
|
|
254
|
+
};
|
|
255
|
+
readonly "app.tree.unfoldOrDown": {
|
|
256
|
+
readonly defaultKeys: ["ctrl+right", "alt+right"];
|
|
257
|
+
readonly description: "Unfold tree branch or move down";
|
|
258
|
+
};
|
|
259
|
+
readonly "app.tree.editLabel": {
|
|
260
|
+
readonly defaultKeys: "shift+l";
|
|
261
|
+
readonly description: "Edit tree label";
|
|
262
|
+
};
|
|
263
|
+
readonly "app.tree.toggleLabelTimestamp": {
|
|
264
|
+
readonly defaultKeys: "shift+t";
|
|
265
|
+
readonly description: "Toggle tree label timestamps";
|
|
266
|
+
};
|
|
267
|
+
readonly "app.session.togglePath": {
|
|
268
|
+
readonly defaultKeys: "ctrl+p";
|
|
269
|
+
readonly description: "Toggle session path display";
|
|
270
|
+
};
|
|
271
|
+
readonly "app.session.toggleSort": {
|
|
272
|
+
readonly defaultKeys: "ctrl+s";
|
|
273
|
+
readonly description: "Toggle session sort mode";
|
|
274
|
+
};
|
|
275
|
+
readonly "app.session.rename": {
|
|
276
|
+
readonly defaultKeys: "ctrl+r";
|
|
277
|
+
readonly description: "Rename session";
|
|
278
|
+
};
|
|
279
|
+
readonly "app.session.delete": {
|
|
280
|
+
readonly defaultKeys: "ctrl+d";
|
|
281
|
+
readonly description: "Delete session";
|
|
282
|
+
};
|
|
283
|
+
readonly "app.session.deleteNoninvasive": {
|
|
284
|
+
readonly defaultKeys: "ctrl+backspace";
|
|
285
|
+
readonly description: "Delete session when query is empty";
|
|
286
|
+
};
|
|
287
|
+
readonly "app.models.save": {
|
|
288
|
+
readonly defaultKeys: "ctrl+s";
|
|
289
|
+
readonly description: "Save model selection";
|
|
290
|
+
};
|
|
291
|
+
readonly "app.models.enableAll": {
|
|
292
|
+
readonly defaultKeys: "ctrl+a";
|
|
293
|
+
readonly description: "Enable all models";
|
|
294
|
+
};
|
|
295
|
+
readonly "app.models.clearAll": {
|
|
296
|
+
readonly defaultKeys: "ctrl+x";
|
|
297
|
+
readonly description: "Clear all models";
|
|
298
|
+
};
|
|
299
|
+
readonly "app.models.toggleProvider": {
|
|
300
|
+
readonly defaultKeys: "ctrl+p";
|
|
301
|
+
readonly description: "Toggle all models for provider";
|
|
302
|
+
};
|
|
303
|
+
readonly "app.models.reorderUp": {
|
|
304
|
+
readonly defaultKeys: "alt+up";
|
|
305
|
+
readonly description: "Move model up in order";
|
|
306
|
+
};
|
|
307
|
+
readonly "app.models.reorderDown": {
|
|
308
|
+
readonly defaultKeys: "alt+down";
|
|
309
|
+
readonly description: "Move model down in order";
|
|
310
|
+
};
|
|
311
|
+
readonly "app.tree.filter.default": {
|
|
312
|
+
readonly defaultKeys: "ctrl+d";
|
|
313
|
+
readonly description: "Tree filter: default view";
|
|
314
|
+
};
|
|
315
|
+
readonly "app.tree.filter.noTools": {
|
|
316
|
+
readonly defaultKeys: "ctrl+t";
|
|
317
|
+
readonly description: "Tree filter: hide tool results";
|
|
318
|
+
};
|
|
319
|
+
readonly "app.tree.filter.userOnly": {
|
|
320
|
+
readonly defaultKeys: "ctrl+u";
|
|
321
|
+
readonly description: "Tree filter: user messages only";
|
|
322
|
+
};
|
|
323
|
+
readonly "app.tree.filter.labeledOnly": {
|
|
324
|
+
readonly defaultKeys: "ctrl+l";
|
|
325
|
+
readonly description: "Tree filter: labeled entries only";
|
|
326
|
+
};
|
|
327
|
+
readonly "app.tree.filter.all": {
|
|
328
|
+
readonly defaultKeys: "ctrl+a";
|
|
329
|
+
readonly description: "Tree filter: show all entries";
|
|
330
|
+
};
|
|
331
|
+
readonly "app.tree.filter.cycleForward": {
|
|
332
|
+
readonly defaultKeys: "ctrl+o";
|
|
333
|
+
readonly description: "Tree filter: cycle forward";
|
|
334
|
+
};
|
|
335
|
+
readonly "app.tree.filter.cycleBackward": {
|
|
336
|
+
readonly defaultKeys: "shift+ctrl+o";
|
|
337
|
+
readonly description: "Tree filter: cycle backward";
|
|
338
|
+
};
|
|
339
|
+
};
|
|
340
|
+
export declare function migrateKeybindingsConfig(rawConfig: Record<string, unknown>): {
|
|
341
|
+
config: Record<string, unknown>;
|
|
342
|
+
migrated: boolean;
|
|
343
|
+
};
|
|
344
|
+
export declare class KeybindingsManager extends TuiKeybindingsManager {
|
|
345
|
+
private configPath;
|
|
346
|
+
constructor(userBindings?: KeybindingsConfig, configPath?: string);
|
|
347
|
+
static create(agentDir?: string): KeybindingsManager;
|
|
348
|
+
reload(): void;
|
|
349
|
+
getEffectiveConfig(): KeybindingsConfig;
|
|
350
|
+
private static loadFromFile;
|
|
351
|
+
}
|
|
352
|
+
export type { Keybinding, KeyId, KeybindingsConfig };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c=Object.defineProperty;var i=(r,e)=>c(r,"name",{value:e,configurable:!0});import{TUI_KEYBINDINGS as u,KeybindingsManager as f}from"@openadapter/koda-tui";import{existsSync as g,readFileSync as y}from"fs";import{join as m}from"path";import{getAgentDir as w}from"../config.js";const a={...u,"app.interrupt":{defaultKeys:"escape",description:"Cancel or abort"},"app.clear":{defaultKeys:"ctrl+c",description:"Clear editor"},"app.exit":{defaultKeys:"ctrl+d",description:"Exit when editor is empty"},"app.suspend":{defaultKeys:process.platform==="win32"?[]:"ctrl+z",description:"Suspend to background"},"app.thinking.cycle":{defaultKeys:"shift+tab",description:"Cycle thinking level"},"app.model.cycleForward":{defaultKeys:"ctrl+p",description:"Cycle to next model"},"app.model.cycleBackward":{defaultKeys:"shift+ctrl+p",description:"Cycle to previous model"},"app.model.select":{defaultKeys:"ctrl+l",description:"Open model selector"},"app.tools.expand":{defaultKeys:"ctrl+o",description:"Toggle tool output"},"app.thinking.toggle":{defaultKeys:"ctrl+t",description:"Toggle thinking blocks"},"app.session.toggleNamedFilter":{defaultKeys:"ctrl+n",description:"Toggle named session filter"},"app.editor.external":{defaultKeys:"ctrl+g",description:"Open external editor"},"app.message.followUp":{defaultKeys:"alt+enter",description:"Queue follow-up message"},"app.message.dequeue":{defaultKeys:"alt+up",description:"Restore queued messages"},"app.clipboard.pasteImage":{defaultKeys:process.platform==="win32"?"alt+v":"ctrl+v",description:"Paste image from clipboard"},"app.session.new":{defaultKeys:[],description:"Start a new session"},"app.session.tree":{defaultKeys:[],description:"Open session tree"},"app.session.fork":{defaultKeys:[],description:"Fork current session"},"app.session.resume":{defaultKeys:[],description:"Resume a session"},"app.tree.foldOrUp":{defaultKeys:["ctrl+left","alt+left"],description:"Fold tree branch or move up"},"app.tree.unfoldOrDown":{defaultKeys:["ctrl+right","alt+right"],description:"Unfold tree branch or move down"},"app.tree.editLabel":{defaultKeys:"shift+l",description:"Edit tree label"},"app.tree.toggleLabelTimestamp":{defaultKeys:"shift+t",description:"Toggle tree label timestamps"},"app.session.togglePath":{defaultKeys:"ctrl+p",description:"Toggle session path display"},"app.session.toggleSort":{defaultKeys:"ctrl+s",description:"Toggle session sort mode"},"app.session.rename":{defaultKeys:"ctrl+r",description:"Rename session"},"app.session.delete":{defaultKeys:"ctrl+d",description:"Delete session"},"app.session.deleteNoninvasive":{defaultKeys:"ctrl+backspace",description:"Delete session when query is empty"},"app.models.save":{defaultKeys:"ctrl+s",description:"Save model selection"},"app.models.enableAll":{defaultKeys:"ctrl+a",description:"Enable all models"},"app.models.clearAll":{defaultKeys:"ctrl+x",description:"Clear all models"},"app.models.toggleProvider":{defaultKeys:"ctrl+p",description:"Toggle all models for provider"},"app.models.reorderUp":{defaultKeys:"alt+up",description:"Move model up in order"},"app.models.reorderDown":{defaultKeys:"alt+down",description:"Move model down in order"},"app.tree.filter.default":{defaultKeys:"ctrl+d",description:"Tree filter: default view"},"app.tree.filter.noTools":{defaultKeys:"ctrl+t",description:"Tree filter: hide tool results"},"app.tree.filter.userOnly":{defaultKeys:"ctrl+u",description:"Tree filter: user messages only"},"app.tree.filter.labeledOnly":{defaultKeys:"ctrl+l",description:"Tree filter: labeled entries only"},"app.tree.filter.all":{defaultKeys:"ctrl+a",description:"Tree filter: show all entries"},"app.tree.filter.cycleForward":{defaultKeys:"ctrl+o",description:"Tree filter: cycle forward"},"app.tree.filter.cycleBackward":{defaultKeys:"shift+ctrl+o",description:"Tree filter: cycle backward"}},p={cursorUp:"tui.editor.cursorUp",cursorDown:"tui.editor.cursorDown",cursorLeft:"tui.editor.cursorLeft",cursorRight:"tui.editor.cursorRight",cursorWordLeft:"tui.editor.cursorWordLeft",cursorWordRight:"tui.editor.cursorWordRight",cursorLineStart:"tui.editor.cursorLineStart",cursorLineEnd:"tui.editor.cursorLineEnd",jumpForward:"tui.editor.jumpForward",jumpBackward:"tui.editor.jumpBackward",pageUp:"tui.editor.pageUp",pageDown:"tui.editor.pageDown",deleteCharBackward:"tui.editor.deleteCharBackward",deleteCharForward:"tui.editor.deleteCharForward",deleteWordBackward:"tui.editor.deleteWordBackward",deleteWordForward:"tui.editor.deleteWordForward",deleteToLineStart:"tui.editor.deleteToLineStart",deleteToLineEnd:"tui.editor.deleteToLineEnd",yank:"tui.editor.yank",yankPop:"tui.editor.yankPop",undo:"tui.editor.undo",newLine:"tui.input.newLine",submit:"tui.input.submit",tab:"tui.input.tab",copy:"tui.input.copy",selectUp:"tui.select.up",selectDown:"tui.select.down",selectPageUp:"tui.select.pageUp",selectPageDown:"tui.select.pageDown",selectConfirm:"tui.select.confirm",selectCancel:"tui.select.cancel",interrupt:"app.interrupt",clear:"app.clear",exit:"app.exit",suspend:"app.suspend",cycleThinkingLevel:"app.thinking.cycle",cycleModelForward:"app.model.cycleForward",cycleModelBackward:"app.model.cycleBackward",selectModel:"app.model.select",expandTools:"app.tools.expand",toggleThinking:"app.thinking.toggle",toggleSessionNamedFilter:"app.session.toggleNamedFilter",externalEditor:"app.editor.external",followUp:"app.message.followUp",dequeue:"app.message.dequeue",pasteImage:"app.clipboard.pasteImage",newSession:"app.session.new",tree:"app.session.tree",fork:"app.session.fork",resume:"app.session.resume",treeFoldOrUp:"app.tree.foldOrUp",treeUnfoldOrDown:"app.tree.unfoldOrDown",treeEditLabel:"app.tree.editLabel",treeToggleLabelTimestamp:"app.tree.toggleLabelTimestamp",toggleSessionPath:"app.session.togglePath",toggleSessionSort:"app.session.toggleSort",renameSession:"app.session.rename",deleteSession:"app.session.delete",deleteSessionNoninvasive:"app.session.deleteNoninvasive"};function d(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}i(d,"isRecord");function K(r){return r in p}i(K,"isLegacyKeybindingName");function h(r){if(!d(r))return{};const e={};for(const[o,t]of Object.entries(r)){if(typeof t=="string"){e[o]=t;continue}Array.isArray(t)&&t.every(l=>typeof l=="string")&&(e[o]=t)}return e}i(h,"toKeybindingsConfig");function b(r){const e={};let o=!1;for(const[t,l]of Object.entries(r)){const s=K(t)?p[t]:t;if(s!==t&&(o=!0),t!==s&&Object.hasOwn(r,s)){o=!0;continue}e[s]=l}return{config:k(e),migrated:o}}i(b,"migrateKeybindingsConfig");function k(r){const e={};for(const t of Object.keys(a))Object.hasOwn(r,t)&&(e[t]=r[t]);const o=Object.keys(r).filter(t=>!Object.hasOwn(e,t)).sort();for(const t of o)e[t]=r[t];return e}i(k,"orderKeybindingsConfig");function T(r){if(g(r))try{const e=JSON.parse(y(r,"utf-8"));return d(e)?e:void 0}catch{return}}i(T,"loadRawConfig");class n extends f{static{i(this,"KeybindingsManager")}configPath;constructor(e={},o){super(a,e),this.configPath=o}static create(e=w()){const o=m(e,"keybindings.json"),t=n.loadFromFile(o);return new n(t,o)}reload(){this.configPath&&this.setUserBindings(n.loadFromFile(this.configPath))}getEffectiveConfig(){return this.getResolvedBindings()}static loadFromFile(e){const o=T(e);return o?h(b(o).config):{}}}export{a as KEYBINDINGS,n as KeybindingsManager,b as migrateKeybindingsConfig};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom message types and transformers for the coding agent.
|
|
3
|
+
*
|
|
4
|
+
* Extends the base AgentMessage type with coding-agent specific message types,
|
|
5
|
+
* and provides a transformer to convert them to LLM-compatible messages.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentMessage } from "@openadapter/koda-agent-core";
|
|
8
|
+
import type { ImageContent, Message, TextContent } from "@openadapter/koda-ai";
|
|
9
|
+
export declare const COMPACTION_SUMMARY_PREFIX = "The conversation history before this point was compacted into the following summary:\n\n<summary>\n";
|
|
10
|
+
export declare const COMPACTION_SUMMARY_SUFFIX = "\n</summary>";
|
|
11
|
+
export declare const BRANCH_SUMMARY_PREFIX = "The following is a summary of a branch that this conversation came back from:\n\n<summary>\n";
|
|
12
|
+
export declare const BRANCH_SUMMARY_SUFFIX = "</summary>";
|
|
13
|
+
/**
|
|
14
|
+
* Message type for bash executions via the ! command.
|
|
15
|
+
*/
|
|
16
|
+
export interface BashExecutionMessage {
|
|
17
|
+
role: "bashExecution";
|
|
18
|
+
command: string;
|
|
19
|
+
output: string;
|
|
20
|
+
exitCode: number | undefined;
|
|
21
|
+
cancelled: boolean;
|
|
22
|
+
truncated: boolean;
|
|
23
|
+
fullOutputPath?: string;
|
|
24
|
+
timestamp: number;
|
|
25
|
+
/** If true, this message is excluded from LLM context (!! prefix) */
|
|
26
|
+
excludeFromContext?: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Message type for extension-injected messages via sendMessage().
|
|
30
|
+
* These are custom messages that extensions can inject into the conversation.
|
|
31
|
+
*/
|
|
32
|
+
export interface CustomMessage<T = unknown> {
|
|
33
|
+
role: "custom";
|
|
34
|
+
customType: string;
|
|
35
|
+
content: string | (TextContent | ImageContent)[];
|
|
36
|
+
display: boolean;
|
|
37
|
+
details?: T;
|
|
38
|
+
timestamp: number;
|
|
39
|
+
}
|
|
40
|
+
export interface BranchSummaryMessage {
|
|
41
|
+
role: "branchSummary";
|
|
42
|
+
summary: string;
|
|
43
|
+
fromId: string;
|
|
44
|
+
timestamp: number;
|
|
45
|
+
}
|
|
46
|
+
export interface CompactionSummaryMessage {
|
|
47
|
+
role: "compactionSummary";
|
|
48
|
+
summary: string;
|
|
49
|
+
tokensBefore: number;
|
|
50
|
+
timestamp: number;
|
|
51
|
+
}
|
|
52
|
+
declare module "@openadapter/koda-agent-core" {
|
|
53
|
+
interface CustomAgentMessages {
|
|
54
|
+
bashExecution: BashExecutionMessage;
|
|
55
|
+
custom: CustomMessage;
|
|
56
|
+
branchSummary: BranchSummaryMessage;
|
|
57
|
+
compactionSummary: CompactionSummaryMessage;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Convert a BashExecutionMessage to user message text for LLM context.
|
|
62
|
+
*/
|
|
63
|
+
export declare function bashExecutionToText(msg: BashExecutionMessage): string;
|
|
64
|
+
export declare function createBranchSummaryMessage(summary: string, fromId: string, timestamp: string): BranchSummaryMessage;
|
|
65
|
+
export declare function createCompactionSummaryMessage(summary: string, tokensBefore: number, timestamp: string): CompactionSummaryMessage;
|
|
66
|
+
/** Convert CustomMessageEntry to AgentMessage format */
|
|
67
|
+
export declare function createCustomMessage(customType: string, content: string | (TextContent | ImageContent)[], display: boolean, details: unknown | undefined, timestamp: string): CustomMessage;
|
|
68
|
+
/**
|
|
69
|
+
* Transform AgentMessages (including custom types) to LLM-compatible Messages.
|
|
70
|
+
*
|
|
71
|
+
* This is used by:
|
|
72
|
+
* - Agent's transormToLlm option (for prompt calls and queued messages)
|
|
73
|
+
* - Compaction's generateSummary (for summarization)
|
|
74
|
+
* - Custom extensions and tools
|
|
75
|
+
*/
|
|
76
|
+
export declare function convertToLlm(messages: AgentMessage[]): Message[];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var u=Object.defineProperty;var o=(e,t)=>u(e,"name",{value:t,configurable:!0});const c=`The conversation history before this point was compacted into the following summary:
|
|
2
|
+
|
|
3
|
+
<summary>
|
|
4
|
+
`,s=`
|
|
5
|
+
</summary>`,i=`The following is a summary of a branch that this conversation came back from:
|
|
6
|
+
|
|
7
|
+
<summary>
|
|
8
|
+
`,m="</summary>";function p(e){let t=`Ran \`${e.command}\`
|
|
9
|
+
`;return e.output?t+=`\`\`\`
|
|
10
|
+
${e.output}
|
|
11
|
+
\`\`\``:t+="(no output)",e.cancelled?t+=`
|
|
12
|
+
|
|
13
|
+
(command cancelled)`:e.exitCode!==null&&e.exitCode!==void 0&&e.exitCode!==0&&(t+=`
|
|
14
|
+
|
|
15
|
+
Command exited with code ${e.exitCode}`),e.truncated&&e.fullOutputPath&&(t+=`
|
|
16
|
+
|
|
17
|
+
[Output truncated. Full output: ${e.fullOutputPath}]`),t}o(p,"bashExecutionToText");function x(e,t,n){return{role:"branchSummary",summary:e,fromId:t,timestamp:new Date(n).getTime()}}o(x,"createBranchSummaryMessage");function d(e,t,n){return{role:"compactionSummary",summary:e,tokensBefore:t,timestamp:new Date(n).getTime()}}o(d,"createCompactionSummaryMessage");function f(e,t,n,r,a){return{role:"custom",customType:e,content:t,display:n,details:r,timestamp:new Date(a).getTime()}}o(f,"createCustomMessage");function y(e){return e.map(t=>{switch(t.role){case"bashExecution":return t.excludeFromContext?void 0:{role:"user",content:[{type:"text",text:p(t)}],timestamp:t.timestamp};case"custom":return{role:"user",content:typeof t.content=="string"?[{type:"text",text:t.content}]:t.content,timestamp:t.timestamp};case"branchSummary":return{role:"user",content:[{type:"text",text:i+t.summary+m}],timestamp:t.timestamp};case"compactionSummary":return{role:"user",content:[{type:"text",text:c+t.summary+s}],timestamp:t.timestamp};case"user":case"assistant":case"toolResult":return t;default:const n=t;return}}).filter(t=>t!==void 0)}o(y,"convertToLlm");export{i as BRANCH_SUMMARY_PREFIX,m as BRANCH_SUMMARY_SUFFIX,c as COMPACTION_SUMMARY_PREFIX,s as COMPACTION_SUMMARY_SUFFIX,p as bashExecutionToText,y as convertToLlm,x as createBranchSummaryMessage,d as createCompactionSummaryMessage,f as createCustomMessage};
|