@bastani/atomic 0.9.10 → 0.9.11-alpha.2

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 (204) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/builtin/cursor/CHANGELOG.md +6 -0
  3. package/dist/builtin/cursor/package.json +3 -3
  4. package/dist/builtin/intercom/CHANGELOG.md +6 -0
  5. package/dist/builtin/intercom/package.json +3 -3
  6. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  7. package/dist/builtin/mcp/package.json +3 -3
  8. package/dist/builtin/subagents/CHANGELOG.md +6 -0
  9. package/dist/builtin/subagents/package.json +4 -4
  10. package/dist/builtin/web-access/CHANGELOG.md +6 -0
  11. package/dist/builtin/web-access/package.json +2 -2
  12. package/dist/builtin/workflows/CHANGELOG.md +23 -0
  13. package/dist/builtin/workflows/README.md +8 -3
  14. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +1 -1
  15. package/dist/builtin/workflows/package.json +2 -2
  16. package/dist/builtin/workflows/src/durable/backend.ts +2 -2
  17. package/dist/builtin/workflows/src/durable/child-primitive.ts +3 -0
  18. package/dist/builtin/workflows/src/durable/completed-catalog.ts +182 -33
  19. package/dist/builtin/workflows/src/durable/completed-inspection.ts +9 -4
  20. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres-root.ts +173 -0
  21. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +36 -12
  22. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +31 -8
  23. package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +9 -3
  24. package/dist/builtin/workflows/src/durable/factory.ts +35 -6
  25. package/dist/builtin/workflows/src/durable/local-command.ts +11 -2
  26. package/dist/builtin/workflows/src/durable/resume-runtime.ts +6 -2
  27. package/dist/builtin/workflows/src/durable/stage-primitive.ts +48 -10
  28. package/dist/builtin/workflows/src/durable/types.ts +11 -0
  29. package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +9 -9
  30. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +89 -0
  31. package/dist/builtin/workflows/src/engine/run.ts +18 -16
  32. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +14 -2
  33. package/dist/builtin/workflows/src/extension/public-types.ts +3 -4
  34. package/dist/builtin/workflows/src/extension/render-call.ts +4 -0
  35. package/dist/builtin/workflows/src/extension/render-result.ts +31 -1
  36. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +3 -0
  37. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +5 -2
  38. package/dist/builtin/workflows/src/extension/workflow-schema.ts +3 -2
  39. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +1 -0
  40. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +88 -2
  41. package/dist/builtin/workflows/src/extension/workflow-tool.ts +13 -0
  42. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +3 -0
  43. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +6 -3
  44. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +2 -2
  45. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +4 -1
  46. package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +2 -3
  47. package/dist/cli/args.d.ts.map +1 -1
  48. package/dist/cli/args.js +2 -0
  49. package/dist/cli/args.js.map +1 -1
  50. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  51. package/dist/core/agent-session-compaction.js +7 -1
  52. package/dist/core/agent-session-compaction.js.map +1 -1
  53. package/dist/core/agent-session-events.d.ts.map +1 -1
  54. package/dist/core/agent-session-events.js +2 -1
  55. package/dist/core/agent-session-events.js.map +1 -1
  56. package/dist/core/agent-session-retry.d.ts.map +1 -1
  57. package/dist/core/agent-session-retry.js +7 -0
  58. package/dist/core/agent-session-retry.js.map +1 -1
  59. package/dist/core/agent-session-runtime.d.ts +13 -0
  60. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  61. package/dist/core/agent-session-runtime.js +12 -0
  62. package/dist/core/agent-session-runtime.js.map +1 -1
  63. package/dist/core/agent-session-services.d.ts.map +1 -1
  64. package/dist/core/agent-session-services.js +3 -0
  65. package/dist/core/agent-session-services.js.map +1 -1
  66. package/dist/core/agent-session-tree.d.ts.map +1 -1
  67. package/dist/core/agent-session-tree.js +4 -1
  68. package/dist/core/agent-session-tree.js.map +1 -1
  69. package/dist/core/agent-session-types.d.ts +15 -0
  70. package/dist/core/agent-session-types.d.ts.map +1 -1
  71. package/dist/core/agent-session-types.js.map +1 -1
  72. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  73. package/dist/core/atomic-guide-command.js +2 -0
  74. package/dist/core/atomic-guide-command.js.map +1 -1
  75. package/dist/core/auth-storage-backends.d.ts +4 -0
  76. package/dist/core/auth-storage-backends.d.ts.map +1 -1
  77. package/dist/core/auth-storage-backends.js +48 -3
  78. package/dist/core/auth-storage-backends.js.map +1 -1
  79. package/dist/core/auth-storage.d.ts.map +1 -1
  80. package/dist/core/auth-storage.js +27 -11
  81. package/dist/core/auth-storage.js.map +1 -1
  82. package/dist/core/codex-errors.d.ts +3 -0
  83. package/dist/core/codex-errors.d.ts.map +1 -0
  84. package/dist/core/codex-errors.js +12 -0
  85. package/dist/core/codex-errors.js.map +1 -0
  86. package/dist/core/compaction/branch-summarization.d.ts +5 -1
  87. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  88. package/dist/core/compaction/branch-summarization.js +7 -8
  89. package/dist/core/compaction/branch-summarization.js.map +1 -1
  90. package/dist/core/compaction/compaction-runner.d.ts +3 -1
  91. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  92. package/dist/core/compaction/compaction-runner.js +6 -1
  93. package/dist/core/compaction/compaction-runner.js.map +1 -1
  94. package/dist/core/compaction/range-planner.d.ts +3 -0
  95. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  96. package/dist/core/compaction/range-planner.js +2 -1
  97. package/dist/core/compaction/range-planner.js.map +1 -1
  98. package/dist/core/model-registry.js +2 -2
  99. package/dist/core/model-registry.js.map +1 -1
  100. package/dist/core/model-resolver-defaults.d.ts.map +1 -1
  101. package/dist/core/model-resolver-defaults.js +2 -0
  102. package/dist/core/model-resolver-defaults.js.map +1 -1
  103. package/dist/core/prompt-templates.d.ts +1 -0
  104. package/dist/core/prompt-templates.d.ts.map +1 -1
  105. package/dist/core/prompt-templates.js +6 -4
  106. package/dist/core/prompt-templates.js.map +1 -1
  107. package/dist/core/remote-catalog-provider.d.ts +1 -1
  108. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  109. package/dist/core/remote-catalog-provider.js +25 -6
  110. package/dist/core/remote-catalog-provider.js.map +1 -1
  111. package/dist/core/sdk-exports.d.ts +1 -1
  112. package/dist/core/sdk-exports.d.ts.map +1 -1
  113. package/dist/core/sdk-exports.js.map +1 -1
  114. package/dist/core/sdk.d.ts.map +1 -1
  115. package/dist/core/sdk.js +4 -1
  116. package/dist/core/sdk.js.map +1 -1
  117. package/dist/core/session-manager-core.d.ts +1 -0
  118. package/dist/core/session-manager-core.d.ts.map +1 -1
  119. package/dist/core/session-manager-core.js +7 -4
  120. package/dist/core/session-manager-core.js.map +1 -1
  121. package/dist/core/session-manager-validation.d.ts.map +1 -1
  122. package/dist/core/session-manager-validation.js +3 -16
  123. package/dist/core/session-manager-validation.js.map +1 -1
  124. package/dist/core/slash-commands.js +1 -1
  125. package/dist/core/slash-commands.js.map +1 -1
  126. package/dist/core/summarization-retry.d.ts +11 -0
  127. package/dist/core/summarization-retry.d.ts.map +1 -0
  128. package/dist/core/summarization-retry.js +21 -0
  129. package/dist/core/summarization-retry.js.map +1 -0
  130. package/dist/core/tools/read.js +1 -1
  131. package/dist/core/tools/read.js.map +1 -1
  132. package/dist/index.d.ts +1 -1
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js.map +1 -1
  135. package/dist/main.d.ts.map +1 -1
  136. package/dist/main.js +2 -0
  137. package/dist/main.js.map +1 -1
  138. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  139. package/dist/modes/interactive/components/chat-session-host-events.js +16 -0
  140. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  141. package/dist/modes/interactive/components/footer.js +2 -2
  142. package/dist/modes/interactive/components/footer.js.map +1 -1
  143. package/dist/modes/interactive/interactive-agent-events.js +6 -0
  144. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  145. package/dist/modes/interactive/interactive-auth-routing.d.ts +2 -1
  146. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
  147. package/dist/modes/interactive/interactive-auth-routing.js +10 -5
  148. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  149. package/dist/modes/interactive/interactive-autocomplete.js +12 -2
  150. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  151. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts +13 -0
  152. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -0
  153. package/dist/modes/interactive/interactive-model-catalog-startup.js +24 -0
  154. package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -0
  155. package/dist/modes/interactive/interactive-model-routing.js +4 -3
  156. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  157. package/dist/modes/interactive/interactive-queueing.js +3 -2
  158. package/dist/modes/interactive/interactive-queueing.js.map +1 -1
  159. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  160. package/dist/modes/interactive/interactive-startup.js +4 -7
  161. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  162. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts +8 -0
  163. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -0
  164. package/dist/modes/interactive/interactive-summarization-retry-events.js +40 -0
  165. package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -0
  166. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +3 -1
  167. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  168. package/dist/modes/interactive-engine/extension-ui-bridge.js +6 -0
  169. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  170. package/dist/modes/interactive-engine/isolated-runtime.d.ts +4 -5
  171. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  172. package/dist/modes/interactive-engine/isolated-runtime.js +14 -24
  173. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  174. package/dist/modes/interactive-engine/remote-model-catalog.d.ts +15 -0
  175. package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -0
  176. package/dist/modes/interactive-engine/remote-model-catalog.js +67 -0
  177. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -0
  178. package/dist/modes/rpc/rpc-client-api.d.ts +9 -1
  179. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  180. package/dist/modes/rpc/rpc-client-api.js +12 -0
  181. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  182. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  183. package/dist/modes/rpc/rpc-command-handler.js +35 -0
  184. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  185. package/dist/modes/rpc/rpc-types.d.ts +78 -7
  186. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  187. package/dist/modes/rpc/rpc-types.js.map +1 -1
  188. package/docs/docs.json +9 -1
  189. package/docs/extensions.md +3 -3
  190. package/docs/json.md +7 -1
  191. package/docs/models/artificial-analysis-index.md +82 -0
  192. package/docs/models/model-selection.md +63 -0
  193. package/docs/models/pareto-efficiency.md +64 -0
  194. package/docs/prompt-templates.md +1 -0
  195. package/docs/providers.md +9 -1
  196. package/docs/quickstart.md +1 -1
  197. package/docs/rpc.md +76 -0
  198. package/docs/sdk.md +3 -0
  199. package/docs/tui.md +2 -2
  200. package/docs/workflows.md +26 -13
  201. package/examples/extensions/README.md +1 -1
  202. package/examples/extensions/sandbox/package-lock.json +3 -3
  203. package/npm-shrinkwrap.json +37 -37
  204. package/package.json +7 -7
@@ -1,8 +1,7 @@
1
1
  import type { AgentSession } from "../../core/agent-session.ts";
2
2
  import { AgentSessionRuntime, type CreateAgentSessionRuntimeFactory } from "../../core/agent-session-runtime.ts";
3
3
  import type { RpcClient } from "../rpc/rpc-client.ts";
4
- import type { RpcExtensionUIRequest, RpcExtensionUIResponse } from "../rpc/rpc-types.ts";
5
- import type { RpcSlashCommand } from "../rpc/rpc-types.ts";
4
+ import type { RpcAutocompleteItem, RpcExtensionUIRequest, RpcExtensionUIResponse, RpcSlashCommand } from "../rpc/rpc-types.ts";
6
5
  import type { ActivityWatchdogDiagnostic } from "./activity-watchdog.ts";
7
6
  import type { EngineKeybindingState, InteractiveEngineCommand, InteractiveEngineMessage } from "./protocol.ts";
8
7
  import { type RemoteCommandsListener } from "./remote-command-catalog.ts";
@@ -16,8 +15,6 @@ export declare class IsolatedInteractiveRuntime extends AgentSessionRuntime {
16
15
  private followUpMessages;
17
16
  private engineCallbackActive;
18
17
  private readonly diagnosticListeners;
19
- private remoteModels;
20
- private remoteScopedModels;
21
18
  private pendingDiagnostics;
22
19
  private lastDiagnostic;
23
20
  private autoCompactionEnabled;
@@ -26,15 +23,18 @@ export declare class IsolatedInteractiveRuntime extends AgentSessionRuntime {
26
23
  private remoteSessionFile;
27
24
  private restartPromise;
28
25
  private readonly remoteCommands;
26
+ private readonly remoteModelCatalog;
29
27
  constructor(localRuntime: AgentSessionRuntime, createRuntime: CreateAgentSessionRuntimeFactory, client: RpcClient);
30
28
  get session(): AgentSession;
31
29
  initializeFromEngine(): Promise<void>;
30
+ logoutProvider(provider: string): Promise<import("../rpc/rpc-types.ts").RpcLogoutProviderResult>;
32
31
  onDiagnostic(listener: (diagnostic: ActivityWatchdogDiagnostic) => void): () => void;
33
32
  onEngineMessage(listener: (message: InteractiveEngineMessage) => void): () => void;
34
33
  onKeybindingState(listener: (state: EngineKeybindingState) => void): () => void;
35
34
  sendEngineCommand(command: InteractiveEngineCommand): void;
36
35
  getRemoteCommands(): readonly RpcSlashCommand[];
37
36
  onRemoteCommandsChanged(listener: RemoteCommandsListener): () => void;
37
+ getRemoteCommandCompletions(commandName: string, argumentPrefix: string): Promise<RpcAutocompleteItem[] | null>;
38
38
  invokeRemoteShortcut(key: string): Promise<void>;
39
39
  waitUntilBound(): Promise<void>;
40
40
  getEnginePid(): number | undefined;
@@ -69,7 +69,6 @@ export declare class IsolatedInteractiveRuntime extends AgentSessionRuntime {
69
69
  private resetUnpersistedSessionView;
70
70
  private patchSessionManager;
71
71
  private refreshSessionView;
72
- private patchModelCatalog;
73
72
  private observeEvent;
74
73
  }
75
74
  //# sourceMappingURL=isolated-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-runtime.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive-engine/isolated-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolated-runtime.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive-engine/isolated-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { AgentSessionRuntime, } from "../../core/agent-session-runtime.js";
1
+ import { AgentSessionRuntime } from "../../core/agent-session-runtime.js";
2
2
  import { SessionManager } from "../../core/session-manager.js";
3
3
  import { RemoteCommandCatalog } from "./remote-command-catalog.js";
4
+ import { RemoteModelCatalog } from "./remote-model-catalog.js";
4
5
  import { sleep } from "../../utils/sleep.js";
5
6
  export class IsolatedInteractiveRuntime extends AgentSessionRuntime {
6
7
  constructor(localRuntime, createRuntime, client) {
@@ -13,13 +14,12 @@ export class IsolatedInteractiveRuntime extends AgentSessionRuntime {
13
14
  this.followUpMessages = [];
14
15
  this.engineCallbackActive = false;
15
16
  this.diagnosticListeners = new Set();
16
- this.remoteModels = [];
17
- this.remoteScopedModels = [];
18
17
  this.pendingDiagnostics = [];
19
18
  this.autoCompactionEnabled = true;
20
19
  this.autoRetryEnabled = true;
21
20
  this.client = client;
22
21
  this.remoteCommands = new RemoteCommandCatalog(client);
22
+ this.remoteModelCatalog = new RemoteModelCatalog(client);
23
23
  this.client.onEvent((event) => this.observeEvent(event));
24
24
  }
25
25
  get session() {
@@ -31,9 +31,8 @@ export class IsolatedInteractiveRuntime extends AgentSessionRuntime {
31
31
  const state = await this.client.getState();
32
32
  const session = super.session;
33
33
  const catalog = await this.client.requestInternal({ type: "get_available_models" });
34
- this.remoteModels = catalog.models;
35
- this.remoteScopedModels = catalog.scopedModels ?? [];
36
- this.patchModelCatalog(session);
34
+ this.remoteModelCatalog.apply(catalog);
35
+ this.remoteModelCatalog.patch(session);
37
36
  if (state.model)
38
37
  session.agent.state.model = state.model;
39
38
  session.agent.state.thinkingLevel = state.thinkingLevel;
@@ -52,6 +51,12 @@ export class IsolatedInteractiveRuntime extends AgentSessionRuntime {
52
51
  // commands after bind/restart/reload/new/resume/fork. See RemoteCommandCatalog.
53
52
  this.remoteCommands.refresh();
54
53
  }
54
+ async logoutProvider(provider) {
55
+ const result = await this.client.logoutProvider(provider);
56
+ this.remoteModelCatalog.apply({ models: result.models, scopedModels: result.scopedModels ?? [] });
57
+ await super.session.modelRegistry.authStorage.logoutAsync(provider);
58
+ return result;
59
+ }
55
60
  onDiagnostic(listener) {
56
61
  for (const diagnostic of this.pendingDiagnostics.splice(0))
57
62
  listener(diagnostic);
@@ -69,6 +74,9 @@ export class IsolatedInteractiveRuntime extends AgentSessionRuntime {
69
74
  }
70
75
  getRemoteCommands() { return this.remoteCommands.getCommands(); }
71
76
  onRemoteCommandsChanged(listener) { return this.remoteCommands.onChange(listener); }
77
+ getRemoteCommandCompletions(commandName, argumentPrefix) {
78
+ return this.client.getCommandCompletions(commandName, argumentPrefix);
79
+ }
72
80
  async invokeRemoteShortcut(key) {
73
81
  await this.client.requestInternal({ type: "invoke_shortcut", key });
74
82
  }
@@ -391,24 +399,6 @@ export class IsolatedInteractiveRuntime extends AgentSessionRuntime {
391
399
  this.patchSessionManager(refreshed);
392
400
  session.agent.state.messages = refreshed.buildSessionContext().messages;
393
401
  }
394
- patchModelCatalog(session) {
395
- const registry = session.modelRegistry;
396
- Object.defineProperties(registry, {
397
- getAvailable: { configurable: true, value: () => [...this.remoteModels] },
398
- find: {
399
- configurable: true,
400
- value: (provider, modelId) => this.remoteModels.find((model) => model.provider === provider && model.id === modelId),
401
- },
402
- hasConfiguredAuth: {
403
- configurable: true,
404
- value: (model) => this.remoteModels.some((candidate) => candidate.provider === model.provider && candidate.id === model.id),
405
- },
406
- });
407
- Object.defineProperty(session, "scopedModels", {
408
- configurable: true,
409
- get: () => this.remoteScopedModels,
410
- });
411
- }
412
402
  observeEvent(event) {
413
403
  const session = super.session;
414
404
  switch (event.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-runtime.js","sourceRoot":"","sources":["../../../src/modes/interactive-engine/isolated-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Api, Model } from \"@earendil-works/pi-ai/compat\";\nimport type { AgentSession, AgentSessionEvent } from \"../../core/agent-session.ts\";\nimport {\n\tAgentSessionRuntime,\n\ttype CreateAgentSessionRuntimeFactory,\n} from \"../../core/agent-session-runtime.ts\";\nimport type { PromptOptions } from \"../../core/agent-session-types.ts\";\nimport { SessionManager } from \"../../core/session-manager.ts\";\nimport type { RpcClient } from \"../rpc/rpc-client.ts\";\nimport type { RpcExtensionUIRequest, RpcExtensionUIResponse } from \"../rpc/rpc-types.ts\";\nimport type { RpcEvent, RpcSlashCommand } from \"../rpc/rpc-types.ts\";\nimport type { ActivityWatchdogDiagnostic } from \"./activity-watchdog.ts\";\nimport type { EngineKeybindingState, InteractiveEngineCommand, InteractiveEngineMessage } from \"./protocol.ts\";\nimport { RemoteCommandCatalog, type RemoteCommandsListener } from \"./remote-command-catalog.ts\";\nimport { sleep } from \"../../utils/sleep.ts\";\n\nexport class IsolatedInteractiveRuntime extends AgentSessionRuntime {\n\tprivate readonly client: RpcClient;\n\tprivate readonly patchedSessions = new WeakSet<AgentSession>();\n\tprivate streaming = false;\n\tprivate compacting = false;\n\tprivate bashRunning = false;\n\tprivate steeringMessages: string[] = [];\n\tprivate followUpMessages: string[] = [];\n\tprivate engineCallbackActive = false;\n\tprivate readonly diagnosticListeners = new Set<(diagnostic: ActivityWatchdogDiagnostic) => void>();\n\tprivate remoteModels: Model<Api>[] = [];\n\tprivate remoteScopedModels: Array<{ model: Model<Api>; thinkingLevel?: AgentSession[\"thinkingLevel\"] }> = [];\n\tprivate pendingDiagnostics: ActivityWatchdogDiagnostic[] = [];\n\tprivate lastDiagnostic: ActivityWatchdogDiagnostic | undefined;\n\tprivate autoCompactionEnabled = true;\n\tprivate autoRetryEnabled = true;\n\tprivate remoteSessionName: string | undefined;\n\tprivate remoteSessionFile: string | undefined;\n\tprivate restartPromise: Promise<void> | undefined;\n\tprivate readonly remoteCommands: RemoteCommandCatalog;\n\n\tconstructor(\n\t\tlocalRuntime: AgentSessionRuntime,\n\t\tcreateRuntime: CreateAgentSessionRuntimeFactory,\n\t\tclient: RpcClient,\n\t) {\n\t\tsuper(\n\t\t\tlocalRuntime.session,\n\t\t\tlocalRuntime.services,\n\t\t\tcreateRuntime,\n\t\t\t[...localRuntime.diagnostics],\n\t\t\tlocalRuntime.modelFallbackMessage,\n\t\t);\n\t\tthis.client = client;\n\t\tthis.remoteCommands = new RemoteCommandCatalog(client);\n\t\tthis.client.onEvent((event) => this.observeEvent(event));\n\t}\n\n\toverride get session(): AgentSession {\n\t\tconst session = super.session;\n\t\tthis.patchSession(session);\n\t\treturn session;\n\t}\n\tasync initializeFromEngine(): Promise<void> {\n\t\tconst state = await this.client.getState();\n\t\tconst session = super.session;\n\t\tconst catalog = await this.client.requestInternal<{\n\t\t\tmodels: Model<Api>[];\n\t\t\tscopedModels?: Array<{ model: Model<Api>; thinkingLevel?: AgentSession[\"thinkingLevel\"] }>;\n\t\t}>({ type: \"get_available_models\" });\n\t\tthis.remoteModels = catalog.models;\n\t\tthis.remoteScopedModels = catalog.scopedModels ?? [];\n\t\tthis.patchModelCatalog(session);\n\t\tif (state.model) session.agent.state.model = state.model;\n\t\tsession.agent.state.thinkingLevel = state.thinkingLevel;\n\t\tsession.agent.steeringMode = state.steeringMode;\n\t\tsession.agent.followUpMode = state.followUpMode;\n\t\tthis.autoCompactionEnabled = state.autoCompactionEnabled;\n\t\tthis.remoteSessionName = state.sessionName;\n\t\tthis.remoteSessionFile = state.sessionFile;\n\t\tthis.streaming = state.isStreaming;\n\t\tthis.compacting = state.isCompacting;\n\t\tif (state.sessionFile && session.sessionFile !== state.sessionFile) await super.switchSession(state.sessionFile);\n\t\tthis.refreshSessionView();\n\t\tthis.engineCallbackActive = false;\n\t\t// Non-blocking refresh so isolated autocomplete lists engine-only extension\n\t\t// commands after bind/restart/reload/new/resume/fork. See RemoteCommandCatalog.\n\t\tthis.remoteCommands.refresh();\n\t}\n\n\tonDiagnostic(listener: (diagnostic: ActivityWatchdogDiagnostic) => void): () => void {\n\t\tfor (const diagnostic of this.pendingDiagnostics.splice(0)) listener(diagnostic);\n\t\tthis.diagnosticListeners.add(listener);\n\t\treturn () => this.diagnosticListeners.delete(listener);\n\t}\n\n\tonEngineMessage(listener: (message: InteractiveEngineMessage) => void): () => void {\n\t\treturn this.client.onInteractiveEngineMessage(listener);\n\t}\n\tonKeybindingState(listener: (state: EngineKeybindingState) => void): () => void {\n\t\treturn this.client.onInteractiveEngineKeybindingState(listener);\n\t}\n\n\tsendEngineCommand(command: InteractiveEngineCommand): void {\n\t\tthis.client.sendInteractiveEngineCommand(command);\n\t}\n\n\tgetRemoteCommands(): readonly RpcSlashCommand[] { return this.remoteCommands.getCommands(); }\n\tonRemoteCommandsChanged(listener: RemoteCommandsListener): () => void { return this.remoteCommands.onChange(listener); }\n\n\n\tasync invokeRemoteShortcut(key: string): Promise<void> {\n\t\tawait this.client.requestInternal<void>({ type: \"invoke_shortcut\", key });\n\t}\n\n\twaitUntilBound(): Promise<void> { return this.client.waitForInteractiveEngineBound(); }\n\tgetEnginePid(): number | undefined { return this.client.getEnginePid(); }\n\tgetEngineGeneration(): number { return this.client.getGeneration(); }\n\tisRecovering(): boolean { return this.restartPromise !== undefined; }\n\tasync synchronize(): Promise<void> {\n\t\tconst state = await this.client.getState();\n\t\tthis.remoteSessionFile = state.sessionFile;\n\t\tthis.remoteSessionName = state.sessionName;\n\t}\n\n\tsetEngineCallbackActive(active: boolean): void { this.engineCallbackActive = active; }\n\n\tinterruptBlockedCallback(): boolean {\n\t\tif (!this.engineCallbackActive) return false;\n\t\tthis.dispatchBestEffort(\"interrupt\", this.session.abort());\n\t\treturn true;\n\t}\n\n\tsetExtensionUIHandler(\n\t\thandler: (request: RpcExtensionUIRequest) => Promise<RpcExtensionUIResponse | undefined>,\n\t): () => void {\n\t\treturn this.client.onExtensionUIRequest((request) => {\n\t\t\tvoid handler(request).then(async (response) => {\n\t\t\t\tif (response) await this.client.respondExtensionUI(response);\n\t\t\t}).catch((error: Error) => {\n\t\t\t\tthis.emitDiagnostic({\n\t\t\t\t\tactivity: undefined,\n\t\t\t\t\telapsedMs: 0,\n\t\t\t\t\tlevel: \"unresponsive\",\n\t\t\t\t\tmessage: `Interactive engine UI bridge failed: ${error.message}`,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\temitDiagnostic(diagnostic: ActivityWatchdogDiagnostic): void {\n\t\tthis.lastDiagnostic = diagnostic;\n\t\tthis.engineCallbackActive = true;\n\t\tif (this.diagnosticListeners.size === 0) this.pendingDiagnostics.push(diagnostic);\n\t\tfor (const listener of this.diagnosticListeners) listener(diagnostic);\n\t}\n\n\toverride async switchSession(sessionPath: string): Promise<{ cancelled: boolean }> {\n\t\tconst result = await this.client.switchSession(sessionPath);\n\t\tif (!result.cancelled) {\n\t\t\tawait super.switchSession(sessionPath);\n\t\t\tawait this.initializeFromEngine();\n\t\t}\n\t\treturn result;\n\t}\n\n\toverride async newSession(options?: { parentSession?: string }): Promise<{ cancelled: boolean }> {\n\t\tconst result = await this.client.newSession(options?.parentSession);\n\t\tif (result.cancelled) return result;\n\t\tconst state = await this.client.getState();\n\t\tif (state.sessionFile) await super.switchSession(state.sessionFile);\n\t\telse this.resetUnpersistedSessionView();\n\t\tawait this.initializeFromEngine();\n\t\treturn result;\n\t}\n\n\toverride async importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\tconst result = await this.client.requestInternal<{ cancelled: boolean }>({\n\t\t\ttype: \"import_session\", inputPath, cwdOverride,\n\t\t});\n\t\tif (result.cancelled) return result;\n\t\tconst state = await this.client.getState();\n\t\tif (state.sessionFile) await super.switchSession(state.sessionFile);\n\t\tawait this.initializeFromEngine();\n\t\treturn result;\n\t}\n\n\toverride async fork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\" },\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\tlet selectedText: string | undefined;\n\t\tlet cancelled: boolean;\n\t\tif (options?.position === \"at\") {\n\t\t\tcancelled = (await this.client.clone()).cancelled;\n\t\t} else {\n\t\t\tconst result = await this.client.fork(entryId);\n\t\t\tcancelled = result.cancelled;\n\t\t\tselectedText = result.text;\n\t\t}\n\t\tif (cancelled) return { cancelled: true };\n\t\tconst state = await this.client.getState();\n\t\tif (state.sessionFile) await super.switchSession(state.sessionFile);\n\t\tawait this.initializeFromEngine();\n\t\treturn { cancelled: false, selectedText };\n\t}\n\n\toverride async dispose(): Promise<void> {\n\t\tawait this.client.stop();\n\t\tawait super.dispose();\n\t}\n\n\tprivate patchSession(session: AgentSession): void {\n\t\tif (this.patchedSessions.has(session)) return;\n\t\tthis.patchedSessions.add(session);\n\t\tthis.patchSessionManager(session.sessionManager);\n\t\tObject.defineProperties(session, {\n\t\t\tisStreaming: { configurable: true, get: () => this.streaming },\n\t\t\tisCompacting: { configurable: true, get: () => this.compacting },\n\t\t\tisBashRunning: { configurable: true, get: () => this.bashRunning },\n\t\t\tsessionName: { configurable: true, get: () => this.remoteSessionName },\n\t\t\tsessionFile: { configurable: true, get: () => this.remoteSessionFile },\n\t\t\tautoCompactionEnabled: { configurable: true, get: () => this.autoCompactionEnabled },\n\t\t\tautoRetryEnabled: { configurable: true, get: () => this.autoRetryEnabled },\n\t\t\tsubscribe: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (listener: (event: AgentSessionEvent) => void) => this.client.onEvent(listener),\n\t\t\t},\n\t\t\tprompt: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (text: string, options?: PromptOptions) => {\n\t\t\t\t\tawait this.client.prompt(text, options?.images, options?.streamingBehavior);\n\t\t\t\t\toptions?.preflightResult?.(true);\n\t\t\t\t},\n\t\t\t},\n\t\t\tsteer: { configurable: true, value: (text: string) => this.client.steer(text) },\n\t\t\tfollowUp: { configurable: true, value: (text: string) => this.client.followUp(text) },\n\t\t\tabort: { configurable: true, value: () => this.abortAndRecover() },\n\t\t\texecuteBash: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (\n\t\t\t\t\tcommand: string,\n\t\t\t\t\tonChunk?: (chunk: string) => void,\n\t\t\t\t\toptions?: { excludeFromContext?: boolean },\n\t\t\t\t) => {\n\t\t\t\t\tthis.bashRunning = true;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await this.client.requestInternal<Awaited<ReturnType<AgentSession[\"executeBash\"]>>>({\n\t\t\t\t\t\t\ttype: \"user_bash\", command, excludeFromContext: options?.excludeFromContext,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (result.output) onChunk?.(result.output);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.bashRunning = false;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\trecordBashResult: { configurable: true, value: () => {} },\n\t\t\tabortBash: { configurable: true, value: () => this.dispatchBestEffort(\"abort bash\", this.client.abortBash()) },\n\t\t\tcompact: { configurable: true, value: () => this.client.compact() },\n\t\t\tabortCompaction: { configurable: true, value: () => this.dispatchBestEffort(\"abort compaction\", this.client.requestInternal<void>({ type: \"abort_compaction\" })) },\n\t\t\tabortRetry: { configurable: true, value: () => this.dispatchBestEffort(\"abort retry\", this.client.abortRetry()) },\n\t\t\tnavigateTree: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (targetId: string, options?: Parameters<AgentSession[\"navigateTree\"]>[1]) =>\n\t\t\t\t\tthis.client.requestInternal<Awaited<ReturnType<AgentSession[\"navigateTree\"]>>>({\n\t\t\t\t\t\ttype: \"navigate_tree\", targetId, options,\n\t\t\t\t\t}),\n\t\t\t},\n\t\t\treload: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async () => {\n\t\t\t\t\tawait this.client.requestInternal<void>({ type: \"reload\" });\n\t\t\t\t\tawait this.initializeFromEngine();\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetSessionName: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (name: string) => {\n\t\t\t\t\tthis.remoteSessionName = name;\n\t\t\t\t\tthis.dispatchBestEffort(\"set session name\", this.client.setSessionName(name).then(() => this.refreshSessionView()));\n\t\t\t\t},\n\t\t\t},\n\t\t\tgetSteeringMessages: { configurable: true, value: () => [...this.steeringMessages] },\n\t\t\tgetFollowUpMessages: { configurable: true, value: () => [...this.followUpMessages] },\n\t\t\tclearQueue: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: () => {\n\t\t\t\t\tconst queued = { steering: [...this.steeringMessages], followUp: [...this.followUpMessages] };\n\t\t\t\t\tthis.steeringMessages = [];\n\t\t\t\t\tthis.followUpMessages = [];\n\t\t\t\t\tthis.dispatchBestEffort(\"clear queue\", this.client.requestInternal({ type: \"clear_queue\" }));\n\t\t\t\t\treturn queued;\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetModel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (model: Model<Api>) => {\n\t\t\t\t\tconst selected = await this.client.setModel(model.provider, model.id);\n\t\t\t\t\tsession.agent.state.model = session.modelRegistry.find(selected.provider, selected.id) ?? model;\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetThinkingLevel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (level: AgentSession[\"thinkingLevel\"]) => {\n\t\t\t\t\tsession.agent.state.thinkingLevel = level;\n\t\t\t\t\tthis.dispatchBestEffort(\"set thinking level\", this.client.setThinkingLevel(level));\n\t\t\t\t},\n\t\t\t},\n\t\t\tcycleModel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (direction?: \"forward\" | \"backward\") => {\n\t\t\t\t\tconst result = await this.client.cycleModel(direction);\n\t\t\t\t\tif (!result) return undefined;\n\t\t\t\t\tconst model = session.modelRegistry.find(result.model.provider, result.model.id) ?? result.model;\n\t\t\t\t\tsession.agent.state.model = model;\n\t\t\t\t\tsession.agent.state.thinkingLevel = result.thinkingLevel;\n\t\t\t\t\treturn { ...result, model };\n\t\t\t\t},\n\t\t\t},\n\t\t\tcycleThinkingLevel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: () => {\n\t\t\t\t\tconst levels = session.getAvailableThinkingLevels();\n\t\t\t\t\tif (levels.length <= 1) return undefined;\n\t\t\t\t\tconst current = levels.indexOf(session.thinkingLevel);\n\t\t\t\t\tconst level = levels[(current + 1) % levels.length]!;\n\t\t\t\t\tsession.agent.state.thinkingLevel = level;\n\t\t\t\t\tthis.dispatchBestEffort(\"cycle thinking level\", this.client.setThinkingLevel(level));\n\t\t\t\t\treturn level;\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetContextWindow: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (tokens: number) => {\n\t\t\t\t\tif (session.agent.state.model) session.agent.state.model = { ...session.agent.state.model, contextWindow: tokens };\n\t\t\t\t\tthis.dispatchBestEffort(\"set context window\", this.client.setContextWindow(tokens));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetSteeringMode: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (mode: \"all\" | \"one-at-a-time\") => {\n\t\t\t\t\tsession.agent.steeringMode = mode;\n\t\t\t\t\tthis.dispatchBestEffort(\"set steering mode\", this.client.setSteeringMode(mode));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetFollowUpMode: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (mode: \"all\" | \"one-at-a-time\") => {\n\t\t\t\t\tsession.agent.followUpMode = mode;\n\t\t\t\t\tthis.dispatchBestEffort(\"set follow-up mode\", this.client.setFollowUpMode(mode));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetAutoCompactionEnabled: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (enabled: boolean) => {\n\t\t\t\t\tthis.autoCompactionEnabled = enabled;\n\t\t\t\t\tthis.dispatchBestEffort(\"set auto compaction\", this.client.setAutoCompaction(enabled));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetAutoRetryEnabled: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (enabled: boolean) => {\n\t\t\t\t\tthis.autoRetryEnabled = enabled;\n\t\t\t\t\tthis.dispatchBestEffort(\"set auto retry\", this.client.setAutoRetry(enabled));\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate async abortAndRecover(): Promise<void> {\n\t\tif (this.restartPromise) return this.restartPromise;\n\t\tconst cooperativeAbort = this.client.abort().then(() => true, () => false);\n\t\tif (await Promise.race([cooperativeAbort, sleep(250).then(() => false)])) {\n\t\t\tthis.engineCallbackActive = false;\n\t\t\treturn;\n\t\t}\n\t\tconst activity = this.lastDiagnostic?.activity;\n\t\tconst label = activity ? `${activity.kind} ${activity.name}` : \"engine callback\";\n\t\tconst diagnostic: ActivityWatchdogDiagnostic = {\n\t\t\tactivity,\n\t\t\telapsedMs: this.lastDiagnostic?.elapsedMs ?? 0,\n\t\t\tlevel: \"unresponsive\",\n\t\t\tmessage: `Engine terminated; ${label} result unknown; inspect side effects before retrying`,\n\t\t};\n\t\tthis.streaming = false;\n\t\tthis.compacting = false;\n\t\tthis.engineCallbackActive = false;\n\t\tfor (const listener of this.diagnosticListeners) listener(diagnostic);\n\t\tthis.restartPromise = (async () => {\n\t\t\tawait this.client.restart(this.remoteSessionFile);\n\t\t\tawait this.initializeFromEngine();\n\t\t})().catch((error: Error) => {\n\t\t\tthis.emitDiagnostic({ ...diagnostic, message: `${diagnostic.message}; engine restart failed: ${error.message}` });\n\t\t}).finally(() => { this.restartPromise = undefined; });\n\t\tawait this.restartPromise;\n\t}\n\n\tprivate dispatchBestEffort(label: string, operation: Promise<unknown>): void {\n\t\tvoid operation.catch((error: Error) => {\n\t\t\tif (this.restartPromise) return;\n\t\t\tthis.emitDiagnostic({\n\t\t\t\tactivity: undefined,\n\t\t\t\telapsedMs: 0,\n\t\t\t\tlevel: \"unresponsive\",\n\t\t\t\tmessage: `Interactive engine ${label} failed: ${error.message}`,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate resetUnpersistedSessionView(): void {\n\t\tconst session = super.session;\n\t\tconst manager = SessionManager.create(session.sessionManager.getCwd(), session.sessionManager.getSessionDir());\n\t\tObject.defineProperty(session, \"sessionManager\", { configurable: true, value: manager });\n\t\tthis.patchSessionManager(manager);\n\t\tsession.agent.state.messages = [];\n\t}\n\n\tprivate patchSessionManager(manager: SessionManager): void {\n\t\tObject.defineProperty(manager, \"appendLabelChange\", {\n\t\t\tconfigurable: true,\n\t\t\tvalue: (entryId: string, label?: string) => {\n\t\t\t\tthis.dispatchBestEffort(\n\t\t\t\t\t\"set label\",\n\t\t\t\t\tthis.client.requestInternal<void>({ type: \"set_label\", entryId, label }).then(() => this.refreshSessionView()),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate refreshSessionView(): void {\n\t\tconst session = super.session;\n\t\tconst sessionFile = session.sessionFile;\n\t\tif (!sessionFile) return;\n\t\tconst currentManager = session.sessionManager;\n\t\tconst refreshed = SessionManager.open(sessionFile, currentManager.getSessionDir(), currentManager.getCwd());\n\t\tObject.defineProperty(session, \"sessionManager\", { configurable: true, value: refreshed });\n\t\tthis.patchSessionManager(refreshed);\n\t\tsession.agent.state.messages = refreshed.buildSessionContext().messages;\n\t}\n\n\tprivate patchModelCatalog(session: AgentSession): void {\n\t\tconst registry = session.modelRegistry;\n\t\tObject.defineProperties(registry, {\n\t\t\tgetAvailable: { configurable: true, value: () => [...this.remoteModels] },\n\t\t\tfind: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (provider: string, modelId: string) =>\n\t\t\t\t\tthis.remoteModels.find((model) => model.provider === provider && model.id === modelId),\n\t\t\t},\n\t\t\thasConfiguredAuth: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (model: Model<Api>) => this.remoteModels.some(\n\t\t\t\t\t(candidate) => candidate.provider === model.provider && candidate.id === model.id,\n\t\t\t\t),\n\t\t\t},\n\t\t});\n\t\tObject.defineProperty(session, \"scopedModels\", {\n\t\t\tconfigurable: true,\n\t\t\tget: () => this.remoteScopedModels,\n\t\t});\n\t}\n\n\tprivate observeEvent(event: RpcEvent): void {\n\t\tconst session = super.session;\n\t\tswitch (event.type) {\n\t\t\tcase \"agent_start\":\n\t\t\t\tthis.streaming = true;\n\t\t\t\tbreak;\n\t\t\tcase \"agent_end\":\n\t\t\t\tthis.streaming = false;\n\t\t\t\tthis.refreshSessionView();\n\t\t\t\tbreak;\n\t\t\tcase \"compaction_start\":\n\t\t\t\tthis.compacting = true;\n\t\t\t\tbreak;\n\t\t\tcase \"compaction_end\":\n\t\t\t\tthis.compacting = false;\n\t\t\t\tbreak;\n\t\t\tcase \"queue_update\":\n\t\t\t\tthis.steeringMessages = [...event.steering];\n\t\t\t\tthis.followUpMessages = [...event.followUp];\n\t\t\t\tbreak;\n\t\t\tcase \"model_changed\":\n\t\t\t\tsession.agent.state.model = event.model;\n\t\t\t\tbreak;\n\t\t\tcase \"thinking_level_changed\":\n\t\t\t\tsession.agent.state.thinkingLevel = event.level;\n\t\t\t\tbreak;\n\t\t\tcase \"context_window_changed\":\n\t\t\t\tif (session.agent.state.model) session.agent.state.model = { ...session.agent.state.model, contextWindow: event.contextWindow };\n\t\t\t\tbreak;\n\t\t\tcase \"session_info_changed\":\n\t\t\t\tthis.remoteSessionName = event.name;\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n"]}
1
+ {"version":3,"file":"isolated-runtime.js","sourceRoot":"","sources":["../../../src/modes/interactive-engine/isolated-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Api, Model } from \"@earendil-works/pi-ai/compat\";\nimport type { AgentSession, AgentSessionEvent } from \"../../core/agent-session.ts\";\nimport { AgentSessionRuntime, type CreateAgentSessionRuntimeFactory } from \"../../core/agent-session-runtime.ts\";\nimport type { PromptOptions } from \"../../core/agent-session-types.ts\";\nimport { SessionManager } from \"../../core/session-manager.ts\";\nimport type { RpcClient } from \"../rpc/rpc-client.ts\";\nimport type { RpcAutocompleteItem, RpcExtensionUIRequest, RpcExtensionUIResponse, RpcModelCatalog, RpcEvent, RpcSlashCommand } from \"../rpc/rpc-types.ts\";\nimport type { ActivityWatchdogDiagnostic } from \"./activity-watchdog.ts\";\nimport type { EngineKeybindingState, InteractiveEngineCommand, InteractiveEngineMessage } from \"./protocol.ts\";\nimport { RemoteCommandCatalog, type RemoteCommandsListener } from \"./remote-command-catalog.ts\";\nimport { RemoteModelCatalog } from \"./remote-model-catalog.ts\";\nimport { sleep } from \"../../utils/sleep.ts\";\n\nexport class IsolatedInteractiveRuntime extends AgentSessionRuntime {\n\tprivate readonly client: RpcClient;\n\tprivate readonly patchedSessions = new WeakSet<AgentSession>();\n\tprivate streaming = false;\n\tprivate compacting = false;\n\tprivate bashRunning = false;\n\tprivate steeringMessages: string[] = [];\n\tprivate followUpMessages: string[] = [];\n\tprivate engineCallbackActive = false;\n\tprivate readonly diagnosticListeners = new Set<(diagnostic: ActivityWatchdogDiagnostic) => void>();\n\tprivate pendingDiagnostics: ActivityWatchdogDiagnostic[] = [];\n\tprivate lastDiagnostic: ActivityWatchdogDiagnostic | undefined;\n\tprivate autoCompactionEnabled = true;\n\tprivate autoRetryEnabled = true;\n\tprivate remoteSessionName: string | undefined;\n\tprivate remoteSessionFile: string | undefined;\n\tprivate restartPromise: Promise<void> | undefined;\n\tprivate readonly remoteCommands: RemoteCommandCatalog;\n\tprivate readonly remoteModelCatalog: RemoteModelCatalog;\n\n\tconstructor(\n\t\tlocalRuntime: AgentSessionRuntime,\n\t\tcreateRuntime: CreateAgentSessionRuntimeFactory,\n\t\tclient: RpcClient,\n\t) {\n\t\tsuper(\n\t\t\tlocalRuntime.session,\n\t\t\tlocalRuntime.services,\n\t\t\tcreateRuntime,\n\t\t\t[...localRuntime.diagnostics],\n\t\t\tlocalRuntime.modelFallbackMessage,\n\t\t);\n\t\tthis.client = client;\n\t\tthis.remoteCommands = new RemoteCommandCatalog(client);\n\t\tthis.remoteModelCatalog = new RemoteModelCatalog(client);\n\t\tthis.client.onEvent((event) => this.observeEvent(event));\n\t}\n\n\toverride get session(): AgentSession {\n\t\tconst session = super.session;\n\t\tthis.patchSession(session);\n\t\treturn session;\n\t}\n\tasync initializeFromEngine(): Promise<void> {\n\t\tconst state = await this.client.getState();\n\t\tconst session = super.session;\n\t\tconst catalog = await this.client.requestInternal<RpcModelCatalog>({ type: \"get_available_models\" });\n\t\tthis.remoteModelCatalog.apply(catalog);\n\t\tthis.remoteModelCatalog.patch(session);\n\t\tif (state.model) session.agent.state.model = state.model;\n\t\tsession.agent.state.thinkingLevel = state.thinkingLevel;\n\t\tsession.agent.steeringMode = state.steeringMode;\n\t\tsession.agent.followUpMode = state.followUpMode;\n\t\tthis.autoCompactionEnabled = state.autoCompactionEnabled;\n\t\tthis.remoteSessionName = state.sessionName;\n\t\tthis.remoteSessionFile = state.sessionFile;\n\t\tthis.streaming = state.isStreaming;\n\t\tthis.compacting = state.isCompacting;\n\t\tif (state.sessionFile && session.sessionFile !== state.sessionFile) await super.switchSession(state.sessionFile);\n\t\tthis.refreshSessionView();\n\t\tthis.engineCallbackActive = false;\n\t\t// Non-blocking refresh so isolated autocomplete lists engine-only extension\n\t\t// commands after bind/restart/reload/new/resume/fork. See RemoteCommandCatalog.\n\t\tthis.remoteCommands.refresh();\n\t}\n\n\toverride async logoutProvider(provider: string) {\n\t\tconst result = await this.client.logoutProvider(provider);\n\t\tthis.remoteModelCatalog.apply({ models: result.models, scopedModels: result.scopedModels ?? [] });\n\t\tawait super.session.modelRegistry.authStorage.logoutAsync(provider);\n\t\treturn result;\n\t}\n\n\tonDiagnostic(listener: (diagnostic: ActivityWatchdogDiagnostic) => void): () => void {\n\t\tfor (const diagnostic of this.pendingDiagnostics.splice(0)) listener(diagnostic);\n\t\tthis.diagnosticListeners.add(listener);\n\t\treturn () => this.diagnosticListeners.delete(listener);\n\t}\n\n\tonEngineMessage(listener: (message: InteractiveEngineMessage) => void): () => void {\n\t\treturn this.client.onInteractiveEngineMessage(listener);\n\t}\n\tonKeybindingState(listener: (state: EngineKeybindingState) => void): () => void {\n\t\treturn this.client.onInteractiveEngineKeybindingState(listener);\n\t}\n\n\tsendEngineCommand(command: InteractiveEngineCommand): void {\n\t\tthis.client.sendInteractiveEngineCommand(command);\n\t}\n\n\tgetRemoteCommands(): readonly RpcSlashCommand[] { return this.remoteCommands.getCommands(); }\n\tonRemoteCommandsChanged(listener: RemoteCommandsListener): () => void { return this.remoteCommands.onChange(listener); }\n\tgetRemoteCommandCompletions(commandName: string, argumentPrefix: string): Promise<RpcAutocompleteItem[] | null> {\n\t\treturn this.client.getCommandCompletions(commandName, argumentPrefix);\n\t}\n\n\n\tasync invokeRemoteShortcut(key: string): Promise<void> {\n\t\tawait this.client.requestInternal<void>({ type: \"invoke_shortcut\", key });\n\t}\n\n\twaitUntilBound(): Promise<void> { return this.client.waitForInteractiveEngineBound(); }\n\tgetEnginePid(): number | undefined { return this.client.getEnginePid(); }\n\tgetEngineGeneration(): number { return this.client.getGeneration(); }\n\tisRecovering(): boolean { return this.restartPromise !== undefined; }\n\tasync synchronize(): Promise<void> {\n\t\tconst state = await this.client.getState();\n\t\tthis.remoteSessionFile = state.sessionFile;\n\t\tthis.remoteSessionName = state.sessionName;\n\t}\n\n\tsetEngineCallbackActive(active: boolean): void { this.engineCallbackActive = active; }\n\n\tinterruptBlockedCallback(): boolean {\n\t\tif (!this.engineCallbackActive) return false;\n\t\tthis.dispatchBestEffort(\"interrupt\", this.session.abort());\n\t\treturn true;\n\t}\n\n\tsetExtensionUIHandler(\n\t\thandler: (request: RpcExtensionUIRequest) => Promise<RpcExtensionUIResponse | undefined>,\n\t): () => void {\n\t\treturn this.client.onExtensionUIRequest((request) => {\n\t\t\tvoid handler(request).then(async (response) => {\n\t\t\t\tif (response) await this.client.respondExtensionUI(response);\n\t\t\t}).catch((error: Error) => {\n\t\t\t\tthis.emitDiagnostic({\n\t\t\t\t\tactivity: undefined,\n\t\t\t\t\telapsedMs: 0,\n\t\t\t\t\tlevel: \"unresponsive\",\n\t\t\t\t\tmessage: `Interactive engine UI bridge failed: ${error.message}`,\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\temitDiagnostic(diagnostic: ActivityWatchdogDiagnostic): void {\n\t\tthis.lastDiagnostic = diagnostic;\n\t\tthis.engineCallbackActive = true;\n\t\tif (this.diagnosticListeners.size === 0) this.pendingDiagnostics.push(diagnostic);\n\t\tfor (const listener of this.diagnosticListeners) listener(diagnostic);\n\t}\n\n\toverride async switchSession(sessionPath: string): Promise<{ cancelled: boolean }> {\n\t\tconst result = await this.client.switchSession(sessionPath);\n\t\tif (!result.cancelled) {\n\t\t\tawait super.switchSession(sessionPath);\n\t\t\tawait this.initializeFromEngine();\n\t\t}\n\t\treturn result;\n\t}\n\n\toverride async newSession(options?: { parentSession?: string }): Promise<{ cancelled: boolean }> {\n\t\tconst result = await this.client.newSession(options?.parentSession);\n\t\tif (result.cancelled) return result;\n\t\tconst state = await this.client.getState();\n\t\tif (state.sessionFile) await super.switchSession(state.sessionFile);\n\t\telse this.resetUnpersistedSessionView();\n\t\tawait this.initializeFromEngine();\n\t\treturn result;\n\t}\n\n\toverride async importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{ cancelled: boolean }> {\n\t\tconst result = await this.client.requestInternal<{ cancelled: boolean }>({\n\t\t\ttype: \"import_session\", inputPath, cwdOverride,\n\t\t});\n\t\tif (result.cancelled) return result;\n\t\tconst state = await this.client.getState();\n\t\tif (state.sessionFile) await super.switchSession(state.sessionFile);\n\t\tawait this.initializeFromEngine();\n\t\treturn result;\n\t}\n\n\toverride async fork(\n\t\tentryId: string,\n\t\toptions?: { position?: \"before\" | \"at\" },\n\t): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\tlet selectedText: string | undefined;\n\t\tlet cancelled: boolean;\n\t\tif (options?.position === \"at\") {\n\t\t\tcancelled = (await this.client.clone()).cancelled;\n\t\t} else {\n\t\t\tconst result = await this.client.fork(entryId);\n\t\t\tcancelled = result.cancelled;\n\t\t\tselectedText = result.text;\n\t\t}\n\t\tif (cancelled) return { cancelled: true };\n\t\tconst state = await this.client.getState();\n\t\tif (state.sessionFile) await super.switchSession(state.sessionFile);\n\t\tawait this.initializeFromEngine();\n\t\treturn { cancelled: false, selectedText };\n\t}\n\n\toverride async dispose(): Promise<void> {\n\t\tawait this.client.stop();\n\t\tawait super.dispose();\n\t}\n\n\tprivate patchSession(session: AgentSession): void {\n\t\tif (this.patchedSessions.has(session)) return;\n\t\tthis.patchedSessions.add(session);\n\t\tthis.patchSessionManager(session.sessionManager);\n\t\tObject.defineProperties(session, {\n\t\t\tisStreaming: { configurable: true, get: () => this.streaming },\n\t\t\tisCompacting: { configurable: true, get: () => this.compacting },\n\t\t\tisBashRunning: { configurable: true, get: () => this.bashRunning },\n\t\t\tsessionName: { configurable: true, get: () => this.remoteSessionName },\n\t\t\tsessionFile: { configurable: true, get: () => this.remoteSessionFile },\n\t\t\tautoCompactionEnabled: { configurable: true, get: () => this.autoCompactionEnabled },\n\t\t\tautoRetryEnabled: { configurable: true, get: () => this.autoRetryEnabled },\n\t\t\tsubscribe: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (listener: (event: AgentSessionEvent) => void) => this.client.onEvent(listener),\n\t\t\t},\n\t\t\tprompt: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (text: string, options?: PromptOptions) => {\n\t\t\t\t\tawait this.client.prompt(text, options?.images, options?.streamingBehavior);\n\t\t\t\t\toptions?.preflightResult?.(true);\n\t\t\t\t},\n\t\t\t},\n\t\t\tsteer: { configurable: true, value: (text: string) => this.client.steer(text) },\n\t\t\tfollowUp: { configurable: true, value: (text: string) => this.client.followUp(text) },\n\t\t\tabort: { configurable: true, value: () => this.abortAndRecover() },\n\t\t\texecuteBash: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (\n\t\t\t\t\tcommand: string,\n\t\t\t\t\tonChunk?: (chunk: string) => void,\n\t\t\t\t\toptions?: { excludeFromContext?: boolean },\n\t\t\t\t) => {\n\t\t\t\t\tthis.bashRunning = true;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await this.client.requestInternal<Awaited<ReturnType<AgentSession[\"executeBash\"]>>>({\n\t\t\t\t\t\t\ttype: \"user_bash\", command, excludeFromContext: options?.excludeFromContext,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (result.output) onChunk?.(result.output);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tthis.bashRunning = false;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\trecordBashResult: { configurable: true, value: () => {} },\n\t\t\tabortBash: { configurable: true, value: () => this.dispatchBestEffort(\"abort bash\", this.client.abortBash()) },\n\t\t\tcompact: { configurable: true, value: () => this.client.compact() },\n\t\t\tabortCompaction: { configurable: true, value: () => this.dispatchBestEffort(\"abort compaction\", this.client.requestInternal<void>({ type: \"abort_compaction\" })) },\n\t\t\tabortRetry: { configurable: true, value: () => this.dispatchBestEffort(\"abort retry\", this.client.abortRetry()) },\n\t\t\tnavigateTree: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (targetId: string, options?: Parameters<AgentSession[\"navigateTree\"]>[1]) =>\n\t\t\t\t\tthis.client.requestInternal<Awaited<ReturnType<AgentSession[\"navigateTree\"]>>>({\n\t\t\t\t\t\ttype: \"navigate_tree\", targetId, options,\n\t\t\t\t\t}),\n\t\t\t},\n\t\t\treload: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async () => {\n\t\t\t\t\tawait this.client.requestInternal<void>({ type: \"reload\" });\n\t\t\t\t\tawait this.initializeFromEngine();\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetSessionName: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (name: string) => {\n\t\t\t\t\tthis.remoteSessionName = name;\n\t\t\t\t\tthis.dispatchBestEffort(\"set session name\", this.client.setSessionName(name).then(() => this.refreshSessionView()));\n\t\t\t\t},\n\t\t\t},\n\t\t\tgetSteeringMessages: { configurable: true, value: () => [...this.steeringMessages] },\n\t\t\tgetFollowUpMessages: { configurable: true, value: () => [...this.followUpMessages] },\n\t\t\tclearQueue: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: () => {\n\t\t\t\t\tconst queued = { steering: [...this.steeringMessages], followUp: [...this.followUpMessages] };\n\t\t\t\t\tthis.steeringMessages = [];\n\t\t\t\t\tthis.followUpMessages = [];\n\t\t\t\t\tthis.dispatchBestEffort(\"clear queue\", this.client.requestInternal({ type: \"clear_queue\" }));\n\t\t\t\t\treturn queued;\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetModel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (model: Model<Api>) => {\n\t\t\t\t\tconst selected = await this.client.setModel(model.provider, model.id);\n\t\t\t\t\tsession.agent.state.model = session.modelRegistry.find(selected.provider, selected.id) ?? model;\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetThinkingLevel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (level: AgentSession[\"thinkingLevel\"]) => {\n\t\t\t\t\tsession.agent.state.thinkingLevel = level;\n\t\t\t\t\tthis.dispatchBestEffort(\"set thinking level\", this.client.setThinkingLevel(level));\n\t\t\t\t},\n\t\t\t},\n\t\t\tcycleModel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: async (direction?: \"forward\" | \"backward\") => {\n\t\t\t\t\tconst result = await this.client.cycleModel(direction);\n\t\t\t\t\tif (!result) return undefined;\n\t\t\t\t\tconst model = session.modelRegistry.find(result.model.provider, result.model.id) ?? result.model;\n\t\t\t\t\tsession.agent.state.model = model;\n\t\t\t\t\tsession.agent.state.thinkingLevel = result.thinkingLevel;\n\t\t\t\t\treturn { ...result, model };\n\t\t\t\t},\n\t\t\t},\n\t\t\tcycleThinkingLevel: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: () => {\n\t\t\t\t\tconst levels = session.getAvailableThinkingLevels();\n\t\t\t\t\tif (levels.length <= 1) return undefined;\n\t\t\t\t\tconst current = levels.indexOf(session.thinkingLevel);\n\t\t\t\t\tconst level = levels[(current + 1) % levels.length]!;\n\t\t\t\t\tsession.agent.state.thinkingLevel = level;\n\t\t\t\t\tthis.dispatchBestEffort(\"cycle thinking level\", this.client.setThinkingLevel(level));\n\t\t\t\t\treturn level;\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetContextWindow: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (tokens: number) => {\n\t\t\t\t\tif (session.agent.state.model) session.agent.state.model = { ...session.agent.state.model, contextWindow: tokens };\n\t\t\t\t\tthis.dispatchBestEffort(\"set context window\", this.client.setContextWindow(tokens));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetSteeringMode: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (mode: \"all\" | \"one-at-a-time\") => {\n\t\t\t\t\tsession.agent.steeringMode = mode;\n\t\t\t\t\tthis.dispatchBestEffort(\"set steering mode\", this.client.setSteeringMode(mode));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetFollowUpMode: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (mode: \"all\" | \"one-at-a-time\") => {\n\t\t\t\t\tsession.agent.followUpMode = mode;\n\t\t\t\t\tthis.dispatchBestEffort(\"set follow-up mode\", this.client.setFollowUpMode(mode));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetAutoCompactionEnabled: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (enabled: boolean) => {\n\t\t\t\t\tthis.autoCompactionEnabled = enabled;\n\t\t\t\t\tthis.dispatchBestEffort(\"set auto compaction\", this.client.setAutoCompaction(enabled));\n\t\t\t\t},\n\t\t\t},\n\t\t\tsetAutoRetryEnabled: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (enabled: boolean) => {\n\t\t\t\t\tthis.autoRetryEnabled = enabled;\n\t\t\t\t\tthis.dispatchBestEffort(\"set auto retry\", this.client.setAutoRetry(enabled));\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate async abortAndRecover(): Promise<void> {\n\t\tif (this.restartPromise) return this.restartPromise;\n\t\tconst cooperativeAbort = this.client.abort().then(() => true, () => false);\n\t\tif (await Promise.race([cooperativeAbort, sleep(250).then(() => false)])) {\n\t\t\tthis.engineCallbackActive = false;\n\t\t\treturn;\n\t\t}\n\t\tconst activity = this.lastDiagnostic?.activity;\n\t\tconst label = activity ? `${activity.kind} ${activity.name}` : \"engine callback\";\n\t\tconst diagnostic: ActivityWatchdogDiagnostic = {\n\t\t\tactivity,\n\t\t\telapsedMs: this.lastDiagnostic?.elapsedMs ?? 0,\n\t\t\tlevel: \"unresponsive\",\n\t\t\tmessage: `Engine terminated; ${label} result unknown; inspect side effects before retrying`,\n\t\t};\n\t\tthis.streaming = false;\n\t\tthis.compacting = false;\n\t\tthis.engineCallbackActive = false;\n\t\tfor (const listener of this.diagnosticListeners) listener(diagnostic);\n\t\tthis.restartPromise = (async () => {\n\t\t\tawait this.client.restart(this.remoteSessionFile);\n\t\t\tawait this.initializeFromEngine();\n\t\t})().catch((error: Error) => {\n\t\t\tthis.emitDiagnostic({ ...diagnostic, message: `${diagnostic.message}; engine restart failed: ${error.message}` });\n\t\t}).finally(() => { this.restartPromise = undefined; });\n\t\tawait this.restartPromise;\n\t}\n\n\tprivate dispatchBestEffort(label: string, operation: Promise<unknown>): void {\n\t\tvoid operation.catch((error: Error) => {\n\t\t\tif (this.restartPromise) return;\n\t\t\tthis.emitDiagnostic({\n\t\t\t\tactivity: undefined,\n\t\t\t\telapsedMs: 0,\n\t\t\t\tlevel: \"unresponsive\",\n\t\t\t\tmessage: `Interactive engine ${label} failed: ${error.message}`,\n\t\t\t});\n\t\t});\n\t}\n\n\tprivate resetUnpersistedSessionView(): void {\n\t\tconst session = super.session;\n\t\tconst manager = SessionManager.create(session.sessionManager.getCwd(), session.sessionManager.getSessionDir());\n\t\tObject.defineProperty(session, \"sessionManager\", { configurable: true, value: manager });\n\t\tthis.patchSessionManager(manager);\n\t\tsession.agent.state.messages = [];\n\t}\n\n\tprivate patchSessionManager(manager: SessionManager): void {\n\t\tObject.defineProperty(manager, \"appendLabelChange\", {\n\t\t\tconfigurable: true,\n\t\t\tvalue: (entryId: string, label?: string) => {\n\t\t\t\tthis.dispatchBestEffort(\n\t\t\t\t\t\"set label\",\n\t\t\t\t\tthis.client.requestInternal<void>({ type: \"set_label\", entryId, label }).then(() => this.refreshSessionView()),\n\t\t\t\t);\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate refreshSessionView(): void {\n\t\tconst session = super.session;\n\t\tconst sessionFile = session.sessionFile;\n\t\tif (!sessionFile) return;\n\t\tconst currentManager = session.sessionManager;\n\t\tconst refreshed = SessionManager.open(sessionFile, currentManager.getSessionDir(), currentManager.getCwd());\n\t\tObject.defineProperty(session, \"sessionManager\", { configurable: true, value: refreshed });\n\t\tthis.patchSessionManager(refreshed);\n\t\tsession.agent.state.messages = refreshed.buildSessionContext().messages;\n\t}\n\n\tprivate observeEvent(event: RpcEvent): void {\n\t\tconst session = super.session;\n\t\tswitch (event.type) {\n\t\t\tcase \"agent_start\":\n\t\t\t\tthis.streaming = true;\n\t\t\t\tbreak;\n\t\t\tcase \"agent_end\":\n\t\t\t\tthis.streaming = false;\n\t\t\t\tthis.refreshSessionView();\n\t\t\t\tbreak;\n\t\t\tcase \"compaction_start\":\n\t\t\t\tthis.compacting = true;\n\t\t\t\tbreak;\n\t\t\tcase \"compaction_end\":\n\t\t\t\tthis.compacting = false;\n\t\t\t\tbreak;\n\t\t\tcase \"queue_update\":\n\t\t\t\tthis.steeringMessages = [...event.steering];\n\t\t\t\tthis.followUpMessages = [...event.followUp];\n\t\t\t\tbreak;\n\t\t\tcase \"model_changed\":\n\t\t\t\tsession.agent.state.model = event.model;\n\t\t\t\tbreak;\n\t\t\tcase \"thinking_level_changed\":\n\t\t\t\tsession.agent.state.thinkingLevel = event.level;\n\t\t\t\tbreak;\n\t\t\tcase \"context_window_changed\":\n\t\t\t\tif (session.agent.state.model) session.agent.state.model = { ...session.agent.state.model, contextWindow: event.contextWindow };\n\t\t\t\tbreak;\n\t\t\tcase \"session_info_changed\":\n\t\t\t\tthis.remoteSessionName = event.name;\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n"]}
@@ -0,0 +1,15 @@
1
+ import type { AgentSession } from "../../core/agent-session.ts";
2
+ import type { RpcClient } from "../rpc/rpc-client.ts";
3
+ import type { RpcModelCatalog } from "../rpc/rpc-types.ts";
4
+ export declare class RemoteModelCatalog {
5
+ private readonly client;
6
+ private models;
7
+ private scopedModels;
8
+ private refreshGeneration;
9
+ constructor(client: RpcClient);
10
+ apply(catalog: RpcModelCatalog): void;
11
+ patch(session: AgentSession): void;
12
+ private refresh;
13
+ private waitForRefresh;
14
+ }
15
+ //# sourceMappingURL=remote-model-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-model-catalog.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive-engine/remote-model-catalog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAS3D,qBAAa,kBAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,YAAY,CAAmF;IACvG,OAAO,CAAC,iBAAiB,CAAK;IAE9B,YAAY,MAAM,EAAE,SAAS,EAE5B;IAED,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAGpC;IAED,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAqBjC;YAEa,OAAO;YAiBP,cAAc;CAgB5B"}
@@ -0,0 +1,67 @@
1
+ export class RemoteModelCatalog {
2
+ constructor(client) {
3
+ this.models = [];
4
+ this.scopedModels = [];
5
+ this.refreshGeneration = 0;
6
+ this.client = client;
7
+ }
8
+ apply(catalog) {
9
+ this.models = catalog.models;
10
+ this.scopedModels = catalog.scopedModels;
11
+ }
12
+ patch(session) {
13
+ const registry = session.modelRegistry;
14
+ Object.defineProperties(registry, {
15
+ refresh: { configurable: true, value: (options = {}) => this.refresh(options) },
16
+ getAvailable: { configurable: true, value: () => [...this.models] },
17
+ find: {
18
+ configurable: true,
19
+ value: (provider, modelId) => this.models.find((model) => model.provider === provider && model.id === modelId),
20
+ },
21
+ hasConfiguredAuth: {
22
+ configurable: true,
23
+ value: (model) => this.models.some((candidate) => candidate.provider === model.provider && candidate.id === model.id),
24
+ },
25
+ });
26
+ Object.defineProperty(session, "scopedModels", {
27
+ configurable: true,
28
+ get: () => this.scopedModels,
29
+ });
30
+ }
31
+ async refresh(options = {}) {
32
+ const generation = ++this.refreshGeneration;
33
+ if (options.signal?.aborted)
34
+ return { aborted: true, errors: new Map() };
35
+ const remoteRefresh = this.client.refreshModels({
36
+ timeoutMs: options.timeoutMs,
37
+ force: options.force,
38
+ allowNetwork: options.allowNetwork,
39
+ });
40
+ const result = await this.waitForRefresh(remoteRefresh, options.signal);
41
+ if (!result || options.signal?.aborted)
42
+ return { aborted: true, errors: new Map() };
43
+ if (generation === this.refreshGeneration)
44
+ this.apply(result);
45
+ return {
46
+ aborted: result.aborted,
47
+ errors: new Map(result.errors.map(({ provider, message }) => [provider, new Error(message)])),
48
+ };
49
+ }
50
+ async waitForRefresh(remoteRefresh, signal) {
51
+ if (!signal)
52
+ return remoteRefresh;
53
+ let abort;
54
+ const aborted = new Promise((resolve) => {
55
+ abort = () => resolve(undefined);
56
+ signal.addEventListener("abort", abort, { once: true });
57
+ });
58
+ try {
59
+ return await Promise.race([remoteRefresh, aborted]);
60
+ }
61
+ finally {
62
+ if (abort)
63
+ signal.removeEventListener("abort", abort);
64
+ }
65
+ }
66
+ }
67
+ //# sourceMappingURL=remote-model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-model-catalog.js","sourceRoot":"","sources":["../../../src/modes/interactive-engine/remote-model-catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ModelsRefreshResult } from \"@earendil-works/pi-ai\";\nimport type { Api, Model } from \"@earendil-works/pi-ai/compat\";\nimport type { AgentSession } from \"../../core/agent-session.ts\";\nimport type { RpcClient } from \"../rpc/rpc-client.ts\";\nimport type { RpcModelCatalog } from \"../rpc/rpc-types.ts\";\n\ninterface RemoteModelRefreshOptions {\n\tsignal?: AbortSignal;\n\ttimeoutMs?: number;\n\tforce?: boolean;\n\tallowNetwork?: boolean;\n}\n\nexport class RemoteModelCatalog {\n\tprivate readonly client: RpcClient;\n\tprivate models: Model<Api>[] = [];\n\tprivate scopedModels: Array<{ model: Model<Api>; thinkingLevel?: AgentSession[\"thinkingLevel\"] }> = [];\n\tprivate refreshGeneration = 0;\n\n\tconstructor(client: RpcClient) {\n\t\tthis.client = client;\n\t}\n\n\tapply(catalog: RpcModelCatalog): void {\n\t\tthis.models = catalog.models;\n\t\tthis.scopedModels = catalog.scopedModels;\n\t}\n\n\tpatch(session: AgentSession): void {\n\t\tconst registry = session.modelRegistry;\n\t\tObject.defineProperties(registry, {\n\t\t\trefresh: { configurable: true, value: (options = {}) => this.refresh(options) },\n\t\t\tgetAvailable: { configurable: true, value: () => [...this.models] },\n\t\t\tfind: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (provider: string, modelId: string) =>\n\t\t\t\t\tthis.models.find((model) => model.provider === provider && model.id === modelId),\n\t\t\t},\n\t\t\thasConfiguredAuth: {\n\t\t\t\tconfigurable: true,\n\t\t\t\tvalue: (model: Model<Api>) => this.models.some(\n\t\t\t\t\t(candidate) => candidate.provider === model.provider && candidate.id === model.id,\n\t\t\t\t),\n\t\t\t},\n\t\t});\n\t\tObject.defineProperty(session, \"scopedModels\", {\n\t\t\tconfigurable: true,\n\t\t\tget: () => this.scopedModels,\n\t\t});\n\t}\n\n\tprivate async refresh(options: RemoteModelRefreshOptions = {}): Promise<ModelsRefreshResult> {\n\t\tconst generation = ++this.refreshGeneration;\n\t\tif (options.signal?.aborted) return { aborted: true, errors: new Map() };\n\t\tconst remoteRefresh = this.client.refreshModels({\n\t\t\ttimeoutMs: options.timeoutMs,\n\t\t\tforce: options.force,\n\t\t\tallowNetwork: options.allowNetwork,\n\t\t});\n\t\tconst result = await this.waitForRefresh(remoteRefresh, options.signal);\n\t\tif (!result || options.signal?.aborted) return { aborted: true, errors: new Map() };\n\t\tif (generation === this.refreshGeneration) this.apply(result);\n\t\treturn {\n\t\t\taborted: result.aborted,\n\t\t\terrors: new Map(result.errors.map(({ provider, message }) => [provider, new Error(message)])),\n\t\t};\n\t}\n\n\tprivate async waitForRefresh(\n\t\tremoteRefresh: ReturnType<RpcClient[\"refreshModels\"]>,\n\t\tsignal: AbortSignal | undefined,\n\t): Promise<Awaited<typeof remoteRefresh> | undefined> {\n\t\tif (!signal) return remoteRefresh;\n\t\tlet abort: (() => void) | undefined;\n\t\tconst aborted = new Promise<undefined>((resolve) => {\n\t\t\tabort = () => resolve(undefined);\n\t\t\tsignal.addEventListener(\"abort\", abort, { once: true });\n\t\t});\n\t\ttry {\n\t\t\treturn await Promise.race([remoteRefresh, aborted]);\n\t\t} finally {\n\t\t\tif (abort) signal.removeEventListener(\"abort\", abort);\n\t\t}\n\t}\n}\n"]}
@@ -4,7 +4,7 @@ import type { SessionStats } from "../../core/agent-session.ts";
4
4
  import type { BashResult } from "../../core/bash-executor.ts";
5
5
  import type { VerbatimCompactionResult } from "../../core/compaction/index.ts";
6
6
  import type { SessionEntry, SessionTreeNode } from "../../core/session-manager.ts";
7
- import type { RpcCommand, RpcContextWindowInfo, RpcResponse, RpcSessionState, RpcSlashCommand } from "./rpc-types.ts";
7
+ import type { RpcCommand, RpcAutocompleteItem, RpcContextWindowInfo, RpcLogoutProviderResult, RpcModelRefreshResult, RpcResponse, RpcSessionState, RpcSlashCommand } from "./rpc-types.ts";
8
8
  type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
9
9
  export type RpcCommandBody = DistributiveOmit<RpcCommand, "id">;
10
10
  export interface ModelInfo {
@@ -34,10 +34,17 @@ export declare abstract class RpcClientApi {
34
34
  isScoped: boolean;
35
35
  } | null>;
36
36
  getAvailableModels(): Promise<ModelInfo[]>;
37
+ logoutProvider(provider: string): Promise<RpcLogoutProviderResult>;
38
+ refreshModels(options?: {
39
+ timeoutMs?: number;
40
+ force?: boolean;
41
+ allowNetwork?: boolean;
42
+ }): Promise<RpcModelRefreshResult>;
37
43
  setThinkingLevel(level: ThinkingLevel): Promise<void>;
38
44
  cycleThinkingLevel(): Promise<{
39
45
  level: ThinkingLevel;
40
46
  } | null>;
47
+ getAvailableThinkingLevels(): Promise<ThinkingLevel[]>;
41
48
  setContextWindow(contextWindow: number | string): Promise<void>;
42
49
  getAvailableContextWindows(): Promise<RpcContextWindowInfo>;
43
50
  setSteeringMode(mode: "all" | "one-at-a-time"): Promise<void>;
@@ -78,6 +85,7 @@ export declare abstract class RpcClientApi {
78
85
  setSessionName(name: string): Promise<void>;
79
86
  getMessages(): Promise<AgentMessage[]>;
80
87
  getCommands(): Promise<RpcSlashCommand[]>;
88
+ getCommandCompletions(commandName: string, argumentPrefix: string): Promise<RpcAutocompleteItem[] | null>;
81
89
  }
82
90
  export {};
83
91
  //# sourceMappingURL=rpc-client-api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-client-api.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-client-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EACX,UAAU,EACV,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,eAAe,EACf,MAAM,gBAAgB,CAAC;AAExB,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;AACrF,MAAM,MAAM,cAAc,GAAG,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAEhE,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,8BAAsB,YAAY;IACjC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1E,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,GAAG,CAAC,CAAC;IAE/C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,EAAE,iBAAiB,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9G;IACK,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAA4D;IAC1H,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAgE;IACjI,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAA2C;IACjE,UAAU,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAExE;IACK,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC,CAAiE;IACrG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAE3F;IACK,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;QAC7D,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QAAC,aAAa,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;KACnE,GAAG,IAAI,CAAC,CAER;IACK,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAE/C;IACK,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAA+D;IACpH,kBAAkB,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,GAAG,IAAI,CAAC,CAEnE;IACK,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;IACK,0BAA0B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAEhE;IACK,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAA6D;IAC1H,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAA8D;IAC3H,OAAO,IAAI,OAAO,CAAC,wBAAwB,CAAC,CAA+D;IAC3G,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAkE;IACpH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAA6D;IAC1G,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAiD;IAC5E,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAqE;IAC/G,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAgD;IAC1E,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAAyE;IACjH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAA+E;IACzI,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAExE;IACK,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAqE;IACzI,KAAK,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAA6D;IACrG,eAAe,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAEzE;IACK,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAE5F;IACK,OAAO,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAgE;IACtI,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEnD;IACK,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAA4D;IACvG,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAE3C;IACK,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAE9C;CACD"}
1
+ {"version":3,"file":"rpc-client-api.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-client-api.ts"],"names":[],"mappings":"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"}
@@ -18,10 +18,19 @@ export class RpcClientApi {
18
18
  async getAvailableModels() {
19
19
  return this.data(await this.request({ type: "get_available_models" })).models;
20
20
  }
21
+ async logoutProvider(provider) {
22
+ return this.data(await this.request({ type: "logout_provider", provider }));
23
+ }
24
+ async refreshModels(options = {}) {
25
+ return this.data(await this.request({ type: "refresh_models", ...options }));
26
+ }
21
27
  async setThinkingLevel(level) { await this.request({ type: "set_thinking_level", level }); }
22
28
  async cycleThinkingLevel() {
23
29
  return this.data(await this.request({ type: "cycle_thinking_level" }));
24
30
  }
31
+ async getAvailableThinkingLevels() {
32
+ return this.data(await this.request({ type: "get_available_thinking_levels" })).levels;
33
+ }
25
34
  async setContextWindow(contextWindow) {
26
35
  this.data(await this.request({ type: "set_context_window", contextWindow }));
27
36
  }
@@ -60,5 +69,8 @@ export class RpcClientApi {
60
69
  async getCommands() {
61
70
  return this.data(await this.request({ type: "get_commands" })).commands;
62
71
  }
72
+ async getCommandCompletions(commandName, argumentPrefix) {
73
+ return this.data(await this.request({ type: "get_command_completions", commandName, argumentPrefix })).completions;
74
+ }
63
75
  }
64
76
  //# sourceMappingURL=rpc-client-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-client-api.js","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-client-api.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { Api, ImageContent, Model } from \"@earendil-works/pi-ai/compat\";\nimport type { SessionStats } from \"../../core/agent-session.ts\";\nimport type { BashResult } from \"../../core/bash-executor.ts\";\nimport type { VerbatimCompactionResult } from \"../../core/compaction/index.ts\";\nimport type { SessionEntry, SessionTreeNode } from \"../../core/session-manager.ts\";\nimport type {\n\tRpcCommand,\n\tRpcContextWindowInfo,\n\tRpcResponse,\n\tRpcSessionState,\n\tRpcSlashCommand,\n} from \"./rpc-types.ts\";\n\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\nexport type RpcCommandBody = DistributiveOmit<RpcCommand, \"id\">;\n\nexport interface ModelInfo {\n\tprovider: string;\n\tid: string;\n\tcontextWindow: number;\n\treasoning: boolean;\n}\n\nexport abstract class RpcClientApi {\n\tprotected abstract request(command: RpcCommandBody): Promise<RpcResponse>;\n\tprotected abstract data<T>(response: RpcResponse): T;\n\n\tasync prompt(message: string, images?: ImageContent[], streamingBehavior?: \"steer\" | \"followUp\"): Promise<void> {\n\t\tawait this.request({ type: \"prompt\", message, images, streamingBehavior });\n\t}\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> { await this.request({ type: \"steer\", message, images }); }\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> { await this.request({ type: \"follow_up\", message, images }); }\n\tasync abort(): Promise<void> { await this.request({ type: \"abort\" }); }\n\tasync newSession(parentSession?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.data(await this.request({ type: \"new_session\", parentSession }));\n\t}\n\tasync getState(): Promise<RpcSessionState> { return this.data(await this.request({ type: \"get_state\" })); }\n\tasync setModel(provider: string, modelId: string): Promise<{ provider: string; id: string }> {\n\t\treturn this.data(await this.request({ type: \"set_model\", provider, modelId }));\n\t}\n\tasync cycleModel(direction?: \"forward\" | \"backward\"): Promise<{\n\t\tmodel: Model<Api>; thinkingLevel: ThinkingLevel; isScoped: boolean;\n\t} | null> {\n\t\treturn this.data(await this.request({ type: \"cycle_model\", direction }));\n\t}\n\tasync getAvailableModels(): Promise<ModelInfo[]> {\n\t\treturn this.data<{ models: ModelInfo[] }>(await this.request({ type: \"get_available_models\" })).models;\n\t}\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> { await this.request({ type: \"set_thinking_level\", level }); }\n\tasync cycleThinkingLevel(): Promise<{ level: ThinkingLevel } | null> {\n\t\treturn this.data(await this.request({ type: \"cycle_thinking_level\" }));\n\t}\n\tasync setContextWindow(contextWindow: number | string): Promise<void> {\n\t\tthis.data(await this.request({ type: \"set_context_window\", contextWindow }));\n\t}\n\tasync getAvailableContextWindows(): Promise<RpcContextWindowInfo> {\n\t\treturn this.data(await this.request({ type: \"get_available_context_windows\" }));\n\t}\n\tasync setSteeringMode(mode: \"all\" | \"one-at-a-time\"): Promise<void> { await this.request({ type: \"set_steering_mode\", mode }); }\n\tasync setFollowUpMode(mode: \"all\" | \"one-at-a-time\"): Promise<void> { await this.request({ type: \"set_follow_up_mode\", mode }); }\n\tasync compact(): Promise<VerbatimCompactionResult> { return this.data(await this.request({ type: \"compact\" })); }\n\tasync setAutoCompaction(enabled: boolean): Promise<void> { await this.request({ type: \"set_auto_compaction\", enabled }); }\n\tasync setAutoRetry(enabled: boolean): Promise<void> { await this.request({ type: \"set_auto_retry\", enabled }); }\n\tasync abortRetry(): Promise<void> { await this.request({ type: \"abort_retry\" }); }\n\tasync bash(command: string): Promise<BashResult> { return this.data(await this.request({ type: \"bash\", command })); }\n\tasync abortBash(): Promise<void> { await this.request({ type: \"abort_bash\" }); }\n\tasync getSessionStats(): Promise<SessionStats> { return this.data(await this.request({ type: \"get_session_stats\" })); }\n\tasync exportHtml(outputPath?: string): Promise<{ path: string }> { return this.data(await this.request({ type: \"export_html\", outputPath })); }\n\tasync switchSession(sessionPath: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.data(await this.request({ type: \"switch_session\", sessionPath }));\n\t}\n\tasync fork(entryId: string): Promise<{ text: string; cancelled: boolean }> { return this.data(await this.request({ type: \"fork\", entryId })); }\n\tasync clone(): Promise<{ cancelled: boolean }> { return this.data(await this.request({ type: \"clone\" })); }\n\tasync getForkMessages(): Promise<Array<{ entryId: string; text: string }>> {\n\t\treturn this.data<{ messages: Array<{ entryId: string; text: string }> }>(await this.request({ type: \"get_fork_messages\" })).messages;\n\t}\n\tasync getEntries(since?: string): Promise<{ entries: SessionEntry[]; leafId: string | null }> {\n\t\treturn this.data(await this.request({ type: \"get_entries\", since }));\n\t}\n\tasync getTree(): Promise<{ tree: SessionTreeNode[]; leafId: string | null }> { return this.data(await this.request({ type: \"get_tree\" })); }\n\tasync getLastAssistantText(): Promise<string | null> {\n\t\treturn this.data<{ text: string | null }>(await this.request({ type: \"get_last_assistant_text\" })).text;\n\t}\n\tasync setSessionName(name: string): Promise<void> { await this.request({ type: \"set_session_name\", name }); }\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.data<{ messages: AgentMessage[] }>(await this.request({ type: \"get_messages\" })).messages;\n\t}\n\tasync getCommands(): Promise<RpcSlashCommand[]> {\n\t\treturn this.data<{ commands: RpcSlashCommand[] }>(await this.request({ type: \"get_commands\" })).commands;\n\t}\n}\n"]}
1
+ {"version":3,"file":"rpc-client-api.js","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-client-api.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport type { Api, ImageContent, Model } from \"@earendil-works/pi-ai/compat\";\nimport type { SessionStats } from \"../../core/agent-session.ts\";\nimport type { BashResult } from \"../../core/bash-executor.ts\";\nimport type { VerbatimCompactionResult } from \"../../core/compaction/index.ts\";\nimport type { SessionEntry, SessionTreeNode } from \"../../core/session-manager.ts\";\nimport type {\n\tRpcCommand,\n\tRpcAutocompleteItem,\n\tRpcContextWindowInfo,\n\tRpcLogoutProviderResult,\n\tRpcModelRefreshResult,\n\tRpcResponse,\n\tRpcSessionState,\n\tRpcSlashCommand,\n} from \"./rpc-types.ts\";\n\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\nexport type RpcCommandBody = DistributiveOmit<RpcCommand, \"id\">;\n\nexport interface ModelInfo {\n\tprovider: string;\n\tid: string;\n\tcontextWindow: number;\n\treasoning: boolean;\n}\n\nexport abstract class RpcClientApi {\n\tprotected abstract request(command: RpcCommandBody): Promise<RpcResponse>;\n\tprotected abstract data<T>(response: RpcResponse): T;\n\n\tasync prompt(message: string, images?: ImageContent[], streamingBehavior?: \"steer\" | \"followUp\"): Promise<void> {\n\t\tawait this.request({ type: \"prompt\", message, images, streamingBehavior });\n\t}\n\tasync steer(message: string, images?: ImageContent[]): Promise<void> { await this.request({ type: \"steer\", message, images }); }\n\tasync followUp(message: string, images?: ImageContent[]): Promise<void> { await this.request({ type: \"follow_up\", message, images }); }\n\tasync abort(): Promise<void> { await this.request({ type: \"abort\" }); }\n\tasync newSession(parentSession?: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.data(await this.request({ type: \"new_session\", parentSession }));\n\t}\n\tasync getState(): Promise<RpcSessionState> { return this.data(await this.request({ type: \"get_state\" })); }\n\tasync setModel(provider: string, modelId: string): Promise<{ provider: string; id: string }> {\n\t\treturn this.data(await this.request({ type: \"set_model\", provider, modelId }));\n\t}\n\tasync cycleModel(direction?: \"forward\" | \"backward\"): Promise<{\n\t\tmodel: Model<Api>; thinkingLevel: ThinkingLevel; isScoped: boolean;\n\t} | null> {\n\t\treturn this.data(await this.request({ type: \"cycle_model\", direction }));\n\t}\n\tasync getAvailableModels(): Promise<ModelInfo[]> {\n\t\treturn this.data<{ models: ModelInfo[] }>(await this.request({ type: \"get_available_models\" })).models;\n\t}\n\tasync logoutProvider(provider: string): Promise<RpcLogoutProviderResult> {\n\t\treturn this.data(await this.request({ type: \"logout_provider\", provider }));\n\t}\n\n\tasync refreshModels(options: { timeoutMs?: number; force?: boolean; allowNetwork?: boolean } = {}): Promise<RpcModelRefreshResult> {\n\t\treturn this.data(await this.request({ type: \"refresh_models\", ...options }));\n\t}\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> { await this.request({ type: \"set_thinking_level\", level }); }\n\tasync cycleThinkingLevel(): Promise<{ level: ThinkingLevel } | null> {\n\t\treturn this.data(await this.request({ type: \"cycle_thinking_level\" }));\n\t}\n\tasync getAvailableThinkingLevels(): Promise<ThinkingLevel[]> {\n\t\treturn this.data<{ levels: ThinkingLevel[] }>(\n\t\t\tawait this.request({ type: \"get_available_thinking_levels\" }),\n\t\t).levels;\n\t}\n\tasync setContextWindow(contextWindow: number | string): Promise<void> {\n\t\tthis.data(await this.request({ type: \"set_context_window\", contextWindow }));\n\t}\n\tasync getAvailableContextWindows(): Promise<RpcContextWindowInfo> {\n\t\treturn this.data(await this.request({ type: \"get_available_context_windows\" }));\n\t}\n\tasync setSteeringMode(mode: \"all\" | \"one-at-a-time\"): Promise<void> { await this.request({ type: \"set_steering_mode\", mode }); }\n\tasync setFollowUpMode(mode: \"all\" | \"one-at-a-time\"): Promise<void> { await this.request({ type: \"set_follow_up_mode\", mode }); }\n\tasync compact(): Promise<VerbatimCompactionResult> { return this.data(await this.request({ type: \"compact\" })); }\n\tasync setAutoCompaction(enabled: boolean): Promise<void> { await this.request({ type: \"set_auto_compaction\", enabled }); }\n\tasync setAutoRetry(enabled: boolean): Promise<void> { await this.request({ type: \"set_auto_retry\", enabled }); }\n\tasync abortRetry(): Promise<void> { await this.request({ type: \"abort_retry\" }); }\n\tasync bash(command: string): Promise<BashResult> { return this.data(await this.request({ type: \"bash\", command })); }\n\tasync abortBash(): Promise<void> { await this.request({ type: \"abort_bash\" }); }\n\tasync getSessionStats(): Promise<SessionStats> { return this.data(await this.request({ type: \"get_session_stats\" })); }\n\tasync exportHtml(outputPath?: string): Promise<{ path: string }> { return this.data(await this.request({ type: \"export_html\", outputPath })); }\n\tasync switchSession(sessionPath: string): Promise<{ cancelled: boolean }> {\n\t\treturn this.data(await this.request({ type: \"switch_session\", sessionPath }));\n\t}\n\tasync fork(entryId: string): Promise<{ text: string; cancelled: boolean }> { return this.data(await this.request({ type: \"fork\", entryId })); }\n\tasync clone(): Promise<{ cancelled: boolean }> { return this.data(await this.request({ type: \"clone\" })); }\n\tasync getForkMessages(): Promise<Array<{ entryId: string; text: string }>> {\n\t\treturn this.data<{ messages: Array<{ entryId: string; text: string }> }>(await this.request({ type: \"get_fork_messages\" })).messages;\n\t}\n\tasync getEntries(since?: string): Promise<{ entries: SessionEntry[]; leafId: string | null }> {\n\t\treturn this.data(await this.request({ type: \"get_entries\", since }));\n\t}\n\tasync getTree(): Promise<{ tree: SessionTreeNode[]; leafId: string | null }> { return this.data(await this.request({ type: \"get_tree\" })); }\n\tasync getLastAssistantText(): Promise<string | null> {\n\t\treturn this.data<{ text: string | null }>(await this.request({ type: \"get_last_assistant_text\" })).text;\n\t}\n\tasync setSessionName(name: string): Promise<void> { await this.request({ type: \"set_session_name\", name }); }\n\tasync getMessages(): Promise<AgentMessage[]> {\n\t\treturn this.data<{ messages: AgentMessage[] }>(await this.request({ type: \"get_messages\" })).messages;\n\t}\n\tasync getCommands(): Promise<RpcSlashCommand[]> {\n\t\treturn this.data<{ commands: RpcSlashCommand[] }>(await this.request({ type: \"get_commands\" })).commands;\n\t}\n\tasync getCommandCompletions(commandName: string, argumentPrefix: string): Promise<RpcAutocompleteItem[] | null> {\n\t\treturn this.data<{ completions: RpcAutocompleteItem[] | null }>(\n\t\t\tawait this.request({ type: \"get_command_completions\", commandName, argumentPrefix }),\n\t\t).completions;\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-command-handler.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-command-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAKN,KAAK,SAAS,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAoC,MAAM,gBAAgB,CAAC;AAEhG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAE1F,UAAU,wBAAwB;IACjC,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,MAAM,YAAY,CAAC;IAC/B,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;CAC/D;AAED,wBAAgB,uBAAuB,CAAC,EACvC,WAAW,EACX,UAAU,EACV,aAAa,EACb,MAAM,EACN,WAAW,EACX,iBAAiB,GACjB,EAAE,wBAAwB,GAAG,iBAAiB,CAoW9C"}
1
+ {"version":3,"file":"rpc-command-handler.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/rpc-command-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAKN,KAAK,SAAS,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAChF,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAoC,MAAM,gBAAgB,CAAC;AAEhG,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAE1F,UAAU,wBAAwB;IACjC,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,MAAM,YAAY,CAAC;IAC/B,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,iBAAiB,CAAC,EAAE,4BAA4B,CAAC,YAAY,CAAC,CAAC;CAC/D;AAED,wBAAgB,uBAAuB,CAAC,EACvC,WAAW,EACX,UAAU,EACV,aAAa,EACb,MAAM,EACN,WAAW,EACX,iBAAiB,GACjB,EAAE,wBAAwB,GAAG,iBAAiB,CA6Y9C"}