@markusylisiurunen/tau 0.3.77 → 0.3.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/agent/agent_runtime.js +6 -11
- package/dist/core/agent/agent_runtime.js.map +1 -1
- package/dist/core/cli.js +2 -2
- package/dist/core/cli.js.map +1 -1
- package/dist/core/commands/registry.js +2 -1
- package/dist/core/commands/registry.js.map +1 -1
- package/dist/core/config/content_loader.js +9 -193
- package/dist/core/config/content_loader.js.map +1 -1
- package/dist/core/config/index.js +1 -1
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/runtime.js +1 -2
- package/dist/core/config/runtime.js.map +1 -1
- package/dist/core/config/schema.js +10 -151
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/virtual_bundle.js +2 -5
- package/dist/core/config/virtual_bundle.js.map +1 -1
- package/dist/core/config/virtual_defaults.js +0 -2
- package/dist/core/config/virtual_defaults.js.map +1 -1
- package/dist/core/debug.js +8 -23
- package/dist/core/debug.js.map +1 -1
- package/dist/core/diff_review/bridge.js +2 -24
- package/dist/core/diff_review/bridge.js.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/personas.js +4 -8
- package/dist/core/personas.js.map +1 -1
- package/dist/core/runtime/agent_model.js +0 -2
- package/dist/core/runtime/agent_model.js.map +1 -1
- package/dist/core/runtime/chat_runtime.js +4 -6
- package/dist/core/runtime/chat_runtime.js.map +1 -1
- package/dist/core/runtime/session_prompt_composer.js +12 -27
- package/dist/core/runtime/session_prompt_composer.js.map +1 -1
- package/dist/core/static/index.js +4 -4
- package/dist/core/static/index.js.map +1 -1
- package/dist/core/static/tau_docs/client-tools.md +1 -1
- package/dist/core/static/tau_docs/config-reference.md +13 -94
- package/dist/core/static/tau_docs/configuration.md +4 -11
- package/dist/core/static/tau_docs/ownership-and-scope.md +2 -2
- package/dist/core/static/tau_docs/personas.md +6 -19
- package/dist/core/static/tau_docs/prompts-and-project-context.md +1 -1
- package/dist/core/static/tau_docs/remote-sessions.md +2 -2
- package/dist/core/static/tau_docs/security.md +2 -2
- package/dist/core/static/tau_docs/session-protocol.md +2 -0
- package/dist/core/static/tau_docs/sessions.md +2 -14
- package/dist/core/static/tau_docs/skills.md +1 -1
- package/dist/core/static/tau_docs/subagents.md +26 -99
- package/dist/core/static/tau_docs/telegram.md +10 -13
- package/dist/core/static/tau_docs/tools.md +6 -6
- package/dist/core/static/tau_docs/troubleshooting.md +4 -5
- package/dist/core/static/tau_docs/tui.md +10 -21
- package/dist/core/subagents/agent_supervisor.js +5 -6
- package/dist/core/subagents/agent_supervisor.js.map +1 -1
- package/dist/core/subagents/format.js +1 -1
- package/dist/core/subagents/format.js.map +1 -1
- package/dist/core/subagents/prompt.js +7 -0
- package/dist/core/subagents/prompt.js.map +1 -0
- package/dist/core/subagents/registry.js +14 -43
- package/dist/core/subagents/registry.js.map +1 -1
- package/dist/core/subagents/types.js +2 -2
- package/dist/core/subagents/types.js.map +1 -1
- package/dist/core/telegram/adapter.js +6 -10
- package/dist/core/telegram/adapter.js.map +1 -1
- package/dist/core/telegram/config.js +32 -57
- package/dist/core/telegram/config.js.map +1 -1
- package/dist/core/telegram/local_session_client.js +0 -3
- package/dist/core/telegram/local_session_client.js.map +1 -1
- package/dist/core/telegram/runtime.js +0 -3
- package/dist/core/telegram/runtime.js.map +1 -1
- package/dist/core/telegram/session_manager.js +29 -52
- package/dist/core/telegram/session_manager.js.map +1 -1
- package/dist/core/telegram/workspace.js +13 -18
- package/dist/core/telegram/workspace.js.map +1 -1
- package/dist/core/tools/catalog.js +10 -5
- package/dist/core/tools/catalog.js.map +1 -1
- package/dist/core/tools/send_input_to_agent.js +1 -1
- package/dist/core/tools/send_input_to_agent.js.map +1 -1
- package/dist/core/tools/spawn_agent.js +13 -30
- package/dist/core/tools/spawn_agent.js.map +1 -1
- package/dist/core/tools/view_image.js +12 -17
- package/dist/core/tools/view_image.js.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/usage/logs.js.map +1 -1
- package/dist/core/version.js +1 -1
- package/dist/diff_tool/app/dist/assets/{angular-html-BjHlbeCk.js → angular-html-CnO8qept.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{angular-ts-5J5hsUV-.js → angular-ts-DPXUio9Z.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{apl-ChIs51_N.js → apl-X8YsymsQ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{astro-RtGdbaIT.js → astro-BQ9k8AQ0.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{blade-Cuc0ZzS1.js → blade-DZ1LYIzB.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{c-IpjS3QEt.js → c-VLTwNh7z.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{chapel-BvHOmF40.js → chapel-5s-sGN8D.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{cobol-BWLkapNx.js → cobol-C9RzwrVu.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{coffee-lfdf_MuK.js → coffee-BHvjZ343.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{cpp-GvMfdutG.js → cpp-CBTVXbBp.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{crystal--kdmUeXB.js → crystal-DQJua4y4.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{css-CnlOazId.js → css-BQflXFb6.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{edge-CwnxQiFe.js → edge-BmdmXGH4.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{elixir-BVO19qQd.js → elixir-oiOLs98L.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{elm-BK3istEo.js → elm-BgYuiU4E.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{erb-CO4uKwKD.js → erb-CvFrXpyY.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{git-rebase-CDrrgbGV.js → git-rebase-D3Zo1BLH.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glimmer-js-7CFSyo6c.js → glimmer-js-B4-8E3lJ.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glimmer-ts-Ofllf2Yo.js → glimmer-ts-CtKkD0t_.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{glsl-K_36bq1K.js → glsl-BAqforx_.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{graphql-BMZnssUN.js → graphql-DuE1RMyL.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{hack-MG_t8QNs.js → hack-CHBcXjz1.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{haml-0hDK-uCt.js → haml-DAs2z3tD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{handlebars-D4_MRJPB.js → handlebars-CfAla6QK.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{html-BCi--7qp.js → html-D5co0BLD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{html-derivative-DYq2AWiD.js → html-derivative-BZaWEmAT.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{http-BmLFm2Pm.js → http-Cii5MjJE.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{hurl-CT71cK69.js → hurl-Bur-XdJO.js} +1 -1
- package/dist/diff_tool/app/dist/assets/index-CZUi_I-p.js +340 -0
- package/dist/diff_tool/app/dist/assets/{java-Bm2FCq-d.js → java-DN39wI4w.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{javascript-C7oEny21.js → javascript-VUReF1H4.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jinja-igQBS-SS.js → jinja-BcrfV1JB.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jison-BrOUp4rK.js → jison-Bez5Mtmy.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{json-DsuR7Nai.js → json-ChV8m0Le.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{jsx-BdomFXcA.js → jsx-D0SXNtM0.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{julia-DqOG4pbM.js → julia-DvhpcBwG.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{just-ZrSTuT0n.js → just-BGwe8S6x.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{latex-DbmtZIwN.js → latex-pWSag83P.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{liquid-DKnUlRIp.js → liquid-UdnqDjKz.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{lua-Cyq3f59a.js → lua-CjDHeHEr.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{marko-hmOsFPHQ.js → marko-yLX6iW68.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{mdc-BnnQmDC-.js → mdc-BOLj6Oyq.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{nginx-C0zLUSna.js → nginx-5r5xPc2T.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{nim-Oljl3c5n.js → nim-9exKQYMz.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{org-Cp4CA-0c.js → org-B2fpAlbt.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{perl-DstDVYmJ.js → perl-DV2fcwyY.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{php-Cc3bNZ7J.js → php-D-AthX_E.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{pug-B3xDUzl0.js → pug-DuKcQxFj.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{qml-B9iDahKk.js → qml-C16b4SYx.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{r-B7M5ZSBC.js → r-B1ZldnJf.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{razor-BlfV6bjQ.js → razor-TYmslaAB.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{regexp-BVT0NBj6.js → regexp-dWCffmDD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{rst-Cq-Mcher.js → rst-DEkLr2YR.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{ruby-5uCK_s01.js → ruby-BJnJzr4u.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{sas-m4dYluKN.js → sas-DeRsDbUE.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{scss-DFiJcBQH.js → scss-SGV_CwKm.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{shellscript-DCtSkJJQ.js → shellscript-BI7khmmR.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{shellsession-_DntbpLM.js → shellsession-Nupw_Vvw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{soy-Dd1fWsG8.js → soy-B96cBzxv.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{sql-Bygp5F-5.js → sql-CsIdKfaO.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{stata-CqIA1VQD.js → stata-Dnq48cE6.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{surrealql-C2-2C-z3.js → surrealql-D6lw4TiD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{svelte-CrTy7VSb.js → svelte-ChVoq9tB.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{templ-B_h9AHFJ.js → templ-Dh1EXuHD.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{tex-AwlGuBDG.js → tex-KTYusNFe.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{ts-tags--oqU6stH.js → ts-tags-DC2RU1_R.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{tsx-Cx-oUPFA.js → tsx-DtIM39Jy.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{twig-DMQw3R9O.js → twig-C6D_TA3n.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{typescript-BCtu9W7E.js → typescript-BGAE5iuw.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{typst-jGrqJHSo.js → typst-nWoGZ22y.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-html-DTMalvg7.js → vue-html-prNdIjLu.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-GFZcsvXd.js → vue-iyHf-l4z.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{vue-vine-BwDeqLrM.js → vue-vine-KSSlnVeg.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{xml-CoXyuOzf.js → xml-DdCC83Xd.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{xsl-BQFm34CN.js → xsl-DSqZxsez.js} +1 -1
- package/dist/diff_tool/app/dist/assets/{yaml-CbO2A_pF.js → yaml-CZcBUWvf.js} +1 -1
- package/dist/diff_tool/app/dist/index.html +1 -1
- package/dist/diff_tool/http_server.js +2 -9
- package/dist/diff_tool/http_server.js.map +1 -1
- package/dist/diff_tool/index.js +2 -2
- package/dist/diff_tool/index.js.map +1 -1
- package/dist/diff_tool/launcher.js +14 -8
- package/dist/diff_tool/launcher.js.map +1 -1
- package/dist/diff_tool/protocol_client.js +0 -7
- package/dist/diff_tool/protocol_client.js.map +1 -1
- package/dist/diff_tool/review_state.js +4 -10
- package/dist/diff_tool/review_state.js.map +1 -1
- package/dist/diff_tool/review_state_persistence.js +12 -7
- package/dist/diff_tool/review_state_persistence.js.map +1 -1
- package/dist/diff_tool/shared_types.js +0 -48
- package/dist/diff_tool/shared_types.js.map +1 -1
- package/dist/host/execution_runtime.js +1 -1
- package/dist/host/execution_runtime.js.map +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js +1 -1
- package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
- package/dist/host/local_session_host.js +8 -18
- package/dist/host/local_session_host.js.map +1 -1
- package/dist/main.js +1 -15
- package/dist/main.js.map +1 -1
- package/dist/protocol/index.d.ts +1 -1
- package/dist/protocol/index.js.map +1 -1
- package/dist/protocol/session_protocol.d.ts +2 -8
- package/dist/protocol/session_protocol.js +2 -10
- package/dist/protocol/session_protocol.js.map +1 -1
- package/dist/store/session_snapshot_migrations.js +32 -1
- package/dist/store/session_snapshot_migrations.js.map +1 -1
- package/dist/tui/chat_controller/diff_review_service.js +0 -15
- package/dist/tui/chat_controller/diff_review_service.js.map +1 -1
- package/dist/tui/chat_view.js +5 -1
- package/dist/tui/chat_view.js.map +1 -1
- package/dist/tui/session_chat_app.js +1 -2
- package/dist/tui/session_chat_app.js.map +1 -1
- package/dist/tui/session_chat_controller.js +30 -37
- package/dist/tui/session_chat_controller.js.map +1 -1
- package/dist/tui/ui/custom_editor.js +21 -15
- package/dist/tui/ui/custom_editor.js.map +1 -1
- package/dist/tui/ui/slash_autocomplete.js +1 -8
- package/dist/tui/ui/slash_autocomplete.js.map +1 -1
- package/dist/tui/ui/subagent_panel.js +1 -12
- package/dist/tui/ui/subagent_panel.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/config/diff_tool.js +0 -51
- package/dist/core/config/diff_tool.js.map +0 -1
- package/dist/core/subagents/default.js +0 -8
- package/dist/core/subagents/default.js.map +0 -1
- package/dist/diff_tool/app/dist/assets/index-DyaXBald.js +0 -340
- /package/dist/core/static/prompts/{default-subagent-wrapper.md → subagent-wrapper.md} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { dirname } from "node:path/posix";
|
|
2
2
|
import { createCommandRegistry, } from "../core/commands/index.js";
|
|
3
|
-
import { getElevenLabsApiKey, getOpenAIApiKey
|
|
3
|
+
import { getElevenLabsApiKey, getOpenAIApiKey } from "../core/config/index.js";
|
|
4
4
|
import { captureDiffReviewSnapshot, DiffReviewBridge, } from "../core/diff_review/index.js";
|
|
5
5
|
import { buildDiffReviewInstructions } from "../core/diff_review/review_instructions.js";
|
|
6
6
|
import { createDefaultCoreDeps } from "../core/runtime/deps.js";
|
|
@@ -14,6 +14,7 @@ import { getSpeechToTextRecordingMaxDurationMs, getSpeechToTextStreamingSampleRa
|
|
|
14
14
|
import { collectSpeechToTextContext } from "../core/utils/speech_to_text_context.js";
|
|
15
15
|
import { formatTauUserText, hasAutoCompactionContinuationMetadata, splitTauUserText, } from "../core/utils/user_metadata.js";
|
|
16
16
|
import { APP_VERSION } from "../core/version.js";
|
|
17
|
+
import { launchBuiltInDiffTool } from "../diff_tool/launcher.js";
|
|
17
18
|
import { applySessionProtocolDelta, applySessionProtocolSubagentActivitiesMessage, } from "../protocol/session_protocol.js";
|
|
18
19
|
import { TauSessionProtocolResponseError } from "../transport/errors.js";
|
|
19
20
|
import { copyAssistantCodeToClipboard, copyAssistantTextToClipboard, } from "./chat_controller/assistant_clipboard.js";
|
|
@@ -37,7 +38,6 @@ export class SessionChatController {
|
|
|
37
38
|
targetLabel;
|
|
38
39
|
configuredClientToolNames;
|
|
39
40
|
config;
|
|
40
|
-
defaultDiffTool;
|
|
41
41
|
diffToolLauncher;
|
|
42
42
|
deps;
|
|
43
43
|
speechToTextDeps;
|
|
@@ -98,7 +98,6 @@ export class SessionChatController {
|
|
|
98
98
|
this.targetLabel = options.targetLabel;
|
|
99
99
|
this.configuredClientToolNames = options.configuredClientToolNames ?? [];
|
|
100
100
|
this.config = options.config ?? {};
|
|
101
|
-
this.defaultDiffTool = options.defaultDiffTool;
|
|
102
101
|
this.diffToolLauncher = options.diffToolLauncher;
|
|
103
102
|
this.deps = options.deps ?? createDefaultCoreDeps();
|
|
104
103
|
this.speechToTextDeps = options.speechToTextDeps;
|
|
@@ -130,7 +129,6 @@ export class SessionChatController {
|
|
|
130
129
|
refreshStatus: () => this.refreshStatus(),
|
|
131
130
|
startTurnTimer: () => this.startTurnTimer(),
|
|
132
131
|
stopTurnTimer: () => this.stopTurnTimer(),
|
|
133
|
-
getDiffToolConfig: () => this.resolveDiffToolConfig(),
|
|
134
132
|
startSession: (args) => this.startDiffReviewBridge(args, this.session, this.snapshot),
|
|
135
133
|
onReviewReturned: (review) => this.handleReturnedDiffReview(review, this.session),
|
|
136
134
|
});
|
|
@@ -188,6 +186,11 @@ export class SessionChatController {
|
|
|
188
186
|
onCtrlP: () => void this.cyclePersonality(),
|
|
189
187
|
onCtrlS: () => void this.stashEditorToClipboard(),
|
|
190
188
|
onCtrlY: () => void this.toggleListenCapture(),
|
|
189
|
+
onDisabledSubmit: (mode) => {
|
|
190
|
+
if (this.listenRecording && !this.listenTransition) {
|
|
191
|
+
void this.runListenTransition(() => this.stopListenCapture(mode));
|
|
192
|
+
}
|
|
193
|
+
},
|
|
191
194
|
onCtrlG: () => this.interruptSelectedSubagent(),
|
|
192
195
|
onEscape: () => void this.interrupt(),
|
|
193
196
|
beforeSubmit: (text) => {
|
|
@@ -197,7 +200,7 @@ export class SessionChatController {
|
|
|
197
200
|
},
|
|
198
201
|
onChange: (text) => this.handleEditorChange(text),
|
|
199
202
|
onSubmit: (text) => void this.handleSubmit(text, this.takeHiddenSystemSubmission()),
|
|
200
|
-
|
|
203
|
+
onQueueSubmit: (text) => void this.handleSubmit(text, this.takeHiddenSystemSubmission(), "queue"),
|
|
201
204
|
onAltUp: () => void this.cancelPendingMessagesIntoEditor(),
|
|
202
205
|
onAltDown: () => this.cycleSubagentSelection(),
|
|
203
206
|
};
|
|
@@ -234,7 +237,7 @@ export class SessionChatController {
|
|
|
234
237
|
formatSubmittedText(text, hiddenSystemMessages) {
|
|
235
238
|
return formatTauUserText({ text, hiddenSystemMessages });
|
|
236
239
|
}
|
|
237
|
-
async handleSubmit(text, hiddenSystemMessages = []) {
|
|
240
|
+
async handleSubmit(text, hiddenSystemMessages = [], mode = "steer") {
|
|
238
241
|
const trimmed = text.trim();
|
|
239
242
|
if (!trimmed) {
|
|
240
243
|
if (this.isStreaming || this.submittedTurnInProgress) {
|
|
@@ -272,7 +275,11 @@ export class SessionChatController {
|
|
|
272
275
|
if (trimmed.startsWith("!")) {
|
|
273
276
|
return;
|
|
274
277
|
}
|
|
275
|
-
this.
|
|
278
|
+
const submittedText = this.formatSubmittedText(trimmed, hiddenSystemMessages);
|
|
279
|
+
if (mode === "steer")
|
|
280
|
+
this.submitSteeringText(submittedText);
|
|
281
|
+
else
|
|
282
|
+
this.submitQueuedText(submittedText);
|
|
276
283
|
return;
|
|
277
284
|
}
|
|
278
285
|
if (trimmed.startsWith("/") && this.isSingleLineInput(text)) {
|
|
@@ -353,7 +360,6 @@ export class SessionChatController {
|
|
|
353
360
|
themes: () => this.themeIds.map((id) => ({ id })),
|
|
354
361
|
autocompletePaths: async (query, limit) => (await this.session.autocompletePaths({ query, limit })).paths,
|
|
355
362
|
skills: () => this.snapshot.catalog.skills.map((skill) => skill.name),
|
|
356
|
-
subagents: () => Object.keys(this.getCurrentPersonaSnapshot()?.subagents ?? {}),
|
|
357
363
|
};
|
|
358
364
|
}
|
|
359
365
|
buildStartupIntroTitle() {
|
|
@@ -473,21 +479,6 @@ export class SessionChatController {
|
|
|
473
479
|
this.view.requestRender();
|
|
474
480
|
}
|
|
475
481
|
}
|
|
476
|
-
async submitSteeringMessage(text, hiddenSystemMessages = []) {
|
|
477
|
-
const trimmed = text.trim();
|
|
478
|
-
if (!trimmed) {
|
|
479
|
-
return;
|
|
480
|
-
}
|
|
481
|
-
if (!this.isSessionOperationActive()) {
|
|
482
|
-
await this.runSessionTurn(() => this.session.submit(this.formatSubmittedText(trimmed, hiddenSystemMessages)));
|
|
483
|
-
return;
|
|
484
|
-
}
|
|
485
|
-
if (this.isBlockingSessionOperationActive()) {
|
|
486
|
-
this.view.showFooterNotice("wait for tau to become idle before submitting input", "default");
|
|
487
|
-
return;
|
|
488
|
-
}
|
|
489
|
-
this.submitSteeringText(this.formatSubmittedText(trimmed, hiddenSystemMessages));
|
|
490
|
-
}
|
|
491
482
|
submitQueuedText(text) {
|
|
492
483
|
void this.session.queue(text).catch((error) => {
|
|
493
484
|
if (!this.isPendingMessageCancellation(error)) {
|
|
@@ -790,7 +781,7 @@ export class SessionChatController {
|
|
|
790
781
|
clearTimeout(timeout);
|
|
791
782
|
}
|
|
792
783
|
}
|
|
793
|
-
async stopListenCapture() {
|
|
784
|
+
async stopListenCapture(mode) {
|
|
794
785
|
const recording = this.listenRecording;
|
|
795
786
|
if (!recording)
|
|
796
787
|
return;
|
|
@@ -810,7 +801,9 @@ export class SessionChatController {
|
|
|
810
801
|
return;
|
|
811
802
|
}
|
|
812
803
|
const durationMs = Math.min(Math.max(Date.now() - recording.startedAt, 0), SPEECH_TO_TEXT_CLIENT_MAX_DURATION_MS);
|
|
813
|
-
await this.transcribeListenAudioFile(recording.audioPath, durationMs, recording.transcription);
|
|
804
|
+
const transcribed = await this.transcribeListenAudioFile(recording.audioPath, durationMs, recording.transcription);
|
|
805
|
+
if (mode && transcribed && !this.disposed)
|
|
806
|
+
this.view.submitEditor(mode);
|
|
814
807
|
}
|
|
815
808
|
async retryRetainedListenAudio() {
|
|
816
809
|
if (this.pendingEditorMutations > 0) {
|
|
@@ -826,7 +819,9 @@ export class SessionChatController {
|
|
|
826
819
|
this.view.showFooterNotice("no failed speech recording to retry", "default");
|
|
827
820
|
return;
|
|
828
821
|
}
|
|
829
|
-
await this.runListenTransition(() =>
|
|
822
|
+
await this.runListenTransition(async () => {
|
|
823
|
+
await this.transcribeListenAudioFile(retainedAudio.audioPath, retainedAudio.durationMs);
|
|
824
|
+
});
|
|
830
825
|
}
|
|
831
826
|
async discardRetainedListenAudio() {
|
|
832
827
|
if (this.listenRecording || this.listenTransition || this.listenActivityLabel) {
|
|
@@ -883,7 +878,7 @@ export class SessionChatController {
|
|
|
883
878
|
this.retainedListenAudio = undefined;
|
|
884
879
|
}
|
|
885
880
|
await cleanupListenTempFile(audioPath);
|
|
886
|
-
return;
|
|
881
|
+
return false;
|
|
887
882
|
}
|
|
888
883
|
if (!this.listenPreview)
|
|
889
884
|
this.beginListenPreview();
|
|
@@ -897,7 +892,7 @@ export class SessionChatController {
|
|
|
897
892
|
`recording retained at ${audioPath}`,
|
|
898
893
|
"run /listen discard to delete it",
|
|
899
894
|
]);
|
|
900
|
-
return;
|
|
895
|
+
return false;
|
|
901
896
|
}
|
|
902
897
|
let audio;
|
|
903
898
|
try {
|
|
@@ -912,7 +907,7 @@ export class SessionChatController {
|
|
|
912
907
|
this.retainedListenAudio = undefined;
|
|
913
908
|
}
|
|
914
909
|
await cleanupListenTempFile(audioPath);
|
|
915
|
-
return;
|
|
910
|
+
return false;
|
|
916
911
|
}
|
|
917
912
|
if (audio.byteLength < LISTEN_RECORDING_MIN_BYTES) {
|
|
918
913
|
transcription?.abort();
|
|
@@ -921,7 +916,7 @@ export class SessionChatController {
|
|
|
921
916
|
this.retainedListenAudio = undefined;
|
|
922
917
|
}
|
|
923
918
|
await cleanupListenTempFile(audioPath);
|
|
924
|
-
return;
|
|
919
|
+
return false;
|
|
925
920
|
}
|
|
926
921
|
if (this.disposed) {
|
|
927
922
|
transcription?.abort();
|
|
@@ -929,7 +924,7 @@ export class SessionChatController {
|
|
|
929
924
|
this.retainedListenAudio = undefined;
|
|
930
925
|
}
|
|
931
926
|
await cleanupListenTempFile(audioPath);
|
|
932
|
-
return;
|
|
927
|
+
return false;
|
|
933
928
|
}
|
|
934
929
|
let activeTranscription = transcription;
|
|
935
930
|
this.listenActivityLabel = "transcribing voice input";
|
|
@@ -942,7 +937,7 @@ export class SessionChatController {
|
|
|
942
937
|
mimeType: "audio/wav",
|
|
943
938
|
});
|
|
944
939
|
if (this.listenPreview !== preview)
|
|
945
|
-
return;
|
|
940
|
+
return false;
|
|
946
941
|
preview.commit(text);
|
|
947
942
|
if (text.trim() && !this.editorHiddenSystemMessages.includes(TRANSCRIPTION_GUIDANCE)) {
|
|
948
943
|
this.editorHiddenSystemMessages.push(TRANSCRIPTION_GUIDANCE);
|
|
@@ -957,6 +952,7 @@ export class SessionChatController {
|
|
|
957
952
|
`recording remains at ${audioPath}; delete it manually`,
|
|
958
953
|
]);
|
|
959
954
|
}
|
|
955
|
+
return Boolean(text.trim());
|
|
960
956
|
}
|
|
961
957
|
catch (error) {
|
|
962
958
|
this.retainedListenAudio = { audioPath, durationMs };
|
|
@@ -965,6 +961,7 @@ export class SessionChatController {
|
|
|
965
961
|
`recording retained at ${audioPath}`,
|
|
966
962
|
"run /listen retry to try again, or /listen discard to delete it",
|
|
967
963
|
]);
|
|
964
|
+
return false;
|
|
968
965
|
}
|
|
969
966
|
finally {
|
|
970
967
|
activeTranscription?.abort();
|
|
@@ -2278,9 +2275,6 @@ export class SessionChatController {
|
|
|
2278
2275
|
!this.listenActivityLabel &&
|
|
2279
2276
|
!this.speakTask);
|
|
2280
2277
|
}
|
|
2281
|
-
resolveDiffToolConfig() {
|
|
2282
|
-
return this.config.diffTool ?? this.defaultDiffTool;
|
|
2283
|
-
}
|
|
2284
2278
|
async startDiffReviewBridge(args, session, sessionSnapshot, executionEnvironment = session) {
|
|
2285
2279
|
const cwd = sessionSnapshot.executionEnvironment.cwd;
|
|
2286
2280
|
const backend = createSdkToolExecutionBackend({ executionEnvironment, cwd });
|
|
@@ -2305,7 +2299,6 @@ export class SessionChatController {
|
|
|
2305
2299
|
...(options.reasoning !== undefined ? { reasoning: options.reasoning } : {}),
|
|
2306
2300
|
}),
|
|
2307
2301
|
deps: this.deps,
|
|
2308
|
-
...(this.diffToolLauncher ? { toolLauncher: this.diffToolLauncher } : {}),
|
|
2309
2302
|
});
|
|
2310
2303
|
const unsubscribeEphemeral = session.onEphemeral((message) => {
|
|
2311
2304
|
const event = message.event;
|
|
@@ -2326,7 +2319,7 @@ export class SessionChatController {
|
|
|
2326
2319
|
if (args.signal.aborted) {
|
|
2327
2320
|
throw new Error("diff review start aborted");
|
|
2328
2321
|
}
|
|
2329
|
-
await bridge.launchTool(
|
|
2322
|
+
await bridge.launchTool(this.diffToolLauncher ?? launchBuiltInDiffTool);
|
|
2330
2323
|
}
|
|
2331
2324
|
catch (error) {
|
|
2332
2325
|
unsubscribeEphemeral();
|