@retaw106/mmc-oc 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +12 -1
- package/dist/config/schema/magic-context.d.ts +33 -0
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/config-init.js +12 -1
- package/dist/{context-wt7g4f8k.js → context-xx09sh1g.js} +1985 -603
- package/dist/features/magic-context/memory-maintainer/launcher.d.ts +13 -4
- package/dist/features/magic-context/memory-maintainer/launcher.d.ts.map +1 -1
- package/dist/features/magic-context/memory-maintainer/manual-commands.d.ts.map +1 -1
- package/dist/features/magic-context/memory-maintainer/model-chain.d.ts +47 -0
- package/dist/features/magic-context/memory-maintainer/model-chain.d.ts.map +1 -0
- package/dist/features/magic-context/memory-maintainer/oc2-adapter.d.ts +17 -4
- package/dist/features/magic-context/memory-maintainer/oc2-adapter.d.ts.map +1 -1
- package/dist/features/magic-context/memory-maintainer/pipeline.d.ts +6 -0
- package/dist/features/magic-context/memory-maintainer/pipeline.d.ts.map +1 -1
- package/dist/features/magic-context/message-index-async.d.ts +6 -2
- package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
- package/dist/features/magic-context/message-index.d.ts +5 -8
- package/dist/features/magic-context/message-index.d.ts.map +1 -1
- package/dist/features/magic-context/search.d.ts +5 -1
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/features/magic-context/storage-db.d.ts +2 -0
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-host-instruction-retention.d.ts +4 -0
- package/dist/features/magic-context/storage-host-instruction-retention.d.ts.map +1 -0
- package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-shared.d.ts +2 -2
- package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
- package/dist/features/magic-context/storage-session-tables.d.ts +9 -1
- package/dist/features/magic-context/storage-session-tables.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tags.d.ts +4 -0
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/features/magic-context/transform-decision-log.d.ts +57 -2
- package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
- package/dist/hooks/magic-context/__fixtures__/tail-hygiene-refresh.d.ts +34 -0
- package/dist/hooks/magic-context/__fixtures__/tail-hygiene-refresh.d.ts.map +1 -0
- package/dist/hooks/magic-context/apply-operations.d.ts +3 -1
- package/dist/hooks/magic-context/apply-operations.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-hint.d.ts +3 -0
- package/dist/hooks/magic-context/auto-search-hint.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/channel2-delivery.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts +2 -2
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +2 -2
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts +4 -0
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-trigger-error.d.ts +11 -0
- package/dist/hooks/magic-context/compartment-trigger-error.d.ts.map +1 -0
- package/dist/hooks/magic-context/compartment-trigger.d.ts +1 -1
- package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
- package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts +1 -0
- package/dist/hooks/magic-context/ctx-reduce-nudge.d.ts.map +1 -1
- package/dist/hooks/magic-context/degraded-pass-refusal.d.ts +2 -0
- package/dist/hooks/magic-context/degraded-pass-refusal.d.ts.map +1 -1
- package/dist/hooks/magic-context/diagnostic-log-state.d.ts +4 -0
- package/dist/hooks/magic-context/diagnostic-log-state.d.ts.map +1 -0
- package/dist/hooks/magic-context/edit-marker.d.ts +2 -0
- package/dist/hooks/magic-context/edit-marker.d.ts.map +1 -1
- package/dist/hooks/magic-context/emergency-drop.d.ts.map +1 -1
- package/dist/hooks/magic-context/file-token-coverage.d.ts +11 -0
- package/dist/hooks/magic-context/file-token-coverage.d.ts.map +1 -0
- package/dist/hooks/magic-context/final-wire-token-estimate.d.ts +2 -0
- package/dist/hooks/magic-context/final-wire-token-estimate.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/host-served-rows.d.ts +10 -0
- package/dist/hooks/magic-context/host-served-rows.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-recovery-fence.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-replay.d.ts.map +1 -1
- package/dist/hooks/magic-context/lkg-slot.d.ts +1 -1
- package/dist/hooks/magic-context/lkg-slot.d.ts.map +1 -1
- package/dist/hooks/magic-context/nudge-evaluation-log.d.ts +3 -0
- package/dist/hooks/magic-context/nudge-evaluation-log.d.ts.map +1 -0
- package/dist/hooks/magic-context/pass-outcome.d.ts +2 -0
- package/dist/hooks/magic-context/pass-outcome.d.ts.map +1 -1
- package/dist/hooks/magic-context/pending-drop-eligibility.d.ts +14 -0
- package/dist/hooks/magic-context/pending-drop-eligibility.d.ts.map +1 -0
- package/dist/hooks/magic-context/pending-materialization.d.ts +2 -0
- package/dist/hooks/magic-context/pending-materialization.d.ts.map +1 -1
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts +2 -0
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
- package/dist/hooks/magic-context/provider-visible-parts.d.ts +10 -4
- package/dist/hooks/magic-context/provider-visible-parts.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts +3 -3
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -1
- package/dist/hooks/magic-context/render-options.d.ts +19 -0
- package/dist/hooks/magic-context/render-options.d.ts.map +1 -0
- package/dist/hooks/magic-context/supersession-reclaim.d.ts +5 -3
- package/dist/hooks/magic-context/supersession-reclaim.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-date-refresh.d.ts +3 -2
- package/dist/hooks/magic-context/system-date-refresh.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-sticky-date.d.ts +4 -0
- package/dist/hooks/magic-context/system-prompt-sticky-date.d.ts.map +1 -0
- package/dist/hooks/magic-context/tag-content-primitives.d.ts +1 -1
- package/dist/hooks/magic-context/tag-content-primitives.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts +15 -2
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/tail-hygiene-output-count.d.ts +18 -0
- package/dist/hooks/magic-context/tail-hygiene-output-count.d.ts.map +1 -0
- package/dist/hooks/magic-context/tail-hygiene-walk.d.ts +8 -4
- package/dist/hooks/magic-context/tail-hygiene-walk.d.ts.map +1 -1
- package/dist/hooks/magic-context/text-complete.d.ts +1 -1
- package/dist/hooks/magic-context/text-complete.d.ts.map +1 -1
- package/dist/hooks/magic-context/todo-view.d.ts +2 -2
- package/dist/hooks/magic-context/tool-drop-target.d.ts +3 -2
- package/dist/hooks/magic-context/tool-drop-target.d.ts.map +1 -1
- package/dist/hooks/magic-context/tool-reclaim.d.ts +5 -2
- package/dist/hooks/magic-context/tool-reclaim.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +1 -0
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +8 -0
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-stage-logger.d.ts +3 -0
- package/dist/hooks/magic-context/transform-stage-logger.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +4 -9
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/unresolved-history-boundary.d.ts +5 -1
- package/dist/hooks/magic-context/unresolved-history-boundary.d.ts.map +1 -1
- package/dist/{index-kw21z5pe.js → index-0d40b4q8.js} +17119 -16569
- package/dist/{index-z2w1eq3y.js → index-1vxffj5j.js} +558 -211
- package/dist/{index-z2g20msd.js → index-azbmnekv.js} +4 -4
- package/dist/{index-18yrysyj.js → index-bpjjcdy9.js} +1 -1
- package/dist/{index-a5mw0xp3.js → index-k25thxq7.js} +1 -1
- package/dist/{index-3gj1ak4c.js → index-mjf0p7yq.js} +1 -1
- package/dist/{index-czba8tw3.js → index-pte3cfs9.js} +226 -14
- package/dist/index.js +2 -2
- package/dist/{message-time-backfill-sykevdax.js → message-time-backfill-g9py24yt.js} +1 -1
- package/dist/model-resolution-cvyrrcjw.js +8 -0
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/plugin/subagent-tool-policy.d.ts +4 -0
- package/dist/plugin/subagent-tool-policy.d.ts.map +1 -1
- package/dist/{read-session-chunk-863d6c06.js → read-session-chunk-eb3fy45y.js} +3 -3
- package/dist/{recomp-orchestrator-wrjy3qym.js → recomp-orchestrator-mmpy5cb7.js} +6 -6
- package/dist/{send-session-notification-cz6ev088.js → send-session-notification-zpqs213d.js} +3 -3
- package/dist/shared/model-suggestion-retry.d.ts +23 -0
- package/dist/shared/model-suggestion-retry.d.ts.map +1 -1
- package/dist/shared/prompt-surface-runtime.d.ts +5 -0
- package/dist/shared/prompt-surface-runtime.d.ts.map +1 -1
- package/dist/shared/reclaim-distance.d.ts +33 -0
- package/dist/shared/reclaim-distance.d.ts.map +1 -0
- package/dist/shared/rpc-discovery-cleanup.d.ts +3 -0
- package/dist/shared/rpc-discovery-cleanup.d.ts.map +1 -0
- package/dist/shared/rpc-server.d.ts +2 -0
- package/dist/shared/rpc-server.d.ts.map +1 -1
- package/dist/shared/search-text.d.ts +8 -0
- package/dist/shared/search-text.d.ts.map +1 -0
- package/dist/shared/sqlite.d.ts +8 -1
- package/dist/shared/sqlite.d.ts.map +1 -1
- package/dist/shared/stable-json.d.ts +7 -0
- package/dist/shared/stable-json.d.ts.map +1 -1
- package/dist/shared/storage-file-mutex.d.ts.map +1 -1
- package/dist/shared/system-directive.d.ts +2 -0
- package/dist/shared/system-directive.d.ts.map +1 -1
- package/dist/shared/tail-hygiene-json.d.ts +22 -0
- package/dist/shared/tail-hygiene-json.d.ts.map +1 -0
- package/dist/shared/user-facing-codes.d.ts +2 -2
- package/dist/v2/fold/native-replay.d.ts +11 -2
- package/dist/v2/fold/native-replay.d.ts.map +1 -1
- package/dist/v2/fold/policy.d.ts.map +1 -1
- package/dist/v2/fold/restore.d.ts.map +1 -1
- package/dist/v2/hidden-completion.d.ts +20 -1
- package/dist/v2/hidden-completion.d.ts.map +1 -1
- package/dist/v2/hooks/context.d.ts +1 -1
- package/dist/v2/hooks/context.d.ts.map +1 -1
- package/dist/v2/hooks/generate.d.ts +36 -1
- package/dist/v2/hooks/generate.d.ts.map +1 -1
- package/dist/v2/hooks/hidden-child.d.ts +22 -1
- package/dist/v2/hooks/hidden-child.d.ts.map +1 -1
- package/dist/v2/hooks/lkg-system.d.ts +35 -4
- package/dist/v2/hooks/lkg-system.d.ts.map +1 -1
- package/dist/v2/hooks/payload.d.ts +10 -1
- package/dist/v2/hooks/payload.d.ts.map +1 -1
- package/dist/v2/hooks/store.d.ts +2 -0
- package/dist/v2/hooks/store.d.ts.map +1 -1
- package/dist/v2/hooks/types.d.ts +12 -0
- package/dist/v2/hooks/types.d.ts.map +1 -1
- package/dist/v2/server.js +16272 -13742
- package/dist/v2/store-reader.d.ts +38 -1
- package/dist/v2/store-reader.d.ts.map +1 -1
- package/dist/web/main.js +262 -17
- package/dist/{wrapup-orchestrator-bmybc5p5.js → wrapup-orchestrator-jq589pgr.js} +6 -6
- package/package.json +1 -1
- package/src/config/latch-permanence-guard.test.ts +8 -0
- package/src/config/project-security.test.ts +17 -0
- package/src/config/schema/magic-context.test.ts +50 -0
- package/src/config/schema/magic-context.ts +34 -1
- package/src/shared/model-suggestion-retry.test.ts +52 -0
- package/src/shared/model-suggestion-retry.ts +13 -4
- package/src/shared/prompt-surface-runtime.ts +12 -0
- package/src/shared/reclaim-distance.test.ts +111 -0
- package/src/shared/reclaim-distance.ts +91 -0
- package/src/shared/root-async-context.probe.mjs +36 -0
- package/src/shared/root-async-context.test.ts +49 -0
- package/src/shared/rpc-discovery-cleanup.test.ts +125 -0
- package/src/shared/rpc-discovery-cleanup.ts +57 -0
- package/src/shared/rpc-server.ts +36 -13
- package/src/shared/search-text.test.ts +30 -0
- package/src/shared/search-text.ts +62 -0
- package/src/shared/sqlite-busy-budget-review.test.ts +291 -0
- package/src/shared/sqlite-foreground-wait.test.ts +237 -1
- package/src/shared/sqlite-turn-deadline.test.ts +286 -0
- package/src/shared/sqlite.ts +292 -23
- package/src/shared/stable-json.ts +56 -14
- package/src/shared/storage-file-mutex.test.ts +51 -2
- package/src/shared/storage-file-mutex.ts +11 -1
- package/src/shared/system-directive.test.ts +37 -0
- package/src/shared/system-directive.ts +19 -1
- package/src/shared/tag-transcript.ts +16 -4
- package/src/shared/tail-hygiene-json.test.ts +117 -0
- package/src/shared/tail-hygiene-json.ts +217 -0
- package/src/shared/user-facing-codes.ts +2 -2
- package/dist/model-resolution-wazv26n0.js +0 -6
|
@@ -8,7 +8,7 @@ function readString(value) {
|
|
|
8
8
|
const trimmed = value.trim();
|
|
9
9
|
return trimmed.length > 0 ? trimmed : undefined;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
11
|
+
function normalizeModelEntry2(entry, harness) {
|
|
12
12
|
if (typeof entry === "string") {
|
|
13
13
|
const model = readString(entry);
|
|
14
14
|
return model ? { model } : undefined;
|
|
@@ -33,7 +33,7 @@ function resolveFallbackEntries(value, harness) {
|
|
|
33
33
|
const values = Array.isArray(value) ? value : value === undefined ? [] : [value];
|
|
34
34
|
const resolved = [];
|
|
35
35
|
for (const value of values) {
|
|
36
|
-
const entry =
|
|
36
|
+
const entry = normalizeModelEntry2(value, harness);
|
|
37
37
|
if (!entry || !isValidModelReference(entry))
|
|
38
38
|
continue;
|
|
39
39
|
if (resolved.some((candidate) => sameAttempt(candidate, entry)))
|
|
@@ -43,7 +43,7 @@ function resolveFallbackEntries(value, harness) {
|
|
|
43
43
|
return resolved;
|
|
44
44
|
}
|
|
45
45
|
function resolvePrimaryEntry(args) {
|
|
46
|
-
const entry =
|
|
46
|
+
const entry = normalizeModelEntry2(args.entry, args.harness);
|
|
47
47
|
if (!entry)
|
|
48
48
|
return;
|
|
49
49
|
const qualifier = entry.qualifier ?? readString(args.defaultQualifier);
|
|
@@ -62,4 +62,4 @@ function resolveHistorianModel2(config, harness) {
|
|
|
62
62
|
fallbacks: resolveFallbackEntries(historian.fallback_models, harness)
|
|
63
63
|
};
|
|
64
64
|
}
|
|
65
|
-
export { resolveHistorianModel2 };
|
|
65
|
+
export { normalizeModelEntry2, resolveHistorianModel2 };
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
// src/shared/sqlite.ts
|
|
2
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
import { AsyncLocalStorage, AsyncResource } from "node:async_hooks";
|
|
3
3
|
import { statSync } from "node:fs";
|
|
4
|
+
var resourceRoot = new AsyncResource("magic-context:root");
|
|
5
|
+
function inRootAsyncContext(operation) {
|
|
6
|
+
return resourceRoot.runInAsyncScope(operation);
|
|
7
|
+
}
|
|
4
8
|
var reportSlowPrivilegedWrite;
|
|
5
9
|
function registerSlowWriteReporter(reporter) {
|
|
6
10
|
reportSlowPrivilegedWrite = reporter;
|
|
@@ -163,6 +167,177 @@ function topLevelCommaSegments(text) {
|
|
|
163
167
|
function getTagIdentityWriteGeneration() {
|
|
164
168
|
return tagIdentityWriteGeneration;
|
|
165
169
|
}
|
|
170
|
+
var busyTimeoutStates = new WeakMap;
|
|
171
|
+
var BUSY_TIMEOUT_QUERY = /^\s*PRAGMA\s+(?:(?:\w+|"[^"]+"|`[^`]+`|\[[^\]]+\])\s*\.\s*)?(?:busy_timeout|"busy_timeout"|`busy_timeout`|\[busy_timeout\])\s*;?\s*$/i;
|
|
172
|
+
var BUSY_TIMEOUT_SETTER = /^\s*PRAGMA\s+(?:(?:\w+|"[^"]+"|`[^`]+`|\[[^\]]+\])\s*\.\s*)?(?:busy_timeout|"busy_timeout"|`busy_timeout`|\[busy_timeout\])\s*(?==|\()/i;
|
|
173
|
+
function literalBusyTimeout(sql) {
|
|
174
|
+
const head = BUSY_TIMEOUT_SETTER.exec(sql);
|
|
175
|
+
if (!head)
|
|
176
|
+
return;
|
|
177
|
+
const match = /^(?:=\s*|\(\s*)(?:'(-?\d+)'|"(-?\d+)"|(-?\d+))\s*\)?\s*;?\s*$/.exec(sql.slice(head[0].length));
|
|
178
|
+
if (!match)
|
|
179
|
+
return;
|
|
180
|
+
const value = Number(match[1] ?? match[2] ?? match[3]);
|
|
181
|
+
return value < 0 ? 0 : value <= 2147483647 ? value : undefined;
|
|
182
|
+
}
|
|
183
|
+
function busyTimeoutStatements(sql) {
|
|
184
|
+
const statements = [];
|
|
185
|
+
let statement = "";
|
|
186
|
+
let quote = "";
|
|
187
|
+
for (let i = 0;i < sql.length; i++) {
|
|
188
|
+
const char = sql[i];
|
|
189
|
+
if (quote) {
|
|
190
|
+
statement += char;
|
|
191
|
+
if (char === quote) {
|
|
192
|
+
if (sql[i + 1] === quote)
|
|
193
|
+
statement += sql[++i];
|
|
194
|
+
else
|
|
195
|
+
quote = "";
|
|
196
|
+
}
|
|
197
|
+
} else if (char === "'" || char === '"' || char === "`" || char === "[") {
|
|
198
|
+
quote = char === "[" ? "]" : char;
|
|
199
|
+
statement += char;
|
|
200
|
+
} else if (char === "-" && sql[i + 1] === "-") {
|
|
201
|
+
while (i + 1 < sql.length && sql[i + 1] !== `
|
|
202
|
+
`)
|
|
203
|
+
i++;
|
|
204
|
+
statement += " ";
|
|
205
|
+
} else if (char === "/" && sql[i + 1] === "*") {
|
|
206
|
+
i += 2;
|
|
207
|
+
while (i < sql.length && !(sql[i] === "*" && sql[i + 1] === "/"))
|
|
208
|
+
i++;
|
|
209
|
+
i++;
|
|
210
|
+
statement += " ";
|
|
211
|
+
} else if (char === ";") {
|
|
212
|
+
statements.push(statement);
|
|
213
|
+
statement = "";
|
|
214
|
+
} else
|
|
215
|
+
statement += char;
|
|
216
|
+
}
|
|
217
|
+
statements.push(statement);
|
|
218
|
+
return statements.filter((part) => part.trim().length > 0);
|
|
219
|
+
}
|
|
220
|
+
function installNativeDeadlineRouting(db) {
|
|
221
|
+
const rawExec = db.exec.bind(db);
|
|
222
|
+
const rawPrepare = db.prepare.bind(db);
|
|
223
|
+
const readTimeout = () => {
|
|
224
|
+
const statement = rawPrepare("PRAGMA busy_timeout");
|
|
225
|
+
try {
|
|
226
|
+
return Object.values(statement.get())[0];
|
|
227
|
+
} finally {
|
|
228
|
+
statement.finalize?.();
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
const timeoutState = { current: readTimeout() };
|
|
232
|
+
busyTimeoutStates.set(db, timeoutState);
|
|
233
|
+
const setBusyTimeout = (timeout) => {
|
|
234
|
+
rawExec(`PRAGMA busy_timeout=${timeout}`);
|
|
235
|
+
timeoutState.current = timeout;
|
|
236
|
+
};
|
|
237
|
+
const withinDeadline = (operation) => {
|
|
238
|
+
const deadline = nativeWaitScope?.getStore();
|
|
239
|
+
if (!deadline?.active || !deadline.remainingMs)
|
|
240
|
+
return operation();
|
|
241
|
+
const remaining = deadline.remainingMs();
|
|
242
|
+
if (remaining === Infinity)
|
|
243
|
+
return operation();
|
|
244
|
+
const previous = timeoutState.current;
|
|
245
|
+
const timeout = Math.min(previous, Math.max(0, Math.floor(remaining)));
|
|
246
|
+
if (timeout === previous)
|
|
247
|
+
return operation();
|
|
248
|
+
setBusyTimeout(timeout);
|
|
249
|
+
try {
|
|
250
|
+
return operation();
|
|
251
|
+
} finally {
|
|
252
|
+
setBusyTimeout(previous);
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
Object.defineProperty(db, "exec", {
|
|
256
|
+
configurable: true,
|
|
257
|
+
writable: true,
|
|
258
|
+
value: (sql) => {
|
|
259
|
+
const parts = /\bbusy_timeout\b/i.test(sql) ? busyTimeoutStatements(sql) : [];
|
|
260
|
+
if (parts.length === 1 && BUSY_TIMEOUT_QUERY.test(parts[0]))
|
|
261
|
+
return rawExec(sql);
|
|
262
|
+
const singleSetter = parts.length === 1 && BUSY_TIMEOUT_SETTER.test(parts[0]);
|
|
263
|
+
const setting = singleSetter ? literalBusyTimeout(parts[0]) : undefined;
|
|
264
|
+
if (singleSetter) {
|
|
265
|
+
const result = rawExec(sql);
|
|
266
|
+
timeoutState.current = setting ?? readTimeout();
|
|
267
|
+
return result;
|
|
268
|
+
}
|
|
269
|
+
if (!/\bbusy_timeout\b/i.test(sql))
|
|
270
|
+
return withinDeadline(() => rawExec(sql));
|
|
271
|
+
const setters = parts.filter((part) => BUSY_TIMEOUT_SETTER.test(part));
|
|
272
|
+
return withinDeadline(() => {
|
|
273
|
+
try {
|
|
274
|
+
const result = rawExec(sql);
|
|
275
|
+
if (setters.length)
|
|
276
|
+
timeoutState.current = literalBusyTimeout(setters[setters.length - 1]) ?? readTimeout();
|
|
277
|
+
return result;
|
|
278
|
+
} catch (error) {
|
|
279
|
+
if (setters.length)
|
|
280
|
+
timeoutState.current = readTimeout();
|
|
281
|
+
throw error;
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
const nativePrepare = (sql) => BUSY_TIMEOUT_QUERY.test(sql) || BUSY_TIMEOUT_SETTER.test(sql) ? rawPrepare(sql) : withinDeadline(() => rawPrepare(sql));
|
|
287
|
+
Object.defineProperty(db, "prepare", {
|
|
288
|
+
configurable: true,
|
|
289
|
+
writable: true,
|
|
290
|
+
value: (sql) => {
|
|
291
|
+
const statement = nativePrepare(sql);
|
|
292
|
+
const normalized = /\bbusy_timeout\b/i.test(sql) ? busyTimeoutStatements(sql)[0] ?? sql : sql;
|
|
293
|
+
const setting = literalBusyTimeout(normalized);
|
|
294
|
+
const timeoutSetter = BUSY_TIMEOUT_SETTER.test(normalized);
|
|
295
|
+
const timeoutQuery = BUSY_TIMEOUT_QUERY.test(normalized);
|
|
296
|
+
if (timeoutSetter)
|
|
297
|
+
timeoutState.current = setting ?? readTimeout();
|
|
298
|
+
for (const method of ["run", "get", "all", "values"]) {
|
|
299
|
+
const execute = statement[method]?.bind(statement);
|
|
300
|
+
if (!execute)
|
|
301
|
+
continue;
|
|
302
|
+
Object.defineProperty(statement, method, {
|
|
303
|
+
configurable: true,
|
|
304
|
+
value: (...args) => {
|
|
305
|
+
if (timeoutQuery)
|
|
306
|
+
return execute(...args);
|
|
307
|
+
if (!timeoutSetter)
|
|
308
|
+
return withinDeadline(() => execute(...args));
|
|
309
|
+
const result = execute(...args);
|
|
310
|
+
timeoutState.current = readTimeout();
|
|
311
|
+
return result;
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
}
|
|
315
|
+
if (typeof statement.iterate === "function") {
|
|
316
|
+
const iterate = statement.iterate.bind(statement);
|
|
317
|
+
Object.defineProperty(statement, "iterate", {
|
|
318
|
+
configurable: true,
|
|
319
|
+
value: (...args) => {
|
|
320
|
+
const iterator = !timeoutSetter && !timeoutQuery ? withinDeadline(() => iterate(...args)) : iterate(...args);
|
|
321
|
+
const next = iterator.next.bind(iterator);
|
|
322
|
+
if (timeoutSetter)
|
|
323
|
+
timeoutState.current = readTimeout();
|
|
324
|
+
iterator.next = () => {
|
|
325
|
+
if (timeoutQuery)
|
|
326
|
+
return next();
|
|
327
|
+
if (!timeoutSetter)
|
|
328
|
+
return withinDeadline(next);
|
|
329
|
+
const result = next();
|
|
330
|
+
timeoutState.current = readTimeout();
|
|
331
|
+
return result;
|
|
332
|
+
};
|
|
333
|
+
return iterator;
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
return statement;
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
}
|
|
166
341
|
function installTransactionRouting(db, readonly) {
|
|
167
342
|
const nativeExec = db.exec.bind(db);
|
|
168
343
|
Object.defineProperty(db, "exec", {
|
|
@@ -191,7 +366,7 @@ function installTransactionRouting(db, readonly) {
|
|
|
191
366
|
return endWriterTransaction(db, () => nativeExec(sql), sql);
|
|
192
367
|
if (!/^\s*(?:SELECT|EXPLAIN|PRAGMA|COMMIT|END|ROLLBACK|SAVEPOINT|RELEASE)\b/i.test(sql)) {
|
|
193
368
|
try {
|
|
194
|
-
return withAutocommitTimeout(db, () => nativeExec(sql));
|
|
369
|
+
return withAutocommitTimeout(db, () => nativeExec(sql), false);
|
|
195
370
|
} finally {
|
|
196
371
|
if (mayChangeTagIdentity(sql))
|
|
197
372
|
tagIdentityWriteGeneration += 1;
|
|
@@ -300,7 +475,7 @@ function wrapRemainingTagWriteForms(statement) {
|
|
|
300
475
|
});
|
|
301
476
|
}
|
|
302
477
|
}
|
|
303
|
-
function trackSqliteConnection(db, filename, options) {
|
|
478
|
+
function trackSqliteConnection(db, filename, options, turnDeadlines = false) {
|
|
304
479
|
const originalClose = db.close.bind(db);
|
|
305
480
|
const sequence = nextSqliteConnectionSequence++;
|
|
306
481
|
const metadata = {
|
|
@@ -308,6 +483,8 @@ function trackSqliteConnection(db, filename, options) {
|
|
|
308
483
|
filename: typeof filename === "string" ? filename : Buffer.isBuffer(filename) ? "<buffer>" : ":memory:",
|
|
309
484
|
readonly: Boolean(options) && typeof options === "object" && (options.readonly === true || options.readOnly === true)
|
|
310
485
|
};
|
|
486
|
+
if (turnDeadlines)
|
|
487
|
+
installNativeDeadlineRouting(db);
|
|
311
488
|
installTransactionRouting(db, metadata.readonly);
|
|
312
489
|
Object.defineProperty(db, "close", {
|
|
313
490
|
configurable: true,
|
|
@@ -333,7 +510,7 @@ function trackSqliteConnection(db, filename, options) {
|
|
|
333
510
|
}
|
|
334
511
|
var TrackedDatabase = new Proxy(DatabaseImpl, {
|
|
335
512
|
construct(target, args) {
|
|
336
|
-
const db = Reflect.construct(target, args, target);
|
|
513
|
+
const db = inRootAsyncContext(() => Reflect.construct(target, args, target));
|
|
337
514
|
return trackSqliteConnection(db, args[0], args[1]);
|
|
338
515
|
}
|
|
339
516
|
});
|
|
@@ -360,6 +537,12 @@ function buildNodeSqliteDatabaseClass(DatabaseSync) {
|
|
|
360
537
|
return NodeSqliteDatabase;
|
|
361
538
|
}
|
|
362
539
|
var Database = TrackedDatabase;
|
|
540
|
+
function createSqliteTurnDatabase(filename, options) {
|
|
541
|
+
return trackSqliteConnection(new DatabaseImpl(filename, options), filename, options, true);
|
|
542
|
+
}
|
|
543
|
+
function hasSqliteTurnDeadlineRouting(db) {
|
|
544
|
+
return busyTimeoutStates.has(db);
|
|
545
|
+
}
|
|
363
546
|
function getSqliteDatabasePath(db) {
|
|
364
547
|
for (const connection of trackedSqliteConnections.values()) {
|
|
365
548
|
if (connection.reference.deref() === db) {
|
|
@@ -379,6 +562,11 @@ function pragmaValue(db, name) {
|
|
|
379
562
|
return row[name] ?? Object.values(row)[0];
|
|
380
563
|
}
|
|
381
564
|
function pragmaNumber(db, name) {
|
|
565
|
+
if (name === "busy_timeout") {
|
|
566
|
+
const state = busyTimeoutStates.get(db);
|
|
567
|
+
if (state)
|
|
568
|
+
return state.current;
|
|
569
|
+
}
|
|
382
570
|
try {
|
|
383
571
|
const value = pragmaValue(db, name);
|
|
384
572
|
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
@@ -509,11 +697,14 @@ function prepareCachedStatement(db, sql) {
|
|
|
509
697
|
return ownPreparedStatement(db, db.prepare(sql));
|
|
510
698
|
}
|
|
511
699
|
var privilegeDepth = new WeakMap;
|
|
700
|
+
var nativeWaitScope;
|
|
512
701
|
var transformPassScope = new AsyncLocalStorage;
|
|
513
702
|
var admissionScope = new AsyncLocalStorage;
|
|
514
703
|
var backgroundWriterScope = new AsyncLocalStorage;
|
|
515
704
|
function withSqliteBackgroundWriter(operation) {
|
|
516
|
-
|
|
705
|
+
if (!nativeWaitScope?.getStore())
|
|
706
|
+
return backgroundWriterScope.run(true, operation);
|
|
707
|
+
return nativeWaitScope.run(undefined, () => backgroundWriterScope.run(true, operation));
|
|
517
708
|
}
|
|
518
709
|
function withSqliteTransformPass(operation) {
|
|
519
710
|
const existing = transformPassScope.getStore();
|
|
@@ -544,7 +735,9 @@ function withSqliteTransformPass(operation) {
|
|
|
544
735
|
return typeof reservation === "function" ? run(reservation) : reservation.then(run);
|
|
545
736
|
}
|
|
546
737
|
function withoutSqliteTransformPass(operation) {
|
|
547
|
-
|
|
738
|
+
if (!nativeWaitScope?.getStore())
|
|
739
|
+
return transformPassScope.run(undefined, operation);
|
|
740
|
+
return nativeWaitScope.run(undefined, () => transformPassScope.run(undefined, operation));
|
|
548
741
|
}
|
|
549
742
|
function assertTransformWrite() {
|
|
550
743
|
if (!backgroundWriterScope.getStore())
|
|
@@ -577,29 +770,48 @@ function foregroundWaitLease() {
|
|
|
577
770
|
const lease = transformPassScope.getStore();
|
|
578
771
|
return lease?.active && !admissionScope.getStore() && !backgroundWriterScope.getStore() ? lease : undefined;
|
|
579
772
|
}
|
|
580
|
-
function withAutocommitTimeout(db, operation) {
|
|
773
|
+
function withAutocommitTimeout(db, operation, singleStatement = true) {
|
|
581
774
|
assertTransformWrite();
|
|
582
775
|
const lease = foregroundWaitLease();
|
|
583
776
|
if (isInTransaction(db))
|
|
584
777
|
return operation();
|
|
585
778
|
const scoped = lease || backgroundWriterScope.getStore();
|
|
586
779
|
const previous = scoped ? pragmaNumber(db, "busy_timeout") : null;
|
|
587
|
-
if (scoped)
|
|
588
|
-
db.exec(`PRAGMA busy_timeout=${lease ? Math.floor(Math.min(lease.remainingWaitMs, lease.guard?.remainingMs() ?? Infinity)) : SHORT_BUSY_TIMEOUT_MS}`);
|
|
589
780
|
const started = performance.now();
|
|
590
781
|
let completed = false;
|
|
591
|
-
|
|
782
|
+
const execute = () => {
|
|
592
783
|
const result = operation();
|
|
593
784
|
completed = true;
|
|
594
785
|
return result;
|
|
786
|
+
};
|
|
787
|
+
try {
|
|
788
|
+
if (!scoped)
|
|
789
|
+
return execute();
|
|
790
|
+
if (singleStatement) {
|
|
791
|
+
db.exec("PRAGMA busy_timeout=0");
|
|
792
|
+
try {
|
|
793
|
+
return execute();
|
|
794
|
+
} catch (error) {
|
|
795
|
+
if (!isTransientSqliteError(error) || isInTransaction(db))
|
|
796
|
+
throw error;
|
|
797
|
+
}
|
|
798
|
+
assertTransformWrite();
|
|
799
|
+
}
|
|
800
|
+
const timeout = Math.floor(Math.min(lease?.remainingWaitMs ?? SHORT_BUSY_TIMEOUT_MS, lease?.guard?.remainingMs() ?? Infinity));
|
|
801
|
+
db.exec(`PRAGMA busy_timeout=${timeout}`);
|
|
802
|
+
const waitStarted = performance.now();
|
|
803
|
+
try {
|
|
804
|
+
return execute();
|
|
805
|
+
} finally {
|
|
806
|
+
if (lease)
|
|
807
|
+
lease.remainingWaitMs = Math.max(0, lease.remainingWaitMs - (performance.now() - waitStarted));
|
|
808
|
+
}
|
|
595
809
|
} catch (error) {
|
|
596
810
|
if (lease && isTransientSqliteError(error))
|
|
597
811
|
throw new SqliteAcquisitionBusyError(error, "autocommit");
|
|
598
812
|
throw error;
|
|
599
813
|
} finally {
|
|
600
814
|
const elapsed = performance.now() - started;
|
|
601
|
-
if (lease)
|
|
602
|
-
lease.remainingWaitMs = Math.max(0, lease.remainingWaitMs - elapsed);
|
|
603
815
|
if (previous !== null)
|
|
604
816
|
db.exec(`PRAGMA busy_timeout=${previous}`);
|
|
605
817
|
if (elapsed >= SLOW_WRITER_LOG_MS)
|
|
@@ -721,7 +933,7 @@ async function withAsyncPrivilegedWriter(db, operation, options = {}) {
|
|
|
721
933
|
} catch (error) {
|
|
722
934
|
if (entered || !(error instanceof SqliteAcquisitionBusyError))
|
|
723
935
|
throw error;
|
|
724
|
-
options.beforeRetry?.(error);
|
|
936
|
+
await options.beforeRetry?.(error);
|
|
725
937
|
const elapsed = performance.now() - started;
|
|
726
938
|
if (elapsed >= budgetMs) {
|
|
727
939
|
reportSqliteDiagnostic(`sqlite writer site=privileged_writer lane=foreground acquire_ms=${Math.round(elapsed)} attempts=${attempts} outcome=busy`);
|
|
@@ -856,4 +1068,4 @@ async function withIndexChunk(input, operation) {
|
|
|
856
1068
|
}
|
|
857
1069
|
}
|
|
858
1070
|
|
|
859
|
-
export { registerSlowWriteReporter, registerSqliteDiagnosticSink, detectSqliteRuntime, getTagIdentityWriteGeneration, Database, getSqliteDatabasePath, getSqliteMemoryStats, prepareCachedStatement, withSqliteBackgroundWriter, withSqliteTransformPass, withoutSqliteTransformPass, isTransientSqliteError, SqliteAcquisitionBusyError, beginSqliteWriterAsync, withAsyncPrivilegedWriter, withPrivilegedWriter, indexCoordinationInput, withIndexChunk };
|
|
1071
|
+
export { inRootAsyncContext, registerSlowWriteReporter, registerSqliteDiagnosticSink, detectSqliteRuntime, getTagIdentityWriteGeneration, Database, createSqliteTurnDatabase, hasSqliteTurnDeadlineRouting, getSqliteDatabasePath, getSqliteMemoryStats, prepareCachedStatement, withSqliteBackgroundWriter, withSqliteTransformPass, withoutSqliteTransformPass, isTransientSqliteError, SqliteAcquisitionBusyError, beginSqliteWriterAsync, withAsyncPrivilegedWriter, withPrivilegedWriter, indexCoordinationInput, withIndexChunk };
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
// package.json
|
|
7
7
|
var package_default = {
|
|
8
8
|
name: "@retaw106/mmc-oc",
|
|
9
|
-
version: "2.
|
|
9
|
+
version: "2.5.0",
|
|
10
10
|
type: "module",
|
|
11
11
|
description: "OpenCode plugin for Magic Context — cross-session memory and context management",
|
|
12
12
|
main: "dist/index.js",
|
|
@@ -127,7 +127,7 @@ async function setup(context) {
|
|
|
127
127
|
log("v2 setup() called on a host without session.hook; v1 server lane owns this host, v2 lane inert");
|
|
128
128
|
return async () => {};
|
|
129
129
|
}
|
|
130
|
-
const { registerContext } = await import("./context-
|
|
130
|
+
const { registerContext } = await import("./context-xx09sh1g.js");
|
|
131
131
|
setHarness("opencode2");
|
|
132
132
|
const duties = await registerContext(context);
|
|
133
133
|
log("[magic-context] @retaw106/mmc-oc v2 setup");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-handlers.d.ts","sourceRoot":"","sources":["../../src/plugin/rpc-handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"rpc-handlers.d.ts","sourceRoot":"","sources":["../../src/plugin/rpc-handlers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAqBzE,OAAO,EACH,KAAK,eAAe,IAAI,QAAQ,EAGnC,MAAM,mCAAmC,CAAC;AAe3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iDAAiD,CAAC;AAQhG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAUlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAcvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAGR,wBAAwB,EACxB,eAAe,EACf,YAAY,EACf,MAAM,qBAAqB,CAAC;AAyF7B,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAK9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,iBAAiB,UAAO,GACzB,eAAe,CAsSjB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAC9B,iBAAiB,UAAO,GACzB,YAAY,CA4Qd;AAED,UAAU,yBAAyB;IAC/B,WAAW,CAAC,EAAE;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,KAAK,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;YACpB,cAAc,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;KACN,CAAC;IACF,SAAS,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,KAAK,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,EAAE,MAAM,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,mBAAmB,EAAE,MAAM,CAAC;YAC5B,cAAc,EAAE,MAAM,CAAC;SAC1B,CAAC,CAAC;KACN,CAAC;CACL;AAiBD,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,EAC7C,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,OAAO,CAET;AAED,wBAAgB,qBAAqB,CACjC,cAAc,GAAE,yBAA8B,GAC/C,wBAAwB,CA2E1B;AAuHD;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,wBAAwB,CAAC,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;IAC5E,qFAAqF;IACrF,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,yBAAyB,GAAG,SAAS,CAAC;IACpE;0EACsE;IACtE,WAAW,CAAC,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;CACvC,GACF,IAAI,CA4SN"}
|
|
@@ -6,4 +6,8 @@ export declare function hideSubagentTools(draft: {
|
|
|
6
6
|
sessionID: string;
|
|
7
7
|
tools: Record<string, unknown>;
|
|
8
8
|
}, db: Database): void;
|
|
9
|
+
/** Apply the same request-local filtering when writer admission is unavailable. */
|
|
10
|
+
export declare function removePrimaryOnlyTools(tools: Record<string, unknown>): void;
|
|
11
|
+
/** Missing/unclassified sessions cannot authorize a busy replay. Never writes. */
|
|
12
|
+
export declare function storedSubagentMode(db: Database, sessionId: string): boolean | undefined;
|
|
9
13
|
//# sourceMappingURL=subagent-tool-policy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-tool-policy.d.ts","sourceRoot":"","sources":["../../src/plugin/subagent-tool-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAqB,GAC9D,MAAM,GAAG,SAAS,CASpB;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC5D,EAAE,EAAE,QAAQ,GACb,IAAI,CAGN"}
|
|
1
|
+
{"version":3,"file":"subagent-tool-policy.d.ts","sourceRoot":"","sources":["../../src/plugin/subagent-tool-policy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjD,sFAAsF;AACtF,wBAAgB,mBAAmB,CAC/B,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,eAAe,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAqB,GAC9D,MAAM,GAAG,SAAS,CASpB;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAC5D,EAAE,EAAE,QAAQ,GACb,IAAI,CAGN;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE3E;AAED,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAMvF"}
|
|
@@ -24,9 +24,9 @@ import {
|
|
|
24
24
|
getRawSessionTagKeysThrough2,
|
|
25
25
|
getLegacyProtectedTailStartOrdinal2,
|
|
26
26
|
readSessionChunk2
|
|
27
|
-
} from "./index-
|
|
28
|
-
import"./index-
|
|
29
|
-
import"./index-
|
|
27
|
+
} from "./index-1vxffj5j.js";
|
|
28
|
+
import"./index-bpjjcdy9.js";
|
|
29
|
+
import"./index-pte3cfs9.js";
|
|
30
30
|
import"./index-x37vg474.js";
|
|
31
31
|
import"./index-k59af64t.js";
|
|
32
32
|
export {
|
|
@@ -2,13 +2,13 @@ import {
|
|
|
2
2
|
setRecompStarting2,
|
|
3
3
|
setRecompTerminal2,
|
|
4
4
|
runManagedRecomp2
|
|
5
|
-
} from "./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
5
|
+
} from "./index-mjf0p7yq.js";
|
|
6
|
+
import"./index-0d40b4q8.js";
|
|
7
|
+
import"./index-k25thxq7.js";
|
|
8
|
+
import"./index-1vxffj5j.js";
|
|
9
|
+
import"./index-bpjjcdy9.js";
|
|
10
10
|
import"./index-yjv8dpht.js";
|
|
11
|
-
import"./index-
|
|
11
|
+
import"./index-pte3cfs9.js";
|
|
12
12
|
import"./index-jdxxq8cz.js";
|
|
13
13
|
import"./index-kmbme1v1.js";
|
|
14
14
|
import"./index-5ty9rnbx.js";
|
package/dist/{send-session-notification-cz6ev088.js → send-session-notification-zpqs213d.js}
RENAMED
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
clearIgnoredMessages2,
|
|
5
5
|
observeIgnoredNotificationEvent2,
|
|
6
6
|
sendStatusNotification2
|
|
7
|
-
} from "./index-
|
|
8
|
-
import"./index-
|
|
9
|
-
import"./index-
|
|
7
|
+
} from "./index-k25thxq7.js";
|
|
8
|
+
import"./index-bpjjcdy9.js";
|
|
9
|
+
import"./index-pte3cfs9.js";
|
|
10
10
|
import"./index-kmbme1v1.js";
|
|
11
11
|
import"./index-k59af64t.js";
|
|
12
12
|
export {
|
|
@@ -41,6 +41,8 @@ export interface PromptAttemptInfo {
|
|
|
41
41
|
export interface PromptRetryOptions {
|
|
42
42
|
transport?: PromptTransport;
|
|
43
43
|
timeoutMs?: number;
|
|
44
|
+
/** False for callers whose configured model chain must not accept provider suggestions. Defaults to true. */
|
|
45
|
+
allowModelSuggestions?: boolean;
|
|
44
46
|
/** External abort signal — cancels the in-flight LLM prompt immediately when aborted */
|
|
45
47
|
signal?: AbortSignal;
|
|
46
48
|
/**
|
|
@@ -115,6 +117,27 @@ export interface ModelSuggestionInfo {
|
|
|
115
117
|
suggestion: string;
|
|
116
118
|
}
|
|
117
119
|
export declare function parseModelSuggestion(error: unknown): ModelSuggestionInfo | null;
|
|
120
|
+
/**
|
|
121
|
+
* Returns true if the error indicates a NON-RETRYABLE condition where iterating
|
|
122
|
+
* to a fallback model would be pointless or harmful:
|
|
123
|
+
*
|
|
124
|
+
* - External abort (user cancellation, lease loss, etc.) — caller wants to
|
|
125
|
+
* stop, not retry.
|
|
126
|
+
* - Context overflow — same prompt will overflow on any reasonably-sized
|
|
127
|
+
* model. Caller has its own emergency-recovery path for this.
|
|
128
|
+
* - Timeout — same wall-clock budget on the same prompt is unlikely to
|
|
129
|
+
* succeed on another model. Caller decides whether to retry at a higher
|
|
130
|
+
* level (e.g. historian's MAX_HISTORIAN_RETRIES loop).
|
|
131
|
+
*
|
|
132
|
+
* Everything else (auth errors, ProviderModelNotFoundError without suggestion,
|
|
133
|
+
* rate limits, transient network failures, etc.) is considered retryable on a
|
|
134
|
+
* different model.
|
|
135
|
+
* Exported as the shared fallback-switch classifier (plan 18): the
|
|
136
|
+
* memory-maintenance attempt loop reuses this exact predicate so "which
|
|
137
|
+
* failures may switch models" has ONE definition across historian and
|
|
138
|
+
* maintainer call sites.
|
|
139
|
+
*/
|
|
140
|
+
export declare function isNonRetryable(error: unknown, externalSignal?: AbortSignal): boolean;
|
|
118
141
|
/**
|
|
119
142
|
* Run an OpenCode subagent prompt with model fallback support.
|
|
120
143
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-suggestion-retry.d.ts","sourceRoot":"","sources":["../../src/shared/model-suggestion-retry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAW7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAUrD,KAAK,MAAM,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAOF,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAWF,MAAM,WAAW,iBAAiB;IAC9B,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B,CAAC,OAAO,EAAE,UAAU,CAAE,SAAQ,kBAAkB;IACxF;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChF;;;OAGG;IACH,cAAc,EAAE,CACZ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,iBAAiB,KACzB,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,0BAA0B,CAAC,OAAO,EAAE,UAAU;IAC3D,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,iBAAiB,CAAC;CAC9B;AAED,MAAM,MAAM,kBAAkB,GACxB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,kBAAkB,GAClB,WAAW,GACX,eAAe,GACf,cAAc,GACd,SAAS,CAAC;AAEhB,gFAAgF;AAChF,MAAM,WAAW,mBAAmB;IAChC,YAAY,EAAE,kBAAkB,CAAC;IACjC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAID;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM1D;AAED,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG5D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAIjF;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACtB;AAiBD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,GAAG,IAAI,CA4C/E;
|
|
1
|
+
{"version":3,"file":"model-suggestion-retry.d.ts","sourceRoot":"","sources":["../../src/shared/model-suggestion-retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,11 @@ export declare const LIGHT_TOOL_DESCRIPTIONS: {
|
|
|
21
21
|
* distinct semantic cache identity, including during any future asset fallback.
|
|
22
22
|
*/
|
|
23
23
|
export declare function promptSurfaceHashMaterial(systemContent: string, preset?: PromptSurfacePreset): string;
|
|
24
|
+
/**
|
|
25
|
+
* Hash system text after the caller resolves guidance and freezes host date lines.
|
|
26
|
+
* Keep the legacy MD5 hex encoding so existing cached heads retain their identity.
|
|
27
|
+
*/
|
|
28
|
+
export declare function systemPromptFingerprint(systemContent: string, preset?: PromptSurfacePreset): string;
|
|
24
29
|
export interface PromptSurfaceGuidanceSelection {
|
|
25
30
|
/** The configured built-in preset. */
|
|
26
31
|
preset: PromptSurfacePreset;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-surface-runtime.d.ts","sourceRoot":"","sources":["../../src/shared/prompt-surface-runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-surface-runtime.d.ts","sourceRoot":"","sources":["../../src/shared/prompt-surface-runtime.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACH,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EAE3B,MAAM,kBAAkB,CAAC;AAK1B;;;;GAIG;AACH,eAAO,MAAM,eAAe,+EAMlB,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,+EAAkB,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,uBAAuB;;;;;;CAM8B,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,yBAAyB,CACrC,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,mBAA4B,GACrC,MAAM,CAIR;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,mBAA4B,GACrC,MAAM,CAER;AAID,MAAM,WAAW,8BAA8B;IAC3C,sCAAsC;IACtC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,kCAAkC;IAC/C,MAAM,EAAE,mBAAmB,CAAC;IAC5B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,MAAM,CAAC;CACvE;AAED,MAAM,WAAW,oBAAoB;IACjC,mBAAmB,EAAE,CACjB,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,CAAC,EAAE,MAAM,KAChB,kCAAkC,CAAC;IACxC,eAAe,EAAE,CACb,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAC3B,8BAA8B,CAAC;CACvC;AAED,MAAM,WAAW,iCAAiC;IAC9C,kFAAkF;IAClF,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAWD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACtC,OAAO,EAAE,iCAAiC,GAC3C,oBAAoB,CAmGtB;AAQD,MAAM,WAAW,+BAA+B;IAC5C,OAAO,EAAE,CACL,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,mBAAmB,GAAG,SAAS,EACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAC3B,8BAA8B,CAAC;IACpC,KAAK,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAOD;;;;GAIG;AACH,wBAAgB,qCAAqC,CACjD,OAAO,EAAE,oBAAoB,GAC9B,+BAA+B,CAuBjC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const RECLAIM_DISTANCE_USER_TURNS = 3;
|
|
2
|
+
export declare const RECLAIM_DISTANCE_WINDOW_FRACTION = 0.25;
|
|
3
|
+
export interface ReclaimDistanceEntry {
|
|
4
|
+
/** Local content tokens, excluding Magic Context's history and reduction/note reminders. */
|
|
5
|
+
tokens: number;
|
|
6
|
+
/** One event per authored user-role message, after any folded tool results. */
|
|
7
|
+
userTurn?: boolean;
|
|
8
|
+
/** Durable identifier of the tool invocation whose result ends at this entry. */
|
|
9
|
+
toolOutputTag?: number;
|
|
10
|
+
}
|
|
11
|
+
/** Only authored content starts a user turn; host control notices do not. */
|
|
12
|
+
export declare function isReclaimUserTurn(args: {
|
|
13
|
+
role?: string;
|
|
14
|
+
syntheticHead?: boolean;
|
|
15
|
+
synthetic?: boolean;
|
|
16
|
+
ignored?: boolean;
|
|
17
|
+
parts: readonly {
|
|
18
|
+
kind: string;
|
|
19
|
+
text?: string;
|
|
20
|
+
synthetic?: boolean;
|
|
21
|
+
ignored?: boolean;
|
|
22
|
+
}[];
|
|
23
|
+
}): boolean;
|
|
24
|
+
/** Remove Magic Context's reduction/note reminders, not generic host wake notices. */
|
|
25
|
+
export declare function stripReclaimMcText(text: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* A free cache rebuild is not evidence that the model has moved on. An output
|
|
28
|
+
* is far behind only after three newer user turns or a quarter-window of newer
|
|
29
|
+
* content. Return a prefix of qualifying tags; callers drop against the PREVIOUS
|
|
30
|
+
* durable bookmark before advancing it, so distance must survive two rebuilds.
|
|
31
|
+
*/
|
|
32
|
+
export declare function farBehindToolBookmark(entries: readonly ReclaimDistanceEntry[], usableWindow: number): number;
|
|
33
|
+
//# sourceMappingURL=reclaim-distance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reclaim-distance.d.ts","sourceRoot":"","sources":["../../src/shared/reclaim-distance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,gCAAgC,OAAO,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACjC,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;CAC7F,GAAG,OAAO,CAaV;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACjC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,YAAY,EAAE,MAAM,GACrB,MAAM,CAiCR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-discovery-cleanup.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-discovery-cleanup.ts"],"names":[],"mappings":"AAIA,kFAAkF;AAClF,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD5E"}
|