@gaunt-sloth/core 2.0.0-alpha.35 → 2.0.0-alpha.37

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 (95) hide show
  1. package/dist/config/configDiscovery.d.ts +79 -0
  2. package/dist/config/configDiscovery.js +80 -0
  3. package/dist/config/configDiscovery.js.map +1 -0
  4. package/dist/config/loader.d.ts +6 -5
  5. package/dist/config/loader.js +229 -92
  6. package/dist/config/loader.js.map +1 -1
  7. package/dist/config/schema.d.ts +3 -2
  8. package/dist/config/schema.js +57 -9
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/config/shell-policy.d.ts +58 -26
  11. package/dist/config/shell-policy.js +60 -27
  12. package/dist/config/shell-policy.js.map +1 -1
  13. package/dist/config/tool-descriptions.d.ts +6 -6
  14. package/dist/config/tool-descriptions.js +7 -7
  15. package/dist/config/tool-descriptions.js.map +1 -1
  16. package/dist/config/types.d.ts +34 -31
  17. package/dist/config/types.js.map +1 -1
  18. package/dist/config.d.ts +3 -0
  19. package/dist/config.js +3 -0
  20. package/dist/config.js.map +1 -1
  21. package/dist/core/GthAbstractAgent.d.ts +11 -13
  22. package/dist/core/GthAbstractAgent.js +9 -11
  23. package/dist/core/GthAbstractAgent.js.map +1 -1
  24. package/dist/core/GthAgentRunner.d.ts +17 -33
  25. package/dist/core/GthAgentRunner.js +31 -41
  26. package/dist/core/GthAgentRunner.js.map +1 -1
  27. package/dist/core/GthLangChainAgent.js +25 -34
  28. package/dist/core/GthLangChainAgent.js.map +1 -1
  29. package/dist/core/approvals/toolAnnotationSources.d.ts +4 -4
  30. package/dist/core/approvals/toolAnnotationSources.js +8 -8
  31. package/dist/core/debugCapture.d.ts +2 -3
  32. package/dist/core/debugCapture.js +1 -2
  33. package/dist/core/debugCapture.js.map +1 -1
  34. package/dist/core/gthLeanAgentFactory.d.ts +4 -4
  35. package/dist/core/gthLeanAgentFactory.js +4 -4
  36. package/dist/core/launchBanner.d.ts +10 -0
  37. package/dist/core/launchBanner.js +6 -1
  38. package/dist/core/launchBanner.js.map +1 -1
  39. package/dist/core/reasoningBlocks.d.ts +7 -2
  40. package/dist/core/reasoningBlocks.js +7 -2
  41. package/dist/core/reasoningBlocks.js.map +1 -1
  42. package/dist/core/shell/ShellCommandFailedError.d.ts +3 -4
  43. package/dist/core/shell/ShellCommandFailedError.js +3 -4
  44. package/dist/core/shell/ShellCommandFailedError.js.map +1 -1
  45. package/dist/core/shell/approvalStop.d.ts +68 -29
  46. package/dist/core/shell/approvalStop.js +178 -28
  47. package/dist/core/shell/approvalStop.js.map +1 -1
  48. package/dist/core/shell/hardline.d.ts +22 -0
  49. package/dist/core/shell/hardline.js +81 -0
  50. package/dist/core/shell/hardline.js.map +1 -1
  51. package/dist/core/shell/negotiation.d.ts +81 -2
  52. package/dist/core/shell/negotiation.js +144 -11
  53. package/dist/core/shell/negotiation.js.map +1 -1
  54. package/dist/core/shell/rater.d.ts +7 -69
  55. package/dist/core/shell/rater.js +5 -24
  56. package/dist/core/shell/rater.js.map +1 -1
  57. package/dist/core/shell/raterVocabulary.d.ts +119 -0
  58. package/dist/core/shell/raterVocabulary.js +114 -0
  59. package/dist/core/shell/raterVocabulary.js.map +1 -0
  60. package/dist/core/types.d.ts +17 -3
  61. package/dist/providers/anthropic.js +12 -0
  62. package/dist/providers/anthropic.js.map +1 -1
  63. package/dist/providers/configurationPassthrough.d.ts +107 -0
  64. package/dist/providers/configurationPassthrough.js +148 -0
  65. package/dist/providers/configurationPassthrough.js.map +1 -0
  66. package/dist/providers/geminiThinking.d.ts +8 -0
  67. package/dist/providers/geminiThinking.js +33 -13
  68. package/dist/providers/geminiThinking.js.map +1 -1
  69. package/dist/providers/google-genai.js +11 -0
  70. package/dist/providers/google-genai.js.map +1 -1
  71. package/dist/providers/groq.js +12 -0
  72. package/dist/providers/groq.js.map +1 -1
  73. package/dist/providers/ollama.js +12 -0
  74. package/dist/providers/ollama.js.map +1 -1
  75. package/dist/providers/openrouter.d.ts +23 -0
  76. package/dist/providers/openrouter.js +71 -4
  77. package/dist/providers/openrouter.js.map +1 -1
  78. package/dist/providers/vertexai.js +12 -0
  79. package/dist/providers/vertexai.js.map +1 -1
  80. package/dist/providers/xai.js +20 -0
  81. package/dist/providers/xai.js.map +1 -1
  82. package/dist/runtime/conversation.d.ts +2 -2
  83. package/dist/runtime/conversation.js +19 -4
  84. package/dist/runtime/conversation.js.map +1 -1
  85. package/dist/runtime/singleShot.d.ts +2 -3
  86. package/dist/runtime/singleShot.js +22 -7
  87. package/dist/runtime/singleShot.js.map +1 -1
  88. package/dist/utils/systemPromptNotes.d.ts +17 -20
  89. package/dist/utils/systemPromptNotes.js +22 -24
  90. package/dist/utils/systemPromptNotes.js.map +1 -1
  91. package/dist/utils/untrustedText.d.ts +24 -4
  92. package/dist/utils/untrustedText.js +25 -4
  93. package/dist/utils/untrustedText.js.map +1 -1
  94. package/package.json +4 -4
  95. package/schema/gsloth-config.schema.json +0 -1
@@ -1,18 +1,10 @@
1
1
  /**
2
2
  * Shared code-mode system-prompt augmentations (GS2-27).
3
3
  *
4
- * These notes describe capabilities that are IDENTICAL across both agent backends — the lean
5
- * {@link import('#src/core/GthLangChainAgent.js').GthLangChainAgent} (`createAgent`, in core) and
6
- * the deep `GthDeepAgent` (`createDeepAgent`, in `@gaunt-sloth/agent`): both expose the opt-in
7
- * `run_shell_command` tool and both operate on the real filesystem cwd. They were originally
8
- * composed ONLY inside `GthDeepAgent.init()` (EXT-13/EXT-26), so the now-default lean backend never
9
- * received them — accidental deep-only drift of the same class GS2-21 fixed for the main prompt.
10
- *
11
- * They live here in core so BOTH backends compose from ONE source. `GthDeepAgent` re-exports them
12
- * for back-compat with existing importers. The deepagents virtual-fs-namespace notes
13
- * (`appendVirtualCwdNote` / `PATH_NAMESPACE_GUIDANCE` / the correction middleware) are NOT here:
14
- * they are genuinely deep-only (a deepagents artifact — lean never runs virtualMode) and stay in
15
- * `GthDeepAgent`.
4
+ * These notes describe capabilities of the agent itself — the opt-in `run_shell_command` tool and
5
+ * the real filesystem cwd — rather than of any one graph builder, which is why they live in core
6
+ * rather than beside the agent that composes them: a note composed inside one backend is a note
7
+ * the next backend silently loses, the drift GS2-21 fixed for the main prompt.
16
8
  */
17
9
  import type { McpServerInstruction } from '#src/core/types.js';
18
10
  import { type FilesystemToolsConfig } from '#src/config/filesystem-tools.js';
@@ -120,9 +112,9 @@ export interface CommitCoAuthor {
120
112
  * that string; the identity decorates only the default. An unresolvable identity (`undefined`) falls
121
113
  * back to the plain default name, never to a placeholder.
122
114
  *
123
- * Backend-agnostic: composed through the shared code path so BOTH the lean `GthLangChainAgent` and
124
- * the deep `GthDeepAgent` inject it (the git-commit capability rides on `run_shell_command`, which
125
- * both backends expose in code mode). Returns the note alone when there is no base prompt.
115
+ * Backend-agnostic: composed through the shared code path, so any backend injects it (the
116
+ * git-commit capability rides on `run_shell_command`, exposed in code mode). Returns the note alone
117
+ * when there is no base prompt.
126
118
  */
127
119
  export declare function appendCommitCoAuthorNote(systemPrompt: string | undefined, coAuthor?: CommitCoAuthor, modelIdentity?: ResolvedModelIdentity, filesystem?: FilesystemToolsConfig): string;
128
120
  /**
@@ -150,9 +142,14 @@ export interface ResolvedModelIdentity {
150
142
  * - PROVIDER: the configured `config.modelProviderType` (the raw `llm.type` the loader stashed —
151
143
  * `openrouter`/`deepseek`/`xai`/`anthropic`/…) when present, otherwise the live LangChain
152
144
  * model's `_llmType()` (the source the AG-UI `/info` endpoint reports). GS2-53 — preferring the
153
- * configured `type` fixes the OpenAI-compatible shims (openrouter/deepseek/xai all extend
154
- * ChatOpenAI, so their `_llmType()` reports `openai`): a `type: openrouter` config now injects
155
- * `openrouter:<model>`, not `openai:<model>`. The `type` is absent for module configs (which
145
+ * configured `type` is what stops a provider being labelled with the client it happens to be
146
+ * built on: `_llmType()` is the model CLASS's own label and does not track the gth provider
147
+ * namespace, so `huggingface` (a `ChatOpenAI` aimed at the HF router) reports `openai`, and
148
+ * `google-genai` and `vertexai` both report `google`. It is also the safer source in general:
149
+ * `_llmType()` is the model class's opinion, while the `type` is
150
+ * the user's own declaration, so a provider swapped onto a different client (as `openrouter`
151
+ * was) keeps its configured label without this file needing to know. The `type` is absent for
152
+ * module configs (which
156
153
  * hand us an already-built LLM), where we fall back to `_llmType()` unchanged. The MODEL half is
157
154
  * always exact.
158
155
  *
@@ -216,8 +213,8 @@ export declare const MCP_INSTRUCTIONS_TRUNCATION_MARKER = "\u2026 [truncated]";
216
213
  * the model reads is gsloth's own authority, not the server text — server instructions may not
217
214
  * override the system instructions, safety rules, or the user's directives.
218
215
  *
219
- * Backend-agnostic: composed through the shared path so BOTH the lean `GthLangChainAgent` and the
220
- * deep `GthDeepAgent` inject it. Empty/absent contributes NOTHING: when no server supplied
216
+ * Backend-agnostic: composed through the shared path, so any backend injects it.
217
+ * Empty/absent contributes NOTHING: when no server supplied
221
218
  * (non-whitespace) instructions the base prompt is returned unchanged — no empty header, no dangling
222
219
  * label. Each server's text is trimmed and capped at {@link MCP_INSTRUCTIONS_MAX_CHARS_PER_SERVER}.
223
220
  * Returns the block alone when there is no base prompt.
@@ -1,18 +1,10 @@
1
1
  /**
2
2
  * Shared code-mode system-prompt augmentations (GS2-27).
3
3
  *
4
- * These notes describe capabilities that are IDENTICAL across both agent backends — the lean
5
- * {@link import('#src/core/GthLangChainAgent.js').GthLangChainAgent} (`createAgent`, in core) and
6
- * the deep `GthDeepAgent` (`createDeepAgent`, in `@gaunt-sloth/agent`): both expose the opt-in
7
- * `run_shell_command` tool and both operate on the real filesystem cwd. They were originally
8
- * composed ONLY inside `GthDeepAgent.init()` (EXT-13/EXT-26), so the now-default lean backend never
9
- * received them — accidental deep-only drift of the same class GS2-21 fixed for the main prompt.
10
- *
11
- * They live here in core so BOTH backends compose from ONE source. `GthDeepAgent` re-exports them
12
- * for back-compat with existing importers. The deepagents virtual-fs-namespace notes
13
- * (`appendVirtualCwdNote` / `PATH_NAMESPACE_GUIDANCE` / the correction middleware) are NOT here:
14
- * they are genuinely deep-only (a deepagents artifact — lean never runs virtualMode) and stay in
15
- * `GthDeepAgent`.
4
+ * These notes describe capabilities of the agent itself — the opt-in `run_shell_command` tool and
5
+ * the real filesystem cwd — rather than of any one graph builder, which is why they live in core
6
+ * rather than beside the agent that composes them: a note composed inside one backend is a note
7
+ * the next backend silently loses, the drift GS2-21 fixed for the main prompt.
16
8
  */
17
9
  import { DEFAULT_COMMIT_CO_AUTHOR_EMAIL, DEFAULT_COMMIT_CO_AUTHOR_NAME } from '#src/constants.js';
18
10
  import { isWriteFileToolRegistered, WRITE_FILE_TOOL_NAME, } from '#src/config/filesystem-tools.js';
@@ -144,9 +136,9 @@ export function appendCwdNote(systemPrompt, cwd) {
144
136
  * that string; the identity decorates only the default. An unresolvable identity (`undefined`) falls
145
137
  * back to the plain default name, never to a placeholder.
146
138
  *
147
- * Backend-agnostic: composed through the shared code path so BOTH the lean `GthLangChainAgent` and
148
- * the deep `GthDeepAgent` inject it (the git-commit capability rides on `run_shell_command`, which
149
- * both backends expose in code mode). Returns the note alone when there is no base prompt.
139
+ * Backend-agnostic: composed through the shared code path, so any backend injects it (the
140
+ * git-commit capability rides on `run_shell_command`, exposed in code mode). Returns the note alone
141
+ * when there is no base prompt.
150
142
  */
151
143
  export function appendCommitCoAuthorNote(systemPrompt, coAuthor, modelIdentity, filesystem) {
152
144
  // EXT-83 — ONE place composes the name, so the parenthesised shape stays a one-line change. The
@@ -199,9 +191,14 @@ export function appendCommitCoAuthorNote(systemPrompt, coAuthor, modelIdentity,
199
191
  * - PROVIDER: the configured `config.modelProviderType` (the raw `llm.type` the loader stashed —
200
192
  * `openrouter`/`deepseek`/`xai`/`anthropic`/…) when present, otherwise the live LangChain
201
193
  * model's `_llmType()` (the source the AG-UI `/info` endpoint reports). GS2-53 — preferring the
202
- * configured `type` fixes the OpenAI-compatible shims (openrouter/deepseek/xai all extend
203
- * ChatOpenAI, so their `_llmType()` reports `openai`): a `type: openrouter` config now injects
204
- * `openrouter:<model>`, not `openai:<model>`. The `type` is absent for module configs (which
194
+ * configured `type` is what stops a provider being labelled with the client it happens to be
195
+ * built on: `_llmType()` is the model CLASS's own label and does not track the gth provider
196
+ * namespace, so `huggingface` (a `ChatOpenAI` aimed at the HF router) reports `openai`, and
197
+ * `google-genai` and `vertexai` both report `google`. It is also the safer source in general:
198
+ * `_llmType()` is the model class's opinion, while the `type` is
199
+ * the user's own declaration, so a provider swapped onto a different client (as `openrouter`
200
+ * was) keeps its configured label without this file needing to know. The `type` is absent for
201
+ * module configs (which
205
202
  * hand us an already-built LLM), where we fall back to `_llmType()` unchanged. The MODEL half is
206
203
  * always exact.
207
204
  *
@@ -216,10 +213,11 @@ export function appendCommitCoAuthorNote(systemPrompt, coAuthor, modelIdentity,
216
213
  */
217
214
  export function resolveModelIdentity(config) {
218
215
  const llm = config?.llm;
219
- // Prefer the configured provider `type` over the live model's `_llmType()`: OpenAI-compatible
220
- // shims (openrouter/deepseek/xai) extend ChatOpenAI and report `_llmType() === 'openai'`, which
221
- // would mislabel the provider half. Only fall through to the guarded `_llmType()` when no
222
- // (non-blank) `type` was threaded (e.g. module configs that build the LLM themselves).
216
+ // Prefer the configured provider `type` over the live model's `_llmType()`: that is the model
217
+ // class's own label rather than the gth provider namespace (`huggingface` reports `openai`, and
218
+ // both Gemini providers report `google`), so it would mislabel the provider half. Only fall
219
+ // through to the guarded `_llmType()` when no (non-blank) `type` was threaded (e.g. module
220
+ // configs that build the LLM themselves).
223
221
  let provider = config?.modelProviderType?.trim() || undefined;
224
222
  if (!provider) {
225
223
  try {
@@ -304,8 +302,8 @@ function capMcpText(text) {
304
302
  * the model reads is gsloth's own authority, not the server text — server instructions may not
305
303
  * override the system instructions, safety rules, or the user's directives.
306
304
  *
307
- * Backend-agnostic: composed through the shared path so BOTH the lean `GthLangChainAgent` and the
308
- * deep `GthDeepAgent` inject it. Empty/absent contributes NOTHING: when no server supplied
305
+ * Backend-agnostic: composed through the shared path, so any backend injects it.
306
+ * Empty/absent contributes NOTHING: when no server supplied
309
307
  * (non-whitespace) instructions the base prompt is returned unchanged — no empty header, no dangling
310
308
  * label. Each server's text is trimmed and capped at {@link MCP_INSTRUCTIONS_MAX_CHARS_PER_SERVER}.
311
309
  * Returns the block alone when there is no base prompt.
@@ -1 +1 @@
1
- {"version":3,"file":"systemPromptNotes.js","sourceRoot":"","sources":["../../src/utils/systemPromptNotes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemPromptNotes.js","sourceRoot":"","sources":["../../src/utils/systemPromptNotes.ts"],"names":[],"mappings":"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"}
@@ -36,14 +36,34 @@ export declare const QUOTED_COMMAND_FENCE_END = "[END QUOTED COMMAND TEXT]";
36
36
  export declare const QUOTED_COMMAND_MAX_CHARS = 2000;
37
37
  /** Appended when {@link QUOTED_COMMAND_MAX_CHARS} actually clipped the quoted command. */
38
38
  export declare const QUOTED_COMMAND_TRUNCATION_MARKER = "\u2026 [truncated]";
39
+ /**
40
+ * [[EXT-46]] — the fence the ACP server quotes a prompt's non-text content blocks inside, emitted by
41
+ * `@gaunt-sloth/agent`'s `modules/acp/acpAgentApp.ts`.
42
+ *
43
+ * An ACP client attaches content blocks to a prompt, and the ones that are not the user's own typed
44
+ * text carry values the user did not author: a resource link's `name`, `uri` and `description` come
45
+ * from the editor, the filesystem or an MCP server, and a block's `type` is an arbitrary client
46
+ * string by the v2 schema. The agent has to tell the model that something was attached — dropping it
47
+ * silently is worse — so those values are quoted into the same message as the user's words, which is
48
+ * the situation this module exists for.
49
+ */
50
+ export declare const ACP_ATTACHMENT_FENCE_BEGIN = "[BEGIN CLIENT-PROVIDED ATTACHMENT]";
51
+ export declare const ACP_ATTACHMENT_FENCE_END = "[END CLIENT-PROVIDED ATTACHMENT]";
52
+ /**
53
+ * How much of one attachment FIELD is quoted. These are metadata (a file name, a URI, a one-line
54
+ * description), not documents, so this is generous rather than a limit anything real should reach.
55
+ */
56
+ export declare const ACP_ATTACHMENT_FIELD_MAX_CHARS = 1000;
57
+ /** Appended when {@link ACP_ATTACHMENT_FIELD_MAX_CHARS} actually clipped a field. */
58
+ export declare const ACP_ATTACHMENT_TRUNCATION_MARKER = "\u2026 [truncated]";
39
59
  /**
40
60
  * Neutralize every structural delimiter this codebase emits, inside UNTRUSTED text.
41
61
  *
42
62
  * The text is fully attacker-influenceable, so it may forge:
43
- * - either fence's tokens (`[BEGIN|END MCP SERVER-PROVIDED CONTEXT]`,
44
- * `[BEGIN|END QUOTED COMMAND TEXT]`) — the bracket run is collapsed so they can no longer be
45
- * read as the real delimiter, while staying legible to a reader who wants to see what was
46
- * attempted; and
63
+ * - any fence's tokens (`[BEGIN|END MCP SERVER-PROVIDED CONTEXT]`,
64
+ * `[BEGIN|END QUOTED COMMAND TEXT]`, `[BEGIN|END CLIENT-PROVIDED ATTACHMENT]`) — the bracket run
65
+ * is collapsed so they can no longer be read as the real delimiter, while staying legible to a
66
+ * reader who wants to see what was attempted; and
47
67
  * - a per-server label line `--- Server: …` (EXT-32) — the leading `---` run is broken so it
48
68
  * cannot masquerade as one of ours.
49
69
  *
@@ -36,14 +36,34 @@ export const QUOTED_COMMAND_FENCE_END = '[END QUOTED COMMAND TEXT]';
36
36
  export const QUOTED_COMMAND_MAX_CHARS = 2000;
37
37
  /** Appended when {@link QUOTED_COMMAND_MAX_CHARS} actually clipped the quoted command. */
38
38
  export const QUOTED_COMMAND_TRUNCATION_MARKER = '… [truncated]';
39
+ /**
40
+ * [[EXT-46]] — the fence the ACP server quotes a prompt's non-text content blocks inside, emitted by
41
+ * `@gaunt-sloth/agent`'s `modules/acp/acpAgentApp.ts`.
42
+ *
43
+ * An ACP client attaches content blocks to a prompt, and the ones that are not the user's own typed
44
+ * text carry values the user did not author: a resource link's `name`, `uri` and `description` come
45
+ * from the editor, the filesystem or an MCP server, and a block's `type` is an arbitrary client
46
+ * string by the v2 schema. The agent has to tell the model that something was attached — dropping it
47
+ * silently is worse — so those values are quoted into the same message as the user's words, which is
48
+ * the situation this module exists for.
49
+ */
50
+ export const ACP_ATTACHMENT_FENCE_BEGIN = '[BEGIN CLIENT-PROVIDED ATTACHMENT]';
51
+ export const ACP_ATTACHMENT_FENCE_END = '[END CLIENT-PROVIDED ATTACHMENT]';
52
+ /**
53
+ * How much of one attachment FIELD is quoted. These are metadata (a file name, a URI, a one-line
54
+ * description), not documents, so this is generous rather than a limit anything real should reach.
55
+ */
56
+ export const ACP_ATTACHMENT_FIELD_MAX_CHARS = 1000;
57
+ /** Appended when {@link ACP_ATTACHMENT_FIELD_MAX_CHARS} actually clipped a field. */
58
+ export const ACP_ATTACHMENT_TRUNCATION_MARKER = '… [truncated]';
39
59
  /**
40
60
  * Neutralize every structural delimiter this codebase emits, inside UNTRUSTED text.
41
61
  *
42
62
  * The text is fully attacker-influenceable, so it may forge:
43
- * - either fence's tokens (`[BEGIN|END MCP SERVER-PROVIDED CONTEXT]`,
44
- * `[BEGIN|END QUOTED COMMAND TEXT]`) — the bracket run is collapsed so they can no longer be
45
- * read as the real delimiter, while staying legible to a reader who wants to see what was
46
- * attempted; and
63
+ * - any fence's tokens (`[BEGIN|END MCP SERVER-PROVIDED CONTEXT]`,
64
+ * `[BEGIN|END QUOTED COMMAND TEXT]`, `[BEGIN|END CLIENT-PROVIDED ATTACHMENT]`) — the bracket run
65
+ * is collapsed so they can no longer be read as the real delimiter, while staying legible to a
66
+ * reader who wants to see what was attempted; and
47
67
  * - a per-server label line `--- Server: …` (EXT-32) — the leading `---` run is broken so it
48
68
  * cannot masquerade as one of ours.
49
69
  *
@@ -58,6 +78,7 @@ export function defangUntrustedDelimiters(text) {
58
78
  return text
59
79
  .replace(/\[\s*(BEGIN|END)\s+MCP\s+SERVER-PROVIDED\s+CONTEXT\s*\]/gi, (_m, kw) => `(server text: ${kw.toUpperCase()} MCP SERVER-PROVIDED CONTEXT)`)
60
80
  .replace(/\[\s*(BEGIN|END)\s+QUOTED\s+COMMAND\s+TEXT\s*\]/gi, (_m, kw) => `(quoted text: ${kw.toUpperCase()} QUOTED COMMAND TEXT)`)
81
+ .replace(/\[\s*(BEGIN|END)\s+CLIENT-PROVIDED\s+ATTACHMENT\s*\]/gi, (_m, kw) => `(client text: ${kw.toUpperCase()} CLIENT-PROVIDED ATTACHMENT)`)
61
82
  .replace(/-{3,}(\s*Server\s*:)/gi, '- - -$1');
62
83
  }
63
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"untrustedText.js","sourceRoot":"","sources":["../../src/utils/untrustedText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,qCAAqC,CAAC;AACrE,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,kGAAkG;AAClG,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gCAAgC,GAAG,eAAe,CAAC;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,IAAI;SACR,OAAO,CACN,2DAA2D,EAC3D,CAAC,EAAE,EAAE,EAAU,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,+BAA+B,CACrF;SACA,OAAO,CACN,mDAAmD,EACnD,CAAC,EAAE,EAAE,EAAU,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAC7E;SACA,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc;IAC7E,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;QAAE,GAAG,IAAI,CAAC,CAAC,CAAC,+BAA+B;IAC/E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"untrustedText.js","sourceRoot":"","sources":["../../src/utils/untrustedText.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,8FAA8F;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,qCAAqC,CAAC;AACrE,MAAM,CAAC,MAAM,aAAa,GAAG,mCAAmC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,6BAA6B,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAA2B,CAAC;AAEpE,kGAAkG;AAClG,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,gCAAgC,GAAG,eAAe,CAAC;AAEhE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,oCAAoC,CAAC;AAC/E,MAAM,CAAC,MAAM,wBAAwB,GAAG,kCAAkC,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC;AAEnD,qFAAqF;AACrF,MAAM,CAAC,MAAM,gCAAgC,GAAG,eAAe,CAAC;AAEhE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,OAAO,IAAI;SACR,OAAO,CACN,2DAA2D,EAC3D,CAAC,EAAE,EAAE,EAAU,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,+BAA+B,CACrF;SACA,OAAO,CACN,mDAAmD,EACnD,CAAC,EAAE,EAAE,EAAU,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAC7E;SACA,OAAO,CACN,wDAAwD,EACxD,CAAC,EAAE,EAAE,EAAU,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,8BAA8B,CACpF;SACA,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc;IAC7E,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACtC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;QAAE,GAAG,IAAI,CAAC,CAAC,CAAC,+BAA+B;IAC/E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;AACtD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaunt-sloth/core",
3
- "version": "2.0.0-alpha.35",
3
+ "version": "2.0.0-alpha.37",
4
4
  "description": "Core utilities and types for Gaunt Sloth",
5
5
  "license": "MIT",
6
6
  "author": "Andrew Kondratev",
@@ -30,11 +30,11 @@
30
30
  "#src/*.js": "./dist/*.js"
31
31
  },
32
32
  "dependencies": {
33
- "@langchain/core": "^1.2.3",
34
- "@langchain/langgraph": "^1.4.8",
33
+ "@langchain/core": "^1.2.5",
34
+ "@langchain/langgraph": "^1.4.9",
35
35
  "jiti": "^2.7.0",
36
36
  "jsonc-parser": "^3.3.1",
37
- "langchain": "^1.5.4",
37
+ "langchain": "^1.5.5",
38
38
  "string-width": "^8.2.2",
39
39
  "zod": "^4.4.3"
40
40
  },
@@ -36,7 +36,6 @@
36
36
  "backend": {
37
37
  "type": "string",
38
38
  "enum": [
39
- "deep",
40
39
  "lean"
41
40
  ]
42
41
  }