@wrongstack/core 0.313.0 → 0.313.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 (182) hide show
  1. package/dist/chronicle/index.js +84 -6391
  2. package/dist/chronicle/project-server.js +84 -4868
  3. package/dist/chunk-2BUUIMQB.js +225 -0
  4. package/dist/chunk-2FK4WTFF.js +207 -0
  5. package/dist/chunk-2FQL4PDC.js +292 -0
  6. package/dist/chunk-2KKODIQU.js +2256 -0
  7. package/dist/chunk-2YU4WVBW.js +134 -0
  8. package/dist/chunk-3E244UDA.js +356 -0
  9. package/dist/chunk-3XPVB7BA.js +135 -0
  10. package/dist/chunk-4LJJYBAU.js +388 -0
  11. package/dist/chunk-4VWO3ZXL.js +342 -0
  12. package/dist/chunk-4XV6IR37.js +187 -0
  13. package/dist/chunk-4ZHTKJHM.js +183 -0
  14. package/dist/chunk-52RTVH4M.js +361 -0
  15. package/dist/chunk-57GEWK5X.js +26 -0
  16. package/dist/chunk-5DSMEVA4.js +931 -0
  17. package/dist/chunk-5RP3QTRL.js +1223 -0
  18. package/dist/chunk-5S437PRC.js +50 -0
  19. package/dist/chunk-5XDUGTKN.js +511 -0
  20. package/dist/chunk-62V2AFVG.js +422 -0
  21. package/dist/chunk-65RDIOR2.js +2470 -0
  22. package/dist/chunk-6AKOTGLM.js +597 -0
  23. package/dist/chunk-7ZHZE5EO.js +28 -0
  24. package/dist/chunk-A455ATZB.js +140 -0
  25. package/dist/chunk-AD7ZFZCS.js +46 -0
  26. package/dist/chunk-AI4LLQ2U.js +856 -0
  27. package/dist/chunk-ASX6AW36.js +789 -0
  28. package/dist/chunk-AT4V4XGI.js +3522 -0
  29. package/dist/chunk-AWNQ6ED6.js +311 -0
  30. package/dist/chunk-B4AMLZPB.js +9 -0
  31. package/dist/chunk-BAKVJLEV.js +417 -0
  32. package/dist/chunk-BJHVULHO.js +55 -0
  33. package/dist/chunk-CB2HFKTP.js +9 -0
  34. package/dist/chunk-CE4ZOCOI.js +1640 -0
  35. package/dist/chunk-CQQL4ZOQ.js +151 -0
  36. package/dist/chunk-DEIQMBD2.js +65 -0
  37. package/dist/chunk-E6I5RXVK.js +58 -0
  38. package/dist/chunk-EFEHDQGY.js +1589 -0
  39. package/dist/chunk-EODDVJBM.js +82 -0
  40. package/dist/chunk-EPC3GZD4.js +308 -0
  41. package/dist/chunk-FAYRX2AD.js +13 -0
  42. package/dist/chunk-FFSX2QDQ.js +362 -0
  43. package/dist/chunk-FHAMQS7Q.js +5856 -0
  44. package/dist/chunk-FIV4IJL7.js +2263 -0
  45. package/dist/chunk-FNXVT7HF.js +52 -0
  46. package/dist/chunk-FSWCWSTS.js +395 -0
  47. package/dist/chunk-FW5LDDMJ.js +16464 -0
  48. package/dist/chunk-FXQLIX3K.js +211 -0
  49. package/dist/chunk-G5AAKEEZ.js +228 -0
  50. package/dist/chunk-G5S3S5ZN.js +38 -0
  51. package/dist/chunk-GAZEWQEZ.js +231 -0
  52. package/dist/chunk-GFJOMSHG.js +125 -0
  53. package/dist/chunk-GFXZTHNI.js +158 -0
  54. package/dist/chunk-GM54GJBU.js +960 -0
  55. package/dist/chunk-GPQ3NJPR.js +900 -0
  56. package/dist/chunk-GTCU6DZ3.js +1 -0
  57. package/dist/chunk-H5E77KUJ.js +15 -0
  58. package/dist/chunk-H72H4XDU.js +1023 -0
  59. package/dist/chunk-HA4ZYA6T.js +178 -0
  60. package/dist/chunk-I45KAW2N.js +5020 -0
  61. package/dist/chunk-IQ35HMQL.js +1396 -0
  62. package/dist/chunk-IYFBFX34.js +86 -0
  63. package/dist/chunk-JJPMWPB6.js +109 -0
  64. package/dist/chunk-JTHKOYWU.js +663 -0
  65. package/dist/chunk-JVGPR3TS.js +365 -0
  66. package/dist/chunk-JVKB2TBL.js +48 -0
  67. package/dist/chunk-JX7VBZDK.js +31 -0
  68. package/dist/chunk-K3G6JBUC.js +5232 -0
  69. package/dist/chunk-K4YUNKU7.js +589 -0
  70. package/dist/chunk-KBZGE6LN.js +710 -0
  71. package/dist/chunk-KDQJCT2J.js +45 -0
  72. package/dist/chunk-KI4L2DUL.js +560 -0
  73. package/dist/chunk-KJ2ZTQSL.js +47 -0
  74. package/dist/chunk-KSJ5UTP7.js +154 -0
  75. package/dist/chunk-LHOA5DWA.js +28 -0
  76. package/dist/chunk-LX5QWLBL.js +27 -0
  77. package/dist/chunk-LZDDLNCZ.js +279 -0
  78. package/dist/chunk-M2WF6AXG.js +115 -0
  79. package/dist/chunk-M7BS2K6U.js +1 -0
  80. package/dist/chunk-NDBIPFNY.js +102 -0
  81. package/dist/chunk-NEMIWEXC.js +1199 -0
  82. package/dist/chunk-NFAYHPRH.js +323 -0
  83. package/dist/chunk-O37BQ65S.js +21 -0
  84. package/dist/chunk-O74MJHXU.js +187 -0
  85. package/dist/chunk-OJZEX73F.js +112 -0
  86. package/dist/chunk-PAAWLLZX.js +74 -0
  87. package/dist/chunk-PFXFQQRT.js +339 -0
  88. package/dist/chunk-PFZO3C6H.js +14 -0
  89. package/dist/chunk-PHH7LD45.js +113 -0
  90. package/dist/chunk-QRTG4XTI.js +188 -0
  91. package/dist/chunk-QVOVMXJR.js +1351 -0
  92. package/dist/chunk-RCQYT2I4.js +757 -0
  93. package/dist/chunk-RD6DEE36.js +1178 -0
  94. package/dist/chunk-RJIZEJ42.js +30 -0
  95. package/dist/chunk-RPOA7IAE.js +150 -0
  96. package/dist/chunk-SN2DQRL6.js +1172 -0
  97. package/dist/chunk-SQJVFEBV.js +41 -0
  98. package/dist/chunk-SQP64RCS.js +5391 -0
  99. package/dist/chunk-SVT4RNTR.js +49 -0
  100. package/dist/chunk-SWUFN7XM.js +43 -0
  101. package/dist/chunk-SXMVYC5H.js +174 -0
  102. package/dist/chunk-SZ6AYUIZ.js +23 -0
  103. package/dist/chunk-T3KGZBU5.js +3171 -0
  104. package/dist/chunk-TBRL2RCC.js +9 -0
  105. package/dist/chunk-TRT2HRWZ.js +18 -0
  106. package/dist/chunk-TYW2GI5I.js +1077 -0
  107. package/dist/chunk-UIWONWVG.js +4959 -0
  108. package/dist/chunk-VB3H5WWB.js +151 -0
  109. package/dist/chunk-W4A6QA3D.js +258 -0
  110. package/dist/chunk-WBPVKEEE.js +227 -0
  111. package/dist/chunk-WEBMSQP2.js +123 -0
  112. package/dist/chunk-WOEZV3Q4.js +333 -0
  113. package/dist/chunk-WQQON3SV.js +473 -0
  114. package/dist/chunk-WQTOVMGV.js +119 -0
  115. package/dist/chunk-WZO23AWO.js +2779 -0
  116. package/dist/chunk-XBDP4QPW.js +7 -0
  117. package/dist/chunk-XEBHSJLT.js +103 -0
  118. package/dist/chunk-XQ2ECNK3.js +1 -0
  119. package/dist/chunk-XQ2XGIBF.js +2086 -0
  120. package/dist/chunk-Y2GE5TSI.js +355 -0
  121. package/dist/chunk-YBUJCZ57.js +351 -0
  122. package/dist/chunk-YNCVSFGF.js +149 -0
  123. package/dist/chunk-YUPMXOGP.js +282 -0
  124. package/dist/chunk-YY6APYUM.js +49 -0
  125. package/dist/chunk-Z2IJUO45.js +691 -0
  126. package/dist/chunk-ZEHUCJHY.js +129 -0
  127. package/dist/chunk-ZYU2YOJ6.js +1496 -0
  128. package/dist/chunk-ZZ4V3WIZ.js +163 -0
  129. package/dist/coordination/agents/index.js +145 -6260
  130. package/dist/coordination/index.js +365 -34324
  131. package/dist/coordination/mailbox-project-server.js +48 -3276
  132. package/dist/coordination/provider-status-tracker.d.ts +4 -0
  133. package/dist/core/agent.d.ts +14 -1
  134. package/dist/core/index.js +267 -12480
  135. package/dist/core/model-ref.js +5 -23
  136. package/dist/core/provider-runner.d.ts +36 -1
  137. package/dist/design/index.js +50 -1087
  138. package/dist/execution/index.d.ts +1 -1
  139. package/dist/execution/index.js +1599 -21888
  140. package/dist/execution/prompt-enhancer.js +16 -535
  141. package/dist/execution/retry-policy.d.ts +31 -1
  142. package/dist/extension/index.js +7 -311
  143. package/dist/goal/index.js +33 -3435
  144. package/dist/hooks/index.js +14 -1138
  145. package/dist/hq/index.js +112 -5139
  146. package/dist/hq/protocol.js +21 -668
  147. package/dist/index.js +1410 -92656
  148. package/dist/infrastructure/index.js +64 -4811
  149. package/dist/kernel/events/provider-events.d.ts +15 -0
  150. package/dist/kernel/index.js +14 -992
  151. package/dist/models/index.js +40 -1117
  152. package/dist/notifications/index.js +3 -108
  153. package/dist/observability/index.js +17 -279
  154. package/dist/plugin/index.js +584 -14835
  155. package/dist/prompts/index.js +14 -948
  156. package/dist/registry/index.js +9 -822
  157. package/dist/registry-R23UBE7H.js +14 -0
  158. package/dist/replay/index.js +6 -84
  159. package/dist/review-finding-store-DKAV3AS6.js +21 -0
  160. package/dist/review-report-store-OWY3EC3N.js +19 -0
  161. package/dist/security/index.js +114 -2202
  162. package/dist/session-catalog/index.js +36 -2103
  163. package/dist/session-catalog/project-server.js +42 -1435
  164. package/dist/skills/index.js +35 -1578
  165. package/dist/storage/index.js +182 -15600
  166. package/dist/tasking/index.js +10 -676
  167. package/dist/tools/index.js +52 -9590
  168. package/dist/types/config/autonomy.d.ts +5 -0
  169. package/dist/types/config/ui.d.ts +1 -1
  170. package/dist/types/errors.d.ts +18 -0
  171. package/dist/types/index.js +121 -1342
  172. package/dist/types/provider-runner.d.ts +8 -0
  173. package/dist/types/session-markers.js +8 -144
  174. package/dist/utils/error.js +3 -4
  175. package/dist/utils/expect-defined.js +3 -9
  176. package/dist/utils/heap-watchdog.js +6 -706
  177. package/dist/utils/index.js +269 -5685
  178. package/dist/utils/sage-output-block.js +5 -42
  179. package/dist/wiring/proxy-rewrite.d.ts +18 -0
  180. package/dist/wiring/proxy-rewrite.js +18 -121
  181. package/dist/worktree/index.js +6 -887
  182. package/package.json +4 -4
@@ -1,45 +1,8 @@
1
- // src/utils/sage-output-block.ts
2
- var SAGE_INJECTOR_HEADINGS = /* @__PURE__ */ new Set([
3
- "--- SAGE: task-aware project knowledge (Memory Injector) ---",
4
- "--- SAGE: related project knowledge (Memory Injector) ---"
5
- ]);
6
- var SAGE_MEMORY_LINE = /^- \[[^\]]+\](?:\[[^\]]+\])* <memory id="[^"]+">.*<\/memory>(?: .*)?$/;
7
- var SAGE_MEMORY_LINE_TRUNCATED = /^- \[[^\]]+\](?:\[[^\]]+\])* <memory id="[^"]+">.*…$/;
8
- function splitSageOutputBlock(output) {
9
- if (!output.includes("--- SAGE: ")) return { body: output, sageLines: [] };
10
- const lines = output.split("\n");
11
- for (let sageIdx = lines.length - 1; sageIdx >= 0; sageIdx--) {
12
- if (!SAGE_INJECTOR_HEADINGS.has(lines[sageIdx] ?? "")) continue;
13
- const candidate = lines.slice(sageIdx);
14
- if (candidate.length < 2) continue;
15
- const memoryLines = candidate.slice(1).filter((line) => line.trim().length > 0);
16
- if (memoryLines.length === 0) continue;
17
- const bodyOk = memoryLines.every(
18
- (line, index) => SAGE_MEMORY_LINE.test(line) || index === memoryLines.length - 1 && SAGE_MEMORY_LINE_TRUNCATED.test(line)
19
- );
20
- if (!bodyOk) continue;
21
- let end = candidate.length;
22
- while (end > 1 && candidate[end - 1].trim().length === 0) end--;
23
- return {
24
- body: lines.slice(0, sageIdx).join("\n").trimEnd(),
25
- sageLines: candidate.slice(0, end)
26
- };
27
- }
28
- return { body: output, sageLines: [] };
29
- }
30
- function capSageLines(sageLines, maxChars) {
31
- if (sageLines.length < 2) return [];
32
- const header = sageLines[0];
33
- if (header.length >= maxChars) return [];
34
- const out = [header];
35
- let used = header.length;
36
- for (const line of sageLines.slice(1)) {
37
- if (used + 1 + line.length > maxChars) break;
38
- out.push(line);
39
- used += 1 + line.length;
40
- }
41
- return out.length > 1 ? out : [];
42
- }
1
+ import {
2
+ SAGE_INJECTOR_HEADINGS,
3
+ capSageLines,
4
+ splitSageOutputBlock
5
+ } from "../chunk-SVT4RNTR.js";
43
6
  export {
44
7
  SAGE_INJECTOR_HEADINGS,
45
8
  capSageLines,
@@ -83,12 +83,30 @@ export declare function applyProxyConfig(next: Partial<ProxyConfig>): ProxyConfi
83
83
  * excluded" rule so future call sites can't accidentally skip a check.
84
84
  */
85
85
  export declare function shouldRewriteFor(providerId: string): boolean;
86
+ /**
87
+ * Automatically deactivate the proxy if a connection failure occurs while
88
+ * the proxy was marked active. Triggers instant-apply provider rebuilds to
89
+ * fallback immediately to direct provider communication without failing the turn.
90
+ */
91
+ export declare function deactivateProxyOnConnectionFailure(err: unknown): boolean;
86
92
  /**
87
93
  * Reset to defaults. Intended for tests; do NOT call from production code
88
94
  * (the singleton lives for the lifetime of the process). Also drops all
89
95
  * change listeners so tests never observe each other's notifications.
90
96
  */
91
97
  export declare function __resetProxyConfigForTests(): void;
98
+ /** Upper bound for {@link waitForProxyRoutingSettle}. Local provider builds
99
+ * settle in single-digit milliseconds; anything slower means the host is
100
+ * doing network work inside rebuildProvider, and a retrying turn must not
101
+ * hang on it. Resolves on timeout — the barrier delays, never fails. */
102
+ export declare const PROXY_ROUTING_SETTLE_CAP_MS = 2000;
103
+ /**
104
+ * Wait until every registered instant-apply rebuild triggered by the current
105
+ * proxy-config change has settled, the cap elapses, or `signal` aborts.
106
+ * Resolves in all three cases — a settle timeout must not fail the turn,
107
+ * only stop delaying it.
108
+ */
109
+ export declare function waitForProxyRoutingSettle(timeoutMs?: number, signal?: AbortSignal | undefined): Promise<void>;
92
110
  /** Minimal structural logger — keeps this module dependency-free. */
93
111
  export interface ProxyInstantApplyLogger {
94
112
  info: (message: string) => void;
@@ -1,132 +1,29 @@
1
- // src/wiring/proxy-rewrite.ts
2
- var PROXY_PATH_PREFIX = "/proxy/";
3
- var PROXY_EXCLUDED_PROVIDERS = /* @__PURE__ */ new Set(["openai-codex"]);
4
- function isProxyEligible(providerId) {
5
- if (!providerId) return false;
6
- if (PROXY_EXCLUDED_PROVIDERS.has(providerId)) return false;
7
- return true;
8
- }
9
- function rewriteBaseUrl(originalBaseUrl, proxyUrl) {
10
- if (!originalBaseUrl) return void 0;
11
- if (!proxyUrl) return originalBaseUrl;
12
- if (!isProxyEligibleForRewrite(originalBaseUrl, proxyUrl)) return originalBaseUrl;
13
- return composeRewrittenUrl(originalBaseUrl, proxyUrl);
14
- }
15
- function isProxyEligibleForRewrite(originalBaseUrl, proxyUrl) {
16
- if (!originalBaseUrl.includes("://")) return false;
17
- if (!proxyUrl.includes("://")) return false;
18
- const normalizedProxy = proxyUrl.replace(/\/+$/, "");
19
- if (originalBaseUrl.startsWith(`${normalizedProxy}${PROXY_PATH_PREFIX}`)) {
20
- return false;
21
- }
22
- try {
23
- const parsed = new URL(originalBaseUrl);
24
- const isLoopback = parsed.hostname === "localhost" || parsed.hostname === "127.0.0.1" || // WHATWG URL serializes IPv6 hosts with brackets — `[::1]`, not `::1`.
25
- parsed.hostname === "[::1]";
26
- if (isLoopback && parsed.port !== "") return false;
27
- } catch {
28
- }
29
- return true;
30
- }
31
- function composeRewrittenUrl(originalBaseUrl, proxyUrl) {
32
- const parsedOriginal = new URL(originalBaseUrl);
33
- const hostAndPath = `${parsedOriginal.host}${parsedOriginal.pathname}`;
34
- const trailingQuery = parsedOriginal.search || "";
35
- const trailingHash = parsedOriginal.hash || "";
36
- const proxyRoot = proxyUrl.replace(/\/+$/, "");
37
- return `${proxyRoot}${PROXY_PATH_PREFIX}${hostAndPath}${trailingQuery}${trailingHash}`;
38
- }
39
- var DEFAULT_PROXY_CONFIG = { enabled: false, url: "", active: false };
40
- var currentConfig = { ...DEFAULT_PROXY_CONFIG };
41
- function getProxyConfig() {
42
- return currentConfig;
43
- }
44
- var listeners = /* @__PURE__ */ new Set();
45
- function subscribeToProxyConfig(listener) {
46
- listeners.add(listener);
47
- return () => {
48
- listeners.delete(listener);
49
- };
50
- }
51
- function applyProxyConfig(next) {
52
- const previous = currentConfig;
53
- currentConfig = {
54
- enabled: next.enabled ?? previous.enabled,
55
- url: next.url ?? previous.url,
56
- active: next.active ?? previous.active
57
- };
58
- const materialChange = currentConfig.enabled !== previous.enabled || currentConfig.url !== previous.url || currentConfig.active !== previous.active;
59
- if (materialChange) {
60
- for (const listener of listeners) {
61
- try {
62
- listener(currentConfig, previous);
63
- } catch {
64
- }
65
- }
66
- }
67
- return previous;
68
- }
69
- function shouldRewriteFor(providerId) {
70
- const cfg = currentConfig;
71
- if (!cfg.enabled || !cfg.active || !cfg.url) return false;
72
- return isProxyEligible(providerId);
73
- }
74
- function __resetProxyConfigForTests() {
75
- currentConfig = { ...DEFAULT_PROXY_CONFIG };
76
- listeners.clear();
77
- }
78
- function effectiveBaseUrlFor(cfg, providerId, rawBaseUrl) {
79
- if (!rawBaseUrl) return void 0;
80
- const active = cfg.enabled && cfg.active && !!cfg.url && isProxyEligible(providerId);
81
- return active ? rewriteBaseUrl(rawBaseUrl, cfg.url) : rawBaseUrl;
82
- }
83
- function effectiveBaseUrl(providerId, rawBaseUrl) {
84
- return effectiveBaseUrlFor(currentConfig, providerId, rawBaseUrl);
85
- }
86
- function createProxyInstantApply(deps) {
87
- const { getActiveProviderId, getRawBaseUrl, rebuildProvider, logger } = deps;
88
- let lastProviderId = getActiveProviderId();
89
- let lastEffectiveUrl = effectiveBaseUrl(lastProviderId, getRawBaseUrl(lastProviderId));
90
- let disposed = false;
91
- let rebuildChain = Promise.resolve();
92
- const unsubscribe = subscribeToProxyConfig((next, previous) => {
93
- if (disposed) return;
94
- const providerId = getActiveProviderId();
95
- const raw = getRawBaseUrl(providerId);
96
- const nextUrl = effectiveBaseUrlFor(next, providerId, raw);
97
- const baselineUrl = providerId === lastProviderId ? lastEffectiveUrl : effectiveBaseUrlFor(previous, providerId, raw);
98
- lastProviderId = providerId;
99
- lastEffectiveUrl = nextUrl;
100
- if (nextUrl === baselineUrl) return;
101
- rebuildChain = rebuildChain.then(() => rebuildProvider(providerId)).then(() => {
102
- if (!disposed) {
103
- logger.info(`WrongProxy routing changed \u2014 live provider rebuilt (${providerId})`);
104
- }
105
- }).catch((err) => {
106
- if (!disposed) {
107
- logger.warn(
108
- `WrongProxy instant-apply: provider rebuild failed for ${providerId}: ${err instanceof Error ? err.message : String(err)}`
109
- );
110
- }
111
- });
112
- });
113
- return {
114
- dispose() {
115
- if (disposed) return;
116
- disposed = true;
117
- unsubscribe();
118
- }
119
- };
120
- }
1
+ import {
2
+ PROXY_EXCLUDED_PROVIDERS,
3
+ PROXY_ROUTING_SETTLE_CAP_MS,
4
+ __resetProxyConfigForTests,
5
+ applyProxyConfig,
6
+ createProxyInstantApply,
7
+ deactivateProxyOnConnectionFailure,
8
+ getProxyConfig,
9
+ isProxyEligible,
10
+ rewriteBaseUrl,
11
+ shouldRewriteFor,
12
+ subscribeToProxyConfig,
13
+ waitForProxyRoutingSettle
14
+ } from "../chunk-4ZHTKJHM.js";
121
15
  export {
122
16
  PROXY_EXCLUDED_PROVIDERS,
17
+ PROXY_ROUTING_SETTLE_CAP_MS,
123
18
  __resetProxyConfigForTests,
124
19
  applyProxyConfig,
125
20
  createProxyInstantApply,
21
+ deactivateProxyOnConnectionFailure,
126
22
  getProxyConfig,
127
23
  isProxyEligible,
128
24
  rewriteBaseUrl,
129
25
  shouldRewriteFor,
130
- subscribeToProxyConfig
26
+ subscribeToProxyConfig,
27
+ waitForProxyRoutingSettle
131
28
  };
132
29
  //# sourceMappingURL=proxy-rewrite.js.map