@wrongstack/core 0.270.0 → 0.272.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/{agent-bridge-PcHQl_UQ.d.ts → agent-bridge-DFQYEeXf.d.ts} +1 -1
  2. package/dist/{agent-subagent-runner-SHJW7t8q.d.ts → agent-subagent-runner-BZa_IEcd.d.ts} +7 -7
  3. package/dist/{brain-BYcK__Ym.d.ts → brain-etbcbRwV.d.ts} +95 -2
  4. package/dist/{compactor-C2RKEBtC.d.ts → compactor-72ug-ZRB.d.ts} +1 -1
  5. package/dist/{config-C_ae2k86.d.ts → config-rRS8yorV.d.ts} +71 -2
  6. package/dist/{context-Dp87Bcaq.d.ts → context-Dw55zZ_Q.d.ts} +110 -1
  7. package/dist/coordination/index.d.ts +181 -17
  8. package/dist/coordination/index.js +1018 -166
  9. package/dist/coordination/index.js.map +1 -1
  10. package/dist/defaults/index.d.ts +25 -25
  11. package/dist/defaults/index.js +804 -222
  12. package/dist/defaults/index.js.map +1 -1
  13. package/dist/execution/index.d.ts +23 -18
  14. package/dist/execution/index.js +136 -41
  15. package/dist/execution/index.js.map +1 -1
  16. package/dist/execution/prompt-enhancer.d.ts +36 -6
  17. package/dist/execution/prompt-enhancer.js +35 -9
  18. package/dist/execution/prompt-enhancer.js.map +1 -1
  19. package/dist/extension/index.d.ts +6 -6
  20. package/dist/{global-mailbox-Bvrz1P3f.d.ts → global-mailbox-DJ4EoRr0.d.ts} +145 -5
  21. package/dist/{goal-preamble-CA_4yiGQ.d.ts → goal-preamble-hM8BH7TK.d.ts} +9 -9
  22. package/dist/{goal-store-DhuJoUNG.d.ts → goal-store-CWlbT0TO.d.ts} +1 -1
  23. package/dist/hq/index.d.ts +95 -6
  24. package/dist/hq/index.js +628 -50
  25. package/dist/hq/index.js.map +1 -1
  26. package/dist/{index-whDfTANu.d.ts → index-2Lhk5v0o.d.ts} +2 -2
  27. package/dist/{index-W4VJCzHa.d.ts → index-DWm_PE9L.d.ts} +5 -5
  28. package/dist/{index-CZQ6Pwbs.d.ts → index-DqW4o62H.d.ts} +8 -8
  29. package/dist/index.d.ts +96 -56
  30. package/dist/index.js +2464 -519
  31. package/dist/index.js.map +1 -1
  32. package/dist/infrastructure/index.d.ts +6 -6
  33. package/dist/infrastructure/index.js +5 -3
  34. package/dist/infrastructure/index.js.map +1 -1
  35. package/dist/kernel/index.d.ts +9 -9
  36. package/dist/kernel/index.js.map +1 -1
  37. package/dist/{mcp-servers-DJdZiRcv.d.ts → mcp-servers-BpWHTKlE.d.ts} +3 -3
  38. package/dist/models/index.d.ts +5 -5
  39. package/dist/models/index.js +28 -5
  40. package/dist/models/index.js.map +1 -1
  41. package/dist/{models-registry-C3a-2-Yd.d.ts → models-registry-CXQFUn5t.d.ts} +1 -1
  42. package/dist/{multi-agent-coordinator-CJSpTe5O.d.ts → multi-agent-coordinator-jyimfo7D.d.ts} +1 -1
  43. package/dist/{null-fleet-bus-QVshIsDx.d.ts → null-fleet-bus-DOGQcvrY.d.ts} +6 -6
  44. package/dist/observability/index.d.ts +2 -2
  45. package/dist/{parallel-eternal-engine-D9y5Pkcc.d.ts → parallel-eternal-engine-rItJBYp9.d.ts} +9 -9
  46. package/dist/{path-resolver-CnQ8SIfh.d.ts → path-resolver-DrpF5MGK.d.ts} +3 -3
  47. package/dist/{permission-CvYQNUqZ.d.ts → permission-CC7XFYWG.d.ts} +1 -1
  48. package/dist/{permission-policy-D5Ss8j4B.d.ts → permission-policy-cYR4RJmw.d.ts} +2 -2
  49. package/dist/{pipeline-l_zzFRh3.d.ts → pipeline-Ckkn3AOA.d.ts} +2 -2
  50. package/dist/{plan-templates-NtPgyeJA.d.ts → plan-templates-BvHw5Znw.d.ts} +33 -9
  51. package/dist/{provider-model-resolve-d5poT5y0.d.ts → provider-model-resolve-nZqnCeaR.d.ts} +3 -3
  52. package/dist/{provider-runner-gkctlQV_.d.ts → provider-runner-zVOn1p67.d.ts} +3 -3
  53. package/dist/{retry-policy-CtFhfwa8.d.ts → retry-policy-BV7nzeAd.d.ts} +1 -1
  54. package/dist/sdd/index.d.ts +8 -8
  55. package/dist/sdd/index.js +2 -0
  56. package/dist/sdd/index.js.map +1 -1
  57. package/dist/{secret-vault-BLsVmTIK.d.ts → secret-vault-eMBKfheR.d.ts} +9 -1
  58. package/dist/security/index.d.ts +5 -5
  59. package/dist/security/index.js +137 -10
  60. package/dist/security/index.js.map +1 -1
  61. package/dist/{selector-CXl2_y9W.d.ts → selector-C4ORTOid.d.ts} +1 -1
  62. package/dist/{session-event-bridge-Ccud20CC.d.ts → session-event-bridge-CeNpUL9w.d.ts} +1 -1
  63. package/dist/{session-reader-ZeXQmsmE.d.ts → session-reader-BepLSnGL.d.ts} +1 -1
  64. package/dist/storage/index.d.ts +50 -13
  65. package/dist/storage/index.js +620 -220
  66. package/dist/storage/index.js.map +1 -1
  67. package/dist/tools/index.d.ts +2 -2
  68. package/dist/tools/index.js +9 -2
  69. package/dist/tools/index.js.map +1 -1
  70. package/dist/types/index.d.ts +19 -19
  71. package/dist/types/index.js +202 -41
  72. package/dist/types/index.js.map +1 -1
  73. package/dist/utils/index.d.ts +17 -4
  74. package/dist/utils/index.js +48 -9
  75. package/dist/utils/index.js.map +1 -1
  76. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
- import { C as Context, z as ContextEvidenceState, k as ToolOutputMetadata, J as JSONSchema, M as Message, w as TodoItem } from '../context-Dp87Bcaq.js';
1
+ import { C as Context, B as ContextEvidenceState, m as ToolOutputMetadata, J as JSONSchema, M as Message, x as TodoItem } from '../context-Dw55zZ_Q.js';
2
2
  export { H as HttpDispatcher, a as HttpsAgentAsDispatcher } from '../dispatcher-types.d-BBeXBQgS.js';
3
3
  export { toErrorMessage } from './error.js';
4
4
  export { expectDefined } from './expect-defined.js';
5
- import { v as CustomModelDefinition, a as ModelsDevPayload } from '../config-C_ae2k86.js';
5
+ import { w as CustomModelDefinition, a as ModelsDevPayload } from '../config-rRS8yorV.js';
6
6
  export { T as TaskItem, c as computeTaskItemProgress, f as formatTaskList, a as formatTaskProgress } from '../task-format-vGOIftmK.js';
7
7
  export { a as WstackPathOptions, W as WstackPaths, p as projectHash, b as projectSlug, r as resolveWstackPaths, w as wstackGlobalRoot } from '../wstack-paths-hOpNLmvf.js';
8
8
  export { a as TaskPriority, b as TaskStatus, T as TaskType } from '../task-graph-u1q9Jkyk.js';
@@ -48,12 +48,25 @@ declare function withFileLock<T>(targetPath: string, fn: () => Promise<T>, opts?
48
48
  * Strategy: copy a small, explicit allowlist of variables that real builds
49
49
  * need, then copy anything else that does NOT look secret-bearing. This
50
50
  * preserves user-friendly behavior (locale, terminal, npm config) while
51
- * blocking the obvious leak channels.
51
+ * blocking the obvious leak channels. Two value-side guards back up the
52
+ * name-based filter:
53
+ * - any value carrying an embedded URI credential (`scheme://user:pass@host`,
54
+ * e.g. `DATABASE_URL`/`REDIS_URL`/`*_DSN`) is dropped (WS-01);
55
+ * - `NODE_OPTIONS` is forwarded but with module-preload directives
56
+ * (`--require`/`--import`/`--loader`) stripped so a parent-set value can't
57
+ * inject code into node children (WS-02).
52
58
  *
53
59
  * Override with `WRONGSTACK_CHILD_ENV_PASSTHROUGH=1` to forward the full
54
60
  * parent environment unchanged (opt-in for advanced users who understand
55
61
  * the risk).
56
62
  */
63
+ /**
64
+ * Strip module-preload directives from a `NODE_OPTIONS` value while preserving
65
+ * benign flags (`--no-warnings`, `--max-old-space-size=…`, etc.). Handles both
66
+ * the `--require=./x.js` and space-separated `--require ./x.js` forms. Returns
67
+ * the sanitized string (possibly empty).
68
+ */
69
+ declare function sanitizeNodeOptions(value: string): string;
57
70
  interface BuildChildEnvOptions {
58
71
  /** Session ID to inject as WRONGSTACK_SESSION_ID. */
59
72
  sessionId?: string | undefined;
@@ -707,4 +720,4 @@ interface CompactWireToolDefinition {
707
720
  declare function compactToolDefinitionForWire(tool: ToolWireDefinitionLike, opts?: CompactToolDefinitionForWireOptions): CompactWireToolDefinition;
708
721
  declare function compactSchemaDescriptions(schema: unknown, maxDescriptionChars?: number): Record<string, unknown>;
709
722
 
710
- export { type AtomicWriteOptions, type BuildChildEnvOptions, type CompactToolDefinitionForWireOptions, type CompactWireToolDefinition, type CompileFail, type CompileResult, type DeepMergeOptions, FORBIDDEN_PROTO_KEYS, type FileLockOptions, type JsonObject, type JsonPath, type JsonPathSegment, type MessageRepairReport, type MessageRepairResult, type NewlineStyle, type OutputLineGuard, type RecordToolOutputEvidenceInput, type RequestTokenBreakdown, type SafeParseResult, type ToolOutputSerializerOptions, type ToolWireDefinitionLike, type UnifiedDiffOptions, type ValidationError, type ValidationResult, assertNever, assertNotPrivateHost, atomicWrite, buildChildEnv, buildContextEvidenceDigest, color, compactSchemaDescriptions, compactToolDefinitionForWire, compileGlob, compileUserRegex, completePartialObject, computeMessageTokens, createContextEvidenceState, createToolOutputSerializer, deepMerge, detectNewlineStyle, ensureDir, escapeGlobSubject, estimateMessageTokens, estimateRequestTokens, estimateRequestTokensCalibrated, estimateTextTokens, estimateToolDefTokens, estimateToolInputTokens, estimateToolResultTokens, expandGlob, expandIPv6, formatTodosList, getCalibrationState, getJsonPath, getTermSize, isInteractive, isJsonObject, isPathSubjectKey, isPrimitiveArray, isPrivateIPv4, isPrivateIPv6, isStdinTTY, isStdoutTTY, jsonObjectFileExists, markAssistantReferencedEvidence, matchAny, matchGlob, mergeCustomModelDefs, mergeModelsPayload, normalizePathSubject, normalizeToLf, onResize, readJsonObjectFile, recordActualUsage, recordToolOutputEvidence, recordUserIntentEvidence, removeJsonPath, removeJsonPathInFile, repairToolUseAdjacency, repeatedReadPressure, resetCalibration, safeParse, safeStringify, sanitizeJsonString, setJsonPath, setJsonPathInFile, setOutputLineGuard, setRawMode, sleep, stripAnsi, subjectForToolInput, toStyle, truncate, unifiedDiff, updateJsonObjectFile, validateAgainstSchema, withFileLock, writeErr, writeJsonObjectFile, writeOut };
723
+ export { type AtomicWriteOptions, type BuildChildEnvOptions, type CompactToolDefinitionForWireOptions, type CompactWireToolDefinition, type CompileFail, type CompileResult, type DeepMergeOptions, FORBIDDEN_PROTO_KEYS, type FileLockOptions, type JsonObject, type JsonPath, type JsonPathSegment, type MessageRepairReport, type MessageRepairResult, type NewlineStyle, type OutputLineGuard, type RecordToolOutputEvidenceInput, type RequestTokenBreakdown, type SafeParseResult, type ToolOutputSerializerOptions, type ToolWireDefinitionLike, type UnifiedDiffOptions, type ValidationError, type ValidationResult, assertNever, assertNotPrivateHost, atomicWrite, buildChildEnv, buildContextEvidenceDigest, color, compactSchemaDescriptions, compactToolDefinitionForWire, compileGlob, compileUserRegex, completePartialObject, computeMessageTokens, createContextEvidenceState, createToolOutputSerializer, deepMerge, detectNewlineStyle, ensureDir, escapeGlobSubject, estimateMessageTokens, estimateRequestTokens, estimateRequestTokensCalibrated, estimateTextTokens, estimateToolDefTokens, estimateToolInputTokens, estimateToolResultTokens, expandGlob, expandIPv6, formatTodosList, getCalibrationState, getJsonPath, getTermSize, isInteractive, isJsonObject, isPathSubjectKey, isPrimitiveArray, isPrivateIPv4, isPrivateIPv6, isStdinTTY, isStdoutTTY, jsonObjectFileExists, markAssistantReferencedEvidence, matchAny, matchGlob, mergeCustomModelDefs, mergeModelsPayload, normalizePathSubject, normalizeToLf, onResize, readJsonObjectFile, recordActualUsage, recordToolOutputEvidence, recordUserIntentEvidence, removeJsonPath, removeJsonPathInFile, repairToolUseAdjacency, repeatedReadPressure, resetCalibration, safeParse, safeStringify, sanitizeJsonString, sanitizeNodeOptions, setJsonPath, setJsonPathInFile, setOutputLineGuard, setRawMode, sleep, stripAnsi, subjectForToolInput, toStyle, truncate, unifiedDiff, updateJsonObjectFile, validateAgainstSchema, withFileLock, writeErr, writeJsonObjectFile, writeOut };
@@ -182,6 +182,25 @@ function looksSecret(name) {
182
182
  }
183
183
  return false;
184
184
  }
185
+ function valueHasEmbeddedCredential(value) {
186
+ return /\b[a-z][a-z0-9+.-]*:\/\/[^/\s:@]*:[^/\s@]+@/i.test(value);
187
+ }
188
+ var NODE_OPTIONS_INJECTION_FLAG = /^(?:--require|-r|--import|--loader|--experimental-loader)$/;
189
+ var NODE_OPTIONS_INJECTION_FLAG_EQ = /^(?:--require|-r|--import|--loader|--experimental-loader)=/;
190
+ function sanitizeNodeOptions(value) {
191
+ const tokens = value.split(/\s+/).filter(Boolean);
192
+ const kept = [];
193
+ for (let i = 0; i < tokens.length; i++) {
194
+ const tok = tokens[i];
195
+ if (NODE_OPTIONS_INJECTION_FLAG_EQ.test(tok)) continue;
196
+ if (NODE_OPTIONS_INJECTION_FLAG.test(tok)) {
197
+ i++;
198
+ continue;
199
+ }
200
+ kept.push(tok);
201
+ }
202
+ return kept.join(" ");
203
+ }
185
204
  function buildChildEnv(optsOrSessionId) {
186
205
  const opts = typeof optsOrSessionId === "string" ? { sessionId: optsOrSessionId } : optsOrSessionId ?? {};
187
206
  const hasOwn = Object.hasOwn(process.env, "WRONGSTACK_CHILD_ENV_PASSTHROUGH");
@@ -202,11 +221,17 @@ function buildChildEnv(optsOrSessionId) {
202
221
  continue;
203
222
  }
204
223
  const upper = k.toUpperCase();
224
+ if (valueHasEmbeddedCredential(v)) continue;
205
225
  if (ALLOWED_KEYS.has(upper)) {
206
226
  out[k] = v;
207
227
  continue;
208
228
  }
209
229
  if (looksSecret(upper)) continue;
230
+ if (upper === "NODE_OPTIONS") {
231
+ const sanitized = sanitizeNodeOptions(v);
232
+ if (sanitized) out[k] = sanitized;
233
+ continue;
234
+ }
210
235
  if (upper.startsWith("NODE_") || upper.startsWith("NPM_") || upper.startsWith("PNPM_") || upper.startsWith("YARN_") || upper.startsWith("GIT_") || upper.startsWith("CI") || upper.startsWith("XDG_") || // Our own non-secret knobs (WRONGSTACK_HOME, WRONGSTACK_SESSION_ID, …).
211
236
  // Secrets never live in WRONGSTACK_* env vars (they're in the encrypted
212
237
  // vault). Forwarding keeps child wstack processes — e.g. ones spawned
@@ -425,6 +450,9 @@ var MAX_TOOL_CALLS = 80;
425
450
  var MAX_FACTS = 40;
426
451
  var MAX_ERRORS = 20;
427
452
  var MAX_DIGEST_CHARS = 4e3;
453
+ var RECENT_TOOL_CALL_SCAN_LIMIT = 20;
454
+ var EXTRACT_CONTENT_CAP_CHARS = 1e4;
455
+ var EXTRACT_ERROR_TAIL_LINES = 200;
428
456
  var WRITE_TOOLS = /* @__PURE__ */ new Set(["edit", "write", "replace", "patch"]);
429
457
  var READ_TOOLS = /* @__PURE__ */ new Set(["read", "grep", "glob", "ls", "tree"]);
430
458
  function createContextEvidenceState() {
@@ -450,8 +478,9 @@ function recordUserIntentEvidence(ctx, text) {
450
478
  }
451
479
  function recordToolOutputEvidence(ctx, input) {
452
480
  const state = ensureEvidence(ctx);
453
- const files = extractFiles(ctx, input.toolName, input.input, input.content);
454
- const symbols = extractSymbols(input.content, input.input);
481
+ const scanContent = input.content.length > EXTRACT_CONTENT_CAP_CHARS ? input.content.slice(0, EXTRACT_CONTENT_CAP_CHARS) : input.content;
482
+ const files = extractFiles(ctx, input.toolName, input.input, scanContent);
483
+ const symbols = extractSymbols(scanContent, input.input);
455
484
  const commands = extractCommands(input.toolName, input.input);
456
485
  const errors = extractErrors(input.content);
457
486
  const summary = summarizeToolOutput(input.toolName, input.input, input.content, {
@@ -494,7 +523,8 @@ function markAssistantReferencedEvidence(ctx, text) {
494
523
  const state = ensureEvidence(ctx);
495
524
  const haystack = text.toLowerCase();
496
525
  if (!haystack.trim()) return;
497
- for (const tool of state.toolCalls) {
526
+ const recent = state.toolCalls.length > RECENT_TOOL_CALL_SCAN_LIMIT ? state.toolCalls.slice(-RECENT_TOOL_CALL_SCAN_LIMIT) : state.toolCalls;
527
+ for (const tool of recent) {
498
528
  if (!metadataReferencedByText(tool, haystack)) continue;
499
529
  tool.status = "referenced";
500
530
  tool.referenceCount++;
@@ -649,7 +679,8 @@ function extractCommands(toolName, input) {
649
679
  return [command.slice(0, 220)];
650
680
  }
651
681
  function extractErrors(content) {
652
- const lines = content.split(/\r?\n/);
682
+ const allLines = content.split(/\r?\n/);
683
+ const lines = allLines.length > EXTRACT_ERROR_TAIL_LINES ? allLines.slice(-EXTRACT_ERROR_TAIL_LINES) : allLines;
653
684
  const errors = [];
654
685
  for (const line of lines) {
655
686
  if (!/\b(error|exception|failed|failure|fatal|panic|timeout|denied|enoent|eacces|eperm|typeerror|syntaxerror)\b/i.test(line)) continue;
@@ -1093,6 +1124,7 @@ function escapeRegex(s) {
1093
1124
  }
1094
1125
  var COMPILED_GLOB_CACHE = /* @__PURE__ */ new Map();
1095
1126
  var CACHE_MAX_SIZE = 2e3;
1127
+ var NEVER_MATCH = /[^\s\S]/;
1096
1128
  function getCachedGlob(pattern) {
1097
1129
  const cached = COMPILED_GLOB_CACHE.get(pattern);
1098
1130
  if (cached) return cached;
@@ -1102,7 +1134,12 @@ function getCachedGlob(pattern) {
1102
1134
  COMPILED_GLOB_CACHE.delete(expectDefined(keys[i]));
1103
1135
  }
1104
1136
  }
1105
- const re = compileGlob(pattern);
1137
+ let re;
1138
+ try {
1139
+ re = compileGlob(pattern);
1140
+ } catch {
1141
+ re = NEVER_MATCH;
1142
+ }
1106
1143
  COMPILED_GLOB_CACHE.set(pattern, re);
1107
1144
  return re;
1108
1145
  }
@@ -2048,18 +2085,20 @@ var MODEL_FAMILY_RATIO = {
2048
2085
  deepseek: 3.5
2049
2086
  };
2050
2087
  var ESTIMATE_CACHE = /* @__PURE__ */ new Map();
2088
+ var _estimateCacheOrder = [];
2051
2089
  var ESTIMATE_CACHE_MAX_SIZE = 5e4;
2052
2090
  function getCachedEstimate(key, compute) {
2053
2091
  const existing = ESTIMATE_CACHE.get(key);
2054
2092
  if (existing !== void 0) return existing;
2055
2093
  if (ESTIMATE_CACHE.size >= ESTIMATE_CACHE_MAX_SIZE) {
2056
- for (const k of ESTIMATE_CACHE.keys()) {
2057
- if (ESTIMATE_CACHE.size <= Math.floor(ESTIMATE_CACHE_MAX_SIZE / 2)) break;
2058
- ESTIMATE_CACHE.delete(k);
2094
+ while (ESTIMATE_CACHE.size > Math.floor(ESTIMATE_CACHE_MAX_SIZE / 2)) {
2095
+ const oldest = _estimateCacheOrder.shift();
2096
+ if (oldest !== void 0) ESTIMATE_CACHE.delete(oldest);
2059
2097
  }
2060
2098
  }
2061
2099
  const estimate = compute(key);
2062
2100
  ESTIMATE_CACHE.set(key, estimate);
2101
+ _estimateCacheOrder.push(key);
2063
2102
  return estimate;
2064
2103
  }
2065
2104
  function estimateToolInputTokens(input) {
@@ -2925,6 +2964,6 @@ function resolveWstackPaths(opts) {
2925
2964
  };
2926
2965
  }
2927
2966
 
2928
- export { FORBIDDEN_PROTO_KEYS, assertNever, assertNotPrivateHost, atomicWrite, buildChildEnv, buildContextEvidenceDigest, color, compactSchemaDescriptions, compactToolDefinitionForWire, compileGlob, compileUserRegex, completePartialObject, computeMessageTokens, computeTaskItemProgress, createContextEvidenceState, createToolOutputSerializer, deepMerge, detectNewlineStyle, ensureDir, escapeGlobSubject, estimateMessageTokens, estimateRequestTokens, estimateRequestTokensCalibrated, estimateTextTokens, estimateToolDefTokens, estimateToolInputTokens, estimateToolResultTokens, expandGlob, expandIPv6, expectDefined, formatTaskList, formatTaskProgress, formatTodosList, getCalibrationState, getJsonPath, getTermSize, isInteractive, isJsonObject, isPathSubjectKey, isPrimitiveArray, isPrivateIPv4, isPrivateIPv6, isStdinTTY, isStdoutTTY, jsonObjectFileExists, markAssistantReferencedEvidence, matchAny, matchGlob, mergeCustomModelDefs, mergeModelsPayload, normalizePathSubject, normalizeToLf, onResize, projectHash, projectSlug, readJsonObjectFile, recordActualUsage, recordToolOutputEvidence, recordUserIntentEvidence, removeJsonPath, removeJsonPathInFile, repairToolUseAdjacency, repeatedReadPressure, resetCalibration, resolveWstackPaths, safeParse, safeStringify, sanitizeJsonString, setJsonPath, setJsonPathInFile, setOutputLineGuard, setRawMode, sleep, stripAnsi, subjectForToolInput, toErrorMessage, toStyle, truncate, unifiedDiff, updateJsonObjectFile, validateAgainstSchema, withFileLock, writeErr, writeJsonObjectFile, writeOut, wstackGlobalRoot };
2967
+ export { FORBIDDEN_PROTO_KEYS, assertNever, assertNotPrivateHost, atomicWrite, buildChildEnv, buildContextEvidenceDigest, color, compactSchemaDescriptions, compactToolDefinitionForWire, compileGlob, compileUserRegex, completePartialObject, computeMessageTokens, computeTaskItemProgress, createContextEvidenceState, createToolOutputSerializer, deepMerge, detectNewlineStyle, ensureDir, escapeGlobSubject, estimateMessageTokens, estimateRequestTokens, estimateRequestTokensCalibrated, estimateTextTokens, estimateToolDefTokens, estimateToolInputTokens, estimateToolResultTokens, expandGlob, expandIPv6, expectDefined, formatTaskList, formatTaskProgress, formatTodosList, getCalibrationState, getJsonPath, getTermSize, isInteractive, isJsonObject, isPathSubjectKey, isPrimitiveArray, isPrivateIPv4, isPrivateIPv6, isStdinTTY, isStdoutTTY, jsonObjectFileExists, markAssistantReferencedEvidence, matchAny, matchGlob, mergeCustomModelDefs, mergeModelsPayload, normalizePathSubject, normalizeToLf, onResize, projectHash, projectSlug, readJsonObjectFile, recordActualUsage, recordToolOutputEvidence, recordUserIntentEvidence, removeJsonPath, removeJsonPathInFile, repairToolUseAdjacency, repeatedReadPressure, resetCalibration, resolveWstackPaths, safeParse, safeStringify, sanitizeJsonString, sanitizeNodeOptions, setJsonPath, setJsonPathInFile, setOutputLineGuard, setRawMode, sleep, stripAnsi, subjectForToolInput, toErrorMessage, toStyle, truncate, unifiedDiff, updateJsonObjectFile, validateAgainstSchema, withFileLock, writeErr, writeJsonObjectFile, writeOut, wstackGlobalRoot };
2929
2968
  //# sourceMappingURL=index.js.map
2930
2969
  //# sourceMappingURL=index.js.map