@gaunt-sloth/core 2.0.0-alpha.19 → 2.0.0-alpha.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +5 -4
  2. package/dist/config/defaults.js +6 -4
  3. package/dist/config/defaults.js.map +1 -1
  4. package/dist/config/loader.d.ts +29 -0
  5. package/dist/config/loader.js +158 -8
  6. package/dist/config/loader.js.map +1 -1
  7. package/dist/config/schema.d.ts +45 -0
  8. package/dist/config/schema.js +45 -1
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/config/shell-policy.d.ts +17 -0
  11. package/dist/config/shell-policy.js.map +1 -1
  12. package/dist/config/types.d.ts +60 -0
  13. package/dist/config/types.js.map +1 -1
  14. package/dist/constants.d.ts +11 -1
  15. package/dist/constants.js +11 -1
  16. package/dist/constants.js.map +1 -1
  17. package/dist/core/GthAbstractAgent.d.ts +28 -1
  18. package/dist/core/GthAbstractAgent.js +227 -33
  19. package/dist/core/GthAbstractAgent.js.map +1 -1
  20. package/dist/core/GthLangChainAgent.js +31 -14
  21. package/dist/core/GthLangChainAgent.js.map +1 -1
  22. package/dist/providers/geminiSchemaSanitizer.d.ts +52 -0
  23. package/dist/providers/geminiSchemaSanitizer.js +201 -0
  24. package/dist/providers/geminiSchemaSanitizer.js.map +1 -0
  25. package/dist/providers/google-genai.js +4 -1
  26. package/dist/providers/google-genai.js.map +1 -1
  27. package/dist/providers/ollama.d.ts +18 -4
  28. package/dist/providers/ollama.js +55 -37
  29. package/dist/providers/ollama.js.map +1 -1
  30. package/dist/providers/openrouter.js +5 -0
  31. package/dist/providers/openrouter.js.map +1 -1
  32. package/dist/providers/vertexai.js +4 -1
  33. package/dist/providers/vertexai.js.map +1 -1
  34. package/dist/runtime/conversation.d.ts +59 -0
  35. package/dist/runtime/conversation.js +137 -0
  36. package/dist/runtime/conversation.js.map +1 -0
  37. package/dist/runtime/singleShot.d.ts +3 -2
  38. package/dist/runtime/singleShot.js +16 -4
  39. package/dist/runtime/singleShot.js.map +1 -1
  40. package/dist/utils/debugDump.d.ts +30 -8
  41. package/dist/utils/debugDump.js +133 -10
  42. package/dist/utils/debugDump.js.map +1 -1
  43. package/dist/utils/redactSecrets.d.ts +63 -0
  44. package/dist/utils/redactSecrets.js +238 -0
  45. package/dist/utils/redactSecrets.js.map +1 -0
  46. package/dist/utils/systemPromptNotes.d.ts +92 -0
  47. package/dist/utils/systemPromptNotes.js +114 -0
  48. package/dist/utils/systemPromptNotes.js.map +1 -1
  49. package/dist/utils/systemUtils.d.ts +1 -1
  50. package/dist/utils/systemUtils.js +7 -2
  51. package/dist/utils/systemUtils.js.map +1 -1
  52. package/dist/utils/toolMatching.d.ts +30 -0
  53. package/dist/utils/toolMatching.js +44 -0
  54. package/dist/utils/toolMatching.js.map +1 -0
  55. package/package.json +5 -1
  56. package/schema/gsloth-config.schema.json +91 -0
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import type { GthConfig, LLMConfig } from '#src/config/types.js';
23
23
  * - `run_shell_command` reads the EXT-9/10/12 knobs ({@link enabled}/{@link timeout}/
24
24
  * {@link maxOutputBytes}/{@link allowlist}/{@link persistAllowlist}/{@link judge}/{@link yolo} —
25
25
  * `yolo` is the folded former `shellYolo`);
26
+ * - `gth_grep` reads {@link fileSet} (GS2-51) — which corpus to search;
26
27
  * - a plain built-in tool (`gth_checklist`, `gth_web_fetch`, …) reads {@link enabled} (or is
27
28
  * toggled with a bare boolean in the registry).
28
29
  */
@@ -57,6 +58,22 @@ export interface BuiltInToolConfig {
57
58
  * `{ "run_shell_command": { "yolo": true } }`.
58
59
  */
59
60
  yolo?: boolean;
61
+ /**
62
+ * `gth_grep` (GS2-51): which corpus the content-search tool scans, applied consistently to BOTH
63
+ * execution engines (native ripgrep and the in-process JS fallback):
64
+ * - `gitignore` (DEFAULT) — respect `.gitignore`/`.ignore` and skip hidden dot-files. This is the
65
+ * best code-search UX and is already ripgrep's own default, so rg-present machines see NO
66
+ * behaviour change; only the corpus *selection* becomes explicit.
67
+ * - `all` — scan everything except the noise dirs (`node_modules`/`dist`/`.git`/`.idea`); for rg
68
+ * this passes `--no-ignore --hidden`.
69
+ *
70
+ * Example: `{ "builtInTools": { "gth_grep": { "fileSet": "all" } } }`.
71
+ *
72
+ * NOTE: under `gitignore` the JS fallback is a best-effort approximation (skip noise dirs + hidden
73
+ * dot-files); it does NOT parse arbitrary `.gitignore` rules the way rg does. See the residual
74
+ * rg-vs-JS divergence note in `gthGrepTool.ts`.
75
+ */
76
+ fileSet?: 'gitignore' | 'all';
60
77
  }
61
78
  /**
62
79
  * CFG-18 — the widened `builtInTools` setting. Either the legacy `string[]` (each named tool
@@ -1 +1 @@
1
- {"version":3,"file":"shell-policy.js","sourceRoot":"","sources":["../../src/config/shell-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-policy.js","sourceRoot":"","sources":["../../src/config/shell-policy.ts"],"names":[],"mappings":"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"}
@@ -298,7 +298,52 @@ export interface GthConfig {
298
298
  };
299
299
  };
300
300
  };
301
+ /**
302
+ * GS2-35 — identity for the `Co-Authored-By` trailer of agent-authored git commits. Gaunt Sloth
303
+ * has no dedicated commit tool (it commits via `run_shell_command`), so this identity is injected
304
+ * into the code-mode system prompt, which instructs the agent to co-author commits as this account
305
+ * and NEVER as the underlying model. Optional and defaulted: when unset (or a field is unset) the
306
+ * agent co-authors as {@link DEFAULT_COMMIT_CO_AUTHOR_NAME} `<`{@link DEFAULT_COMMIT_CO_AUTHOR_EMAIL}`>`.
307
+ */
308
+ commit?: {
309
+ coAuthor?: {
310
+ name?: string;
311
+ email?: string;
312
+ };
313
+ };
301
314
  modelDisplayName?: string;
315
+ /**
316
+ * GS2-53 — the configured provider `type` string (`openrouter`/`deepseek`/`xai`/`anthropic`/…),
317
+ * stashed by the loader from the raw `llm.type` before the built `BaseChatModel` replaces the raw
318
+ * spec. INTERNAL (loader-set, never user-supplied), so it is deliberately absent from the config
319
+ * schema. {@link import('#src/utils/systemPromptNotes.js').resolveModelIdentity} PREFERS this over
320
+ * the live model's `_llmType()` for the injected identity, because OpenAI-compatible shims
321
+ * (openrouter/deepseek/xai all extend `ChatOpenAI`) report `_llmType() === 'openai'` and would
322
+ * otherwise mislabel the provider half. Absent for module configs (which hand us an already-built
323
+ * LLM with no raw `type`), where resolution falls back to the guarded `_llmType()`.
324
+ */
325
+ modelProviderType?: string;
326
+ /**
327
+ * GS2-34 — inject the resolved active `provider:model` identity into the assembled system prompt
328
+ * so the agent knows which model is serving it (to answer "what model are you?" and reason about
329
+ * its own capabilities/limits). Default ON (omitted = inject). Opt out with
330
+ * `injectModelContext: false` to keep reproducible / model-agnostic runs (e.g. review) blind to
331
+ * the identity — when off, the assembled prompt is exactly as it is without this feature. Applies
332
+ * in ALL modes (unlike the code-mode-only cwd/os-shell/commit notes). Defaulted at the read site
333
+ * (not in {@link DEFAULT_CONFIG}) to avoid churning the effective-config snapshot.
334
+ */
335
+ injectModelContext?: boolean;
336
+ /**
337
+ * GS2-47 — controls the shared secret-redaction pass applied to `/debug-dump` archives. Default
338
+ * ON (omitted = redact): secret-named env-var values, inline config secrets, provider-key/auth
339
+ * patterns and sensitive config fields are masked before any artifact hits disk. Set
340
+ * `debugDump.redact: false` (or run `/debug-dump --unsafe-no-redact`) to write a RAW archive, which
341
+ * the command flags with a loud "may contain secrets" warning. Defaulted at the read site (not in
342
+ * {@link DEFAULT_CONFIG}) to avoid churning the effective-config snapshot.
343
+ */
344
+ debugDump?: {
345
+ redact?: boolean;
346
+ };
302
347
  /**
303
348
  * Transient (runtime-only) extra filesystem roots the agent is allowed to read/write for
304
349
  * THIS run, in addition to the cwd sandbox. Populated by `gth exec --allow-dir <path>`
@@ -314,6 +359,21 @@ export interface GthConfig {
314
359
  * (read/write files, run commands) rather than only chat. Never persisted to a config file.
315
360
  */
316
361
  askWriteMode?: boolean;
362
+ /**
363
+ * GS2-63 — output surface controls.
364
+ *
365
+ * `output.header` DEFAULTS ON (omitted = show). Set `false` to suppress the technical run-header
366
+ * preamble — the Workdir/Model/Tools/Middleware status block, the `Press Escape or Q to interrupt`
367
+ * hint, and their surrounding blank lines — in NON-TUI text modes (`--no-tui`, `ask`, `exec`,
368
+ * `eval`, `pr`, `review`, piped/CI), so captured stdout and log diffs stay clean. The interactive
369
+ * TUI ignores the setting and always shows the header. Only the preamble is suppressed — never
370
+ * model/tool output, errors, or config-validation warnings, and never the live `Thinking…`
371
+ * indicator. Defaulted at the read site (`!== false`), not in {@link DEFAULT_CONFIG}, to avoid
372
+ * churning the effective-config snapshot.
373
+ */
374
+ output?: {
375
+ header?: boolean;
376
+ };
317
377
  }
318
378
  /**
319
379
  * `gth pr` command configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AA2dA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,KAAK;IACL,YAAY;IACZ,aAAa;IACb,QAAQ;CACA,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAuhBA,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,UAAU;IACV,WAAW;IACX,MAAM;IACN,UAAU;IACV,QAAQ;IACR,cAAc;IACd,KAAK;IACL,YAAY;IACZ,aAAa;IACb,QAAQ;CACA,CAAC"}
@@ -26,7 +26,7 @@ export declare const AIIGNORE_FILE = ".aiignore";
26
26
  * The channel is **major-pinned** (`/schema/v2/…`, not `latest` or `alpha`) so a config never
27
27
  * revalidates against a future major it was not written for. The hosted copy is kept in sync with
28
28
  * this package's generated schema by the deploy runbook in
29
- * `websites/gauntsloth.app/schema/README.md` (interim, hand-run) and, in time, PLAT-9's automated
29
+ * `websites/gauntsloth-site/schema/README.md` (interim, hand-run) and, in time, PLAT-9's automated
30
30
  * release step. The schema still ships inside the package (`files: ["./schema/*"]`) as an offline
31
31
  * artifact and golden-snapshot source of truth; it is just no longer what the pointer references.
32
32
  */
@@ -44,3 +44,13 @@ export declare const SHELL_ALLOWLIST_FILE = "shell-allowlist.json";
44
44
  * that groups tools back by server (the [[TUI-C20]] MCP debug tab) can never silently drift apart.
45
45
  */
46
46
  export declare const MCP_TOOL_NAME_PREFIX = "mcp";
47
+ /**
48
+ * GS2-35 — the canonical Git co-author identity for agent-authored commits. When Gaunt Sloth writes
49
+ * a commit (via `run_shell_command` `git commit`) the co-author is *Gaunt Sloth itself*, NOT the
50
+ * underlying model — attributing the commit to the model name (e.g. `Claude`, `GPT`) is factually
51
+ * wrong. Config (`commit.coAuthor`) overrides this; single-sourced so the config default and the
52
+ * prompt-guidance fallback ({@link import('#src/utils/systemPromptNotes.js').appendCommitCoAuthorNote})
53
+ * can never drift.
54
+ */
55
+ export declare const DEFAULT_COMMIT_CO_AUTHOR_NAME = "Gaunt Sloth";
56
+ export declare const DEFAULT_COMMIT_CO_AUTHOR_EMAIL = "code@gauntsloth.app";
package/dist/constants.js CHANGED
@@ -26,7 +26,7 @@ export const AIIGNORE_FILE = '.aiignore';
26
26
  * The channel is **major-pinned** (`/schema/v2/…`, not `latest` or `alpha`) so a config never
27
27
  * revalidates against a future major it was not written for. The hosted copy is kept in sync with
28
28
  * this package's generated schema by the deploy runbook in
29
- * `websites/gauntsloth.app/schema/README.md` (interim, hand-run) and, in time, PLAT-9's automated
29
+ * `websites/gauntsloth-site/schema/README.md` (interim, hand-run) and, in time, PLAT-9's automated
30
30
  * release step. The schema still ships inside the package (`files: ["./schema/*"]`) as an offline
31
31
  * artifact and golden-snapshot source of truth; it is just no longer what the pointer references.
32
32
  */
@@ -44,4 +44,14 @@ export const SHELL_ALLOWLIST_FILE = 'shell-allowlist.json';
44
44
  * that groups tools back by server (the [[TUI-C20]] MCP debug tab) can never silently drift apart.
45
45
  */
46
46
  export const MCP_TOOL_NAME_PREFIX = 'mcp';
47
+ /**
48
+ * GS2-35 — the canonical Git co-author identity for agent-authored commits. When Gaunt Sloth writes
49
+ * a commit (via `run_shell_command` `git commit`) the co-author is *Gaunt Sloth itself*, NOT the
50
+ * underlying model — attributing the commit to the model name (e.g. `Claude`, `GPT`) is factually
51
+ * wrong. Config (`commit.coAuthor`) overrides this; single-sourced so the config default and the
52
+ * prompt-guidance fallback ({@link import('#src/utils/systemPromptNotes.js').appendCommitCoAuthorNote})
53
+ * can never drift.
54
+ */
55
+ export const DEFAULT_COMMIT_CO_AUTHOR_NAME = 'Gaunt Sloth';
56
+ export const DEFAULT_COMMIT_CO_AUTHOR_EMAIL = 'code@gauntsloth.app';
47
57
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,4DAA4D,CAAC;AAClG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AACvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC;AAC/D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AACxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,4DAA4D,CAAC;AAClG;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,aAAa,CAAC;AAC3D,MAAM,CAAC,MAAM,8BAA8B,GAAG,qBAAqB,CAAC"}
@@ -1,11 +1,29 @@
1
1
  import { GthConfig, ServerTool } from '#src/config.js';
2
2
  import { AgentResolvers, AgentStreamEvent, GthAgentInterface, GthCommand, GthCompiledGraph, GthRunStats, Message, PendingToolInterrupt, StatusUpdateCallback } from '#src/core/types.js';
3
3
  import type { DebugCapture } from '#src/core/debugCapture.js';
4
- import { BaseMessage } from '@langchain/core/messages';
4
+ import { AIMessageChunk, BaseMessage } from '@langchain/core/messages';
5
5
  import { RunnableConfig } from '@langchain/core/runnables';
6
6
  import { BaseToolkit, StructuredToolInterface } from '@langchain/core/tools';
7
7
  import { IterableReadableStream } from '@langchain/core/utils/stream';
8
8
  import { BaseCheckpointSaver } from '@langchain/langgraph';
9
+ /**
10
+ * TUI-C29 — return a chunk fit for `concat`-aggregation with OpenRouter's raw response stripped.
11
+ *
12
+ * The openrouter provider enables `__includeRawResponse` (TUI-C22), which stashes the *full* raw
13
+ * provider response under `additional_kwargs.__raw_response` so {@link pickReasoningDelta} can lift
14
+ * a top-level `reasoning` delta the ChatOpenAI converter otherwise drops. Reasoning is only ever
15
+ * read off the **per-chunk** `additional_kwargs`, never off the aggregate — yet `AIMessageChunk.concat`
16
+ * deep-merges `additional_kwargs` (`_mergeDicts`), so leaving `__raw_response` on the chunk makes the
17
+ * aggregate accumulate a linearly-growing, unused copy of it for the whole stream.
18
+ *
19
+ * Strip it on a **shallow clone** so the ORIGINAL chunk the reasoning path reads (line ~697) stays
20
+ * untouched (approach A — no mutation of the stream-owned object). The clone preserves the chunk's
21
+ * prototype (so it keeps a working `.concat` when it becomes the first aggregate) and every field
22
+ * `concat` reads (content, tool_call_chunks, tool_calls, response_metadata, usage_metadata, id),
23
+ * overriding only `additional_kwargs`. When the key is absent (every non-OpenRouter provider) the
24
+ * chunk is returned as-is, so those paths are byte-for-byte unchanged.
25
+ */
26
+ export declare function stripRawResponseForAggregation(chunk: AIMessageChunk): AIMessageChunk;
9
27
  /**
10
28
  * Shared, graph-agnostic agent plumbing.
11
29
  *
@@ -41,6 +59,15 @@ export declare abstract class GthAbstractAgent implements GthAgentInterface {
41
59
  */
42
60
  private runStatsAcc;
43
61
  constructor(statusUpdate: StatusUpdateCallback, resolvers?: AgentResolvers);
62
+ /**
63
+ * GS2-63 — emit one line of the technical run-header preamble (the Workdir/Model/Tools/Middleware
64
+ * block) UNLESS it is opted out via `output.header: false`. The opt-out only ever reaches here in
65
+ * non-TUI text modes: the interactive TUI forces `output.header` on before init (see
66
+ * `createTuiSession`), and the TUI event path never goes through the interrupt-hint site, so the
67
+ * whole preamble stays visible there. Only INFO header lines route through this — real model/tool
68
+ * output, warnings and errors keep using {@link statusUpdate} directly.
69
+ */
70
+ protected headerStatus(message: string): void;
44
71
  /**
45
72
  * GS2-16 — clear the per-run analytics tally so the next turn starts from zero. The runner
46
73
  * calls this at each turn boundary because it (and this agent) are reused across turns in an
@@ -7,6 +7,150 @@ import { AIMessage, AIMessageChunk, ToolMessage } from '@langchain/core/messages
7
7
  import { IterableReadableStream } from '@langchain/core/utils/stream';
8
8
  import { interrupt, Command, GraphInterrupt } from '@langchain/langgraph';
9
9
  import { extractInlineBinaryBlocks, materializeBinaryOutputs, renderAssistantContent, } from '#src/utils/binaryOutputUtils.js';
10
+ const THINK_OPEN = '<think>';
11
+ const THINK_CLOSE = '</think>';
12
+ /**
13
+ * TUI-C22 — length of the longest suffix of `s` that is a *proper* (shorter-than-full) prefix of
14
+ * `tag`. Used by {@link createThinkTagSplitter} to hold back a trailing partial that might complete
15
+ * into `tag` on the next chunk (e.g. a chunk ending in `<thi` when the tag is `<think>`).
16
+ */
17
+ function trailingPartialLen(s, tag) {
18
+ const max = Math.min(s.length, tag.length - 1);
19
+ for (let k = max; k > 0; k--) {
20
+ if (s.slice(s.length - k) === tag.slice(0, k))
21
+ return k;
22
+ }
23
+ return 0;
24
+ }
25
+ /**
26
+ * TUI-C22 — stateful separator of inline `<think>...</think>` thinking from answer text, robust to
27
+ * tags split across streamed chunks. Many thinking models served over an OpenAI-compatible `/v1`
28
+ * shim (qwen3 / deepseek-r1 over Ollama) inline their reasoning as `<think>…</think>` in the
29
+ * message `content` rather than in `additional_kwargs.reasoning_content`; without this it would
30
+ * render as answer text and the `/reasoning` panel would stay empty.
31
+ *
32
+ * `push(text)` returns the segments it can classify unambiguously *now*, buffering any trailing
33
+ * partial tag (so a `<think>` arriving as `<thi` + `nk>` across two chunks is still detected) and
34
+ * the run of thinking between an open and a not-yet-seen close tag. `flush()` drains the buffer at
35
+ * a message/stream boundary: an unterminated `<think>` at EOF yields its remainder as reasoning; a
36
+ * dangling non-tag partial (e.g. a lone `<` or `<thi` that never completed) yields as answer, so no
37
+ * text is ever dropped. Purely additive — text with no `<think>` passes straight through as answer.
38
+ */
39
+ function createThinkTagSplitter() {
40
+ let buffer = '';
41
+ let inThink = false;
42
+ function push(text) {
43
+ const segments = [];
44
+ if (text.length === 0 && buffer.length === 0)
45
+ return segments;
46
+ buffer += text;
47
+ for (;;) {
48
+ if (inThink) {
49
+ const idx = buffer.indexOf(THINK_CLOSE);
50
+ if (idx >= 0) {
51
+ if (idx > 0)
52
+ segments.push({ kind: 'reasoning', text: buffer.slice(0, idx) });
53
+ buffer = buffer.slice(idx + THINK_CLOSE.length);
54
+ inThink = false;
55
+ continue;
56
+ }
57
+ // No full close tag yet — emit reasoning except a trailing partial of `</think>`.
58
+ const hold = trailingPartialLen(buffer, THINK_CLOSE);
59
+ const emit = buffer.slice(0, buffer.length - hold);
60
+ if (emit.length > 0)
61
+ segments.push({ kind: 'reasoning', text: emit });
62
+ buffer = hold > 0 ? buffer.slice(buffer.length - hold) : '';
63
+ break;
64
+ }
65
+ else {
66
+ const idx = buffer.indexOf(THINK_OPEN);
67
+ if (idx >= 0) {
68
+ if (idx > 0)
69
+ segments.push({ kind: 'answer', text: buffer.slice(0, idx) });
70
+ buffer = buffer.slice(idx + THINK_OPEN.length);
71
+ inThink = true;
72
+ continue;
73
+ }
74
+ // No full open tag yet — emit answer except a trailing partial of `<think>`.
75
+ const hold = trailingPartialLen(buffer, THINK_OPEN);
76
+ const emit = buffer.slice(0, buffer.length - hold);
77
+ if (emit.length > 0)
78
+ segments.push({ kind: 'answer', text: emit });
79
+ buffer = hold > 0 ? buffer.slice(buffer.length - hold) : '';
80
+ break;
81
+ }
82
+ }
83
+ return segments;
84
+ }
85
+ function flush() {
86
+ const segments = [];
87
+ if (buffer.length > 0) {
88
+ segments.push({ kind: inThink ? 'reasoning' : 'answer', text: buffer });
89
+ }
90
+ buffer = '';
91
+ inThink = false;
92
+ return segments;
93
+ }
94
+ return { push, flush };
95
+ }
96
+ /**
97
+ * TUI-C22 — pick this chunk's reasoning delta, broadening capture beyond the single historical
98
+ * source without disturbing it. Precedence, and why:
99
+ * 1. `additional_kwargs.reasoning_content` — the DeepSeek/vLLM/Anthropic convention the pipeline
100
+ * already read; returned verbatim so that happy path is byte-for-byte unchanged.
101
+ * 2. A top-level `reasoning` lifted from the raw provider response (OpenRouter convention). The
102
+ * `ChatOpenAI` completions converter drops `reasoning`, so it is only reachable when the model
103
+ * was built with `__includeRawResponse` (see `providers/openrouter.ts`), which stashes the raw
104
+ * response under `additional_kwargs.__raw_response` — streaming deltas expose it at
105
+ * `choices[0].delta.reasoning`, a whole message at `choices[0].message.reasoning`.
106
+ * 3. A defensive direct `additional_kwargs.reasoning` (some integrations may surface it there).
107
+ * Only consulted when `reasoning_content` is absent, so the two never double-emit.
108
+ */
109
+ function pickReasoningDelta(kwargs, isChunk) {
110
+ if (!kwargs)
111
+ return '';
112
+ const reasoningContent = kwargs.reasoning_content;
113
+ if (typeof reasoningContent === 'string' && reasoningContent.length > 0) {
114
+ return reasoningContent;
115
+ }
116
+ const raw = kwargs.__raw_response;
117
+ const choice = raw?.choices?.[0];
118
+ const fromRaw = isChunk ? choice?.delta?.reasoning : choice?.message?.reasoning;
119
+ if (typeof fromRaw === 'string' && fromRaw.length > 0)
120
+ return fromRaw;
121
+ const direct = kwargs.reasoning;
122
+ if (typeof direct === 'string' && direct.length > 0)
123
+ return direct;
124
+ return '';
125
+ }
126
+ /**
127
+ * TUI-C29 — return a chunk fit for `concat`-aggregation with OpenRouter's raw response stripped.
128
+ *
129
+ * The openrouter provider enables `__includeRawResponse` (TUI-C22), which stashes the *full* raw
130
+ * provider response under `additional_kwargs.__raw_response` so {@link pickReasoningDelta} can lift
131
+ * a top-level `reasoning` delta the ChatOpenAI converter otherwise drops. Reasoning is only ever
132
+ * read off the **per-chunk** `additional_kwargs`, never off the aggregate — yet `AIMessageChunk.concat`
133
+ * deep-merges `additional_kwargs` (`_mergeDicts`), so leaving `__raw_response` on the chunk makes the
134
+ * aggregate accumulate a linearly-growing, unused copy of it for the whole stream.
135
+ *
136
+ * Strip it on a **shallow clone** so the ORIGINAL chunk the reasoning path reads (line ~697) stays
137
+ * untouched (approach A — no mutation of the stream-owned object). The clone preserves the chunk's
138
+ * prototype (so it keeps a working `.concat` when it becomes the first aggregate) and every field
139
+ * `concat` reads (content, tool_call_chunks, tool_calls, response_metadata, usage_metadata, id),
140
+ * overriding only `additional_kwargs`. When the key is absent (every non-OpenRouter provider) the
141
+ * chunk is returned as-is, so those paths are byte-for-byte unchanged.
142
+ */
143
+ export function stripRawResponseForAggregation(chunk) {
144
+ const kwargs = chunk.additional_kwargs;
145
+ if (!kwargs || !('__raw_response' in kwargs))
146
+ return chunk;
147
+ const rest = { ...kwargs };
148
+ delete rest.__raw_response;
149
+ const clone = Object.create(Object.getPrototypeOf(chunk));
150
+ Object.assign(clone, chunk);
151
+ clone.additional_kwargs = rest;
152
+ return clone;
153
+ }
10
154
  /**
11
155
  * Shared, graph-agnostic agent plumbing.
12
156
  *
@@ -47,6 +191,19 @@ export class GthAbstractAgent {
47
191
  };
48
192
  this.resolvers = resolvers;
49
193
  }
194
+ /**
195
+ * GS2-63 — emit one line of the technical run-header preamble (the Workdir/Model/Tools/Middleware
196
+ * block) UNLESS it is opted out via `output.header: false`. The opt-out only ever reaches here in
197
+ * non-TUI text modes: the interactive TUI forces `output.header` on before init (see
198
+ * `createTuiSession`), and the TUI event path never goes through the interrupt-hint site, so the
199
+ * whole preamble stays visible there. Only INFO header lines route through this — real model/tool
200
+ * output, warnings and errors keep using {@link statusUpdate} directly.
201
+ */
202
+ headerStatus(message) {
203
+ if (this.config?.output?.header === false)
204
+ return;
205
+ this.statusUpdate(StatusLevel.INFO, message);
206
+ }
50
207
  /**
51
208
  * GS2-16 — clear the per-run analytics tally so the next turn starts from zero. The runner
52
209
  * calls this at each turn boundary because it (and this agent) are reused across turns in an
@@ -208,7 +365,11 @@ export class GthAbstractAgent {
208
365
  if (!abortController.signal.aborted) {
209
366
  abortController.abort();
210
367
  }
211
- }, this.config.canInterruptInferenceWithEsc);
368
+ }, this.config.canInterruptInferenceWithEsc,
369
+ // GS2-63: the interrupt hint is part of the run-header preamble. Suppress the hint box (while
370
+ // still arming the Esc/Q handler) when the header is opted out. This site only runs in the
371
+ // non-TUI text path (`streamFromInput`); the TUI event path never reaches it.
372
+ this.config.output?.header !== false);
212
373
  let stream;
213
374
  try {
214
375
  stream = await this.agent.stream(input, {
@@ -433,6 +594,33 @@ export class GthAbstractAgent {
433
594
  let aggregatedAIChunk = null;
434
595
  let reasoningOpen = false;
435
596
  const flushed = new Set();
597
+ // TUI-C22 — one splitter for the whole stream so a <think> opened in one chunk and closed
598
+ // several chunks later is tracked across the boundary. Reset at message boundaries via flush().
599
+ const thinkSplitter = createThinkTagSplitter();
600
+ // TUI-C22 — emit ordered answer/reasoning segments, opening/closing the reasoning block as the
601
+ // kind switches. Shares `reasoningOpen` with the reasoning_content path so the two compose
602
+ // (a reasoning_content delta then think-derived reasoning stays one open block; answer text
603
+ // closes it), preserving the exact existing event sequence when no <think> tags are present.
604
+ function* emitSegments(segments) {
605
+ for (const seg of segments) {
606
+ if (seg.text.length === 0)
607
+ continue;
608
+ if (seg.kind === 'reasoning') {
609
+ if (!reasoningOpen) {
610
+ reasoningOpen = true;
611
+ yield { type: 'reasoning_start' };
612
+ }
613
+ yield { type: 'reasoning_delta', delta: seg.text };
614
+ }
615
+ else {
616
+ if (reasoningOpen) {
617
+ reasoningOpen = false;
618
+ yield { type: 'reasoning_end' };
619
+ }
620
+ yield { type: 'text', delta: seg.text };
621
+ }
622
+ }
623
+ }
436
624
  function* flushAggregated() {
437
625
  if (!aggregatedAIChunk)
438
626
  return;
@@ -465,40 +653,39 @@ export class GthAbstractAgent {
465
653
  // run tally so the TUI turn can record real token/tool data. Fail-soft.
466
654
  this.recordRunStats(chunk);
467
655
  if (AIMessageChunk.isInstance(chunk)) {
468
- aggregatedAIChunk = aggregatedAIChunk ? aggregatedAIChunk.concat(chunk) : chunk;
469
- // Reasoning deltas Ollama (Qwen3, deepseek-r1) and Anthropic surface
470
- // thinking text in additional_kwargs.reasoning_content. Stream it as a
471
- // separate event series so clients can render it apart from the answer.
472
- const reasoningDelta = chunk.additional_kwargs?.reasoning_content;
473
- if (typeof reasoningDelta === 'string' && reasoningDelta.length > 0) {
474
- if (!reasoningOpen) {
475
- reasoningOpen = true;
476
- yield { type: 'reasoning_start' };
477
- }
478
- yield { type: 'reasoning_delta', delta: reasoningDelta };
656
+ // TUI-C29 aggregate a raw-response-stripped clone. OpenRouter's `__raw_response`
657
+ // (read per-chunk below at pickReasoningDelta, never off the aggregate) would otherwise
658
+ // deep-merge into the aggregate on every concat and grow linearly for the whole stream.
659
+ // The original `chunk` stays untouched so the reasoning + <think> paths read it verbatim.
660
+ const chunkForAggregation = stripRawResponseForAggregation(chunk);
661
+ aggregatedAIChunk = aggregatedAIChunk
662
+ ? aggregatedAIChunk.concat(chunkForAggregation)
663
+ : chunkForAggregation;
664
+ // Reasoning deltas historically Ollama (Qwen3, deepseek-r1) and Anthropic surface
665
+ // thinking in additional_kwargs.reasoning_content; TUI-C22 additionally lifts a top-level
666
+ // `reasoning` from the raw response (OpenRouter) when reasoning_content is absent. Stream
667
+ // it as a separate event series so clients can render it apart from the answer.
668
+ const reasoningDelta = pickReasoningDelta(chunk.additional_kwargs, true);
669
+ if (reasoningDelta.length > 0) {
670
+ yield* emitSegments([{ kind: 'reasoning', text: reasoningDelta }]);
479
671
  }
480
- // Yield text incrementally — use this chunk's text (delta), not the
481
- // aggregated content which is cumulative.
672
+ // Yield text incrementally — use this chunk's text (delta), not the aggregated content
673
+ // which is cumulative. TUI-C22 routes it through the think splitter so inline
674
+ // <think>...</think> (buffered across chunks) is peeled into the reasoning channel and
675
+ // stripped from the answer; text with no think tags passes straight through unchanged.
482
676
  if (chunk.text) {
483
- if (reasoningOpen) {
484
- reasoningOpen = false;
485
- yield { type: 'reasoning_end' };
486
- }
487
- yield { type: 'text', delta: chunk.text };
677
+ yield* emitSegments(thinkSplitter.push(chunk.text));
488
678
  }
489
679
  }
490
680
  else if (AIMessage.isInstance(chunk)) {
491
681
  // Reasoning on a non-chunk AIMessage — a non-streamed / resumed thinking message
492
682
  // (e.g. a checkpoint replay) still carries its thinking in
493
- // additional_kwargs.reasoning_content. Mirror the AIMessageChunk branch and emit the
494
- // same reasoning event series, otherwise the thought is silently dropped (TUI-C15).
495
- const reasoningContent = chunk.additional_kwargs?.reasoning_content;
496
- if (typeof reasoningContent === 'string' && reasoningContent.length > 0) {
497
- if (!reasoningOpen) {
498
- reasoningOpen = true;
499
- yield { type: 'reasoning_start' };
500
- }
501
- yield { type: 'reasoning_delta', delta: reasoningContent };
683
+ // additional_kwargs.reasoning_content (or, TUI-C22, a top-level `reasoning` on the raw
684
+ // response message). Mirror the AIMessageChunk branch and emit the same reasoning event
685
+ // series, otherwise the thought is silently dropped (TUI-C15).
686
+ const reasoningContent = pickReasoningDelta(chunk.additional_kwargs, false);
687
+ if (reasoningContent.length > 0) {
688
+ yield* emitSegments([{ kind: 'reasoning', text: reasoningContent }]);
502
689
  }
503
690
  // Non-chunk AIMessage (e.g. on resumed runs) carries final tool_calls
504
691
  // directly; merge them into the aggregate so flushAggregated emits them.
@@ -510,14 +697,18 @@ export class GthAbstractAgent {
510
697
  aggregatedAIChunk = aggregatedAIChunk ? aggregatedAIChunk.concat(synthetic) : synthetic;
511
698
  }
512
699
  if (chunk.text) {
513
- if (reasoningOpen) {
514
- reasoningOpen = false;
515
- yield { type: 'reasoning_end' };
516
- }
517
- yield { type: 'text', delta: chunk.text };
700
+ yield* emitSegments(thinkSplitter.push(chunk.text));
518
701
  }
702
+ // A non-chunk AIMessage is a COMPLETE message, not a delta — drain any residual now
703
+ // (an unterminated <think> becomes reasoning, a dangling partial becomes answer) so its
704
+ // buffered state never leaks into a subsequent message (TUI-C22).
705
+ yield* emitSegments(thinkSplitter.flush());
519
706
  }
520
707
  if (chunk instanceof ToolMessage) {
708
+ // TUI-C22 — drain buffered think text (emitting its segments, which may open/close
709
+ // reasoning) BEFORE closing the reasoning block, so a trailing reasoning slice can't land
710
+ // after reasoning_end or be dropped. A tool round ends the assistant message, so reset.
711
+ yield* emitSegments(thinkSplitter.flush());
521
712
  if (reasoningOpen) {
522
713
  reasoningOpen = false;
523
714
  yield { type: 'reasoning_end' };
@@ -540,6 +731,9 @@ export class GthAbstractAgent {
540
731
  };
541
732
  }
542
733
  }
734
+ // TUI-C22 — drain any buffered think text at stream end (an unterminated <think> surfaces as
735
+ // reasoning, a dangling partial as answer) before closing the reasoning block.
736
+ yield* emitSegments(thinkSplitter.flush());
543
737
  // Close any still-open reasoning block before flushing tool calls.
544
738
  if (reasoningOpen) {
545
739
  yield { type: 'reasoning_end' };