@cortexkit/opencode-magic-context 0.39.0 → 0.40.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.
Files changed (58) hide show
  1. package/README.md +20 -0
  2. package/dist/config/index.d.ts.map +1 -1
  3. package/dist/config/profiles.d.ts +22 -0
  4. package/dist/config/profiles.d.ts.map +1 -0
  5. package/dist/config/project-security.d.ts +3 -0
  6. package/dist/config/project-security.d.ts.map +1 -1
  7. package/dist/config/schema/magic-context.d.ts +400 -0
  8. package/dist/config/schema/magic-context.d.ts.map +1 -1
  9. package/dist/features/magic-context/fail-closed-block.d.ts +11 -1
  10. package/dist/features/magic-context/fail-closed-block.d.ts.map +1 -1
  11. package/dist/features/magic-context/memory/embedding-failure.d.ts +11 -0
  12. package/dist/features/magic-context/memory/embedding-failure.d.ts.map +1 -0
  13. package/dist/features/magic-context/memory/embedding-openai.d.ts +5 -0
  14. package/dist/features/magic-context/memory/embedding-openai.d.ts.map +1 -1
  15. package/dist/features/magic-context/memory/embedding-provider.d.ts +3 -0
  16. package/dist/features/magic-context/memory/embedding-provider.d.ts.map +1 -1
  17. package/dist/features/magic-context/project-embedding-registry.d.ts +2 -0
  18. package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
  19. package/dist/features/magic-context/storage-db.d.ts +1 -1
  20. package/dist/features/magic-context/storage-db.d.ts.map +1 -1
  21. package/dist/features/magic-context/transform-decision-log.d.ts.map +1 -1
  22. package/dist/hooks/magic-context/format-embed-failure.d.ts +3 -0
  23. package/dist/hooks/magic-context/format-embed-failure.d.ts.map +1 -0
  24. package/dist/hooks/magic-context/inject-compartments.d.ts +4 -3
  25. package/dist/hooks/magic-context/inject-compartments.d.ts.map +1 -1
  26. package/dist/hooks/magic-context/strip-content.d.ts +6 -0
  27. package/dist/hooks/magic-context/strip-content.d.ts.map +1 -1
  28. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts +1 -0
  29. package/dist/hooks/magic-context/transform-postprocess-phase.d.ts.map +1 -1
  30. package/dist/{index-k2ts0wk1.js → index-axpym70t.js} +395 -66
  31. package/dist/index.js +119 -163
  32. package/dist/plugin/hooks/create-session-hooks.d.ts +2 -0
  33. package/dist/plugin/hooks/create-session-hooks.d.ts.map +1 -1
  34. package/dist/plugin/rpc-handlers.d.ts.map +1 -1
  35. package/dist/{recomp-orchestrator-2pncxee7.js → recomp-orchestrator-dmyvqekw.js} +1 -1
  36. package/dist/shared/rpc-types.d.ts +2 -0
  37. package/dist/shared/rpc-types.d.ts.map +1 -1
  38. package/dist/shared/rpc-utils.d.ts +12 -1
  39. package/dist/shared/rpc-utils.d.ts.map +1 -1
  40. package/dist/shared/status-detail-text.d.ts.map +1 -1
  41. package/dist/tui/data/context-db.d.ts.map +1 -1
  42. package/dist/tui-compiled/data/context-db.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/config/index.test.ts +361 -2
  45. package/src/config/index.ts +29 -10
  46. package/src/config/profiles.ts +106 -0
  47. package/src/config/project-security.hostile-matrix.test.ts +9 -0
  48. package/src/config/project-security.test.ts +17 -0
  49. package/src/config/project-security.ts +10 -0
  50. package/src/config/schema/magic-context.test.ts +128 -0
  51. package/src/config/schema/magic-context.ts +89 -0
  52. package/src/shared/rpc-types.ts +2 -0
  53. package/src/shared/rpc-utils.test.ts +32 -0
  54. package/src/shared/rpc-utils.ts +38 -13
  55. package/src/shared/status-detail-text.test.ts +2 -0
  56. package/src/shared/status-detail-text.ts +1 -0
  57. package/src/tui/data/context-db.ts +1 -0
  58. package/src/tui-compiled/data/context-db.ts +1 -0
package/dist/index.js CHANGED
@@ -24,6 +24,7 @@ import {
24
24
  COMPARTMENT_LEASE_RENEWAL_MS,
25
25
  COMPARTMENT_STRUCTURAL_SYSTEM_PROMPT,
26
26
  CTX_REDUCE_KEEP,
27
+ ConfigProfilesSchema,
27
28
  DEFAULT_EXECUTE_THRESHOLD_PERCENTAGE,
28
29
  DEFAULT_HISTORIAN_TIMEOUT_MS,
29
30
  DEFAULT_LOCAL_EMBEDDING_MODEL,
@@ -271,6 +272,7 @@ import {
271
272
  hasMemoryShareableColumn,
272
273
  hasMuralCueColumns,
273
274
  hasRunnableCompartmentWindow,
275
+ hasShareabilitySensitiveText,
274
276
  incrementalLkgContentDigests,
275
277
  indexMessagesAfterOrdinal,
276
278
  indexSingleMessage,
@@ -488,7 +490,7 @@ import {
488
490
  verificationFileExists,
489
491
  withContentLanguageDirective,
490
492
  withRawSessionMessageCache
491
- } from "./index-k2ts0wk1.js";
493
+ } from "./index-axpym70t.js";
492
494
  import {
493
495
  deriveHistorianChunkTokens,
494
496
  deriveTriggerBudget,
@@ -9042,6 +9044,69 @@ function migrateLegacyExperimental(rawConfig, warnings) {
9042
9044
  return patched;
9043
9045
  }
9044
9046
 
9047
+ // src/config/profiles.ts
9048
+ function withoutProfileFields(raw) {
9049
+ const copy = { ...raw };
9050
+ delete copy.profile;
9051
+ delete copy.profiles;
9052
+ return copy;
9053
+ }
9054
+ function readProfileSelection(raw) {
9055
+ if (!Object.hasOwn(raw, "profile"))
9056
+ return { declared: false };
9057
+ const value = raw.profile;
9058
+ if (typeof value !== "string")
9059
+ return { declared: true };
9060
+ const name = value.trim();
9061
+ return name.length > 0 ? { declared: true, name } : { declared: true };
9062
+ }
9063
+ function resolveConfigProfile(args) {
9064
+ const warnings = [];
9065
+ const userSelection = readProfileSelection(args.userRaw);
9066
+ const projectSelection = readProfileSelection(args.projectRaw);
9067
+ const selection = projectSelection.name ? { name: projectSelection.name, source: "project" } : userSelection.name ? { name: userSelection.name, source: "user" } : undefined;
9068
+ if (projectSelection.declared && !projectSelection.name) {
9069
+ warnings.push("Ignoring invalid profile selection from project config; expected a non-empty string.");
9070
+ }
9071
+ if (!projectSelection.declared && userSelection.declared && !userSelection.name) {
9072
+ warnings.push("Ignoring invalid profile selection from user config; expected a non-empty string.");
9073
+ }
9074
+ let profiles = {};
9075
+ if (Object.hasOwn(args.userRaw, "profiles")) {
9076
+ const parsed = ConfigProfilesSchema.safeParse(args.userRaw.profiles);
9077
+ if (parsed.success) {
9078
+ profiles = parsed.data;
9079
+ } else {
9080
+ warnings.push("Ignoring profiles from user config: invalid profile configuration; profiles may contain only historian/dreamer harness model blocks and sidekick model-selection fields.");
9081
+ }
9082
+ }
9083
+ if (!selection) {
9084
+ return {
9085
+ userBase: withoutProfileFields(args.userRaw),
9086
+ projectBase: withoutProfileFields(args.projectRaw),
9087
+ overlay: {},
9088
+ warnings
9089
+ };
9090
+ }
9091
+ if (!Object.hasOwn(profiles, selection.name)) {
9092
+ warnings.push(`Unknown profile "${selection.name}" selected by ${selection.source} config; using base config without a profile.`);
9093
+ return {
9094
+ userBase: withoutProfileFields(args.userRaw),
9095
+ projectBase: withoutProfileFields(args.projectRaw),
9096
+ overlay: {},
9097
+ warnings
9098
+ };
9099
+ }
9100
+ const overlay = profiles[selection.name];
9101
+ return {
9102
+ userBase: withoutProfileFields(args.userRaw),
9103
+ projectBase: withoutProfileFields(args.projectRaw),
9104
+ overlay,
9105
+ activeProfile: selection.name,
9106
+ warnings
9107
+ };
9108
+ }
9109
+
9045
9110
  // src/config/project-security.ts
9046
9111
  var HIDDEN_AGENT_KEYS = ["historian", "dreamer", "sidekick"];
9047
9112
  var HARNESS_KEYS = ["opencode", "pi"];
@@ -9180,6 +9245,10 @@ function makeProjectThresholdWarning(field, reason) {
9180
9245
  }
9181
9246
  function stripUnsafeProjectConfigFields(projectRaw) {
9182
9247
  const warnings = [];
9248
+ if ("profiles" in projectRaw) {
9249
+ delete projectRaw.profiles;
9250
+ warnings.push("Ignoring profiles from project config (security: profile definitions are user-level only; a repository may select a named user profile with profile).");
9251
+ }
9183
9252
  if ("auto_update" in projectRaw) {
9184
9253
  delete projectRaw.auto_update;
9185
9254
  warnings.push("Ignoring auto_update from project config (security: this setting only honors user-level config).");
@@ -11627,8 +11696,6 @@ function loadPluginConfigDetailed(directory) {
11627
11696
  const userLoaded = userDetected.format !== "none" ? loadConfigFileDetailed(userDetected.path, "user") : userLegacyFallback.source ? loadConfigFileDetailed(userLegacyFallback.source.path, "user") : null;
11628
11697
  const projectLoaded = projectDetected.format !== "none" ? loadConfigFileDetailed(projectDetected.path, "project") : projectLegacyFallback.source ? loadConfigFileDetailed(projectLegacyFallback.source.path, "project") : null;
11629
11698
  const allWarnings = [];
11630
- let mergedRaw = {};
11631
- const trustedBaseConfig = parsePluginConfig(userLoaded?.config ?? {});
11632
11699
  if (userLegacyFallback.source) {
11633
11700
  allWarnings.push(`[user config] reading legacy config from ${userLegacyFallback.source.path} until migration completes; run \`npx @cortexkit/magic-context doctor\` to consolidate into the shared CortexKit location.`);
11634
11701
  } else if (legacyUserUnmigrated) {
@@ -11641,21 +11708,31 @@ function loadPluginConfigDetailed(directory) {
11641
11708
  }
11642
11709
  if (userLoaded) {
11643
11710
  allWarnings.push(...userLoaded.warnings.map((w) => `[user config] ${w}`));
11644
- mergedRaw = deepMergeRawConfig(mergedRaw, userLoaded.config);
11645
11711
  }
11712
+ let projectRaw = {};
11646
11713
  if (projectLoaded) {
11647
11714
  allWarnings.push(...projectLoaded.warnings.map((w) => `[project config] ${w}`));
11648
- const projectRaw = { ...projectLoaded.config };
11715
+ projectRaw = { ...projectLoaded.config };
11649
11716
  for (const warning of stripUnsafeProjectConfigFields(projectRaw)) {
11650
11717
  allWarnings.push(`[project config] ${warning}`);
11651
11718
  }
11652
- mergedRaw = deepMergeRawConfig(mergedRaw, projectRaw);
11653
- for (const warning of dropInheritedEmbeddingKeyOnRedirect(projectRaw, mergedRaw, userLoaded?.config)) {
11719
+ }
11720
+ const profileResolution = resolveConfigProfile({
11721
+ userRaw: userLoaded?.config ?? {},
11722
+ projectRaw
11723
+ });
11724
+ allWarnings.push(...profileResolution.warnings.map((warning) => `[config] ${warning}`));
11725
+ const trustedProfiledRaw = deepMergeRawConfig(profileResolution.userBase, profileResolution.overlay);
11726
+ let mergedRaw = trustedProfiledRaw;
11727
+ const trustedBaseConfig = parsePluginConfig(trustedProfiledRaw);
11728
+ if (projectLoaded) {
11729
+ mergedRaw = deepMergeRawConfig(mergedRaw, profileResolution.projectBase);
11730
+ for (const warning of dropInheritedEmbeddingKeyOnRedirect(projectRaw, mergedRaw, profileResolution.userBase)) {
11654
11731
  allWarnings.push(`[project config] ${warning}`);
11655
11732
  }
11656
11733
  for (const warning of constrainProjectThresholdOverrides({
11657
11734
  mergedRaw,
11658
- projectRaw,
11735
+ projectRaw: profileResolution.projectBase,
11659
11736
  trustedBaseConfig
11660
11737
  })) {
11661
11738
  allWarnings.push(`[project config] ${warning}`);
@@ -11663,6 +11740,8 @@ function loadPluginConfigDetailed(directory) {
11663
11740
  }
11664
11741
  const recoveredTopLevelKeys = [];
11665
11742
  const config = parsePluginConfig(mergedRaw, recoveredTopLevelKeys);
11743
+ if (profileResolution.activeProfile)
11744
+ config.profile = profileResolution.activeProfile;
11666
11745
  setOutputReserveConfig(config.output_reserve);
11667
11746
  setWindowOverlayPath(config.models?.window_overlay_path);
11668
11747
  if (config.configWarnings?.length) {
@@ -15509,153 +15588,6 @@ function isRustAuthorityDrainingError(error) {
15509
15588
  return error instanceof Error && error.message.includes("authority_draining");
15510
15589
  }
15511
15590
 
15512
- // src/shared/redaction.ts
15513
- import { homedir as homedir3, userInfo } from "node:os";
15514
- function escapeRegex(value) {
15515
- return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
15516
- }
15517
- var SECRET_WORDS = [
15518
- "key",
15519
- "token",
15520
- "secret",
15521
- "password",
15522
- "auth",
15523
- "authorization",
15524
- "bearer",
15525
- "credential"
15526
- ];
15527
- var SECRET_SEGMENT_PATTERN = new RegExp(`^(?:${SECRET_WORDS.map((w) => `${w}s?`).join("|")})$`, "i");
15528
- var TRAILING_DESCRIPTORS = new Set(["id", "ids", "value", "values", "header", "headers"]);
15529
- function redactionTypeForKey(key) {
15530
- const normalized = key.trim().toLowerCase().replace(/[^a-z0-9_.-]+/g, "_");
15531
- const suffix = normalized.split(".").filter(Boolean).at(-1) ?? normalized;
15532
- return suffix || "secret";
15533
- }
15534
- function isNonSecretScalarValue(value) {
15535
- const v = value.trim();
15536
- if (v === "true" || v === "false" || v === "null" || v === "undefined")
15537
- return true;
15538
- return /^[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$/.test(v);
15539
- }
15540
- var SECRET_QUALIFIERS = new Set([
15541
- "api",
15542
- "access",
15543
- "private",
15544
- "client",
15545
- "auth",
15546
- "authorization",
15547
- "secret",
15548
- "bearer",
15549
- "session",
15550
- "refresh",
15551
- "service",
15552
- "x",
15553
- "openai",
15554
- "anthropic",
15555
- "google",
15556
- "github",
15557
- "huggingface",
15558
- "aws",
15559
- "azure"
15560
- ]);
15561
- function sanitizePathString(value) {
15562
- const home = homedir3();
15563
- const username = userInfo().username;
15564
- let sanitized = value;
15565
- if (home) {
15566
- sanitized = sanitized.replace(new RegExp(escapeRegex(home), "g"), "~");
15567
- }
15568
- sanitized = sanitized.replace(/\/Users\/[^/]+\//g, "/Users/<USER>/");
15569
- sanitized = sanitized.replace(/\/home\/[^/]+\//g, "/home/<USER>/");
15570
- sanitized = sanitized.replace(/C:\\Users\\[^\\]+\\/g, "C:\\Users\\<USER>\\");
15571
- if (username) {
15572
- sanitized = sanitized.replace(new RegExp(escapeRegex(username), "g"), "<USER>");
15573
- }
15574
- return sanitized;
15575
- }
15576
- var SECRET_TEXT_PATTERNS = [
15577
- {
15578
- pattern: /\bsk-ant-(?:api03-)?[A-Za-z0-9_-]{32,}/g,
15579
- replacement: "<ANTHROPIC_API_KEY_REDACTED>"
15580
- },
15581
- {
15582
- pattern: /\bsk-(?:proj-)?[A-Za-z0-9_-]{32,}/g,
15583
- replacement: "<OPENAI_API_KEY_REDACTED>"
15584
- },
15585
- {
15586
- pattern: /\bgithub_pat_[A-Za-z0-9_]{20,}/g,
15587
- replacement: "<GITHUB_PAT_REDACTED>"
15588
- },
15589
- {
15590
- pattern: /\b(?:gh[opsu]|ghr)_[A-Za-z0-9]{30,}/g,
15591
- replacement: "<GITHUB_TOKEN_REDACTED>"
15592
- },
15593
- {
15594
- pattern: /\bhf_[A-Za-z0-9]{30,}/g,
15595
- replacement: "<HUGGINGFACE_TOKEN_REDACTED>"
15596
- },
15597
- {
15598
- pattern: /\b(?:AKIA|ASIA)[0-9A-Z]{16}\b/g,
15599
- replacement: "<AWS_ACCESS_KEY_ID_REDACTED>"
15600
- },
15601
- {
15602
- pattern: /\bxox[abprsuvc]-[A-Za-z0-9-]{10,}/g,
15603
- replacement: "<SLACK_TOKEN_REDACTED>"
15604
- },
15605
- {
15606
- pattern: /\bAIza[A-Za-z0-9_-]{35}\b/g,
15607
- replacement: "<GOOGLE_API_KEY_REDACTED>"
15608
- },
15609
- {
15610
- pattern: /\b(Authorization\s*:\s*Bearer\s+)([A-Za-z0-9._~+/=-]{8,})/gi,
15611
- replacement: (_full, prefix) => `${prefix}<REDACTED:bearer>`
15612
- },
15613
- {
15614
- pattern: /\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g,
15615
- replacement: "<JWT_REDACTED>"
15616
- },
15617
- {
15618
- pattern: /(["'])([^"']*(?:key|token|secret|password|auth|bearer|credential)[^"']*)\1(\s*:\s*)(["'])([^"']*)\4/gi,
15619
- replacement: (full, quote, key, separator, valueQuote, value) => isNonSecretScalarValue(value) ? full : `${quote}${key}${quote}${separator}${valueQuote}<REDACTED:${redactionTypeForKey(key)}>${valueQuote}`
15620
- },
15621
- {
15622
- pattern: /\b([A-Za-z0-9_.-]*(?:key|token|secret|password|auth|bearer|credential)[A-Za-z0-9_.-]*)\s*=\s*([^\s'"`]+)/gi,
15623
- replacement: (full, key, value) => isNonSecretScalarValue(value) ? full : `${key}=<REDACTED:${redactionTypeForKey(key)}>`
15624
- }
15625
- ];
15626
- function redactSecretText(value) {
15627
- let redacted = value;
15628
- for (const { pattern, replacement } of SECRET_TEXT_PATTERNS) {
15629
- if (typeof replacement === "string") {
15630
- redacted = redacted.replace(pattern, replacement);
15631
- } else {
15632
- redacted = redacted.replace(pattern, replacement);
15633
- }
15634
- }
15635
- return redacted;
15636
- }
15637
- function sanitizeDiagnosticText(value) {
15638
- return redactSecretText(sanitizePathString(value));
15639
- }
15640
- var SHAREABILITY_SENSITIVE_PATTERNS = [
15641
- /\bC:\/Users\/[^/\s]+/i,
15642
- /(?:^|\s)~\/[^\s]+/,
15643
- /\b(?:api[_-]?key|secret|token|password|passwd|pwd|client[_-]?secret|access[_-]?key)\b\s*[:=]\s*\S+/i,
15644
- /\b(?:localhost|127\.0\.0\.1|0\.0\.0\.0|\[::1\])(?::\d+)?\b/i,
15645
- /\b(?:10|127)\.\d{1,3}\.\d{1,3}\.\d{1,3}\b/,
15646
- /\b192\.168\.\d{1,3}\.\d{1,3}\b/,
15647
- /\b172\.(?:1[6-9]|2\d|3[01])\.\d{1,3}\.\d{1,3}\b/
15648
- ];
15649
- function hasShareabilitySensitiveText(text) {
15650
- try {
15651
- if (sanitizeDiagnosticText(text) !== text)
15652
- return true;
15653
- return SHAREABILITY_SENSITIVE_PATTERNS.some((pattern) => pattern.test(text));
15654
- } catch {
15655
- return true;
15656
- }
15657
- }
15658
-
15659
15591
  // src/features/magic-context/dreamer/classify-prompt.ts
15660
15592
  var SCORING_GUIDANCE = `### How to score importance (1-100)
15661
15593
  Importance decides which memories survive when the injected memory block is over budget: high scores stay in context, low scores drop first. So the score is only useful if it **discriminates** — if most memories land in the same band, you have not classified them, you have just labelled them.
@@ -25975,6 +25907,7 @@ function buildStatusDetail(db, sessionId, directory, modelKey, config, liveSessi
25975
25907
  const base = buildSidebarSnapshot(db, sessionId, directory, liveSessionState, injectionBudgetTokens, config, moduleStatus, compactionEnabled);
25976
25908
  const detail = {
25977
25909
  ...base,
25910
+ activeProfile: typeof config?.profile === "string" ? config.profile : null,
25978
25911
  tagCounter: 0,
25979
25912
  activeTags: 0,
25980
25913
  droppedTags: 0,
@@ -26201,7 +26134,7 @@ function registerRpcHandlers(rpcServer, args) {
26201
26134
  const db = getDb();
26202
26135
  if (!db)
26203
26136
  return { ok: false, error: "db unavailable" };
26204
- const { runManagedRecomp: runManagedRecomp2 } = await import("./recomp-orchestrator-2pncxee7.js");
26137
+ const { runManagedRecomp: runManagedRecomp2 } = await import("./recomp-orchestrator-dmyvqekw.js");
26205
26138
  const { sendIgnoredMessage: sendIgnoredMessage2 } = await import("./send-session-notification-6v5b72b4.js");
26206
26139
  log(`[rpc] recomp requested for session ${sessionId}`);
26207
26140
  const ctx = await buildManagedCtx(db);
@@ -26217,7 +26150,7 @@ function registerRpcHandlers(rpcServer, args) {
26217
26150
  const db = getDb();
26218
26151
  if (!db)
26219
26152
  return { ok: false, error: "db unavailable" };
26220
- const { runManagedUpgrade: runManagedUpgrade2 } = await import("./recomp-orchestrator-2pncxee7.js");
26153
+ const { runManagedUpgrade: runManagedUpgrade2 } = await import("./recomp-orchestrator-dmyvqekw.js");
26221
26154
  const { sendIgnoredMessage: sendIgnoredMessage2 } = await import("./send-session-notification-6v5b72b4.js");
26222
26155
  log(`[rpc] session-upgrade requested for session ${sessionId}`);
26223
26156
  const ctx = await buildManagedCtx(db);
@@ -26293,6 +26226,7 @@ function formatStatusDetailMarkdown(detail) {
26293
26226
  "## Magic Context Status",
26294
26227
  "",
26295
26228
  `- **Mode:** ${mode}`,
26229
+ `- **Active profile:** ${detail.activeProfile ?? "none"}`,
26296
26230
  `- **Usage:** ${detail.usagePercentage.toFixed(1)}% (${formatCount(detail.inputTokens)} / ${usableLimit})`,
26297
26231
  `- **Cache lane:** ${formatCacheLane(detail)}`,
26298
26232
  `- **Historian:** ${[historianState, ...historianDetails].join("; ")}`,
@@ -27472,6 +27406,8 @@ function writeRustTransformDecision(args) {
27472
27406
  systemHashNew: null,
27473
27407
  m0ModelKeyPrev: null,
27474
27408
  m0ModelKeyNew: null,
27409
+ m0ToolSetHashPrev: null,
27410
+ m0ToolSetHashNew: null,
27475
27411
  emergency: false,
27476
27412
  droppedTokens: 0,
27477
27413
  droppedCount: 0,
@@ -31273,6 +31209,24 @@ var REASONING_IGNORED_PART_TYPES = new Set([
31273
31209
  "compaction"
31274
31210
  ]);
31275
31211
  var REASONING_PART_TYPES = new Set(["reasoning", "thinking", "redacted_thinking"]);
31212
+ function hasReasoningReplayContent(message) {
31213
+ return message.parts.some((part) => {
31214
+ if (!isRecord(part) || part.ignored === true)
31215
+ return false;
31216
+ const type = typeof part.type === "string" ? part.type : "";
31217
+ if (REASONING_IGNORED_PART_TYPES.has(type))
31218
+ return false;
31219
+ return type !== "text" || typeof part.text !== "string" || part.text.trim().length > 0;
31220
+ });
31221
+ }
31222
+ function findLatestAssistantReasoningMutationExemptMessage(messages) {
31223
+ for (let index = messages.length - 1;index >= 0; index -= 1) {
31224
+ const message = messages[index];
31225
+ if (message.info.role === "assistant" && hasReasoningReplayContent(message))
31226
+ return message;
31227
+ }
31228
+ return;
31229
+ }
31276
31230
  function planMergedAssistantReasoningStrip(messages, mutationExemptMessage) {
31277
31231
  const plan = [];
31278
31232
  let prevRole;
@@ -32518,7 +32472,7 @@ function finalizeMessageRepresentation(messages, resolvedProviderID, options) {
32518
32472
  clearedParts = stripClearedReasoning(targetedMessages);
32519
32473
  }
32520
32474
  }
32521
- let newestAssistant = options?.reasoningMutationExemptMessage;
32475
+ let newestAssistant = options?.trailingBlankNewestAssistant;
32522
32476
  if (!newestAssistant) {
32523
32477
  for (let index = messages.length - 1;index >= 0; index -= 1) {
32524
32478
  const message = messages[index];
@@ -32539,14 +32493,15 @@ function finalizeMessageRepresentation(messages, resolvedProviderID, options) {
32539
32493
  }
32540
32494
  async function runPostTransformPhase(args) {
32541
32495
  const compactionOff = args.compactionOff === true;
32542
- let reasoningMutationExemptMessage;
32496
+ let trailingBlankNewestAssistant;
32543
32497
  for (let index = args.messages.length - 1;index >= 0; index -= 1) {
32544
32498
  const message = args.messages[index];
32545
32499
  if (message.info.role !== "assistant")
32546
32500
  continue;
32547
- reasoningMutationExemptMessage = message;
32501
+ trailingBlankNewestAssistant = message;
32548
32502
  break;
32549
32503
  }
32504
+ const reasoningMutationExemptMessage = findLatestAssistantReasoningMutationExemptMessage(args.messages);
32550
32505
  const pendingMaterializationAtPassStart = args.pendingMaterializationSessions.has(args.sessionId);
32551
32506
  const deferredMaterializationAtPassStart = args.deferredMaterializationSessions.has(args.sessionId);
32552
32507
  const isExplicitFlush = pendingMaterializationAtPassStart;
@@ -33178,12 +33133,13 @@ async function runPostTransformPhase(args) {
33178
33133
  sessionLog(args.sessionId, "transform failed loading trailing blank decisions:", error);
33179
33134
  }
33180
33135
  }
33181
- const newestAssistantId = typeof reasoningMutationExemptMessage?.info.id === "string" ? reasoningMutationExemptMessage.info.id : undefined;
33136
+ const newestAssistantId = typeof trailingBlankNewestAssistant?.info.id === "string" ? trailingBlankNewestAssistant.info.id : undefined;
33182
33137
  const tFinalRepresentation = performance.now();
33183
33138
  const finalRepresentation = finalizeMessageRepresentation(args.messages, args.resolvedProviderID, {
33184
33139
  prependedMessageCount,
33185
33140
  reasoningMutatedMessages,
33186
33141
  reasoningMutationExemptMessage,
33142
+ trailingBlankNewestAssistant,
33187
33143
  mergedReasoningStrippedIds,
33188
33144
  trailingBlankDecisions,
33189
33145
  skipMergedReasoningStrip: compactionOff,
@@ -39736,7 +39692,7 @@ import { isAbsolute as isAbsolute4 } from "node:path";
39736
39692
 
39737
39693
  // ../retina-local-fs/src/path-fence.ts
39738
39694
  import { lstat as lstat2, readlink, realpath as realpath2 } from "node:fs/promises";
39739
- import { homedir as homedir4 } from "node:os";
39695
+ import { homedir as homedir3 } from "node:os";
39740
39696
  import { basename as basename2, dirname as dirname6, isAbsolute as isAbsolute3, join as join9, relative, resolve as resolve3, sep } from "node:path";
39741
39697
 
39742
39698
  // ../retina-local-fs/src/errors.ts
@@ -39761,7 +39717,7 @@ async function resolveAndFenceProviderPath(configuredPath, options) {
39761
39717
  return canonical;
39762
39718
  }
39763
39719
  async function resolveFenceRoots(options) {
39764
- const configuredHomePath = resolve3(options.homeDirectory ?? process.env.HOME ?? homedir4());
39720
+ const configuredHomePath = resolve3(options.homeDirectory ?? process.env.HOME ?? homedir3());
39765
39721
  let home;
39766
39722
  try {
39767
39723
  home = await realpath2(configuredHomePath);
@@ -30,6 +30,8 @@ export declare function buildMagicContextHookConfig(pluginConfig: MagicContextPl
30
30
  transform_mode: "ts" | "rust";
31
31
  auto_update?: boolean;
32
32
  language?: string;
33
+ profile?: string;
34
+ profiles?: import("../../config/schema/magic-context").ConfigProfiles;
33
35
  historian?: import("../../config/schema/magic-context").HistorianConfig;
34
36
  dreamer?: import("../../config/schema/magic-context").DreamerConfig;
35
37
  smart_notes: {
@@ -1 +1 @@
1
- {"version":3,"file":"create-session-hooks.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/create-session-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAO7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,wBAAwB;;;;;;;;;mBAEP,CAAC;aACtD,CAAC;aAA2B,CAAC;eAM/C,CALC;;;;;;;;;;;;;;;;;;;;;;;2BAwFwizB,CAAC;;;;eAA6iB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA7E3l0B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;;;;;;;;;qBAqE+wJ,CAAC;iBAA2B,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;;;;;;;;qBAAzqE,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAA8ogE,CAAC;;;;;;;;;EAvC/5lE;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAChD,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;;;;;;;;;qBA+B+wJ,CAAC;iBAA2B,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;;;;;;;;qBAAzqE,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAA8ogE,CAAC;;;;;;;;;GAD/5lE"}
1
+ {"version":3,"file":"create-session-hooks.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/create-session-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAO7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,wBAAwB;;;;;;;;;mBAGrC,CAAC;aAA2B,CAAC;aACjD,CAAC;eAA8B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;2BAwFgt4B,CAAC;;;;eAA6iB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA7Etz5B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACrC,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;;;;;;;;;qBAqE+wJ,CAAC;iBAA2B,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;;;;;;;;qBAAzqE,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAA8ogE,CAAC;;;;;;;;;EAvC/5lE;AAED,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAChD,GAAG,EAAE,aAAa,CAAC;IACnB,YAAY,EAAE,wBAAwB,CAAC;IACvC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;;;;;;;;;qBA+B+wJ,CAAC;iBAA2B,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;;;;;;;;qBAAzqE,CAAC;mBAAyB,CAAC;iBAAuB,CAAC;iBAAuB,CAAC;0BAAc,CAAC;uBAAiB,CAAC;;;;;;0BAA8ogE,CAAC;;;;;;;;;GAD/5lE"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-handlers.d.ts","sourceRoot":"","sources":["../../src/plugin/rpc-handlers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAWzE,OAAO,EACH,KAAK,eAAe,IAAI,QAAQ,EAGnC,MAAM,mCAAmC,CAAC;AAmB3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAQlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAavF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,+BAA+B,CAAC;AAUvC,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE;QAAE,0BAA0B,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AA2GD,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAK9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,CAAC,EAAE,iBAAiB,EAChC,iBAAiB,UAAO,GACzB,eAAe,CAsWjB;AAED;gFACgF;AAChF,wBAAgB,+BAA+B,CAC3C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,CAAC,EAAE,iBAAiB,EAChC,iBAAiB,UAAO,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAC9B,YAAY,CAAC,EAAE,iBAAiB,EAChC,iBAAiB,UAAO,GACzB,YAAY,CAiOd;AA4BD;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C,GACF,IAAI,CA6PN"}
1
+ {"version":3,"file":"rpc-handlers.d.ts","sourceRoot":"","sources":["../../src/plugin/rpc-handlers.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAWzE,OAAO,EACH,KAAK,eAAe,IAAI,QAAQ,EAGnC,MAAM,mCAAmC,CAAC;AAmB3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAQlF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAavF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAe,eAAe,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAEH,KAAK,uBAAuB,EAC/B,MAAM,+BAA+B,CAAC;AAUvC,MAAM,WAAW,iBAAiB;IAC9B,KAAK,CAAC,EAAE;QAAE,0BAA0B,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AA2GD,wBAAgB,oBAAoB,CAChC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAK9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,CAAC,EAAE,iBAAiB,EAChC,iBAAiB,UAAO,GACzB,eAAe,CAsWjB;AAED;gFACgF;AAChF,wBAAgB,+BAA+B,CAC3C,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,YAAY,CAAC,EAAE,iBAAiB,EAChC,iBAAiB,UAAO,GACzB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED,wBAAgB,iBAAiB,CAC7B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,qBAAqB,CAAC,EAAE,MAAM,EAC9B,YAAY,CAAC,EAAE,iBAAiB,EAChC,iBAAiB,UAAO,GACzB,YAAY,CAkOd;AA4BD;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC/C,GACF,IAAI,CA6PN"}
@@ -9,7 +9,7 @@ import {
9
9
  setRecompNote,
10
10
  setRecompStarting,
11
11
  setRecompTerminal
12
- } from "./index-k2ts0wk1.js";
12
+ } from "./index-axpym70t.js";
13
13
  import"./index-mg1yx1ph.js";
14
14
  import"./index-btj2qhmc.js";
15
15
  import"./index-rw0qrkvq.js";
@@ -134,6 +134,8 @@ export interface SidebarSnapshot {
134
134
  } | null;
135
135
  }
136
136
  export interface StatusDetail extends SidebarSnapshot {
137
+ /** User-owned model profile selected for this project, or null for the base config. */
138
+ activeProfile: string | null;
137
139
  tagCounter: number;
138
140
  activeTags: number;
139
141
  droppedTags: number;
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-types.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-types.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  import { execFileSync } from "node:child_process";
2
2
  import { readFileSync } from "node:fs";
3
3
  export type ProcessKind = "OpenCode server" | "OpenCode instance (TUI/CLI)" | "Pi" | "process";
4
+ /** Best-effort process details captured while validating a migration blocker. */
5
+ export interface ProcessProbeEvidence {
6
+ /** Epoch milliseconds, or null when the platform/probe cannot provide it. */
7
+ startTime: number | null;
8
+ /** The raw command line, or null when the platform/probe cannot provide it. */
9
+ commandLine: string | null;
10
+ }
4
11
  export interface RpcPortFileRecord {
5
12
  port: number;
6
13
  pid: number;
@@ -40,6 +47,10 @@ export type PidLiveness = "alive" | "dead" | "inconclusive";
40
47
  * `kill(pid, 0)` with EPERM even when the PID does not exist outside their view.
41
48
  */
42
49
  export declare function isPidAlive(pid: number): PidLiveness;
50
+ /** Read a process start time without changing the guard's liveness decision. */
51
+ export declare function readProcessStartTime(pid: number): number | null;
52
+ /** Capture the command and start-time probes used to explain a blocker. */
53
+ export declare function readProcessProbeEvidence(pid: number): ProcessProbeEvidence;
43
54
  /** Reuse the platform-gated command probes used by PID identity checks. */
44
55
  export declare function readProcessCommand(pid: number): string | null;
45
56
  /** Classify a process command without changing the liveness decision. */
@@ -55,7 +66,7 @@ export declare function classifyProcessKind(command: string | null | undefined):
55
66
  * not proof that this port record still belongs to OpenCode.
56
67
  */
57
68
  export type PidIdentityPlausibility = "plausible" | "implausible" | "inconclusive";
58
- export declare function isPidIdentityPlausible(record: RpcPortFileRecord): PidIdentityPlausibility;
69
+ export declare function isPidIdentityPlausible(record: RpcPortFileRecord, evidence?: ProcessProbeEvidence): PidIdentityPlausibility;
59
70
  export declare function __setRpcIdentityTestHooks(hooks: {
60
71
  readFileSync?: typeof readFileSync;
61
72
  execFileSync?: typeof execFileSync;
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-utils.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,6BAA6B,GAAG,IAAI,GAAG,SAAS,CAAC;AAE/F,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,sCAAsC;AACtC,wBAAgB,eAAe,CAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,SAAc,EACjB,UAAU,CAAC,EAAE,MAAM,GACpB,MAAM,CAGR;AAED,2DAA2D;AAC3D,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CASnD;AA6JD,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO7D;AA6CD,yEAAyE;AACzE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAgBnF;AAOD;;;;;;;;;GASG;AACH,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAEnF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,uBAAuB,CAwBzF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC7C,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,YAAY,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACxB,GAAG,IAAI,CAQP;AAED,wBAAgB,2BAA2B,IAAI,IAAI,CAQlD;AAmBD,0FAA0F;AAC1F,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,kBAAkB,CAgD3D;AAED,6FAA6F;AAC7F,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,SAAI,GAAG,iBAAiB,GAAG,IAAI,CA6B3F"}
1
+ {"version":3,"file":"rpc-utils.d.ts","sourceRoot":"","sources":["../../src/shared/rpc-utils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"status-detail-text.d.ts","sourceRoot":"","sources":["../../src/shared/status-detail-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,6FAA6F;AAC7F,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAyCvE"}
1
+ {"version":3,"file":"status-detail-text.d.ts","sourceRoot":"","sources":["../../src/shared/status-detail-text.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,6FAA6F;AAC7F,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CA0CvE"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-db.d.ts","sourceRoot":"","sources":["../../../src/tui/data/context-db.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AAc3D,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;sCACsC;AACtC,wBAAgB,YAAY,IAAI,qBAAqB,GAAG,IAAI,CAE3D;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,IAAI,IAAI,CAM/B;AAwFD,sDAAsD;AACtD,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAED,wDAAwD;AACxD,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAoDvB;AAYD,gEAAgE;AAChE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAchG;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,oFAAoF;AACpF,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAe5F;AAED,6CAA6C;AAC7C,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvE;AAED;mFACmF;AACnF,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxE;AAED;;iDAEiD;AACjD,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUhF;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ3D;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAkBrE;AAED,wEAAwE;AACxE,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAQtD"}
1
+ {"version":3,"file":"context-db.d.ts","sourceRoot":"","sources":["../../../src/tui/data/context-db.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AAc3D,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;sCACsC;AACtC,wBAAgB,YAAY,IAAI,qBAAqB,GAAG,IAAI,CAE3D;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,IAAI,IAAI,CAM/B;AAwFD,sDAAsD;AACtD,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAED,wDAAwD;AACxD,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAqDvB;AAYD,gEAAgE;AAChE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAchG;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,oFAAoF;AACpF,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAe5F;AAED,6CAA6C;AAC7C,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvE;AAED;mFACmF;AACnF,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxE;AAED;;iDAEiD;AACjD,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUhF;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ3D;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAkBrE;AAED,wEAAwE;AACxE,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAQtD"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-db.d.ts","sourceRoot":"","sources":["../../../src/tui-compiled/data/context-db.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AAc3D,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;sCACsC;AACtC,wBAAgB,YAAY,IAAI,qBAAqB,GAAG,IAAI,CAE3D;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,IAAI,IAAI,CAM/B;AAwFD,sDAAsD;AACtD,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAED,wDAAwD;AACxD,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAoDvB;AAYD,gEAAgE;AAChE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAchG;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,oFAAoF;AACpF,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAe5F;AAED,6CAA6C;AAC7C,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvE;AAED;mFACmF;AACnF,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxE;AAED;;iDAEiD;AACjD,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUhF;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ3D;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAkBrE;AAED,wEAAwE;AACxE,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAQtD"}
1
+ {"version":3,"file":"context-db.d.ts","sourceRoot":"","sources":["../../../src/tui-compiled/data/context-db.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEzF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC;AAc3D,2DAA2D;AAC3D,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;sCACsC;AACtC,wBAAgB,YAAY,IAAI,qBAAqB,GAAG,IAAI,CAE3D;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,IAAI,IAAI,CAM/B;AAwFD,sDAAsD;AACtD,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CA8B1B;AAED,wDAAwD;AACxD,wBAAsB,gBAAgB,CAClC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC,CAqDvB;AAYD,gEAAgE;AAChE,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAchG;AAED,MAAM,MAAM,sBAAsB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,oFAAoF;AACpF,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAe5F;AAED,6CAA6C;AAC7C,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQvE;AAED;mFACmF;AACnF,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQxE;AAED;;iDAEiD;AACjD,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUhF;AAED,gEAAgE;AAChE,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ3D;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAkBrE;AAED,wEAAwE;AACxE,wBAAsB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAQtD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/opencode-magic-context",
3
- "version": "0.39.0",
3
+ "version": "0.40.0",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",