@wolfx/opencode-magic-context 0.21.8 → 0.22.1-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/magic-context-prompt.d.ts.map +1 -1
- package/dist/agents/permissions.d.ts +29 -14
- package/dist/agents/permissions.d.ts.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/migrate-experimental.d.ts +30 -0
- package/dist/config/migrate-experimental.d.ts.map +1 -0
- package/dist/config/schema/agent-overrides.d.ts.map +1 -1
- package/dist/config/schema/magic-context.d.ts +110 -109
- package/dist/config/schema/magic-context.d.ts.map +1 -1
- package/dist/features/builtin-commands/commands.d.ts.map +1 -1
- package/dist/features/magic-context/compartment-embedding.d.ts +34 -0
- package/dist/features/magic-context/compartment-embedding.d.ts.map +1 -0
- package/dist/features/magic-context/compartment-events.d.ts +50 -0
- package/dist/features/magic-context/compartment-events.d.ts.map +1 -0
- package/dist/features/magic-context/compartment-storage.d.ts +22 -0
- package/dist/features/magic-context/compartment-storage.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/lease.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/queue.d.ts +13 -2
- package/dist/features/magic-context/dreamer/queue.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/runner.d.ts +11 -0
- package/dist/features/magic-context/dreamer/runner.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-prompts.d.ts +1 -1
- package/dist/features/magic-context/dreamer/task-prompts.d.ts.map +1 -1
- package/dist/features/magic-context/git-commits/git-log-reader.d.ts.map +1 -1
- package/dist/features/magic-context/key-files/identify-key-files.d.ts +1 -1
- package/dist/features/magic-context/key-files/identify-key-files.d.ts.map +1 -1
- package/dist/features/magic-context/key-files/project-key-files.d.ts.map +1 -1
- package/dist/features/magic-context/key-files/read-stats.d.ts +1 -1
- package/dist/features/magic-context/key-files/read-stats.d.ts.map +1 -1
- package/dist/features/magic-context/memory/constants.d.ts +4 -0
- package/dist/features/magic-context/memory/constants.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.map +1 -1
- package/dist/features/magic-context/memory/embedding-openai.d.ts +6 -0
- package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding-probe.d.ts +5 -0
- package/dist/features/magic-context/memory/embedding-probe.d.ts.map +1 -1
- package/dist/features/magic-context/memory/embedding.d.ts.map +1 -1
- package/dist/features/magic-context/memory/index.d.ts +1 -1
- package/dist/features/magic-context/memory/index.d.ts.map +1 -1
- package/dist/features/magic-context/memory/memory-migration.d.ts +133 -0
- package/dist/features/magic-context/memory/memory-migration.d.ts.map +1 -0
- package/dist/features/magic-context/memory/project-identity.d.ts +38 -7
- package/dist/features/magic-context/memory/project-identity.d.ts.map +1 -1
- package/dist/features/magic-context/memory/storage-memory-fts.d.ts.map +1 -1
- package/dist/features/magic-context/memory/storage-memory.d.ts +15 -1
- package/dist/features/magic-context/memory/storage-memory.d.ts.map +1 -1
- package/dist/features/magic-context/memory/types.d.ts +3 -1
- package/dist/features/magic-context/memory/types.d.ts.map +1 -1
- package/dist/features/magic-context/message-index.d.ts.map +1 -1
- package/dist/features/magic-context/migrations.d.ts +7 -0
- package/dist/features/magic-context/migrations.d.ts.map +1 -1
- package/dist/features/magic-context/project-docs-hash.d.ts +6 -0
- package/dist/features/magic-context/project-docs-hash.d.ts.map +1 -0
- package/dist/features/magic-context/project-identity.d.ts +2 -0
- package/dist/features/magic-context/project-identity.d.ts.map +1 -0
- package/dist/features/magic-context/storage-db.d.ts +51 -7
- package/dist/features/magic-context/storage-db.d.ts.map +1 -1
- package/dist/features/magic-context/storage-historian-runs.d.ts +73 -0
- package/dist/features/magic-context/storage-historian-runs.d.ts.map +1 -0
- package/dist/features/magic-context/storage-identity-rekey-map.d.ts +11 -0
- package/dist/features/magic-context/storage-identity-rekey-map.d.ts.map +1 -0
- package/dist/features/magic-context/storage-m0-mutation-log.d.ts +22 -0
- package/dist/features/magic-context/storage-m0-mutation-log.d.ts.map +1 -0
- package/dist/features/magic-context/storage-memory-mutation-log.d.ts +25 -0
- package/dist/features/magic-context/storage-memory-mutation-log.d.ts.map +1 -0
- package/dist/features/magic-context/storage-meta-persisted.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-session.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta-shared.d.ts +44 -0
- package/dist/features/magic-context/storage-meta-shared.d.ts.map +1 -1
- package/dist/features/magic-context/storage-meta.d.ts +1 -0
- package/dist/features/magic-context/storage-meta.d.ts.map +1 -1
- package/dist/features/magic-context/storage-project-state.d.ts +19 -0
- package/dist/features/magic-context/storage-project-state.d.ts.map +1 -0
- package/dist/features/magic-context/storage-subagent-invocations.d.ts +9 -0
- package/dist/features/magic-context/storage-subagent-invocations.d.ts.map +1 -1
- package/dist/features/magic-context/storage-tags.d.ts +21 -1
- package/dist/features/magic-context/storage-tags.d.ts.map +1 -1
- package/dist/features/magic-context/storage-v22-backfill-failures.d.ts +24 -0
- package/dist/features/magic-context/storage-v22-backfill-failures.d.ts.map +1 -0
- package/dist/features/magic-context/storage.d.ts +12 -3
- package/dist/features/magic-context/storage.d.ts.map +1 -1
- package/dist/features/magic-context/subagent-token-capture.d.ts +1 -1
- package/dist/features/magic-context/subagent-token-capture.d.ts.map +1 -1
- package/dist/features/magic-context/tagger.d.ts +15 -1
- package/dist/features/magic-context/tagger.d.ts.map +1 -1
- package/dist/features/magic-context/types.d.ts +21 -0
- package/dist/features/magic-context/types.d.ts.map +1 -1
- package/dist/features/magic-context/user-memory/review-user-memories.d.ts.map +1 -1
- package/dist/features/magic-context/user-memory/storage-user-memory.d.ts.map +1 -1
- package/dist/features/magic-context/v22-deferred-backfill.d.ts +46 -0
- package/dist/features/magic-context/v22-deferred-backfill.d.ts.map +1 -0
- package/dist/features/magic-context/work-metrics.d.ts +66 -0
- package/dist/features/magic-context/work-metrics.d.ts.map +1 -1
- package/dist/hooks/magic-context/cache-busting-signals.d.ts +9 -0
- package/dist/hooks/magic-context/cache-busting-signals.d.ts.map +1 -1
- package/dist/hooks/magic-context/command-handler.d.ts +13 -1
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-parser.d.ts +25 -0
- package/dist/hooks/magic-context/compartment-parser.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-prompt.d.ts +27 -16
- package/dist/hooks/magic-context/compartment-prompt.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 +6 -2
- 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 +9 -1
- package/dist/hooks/magic-context/compartment-runner-recomp.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-types.d.ts +67 -4
- package/dist/hooks/magic-context/compartment-runner-types.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner-validation.d.ts.map +1 -1
- package/dist/hooks/magic-context/compartment-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/decay-curve.d.ts +78 -0
- package/dist/hooks/magic-context/decay-curve.d.ts.map +1 -0
- package/dist/hooks/magic-context/decay-render.d.ts +67 -0
- package/dist/hooks/magic-context/decay-render.d.ts.map +1 -0
- package/dist/hooks/magic-context/event-handler.d.ts +1 -1
- package/dist/hooks/magic-context/event-handler.d.ts.map +1 -1
- package/dist/hooks/magic-context/event-resolvers.d.ts +17 -0
- package/dist/hooks/magic-context/event-resolvers.d.ts.map +1 -1
- package/dist/hooks/magic-context/execute-status.d.ts.map +1 -1
- package/dist/hooks/magic-context/historian-prompt.generated.d.ts +2 -0
- package/dist/hooks/magic-context/historian-prompt.generated.d.ts.map +1 -0
- package/dist/hooks/magic-context/historian-state-file.d.ts +4 -4
- package/dist/hooks/magic-context/hook-handlers.d.ts +3 -0
- package/dist/hooks/magic-context/hook-handlers.d.ts.map +1 -1
- package/dist/hooks/magic-context/hook.d.ts +12 -20
- package/dist/hooks/magic-context/hook.d.ts.map +1 -1
- package/dist/hooks/magic-context/inject-compartments.d.ts +126 -0
- package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
- package/dist/hooks/magic-context/key-files-block.d.ts.map +1 -1
- package/dist/hooks/magic-context/live-session-state.d.ts +9 -0
- package/dist/hooks/magic-context/live-session-state.d.ts.map +1 -1
- package/dist/hooks/magic-context/m0-token-breakdown.d.ts +35 -0
- package/dist/hooks/magic-context/m0-token-breakdown.d.ts.map +1 -0
- package/dist/hooks/magic-context/read-session-chunk.d.ts +9 -0
- package/dist/hooks/magic-context/read-session-chunk.d.ts.map +1 -1
- package/dist/hooks/magic-context/read-session-db.d.ts +7 -0
- package/dist/hooks/magic-context/read-session-db.d.ts.map +1 -1
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts +104 -0
- package/dist/hooks/magic-context/recomp-orchestrator.d.ts.map +1 -0
- package/dist/hooks/magic-context/reference-retrieval.d.ts +61 -0
- package/dist/hooks/magic-context/reference-retrieval.d.ts.map +1 -0
- package/dist/hooks/magic-context/reference-seeds.generated.d.ts +8 -0
- package/dist/hooks/magic-context/reference-seeds.generated.d.ts.map +1 -0
- package/dist/hooks/magic-context/send-session-notification.d.ts +1 -1
- package/dist/hooks/magic-context/send-session-notification.d.ts.map +1 -1
- package/dist/hooks/magic-context/system-prompt-hash.d.ts +5 -6
- package/dist/hooks/magic-context/system-prompt-hash.d.ts.map +1 -1
- package/dist/hooks/magic-context/tag-messages.d.ts.map +1 -1
- package/dist/hooks/magic-context/text-complete.d.ts +41 -1
- package/dist/hooks/magic-context/text-complete.d.ts.map +1 -1
- package/dist/hooks/magic-context/tokenizer-calibration.d.ts +6 -0
- package/dist/hooks/magic-context/tokenizer-calibration.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts +0 -7
- package/dist/hooks/magic-context/transform-compartment-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +18 -0
- package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts +9 -7
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/hooks/magic-context/upgrade-reminder.d.ts +73 -0
- package/dist/hooks/magic-context/upgrade-reminder.d.ts.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10025 -5179
- package/dist/plugin/conflict-warning-hook.d.ts +13 -0
- package/dist/plugin/conflict-warning-hook.d.ts.map +1 -1
- package/dist/plugin/dream-timer.d.ts.map +1 -1
- package/dist/plugin/event.d.ts +10 -3
- package/dist/plugin/event.d.ts.map +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
- package/dist/plugin/messages-transform.d.ts.map +1 -1
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/plugin/tool-registry.d.ts.map +1 -1
- package/dist/shared/announcement.d.ts +17 -1
- package/dist/shared/announcement.d.ts.map +1 -1
- package/dist/shared/data-path.d.ts +9 -11
- package/dist/shared/data-path.d.ts.map +1 -1
- package/dist/shared/models-dev-cache.d.ts.map +1 -1
- package/dist/shared/rpc-client.d.ts +1 -0
- package/dist/shared/rpc-client.d.ts.map +1 -1
- package/dist/shared/rpc-notifications.d.ts +27 -5
- package/dist/shared/rpc-notifications.d.ts.map +1 -1
- package/dist/shared/rpc-server.d.ts +1 -0
- package/dist/shared/rpc-server.d.ts.map +1 -1
- package/dist/shared/rpc-types.d.ts +30 -2
- package/dist/shared/rpc-types.d.ts.map +1 -1
- package/dist/shared/rpc-utils.d.ts +9 -0
- package/dist/shared/rpc-utils.d.ts.map +1 -1
- package/dist/shared/sqlite-helpers.d.ts +7 -7
- package/dist/shared/sqlite.d.ts +23 -14
- package/dist/shared/sqlite.d.ts.map +1 -1
- package/dist/shared/tag-transcript.d.ts +10 -1
- package/dist/shared/tag-transcript.d.ts.map +1 -1
- package/dist/tools/ctx-expand/tools.d.ts +5 -1
- package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
- package/dist/tools/ctx-memory/tools.d.ts.map +1 -1
- package/dist/tui/data/context-db.d.ts +16 -1
- package/dist/tui/data/context-db.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/shared/announcement.test.ts +23 -7
- package/src/shared/announcement.ts +30 -8
- package/src/shared/conflict-detector.test.ts +19 -6
- package/src/shared/conflict-detector.ts +1 -1
- package/src/shared/conflict-fixer.test.ts +7 -3
- package/src/shared/data-path.test.ts +9 -10
- package/src/shared/data-path.ts +10 -12
- package/src/shared/models-dev-cache.test.ts +72 -4
- package/src/shared/models-dev-cache.ts +47 -8
- package/src/shared/opencode-compaction-detector.test.ts +10 -2
- package/src/shared/rpc-client.test.ts +54 -3
- package/src/shared/rpc-client.ts +19 -9
- package/src/shared/rpc-notifications.test.ts +54 -1
- package/src/shared/rpc-notifications.ts +82 -13
- package/src/shared/rpc-server.ts +33 -4
- package/src/shared/rpc-types.ts +30 -2
- package/src/shared/rpc-utils.ts +10 -0
- package/src/shared/sqlite-helpers.ts +9 -9
- package/src/shared/sqlite.ts +99 -80
- package/src/shared/tag-transcript.test.ts +280 -0
- package/src/shared/tag-transcript.ts +162 -33
- package/src/shared/tui-config.ts +2 -2
- package/src/tui/data/context-db.ts +75 -11
- package/src/tui/index.tsx +227 -36
- package/src/tui/slots/sidebar-content.tsx +368 -36
- package/dist/hooks/auto-update-checker/cache.d.ts +0 -23
- package/dist/hooks/auto-update-checker/cache.d.ts.map +0 -1
- package/dist/hooks/auto-update-checker/checker.d.ts +0 -13
- package/dist/hooks/auto-update-checker/checker.d.ts.map +0 -1
- package/dist/hooks/auto-update-checker/constants.d.ts +0 -10
- package/dist/hooks/auto-update-checker/constants.d.ts.map +0 -1
- package/dist/hooks/auto-update-checker/index.d.ts +0 -40
- package/dist/hooks/auto-update-checker/index.d.ts.map +0 -1
- package/dist/hooks/auto-update-checker/types.d.ts +0 -50
- package/dist/hooks/auto-update-checker/types.d.ts.map +0 -1
- package/dist/hooks/magic-context/compartment-runner-compressor.d.ts +0 -87
- package/dist/hooks/magic-context/compartment-runner-compressor.d.ts.map +0 -1
- package/dist/shared/native-binding.d.ts +0 -87
- package/dist/shared/native-binding.d.ts.map +0 -1
- package/src/shared/native-binding.ts +0 -311
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-context-prompt.d.ts","sourceRoot":"","sources":["../../src/agents/magic-context-prompt.ts"],"names":[],"mappings":"AAAA,wEAAwE;
|
|
1
|
+
{"version":3,"file":"magic-context-prompt.d.ts","sourceRoot":"","sources":["../../src/agents/magic-context-prompt.ts"],"names":[],"mappings":"AAAA,wEAAwE;AA+GxE,wBAAgB,wBAAwB,CACpC,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,aAAa,EAAE,MAAM,EACrB,gBAAgB,UAAO,EACvB,cAAc,UAAQ,EACtB,iBAAiB,UAAO,EACxB,wBAAwB,UAAQ,EAChC,6BAA6B,UAAQ,GACtC,MAAM,CAiBR"}
|
|
@@ -40,16 +40,17 @@
|
|
|
40
40
|
* # What each agent needs
|
|
41
41
|
*
|
|
42
42
|
* - **historian / historian-editor / compressor**: `read` plus the
|
|
43
|
-
* read-only AFT navigation tools `aft_outline
|
|
44
|
-
* The runner offloads large existing-state XML to
|
|
45
|
-
* under `<project>/.
|
|
46
|
-
* prompt instructs the model to read that file. AFT
|
|
47
|
-
* is allowed so historian can verify a symbol or
|
|
48
|
-
* when writing accurate compartment summaries.
|
|
49
|
-
*
|
|
50
|
-
* - **dreamer**: `read`, `grep`, `glob`, `bash`,
|
|
51
|
-
* navigation tools `aft_outline
|
|
52
|
-
* Context MCP tools `ctx_memory`,
|
|
43
|
+
* read-only AFT navigation/search tools `aft_outline`, `aft_zoom`,
|
|
44
|
+
* and `aft_search`. The runner offloads large existing-state XML to
|
|
45
|
+
* a temp file under `<project>/.magic-context/historian/`
|
|
46
|
+
* and the prompt instructs the model to read that file. AFT
|
|
47
|
+
* navigation is allowed so historian can find or verify a symbol or
|
|
48
|
+
* file structure when writing accurate compartment summaries.
|
|
49
|
+
*
|
|
50
|
+
* - **dreamer**: `read`, `grep`, `glob`, `bash`, `write`, `edit`, the
|
|
51
|
+
* read-only AFT navigation/search tools `aft_outline`, `aft_zoom`,
|
|
52
|
+
* `aft_search`, plus the Magic Context MCP tools `ctx_memory`,
|
|
53
|
+
* `ctx_search`, `ctx_note`.
|
|
53
54
|
* Dreamer task prompts in
|
|
54
55
|
* `features/magic-context/dreamer/task-prompts.ts` explicitly tell
|
|
55
56
|
* the model to grep schema files for defaults, read source to
|
|
@@ -95,7 +96,7 @@ export declare function buildAllowOnlyPermission(allowedTools: readonly string[]
|
|
|
95
96
|
* websearch. Historian's job is summarizing the input it was given,
|
|
96
97
|
* not exploring the repo.
|
|
97
98
|
*/
|
|
98
|
-
export declare const HISTORIAN_ALLOWED_TOOLS: readonly ["read", "aft_outline", "aft_zoom"];
|
|
99
|
+
export declare const HISTORIAN_ALLOWED_TOOLS: readonly ["read", "aft_outline", "aft_zoom", "aft_search"];
|
|
99
100
|
/**
|
|
100
101
|
* Tools the dreamer agent needs. This is the broadest hidden-agent
|
|
101
102
|
* surface because dreamer's tasks legitimately require local-repo
|
|
@@ -116,15 +117,29 @@ export declare const HISTORIAN_ALLOWED_TOOLS: readonly ["read", "aft_outline", "
|
|
|
116
117
|
* consolidate / verify / improve / archive-stale / smart-notes
|
|
117
118
|
* dreamer child sessions, so removing it would regress real,
|
|
118
119
|
* documented dreamer behavior.
|
|
120
|
+
* - `write` / `edit` — the maintain-docs task (`task-prompts.ts`)
|
|
121
|
+
* explicitly instructs the model to "Write or update using the
|
|
122
|
+
* Write tool" to keep `ARCHITECTURE.md` / `STRUCTURE.md` at the
|
|
123
|
+
* project root synchronized. Without these tools the dreamer was
|
|
124
|
+
* forced to emit docs through `bash` heredocs/`sed` — fragile and
|
|
125
|
+
* hard to review. Granting `write` + `edit` lets it use the proper
|
|
126
|
+
* file tools (which back up + validate) instead.
|
|
127
|
+
* - `aft_search` — primary read-only code search for the verify /
|
|
128
|
+
* improve / maintain-docs tasks; finds the symbols and call sites a
|
|
129
|
+
* doc/memory rewrite must describe, more precisely than raw `grep`.
|
|
119
130
|
*
|
|
120
131
|
* Deliberately NOT allowed:
|
|
121
132
|
* - `task` — no subagent fanout from dreamer
|
|
122
|
-
* - `edit` / `write` — dreamer must not modify project files;
|
|
123
|
-
* `task-prompts.ts` explicitly states "Do not commit changes"
|
|
124
133
|
* - `webfetch` / `websearch` — out of scope; smart-note URL fetches
|
|
125
134
|
* go through `bash` + `curl` instead
|
|
135
|
+
*
|
|
136
|
+
* Note: `write` / `edit` grant general file-write capability (the
|
|
137
|
+
* permission gate is tool-level, not path-level). Dreamer is a trusted
|
|
138
|
+
* hidden agent whose prompts scope writes to docs + memory; the
|
|
139
|
+
* task-prompts still say "Do not commit changes," so it edits the
|
|
140
|
+
* working tree but never commits.
|
|
126
141
|
*/
|
|
127
|
-
export declare const DREAMER_ALLOWED_TOOLS: readonly ["read", "grep", "glob", "bash", "aft_outline", "aft_zoom", "ctx_memory", "ctx_search", "ctx_note"];
|
|
142
|
+
export declare const DREAMER_ALLOWED_TOOLS: readonly ["read", "grep", "glob", "bash", "write", "edit", "aft_outline", "aft_zoom", "aft_search", "ctx_memory", "ctx_search", "ctx_note"];
|
|
128
143
|
/**
|
|
129
144
|
* Tools the sidekick agent needs. Sidekick is a read-only memory
|
|
130
145
|
* retriever for `/ctx-aug` — it queries the project's memory store
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/agents/permissions.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/agents/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACpC,YAAY,EAAE,SAAS,MAAM,EAAE,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAMlC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,4DAA6D,CAAC;AAElG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,eAAO,MAAM,qBAAqB,6IAaxB,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,sBAAsB,kEAKzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,wBAAwB,CAAC;AAG3F,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAChE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CACZ,MAAM,EACN;QACI,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACrB,CACJ,CAAC;CACL;AAmBD,MAAM,MAAM,WAAW,GACjB,IAAI,GACJ,0BAA0B,GAC1B,uBAAuB,GACvB,iBAAiB,GACjB,sBAAsB,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE,wBAAwB,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjE,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE;QACL,UAAU,EAAE,WAAW,CAAC;QACxB,aAAa,EAAE,WAAW,CAAC;KAC9B,CAAC;IACF,oBAAoB,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACnC;AAoQD,wBAAgB,gBAAgB,CAC5B,SAAS,EAAE,MAAM,GAClB,wBAAwB,GAAG;IAAE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CA2D1D;AAgDD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,CA4D9E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Startup-time shim for graduated experimental features (shared OpenCode + Pi).
|
|
3
|
+
*
|
|
4
|
+
* Features have graduated out of the `experimental.*` namespace across releases:
|
|
5
|
+
* - v0.14: `experimental.user_memories` / `experimental.pin_key_files` →
|
|
6
|
+
* `dreamer.user_memories` / `dreamer.pin_key_files`.
|
|
7
|
+
* - this release: `experimental.temporal_awareness` / `caveman_text_compression`
|
|
8
|
+
* → top-level keys; `experimental.auto_search` / `git_commit_indexing` →
|
|
9
|
+
* `memory.auto_search` / `memory.git_commit_indexing`.
|
|
10
|
+
* - fork: `experimental.text_complete_strip` → top-level `text_complete_strip`.
|
|
11
|
+
*
|
|
12
|
+
* Doctor runs an on-disk migration, but users who never run doctor would
|
|
13
|
+
* otherwise lose their opt-in/opt-out because the graduated keys are no longer
|
|
14
|
+
* in the schema — Zod silently strips unknown keys. This shim runs in-memory on
|
|
15
|
+
* every load: if the user has legacy `experimental.<graduated-key>` blocks, it
|
|
16
|
+
* reshapes the raw config so the new schema sees them at their graduated path.
|
|
17
|
+
* The on-disk file stays untouched (doctor is the tool that cleans it up), and
|
|
18
|
+
* the user's explicit intent is preserved for this session's runtime behavior.
|
|
19
|
+
*
|
|
20
|
+
* Primitive values (e.g., `experimental.user_memories: true`) are coerced to
|
|
21
|
+
* `{ enabled: <bool> }` object form so Zod accepts them. Without this coercion,
|
|
22
|
+
* the primitive would fail schema validation and fall back to the graduated
|
|
23
|
+
* default — silently flipping a user's explicit `false` to the new `true`
|
|
24
|
+
* default, or vice versa.
|
|
25
|
+
*
|
|
26
|
+
* Idempotent: if the destination path already has a value, the destination wins
|
|
27
|
+
* (the user has started graduating), merging sub-fields so nothing is lost.
|
|
28
|
+
*/
|
|
29
|
+
export declare function migrateLegacyExperimental(rawConfig: Record<string, unknown>, warnings: string[]): Record<string, unknown>;
|
|
30
|
+
//# sourceMappingURL=migrate-experimental.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-experimental.d.ts","sourceRoot":"","sources":["../../src/config/migrate-experimental.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,yBAAyB,CACrC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,MAAM,EAAE,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkIzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-overrides.d.ts","sourceRoot":"","sources":["../../../src/config/schema/agent-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iCAAiC,+CAAgD,CAAC;AAgB/F,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"agent-overrides.d.ts","sourceRoot":"","sources":["../../../src/config/schema/agent-overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iCAAiC,+CAAgD,CAAC;AAgB/F,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1,23 +1,10 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export declare const DEFAULT_NUDGE_INTERVAL_TOKENS = 10000;
|
|
3
3
|
export declare const DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE = 65;
|
|
4
|
+
export declare const EXECUTE_THRESHOLD_CAP_MESSAGE = "execute_threshold is capped at 80% for cache safety: a single large agent step can overflow the context window before Magic Context can compact between turns, forcing OpenCode's native compaction (hard to recover from). 80% also leaves headroom below the 85%/95% emergency bands. Use a value between 20 and 80.";
|
|
4
5
|
export declare const DEFAULT_HISTORIAN_TIMEOUT_MS = 300000;
|
|
5
6
|
export declare const DEFAULT_HISTORY_BUDGET_PERCENTAGE = 0.15;
|
|
6
7
|
export declare const DEFAULT_LOCAL_EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2";
|
|
7
|
-
/** Compressor defaults — see CompressorConfigSchema below for details. */
|
|
8
|
-
export declare const DEFAULT_COMPRESSOR_MIN_COMPARTMENT_RATIO = 1000;
|
|
9
|
-
export declare const DEFAULT_COMPRESSOR_MAX_MERGE_DEPTH = 5;
|
|
10
|
-
export declare const DEFAULT_COMPRESSOR_COOLDOWN_MS = 600000;
|
|
11
|
-
/** Max compartments merged in one LLM pass. LLM quality degrades with larger inputs,
|
|
12
|
-
* and smaller batches reduce ordinal-drift risk when the model outputs merged boundaries. */
|
|
13
|
-
export declare const DEFAULT_COMPRESSOR_MAX_COMPARTMENTS_PER_PASS = 15;
|
|
14
|
-
/** Number of newest compartments always excluded from compression.
|
|
15
|
-
* Protects freshly-published historian compartments from immediate re-compression,
|
|
16
|
-
* which would lose narrative quality before the agent has even used the compartment. */
|
|
17
|
-
export declare const DEFAULT_COMPRESSOR_GRACE_COMPARTMENTS = 10;
|
|
18
|
-
/** Output count at each depth = ceil(input / ratio).
|
|
19
|
-
* Lower ratios = gentler compression. Depth 5 is title-only (no LLM call). */
|
|
20
|
-
export declare const COMPRESSOR_MERGE_RATIO_BY_DEPTH: Record<number, number>;
|
|
21
8
|
export declare const DREAMER_TASKS: readonly ["consolidate", "verify", "archive-stale", "improve", "maintain-docs"];
|
|
22
9
|
export declare const DreamingTaskSchema: z.ZodEnum<{
|
|
23
10
|
consolidate: "consolidate";
|
|
@@ -255,10 +242,14 @@ export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
255
242
|
model: z.ZodOptional<z.ZodString>;
|
|
256
243
|
endpoint: z.ZodOptional<z.ZodString>;
|
|
257
244
|
api_key: z.ZodOptional<z.ZodString>;
|
|
245
|
+
input_type: z.ZodOptional<z.ZodString>;
|
|
246
|
+
truncate: z.ZodOptional<z.ZodString>;
|
|
258
247
|
}, z.core.$strip>, z.ZodTransform<{
|
|
259
248
|
provider: "local";
|
|
260
249
|
model: string;
|
|
261
250
|
} | {
|
|
251
|
+
truncate?: string | undefined;
|
|
252
|
+
input_type?: string | undefined;
|
|
262
253
|
api_key?: string | undefined;
|
|
263
254
|
provider: "openai-compatible";
|
|
264
255
|
model: string;
|
|
@@ -271,13 +262,12 @@ export declare const EmbeddingConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
271
262
|
model?: string | undefined;
|
|
272
263
|
endpoint?: string | undefined;
|
|
273
264
|
api_key?: string | undefined;
|
|
265
|
+
input_type?: string | undefined;
|
|
266
|
+
truncate?: string | undefined;
|
|
274
267
|
}>>;
|
|
275
268
|
export type EmbeddingConfig = z.infer<typeof EmbeddingConfigSchema>;
|
|
276
269
|
export interface MagicContextConfig {
|
|
277
270
|
enabled: boolean;
|
|
278
|
-
/** Auto-update the cached OpenCode plugin wrapper when a newer npm version is available.
|
|
279
|
-
* USER config only; project configs cannot disable it. Default: true. */
|
|
280
|
-
auto_update?: boolean;
|
|
281
271
|
/** When false, ctx_reduce tool is not registered, all nudges are disabled,
|
|
282
272
|
* and prompt guidance about ctx_reduce is stripped. Heuristic cleanup,
|
|
283
273
|
* compartments, memory, and other features continue to work. Default: true. */
|
|
@@ -311,6 +301,11 @@ export interface MagicContextConfig {
|
|
|
311
301
|
enabled: boolean;
|
|
312
302
|
min_clusters: number;
|
|
313
303
|
};
|
|
304
|
+
/** Per-connection SQLite tuning for Magic Context's own context.db. */
|
|
305
|
+
sqlite: {
|
|
306
|
+
cache_size_mb: number;
|
|
307
|
+
mmap_size_mb: number;
|
|
308
|
+
};
|
|
314
309
|
/**
|
|
315
310
|
* Controls whether and where Magic Context augments the system prompt
|
|
316
311
|
* (`## Magic Context` guidance, `<project-docs>`, `<user-profile>`,
|
|
@@ -332,32 +327,49 @@ export interface MagicContextConfig {
|
|
|
332
327
|
*/
|
|
333
328
|
skip_signatures: string[];
|
|
334
329
|
};
|
|
335
|
-
|
|
330
|
+
/** Inject elapsed-time markers between user messages and date ranges on
|
|
331
|
+
* compartments so the agent has a wall-clock sense of the session.
|
|
332
|
+
* Graduated from `experimental.temporal_awareness`; default: true. */
|
|
333
|
+
temporal_awareness: boolean;
|
|
334
|
+
/**
|
|
335
|
+
* Age-tier caveman compression for long user/assistant text parts.
|
|
336
|
+
* Graduated from `experimental.caveman_text_compression`; opt-in, default off.
|
|
337
|
+
*
|
|
338
|
+
* Only active when `ctx_reduce_enabled: false`. Buckets eligible
|
|
339
|
+
* (outside-protected-tail) messages into four age tiers by tag
|
|
340
|
+
* position — oldest 20% → ultra, next 20% → full, next 20% → lite,
|
|
341
|
+
* newest 40% → untouched — and rewrites the text part in place.
|
|
342
|
+
* Always compresses from the original source (source_contents), so
|
|
343
|
+
* tier shifts produce the same result as if the target depth were
|
|
344
|
+
* applied directly to the original text.
|
|
345
|
+
*
|
|
346
|
+
* Disabled by default because it rewrites agent-visible history.
|
|
347
|
+
*/
|
|
348
|
+
caveman_text_compression: {
|
|
336
349
|
enabled: boolean;
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
cooldown_ms: number;
|
|
340
|
-
max_compartments_per_pass: number;
|
|
341
|
-
grace_compartments: number;
|
|
350
|
+
/** Text parts shorter than this (characters) are left untouched. */
|
|
351
|
+
min_chars: number;
|
|
342
352
|
};
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
};
|
|
353
|
+
/** Custom leading prefix strip patterns for text-complete handler.
|
|
354
|
+
* When configured, overrides the built-in §N§/§N° patterns entirely.
|
|
355
|
+
* Falls back to built-in defaults when omitted. */
|
|
356
|
+
text_complete_strip?: {
|
|
357
|
+
enabled: boolean;
|
|
358
|
+
patterns?: string[];
|
|
359
|
+
};
|
|
360
|
+
embedding: EmbeddingConfig;
|
|
361
|
+
memory: {
|
|
362
|
+
enabled: boolean;
|
|
363
|
+
injection_budget_tokens: number;
|
|
364
|
+
auto_promote: boolean;
|
|
365
|
+
retrieval_count_promotion_threshold: number;
|
|
357
366
|
/** Appends a compact hint to new user messages when ctx_search finds
|
|
358
|
-
* highly-related memories,
|
|
359
|
-
* full content — just vague fragments that nudge the agent to
|
|
360
|
-
* ctx_search for full context if relevant.
|
|
367
|
+
* highly-related memories, conversation, or git commits. Does NOT
|
|
368
|
+
* inject full content — just vague fragments that nudge the agent to
|
|
369
|
+
* run ctx_search for full context if relevant. Graduated from
|
|
370
|
+
* `experimental.auto_search`; enabled by default. Independent of
|
|
371
|
+
* `memory.enabled` — it can still surface conversation/git hints when
|
|
372
|
+
* the memory store is off. */
|
|
361
373
|
auto_search: {
|
|
362
374
|
enabled: boolean;
|
|
363
375
|
/** Top hit score must exceed this threshold for the hint to fire. */
|
|
@@ -365,37 +377,23 @@ export interface MagicContextConfig {
|
|
|
365
377
|
/** Minimum user message length in characters (skip short prompts). */
|
|
366
378
|
min_prompt_chars: number;
|
|
367
379
|
};
|
|
368
|
-
/**
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
|
|
374
|
-
* newest 40% → untouched — and rewrites the text part in place.
|
|
375
|
-
* Always compresses from the original source (source_contents), so
|
|
376
|
-
* tier shifts produce the same result as if the target depth were
|
|
377
|
-
* applied directly to the original text.
|
|
378
|
-
*
|
|
379
|
-
* Disabled by default because it rewrites agent-visible history.
|
|
380
|
-
*/
|
|
381
|
-
caveman_text_compression: {
|
|
380
|
+
/** Index git commit messages from HEAD into a new ctx_search source so
|
|
381
|
+
* agents can recall recent regressions, fixes, and decisions from
|
|
382
|
+
* commit history without running git log manually. Graduated from
|
|
383
|
+
* `experimental.git_commit_indexing`; opt-in, default off. Independent
|
|
384
|
+
* of `memory.enabled`. */
|
|
385
|
+
git_commit_indexing: {
|
|
382
386
|
enabled: boolean;
|
|
383
|
-
/**
|
|
384
|
-
|
|
387
|
+
/** Days of history to index (default: 365) */
|
|
388
|
+
since_days: number;
|
|
389
|
+
/** Max commits kept per project; oldest evicted (default: 2000) */
|
|
390
|
+
max_commits: number;
|
|
385
391
|
};
|
|
386
392
|
};
|
|
387
|
-
embedding: EmbeddingConfig;
|
|
388
|
-
memory: {
|
|
389
|
-
enabled: boolean;
|
|
390
|
-
injection_budget_tokens: number;
|
|
391
|
-
auto_promote: boolean;
|
|
392
|
-
retrieval_count_promotion_threshold: number;
|
|
393
|
-
};
|
|
394
393
|
sidekick?: SidekickConfig;
|
|
395
394
|
}
|
|
396
395
|
export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
397
396
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
398
|
-
auto_update: z.ZodOptional<z.ZodBoolean>;
|
|
399
397
|
ctx_reduce_enabled: z.ZodDefault<z.ZodBoolean>;
|
|
400
398
|
historian: z.ZodOptional<z.ZodObject<{
|
|
401
399
|
model: z.ZodOptional<z.ZodString>;
|
|
@@ -559,13 +557,9 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
559
557
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
560
558
|
skip_signatures: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
561
559
|
}, z.core.$strip>>;
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
max_merge_depth: z.ZodDefault<z.ZodNumber>;
|
|
566
|
-
cooldown_ms: z.ZodDefault<z.ZodNumber>;
|
|
567
|
-
max_compartments_per_pass: z.ZodDefault<z.ZodNumber>;
|
|
568
|
-
grace_compartments: z.ZodDefault<z.ZodNumber>;
|
|
560
|
+
sqlite: z.ZodDefault<z.ZodObject<{
|
|
561
|
+
cache_size_mb: z.ZodDefault<z.ZodNumber>;
|
|
562
|
+
mmap_size_mb: z.ZodDefault<z.ZodNumber>;
|
|
569
563
|
}, z.core.$strip>>;
|
|
570
564
|
embedding: z.ZodDefault<z.ZodPipe<z.ZodObject<{
|
|
571
565
|
provider: z.ZodDefault<z.ZodEnum<{
|
|
@@ -576,10 +570,14 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
576
570
|
model: z.ZodOptional<z.ZodString>;
|
|
577
571
|
endpoint: z.ZodOptional<z.ZodString>;
|
|
578
572
|
api_key: z.ZodOptional<z.ZodString>;
|
|
573
|
+
input_type: z.ZodOptional<z.ZodString>;
|
|
574
|
+
truncate: z.ZodOptional<z.ZodString>;
|
|
579
575
|
}, z.core.$strip>, z.ZodTransform<{
|
|
580
576
|
provider: "local";
|
|
581
577
|
model: string;
|
|
582
578
|
} | {
|
|
579
|
+
truncate?: string | undefined;
|
|
580
|
+
input_type?: string | undefined;
|
|
583
581
|
api_key?: string | undefined;
|
|
584
582
|
provider: "openai-compatible";
|
|
585
583
|
model: string;
|
|
@@ -592,30 +590,34 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
592
590
|
model?: string | undefined;
|
|
593
591
|
endpoint?: string | undefined;
|
|
594
592
|
api_key?: string | undefined;
|
|
593
|
+
input_type?: string | undefined;
|
|
594
|
+
truncate?: string | undefined;
|
|
595
595
|
}>>>;
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
596
|
+
temporal_awareness: z.ZodDefault<z.ZodBoolean>;
|
|
597
|
+
caveman_text_compression: z.ZodDefault<z.ZodObject<{
|
|
598
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
599
|
+
min_chars: z.ZodDefault<z.ZodNumber>;
|
|
600
|
+
}, z.core.$strip>>;
|
|
601
|
+
text_complete_strip: z.ZodOptional<z.ZodObject<{
|
|
602
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
603
|
+
patterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
604
|
+
}, z.core.$strip>>;
|
|
605
|
+
memory: z.ZodDefault<z.ZodObject<{
|
|
606
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
607
|
+
injection_budget_tokens: z.ZodDefault<z.ZodNumber>;
|
|
608
|
+
auto_promote: z.ZodDefault<z.ZodBoolean>;
|
|
609
|
+
retrieval_count_promotion_threshold: z.ZodDefault<z.ZodNumber>;
|
|
603
610
|
auto_search: z.ZodDefault<z.ZodObject<{
|
|
604
611
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
605
612
|
score_threshold: z.ZodDefault<z.ZodNumber>;
|
|
606
613
|
min_prompt_chars: z.ZodDefault<z.ZodNumber>;
|
|
607
614
|
}, z.core.$strip>>;
|
|
608
|
-
|
|
615
|
+
git_commit_indexing: z.ZodDefault<z.ZodObject<{
|
|
609
616
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
610
|
-
|
|
617
|
+
since_days: z.ZodDefault<z.ZodNumber>;
|
|
618
|
+
max_commits: z.ZodDefault<z.ZodNumber>;
|
|
611
619
|
}, z.core.$strip>>;
|
|
612
620
|
}, z.core.$strip>>;
|
|
613
|
-
memory: z.ZodDefault<z.ZodObject<{
|
|
614
|
-
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
615
|
-
injection_budget_tokens: z.ZodDefault<z.ZodNumber>;
|
|
616
|
-
auto_promote: z.ZodDefault<z.ZodBoolean>;
|
|
617
|
-
retrieval_count_promotion_threshold: z.ZodDefault<z.ZodNumber>;
|
|
618
|
-
}, z.core.$strip>>;
|
|
619
621
|
sidekick: z.ZodOptional<z.ZodObject<{
|
|
620
622
|
model: z.ZodOptional<z.ZodString>;
|
|
621
623
|
temperature: z.ZodOptional<z.ZodNumber>;
|
|
@@ -702,18 +704,16 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
702
704
|
enabled: boolean;
|
|
703
705
|
skip_signatures: string[];
|
|
704
706
|
};
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
max_merge_depth: number;
|
|
709
|
-
cooldown_ms: number;
|
|
710
|
-
max_compartments_per_pass: number;
|
|
711
|
-
grace_compartments: number;
|
|
707
|
+
sqlite: {
|
|
708
|
+
cache_size_mb: number;
|
|
709
|
+
mmap_size_mb: number;
|
|
712
710
|
};
|
|
713
711
|
embedding: {
|
|
714
712
|
provider: "local";
|
|
715
713
|
model: string;
|
|
716
714
|
} | {
|
|
715
|
+
truncate?: string | undefined;
|
|
716
|
+
input_type?: string | undefined;
|
|
717
717
|
api_key?: string | undefined;
|
|
718
718
|
provider: "openai-compatible";
|
|
719
719
|
model: string;
|
|
@@ -722,30 +722,27 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
722
722
|
provider: "off";
|
|
723
723
|
model?: undefined;
|
|
724
724
|
};
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
725
|
+
temporal_awareness: boolean;
|
|
726
|
+
caveman_text_compression: {
|
|
727
|
+
enabled: boolean;
|
|
728
|
+
min_chars: number;
|
|
729
|
+
};
|
|
730
|
+
memory: {
|
|
731
|
+
enabled: boolean;
|
|
732
|
+
injection_budget_tokens: number;
|
|
733
|
+
auto_promote: boolean;
|
|
734
|
+
retrieval_count_promotion_threshold: number;
|
|
732
735
|
auto_search: {
|
|
733
736
|
enabled: boolean;
|
|
734
737
|
score_threshold: number;
|
|
735
738
|
min_prompt_chars: number;
|
|
736
739
|
};
|
|
737
|
-
|
|
740
|
+
git_commit_indexing: {
|
|
738
741
|
enabled: boolean;
|
|
739
|
-
|
|
742
|
+
since_days: number;
|
|
743
|
+
max_commits: number;
|
|
740
744
|
};
|
|
741
745
|
};
|
|
742
|
-
memory: {
|
|
743
|
-
enabled: boolean;
|
|
744
|
-
injection_budget_tokens: number;
|
|
745
|
-
auto_promote: boolean;
|
|
746
|
-
retrieval_count_promotion_threshold: number;
|
|
747
|
-
};
|
|
748
|
-
auto_update?: boolean | undefined;
|
|
749
746
|
historian?: {
|
|
750
747
|
two_pass: boolean;
|
|
751
748
|
model?: string | undefined;
|
|
@@ -812,6 +809,10 @@ export declare const MagicContextConfigSchema: z.ZodPipe<z.ZodObject<{
|
|
|
812
809
|
default?: number | undefined;
|
|
813
810
|
} | undefined;
|
|
814
811
|
protected_tags?: number | undefined;
|
|
812
|
+
text_complete_strip?: {
|
|
813
|
+
enabled: boolean;
|
|
814
|
+
patterns?: string[] | undefined;
|
|
815
|
+
} | undefined;
|
|
815
816
|
sidekick?: {
|
|
816
817
|
timeout_ms: number;
|
|
817
818
|
model?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,6BAA6B,QAAS,CAAC;AACpD,eAAO,MAAM,oCAAoC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"magic-context.d.ts","sourceRoot":"","sources":["../../../src/config/schema/magic-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/features/builtin-commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,8BAA8B,IAAI,oBAAoB,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/features/builtin-commands/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,8BAA8B,IAAI,oBAAoB,CA6BrE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Database } from "../../shared/sqlite";
|
|
2
|
+
/**
|
|
3
|
+
* Compartment P1 embedding (v2 / E2).
|
|
4
|
+
*
|
|
5
|
+
* The LOCKED substrate decision: `p1_embedding` is computed + stored on EVERY
|
|
6
|
+
* compartment publish, even though the historian no longer uses embedding to
|
|
7
|
+
* pick its own reference block (that switched to recency). The embedding exists
|
|
8
|
+
* for two consumers:
|
|
9
|
+
* - ctx_search semantic retrieval over compartments (E2 consumption),
|
|
10
|
+
* - future dreamer cross-compartment linking (e.g. "key-files 2 months ago
|
|
11
|
+
* ↔ key-files now").
|
|
12
|
+
*
|
|
13
|
+
* Fire-and-forget + best-effort, mirroring memory promotion: a missing/slow
|
|
14
|
+
* embedding provider must never block or fail a historian publish. Gated by the
|
|
15
|
+
* same `memory.enabled` / `auto_promote` flags as memory promotion (no embedding
|
|
16
|
+
* endpoint hits when memory is off).
|
|
17
|
+
*/
|
|
18
|
+
interface CompartmentToEmbed {
|
|
19
|
+
id: number;
|
|
20
|
+
/** P1 tier text (fullest) — the embedding source. */
|
|
21
|
+
p1: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Embed the P1 text of the given compartments and persist each vector into
|
|
25
|
+
* `compartments.p1_embedding` (+ `p1_embedding_model_id`). Best-effort per row:
|
|
26
|
+
* one failure logs and continues. Never throws.
|
|
27
|
+
*
|
|
28
|
+
* `embedTextForProject` resolves the project's configured provider/model, so the
|
|
29
|
+
* stored `model_id` stays consistent with memory embeddings for the same project
|
|
30
|
+
* (vector compatibility for cross-corpus search later).
|
|
31
|
+
*/
|
|
32
|
+
export declare function embedAndStoreCompartments(db: Database, sessionId: string, projectPath: string, compartments: readonly CompartmentToEmbed[]): Promise<void>;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=compartment-embedding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compartment-embedding.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compartment-embedding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD;;;;;;;;;;;;;;;GAeG;AAEH,UAAU,kBAAkB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC3C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,SAAS,kBAAkB,EAAE,GAC5C,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Database } from "../../shared/sqlite";
|
|
2
|
+
/**
|
|
3
|
+
* Compartment events storage (v2 / E2).
|
|
4
|
+
*
|
|
5
|
+
* The historian extracts discrete events (`causal_incident`,
|
|
6
|
+
* `trajectory_correction`, and any future kinds) while compartmentalizing. v2.0
|
|
7
|
+
* STORES these events but does NOT render them — they are a corpus for a future
|
|
8
|
+
* dreamer aggregation/steering feature (cross-session pattern detection). Parsed
|
|
9
|
+
* kind-agnostically (`kind` = element name, `fields` = child elements), so a new
|
|
10
|
+
* event kind or field needs no schema change — `fields` round-trips as JSON.
|
|
11
|
+
*
|
|
12
|
+
* Anchoring: `at_compartment="N"` is a 1-based index INTO THE CURRENT PUBLISH's
|
|
13
|
+
* emitted compartment list. We resolve it to the `compartment_id` of the matching
|
|
14
|
+
* persisted row at store time. When resolution fails (out-of-range index, e.g. an
|
|
15
|
+
* event anchored to a discard-last compartment), `compartment_id` is NULL and we
|
|
16
|
+
* keep the raw `at_compartment` for debugging.
|
|
17
|
+
*
|
|
18
|
+
* Durability caveat: `compartment_id` is a bare INTEGER (no FK). It points at the
|
|
19
|
+
* compartment row that existed at store time. Full/partial recomp deletes and
|
|
20
|
+
* re-inserts compartment rows, so a stored `compartment_id` can become stale
|
|
21
|
+
* (dangling) after recomp. This is acceptable for v2.0 because events are
|
|
22
|
+
* STORED-ONLY (not rendered or consumed yet); the future dreamer aggregation
|
|
23
|
+
* feature that reads events must re-anchor or tolerate dangling ids. Do NOT rely
|
|
24
|
+
* on `compartment_id` surviving recomp.
|
|
25
|
+
*/
|
|
26
|
+
export interface CompartmentEventInput {
|
|
27
|
+
/** Event element name, e.g. "causal_incident" | "trajectory_correction". */
|
|
28
|
+
kind: string;
|
|
29
|
+
/** 1-based index into the publish's emitted compartments; null if absent/invalid. */
|
|
30
|
+
atCompartment: number | null;
|
|
31
|
+
/** Child elements verbatim (e.g. trigger, implication). */
|
|
32
|
+
fields: Record<string, string>;
|
|
33
|
+
}
|
|
34
|
+
export interface StoredCompartmentEvent extends CompartmentEventInput {
|
|
35
|
+
id: number;
|
|
36
|
+
sessionId: string;
|
|
37
|
+
compartmentId: number | null;
|
|
38
|
+
createdAt: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Persist historian-extracted events for a publish.
|
|
42
|
+
*
|
|
43
|
+
* @param compartmentIds durable compartment ids for the publish's emitted
|
|
44
|
+
* compartments, in emission order (index i → the (i+1)-th emitted compartment).
|
|
45
|
+
* Used to resolve `at_compartment` (1-based) to a durable `compartment_id`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function insertCompartmentEvents(db: Database, sessionId: string, events: readonly CompartmentEventInput[], compartmentIds: readonly number[]): void;
|
|
48
|
+
/** Load all stored events for a session (newest first). For diagnostics / future dreamer aggregation. */
|
|
49
|
+
export declare function getCompartmentEvents(db: Database, sessionId: string): StoredCompartmentEvent[];
|
|
50
|
+
//# sourceMappingURL=compartment-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compartment-events.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/compartment-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,qBAAqB;IAClC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACjE,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,qBAAqB,EAAE,EACxC,cAAc,EAAE,SAAS,MAAM,EAAE,GAClC,IAAI,CAqBN;AAED,yGAAyG;AACzG,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAuB9F"}
|
|
@@ -8,7 +8,19 @@ export interface Compartment {
|
|
|
8
8
|
startMessageId: string;
|
|
9
9
|
endMessageId: string;
|
|
10
10
|
title: string;
|
|
11
|
+
/** v2: P1 tier text (fullest). Legacy rows: flat v1 content. Always present (NOT NULL). */
|
|
11
12
|
content: string;
|
|
13
|
+
/** v2 paraphrase tiers (model B). NULL for legacy=1 rows. */
|
|
14
|
+
p1: string | null;
|
|
15
|
+
p2: string | null;
|
|
16
|
+
p3: string | null;
|
|
17
|
+
p4: string | null;
|
|
18
|
+
/** Decay-rate signal (1-100). Defaults to 50. */
|
|
19
|
+
importance: number;
|
|
20
|
+
/** Comma-separated activity types (e.g. "design,feature"). NULL for legacy rows. */
|
|
21
|
+
episodeType: string | null;
|
|
22
|
+
/** 1 = pre-v2 flat compartment (no tiers); 0 = v2 tiered. */
|
|
23
|
+
legacy: number;
|
|
12
24
|
createdAt: number;
|
|
13
25
|
}
|
|
14
26
|
export interface SessionFact {
|
|
@@ -26,7 +38,17 @@ export interface CompartmentInput {
|
|
|
26
38
|
startMessageId: string;
|
|
27
39
|
endMessageId: string;
|
|
28
40
|
title: string;
|
|
41
|
+
/** v2: P1 tier text. Legacy/compressor inserts: flat content. */
|
|
29
42
|
content: string;
|
|
43
|
+
/** v2 paraphrase tiers (model B). Omitted/null for legacy or compressor inserts → stored NULL. */
|
|
44
|
+
p1?: string | null;
|
|
45
|
+
p2?: string | null;
|
|
46
|
+
p3?: string | null;
|
|
47
|
+
p4?: string | null;
|
|
48
|
+
/** Decay-rate signal (1-100). Omitted → stored 50. */
|
|
49
|
+
importance?: number | null;
|
|
50
|
+
/** Comma-separated activity types. Omitted/null → stored NULL. */
|
|
51
|
+
episodeType?: string | null;
|
|
30
52
|
}
|
|
31
53
|
export declare function getCompartments(db: Database, sessionId: string): Compartment[];
|
|
32
54
|
export declare function getLastCompartmentEndMessage(db: Database, sessionId: string): number;
|