@cortexkit/opencode-magic-context 0.33.1 → 0.34.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/config/agent-disable.d.ts +22 -0
- package/dist/config/agent-disable.d.ts.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/project-security.d.ts +7 -0
- package/dist/config/project-security.d.ts.map +1 -1
- package/dist/config/schema/magic-context.d.ts +82 -2
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/config/transform-mode.d.ts +2 -0
- package/dist/config/transform-mode.d.ts.map +1 -1
- package/dist/{conflict-warning-hook-n48c783v.js → conflict-warning-hook-fvpfvt0w.js} +1 -1
- package/dist/{derive-budgets-e9j09sjr.js → derive-budgets-9crp0cvd.js} +1 -1
- package/dist/features/builtin-commands/commands.d.ts +1 -1
- package/dist/features/builtin-commands/commands.d.ts.map +1 -1
- package/dist/features/magic-context/compaction-marker.d.ts +57 -0
- package/dist/features/magic-context/compaction-marker.d.ts.map +1 -1
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/classify.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/evaluate-smart-notes.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/verify.d.ts.map +1 -1
- package/dist/features/magic-context/fail-closed-block.d.ts +10 -0
- package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/storage-git-commit-embeddings.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/storage-git-commits.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-identity.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-local.d.ts +7 -1
- package/dist/features/magic-context/memory/embedding-local.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
- package/dist/features/magic-context/memory/memory-migration.d.ts.map +1 -1
- package/dist/features/magic-context/memory/project-identity.d.ts +2 -6
- package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
- package/dist/features/magic-context/memory/storage-memory-embeddings.d.ts.map +1 -1
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/mural/compress-cues.d.ts.map +1 -1
- package/dist/features/magic-context/mural/render-mural.d.ts.map +1 -1
- package/dist/features/magic-context/overflow-detection.d.ts +8 -1
- package/dist/features/magic-context/overflow-detection.d.ts.map +1 -1
- package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
- package/dist/features/magic-context/scheduler.d.ts.map +1 -1
- package/dist/features/magic-context/schema-fence-probe.d.ts +28 -0
- package/dist/features/magic-context/schema-fence-probe.d.ts.map +1 -0
- package/dist/features/magic-context/sidekick/agent.d.ts.map +1 -1
- package/dist/features/magic-context/smart-notes/compiler.d.ts.map +1 -1
- package/dist/features/magic-context/storage-db.d.ts +35 -1
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-persisted.d.ts +38 -4
- package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta.d.ts +1 -1
- package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
- package/dist/features/magic-context/storage.d.ts +1 -1
- package/dist/features/magic-context/storage.d.ts.map +1 -1
- package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
- package/dist/hooks/magic-context/boundary-execution.d.ts +1 -1
- package/dist/hooks/magic-context/boundary-execution.d.ts.map +1 -1
- package/dist/hooks/magic-context/cache-busting-signals.d.ts +1 -0
- package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -1
- package/dist/hooks/magic-context/child-session-spawn.d.ts +26 -0
- package/dist/hooks/magic-context/child-session-spawn.d.ts.map +1 -0
- package/dist/hooks/magic-context/command-handler.d.ts +2 -0
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/compaction-off-transition.d.ts +96 -0
- package/dist/hooks/magic-context/compaction-off-transition.d.ts.map +1 -0
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts +2 -0
- package/dist/hooks/magic-context/compartment-runner-historian.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-incremental.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-mapping.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-partial-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-trigger.d.ts +12 -5
- package/dist/hooks/magic-context/compartment-trigger.d.ts.map +1 -1
- package/dist/hooks/magic-context/ctx-reduce-availability.d.ts +47 -1
- package/dist/hooks/magic-context/ctx-reduce-availability.d.ts.map +1 -1
- package/dist/hooks/magic-context/emergency-drop.d.ts +2 -2
- package/dist/hooks/magic-context/event-handler.d.ts +7 -0
- package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/event-resolvers.d.ts +13 -21
- package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
- 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/heuristic-cleanup.d.ts +1 -1
- package/dist/hooks/magic-context/hook-handlers.d.ts +1 -0
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +11 -1
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +9 -0
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/protected-tail-boundary.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-true-raw-tokens.d.ts.map +1 -1
- package/dist/hooks/magic-context/rust-mode-transform.d.ts +3 -0
- package/dist/hooks/magic-context/rust-mode-transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/send-session-notification.d.ts +20 -1
- package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +3 -0
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +30 -0
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +27 -0
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/{index-ey1bc14z.js → index-b563sga5.js} +7 -264
- package/dist/{index-y1c9tcm3.js → index-cn960ffd.js} +101 -20
- package/dist/{index-xyaekybw.js → index-dtas91s5.js} +6 -4
- package/dist/index-fcyvznch.js +279 -0
- package/dist/{index-63dq2g4d.js → index-ry8rh8cv.js} +138 -24
- package/dist/{index-c2gahrks.js → index-s0mdn690.js} +1599 -892
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1292 -623
- package/dist/plugin/embedding-bootstrap.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts +11 -0
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/messages-transform.d.ts +10 -0
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/plugin/rpc-handlers.d.ts +3 -7
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/plugin/tool-registry.d.ts +8 -0
- package/dist/plugin/tool-registry.d.ts.map +1 -1
- package/dist/{recomp-orchestrator-2yb2hfh2.js → recomp-orchestrator-8e82vmvb.js} +6 -4
- package/dist/send-session-notification-6njqewzk.js +20 -0
- package/dist/shared/conflict-detector.d.ts +38 -1
- package/dist/shared/conflict-detector.d.ts.map +1 -1
- package/dist/shared/conflict-fixer.d.ts +18 -1
- package/dist/shared/conflict-fixer.d.ts.map +1 -1
- package/dist/shared/context-limit-provenance.d.ts +3 -0
- package/dist/shared/context-limit-provenance.d.ts.map +1 -0
- package/dist/shared/escalation-bands.d.ts +9 -0
- package/dist/shared/escalation-bands.d.ts.map +1 -0
- package/dist/shared/format-threshold.d.ts +1 -1
- package/dist/shared/models-dev-cache.d.ts +29 -3
- package/dist/shared/models-dev-cache.d.ts.map +1 -1
- package/dist/shared/rpc-server.d.ts.map +1 -1
- package/dist/shared/rpc-types.d.ts +46 -1
- package/dist/shared/rpc-types.d.ts.map +1 -1
- package/dist/shared/storage-permissions.d.ts +5 -0
- package/dist/shared/storage-permissions.d.ts.map +1 -0
- package/dist/{storage-meta-session-td6bwtky.js → storage-meta-session-xt41zbw4.js} +2 -1
- package/dist/tui/compaction-off.d.ts +13 -0
- package/dist/tui/compaction-off.d.ts.map +1 -0
- package/dist/tui/data/context-db.d.ts.map +1 -1
- package/dist/tui-compiled/compaction-off.d.ts +13 -0
- package/dist/tui-compiled/compaction-off.d.ts.map +1 -0
- package/dist/tui-compiled/data/context-db.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/agents/dreamer.ts +68 -0
- package/src/agents/hidden-agent-registrations.ts +331 -0
- package/src/agents/historian.ts +3 -0
- package/src/agents/language-directive.test.ts +138 -0
- package/src/agents/language-directive.ts +121 -0
- package/src/agents/magic-context-prompt.language.test.ts +35 -0
- package/src/agents/magic-context-prompt.test.ts +292 -0
- package/src/agents/magic-context-prompt.ts +182 -0
- package/src/agents/permissions.test.ts +252 -0
- package/src/agents/permissions.ts +186 -0
- package/src/agents/sidekick.ts +1 -0
- package/src/agents/smart-note-compiler.ts +1 -0
- package/src/config/agent-disable.ts +106 -0
- package/src/config/compaction-accessor-guard.test.ts +82 -0
- package/src/config/compaction-backcompat.test.ts +52 -0
- package/src/config/index.test.ts +904 -0
- package/src/config/index.ts +601 -0
- package/src/config/migrate-config-location.test.ts +332 -0
- package/src/config/migrate-config-location.ts +635 -0
- package/src/config/migrate-dreamer-v2.test.ts +287 -0
- package/src/config/migrate-dreamer-v2.ts +336 -0
- package/src/config/migrate-experimental.ts +159 -0
- package/src/config/project-security.test.ts +366 -0
- package/src/config/project-security.ts +588 -0
- package/src/config/prune-config-leaf.test.ts +78 -0
- package/src/config/prune-config-leaf.ts +68 -0
- package/src/config/removed-config-keys.test.ts +116 -0
- package/src/config/schema/agent-overrides.ts +45 -0
- package/src/config/schema/magic-context.test.ts +358 -0
- package/src/config/schema/magic-context.ts +1002 -0
- package/src/config/transform-mode.test.ts +62 -0
- package/src/config/transform-mode.ts +34 -0
- package/src/config/variable.test.ts +323 -0
- package/src/config/variable.ts +192 -0
- package/src/features/magic-context/defaults.ts +1 -0
- package/src/features/magic-context/dreamer/cron.ts +243 -0
- package/src/features/magic-context/dreamer/task-registry.ts +104 -0
- package/src/shared/conflict-detector.test.ts +121 -0
- package/src/shared/conflict-detector.ts +50 -3
- package/src/shared/conflict-fixer.test.ts +309 -0
- package/src/shared/conflict-fixer.ts +82 -5
- package/src/shared/context-limit-provenance.ts +6 -0
- package/src/shared/escalation-bands.test.ts +23 -0
- package/src/shared/escalation-bands.ts +18 -0
- package/src/shared/format-threshold.ts +1 -1
- package/src/shared/models-dev-cache.test.ts +171 -0
- package/src/shared/models-dev-cache.ts +195 -38
- package/src/shared/rpc-server.ts +27 -18
- package/src/shared/rpc-types.ts +46 -1
- package/src/shared/storage-permissions.ts +20 -0
- package/src/tui/compaction-off.test.ts +56 -0
- package/src/tui/compaction-off.ts +29 -0
- package/src/tui/data/context-db.ts +6 -0
- package/src/tui/index.tsx +113 -65
- package/src/tui/slots/sidebar-content.tsx +139 -83
- package/src/tui-compiled/compaction-off.ts +29 -0
- package/src/tui-compiled/data/context-db.ts +6 -0
- package/src/tui-compiled/index.tsx +558 -455
- package/src/tui-compiled/slots/sidebar-content.tsx +237 -161
- package/dist/send-session-notification-tghq9gnh.js +0 -11
- /package/dist/{index-v7fmc1s2.js → index-ygcng9t8.js} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ChildSpawnFenceFailure } from "../../features/magic-context/schema-fence-probe";
|
|
2
|
+
import type { Database } from "../../shared/sqlite";
|
|
3
|
+
import { type NotificationParams } from "./send-session-notification";
|
|
4
|
+
export declare const STALE_PLUGIN_RESTART_NOTICE = "Magic Context: plugin build is older than its database \u2014 restart OpenCode";
|
|
5
|
+
interface ChildSessionClient {
|
|
6
|
+
session: {
|
|
7
|
+
create(input: never): unknown | Promise<unknown>;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
interface ChildSessionSpawnArgs {
|
|
11
|
+
client: ChildSessionClient;
|
|
12
|
+
db: Database | null;
|
|
13
|
+
parentSessionId?: string;
|
|
14
|
+
title: string;
|
|
15
|
+
directory?: string;
|
|
16
|
+
notificationParams?: NotificationParams;
|
|
17
|
+
/** Test seam for the one-shot, N-consecutive failure surface. */
|
|
18
|
+
onFenceLatched?: (failure: ChildSpawnFenceFailure) => void | Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Shared OpenCode child-session choke point. Every historian/recomp, dreamer,
|
|
22
|
+
* and sidekick child must pass this probe before asking OpenCode to create it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createChildSessionWithFence(args: ChildSessionSpawnArgs): Promise<unknown | null>;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=child-session-spawn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"child-session-spawn.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/child-session-spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,sBAAsB,EAE9B,MAAM,iDAAiD,CAAC;AAIzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,6BAA6B,CAAC;AAE1F,eAAO,MAAM,2BAA2B,mFACuC,CAAC;AAEhF,UAAU,kBAAkB;IACxB,OAAO,EAAE;QAAE,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CACjE;AAED,UAAU,qBAAqB;IAC3B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,iEAAiE;IACjE,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAwCD;;;GAGG;AACH,wBAAsB,2BAA2B,CAC7C,IAAI,EAAE,qBAAqB,GAC5B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAuBzB"}
|
|
@@ -48,6 +48,8 @@ export type ManualDreamSummary = ManualRunResult;
|
|
|
48
48
|
export declare function createMagicContextCommandHandler(deps: {
|
|
49
49
|
db: Database;
|
|
50
50
|
protectedTags: number;
|
|
51
|
+
/** Boot-resolved mode; command paths must not re-read configuration. */
|
|
52
|
+
compactionOff?: boolean;
|
|
51
53
|
executeThresholdPercentage?: number | {
|
|
52
54
|
default: number;
|
|
53
55
|
[modelKey: string]: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/command-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/command-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compaction-off mode transitions (issue #266, slice S3).
|
|
3
|
+
*
|
|
4
|
+
* The mode is boot-resolved and process-stable, so a transition is only ever
|
|
5
|
+
* observed on a session's first transform pass after a restart that changed
|
|
6
|
+
* the resolved value. Each session reconciles its durable per-session mode
|
|
7
|
+
* record (`session_meta.compaction_mode_record`: NULL = no record, settled
|
|
8
|
+
* "on"/"off", or durable pending-delivery/cleanup variants) against the
|
|
9
|
+
* resolved mode:
|
|
10
|
+
*
|
|
11
|
+
* - NULL resolves to "on" (every pre-feature session ran with compaction
|
|
12
|
+
* enabled), so `no record + configured-off` IS the off-transition — the
|
|
13
|
+
* upgrade path that guarantees marker cleanup reaches legacy sessions.
|
|
14
|
+
* - `no record + on` → write "on", no transition work.
|
|
15
|
+
* - `no record | on → off` → exactly ONE off-transition per session:
|
|
16
|
+
* delete MC-owned compaction-marker lineages (canonical + supported
|
|
17
|
+
* legacy), clear the marker bookkeeping that references those rows,
|
|
18
|
+
* clear the emergency-recovery latch, clear any persisted Channel-2
|
|
19
|
+
* pending/claimed intent, clear pre-existing pending_ops, invalidate
|
|
20
|
+
* the cached m[0]/m[1] baseline (so the off-mode render never replays
|
|
21
|
+
* an on-mode `<session-history>`), then write "off".
|
|
22
|
+
* - `off → on` → exactly ONE on-transition: invalidate the cached
|
|
23
|
+
* m[0]/m[1] baseline (so the dormant compartments' session-history
|
|
24
|
+
* re-renders before raw-tail trimming resumes), write the historian
|
|
25
|
+
* catch-up signal (compartmentInProgress, conditioned on the historian
|
|
26
|
+
* being runnable) and offer the `/ctx-wrapup` suggestion out of band.
|
|
27
|
+
*
|
|
28
|
+
* Crash safety: every cleanup operation is idempotent. A transition that
|
|
29
|
+
* emits a notice stages a durable `*_notice_pending` record before returning
|
|
30
|
+
* to the caller for delivery; a restart therefore retries that notice rather
|
|
31
|
+
* than inferring it from already-cleared state. Duplicate delivery after a
|
|
32
|
+
* crash remains the accepted at-least-once cost.
|
|
33
|
+
*
|
|
34
|
+
* Notices are delivered OUT OF BAND by the caller (the boot-warning /
|
|
35
|
+
* command-output surface) — never into the message array, never through the
|
|
36
|
+
* nudge machinery. A transition pass's message-array output is
|
|
37
|
+
* indistinguishable from a steady-state pass of the resolved mode.
|
|
38
|
+
*/
|
|
39
|
+
import { type McOwnedMarkerCleanupResult } from "../../features/magic-context/compaction-marker";
|
|
40
|
+
import { type CompactionModeRecord } from "../../features/magic-context/storage-meta-persisted";
|
|
41
|
+
/**
|
|
42
|
+
* Flip-off unfold notice. Delivered out of band on the transition pass that
|
|
43
|
+
* actually cleared something. The one-cycle warning wording is contractual
|
|
44
|
+
* (spec #266): removing MC's markers exposes the history hidden solely by
|
|
45
|
+
* MC, and on a long session that expansion can exceed the model window once
|
|
46
|
+
* before native compaction reacts. Docs quote this same constant.
|
|
47
|
+
*/
|
|
48
|
+
export declare const COMPACTION_OFF_FLIP_NOTICE: string;
|
|
49
|
+
/**
|
|
50
|
+
* Flip-back suggestion, emitted out of band exactly once per off→on
|
|
51
|
+
* transition and only when the historian is runnable (never advertising an
|
|
52
|
+
* unavailable command). The gap accumulated while off is digested by the
|
|
53
|
+
* normal chunked historian paths; /ctx-wrapup makes it explicit.
|
|
54
|
+
*/
|
|
55
|
+
export declare const COMPACTION_ON_WRAPUP_SUGGESTION: string;
|
|
56
|
+
export interface CompactionModeTransitionResult {
|
|
57
|
+
/**
|
|
58
|
+
* The settled record value the caller commits AFTER emitting `notice`.
|
|
59
|
+
* `*_notice_pending` is staged durably by this reconciler before it returns;
|
|
60
|
+
* null means either the stored mode already matches or a durable cleanup
|
|
61
|
+
* retry remains pending.
|
|
62
|
+
*/
|
|
63
|
+
recordToWrite: CompactionModeRecord | null;
|
|
64
|
+
/** Out-of-band notice text; null when the transition emits nothing. */
|
|
65
|
+
notice: string | null;
|
|
66
|
+
/**
|
|
67
|
+
* True when the cached m[0]/m[1] baseline was invalidated. The caller
|
|
68
|
+
* must drop the pass-local session-meta cached bytes too, so this pass's
|
|
69
|
+
* injection re-materializes instead of replaying the pre-flip baseline.
|
|
70
|
+
*/
|
|
71
|
+
invalidatedM0Baseline: boolean;
|
|
72
|
+
/** True when the historian catch-up signal (compartmentInProgress) was written. */
|
|
73
|
+
historianCatchUpSignaled: boolean;
|
|
74
|
+
/** True when a stale compartmentInProgress flag was cleared (off mode). */
|
|
75
|
+
clearedCompartmentInProgress: boolean;
|
|
76
|
+
/** True when the off-transition cleared at least one durable MC state item. */
|
|
77
|
+
clearedSomething: boolean;
|
|
78
|
+
/** Marker-row cleanup detail (off-transition only; zeros otherwise). */
|
|
79
|
+
markerCleanup: McOwnedMarkerCleanupResult;
|
|
80
|
+
}
|
|
81
|
+
export declare function reconcileCompactionMode(args: {
|
|
82
|
+
db: import("../../shared/sqlite").Database;
|
|
83
|
+
sessionId: string;
|
|
84
|
+
/** Boot-resolved mode for this process. */
|
|
85
|
+
compactionOff: boolean;
|
|
86
|
+
/** False when historian.disable=true; conditions the on-transition signal. */
|
|
87
|
+
historianRunnable: boolean;
|
|
88
|
+
/** Pass-local session meta (drives the stale compartmentInProgress clear). */
|
|
89
|
+
compartmentInProgress: boolean;
|
|
90
|
+
}): CompactionModeTransitionResult;
|
|
91
|
+
/**
|
|
92
|
+
* Commit the mode record AFTER transition work + notice emission. Kept
|
|
93
|
+
* separate so the caller controls the at-least-once notice ordering.
|
|
94
|
+
*/
|
|
95
|
+
export declare function commitCompactionModeRecord(db: import("../../shared/sqlite").Database, sessionId: string, record: CompactionModeRecord): void;
|
|
96
|
+
//# sourceMappingURL=compaction-off-transition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-off-transition.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compaction-off-transition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAEH,KAAK,0BAA0B,EAElC,MAAM,gDAAgD,CAAC;AAMxD,OAAO,EACH,KAAK,oBAAoB,EAY5B,MAAM,qDAAqD,CAAC;AAM7D;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,QAM3B,CAAC;AAEb;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,QAIhC,CAAC;AAEb,MAAM,WAAW,8BAA8B;IAC3C;;;;;OAKG;IACH,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC3C,uEAAuE;IACvE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;;;;OAIG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mFAAmF;IACnF,wBAAwB,EAAE,OAAO,CAAC;IAClC,2EAA2E;IAC3E,4BAA4B,EAAE,OAAO,CAAC;IACtC,+EAA+E;IAC/E,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wEAAwE;IACxE,aAAa,EAAE,0BAA0B,CAAC;CAC7C;AA2CD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE;IAC1C,EAAE,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,aAAa,EAAE,OAAO,CAAC;IACvB,8EAA8E;IAC9E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8EAA8E;IAC9E,qBAAqB,EAAE,OAAO,CAAC;CAClC,GAAG,8BAA8B,CAoLjC;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACtC,EAAE,EAAE,OAAO,qBAAqB,EAAE,QAAQ,EAC1C,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,oBAAoB,GAC7B,IAAI,CAEN"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type { SubagentKind } from "../../features/magic-context/storage-subagent-invocations";
|
|
2
2
|
import type { PluginContext } from "../../plugin/types";
|
|
3
|
+
import type { Database } from "../../shared/sqlite";
|
|
3
4
|
import type { HistorianProgressCallbacks, StoredCompartmentRange, ValidatedHistorianPassResult } from "./compartment-runner-types";
|
|
4
5
|
export declare function runValidatedHistorianPass(args: {
|
|
5
6
|
client: PluginContext["client"];
|
|
7
|
+
db: Database;
|
|
6
8
|
parentSessionId: string;
|
|
7
9
|
sessionDirectory: string;
|
|
8
10
|
prompt: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-historian.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-historian.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-runner-historian.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-historian.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2DAA2D,CAAC;AAK9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAaxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EACR,0BAA0B,EAE1B,sBAAsB,EACtB,4BAA4B,EAC/B,MAAM,4BAA4B,CAAC;AAmEpC,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IAClD,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,EAAE,EAAE,QAAQ,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACrD;2DACmD;QACnD,cAAc,CAAC,EAAE,aAAa,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;IACF,iBAAiB,EAAE,sBAAsB,EAAE,CAAC;IAC5C,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC;;yEAEqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAuFxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-incremental.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-incremental.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,GAC/B,MAAM,wBAAwB,CAAC;AA2ChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmCxE,+DAA+D;AAC/D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"compartment-runner-incremental.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-incremental.ts"],"names":[],"mappings":"AAYA,OAAO,EACH,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,GAC/B,MAAM,wBAAwB,CAAC;AA2ChC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmCxE,+DAA+D;AAC/D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEhE;AAED,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA40BpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-mapping.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-runner-mapping.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-mapping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,gFAAgF;AAChF,KAAK,gBAAgB,GAAG,IAAI,CACxB,iBAAiB,EACjB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,CAC3D,CAAC;AAaF,wBAAgB,4BAA4B,CACxC,YAAY,EAAE,KAAK,CACf;IACI,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACnB,GAAG,gBAAgB,CACvB,EACD,KAAK,EAAE;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD,EACD,cAAc,EAAE,MAAM,GACvB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,oBAAoB,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-partial-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-partial-recomp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,WAAW,EAEd,MAAM,kDAAkD,CAAC;AAuB1D,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAW9F,MAAM,WAAW,kBAAkB;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAChC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,gBAAgB,EAAE,WAAW,EAAE,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,WAAW,EAAE,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2CzC;AAuBD,wBAAsB,4BAA4B,CAC9C,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"compartment-runner-partial-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-partial-recomp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,WAAW,EAEd,MAAM,kDAAkD,CAAC;AAuB1D,OAAO,KAAK,EAAwB,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAW9F,MAAM,WAAW,kBAAkB;IAC/B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAChC,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,gBAAgB,EAAE,WAAW,EAAE,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,YAAY,EAAE,WAAW,EAAE,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CA2CzC;AAuBD,wBAAsB,4BAA4B,CAC9C,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAsZjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-runner-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-recomp.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmD9F,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB;IACC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,GAAG,IAAI,CAgDP;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"compartment-runner-recomp.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-runner-recomp.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAMpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAmD9F,wBAAgB,kCAAkC,CAC9C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACjB;IACC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,GAAG,IAAI,CAgDP;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6f/F"}
|
|
@@ -3,13 +3,11 @@ import type { Database } from "../../shared/sqlite";
|
|
|
3
3
|
import { type ProtectedTailBoundarySnapshot } from "./protected-tail-boundary";
|
|
4
4
|
import { type InMemoryMessageView, type RawMessage } from "./read-session-raw";
|
|
5
5
|
declare const POST_DROP_TARGET_RATIO = 0.75;
|
|
6
|
-
declare const FORCE_COMPARTMENT_PERCENTAGE = 80;
|
|
7
6
|
declare const BLOCK_UNTIL_DONE_PERCENTAGE = 95;
|
|
8
|
-
|
|
9
|
-
export { BLOCK_UNTIL_DONE_PERCENTAGE, FORCE_COMPARTMENT_PERCENTAGE, FORCE_MATERIALIZE_PERCENTAGE, POST_DROP_TARGET_RATIO, };
|
|
7
|
+
export { BLOCK_UNTIL_DONE_PERCENTAGE, POST_DROP_TARGET_RATIO };
|
|
10
8
|
export interface CompartmentTriggerResult {
|
|
11
9
|
shouldFire: boolean;
|
|
12
|
-
reason?: "projected_headroom" | "
|
|
10
|
+
reason?: "projected_headroom" | "force_band" | "commit_clusters" | "tail_size";
|
|
13
11
|
/**
|
|
14
12
|
* The protected-tail boundary snapshot the decision was computed from.
|
|
15
13
|
* Present whenever the tail inspection ran. Callers that start the
|
|
@@ -32,6 +30,15 @@ export interface InMemoryTailSource {
|
|
|
32
30
|
messages: RawMessage[];
|
|
33
31
|
absoluteMessageCount: number;
|
|
34
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Wire capability for projecting reclaimable reasoning bytes. OpenCode derives
|
|
35
|
+
* this from the provider's empty-sentinel support; Pi overrides it because its
|
|
36
|
+
* serializers safely omit cleared thinking for every provider.
|
|
37
|
+
*/
|
|
38
|
+
export interface ReasoningProjectionCapability {
|
|
39
|
+
providerID?: string;
|
|
40
|
+
canClearReasoning?: boolean;
|
|
41
|
+
}
|
|
35
42
|
/**
|
|
36
43
|
* Deferred tail conversion for callers that have already tagged the live wire.
|
|
37
44
|
* The trigger's cheap gate can use the caller-provided tag floor without building
|
|
@@ -64,5 +71,5 @@ export declare function getProactiveCompartmentTriggerPercentage(executeThreshol
|
|
|
64
71
|
export declare function checkCompartmentTrigger(db: Database, sessionId: string, sessionMeta: SessionMeta, usage: ContextUsage, _previousPercentage: number, executeThresholdPercentage: number, triggerBudget: number, clearReasoningAge?: number, commitClusterTrigger?: {
|
|
65
72
|
enabled: boolean;
|
|
66
73
|
min_clusters: number;
|
|
67
|
-
}, preloadedActiveTags?: readonly TagEntry[], contextLimit?: number, inMemoryTail?: InMemoryTailSource | LazyInMemoryTailSource, taggerFloorOverride?: number): CompartmentTriggerResult;
|
|
74
|
+
}, preloadedActiveTags?: readonly TagEntry[], contextLimit?: number, inMemoryTail?: InMemoryTailSource | LazyInMemoryTailSource, taggerFloorOverride?: number, reasoningProjection?: ReasoningProjectionCapability): CompartmentTriggerResult;
|
|
68
75
|
//# sourceMappingURL=compartment-trigger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compartment-trigger.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-trigger.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"compartment-trigger.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/compartment-trigger.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAG9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAIH,KAAK,6BAA6B,EAErC,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EAEH,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAClB,MAAM,oBAAoB,CAAC;AAK5B,QAAA,MAAM,sBAAsB,OAAO,CAAC;AAKpC,QAAA,MAAM,2BAA2B,KAAK,CAAC;AAGvC,OAAO,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,CAAC;AAE/D,MAAM,WAAW,wBAAwB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,oBAAoB,GAAG,YAAY,GAAG,iBAAiB,GAAG,WAAW,CAAC;IAC/E;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,CAAC;CACpD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAyE1E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CACpC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,SAAS,mBAAmB,EAAE,GACzC,kBAAkB,GAAG,SAAS,CAchC;AAED,wBAAgB,wCAAwC,CACpD,0BAA0B,EAAE,MAAM,GACnC,MAAM,CAER;AAiND,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,YAAY,EACnB,mBAAmB,EAAE,MAAM,EAC3B,0BAA0B,EAAE,MAAM,EAClC,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,EACjE,mBAAmB,CAAC,EAAE,SAAS,QAAQ,EAAE,EACzC,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,EAC1D,mBAAmB,CAAC,EAAE,MAAM,EAC5B,mBAAmB,CAAC,EAAE,6BAA6B,GACpD,wBAAwB,CAoV1B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { PluginContext } from "../../plugin/types";
|
|
1
2
|
/**
|
|
2
3
|
* Whether a given tool is actually CALLABLE in a session's tool set.
|
|
3
4
|
*
|
|
@@ -15,6 +16,13 @@
|
|
|
15
16
|
* first-message map is fixed at session spawn, so the verdict is deterministic
|
|
16
17
|
* across passes and restarts.
|
|
17
18
|
*
|
|
19
|
+
* The ctx_reduce verdict intentionally remains frozen even when OpenCode's live
|
|
20
|
+
* permission rules deny the tool. Its value gates guidance and the system-prompt
|
|
21
|
+
* hash; changing it mid-session would invalidate the provider prefix for a
|
|
22
|
+
* permission change that is otherwise not part of the prompt. Todowrite's
|
|
23
|
+
* synthetic pair has a separate live permission check at cache-busting
|
|
24
|
+
* boundaries, so this asymmetry is deliberate and load-bearing.
|
|
25
|
+
*
|
|
18
26
|
* Fail-open: no tools map (normal sessions), no wildcard-deny, or an
|
|
19
27
|
* unreadable OpenCode DB all resolve to "available" — current behavior.
|
|
20
28
|
*/
|
|
@@ -29,11 +37,28 @@ export interface ToolAvailabilityVerdict {
|
|
|
29
37
|
frozen: boolean;
|
|
30
38
|
}
|
|
31
39
|
/**
|
|
32
|
-
*
|
|
40
|
+
* Set whether `ctx_reduce` is registered process-globally. Called once at
|
|
41
|
+
* plugin boot from the tool registry resolution. When false, every
|
|
42
|
+
* `resolveCtxReduceAvailability*` call returns a frozen `callable: false`
|
|
43
|
+
* verdict without consulting the per-session tools map or the OpenCode DB.
|
|
44
|
+
*/
|
|
45
|
+
export declare function setCtxReduceRegisteredGlobally(registered: boolean): void;
|
|
46
|
+
/** Test-only reset so the availability suite's default-true baseline is
|
|
47
|
+
* unaffected by a prior test that flipped the override. Production code
|
|
48
|
+
* never needs to re-enable mid-process (boot-resolved, process-stable). */
|
|
49
|
+
export declare function resetCtxReduceRegisteredGloballyForTest(): void;
|
|
50
|
+
/** Historical alias. ctx_reduce was the first consumer of this resolver; the
|
|
33
51
|
* verdict shape is identical for every tool, so the name is kept so existing
|
|
34
52
|
* ctx_reduce call sites stay untouched.
|
|
35
53
|
*/
|
|
36
54
|
export type CtxReduceAvailabilityVerdict = ToolAvailabilityVerdict;
|
|
55
|
+
type PermissionAction = "ask" | "allow" | "deny";
|
|
56
|
+
/** The small rule shape used by OpenCode's Permission.disabled evaluator. */
|
|
57
|
+
export interface PermissionRule {
|
|
58
|
+
permission: string;
|
|
59
|
+
pattern: string;
|
|
60
|
+
action: PermissionAction;
|
|
61
|
+
}
|
|
37
62
|
/**
|
|
38
63
|
* Resolve from the in-memory transform message array (preferred — free).
|
|
39
64
|
* Caches the verdict on first resolution.
|
|
@@ -61,6 +86,26 @@ export declare function resolveCtxReduceAvailabilityFromMessages(sessionId: stri
|
|
|
61
86
|
}>): CtxReduceAvailabilityVerdict;
|
|
62
87
|
export declare function resolveCtxReduceAvailability(sessionId: string): CtxReduceAvailabilityVerdict;
|
|
63
88
|
export declare function clearCtxReduceAvailability(sessionId: string): void;
|
|
89
|
+
/**
|
|
90
|
+
* Apply OpenCode's Permission.disabled rule: the last matching permission
|
|
91
|
+
* rule wins, and only a deny of the whole permission pattern disables it.
|
|
92
|
+
* Keeping this evaluator pure makes the findLast behavior testable without a
|
|
93
|
+
* live OpenCode server.
|
|
94
|
+
*/
|
|
95
|
+
export declare function permissionDisabled(toolName: string, rules: readonly PermissionRule[]): boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Read OpenCode's merged agent permissions plus the session overlay and apply
|
|
98
|
+
* the same last-rule evaluator OpenCode uses. The SDK declarations in older
|
|
99
|
+
* plugin peer versions do not expose the newer permission fields, so the
|
|
100
|
+
* response is intentionally narrowed at this boundary.
|
|
101
|
+
*/
|
|
102
|
+
export declare function resolveToolPermissionDenied(client: PluginContext["client"], sessionId: string, toolName: string, activeAgent?: string): Promise<boolean>;
|
|
103
|
+
export declare function todowritePermissionDenied(client: PluginContext["client"], sessionId: string, activeAgent?: string): Promise<boolean>;
|
|
104
|
+
/** Cached live verdict used by defer passes; undefined means no bust has read it yet. */
|
|
105
|
+
export declare function cachedToolPermissionDenied(sessionId: string, toolName: string): boolean | undefined;
|
|
106
|
+
export declare function clearToolPermissionDenied(sessionId: string, toolName?: string): void;
|
|
107
|
+
export declare function hasLoggedCtxReducePermissionDeny(sessionId: string): boolean;
|
|
108
|
+
export declare function markCtxReducePermissionDenyLogged(sessionId: string): void;
|
|
64
109
|
export declare function resolveTodowriteAvailabilityFromMessages(sessionId: string, messages: ReadonlyArray<{
|
|
65
110
|
info?: {
|
|
66
111
|
role?: string;
|
|
@@ -69,4 +114,5 @@ export declare function resolveTodowriteAvailabilityFromMessages(sessionId: stri
|
|
|
69
114
|
}>): ToolAvailabilityVerdict;
|
|
70
115
|
export declare function resolveTodowriteAvailability(sessionId: string): ToolAvailabilityVerdict;
|
|
71
116
|
export declare function clearTodowriteAvailability(sessionId: string): void;
|
|
117
|
+
export {};
|
|
72
118
|
//# sourceMappingURL=ctx-reduce-availability.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ctx-reduce-availability.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/ctx-reduce-availability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ctx-reduce-availability.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/ctx-reduce-availability.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ export declare const TIER_RECENCY_RESERVE = 0.2;
|
|
|
5
5
|
/**
|
|
6
6
|
* Don't bust the cache for a trivial reclaim. If the computed reclaim is at or
|
|
7
7
|
* below this, the pass is a no-op (combined with the watermark, this prevents
|
|
8
|
-
*
|
|
8
|
+
* force-band-to-94.9% oscillation).
|
|
9
9
|
*/
|
|
10
10
|
export declare const EMERGENCY_REARM_MIN_TOKENS = 2000;
|
|
11
11
|
export type Tier = 1 | 2 | 3;
|
|
@@ -53,7 +53,7 @@ export declare function estimateEmergencyDropReclaimTokens(tag: EmergencyDropTag
|
|
|
53
53
|
* non-droppable tool tags). Only their token sum matters — it makes
|
|
54
54
|
* `fixedFloor` the true irreducible prefix. Passing a narrower set (e.g.
|
|
55
55
|
* tool-only) folds real conversation/reasoning tail into the "floor",
|
|
56
|
-
* raising the target and systematically under-evicting at
|
|
56
|
+
* raising the target and systematically under-evicting at the derived force band.
|
|
57
57
|
* - `tags`: the evictable candidates — active tool tags whose drop target
|
|
58
58
|
* would actually reclaim bytes (caller pre-filters on `canDrop()` so no
|
|
59
59
|
* phantom tag is counted as reclaimed).
|
|
@@ -11,6 +11,13 @@ interface ContextUsageEntry {
|
|
|
11
11
|
export interface EventHandlerDeps {
|
|
12
12
|
contextUsageMap: Map<string, ContextUsageEntry>;
|
|
13
13
|
compactionHandler: ReturnType<typeof createCompactionHandler>;
|
|
14
|
+
/**
|
|
15
|
+
* Compaction-off mode (issue #266), boot-resolved. Overflow recovery is
|
|
16
|
+
* never armed in this mode (record the provider-reported limit only, so
|
|
17
|
+
* raw-usage math stays accurate) and Channel-2 delivery stays silent;
|
|
18
|
+
* the off-transition clears any persisted intent.
|
|
19
|
+
*/
|
|
20
|
+
compactionOff?: boolean;
|
|
14
21
|
onSessionCacheInvalidated?: (sessionId: string) => void;
|
|
15
22
|
onRustWireInvalidated?: (sessionId: string) => void;
|
|
16
23
|
onSessionDeleted?: (sessionId: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AA6BvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAKlE,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,oCAAoC,CAAC;AAyBpF,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,6BAA6B,CAAC;AAM1F,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,UAAU,iBAAiB;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,gBAAgB;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC9D,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,4BAA4B,CAAC,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxF,wBAAwB,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QACxF,SAAS,EAAE,cAAc,CAAC;QAC1B,sBAAsB,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvE,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IAIf,EAAE,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAC;IAC3C,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC,CAAC;IACjF,mKAAmK;IACnK,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAClE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvC;AA0ID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,IACvC,OAAO;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AA6BvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAKlE,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,oCAAoC,CAAC;AAyBpF,OAAO,EAAE,KAAK,kBAAkB,EAAsB,MAAM,6BAA6B,CAAC;AAM1F,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEtD,UAAU,iBAAiB;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,gBAAgB;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAChD,iBAAiB,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IAC9D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yBAAyB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,MAAM,EAAE;QACJ,cAAc,EAAE,MAAM,CAAC;QACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,4BAA4B,CAAC,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QACxF,wBAAwB,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC;QACxF,SAAS,EAAE,cAAc,CAAC;QAC1B,sBAAsB,CAAC,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;KACvE,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IAIf,EAAE,EAAE,OAAO,qBAAqB,EAAE,QAAQ,CAAC;IAC3C,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,2FAA2F;IAC3F,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,aAAa,CAAC,CAAC;IACjF,mKAAmK;IACnK,8BAA8B,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,kBAAkB,CAAC;IAClE;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvC;AA0ID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,IACvC,OAAO;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAukBzF"}
|
|
@@ -1,25 +1,18 @@
|
|
|
1
1
|
import type { ContextDatabase } from "../../features/magic-context/storage";
|
|
2
|
+
import { escalationBands, MAX_EXECUTE_THRESHOLD } from "../../shared/escalation-bands";
|
|
3
|
+
export { escalationBands, MAX_EXECUTE_THRESHOLD };
|
|
2
4
|
export declare const DEFAULT_CONTEXT_LIMIT = 128000;
|
|
3
|
-
export declare const MAX_EXECUTE_THRESHOLD = 80;
|
|
4
5
|
type CacheTtlConfig = string | Record<string, string>;
|
|
5
6
|
/**
|
|
6
|
-
* Resolve the effective context limit for a
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* configured/cache limit. Providers report the REAL limit in the error
|
|
11
|
-
* message, which is authoritative for the current deployment.
|
|
12
|
-
* 2. OpenCode's models.dev cache (overlaid with user's
|
|
13
|
-
* `provider.*.models.*.limit.context`).
|
|
14
|
-
* 3. Conservative default (128k).
|
|
15
|
-
*
|
|
16
|
-
* The session context (db + sessionID) is optional — callers that operate
|
|
17
|
-
* outside a specific session (e.g. warm-up, status-bar summaries) can omit it
|
|
18
|
-
* and fall back to the global cache/default.
|
|
7
|
+
* Resolve the effective context limit for a provider/model pair. By default
|
|
8
|
+
* this returns the output-reserved safe input budget. `reservation: "none"`
|
|
9
|
+
* preserves the same catalog, detected-limit, and fallback resolution while
|
|
10
|
+
* exposing the unreserved window for native-usage display metrics only.
|
|
19
11
|
*/
|
|
20
12
|
export declare function resolveContextLimit(providerID: string | undefined, modelID: string | undefined, ctx?: {
|
|
21
13
|
db?: ContextDatabase;
|
|
22
14
|
sessionID?: string;
|
|
15
|
+
reservation?: "default" | "none";
|
|
23
16
|
}): number;
|
|
24
17
|
/**
|
|
25
18
|
* Like resolveContextLimit, but returns a limit ONLY when it is TRUSTED for the
|
|
@@ -58,25 +51,25 @@ export interface ExecuteThresholdOptions {
|
|
|
58
51
|
* overrides the percentage-based threshold. */
|
|
59
52
|
tokensConfig?: ExecuteThresholdTokensConfig;
|
|
60
53
|
/** Required when `tokensConfig` is provided — used to convert tokens → percentage
|
|
61
|
-
* and to clamp values above
|
|
54
|
+
* and to clamp values above 90% × context_limit. */
|
|
62
55
|
contextLimit?: number;
|
|
63
56
|
/** Session ID for warn logs when clamping. If absent, warns to global log. */
|
|
64
57
|
sessionId?: string;
|
|
65
58
|
}
|
|
66
59
|
export type ExecuteThresholdMode = "percentage" | "tokens";
|
|
67
60
|
export interface ExecuteThresholdDetail {
|
|
68
|
-
/** Effective execute threshold as a percentage (0–
|
|
61
|
+
/** Effective execute threshold as a percentage (0–90). Downstream math keys off this. */
|
|
69
62
|
percentage: number;
|
|
70
63
|
/** Which source was authoritative: tokens config (when matched + valid context) or percentage. */
|
|
71
64
|
mode: ExecuteThresholdMode;
|
|
72
|
-
/** When mode is "tokens", the absolute token value after clamping (≤
|
|
65
|
+
/** When mode is "tokens", the absolute token value after clamping (≤ 90% × contextLimit). */
|
|
73
66
|
absoluteTokens?: number;
|
|
74
67
|
/** The config key that matched, if any (for display/debugging). `"default"` when default fallback. */
|
|
75
68
|
matchedKey?: string;
|
|
76
69
|
/**
|
|
77
70
|
* True when the user's configured value exceeded the safe cap and was reduced.
|
|
78
|
-
* Tokens mode: configured tokens >
|
|
79
|
-
* configured percentage > MAX_EXECUTE_THRESHOLD (
|
|
71
|
+
* Tokens mode: configured tokens > 90% × contextLimit. Percentage mode:
|
|
72
|
+
* configured percentage > MAX_EXECUTE_THRESHOLD (90). Display surfaces read this
|
|
80
73
|
* to tell the user their value was clamped instead of silently ignoring it (#241).
|
|
81
74
|
* Only present (true) when a clamp actually happened; absent otherwise.
|
|
82
75
|
*/
|
|
@@ -84,7 +77,7 @@ export interface ExecuteThresholdDetail {
|
|
|
84
77
|
/**
|
|
85
78
|
* The raw configured value before clamping — a token count in tokens mode, a
|
|
86
79
|
* percentage in percentage mode. Populated only alongside `clamped` so display
|
|
87
|
-
* surfaces can show the math (e.g. "190,000 >
|
|
80
|
+
* surfaces can show the math (e.g. "190,000 > 90% of 128,000").
|
|
88
81
|
*/
|
|
89
82
|
configuredValue?: number;
|
|
90
83
|
}
|
|
@@ -107,5 +100,4 @@ export declare function resolveSessionId(properties: {
|
|
|
107
100
|
info?: unknown;
|
|
108
101
|
sessionID?: string;
|
|
109
102
|
} | undefined): string | undefined;
|
|
110
|
-
export {};
|
|
111
103
|
//# sourceMappingURL=event-resolvers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-resolvers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"event-resolvers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/event-resolvers.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export interface MessageTokenEstimate {
|
|
|
3
3
|
conversation: number;
|
|
4
4
|
toolCall: number;
|
|
5
5
|
}
|
|
6
|
+
/** Describe the final three post-transform messages without serializing content. */
|
|
7
|
+
export declare function describeFinalWireTail(messages: readonly MessageLike[]): string;
|
|
6
8
|
/** Count the token-bearing fields in the message representation sent to OpenCode. */
|
|
7
9
|
export declare function estimateMessageTokens(message: MessageLike): MessageTokenEstimate;
|
|
8
10
|
export interface FinalWireTokenEstimateInput {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"final-wire-token-estimate.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/final-wire-token-estimate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAQD,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,oBAAoB,CA8DhF;AAED,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,2BAA2B,GACnC,sBAAsB,CAiCxB"}
|
|
1
|
+
{"version":3,"file":"final-wire-token-estimate.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/final-wire-token-estimate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,WAAW,oBAAoB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAwBD,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,CAS9E;AAQD,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,oBAAoB,CA8DhF;AAED,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,oBAAoB,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CACxC,KAAK,EAAE,2BAA2B,GACnC,sBAAsB,CAiCxB"}
|
|
@@ -5,7 +5,7 @@ import type { MessageLike, TagTarget } from "./tag-messages";
|
|
|
5
5
|
export declare function applyHeuristicCleanup(sessionId: string, db: ContextDatabase, targets: Map<number, TagTarget>, messageTagNumbers: Map<MessageLike, number>, config: {
|
|
6
6
|
protectedTags: number;
|
|
7
7
|
/**
|
|
8
|
-
* Tiered target-headroom emergency drop. Provided only on the
|
|
8
|
+
* Tiered target-headroom emergency drop. Provided only on the the derived force band
|
|
9
9
|
* force-materialize (cache-busting) pass; undefined on routine execute
|
|
10
10
|
* passes (Phase 2 removed routine age-based tool drops entirely). When
|
|
11
11
|
* present, the emergency drop runs before dedup/injection-strip.
|
|
@@ -157,6 +157,7 @@ export declare function createCommandExecuteBeforeHook(commandHandler: {
|
|
|
157
157
|
export declare function createToolExecuteAfterHook(args: {
|
|
158
158
|
db: Parameters<typeof getOrCreateSessionMeta>[0];
|
|
159
159
|
channel1StateBySession: Map<string, Channel1State>;
|
|
160
|
+
client?: PluginContext["client"];
|
|
160
161
|
transformMode?: "ts" | "rust";
|
|
161
162
|
todoStateSet?: (input: {
|
|
162
163
|
sessionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook-handlers.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,sBAAsB,EAEzB,MAAM,2CAA2C,CAAC;AAanD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ export interface MagicContextDeps {
|
|
|
19
19
|
liveSessionState?: LiveSessionState;
|
|
20
20
|
config: {
|
|
21
21
|
protected_tags: number;
|
|
22
|
+
/** User-level setting that lets a session started exactly in the canonical home directory use it as the project. */
|
|
23
|
+
allow_home_project?: boolean;
|
|
22
24
|
language?: string;
|
|
23
25
|
smart_drops?: boolean;
|
|
24
26
|
toast_duration_ms?: number;
|
|
@@ -70,6 +72,12 @@ export interface MagicContextDeps {
|
|
|
70
72
|
min_chars: number;
|
|
71
73
|
};
|
|
72
74
|
transform_mode?: ResolvedTransformMode;
|
|
75
|
+
/** Compaction-off mode gate (issue #266). Resolved ONCE here at the
|
|
76
|
+
* session-hook construction boundary via isCompactionEnabled; the
|
|
77
|
+
* resolved boolean is threaded to the transform phases. */
|
|
78
|
+
compaction?: {
|
|
79
|
+
enabled?: boolean;
|
|
80
|
+
};
|
|
73
81
|
experimental?: {
|
|
74
82
|
mural?: {
|
|
75
83
|
enabled: boolean;
|
|
@@ -103,7 +111,9 @@ export declare function createMagicContextHook(deps: MagicContextDeps): ({
|
|
|
103
111
|
}) => Promise<void>;
|
|
104
112
|
"chat.message": (input: {
|
|
105
113
|
sessionID?: string;
|
|
106
|
-
variant
|
|
114
|
+
variant? /** Compaction-off mode gate (issue #266). Resolved ONCE here at the
|
|
115
|
+
* session-hook construction boundary via isCompactionEnabled; the
|
|
116
|
+
* resolved boolean is threaded to the transform phases. */: string;
|
|
107
117
|
agent?: string;
|
|
108
118
|
model?: {
|
|
109
119
|
providerID?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/hook.ts"],"names":[],"mappings":"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"}
|