@cortexkit/magic-context 0.27.2 → 0.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +42 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -146619,7 +146619,7 @@ function enforceSchemaFence(db, dbPath, latestSupportedVersion) {
|
|
|
146619
146619
|
return true;
|
|
146620
146620
|
}
|
|
146621
146621
|
lastSchemaFenceRejection = { persistedVersion, supportedVersion: latestSupportedVersion };
|
|
146622
|
-
log2(`[magic-context] storage fatal: refusing to open ${dbPath}; database schema v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}).
|
|
146622
|
+
log2(`[magic-context] storage fatal: refusing to open ${dbPath}; database schema v${persistedVersion} is newer than this binary supports (max v${latestSupportedVersion}). A pinned or stale plugin is likely sharing this database with a newer instance; update or unpin Magic Context with 'npx @cortexkit/magic-context@latest doctor --force', then restart.`);
|
|
146623
146623
|
return false;
|
|
146624
146624
|
}
|
|
146625
146625
|
function applySqliteTuningPragmas(db) {
|
|
@@ -149339,7 +149339,7 @@ var init_storage_primers = __esm(() => {
|
|
|
149339
149339
|
// ../plugin/src/features/magic-context/storage-source.ts
|
|
149340
149340
|
var init_storage_source = () => {};
|
|
149341
149341
|
// ../plugin/src/features/magic-context/storage-tags.ts
|
|
149342
|
-
var insertTagStatements, updateTagStatusStatements, updateTagDropModeStatements, updateTagMessageIdStatements, getTagNumbersByMessageIdStatements, deleteTagsByMessageIdStatements, getMaxTagNumberBySessionStatements, getTagNumberByMessageIdStatements, updateTagByteSizeStatements, updateTagInputByteSizeStatements, updateTagTokenCountStatements, updateTagInputTokenCountStatements, getOwnerScopedToolTagNumbersStatements, getMinMessageTagNumberForRawIdStatements, getActiveTagsBySessionStatements, getMaxDroppedTagNumberStatements, getToolTagNumberByOwnerStatements, getNullOwnerToolTagStatements, adoptNullOwnerToolTagStatements, deleteToolTagsByOwnerStatements;
|
|
149342
|
+
var insertTagStatements, updateTagStatusStatements, updateTagDropModeStatements, updateTagMessageIdStatements, getTagNumbersByMessageIdStatements, deleteTagsByMessageIdStatements, getMaxTagNumberBySessionStatements, getTagNumberByMessageIdStatements, updateTagByteSizeStatements, updateTagInputByteSizeStatements, RECLAIM_HINT_EXCLUDED_TOOLS, RECLAIM_HINT_EXCLUDED_LIST, updateTagTokenCountStatements, updateTagInputTokenCountStatements, getOwnerScopedToolTagNumbersStatements, getMinMessageTagNumberForRawIdStatements, getActiveTagsBySessionStatements, getMaxDroppedTagNumberStatements, getToolTagNumberByOwnerStatements, getNullOwnerToolTagStatements, adoptNullOwnerToolTagStatements, deleteToolTagsByOwnerStatements;
|
|
149343
149343
|
var init_storage_tags = __esm(() => {
|
|
149344
149344
|
insertTagStatements = new WeakMap;
|
|
149345
149345
|
updateTagStatusStatements = new WeakMap;
|
|
@@ -149351,6 +149351,8 @@ var init_storage_tags = __esm(() => {
|
|
|
149351
149351
|
getTagNumberByMessageIdStatements = new WeakMap;
|
|
149352
149352
|
updateTagByteSizeStatements = new WeakMap;
|
|
149353
149353
|
updateTagInputByteSizeStatements = new WeakMap;
|
|
149354
|
+
RECLAIM_HINT_EXCLUDED_TOOLS = ["todowrite"];
|
|
149355
|
+
RECLAIM_HINT_EXCLUDED_LIST = RECLAIM_HINT_EXCLUDED_TOOLS.map((name2) => `'${name2.replace(/'/g, "''")}'`).join(", ");
|
|
149354
149356
|
updateTagTokenCountStatements = new WeakMap;
|
|
149355
149357
|
updateTagInputTokenCountStatements = new WeakMap;
|
|
149356
149358
|
getOwnerScopedToolTagNumbersStatements = new WeakMap;
|
|
@@ -149970,6 +149972,10 @@ function stripUnsafeProjectConfigFields(projectRaw) {
|
|
|
149970
149972
|
delete projectRaw.auto_update;
|
|
149971
149973
|
warnings.push("Ignoring auto_update from project config (security: this setting only honors user-level config).");
|
|
149972
149974
|
}
|
|
149975
|
+
if ("language" in projectRaw) {
|
|
149976
|
+
delete projectRaw.language;
|
|
149977
|
+
warnings.push("Ignoring language from project config (security: output language is a user-level setting).");
|
|
149978
|
+
}
|
|
149973
149979
|
if ("sqlite" in projectRaw) {
|
|
149974
149980
|
delete projectRaw.sqlite;
|
|
149975
149981
|
warnings.push("Ignoring sqlite.* from project config (security: SQLite cache/mmap PRAGMAs apply to the " + "process-global shared database handle; only user-level config may set them).");
|
|
@@ -164702,6 +164708,38 @@ var init_zod = __esm(() => {
|
|
|
164702
164708
|
init_external();
|
|
164703
164709
|
});
|
|
164704
164710
|
|
|
164711
|
+
// ../plugin/src/agents/language-directive.ts
|
|
164712
|
+
function resolveLanguageName(language) {
|
|
164713
|
+
const code = typeof language === "string" ? language.trim().toLowerCase() : "";
|
|
164714
|
+
if (!/^[a-z]{2}$/.test(code))
|
|
164715
|
+
return "";
|
|
164716
|
+
let english;
|
|
164717
|
+
try {
|
|
164718
|
+
english = ENGLISH_LANGUAGE_NAMES.of(code) ?? undefined;
|
|
164719
|
+
} catch {
|
|
164720
|
+
return "";
|
|
164721
|
+
}
|
|
164722
|
+
if (!english)
|
|
164723
|
+
return "";
|
|
164724
|
+
let endonym;
|
|
164725
|
+
try {
|
|
164726
|
+
endonym = new Intl.DisplayNames([code], { type: "language", fallback: "none" }).of(code) ?? undefined;
|
|
164727
|
+
} catch {
|
|
164728
|
+
endonym = undefined;
|
|
164729
|
+
}
|
|
164730
|
+
return endonym && endonym !== english ? `${english} (${endonym})` : english;
|
|
164731
|
+
}
|
|
164732
|
+
function isValidLanguageCode(language) {
|
|
164733
|
+
return resolveLanguageName(language) !== "";
|
|
164734
|
+
}
|
|
164735
|
+
var ENGLISH_LANGUAGE_NAMES;
|
|
164736
|
+
var init_language_directive = __esm(() => {
|
|
164737
|
+
ENGLISH_LANGUAGE_NAMES = new Intl.DisplayNames(["en"], {
|
|
164738
|
+
type: "language",
|
|
164739
|
+
fallback: "none"
|
|
164740
|
+
});
|
|
164741
|
+
});
|
|
164742
|
+
|
|
164705
164743
|
// ../plugin/src/features/magic-context/defaults.ts
|
|
164706
164744
|
var DEFAULT_PROTECTED_TAGS = 20;
|
|
164707
164745
|
|
|
@@ -164747,6 +164785,7 @@ function defaultTaskConfig(task) {
|
|
|
164747
164785
|
var DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE = 65, 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.", DEFAULT_HISTORIAN_TIMEOUT_MS = 300000, DEFAULT_HISTORY_BUDGET_PERCENTAGE = 0.15, DEFAULT_LOCAL_EMBEDDING_MODEL = "Xenova/all-MiniLM-L6-v2", DreamingTaskSchema, PiThinkingLevelSchema, CronScheduleSchema, DreamTaskBaseConfigSchema, PromotionThresholdSchema, PrimerPromotionThresholdSchema, DreamTaskConfigSchema, ReviewUserMemoriesTaskConfigSchema, PromotePrimersTaskConfigSchema, DEFAULT_TASK_SCHEDULES2, DreamTasksSchema, DreamerConfigSchema, SidekickConfigSchema, HistorianConfigSchema, BaseEmbeddingConfigSchema, EmbeddingConfigSchema, MagicContextConfigSchema;
|
|
164748
164786
|
var init_magic_context = __esm(() => {
|
|
164749
164787
|
init_zod();
|
|
164788
|
+
init_language_directive();
|
|
164750
164789
|
init_cron();
|
|
164751
164790
|
init_task_registry();
|
|
164752
164791
|
init_agent_overrides();
|
|
@@ -164868,6 +164907,7 @@ var init_magic_context = __esm(() => {
|
|
|
164868
164907
|
MagicContextConfigSchema = exports_external.object({
|
|
164869
164908
|
enabled: exports_external.boolean().default(true).describe("Enable magic context (default: true)"),
|
|
164870
164909
|
auto_update: exports_external.boolean().optional().describe("Enable automatic npm self-update checks for the OpenCode plugin. Security: USER-only in config loader, so hostile project configs cannot suppress updates."),
|
|
164910
|
+
language: exports_external.string().trim().toLowerCase().refine((s) => isValidLanguageCode(s), 'language must be a 2-letter ISO 639-1 code (e.g. "tr", "es", "de")').optional().describe("Output language for Magic Context's generated content and guidance, as a " + '2-letter ISO 639-1 code (e.g. "tr", "es", "de", "ja", "pt"). When set, the ' + "historian, dreamer, sidekick, and the agent-guidance block instruct the model to " + "write its PROSE in this language while keeping all structural tokens (XML tags, " + "the five memory category names, code identifiers, file paths) in English. " + "USER-LEVEL ONLY (ignored in project config for security). Unset = today's " + "behavior (model mirrors the conversation; English scaffolding). Changing it " + "triggers one cache re-materialization; existing compartments/memories keep their " + "original language until naturally rewritten."),
|
|
164871
164911
|
ctx_reduce_enabled: exports_external.boolean().default(true).describe("When false, ctx_reduce tool is hidden, all nudges disabled, and prompt guidance about ctx_reduce stripped. Heuristic cleanup, compartments, memory, and other features still work. (default: true)"),
|
|
164872
164912
|
historian: HistorianConfigSchema.describe("Historian agent configuration (model, fallback_models, variant, temperature, maxTokens, permission, two_pass, etc.)"),
|
|
164873
164913
|
dreamer: DreamerConfigSchema.optional().describe("Dreamer agent + scheduling configuration (model, fallback_models, disable, schedule, tasks, etc.)"),
|