@markusylisiurunen/tau 0.3.19 → 0.3.20

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.
Files changed (168) hide show
  1. package/README.md +19 -47
  2. package/dist/core/cli.js +6 -39
  3. package/dist/core/cli.js.map +1 -1
  4. package/dist/core/commands/index.js +1 -1
  5. package/dist/core/commands/index.js.map +1 -1
  6. package/dist/core/commands/registry.js +5 -76
  7. package/dist/core/commands/registry.js.map +1 -1
  8. package/dist/core/config/builtin_themes.js +0 -62
  9. package/dist/core/config/builtin_themes.js.map +1 -1
  10. package/dist/core/config/content_loader.js +4 -7
  11. package/dist/core/config/content_loader.js.map +1 -1
  12. package/dist/core/config/diff_tool.js +1 -1
  13. package/dist/core/config/diff_tool.js.map +1 -1
  14. package/dist/core/config/runtime.js +1 -1
  15. package/dist/core/config/runtime.js.map +1 -1
  16. package/dist/core/config/runtime_config_snapshot.js +1 -1
  17. package/dist/core/config/runtime_config_snapshot.js.map +1 -1
  18. package/dist/core/config/schema.js +10 -43
  19. package/dist/core/config/schema.js.map +1 -1
  20. package/dist/core/config/skill_parser.js +1 -1
  21. package/dist/core/config/skill_parser.js.map +1 -1
  22. package/dist/core/config/virtual_defaults.js +0 -1
  23. package/dist/core/config/virtual_defaults.js.map +1 -1
  24. package/dist/core/debug.js +1 -7
  25. package/dist/core/debug.js.map +1 -1
  26. package/dist/core/diff_review/bridge.js +1 -3
  27. package/dist/core/diff_review/bridge.js.map +1 -1
  28. package/dist/core/diff_review/index.js.map +1 -1
  29. package/dist/core/diff_review/protocol.js +13 -13
  30. package/dist/core/diff_review/protocol.js.map +1 -1
  31. package/dist/core/diff_review/review_instructions.js +48 -0
  32. package/dist/core/diff_review/review_instructions.js.map +1 -0
  33. package/dist/core/events/index.js.map +1 -1
  34. package/dist/core/events/parser.js +161 -38
  35. package/dist/core/events/parser.js.map +1 -1
  36. package/dist/core/events/types.js +1 -1
  37. package/dist/core/events/types.js.map +1 -1
  38. package/dist/core/index.js +1 -1
  39. package/dist/core/index.js.map +1 -1
  40. package/dist/core/models/catalog.js +4 -4
  41. package/dist/core/models/catalog.js.map +1 -1
  42. package/dist/core/personas.js +29 -14
  43. package/dist/core/personas.js.map +1 -1
  44. package/dist/core/runtime/chat_runtime.js +12 -34
  45. package/dist/core/runtime/chat_runtime.js.map +1 -1
  46. package/dist/core/runtime/conversation_turn_runtime.js +0 -4
  47. package/dist/core/runtime/conversation_turn_runtime.js.map +1 -1
  48. package/dist/core/runtime/runtime_bootstrap.js +191 -317
  49. package/dist/core/runtime/runtime_bootstrap.js.map +1 -1
  50. package/dist/core/runtime/session_prompt_composer.js +2 -6
  51. package/dist/core/runtime/session_prompt_composer.js.map +1 -1
  52. package/dist/core/session/core_session.js +2 -5
  53. package/dist/core/session/core_session.js.map +1 -1
  54. package/dist/core/session/message_accumulator.js +6 -0
  55. package/dist/core/session/message_accumulator.js.map +1 -1
  56. package/dist/core/session/runner.js +137 -32
  57. package/dist/core/session/runner.js.map +1 -1
  58. package/dist/core/session/session_engine.js +365 -120
  59. package/dist/core/session/session_engine.js.map +1 -1
  60. package/dist/core/static/index.js +0 -11
  61. package/dist/core/static/index.js.map +1 -1
  62. package/dist/core/subagents/registry.js +0 -2
  63. package/dist/core/subagents/registry.js.map +1 -1
  64. package/dist/core/subagents/subagent_engine.js +1 -3
  65. package/dist/core/subagents/subagent_engine.js.map +1 -1
  66. package/dist/core/telegram/adapter.js +1 -1
  67. package/dist/core/telegram/adapter.js.map +1 -1
  68. package/dist/core/telegram/config.js +3 -13
  69. package/dist/core/telegram/config.js.map +1 -1
  70. package/dist/core/telegram/session_manager.js +2 -5
  71. package/dist/core/telegram/session_manager.js.map +1 -1
  72. package/dist/core/tools/bash.js +6 -21
  73. package/dist/core/tools/bash.js.map +1 -1
  74. package/dist/core/tools/edit.js +1 -4
  75. package/dist/core/tools/edit.js.map +1 -1
  76. package/dist/core/tools/emit_output.js +1 -1
  77. package/dist/core/tools/emit_output.js.map +1 -1
  78. package/dist/core/tools/execution_backend.js +3 -1
  79. package/dist/core/tools/execution_backend.js.map +1 -1
  80. package/dist/core/tools/grep.js +1 -1
  81. package/dist/core/tools/grep.js.map +1 -1
  82. package/dist/core/tools/list.js +1 -1
  83. package/dist/core/tools/list.js.map +1 -1
  84. package/dist/core/tools/nook.js +1 -10
  85. package/dist/core/tools/nook.js.map +1 -1
  86. package/dist/core/tools/read.js +1 -1
  87. package/dist/core/tools/read.js.map +1 -1
  88. package/dist/core/tools/registry.js.map +1 -1
  89. package/dist/core/tools/send_input_to_agent.js +1 -1
  90. package/dist/core/tools/send_input_to_agent.js.map +1 -1
  91. package/dist/core/tools/spawn_agent.js +40 -88
  92. package/dist/core/tools/spawn_agent.js.map +1 -1
  93. package/dist/core/tools/terminate_agent.js +1 -1
  94. package/dist/core/tools/terminate_agent.js.map +1 -1
  95. package/dist/core/tools/view_image.js +1 -1
  96. package/dist/core/tools/view_image.js.map +1 -1
  97. package/dist/core/tools/wait_for_agents.js +1 -1
  98. package/dist/core/tools/wait_for_agents.js.map +1 -1
  99. package/dist/core/tools/web_fetch.js +1 -1
  100. package/dist/core/tools/web_fetch.js.map +1 -1
  101. package/dist/core/tools/web_search.js +1 -1
  102. package/dist/core/tools/web_search.js.map +1 -1
  103. package/dist/core/tools/write.js +1 -4
  104. package/dist/core/tools/write.js.map +1 -1
  105. package/dist/core/types.js +0 -1
  106. package/dist/core/types.js.map +1 -1
  107. package/dist/core/utils/context.js +1 -1
  108. package/dist/core/utils/context.js.map +1 -1
  109. package/dist/core/utils/context_builder.js +1 -15
  110. package/dist/core/utils/context_builder.js.map +1 -1
  111. package/dist/core/utils/user_metadata.js +13 -19
  112. package/dist/core/utils/user_metadata.js.map +1 -1
  113. package/dist/core/version.js +1 -1
  114. package/dist/execution/cloudflare_sandbox_execution_environment.js +15 -10
  115. package/dist/execution/cloudflare_sandbox_execution_environment.js.map +1 -1
  116. package/dist/execution/fly_sprite_execution_environment.js +9 -1
  117. package/dist/execution/fly_sprite_execution_environment.js.map +1 -1
  118. package/dist/execution/local_execution_environment.js +9 -55
  119. package/dist/execution/local_execution_environment.js.map +1 -1
  120. package/dist/execution/tool_backend_execution_environment.js +7 -10
  121. package/dist/execution/tool_backend_execution_environment.js.map +1 -1
  122. package/dist/host/client_tool_broker.js +1 -1
  123. package/dist/host/client_tool_broker.js.map +1 -1
  124. package/dist/host/execution_runtime.js +35 -0
  125. package/dist/host/execution_runtime.js.map +1 -0
  126. package/dist/host/hosted_ephemeral_agent_session.js +20 -11
  127. package/dist/host/hosted_ephemeral_agent_session.js.map +1 -1
  128. package/dist/host/local_session_host.js +117 -109
  129. package/dist/host/local_session_host.js.map +1 -1
  130. package/dist/host/session_protocol_handler.js +0 -10
  131. package/dist/host/session_protocol_handler.js.map +1 -1
  132. package/dist/main.js +31 -63
  133. package/dist/main.js.map +1 -1
  134. package/dist/nook/README.md +1 -1
  135. package/dist/protocol/index.d.ts +1 -1
  136. package/dist/protocol/index.js.map +1 -1
  137. package/dist/protocol/session_protocol.d.ts +1 -11
  138. package/dist/protocol/session_protocol.js +242 -343
  139. package/dist/protocol/session_protocol.js.map +1 -1
  140. package/dist/sdk/client.js +2 -24
  141. package/dist/sdk/client.js.map +1 -1
  142. package/dist/sdk/index.d.ts +1 -1
  143. package/dist/sdk/index.js.map +1 -1
  144. package/dist/sdk/session.js +0 -9
  145. package/dist/sdk/session.js.map +1 -1
  146. package/dist/sdk/types.d.ts +0 -4
  147. package/dist/starter/skills/guided-review/SKILL.md +1 -1
  148. package/dist/tui/chat_controller/command_hints.js +0 -2
  149. package/dist/tui/chat_controller/command_hints.js.map +1 -1
  150. package/dist/tui/chat_view.js +0 -2
  151. package/dist/tui/chat_view.js.map +1 -1
  152. package/dist/tui/session_chat_app.js +1 -1
  153. package/dist/tui/session_chat_app.js.map +1 -1
  154. package/dist/tui/session_chat_controller.js +2 -38
  155. package/dist/tui/session_chat_controller.js.map +1 -1
  156. package/dist/tui/ui/custom_editor.js +0 -5
  157. package/dist/tui/ui/custom_editor.js.map +1 -1
  158. package/dist/tui/ui/footer.js +4 -37
  159. package/dist/tui/ui/footer.js.map +1 -1
  160. package/dist/tui/ui/slash_autocomplete.js +2 -33
  161. package/dist/tui/ui/slash_autocomplete.js.map +1 -1
  162. package/dist/tui/ui/theme/palette.js +0 -2
  163. package/dist/tui/ui/theme/palette.js.map +1 -1
  164. package/dist/tui/ui/theme/theme.js.map +1 -1
  165. package/package.json +4 -4
  166. package/dist/core/diff_review/review_thread.js +0 -264
  167. package/dist/core/diff_review/review_thread.js.map +0 -1
  168. package/dist/core/static/prompts/diff-review-wrapper.md +0 -26
@@ -5,7 +5,6 @@ export class ChatRuntime {
5
5
  sessionInstance;
6
6
  turnRuntime;
7
7
  currentPersona;
8
- riskLevel;
9
8
  promptContext;
10
9
  environment;
11
10
  latestPromptComposition;
@@ -13,11 +12,11 @@ export class ChatRuntime {
13
12
  const promptComposition = options.initialPromptComposition ??
14
13
  composeSessionPrompts({
15
14
  persona: options.persona,
16
- riskLevel: options.riskLevel,
17
15
  cwd: options.promptContext.cwd,
16
+ repoRoot: options.promptContext.repoRoot,
18
17
  datetime: new Date(options.environment.now()).toISOString(),
19
- platform: options.environment.platform(),
20
- nodeVersion: options.environment.nodeVersion(),
18
+ platform: options.promptContext.platform,
19
+ nodeVersion: options.promptContext.nodeVersion,
21
20
  skillsBlock: options.promptContext.skillsBlock,
22
21
  projectContextBlock: options.promptContext.projectContextBlock,
23
22
  });
@@ -25,9 +24,12 @@ export class ChatRuntime {
25
24
  persona: options.persona,
26
25
  systemPrompt: promptComposition.baseSystemPrompt,
27
26
  subagentPrompts: promptComposition.subagentPrompts,
28
- riskLevel: options.riskLevel,
29
27
  toolRegistry: options.toolRegistry,
30
28
  clientToolDefinitions: options.clientToolDefinitions,
29
+ modelResolver: options.modelResolver,
30
+ ...(options.resolveSubagentRuntime
31
+ ? { resolveSubagentRuntime: options.resolveSubagentRuntime }
32
+ : {}),
31
33
  config: options.config,
32
34
  deps: options.deps,
33
35
  cwd: options.promptContext.cwd,
@@ -37,7 +39,6 @@ export class ChatRuntime {
37
39
  return new ChatRuntime({
38
40
  session,
39
41
  persona: options.persona,
40
- riskLevel: options.riskLevel,
41
42
  promptContext: options.promptContext,
42
43
  environment: options.environment,
43
44
  initialPromptComposition: promptComposition,
@@ -47,7 +48,6 @@ export class ChatRuntime {
47
48
  this.sessionInstance = options.session;
48
49
  this.turnRuntime = new ConversationTurnRuntime(this.sessionInstance);
49
50
  this.currentPersona = options.persona;
50
- this.riskLevel = options.riskLevel;
51
51
  this.promptContext = { ...options.promptContext };
52
52
  this.environment = options.environment;
53
53
  this.latestPromptComposition = options.initialPromptComposition ?? this.composePromptSet();
@@ -67,9 +67,6 @@ export class ChatRuntime {
67
67
  get persona() {
68
68
  return this.currentPersona;
69
69
  }
70
- get currentRiskLevel() {
71
- return this.riskLevel;
72
- }
73
70
  runTurn(options) {
74
71
  return this.turnRuntime.run(options);
75
72
  }
@@ -82,8 +79,8 @@ export class ChatRuntime {
82
79
  interruptTurn() {
83
80
  return this.turnRuntime.interrupt();
84
81
  }
85
- setConfig(config) {
86
- this.sessionInstance.setConfig(config);
82
+ setRuntimeConfig(config, modelResolver) {
83
+ this.sessionInstance.setRuntimeConfig(config, modelResolver);
87
84
  }
88
85
  setReasoning(reasoning) {
89
86
  this.currentPersona = {
@@ -95,14 +92,6 @@ export class ChatRuntime {
95
92
  };
96
93
  this.sessionInstance.setReasoning(reasoning);
97
94
  }
98
- setRiskLevel(level) {
99
- const previous = this.riskLevel;
100
- this.riskLevel = level;
101
- this.sessionInstance.setRiskLevel(level);
102
- if (previous !== level) {
103
- this.rebuildSubagentPrompts();
104
- }
105
- }
106
95
  setPersona(persona, options) {
107
96
  this.currentPersona = persona;
108
97
  this.rebuildSystemPrompts(options);
@@ -125,25 +114,14 @@ export class ChatRuntime {
125
114
  this.latestPromptComposition = this.composePromptSet(options?.skillsBlock);
126
115
  this.sessionInstance.setPersona(this.currentPersona, this.latestPromptComposition.baseSystemPrompt, this.latestPromptComposition.subagentPrompts);
127
116
  }
128
- rebuildSubagentPrompts(options) {
129
- if (options?.skillsBlock !== undefined) {
130
- this.promptContext.skillsBlock = options.skillsBlock;
131
- }
132
- const nextPromptComposition = this.composePromptSet(options?.skillsBlock);
133
- this.latestPromptComposition = {
134
- ...this.latestPromptComposition,
135
- subagentPrompts: nextPromptComposition.subagentPrompts,
136
- };
137
- this.sessionInstance.setPersona(this.currentPersona, this.latestPromptComposition.baseSystemPrompt, this.latestPromptComposition.subagentPrompts);
138
- }
139
117
  composePromptSet(skillsBlock) {
140
118
  return composeSessionPrompts({
141
119
  persona: this.currentPersona,
142
- riskLevel: this.riskLevel,
143
120
  cwd: this.promptContext.cwd,
121
+ repoRoot: this.promptContext.repoRoot,
144
122
  datetime: new Date(this.environment.now()).toISOString(),
145
- platform: this.environment.platform(),
146
- nodeVersion: this.environment.nodeVersion(),
123
+ platform: this.promptContext.platform,
124
+ nodeVersion: this.promptContext.nodeVersion,
147
125
  skillsBlock: skillsBlock ?? this.promptContext.skillsBlock,
148
126
  projectContextBlock: this.promptContext.projectContextBlock,
149
127
  });
@@ -1 +1 @@
1
- {"version":3,"file":"chat_runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/chat_runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat_runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/chat_runtime.ts"],"names":[],"mappings":"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"}
@@ -37,10 +37,6 @@ export class ConversationTurnRuntime {
37
37
  await stream.return?.({ aborted: true });
38
38
  break;
39
39
  }
40
- if (abortController.signal.aborted) {
41
- await stream.return?.({ aborted: true });
42
- break;
43
- }
44
40
  }
45
41
  }
46
42
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation_turn_runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/conversation_turn_runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation_turn_runtime.js","sourceRoot":"","sources":["../../../src/core/runtime/conversation_turn_runtime.ts"],"names":[],"mappings":"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"}