@lexwdex-org/opencode-dcp 3.4.6 → 3.4.8

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 (140) hide show
  1. package/LICENSE +0 -0
  2. package/README.en.md +0 -0
  3. package/README.md +0 -0
  4. package/dist/index.d.ts +0 -0
  5. package/dist/index.d.ts.map +0 -0
  6. package/dist/index.js +18 -8
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/auth.d.ts +0 -0
  9. package/dist/lib/auth.d.ts.map +0 -0
  10. package/dist/lib/commands/compression-targets.d.ts +0 -0
  11. package/dist/lib/commands/compression-targets.d.ts.map +0 -0
  12. package/dist/lib/commands/context.d.ts +0 -0
  13. package/dist/lib/commands/context.d.ts.map +0 -0
  14. package/dist/lib/commands/decompress.d.ts +0 -0
  15. package/dist/lib/commands/decompress.d.ts.map +0 -0
  16. package/dist/lib/commands/help.d.ts +0 -0
  17. package/dist/lib/commands/help.d.ts.map +0 -0
  18. package/dist/lib/commands/index.d.ts +0 -0
  19. package/dist/lib/commands/index.d.ts.map +0 -0
  20. package/dist/lib/commands/manual.d.ts +0 -0
  21. package/dist/lib/commands/manual.d.ts.map +1 -1
  22. package/dist/lib/commands/recompress.d.ts +0 -0
  23. package/dist/lib/commands/recompress.d.ts.map +0 -0
  24. package/dist/lib/commands/stats.d.ts +0 -0
  25. package/dist/lib/commands/stats.d.ts.map +0 -0
  26. package/dist/lib/commands/sweep.d.ts +0 -0
  27. package/dist/lib/commands/sweep.d.ts.map +0 -0
  28. package/dist/lib/compress/external-inference.d.ts +0 -0
  29. package/dist/lib/compress/external-inference.d.ts.map +0 -0
  30. package/dist/lib/compress/index.d.ts +0 -0
  31. package/dist/lib/compress/index.d.ts.map +0 -0
  32. package/dist/lib/compress/message-utils.d.ts +0 -0
  33. package/dist/lib/compress/message-utils.d.ts.map +0 -0
  34. package/dist/lib/compress/message.d.ts +0 -0
  35. package/dist/lib/compress/message.d.ts.map +0 -0
  36. package/dist/lib/compress/pipeline.d.ts +0 -0
  37. package/dist/lib/compress/pipeline.d.ts.map +0 -0
  38. package/dist/lib/compress/protected-content.d.ts +0 -0
  39. package/dist/lib/compress/protected-content.d.ts.map +0 -0
  40. package/dist/lib/compress/range-utils.d.ts +0 -0
  41. package/dist/lib/compress/range-utils.d.ts.map +0 -0
  42. package/dist/lib/compress/range.d.ts +0 -0
  43. package/dist/lib/compress/range.d.ts.map +0 -0
  44. package/dist/lib/compress/search.d.ts +0 -0
  45. package/dist/lib/compress/search.d.ts.map +0 -0
  46. package/dist/lib/compress/state.d.ts +0 -0
  47. package/dist/lib/compress/state.d.ts.map +0 -0
  48. package/dist/lib/compress/timing.d.ts +0 -0
  49. package/dist/lib/compress/timing.d.ts.map +0 -0
  50. package/dist/lib/compress/types.d.ts +0 -0
  51. package/dist/lib/compress/types.d.ts.map +0 -0
  52. package/dist/lib/compress-permission.d.ts +0 -0
  53. package/dist/lib/compress-permission.d.ts.map +0 -0
  54. package/dist/lib/config-env-override.d.ts +0 -0
  55. package/dist/lib/config-env-override.d.ts.map +0 -0
  56. package/dist/lib/config.d.ts +0 -0
  57. package/dist/lib/config.d.ts.map +0 -0
  58. package/dist/lib/hooks.d.ts +0 -0
  59. package/dist/lib/hooks.d.ts.map +0 -0
  60. package/dist/lib/host-permissions.d.ts +0 -0
  61. package/dist/lib/host-permissions.d.ts.map +0 -0
  62. package/dist/lib/logger.d.ts +0 -0
  63. package/dist/lib/logger.d.ts.map +0 -0
  64. package/dist/lib/message-ids.d.ts +0 -0
  65. package/dist/lib/message-ids.d.ts.map +1 -1
  66. package/dist/lib/messages/index.d.ts +0 -0
  67. package/dist/lib/messages/index.d.ts.map +0 -0
  68. package/dist/lib/messages/inject/inject.d.ts +0 -0
  69. package/dist/lib/messages/inject/inject.d.ts.map +0 -0
  70. package/dist/lib/messages/inject/subagent-results.d.ts +0 -0
  71. package/dist/lib/messages/inject/subagent-results.d.ts.map +0 -0
  72. package/dist/lib/messages/inject/utils.d.ts +0 -0
  73. package/dist/lib/messages/inject/utils.d.ts.map +0 -0
  74. package/dist/lib/messages/priority.d.ts +0 -0
  75. package/dist/lib/messages/priority.d.ts.map +0 -0
  76. package/dist/lib/messages/prune.d.ts +0 -0
  77. package/dist/lib/messages/prune.d.ts.map +0 -0
  78. package/dist/lib/messages/query.d.ts +0 -0
  79. package/dist/lib/messages/query.d.ts.map +0 -0
  80. package/dist/lib/messages/reasoning-strip.d.ts +0 -0
  81. package/dist/lib/messages/reasoning-strip.d.ts.map +0 -0
  82. package/dist/lib/messages/shape.d.ts +0 -0
  83. package/dist/lib/messages/shape.d.ts.map +0 -0
  84. package/dist/lib/messages/sync.d.ts +0 -0
  85. package/dist/lib/messages/sync.d.ts.map +0 -0
  86. package/dist/lib/messages/utils.d.ts +0 -0
  87. package/dist/lib/messages/utils.d.ts.map +0 -0
  88. package/dist/lib/prompts/compress-message.d.ts +0 -0
  89. package/dist/lib/prompts/compress-message.d.ts.map +0 -0
  90. package/dist/lib/prompts/compress-range.d.ts +0 -0
  91. package/dist/lib/prompts/compress-range.d.ts.map +0 -0
  92. package/dist/lib/prompts/context-limit-nudge.d.ts +0 -0
  93. package/dist/lib/prompts/context-limit-nudge.d.ts.map +0 -0
  94. package/dist/lib/prompts/extensions/nudge.d.ts +2 -1
  95. package/dist/lib/prompts/extensions/nudge.d.ts.map +1 -1
  96. package/dist/lib/prompts/extensions/system.d.ts +0 -0
  97. package/dist/lib/prompts/extensions/system.d.ts.map +0 -0
  98. package/dist/lib/prompts/extensions/tool.d.ts +0 -0
  99. package/dist/lib/prompts/extensions/tool.d.ts.map +0 -0
  100. package/dist/lib/prompts/index.d.ts +0 -0
  101. package/dist/lib/prompts/index.d.ts.map +0 -0
  102. package/dist/lib/prompts/iteration-nudge.d.ts +0 -0
  103. package/dist/lib/prompts/iteration-nudge.d.ts.map +0 -0
  104. package/dist/lib/prompts/store.d.ts +0 -0
  105. package/dist/lib/prompts/store.d.ts.map +0 -0
  106. package/dist/lib/prompts/system.d.ts +0 -0
  107. package/dist/lib/prompts/system.d.ts.map +0 -0
  108. package/dist/lib/prompts/turn-nudge.d.ts +0 -0
  109. package/dist/lib/prompts/turn-nudge.d.ts.map +0 -0
  110. package/dist/lib/protected-patterns.d.ts +0 -0
  111. package/dist/lib/protected-patterns.d.ts.map +0 -0
  112. package/dist/lib/state/index.d.ts +0 -0
  113. package/dist/lib/state/index.d.ts.map +0 -0
  114. package/dist/lib/state/persistence.d.ts +0 -0
  115. package/dist/lib/state/persistence.d.ts.map +0 -0
  116. package/dist/lib/state/state.d.ts +0 -0
  117. package/dist/lib/state/state.d.ts.map +0 -0
  118. package/dist/lib/state/tool-cache.d.ts +0 -0
  119. package/dist/lib/state/tool-cache.d.ts.map +0 -0
  120. package/dist/lib/state/types.d.ts +0 -0
  121. package/dist/lib/state/types.d.ts.map +0 -0
  122. package/dist/lib/state/utils.d.ts +0 -0
  123. package/dist/lib/state/utils.d.ts.map +0 -0
  124. package/dist/lib/strategies/deduplication.d.ts +0 -0
  125. package/dist/lib/strategies/deduplication.d.ts.map +0 -0
  126. package/dist/lib/strategies/index.d.ts +0 -0
  127. package/dist/lib/strategies/index.d.ts.map +0 -0
  128. package/dist/lib/strategies/purge-errors.d.ts +0 -0
  129. package/dist/lib/strategies/purge-errors.d.ts.map +0 -0
  130. package/dist/lib/subagents/subagent-results.d.ts +0 -0
  131. package/dist/lib/subagents/subagent-results.d.ts.map +0 -0
  132. package/dist/lib/token-utils.d.ts +0 -0
  133. package/dist/lib/token-utils.d.ts.map +0 -0
  134. package/dist/lib/ui/notification.d.ts +0 -0
  135. package/dist/lib/ui/notification.d.ts.map +0 -0
  136. package/dist/lib/ui/utils.d.ts +0 -0
  137. package/dist/lib/ui/utils.d.ts.map +0 -0
  138. package/dist/lib/update.d.ts +0 -0
  139. package/dist/lib/update.d.ts.map +0 -0
  140. package/package.json +4 -4
package/LICENSE CHANGED
File without changes
package/README.en.md CHANGED
File without changes
package/README.md CHANGED
File without changes
package/dist/index.d.ts CHANGED
File without changes
File without changes
package/dist/index.js CHANGED
@@ -1993,6 +1993,9 @@ function assignMessageRefs(state, messages) {
1993
1993
  if (typeof rawMessageId !== "string" || rawMessageId.length === 0) {
1994
1994
  continue;
1995
1995
  }
1996
+ if (state.lastCompaction > 0 && message.info.time.created < state.lastCompaction && !state.messageIds.byRawId.has(rawMessageId)) {
1997
+ continue;
1998
+ }
1996
1999
  const existingRef = state.messageIds.byRawId.get(rawMessageId);
1997
2000
  if (existingRef) {
1998
2001
  if (state.messageIds.byRef.get(existingRef) !== rawMessageId) {
@@ -6121,9 +6124,11 @@ function buildCompressedBlockGuidance(state) {
6121
6124
  "- \u5982\u679C\u4F60\u9009\u62E9\u7684\u538B\u7F29\u8303\u56F4\u5305\u542B\u4EFB\u4F55\u5217\u51FA\u7684\u5757\uFF0C\u5728\u6458\u8981\u4E2D\u4F7F\u7528 `(bN)` \u6070\u597D\u5305\u542B\u6BCF\u4E2A\u5FC5\u9700\u7684\u5360\u4F4D\u7B26\u4E00\u6B21\u3002"
6122
6125
  ].join("\n");
6123
6126
  }
6124
- function buildAvailableMessageIdGuidance(state, messages) {
6127
+ function buildAvailableMessageIdGuidance(state, config, messages) {
6125
6128
  const visibleIds = new Set(
6126
- messages.filter((msg) => !isIgnoredUserMessage(msg) && !isMessageCompacted(state, msg)).map((msg) => msg.info.id)
6129
+ messages.filter(
6130
+ (msg) => !isIgnoredUserMessage(msg) && !isMessageCompacted(state, msg) && !isProtectedUserMessage(config, msg)
6131
+ ).map((msg) => msg.info.id)
6127
6132
  );
6128
6133
  const refs = [];
6129
6134
  for (const [ref, rawId] of state.messageIds.byRef) {
@@ -6143,7 +6148,7 @@ function buildAvailableMessageIdGuidance(state, messages) {
6143
6148
  return [
6144
6149
  "\u53EF\u7528\u6D88\u606F\u8FB9\u754C ID\uFF1A",
6145
6150
  `- \u5F53\u524D\u4E0A\u4E0B\u6587\u4E2D\u53EF\u4F5C\u4E3A compress \u8FB9\u754C\u7684\u5408\u6CD5\u6D88\u606F ID\uFF1A${refList}`,
6146
- "- \u53EA\u4ECE\u4EE5\u4E0A\u5217\u8868\u4E2D\u9009\u53D6 startId \u548C endId\u3002\u4E0D\u8981\u53D1\u660E\u3001\u5916\u63A8\u6216\u4F7F\u7528\u4E0D\u5728\u5217\u8868\u4E2D\u7684 ID\u3002"
6151
+ config.compress.mode === "message" ? "- \u53EA\u4ECE\u4EE5\u4E0A\u5217\u8868\u4E2D\u9009\u53D6 content[].messageId\u3002\u4E0D\u8981\u53D1\u660E\u3001\u5916\u63A8\u6216\u4F7F\u7528\u4E0D\u5728\u5217\u8868\u4E2D\u7684 ID\u3002" : "- \u53EA\u4ECE\u4EE5\u4E0A\u5217\u8868\u4E2D\u9009\u53D6 startId \u548C endId\u3002\u4E0D\u8981\u53D1\u660E\u3001\u5916\u63A8\u6216\u4F7F\u7528\u4E0D\u5728\u5217\u8868\u4E2D\u7684 ID\u3002"
6147
6152
  ].join("\n");
6148
6153
  }
6149
6154
  function renderMessagePriorityGuidance(priorityLabel, refs) {
@@ -6438,7 +6443,7 @@ function applyMessageModeAnchoredNudge(anchorMessageIds, messages, baseNudgeText
6438
6443
  function applyAnchoredNudges(state, config, messages, prompts, compressionPriorities) {
6439
6444
  const turnNudgeAnchors = collectTurnNudgeAnchors2(state, config, messages);
6440
6445
  if (config.compress.mode === "message") {
6441
- const availableMessageIdGuidance2 = buildAvailableMessageIdGuidance(state, messages);
6446
+ const availableMessageIdGuidance2 = buildAvailableMessageIdGuidance(state, config, messages);
6442
6447
  applyMessageModeAnchoredNudge(
6443
6448
  state.nudges.contextLimitAnchors,
6444
6449
  messages,
@@ -6463,7 +6468,7 @@ function applyAnchoredNudges(state, config, messages, prompts, compressionPriori
6463
6468
  return;
6464
6469
  }
6465
6470
  const compressedBlockGuidance = buildCompressedBlockGuidance(state);
6466
- const availableMessageIdGuidance = buildAvailableMessageIdGuidance(state, messages);
6471
+ const availableMessageIdGuidance = buildAvailableMessageIdGuidance(state, config, messages);
6467
6472
  applyRangeModeAnchoredNudge(
6468
6473
  state.nudges.contextLimitAnchors,
6469
6474
  messages,
@@ -7286,10 +7291,15 @@ var COMPRESS_TRIGGER_PROMPT = [
7286
7291
  "Follow the active compress mode, preserve all critical implementation details, and choose safe targets.",
7287
7292
  "Return after compress with a brief explanation of what content was compressed."
7288
7293
  ].join("\n\n");
7289
- function getTriggerPrompt(tool3, state, config, userFocus) {
7294
+ function getTriggerPrompt(tool3, state, config, messages, userFocus) {
7290
7295
  const base = COMPRESS_TRIGGER_PROMPT;
7291
7296
  const compressedBlockGuidance = config.compress.mode === "message" ? "" : buildCompressedBlockGuidance(state);
7292
- const sections = [base, compressedBlockGuidance];
7297
+ const availableMessageIdGuidance = buildAvailableMessageIdGuidance(
7298
+ state,
7299
+ config,
7300
+ messages
7301
+ );
7302
+ const sections = [base, availableMessageIdGuidance, compressedBlockGuidance];
7293
7303
  if (userFocus && userFocus.trim().length > 0) {
7294
7304
  sections.push(`Additional user focus:
7295
7305
  ${userFocus.trim()}`);
@@ -7317,7 +7327,7 @@ async function handleManualToggleCommand(ctx, modeArg) {
7317
7327
  logger.info("Manual mode toggled", { manualMode: state.manualMode });
7318
7328
  }
7319
7329
  async function handleManualTriggerCommand(ctx, tool3, userFocus) {
7320
- return getTriggerPrompt(tool3, ctx.state, ctx.config, userFocus);
7330
+ return getTriggerPrompt(tool3, ctx.state, ctx.config, ctx.messages, userFocus);
7321
7331
  }
7322
7332
  function applyPendingManualTrigger(state, messages, logger) {
7323
7333
  const pending = state.pendingManualTrigger;