@cortexkit/opencode-magic-context 0.33.1 → 0.34.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -3
- 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/migrate-experimental.d.ts +2 -1
- package/dist/config/migrate-experimental.d.ts.map +1 -1
- package/dist/config/project-security.d.ts +9 -0
- package/dist/config/project-security.d.ts.map +1 -1
- package/dist/config/schema/magic-context.d.ts +90 -17
- 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 +1 -0
- 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 +1 -0
- package/dist/features/magic-context/dreamer/map-memories.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/refresh-primers.d.ts +1 -0
- package/dist/features/magic-context/dreamer/refresh-primers.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts +2 -0
- package/dist/features/magic-context/dreamer/storage-dream-runs.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-executor.d.ts +4 -1
- package/dist/features/magic-context/dreamer/task-executor.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-gates.d.ts +19 -1
- package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-registry.d.ts +28 -0
- package/dist/features/magic-context/dreamer/task-registry.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts +7 -1
- package/dist/features/magic-context/dreamer/task-scheduler.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/verify.d.ts +1 -0
- 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 +23 -1
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/mural/compress-cues.d.ts +1 -0
- 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 +37 -2
- 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 +2 -2
- 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 +3 -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/execute-status.d.ts +5 -1
- package/dist/hooks/magic-context/execute-status.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 +14 -6
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +10 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/live-session-state.d.ts +3 -0
- package/dist/hooks/magic-context/live-session-state.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 +31 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +29 -2
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/{index-56yjaeb2.js → index-2y0ybv5x.js} +11 -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-x8spt5wy.js} +1682 -893
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1677 -723
- package/dist/plugin/dream-timer.d.ts +4 -2
- package/dist/plugin/dream-timer.d.ts.map +1 -1
- package/dist/plugin/embedding-bootstrap.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts +12 -1
- 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-k72ejkkh.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 +51 -1
- package/dist/shared/rpc-types.d.ts.map +1 -1
- package/dist/shared/rpc-utils.d.ts +19 -0
- package/dist/shared/rpc-utils.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/shared/tui-runtime-specifiers.d.ts +20 -0
- package/dist/shared/tui-runtime-specifiers.d.ts.map +1 -0
- package/dist/{storage-meta-session-td6bwtky.js → storage-meta-session-xt41zbw4.js} +2 -1
- package/dist/{task-config-5nx3qfz8.js → task-config-gbp7r23g.js} +1 -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 +6 -1
- 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 +936 -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.test.ts +41 -0
- package/src/config/migrate-experimental.ts +185 -0
- package/src/config/project-security.test.ts +388 -0
- package/src/config/project-security.ts +611 -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 +359 -0
- package/src/config/schema/magic-context.ts +991 -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 +151 -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 +55 -1
- package/src/shared/rpc-utils.test.ts +157 -0
- package/src/shared/rpc-utils.ts +137 -0
- package/src/shared/storage-permissions.ts +20 -0
- package/src/shared/tui-runtime-specifiers.ts +32 -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 +189 -91
- package/src/tui/tui-compiled-runtime-imports.test.ts +151 -0
- 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 +334 -169
- package/dist/send-session-notification-tghq9gnh.js +0 -11
- /package/dist/{index-v7fmc1s2.js → index-ygcng9t8.js} +0 -0
|
@@ -6,8 +6,27 @@ export interface NotificationParams {
|
|
|
6
6
|
/** TUI toast lifetime in milliseconds (default: 5000). */
|
|
7
7
|
toastDurationMs?: number;
|
|
8
8
|
}
|
|
9
|
-
export type NotificationDeliveryDisposition = "sent" | "skipped" | "failed";
|
|
9
|
+
export type NotificationDeliveryDisposition = "sent" | "queued" | "skipped" | "failed";
|
|
10
|
+
/**
|
|
11
|
+
* Notifications are status lines, not user input. Keep only the newest entries
|
|
12
|
+
* while a real turn is active so a long background run cannot grow memory or
|
|
13
|
+
* manufacture a backlog of user rows at the next idle boundary.
|
|
14
|
+
*/
|
|
15
|
+
export declare const MAX_QUEUED_IGNORED_NOTIFICATIONS = 16;
|
|
16
|
+
/** Test seams for the process-local queue; production uses the read-only OpenCode DB signal. */
|
|
17
|
+
export declare const __ignoredNotificationTest: {
|
|
18
|
+
pendingTexts(sessionId: string): string[];
|
|
19
|
+
reset(): void;
|
|
20
|
+
setMidTurnDetector(detector: (sessionId: string) => boolean): void;
|
|
21
|
+
};
|
|
10
22
|
export declare function sendIgnoredMessage(client: unknown, sessionId: string, text: string, params: NotificationParams, forcePersist?: boolean): Promise<NotificationDeliveryDisposition>;
|
|
23
|
+
/**
|
|
24
|
+
* Flush queued status lines after an event that may have made the session idle.
|
|
25
|
+
* The event hook and tool.execute.after both call this; the same DB-backed gate
|
|
26
|
+
* remains authoritative, so a non-idle event is harmless.
|
|
27
|
+
*/
|
|
28
|
+
export declare function flushIgnoredMessages(sessionId: string): Promise<void>;
|
|
29
|
+
export declare function clearIgnoredMessages(sessionId: string): void;
|
|
11
30
|
/**
|
|
12
31
|
* Send a real user prompt that will be processed by the model (not ignored).
|
|
13
32
|
* Used by /ctx-aug to inject the augmented prompt after sidekick completes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-session-notification.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/send-session-notification.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send-session-notification.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/send-session-notification.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,+BAA+B,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC;AA8DnD,gGAAgG;AAChG,eAAO,MAAM,yBAAyB;4BACV,MAAM,GAAG,MAAM,EAAE;aAGhC,IAAI;iCAKgB,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;CAGrE,CAAC;AA0KF,wBAAsB,kBAAkB,CACpC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,kBAAkB,EAK1B,YAAY,UAAQ,GACrB,OAAO,CAAC,+BAA+B,CAAC,CAa1C;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4B3E;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAG5D;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAChC,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -7,6 +7,9 @@ import type { MessageLike } from "./transform-operations";
|
|
|
7
7
|
interface RunCompartmentPhaseArgs {
|
|
8
8
|
canRunCompartments: boolean;
|
|
9
9
|
fullFeatureMode: boolean;
|
|
10
|
+
/** Compaction-off mode (issue #266): no historian start, no 95% block,
|
|
11
|
+
* no boundary resolution — the phase degrades to a stale-flag cleanup. */
|
|
12
|
+
compactionOff?: boolean;
|
|
10
13
|
/** False when historian.disable=true, blocking historian-backed child agents. */
|
|
11
14
|
historianRunnable?: boolean;
|
|
12
15
|
sessionMeta: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-compartment-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-compartment-phase.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,sCAAsC,CAAC;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAQxD,OAAO,EACH,KAAK,4BAA4B,EAEpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGH,KAAK,6BAA6B,EAErC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,UAAU,uBAAuB;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE;QAAE,qBAAqB,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,YAAY,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kCAAkC,EAAE,MAAM,CAAC;IAC3C,aAAa,EAAE,YAAY,CAAC;IAC5B,mBAAmB,EAAE,MAAM,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,CAAC;IAC/E,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,EAAE,EAAE,eAAe,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,2BAA2B,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,OAAO,6BAA6B,EAAE,kBAAkB,CAAC;IACvF,6EAA6E;IAC7E,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,yFAAyF;IACzF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,0EAA0E;IAC1E,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,+EAA+E;IAC/E,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,6EAA6E;IAC7E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,+FAA+F;IAC/F,2BAA2B,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAE,6BAA6B,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,uBAAuB,GAC9B,UAAU,CAAC,OAAO,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"transform-compartment-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-compartment-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,30 @@ import { type ContextDatabase, type PendingCompactionMarker } from "../../featur
|
|
|
2
2
|
import { type PersistedCompactionMarkerState } from "../../features/magic-context/storage-meta-persisted";
|
|
3
3
|
import type { Tagger } from "../../features/magic-context/tagger";
|
|
4
4
|
import type { SessionMeta, TagEntry } from "../../features/magic-context/types";
|
|
5
|
+
import type { PluginContext } from "../../plugin/types";
|
|
5
6
|
import type { CtxReduceAvailabilityVerdict, ToolAvailabilityVerdict } from "./ctx-reduce-availability";
|
|
6
7
|
import { type M0HardSignals, type PreparedCompartmentInjection } from "./inject-compartments";
|
|
7
8
|
import type { PassOutcome } from "./pass-outcome";
|
|
8
9
|
import { type MessageLike, type TagTarget } from "./transform-operations";
|
|
9
10
|
export declare function resetDegradedCacheCount(sessionId: string): void;
|
|
10
11
|
export type DeferredCompactionMarkerClearOutcome = "cleared" | "cas-lost-newer-pending" | "cas-lost-already-cleared";
|
|
12
|
+
/**
|
|
13
|
+
* Apply the synthetic todowrite pair with cache-safe live permission checks.
|
|
14
|
+
* Permission is refreshed only on a cache-busting pass; defer passes replay
|
|
15
|
+
* the cached verdict and frozen bytes without consulting the SDK.
|
|
16
|
+
*/
|
|
17
|
+
export declare function applyTodoSynthesis(args: {
|
|
18
|
+
db: ContextDatabase;
|
|
19
|
+
sessionId: string;
|
|
20
|
+
messages: MessageLike[];
|
|
21
|
+
fullFeatureMode: boolean;
|
|
22
|
+
compactionOff?: boolean;
|
|
23
|
+
isCacheBustingPass: boolean;
|
|
24
|
+
sessionMeta: SessionMeta;
|
|
25
|
+
todowriteAvailability: ToolAvailabilityVerdict;
|
|
26
|
+
client?: PluginContext["client"];
|
|
27
|
+
activeAgent?: string;
|
|
28
|
+
}): Promise<number>;
|
|
11
29
|
/**
|
|
12
30
|
* Apply the host-resident note and recall overlays after native Rust serving.
|
|
13
31
|
* These anchors are deliberately appended after the module response lands: they
|
|
@@ -59,6 +77,10 @@ interface RunPostTransformPhaseArgs {
|
|
|
59
77
|
* synthetic todo-pair injection below: a session whose tools map filters
|
|
60
78
|
* todowrite out must not get a synthetic pair for a tool it cannot call. */
|
|
61
79
|
todowriteAvailability: ToolAvailabilityVerdict;
|
|
80
|
+
/** OpenCode SDK for live permission checks on cache-busting passes. */
|
|
81
|
+
client?: PluginContext["client"];
|
|
82
|
+
/** Active agent selected by the latest user message or hook input. */
|
|
83
|
+
activeAgent?: string;
|
|
62
84
|
batch: {
|
|
63
85
|
finalize: () => void;
|
|
64
86
|
} | null;
|
|
@@ -68,6 +90,14 @@ interface RunPostTransformPhaseArgs {
|
|
|
68
90
|
};
|
|
69
91
|
schedulerDecision: "execute" | "defer";
|
|
70
92
|
fullFeatureMode: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Compaction-off mode (issue #266), boot-resolved. Every mutating gate in
|
|
95
|
+
* this phase becomes `existingGate && !compactionOff`; the m[0]/m[1]
|
|
96
|
+
* injection gate is re-expressed as identity-present AND (fullFeatureMode
|
|
97
|
+
* || compactionOff) so the mode keeps additive memory/docs delivery (and
|
|
98
|
+
* extends it to subagent sessions, which gain the knowledge surface).
|
|
99
|
+
*/
|
|
100
|
+
compactionOff?: boolean;
|
|
71
101
|
canRunCompartments: boolean;
|
|
72
102
|
awaitedCompartmentRun: boolean;
|
|
73
103
|
phaseJustAwaitedPublication: boolean;
|
|
@@ -148,7 +178,7 @@ interface RunPostTransformPhaseArgs {
|
|
|
148
178
|
historyBudgetTokens?: number;
|
|
149
179
|
temporalAwareness?: boolean;
|
|
150
180
|
hardSignals?: M0HardSignals;
|
|
151
|
-
/**
|
|
181
|
+
/** mural.enabled — drives the on-demand deterministic mural
|
|
152
182
|
* render inside the HARD fold. */
|
|
153
183
|
muralEnabled?: boolean;
|
|
154
184
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-postprocess-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-postprocess-phase.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"transform-postprocess-phase.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform-postprocess-phase.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,18 @@ export declare function __getMessageTokensCacheForTest(sessionId: string): Map<s
|
|
|
16
16
|
conversation: number;
|
|
17
17
|
toolCall: number;
|
|
18
18
|
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Compute whether the provider cache expired due to idle time.
|
|
21
|
+
* Extracted so callers that don't run the full transform pipeline can still
|
|
22
|
+
* evaluate the TTL idle window with the same parseCacheTtl semantics.
|
|
23
|
+
*
|
|
24
|
+
* Returns false when cacheTtl is "never" (Infinity) because any finite
|
|
25
|
+
* elapsed time is < Infinity.
|
|
26
|
+
*
|
|
27
|
+
* @param onInvalid Optional callback invoked when cacheTtl fails to parse;
|
|
28
|
+
* the 5m fallback is applied AFTER the callback returns.
|
|
29
|
+
*/
|
|
30
|
+
export declare function computeHardCacheExpired(cacheTtl: string, lastResponseTime: number, now: number, onInvalid?: (error: unknown) => void): boolean;
|
|
19
31
|
type TsAuthorityRecoveryOutcome = "completed" | "retryable";
|
|
20
32
|
/**
|
|
21
33
|
* Restore a project to TypeScript ownership after its transform_mode setting no
|
|
@@ -80,6 +92,8 @@ export interface TransformDeps {
|
|
|
80
92
|
commitSeenLastPass?: Map<string, boolean>;
|
|
81
93
|
client?: PluginContext["client"];
|
|
82
94
|
directory?: string;
|
|
95
|
+
/** Whether user-level configuration lets this session use the canonical home directory as its project. */
|
|
96
|
+
allowHomeProject?: boolean;
|
|
83
97
|
memoryConfig?: {
|
|
84
98
|
enabled: boolean;
|
|
85
99
|
injectionBudgetTokens: number;
|
|
@@ -112,6 +126,19 @@ export interface TransformDeps {
|
|
|
112
126
|
fallbackModels?: readonly string[];
|
|
113
127
|
/** False when historian.disable=true, blocking historian-backed child agents. */
|
|
114
128
|
historianRunnable?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Compaction-off mode (issue #266), boot-resolved and process-stable.
|
|
131
|
+
* When true the transform runs additive-only: m[0]/m[1] memory/docs
|
|
132
|
+
* injection, measurement and identity recording stay; every mutating
|
|
133
|
+
* compaction gate (historian, drops, strips, nudges, emergency, markers,
|
|
134
|
+
* tag writes) is off. Precedence: every mutating gate becomes
|
|
135
|
+
* `existingGate && !compactionOff` — the mode wins over both the primary
|
|
136
|
+
* and the subagent path. It does NOT alias fullFeatureMode=false: the
|
|
137
|
+
* m[0]/m[1] injection gate is re-expressed as identity-present AND
|
|
138
|
+
* (fullFeatureMode || compactionOff) so the mode cannot swallow memory
|
|
139
|
+
* delivery.
|
|
140
|
+
*/
|
|
141
|
+
compactionOff?: boolean;
|
|
115
142
|
getNotificationParams?: (sessionId: string) => import("./send-session-notification").NotificationParams;
|
|
116
143
|
getModelKey?: (sessionId: string) => string | undefined;
|
|
117
144
|
getFallbackModelId?: (sessionId: string) => string | undefined;
|
|
@@ -121,10 +148,10 @@ export interface TransformDeps {
|
|
|
121
148
|
* add compact date ranges to compartment headings in <session-history>.
|
|
122
149
|
* Controlled by `experimental.temporal_awareness` config. */
|
|
123
150
|
experimentalTemporalAwareness?: boolean;
|
|
124
|
-
/**
|
|
151
|
+
/** mural.enabled — when true (and the fold's model accepts
|
|
125
152
|
* images), materializeM0 renders the deterministic mural on demand and folds
|
|
126
153
|
* its image into the m[0] baseline. */
|
|
127
|
-
|
|
154
|
+
muralEnabled?: boolean;
|
|
128
155
|
/** When true, run a second editor pass after historian to clean U: lines.
|
|
129
156
|
* Enables the historian-editor agent. Controlled by `historian.two_pass` config. */
|
|
130
157
|
historianTwoPass?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAGxE,OAAO,EACH,KAAK,eAAe,EAYvB,MAAM,sCAAsC,CAAC;AAgB9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAMlE,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,16 @@ var CANONICAL_DREAM_TASKS = [
|
|
|
17
17
|
"promote-primers",
|
|
18
18
|
"refresh-primers"
|
|
19
19
|
];
|
|
20
|
+
function formatDreamTaskBacklogs(backlogs, tasks = CANONICAL_DREAM_TASKS) {
|
|
21
|
+
return tasks.filter((task) => backlogs[task] !== undefined).map((task) => {
|
|
22
|
+
const backlog = backlogs[task];
|
|
23
|
+
return `- ${task}: ${backlog?.pending ?? 0} pending / ${backlog?.total ?? 0} total`;
|
|
24
|
+
}).join(`
|
|
25
|
+
`);
|
|
26
|
+
}
|
|
27
|
+
function processedDreamTaskItems(startPending, endPending) {
|
|
28
|
+
return Math.max(0, startPending - endPending);
|
|
29
|
+
}
|
|
20
30
|
var MEMORY_DOMAIN_TASKS = [
|
|
21
31
|
"map-memories",
|
|
22
32
|
"verify",
|
|
@@ -103,4 +113,4 @@ function summarizeDreamSchedule(dreamer) {
|
|
|
103
113
|
return enabled.map((t) => `${t} ${dreamer?.tasks[t]?.schedule}`).join(", ");
|
|
104
114
|
}
|
|
105
115
|
|
|
106
|
-
export { CANONICAL_DREAM_TASKS, leaseKindFor, leaseKeyFor, isCanonicalDreamTask, compareTaskOrder, buildDreamTaskRuntimeConfigs, userMemoryCollectionEnabled, userMemoryPromotionThreshold, dreamTaskScheduled, enabledDreamTasks, summarizeDreamSchedule };
|
|
116
|
+
export { CANONICAL_DREAM_TASKS, formatDreamTaskBacklogs, processedDreamTaskItems, leaseKindFor, leaseKeyFor, isCanonicalDreamTask, compareTaskOrder, buildDreamTaskRuntimeConfigs, userMemoryCollectionEnabled, userMemoryPromotionThreshold, dreamTaskScheduled, enabledDreamTasks, summarizeDreamSchedule };
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
closeQuietly,
|
|
3
|
+
getRawSessionMessageCountFromDb,
|
|
4
|
+
openCodeDbExists,
|
|
5
|
+
withReadOnlySessionDb
|
|
6
|
+
} from "./index-fcyvznch.js";
|
|
1
7
|
import {
|
|
2
8
|
log
|
|
3
9
|
} from "./index-k1esqfwk.js";
|
|
4
10
|
import {
|
|
5
|
-
getDataDir,
|
|
6
11
|
getHarness
|
|
7
12
|
} from "./index-kvrcg31b.js";
|
|
8
13
|
import {
|
|
@@ -50,268 +55,6 @@ function removeSystemReminders(text) {
|
|
|
50
55
|
return text.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/gi, "").trim();
|
|
51
56
|
}
|
|
52
57
|
|
|
53
|
-
// src/hooks/magic-context/read-session-db.ts
|
|
54
|
-
import { existsSync } from "node:fs";
|
|
55
|
-
import { join } from "node:path";
|
|
56
|
-
|
|
57
|
-
// src/shared/sqlite.ts
|
|
58
|
-
var isBun = typeof process !== "undefined" && typeof process.versions?.bun === "string";
|
|
59
|
-
var bunSpec = "bun:" + "sqlite";
|
|
60
|
-
var nodeSpec = "node:" + "sqlite";
|
|
61
|
-
var sqliteModule = isBun ? await import(bunSpec) : await import(nodeSpec);
|
|
62
|
-
var DatabaseImpl = isBun ? sqliteModule.Database : buildNodeSqliteDatabaseClass(sqliteModule.DatabaseSync);
|
|
63
|
-
function buildNodeSqliteDatabaseClass(DatabaseSync) {
|
|
64
|
-
const SAVEPOINT = "mc_tx_sp";
|
|
65
|
-
|
|
66
|
-
class NodeSqliteDatabase extends DatabaseSync {
|
|
67
|
-
constructor(filename, options) {
|
|
68
|
-
const translated = { ...options };
|
|
69
|
-
if (options && "readonly" in options) {
|
|
70
|
-
translated.readOnly = options.readonly;
|
|
71
|
-
delete translated.readonly;
|
|
72
|
-
}
|
|
73
|
-
super(typeof filename === "string" ? filename : ":memory:", translated);
|
|
74
|
-
}
|
|
75
|
-
prepare(sql) {
|
|
76
|
-
const stmt = super.prepare(sql);
|
|
77
|
-
for (const method of ["run", "get", "all"]) {
|
|
78
|
-
const original = stmt[method].bind(stmt);
|
|
79
|
-
stmt[method] = (...args) => args.length === 1 && Array.isArray(args[0]) ? original(...args[0]) : original(...args);
|
|
80
|
-
}
|
|
81
|
-
return stmt;
|
|
82
|
-
}
|
|
83
|
-
transaction(fn) {
|
|
84
|
-
const self = this;
|
|
85
|
-
const execute = (mode, receiver, args) => {
|
|
86
|
-
const nested = self.isTransaction === true;
|
|
87
|
-
self.exec(nested ? `SAVEPOINT ${SAVEPOINT}` : `BEGIN${mode ? ` ${mode}` : ""}`);
|
|
88
|
-
try {
|
|
89
|
-
const result = fn.apply(receiver, args);
|
|
90
|
-
self.exec(nested ? `RELEASE ${SAVEPOINT}` : "COMMIT");
|
|
91
|
-
return result;
|
|
92
|
-
} catch (error) {
|
|
93
|
-
if (nested) {
|
|
94
|
-
self.exec(`ROLLBACK TO ${SAVEPOINT}`);
|
|
95
|
-
self.exec(`RELEASE ${SAVEPOINT}`);
|
|
96
|
-
} else {
|
|
97
|
-
self.exec("ROLLBACK");
|
|
98
|
-
}
|
|
99
|
-
throw error;
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
const wrapped = function(...args) {
|
|
103
|
-
return execute("", this, args);
|
|
104
|
-
};
|
|
105
|
-
wrapped.default = function(...args) {
|
|
106
|
-
return execute("", this, args);
|
|
107
|
-
};
|
|
108
|
-
wrapped.deferred = function(...args) {
|
|
109
|
-
return execute("DEFERRED", this, args);
|
|
110
|
-
};
|
|
111
|
-
wrapped.immediate = function(...args) {
|
|
112
|
-
return execute("IMMEDIATE", this, args);
|
|
113
|
-
};
|
|
114
|
-
wrapped.exclusive = function(...args) {
|
|
115
|
-
return execute("EXCLUSIVE", this, args);
|
|
116
|
-
};
|
|
117
|
-
return wrapped;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return NodeSqliteDatabase;
|
|
121
|
-
}
|
|
122
|
-
var Database = DatabaseImpl;
|
|
123
|
-
var privilegeDepth = new WeakMap;
|
|
124
|
-
function isInTransaction(db) {
|
|
125
|
-
const candidate = db;
|
|
126
|
-
return candidate.inTransaction === true || candidate.isTransaction === true;
|
|
127
|
-
}
|
|
128
|
-
function withPrivilegedWriter(db, operation) {
|
|
129
|
-
const previousDepth = privilegeDepth.get(db) ?? 0;
|
|
130
|
-
const nested = isInTransaction(db);
|
|
131
|
-
const savepoint = "mc_privilege_scope";
|
|
132
|
-
if (nested) {
|
|
133
|
-
db.exec(`SAVEPOINT ${savepoint}`);
|
|
134
|
-
} else {
|
|
135
|
-
db.exec("BEGIN IMMEDIATE");
|
|
136
|
-
}
|
|
137
|
-
privilegeDepth.set(db, previousDepth + 1);
|
|
138
|
-
try {
|
|
139
|
-
db.prepare("INSERT INTO context_privilege_state(id, enabled) VALUES (1, 1) ON CONFLICT(id) DO UPDATE SET enabled = 1").run();
|
|
140
|
-
const result = operation();
|
|
141
|
-
if (previousDepth === 0) {
|
|
142
|
-
db.prepare("UPDATE context_privilege_state SET enabled = 0 WHERE id = 1").run();
|
|
143
|
-
}
|
|
144
|
-
if (nested) {
|
|
145
|
-
db.exec(`RELEASE ${savepoint}`);
|
|
146
|
-
} else {
|
|
147
|
-
db.exec("COMMIT");
|
|
148
|
-
}
|
|
149
|
-
if (previousDepth > 0)
|
|
150
|
-
privilegeDepth.set(db, previousDepth);
|
|
151
|
-
else
|
|
152
|
-
privilegeDepth.delete(db);
|
|
153
|
-
return result;
|
|
154
|
-
} catch (error) {
|
|
155
|
-
try {
|
|
156
|
-
if (nested) {
|
|
157
|
-
db.exec(`ROLLBACK TO ${savepoint}`);
|
|
158
|
-
db.exec(`RELEASE ${savepoint}`);
|
|
159
|
-
} else {
|
|
160
|
-
db.exec("ROLLBACK");
|
|
161
|
-
}
|
|
162
|
-
} finally {
|
|
163
|
-
if (previousDepth > 0)
|
|
164
|
-
privilegeDepth.set(db, previousDepth);
|
|
165
|
-
else
|
|
166
|
-
privilegeDepth.delete(db);
|
|
167
|
-
}
|
|
168
|
-
throw error;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
// src/shared/sqlite-helpers.ts
|
|
173
|
-
function closeQuietly(db) {
|
|
174
|
-
if (!db)
|
|
175
|
-
return;
|
|
176
|
-
try {
|
|
177
|
-
db.close();
|
|
178
|
-
} catch {}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// src/hooks/magic-context/read-session-db.ts
|
|
182
|
-
function getOpenCodeDbPath() {
|
|
183
|
-
return join(getDataDir(), "opencode", "opencode.db");
|
|
184
|
-
}
|
|
185
|
-
function openCodeDbExists() {
|
|
186
|
-
return existsSync(getOpenCodeDbPath());
|
|
187
|
-
}
|
|
188
|
-
var cachedReadOnlyDb = null;
|
|
189
|
-
function closeCachedReadOnlyDb() {
|
|
190
|
-
if (!cachedReadOnlyDb) {
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
try {
|
|
194
|
-
closeQuietly(cachedReadOnlyDb.db);
|
|
195
|
-
} catch (error) {
|
|
196
|
-
log("[magic-context] failed to close cached OpenCode read-only DB:", error);
|
|
197
|
-
} finally {
|
|
198
|
-
cachedReadOnlyDb = null;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
function getReadOnlySessionDb() {
|
|
202
|
-
const dbPath = getOpenCodeDbPath();
|
|
203
|
-
if (cachedReadOnlyDb?.path === dbPath) {
|
|
204
|
-
return cachedReadOnlyDb.db;
|
|
205
|
-
}
|
|
206
|
-
closeCachedReadOnlyDb();
|
|
207
|
-
const db = new Database(dbPath, { readonly: true });
|
|
208
|
-
cachedReadOnlyDb = { path: dbPath, db };
|
|
209
|
-
return db;
|
|
210
|
-
}
|
|
211
|
-
function withReadOnlySessionDb(fn) {
|
|
212
|
-
return fn(getReadOnlySessionDb());
|
|
213
|
-
}
|
|
214
|
-
function getRawSessionMessageCountFromDb(db, sessionId) {
|
|
215
|
-
const row = db.prepare(`SELECT COUNT(*) as count FROM message WHERE session_id = ?
|
|
216
|
-
AND NOT (COALESCE(json_extract(data, '$.summary'), 0) = 1
|
|
217
|
-
AND COALESCE(json_extract(data, '$.finish'), '') = 'stop')`).get(sessionId);
|
|
218
|
-
return typeof row?.count === "number" ? row.count : 0;
|
|
219
|
-
}
|
|
220
|
-
function isMidTurn(_deps, sessionId) {
|
|
221
|
-
try {
|
|
222
|
-
return withReadOnlySessionDb((db) => isMidTurnFromOpenCodeDb(db, sessionId));
|
|
223
|
-
} catch (error) {
|
|
224
|
-
log("[magic-context] failed to inspect OpenCode mid-turn state:", error);
|
|
225
|
-
return false;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
function isMidTurnFromOpenCodeDb(db, sessionId) {
|
|
229
|
-
const latestAssistant = db.prepare(`SELECT id,
|
|
230
|
-
json_extract(data, '$.finish') as finish,
|
|
231
|
-
time_created as timeCreated
|
|
232
|
-
FROM message
|
|
233
|
-
WHERE session_id = ?
|
|
234
|
-
AND json_extract(data, '$.role') = 'assistant'
|
|
235
|
-
ORDER BY time_created DESC
|
|
236
|
-
LIMIT 1`).get(sessionId);
|
|
237
|
-
if (typeof latestAssistant?.id !== "string")
|
|
238
|
-
return false;
|
|
239
|
-
if (hasNewerRealUserMessage(db, sessionId, latestAssistant.timeCreated))
|
|
240
|
-
return false;
|
|
241
|
-
if (latestAssistant.finish === "tool-calls")
|
|
242
|
-
return true;
|
|
243
|
-
const partRows = db.prepare("SELECT data FROM part WHERE session_id = ? AND message_id = ?").all(sessionId, latestAssistant.id);
|
|
244
|
-
return partRows.some((row) => {
|
|
245
|
-
if (typeof row.data !== "string" || row.data.length === 0)
|
|
246
|
-
return false;
|
|
247
|
-
try {
|
|
248
|
-
const part = JSON.parse(row.data);
|
|
249
|
-
return part.type === "tool" && part.providerExecuted !== true;
|
|
250
|
-
} catch {
|
|
251
|
-
return false;
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
}
|
|
255
|
-
function hasNewerRealUserMessage(db, sessionId, latestAssistantTimeCreated) {
|
|
256
|
-
if (typeof latestAssistantTimeCreated !== "number")
|
|
257
|
-
return false;
|
|
258
|
-
const row = db.prepare(`SELECT 1 as one
|
|
259
|
-
FROM message
|
|
260
|
-
WHERE session_id = ?
|
|
261
|
-
AND time_created > ?
|
|
262
|
-
AND json_extract(data, '$.role') = 'user'
|
|
263
|
-
AND COALESCE(json_extract(data, '$.synthetic'), 0) NOT IN (1, 'true')
|
|
264
|
-
LIMIT 1`).get(sessionId, latestAssistantTimeCreated);
|
|
265
|
-
return row?.one === 1;
|
|
266
|
-
}
|
|
267
|
-
function getMessageTimesFromOpenCodeDb(sessionId, messageIds) {
|
|
268
|
-
const result = new Map;
|
|
269
|
-
if (messageIds.length === 0)
|
|
270
|
-
return result;
|
|
271
|
-
try {
|
|
272
|
-
withReadOnlySessionDb((db) => {
|
|
273
|
-
const placeholders = messageIds.map(() => "?").join(",");
|
|
274
|
-
const rows = db.prepare(`SELECT id, time_created FROM message WHERE session_id = ? AND id IN (${placeholders})`).all(sessionId, ...messageIds);
|
|
275
|
-
for (const row of rows) {
|
|
276
|
-
if (typeof row.id === "string" && typeof row.time_created === "number") {
|
|
277
|
-
result.set(row.id, row.time_created);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
} catch (error) {
|
|
282
|
-
log("[magic-context] failed to resolve message times from OpenCode DB:", error);
|
|
283
|
-
}
|
|
284
|
-
return result;
|
|
285
|
-
}
|
|
286
|
-
function findLastAssistantModelFromOpenCodeDb(sessionId) {
|
|
287
|
-
try {
|
|
288
|
-
return withReadOnlySessionDb((db) => {
|
|
289
|
-
const row = db.prepare(`SELECT json_extract(data, '$.providerID') as providerID,
|
|
290
|
-
json_extract(data, '$.modelID') as modelID,
|
|
291
|
-
json_extract(data, '$.agent') as agent
|
|
292
|
-
FROM message
|
|
293
|
-
WHERE session_id = ?
|
|
294
|
-
AND json_extract(data, '$.role') = 'assistant'
|
|
295
|
-
AND json_extract(data, '$.providerID') IS NOT NULL
|
|
296
|
-
AND json_extract(data, '$.modelID') IS NOT NULL
|
|
297
|
-
ORDER BY time_created DESC
|
|
298
|
-
LIMIT 1`).get(sessionId);
|
|
299
|
-
if (!row || typeof row.providerID !== "string" || typeof row.modelID !== "string") {
|
|
300
|
-
return null;
|
|
301
|
-
}
|
|
302
|
-
const agent = typeof row.agent === "string" && row.agent.length > 0 ? row.agent : undefined;
|
|
303
|
-
return {
|
|
304
|
-
providerID: row.providerID,
|
|
305
|
-
modelID: row.modelID,
|
|
306
|
-
...agent ? { agent } : {}
|
|
307
|
-
};
|
|
308
|
-
});
|
|
309
|
-
} catch (error) {
|
|
310
|
-
log("[magic-context] failed to recover live model from OpenCode DB:", error);
|
|
311
|
-
return null;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
58
|
// src/shared/commit-detection.ts
|
|
316
59
|
var HASH_HEX = "[0-9a-f]{7,12}";
|
|
317
60
|
var COMMIT_HASH_TEST_PATTERN = new RegExp(`\\b${HASH_HEX}\\b`, "i");
|
|
@@ -135038,4 +134781,4 @@ function clearSession(db, sessionId) {
|
|
|
135038
134781
|
})();
|
|
135039
134782
|
}
|
|
135040
134783
|
|
|
135041
|
-
export {
|
|
134784
|
+
export { textMentionsRecentCommit, hasMeaningfulUserText, extractTexts, extractToolCallSummaries, estimateTokens, normalizeText, clearCompressionDepth, clearCompressionDepthRange, ensureSessionMetaRow, persistCachedM0, clearCachedM0M1, isRawCompactionSummaryInfo, extractInMemoryMessageViews, buildInMemoryTailRawMessages, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isThinkingPart, isTextPart, isToolPartWithOutput, isFilePart, buildFileSourceContent, isRecord, isEditTool, partHasCompletedResult, extractToolCallObservation, ToolMutationBatch, createToolDropTarget, setRawMessageProvider, cleanUserText, withRawSessionMessageCache, readRawSessionMessages, primeTailRawMessageCache, getCachedAbsoluteMessageCount, primeInMemoryTailRawMessageCache, readRawSessionMessageOrdinalPage, getRawSessionStoredMessageCount, readRawSessionMessagePartsById, readRawSessionMessageOrdinalById, readRawSessionMessageById, getRawSessionMessageCount, getRawSessionTagKeysThrough, getLegacyProtectedTailStartOrdinal, readSessionChunk, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, deleteIndexedMessage, clearIndexedMessages, indexSingleMessage, indexMessagesAfterOrdinal, sweepOrphanedOpenCodeMessageIndexes, getOrCreateSessionMeta, updateSessionMeta, advanceToolReclaimWatermark, markSessionCleanupPending, retryPendingSessionCleanups, clearSession };
|