@gaunt-sloth/agent 2.0.0-alpha.8 → 2.0.0-beta.0

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 (126) hide show
  1. package/README.md +73 -23
  2. package/cli-acp.js +21 -24
  3. package/dist/builtInToolsConfig.d.ts +17 -3
  4. package/dist/builtInToolsConfig.js +43 -41
  5. package/dist/builtInToolsConfig.js.map +1 -1
  6. package/dist/core/debugCapture.d.ts +7 -49
  7. package/dist/core/debugCapture.js +1 -1
  8. package/dist/core/debugCapture.js.map +1 -1
  9. package/dist/core/resolveAgentFactory.d.ts +10 -9
  10. package/dist/core/resolveAgentFactory.js +11 -12
  11. package/dist/core/resolveAgentFactory.js.map +1 -1
  12. package/dist/index.d.ts +4 -4
  13. package/dist/index.js +7 -5
  14. package/dist/index.js.map +1 -1
  15. package/dist/mcp/OAuthClientProviderImpl.js.map +1 -1
  16. package/dist/mcp/tlsTrust.d.ts +61 -0
  17. package/dist/mcp/tlsTrust.js +109 -0
  18. package/dist/mcp/tlsTrust.js.map +1 -0
  19. package/dist/middleware/binaryContentInjectionMiddleware.d.ts +8 -1
  20. package/dist/middleware/binaryContentInjectionMiddleware.js +11 -2
  21. package/dist/middleware/binaryContentInjectionMiddleware.js.map +1 -1
  22. package/dist/middleware/frontendImageInjectionMiddleware.d.ts +107 -0
  23. package/dist/middleware/frontendImageInjectionMiddleware.js +167 -0
  24. package/dist/middleware/frontendImageInjectionMiddleware.js.map +1 -0
  25. package/dist/middleware/registry.js +49 -1
  26. package/dist/middleware/registry.js.map +1 -1
  27. package/dist/middleware/types.d.ts +16 -2
  28. package/dist/modules/a2a/A2AClientWrapper.d.ts +56 -1
  29. package/dist/modules/a2a/A2AClientWrapper.js +131 -31
  30. package/dist/modules/a2a/A2AClientWrapper.js.map +1 -1
  31. package/dist/modules/acp/acpAgentApp.d.ts +57 -0
  32. package/dist/modules/acp/acpAgentApp.js +378 -0
  33. package/dist/modules/acp/acpAgentApp.js.map +1 -0
  34. package/dist/modules/acp/acpAgentAppV1.d.ts +52 -0
  35. package/dist/modules/acp/acpAgentAppV1.js +307 -0
  36. package/dist/modules/acp/acpAgentAppV1.js.map +1 -0
  37. package/dist/modules/acp/acpCommon.d.ts +167 -0
  38. package/dist/modules/acp/acpCommon.js +282 -0
  39. package/dist/modules/acp/acpCommon.js.map +1 -0
  40. package/dist/modules/acp/acpPermissions.d.ts +65 -0
  41. package/dist/modules/acp/acpPermissions.js +162 -0
  42. package/dist/modules/acp/acpPermissions.js.map +1 -0
  43. package/dist/modules/acp/acpPermissionsV1.d.ts +45 -0
  44. package/dist/modules/acp/acpPermissionsV1.js +110 -0
  45. package/dist/modules/acp/acpPermissionsV1.js.map +1 -0
  46. package/dist/modules/acp/acpRouter.d.ts +41 -0
  47. package/dist/modules/acp/acpRouter.js +48 -0
  48. package/dist/modules/acp/acpRouter.js.map +1 -0
  49. package/dist/modules/acp/acpStdio.d.ts +47 -0
  50. package/dist/modules/acp/acpStdio.js +71 -0
  51. package/dist/modules/acp/acpStdio.js.map +1 -0
  52. package/dist/modules/acp/acpToolCalls.d.ts +93 -0
  53. package/dist/modules/acp/acpToolCalls.js +193 -0
  54. package/dist/modules/acp/acpToolCalls.js.map +1 -0
  55. package/dist/modules/acp/acpUpdates.d.ts +48 -0
  56. package/dist/modules/acp/acpUpdates.js +142 -0
  57. package/dist/modules/acp/acpUpdates.js.map +1 -0
  58. package/dist/modules/acp/acpUpdatesV1.d.ts +61 -0
  59. package/dist/modules/acp/acpUpdatesV1.js +162 -0
  60. package/dist/modules/acp/acpUpdatesV1.js.map +1 -0
  61. package/dist/modules/apiAgUiModule.d.ts +87 -0
  62. package/dist/modules/apiAgUiModule.js +193 -28
  63. package/dist/modules/apiAgUiModule.js.map +1 -1
  64. package/dist/modules/interactiveSessionModule.js +497 -51
  65. package/dist/modules/interactiveSessionModule.js.map +1 -1
  66. package/dist/modules/slashCommands.d.ts +582 -0
  67. package/dist/modules/slashCommands.js +1001 -0
  68. package/dist/modules/slashCommands.js.map +1 -0
  69. package/dist/resolvers.js +119 -9
  70. package/dist/resolvers.js.map +1 -1
  71. package/dist/tools/GthCustomToolkit.js +95 -11
  72. package/dist/tools/GthCustomToolkit.js.map +1 -1
  73. package/dist/tools/GthDevToolkit.d.ts +8 -5
  74. package/dist/tools/GthDevToolkit.js +89 -43
  75. package/dist/tools/GthDevToolkit.js.map +1 -1
  76. package/dist/tools/GthFileSystemToolkit.d.ts +63 -0
  77. package/dist/tools/GthFileSystemToolkit.js +506 -105
  78. package/dist/tools/GthFileSystemToolkit.js.map +1 -1
  79. package/dist/tools/McpResourceTool.d.ts +31 -0
  80. package/dist/tools/McpResourceTool.js +106 -0
  81. package/dist/tools/McpResourceTool.js.map +1 -0
  82. package/dist/tools/gthChecklistTool.d.ts +30 -0
  83. package/dist/tools/gthChecklistTool.js +80 -0
  84. package/dist/tools/gthChecklistTool.js.map +1 -0
  85. package/dist/tools/gthGrepTool.d.ts +54 -0
  86. package/dist/tools/gthGrepTool.js +482 -0
  87. package/dist/tools/gthGrepTool.js.map +1 -0
  88. package/dist/tools/shell/env.js +1 -1
  89. package/dist/tools/shell/env.js.map +1 -1
  90. package/dist/tools/shell/outputBuffer.js.map +1 -1
  91. package/dist/tools/shell/workDir.d.ts +1 -10
  92. package/dist/tools/shell/workDir.js +10 -36
  93. package/dist/tools/shell/workDir.js.map +1 -1
  94. package/dist/utils/mcpAuthError.d.ts +36 -0
  95. package/dist/utils/mcpAuthError.js +89 -0
  96. package/dist/utils/mcpAuthError.js.map +1 -0
  97. package/dist/utils/mcpUtils.js +16 -0
  98. package/dist/utils/mcpUtils.js.map +1 -1
  99. package/package.json +13 -13
  100. package/dist/core/GthDeepAgent.d.ts +0 -181
  101. package/dist/core/GthDeepAgent.js +0 -682
  102. package/dist/core/GthDeepAgent.js.map +0 -1
  103. package/dist/core/deepAgentPermissions.d.ts +0 -115
  104. package/dist/core/deepAgentPermissions.js +0 -282
  105. package/dist/core/deepAgentPermissions.js.map +0 -1
  106. package/dist/core/gthAcpServer.d.ts +0 -27
  107. package/dist/core/gthAcpServer.js +0 -82
  108. package/dist/core/gthAcpServer.js.map +0 -1
  109. package/dist/core/gthDeepAgentFactory.d.ts +0 -8
  110. package/dist/core/gthDeepAgentFactory.js +0 -9
  111. package/dist/core/gthDeepAgentFactory.js.map +0 -1
  112. package/dist/modules/acpModule.d.ts +0 -40
  113. package/dist/modules/acpModule.js +0 -78
  114. package/dist/modules/acpModule.js.map +0 -1
  115. package/dist/tools/shell/allowlist.d.ts +0 -11
  116. package/dist/tools/shell/allowlist.js +0 -12
  117. package/dist/tools/shell/allowlist.js.map +0 -1
  118. package/dist/tools/shell/arity.d.ts +0 -11
  119. package/dist/tools/shell/arity.js +0 -12
  120. package/dist/tools/shell/arity.js.map +0 -1
  121. package/dist/tools/shell/hardline.d.ts +0 -15
  122. package/dist/tools/shell/hardline.js +0 -88
  123. package/dist/tools/shell/hardline.js.map +0 -1
  124. package/dist/tools/shell/normalize.d.ts +0 -10
  125. package/dist/tools/shell/normalize.js +0 -11
  126. package/dist/tools/shell/normalize.js.map +0 -1
@@ -5,19 +5,20 @@ import { BaseToolkit, tool } from '@langchain/core/tools';
5
5
  import { z } from 'zod';
6
6
  import { spawn, spawnSync } from 'child_process';
7
7
  import path from 'node:path';
8
- import { displayInfo, displayError, displayWarning } from '@gaunt-sloth/core/utils/consoleUtils.js';
8
+ // TUI-C31 (a): failure-path warnings/errors travel the tool-output channel (see emitToolOutput
9
+ // below) so they reach the managed frame under the Ink TUI instead of raw stdout; the channel's
10
+ // default sink still renders them via displayWarning/displayError for every headless surface.
9
11
  import { getShellMaxOutputBytes, getShellTimeoutMs, isShellToolEnabled, } from '@gaunt-sloth/core/config.js';
10
- import { stdout } from '@gaunt-sloth/core/utils/systemUtils.js';
12
+ import { emitToolOutput } from '@gaunt-sloth/core/core/toolOutputChannel.js';
11
13
  import { ShellCommandFailedError } from '@gaunt-sloth/core/core/shell/ShellCommandFailedError.js';
12
- import { checkHardline } from '#src/tools/shell/hardline.js';
14
+ import { buildHardlineRefusal, checkHardline } from '@gaunt-sloth/core/core/shell/hardline.js';
13
15
  import { buildScrubbedEnv } from '#src/tools/shell/env.js';
14
16
  import { OutputBuffer } from '#src/tools/shell/outputBuffer.js';
15
17
  import { getShellWorkDir } from '#src/tools/shell/workDir.js';
16
- // EXT-21: `ShellCommandFailedError` moved to core so BOTH agents can recognise a shell failure
18
+ // EXT-21: `ShellCommandFailedError` lives in core so any agent can recognise a shell failure
17
19
  // without breaking the agent→core dependency direction (the lean `GthLangChainAgent` lives in core
18
- // and cannot import from agent). Re-exported here so the historical import site
19
- // (`#src/tools/GthDevToolkit.js`) GthDeepAgent + the existing GthDevToolkit specs keeps working
20
- // and every throw below is one and the same core type both agents' softeners catch.
20
+ // and cannot import from agent). Re-exported here so `#src/tools/GthDevToolkit.js` importers
21
+ // resolve it too, and every throw below is one and the same core type the softener catches.
21
22
  export { ShellCommandFailedError } from '@gaunt-sloth/core/core/shell/ShellCommandFailedError.js';
22
23
  // Grace period (ms) between SIGTERM and the escalation to SIGKILL when a command
23
24
  // exceeds its timeout. Mirrors opencode's `forceKillAfter` (3s).
@@ -82,7 +83,9 @@ export function killProcessGroup(child, signal) {
82
83
  // Already exited — nothing to do.
83
84
  }
84
85
  }
85
- // Helper function to create a tool with dev type
86
+ // Helper function to create a tool with dev type. The fn's second parameter is LangChain's
87
+ // ToolRunnableConfig — when the framework invokes the tool with a ToolCall, `config.toolCall.id`
88
+ // identifies the call, which TUI-C17 threads into the live-output channel for attribution.
86
89
  function createGthTool(fn, config, gthDevType) {
87
90
  const toolInstance = tool(fn, config);
88
91
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -98,6 +101,25 @@ const RunSingleTestArgsSchema = z.object({
98
101
  });
99
102
  const RunShellCommandArgsSchema = z.object({
100
103
  command: z.string().describe('The shell command to run'),
104
+ /**
105
+ * [[EXT-29]] (spec §5.1, §7) — **the move §7 already promises the model and it could not make.**
106
+ * The rejection message names *"call the same command with a justification"* among the moves
107
+ * available after a refusal; without an argument to carry one, the only way to act on that was to
108
+ * re-send the identical call, which is what makes an agent repeat itself and burn §5.3's cap
109
+ * without producing information.
110
+ *
111
+ * It reaches the rater as fenced, untrusted data, weighed asymmetrically (§5.1): a justification
112
+ * may only ever make an outcome LESS severe, and a stated intent that does not match what the
113
+ * command does is grounds for rejection rather than for a discount. Never sent for its own sake —
114
+ * an unprompted one is noise the rater still has to read.
115
+ */
116
+ justification: z
117
+ .string()
118
+ .optional()
119
+ .describe('Optional. Why this command is the right one, in a sentence or two — supply it when ' +
120
+ 'RE-CALLING a command that was rejected, so the reviewer can weigh what you are trying ' +
121
+ 'to do. Address the objection you were given rather than restating the request; a ' +
122
+ 'justification that does not match what the command actually does is rejected outright.'),
101
123
  });
102
124
  const TEST_PATH_PLACEHOLDER = '${testPath}';
103
125
  export default class GthDevToolkit extends BaseToolkit {
@@ -105,8 +127,8 @@ export default class GthDevToolkit extends BaseToolkit {
105
127
  commands;
106
128
  /**
107
129
  * The active command, threaded through so the EXT-12 absent-config default for the shell
108
- * tool (ON in `code`, OFF elsewhere) is resolved consistently with the deep agent's
109
- * interrupt wiring. Omitted → historical OFF-by-default behaviour.
130
+ * tool (ON in `code`, OFF elsewhere) is resolved consistently with the approval-interrupt
131
+ * wiring. Omitted → historical OFF-by-default behaviour.
110
132
  */
111
133
  command;
112
134
  constructor(commands = {}, command) {
@@ -185,25 +207,39 @@ export default class GthDevToolkit extends BaseToolkit {
185
207
  * 2. output capped with a head/tail window + temp-file spillover,
186
208
  * 3. provider/LLM credentials scrubbed from the child env,
187
209
  * 4. an unbypassable hardline blocklist (refuses catastrophic commands BEFORE
188
- * spawn — fires even when confirmation is bypassed by yolo).
210
+ * spawn — fires even when confirmation is bypassed by approvals.mode: bypass).
189
211
  *
190
212
  * Resolves with a model-facing string on a CLEAN exit (`code === 0`). EXT-20: a non-zero exit
191
213
  * and a timeout-kill instead REJECT with a {@link ShellCommandFailedError} that carries the FULL
192
214
  * model-facing body — the deep-agent {@link GthDeepShellExitSoftening} middleware converts that
193
215
  * throw into an error `ToolMessage` (status:'error' → ✗) while preserving the output, so the
194
- * model still sees the killed-after-N / exit-code message and can continue. Spawn-level failures
195
- * (`child.on('error')`) still reject with a plain `Error`.
216
+ * model still sees the killed-after-N / exit-code message and can continue. GS2-36: spawn-level
217
+ * failures (`child.on('error')` missing shell binary, a non-existent cwd, EMFILE, …) ALSO reject
218
+ * with a {@link ShellCommandFailedError} (exitCode null) so the same softeners convert them into a
219
+ * recoverable error `ToolMessage`; previously they rejected a plain `Error` that neither softener
220
+ * recognised, so a spawn failure aborted the whole run.
196
221
  */
197
- async executeCommand(command, toolName) {
198
- displayInfo(`\n🔧 Executing ${toolName}: ${command}`);
199
- // (4) Hardline blocklist checked here so it fires regardless of yolo,
200
- // allow-lists, or any confirmation path. Refuse WITHOUT executing.
222
+ async executeCommand(command, toolName, toolCallId) {
223
+ // TUI-C17: the "Executing" notice + live child output go through the tool-output channel.
224
+ // With no subscriber (every non-TUI surface) the channel's default sink reproduces the
225
+ // historical behaviour exactly (displayInfo notice, raw stdout chunks); under the Ink TUI
226
+ // the session subscribes and folds them into the managed frame instead.
227
+ emitToolOutput({
228
+ toolCallId,
229
+ toolName,
230
+ kind: 'notice',
231
+ text: `🔧 Executing ${toolName}: ${command}`,
232
+ });
233
+ // (4) Hardline blocklist — checked here so it fires regardless of the approval mode,
234
+ // allow-lists, or any confirmation path. Refuse WITHOUT executing. The approvals gate consults
235
+ // the SAME floor before it rates or prompts ([[EXT-29]] §4.2), so a matching command normally
236
+ // never reaches this line; this call is the guarantee that holds when nothing gated it at all.
201
237
  const hardline = checkHardline(command);
202
238
  if (hardline) {
203
- const refusal = `Refusing to execute '${command}': blocked by hardline safety policy ` +
204
- `(${hardline.description}). This is a catastrophic, non-recoverable command ` +
205
- `and is blocked even when command confirmation is disabled.`;
206
- displayWarning(`\n⛔ ${refusal}`);
239
+ const refusal = buildHardlineRefusal(command, hardline);
240
+ // TUI-C31 (a): route through the tool-output channel so the refusal lands in the managed
241
+ // frame under the TUI (headless still gets displayWarning via the default sink, verbatim).
242
+ emitToolOutput({ toolCallId, toolName, kind: 'warning', text: `\n⛔ ${refusal}` });
207
243
  return refusal;
208
244
  }
209
245
  const timeoutMs = getShellTimeoutMs(this.commands);
@@ -211,13 +247,9 @@ export default class GthDevToolkit extends BaseToolkit {
211
247
  return new Promise((resolve, reject) => {
212
248
  const child = spawn(command, {
213
249
  shell: true,
214
- // EXT-22 (S4) / EXT-23: spawn in the SAME directory the deepagents FilesystemBackend is
215
- // rooted at, so the shell tool and the fs tools (ls/read_file/write_file/edit_file/glob/grep)
216
- // operate on one path namespace instead of diverging. `getShellWorkDir()` returns
217
- // `getCurrentWorkDir()` on the local code/chat runner + AG-UI (where init() roots the backend
218
- // at `rootDir: getCurrentWorkDir()`), and the ACP session override on the ACP transport (where
219
- // `gthAcpServer` re-roots the per-session backend to `session/new.cwd` and updates the
220
- // override to match — see tools/shell/workDir.ts). Evaluated at call time.
250
+ // EXT-22 (S4) / EXT-23: spawn in the SAME directory the filesystem tools are rooted at, so
251
+ // the shell tool and the fs tools operate on one path namespace instead of diverging.
252
+ // Resolved through the shared seam (see tools/shell/workDir.ts) and evaluated at call time.
221
253
  cwd: getShellWorkDir(),
222
254
  // (1) Never let the child block on stdin (e.g. git commit opening $EDITOR).
223
255
  stdio: ['ignore', 'pipe', 'pipe'],
@@ -249,14 +281,14 @@ export default class GthDevToolkit extends BaseToolkit {
249
281
  if (child.stdout) {
250
282
  child.stdout.on('data', (data) => {
251
283
  const chunk = data.toString();
252
- stdout.write(chunk);
284
+ emitToolOutput({ toolCallId, toolName, kind: 'output', text: chunk });
253
285
  buffer.append(chunk);
254
286
  });
255
287
  }
256
288
  if (child.stderr) {
257
289
  child.stderr.on('data', (data) => {
258
290
  const chunk = data.toString();
259
- stdout.write(chunk);
291
+ emitToolOutput({ toolCallId, toolName, kind: 'output', text: chunk });
260
292
  buffer.append(chunk);
261
293
  });
262
294
  }
@@ -303,17 +335,31 @@ export default class GthDevToolkit extends BaseToolkit {
303
335
  return;
304
336
  settled = true;
305
337
  clearTimers();
306
- const errorMsg = `Failed to execute command '${command}': ${error.message}`;
307
- displayError(errorMsg);
308
- reject(new Error(errorMsg));
338
+ // GS2-36: a spawn-level failure used to reject a plain Error, which neither the lean
339
+ // (GthLeanShellExitSoftening) nor the deep (GthDeepShellExitSoftening) softener recognises —
340
+ // so it propagated to GthAgentRunner as a fatal `Stream processing failed` and crashed the
341
+ // run. Reject a ShellCommandFailedError (exitCode null, like a timeout-kill) so BOTH softeners
342
+ // convert it into a recoverable status:'error' ToolMessage and the model can route around it.
343
+ // The message is phrased as an action-oriented recovery hint (EXT-34 hermes style).
344
+ const errorMsg = `Failed to start command '${command}': ${error.message}. ` +
345
+ 'Check that the command/executable exists and the working directory is valid, then retry.';
346
+ // TUI-C31 (a): route through the tool-output channel so the spawn-error advisory lands in
347
+ // the managed frame under the TUI (headless still gets displayError via the default sink).
348
+ emitToolOutput({ toolCallId, toolName, kind: 'error', text: errorMsg });
349
+ reject(new ShellCommandFailedError({
350
+ output: errorMsg,
351
+ exitCode: null,
352
+ command,
353
+ toolName,
354
+ }));
309
355
  });
310
356
  });
311
357
  }
312
358
  createTools() {
313
359
  const tools = [];
314
360
  if (this.commands.run_tests) {
315
- tools.push(createGthTool(async (_args) => {
316
- return await this.executeCommand(this.commands.run_tests, 'run_tests');
361
+ tools.push(createGthTool(async (_args, config) => {
362
+ return await this.executeCommand(this.commands.run_tests, 'run_tests', config?.toolCall?.id);
317
363
  }, {
318
364
  name: 'run_tests',
319
365
  description: 'Execute the test suite for this project. Runs the configured test command and returns the output.' +
@@ -322,10 +368,10 @@ export default class GthDevToolkit extends BaseToolkit {
322
368
  }, 'execute'));
323
369
  }
324
370
  if (this.commands.run_single_test) {
325
- tools.push(createGthTool(async (args) => {
371
+ tools.push(createGthTool(async (args, config) => {
326
372
  const validatedPath = this.validateParameterValue(args.testPath, 'testPath');
327
373
  const command = this.buildSingleTestCommand(validatedPath);
328
- return await this.executeCommand(command, 'run_single_test');
374
+ return await this.executeCommand(command, 'run_single_test', config?.toolCall?.id);
329
375
  }, {
330
376
  name: 'run_single_test',
331
377
  description: 'Execute a single test file. Runs the configured test command with the specified test file path. ' +
@@ -335,8 +381,8 @@ export default class GthDevToolkit extends BaseToolkit {
335
381
  }, 'execute'));
336
382
  }
337
383
  if (this.commands.run_lint) {
338
- tools.push(createGthTool(async (_args) => {
339
- return await this.executeCommand(this.commands.run_lint, 'run_lint');
384
+ tools.push(createGthTool(async (_args, config) => {
385
+ return await this.executeCommand(this.commands.run_lint, 'run_lint', config?.toolCall?.id);
340
386
  }, {
341
387
  name: 'run_lint',
342
388
  description: 'Run the linter on the project code. Executes the configured lint command and returns any linting errors or warnings.' +
@@ -345,8 +391,8 @@ export default class GthDevToolkit extends BaseToolkit {
345
391
  }, 'execute'));
346
392
  }
347
393
  if (this.commands.run_build) {
348
- tools.push(createGthTool(async (_args) => {
349
- return await this.executeCommand(this.commands.run_build, 'run_build');
394
+ tools.push(createGthTool(async (_args, config) => {
395
+ return await this.executeCommand(this.commands.run_build, 'run_build', config?.toolCall?.id);
350
396
  }, {
351
397
  name: 'run_build',
352
398
  description: 'Build the project. Executes the configured build command and returns the build output.' +
@@ -359,8 +405,8 @@ export default class GthDevToolkit extends BaseToolkit {
359
405
  // agent (createDeepAgent `interruptOn`), not a parameter sanitizer — a real shell command
360
406
  // legitimately contains pipes / `$` / `;`, so validateParameterValue must NOT be applied.
361
407
  if (isShellToolEnabled(this.commands, this.command)) {
362
- tools.push(createGthTool(async (args) => {
363
- return await this.executeCommand(args.command, 'run_shell_command');
408
+ tools.push(createGthTool(async (args, config) => {
409
+ return await this.executeCommand(args.command, 'run_shell_command', config?.toolCall?.id);
364
410
  }, {
365
411
  name: 'run_shell_command',
366
412
  description: 'Run an arbitrary shell command in the project working directory and return its ' +
@@ -1 +1 @@
1
- {"version":3,"file":"GthDevToolkit.js","sourceRoot":"","sources":["../../src/tools/GthDevToolkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GthDevToolkit.js","sourceRoot":"","sources":["../../src/tools/GthDevToolkit.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAA2B,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,+FAA+F;AAC/F,gGAAgG;AAChG,8FAA8F;AAC9F,OAAO,EAEL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,6FAA6F;AAC7F,mGAAmG;AACnG,6FAA6F;AAC7F,4FAA4F;AAC5F,OAAO,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AAElG,iFAAiF;AACjF,iEAAiE;AACjE,MAAM,aAAa,GAAG,KAAK,CAAC;AAE5B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAmE,EACnE,MAAsB;IAEtB,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO;IAE1C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,yEAAyE;QACzE,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,yFAAyF;QACzF,4FAA4F;QAC5F,4FAA4F;QAC5F,6FAA6F;QAC7F,0FAA0F;QAC1F,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,kDAAkD;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,GAAI,CAA2B,EAAE,IAAI,CAAC;QAChD,6EAA6E;QAC7E,4EAA4E;QAC5E,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO;IAC/B,CAAC;IACD,+CAA+C;IAC/C,IAAI,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,iGAAiG;AACjG,2FAA2F;AAC3F,SAAS,aAAa,CACpB,EAAsE,EACtE,MAIC,EACD,UAAqB;IAErB,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACtC,8DAA8D;IAC7D,YAAoB,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9C,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,wCAAwC;AACxC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACxC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;CACvE,CAAC,CAAC;AACH,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACxD;;;;;;;;;;;OAWG;IACH,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF;QACnF,wFAAwF;QACxF,mFAAmF;QACnF,wFAAwF,CAC3F;CACJ,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,WAAW;IACpD,KAAK,CAA4B;IACzB,QAAQ,CAAoB;IACpC;;;;OAIG;IACc,OAAO,CAAyB;IAEjD,YAAY,QAAQ,GAAsB,EAAE,EAAE,OAAgC;QAC5E,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,iBAA8B;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAChC,8DAA8D;YAC9D,MAAM,QAAQ,GAAI,IAAY,CAAC,UAAU,CAAC;YAC1C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,UAAkB,EAAE,SAAiB;QAC1D,2BAA2B;QAC3B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iDAAiD,SAAS,GAAG,CAAC,CAAC;QACjF,CAAC;QAED,yCAAyC;QACzC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,KAAK,CAAC,8DAA8D,SAAS,GAAG,CAAC,CAAC;QAC9F,CAAC;QAED,oDAAoD;QACpD,IACE,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EACzB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,SAAS,GAAG,CAAC,CAAC;QAC1F,CAAC;QAED,uBAAuB;QACvB,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,SAAS,GAAG,CAAC,CAAC;QAC5E,CAAC;QAED,wDAAwD;QACxD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAEnD,mCAAmC;QACnC,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,8DAA8D,SAAS,GAAG,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,QAAgB;QAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAClE,0CAA0C;gBAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI,QAAQ,EAAE,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACK,KAAK,CAAC,cAAc,CAC1B,OAAe,EACf,QAAgB,EAChB,UAAmB;QAEnB,0FAA0F;QAC1F,uFAAuF;QACvF,0FAA0F;QAC1F,wEAAwE;QACxE,cAAc,CAAC;YACb,UAAU;YACV,QAAQ;YACR,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,gBAAgB,QAAQ,KAAK,OAAO,EAAE;SAC7C,CAAC,CAAC;QAEH,qFAAqF;QACrF,+FAA+F;QAC/F,8FAA8F;QAC9F,+FAA+F;QAC/F,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACxD,yFAAyF;YACzF,2FAA2F;YAC3F,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,OAAO,EAAE,EAAE,CAAC,CAAC;YAClF,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE7D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE;gBAC3B,KAAK,EAAE,IAAI;gBACX,2FAA2F;gBAC3F,sFAAsF;gBACtF,4FAA4F;gBAC5F,GAAG,EAAE,eAAe,EAAE;gBACtB,4EAA4E;gBAC5E,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,wEAAwE;gBACxE,4EAA4E;gBAC5E,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;gBACtC,uDAAuD;gBACvD,GAAG,EAAE,gBAAgB,EAAE;aACxB,CAAC,CAAC;YAEH,4EAA4E;YAC5E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,cAAc,CAAC,CAAC;YAChD,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,SAAqC,CAAC;YAE1C,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE;gBACnC,QAAQ,GAAG,IAAI,CAAC;gBAChB,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACnC,4DAA4D;gBAC5D,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,aAAa,CAAC,CAAC;gBAChF,2DAA2D;gBAC3D,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;YACtB,CAAC,EAAE,SAAS,CAAC,CAAC;YACd,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;YAEvB,MAAM,WAAW,GAAG,GAAS,EAAE;gBAC7B,YAAY,CAAC,YAAY,CAAC,CAAC;gBAC3B,IAAI,SAAS;oBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC,CAAC;YAEF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC9B,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAC9B,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,WAAW,EAAE,CAAC;gBAEd,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnC,MAAM,IAAI,GACR,cAAc,OAAO,UAAU;oBAC/B,oBAAoB;oBACpB,QAAQ,CAAC,IAAI;oBACb,qBAAqB,CAAC;gBAExB,IAAI,QAAQ,EAAE,CAAC;oBACb,sFAAsF;oBACtF,oFAAoF;oBACpF,0DAA0D;oBAC1D,MAAM,CACJ,IAAI,uBAAuB,CAAC;wBAC1B,MAAM,EACJ,IAAI;4BACJ,gBAAgB,OAAO,oCAAoC,IAAI,CAAC,KAAK,CACnE,SAAS,GAAG,IAAI,CACjB,aAAa;4BACd,wEAAwE;wBAC1E,QAAQ,EAAE,IAAI;wBACd,OAAO;wBACP,QAAQ;qBACT,CAAC,CACH,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,GAAG,gBAAgB,OAAO,0BAA0B,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,+EAA+E;oBAC/E,oFAAoF;oBACpF,MAAM,CACJ,IAAI,uBAAuB,CAAC;wBAC1B,MAAM,EAAE,IAAI,GAAG,gBAAgB,OAAO,sBAAsB,IAAI,EAAE;wBAClE,QAAQ,EAAE,IAAI;wBACd,OAAO;wBACP,QAAQ;qBACT,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,WAAW,EAAE,CAAC;gBACd,qFAAqF;gBACrF,6FAA6F;gBAC7F,2FAA2F;gBAC3F,+FAA+F;gBAC/F,8FAA8F;gBAC9F,oFAAoF;gBACpF,MAAM,QAAQ,GACZ,4BAA4B,OAAO,MAAM,KAAK,CAAC,OAAO,IAAI;oBAC1D,0FAA0F,CAAC;gBAC7F,0FAA0F;gBAC1F,2FAA2F;gBAC3F,cAAc,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACxE,MAAM,CACJ,IAAI,uBAAuB,CAAC;oBAC1B,MAAM,EAAE,QAAQ;oBAChB,QAAQ,EAAE,IAAI;oBACd,OAAO;oBACP,QAAQ;iBACT,CAAC,CACH,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,MAAM,KAAK,GAA8B,EAAE,CAAC;QAE5C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CACR,aAAa,CACX,KAAK,EACH,KAAyC,EACzC,MAA2B,EACV,EAAE;gBACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAC9B,IAAI,CAAC,QAAQ,CAAC,SAAU,EACxB,WAAW,EACX,MAAM,EAAE,QAAQ,EAAE,EAAE,CACrB,CAAC;YACJ,CAAC,EACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EACT,mGAAmG;oBACnG,gCAAgC,IAAI,CAAC,QAAQ,CAAC,SAAU,IAAI;gBAC9D,MAAM,EAAE,kBAAkB;aAC3B,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CACR,aAAa,CACX,KAAK,EACH,IAA6C,EAC7C,MAA2B,EACV,EAAE;gBACnB,MAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;gBAC3D,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrF,CAAC,EACD;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,kGAAkG;oBAClG,qGAAqG;oBACrG,0BAA0B,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI;gBAC7D,MAAM,EAAE,uBAAuB;aAChC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CACR,aAAa,CACX,KAAK,EACH,KAAwC,EACxC,MAA2B,EACV,EAAE;gBACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAC9B,IAAI,CAAC,QAAQ,CAAC,QAAS,EACvB,UAAU,EACV,MAAM,EAAE,QAAQ,EAAE,EAAE,CACrB,CAAC;YACJ,CAAC,EACD;gBACE,IAAI,EAAE,UAAU;gBAChB,WAAW,EACT,sHAAsH;oBACtH,gCAAgC,IAAI,CAAC,QAAQ,CAAC,QAAS,IAAI;gBAC7D,MAAM,EAAE,iBAAiB;aAC1B,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CACR,aAAa,CACX,KAAK,EACH,KAAyC,EACzC,MAA2B,EACV,EAAE;gBACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAC9B,IAAI,CAAC,QAAQ,CAAC,SAAU,EACxB,WAAW,EACX,MAAM,EAAE,QAAQ,EAAE,EAAE,CACrB,CAAC;YACJ,CAAC,EACD;gBACE,IAAI,EAAE,WAAW;gBACjB,WAAW,EACT,wFAAwF;oBACxF,gCAAgC,IAAI,CAAC,QAAQ,CAAC,SAAU,IAAI;gBAC9D,MAAM,EAAE,kBAAkB;aAC3B,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QAED,yFAAyF;QACzF,yFAAyF;QACzF,0FAA0F;QAC1F,0FAA0F;QAC1F,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,KAAK,CAAC,IAAI,CACR,aAAa,CACX,KAAK,EACH,IAA+C,EAC/C,MAA2B,EACV,EAAE;gBACnB,OAAO,MAAM,IAAI,CAAC,cAAc,CAC9B,IAAI,CAAC,OAAO,EACZ,mBAAmB,EACnB,MAAM,EAAE,QAAQ,EAAE,EAAE,CACrB,CAAC;YACJ,CAAC,EACD;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EACT,iFAAiF;oBACjF,oFAAoF;oBACpF,mFAAmF;oBACnF,kEAAkE;gBACpE,MAAM,EAAE,yBAAyB;aAClC,EACD,SAAS,CACV,CACF,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -27,10 +27,73 @@ export default class GthFileSystemToolkit extends BaseToolkit {
27
27
  private searchFiles;
28
28
  private normalizeLineEndings;
29
29
  private createUnifiedDiff;
30
+ /**
31
+ * Count non-overlapping exact occurrences of `search` in `content`.
32
+ * Uses an indexOf scan (no regex) so arbitrary text is matched literally.
33
+ */
34
+ private countOccurrences;
30
35
  private applyFileEdits;
31
36
  private formatSize;
32
37
  private tailFile;
33
38
  private headFile;
39
+ /**
40
+ * Returns the first `head` lines and the last `tail` lines of a file, separated by a
41
+ * `... [N lines skipped] ...` marker. When the two windows cover or overlap the whole
42
+ * file (`head + tail >= total`) the entire file is returned unchanged (no marker, no
43
+ * duplicated lines).
44
+ */
45
+ private headAndTailFile;
46
+ /**
47
+ * Return the file's lines from the 1-based `offset` to EOF (GS2-39 paging). Deliberately does
48
+ * NOT apply `limit` here — the caller hands the result to capReadContent with maxLines = limit so
49
+ * that a limit-bounded read is *observable* to the envelope (it can then tell "more file remains
50
+ * past this window" from "reached EOF" and emit the correct resume notice). Pre-slicing to
51
+ * exactly `limit` lines here would hide that signal and silently drop the continuation.
52
+ *
53
+ * Mirrors headAndTailFile's trailing-newline handling so line numbering matches head/tail/full
54
+ * reads: a terminating newline yields a phantom trailing empty element that must not be counted
55
+ * as a real line. Clamps rather than throwing: an offset past EOF returns a short recoverable note
56
+ * (not an empty string, which is indistinguishable from an empty file).
57
+ */
58
+ private windowFile;
59
+ /**
60
+ * Apply the read safety envelope (GS2-39) to already-selected file content:
61
+ * - any single line longer than MAX_LINE_LENGTH is truncated with LINE_TRUNCATED_SUFFIX;
62
+ * - emission stops once `maxLines` lines OR MAX_READ_BYTES bytes have been produced.
63
+ *
64
+ * When nothing exceeds the caps the content is returned verbatim (byte-identical), so normal
65
+ * files behave exactly as before — the change only bites on pathological / huge files.
66
+ *
67
+ * Three truncation signals are kept deliberately separate:
68
+ * - a per-line cut is marked only by the inline LINE_TRUNCATED_SUFFIX (no global notice);
69
+ * - the BYTE cap always appends the global "output truncated" notice, because it is the hard
70
+ * safety envelope regardless of who asked for the read;
71
+ * - the LINE cap appends the global notice only when `lineCapIsHard` is true — i.e. `maxLines`
72
+ * is the hard MAX_READ_LINES envelope (a defaulted or clamped-down window, or the whole-file
73
+ * read), NOT a deliberate small explicit `limit`. This distinguishes a *capped continuation*
74
+ * (notify so the model can page) from a *satisfied explicit window* (stay quiet).
75
+ *
76
+ * `startLine` is the 1-based file line of the first line in `content`; it is used only to put a
77
+ * concrete resume `offset` in the global notice. Pass `undefined` (head/tail paths, where the
78
+ * first emitted line is not line `startLine` of the file) to emit a generic notice instead.
79
+ */
80
+ private capReadContent;
81
+ /**
82
+ * GS2-36 — turn a fatal tool throw into a recoverable, action-oriented errored result.
83
+ *
84
+ * A filesystem tool that throws (a denied/symlinked-out path from validatePath, a missing file,
85
+ * EISDIR, permission-denied, a directory-not-empty refusal, …) otherwise propagates to
86
+ * GthAgentRunner as a fatal `Stream processing failed` and crashes the whole turn. The house
87
+ * convention (AGENTS.md: a tool result must never abort a run; the write_file precedent in
88
+ * `5892801a`) is to return the failure to the model as a plain string it can act on. This wraps
89
+ * that string in a uniform `Error <action>: <message>` shape — the underlying fs/validation
90
+ * message (ENOENT / EISDIR / EACCES / "Access denied - …") is itself the actionable detail, and
91
+ * the deliberately-thrown logical messages (edit_file no-match/ambiguous, "Directory not empty",
92
+ * "Cannot delete protected directory") are already phrased as recovery hints. EXT-14 containment
93
+ * is preserved everywhere: validatePath runs first and throws on a symlink-out BEFORE any fs
94
+ * mutation, so the mutation never happens — the denial is merely surfaced as a result here.
95
+ */
96
+ private recoverableError;
34
97
  private createReadBinaryTool;
35
98
  private createTools;
36
99
  }