@swifty.js/swifty 0.0.28 → 0.0.29

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.
package/dist/lib/index.js CHANGED
@@ -38,7 +38,7 @@ import {
38
38
  toDisplayPreview,
39
39
  toolResultsToRecords,
40
40
  toolUsesToRecords
41
- } from "./chunk-DV6RV5WU.js";
41
+ } from "./chunk-GCY44T7S.js";
42
42
  import {
43
43
  AnthropicClient,
44
44
  CHARS_PER_TOKEN,
@@ -55,25 +55,25 @@ import {
55
55
  markToolsForCache,
56
56
  measureSchemaChars,
57
57
  needsToolSearchBeta
58
- } from "./chunk-ALJAVRRX.js";
58
+ } from "./chunk-KZSBR4FO.js";
59
59
  import {
60
60
  SKIP_DIRS,
61
61
  isToolResultContentBlock,
62
62
  normalizeToolResultContentBlock
63
- } from "./chunk-IB5IQK2S.js";
63
+ } from "./chunk-PIL7M52F.js";
64
64
  import {
65
65
  OpenAIClient,
66
66
  OpenAICompatClient,
67
67
  buildChatCompletionMessages,
68
68
  buildOpenAIInput
69
- } from "./chunk-P4F46PEF.js";
69
+ } from "./chunk-3FBS5NB7.js";
70
70
  import {
71
71
  AuthenticationError,
72
72
  ConfigError,
73
73
  ContextTooLongError,
74
74
  DEFAULT_CONTEXT_WINDOW,
75
75
  DEFAULT_MAX_OUTPUT_TOKENS,
76
- DEFAULT_PROVIDER_THINKING,
76
+ DEFAULT_THINKING_LEVEL,
77
77
  HookConfigSchema,
78
78
  INTERRUPTED_TOOL_RESULT,
79
79
  LLMError,
@@ -81,15 +81,22 @@ import {
81
81
  ProviderConfigSchema,
82
82
  REJECTED_TOOL_RESULT,
83
83
  RateLimitError,
84
+ THINKING_BUDGETS,
85
+ THINKING_LEVELS,
86
+ defaultThinkingLevelFor,
84
87
  ensureToolPairing,
85
88
  forkEnabled,
86
89
  getContextWindow,
87
90
  getMaxOutputTokens,
91
+ getThinkingLevel,
92
+ globalConfigPath,
93
+ isValidThinkingLevel,
88
94
  loadConfig,
89
- mergeConfig,
90
95
  resolveAPIKey,
96
+ thinkingBudgetForLevel,
97
+ toReasoningEffort,
91
98
  withProviderDefaults
92
- } from "./chunk-FBSPZQGC.js";
99
+ } from "./chunk-Z4CYHTII.js";
93
100
  import {
94
101
  PathSandbox,
95
102
  PermissionChecker,
@@ -1400,6 +1407,37 @@ Focus on: ${ctx.args}` : "")
1400
1407
  description: "Toggle OS sandbox mode for command execution",
1401
1408
  handler: () => "sandbox"
1402
1409
  });
1410
+ registry.register({
1411
+ name: "thinking",
1412
+ aliases: ["think"],
1413
+ type: "local",
1414
+ description: "Show or set the thinking level (off, minimal, low, medium, high, xhigh, max)",
1415
+ handler: (ctx) => {
1416
+ const arg = ctx.args.trim().toLowerCase();
1417
+ if (!arg) {
1418
+ const current = ctx.thinkingLevel ? ctx.thinkingLevel() : "unknown";
1419
+ return `Thinking level: ${current}
1420
+ Usage: /thinking <${THINKING_LEVELS.join(" | ")}>`;
1421
+ }
1422
+ if (!isValidThinkingLevel(arg)) {
1423
+ return `Unknown thinking level "${arg}". Valid levels: ${THINKING_LEVELS.join(", ")}`;
1424
+ }
1425
+ if (!ctx.setThinkingLevel) {
1426
+ return "Thinking level control is not available in this context.";
1427
+ }
1428
+ ctx.setThinkingLevel(arg);
1429
+ if (ctx.persistThinkingLevel) {
1430
+ try {
1431
+ ctx.persistThinkingLevel(arg);
1432
+ return `Thinking level set to ${arg} and saved.`;
1433
+ } catch (err) {
1434
+ const message = err instanceof Error ? err.message : String(err);
1435
+ return `Thinking level set to ${arg} for this session, but saving failed: ${message}`;
1436
+ }
1437
+ }
1438
+ return `Thinking level set to ${arg}.`;
1439
+ }
1440
+ });
1403
1441
  return registry;
1404
1442
  }
1405
1443
 
@@ -2591,15 +2629,15 @@ async function saveClipboardImage(workDir, sessionId) {
2591
2629
  async function createClient(config, systemPrompt) {
2592
2630
  switch (config.protocol) {
2593
2631
  case "anthropic": {
2594
- const { AnthropicClient: AnthropicClient2 } = await import("./anthropic-TGJGAP5R.js");
2632
+ const { AnthropicClient: AnthropicClient2 } = await import("./anthropic-KWO3KLNV.js");
2595
2633
  return new AnthropicClient2(config, systemPrompt);
2596
2634
  }
2597
2635
  case "openai": {
2598
- const { OpenAIClient: OpenAIClient2 } = await import("./openai-5UCIIDPO.js");
2636
+ const { OpenAIClient: OpenAIClient2 } = await import("./openai-PBF7EWNJ.js");
2599
2637
  return new OpenAIClient2(config, systemPrompt);
2600
2638
  }
2601
2639
  case "openai-compat": {
2602
- const { OpenAICompatClient: OpenAICompatClient2 } = await import("./openai-5UCIIDPO.js");
2640
+ const { OpenAICompatClient: OpenAICompatClient2 } = await import("./openai-PBF7EWNJ.js");
2603
2641
  return new OpenAICompatClient2(config, systemPrompt);
2604
2642
  }
2605
2643
  default:
@@ -2609,9 +2647,9 @@ async function createClient(config, systemPrompt) {
2609
2647
 
2610
2648
  // src/llm/model-resolver.ts
2611
2649
  var MODEL_ALIASES = {
2612
- haiku: "claude-haiku-4-5-20251001",
2613
- sonnet: "claude-sonnet-4-6-20250514",
2614
- opus: "claude-opus-4-6-20250514"
2650
+ haiku: "claude-haiku-4-6",
2651
+ sonnet: "claude-sonnet-4-6",
2652
+ opus: "claude-opus-4-6"
2615
2653
  };
2616
2654
  function resolveModelId(shortName) {
2617
2655
  return MODEL_ALIASES[shortName] ?? shortName;
@@ -2648,7 +2686,7 @@ var PackageJsonSchema = z5.object({
2648
2686
  });
2649
2687
  function resolveVersion() {
2650
2688
  if (true) {
2651
- return "0.0.28";
2689
+ return "0.0.29";
2652
2690
  }
2653
2691
  const here = path.dirname(fileURLToPath(import.meta.url));
2654
2692
  for (const levels of ["..", "../.."]) {
@@ -3541,7 +3579,7 @@ function loadWasm() {
3541
3579
  return wasm;
3542
3580
  }
3543
3581
  }
3544
- const embedded = true ? "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" : "";
3582
+ const embedded = true ? "AGFzbQEAAAABPgtgAX8Bf2ACf38AYAN/f38Bf2ACf38Bf2ABfwBgBH9/f38Bf2AAAGAEf39/fwBgA39/fwBgAAF/YAN/f34AAg0BA2VudgVhYm9ydAAHAzMyAwAAAwQFAQgDAwgCBwEJBAEBBAQAAAUDAwMGCgYBAQICAgIABgQABgICAAIBBQUAAQUFAwEAAQZFDX8BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AUEAC38BQQALfwFBAAt/AEHwEwt/AUGslAILB3QLCGhhc1NsYXNoADAFX19uZXcACQVfX3BpbgAnB19fdW5waW4AJglfX2NvbGxlY3QAKAtfX3J0dGlfYmFzZQMLBm1lbW9yeQIAB2NvbXBpbGUAKwVtYXRjaAApCWdsb2JNYXRjaAAqCmNhbkRlc2NlbmQALAgBJQwBPAq4XTJcACMMQQRrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEEANgIAIwwgADYCACABIABBFGsoAhBBAXZPBEAjDEEEaiQMQX8PCyAAIAFBAXRqLwEAIwxBBGokDAtcACMMQQRrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEEANgIAIwwgADYCACAAKAIMRQRAQYALQYAOQfIAQSoQAAALIwwgADYCACAAKAIEKAIAIwxBBGokDAs7ACMMQQRrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEEANgIAIwwgADYCACAAKAIMIwxBBGokDAuBAQAjDEEIayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwxCADcDACMMIAA2AgAgASAAKAIMTwRAQYALQYAOQfIAQSoQAAALIwwgADYCACMMIAAoAgQgAUECdGooAgAiADYCBCAARQRAQcAPQYAOQfYAQSgQAAALIwxBCGokDCAACycAIABFBEAPCyMHIABBFGsiACgCBEEDcUYEQCAAEBAjA0EBaiQDCwuAAQECfyMMQQRrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEEANgIAIwwgACABdCIFQQEQCSEBIAMEQCABIAMgBfwKAAALIAE2AgBBECACEAkiAiABNgIAIAIgAUEAEAsgAiABNgIEIAIgBTYCCCACIAA2AgwjDEEEaiQMIAILaAAjDEEEayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwxBADYCACMMIAA2AgAgACgCDEUEQCAAQQFBAkEBEA0jDCAANgIAIABBATYCDAsjDCAANgIAIAAoAgQgATYCACMMQQRqJAwLigEBAX8jDEEEayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwxBADYCACMMIAA2AgAgASAAKAIMTwRAIAFBAEgEQEGAC0GADkGCAUEWEAAACyAAIAFBAWoiA0EAQQEQDSMMIAA2AgAgACADNgIMCyMMIAA2AgAgASAAKAIEaiACOgAAIwxBBGokDAvABAEFfyAAQez///8DTwRAQcAJQYAKQYUCQR8QAAALIwAjAU8EQAJAQYAQIQIDQCACEA9rIQIjAkUEQCMAQQF0QYAIaiQBDAILIAJBAEoNAAsjACMAIwFrQYAISUEKdGokAQsLIwlFBEAQGwsjCSEEIABBEGoiAkH8////A0sEQEHACUGQDEHNA0EdEAAACyAEIAJBDE0Ef0EMBSACQRNqQXBxQQRrCyIFEBoiAkUEQCAFQYACTwR/IAVB/v///wFJBH8gBUEBQRsgBWdrdGpBAWsFIAULBSAFC0EEIAQoAqAMPwAiAkEQdEEEa0d0akH//wNqQYCAfHFBEHYhAyACIAMgAiADShtAAEEASARAIANAAEEASARAAAsLIAQgAkEQdD8ArEIQhhAcIAQgBRAaIgJFBEBBAEGQDEHzA0EQEAAACwsgBSACKAIAQXxxSwRAQQBBkAxB9QNBDhAAAAsgBCACEBEgAigCACEGIAVBBGpBD3EEQEEAQZAMQekCQQ4QAAALIAZBfHEgBWsiA0EQTwRAIAIgBSAGQQJxcjYCACACQQRqIAVqIgUgA0EEa0EBcjYCACAEIAUQEgUgAiAGQX5xNgIAIAJBBGogAigCAEF8cWoiAyADKAIAQX1xNgIACyACIAE2AgwgAiAANgIQIwgiASgCCCEDIAIgASMHcjYCBCACIAM2AgggAyACIAMoAgRBA3FyNgIEIAEgAjYCCCMAIAIoAgBBfHFBBGpqJAAgAkEUaiIBQQAgAPwLACABC2EAIwxBBGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMQQA2AgAjDCAANgIAIAEgACgCDE8EQEGAC0GADkHyAEEqEAAACyMMIAA2AgAgASAAKAIEai0AACMMQQRqJAwLYwEBfyABRQRADwsgAEUEQEEAQYAKQacCQQ4QAAALIwcgAUEUayIBKAIEQQNxRgRAIABBFGsiACgCBEEDcSIDIwdFRgRAIAAgASACGxAQBSMCQQFGIANBA0ZxBEAgARAQCwsLC8UBAQF/IwxBCGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMQgA3AwAjDCAANgIAIABBFGsoAhBBAXYhAyABQQBIBH8gASADaiIBQQAgAUEAShsFIAEgAyABIANIGwshASACQQBIBH8gAiADaiICQQAgAkEAShsFIAIgAyACIANIGwsgAWsiAkEATARAIwxBCGokDEHwDA8LIwwgAkEBdCICQQIQCSIDNgIEIAMgACABQQF0aiAC/AoAACMMQQhqJAwgAwuUAgECfyMMQQRrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEEANgIAIwwgADYCACABIAAoAggiBSACdksEQCABQfz///8DIAJ2SwRAQdANQYAOQRNBMBAAAAsjDCAANgIAIAAoAgAhBEEIIAEgAUEITRsgAnQhASADBEBB/P///wMgBUEBdCICIAJB/P///wNPGyICIAEgASACSRshAQsCQCAEQRRrIgMoAgBBfHFBEGsgAU8EQCADIAE2AhAgBCECDAELIAEgAygCDBAJIgIgBCABIAMoAhAiAyABIANJG/wKAAALIAIgBEcEQCAAIAI2AgAgACACNgIEIAAgAkEAEAsLIAAgATYCCAsjDEEEaiQMC3kBAn8jDEEEayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwxBADYCACMMIAA2AgAgACAAKAIMIgJBAWoiA0ECQQEQDSMMIAA2AgAgACgCBCACQQJ0aiABNgIAIAAgAUEBEAsjDCAANgIAIAAgAzYCDCMMQQRqJAwL4QMBA38CQAJAAkACQCMCDgMAAQIDC0EBJAJBACQDEB0jBiQFIwMPCyMHRSEBIwUoAgRBfHEhAANAIAAjBkcEQCAAJAUgASAAKAIEIgJBA3FHBEAgACACQXxxIAFyNgIEQQAkAyAAQRRqEBQjAw8LIAAoAgRBfHEhAAwBCwtBACQDEB0jBiMFKAIEQXxxRgRAIwwhAANAIABBrJQCSQRAIAAoAgAQBSAAQQRqIQAMAQsLIwUoAgRBfHEhAANAIAAjBkcEQCABIAAoAgQiAkEDcUcEQCAAIAJBfHEgAXI2AgQgAEEUahAUCyAAKAIEQXxxIQAMAQsLIwghACMGJAggACQGIAEkByAAKAIEQXxxJAVBAiQCCyMDDwsjBSIAIwZHBEAgACgCBCIBQXxxJAUjB0UgAUEDcUcEQEEAQYAKQeUBQRQQAAALIABBrJQCSQRAIABBADYCBCAAQQA2AggFIwAgACgCAEF8cUEEamskACAAQQRqIgBBrJQCTwRAIwlFBEAQGwsjCSAAQQRrIQIgAEEPcUEBIAAbBH9BAQUgAigCAEEBcQsEQEEAQZAMQbIEQQMQAAALIAIgAigCAEEBcjYCACACEBILC0EKDwsjBiMGNgIEIwYjBjYCCEEAJAILQQALnwEBA38gACMFRgRAIAAoAggiAUUEQEEAQYAKQZQBQR4QAAALIAEkBQsgABATIwYhASAAKAIMIgJBAk0Ef0EBBSACQfATKAIASwRAQYALQcALQRVBHBAAAAsgAkECdEH0E2ooAgBBIHELIQMgASgCCCECIAAjB0VBAiADGyABcjYCBCAAIAI2AgggAiAAIAIoAgRBA3FyNgIEIAEgADYCCAuKAgEEfyABKAIAIgNBAXFFBEBBAEGQDEGMAkEOEAAACyADQXxxIgNBDEkEQEEAQZAMQY4CQQ4QAAALIANBgAJJBH8gA0EEdgVBH0H8////AyADIANB/P///wNPGyIDZ2siBEEHayECIAMgBEEEa3ZBEHMLIgNBEEkgAkEXSXFFBEBBAEGQDEGcAkEOEAAACyABKAIIIQUgASgCBCIEBEAgBCAFNgIICyAFBEAgBSAENgIECyABIAAgAkEEdCADakECdGoiASgCYEYEQCABIAU2AmAgBUUEQCAAIAJBAnRqIgEoAgRBfiADd3EhAyABIAM2AgQgA0UEQCAAIAAoAgBBfiACd3E2AgALCwsLwwMBBX8gAUUEQEEAQZAMQckBQQ4QAAALIAEoAgAiA0EBcUUEQEEAQZAMQcsBQQ4QAAALIAFBBGogASgCAEF8cWoiBCgCACICQQFxBEAgACAEEBEgASADQQRqIAJBfHFqIgM2AgAgAUEEaiABKAIAQXxxaiIEKAIAIQILIANBAnEEQCABQQRrKAIAIgEoAgAiBkEBcUUEQEEAQZAMQd0BQRAQAAALIAAgARARIAEgBkEEaiADQXxxaiIDNgIACyAEIAJBAnI2AgAgA0F8cSICQQxJBEBBAEGQDEHpAUEOEAAACyAEIAFBBGogAmpHBEBBAEGQDEHqAUEOEAAACyAEQQRrIAE2AgAgAkGAAkkEfyACQQR2BUEfQfz///8DIAIgAkH8////A08bIgJnayIDQQdrIQUgAiADQQRrdkEQcwsiAkEQSSAFQRdJcUUEQEEAQZAMQfsBQQ4QAAALIAAgBUEEdCACakECdGooAmAhAyABQQA2AgQgASADNgIIIAMEQCADIAE2AgQLIAAgBUEEdCACakECdGogATYCYCAAIAAoAgBBASAFdHI2AgAgACAFQQJ0aiIAIAAoAgRBASACdHI2AgQLYQEBfyAAKAIEQXxxIgFFBEAgACgCCEUgAEGslAJJcUUEQEEAQYAKQYABQRIQAAALDwsgACgCCCIARQRAQQBBgApBhAFBEBAAAAsgASAANgIIIAAgASAAKAIEQQNxcjYCBAvnAQEDfwJAAkACQAJAAkACQAJAAkACQAJAIABBCGsoAgAODgABAgcDBwcFBQUGBQYGBAsPCw8LDwsgACgCBBAFDwsACyMMQQRrJAwjDEGsFEgNAiMMQQA2AgAjDCAANgIAIAAoAgQhASMMIAA2AgAgASAAKAIMQQJ0aiECA0AgASACSQRAIAEoAgAiAwRAIAMQBQsgAUEEaiEBDAELCwwDCyMMQQRrJAwjDEGsFEgNASMMQQA2AgAMAgsgACgCABAFDwtBwJQCQfCUAkEBQQEQAAALIwwgADYCACAAKAIAEAUjDEEEaiQMC0QAIwxBBGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMQQA2AgAgAEUEQCMMQQBBABAJIgA2AgALIwxBBGokDCAAC1cAIwxBBGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMQQA2AgAjDCAANgIAIABBFGsoAhBBAXYEfyMMIAA2AgAgAEEAEAFBLkYFQQALIwxBBGokDAuOAQEBfyAAIAFBAXRqIQEgA0EETwR/IAFBB3EgAkEHcXIFQQELRQRAA0AgASkDACACKQMAUQRAIAFBCGohASACQQhqIQIgA0EEayIDQQRPDQELCwsDQCADIgBBAWshAyAABEAgAS8BACIAIAIvAQAiBEcEQCAAIARrDwsgAUECaiEBIAJBAmohAgwBCwtBAAvJAQEDfyMMQQhrJAwCQCMMQawUSA0AIwxCADcDACMMIAA2AgAjDCABNgIEIwxBCGskDCMMQawUSA0AIwxCADcDACMMIAAiAjYCACAAQRRrKAIQQX5xIQMjDCABNgIAAkAgAUEUaygCEEF+cSIEIANqIgBFBEAjDEEIaiQMQfAMIQAMAQsjDCAAQQIQCSIANgIEIAAgAiAD/AoAACAAIANqIAEgBPwKAAAjDEEIaiQMCyMMQQhqJAwgAA8LQcCUAkHwlAJBAUEBEAAAC1wBAX8jDEEEayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwxBADYCAAJAAkACQCMKQQFrDgIBAgALAAtB/////wchAgsjDCAANgIAIAAgASACEAwjDEEEaiQMC9oBAQF/IAFBgAJJBEAgAUEEdiEBBSABQf7///8BSQRAIAFBAUEbIAFna3RqQQFrIQELIAFBHyABZ2siAkEEa3ZBEHMhASACQQdrIQILIAFBEEkgAkEXSXFFBEBBAEGQDEHOAkEOEAAACyAAIAJBAnRqKAIEQX8gAXRxIgEEfyAAIAFoIAJBBHRqQQJ0aigCYAUgACgCAEF/IAJBAWp0cSIBBH8gACABaCIBQQJ0aigCBCICRQRAQQBBkAxB2wJBEhAAAAsgACACaCABQQR0akECdGooAmAFQQALCwuXAQECfz8AIgFBAEwEf0EBIAFrQABBAEgFQQALBEAAC0GwlAJBADYCAEHQoAJBADYCAANAIABBF0kEQCAAQQJ0QbCUAmpBADYCBEEAIQEDQCABQRBJBEAgAEEEdCABakECdEGwlAJqQQA2AmAgAUEBaiEBDAELCyAAQQFqIQAMAQsLQbCUAkHUoAI/AKxCEIYQHEGwlAIkCQvOAQEDfyACIAGtVARAQQBBkAxB/gJBDhAAAAsgAUETakFwcUEEayEBIAAoAqAMIgMEQCADQQRqIAFLBEBBAEGQDEGFA0EQEAAACyADIAFBEGsiBUYEQCADKAIAIQQgBSEBCwUgAEGkDGogAUsEQEEAQZAMQZIDQQUQAAALCyACp0FwcSABayIDQRRJBEAPCyABIARBAnEgA0EIayIDQQFycjYCACABQQA2AgQgAUEANgIIIAFBBGogA2oiA0ECNgIAIAAgAzYCoAwgACABEBILbAECf0HACBAFQYALEAVB0A0QBUHADxAFQcAJEAVBgBMQBUHAExAFIwQiASgCBEF8cSEAA0AgACABRwRAIAAoAgRBA3FBA0cEQEEAQYAKQaABQRAQAAALIABBFGoQFCAAKAIEQXxxIQAMAQsLC0cAIwxBBGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMQQA2AgAgACABQQBBABANIwwgADYCACAAIAE2AgwjDEEEaiQMC/UBAQJ/IwxBDGskDAJAIwxBrBRIDQAjDEIANwMAIwxBADYCCCMMIAE2AgAjDEEEayQMIwxBrBRIDQAjDEEANgIAIAFBAEECQQAQDSMMIAE2AgAgAUEANgIMIwxBBGokDANAIwwgADYCACADIABBFGsoAhBBAXZMBEAjDCAANgIAIAMgAEEUaygCEEEBdkYEf0EBBSMMIAA2AgAgACADEAFBL0YLBEAjDCABNgIAIwwgADYCCCAAIAIgAxAMIQIjDCACNgIEIAEgAhAOIANBAWohAgsgA0EBaiEDDAELCyMMQQxqJAwPC0HAlAJB8JQCQQFBARAAAAvYBAEFfyMMQRBrJAwCQAJAIwxBrBRIDQAjDEIANwMAIwxCADcDCCACBH9BAAUjDCABNgIAIAEQFgsEQCMMIAA2AgAjDEEEayQMIwxBrBRIDQEjDEEANgIAIwwgADYCAAJAIABBFGsoAhBBAXZFBEAjDEEEaiQMQQAhAgwBCyMMIAA2AgAgAEEAEAEiAkEuRgRAIwxBBGokDEEBIQIMAQsgAkHcAEYEfyMMIAA2AgAgAEEUaygCEEEBdkEBSwVBAAsEfyMMIAA2AgAgAEEBEAFBLkYFQQALIQIjDEEEaiQMCwVBASECCyACRQ0BQQAhAkF/IQMjDEEBQQJBCkGgERAGIgc2AgQDQCMMIAE2AgAgBSABQRRrKAIQQQF2SARAIwwgADYCACACIABBFGsoAhBBAXZIBEAjDCAANgIAIAAgAhABQSpGBEADQCMMIAA2AgAgAiAAQRRrKAIQQQF2SAR/IwwgADYCACAAIAIQAUEqRgVBAAsEQCACQQFqIQIMAQsLIAIhAyAFIQQMAwsjDCAANgIAIwwgATYCDCABIAUQASEGIwwgBzYCCCAAIAIgBiAHEC8EQCMMIAc2AgAgBxACIQIgBUEBaiEFDAMLCyADQX9HBEAgBEEBaiIEIQUgAyECDAILDAMLCwNAIwwgADYCACACIABBFGsoAhBBAXZIBH8jDCAANgIAIAAgAhABQSpGBUEACwRAIAJBAWohAgwBCwsjDCAANgIAIAIgAEEUaygCEEEBdkYjDEEQaiQMDwtBwJQCQfCUAkEBQQEQAAALIwxBEGokDEEAC8wBACMMQQhrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEIANwMAIwwgADYCACMMIAE2AgQgACABEAIQAUHcAEYEfyMMIAE2AgAgARACQQFqIAJIBUEACwRAIwwgADYCACMMIAE2AgQgACABEAJBAWoQASMMIAE2AgAjDCABNgIEIAEgARACQQJqEAcjDEEIaiQMDwsjDCAANgIAIwwgATYCBCAAIAEQAhABIwwgATYCACMMIAE2AgQgASABEAJBAWoQByMMQQhqJAwLvgIBBX8jDEEcayQMAkAjDEGsFEgNACMMQQBBHPwLACMMQcAINgIAIwxBwAggAEEBaxAEIgY2AgQjDEEAQQJBC0HgEBAGIgA2AggjDEEAQQBBDEGAERAGIgU2AgwjDCAGNgIAIwwgATYCECMMIAA2AhQjDCAFNgIYIwxBFGskDCMMQawUSA0AIwxBAEEU/AsAIwwgATYCACMMIAA2AgQgASAAEB8jDCAGNgIAIwwgBigCBCIHNgIIA0AjDCAHNgIAIAcQAyADSgRAAkAjDCAHNgIQIAcgAxAEIQEjDCABNgIAIwwgADYCBCMMIAU2AgwgASAAIAIgBRAuBEBBASEEDAELIANBAWohAwwCCwsLIwwgBjYCACAERSAEIAYtAAAbIwxBFGokDCMMQRxqJAwPC0HAlAJB8JQCQQFBARAAAAudBQEHfyMMQSRrJAwCQAJAAkAjDEGsFEgNACMMQQBBJPwLACACQegHSg0BQX8hBkF/IQUDQCMMIAA2AgAgBCAAQRRrKAIQQQF2SARAAkAjDCAANgIAIAAgBBABIgNB3ABGBEAgBEEBaiEEBSADQfsARgRAIwwgADYCACMMQQRrJAwjDEGsFEgNBSMMQQA2AgBBACEHIAQhAwJAA0AjDCAANgIAIAMgAEEUaygCEEEBdkgEQCMMIAA2AgAgACADEAEiCEHcAEYEQCADQQFqIQMFIAhB+wBGBEAgB0EBaiEHBSAIQf0ARgRAIAdBAWsiB0UEQCMMQQRqJAwMBgsLCwsgA0EBaiEDDAELCyMMQQRqJAxBfyEDCyADQX9HBEAgBCEGIAMhBQwDCwsLIARBAWohBAwCCwsLIAZBf0YEQCMMIAE2AgAgARADQZDOAE4NAiMMIAE2AgAjDCAANgIEIAEgABAODAMLIwwgADYCACMMIABBACAGEAwiCDYCCCMMIAA2AgBBASQKIwwgACAFQQFqEBkiBzYCDCAGQQFqIQNBACEGIAMhBANAIAQgBUwEQCMMIAA2AgAgACAEEAEiCUHcAEYEQCAEQQFqIQQFIAlB+wBGBEAgBkEBaiEGBSAJQf0ARiAGQQBKcQRAIAZBAWshBgUgBkUgCUEsRnEgBCAFRnIEQCMMIAA2AgAjDCAAIAMgBBAMIgM2AhAjDCAINgIcIwwgAzYCICAIIAMQGCEDIwwgAzYCFCMMIAc2AhggAyAHEBghAyMMIAM2AgAjDCABNgIEIAMgASACQQFqECNFDQcgBEEBaiEDCwsLCyAEQQFqIQQMAQsLDAILQcCUAkHwlAJBAUEBEAAACyMMQSRqJAxBAA8LIwxBJGokDEEBC6cCAQN/IwxBDGskDAJAIwxBrBRIDQAjDEIANwMAIwxBADYCCCMMIAA2AgAgAEEUaygCEEEBdkGAgARLBEBB8AhBAEEAQQAQAAsjDCMMQQxrJAwjDEGsFEgNACMMQgA3AwAjDEEANgIIIwxBCEEEEAkiAjYCACMMIAI2AgQjDCACEBUiAjYCACMMIAI2AgQgAkEAOgAAIwwgAjYCBCACQQA6AAEjDCACNgIEQQBBAkEIQdAMEAYhAyMMIAM2AgggAiADNgIEIAIgA0EAEAsjDEEMaiQMIAI2AgQjDCAANgIAIwwgAjYCCCAAIAIQMSMMQcAINgIAIwwgAjYCCEHACCACEA4jDEHACDYCAEHACBADIwxBDGokDA8LQcCUAkHwlAJBAUEBEAAAC1YAPwBBEHRBrJQCa0EBdiQBQbQKQbAKNgIAQbgKQbAKNgIAQbAKJARB1ApB0Ao2AgBB2ApB0Ao2AgBB0AokBkHkC0HgCzYCAEHoC0HgCzYCAEHgCyQIC24BAn8gAEUEQA8LIABBFGsiASgCBEEDcUEDRwRAQcATQYAKQeACQQUQAAALIwJBAUYEQCABEBAFIAEQEyMIIgAoAgghAiABIAAjB3I2AgQgASACNgIIIAIgASACKAIEQQNxcjYCBCAAIAE2AggLC2EBA38gAARAIABBFGsiASgCBEEDcUEDRgRAQYATQYAKQdICQQcQAAALIAEQEyMEIgMoAgghAiABIANBA3I2AgQgASACNgIIIAIgASACKAIEQQNxcjYCBCADIAE2AggLIAALOQAjAkEASgRAA0AjAgRAEA8aDAELCwsQDxoDQCMCBEAQDxoMAQsLIwCtQsgBfkLkAICnQYAIaiQBCzcAIwxBBGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMIAE2AgAgACABIAIQIiMMQQRqJAwLbgAjDEEIayQMAkAjDEGsFEgNACMMIAA2AgAjDCABNgIEIwxBCGskDCMMQawUSA0AIwxCADcDACMMIAA2AgQgABAkIwwgATYCACABIAIQIiMMQQhqJAwjDEEIaiQMDwtBwJQCQfCUAkEBQQEQAAALMwAjDEEEayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwwgADYCACAAECQjDEEEaiQMC6oCAQN/IwxBBGskDAJAIwxBrBRIDQAjDCABNgIAIwxBIGskDCMMQawUSA0AIwxBAEEg/AsAIwxBwAg2AgAjDEHACCAAQQFrEAQiBDYCBCMMQQBBAkELQcASEAYiADYCCCMMIAE2AgAgAUEUaygCEEEBdgRAIwwgATYCACMMIAA2AgwgASAAEB8LIwxBAEEAQQxB4BIQBiIBNgIQIwwgBDYCACMMIAQoAgQiBDYCFAJ/A0AjDCAENgIAIAQQAyADSgRAIwwgBDYCHCAEIAMQBCEFIwwgBTYCACMMIAA2AgwjDCABNgIYIAUgACACIAEQMgRAIwxBIGokDEEBDAMLIANBAWohAwwBCwsjDEEgaiQMQQALIwxBBGokDA8LQcCUAkHwlAJBAUEBEAAAC4AFAQZ/IwxBGGskDAJAIwxBrBRIDQAjDEEAQRj8CwADQCMMIAA2AgAgAyAAQRRrKAIQQQF2TARAIwwgADYCACADIABBFGsoAhBBAXZGBH9BAQUjDCAANgIAIAAgAxABQS9GCwRAAkAjDCAANgIAIwwgACAEIAMQDCIFNgIEIANBAWohBCMMIAU2AgAjDEEIayQMIwxBrBRIDQQjDEIANwMAAkAgBUHAEEYEQCMMQQhqJAxBASECDAELIAVFBEAjDEEIaiQMQQAhAgwBCyMMIAU2AgAgBUEUaygCEEEBdiECIwxBwBA2AgAgAkG8ECgCAEEBdkcEQCMMQQhqJAxBACECDAELIwwgBTYCACMMQcAQNgIEIAVBAEHAECACEBdFIQIjDEEIaiQMCyACBEAjDCABNgIAIAFBAToACCMMIAE2AgAjDCABKAIAIgY2AggjDCAGNgIAIAYQA0EASgR/IwwgBjYCDCMMIAY2AhAgBiAGEANBAWsQBCEGIwwgBjYCACAGLQAEBUEACw0BBSMMIAE2AgAjDCABNgIMIAEgASgCBEEBajYCBAsjDCMMQQhrJAwjDEGsFEgNBCMMQgA3AwAjDEEFQQYQCSIHNgIAIwwgBzYCBCMMIAcQFSIHNgIAIwwgBzYCBCAHQfAMNgIAIAdB8AxBABALIwwgBzYCBCAHQQA6AAQjDEEIaiQMIAc2AhQjDCAHNgIAIwwgBTYCDCAHIAU2AgAgByAFQQAQCyMMIAc2AgAgByACOgAEIwwgATYCECMMIAEoAgAiAjYCACMMIAc2AgwgAiAHEA4LCyADQQFqIQMMAQsLIwxBGGokDA8LQcCUAkHwlAJBAUEBEAAAC8IEAQl/IwxBFGskDCMMQawUSARAQcCUAkHwlAJBAUEBEAAACyMMQQBBFPwLACMMIAA2AgQjDCAAKAIAIgQ2AgAgBBADIQQjDCABNgIAIAEQAyEHIwwgACIGNgIAAkAgByAAKAIESA0AIwwgADYCACAALQAIRSAEIAdHcQ0AIwwgAzYCACADIAdBAWoiAEEBdBAeA0AjDCADNgIAIAMQAyAFSgRAIwwgAzYCACADIAVBABAIIAVBAWohBQwBCwsjDCADNgIAQQAhBSADIAdBARAIIARBAWshDANAIAxBAE4EQCMMIAY2AgQjDCAGKAIAIgQ2AgAjDCAEIAwQBCILNgIIIAchCANAIAhBAE4EQCMMIAs2AgAgCy0ABARAIAcgCEoiBARAIAIEf0EABSMMIAE2AgQgASAIEAQhBCMMIAQ2AgAgBBAWC0UhBAsjDCADNgIAIwwgAzYCBCADIAUgCGoQCiEKIAMgACAIaiIJIAQEfyMMIAM2AgQgAyAJQQFqEAoFQQALIApyEAgFIAcgCEoEQCMMIAM2AgAjDCADNgIEIAMgBSAIakEBahAKIQojDCALNgIQIwwgCygCACIJNgIEIwwgATYCECABIAgQBCEEIwwgBDYCDCADIAAgCGogCiAJIAQgAhAgQQBHcRAIBSMMIAM2AgAgAyAAIAhqQQAQCAsLIAhBAWshCAwBCwsgACAFIQAhBSAMQQFrIQwMAQsLIwwgAzYCACADIAUQCkEARyMMQRRqJAwPCyMMQRRqJAxBAAv9BwEGfyMMQRxrJAwCQCMMQawUSA0AIwxBAEEc/AsAIwwgADYCACAAIAEQASIEQT9GBEAjDCADNgIAIAMgAUEBahAHIwxBHGokDEEBDwsCQCAEQdwARgRAIwwgADYCACABQQFqIgQgAEEUaygCEEEBdkgEQCMMIAM2AgAgAyABQQJqEAcjDCAANgIAIAAgBBABIAJGIQAMAgsjDCADNgIAIAMgAUEBahAHIwxBHGokDCACQdwARg8LIARB2wBGBEAjDEEBQQJBCkHAERAGIgc2AgQjDEEBQQJBCkHgERAGIgk2AggjDEEBQQBBDUGAEhAGIgY2AgwjDCAANgIAIwwgBzYCECMMIAk2AhQjDCAGNgIYAn8jDEEEayQMIwxBrBRIDQMjDEEANgIAIwwgBjYCACAGQQBBABAIIwwgADYCACABQQFqIgQgAEEUaygCEEEBdkgEfyMMIAA2AgAgACAEEAFBIUYEf0EBBSMMIAA2AgAgACAEEAFB3gBGCwVBAAsEQCMMIAY2AgAgBkEAQQEQCCAEQQFqIQQLIwwgBzYCACAHIAQQByMMIAA2AgAgBEEBaiAEIAQgAEEUaygCEEEBdkgEfyMMIAA2AgAgACAEEAFB3QBGBUEACxshBANAIwwgADYCACAEIABBFGsoAhBBAXZIBEAjDCAANgIAIAAgBBABIghB3ABGBEAgBEEBaiEEBSAIQd0ARgRAIwwgCTYCACAJIAQQByMMQQRqJAxBAQwECwsgBEEBaiEEDAELCyMMQQRqJAxBAAsEQCMMIAM2AgAjDCAJNgIQIAMgCRACQQFqEAcjDCAANgIAIwwgBzYCECAHEAIjDCAJNgIQIAAhAyEAIAkQAiEBIwxBDGskDCMMQawUSA0DIwxCADcDACMMQQA2AggjDEEBQQJBCkGgEhAGIgQ2AgADQCAAIAFIBEAjDCAENgIEIAQgABAHIwwgAzYCBCMMIAQ2AgggAyAEIAEQISEAIwwgBDYCBCAEEAIgAUgEfyMMIAM2AgQjDCAENgIIIAMgBBACEAFBLUYFQQALBH8jDCAENgIEIAQQAkEBaiABSAVBAAsEfyMMIAQ2AgQjDCAENgIIIAQgBBACQQFqEAcjDCADNgIEIwwgBDYCCEEBIAUgACACTCADIAQgARAhIAJOcRsFQQEgBSAAIAJGGwshBSMMIAQ2AgQgBBACIQAMAQsLIwxBDGokDCMMIAY2AgAgBSAGQQAQCkEAR0chAAwCCyMMIAM2AgAgAyABQQFqEAcjDEEcaiQMIAJB2wBGDwsjDCADNgIAIAMgAUEBahAHIwxBHGokDCACIARGDwsjDEEcaiQMIAAPC0HAlAJB8JQCQQFBARAAAAtSACMMQQhrJAwjDEGsFEgEQEHAlAJB8JQCQQFBARAAAAsjDEIANwMAIwxBwAg2AgRBwAggAEEBaxAEIQAjDCAANgIAIAAtAAFBAEcjDEEIaiQMC5cFAQR/IwxBGGskDAJAIwxBrBRIDQAjDEEAQRj8CwADQCMMIAA2AgAgAyAAQRRrKAIQQQF2SAR/IwwgADYCACAAIAMQAUEhRgVBAAsEQCMMIAE2AgAjDCABNgIEIAEgAS0AAEU6AAAgA0EBaiEDDAELCyMMIAA2AgBBASQKIwwgACADEBkiAzYCCCMMIAE2AgAjDCADNgIEIwxBCGskDCMMQawUSA0AIAEhACMMQgA3AwAjDEGQDTYCAAJAQYwNKAIAQQF2IgRFBEAjDEEIaiQMQQAhAQwBCyMMIAM2AgAgA0EUaygCEEEBdiIFRQRAIwxBCGokDEF/IQEMAQtBACEBIAUgBGshBQNAIAEgBUwEQCMMIAM2AgAjDEGQDTYCBCADIAFBkA0gBBAXRQRAIwxBCGokDAwDCyABQQFqIQEMAQsLIwxBCGokDEF/IQELIAAgAUF/RzoAASMMQQBBAkELQbANEAYiATYCDCMMIAM2AgAjDCABNgIEIAMgAUEAECNFBEBBsA5BAEEAQQAQAAsDQCMMIAE2AgAgARADIAJKBEAjDCMMQQxrJAwjDEGsFEgNAiMMQgA3AwAjDEEANgIIIwxBCUEFEAkiBDYCACMMIAQ2AgQjDCAEEBUiBDYCACMMIAQ2AgRBAEECQQdBoA8QBiEFIwwgBTYCCCAEIAU2AgAgBCAFQQAQCyMMIAQ2AgQgBEEANgIEIwwgBDYCBCAEQQA6AAgjDEEMaiQMIAQ2AhAjDCABNgIUIAEgAhAEIQMjDCADNgIAIwwgBDYCBCADIAQQLSMMIAA2AhQjDCAAKAIEIgM2AgAjDCAENgIEIAMgBBAOIAJBAWohAgwBCwsjDEEYaiQMDwtBwJQCQfCUAkEBQQEQAAALjgQBCX8jDEEUayQMIwxBrBRIBEBBwJQCQfCUAkEBQQEQAAALIwxBAEEU/AsAIwwgADYCBCMMIAAoAgAiBDYCACAEEAMhBCMMIAE2AgAgARADIQsjDCAANgIAIAAtAAhFIAQgC0xxBEAjDEEUaiQMQQAPCyMMIAM2AgAgAyALQQFqIgVBAXQQHgNAIwwgAzYCACADEAMgBkoEQCMMIAM2AgAgAyAGQQAQCCAGQQFqIQYMAQsLQQAhBiAEQQFrIQoDQCAKQQBOBEAjDCAANgIEIwwgACgCACIENgIAIwwgBCAKEAQiCTYCCCMMIAM2AgAgAyAFIAtqQQEQCCALQQFrIQwDQCAMQQBOBEAjDCAJNgIAIAktAAQEQCACBH8gAgUjDCABNgIEIAEgDBAEIQQjDCAENgIAIAQQFkULIQQjDCADNgIAIwwgAzYCBCADIAYgDGoQCiEIIAMgBSAMaiIHIAQEfyMMIAM2AgQgAyAHQQFqEAoFQQALIAhyEAgFIwwgAzYCACMMIAM2AgQgAyAGIAxqQQFqEAohCCMMIAk2AhAjDCAJKAIAIgc2AgQjDCABNgIQIAEgDBAEIQQjDCAENgIMIAMgBSAMaiAIIAcgBCACECBBAEdxEAgLIAxBAWshDAwBCwsgBSAGIQUhBiAKQQFrIQoMAQsLIwwgAzYCACADIAYQCkEARyMMQRRqJAwLC8oIPABBjAgLARwAQZgICwEBAEGsCAsBLABBuAgLDgkAAAAQAAAAIAQAACAEAEHcCAsBTABB6AgLNwIAAAAwAAAAZwBsAG8AYgAgAHAAYQB0AHQAZQByAG4AIABpAHMAIAB0AG8AbwAgAGwAbwBuAGcAQawJCwE8AEG4CQsvAgAAACgAAABBAGwAbABvAGMAYQB0AGkAbwBuACAAdABvAG8AIABsAGEAcgBnAGUAQewJCwE8AEH4CQsnAgAAACAAAAB+AGwAaQBiAC8AcgB0AC8AaQB0AGMAbQBzAC4AdABzAEHsCgsBPABB+AoLKwIAAAAkAAAASQBuAGQAZQB4ACAAbwB1AHQAIABvAGYAIAByAGEAbgBnAGUAQawLCwEsAEG4CwsbAgAAABQAAAB+AGwAaQBiAC8AcgB0AC4AdABzAEH8CwsBPABBiAwLJQIAAAAeAAAAfgBsAGkAYgAvAHIAdAAvAHQAbABzAGYALgB0AHMAQbwMCwEcAEHIDAsBAQBB3AwLARwAQegMCwECAEH8DAsBHABBiA0LCQIAAAACAAAALwBBnA0LARwAQagNCwEBAEG8DQsBLABByA0LIwIAAAAcAAAASQBuAHYAYQBsAGkAZAAgAGwAZQBuAGcAdABoAEHsDQsBLABB+A0LIQIAAAAaAAAAfgBsAGkAYgAvAGEAcgByAGEAeQAuAHQAcwBBnA4LAWwAQagOC1kCAAAAUgAAAGcAbABvAGIAIABwAGEAdAB0AGUAcgBuACAAYgByAGEAYwBlACAAZQB4AHAAYQBuAHMAaQBvAG4AIABpAHMAIAB0AG8AbwAgAGwAYQByAGcAZQBBjA8LARwAQZgPCwEBAEGsDwsBfABBuA8LZQIAAABeAAAARQBsAGUAbQBlAG4AdAAgAHQAeQBwAGUAIABtAHUAcwB0ACAAYgBlACAAbgB1AGwAbABhAGIAbABlACAAaQBmACAAYQByAHIAYQB5ACAAaQBzACAAaABvAGwAZQB5AEGsEAsBHABBuBALCwIAAAAEAAAAKgAqAEHMEAsBHABB2BALAQEAQewQCwEcAEH4EAsBAQBBjBELARwAQZgRCwUBAAAABABBrBELARwAQbgRCwUBAAAABABBzBELARwAQdgRCwUBAAAABABB7BELARwAQfgRCwUBAAAAAQBBjBILARwAQZgSCwUBAAAABABBrBILARwAQbgSCwEBAEHMEgsBHABB2BILAQEAQewSCwE8AEH4EgsxAgAAACoAAABPAGIAagBlAGMAdAAgAGEAbAByAGUAYQBkAHkAIABwAGkAbgBuAGUAZABBrBMLATwAQbgTCy8CAAAAKAAAAE8AYgBqAGUAYwB0ACAAaQBzACAAbgBvAHQAIABwAGkAbgBuAGUAZABB8BMLDQ4AAAAgAAAAIAAAACAAQZAUCxkCQQAAAkEAAAJBAAACCQAAAkEAAEIAAABCACQQc291cmNlTWFwcGluZ1VSTBIuL3JlbGVhc2Uud2FzbS5tYXA=" : "";
3545
3583
  if (embedded.length > 0) {
3546
3584
  wasm = instantiate(new Uint8Array(Buffer.from(embedded, "base64")));
3547
3585
  return wasm;
@@ -3581,7 +3619,8 @@ var Glob = class {
3581
3619
  }
3582
3620
  match(text) {
3583
3621
  const exports = this.ensureCompiled();
3584
- return withString(exports, text, (ptr) => exports.match(this.id, ptr)) !== 0;
3622
+ const dotFlag = this.dot ? 1 : 0;
3623
+ return withString(exports, text, (ptr) => exports.match(this.id, ptr, dotFlag)) !== 0;
3585
3624
  }
3586
3625
  scan(options) {
3587
3626
  const exports = this.ensureCompiled();
@@ -3606,12 +3645,14 @@ var Glob = class {
3606
3645
  }
3607
3646
  const excludeDirs = new Set(options?.exclude ?? []);
3608
3647
  const includeDot = options?.dot ?? this.dot;
3648
+ const dotFlag = includeDot ? 1 : 0;
3609
3649
  const hasSlash = exports.hasSlash(this.id) !== 0;
3610
3650
  let bangs = 0;
3611
3651
  while (bangs < this.pattern.length && this.pattern.charCodeAt(bangs) === 33) {
3612
3652
  bangs++;
3613
3653
  }
3614
- const canPrune = hasSlash && bangs % 2 === 0;
3654
+ const negated = bangs % 2 === 1;
3655
+ const canPrune = hasSlash && !negated;
3615
3656
  const results = [];
3616
3657
  const scanDir = (dirAbs, relPrefix) => {
3617
3658
  if (results.length >= maxResults) {
@@ -3625,7 +3666,7 @@ var Glob = class {
3625
3666
  }
3626
3667
  const entries = [];
3627
3668
  for (const name of names) {
3628
- if (!includeDot && name.length > 0 && name.charAt(0) === ".") {
3669
+ if (!includeDot && negated && name.charAt(0) === ".") {
3629
3670
  continue;
3630
3671
  }
3631
3672
  let type;
@@ -3656,21 +3697,23 @@ var Glob = class {
3656
3697
  }
3657
3698
  if (canPrune) {
3658
3699
  const dirPath = relPrefix + entry.name;
3659
- const descend = withString(exports, dirPath, (ptr) => exports.canDescend(this.id, ptr));
3700
+ const descend = withString(exports, dirPath, (ptr) => exports.canDescend(this.id, ptr, dotFlag));
3660
3701
  if (!descend) {
3661
3702
  continue;
3662
3703
  }
3704
+ } else if (!includeDot && entry.name.charAt(0) === ".") {
3705
+ continue;
3663
3706
  }
3664
3707
  scanDir(`${dirAbs}/${entry.name}`, relPrefix + entry.name + "/");
3665
3708
  } else {
3666
3709
  if (hasSlash) {
3667
3710
  const relativePath = relPrefix + entry.name;
3668
- const matched = withString(exports, relativePath, (ptr) => exports.match(this.id, ptr));
3711
+ const matched = withString(exports, relativePath, (ptr) => exports.match(this.id, ptr, dotFlag));
3669
3712
  if (matched) {
3670
3713
  results.push(relativePath);
3671
3714
  }
3672
3715
  } else {
3673
- const matched = withString(exports, entry.name, (ptr) => exports.match(this.id, ptr));
3716
+ const matched = withString(exports, entry.name, (ptr) => exports.match(this.id, ptr, dotFlag));
3674
3717
  if (matched) {
3675
3718
  results.push(relPrefix + entry.name);
3676
3719
  }
@@ -4869,7 +4912,7 @@ Check this list before writing \u2014 update an existing file rather than creati
4869
4912
  `- Code patterns, architecture, file paths \u2014 derivable from reading the project`,
4870
4913
  `- Git history \u2014 use git log/blame`,
4871
4914
  `- Debugging solutions \u2014 the fix is in the code`,
4872
- `- Anything in CLAUDE.md / SWIFTY.md files`,
4915
+ `- Anything in AGENTS.md files`,
4873
4916
  `- Ephemeral task details, current conversation context`,
4874
4917
  ``,
4875
4918
  `## How to save memories`,
@@ -5076,18 +5119,15 @@ function discoverInstructions(workDir) {
5076
5119
  const seen = /* @__PURE__ */ new Set();
5077
5120
  try {
5078
5121
  const home = homedir6();
5079
- addSource(sources, seen, join15(home, ".swifty", "SWIFTY.md"));
5080
5122
  addSource(sources, seen, join15(home, ".swifty", "AGENTS.md"));
5081
5123
  } catch (err) {
5082
5124
  log21.error({ err }, "memory operation failed");
5083
5125
  }
5084
5126
  const dirs = projectInstructionDirs(workDir);
5085
5127
  for (const dir of dirs) {
5086
- addSource(sources, seen, join15(dir, "SWIFTY.md"));
5087
5128
  addSource(sources, seen, join15(dir, "AGENTS.md"));
5088
- addSource(sources, seen, join15(dir, ".swifty", "SWIFTY.md"));
5129
+ addSource(sources, seen, join15(dir, ".swifty", "AGENTS.md"));
5089
5130
  }
5090
- addSource(sources, seen, join15(workDir, "SWIFTY.local.md"));
5091
5131
  return sources;
5092
5132
  }
5093
5133
  function addSource(out, seen, filePath) {
@@ -6370,8 +6410,6 @@ async function performPostCreationSetup(repoRoot, wtPath) {
6370
6410
  await copyWorktreeIncludeFiles(repoRoot, wtPath);
6371
6411
  }
6372
6412
  var SHARED_SWIFTY_ENTRIES = [
6373
- "config.yaml",
6374
- "config.local.yaml",
6375
6413
  "permissions.yaml",
6376
6414
  "permissions.local.yaml",
6377
6415
  "agents",
@@ -9269,20 +9307,99 @@ var AgentEventLogger = class {
9269
9307
  };
9270
9308
 
9271
9309
  // src/remote/server.ts
9272
- import { readFileSync as readFileSync23, existsSync as existsSync20, statSync as statSync12 } from "fs";
9310
+ import { readFileSync as readFileSync24, existsSync as existsSync21, statSync as statSync12 } from "fs";
9273
9311
  import { createServer } from "http";
9274
- import { join as join25, extname as extname3, normalize } from "path";
9312
+ import { join as join26, extname as extname3, normalize } from "path";
9275
9313
  import { cwd } from "process";
9276
9314
  import Koa from "koa";
9277
9315
  import { WebSocketServer, WebSocket } from "ws";
9278
- import z17 from "zod";
9316
+ import z18 from "zod";
9279
9317
 
9280
- // src/skills/catalog.ts
9281
- import { readdirSync as readdirSync6, readFileSync as readFileSync21, existsSync as existsSync18, statSync as statSync11 } from "fs";
9282
- import { homedir as homedir9 } from "os";
9283
- import { join as join23 } from "path";
9318
+ // src/config/provider-login.ts
9319
+ import { randomUUID } from "crypto";
9320
+ import {
9321
+ existsSync as existsSync18,
9322
+ mkdirSync as mkdirSync15,
9323
+ readFileSync as readFileSync21,
9324
+ renameSync,
9325
+ unlinkSync as unlinkSync5,
9326
+ writeFileSync as writeFileSync13
9327
+ } from "fs";
9328
+ import { dirname as dirname8, join as join23 } from "path";
9284
9329
  import yaml5 from "js-yaml";
9285
9330
  import { z as z13 } from "zod";
9331
+ var tokenLimit = (fallback, min, max) => z13.preprocess(
9332
+ (value) => value === void 0 || typeof value === "string" && !value.trim() ? fallback : value,
9333
+ z13.union([
9334
+ z13.number(),
9335
+ z13.string().trim().regex(/^\d+$/, "Enter a whole number").transform(Number)
9336
+ ]).pipe(z13.number().int().min(min).max(max))
9337
+ );
9338
+ var ProviderLoginSchema = ProviderConfigSchema.extend({
9339
+ name: z13.string().trim().min(1, "Name is required"),
9340
+ base_url: z13.string().trim().url("Enter a valid HTTP(S) URL").refine((url) => /^https?:\/\//i.test(url), "Use an HTTP(S) URL"),
9341
+ api_key: z13.string().trim().min(1, "API key is required"),
9342
+ model: z13.string().trim().min(1, "Model is required"),
9343
+ thinking: z13.enum(THINKING_LEVELS).optional(),
9344
+ context_window: tokenLimit(DEFAULT_CONTEXT_WINDOW, 1e3, 1e7),
9345
+ max_output_tokens: tokenLimit(DEFAULT_MAX_OUTPUT_TOKENS, 1, 1e6)
9346
+ }).refine((provider) => provider.max_output_tokens <= provider.context_window, {
9347
+ path: ["max_output_tokens"],
9348
+ message: "Max output tokens must not exceed the context window"
9349
+ }).transform((provider) => ({
9350
+ ...provider,
9351
+ thinking: provider.thinking ?? defaultThinkingLevelFor(provider.protocol)
9352
+ }));
9353
+ function readConfigRaw(path2) {
9354
+ if (!existsSync18(path2)) {
9355
+ return {};
9356
+ }
9357
+ let raw;
9358
+ try {
9359
+ raw = yaml5.load(readFileSync21(path2, "utf-8"));
9360
+ } catch {
9361
+ throw new Error(`Unable to read existing ${path2}; it has not been changed.`);
9362
+ }
9363
+ return z13.record(z13.string(), z13.unknown()).parse(raw ?? {});
9364
+ }
9365
+ function writeConfigAtomic(path2, raw) {
9366
+ const directory = dirname8(path2);
9367
+ mkdirSync15(directory, { recursive: true });
9368
+ const temporary = join23(directory, `.config-${randomUUID()}.tmp`);
9369
+ try {
9370
+ writeFileSync13(temporary, yaml5.dump(raw, { lineWidth: -1, noRefs: true }), {
9371
+ encoding: "utf-8",
9372
+ mode: 384,
9373
+ flag: "wx"
9374
+ });
9375
+ renameSync(temporary, path2);
9376
+ } finally {
9377
+ if (existsSync18(temporary)) {
9378
+ unlinkSync5(temporary);
9379
+ }
9380
+ }
9381
+ }
9382
+ function persistThinkingLevel(providerName, level) {
9383
+ const path2 = globalConfigPath();
9384
+ const config = readConfigRaw(path2);
9385
+ const providers = z13.array(z13.record(z13.string(), z13.unknown())).parse(config.providers ?? []);
9386
+ const target = providers.find((entry) => entry.name === providerName);
9387
+ if (!target) {
9388
+ throw new Error(`Provider "${providerName}" not found in ${path2}.`);
9389
+ }
9390
+ if (target.thinking === level) {
9391
+ return;
9392
+ }
9393
+ target.thinking = level;
9394
+ writeConfigAtomic(path2, { ...config, providers });
9395
+ }
9396
+
9397
+ // src/skills/catalog.ts
9398
+ import { readdirSync as readdirSync6, readFileSync as readFileSync22, existsSync as existsSync19, statSync as statSync11 } from "fs";
9399
+ import { homedir as homedir9 } from "os";
9400
+ import { join as join24 } from "path";
9401
+ import yaml6 from "js-yaml";
9402
+ import { z as z14 } from "zod";
9286
9403
  var log30 = createChildLogger({ module: "skills" });
9287
9404
  var SkillCatalog = class {
9288
9405
  entries = /* @__PURE__ */ new Map();
@@ -9293,7 +9410,7 @@ var SkillCatalog = class {
9293
9410
  this.entries.clear();
9294
9411
  this.dirModTimes.clear();
9295
9412
  for (const dir of this.skillDirPaths()) {
9296
- if (!existsSync18(dir)) {
9413
+ if (!existsSync19(dir)) {
9297
9414
  continue;
9298
9415
  }
9299
9416
  this.scanDirectory(dir);
@@ -9333,7 +9450,7 @@ var SkillCatalog = class {
9333
9450
  }
9334
9451
  skillDirPaths() {
9335
9452
  return [homedir9(), ...this.workDir ? [this.workDir] : []].flatMap(
9336
- (root) => [".claude", ".github", ".swifty"].map((ecosystem) => join23(root, ecosystem, "skills"))
9453
+ (root) => [".agents", ".swifty"].map((ecosystem) => join24(root, ecosystem, "skills"))
9337
9454
  );
9338
9455
  }
9339
9456
  scanDirectory(dir) {
@@ -9345,13 +9462,13 @@ var SkillCatalog = class {
9345
9462
  return;
9346
9463
  }
9347
9464
  for (const entry of dirEntries) {
9348
- const fullPath = join23(dir, entry);
9465
+ const fullPath = join24(dir, entry);
9349
9466
  try {
9350
9467
  const stat3 = statSync11(fullPath);
9351
9468
  if (stat3.isDirectory()) {
9352
9469
  this.dirModTimes.set(fullPath, stat3.mtimeMs);
9353
- const skillFile = join23(fullPath, "SKILL.md");
9354
- if (existsSync18(skillFile)) {
9470
+ const skillFile = join24(fullPath, "SKILL.md");
9471
+ if (existsSync19(skillFile)) {
9355
9472
  this.loadSkill(skillFile, fullPath, true);
9356
9473
  }
9357
9474
  }
@@ -9362,7 +9479,7 @@ var SkillCatalog = class {
9362
9479
  }
9363
9480
  loadSkill(filePath, sourceDir, isDirectory) {
9364
9481
  try {
9365
- const raw = readFileSync21(filePath, "utf-8");
9482
+ const raw = readFileSync22(filePath, "utf-8");
9366
9483
  const parsed = parseSkillFile(raw);
9367
9484
  if (!parsed) {
9368
9485
  return;
@@ -9405,7 +9522,7 @@ var SkillCatalog = class {
9405
9522
  try {
9406
9523
  const currentMtime = statSync11(entry.filePath).mtimeMs;
9407
9524
  if (currentMtime !== entry.loadedMtimeMs) {
9408
- const raw = readFileSync21(entry.filePath, "utf-8");
9525
+ const raw = readFileSync22(entry.filePath, "utf-8");
9409
9526
  const parsed = parseSkillFile(raw);
9410
9527
  if (parsed) {
9411
9528
  if (parsed.meta.name !== name) {
@@ -9438,12 +9555,12 @@ function resolveMode(raw) {
9438
9555
  }
9439
9556
  return strArg(asRecord(raw), "context") === "fork" ? "fork" : "inline";
9440
9557
  }
9441
- var YamlFrontmatterSchema3 = z13.looseObject({
9442
- name: z13.string().trim().min(1),
9443
- description: z13.string().optional(),
9444
- mode: z13.enum(["inline", "fork"]).optional(),
9445
- model: z13.string().optional(),
9446
- fork_context: z13.enum(["full", "none", "recent"]).optional()
9558
+ var YamlFrontmatterSchema3 = z14.looseObject({
9559
+ name: z14.string().trim().min(1),
9560
+ description: z14.string().optional(),
9561
+ mode: z14.enum(["inline", "fork"]).optional(),
9562
+ model: z14.string().optional(),
9563
+ fork_context: z14.enum(["full", "none", "recent"]).optional()
9447
9564
  });
9448
9565
  function parseSkillFile(content) {
9449
9566
  const normalized = content.replace(/^\uFEFF/, "");
@@ -9453,7 +9570,7 @@ function parseSkillFile(content) {
9453
9570
  }
9454
9571
  const body = normalized.slice(match[0].length).trim();
9455
9572
  try {
9456
- const raw = yaml5.load(match[1]);
9573
+ const raw = yaml6.load(match[1]);
9457
9574
  const data = YamlFrontmatterSchema3.parse(raw);
9458
9575
  return {
9459
9576
  meta: {
@@ -9476,7 +9593,7 @@ function buildSkillSection(catalog, workDir) {
9476
9593
  if (metas.length === 0) {
9477
9594
  return "";
9478
9595
  }
9479
- const skillsDir = join23(workDir, ".swifty", "skills");
9596
+ const skillsDir = join24(workDir, ".swifty", "skills");
9480
9597
  const lines = [
9481
9598
  "## Available Skills\n",
9482
9599
  `Skills are installed at: ${skillsDir}`,
@@ -9591,36 +9708,36 @@ ${body}`,
9591
9708
  };
9592
9709
 
9593
9710
  // src/todo/store.ts
9594
- import { readFileSync as readFileSync22, writeFileSync as writeFileSync13, mkdirSync as mkdirSync15, existsSync as existsSync19 } from "fs";
9595
- import { join as join24, dirname as dirname8 } from "path";
9596
- import z14, { parse as parse8 } from "zod";
9711
+ import { readFileSync as readFileSync23, writeFileSync as writeFileSync14, mkdirSync as mkdirSync16, existsSync as existsSync20 } from "fs";
9712
+ import { join as join25, dirname as dirname9 } from "path";
9713
+ import z15, { parse as parse8 } from "zod";
9597
9714
  var log31 = createChildLogger({ module: "todo" });
9598
- var TaskStatusSchema = z14.enum(["pending", "in_progress", "completed"]);
9599
- var TaskSchema = z14.object({
9600
- id: z14.string(),
9601
- subject: z14.string(),
9602
- description: z14.string(),
9715
+ var TaskStatusSchema = z15.enum(["pending", "in_progress", "completed"]);
9716
+ var TaskSchema = z15.object({
9717
+ id: z15.string(),
9718
+ subject: z15.string(),
9719
+ description: z15.string(),
9603
9720
  status: TaskStatusSchema,
9604
- owner: z14.string().optional(),
9605
- activeForm: z14.string().optional(),
9606
- blocks: z14.array(z14.string()),
9607
- blockedBy: z14.array(z14.string()),
9608
- metadata: z14.record(z14.string(), z14.unknown())
9721
+ owner: z15.string().optional(),
9722
+ activeForm: z15.string().optional(),
9723
+ blocks: z15.array(z15.string()),
9724
+ blockedBy: z15.array(z15.string()),
9725
+ metadata: z15.record(z15.string(), z15.unknown())
9609
9726
  });
9610
9727
  var TaskStore = class {
9611
9728
  filePath;
9612
9729
  // Session-scoped store: .swifty/tasks/<listId>.json.
9613
9730
  constructor(workDir, listId) {
9614
- this.filePath = join24(workDir, ".swifty", "tasks", `${listId}.json`);
9731
+ this.filePath = join25(workDir, ".swifty", "tasks", `${listId}.json`);
9615
9732
  }
9616
9733
  load() {
9617
- if (!existsSync19(this.filePath)) {
9734
+ if (!existsSync20(this.filePath)) {
9618
9735
  return [];
9619
9736
  }
9620
9737
  try {
9621
- const data = readFileSync22(this.filePath, "utf-8");
9738
+ const data = readFileSync23(this.filePath, "utf-8");
9622
9739
  const raw = JSON.parse(data);
9623
- const parsed = parse8(z14.array(TaskSchema), raw);
9740
+ const parsed = parse8(z15.array(TaskSchema), raw);
9624
9741
  return parsed;
9625
9742
  } catch (err) {
9626
9743
  log31.error({ err }, "todo operation failed");
@@ -9628,8 +9745,8 @@ var TaskStore = class {
9628
9745
  }
9629
9746
  }
9630
9747
  save(tasks) {
9631
- mkdirSync15(dirname8(this.filePath), { recursive: true });
9632
- writeFileSync13(this.filePath, JSON.stringify(tasks, null, 2), "utf-8");
9748
+ mkdirSync16(dirname9(this.filePath), { recursive: true });
9749
+ writeFileSync14(this.filePath, JSON.stringify(tasks, null, 2), "utf-8");
9633
9750
  }
9634
9751
  };
9635
9752
 
@@ -9739,7 +9856,7 @@ var TaskList = class {
9739
9856
 
9740
9857
  // src/todo/tools.ts
9741
9858
  import { safeParseAsync } from "@modelcontextprotocol/sdk/server/zod-compat.js";
9742
- import z15 from "zod";
9859
+ import z16 from "zod";
9743
9860
  var TaskCreateTool2 = class {
9744
9861
  name = "TaskCreate";
9745
9862
  description = "Create a new task to track work.";
@@ -9926,27 +10043,27 @@ var TaskUpdateTool2 = class {
9926
10043
  return { output: `Updated task #${taskId} status`, isError: false };
9927
10044
  }
9928
10045
  };
9929
- var TaskUpdateArgsSchema = z15.object({
9930
- taskId: z15.string(),
9931
- subject: z15.string().optional(),
9932
- description: z15.string().optional(),
9933
- status: z15.enum(["pending", "in_progress", "completed", "deleted"]).optional(),
9934
- owner: z15.string().optional(),
9935
- addBlocks: z15.array(z15.string()).optional(),
9936
- addBlockedBy: z15.array(z15.string()).optional()
10046
+ var TaskUpdateArgsSchema = z16.object({
10047
+ taskId: z16.string(),
10048
+ subject: z16.string().optional(),
10049
+ description: z16.string().optional(),
10050
+ status: z16.enum(["pending", "in_progress", "completed", "deleted"]).optional(),
10051
+ owner: z16.string().optional(),
10052
+ addBlocks: z16.array(z16.string()).optional(),
10053
+ addBlockedBy: z16.array(z16.string()).optional()
9937
10054
  });
9938
10055
 
9939
10056
  // src/tools/ask-user.ts
9940
- import { safeParseAsync as safeParseAsync2, z as z16 } from "zod";
9941
- var QuestionOptionSchema = z16.object({
9942
- label: z16.string(),
9943
- description: z16.string().optional()
10057
+ import { safeParseAsync as safeParseAsync2, z as z17 } from "zod";
10058
+ var QuestionOptionSchema = z17.object({
10059
+ label: z17.string(),
10060
+ description: z17.string().optional()
9944
10061
  });
9945
- var QuestionSchema = z16.object({
9946
- question: z16.string(),
9947
- header: z16.string(),
9948
- options: z16.array(QuestionOptionSchema),
9949
- multiSelect: z16.boolean()
10062
+ var QuestionSchema = z17.object({
10063
+ question: z17.string(),
10064
+ header: z17.string(),
10065
+ options: z17.array(QuestionOptionSchema),
10066
+ multiSelect: z17.boolean()
9950
10067
  });
9951
10068
  var AskUserQuestionTool = class {
9952
10069
  constructor(ask) {
@@ -10028,7 +10145,7 @@ var AskUserQuestionTool = class {
10028
10145
  success,
10029
10146
  data: argsData,
10030
10147
  error
10031
- } = await safeParseAsync2(z16.object({ questions: z16.array(QuestionSchema) }), args);
10148
+ } = await safeParseAsync2(z17.object({ questions: z17.array(QuestionSchema) }), args);
10032
10149
  if (!success) {
10033
10150
  return {
10034
10151
  output: error.message,
@@ -10277,22 +10394,22 @@ function restoreRemoteSession(state, sessionId, saved) {
10277
10394
 
10278
10395
  // src/remote/server.ts
10279
10396
  var log34 = createChildLogger({ module: "remote" });
10280
- var WsInboundSchema = z17.object({
10281
- type: z17.string(),
10282
- data: z17.unknown()
10397
+ var WsInboundSchema = z18.object({
10398
+ type: z18.string(),
10399
+ data: z18.unknown()
10283
10400
  });
10284
- var UserMessageSchema = z17.object({
10285
- content: z17.string()
10401
+ var UserMessageSchema = z18.object({
10402
+ content: z18.string()
10286
10403
  });
10287
- var PermissionResponseSchema = z17.object({
10288
- id: z17.string(),
10289
- response: z17.enum(["allow", "deny", "allowAlways"])
10404
+ var PermissionResponseSchema = z18.object({
10405
+ id: z18.string(),
10406
+ response: z18.enum(["allow", "deny", "allowAlways"])
10290
10407
  });
10291
- var AskUserResponseSchema = z17.object({
10292
- id: z17.string(),
10293
- answers: z17.record(z17.string(), z17.string())
10408
+ var AskUserResponseSchema = z18.object({
10409
+ id: z18.string(),
10410
+ answers: z18.record(z18.string(), z18.string())
10294
10411
  });
10295
- var FE_DIST = join25(import.meta.dirname, "fe", "dist");
10412
+ var FE_DIST = join26(import.meta.dirname, "fe", "dist");
10296
10413
  var MIME_TYPES = {
10297
10414
  ".html": "text/html; charset=utf-8",
10298
10415
  ".js": "application/javascript; charset=utf-8",
@@ -10305,14 +10422,14 @@ var MIME_TYPES = {
10305
10422
  };
10306
10423
  function serveStatic(path2) {
10307
10424
  const cleanPath = normalize(path2).replace(/^(\.\.[/\\])+/, "");
10308
- const fullPath = join25(FE_DIST, cleanPath);
10425
+ const fullPath = join26(FE_DIST, cleanPath);
10309
10426
  if (!fullPath.startsWith(FE_DIST)) {
10310
10427
  return null;
10311
10428
  }
10312
- if (!existsSync20(fullPath) || !statSync12(fullPath).isFile()) {
10429
+ if (!existsSync21(fullPath) || !statSync12(fullPath).isFile()) {
10313
10430
  return null;
10314
10431
  }
10315
- const body = readFileSync23(fullPath);
10432
+ const body = readFileSync24(fullPath);
10316
10433
  const mime = MIME_TYPES[extname3(fullPath)] ?? "application/octet-stream";
10317
10434
  return { body, mime };
10318
10435
  }
@@ -10480,7 +10597,7 @@ async function createRemoteAgent(opts) {
10480
10597
  throw new Error("no llm client (provider not initialized)");
10481
10598
  }
10482
10599
  const { PermissionChecker: PC } = await import("./checker-AXHPKVBY.js");
10483
- const { Agent: AgentClass } = await import("./agent-XYO2MXXK.js");
10600
+ const { Agent: AgentClass } = await import("./agent-5WEKVRTD.js");
10484
10601
  const subConv = new ConversationManager();
10485
10602
  subConv.addUserMessage(prompt);
10486
10603
  const subAgent = new AgentClass({
@@ -11204,7 +11321,13 @@ ${lines.join("\n")}`
11204
11321
  tokenCount: () => [0, 0],
11205
11322
  toolCount: () => handle.registry.listTools().length,
11206
11323
  memoryList: () => handle.memoryManager.getMemories().map((m) => m.name),
11207
- model: handle.provider.model
11324
+ model: handle.provider.model,
11325
+ thinkingLevel: () => handle.client.getThinkingLevel?.() ?? defaultThinkingLevelFor(handle.provider.protocol),
11326
+ setThinkingLevel: (level) => handle.client.setThinkingLevel?.(level),
11327
+ persistThinkingLevel: (level) => {
11328
+ persistThinkingLevel(handle.provider.name, level);
11329
+ handle.provider.thinking = level;
11330
+ }
11208
11331
  };
11209
11332
  }
11210
11333
  /** Handles /compact command: force context compaction. */
@@ -11494,23 +11617,23 @@ Explore the codebase and design your approach.`
11494
11617
  };
11495
11618
 
11496
11619
  // src/teammate.ts
11497
- import { basename as basename6, dirname as dirname9, join as join27 } from "path";
11620
+ import { basename as basename6, dirname as dirname10, join as join28 } from "path";
11498
11621
 
11499
11622
  // src/skills/install-tool.ts
11500
- import { randomUUID } from "crypto";
11623
+ import { randomUUID as randomUUID2 } from "crypto";
11501
11624
  import {
11502
- mkdirSync as mkdirSync16,
11503
- writeFileSync as writeFileSync14,
11504
- readFileSync as readFileSync24,
11625
+ mkdirSync as mkdirSync17,
11626
+ writeFileSync as writeFileSync15,
11627
+ readFileSync as readFileSync25,
11505
11628
  lstatSync as lstatSync2,
11506
11629
  realpathSync,
11507
11630
  openSync as openSync2,
11508
11631
  closeSync as closeSync2,
11509
- renameSync,
11632
+ renameSync as renameSync2,
11510
11633
  rmSync as rmSync2
11511
11634
  } from "fs";
11512
- import { join as join26, resolve as resolve10 } from "path";
11513
- import yaml6 from "js-yaml";
11635
+ import { join as join27, resolve as resolve10 } from "path";
11636
+ import yaml7 from "js-yaml";
11514
11637
  var log35 = createChildLogger({ module: "skills" });
11515
11638
  var InstallSkillTool = class {
11516
11639
  constructor(workDir, catalog, onInstalled) {
@@ -11572,7 +11695,7 @@ var InstallSkillTool = class {
11572
11695
  clearTimeout(timer);
11573
11696
  }
11574
11697
  } else {
11575
- content = readFileSync24(resolve10(this.workDir, source), "utf-8");
11698
+ content = readFileSync25(resolve10(this.workDir, source), "utf-8");
11576
11699
  }
11577
11700
  const parsed = parseSkillFile(content);
11578
11701
  if (!parsed) {
@@ -11590,7 +11713,7 @@ var InstallSkillTool = class {
11590
11713
  }
11591
11714
  if (name !== parsed.meta.name) {
11592
11715
  content = `---
11593
- ${yaml6.dump({ ...parsed.frontmatter, name })}---
11716
+ ${yaml7.dump({ ...parsed.frontmatter, name })}---
11594
11717
 
11595
11718
  ${parsed.body}
11596
11719
  `;
@@ -11598,30 +11721,30 @@ ${parsed.body}
11598
11721
  ctx.abortSignal?.throwIfAborted();
11599
11722
  let dir = realpathSync(this.workDir);
11600
11723
  for (const segment of [".swifty", "skills", name]) {
11601
- dir = join26(dir, segment);
11724
+ dir = join27(dir, segment);
11602
11725
  const stat4 = lstatSync2(dir, { throwIfNoEntry: false });
11603
11726
  if (stat4) {
11604
11727
  if (stat4.isSymbolicLink() || !stat4.isDirectory()) {
11605
11728
  throw new Error(`Installation directory must be a real directory: ${dir}`);
11606
11729
  }
11607
11730
  } else {
11608
- mkdirSync16(dir);
11731
+ mkdirSync17(dir);
11609
11732
  }
11610
11733
  }
11611
- const destination = join26(dir, "SKILL.md");
11734
+ const destination = join27(dir, "SKILL.md");
11612
11735
  const stat3 = lstatSync2(destination, { throwIfNoEntry: false });
11613
11736
  if (stat3 && (stat3.isSymbolicLink() || !stat3.isFile())) {
11614
11737
  throw new Error(`Installation target must be a regular file: ${destination}`);
11615
11738
  }
11616
- const temporary = join26(dir, `.SKILL-${randomUUID()}.tmp`);
11739
+ const temporary = join27(dir, `.SKILL-${randomUUID2()}.tmp`);
11617
11740
  const fd = openSync2(temporary, "wx", stat3?.mode ?? 438);
11618
11741
  try {
11619
11742
  try {
11620
- writeFileSync14(fd, content, "utf-8");
11743
+ writeFileSync15(fd, content, "utf-8");
11621
11744
  } finally {
11622
11745
  closeSync2(fd);
11623
11746
  }
11624
- renameSync(temporary, destination);
11747
+ renameSync2(temporary, destination);
11625
11748
  } finally {
11626
11749
  rmSync2(temporary, { force: true });
11627
11750
  }
@@ -11667,7 +11790,7 @@ function parseTeammateFlags(args) {
11667
11790
  }
11668
11791
  if (!teamName) {
11669
11792
  const leaf = basename6(teamDir2);
11670
- teamName = leaf === "inboxes" ? basename6(dirname9(teamDir2)) : leaf;
11793
+ teamName = leaf === "inboxes" ? basename6(dirname10(teamDir2)) : leaf;
11671
11794
  }
11672
11795
  return { teamDir: teamDir2, teamName, memberName, initialTask, providerName };
11673
11796
  }
@@ -11734,7 +11857,7 @@ async function runTeammate(args) {
11734
11857
  initLogger({
11735
11858
  sessionId: `teammate-${safeMemberName}-${Date.now().toString(36)}`,
11736
11859
  mode: "teammate",
11737
- logDir: join27(dirname9(args.teamDir), "logs"),
11860
+ logDir: join28(dirname10(args.teamDir), "logs"),
11738
11861
  skipCleanup: true
11739
11862
  });
11740
11863
  process.on("exit", closeLogger);
@@ -11908,24 +12031,24 @@ function isDiffTool(toolName) {
11908
12031
 
11909
12032
  // src/vscode/ide-client.ts
11910
12033
  import { Client as Client2 } from "@modelcontextprotocol/sdk/client/index.js";
11911
- import { z as z19 } from "zod";
12034
+ import { z as z20 } from "zod";
11912
12035
 
11913
12036
  // src/vscode/lockfile.ts
11914
12037
  import { readdir as readdir2, readFile as readFile5 } from "fs/promises";
11915
12038
  import { homedir as homedir10 } from "os";
11916
- import { join as join28, resolve as resolve11, sep as sep2 } from "path";
11917
- import { z as z18 } from "zod";
12039
+ import { join as join29, resolve as resolve11, sep as sep2 } from "path";
12040
+ import { z as z19 } from "zod";
11918
12041
  var log37 = createChildLogger({ module: "vscode" });
11919
- var LockfileSchema = z18.object({
11920
- workspaceFolders: z18.array(z18.string()).optional(),
11921
- pid: z18.number().optional(),
11922
- ideName: z18.string().optional(),
11923
- transport: z18.enum(["ws", "sse"]).optional(),
11924
- authToken: z18.string().optional()
12042
+ var LockfileSchema = z19.object({
12043
+ workspaceFolders: z19.array(z19.string()).optional(),
12044
+ pid: z19.number().optional(),
12045
+ ideName: z19.string().optional(),
12046
+ transport: z19.enum(["ws", "sse"]).optional(),
12047
+ authToken: z19.string().optional()
11925
12048
  });
11926
12049
  function ideLockDir() {
11927
- const configDir = process.env.CLAUDE_CONFIG_DIR ?? join28(homedir10(), ".claude");
11928
- return join28(configDir, "ide");
12050
+ const configDir = process.env.CLAUDE_CONFIG_DIR ?? join29(homedir10(), ".claude");
12051
+ return join29(configDir, "ide");
11929
12052
  }
11930
12053
  function cwdInWorkspace(cwd2, workspaceFolders) {
11931
12054
  const normalizedCwd = cwd2.normalize("NFC");
@@ -11943,7 +12066,7 @@ async function readLockfile(dir, filename) {
11943
12066
  return null;
11944
12067
  }
11945
12068
  try {
11946
- const content = await readFile5(join28(dir, filename), "utf-8");
12069
+ const content = await readFile5(join29(dir, filename), "utf-8");
11947
12070
  const parsed = LockfileSchema.parse(JSON.parse(content));
11948
12071
  if (parsed.transport !== "ws") {
11949
12072
  return null;
@@ -12074,12 +12197,12 @@ var WebSocketTransport = class {
12074
12197
 
12075
12198
  // src/vscode/ide-client.ts
12076
12199
  var log38 = createChildLogger({ module: "vscode" });
12077
- var AtMentionedSchema = z19.object({
12078
- method: z19.literal("at_mentioned"),
12079
- params: z19.object({
12080
- filePath: z19.string(),
12081
- lineStart: z19.number().optional(),
12082
- lineEnd: z19.number().optional()
12200
+ var AtMentionedSchema = z20.object({
12201
+ method: z20.literal("at_mentioned"),
12202
+ params: z20.object({
12203
+ filePath: z20.string(),
12204
+ lineStart: z20.number().optional(),
12205
+ lineEnd: z20.number().optional()
12083
12206
  })
12084
12207
  });
12085
12208
  function inIdeTerminal() {
@@ -12170,7 +12293,7 @@ export {
12170
12293
  DEFAULT_CONTEXT_WINDOW,
12171
12294
  DEFAULT_EAGER_THRESHOLD_PERCENT,
12172
12295
  DEFAULT_MAX_OUTPUT_TOKENS,
12173
- DEFAULT_PROVIDER_THINKING,
12296
+ DEFAULT_THINKING_LEVEL,
12174
12297
  EDIT_FILE_DESCRIPTION,
12175
12298
  EditFileTool,
12176
12299
  EnterWorktreeTool,
@@ -12241,6 +12364,8 @@ export {
12241
12364
  StreamingExecutor,
12242
12365
  SyntheticOutputTool,
12243
12366
  TEAMMATE_DISALLOWED_TOOLS,
12367
+ THINKING_BUDGETS,
12368
+ THINKING_LEVELS,
12244
12369
  TOOL_RESULT_PREVIEW_CHARS,
12245
12370
  TOOL_SEARCH_TOOL_NAME,
12246
12371
  TaskCreateTool2 as TaskCreateTool,
@@ -12314,6 +12439,7 @@ export {
12314
12439
  currentContextTokens,
12315
12440
  decideAndApply,
12316
12441
  decideMode,
12442
+ defaultThinkingLevelFor,
12317
12443
  detectBackend,
12318
12444
  detectBackendFromEnv,
12319
12445
  detectEnvironment,
@@ -12344,6 +12470,8 @@ export {
12344
12470
  getNameRegistry,
12345
12471
  getOrCreatePlanPath,
12346
12472
  getSessionFilePath,
12473
+ getThinkingLevel,
12474
+ globalConfigPath,
12347
12475
  handleCodeReviewCommand,
12348
12476
  hasWorktreeChanges,
12349
12477
  identitySection,
@@ -12362,6 +12490,7 @@ export {
12362
12490
  isShutdownRequest,
12363
12491
  isSpillReadback,
12364
12492
  isToolResultContentBlock,
12493
+ isValidThinkingLevel,
12365
12494
  listSessions,
12366
12495
  load,
12367
12496
  loadAgentDefinitions,
@@ -12384,7 +12513,6 @@ export {
12384
12513
  memoryAge,
12385
12514
  memoryAgeDays,
12386
12515
  memoryFreshnessText,
12387
- mergeConfig,
12388
12516
  needsToolSearchBeta,
12389
12517
  newRequestId,
12390
12518
  newSessionId,
@@ -12443,7 +12571,9 @@ export {
12443
12571
  teamConfigPath,
12444
12572
  teamDir,
12445
12573
  teamsBaseDir,
12574
+ thinkingBudgetForLevel,
12446
12575
  toDisplayPreview,
12576
+ toReasoningEffort,
12447
12577
  toTry,
12448
12578
  toneStyleSection,
12449
12579
  toolResultsToRecords,