@wrongstack/core 0.313.0 → 0.316.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.
- package/dist/chronicle/index.js +84 -6391
- package/dist/chronicle/legacy-journal-import.d.ts +0 -6
- package/dist/chronicle/metrics-ingest.d.ts +14 -0
- package/dist/chronicle/metrics-schema.d.ts +10 -1
- package/dist/chronicle/metrics-store.d.ts +20 -2
- package/dist/chronicle/project-server.js +98 -4874
- package/dist/chronicle/sink.d.ts +13 -0
- package/dist/chronicle/sqlite-journal.d.ts +20 -2
- package/dist/chunk-25LSLC3G.js +334 -0
- package/dist/chunk-27QIURLN.js +1073 -0
- package/dist/chunk-2FK4WTFF.js +207 -0
- package/dist/chunk-2YU4WVBW.js +134 -0
- package/dist/chunk-3AGWVSS7.js +4608 -0
- package/dist/chunk-3BDV7RL3.js +211 -0
- package/dist/chunk-3ECENVHL.js +325 -0
- package/dist/chunk-3XPVB7BA.js +135 -0
- package/dist/chunk-45WI72ZB.js +16884 -0
- package/dist/chunk-4BMVPOHO.js +3748 -0
- package/dist/chunk-4I7HGVVA.js +363 -0
- package/dist/chunk-4LCZVJVF.js +317 -0
- package/dist/chunk-4SJNS7OB.js +217 -0
- package/dist/chunk-4VWO3ZXL.js +342 -0
- package/dist/chunk-57GEWK5X.js +26 -0
- package/dist/chunk-5BMIE7QG.js +46 -0
- package/dist/chunk-5S437PRC.js +50 -0
- package/dist/chunk-5XDUGTKN.js +511 -0
- package/dist/chunk-5YPSXQXM.js +1443 -0
- package/dist/chunk-6FHWXLPT.js +10 -0
- package/dist/chunk-6H5GEOET.js +2406 -0
- package/dist/chunk-6NWEVFEL.js +151 -0
- package/dist/chunk-AYW5YINX.js +58 -0
- package/dist/chunk-B4AMLZPB.js +9 -0
- package/dist/chunk-B7F4WVP4.js +65 -0
- package/dist/chunk-BJHVULHO.js +55 -0
- package/dist/chunk-BPBKKBUK.js +2085 -0
- package/dist/chunk-BYD345OX.js +589 -0
- package/dist/chunk-C27KDLOX.js +279 -0
- package/dist/chunk-CU546ESW.js +597 -0
- package/dist/chunk-DLHHXUAM.js +172 -0
- package/dist/chunk-DOTHQSJ2.js +429 -0
- package/dist/chunk-DYLPMV4Q.js +711 -0
- package/dist/chunk-EODDVJBM.js +82 -0
- package/dist/chunk-F3JWNST7.js +361 -0
- package/dist/chunk-FC2ZGRF3.js +140 -0
- package/dist/chunk-FCBTO76Z.js +5786 -0
- package/dist/chunk-FHZVFYSL.js +396 -0
- package/dist/chunk-FNXVT7HF.js +52 -0
- package/dist/chunk-FWNLEZYG.js +259 -0
- package/dist/chunk-FXQLIX3K.js +211 -0
- package/dist/chunk-G5S3S5ZN.js +38 -0
- package/dist/chunk-GDQ7CZRQ.js +116 -0
- package/dist/chunk-GJJGJB2R.js +1374 -0
- package/dist/chunk-GTCU6DZ3.js +1 -0
- package/dist/chunk-HA4ZYA6T.js +178 -0
- package/dist/chunk-HI3JGZR2.js +188 -0
- package/dist/chunk-HMLIGAU7.js +395 -0
- package/dist/chunk-HXKZ7OBQ.js +303 -0
- package/dist/chunk-I7DALG7J.js +292 -0
- package/dist/chunk-IRUTEHCE.js +960 -0
- package/dist/chunk-IYFBFX34.js +86 -0
- package/dist/chunk-J2WRWR37.js +1104 -0
- package/dist/chunk-JFPJ6LLQ.js +129 -0
- package/dist/chunk-JMULFFLN.js +9 -0
- package/dist/chunk-JO4MGB6Z.js +1264 -0
- package/dist/chunk-JVKB2TBL.js +48 -0
- package/dist/chunk-JX7VBZDK.js +31 -0
- package/dist/chunk-K6BXGITA.js +931 -0
- package/dist/chunk-KDQJCT2J.js +45 -0
- package/dist/chunk-KJ2ZTQSL.js +47 -0
- package/dist/chunk-KZMSZV32.js +187 -0
- package/dist/chunk-LA7CLDRW.js +129 -0
- package/dist/chunk-LHOA5DWA.js +28 -0
- package/dist/chunk-LSMMOS2Z.js +119 -0
- package/dist/chunk-LX5QWLBL.js +27 -0
- package/dist/chunk-LXWCMQNJ.js +789 -0
- package/dist/chunk-M27LIEKV.js +2829 -0
- package/dist/chunk-MJPHJRAL.js +663 -0
- package/dist/chunk-MTL4O5YR.js +228 -0
- package/dist/chunk-NDBIPFNY.js +102 -0
- package/dist/chunk-NEMIWEXC.js +1199 -0
- package/dist/chunk-NHJ75HXY.js +1 -0
- package/dist/chunk-NIOAGFPB.js +1510 -0
- package/dist/chunk-NS52ISWS.js +355 -0
- package/dist/chunk-NSOFPKGT.js +5352 -0
- package/dist/chunk-NVIZG63R.js +757 -0
- package/dist/chunk-O37BQ65S.js +21 -0
- package/dist/chunk-OOYZPOXM.js +308 -0
- package/dist/chunk-OSGLYW5J.js +28 -0
- package/dist/chunk-PFCMSSUF.js +1640 -0
- package/dist/chunk-PFZO3C6H.js +14 -0
- package/dist/chunk-PGRVXIMY.js +158 -0
- package/dist/chunk-PHH7LD45.js +113 -0
- package/dist/chunk-PISBFBJN.js +109 -0
- package/dist/chunk-POOOIWE5.js +9 -0
- package/dist/chunk-PQNS3U7Z.js +1240 -0
- package/dist/chunk-QSTSJOCK.js +402 -0
- package/dist/chunk-RFQMOKWK.js +282 -0
- package/dist/chunk-RJIZEJ42.js +30 -0
- package/dist/chunk-RTOTNK3P.js +484 -0
- package/dist/chunk-RXKSDUAU.js +1172 -0
- package/dist/chunk-S45JPKQN.js +3317 -0
- package/dist/chunk-SAFHACFA.js +152 -0
- package/dist/chunk-SQJVFEBV.js +41 -0
- package/dist/chunk-SVT4RNTR.js +49 -0
- package/dist/chunk-SWUFN7XM.js +43 -0
- package/dist/chunk-SXMVYC5H.js +174 -0
- package/dist/chunk-SZ6AYUIZ.js +23 -0
- package/dist/chunk-TBRL2RCC.js +9 -0
- package/dist/chunk-TCCHINEF.js +655 -0
- package/dist/chunk-THEGTRAG.js +316 -0
- package/dist/chunk-TR4LQE7L.js +2256 -0
- package/dist/chunk-TRT2HRWZ.js +18 -0
- package/dist/chunk-TWJMGXCI.js +900 -0
- package/dist/chunk-U45AXT5D.js +1023 -0
- package/dist/chunk-U4FWBSO3.js +509 -0
- package/dist/chunk-UBGDX6FI.js +147 -0
- package/dist/chunk-UJILKYES.js +75 -0
- package/dist/chunk-ULMAQV3T.js +234 -0
- package/dist/chunk-VVBP6KGT.js +9 -0
- package/dist/chunk-W5VITDM2.js +168 -0
- package/dist/chunk-WAHQVNWT.js +194 -0
- package/dist/chunk-WBPVKEEE.js +227 -0
- package/dist/chunk-WGGYRBXH.js +5434 -0
- package/dist/chunk-WLYKU45P.js +5770 -0
- package/dist/chunk-WP7BVANJ.js +53 -0
- package/dist/chunk-WQQON3SV.js +473 -0
- package/dist/chunk-WQTOVMGV.js +119 -0
- package/dist/chunk-XBDP4QPW.js +7 -0
- package/dist/chunk-XEBHSJLT.js +103 -0
- package/dist/chunk-XF4VUMKW.js +231 -0
- package/dist/chunk-XQ2ECNK3.js +1 -0
- package/dist/chunk-Y5YXDM7D.js +74 -0
- package/dist/chunk-YOPAUVU4.js +2588 -0
- package/dist/chunk-YPT4A46F.js +362 -0
- package/dist/chunk-YWXT3JNM.js +425 -0
- package/dist/chunk-YY6APYUM.js +49 -0
- package/dist/chunk-Z2IJUO45.js +691 -0
- package/dist/chunk-ZHZ2Y2DH.js +1643 -0
- package/dist/chunk-ZT7JNIGX.js +152 -0
- package/dist/coordination/agent-monitor.d.ts +9 -1
- package/dist/coordination/agent-subagent-runner.d.ts +1 -1
- package/dist/coordination/agents/agent-prompts.d.ts +8 -0
- package/dist/coordination/agents/index.d.ts +33 -1
- package/dist/coordination/agents/index.js +184 -6269
- package/dist/coordination/agents/phase3-wave1-platform.d.ts +1 -3
- package/dist/coordination/agents/phase3-wave2-meta.d.ts +1 -3
- package/dist/coordination/agents/phase8-wave3-products.d.ts +1 -3
- package/dist/coordination/agents/phase9-wave4-platform-meta.d.ts +1 -3
- package/dist/coordination/agents/project-agent-identity.d.ts +11 -11
- package/dist/coordination/agents/types.d.ts +13 -2
- package/dist/coordination/brain-monitor.d.ts +30 -7
- package/dist/coordination/collab-debug.d.ts +1 -1
- package/dist/coordination/collab-pause.d.ts +1 -1
- package/dist/coordination/delegate-tool.d.ts +7 -5
- package/dist/coordination/director-kanban-queue-helpers.d.ts +1 -0
- package/dist/coordination/director-options.d.ts +7 -0
- package/dist/coordination/director-spawn-model.d.ts +17 -0
- package/dist/coordination/director-tools.d.ts +2 -2
- package/dist/coordination/director.d.ts +12 -0
- package/dist/coordination/dispatcher.d.ts +8 -0
- package/dist/coordination/fleet-bus.d.ts +35 -4
- package/dist/coordination/fleet-supervisor.d.ts +10 -2
- package/dist/coordination/fleet.d.ts +16 -7
- package/dist/coordination/index.d.ts +4 -0
- package/dist/coordination/index.js +402 -34324
- package/dist/coordination/kanban-dispatch-port.d.ts +2 -2
- package/dist/coordination/mailbox-http-router.d.ts +4 -3
- package/dist/coordination/mailbox-http-validation.d.ts +1 -1
- package/dist/coordination/mailbox-project-server.js +48 -3276
- package/dist/coordination/mailbox-types.d.ts +24 -6
- package/dist/coordination/model-tier-leader.d.ts +122 -0
- package/dist/coordination/model-tier.d.ts +122 -0
- package/dist/coordination/multi-agent-coordinator.d.ts +24 -0
- package/dist/coordination/origin-session.d.ts +16 -0
- package/dist/coordination/provider-status-tracker.d.ts +41 -5
- package/dist/coordination/session-note-hub.d.ts +44 -0
- package/dist/coordination/session-note-tool.d.ts +10 -0
- package/dist/core/agent.d.ts +15 -2
- package/dist/core/context.d.ts +22 -3
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +239 -12360
- package/dist/core/model-ref.js +5 -23
- package/dist/core/provider-runner.d.ts +36 -1
- package/dist/core/request-conversation-binding.d.ts +37 -0
- package/dist/core/session-notes.d.ts +25 -0
- package/dist/core/system-prompt-builder.d.ts +11 -2
- package/dist/core/system-prompt-variants.d.ts +78 -0
- package/dist/design/index.js +50 -1087
- package/dist/execution/auto-compaction-middleware.d.ts +11 -0
- package/dist/execution/autonomy-brain.d.ts +2 -1
- package/dist/execution/autonomy-prompt-contributor.d.ts +7 -2
- package/dist/execution/compaction-core.d.ts +4 -4
- package/dist/execution/eternal-autonomy.d.ts +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.js +1615 -21895
- package/dist/execution/model-runtime.d.ts +0 -7
- package/dist/execution/parallel-eternal-engine.d.ts +7 -7
- package/dist/execution/prompt-enhancer.js +16 -535
- package/dist/execution/retry-policy.d.ts +31 -1
- package/dist/extension/index.js +7 -311
- package/dist/goal/index.js +33 -3435
- package/dist/hooks/index.js +14 -1138
- package/dist/hq/index.js +114 -5139
- package/dist/hq/persistence/event-log.d.ts +0 -1
- package/dist/hq/persistence.d.ts +4 -4
- package/dist/hq/protocol.js +21 -668
- package/dist/hq/publisher.d.ts +2 -0
- package/dist/index.d.ts +14 -11
- package/dist/index.js +1502 -92655
- package/dist/infrastructure/index.d.ts +4 -4
- package/dist/infrastructure/index.js +504 -5230
- package/dist/infrastructure/token-counter.d.ts +9 -0
- package/dist/kernel/events/agent-events.d.ts +77 -3
- package/dist/kernel/events/brain-events.d.ts +12 -0
- package/dist/kernel/events/provider-events.d.ts +22 -1
- package/dist/kernel/events/session-events.d.ts +14 -0
- package/dist/kernel/events/tool-events.d.ts +13 -0
- package/dist/kernel/index.js +14 -992
- package/dist/mailbox-attach.d.ts +1 -1
- package/dist/models/index.js +41 -1117
- package/dist/notifications/index.js +3 -108
- package/dist/observability/event-bridge.d.ts +25 -5
- package/dist/observability/index.d.ts +9 -8
- package/dist/observability/index.js +477 -631
- package/dist/observability/tool-usage-source.d.ts +65 -0
- package/dist/plugin/index.d.ts +5 -0
- package/dist/plugin/index.js +600 -14835
- package/dist/plugins/auto-review-plugin.d.ts +3 -2
- package/dist/plugins/review-finding-commands.d.ts +0 -8
- package/dist/plugins/review-finding-store.js +22 -0
- package/dist/plugins/review-finding-types.js +19 -0
- package/dist/plugins/review-report-integration.js +21 -0
- package/dist/plugins/review-report-store.js +20 -0
- package/dist/plugins/review-report-types.js +13 -0
- package/dist/prompts/index.js +14 -948
- package/dist/registry/index.js +9 -822
- package/dist/registry/tool-registry.d.ts +59 -9
- package/dist/registry-7N4O3E7W.js +14 -0
- package/dist/replay/index.js +6 -84
- package/dist/security/capabilities.d.ts +6 -0
- package/dist/security/file-permissions.d.ts +1 -1
- package/dist/security/index.js +161 -2235
- package/dist/security/permission-policy.d.ts +12 -1
- package/dist/security/secret-scrubber.d.ts +15 -0
- package/dist/session-catalog/index.d.ts +1 -0
- package/dist/session-catalog/index.js +41 -2103
- package/dist/session-catalog/project-server.js +59 -1435
- package/dist/session-catalog/protocol.d.ts +32 -1
- package/dist/session-catalog/registry.d.ts +17 -1
- package/dist/session-catalog/session-agents.d.ts +56 -0
- package/dist/session-catalog/store-rebuild.d.ts +14 -0
- package/dist/session-catalog/store-schema.d.ts +26 -0
- package/dist/session-catalog/store.d.ts +27 -1
- package/dist/session-note-attach.d.ts +9 -0
- package/dist/skills/index.js +35 -1578
- package/dist/statusline/index.d.ts +43 -0
- package/dist/statusline/index.js +102 -0
- package/dist/storage/board-store-port.d.ts +2 -2
- package/dist/storage/config-loader/in-project-policy.d.ts +29 -0
- package/dist/storage/config-loader.d.ts +3 -2
- package/dist/storage/file-session-writer.d.ts +4 -2
- package/dist/storage/goal-coordination.d.ts +6 -1
- package/dist/storage/goal-kanban.d.ts +4 -1
- package/dist/storage/index.d.ts +12 -4
- package/dist/storage/index.js +198 -15601
- package/dist/storage/input-history-store.d.ts +2 -4
- package/dist/storage/memory-curator.d.ts +133 -0
- package/dist/storage/session-agent-attribution.d.ts +39 -0
- package/dist/storage/session-doctor.d.ts +109 -0
- package/dist/storage/session-event-bridge.d.ts +5 -7
- package/dist/storage/session-outcome.d.ts +42 -0
- package/dist/storage/session-recovery.d.ts +55 -0
- package/dist/storage/session-store/load-session-data.d.ts +11 -0
- package/dist/storage/session-store/prune-helpers.d.ts +1 -1
- package/dist/storage/session-store/resume-session.d.ts +0 -2
- package/dist/storage/session-store/types.d.ts +8 -0
- package/dist/storage/session-store.d.ts +3 -3
- package/dist/storage/session-summary-tracker.d.ts +8 -1
- package/dist/storage/session-write-buffer.d.ts +18 -0
- package/dist/storage/session-writer-truncate.d.ts +2 -0
- package/dist/tasking/index.js +10 -676
- package/dist/tools/fallback-manage-tools.d.ts +6 -4
- package/dist/tools/index.js +52 -9590
- package/dist/tools/model-tier-set-tool.d.ts +66 -0
- package/dist/types/agent-bridge.d.ts +2 -1
- package/dist/types/config/autonomy.d.ts +5 -0
- package/dist/types/config/mcp-features.d.ts +7 -0
- package/dist/types/config/model-tiers.d.ts +148 -0
- package/dist/types/config/root.d.ts +9 -0
- package/dist/types/config/tools.d.ts +73 -0
- package/dist/types/config/ui.d.ts +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/context.d.ts +2 -0
- package/dist/types/default-config.d.ts +6 -0
- package/dist/types/errors.d.ts +20 -1
- package/dist/types/index.d.ts +11 -9
- package/dist/types/index.js +131 -1342
- package/dist/types/multi-agent.d.ts +43 -0
- package/dist/types/plugin.d.ts +1 -1
- package/dist/types/provider-runner.d.ts +8 -0
- package/dist/types/provider.d.ts +15 -0
- package/dist/types/runtime-capability-manifest.d.ts +1 -1
- package/dist/types/secret-scrubber.d.ts +15 -0
- package/dist/types/session-markers.d.ts +37 -10
- package/dist/types/session-markers.js +8 -144
- package/dist/types/session-timeline.d.ts +197 -0
- package/dist/types/session-timeline.js +12 -0
- package/dist/types/session.d.ts +172 -11
- package/dist/types/system-prompt.d.ts +27 -0
- package/dist/utils/config-backup.d.ts +9 -1
- package/dist/utils/error.js +3 -4
- package/dist/utils/expect-defined.js +3 -9
- package/dist/utils/heap-watchdog.js +6 -706
- package/dist/utils/index.js +271 -5685
- package/dist/utils/message-invariants.d.ts +4 -1
- package/dist/utils/regex-guard.d.ts +1 -1
- package/dist/utils/sage-output-block.js +5 -42
- package/dist/utils/socket-path.d.ts +1 -1
- package/dist/utils/token-estimate.d.ts +6 -2
- package/dist/utils/wstack-paths.d.ts +2 -0
- package/dist/wiring/proxy-rewrite.d.ts +46 -0
- package/dist/wiring/proxy-rewrite.js +24 -121
- package/dist/worktree/index.js +6 -887
- package/instructions/agents/explore-companion.md +45 -18
- package/instructions/agents/memory-curator.md +34 -22
- package/instructions/coordination/director-preamble.md +12 -7
- package/instructions/coordination/subagent-baseline.md +26 -5
- package/instructions/leader-after-task.md +4 -1
- package/instructions/llm/chimera-review.md +30 -9
- package/instructions/llm/memory-curator.md +31 -0
- package/instructions/sections/tool/delegation-compact.md +2 -0
- package/instructions/sections/tool/delegation-full.md +5 -1
- package/instructions/sections/tool/mailbox-compact.md +5 -1
- package/instructions/sections/tool/mailbox-full.md +3 -0
- package/instructions/sections/tool/session-note-compact.md +3 -0
- package/instructions/sections/tool/session-note-full.md +15 -0
- package/instructions/system-lite.md +9 -4
- package/instructions/system-pro.md +66 -143
- package/instructions/system.md +73 -175
- package/package.json +32 -4
- package/dist/coordination/agents.d.ts +0 -8
- package/dist/coordination/transport.d.ts +0 -2
- package/dist/storage/session-writer/session-writer-summary-tracker.d.ts +0 -28
|
@@ -9,6 +9,9 @@ export interface MessageRepairResult {
|
|
|
9
9
|
messages: Message[];
|
|
10
10
|
report: MessageRepairReport;
|
|
11
11
|
}
|
|
12
|
+
export interface MessageRepairOptions {
|
|
13
|
+
preserveTrailingToolUse?: boolean | undefined;
|
|
14
|
+
}
|
|
12
15
|
/**
|
|
13
16
|
* Repair provider-level tool-call adjacency invariants.
|
|
14
17
|
*
|
|
@@ -18,7 +21,7 @@ export interface MessageRepairResult {
|
|
|
18
21
|
* exchange. This function removes only the now-orphaned protocol blocks,
|
|
19
22
|
* preserving surrounding text/images/thinking blocks where possible.
|
|
20
23
|
*/
|
|
21
|
-
export declare function repairToolUseAdjacency(messages: Message[]): MessageRepairResult;
|
|
24
|
+
export declare function repairToolUseAdjacency(messages: Message[], opts?: MessageRepairOptions): MessageRepairResult;
|
|
22
25
|
/**
|
|
23
26
|
* True when a message content payload carries meaningful information for
|
|
24
27
|
* the provider: non-whitespace text, a tool call/result, thinking with
|
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
* `tools/tests/regex-guard-parity.test.ts` still pins all three historical
|
|
9
9
|
* entry points to identical verdicts (now trivially true — one code path).
|
|
10
10
|
*/
|
|
11
|
-
export { type CompileFail, type CompileResult, capSubject, compileUserRegex, MAX_SUBJECT_LEN, } from '@wrongstack/primitives';
|
|
11
|
+
export { type CompileFail, type CompileResult, type CompileUserRegexResult, capSubject, compileUserRegex, MAX_SUBJECT_LEN, } from '@wrongstack/primitives';
|
|
12
12
|
//# sourceMappingURL=regex-guard.d.ts.map
|
|
@@ -1,45 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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,
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* share one implementation with packages that depend on persistence directly
|
|
5
5
|
* (kanban). See `packages/persistence/src/socket-path.ts` for rationale.
|
|
6
6
|
*/
|
|
7
|
-
export { assertUnixSocketPathWithinLimit, checkUnixSocketPath,
|
|
7
|
+
export { assertUnixSocketPathWithinLimit, checkUnixSocketPath, unixSocketPathLimit } from '@wrongstack/persistence';
|
|
8
8
|
//# sourceMappingURL=socket-path.d.ts.map
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import type { Message } from '../types/messages.js';
|
|
2
2
|
/**
|
|
3
3
|
* Estimate tokens for a tool_use block input.
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* Memoized on the input object, so the repeated context-window checks and
|
|
6
|
+
* breakdown re-runs that walk the same history serialize each payload once.
|
|
6
7
|
*/
|
|
7
8
|
export declare function estimateToolInputTokens(input: unknown): number;
|
|
8
9
|
/**
|
|
9
10
|
* Estimate tokens for a tool_result content.
|
|
11
|
+
*
|
|
12
|
+
* Same memo as {@link estimateToolInputTokens}; non-object contents (null,
|
|
13
|
+
* numbers) are cheap enough to stringify outright and cannot key a WeakMap.
|
|
10
14
|
*/
|
|
11
15
|
export declare function estimateToolResultTokens(content: string | unknown): number;
|
|
12
16
|
/**
|
|
@@ -41,6 +41,8 @@ export interface WstackPaths {
|
|
|
41
41
|
profileModeConfig: (name: string) => string;
|
|
42
42
|
/** Resolve ~/.wrongstack/profiles/<name>/provider-status.json */
|
|
43
43
|
profileProviderStatus: (name: string) => string;
|
|
44
|
+
/** Resolve ~/.wrongstack/profiles/<name>/provider-status-audit.jsonl */
|
|
45
|
+
profileProviderAudit: (name: string) => string;
|
|
44
46
|
/** Resolve ~/.wrongstack/profiles/<name>/update-cache.json */
|
|
45
47
|
profileUpdateCache: (name: string) => string;
|
|
46
48
|
/** ~/.wrongstack/.key — 32 random bytes, mode 0600, AES-GCM key for the secret vault. */
|
|
@@ -54,6 +54,34 @@ export interface ProxyConfig {
|
|
|
54
54
|
/** Last-known reachability state from the periodic probe. */
|
|
55
55
|
active: boolean;
|
|
56
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Minimal structural logger for probe transitions. Deliberately not core's
|
|
59
|
+
* full `Logger` so any host (CLI logger, subcommand, test stub) can pass a
|
|
60
|
+
* plain object.
|
|
61
|
+
*/
|
|
62
|
+
export interface ProxyTransitionLogger {
|
|
63
|
+
info(message: string): void;
|
|
64
|
+
warn(message: string): void;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Install (or replace) the probe's transition logger. Affects the running
|
|
68
|
+
* probe immediately (the flip path reads this variable at log time).
|
|
69
|
+
* Passing undefined silences transition logging again.
|
|
70
|
+
*/
|
|
71
|
+
export declare function setProxyTransitionLogger(logger: ProxyTransitionLogger | undefined): void;
|
|
72
|
+
/**
|
|
73
|
+
* Redact a URL for logging: keep scheme://host[:port]/path, drop query and
|
|
74
|
+
* fragment. Provider/proxy URLs may embed credentials there (`?key=...`);
|
|
75
|
+
* a log line must never persist them.
|
|
76
|
+
*/
|
|
77
|
+
export declare function sanitizeUrlForLog(raw: string | undefined): string;
|
|
78
|
+
/**
|
|
79
|
+
* Emit one probe-transition line. Called ONLY when `active` actually flips
|
|
80
|
+
* (never on verdict-identical probes) — every flip is a routing change for
|
|
81
|
+
* every subsequent provider build. Fully isolated: a throwing logger must
|
|
82
|
+
* never alter probe control flow.
|
|
83
|
+
*/
|
|
84
|
+
export declare function logProxyTransition(next: boolean, reason: string): void;
|
|
57
85
|
/** Read the current proxy configuration. Safe to call from any layer. */
|
|
58
86
|
export declare function getProxyConfig(): ProxyConfig;
|
|
59
87
|
/**
|
|
@@ -83,12 +111,30 @@ export declare function applyProxyConfig(next: Partial<ProxyConfig>): ProxyConfi
|
|
|
83
111
|
* excluded" rule so future call sites can't accidentally skip a check.
|
|
84
112
|
*/
|
|
85
113
|
export declare function shouldRewriteFor(providerId: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Automatically deactivate the proxy if a connection failure occurs while
|
|
116
|
+
* the proxy was marked active. Triggers instant-apply provider rebuilds to
|
|
117
|
+
* fallback immediately to direct provider communication without failing the turn.
|
|
118
|
+
*/
|
|
119
|
+
export declare function deactivateProxyOnConnectionFailure(err: unknown): boolean;
|
|
86
120
|
/**
|
|
87
121
|
* Reset to defaults. Intended for tests; do NOT call from production code
|
|
88
122
|
* (the singleton lives for the lifetime of the process). Also drops all
|
|
89
123
|
* change listeners so tests never observe each other's notifications.
|
|
90
124
|
*/
|
|
91
125
|
export declare function __resetProxyConfigForTests(): void;
|
|
126
|
+
/** Upper bound for {@link waitForProxyRoutingSettle}. Local provider builds
|
|
127
|
+
* settle in single-digit milliseconds; anything slower means the host is
|
|
128
|
+
* doing network work inside rebuildProvider, and a retrying turn must not
|
|
129
|
+
* hang on it. Resolves on timeout — the barrier delays, never fails. */
|
|
130
|
+
export declare const PROXY_ROUTING_SETTLE_CAP_MS = 2000;
|
|
131
|
+
/**
|
|
132
|
+
* Wait until every registered instant-apply rebuild triggered by the current
|
|
133
|
+
* proxy-config change has settled, the cap elapses, or `signal` aborts.
|
|
134
|
+
* Resolves in all three cases — a settle timeout must not fail the turn,
|
|
135
|
+
* only stop delaying it.
|
|
136
|
+
*/
|
|
137
|
+
export declare function waitForProxyRoutingSettle(timeoutMs?: number, signal?: AbortSignal | undefined): Promise<void>;
|
|
92
138
|
/** Minimal structural logger — keeps this module dependency-free. */
|
|
93
139
|
export interface ProxyInstantApplyLogger {
|
|
94
140
|
info: (message: string) => void;
|
|
@@ -1,132 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
+
logProxyTransition,
|
|
11
|
+
rewriteBaseUrl,
|
|
12
|
+
sanitizeUrlForLog,
|
|
13
|
+
setProxyTransitionLogger,
|
|
14
|
+
shouldRewriteFor,
|
|
15
|
+
subscribeToProxyConfig,
|
|
16
|
+
waitForProxyRoutingSettle
|
|
17
|
+
} from "../chunk-4SJNS7OB.js";
|
|
121
18
|
export {
|
|
122
19
|
PROXY_EXCLUDED_PROVIDERS,
|
|
20
|
+
PROXY_ROUTING_SETTLE_CAP_MS,
|
|
123
21
|
__resetProxyConfigForTests,
|
|
124
22
|
applyProxyConfig,
|
|
125
23
|
createProxyInstantApply,
|
|
24
|
+
deactivateProxyOnConnectionFailure,
|
|
126
25
|
getProxyConfig,
|
|
127
26
|
isProxyEligible,
|
|
27
|
+
logProxyTransition,
|
|
128
28
|
rewriteBaseUrl,
|
|
29
|
+
sanitizeUrlForLog,
|
|
30
|
+
setProxyTransitionLogger,
|
|
129
31
|
shouldRewriteFor,
|
|
130
|
-
subscribeToProxyConfig
|
|
32
|
+
subscribeToProxyConfig,
|
|
33
|
+
waitForProxyRoutingSettle
|
|
131
34
|
};
|
|
132
35
|
//# sourceMappingURL=proxy-rewrite.js.map
|