@bastani/atomic 0.9.23-alpha.1 → 0.9.24-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/builtin/intercom/package.json +1 -1
  3. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  4. package/dist/builtin/mcp/README.md +1 -0
  5. package/dist/builtin/mcp/index.bundle.mjs +244 -58
  6. package/dist/builtin/mcp/package.json +1 -1
  7. package/dist/builtin/subagents/CHANGELOG.md +6 -0
  8. package/dist/builtin/subagents/package.json +1 -1
  9. package/dist/builtin/web-access/package.json +1 -1
  10. package/dist/builtin/workflows/CHANGELOG.md +18 -0
  11. package/dist/builtin/workflows/builtin/{chunk-d3xhj946.js → chunk-cpw5gtzg.js} +1 -1
  12. package/dist/builtin/workflows/builtin/{chunk-kgn5wz1c.js → chunk-e1254zvd.js} +139 -15
  13. package/dist/builtin/workflows/builtin/{chunk-hj8mh07f.js → chunk-qy6g0baf.js} +1 -1
  14. package/dist/builtin/workflows/builtin/goal.js +2 -2
  15. package/dist/builtin/workflows/builtin/index.js +3 -3
  16. package/dist/builtin/workflows/builtin/ralph.js +2 -2
  17. package/dist/builtin/workflows/package.json +1 -1
  18. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +1 -0
  19. package/dist/builtin/workflows/skills/prompt-engineer/references/claude_sonnet_5_5.md +131 -0
  20. package/dist/builtin/workflows/src/extension/index.bundle.mjs +187 -25
  21. package/dist/builtin/workflows/src/index.js +147 -17
  22. package/dist/core/agent-session-events.js +1 -1
  23. package/dist/core/agent-session-events.js.map +1 -1
  24. package/dist/core/agent-session-state.js +5 -2
  25. package/dist/core/agent-session-state.js.map +1 -1
  26. package/dist/core/extensions/api-types.d.ts +12 -0
  27. package/dist/core/extensions/api-types.d.ts.map +1 -1
  28. package/dist/core/extensions/api-types.js.map +1 -1
  29. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  30. package/dist/core/extensions/loader-api.js +42 -0
  31. package/dist/core/extensions/loader-api.js.map +1 -1
  32. package/dist/core/extensions/loader-bindings.d.ts.map +1 -1
  33. package/dist/core/extensions/loader-bindings.js +13 -7
  34. package/dist/core/extensions/loader-bindings.js.map +1 -1
  35. package/dist/core/extensions/loader-resources.d.ts +3 -0
  36. package/dist/core/extensions/loader-resources.d.ts.map +1 -1
  37. package/dist/core/extensions/loader-resources.js.map +1 -1
  38. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  39. package/dist/core/extensions/loader-runtime.js +2 -0
  40. package/dist/core/extensions/loader-runtime.js.map +1 -1
  41. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  42. package/dist/core/extensions/loader-virtual-modules.js +2 -0
  43. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  44. package/dist/core/extensions/mcp-server-registry.d.ts +22 -0
  45. package/dist/core/extensions/mcp-server-registry.d.ts.map +1 -0
  46. package/dist/core/extensions/mcp-server-registry.js +51 -0
  47. package/dist/core/extensions/mcp-server-registry.js.map +1 -0
  48. package/dist/core/extensions/runtime-types.d.ts +3 -0
  49. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  50. package/dist/core/extensions/runtime-types.js.map +1 -1
  51. package/dist/core/keybindings.d.ts +1 -1
  52. package/dist/core/keybindings.d.ts.map +1 -1
  53. package/dist/core/keybindings.js +1 -1
  54. package/dist/core/keybindings.js.map +1 -1
  55. package/dist/core/mcp-servers.d.ts +39 -0
  56. package/dist/core/mcp-servers.d.ts.map +1 -0
  57. package/dist/core/mcp-servers.js +2 -0
  58. package/dist/core/mcp-servers.js.map +1 -0
  59. package/dist/core/model-resolver-defaults.js +2 -2
  60. package/dist/core/model-resolver-defaults.js.map +1 -1
  61. package/dist/core/package-manager-manifest.d.ts +3 -0
  62. package/dist/core/package-manager-manifest.d.ts.map +1 -1
  63. package/dist/core/package-manager-manifest.js +14 -0
  64. package/dist/core/package-manager-manifest.js.map +1 -1
  65. package/dist/core/package-manager-mcp-servers.d.ts +4 -0
  66. package/dist/core/package-manager-mcp-servers.d.ts.map +1 -0
  67. package/dist/core/package-manager-mcp-servers.js +53 -0
  68. package/dist/core/package-manager-mcp-servers.js.map +1 -0
  69. package/dist/core/package-manager-resource-accumulator.d.ts.map +1 -1
  70. package/dist/core/package-manager-resource-accumulator.js +2 -0
  71. package/dist/core/package-manager-resource-accumulator.js.map +1 -1
  72. package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
  73. package/dist/core/package-manager-resource-collector.js +2 -0
  74. package/dist/core/package-manager-resource-collector.js.map +1 -1
  75. package/dist/core/package-manager-resource-patterns.d.ts +4 -0
  76. package/dist/core/package-manager-resource-patterns.d.ts.map +1 -1
  77. package/dist/core/package-manager-resource-patterns.js +36 -12
  78. package/dist/core/package-manager-resource-patterns.js.map +1 -1
  79. package/dist/core/package-manager-types.d.ts +14 -0
  80. package/dist/core/package-manager-types.d.ts.map +1 -1
  81. package/dist/core/package-manager-types.js.map +1 -1
  82. package/dist/core/package-manager.d.ts +1 -1
  83. package/dist/core/package-manager.d.ts.map +1 -1
  84. package/dist/core/package-manager.js.map +1 -1
  85. package/dist/core/resource-loader-core.d.ts +4 -0
  86. package/dist/core/resource-loader-core.d.ts.map +1 -1
  87. package/dist/core/resource-loader-core.js +7 -0
  88. package/dist/core/resource-loader-core.js.map +1 -1
  89. package/dist/core/resource-loader-helpers.d.ts.map +1 -1
  90. package/dist/core/resource-loader-helpers.js +1 -0
  91. package/dist/core/resource-loader-helpers.js.map +1 -1
  92. package/dist/core/resource-loader-internals.d.ts +2 -0
  93. package/dist/core/resource-loader-internals.d.ts.map +1 -1
  94. package/dist/core/resource-loader-internals.js.map +1 -1
  95. package/dist/core/resource-loader-package-resources.d.ts +3 -0
  96. package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
  97. package/dist/core/resource-loader-package-resources.js +25 -2
  98. package/dist/core/resource-loader-package-resources.js.map +1 -1
  99. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  100. package/dist/core/resource-loader-reload.js +4 -1
  101. package/dist/core/resource-loader-reload.js.map +1 -1
  102. package/dist/core/session-manager-core.d.ts +2 -0
  103. package/dist/core/session-manager-core.d.ts.map +1 -1
  104. package/dist/core/session-manager-core.js +6 -1
  105. package/dist/core/session-manager-core.js.map +1 -1
  106. package/dist/core/settings-types.d.ts +1 -0
  107. package/dist/core/settings-types.d.ts.map +1 -1
  108. package/dist/core/settings-types.js.map +1 -1
  109. package/dist/extensions/llama/provider.d.ts +1 -1
  110. package/dist/extensions/llama/provider.d.ts.map +1 -1
  111. package/dist/extensions/llama/provider.js +37 -10
  112. package/dist/extensions/llama/provider.js.map +1 -1
  113. package/dist/index.d.ts +2 -1
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/modes/interactive/chat-input-actions.d.ts +12 -0
  117. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
  118. package/dist/modes/interactive/chat-input-actions.js +44 -18
  119. package/dist/modes/interactive/chat-input-actions.js.map +1 -1
  120. package/dist/modes/interactive/components/chat-session-host-editor.d.ts +11 -0
  121. package/dist/modes/interactive/components/chat-session-host-editor.d.ts.map +1 -1
  122. package/dist/modes/interactive/components/chat-session-host-editor.js +7 -1
  123. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
  124. package/dist/modes/interactive/interactive-hotkeys-debug.js +1 -1
  125. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  126. package/dist/modes/interactive/interactive-input-handling.js +3 -1
  127. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  128. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -1
  129. package/dist/modes/interactive/interactive-mode-helpers.js +1 -6
  130. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  131. package/dist/utils/clipboard-native.d.ts +2 -0
  132. package/dist/utils/clipboard-native.d.ts.map +1 -1
  133. package/dist/utils/clipboard-native.js.map +1 -1
  134. package/dist/utils/clipboard.d.ts +7 -0
  135. package/dist/utils/clipboard.d.ts.map +1 -1
  136. package/dist/utils/clipboard.js +37 -1
  137. package/dist/utils/clipboard.js.map +1 -1
  138. package/docs/extensions/api-reference.md +19 -0
  139. package/docs/extensions.md +4 -0
  140. package/docs/keybindings.md +2 -2
  141. package/docs/llama-cpp.md +13 -0
  142. package/docs/mcp-servers.md +18 -0
  143. package/docs/models/evals.md +16 -4
  144. package/docs/packages/authoring.md +27 -0
  145. package/docs/packages/reference.md +3 -2
  146. package/docs/packages.md +3 -2
  147. package/docs/skills.md +3 -1
  148. package/examples/extensions/gondolin/package-lock.json +3 -3
  149. package/npm-shrinkwrap.json +46 -46
  150. package/package.json +4 -4
@@ -1,3 +1,5 @@
1
+ import { isModelType, } from "@bastani/pi-ai";
2
+ import { llamaCppClassifyApi } from "@bastani/pi-ai/api/llama-cpp-classify.lazy";
1
3
  import { stream, streamSimple } from "@bastani/pi-ai/compat";
2
4
  import { LlamaClient, llamaInferenceUrl, normalizeLlamaServerUrl, } from "./client.js";
3
5
  export const LLAMA_PROVIDER_ID = "llama.cpp";
@@ -25,9 +27,26 @@ async function routerAutoloadEnabled(client, catalog, signal) {
25
27
  return false;
26
28
  }
27
29
  }
28
- function toPiModel(model, serverUrl, props) {
30
+ function contextWindowOf(model) {
29
31
  const reportedContextWindow = model.meta?.n_ctx ?? model.meta?.n_ctx_train;
30
- const contextWindow = reportedContextWindow && reportedContextWindow > 0 ? reportedContextWindow : 128000;
32
+ return reportedContextWindow && reportedContextWindow > 0 ? reportedContextWindow : 128000;
33
+ }
34
+ /** The same llama.cpp model used as a classifier: answers are read from next-token label probabilities. */
35
+ function toPiClassifierModel(model, serverUrl) {
36
+ return {
37
+ type: "classifier",
38
+ id: model.id,
39
+ name: model.id,
40
+ api: "llama-cpp-classify",
41
+ provider: LLAMA_PROVIDER_ID,
42
+ baseUrl: serverUrl,
43
+ input: ["text"],
44
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
45
+ contextWindow: contextWindowOf(model),
46
+ };
47
+ }
48
+ function toPiModel(model, serverUrl, props) {
49
+ const contextWindow = contextWindowOf(model);
31
50
  const reasoning = props?.chat_template?.includes("enable_thinking") === true;
32
51
  return {
33
52
  id: model.id,
@@ -56,10 +75,12 @@ function toPiModel(model, serverUrl, props) {
56
75
  }
57
76
  export function createLlamaProvider() {
58
77
  let models = [];
59
- // Keep catalog assignment inside generation-checked publication callbacks.
60
- const toCatalog = (catalog, serverUrl, routerAutoload = false) => catalog.filter((model) => modelIsSelectable(model, routerAutoload)).map((model) => toPiModel(model, serverUrl));
78
+ let classifiers = [];
79
+ const classifier = llamaCppClassifyApi();
61
80
  const setCatalog = (catalog, serverUrl, options = {}) => {
62
- models = toCatalog(catalog, serverUrl, options.routerAutoload === true);
81
+ const selectable = catalog.filter((model) => modelIsSelectable(model, options.routerAutoload === true));
82
+ models = selectable.map((model) => toPiModel(model, serverUrl));
83
+ classifiers = selectable.map((model) => toPiClassifierModel(model, serverUrl));
63
84
  };
64
85
  const provider = {
65
86
  id: LLAMA_PROVIDER_ID,
@@ -106,12 +127,16 @@ export function createLlamaProvider() {
106
127
  },
107
128
  },
108
129
  getModels: () => models,
130
+ getAllModels: () => [...models, ...classifiers],
109
131
  refreshModels: async (context) => {
110
132
  if (context.stored) {
111
- const restored = context.stored.models.filter((model) => model.provider === LLAMA_PROVIDER_ID && model.api === "openai-completions");
133
+ const stored = context.stored.models.filter((model) => model.provider === LLAMA_PROVIDER_ID);
134
+ const restored = stored.filter((model) => isModelType(model, "chat") && model.api === "openai-completions");
135
+ const restoredClassifiers = stored.filter((model) => isModelType(model, "classifier") && model.api === "llama-cpp-classify");
112
136
  if (!(await context.publish({
113
137
  update: () => {
114
138
  models = restored;
139
+ classifiers = restoredClassifiers;
115
140
  },
116
141
  }))) {
117
142
  return;
@@ -129,25 +154,27 @@ export function createLlamaProvider() {
129
154
  const routerAutoload = await routerAutoloadEnabled(client, catalog, context.signal);
130
155
  if (context.signal.aborted)
131
156
  return;
132
- const refreshed = await Promise.all(catalog
133
- .filter((model) => modelIsSelectable(model, routerAutoload))
134
- .map(async (model) => {
157
+ const selectable = catalog.filter((model) => modelIsSelectable(model, routerAutoload));
158
+ const refreshed = await Promise.all(selectable.map(async (model) => {
135
159
  // Query only loaded models: sleeping and autoload presets must not be woken by discovery.
136
160
  if (model.status.value !== "loaded")
137
161
  return toPiModel(model, serverUrl);
138
162
  return toPiModel(model, serverUrl, await client.props({ model: model.id, signal: context.signal }));
139
163
  }));
164
+ const refreshedClassifiers = selectable.map((model) => toPiClassifierModel(model, serverUrl));
140
165
  if (context.signal.aborted)
141
166
  return;
142
167
  await context.publish({
143
- persist: { models: refreshed, checkedAt: Date.now() },
168
+ persist: { models: [...refreshed, ...refreshedClassifiers], checkedAt: Date.now() },
144
169
  update: () => {
145
170
  models = refreshed;
171
+ classifiers = refreshedClassifiers;
146
172
  },
147
173
  });
148
174
  },
149
175
  stream: (model, context, options) => stream(model, context, options),
150
176
  streamSimple: (model, context, options) => streamSimple(model, context, options),
177
+ classify: (model, context, options) => classifier.classify(model, context, options),
151
178
  };
152
179
  return { provider, setCatalog };
153
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/extensions/llama/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tApiKeyCredential,\n\tAuthContext,\n\tAuthResult,\n\tModel,\n\tProvider,\n\tProviderStreamOptions,\n\tRefreshModelsContext,\n} from \"@bastani/pi-ai\";\nimport { stream, streamSimple } from \"@bastani/pi-ai/compat\";\nimport {\n\tLlamaClient,\n\ttype LlamaModelInfo,\n\ttype LlamaServerProps,\n\tllamaInferenceUrl,\n\tnormalizeLlamaServerUrl,\n} from \"./client.js\";\n\nexport const LLAMA_PROVIDER_ID = \"llama.cpp\";\nexport const DEFAULT_LLAMA_SERVER_URL = \"http://127.0.0.1:8080\";\nfunction credentialServerUrl(credential: ApiKeyCredential | undefined): string | undefined {\n\tconst value = credential?.env?.LLAMA_BASE_URL;\n\treturn typeof value === \"string\" && value.trim() ? normalizeLlamaServerUrl(value) : undefined;\n}\n\nasync function resolveServerUrl(\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<string | undefined> {\n\tconst configured = credentialServerUrl(credential) ?? (await ctx.env(\"LLAMA_BASE_URL\"))?.trim();\n\treturn configured ? normalizeLlamaServerUrl(configured) : undefined;\n}\n\nfunction modelIsSelectable(model: LlamaModelInfo, routerAutoload = false): boolean {\n\tif (model.status.value === \"loaded\" || model.status.value === \"sleeping\") return true;\n\treturn routerAutoload && model.status.value === \"unloaded\" && !model.status.failed && model.source === \"preset\";\n}\n\nasync function routerAutoloadEnabled(\n\tclient: LlamaClient,\n\tcatalog: readonly LlamaModelInfo[],\n\tsignal: AbortSignal,\n): Promise<boolean> {\n\tif (!catalog.some((model) => model.status.value === \"unloaded\" && model.source === \"preset\")) return false;\n\ttry {\n\t\treturn (await client.props({ signal })).models_autoload === true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction toPiModel(model: LlamaModelInfo, serverUrl: string, props?: LlamaServerProps): Model<\"openai-completions\"> {\n\tconst reportedContextWindow = model.meta?.n_ctx ?? model.meta?.n_ctx_train;\n\tconst contextWindow = reportedContextWindow && reportedContextWindow > 0 ? reportedContextWindow : 128000;\n\tconst reasoning = props?.chat_template?.includes(\"enable_thinking\") === true;\n\treturn {\n\t\tid: model.id,\n\t\tname: model.id,\n\t\tapi: \"openai-completions\",\n\t\tprovider: LLAMA_PROVIDER_ID,\n\t\tbaseUrl: llamaInferenceUrl(serverUrl),\n\t\treasoning,\n\t\t...(reasoning && {\n\t\t\tthinkingLevelMap: { off: \"off\", minimal: null, low: null, medium: \"medium\", high: null, xhigh: null },\n\t\t}),\n\t\tinput: model.architecture?.input_modalities?.includes(\"image\") ? [\"text\", \"image\"] : [\"text\"],\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t\tcontextWindow,\n\t\tmaxTokens: contextWindow,\n\t\tcompat: {\n\t\t\tsupportsStore: false,\n\t\t\tsupportsDeveloperRole: false,\n\t\t\tsupportsReasoningEffort: false,\n\t\t\tsupportsUsageInStreaming: true,\n\t\t\tsupportsStrictMode: false,\n\t\t\tmaxTokensField: \"max_tokens\",\n\t\t\t...(reasoning && { thinkingFormat: \"qwen-chat-template\" }),\n\t\t},\n\t};\n}\n\nexport interface LlamaProviderController {\n\tprovider: Provider<\"openai-completions\">;\n\tsetCatalog(models: readonly LlamaModelInfo[], serverUrl: string, options?: { routerAutoload?: boolean }): void;\n}\n\nexport function createLlamaProvider(): LlamaProviderController {\n\tlet models: readonly Model<\"openai-completions\">[] = [];\n\n\t// Keep catalog assignment inside generation-checked publication callbacks.\n\tconst toCatalog = (\n\t\tcatalog: readonly LlamaModelInfo[],\n\t\tserverUrl: string,\n\t\trouterAutoload = false,\n\t): readonly Model<\"openai-completions\">[] =>\n\t\tcatalog.filter((model) => modelIsSelectable(model, routerAutoload)).map((model) => toPiModel(model, serverUrl));\n\n\tconst setCatalog = (\n\t\tcatalog: readonly LlamaModelInfo[],\n\t\tserverUrl: string,\n\t\toptions: { routerAutoload?: boolean } = {},\n\t): void => {\n\t\tmodels = toCatalog(catalog, serverUrl, options.routerAutoload === true);\n\t};\n\n\tconst provider: Provider<\"openai-completions\"> = {\n\t\tid: LLAMA_PROVIDER_ID,\n\t\tname: \"llama.cpp\",\n\t\tbaseUrl: llamaInferenceUrl(DEFAULT_LLAMA_SERVER_URL),\n\t\tauth: {\n\t\t\tapiKey: {\n\t\t\t\tname: \"llama.cpp server\",\n\t\t\t\tlogin: async (interaction): Promise<ApiKeyCredential> => {\n\t\t\t\t\tconst enteredUrl = await interaction.prompt({\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\tmessage: \"llama.cpp server URL\",\n\t\t\t\t\t\tplaceholder: process.env.LLAMA_BASE_URL ?? DEFAULT_LLAMA_SERVER_URL,\n\t\t\t\t\t});\n\t\t\t\t\tconst serverUrl = normalizeLlamaServerUrl(\n\t\t\t\t\t\tenteredUrl.trim() || process.env.LLAMA_BASE_URL || DEFAULT_LLAMA_SERVER_URL,\n\t\t\t\t\t);\n\t\t\t\t\tconst apiKey = (\n\t\t\t\t\t\tawait interaction.prompt({\n\t\t\t\t\t\t\ttype: \"secret\",\n\t\t\t\t\t\t\tmessage: \"API key (optional)\",\n\t\t\t\t\t\t})\n\t\t\t\t\t).trim();\n\t\t\t\t\tawait new LlamaClient(serverUrl, apiKey || undefined).list({ signal: interaction.signal });\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"api_key\",\n\t\t\t\t\t\tkey: apiKey || undefined,\n\t\t\t\t\t\tenv: { LLAMA_BASE_URL: serverUrl },\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcheck: async ({ ctx, credential }) => {\n\t\t\t\t\tconst serverUrl = await resolveServerUrl(ctx, credential);\n\t\t\t\t\treturn serverUrl\n\t\t\t\t\t\t? { type: \"api_key\", source: credential ? \"stored credential\" : \"LLAMA_BASE_URL\" }\n\t\t\t\t\t\t: undefined;\n\t\t\t\t},\n\t\t\t\tresolve: async ({ ctx, credential }): Promise<AuthResult | undefined> => {\n\t\t\t\t\tconst serverUrl = await resolveServerUrl(ctx, credential);\n\t\t\t\t\tif (!serverUrl) return undefined;\n\t\t\t\t\tconst apiKey = credential?.key ?? (await ctx.env(\"LLAMA_API_KEY\")) ?? \"local\";\n\t\t\t\t\treturn {\n\t\t\t\t\t\tauth: { apiKey, baseUrl: llamaInferenceUrl(serverUrl) },\n\t\t\t\t\t\tenv: { ...credential?.env, LLAMA_BASE_URL: serverUrl },\n\t\t\t\t\t\tsource: credential ? \"stored credential\" : \"LLAMA_BASE_URL\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tgetModels: () => models,\n\t\trefreshModels: async (context: RefreshModelsContext): Promise<void> => {\n\t\t\tif (context.stored) {\n\t\t\t\tconst restored = context.stored.models.filter(\n\t\t\t\t\t(model): model is Model<\"openai-completions\"> =>\n\t\t\t\t\t\tmodel.provider === LLAMA_PROVIDER_ID && model.api === \"openai-completions\",\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\t!(await context.publish({\n\t\t\t\t\t\tupdate: () => {\n\t\t\t\t\t\t\tmodels = restored;\n\t\t\t\t\t\t},\n\t\t\t\t\t}))\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!context.allowNetwork || context.signal.aborted || context.credential?.type !== \"api_key\") return;\n\t\t\tconst serverUrl = credentialServerUrl(context.credential);\n\t\t\tif (!serverUrl) return;\n\t\t\tconst client = new LlamaClient(serverUrl, context.credential.key);\n\t\t\tconst catalog = await client.list({ signal: context.signal });\n\t\t\tif (context.signal.aborted) return;\n\t\t\tconst routerAutoload = await routerAutoloadEnabled(client, catalog, context.signal);\n\t\t\tif (context.signal.aborted) return;\n\t\t\tconst refreshed = await Promise.all(\n\t\t\t\tcatalog\n\t\t\t\t\t.filter((model) => modelIsSelectable(model, routerAutoload))\n\t\t\t\t\t.map(async (model) => {\n\t\t\t\t\t\t// Query only loaded models: sleeping and autoload presets must not be woken by discovery.\n\t\t\t\t\t\tif (model.status.value !== \"loaded\") return toPiModel(model, serverUrl);\n\t\t\t\t\t\treturn toPiModel(model, serverUrl, await client.props({ model: model.id, signal: context.signal }));\n\t\t\t\t\t}),\n\t\t\t);\n\t\t\tif (context.signal.aborted) return;\n\t\t\tawait context.publish({\n\t\t\t\tpersist: { models: refreshed, checkedAt: Date.now() },\n\t\t\t\tupdate: () => {\n\t\t\t\t\tmodels = refreshed;\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tstream: (model, context, options) => stream(model, context, options as ProviderStreamOptions | undefined),\n\t\tstreamSimple: (model, context, options) => streamSimple(model, context, options),\n\t};\n\n\treturn { provider, setCatalog };\n}\n"]}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/extensions/llama/provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype ApiKeyCredential,\n\ttype AuthContext,\n\ttype AuthResult,\n\ttype ClassifierModel,\n\tisModelType,\n\ttype Model,\n\ttype Provider,\n\ttype ProviderStreamOptions,\n\ttype RefreshModelsContext,\n} from \"@bastani/pi-ai\";\nimport { llamaCppClassifyApi } from \"@bastani/pi-ai/api/llama-cpp-classify.lazy\";\nimport { stream, streamSimple } from \"@bastani/pi-ai/compat\";\nimport {\n\tLlamaClient,\n\ttype LlamaModelInfo,\n\ttype LlamaServerProps,\n\tllamaInferenceUrl,\n\tnormalizeLlamaServerUrl,\n} from \"./client.js\";\n\nexport const LLAMA_PROVIDER_ID = \"llama.cpp\";\nexport const DEFAULT_LLAMA_SERVER_URL = \"http://127.0.0.1:8080\";\nfunction credentialServerUrl(credential: ApiKeyCredential | undefined): string | undefined {\n\tconst value = credential?.env?.LLAMA_BASE_URL;\n\treturn typeof value === \"string\" && value.trim() ? normalizeLlamaServerUrl(value) : undefined;\n}\n\nasync function resolveServerUrl(\n\tctx: AuthContext,\n\tcredential: ApiKeyCredential | undefined,\n): Promise<string | undefined> {\n\tconst configured = credentialServerUrl(credential) ?? (await ctx.env(\"LLAMA_BASE_URL\"))?.trim();\n\treturn configured ? normalizeLlamaServerUrl(configured) : undefined;\n}\n\nfunction modelIsSelectable(model: LlamaModelInfo, routerAutoload = false): boolean {\n\tif (model.status.value === \"loaded\" || model.status.value === \"sleeping\") return true;\n\treturn routerAutoload && model.status.value === \"unloaded\" && !model.status.failed && model.source === \"preset\";\n}\n\nasync function routerAutoloadEnabled(\n\tclient: LlamaClient,\n\tcatalog: readonly LlamaModelInfo[],\n\tsignal: AbortSignal,\n): Promise<boolean> {\n\tif (!catalog.some((model) => model.status.value === \"unloaded\" && model.source === \"preset\")) return false;\n\ttry {\n\t\treturn (await client.props({ signal })).models_autoload === true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction contextWindowOf(model: LlamaModelInfo): number {\n\tconst reportedContextWindow = model.meta?.n_ctx ?? model.meta?.n_ctx_train;\n\treturn reportedContextWindow && reportedContextWindow > 0 ? reportedContextWindow : 128000;\n}\n\n/** The same llama.cpp model used as a classifier: answers are read from next-token label probabilities. */\nfunction toPiClassifierModel(model: LlamaModelInfo, serverUrl: string): ClassifierModel<\"llama-cpp-classify\"> {\n\treturn {\n\t\ttype: \"classifier\",\n\t\tid: model.id,\n\t\tname: model.id,\n\t\tapi: \"llama-cpp-classify\",\n\t\tprovider: LLAMA_PROVIDER_ID,\n\t\tbaseUrl: serverUrl,\n\t\tinput: [\"text\"],\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t\tcontextWindow: contextWindowOf(model),\n\t};\n}\n\nfunction toPiModel(model: LlamaModelInfo, serverUrl: string, props?: LlamaServerProps): Model<\"openai-completions\"> {\n\tconst contextWindow = contextWindowOf(model);\n\tconst reasoning = props?.chat_template?.includes(\"enable_thinking\") === true;\n\treturn {\n\t\tid: model.id,\n\t\tname: model.id,\n\t\tapi: \"openai-completions\",\n\t\tprovider: LLAMA_PROVIDER_ID,\n\t\tbaseUrl: llamaInferenceUrl(serverUrl),\n\t\treasoning,\n\t\t...(reasoning && {\n\t\t\tthinkingLevelMap: { off: \"off\", minimal: null, low: null, medium: \"medium\", high: null, xhigh: null },\n\t\t}),\n\t\tinput: model.architecture?.input_modalities?.includes(\"image\") ? [\"text\", \"image\"] : [\"text\"],\n\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },\n\t\tcontextWindow,\n\t\tmaxTokens: contextWindow,\n\t\tcompat: {\n\t\t\tsupportsStore: false,\n\t\t\tsupportsDeveloperRole: false,\n\t\t\tsupportsReasoningEffort: false,\n\t\t\tsupportsUsageInStreaming: true,\n\t\t\tsupportsStrictMode: false,\n\t\t\tmaxTokensField: \"max_tokens\",\n\t\t\t...(reasoning && { thinkingFormat: \"qwen-chat-template\" }),\n\t\t},\n\t};\n}\n\nexport interface LlamaProviderController {\n\tprovider: Provider<\"openai-completions\">;\n\tsetCatalog(models: readonly LlamaModelInfo[], serverUrl: string, options?: { routerAutoload?: boolean }): void;\n}\n\nexport function createLlamaProvider(): LlamaProviderController {\n\tlet models: readonly Model<\"openai-completions\">[] = [];\n\tlet classifiers: readonly ClassifierModel<\"llama-cpp-classify\">[] = [];\n\tconst classifier = llamaCppClassifyApi();\n\n\tconst setCatalog = (\n\t\tcatalog: readonly LlamaModelInfo[],\n\t\tserverUrl: string,\n\t\toptions: { routerAutoload?: boolean } = {},\n\t): void => {\n\t\tconst selectable = catalog.filter((model) => modelIsSelectable(model, options.routerAutoload === true));\n\t\tmodels = selectable.map((model) => toPiModel(model, serverUrl));\n\t\tclassifiers = selectable.map((model) => toPiClassifierModel(model, serverUrl));\n\t};\n\n\tconst provider: Provider<\"openai-completions\"> = {\n\t\tid: LLAMA_PROVIDER_ID,\n\t\tname: \"llama.cpp\",\n\t\tbaseUrl: llamaInferenceUrl(DEFAULT_LLAMA_SERVER_URL),\n\t\tauth: {\n\t\t\tapiKey: {\n\t\t\t\tname: \"llama.cpp server\",\n\t\t\t\tlogin: async (interaction): Promise<ApiKeyCredential> => {\n\t\t\t\t\tconst enteredUrl = await interaction.prompt({\n\t\t\t\t\t\ttype: \"text\",\n\t\t\t\t\t\tmessage: \"llama.cpp server URL\",\n\t\t\t\t\t\tplaceholder: process.env.LLAMA_BASE_URL ?? DEFAULT_LLAMA_SERVER_URL,\n\t\t\t\t\t});\n\t\t\t\t\tconst serverUrl = normalizeLlamaServerUrl(\n\t\t\t\t\t\tenteredUrl.trim() || process.env.LLAMA_BASE_URL || DEFAULT_LLAMA_SERVER_URL,\n\t\t\t\t\t);\n\t\t\t\t\tconst apiKey = (\n\t\t\t\t\t\tawait interaction.prompt({\n\t\t\t\t\t\t\ttype: \"secret\",\n\t\t\t\t\t\t\tmessage: \"API key (optional)\",\n\t\t\t\t\t\t})\n\t\t\t\t\t).trim();\n\t\t\t\t\tawait new LlamaClient(serverUrl, apiKey || undefined).list({ signal: interaction.signal });\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"api_key\",\n\t\t\t\t\t\tkey: apiKey || undefined,\n\t\t\t\t\t\tenv: { LLAMA_BASE_URL: serverUrl },\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\tcheck: async ({ ctx, credential }) => {\n\t\t\t\t\tconst serverUrl = await resolveServerUrl(ctx, credential);\n\t\t\t\t\treturn serverUrl\n\t\t\t\t\t\t? { type: \"api_key\", source: credential ? \"stored credential\" : \"LLAMA_BASE_URL\" }\n\t\t\t\t\t\t: undefined;\n\t\t\t\t},\n\t\t\t\tresolve: async ({ ctx, credential }): Promise<AuthResult | undefined> => {\n\t\t\t\t\tconst serverUrl = await resolveServerUrl(ctx, credential);\n\t\t\t\t\tif (!serverUrl) return undefined;\n\t\t\t\t\tconst apiKey = credential?.key ?? (await ctx.env(\"LLAMA_API_KEY\")) ?? \"local\";\n\t\t\t\t\treturn {\n\t\t\t\t\t\tauth: { apiKey, baseUrl: llamaInferenceUrl(serverUrl) },\n\t\t\t\t\t\tenv: { ...credential?.env, LLAMA_BASE_URL: serverUrl },\n\t\t\t\t\t\tsource: credential ? \"stored credential\" : \"LLAMA_BASE_URL\",\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tgetModels: () => models,\n\t\tgetAllModels: () => [...models, ...classifiers],\n\t\trefreshModels: async (context: RefreshModelsContext): Promise<void> => {\n\t\t\tif (context.stored) {\n\t\t\t\tconst stored = context.stored.models.filter((model) => model.provider === LLAMA_PROVIDER_ID);\n\t\t\t\tconst restored = stored.filter(\n\t\t\t\t\t(model): model is Model<\"openai-completions\"> =>\n\t\t\t\t\t\tisModelType(model, \"chat\") && model.api === \"openai-completions\",\n\t\t\t\t);\n\t\t\t\tconst restoredClassifiers = stored.filter(\n\t\t\t\t\t(model): model is ClassifierModel<\"llama-cpp-classify\"> =>\n\t\t\t\t\t\tisModelType(model, \"classifier\") && model.api === \"llama-cpp-classify\",\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\t!(await context.publish({\n\t\t\t\t\t\tupdate: () => {\n\t\t\t\t\t\t\tmodels = restored;\n\t\t\t\t\t\t\tclassifiers = restoredClassifiers;\n\t\t\t\t\t\t},\n\t\t\t\t\t}))\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!context.allowNetwork || context.signal.aborted || context.credential?.type !== \"api_key\") return;\n\t\t\tconst serverUrl = credentialServerUrl(context.credential);\n\t\t\tif (!serverUrl) return;\n\t\t\tconst client = new LlamaClient(serverUrl, context.credential.key);\n\t\t\tconst catalog = await client.list({ signal: context.signal });\n\t\t\tif (context.signal.aborted) return;\n\t\t\tconst routerAutoload = await routerAutoloadEnabled(client, catalog, context.signal);\n\t\t\tif (context.signal.aborted) return;\n\t\t\tconst selectable = catalog.filter((model) => modelIsSelectable(model, routerAutoload));\n\t\t\tconst refreshed = await Promise.all(\n\t\t\t\tselectable.map(async (model) => {\n\t\t\t\t\t// Query only loaded models: sleeping and autoload presets must not be woken by discovery.\n\t\t\t\t\tif (model.status.value !== \"loaded\") return toPiModel(model, serverUrl);\n\t\t\t\t\treturn toPiModel(model, serverUrl, await client.props({ model: model.id, signal: context.signal }));\n\t\t\t\t}),\n\t\t\t);\n\t\t\tconst refreshedClassifiers = selectable.map((model) => toPiClassifierModel(model, serverUrl));\n\t\t\tif (context.signal.aborted) return;\n\t\t\tawait context.publish({\n\t\t\t\tpersist: { models: [...refreshed, ...refreshedClassifiers], checkedAt: Date.now() },\n\t\t\t\tupdate: () => {\n\t\t\t\t\tmodels = refreshed;\n\t\t\t\t\tclassifiers = refreshedClassifiers;\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\tstream: (model, context, options) => stream(model, context, options as ProviderStreamOptions | undefined),\n\t\tstreamSimple: (model, context, options) => streamSimple(model, context, options),\n\t\tclassify: (model, context, options) => classifier.classify(model, context, options),\n\t};\n\n\treturn { provider, setCatalog };\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -31,6 +31,7 @@ export { parseFlattenedKeyPath, reconstructFlattenedKeys, unflattenArgumentsWith
31
31
  export type { ReadonlyFooterDataProvider } from "./core/footer-data-provider.ts";
32
32
  export { RUNTIME_INTERCOM_GROUP_ENV, readRuntimeIntercomGroup, runtimeIntercomGroupEnvKey, } from "./core/intercom-runtime-group.ts";
33
33
  export { keybindingIdentity } from "./core/keybinding-identity.js";
34
+ export type { McpServerConfig, McpServerContribution, McpServerOAuthConfig } from "./core/mcp-servers.ts";
34
35
  export { convertToLlm } from "./core/messages.ts";
35
36
  export type { ModelFallbackFailureKind, ModelFallbackFailureSignal, ModelFallbackFailureSource, } from "./core/model-fallback-failures.ts";
36
37
  export { errorMessage, isRetryableModelFailure, isRetryableSameModelFailure, modelFailureMessage, normalizeModelFailureSignal, } from "./core/model-fallback-failures.ts";
@@ -39,7 +40,7 @@ export { eligiblePair, type ModelConstraints, ModelConstraintsSchema, type Model
39
40
  export { isModelRoutingDebugEnabled, MODEL_ROUTING_DEBUG_ENV, reportModelRoutingDebug, } from "./core/model-routing-debug.js";
40
41
  export { DIFFICULTY_LEVELS, type Difficulty, MISTAKE_COST_LEVELS, type MistakeCost, mergeTaskNeeds, parseTaskNeeds, type TaskNeeds, TaskNeedsSchema, WORK_KINDS, type WorkKind, } from "./core/model-routing-needs.js";
41
42
  export { type CreateModelRuntimeOptions, CredentialSynchronizationError, type CredentialSynchronizationOperation, ModelRuntime, type ModelRuntimeAuthOverrides, } from "./core/model-runtime.js";
42
- export type { PackageManager, PathMetadata, ProgressCallback, ProgressEvent, ResolvedPaths, ResolvedResource, } from "./core/package-manager.ts";
43
+ export type { PackageManager, PathMetadata, ProgressCallback, ProgressEvent, ResolvedMcpServer, ResolvedPaths, ResolvedResource, } from "./core/package-manager.ts";
43
44
  export { DefaultPackageManager } from "./core/package-manager.ts";
44
45
  export type { DefaultResourceLoaderInheritanceSnapshot, ResourceCollision, ResourceDiagnostic, ResourceLoader, SkillCandidate, SkillCatalog, SkillCatalogCommand, SkillResolution, } from "./core/resource-loader.ts";
45
46
  export { buildSkillCatalog, DefaultResourceLoader, getSkillCatalog, loadProjectContextFiles, } from "./core/resource-loader.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EACN,WAAW,EACX,KAAK,yBAAyB,EAC9B,KAAK,+BAA+B,EACpC,KAAK,kBAAkB,GACvB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,GACd,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAExF,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACtH,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC3G,OAAO,EAAE,OAAO,EAAE,MAAM,4CAA4C,CAAC;AACrE,OAAO,EACN,0BAA0B,EAC1B,8BAA8B,GAC9B,MAAM,oDAAoD,CAAC;AAG5D,OAAO,EAAE,KAAK,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EACN,QAAQ,EACR,SAAS,EACT,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,8BAA8B,EAC9B,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,OAAO,EACP,iCAAiC,GACjC,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,YAAY,GACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EACN,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,0BAA0B,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,UAAU,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACN,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EACzB,WAAW,EACX,sBAAsB,GACtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,6BAA6B,EAClC,wCAAwC,EACxC,yBAAyB,EACzB,KAAK,0BAA0B,GAC/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACN,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,2BAA2B,EAC3B,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,4BAA4B,EACjC,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,kCAAkC,EAClC,aAAa,EACb,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,GAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EACN,yBAAyB,EACzB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,mBAAmB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EACN,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,6BAA6B,EAC7B,6BAA6B,EAC7B,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,GAC5B,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EACN,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,GAC1B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EACX,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,GAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,YAAY,EACZ,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,EACnB,2BAA2B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EACN,YAAY,EACZ,KAAK,gBAAgB,EACrB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,aAAa,GACb,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACN,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,iBAAiB,EACjB,KAAK,UAAU,EACf,mBAAmB,EACnB,KAAK,WAAW,EAChB,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,eAAe,EACf,UAAU,EACV,KAAK,QAAQ,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACN,KAAK,yBAAyB,EAC9B,8BAA8B,EAC9B,KAAK,kCAAkC,EACvC,YAAY,EACZ,KAAK,yBAAyB,GAC9B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACX,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,gBAAgB,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,YAAY,EACX,wCAAwC,EACxC,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEzG,OAAO,EACN,mBAAmB,EACnB,KAAK,6BAA6B,EAClC,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,qCAAqC,EAC1C,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EAEtC,kBAAkB,EAClB,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,cAAc,EAEd,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,6BAA6B,EAC7B,0BAA0B,EAC1B,eAAe,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,uBAAuB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,gCAAgC,EAChC,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,6BAA6B,EAC7B,KAAK,wBAAwB,GAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACN,6BAA6B,EAC7B,8BAA8B,GAC9B,MAAM,0CAA0C,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACN,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,eAAe,EACf,KAAK,4BAA4B,GACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACN,qBAAqB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,UAAU,EACV,iBAAiB,EACjB,KAAK,KAAK,EACV,KAAK,gBAAgB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EACN,wBAAwB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,kCAAkC,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,KAAK,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAI1G,OAAO,EACN,uBAAuB,EACvB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,gCAAgC,EAChC,mCAAmC,EACnC,wBAAwB,EACxB,wBAAwB,EACxB,wBAAwB,EACxB,cAAc,EACd,wBAAwB,EACxB,yBAAyB,EACzB,+BAA+B,EAC/B,sBAAsB,EACtB,8BAA8B,EAC9B,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,gCAAgC,EAChC,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,gCAAgC,EAChC,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,8BAA8B,EAC9B,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,gCAAgC,EAChC,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,kCAAkC,EAClC,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,iCAAiC,GACjC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,qBAAqB,EACrB,iCAAiC,EACjC,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,wCAAwC,GACxC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,KAAK,WAAW,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACN,eAAe,EACf,KAAK,sBAAsB,EAC3B,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,YAAY,EACZ,UAAU,GACV,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACN,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,6BAA6B,EAC7B,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAE7B,eAAe,EACf,KAAK,0BAA0B,EAC/B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,YAAY,EACZ,KAAK,mBAAmB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,4BAA4B,EAC5B,aAAa,EACb,wBAAwB,EACxB,uBAAuB,EACvB,0BAA0B,EAC1B,eAAe,EACf,OAAO,EACP,cAAc,EACd,OAAO,EACP,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,UAAU,EACV,sBAAsB,EACtB,UAAU,EACV,iCAAiC,EACjC,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,4BAA4B,EAC5B,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,KAAK,6BAA6B,GAClC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACN,mBAAmB,EACnB,sCAAsC,EACtC,uBAAuB,GACvB,MAAM,mDAAmD,CAAC;AAE3D,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,SAAS,EACT,KAAK,EACL,KAAK,UAAU,GACf,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EACN,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,qCAAqC,EACrC,uCAAuC,EACvC,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,qBAAqB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,KAAK,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC3G,OAAO,EAAE,oCAAoC,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export type { ExtensionBindings } from \"./core/agent-session-types.js\";\nexport {\n\tCacheWarmer,\n\ttype CacheWarmingDecisionEvent,\n\ttype CacheWarmingDecisionEventResult,\n\ttype CacheWarmingStatus,\n} from \"./core/cache-warmer.ts\";\nexport type {\n\tHostDiagnostic,\n\tHostInput,\n\tHostInputOptions,\n\tQuestionAnswer,\n\tQuestionnaireError,\n\tQuestionnaireResult,\n\tQuestionParams,\n} from \"./core/extensions/host-input.js\";\nexport type { UsageEntry } from \"./core/session-manager.ts\";\nexport { CACHE_WARMING_MODES, type CacheWarmingMode } from \"./core/settings-manager.ts\";\n// Internal trusted-host task integration (not model authority).\nexport { AgentTaskHost, type AgentTaskHostBinding, type AgentTaskRunnerFactory } from \"./core/tasks/agent-adapter.js\";\nexport type { AgentIntent, OperationId, TaskId, TaskResult, WaitPolicy } from \"./core/tasks/contracts.js\";\nexport { type AdmittedAgentTask, collectAgentTasks } from \"./core/tasks/execution-scope.js\";\nexport { bindOwnerTaskStore, getOwnerTaskStore, OwnerTaskStore } from \"./core/tasks/owner-store.js\";\nexport { renderTaskFooter, TaskList, taskListSections } from \"./modes/interactive/components/task-list.js\";\nexport { TaskRow } from \"./modes/interactive/components/task-row.js\";\nexport {\n\tapplyAssistantMessageDelta,\n\tbeginStreamingAssistantMessage,\n} from \"./modes/interactive/streaming-assistant-message.ts\";\n// Core session management\n\nexport { type Args, parseArgs } from \"./cli/args.ts\";\n// Config paths\nexport {\n\tAPP_NAME,\n\tAPP_TITLE,\n\tCONFIG_DIR_NAME,\n\tCONFIG_DIR_NAMES,\n\tgetAgentConfigPaths,\n\tgetAgentDir,\n\tgetAgentDirs,\n\tgetBundledInteractiveAssetPath,\n\tgetChangelogPath,\n\tgetDocsPath,\n\tgetEnvNames,\n\tgetEnvValue,\n\tgetExamplesPath,\n\tgetExportTemplateDir,\n\tgetInteractiveAssetsDir,\n\tgetLegacyAgentDir,\n\tgetPackageDir,\n\tgetPackageJsonPath,\n\tgetProjectConfigDirs,\n\tgetProjectConfigPaths,\n\tgetReadmePath,\n\tgetThemesDir,\n\tgetUserConfigDirs,\n\tgetUserConfigPaths,\n\thasEnvValue,\n\tisBunBinary,\n\tLEGACY_CONFIG_DIR_NAME,\n\tLEGACY_ENV_PREFIX,\n\tPACKAGE_NAME,\n\tsetEnvValue,\n\tVERSION,\n\tWORKFLOW_STAGE_SUBAGENT_GUARD_ENV,\n} from \"./config.js\";\nexport {\n\tAgentSession,\n\ttype AgentSessionConfig,\n\ttype AgentSessionEvent,\n\ttype AgentSessionEventListener,\n\ttype CompactionReason,\n\ttype ModelCycleResult,\n\ttype ParsedSkillBlock,\n\ttype PromptOptions,\n\tparseSkillBlock,\n\ttype SessionStats,\n} from \"./core/agent-session.js\";\n// Auth and model runtime\nexport { AuthStorage, readStoredCredential } from \"./core/auth-storage.ts\";\nexport {\n\ttype AuthStorageBackend,\n\tFileAuthStorageBackend,\n\tInMemoryAuthStorageBackend,\n} from \"./core/auth-storage-backends.ts\";\nexport { type BashResult, executeBashWithOperations } from \"./core/bash-executor.ts\";\nexport { getBuiltinPackagePaths } from \"./core/builtin-packages.ts\";\nexport {\n\ttype CallbackActivityDescriptor,\n\ttype CallbackActivityKind,\n\trunCallback,\n\trunSynchronousCallback,\n} from \"./core/callback-activity.ts\";\n// Cloudflare AI Gateway over the Workers AI binding (no API token; see docs/providers.md)\nexport {\n\ttype AiGatewayBinding,\n\ttype AiGatewayBindingGateway,\n\ttype AiGatewayUniversalRequestLike,\n\tCLOUDFLARE_GATEWAY_BINDING_AUTH_SENTINEL,\n\tcreateGatewayBindingFetch,\n\ttype GatewayBindingFetchOptions,\n} from \"./core/cloudflare-gateway-binding.ts\";\n// Compaction\nexport {\n\ttype BranchPreparation,\n\ttype BranchSummaryResult,\n\ttype CollectEntriesResult,\n\ttype CompactedTranscript,\n\ttype CompactionPlannerModel,\n\ttype CompactionPlanOptions,\n\ttype CompactionRung,\n\ttype CompactionRungResult,\n\ttype CompactionRunRequest,\n\ttype CompactionUrgency,\n\tcalculateContextTokens,\n\tcollectEntriesForBranchSummary,\n\tDEFAULT_COMPACTION_SETTINGS,\n\testimateTokens,\n\ttype FileOperations,\n\ttype GenerateBranchSummaryOptions,\n\tgenerateBranchSummary,\n\tgetLastAssistantUsage,\n\ttype LineRange,\n\ttype PlannerAuth,\n\ttype PlannerBudget,\n\ttype PlannerLimitClass,\n\ttype PlannerOutcome,\n\tprepareBranchEntries,\n\tprepareCompactionBoundary,\n\trunVerbatimCompaction,\n\tserializeConversation,\n\tserializeConversationForCompaction,\n\tshouldCompact,\n\tstartNewContextWindow,\n\ttype VerbatimCompactionDetails,\n\ttype VerbatimCompactionParameters,\n\ttype VerbatimCompactionPreparation,\n\ttype VerbatimCompactionResult,\n} from \"./core/compaction/index.ts\";\nexport { createEventBus, type EventBus, type EventBusController } from \"./core/event-bus.js\";\nexport {\n\tAutoRoutingInferenceError,\n\ttype ModelRoute,\n\ttype ModelRoutingContext,\n\trouteExecutionModel,\n} from \"./core/execution-model-router.js\";\nexport { areExperimentalFeaturesEnabled } from \"./core/experimental.ts\";\nexport { sessionScopedExtensionState } from \"./core/extension-session-state.ts\";\nexport {\n\tgetModelFastRoute,\n\tresolveUpstreamModelId,\n\tusesChatGptCodexTransport,\n\tusesFirstPartyCodexRouting,\n\twithCodexFastRouteHeaders,\n\twithFastRouteStreamOptions,\n} from \"./core/fast-model-routing.ts\";\nexport {\n\tCODEX_FAST_ROUTE_HEADER,\n\tCODEX_FAST_ROUTE_ORIGINATOR,\n} from \"./core/fast-model-routing-transport.ts\";\nexport {\n\tANTHROPIC_FAST_MODE_MODEL_IDS,\n\tcopilotAdvertisedFastModelIds,\n\tderiveFastModelVariants,\n\tFAST_MODEL_ID_SUFFIX,\n\tFAST_MODEL_SERVICE_TIER,\n\tFAST_MODEL_SPEED,\n\ttype FastModelVariantDerivation,\n\ttype FastModelVariantDiagnostic,\n\ttype FastModelVariantsOptions,\n\tfastModelId,\n\tisNativeFastRouteApi,\n\tusesAnthropicFastMode,\n\tusesOpenAIFastServiceTier,\n\tusesXaiFastServiceTier,\n\twithFastModelVariants,\n} from \"./core/fast-model-variants.ts\";\nexport {\n\tparseFlattenedKeyPath,\n\treconstructFlattenedKeys,\n\tunflattenArgumentsWithSchema,\n} from \"./core/flattened-tool-arguments.ts\";\n// Footer data provider (git branch + extension statuses - data not otherwise available to extensions)\nexport type { ReadonlyFooterDataProvider } from \"./core/footer-data-provider.ts\";\nexport {\n\tRUNTIME_INTERCOM_GROUP_ENV,\n\treadRuntimeIntercomGroup,\n\truntimeIntercomGroupEnvKey,\n} from \"./core/intercom-runtime-group.ts\";\nexport { keybindingIdentity } from \"./core/keybinding-identity.js\";\nexport { convertToLlm } from \"./core/messages.ts\";\nexport type {\n\tModelFallbackFailureKind,\n\tModelFallbackFailureSignal,\n\tModelFallbackFailureSource,\n} from \"./core/model-fallback-failures.ts\";\nexport {\n\terrorMessage,\n\tisRetryableModelFailure,\n\tisRetryableSameModelFailure,\n\tmodelFailureMessage,\n\tnormalizeModelFailureSignal,\n} from \"./core/model-fallback-failures.ts\";\nexport { ModelRegistry } from \"./core/model-registry.ts\";\nexport {\n\teligiblePair,\n\ttype ModelConstraints,\n\tModelConstraintsSchema,\n\ttype ModelRouterOutput,\n\tparseModelConstraints,\n\tsetsProviders,\n} from \"./core/model-routing-constraints.js\";\nexport {\n\tisModelRoutingDebugEnabled,\n\tMODEL_ROUTING_DEBUG_ENV,\n\treportModelRoutingDebug,\n} from \"./core/model-routing-debug.js\";\nexport {\n\tDIFFICULTY_LEVELS,\n\ttype Difficulty,\n\tMISTAKE_COST_LEVELS,\n\ttype MistakeCost,\n\tmergeTaskNeeds,\n\tparseTaskNeeds,\n\ttype TaskNeeds,\n\tTaskNeedsSchema,\n\tWORK_KINDS,\n\ttype WorkKind,\n} from \"./core/model-routing-needs.js\";\nexport {\n\ttype CreateModelRuntimeOptions,\n\tCredentialSynchronizationError,\n\ttype CredentialSynchronizationOperation,\n\tModelRuntime,\n\ttype ModelRuntimeAuthOverrides,\n} from \"./core/model-runtime.js\";\nexport type {\n\tPackageManager,\n\tPathMetadata,\n\tProgressCallback,\n\tProgressEvent,\n\tResolvedPaths,\n\tResolvedResource,\n} from \"./core/package-manager.ts\";\nexport { DefaultPackageManager } from \"./core/package-manager.ts\";\nexport type {\n\tDefaultResourceLoaderInheritanceSnapshot,\n\tResourceCollision,\n\tResourceDiagnostic,\n\tResourceLoader,\n\tSkillCandidate,\n\tSkillCatalog,\n\tSkillCatalogCommand,\n\tSkillResolution,\n} from \"./core/resource-loader.ts\";\nexport {\n\tbuildSkillCatalog,\n\tDefaultResourceLoader,\n\tgetSkillCatalog,\n\tloadProjectContextFiles,\n} from \"./core/resource-loader.ts\";\nexport { nextRetryDecision, type RetryDecision, type RetryPolicySettings } from \"./core/retry-policy.ts\";\n// SDK for programmatic usage\nexport {\n\tAgentSessionRuntime,\n\ttype AgentSessionRuntimeDiagnostic,\n\ttype AgentSessionServices,\n\ttype AtomicBuiltin,\n\ttype CreateAgentSessionFromServicesOptions,\n\ttype CreateAgentSessionOptions,\n\ttype CreateAgentSessionResult,\n\ttype CreateAgentSessionRuntimeFactory,\n\ttype CreateAgentSessionRuntimeResult,\n\ttype CreateAgentSessionServicesOptions,\n\t// Factory\n\tcreateAgentSession,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionRuntime,\n\tcreateAgentSessionServices,\n\tcreateBashTool,\n\t// Tool factories (for custom cwd)\n\tcreateCodingTools,\n\tcreateEditTool,\n\tcreateFindTool,\n\tcreateLsTool,\n\tcreatePowerShellTool,\n\tcreateReadOnlyTools,\n\tcreateReadTool,\n\tcreateSearchTool,\n\tcreateStructuredOutputCapture,\n\tcreateStructuredOutputTool,\n\tcreateWriteTool,\n\ttype JsonObject,\n\ttype JsonPrimitive,\n\ttype JsonValue,\n\ttype MessageEndEvent,\n\ttype MessageStartEvent,\n\ttype MessageUpdateEvent,\n\ttype PromptTemplate,\n\tSTRUCTURED_OUTPUT_TOOL_NAME,\n\ttype StructuredOutputCapture,\n\ttype StructuredOutputFileCapture,\n\ttype StructuredOutputToolOptions,\n\ttype ToolExecutionEndEvent,\n\ttype ToolExecutionStartEvent,\n\ttype ToolExecutionUpdateEvent,\n} from \"./core/sdk.ts\";\nexport {\n\ttype BranchSummaryEntry,\n\tbuildContextEntries,\n\tbuildSessionContext,\n\tbuildSessionProjection,\n\ttype CompactionEntry,\n\ttype ContextEditableContent,\n\ttype ContextEditEntry,\n\tCURRENT_SESSION_VERSION,\n\ttype CustomEntry,\n\ttype CustomMessageEntry,\n\ttype FileEntry,\n\tgetLatestCompactionBoundaryEntry,\n\ttype ModelChangeEntry,\n\tmigrateSessionEntries,\n\ttype NewSessionOptions,\n\ttype ProjectedSessionEntry,\n\tparseSessionEntries,\n\ttype SessionContext,\n\ttype SessionEntry,\n\ttype SessionEntryBase,\n\ttype SessionHeader,\n\ttype SessionInfo,\n\ttype SessionInfoEntry,\n\tSessionManager,\n\ttype SessionMessageEntry,\n\ttype SessionNameState,\n\ttype SessionProjection,\n\ttype SessionTreeNode,\n\ttype SessionWorkflowMetadata,\n\tsessionEntryToContextMessages,\n\ttype ThinkingLevelChangeEntry,\n} from \"./core/session-manager.ts\";\nexport {\n\tWORKFLOW_SESSION_METADATA_ENV,\n\tworkflowSessionMetadataFromEnv,\n} from \"./core/session-manager-classification.ts\";\nexport type { DefaultProjectTrust } from \"./core/settings-manager.ts\";\nexport {\n\ttype CompactionModelOverride,\n\ttype CompactionSettings,\n\ttype ImageSettings,\n\ttype ModelRoutingSettings,\n\ttype PackageSource,\n\ttype RetrySettings,\n\tSettingsManager,\n\ttype SettingsManagerCreateOptions,\n} from \"./core/settings-manager.ts\";\n// Skills\nexport {\n\tformatSkillsForPrompt,\n\ttype LoadSkillsFromDirOptions,\n\ttype LoadSkillsResult,\n\tloadSkills,\n\tloadSkillsFromDir,\n\ttype Skill,\n\ttype SkillFrontmatter,\n} from \"./core/skills.ts\";\nexport { createSyntheticSourceInfo } from \"./core/source-info.ts\";\nexport {\n\tgenerateStructuredOutput,\n\ttype StructuredOutputRequest,\n\ttype StructuredOutputResult,\n} from \"./core/structured-output/index.js\";\nexport type { NormalizedBuildSystemPromptOptions } from \"./core/system-prompt.ts\";\nexport { type EditDiffResult, generateDiffString, generateUnifiedPatch } from \"./core/tools/edit-diff.ts\";\n// Builtin tool definitions reusable by first-party extensions (e.g. workflows\n// invoking the structured ask_user_question UI deterministically).\n// Tools\nexport {\n\tBASH_SHELL_PRESENTATION,\n\ttype BashOperations,\n\ttype BashSpawnContext,\n\ttype BashSpawnHook,\n\ttype BashToolDetails,\n\ttype BashToolInput,\n\ttype BashToolOptions,\n\tbashToolSystemPromptContribution,\n\tcreateAskUserQuestionToolDefinition,\n\tcreateBashToolDefinition,\n\tcreateEditToolDefinition,\n\tcreateFindToolDefinition,\n\tcreateKillTool,\n\tcreateKillToolDefinition,\n\tcreateLocalBashOperations,\n\tcreateLocalPowerShellOperations,\n\tcreateLsToolDefinition,\n\tcreatePowerShellToolDefinition,\n\tcreateReadToolDefinition,\n\tcreateSearchToolDefinition,\n\tcreateWriteToolDefinition,\n\tDEFAULT_MAX_BYTES,\n\tDEFAULT_MAX_LINES,\n\ttype EditOperations,\n\ttype EditToolDetails,\n\ttype EditToolInput,\n\ttype EditToolOptions,\n\teditToolSystemPromptContribution,\n\ttype FindOperations,\n\ttype FindToolDetails,\n\ttype FindToolInput,\n\ttype FindToolOptions,\n\tfindToolSystemPromptContribution,\n\tformatSize,\n\ttype KillToolOptions,\n\ttype LsOperations,\n\ttype LsToolDetails,\n\ttype LsToolInput,\n\ttype LsToolOptions,\n\tlsToolSystemPromptContribution,\n\ttype PowerShellOperations,\n\ttype PowerShellSpawnContext,\n\ttype PowerShellSpawnHook,\n\ttype PowerShellToolDetails,\n\ttype PowerShellToolInput,\n\ttype PowerShellToolOptions,\n\ttype ReadOperations,\n\ttype ReadToolDetails,\n\ttype ReadToolInput,\n\ttype ReadToolOptions,\n\treadToolSystemPromptContribution,\n\ttype SearchToolDetails,\n\ttype SearchToolInput,\n\ttype SearchToolOptions,\n\ttype ShellToolPresentation,\n\tsearchToolSystemPromptContribution,\n\ttype ToolsOptions,\n\ttype TruncationOptions,\n\ttype TruncationResult,\n\ttruncateHead,\n\ttruncateLine,\n\ttruncateTail,\n\ttype WriteFileOptions,\n\ttype WriteOperations,\n\ttype WriteToolInput,\n\ttype WriteToolOptions,\n\twithFileMutationQueue,\n\twriteToolSystemPromptContribution,\n} from \"./core/tools/index.ts\";\nexport {\n\thasProjectTrustInputs,\n\thasTrustRequiringProjectResources,\n\ttype ProjectTrustDecision,\n\tProjectTrustStore,\n\ttype ProjectTrustStoreEntry,\n\ttype ProjectTrustUpdate,\n\tTRUST_REQUIRING_PROJECT_CONFIG_RESOURCES,\n} from \"./core/trust-manager.ts\";\nexport { StringEnum, type StringEnumOptions } from \"./core/typebox-compat.ts\";\nexport * from \"./index-extensions.js\";\n// Main entry point\nexport { type MainOptions, main } from \"./main.ts\";\nexport {\n\tInteractiveMode,\n\ttype InteractiveModeOptions,\n\ttype ModelInfo,\n\ttype PrintModeOptions,\n\tRpcClient,\n\ttype RpcClientOptions,\n\ttype RpcCommand,\n\ttype RpcEvent,\n\ttype RpcEventListener,\n\ttype RpcExtensionUIRequest,\n\ttype RpcExtensionUIResponse,\n\ttype RpcResponse,\n\ttype RpcSessionState,\n\trunPrintMode,\n\trunRpcMode,\n} from \"./modes/index.ts\";\n// UI components for extensions\nexport {\n\tArminComponent,\n\tAssistantMessageComponent,\n\tBashExecutionComponent,\n\tBorderedLoader,\n\tBranchSummaryMessageComponent,\n\ttype ChatMessageEntry,\n\ttype ChatMessageRenderOptions,\n\t// Internal host seam for bundled workflow stage chat; not yet a stable extension API.\n\tChatSessionHost,\n\ttype ChatSessionHostBashRequest,\n\ttype ChatSessionHostCommands,\n\ttype ChatSessionHostEntry,\n\ttype ChatSessionHostOpts,\n\ttype ChatSessionHostStyle,\n\ttype ChatSessionSubmitMode,\n\tChatTranscriptComponent,\n\ttype ChatTranscriptEntryLike,\n\ttype ChatTranscriptRenderer,\n\ttype ChatTranscriptRole,\n\tCustomEditor,\n\ttype CustomEditorOptions,\n\tCustomEntryComponent,\n\tCustomMessageComponent,\n\tchatEntriesFromAgentMessages,\n\tDynamicBorder,\n\tExtensionEditorComponent,\n\tExtensionInputComponent,\n\tExtensionSelectorComponent,\n\tFooterComponent,\n\tkeyHint,\n\tkeyHintIfBound,\n\tkeyText,\n\tLiveChatEntriesController,\n\tLoginDialogComponent,\n\tModelSelectorComponent,\n\tOAuthSelectorComponent,\n\ttype RenderDiffOptions,\n\trawKeyHint,\n\trenderChatMessageEntry,\n\trenderDiff,\n\tScrollableChatTranscriptComponent,\n\tScrollableComponentViewport,\n\tSessionSelectorComponent,\n\ttype SettingsCallbacks,\n\ttype SettingsConfig,\n\tSettingsSelectorComponent,\n\tShowImagesSelectorComponent,\n\tSkillInvocationMessageComponent,\n\tThemeSelectorComponent,\n\tThinkingSelectorComponent,\n\tToolExecutionComponent,\n\ttype ToolExecutionOptions,\n\tTRANSCRIPT_JUMP_TO_END_URL,\n\tTranscriptFollowIndicator,\n\tTreeSelectorComponent,\n\ttruncateToVisualLines,\n\tUsageMeterComponent,\n\tUserMessageComponent,\n\tUserMessageSelectorComponent,\n\ttype VisualTruncateResult,\n\tWorkingStatusComponent,\n\ttype WorkingStatusComponentOptions,\n} from \"./modes/interactive/components/index.ts\";\nexport {\n\tclassifyChatCommand,\n\tcreateSessionSkillAutocompleteProvider,\n\tgetSessionSkillCommands,\n} from \"./modes/interactive/skill-command-autocomplete.ts\";\n// Theme utilities for custom tools and extensions\nexport {\n\tgetLanguageFromPath,\n\tgetMarkdownTheme,\n\tgetSelectListTheme,\n\tgetSettingsListTheme,\n\thighlightCode,\n\tinitTheme,\n\tTheme,\n\ttype ThemeColor,\n} from \"./modes/interactive/theme/theme.js\";\n// Run modes for programmatic SDK usage\nexport { pickWhimsicalWorkingMessage } from \"./modes/interactive/whimsical-messages.ts\";\nexport { createChildProcessEnvironment, spawnProcess } from \"./utils/child-process.ts\";\n// Clipboard utilities\nexport { copyToClipboard } from \"./utils/clipboard.ts\";\nexport { parseFrontmatter, stripFrontmatter } from \"./utils/frontmatter.ts\";\nexport {\n\tisSafeFsWatchPathError,\n\tisUnsafeWindowsShortPath,\n\tresolveNativeWatchPath,\n\tSAFE_FS_WATCH_CANONICALIZATION_FAILED,\n\tSAFE_FS_WATCH_UNSAFE_WINDOWS_SHORT_PATH,\n\ttype SafeFsWatchErrorCode,\n\ttype SafeFsWatchPathError,\n\twatchWithErrorHandler,\n} from \"./utils/fs-watch.ts\";\nexport { createGitEnvironment, GIT_LOCAL_ENV_VARS } from \"./utils/git-env.ts\";\nexport { convertToPng } from \"./utils/image-convert.ts\";\nexport { formatDimensionNote, type ResizedImage, resizeImage } from \"./utils/image-resize.ts\";\nexport { INTERACTIVE_ENGINE_ENV_VARS, scrubInteractiveEngineEnv } from \"./utils/interactive-engine-env.ts\";\nexport { detectSupportedImageMimeTypeFromFile } from \"./utils/mime.ts\";\n// Shell utilities\nexport { getPowerShellConfig, getShellConfig } from \"./utils/shell.ts\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export type { ExtensionBindings } from \"./core/agent-session-types.js\";\nexport {\n\tCacheWarmer,\n\ttype CacheWarmingDecisionEvent,\n\ttype CacheWarmingDecisionEventResult,\n\ttype CacheWarmingStatus,\n} from \"./core/cache-warmer.ts\";\nexport type {\n\tHostDiagnostic,\n\tHostInput,\n\tHostInputOptions,\n\tQuestionAnswer,\n\tQuestionnaireError,\n\tQuestionnaireResult,\n\tQuestionParams,\n} from \"./core/extensions/host-input.js\";\nexport type { UsageEntry } from \"./core/session-manager.ts\";\nexport { CACHE_WARMING_MODES, type CacheWarmingMode } from \"./core/settings-manager.ts\";\n// Internal trusted-host task integration (not model authority).\nexport { AgentTaskHost, type AgentTaskHostBinding, type AgentTaskRunnerFactory } from \"./core/tasks/agent-adapter.js\";\nexport type { AgentIntent, OperationId, TaskId, TaskResult, WaitPolicy } from \"./core/tasks/contracts.js\";\nexport { type AdmittedAgentTask, collectAgentTasks } from \"./core/tasks/execution-scope.js\";\nexport { bindOwnerTaskStore, getOwnerTaskStore, OwnerTaskStore } from \"./core/tasks/owner-store.js\";\nexport { renderTaskFooter, TaskList, taskListSections } from \"./modes/interactive/components/task-list.js\";\nexport { TaskRow } from \"./modes/interactive/components/task-row.js\";\nexport {\n\tapplyAssistantMessageDelta,\n\tbeginStreamingAssistantMessage,\n} from \"./modes/interactive/streaming-assistant-message.ts\";\n// Core session management\n\nexport { type Args, parseArgs } from \"./cli/args.ts\";\n// Config paths\nexport {\n\tAPP_NAME,\n\tAPP_TITLE,\n\tCONFIG_DIR_NAME,\n\tCONFIG_DIR_NAMES,\n\tgetAgentConfigPaths,\n\tgetAgentDir,\n\tgetAgentDirs,\n\tgetBundledInteractiveAssetPath,\n\tgetChangelogPath,\n\tgetDocsPath,\n\tgetEnvNames,\n\tgetEnvValue,\n\tgetExamplesPath,\n\tgetExportTemplateDir,\n\tgetInteractiveAssetsDir,\n\tgetLegacyAgentDir,\n\tgetPackageDir,\n\tgetPackageJsonPath,\n\tgetProjectConfigDirs,\n\tgetProjectConfigPaths,\n\tgetReadmePath,\n\tgetThemesDir,\n\tgetUserConfigDirs,\n\tgetUserConfigPaths,\n\thasEnvValue,\n\tisBunBinary,\n\tLEGACY_CONFIG_DIR_NAME,\n\tLEGACY_ENV_PREFIX,\n\tPACKAGE_NAME,\n\tsetEnvValue,\n\tVERSION,\n\tWORKFLOW_STAGE_SUBAGENT_GUARD_ENV,\n} from \"./config.js\";\nexport {\n\tAgentSession,\n\ttype AgentSessionConfig,\n\ttype AgentSessionEvent,\n\ttype AgentSessionEventListener,\n\ttype CompactionReason,\n\ttype ModelCycleResult,\n\ttype ParsedSkillBlock,\n\ttype PromptOptions,\n\tparseSkillBlock,\n\ttype SessionStats,\n} from \"./core/agent-session.js\";\n// Auth and model runtime\nexport { AuthStorage, readStoredCredential } from \"./core/auth-storage.ts\";\nexport {\n\ttype AuthStorageBackend,\n\tFileAuthStorageBackend,\n\tInMemoryAuthStorageBackend,\n} from \"./core/auth-storage-backends.ts\";\nexport { type BashResult, executeBashWithOperations } from \"./core/bash-executor.ts\";\nexport { getBuiltinPackagePaths } from \"./core/builtin-packages.ts\";\nexport {\n\ttype CallbackActivityDescriptor,\n\ttype CallbackActivityKind,\n\trunCallback,\n\trunSynchronousCallback,\n} from \"./core/callback-activity.ts\";\n// Cloudflare AI Gateway over the Workers AI binding (no API token; see docs/providers.md)\nexport {\n\ttype AiGatewayBinding,\n\ttype AiGatewayBindingGateway,\n\ttype AiGatewayUniversalRequestLike,\n\tCLOUDFLARE_GATEWAY_BINDING_AUTH_SENTINEL,\n\tcreateGatewayBindingFetch,\n\ttype GatewayBindingFetchOptions,\n} from \"./core/cloudflare-gateway-binding.ts\";\n// Compaction\nexport {\n\ttype BranchPreparation,\n\ttype BranchSummaryResult,\n\ttype CollectEntriesResult,\n\ttype CompactedTranscript,\n\ttype CompactionPlannerModel,\n\ttype CompactionPlanOptions,\n\ttype CompactionRung,\n\ttype CompactionRungResult,\n\ttype CompactionRunRequest,\n\ttype CompactionUrgency,\n\tcalculateContextTokens,\n\tcollectEntriesForBranchSummary,\n\tDEFAULT_COMPACTION_SETTINGS,\n\testimateTokens,\n\ttype FileOperations,\n\ttype GenerateBranchSummaryOptions,\n\tgenerateBranchSummary,\n\tgetLastAssistantUsage,\n\ttype LineRange,\n\ttype PlannerAuth,\n\ttype PlannerBudget,\n\ttype PlannerLimitClass,\n\ttype PlannerOutcome,\n\tprepareBranchEntries,\n\tprepareCompactionBoundary,\n\trunVerbatimCompaction,\n\tserializeConversation,\n\tserializeConversationForCompaction,\n\tshouldCompact,\n\tstartNewContextWindow,\n\ttype VerbatimCompactionDetails,\n\ttype VerbatimCompactionParameters,\n\ttype VerbatimCompactionPreparation,\n\ttype VerbatimCompactionResult,\n} from \"./core/compaction/index.ts\";\nexport { createEventBus, type EventBus, type EventBusController } from \"./core/event-bus.js\";\nexport {\n\tAutoRoutingInferenceError,\n\ttype ModelRoute,\n\ttype ModelRoutingContext,\n\trouteExecutionModel,\n} from \"./core/execution-model-router.js\";\nexport { areExperimentalFeaturesEnabled } from \"./core/experimental.ts\";\nexport { sessionScopedExtensionState } from \"./core/extension-session-state.ts\";\nexport {\n\tgetModelFastRoute,\n\tresolveUpstreamModelId,\n\tusesChatGptCodexTransport,\n\tusesFirstPartyCodexRouting,\n\twithCodexFastRouteHeaders,\n\twithFastRouteStreamOptions,\n} from \"./core/fast-model-routing.ts\";\nexport {\n\tCODEX_FAST_ROUTE_HEADER,\n\tCODEX_FAST_ROUTE_ORIGINATOR,\n} from \"./core/fast-model-routing-transport.ts\";\nexport {\n\tANTHROPIC_FAST_MODE_MODEL_IDS,\n\tcopilotAdvertisedFastModelIds,\n\tderiveFastModelVariants,\n\tFAST_MODEL_ID_SUFFIX,\n\tFAST_MODEL_SERVICE_TIER,\n\tFAST_MODEL_SPEED,\n\ttype FastModelVariantDerivation,\n\ttype FastModelVariantDiagnostic,\n\ttype FastModelVariantsOptions,\n\tfastModelId,\n\tisNativeFastRouteApi,\n\tusesAnthropicFastMode,\n\tusesOpenAIFastServiceTier,\n\tusesXaiFastServiceTier,\n\twithFastModelVariants,\n} from \"./core/fast-model-variants.ts\";\nexport {\n\tparseFlattenedKeyPath,\n\treconstructFlattenedKeys,\n\tunflattenArgumentsWithSchema,\n} from \"./core/flattened-tool-arguments.ts\";\n// Footer data provider (git branch + extension statuses - data not otherwise available to extensions)\nexport type { ReadonlyFooterDataProvider } from \"./core/footer-data-provider.ts\";\nexport {\n\tRUNTIME_INTERCOM_GROUP_ENV,\n\treadRuntimeIntercomGroup,\n\truntimeIntercomGroupEnvKey,\n} from \"./core/intercom-runtime-group.ts\";\nexport { keybindingIdentity } from \"./core/keybinding-identity.js\";\nexport type { McpServerConfig, McpServerContribution, McpServerOAuthConfig } from \"./core/mcp-servers.ts\";\nexport { convertToLlm } from \"./core/messages.ts\";\nexport type {\n\tModelFallbackFailureKind,\n\tModelFallbackFailureSignal,\n\tModelFallbackFailureSource,\n} from \"./core/model-fallback-failures.ts\";\nexport {\n\terrorMessage,\n\tisRetryableModelFailure,\n\tisRetryableSameModelFailure,\n\tmodelFailureMessage,\n\tnormalizeModelFailureSignal,\n} from \"./core/model-fallback-failures.ts\";\nexport { ModelRegistry } from \"./core/model-registry.ts\";\nexport {\n\teligiblePair,\n\ttype ModelConstraints,\n\tModelConstraintsSchema,\n\ttype ModelRouterOutput,\n\tparseModelConstraints,\n\tsetsProviders,\n} from \"./core/model-routing-constraints.js\";\nexport {\n\tisModelRoutingDebugEnabled,\n\tMODEL_ROUTING_DEBUG_ENV,\n\treportModelRoutingDebug,\n} from \"./core/model-routing-debug.js\";\nexport {\n\tDIFFICULTY_LEVELS,\n\ttype Difficulty,\n\tMISTAKE_COST_LEVELS,\n\ttype MistakeCost,\n\tmergeTaskNeeds,\n\tparseTaskNeeds,\n\ttype TaskNeeds,\n\tTaskNeedsSchema,\n\tWORK_KINDS,\n\ttype WorkKind,\n} from \"./core/model-routing-needs.js\";\nexport {\n\ttype CreateModelRuntimeOptions,\n\tCredentialSynchronizationError,\n\ttype CredentialSynchronizationOperation,\n\tModelRuntime,\n\ttype ModelRuntimeAuthOverrides,\n} from \"./core/model-runtime.js\";\nexport type {\n\tPackageManager,\n\tPathMetadata,\n\tProgressCallback,\n\tProgressEvent,\n\tResolvedMcpServer,\n\tResolvedPaths,\n\tResolvedResource,\n} from \"./core/package-manager.ts\";\nexport { DefaultPackageManager } from \"./core/package-manager.ts\";\nexport type {\n\tDefaultResourceLoaderInheritanceSnapshot,\n\tResourceCollision,\n\tResourceDiagnostic,\n\tResourceLoader,\n\tSkillCandidate,\n\tSkillCatalog,\n\tSkillCatalogCommand,\n\tSkillResolution,\n} from \"./core/resource-loader.ts\";\nexport {\n\tbuildSkillCatalog,\n\tDefaultResourceLoader,\n\tgetSkillCatalog,\n\tloadProjectContextFiles,\n} from \"./core/resource-loader.ts\";\nexport { nextRetryDecision, type RetryDecision, type RetryPolicySettings } from \"./core/retry-policy.ts\";\n// SDK for programmatic usage\nexport {\n\tAgentSessionRuntime,\n\ttype AgentSessionRuntimeDiagnostic,\n\ttype AgentSessionServices,\n\ttype AtomicBuiltin,\n\ttype CreateAgentSessionFromServicesOptions,\n\ttype CreateAgentSessionOptions,\n\ttype CreateAgentSessionResult,\n\ttype CreateAgentSessionRuntimeFactory,\n\ttype CreateAgentSessionRuntimeResult,\n\ttype CreateAgentSessionServicesOptions,\n\t// Factory\n\tcreateAgentSession,\n\tcreateAgentSessionFromServices,\n\tcreateAgentSessionRuntime,\n\tcreateAgentSessionServices,\n\tcreateBashTool,\n\t// Tool factories (for custom cwd)\n\tcreateCodingTools,\n\tcreateEditTool,\n\tcreateFindTool,\n\tcreateLsTool,\n\tcreatePowerShellTool,\n\tcreateReadOnlyTools,\n\tcreateReadTool,\n\tcreateSearchTool,\n\tcreateStructuredOutputCapture,\n\tcreateStructuredOutputTool,\n\tcreateWriteTool,\n\ttype JsonObject,\n\ttype JsonPrimitive,\n\ttype JsonValue,\n\ttype MessageEndEvent,\n\ttype MessageStartEvent,\n\ttype MessageUpdateEvent,\n\ttype PromptTemplate,\n\tSTRUCTURED_OUTPUT_TOOL_NAME,\n\ttype StructuredOutputCapture,\n\ttype StructuredOutputFileCapture,\n\ttype StructuredOutputToolOptions,\n\ttype ToolExecutionEndEvent,\n\ttype ToolExecutionStartEvent,\n\ttype ToolExecutionUpdateEvent,\n} from \"./core/sdk.ts\";\nexport {\n\ttype BranchSummaryEntry,\n\tbuildContextEntries,\n\tbuildSessionContext,\n\tbuildSessionProjection,\n\ttype CompactionEntry,\n\ttype ContextEditableContent,\n\ttype ContextEditEntry,\n\tCURRENT_SESSION_VERSION,\n\ttype CustomEntry,\n\ttype CustomMessageEntry,\n\ttype FileEntry,\n\tgetLatestCompactionBoundaryEntry,\n\ttype ModelChangeEntry,\n\tmigrateSessionEntries,\n\ttype NewSessionOptions,\n\ttype ProjectedSessionEntry,\n\tparseSessionEntries,\n\ttype SessionContext,\n\ttype SessionEntry,\n\ttype SessionEntryBase,\n\ttype SessionHeader,\n\ttype SessionInfo,\n\ttype SessionInfoEntry,\n\tSessionManager,\n\ttype SessionMessageEntry,\n\ttype SessionNameState,\n\ttype SessionProjection,\n\ttype SessionTreeNode,\n\ttype SessionWorkflowMetadata,\n\tsessionEntryToContextMessages,\n\ttype ThinkingLevelChangeEntry,\n} from \"./core/session-manager.ts\";\nexport {\n\tWORKFLOW_SESSION_METADATA_ENV,\n\tworkflowSessionMetadataFromEnv,\n} from \"./core/session-manager-classification.ts\";\nexport type { DefaultProjectTrust } from \"./core/settings-manager.ts\";\nexport {\n\ttype CompactionModelOverride,\n\ttype CompactionSettings,\n\ttype ImageSettings,\n\ttype ModelRoutingSettings,\n\ttype PackageSource,\n\ttype RetrySettings,\n\tSettingsManager,\n\ttype SettingsManagerCreateOptions,\n} from \"./core/settings-manager.ts\";\n// Skills\nexport {\n\tformatSkillsForPrompt,\n\ttype LoadSkillsFromDirOptions,\n\ttype LoadSkillsResult,\n\tloadSkills,\n\tloadSkillsFromDir,\n\ttype Skill,\n\ttype SkillFrontmatter,\n} from \"./core/skills.ts\";\nexport { createSyntheticSourceInfo } from \"./core/source-info.ts\";\nexport {\n\tgenerateStructuredOutput,\n\ttype StructuredOutputRequest,\n\ttype StructuredOutputResult,\n} from \"./core/structured-output/index.js\";\nexport type { NormalizedBuildSystemPromptOptions } from \"./core/system-prompt.ts\";\nexport { type EditDiffResult, generateDiffString, generateUnifiedPatch } from \"./core/tools/edit-diff.ts\";\n// Builtin tool definitions reusable by first-party extensions (e.g. workflows\n// invoking the structured ask_user_question UI deterministically).\n// Tools\nexport {\n\tBASH_SHELL_PRESENTATION,\n\ttype BashOperations,\n\ttype BashSpawnContext,\n\ttype BashSpawnHook,\n\ttype BashToolDetails,\n\ttype BashToolInput,\n\ttype BashToolOptions,\n\tbashToolSystemPromptContribution,\n\tcreateAskUserQuestionToolDefinition,\n\tcreateBashToolDefinition,\n\tcreateEditToolDefinition,\n\tcreateFindToolDefinition,\n\tcreateKillTool,\n\tcreateKillToolDefinition,\n\tcreateLocalBashOperations,\n\tcreateLocalPowerShellOperations,\n\tcreateLsToolDefinition,\n\tcreatePowerShellToolDefinition,\n\tcreateReadToolDefinition,\n\tcreateSearchToolDefinition,\n\tcreateWriteToolDefinition,\n\tDEFAULT_MAX_BYTES,\n\tDEFAULT_MAX_LINES,\n\ttype EditOperations,\n\ttype EditToolDetails,\n\ttype EditToolInput,\n\ttype EditToolOptions,\n\teditToolSystemPromptContribution,\n\ttype FindOperations,\n\ttype FindToolDetails,\n\ttype FindToolInput,\n\ttype FindToolOptions,\n\tfindToolSystemPromptContribution,\n\tformatSize,\n\ttype KillToolOptions,\n\ttype LsOperations,\n\ttype LsToolDetails,\n\ttype LsToolInput,\n\ttype LsToolOptions,\n\tlsToolSystemPromptContribution,\n\ttype PowerShellOperations,\n\ttype PowerShellSpawnContext,\n\ttype PowerShellSpawnHook,\n\ttype PowerShellToolDetails,\n\ttype PowerShellToolInput,\n\ttype PowerShellToolOptions,\n\ttype ReadOperations,\n\ttype ReadToolDetails,\n\ttype ReadToolInput,\n\ttype ReadToolOptions,\n\treadToolSystemPromptContribution,\n\ttype SearchToolDetails,\n\ttype SearchToolInput,\n\ttype SearchToolOptions,\n\ttype ShellToolPresentation,\n\tsearchToolSystemPromptContribution,\n\ttype ToolsOptions,\n\ttype TruncationOptions,\n\ttype TruncationResult,\n\ttruncateHead,\n\ttruncateLine,\n\ttruncateTail,\n\ttype WriteFileOptions,\n\ttype WriteOperations,\n\ttype WriteToolInput,\n\ttype WriteToolOptions,\n\twithFileMutationQueue,\n\twriteToolSystemPromptContribution,\n} from \"./core/tools/index.ts\";\nexport {\n\thasProjectTrustInputs,\n\thasTrustRequiringProjectResources,\n\ttype ProjectTrustDecision,\n\tProjectTrustStore,\n\ttype ProjectTrustStoreEntry,\n\ttype ProjectTrustUpdate,\n\tTRUST_REQUIRING_PROJECT_CONFIG_RESOURCES,\n} from \"./core/trust-manager.ts\";\nexport { StringEnum, type StringEnumOptions } from \"./core/typebox-compat.ts\";\nexport * from \"./index-extensions.js\";\n// Main entry point\nexport { type MainOptions, main } from \"./main.ts\";\nexport {\n\tInteractiveMode,\n\ttype InteractiveModeOptions,\n\ttype ModelInfo,\n\ttype PrintModeOptions,\n\tRpcClient,\n\ttype RpcClientOptions,\n\ttype RpcCommand,\n\ttype RpcEvent,\n\ttype RpcEventListener,\n\ttype RpcExtensionUIRequest,\n\ttype RpcExtensionUIResponse,\n\ttype RpcResponse,\n\ttype RpcSessionState,\n\trunPrintMode,\n\trunRpcMode,\n} from \"./modes/index.ts\";\n// UI components for extensions\nexport {\n\tArminComponent,\n\tAssistantMessageComponent,\n\tBashExecutionComponent,\n\tBorderedLoader,\n\tBranchSummaryMessageComponent,\n\ttype ChatMessageEntry,\n\ttype ChatMessageRenderOptions,\n\t// Internal host seam for bundled workflow stage chat; not yet a stable extension API.\n\tChatSessionHost,\n\ttype ChatSessionHostBashRequest,\n\ttype ChatSessionHostCommands,\n\ttype ChatSessionHostEntry,\n\ttype ChatSessionHostOpts,\n\ttype ChatSessionHostStyle,\n\ttype ChatSessionSubmitMode,\n\tChatTranscriptComponent,\n\ttype ChatTranscriptEntryLike,\n\ttype ChatTranscriptRenderer,\n\ttype ChatTranscriptRole,\n\tCustomEditor,\n\ttype CustomEditorOptions,\n\tCustomEntryComponent,\n\tCustomMessageComponent,\n\tchatEntriesFromAgentMessages,\n\tDynamicBorder,\n\tExtensionEditorComponent,\n\tExtensionInputComponent,\n\tExtensionSelectorComponent,\n\tFooterComponent,\n\tkeyHint,\n\tkeyHintIfBound,\n\tkeyText,\n\tLiveChatEntriesController,\n\tLoginDialogComponent,\n\tModelSelectorComponent,\n\tOAuthSelectorComponent,\n\ttype RenderDiffOptions,\n\trawKeyHint,\n\trenderChatMessageEntry,\n\trenderDiff,\n\tScrollableChatTranscriptComponent,\n\tScrollableComponentViewport,\n\tSessionSelectorComponent,\n\ttype SettingsCallbacks,\n\ttype SettingsConfig,\n\tSettingsSelectorComponent,\n\tShowImagesSelectorComponent,\n\tSkillInvocationMessageComponent,\n\tThemeSelectorComponent,\n\tThinkingSelectorComponent,\n\tToolExecutionComponent,\n\ttype ToolExecutionOptions,\n\tTRANSCRIPT_JUMP_TO_END_URL,\n\tTranscriptFollowIndicator,\n\tTreeSelectorComponent,\n\ttruncateToVisualLines,\n\tUsageMeterComponent,\n\tUserMessageComponent,\n\tUserMessageSelectorComponent,\n\ttype VisualTruncateResult,\n\tWorkingStatusComponent,\n\ttype WorkingStatusComponentOptions,\n} from \"./modes/interactive/components/index.ts\";\nexport {\n\tclassifyChatCommand,\n\tcreateSessionSkillAutocompleteProvider,\n\tgetSessionSkillCommands,\n} from \"./modes/interactive/skill-command-autocomplete.ts\";\n// Theme utilities for custom tools and extensions\nexport {\n\tgetLanguageFromPath,\n\tgetMarkdownTheme,\n\tgetSelectListTheme,\n\tgetSettingsListTheme,\n\thighlightCode,\n\tinitTheme,\n\tTheme,\n\ttype ThemeColor,\n} from \"./modes/interactive/theme/theme.js\";\n// Run modes for programmatic SDK usage\nexport { pickWhimsicalWorkingMessage } from \"./modes/interactive/whimsical-messages.ts\";\nexport { createChildProcessEnvironment, spawnProcess } from \"./utils/child-process.ts\";\n// Clipboard utilities\nexport { copyToClipboard } from \"./utils/clipboard.ts\";\nexport { parseFrontmatter, stripFrontmatter } from \"./utils/frontmatter.ts\";\nexport {\n\tisSafeFsWatchPathError,\n\tisUnsafeWindowsShortPath,\n\tresolveNativeWatchPath,\n\tSAFE_FS_WATCH_CANONICALIZATION_FAILED,\n\tSAFE_FS_WATCH_UNSAFE_WINDOWS_SHORT_PATH,\n\ttype SafeFsWatchErrorCode,\n\ttype SafeFsWatchPathError,\n\twatchWithErrorHandler,\n} from \"./utils/fs-watch.ts\";\nexport { createGitEnvironment, GIT_LOCAL_ENV_VARS } from \"./utils/git-env.ts\";\nexport { convertToPng } from \"./utils/image-convert.ts\";\nexport { formatDimensionNote, type ResizedImage, resizeImage } from \"./utils/image-resize.ts\";\nexport { INTERACTIVE_ENGINE_ENV_VARS, scrubInteractiveEngineEnv } from \"./utils/interactive-engine-env.ts\";\nexport { detectSupportedImageMimeTypeFromFile } from \"./utils/mime.ts\";\n// Shell utilities\nexport { getPowerShellConfig, getShellConfig } from \"./utils/shell.ts\";\n"]}
@@ -11,14 +11,26 @@ export interface ExternalEditorOptions {
11
11
  export interface ClipboardImageEditorOptions {
12
12
  showWarning?: (message: string) => void;
13
13
  cleanupDelayMs?: number;
14
+ /** Bash mode shell-quotes pasted file paths and separates them as arguments. */
15
+ isBashMode?: boolean;
14
16
  }
15
17
  export declare function cleanupStaleClipboardFiles(now?: number): void;
16
18
  export declare function combineQueuedMessagesForEditor(queuedMessages: readonly string[], currentText: string): string;
19
+ /** Quote a shell argument unless it only contains characters that need no quoting. */
20
+ export declare function quoteIfNeeded(value: string): string;
17
21
  export interface ClipboardImageEditorTarget {
18
22
  insertTextAtCursor?: (text: string) => void;
19
23
  getText?: () => string;
20
24
  setText?: (text: string) => void;
25
+ getCursor?: () => {
26
+ line: number;
27
+ col: number;
28
+ };
21
29
  }
30
+ /**
31
+ * Paste from the clipboard: copied files by their original paths (macOS), images via temporary
32
+ * files, and plain text as the final fallback.
33
+ */
22
34
  export declare function pasteClipboardImageToEditor(editor: ClipboardImageEditorTarget, requestRender?: () => void, options?: ClipboardImageEditorOptions): Promise<boolean>;
23
35
  export declare function openExternalEditorForText(text: string, host: Pick<TUI, "stop" | "start" | "requestRender"> | ExternalEditorHost, options?: ExternalEditorOptions): Promise<string | undefined>;
24
36
  //# sourceMappingURL=chat-input-actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input-actions.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/chat-input-actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAMlD,MAAM,WAAW,kBAAkB;IAClC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC3C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB;AAoBD,wBAAgB,0BAA0B,CAAC,GAAG,SAAa,GAAG,IAAI,CAkBjE;AAED,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7G;AAED,MAAM,WAAW,0BAA0B;IAC1C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,0BAA0B,EAClC,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,OAAO,GAAE,2BAAgC,GACvC,OAAO,CAAC,OAAO,CAAC,CA+BlB;AAED,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC,GAAG,kBAAkB,EACxE,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgB7B"}
1
+ {"version":3,"file":"chat-input-actions.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/chat-input-actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAMlD,MAAM,WAAW,kBAAkB;IAClC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,aAAa,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC3C,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAoBD,wBAAgB,0BAA0B,CAAC,GAAG,SAAa,GAAG,IAAI,CAkBjE;AAED,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7G;AAED,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,MAAM,WAAW,0BAA0B;IAC1C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AA6BD;;;GAGG;AACH,wBAAsB,2BAA2B,CAChD,MAAM,EAAE,0BAA0B,EAClC,aAAa,CAAC,EAAE,MAAM,IAAI,EAC1B,OAAO,GAAE,2BAAgC,GACvC,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC,GAAG,kBAAkB,EACxE,OAAO,GAAE,qBAA0B,GACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgB7B"}
@@ -3,7 +3,7 @@ import * as fs from "node:fs";
3
3
  import * as os from "node:os";
4
4
  import * as path from "node:path";
5
5
  import { APP_NAME } from "../../config.js";
6
- import { readClipboardText } from "../../utils/clipboard.js";
6
+ import { readClipboardFilePaths, readClipboardText } from "../../utils/clipboard.js";
7
7
  import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
8
8
  import { editInExternalEditor, resolveExternalEditorCommand } from "./external-editor.js";
9
9
  const CLIPBOARD_CLEANUP_DELAY_MS = 60 * 60 * 1000;
@@ -48,39 +48,65 @@ export function cleanupStaleClipboardFiles(now = Date.now()) {
48
48
  export function combineQueuedMessagesForEditor(queuedMessages, currentText) {
49
49
  return [...queuedMessages, ...(currentText.trim() ? [currentText] : [])].join("\n\n");
50
50
  }
51
+ /** Quote a shell argument unless it only contains characters that need no quoting. */
52
+ export function quoteIfNeeded(value) {
53
+ if (value.length > 0 && !/[^a-zA-Z0-9_\-./~:@]/.test(value)) {
54
+ return value;
55
+ }
56
+ return `'${value.replace(/'/g, `'\\''`)}'`;
57
+ }
58
+ function insertIntoEditor(editor, text, requestRender) {
59
+ if (editor.insertTextAtCursor)
60
+ editor.insertTextAtCursor(text);
61
+ else if (editor.getText && editor.setText)
62
+ editor.setText(`${editor.getText()}${text}`);
63
+ else
64
+ return false;
65
+ requestRender?.();
66
+ return true;
67
+ }
68
+ /** Copied file paths, separated from adjacent text on the cursor's line. */
69
+ function formatClipboardFilePaths(editor, filePaths, isBashMode) {
70
+ if (filePaths.some((filePath) => /\p{Cc}/u.test(filePath))) {
71
+ throw new Error("Clipboard file path contains control characters");
72
+ }
73
+ const paths = isBashMode ? filePaths.map(quoteIfNeeded).join(" ") : filePaths.join("\n");
74
+ const cursor = editor.getCursor?.();
75
+ const currentLine = cursor ? (editor.getText?.().split("\n")[cursor.line] ?? "") : "";
76
+ const characterBeforeCursor = cursor && cursor.col > 0 ? currentLine[cursor.col - 1] : "";
77
+ const characterAfterCursor = cursor ? currentLine[cursor.col] : "";
78
+ const leadingSpace = characterBeforeCursor && !/\s/.test(characterBeforeCursor) ? " " : "";
79
+ const trailingSpace = characterAfterCursor && !/\s/.test(characterAfterCursor) ? " " : "";
80
+ return `${leadingSpace}${paths}${trailingSpace}`;
81
+ }
82
+ /**
83
+ * Paste from the clipboard: copied files by their original paths (macOS), images via temporary
84
+ * files, and plain text as the final fallback.
85
+ */
51
86
  export async function pasteClipboardImageToEditor(editor, requestRender, options = {}) {
52
87
  try {
53
88
  cleanupStaleClipboardFiles();
89
+ // Finder copies also carry the file icon as an image; the paths are what the user copied.
90
+ const filePaths = await readClipboardFilePaths();
91
+ if (filePaths) {
92
+ return insertIntoEditor(editor, formatClipboardFilePaths(editor, filePaths, options.isBashMode ?? false), requestRender);
93
+ }
54
94
  const image = await readClipboardImage();
55
95
  if (!image) {
56
96
  const text = await readClipboardText();
57
97
  if (!text)
58
98
  return false;
59
- if (editor.insertTextAtCursor)
60
- editor.insertTextAtCursor(text);
61
- else if (editor.getText && editor.setText)
62
- editor.setText(`${editor.getText()}${text}`);
63
- else
64
- return false;
65
- requestRender?.();
66
- return true;
99
+ return insertIntoEditor(editor, text, requestRender);
67
100
  }
68
101
  const ext = extensionForImageMimeType(image.mimeType) ?? "png";
69
102
  const fileName = `${appTempPrefix("clipboard")}${crypto.randomUUID()}.${ext}`;
70
103
  const filePath = path.join(os.tmpdir(), fileName);
71
104
  fs.writeFileSync(filePath, Buffer.from(image.bytes), { flag: "wx", mode: 0o600 });
72
105
  scheduleTempFileCleanup(filePath, options.cleanupDelayMs ?? CLIPBOARD_CLEANUP_DELAY_MS);
73
- if (editor.insertTextAtCursor)
74
- editor.insertTextAtCursor(filePath);
75
- else if (editor.getText && editor.setText)
76
- editor.setText(`${editor.getText()}${filePath}`);
77
- else
78
- return false;
79
- requestRender?.();
80
- return true;
106
+ return insertIntoEditor(editor, filePath, requestRender);
81
107
  }
82
108
  catch (error) {
83
- options.showWarning?.(`Failed to paste clipboard image: ${error instanceof Error ? error.message : String(error)}`);
109
+ options.showWarning?.(`Failed to paste from clipboard: ${error instanceof Error ? error.message : String(error)}`);
84
110
  return false;
85
111
  }
86
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-input-actions.js","sourceRoot":"","sources":["../../../src/modes/interactive/chat-input-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport type { TUI } from \"@earendil-works/pi-tui\";\nimport { APP_NAME } from \"../../config.js\";\nimport { readClipboardText } from \"../../utils/clipboard.ts\";\nimport { extensionForImageMimeType, readClipboardImage } from \"../../utils/clipboard-image.ts\";\nimport { editInExternalEditor, resolveExternalEditorCommand } from \"./external-editor.ts\";\n\nexport interface ExternalEditorHost {\n\tstop(): void;\n\tstart(): void;\n\trequestRender(force?: boolean): void;\n}\n\nexport interface ExternalEditorOptions {\n\teditorCommand?: string;\n\tshowWarning?: (message: string) => void;\n}\n\nexport interface ClipboardImageEditorOptions {\n\tshowWarning?: (message: string) => void;\n\tcleanupDelayMs?: number;\n}\n\nconst CLIPBOARD_CLEANUP_DELAY_MS = 60 * 60 * 1000;\nconst CLIPBOARD_STALE_AGE_MS = 24 * 60 * 60 * 1000;\n\nfunction appTempPrefix(kind: string): string {\n\treturn `${APP_NAME}-${kind}-`;\n}\n\nfunction scheduleTempFileCleanup(filePath: string, delayMs: number): void {\n\tconst timer = setTimeout(() => {\n\t\ttry {\n\t\t\tfs.unlinkSync(filePath);\n\t\t} catch {\n\t\t\t// Ignore best-effort cleanup failures.\n\t\t}\n\t}, delayMs);\n\ttimer.unref?.();\n}\n\nexport function cleanupStaleClipboardFiles(now = Date.now()): void {\n\tconst prefix = appTempPrefix(\"clipboard\");\n\tlet entries: string[];\n\ttry {\n\t\tentries = fs.readdirSync(os.tmpdir());\n\t} catch {\n\t\treturn;\n\t}\n\tfor (const entry of entries) {\n\t\tif (!entry.startsWith(prefix)) continue;\n\t\tconst filePath = path.join(os.tmpdir(), entry);\n\t\ttry {\n\t\t\tconst stat = fs.statSync(filePath);\n\t\t\tif (stat.isFile() && now - stat.mtimeMs >= CLIPBOARD_STALE_AGE_MS) fs.unlinkSync(filePath);\n\t\t} catch {\n\t\t\t// Ignore best-effort cleanup failures.\n\t\t}\n\t}\n}\n\nexport function combineQueuedMessagesForEditor(queuedMessages: readonly string[], currentText: string): string {\n\treturn [...queuedMessages, ...(currentText.trim() ? [currentText] : [])].join(\"\\n\\n\");\n}\n\nexport interface ClipboardImageEditorTarget {\n\tinsertTextAtCursor?: (text: string) => void;\n\tgetText?: () => string;\n\tsetText?: (text: string) => void;\n}\n\nexport async function pasteClipboardImageToEditor(\n\teditor: ClipboardImageEditorTarget,\n\trequestRender?: () => void,\n\toptions: ClipboardImageEditorOptions = {},\n): Promise<boolean> {\n\ttry {\n\t\tcleanupStaleClipboardFiles();\n\t\tconst image = await readClipboardImage();\n\t\tif (!image) {\n\t\t\tconst text = await readClipboardText();\n\t\t\tif (!text) return false;\n\t\t\tif (editor.insertTextAtCursor) editor.insertTextAtCursor(text);\n\t\t\telse if (editor.getText && editor.setText) editor.setText(`${editor.getText()}${text}`);\n\t\t\telse return false;\n\t\t\trequestRender?.();\n\t\t\treturn true;\n\t\t}\n\n\t\tconst ext = extensionForImageMimeType(image.mimeType) ?? \"png\";\n\t\tconst fileName = `${appTempPrefix(\"clipboard\")}${crypto.randomUUID()}.${ext}`;\n\t\tconst filePath = path.join(os.tmpdir(), fileName);\n\t\tfs.writeFileSync(filePath, Buffer.from(image.bytes), { flag: \"wx\", mode: 0o600 });\n\t\tscheduleTempFileCleanup(filePath, options.cleanupDelayMs ?? CLIPBOARD_CLEANUP_DELAY_MS);\n\n\t\tif (editor.insertTextAtCursor) editor.insertTextAtCursor(filePath);\n\t\telse if (editor.getText && editor.setText) editor.setText(`${editor.getText()}${filePath}`);\n\t\telse return false;\n\t\trequestRender?.();\n\t\treturn true;\n\t} catch (error) {\n\t\toptions.showWarning?.(\n\t\t\t`Failed to paste clipboard image: ${error instanceof Error ? error.message : String(error)}`,\n\t\t);\n\t\treturn false;\n\t}\n}\n\nexport async function openExternalEditorForText(\n\ttext: string,\n\thost: Pick<TUI, \"stop\" | \"start\" | \"requestRender\"> | ExternalEditorHost,\n\toptions: ExternalEditorOptions = {},\n): Promise<string | undefined> {\n\tconst editorCommand = resolveExternalEditorCommand(options.editorCommand);\n\thost.stop();\n\ttry {\n\t\tconst result = await editInExternalEditor({\n\t\t\tcommand: editorCommand,\n\t\t\tcontent: text,\n\t\t});\n\t\treturn result.status === \"complete\" ? result.content : undefined;\n\t} catch (error) {\n\t\toptions.showWarning?.(`Failed to open editor: ${error instanceof Error ? error.message : String(error)}`);\n\t\treturn undefined;\n\t} finally {\n\t\thost.start();\n\t\thost.requestRender(true);\n\t}\n}\n"]}
1
+ {"version":3,"file":"chat-input-actions.js","sourceRoot":"","sources":["../../../src/modes/interactive/chat-input-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import * as crypto from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport type { TUI } from \"@earendil-works/pi-tui\";\nimport { APP_NAME } from \"../../config.js\";\nimport { readClipboardFilePaths, readClipboardText } from \"../../utils/clipboard.ts\";\nimport { extensionForImageMimeType, readClipboardImage } from \"../../utils/clipboard-image.ts\";\nimport { editInExternalEditor, resolveExternalEditorCommand } from \"./external-editor.ts\";\n\nexport interface ExternalEditorHost {\n\tstop(): void;\n\tstart(): void;\n\trequestRender(force?: boolean): void;\n}\n\nexport interface ExternalEditorOptions {\n\teditorCommand?: string;\n\tshowWarning?: (message: string) => void;\n}\n\nexport interface ClipboardImageEditorOptions {\n\tshowWarning?: (message: string) => void;\n\tcleanupDelayMs?: number;\n\t/** Bash mode shell-quotes pasted file paths and separates them as arguments. */\n\tisBashMode?: boolean;\n}\n\nconst CLIPBOARD_CLEANUP_DELAY_MS = 60 * 60 * 1000;\nconst CLIPBOARD_STALE_AGE_MS = 24 * 60 * 60 * 1000;\n\nfunction appTempPrefix(kind: string): string {\n\treturn `${APP_NAME}-${kind}-`;\n}\n\nfunction scheduleTempFileCleanup(filePath: string, delayMs: number): void {\n\tconst timer = setTimeout(() => {\n\t\ttry {\n\t\t\tfs.unlinkSync(filePath);\n\t\t} catch {\n\t\t\t// Ignore best-effort cleanup failures.\n\t\t}\n\t}, delayMs);\n\ttimer.unref?.();\n}\n\nexport function cleanupStaleClipboardFiles(now = Date.now()): void {\n\tconst prefix = appTempPrefix(\"clipboard\");\n\tlet entries: string[];\n\ttry {\n\t\tentries = fs.readdirSync(os.tmpdir());\n\t} catch {\n\t\treturn;\n\t}\n\tfor (const entry of entries) {\n\t\tif (!entry.startsWith(prefix)) continue;\n\t\tconst filePath = path.join(os.tmpdir(), entry);\n\t\ttry {\n\t\t\tconst stat = fs.statSync(filePath);\n\t\t\tif (stat.isFile() && now - stat.mtimeMs >= CLIPBOARD_STALE_AGE_MS) fs.unlinkSync(filePath);\n\t\t} catch {\n\t\t\t// Ignore best-effort cleanup failures.\n\t\t}\n\t}\n}\n\nexport function combineQueuedMessagesForEditor(queuedMessages: readonly string[], currentText: string): string {\n\treturn [...queuedMessages, ...(currentText.trim() ? [currentText] : [])].join(\"\\n\\n\");\n}\n\n/** Quote a shell argument unless it only contains characters that need no quoting. */\nexport function quoteIfNeeded(value: string): string {\n\tif (value.length > 0 && !/[^a-zA-Z0-9_\\-./~:@]/.test(value)) {\n\t\treturn value;\n\t}\n\treturn `'${value.replace(/'/g, `'\\\\''`)}'`;\n}\n\nexport interface ClipboardImageEditorTarget {\n\tinsertTextAtCursor?: (text: string) => void;\n\tgetText?: () => string;\n\tsetText?: (text: string) => void;\n\tgetCursor?: () => { line: number; col: number };\n}\n\nfunction insertIntoEditor(editor: ClipboardImageEditorTarget, text: string, requestRender?: () => void): boolean {\n\tif (editor.insertTextAtCursor) editor.insertTextAtCursor(text);\n\telse if (editor.getText && editor.setText) editor.setText(`${editor.getText()}${text}`);\n\telse return false;\n\trequestRender?.();\n\treturn true;\n}\n\n/** Copied file paths, separated from adjacent text on the cursor's line. */\nfunction formatClipboardFilePaths(\n\teditor: ClipboardImageEditorTarget,\n\tfilePaths: readonly string[],\n\tisBashMode: boolean,\n): string {\n\tif (filePaths.some((filePath) => /\\p{Cc}/u.test(filePath))) {\n\t\tthrow new Error(\"Clipboard file path contains control characters\");\n\t}\n\tconst paths = isBashMode ? filePaths.map(quoteIfNeeded).join(\" \") : filePaths.join(\"\\n\");\n\tconst cursor = editor.getCursor?.();\n\tconst currentLine = cursor ? (editor.getText?.().split(\"\\n\")[cursor.line] ?? \"\") : \"\";\n\tconst characterBeforeCursor = cursor && cursor.col > 0 ? currentLine[cursor.col - 1] : \"\";\n\tconst characterAfterCursor = cursor ? currentLine[cursor.col] : \"\";\n\tconst leadingSpace = characterBeforeCursor && !/\\s/.test(characterBeforeCursor) ? \" \" : \"\";\n\tconst trailingSpace = characterAfterCursor && !/\\s/.test(characterAfterCursor) ? \" \" : \"\";\n\treturn `${leadingSpace}${paths}${trailingSpace}`;\n}\n\n/**\n * Paste from the clipboard: copied files by their original paths (macOS), images via temporary\n * files, and plain text as the final fallback.\n */\nexport async function pasteClipboardImageToEditor(\n\teditor: ClipboardImageEditorTarget,\n\trequestRender?: () => void,\n\toptions: ClipboardImageEditorOptions = {},\n): Promise<boolean> {\n\ttry {\n\t\tcleanupStaleClipboardFiles();\n\t\t// Finder copies also carry the file icon as an image; the paths are what the user copied.\n\t\tconst filePaths = await readClipboardFilePaths();\n\t\tif (filePaths) {\n\t\t\treturn insertIntoEditor(\n\t\t\t\teditor,\n\t\t\t\tformatClipboardFilePaths(editor, filePaths, options.isBashMode ?? false),\n\t\t\t\trequestRender,\n\t\t\t);\n\t\t}\n\n\t\tconst image = await readClipboardImage();\n\t\tif (!image) {\n\t\t\tconst text = await readClipboardText();\n\t\t\tif (!text) return false;\n\t\t\treturn insertIntoEditor(editor, text, requestRender);\n\t\t}\n\n\t\tconst ext = extensionForImageMimeType(image.mimeType) ?? \"png\";\n\t\tconst fileName = `${appTempPrefix(\"clipboard\")}${crypto.randomUUID()}.${ext}`;\n\t\tconst filePath = path.join(os.tmpdir(), fileName);\n\t\tfs.writeFileSync(filePath, Buffer.from(image.bytes), { flag: \"wx\", mode: 0o600 });\n\t\tscheduleTempFileCleanup(filePath, options.cleanupDelayMs ?? CLIPBOARD_CLEANUP_DELAY_MS);\n\n\t\treturn insertIntoEditor(editor, filePath, requestRender);\n\t} catch (error) {\n\t\toptions.showWarning?.(\n\t\t\t`Failed to paste from clipboard: ${error instanceof Error ? error.message : String(error)}`,\n\t\t);\n\t\treturn false;\n\t}\n}\n\nexport async function openExternalEditorForText(\n\ttext: string,\n\thost: Pick<TUI, \"stop\" | \"start\" | \"requestRender\"> | ExternalEditorHost,\n\toptions: ExternalEditorOptions = {},\n): Promise<string | undefined> {\n\tconst editorCommand = resolveExternalEditorCommand(options.editorCommand);\n\thost.stop();\n\ttry {\n\t\tconst result = await editInExternalEditor({\n\t\t\tcommand: editorCommand,\n\t\t\tcontent: text,\n\t\t});\n\t\treturn result.status === \"complete\" ? result.content : undefined;\n\t} catch (error) {\n\t\toptions.showWarning?.(`Failed to open editor: ${error instanceof Error ? error.message : String(error)}`);\n\t\treturn undefined;\n\t} finally {\n\t\thost.start();\n\t\thost.requestRender(true);\n\t}\n}\n"]}
@@ -17,4 +17,15 @@ export declare function setChatSessionEditorText<TExtraEntry extends ChatTranscr
17
17
  export declare function setEditorPlaceholder(editor: EditorComponent, placeholder: string | undefined): void;
18
18
  export declare function setEditorBorderColor(editor: EditorComponent, borderColor: (text: string) => string): void;
19
19
  export declare function setEditorFocused(editor: EditorComponent, focused: boolean): void;
20
+ type EditorCursor = {
21
+ line: number;
22
+ col: number;
23
+ };
24
+ export declare function chatSessionEditorAccess<TExtraEntry extends ChatTranscriptEntryLike>(state: ChatSessionHostState<TExtraEntry>): {
25
+ insertTextAtCursor: (text: string) => void;
26
+ getText: () => string;
27
+ setText: (text: string) => void;
28
+ getCursor?: () => EditorCursor;
29
+ };
30
+ export {};
20
31
  //# sourceMappingURL=chat-session-host-editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-session-host-editor.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAa,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAQ3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,6BAA6B,EAAE,MAAM,OAAO,CAAC;IAC7C,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,GAAG,EAAE,GAAG,GAAG,SAAS,EACpB,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,EAChE,SAAS,EAAE,0BAA0B,GACnC,eAAe,GAAG,SAAS,CAiE7B;AAED,wBAAgB,sBAAsB,CAAC,WAAW,SAAS,uBAAuB,EACjF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,0BAA0B,GACnC,OAAO,CA8CT;AAED,wBAAgB,wBAAwB,CAAC,WAAW,SAAS,uBAAuB,EACnF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,IAAI,EAAE,MAAM,GACV,IAAI,CAIN;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAKnG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAKzG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAGhF"}
1
+ {"version":3,"file":"chat-session-host-editor.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/components/chat-session-host-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAa,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAQ3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAGpE,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,CAAC,IAAI,EAAE,qBAAqB,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtF,6BAA6B,EAAE,MAAM,OAAO,CAAC;IAC7C,eAAe,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,GAAG,EAAE,GAAG,GAAG,SAAS,EACpB,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,EAChE,SAAS,EAAE,0BAA0B,GACnC,eAAe,GAAG,SAAS,CAkE7B;AAED,wBAAgB,sBAAsB,CAAC,WAAW,SAAS,uBAAuB,EACjF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,0BAA0B,GACnC,OAAO,CA8CT;AAED,wBAAgB,wBAAwB,CAAC,WAAW,SAAS,uBAAuB,EACnF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,EACxC,IAAI,EAAE,MAAM,GACV,IAAI,CAIN;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAKnG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAKzG;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAGhF;AAgBD,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAOlD,wBAAgB,uBAAuB,CAAC,WAAW,SAAS,uBAAuB,EAClF,KAAK,EAAE,oBAAoB,CAAC,WAAW,CAAC,GACtC;IACF,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,YAAY,CAAC;CAC/B,CAcA"}
@@ -39,6 +39,7 @@ export function createChatSessionEditor(state, tui, keybindings, editorTheme, ed
39
39
  previousPasteImage?.();
40
40
  void pasteClipboardImageToEditor(chatSessionEditorAccess(state), () => state.requestRender?.(), {
41
41
  showWarning: (message) => notifyChatSessionWarning(state, message),
42
+ isBashMode: state.isBashMode,
42
43
  });
43
44
  };
44
45
  const previousEscape = actionEditor.onEscape;
@@ -141,7 +142,11 @@ function createInheritedEditor(tui, editorTheme, keybindings, editorFactory) {
141
142
  return undefined;
142
143
  }
143
144
  }
144
- function chatSessionEditorAccess(state) {
145
+ function hasCursor(editor) {
146
+ return typeof editor?.getCursor === "function";
147
+ }
148
+ export function chatSessionEditorAccess(state) {
149
+ const editor = state.editor;
145
150
  return {
146
151
  insertTextAtCursor: (text) => {
147
152
  if (state.editor?.insertTextAtCursor) {
@@ -152,6 +157,7 @@ function chatSessionEditorAccess(state) {
152
157
  },
153
158
  getText: () => state.inputBuffer,
154
159
  setText: (text) => setChatSessionEditorText(state, text),
160
+ ...(hasCursor(editor) ? { getCursor: () => editor.getCursor() } : {}),
155
161
  };
156
162
  }
157
163
  async function openChatSessionExternalEditor(state) {