opencode-acp 1.14.6 → 1.14.8-dev.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.
Files changed (93) hide show
  1. package/README.md +31 -25
  2. package/README.zh-CN.md +31 -25
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1944 -3039
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/commands/compression-targets.d.ts +0 -1
  7. package/dist/lib/commands/compression-targets.d.ts.map +1 -1
  8. package/dist/lib/commands/index.d.ts +1 -4
  9. package/dist/lib/commands/index.d.ts.map +1 -1
  10. package/dist/lib/commands/stats.d.ts +8 -4
  11. package/dist/lib/commands/stats.d.ts.map +1 -1
  12. package/dist/lib/compress/decompress.d.ts.map +1 -1
  13. package/dist/lib/compress/hide-consumed.d.ts +4 -0
  14. package/dist/lib/compress/hide-consumed.d.ts.map +1 -1
  15. package/dist/lib/compress/hide-failed.d.ts +3 -0
  16. package/dist/lib/compress/hide-failed.d.ts.map +1 -0
  17. package/dist/lib/compress/index.d.ts +1 -1
  18. package/dist/lib/compress/index.d.ts.map +1 -1
  19. package/dist/lib/compress/parts.d.ts +4 -0
  20. package/dist/lib/compress/parts.d.ts.map +1 -0
  21. package/dist/lib/compress/pipeline.d.ts +0 -1
  22. package/dist/lib/compress/pipeline.d.ts.map +1 -1
  23. package/dist/lib/compress/status.d.ts +15 -0
  24. package/dist/lib/compress/status.d.ts.map +1 -1
  25. package/dist/lib/config-validation.d.ts.map +1 -1
  26. package/dist/lib/config.d.ts +7 -11
  27. package/dist/lib/config.d.ts.map +1 -1
  28. package/dist/lib/hooks.d.ts.map +1 -1
  29. package/dist/lib/messages/filter/apply.d.ts +14 -0
  30. package/dist/lib/messages/filter/apply.d.ts.map +1 -0
  31. package/dist/lib/messages/filter/builtin/index.d.ts +2 -0
  32. package/dist/lib/messages/filter/builtin/index.d.ts.map +1 -0
  33. package/dist/lib/messages/filter/builtin/omo-context.d.ts +4 -0
  34. package/dist/lib/messages/filter/builtin/omo-context.d.ts.map +1 -0
  35. package/dist/lib/messages/filter/builtin/omo-mode-injection.d.ts +4 -0
  36. package/dist/lib/messages/filter/builtin/omo-mode-injection.d.ts.map +1 -0
  37. package/dist/lib/messages/filter/builtin/omo-system-reminder.d.ts +4 -0
  38. package/dist/lib/messages/filter/builtin/omo-system-reminder.d.ts.map +1 -0
  39. package/dist/lib/messages/filter/builtin/omo-task-directive.d.ts +4 -0
  40. package/dist/lib/messages/filter/builtin/omo-task-directive.d.ts.map +1 -0
  41. package/dist/lib/messages/filter/builtin/omo-todo-continuation.d.ts +4 -0
  42. package/dist/lib/messages/filter/builtin/omo-todo-continuation.d.ts.map +1 -0
  43. package/dist/lib/messages/filter/index.d.ts +6 -0
  44. package/dist/lib/messages/filter/index.d.ts.map +1 -0
  45. package/dist/lib/messages/filter/registry.d.ts +6 -0
  46. package/dist/lib/messages/filter/registry.d.ts.map +1 -0
  47. package/dist/lib/messages/filter/types.d.ts +88 -0
  48. package/dist/lib/messages/filter/types.d.ts.map +1 -0
  49. package/dist/lib/messages/inject/inject.d.ts.map +1 -1
  50. package/dist/lib/messages/inject/utils.d.ts +1 -5
  51. package/dist/lib/messages/inject/utils.d.ts.map +1 -1
  52. package/dist/lib/messages/priority.d.ts +1 -1
  53. package/dist/lib/messages/priority.d.ts.map +1 -1
  54. package/dist/lib/messages/query.d.ts +1 -1
  55. package/dist/lib/messages/query.d.ts.map +1 -1
  56. package/dist/lib/prompts/context-limit-nudge.d.ts +1 -1
  57. package/dist/lib/prompts/context-limit-nudge.d.ts.map +1 -1
  58. package/dist/lib/prompts/extensions/system.d.ts +0 -1
  59. package/dist/lib/prompts/extensions/system.d.ts.map +1 -1
  60. package/dist/lib/prompts/index.d.ts +1 -1
  61. package/dist/lib/prompts/index.d.ts.map +1 -1
  62. package/dist/lib/prompts/iteration-nudge.d.ts +1 -1
  63. package/dist/lib/prompts/iteration-nudge.d.ts.map +1 -1
  64. package/dist/lib/prompts/store.d.ts +1 -3
  65. package/dist/lib/prompts/store.d.ts.map +1 -1
  66. package/dist/lib/prompts/system.d.ts +1 -1
  67. package/dist/lib/prompts/system.d.ts.map +1 -1
  68. package/dist/lib/prompts/turn-nudge.d.ts +1 -1
  69. package/dist/lib/prompts/turn-nudge.d.ts.map +1 -1
  70. package/dist/lib/state/persistence.d.ts.map +1 -1
  71. package/dist/lib/state/rebuild.d.ts.map +1 -1
  72. package/dist/lib/state/state.d.ts +2 -2
  73. package/dist/lib/state/state.d.ts.map +1 -1
  74. package/dist/lib/state/tool-cache.d.ts.map +1 -1
  75. package/dist/lib/state/types.d.ts +0 -6
  76. package/dist/lib/state/types.d.ts.map +1 -1
  77. package/dist/lib/token-utils.d.ts +14 -0
  78. package/dist/lib/token-utils.d.ts.map +1 -1
  79. package/package.json +1 -1
  80. package/dist/lib/commands/decompress.d.ts +0 -12
  81. package/dist/lib/commands/decompress.d.ts.map +0 -1
  82. package/dist/lib/commands/help.d.ts +0 -17
  83. package/dist/lib/commands/help.d.ts.map +0 -1
  84. package/dist/lib/commands/manual.d.ts +0 -23
  85. package/dist/lib/commands/manual.d.ts.map +0 -1
  86. package/dist/lib/commands/recompress.d.ts +0 -12
  87. package/dist/lib/commands/recompress.d.ts.map +0 -1
  88. package/dist/lib/compress/message-utils.d.ts +0 -8
  89. package/dist/lib/compress/message-utils.d.ts.map +0 -1
  90. package/dist/lib/compress/message.d.ts +0 -4
  91. package/dist/lib/compress/message.d.ts.map +0 -1
  92. package/dist/lib/prompts/compress-message.d.ts +0 -2
  93. package/dist/lib/prompts/compress-message.d.ts.map +0 -1
@@ -9,6 +9,5 @@ export interface CompressionTarget {
9
9
  blocks: CompressionBlock[];
10
10
  }
11
11
  export declare function getActiveCompressionTargets(messagesState: PruneMessagesState): CompressionTarget[];
12
- export declare function getRecompressibleCompressionTargets(messagesState: PruneMessagesState, availableMessageIds: Set<string>): CompressionTarget[];
13
12
  export declare function resolveCompressionTarget(messagesState: PruneMessagesState, blockId: number): CompressionTarget | null;
14
13
  //# sourceMappingURL=compression-targets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compression-targets.d.ts","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AA8DD,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,kBAAkB,GAClC,iBAAiB,EAAE,CAMrB;AAED,wBAAgB,mCAAmC,CAC/C,aAAa,EAAE,kBAAkB,EACjC,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,GACjC,iBAAiB,EAAE,CA+BrB;AAED,wBAAgB,wBAAwB,CACpC,aAAa,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAkB1B"}
1
+ {"version":3,"file":"compression-targets.d.ts","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,gBAAgB,EAAE,CAAA;CAC7B;AA8DD,wBAAgB,2BAA2B,CACvC,aAAa,EAAE,kBAAkB,GAClC,iBAAiB,EAAE,CAMrB;AAED,wBAAgB,wBAAwB,CACpC,aAAa,EAAE,kBAAkB,EACjC,OAAO,EAAE,MAAM,GAChB,iBAAiB,GAAG,IAAI,CAkB1B"}
@@ -1,7 +1,4 @@
1
1
  export { handleContextCommand } from "./context";
2
- export { handleDecompressCommand } from "./decompress";
3
- export { handleHelpCommand } from "./help";
4
- export { applyPendingManualTrigger, handleManualToggleCommand, handleManualTriggerCommand, } from "./manual";
5
- export { handleRecompressCommand } from "./recompress";
6
2
  export { handleStatsCommand } from "./stats";
3
+ export type { StatsCommandContext } from "./stats";
7
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC1C,OAAO,EACH,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,GAC7B,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA"}
@@ -1,15 +1,19 @@
1
- /**
2
- * DCP Stats command handler.
3
- * Shows pruning statistics for the current session and all-time totals.
4
- */
5
1
  import type { Logger } from "../logger";
2
+ import type { PluginConfig } from "../config";
6
3
  import type { SessionState, WithParts } from "../state";
7
4
  export interface StatsCommandContext {
8
5
  client: any;
9
6
  state: SessionState;
7
+ config: PluginConfig;
10
8
  logger: Logger;
11
9
  sessionId: string;
12
10
  messages: WithParts[];
11
+ userInfo?: {
12
+ providerId?: string;
13
+ modelId?: string;
14
+ agent?: string;
15
+ variant?: string;
16
+ };
13
17
  }
14
18
  export declare function handleStatsCommand(ctx: StatsCommandContext): Promise<void>;
15
19
  //# sourceMappingURL=stats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAOvD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;CACxB;AAwED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4DhF"}
1
+ {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../lib/commands/stats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAIvD,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,GAAG,CAAA;IACX,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,QAAQ,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACJ;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../../lib/compress/decompress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAoB,KAAK,kBAAkB,EAAsB,MAAM,SAAS,CAAA;AAgRvF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CA4I5F"}
1
+ {"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../../lib/compress/decompress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAoB,KAAK,kBAAkB,EAAsB,MAAM,SAAS,CAAA;AA+QvF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CA4I5F"}
@@ -8,6 +8,10 @@ import type { SessionState, WithParts } from "../state";
8
8
  * compress tool-call PARTS whose blocks are no longer active. The message shell
9
9
  * survives (it may carry other parts); only the consumed compress call disappears.
10
10
  *
11
+ * If after removal the message contains only structural parts (step-start,
12
+ * step-finish, reasoning), it is spliced entirely — those carry no useful
13
+ * content once the compress call they wrapped is gone.
14
+ *
11
15
  * Block data (full summary, original messages) is preserved in session state and
12
16
  * remains recoverable via `decompress`.
13
17
  *
@@ -1 +1 @@
1
- {"version":3,"file":"hide-consumed.d.ts","sourceRoot":"","sources":["../../../lib/compress/hide-consumed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGvD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAoD5F"}
1
+ {"version":3,"file":"hide-consumed.d.ts","sourceRoot":"","sources":["../../../lib/compress/hide-consumed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGvD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CA8C5F"}
@@ -0,0 +1,3 @@
1
+ import type { WithParts } from "../state";
2
+ export declare function hideFailedCompressCalls(messages: WithParts[]): number;
3
+ //# sourceMappingURL=hide-failed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hide-failed.d.ts","sourceRoot":"","sources":["../../../lib/compress/hide-failed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAUzC,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAqDrE"}
@@ -1,9 +1,9 @@
1
1
  export type { ToolContext } from "./types";
2
- export { createCompressMessageTool } from "./message";
3
2
  export { createCompressRangeTool } from "./range";
4
3
  export { createDecompressTool } from "./decompress";
5
4
  export { createSearchContextTool } from "./search";
6
5
  export { createAcpStatusTool } from "./status";
7
6
  export { createAcpContextRecapTool } from "./recap";
8
7
  export { hideConsumedCompressCalls } from "./hide-consumed";
8
+ export { hideFailedCompressCalls } from "./hide-failed";
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/compress/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/compress/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare function hasMeaningfulContent(parts: {
2
+ type: string;
3
+ }[]): boolean;
4
+ //# sourceMappingURL=parts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../lib/compress/parts.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,OAAO,CAEvE"}
@@ -4,7 +4,6 @@ import type { SearchContext } from "./types";
4
4
  export interface CompressionSnapshot {
5
5
  messages: PruneMessagesState;
6
6
  stats: SessionStats;
7
- manualMode: SessionState["manualMode"];
8
7
  }
9
8
  export declare function snapshotCompressionState(state: SessionState): CompressionSnapshot;
10
9
  export declare function restoreCompressionState(state: SessionState, snapshot: CompressionSnapshot): void;
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../lib/compress/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAOzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;CACzC;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAMjF;AAED,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,mBAAmB,GAC9B,IAAI,CAIN;AAED,UAAU,UAAU;IAChB,GAAG,CAAC,KAAK,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACpC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;CAC/B;AAED,wBAAsB,cAAc,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CAkC1B;AAED,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,SAAS,EAAE,EACxB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACnC,WAAW,EAAE,SAAS,EAAE,EACxB,KAAK,EAAE,YAAY,GACpB,MAAM,GAAG,IAAI,CAUf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GACnE,KAAK,GAAG,IAAI,CAyCd;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,SAAS,EAAE,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,OAAO,WAAW,EAAE,cAAc,GAC7C,GAAG,CAAC,MAAM,CAAC,CAuCb;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAC7B,WAAW,EAAE,SAAS,EAAE,EACxB,SAAS,EAAE,OAAO,GACnB,KAAK,GAAG,IAAI,CA6Bd"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../../lib/compress/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAOzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,KAAK,EAAE,YAAY,CAAA;CACtB;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG,mBAAmB,CAKjF;AAED,wBAAgB,uBAAuB,CACnC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,mBAAmB,GAC9B,IAAI,CAGN;AAED,UAAU,UAAU;IAChB,GAAG,CAAC,KAAK,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAA;QAClB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KACpC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IACxC,SAAS,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,SAAS,EAAE,CAAA;IACxB,aAAa,EAAE,aAAa,CAAA;CAC/B;AAED,wBAAsB,cAAc,CAChC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC,CA2B1B;AAED,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,SAAS,EAAE,EACxB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,GAC/B,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACnC,WAAW,EAAE,SAAS,EAAE,EACxB,KAAK,EAAE,YAAY,GACpB,MAAM,GAAG,IAAI,CAUf;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,KAAK,CAAC;IAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GACnE,KAAK,GAAG,IAAI,CAyCd;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,SAAS,EAAE,EACxB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,OAAO,WAAW,EAAE,cAAc,GAC7C,GAAG,CAAC,MAAM,CAAC,CAuCb;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAC/B,GAAG,EAAE,WAAW,EAChB,iBAAiB,EAAE,MAAM,EAAE,EAAE,EAC7B,WAAW,EAAE,SAAS,EAAE,EACxB,SAAS,EAAE,OAAO,GACnB,KAAK,GAAG,IAAI,CA6Bd"}
@@ -1,4 +1,19 @@
1
1
  import { tool } from "@opencode-ai/plugin";
2
2
  import { type ToolFactoryContext } from "./types";
3
+ import type { WithParts } from "../state/types";
4
+ import type { SessionState } from "../state/types";
5
+ import type { PluginConfig } from "../config";
6
+ export interface StatusRenderContext {
7
+ state: SessionState;
8
+ config?: PluginConfig;
9
+ }
10
+ export interface StatusReportOptions {
11
+ scope?: "compressed" | "uncompressed";
12
+ view?: "ranges" | "messages";
13
+ tool?: string;
14
+ sort?: "size" | "time" | "tool" | "age";
15
+ limit?: number;
16
+ }
17
+ export declare function buildStatusReport(renderCtx: StatusRenderContext, rawMessages: WithParts[], options?: StatusReportOptions): string;
3
18
  export declare function createAcpStatusTool(factoryCtx: ToolFactoryContext): ReturnType<typeof tool>;
4
19
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../lib/compress/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAoB,KAAK,kBAAkB,EAAsB,MAAM,SAAS,CAAA;AA8dvF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAoG3F"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../lib/compress/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAoB,KAAK,kBAAkB,EAAsB,MAAM,SAAS,CAAA;AAEvF,OAAO,KAAK,EAAoB,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAiH7C,MAAM,WAAW,mBAAmB;IAChC,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,CAAC,EAAE,YAAY,CAAA;CACxB;AAiXD,MAAM,WAAW,mBAAmB;IAChC,KAAK,CAAC,EAAE,YAAY,GAAG,cAAc,CAAA;IACrC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,mBAAmB,EAC9B,WAAW,EAAE,SAAS,EAAE,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC9B,MAAM,CA8CR;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,CAkE3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../../lib/config-validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,aA+D5B,CAAA;AAoBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,EAAE,CA8qBlF"}
1
+ {"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../../lib/config-validation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,aA4D5B,CAAA;AAoBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,EAAE,CAgnBlF"}
@@ -1,8 +1,6 @@
1
1
  import type { PluginInput } from "@opencode-ai/plugin";
2
2
  type Permission = "ask" | "allow" | "deny";
3
- type CompressMode = "range" | "message";
4
3
  export interface CompressConfig {
5
- mode: CompressMode;
6
4
  permission: Permission;
7
5
  showCompression: boolean;
8
6
  summaryBuffer: boolean;
@@ -38,13 +36,6 @@ export interface Commands {
38
36
  enabled: boolean;
39
37
  protectedTools: string[];
40
38
  }
41
- export interface ManualModeConfig {
42
- enabled: boolean;
43
- }
44
- export interface TurnProtection {
45
- enabled: boolean;
46
- turns: number;
47
- }
48
39
  export interface ExperimentalConfig {
49
40
  allowSubAgents: boolean;
50
41
  customPrompts: boolean;
@@ -70,6 +61,12 @@ export interface QualityGateConfig {
70
61
  algorithm: string;
71
62
  algorithms: QualityGateAlgorithmConfigs;
72
63
  }
64
+ export interface MessageFiltersConfig {
65
+ enabled: boolean;
66
+ filters: Record<string, {
67
+ enabled: boolean;
68
+ }>;
69
+ }
73
70
  export interface PluginConfig {
74
71
  enabled: boolean;
75
72
  autoUpdate: boolean;
@@ -77,13 +74,12 @@ export interface PluginConfig {
77
74
  pruneNotification: "off" | "minimal" | "detailed";
78
75
  pruneNotificationType: "chat" | "toast";
79
76
  commands: Commands;
80
- manualMode: ManualModeConfig;
81
- turnProtection: TurnProtection;
82
77
  experimental: ExperimentalConfig;
83
78
  protectedFilePatterns: string[];
84
79
  compress: CompressConfig;
85
80
  gc: GCConfig;
86
81
  qualityGate: QualityGateConfig;
82
+ messageFilters: MessageFiltersConfig;
87
83
  }
88
84
  type CompressOverride = Partial<CompressConfig>;
89
85
  export { VALID_CONFIG_KEYS, getInvalidConfigKeys, validateConfigTypes, type ValidationError } from "./config-validation";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAItD,KAAK,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAE1C,MAAM,WAAW,cAAc;IAC3B,UAAU,EAAE,UAAU,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,OAAO,CAAA;IACtB,eAAe,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IACtC,eAAe,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;IACtD,cAAc,EAAE,MAAM,CAAA;IACtB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,uBAAuB,EAAE,MAAM,CAAA;IAC/B,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;IACpB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,yBAAyB,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IAChD,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,EAAE,MAAM,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,0EAA0E;IAC1E,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,mEAAmE;IACnE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CACpC;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IACnC,aAAa,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IACpC,cAAc,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;CACxC;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,UAAU,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,uBAAuB,EAAE,MAAM,GAAG,GAAG,MAAM,GAAG,CAAA;IAC9C,YAAY,EAAE,kBAAkB,CAAA;CACnC;AAED,MAAM,WAAW,2BAA2B;IACxC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,2BAA2B,CAAA;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAChD;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,OAAO,CAAA;IACd,iBAAiB,EAAE,KAAK,GAAG,SAAS,GAAG,UAAU,CAAA;IACjD,qBAAqB,EAAE,MAAM,GAAG,OAAO,CAAA;IACvC,QAAQ,EAAE,QAAQ,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;IAChC,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,EAAE,cAAc,CAAA;IACxB,EAAE,EAAE,QAAQ,CAAA;IACZ,WAAW,EAAE,iBAAiB,CAAA;IAC9B,cAAc,EAAE,oBAAoB,CAAA;CACvC;AAED,KAAK,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AA2B/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAkOxH,wBAAgB,aAAa,CACzB,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,EAC9B,QAAQ,CAAC,EAAE,gBAAgB,GAC5B,YAAY,CAAC,UAAU,CAAC,CAoC1B;AA2ID,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAsCxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAe5C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAoBhE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAGhE,OAAO,EAA2E,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA+B5H,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,WAAW,IAGhB,OAAO;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CACzE,EACD,QAAQ;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,mBAuCnC;AAED,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,WAAW,EACpB,eAAe,EAAE,sBAAsB,IAEzB,OAAO,EAAE,EAAE,QAAQ;IAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,mBAgH7D;AAED,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,sBAAsB,IAGnC,OAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAChE,QAAQ;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,mBAgG/B;AAED,wBAAgB,yBAAyB,KAEjC,QAAQ;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAChE,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,mBAI/B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,IAC/D,OAAO;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,mBAuFtC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAe5C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAchE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAMhE,OAAO,EAA2E,KAAK,oBAAoB,EAAE,MAAM,SAAS,CAAA;AA+B5H,wBAAgB,yBAAyB,CACrC,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,WAAW,IAGhB,OAAO;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CACzE,EACD,QAAQ;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,mBAsCnC;AAED,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,WAAW,EACpB,eAAe,EAAE,sBAAsB,IAEzB,OAAO,EAAE,EAAE,QAAQ;IAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;CAAE,mBAqH7D;AAED,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,sBAAsB,IAGnC,OAAO;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAChE,QAAQ;IAAE,KAAK,EAAE,GAAG,EAAE,CAAA;CAAE,mBA6C/B;AAED,wBAAgB,yBAAyB,KAEjC,QAAQ;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAChE,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,mBAI/B;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,IAC/D,OAAO;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,mBAuFtC"}
@@ -0,0 +1,14 @@
1
+ import type { WithParts } from "../../state";
2
+ import type { Logger } from "../../logger";
3
+ import type { MessageFiltersConfig } from "./types";
4
+ export interface ApplyResult {
5
+ partsFiltered: number;
6
+ partsDropped: number;
7
+ partsModified: number;
8
+ }
9
+ export declare function applyMessageFilters(messages: WithParts[], config: MessageFiltersConfig | undefined, logger: Logger, ctx: {
10
+ sessionId: string;
11
+ isSubAgent: boolean;
12
+ modelContextLimit?: number;
13
+ }): ApplyResult;
14
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../lib/messages/filter/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAuC,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAGtG,MAAM,WAAW,WAAW;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACxB;AAED,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,SAAS,EAAE,EACrB,MAAM,EAAE,oBAAoB,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E,WAAW,CAoIb"}
@@ -0,0 +1,2 @@
1
+ export declare function ensureBuiltinFiltersRegistered(): void;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../lib/messages/filter/builtin/index.ts"],"names":[],"mappings":"AAgBA,wBAAgB,8BAA8B,IAAI,IAAI,CAMrD"}
@@ -0,0 +1,4 @@
1
+ import type { MessageFilter } from "../types";
2
+ declare const OMO_CONTEXT_FILTER: MessageFilter;
3
+ export { OMO_CONTEXT_FILTER };
4
+ //# sourceMappingURL=omo-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omo-context.d.ts","sourceRoot":"","sources":["../../../../../lib/messages/filter/builtin/omo-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,UAAU,CAAA;AAIjF,QAAA,MAAM,kBAAkB,EAAE,aAezB,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { MessageFilter } from "../types";
2
+ declare const OMO_MODE_FILTER: MessageFilter;
3
+ export { OMO_MODE_FILTER };
4
+ //# sourceMappingURL=omo-mode-injection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omo-mode-injection.d.ts","sourceRoot":"","sources":["../../../../../lib/messages/filter/builtin/omo-mode-injection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,UAAU,CAAA;AAIjF,QAAA,MAAM,eAAe,EAAE,aAatB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { MessageFilter } from "../types";
2
+ declare const OMO_SYSTEM_REMINDER_FILTER: MessageFilter;
3
+ export { OMO_SYSTEM_REMINDER_FILTER };
4
+ //# sourceMappingURL=omo-system-reminder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omo-system-reminder.d.ts","sourceRoot":"","sources":["../../../../../lib/messages/filter/builtin/omo-system-reminder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,UAAU,CAAA;AA8BjF,QAAA,MAAM,0BAA0B,EAAE,aA0CjC,CAAA;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { MessageFilter } from "../types";
2
+ declare const OMO_TASK_FILTER: MessageFilter;
3
+ export { OMO_TASK_FILTER };
4
+ //# sourceMappingURL=omo-task-directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omo-task-directive.d.ts","sourceRoot":"","sources":["../../../../../lib/messages/filter/builtin/omo-task-directive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,UAAU,CAAA;AAIjF,QAAA,MAAM,eAAe,EAAE,aAetB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ import type { MessageFilter } from "../types";
2
+ declare const OMO_TODO_FILTER: MessageFilter;
3
+ export { OMO_TODO_FILTER };
4
+ //# sourceMappingURL=omo-todo-continuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omo-todo-continuation.d.ts","sourceRoot":"","sources":["../../../../../lib/messages/filter/builtin/omo-todo-continuation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,UAAU,CAAA;AAKjF,QAAA,MAAM,eAAe,EAAE,aAatB,CAAA;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type { MessageFilter, MessageFilterContext, FilterResult, MessageFilterConfig, MessageFiltersConfig, } from "./types";
2
+ export { registerMessageFilter, getMessageFilter, listMessageFilters, clearMessageFilters } from "./registry";
3
+ export { applyMessageFilters } from "./apply";
4
+ export type { ApplyResult } from "./apply";
5
+ export { ensureBuiltinFiltersRegistered } from "./builtin";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../lib/messages/filter/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,GACvB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAC7G,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { MessageFilter } from "./types";
2
+ export declare function registerMessageFilter(filter: MessageFilter): void;
3
+ export declare function getMessageFilter(name: string): MessageFilter | undefined;
4
+ export declare function listMessageFilters(): MessageFilter[];
5
+ export declare function clearMessageFilters(): void;
6
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../lib/messages/filter/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAI5C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CASjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAExE;AAED,wBAAgB,kBAAkB,IAAI,aAAa,EAAE,CAEpD;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Message Filter — pluggable system for stripping/deduplicating third-party
3
+ * plugin injections (OMO system-reminders, background task notifications, etc.)
4
+ * from the visible context before ACP processes them.
5
+ *
6
+ * Filters run BEFORE assignMessageRefs, so filtered content never gets message
7
+ * refs and is never counted toward context usage or compression triggers.
8
+ */
9
+ /**
10
+ * Context passed to each registered filter for a single text part.
11
+ */
12
+ export interface MessageFilterContext {
13
+ /** The text content of this part. */
14
+ text: string;
15
+ /** Role of the containing message ("user" | "assistant" | "system"). */
16
+ role: string;
17
+ /** Session ID (may be empty for ephemeral state). */
18
+ sessionId: string;
19
+ /** Whether this is a subagent session. */
20
+ isSubAgent: boolean;
21
+ /** 0-based index of this message in the visible messages array. */
22
+ messageIndex: number;
23
+ /** Total number of visible messages. */
24
+ totalMessages: number;
25
+ /** Tool name if this part is a tool call (e.g. "bash", "read"). */
26
+ toolName?: string;
27
+ /** Model context limit (for threshold-based filtering). */
28
+ modelContextLimit?: number;
29
+ }
30
+ /**
31
+ * Result returned by a filter for a single text part.
32
+ */
33
+ export interface FilterResult {
34
+ /** What to do with this text part. */
35
+ action: "keep" | "modify" | "drop";
36
+ /** Replacement text when action is "modify". Ignored for "keep" and "drop". */
37
+ text?: string;
38
+ /** Human-readable reason for logging/auditing. */
39
+ reason?: string;
40
+ }
41
+ /**
42
+ * A pluggable message filter. Filters are registered via {@link registerMessageFilter}
43
+ * and called by {@link applyMessageFilters} during the message transform pipeline.
44
+ *
45
+ * Filters MUST be pure and side-effect-free: they receive a snapshot of the
46
+ * text and return a decision. They MUST NOT mutate the input context.
47
+ *
48
+ * If a filter returns "drop", the text part is emptied (set to ""). If ALL
49
+ * text parts in a message become empty after filtering, the message itself
50
+ * is not removed (ACP's existing dropEmptyMessages handles that downstream).
51
+ */
52
+ export interface MessageFilter {
53
+ /** Unique name (used in config to enable/disable). */
54
+ name: string;
55
+ /** Semver version (for breaking-change detection). */
56
+ version: string;
57
+ /** Human-readable description. */
58
+ description: string;
59
+ /**
60
+ * Evaluate whether to keep, modify, or drop this text part.
61
+ * Called once per text part per message.
62
+ */
63
+ filter(ctx: MessageFilterContext): FilterResult;
64
+ /**
65
+ * When true, applyMessageFilters keeps only the LAST matching message
66
+ * and drops all earlier matches. Useful for repeating directives
67
+ * (e.g., TODO CONTINUATION) where only the latest is relevant.
68
+ * The filter() function still runs per-part to identify matches;
69
+ * the dedup pass then empties earlier occurrences.
70
+ */
71
+ keepLastOnly?: boolean;
72
+ }
73
+ /**
74
+ * Per-filter configuration: whether the filter is enabled.
75
+ */
76
+ export type MessageFilterConfig = Record<string, {
77
+ enabled: boolean;
78
+ }>;
79
+ /**
80
+ * Top-level configuration for the message filter subsystem.
81
+ */
82
+ export interface MessageFiltersConfig {
83
+ /** Master switch. When false, no filters run. */
84
+ enabled: boolean;
85
+ /** Per-filter enable/disable. Keys are filter names. */
86
+ filters: MessageFilterConfig;
87
+ }
88
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../lib/messages/filter/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,0CAA0C;IAC1C,UAAU,EAAE,OAAO,CAAA;IACnB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAA;IACrB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,sCAAsC;IACtC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAClC,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,aAAa;IAC1B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAA;IACf,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,oBAAoB,GAAG,YAAY,CAAA;IAC/C;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAA;AAEtE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,iDAAiD;IACjD,OAAO,EAAE,OAAO,CAAA;IAChB,wDAAwD;IACxD,OAAO,EAAE,mBAAmB,CAAA;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAgEzD,eAAO,MAAM,oBAAoB,GAC7B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,SAAS,cAAc,EACvB,wBAAwB,sBAAsB,EAC9C,cAAc,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACpC,oBAAoB,MAAM,KAC3B,IAwgBF,CAAA;AAoCD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACnB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CA6CjG;AAMD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBzF;AAuBD,eAAO,MAAM,gBAAgB,GACzB,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,EACrB,wBAAwB,sBAAsB,KAC/C,IAoEF,CAAA"}
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/inject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AA+DzD,eAAO,MAAM,oBAAoB,GAC7B,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,SAAS,cAAc,EACvB,wBAAwB,sBAAsB,EAC9C,cAAc,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACpC,oBAAoB,MAAM,KAC3B,IA2gBF,CAAA;AAgBD,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACnB;AAOD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CA6CjG;AAMD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBzF;AAuBD,eAAO,MAAM,gBAAgB,GACzB,OAAO,YAAY,EACnB,QAAQ,YAAY,EACpB,UAAU,SAAS,EAAE,EACrB,wBAAwB,sBAAsB,KAC/C,IAiEF,CAAA"}
@@ -44,11 +44,6 @@ export declare function computeShouldNudge(params: {
44
44
  }): NudgeDecision;
45
45
  export declare function resolveAdaptiveNudgeGrowth(modelContextLimit: number | undefined): number;
46
46
  export declare function addAnchor(anchorMessageIds: Set<string>, anchorMessageId: string, anchorMessageIndex: number, messages: WithParts[], interval: number): boolean;
47
- /**
48
- * Build tiered context usage guidance based on actual config thresholds.
49
- * Shared by inject.ts (suffix message) and utils.ts (anchored nudges).
50
- */
51
- export declare function buildContextUsageGuidance(config: PluginConfig, currentTokens?: number, modelContextLimit?: number): string;
52
47
  export declare function applyAnchoredNudges(state: SessionState, config: PluginConfig, messages: WithParts[], prompts: RuntimePrompts, compressionPriorities?: CompressionPriorityMap, currentTokens?: number, modelContextLimit?: number, suffixMessage?: WithParts | null): void;
53
48
  export interface ContextComposition {
54
49
  toolTokens: number;
@@ -56,6 +51,7 @@ export interface ContextComposition {
56
51
  summaryTokens: number;
57
52
  messageTokens: number;
58
53
  textTokens: number;
54
+ systemTokens: number;
59
55
  protectedTokens: number;
60
56
  total: number;
61
57
  largestRanges: {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface CompressionPriorityEntry {
7
7
  priority: MessagePriority;
8
8
  }
9
9
  export type CompressionPriorityMap = Map<string, CompressionPriorityEntry>;
10
- export declare function buildPriorityMap(config: PluginConfig, state: SessionState, messages: WithParts[]): CompressionPriorityMap;
10
+ export declare function buildPriorityMap(_config: PluginConfig, _state: SessionState, _messages: WithParts[]): CompressionPriorityMap;
11
11
  export declare function classifyMessagePriority(tokenCount: number): MessagePriority;
12
12
  export declare function listPriorityRefsBeforeIndex(messages: WithParts[], priorities: CompressionPriorityMap, anchorIndex: number, priority: MessagePriority): string[];
13
13
  //# sourceMappingURL=priority.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../lib/messages/priority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMvD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEvD,MAAM,WAAW,wBAAwB;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;AAE1E,wBAAgB,gBAAgB,CAC5B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,SAAS,EAAE,GACtB,sBAAsB,CAsCxB;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAU3E;AAED,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,SAAS,EAAE,EACrB,UAAU,EAAE,sBAAsB,EAClC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,eAAe,GAC1B,MAAM,EAAE,CAqBV"}
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../lib/messages/priority.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAKvD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEvD,MAAM,WAAW,wBAAwB;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,eAAe,CAAA;CAC5B;AAED,MAAM,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAA;AAE1E,wBAAgB,gBAAgB,CAC5B,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,EAAE,GACvB,sBAAsB,CAExB;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAU3E;AAED,wBAAgB,2BAA2B,CACvC,QAAQ,EAAE,SAAS,EAAE,EACrB,UAAU,EAAE,sBAAsB,EAClC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,eAAe,GAC1B,MAAM,EAAE,CAqBV"}
@@ -16,5 +16,5 @@ export declare const messageHasCompress: (message: WithParts) => boolean;
16
16
  */
17
17
  export declare const messageHasCompressAttempt: (message: WithParts) => boolean;
18
18
  export declare const isIgnoredUserMessage: (message: WithParts) => boolean;
19
- export declare function isProtectedUserMessage(config: PluginConfig, message: WithParts): boolean;
19
+ export declare function isProtectedUserMessage(_config: PluginConfig, message: WithParts): boolean;
20
20
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../lib/messages/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAG9D;AAED,eAAO,MAAM,kBAAkB,GAC3B,UAAU,SAAS,EAAE,EACrB,aAAa,MAAM,KACpB,SAAS,GAAG,IAYd,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,KAAG,OAcvD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,SAAS,KAAG,OAW9D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,KAAG,OAqBzD,CAAA;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAWxF"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../lib/messages/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAGzC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAG9D;AAED,eAAO,MAAM,kBAAkB,GAC3B,UAAU,SAAS,EAAE,EACrB,aAAa,MAAM,KACpB,SAAS,GAAG,IAYd,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,KAAG,OAcvD,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,GAAI,SAAS,SAAS,KAAG,OAW9D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,KAAG,OAqBzD,CAAA;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAMzF"}
@@ -1,2 +1,2 @@
1
- export declare const CONTEXT_LIMIT_NUDGE = "\n<system-reminder>\n\u26A0\uFE0F Context limit reached \u2014 time to compress the largest ranges you no longer need. Prioritize completed tool outputs and resolved work. You can decompress specific blocks later if you need details. Keeping context lean helps you stay accurate.\n\nIf mid-atomic-operation, finish that step first, then compress.\n\nHOW TO CALL COMPRESS:\n{\n \"topic\": \"Short Label\",\n \"content\": [\n {\n \"startId\": \"<ID from early in this conversation>\",\n \"endId\": \"<ID from later in this conversation>\",\n \"summary\": \"Complete technical summary of everything in the range\"\n }\n ]\n}\n\n\u26A0\uFE0F ID RULES \u2014 MOST COMMON CAUSE OF ERRORS:\n- ONLY use IDs you can see in tags in the messages ABOVE.\n- Do NOT copy IDs from this example. Do NOT invent IDs.\n- Do NOT use IDs from compressed block summaries \u2014 they are stale.\n- startId must appear BEFORE endId in the conversation.\n\nHOW TO COMPRESS\n\nWhen you call `compress`, the summary you write becomes the only record of the replaced conversation. Make it self-contained and complete: every user request, experiment purpose, and work task in the range must be accurately captured. A later reader (or you, after decompressing) should be able to continue the task WITHOUT needing the original.\n\nKEEP VERBATIM \u2014 never paraphrase or abbreviate these:\n- Full file paths with line numbers, directory prefix on every mention (`lib/hooks.ts:347`, `src/index.ts:12-18`, `gatenet_v3/model.py:45`). Never abbreviate to a bare filename (`hooks.ts`, `model.py`) \u2014 they are ambiguous and cannot be grepped or decompressed-to later.\n- Function, class, and type signatures (exact names, params, return types) AND critical code lines that encode logic \u2014 the line that IS the finding, not just the function name (e.g. `kv_keys += define_gate * a_key[i](emb)` is more useful than \"see model_kvnet.py\").\n- Error messages and stack traces (exact text \u2014 you need the literal string to grep for it later).\n- Key details from reports and analyses \u2014 not just the conclusion. Keep the comparison numbers and the mechanism, not \"X is worse\" alone (write \"1.76\u00D7 PPL gap because KV store is static\", not \"KVNet underperforms\").\n- Decisions and their rationale (\"chose X over Y because Z\" \u2014 the \"because\" is load-bearing; without it the decision looks arbitrary).\n- Constraints discovered (\"must support Node 22\", \"no new dependencies\", \"AGENTS.md forbids `as any`\").\n- Exact values: versions, config keys, thresholds, magic numbers.\n- User intent \u2014 quote short user messages verbatim. When the message is too long to quote, preserve intent with extra care: do not change scope, constraints, priorities, acceptance criteria, or requested outcomes. Mark them clearly as past quotes (e.g., \"User said: ...\"), not as current directives. Losing these changes the task itself.\n- The user's overall goal and any changes to it \u2014 the big-picture objective plus how it evolved during the compressed range. Each summary must reflect the goal as it stood at the end of the range, including pivots (e.g., \"initially: fix bug X \u2192 pivoted to: refactor module Y after discovering root cause\"). Losing the goal or its evolution makes all subsequent work appear unmotivated.\n- Purpose behind each significant action \u2014 preserve not just what was done but why: the hypothesis behind each experiment, the question behind each exploration, the task goal behind each work action. Without purpose, the summary reads as disconnected technical steps with no through-line.\n- Open questions and unresolved TODOs \u2014 losing these changes what work appears to remain.\n- Message refs of key anchors (`m00420`, `m00510\u2013m00520`) \u2014 they let you or a later reader jump back via decompress to the exact original.\n\nDROP \u2014 extract the signal, discard the vessel:\n- Verbose logs (build/test/`npm` output) once you have captured the error line or the result.\n- Duplicate file reads once the needed content is recorded.\n- Consumed exploration \u2014 search hits, agent return values, successful tool outputs \u2014 once you have extracted the facts you need (same rule as dead-ends, but nothing went wrong; the content is simply spent).\n- Dead-end exploration \u2014 but PRESERVE the lesson in one line: \"tried X, failed because Y\".\n- Back-and-forth discussion and self-corrections once the final position is captured (keep the outcome, drop the journey to it).\n- Repeated status checks (`git status`, `ls`) once state is known.\n\nFor each significant item you DROP (scripts, reports, large analyses, long tool outputs), add a one-line CONTENT description of what it covers \u2014 not where it lives. Bad: \"probe script at /path/probe_kvnet.py\". Good: \"probe_kvnet.py: tests n-gram baseline, generation quality, long-range dependency, position sensitivity, op pipeline, QUERY attention.\" This lets a later decompress target the right block by relevance, not by guessing locations.\n\nKEEP MARKERS: `[[KEEP:mNNNNN]]` expands original message content into the summary (truncated to a max length). Do NOT use KEEP for verbose command output, diagnostic scripts, log dumps, or any content whose value is in the conclusion rather than the raw output \u2014 summarize these or use `[[REF:mNNNNN|desc]]` instead.\n\nPRIORITY \u2014 when the summary must be compact, preserve in this order:\n1. User's overall goal, goal evolution, intent, and hard constraints (losing these changes the task).\n2. Decisions and rationale.\n3. Exact technical artifacts: paths, signatures, errors, values.\n4. Conclusions and key findings.\n5. Lessons learned: what failed and why.\n\nWrite dense, scannable bullets \u2014 not narrative prose. If the range spans distinct concerns (request \u2192 findings \u2192 decision), group bullets under short thematic headers so a reader can scan to the part they need. Every line must earn its place. Do not mimic the style of existing summaries in context; follow these rules.\n\nRANGE STRATEGY:\n- Prefer one large range over multiple small ones.\n- Compress OLDER resolved history first. Keep recent active work.\n</system-reminder>\n";
1
+ export declare const CONTEXT_LIMIT_NUDGE = "\n<system-reminder>\n\u26A0\uFE0F Context limit reached \u2014 time to compress the largest ranges you no longer need. Prioritize completed tool outputs and resolved work. You can decompress specific blocks later if you need details. Keeping context lean helps you stay accurate.\n\nIf mid-atomic-operation, finish that step first, then compress.\n\nHOW TO CALL COMPRESS:\n{\n \"topic\": \"Short Label\",\n \"content\": [\n {\n \"startId\": \"<ID from early in this conversation>\",\n \"endId\": \"<ID from later in this conversation>\",\n \"summary\": \"Complete technical summary of everything in the range\"\n }\n ]\n}\n\n\u26A0\uFE0F ID RULES \u2014 MOST COMMON CAUSE OF ERRORS:\n- ONLY use IDs you can see in tags in the messages ABOVE.\n- Do NOT copy IDs from this example. Do NOT invent IDs.\n- Do NOT use IDs from compressed block summaries \u2014 they are stale.\n- startId must appear BEFORE endId in the conversation.\n\nRANGE STRATEGY:\n- Prefer one large range over multiple small ones.\n- Compress OLDER resolved history first. Keep recent active work.\n</system-reminder>\n";
2
2
  //# sourceMappingURL=context-limit-nudge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-limit-nudge.d.ts","sourceRoot":"","sources":["../../../lib/prompts/context-limit-nudge.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,mmMA8B/B,CAAA"}
1
+ {"version":3,"file":"context-limit-nudge.d.ts","sourceRoot":"","sources":["../../../lib/prompts/context-limit-nudge.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,8lCA4B/B,CAAA"}
@@ -1,4 +1,3 @@
1
- export declare const MANUAL_MODE_SYSTEM_EXTENSION = "<dcp-system-reminder>\nManual mode is enabled. Do NOT use compress unless the user has explicitly triggered it through a manual marker.\n\nOnly use the compress tool after seeing `<compress triggered manually>` in the current user instruction context.\n\nIssue exactly ONE compress tool per manual trigger. Do NOT launch multiple compress tools in parallel. Each trigger grants a single compression; after it completes, wait for the next trigger.\n\nAfter completing a manually triggered context-management action, STOP IMMEDIATELY. Do NOT continue with any task execution. End your response right after the tool use completes and wait for the next user input.\n</dcp-system-reminder>\n";
2
1
  export declare const SUBAGENT_SYSTEM_EXTENSION = "<dcp-system-reminder>\nYou are operating in a subagent environment.\n\nThe initial subagent instruction is imperative and must be followed exactly.\nIt is the only user message intentionally not assigned a message ID, and therefore is not eligible for compression.\nAll subsequent messages in the session will have IDs.\n</dcp-system-reminder>\n";
3
2
  export declare function buildProtectedToolsExtension(protectedTools: string[]): string;
4
3
  export declare const DECOMPRESS_SYSTEM_EXTENSION = "<dcp-system-reminder>\nTHE PHILOSOPHY OF DECOMPRESS\n`decompress` restores previously compressed content. Use it when you need exact details\nthat were lost in compression.\n\nDECOMPRESS WHEN\n- You need exact code, error messages, or file contents from a compressed block\n- A summary lacks the precision needed for your next step\n- You discovered the compressed content is still relevant\n\nDO NOT DECOMPRESS IF\n- Context usage is already high (>70%) \u2014 decompressing inflates context\n- The summary is sufficient for your needs\n- You plan to immediately recompress the same content\n\nBefore decompressing, check context usage. Decompressing restores full messages,\nwhich can significantly increase context size.\n\nNOTE: Message-mode blocks created in the same batch (same runId) are restored together.\nDecompressing one block from a batch restores all blocks in that batch.\n</dcp-system-reminder>\n";
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/extensions/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,mrBASxC,CAAA;AAED,eAAO,MAAM,yBAAyB,8VAOrC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7E;AAED,eAAO,MAAM,2BAA2B,s5BAqBvC,CAAA"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../lib/prompts/extensions/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,8VAOrC,CAAA;AAED,wBAAgB,4BAA4B,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAW7E;AAED,eAAO,MAAM,2BAA2B,s5BAqBvC,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { RuntimePrompts } from "./store";
2
2
  export type { PromptStore, RuntimePrompts } from "./store";
3
- export declare function renderSystemPrompt(prompts: RuntimePrompts, protectedToolsExtension?: string, manual?: boolean, subagent?: boolean): string;
3
+ export declare function renderSystemPrompt(prompts: RuntimePrompts, protectedToolsExtension?: string, subagent?: boolean): string;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE1D,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,cAAc,EACvB,uBAAuB,CAAC,EAAE,MAAM,EAChC,MAAM,CAAC,EAAE,OAAO,EAChB,QAAQ,CAAC,EAAE,OAAO,GACnB,MAAM,CAwBR"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAC7C,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE1D,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,cAAc,EACvB,uBAAuB,CAAC,EAAE,MAAM,EAChC,QAAQ,CAAC,EAAE,OAAO,GACnB,MAAM,CAoBR"}