@tarquinen/opencode-dcp 3.1.9 → 3.1.10

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 (147) hide show
  1. package/README.md +3 -0
  2. package/dist/index.d.ts +2 -5
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +7832 -76
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/config.d.ts +1 -0
  7. package/dist/lib/config.d.ts.map +1 -1
  8. package/dist/lib/hooks.d.ts +2 -10
  9. package/dist/lib/hooks.d.ts.map +1 -1
  10. package/dist/lib/messages/index.d.ts +1 -0
  11. package/dist/lib/messages/index.d.ts.map +1 -1
  12. package/dist/lib/messages/inject/utils.d.ts +7 -0
  13. package/dist/lib/messages/inject/utils.d.ts.map +1 -1
  14. package/dist/lib/messages/utils.d.ts +1 -1
  15. package/dist/lib/messages/utils.d.ts.map +1 -1
  16. package/dist/lib/state/state.d.ts.map +1 -1
  17. package/dist/lib/state/types.d.ts +0 -1
  18. package/dist/lib/state/types.d.ts.map +1 -1
  19. package/dist/lib/update.d.ts +22 -0
  20. package/dist/lib/update.d.ts.map +1 -0
  21. package/package.json +6 -5
  22. package/dist/lib/auth.js +0 -32
  23. package/dist/lib/auth.js.map +0 -1
  24. package/dist/lib/commands/compression-targets.js +0 -98
  25. package/dist/lib/commands/compression-targets.js.map +0 -1
  26. package/dist/lib/commands/context.js +0 -239
  27. package/dist/lib/commands/context.js.map +0 -1
  28. package/dist/lib/commands/decompress.js +0 -174
  29. package/dist/lib/commands/decompress.js.map +0 -1
  30. package/dist/lib/commands/help.js +0 -52
  31. package/dist/lib/commands/help.js.map +0 -1
  32. package/dist/lib/commands/index.js +0 -8
  33. package/dist/lib/commands/index.js.map +0 -1
  34. package/dist/lib/commands/manual.js +0 -75
  35. package/dist/lib/commands/manual.js.map +0 -1
  36. package/dist/lib/commands/recompress.js +0 -140
  37. package/dist/lib/commands/recompress.js.map +0 -1
  38. package/dist/lib/commands/stats.js +0 -97
  39. package/dist/lib/commands/stats.js.map +0 -1
  40. package/dist/lib/commands/sweep.js +0 -195
  41. package/dist/lib/commands/sweep.js.map +0 -1
  42. package/dist/lib/compress/index.js +0 -3
  43. package/dist/lib/compress/index.js.map +0 -1
  44. package/dist/lib/compress/message-utils.js +0 -179
  45. package/dist/lib/compress/message-utils.js.map +0 -1
  46. package/dist/lib/compress/message.js +0 -82
  47. package/dist/lib/compress/message.js.map +0 -1
  48. package/dist/lib/compress/pipeline.js +0 -41
  49. package/dist/lib/compress/pipeline.js.map +0 -1
  50. package/dist/lib/compress/protected-content.js +0 -106
  51. package/dist/lib/compress/protected-content.js.map +0 -1
  52. package/dist/lib/compress/range-utils.js +0 -199
  53. package/dist/lib/compress/range-utils.js.map +0 -1
  54. package/dist/lib/compress/range.js +0 -90
  55. package/dist/lib/compress/range.js.map +0 -1
  56. package/dist/lib/compress/search.js +0 -204
  57. package/dist/lib/compress/search.js.map +0 -1
  58. package/dist/lib/compress/state.js +0 -213
  59. package/dist/lib/compress/state.js.map +0 -1
  60. package/dist/lib/compress/timing.js +0 -42
  61. package/dist/lib/compress/timing.js.map +0 -1
  62. package/dist/lib/compress/types.js +0 -2
  63. package/dist/lib/compress/types.js.map +0 -1
  64. package/dist/lib/compress-permission.js +0 -10
  65. package/dist/lib/compress-permission.js.map +0 -1
  66. package/dist/lib/config.js +0 -760
  67. package/dist/lib/config.js.map +0 -1
  68. package/dist/lib/hooks.js +0 -245
  69. package/dist/lib/hooks.js.map +0 -1
  70. package/dist/lib/host-permissions.js +0 -58
  71. package/dist/lib/host-permissions.js.map +0 -1
  72. package/dist/lib/logger.js +0 -204
  73. package/dist/lib/logger.js.map +0 -1
  74. package/dist/lib/message-ids.js +0 -128
  75. package/dist/lib/message-ids.js.map +0 -1
  76. package/dist/lib/messages/index.js +0 -9
  77. package/dist/lib/messages/index.js.map +0 -1
  78. package/dist/lib/messages/inject/inject.js +0 -128
  79. package/dist/lib/messages/inject/inject.js.map +0 -1
  80. package/dist/lib/messages/inject/subagent-results.js +0 -58
  81. package/dist/lib/messages/inject/subagent-results.js.map +0 -1
  82. package/dist/lib/messages/inject/utils.js +0 -211
  83. package/dist/lib/messages/inject/utils.js.map +0 -1
  84. package/dist/lib/messages/priority.js +0 -65
  85. package/dist/lib/messages/priority.js.map +0 -1
  86. package/dist/lib/messages/prune.js +0 -180
  87. package/dist/lib/messages/prune.js.map +0 -1
  88. package/dist/lib/messages/query.js +0 -52
  89. package/dist/lib/messages/query.js.map +0 -1
  90. package/dist/lib/messages/reasoning-strip.js +0 -33
  91. package/dist/lib/messages/reasoning-strip.js.map +0 -1
  92. package/dist/lib/messages/shape.js +0 -39
  93. package/dist/lib/messages/shape.js.map +0 -1
  94. package/dist/lib/messages/sync.js +0 -93
  95. package/dist/lib/messages/sync.js.map +0 -1
  96. package/dist/lib/messages/utils.js +0 -146
  97. package/dist/lib/messages/utils.js.map +0 -1
  98. package/dist/lib/prompts/compress-message.js +0 -44
  99. package/dist/lib/prompts/compress-message.js.map +0 -1
  100. package/dist/lib/prompts/compress-range.js +0 -61
  101. package/dist/lib/prompts/compress-range.js.map +0 -1
  102. package/dist/lib/prompts/context-limit-nudge.js +0 -19
  103. package/dist/lib/prompts/context-limit-nudge.js.map +0 -1
  104. package/dist/lib/prompts/extensions/nudge.js +0 -35
  105. package/dist/lib/prompts/extensions/nudge.js.map +0 -1
  106. package/dist/lib/prompts/extensions/system.js +0 -30
  107. package/dist/lib/prompts/extensions/system.js.map +0 -1
  108. package/dist/lib/prompts/extensions/tool.js +0 -34
  109. package/dist/lib/prompts/extensions/tool.js.map +0 -1
  110. package/dist/lib/prompts/index.js +0 -18
  111. package/dist/lib/prompts/index.js.map +0 -1
  112. package/dist/lib/prompts/iteration-nudge.js +0 -7
  113. package/dist/lib/prompts/iteration-nudge.js.map +0 -1
  114. package/dist/lib/prompts/store.js +0 -358
  115. package/dist/lib/prompts/store.js.map +0 -1
  116. package/dist/lib/prompts/system.js +0 -34
  117. package/dist/lib/prompts/system.js.map +0 -1
  118. package/dist/lib/prompts/turn-nudge.js +0 -11
  119. package/dist/lib/prompts/turn-nudge.js.map +0 -1
  120. package/dist/lib/protected-patterns.js +0 -107
  121. package/dist/lib/protected-patterns.js.map +0 -1
  122. package/dist/lib/state/index.js +0 -5
  123. package/dist/lib/state/index.js.map +0 -1
  124. package/dist/lib/state/persistence.js +0 -172
  125. package/dist/lib/state/persistence.js.map +0 -1
  126. package/dist/lib/state/state.js +0 -143
  127. package/dist/lib/state/state.js.map +0 -1
  128. package/dist/lib/state/tool-cache.js +0 -69
  129. package/dist/lib/state/tool-cache.js.map +0 -1
  130. package/dist/lib/state/types.js +0 -2
  131. package/dist/lib/state/types.js.map +0 -1
  132. package/dist/lib/state/utils.js +0 -265
  133. package/dist/lib/state/utils.js.map +0 -1
  134. package/dist/lib/strategies/deduplication.js +0 -100
  135. package/dist/lib/strategies/deduplication.js.map +0 -1
  136. package/dist/lib/strategies/index.js +0 -3
  137. package/dist/lib/strategies/index.js.map +0 -1
  138. package/dist/lib/strategies/purge-errors.js +0 -62
  139. package/dist/lib/strategies/purge-errors.js.map +0 -1
  140. package/dist/lib/subagents/subagent-results.js +0 -52
  141. package/dist/lib/subagents/subagent-results.js.map +0 -1
  142. package/dist/lib/token-utils.js +0 -133
  143. package/dist/lib/token-utils.js.map +0 -1
  144. package/dist/lib/ui/notification.js +0 -243
  145. package/dist/lib/ui/notification.js.map +0 -1
  146. package/dist/lib/ui/utils.js +0 -256
  147. package/dist/lib/ui/utils.js.map +0 -1
@@ -43,6 +43,7 @@ export interface ExperimentalConfig {
43
43
  }
44
44
  export interface PluginConfig {
45
45
  enabled: boolean;
46
+ autoUpdate: boolean;
46
47
  debug: boolean;
47
48
  pruneNotification: "off" | "minimal" | "detailed";
48
49
  pruneNotificationType: "chat" | "toast";
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,KAAK,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAC1C,KAAK,YAAY,GAAG,OAAO,GAAG,SAAS,CAAA;AAEvC,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,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,uBAAuB,EAAE,MAAM,CAAA;IAC/B,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,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,UAAU,EAAE,gBAAgB,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,YAAY,EAAE,kBAAkB,CAAA;IAChC,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,EAAE,cAAc,CAAA;IACxB,UAAU,EAAE;QACR,aAAa,EAAE,aAAa,CAAA;QAC5B,WAAW,EAAE,WAAW,CAAA;KAC3B,CAAA;CACJ;AAmBD,eAAO,MAAM,iBAAiB,aA0C5B,CAAA;AAoBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AAED,UAAU,eAAe;IACrB,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,CA6alF;AAoWD,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAsCxD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,KAAK,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AAC1C,KAAK,YAAY,GAAG,OAAO,GAAG,SAAS,CAAA;AAEvC,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,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,uBAAuB,EAAE,MAAM,CAAA;IAC/B,UAAU,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC7B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,QAAQ;IACrB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,mBAAmB,EAAE,OAAO,CAAA;CAC/B;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,MAAM,WAAW,cAAc;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;CACzB;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,UAAU,EAAE,gBAAgB,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,YAAY,EAAE,kBAAkB,CAAA;IAChC,qBAAqB,EAAE,MAAM,EAAE,CAAA;IAC/B,QAAQ,EAAE,cAAc,CAAA;IACxB,UAAU,EAAE;QACR,aAAa,EAAE,aAAa,CAAA;QAC5B,WAAW,EAAE,WAAW,CAAA;KAC3B,CAAA;CACJ;AAmBD,eAAO,MAAM,iBAAiB,aA2C5B,CAAA;AAoBF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAG9E;AAED,UAAU,eAAe;IACrB,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,CAiblF;AAsWD,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,YAAY,CAsCxD"}
@@ -8,6 +8,8 @@ export declare function createSystemPromptHandler(state: SessionState, logger: L
8
8
  model: {
9
9
  limit: {
10
10
  context: number;
11
+ input?: number;
12
+ output?: number;
11
13
  };
12
14
  };
13
15
  }, output: {
@@ -33,14 +35,4 @@ export declare function createTextCompleteHandler(): (_input: {
33
35
  export declare function createEventHandler(state: SessionState, logger: Logger): (input: {
34
36
  event: any;
35
37
  }) => Promise<void>;
36
- export declare function createChatMessageHandler(state: SessionState, logger: Logger, _config: PluginConfig, _hostPermissions: HostPermissionSnapshot): (input: {
37
- sessionID: string;
38
- agent?: string;
39
- model?: {
40
- providerID: string;
41
- modelID: string;
42
- };
43
- messageID?: string;
44
- variant?: string;
45
- }, _output: any) => Promise<void>;
46
38
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAc5C,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAoBhE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAWhE,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,WAAW,IAGhB,OAAO;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,EACpE,QAAQ;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,mBAwCnC;AAED,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,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,mBAkD7D;AAED,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,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,mBA0G/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,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IACpD,OAAO;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,mBAiFtC;AAED,wBAAgB,wBAAwB,CACpC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,gBAAgB,EAAE,sBAAsB,IAGpC,OAAO;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB,EACD,SAAS,GAAG,mBAKnB"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../lib/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,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;AAYhE,wBAAgB,yBAAyB,CACrC,KAAK,EAAE,YAAY,EACnB,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,mBA2CnC;AAED,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,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,mBAkD7D;AAED,wBAAgB,2BAA2B,CACvC,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,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,mBA0G/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,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IACpD,OAAO;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,mBAiFtC"}
@@ -1,6 +1,7 @@
1
1
  export { prune } from "./prune";
2
2
  export { syncCompressionBlocks } from "./sync";
3
3
  export { injectCompressNudges } from "./inject/inject";
4
+ export { computeInputBudget } from "./inject/utils";
4
5
  export { injectMessageIds } from "./inject/inject";
5
6
  export { injectExtendedSubAgentResults } from "./inject/subagent-results";
6
7
  export { stripStaleMetadata } from "./reasoning-strip";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/messages/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA"}
@@ -10,6 +10,12 @@ export interface LastNonIgnoredMessage {
10
10
  message: WithParts;
11
11
  index: number;
12
12
  }
13
+ interface ModelLimit {
14
+ context: number;
15
+ input?: number;
16
+ output?: number;
17
+ }
18
+ export declare function computeInputBudget(limit: ModelLimit): number | undefined;
13
19
  export declare function getNudgeFrequency(config: PluginConfig): number;
14
20
  export declare function getIterationNudgeThreshold(config: PluginConfig): number;
15
21
  export declare function findLastNonIgnoredMessage(messages: WithParts[]): LastNonIgnoredMessage | null;
@@ -21,4 +27,5 @@ export declare function isContextOverLimits(config: PluginConfig, state: Session
21
27
  };
22
28
  export declare function addAnchor(anchorMessageIds: Set<string>, anchorMessageId: string, anchorMessageIndex: number, messages: WithParts[], interval: number): boolean;
23
29
  export declare function applyAnchoredNudges(state: SessionState, config: PluginConfig, messages: WithParts[], prompts: RuntimePrompts, compressionPriorities?: CompressionPriorityMap): void;
30
+ export {};
24
31
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAMhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EACH,KAAK,sBAAsB,EAG9B,MAAM,aAAa,CAAA;AAapB,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEvE;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,qBAAqB,GAAG,IAAI,CAU7F;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAcxE;AA+CD,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,SAAS,EAAE;;;EA0BxB;AAED,wBAAgB,SAAS,CACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAsBT;AAmID,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,cAAc,EACvB,qBAAqB,CAAC,EAAE,sBAAsB,GAC/C,IAAI,CA4CN"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../lib/messages/inject/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAMhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,EACH,KAAK,sBAAsB,EAG9B,MAAM,aAAa,CAAA;AAapB,MAAM,WAAW,oBAAoB;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB;IAClC,OAAO,EAAE,SAAS,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,UAAU;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAMxE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEvE;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,qBAAqB,GAAG,IAAI,CAU7F;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYpF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,oBAAoB,CAcxE;AA+CD,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,SAAS,EAAE;;;EA0BxB;AAED,wBAAgB,SAAS,CACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,eAAe,EAAE,MAAM,EACvB,kBAAkB,EAAE,MAAM,EAC1B,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAsBT;AAmID,wBAAgB,mBAAmB,CAC/B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,SAAS,EAAE,EACrB,OAAO,EAAE,cAAc,EACvB,qBAAqB,CAAC,EAAE,sBAAsB,GAC/C,IAAI,CA4CN"}
@@ -1,5 +1,5 @@
1
1
  import type { SessionState, WithParts } from "../state";
2
- export declare const createSyntheticUserMessage: (baseMessage: WithParts, content: string, variant?: string, stableSeed?: string) => WithParts;
2
+ export declare const createSyntheticUserMessage: (baseMessage: WithParts, content: string, stableSeed?: string) => WithParts;
3
3
  export declare const createSyntheticTextPart: (baseMessage: WithParts, content: string, stableSeed?: string) => {
4
4
  id: string;
5
5
  sessionID: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAcvD,eAAO,MAAM,0BAA0B,GACnC,aAAa,SAAS,EACtB,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,aAAa,MAAM,KACpB,SA2BF,CAAA;AAED,eAAO,MAAM,uBAAuB,GAChC,aAAa,SAAS,EACtB,SAAS,MAAM,EACf,aAAa,MAAM;;;;;;CAatB,CAAA;AAED,KAAK,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7C,KAAK,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AACtD,KAAK,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEtD,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,EAAE,WAAW,MAAM,KAAG,OAO5E,CAAA;AAaD,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,EAAE,WAAW,MAAM,KAAG,OAgBpE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,EAAE,KAAK,MAAM,KAAG,OAQtE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,EAAE,KAAK,MAAM,KAAG,OAU9D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,SAAS,SAAS,KAAG,OAU/C,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAiBpF;AAED,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,MAEzD,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,MAE5D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,EAAE,KAAG,IAgB3D,CAAA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../lib/messages/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAcvD,eAAO,MAAM,0BAA0B,GACnC,aAAa,SAAS,EACtB,SAAS,MAAM,EACf,aAAa,MAAM,KACpB,SA0BF,CAAA;AAED,eAAO,MAAM,uBAAuB,GAChC,aAAa,SAAS,EACtB,SAAS,MAAM,EACf,aAAa,MAAM;;;;;;CAatB,CAAA;AAED,KAAK,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAA;AAC7C,KAAK,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AACtD,KAAK,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AAEtD,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,EAAE,WAAW,MAAM,KAAG,OAO5E,CAAA;AAaD,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,EAAE,WAAW,MAAM,KAAG,OAgBpE,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,SAAS,EAAE,KAAK,MAAM,KAAG,OAQtE,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,MAAM,QAAQ,EAAE,KAAK,MAAM,KAAG,OAU9D,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,SAAS,SAAS,KAAG,OAU/C,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAiBpF;AAED,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,MAEzD,CAAA;AAED,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,KAAG,MAE5D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU,SAAS,EAAE,KAAG,IAgB3D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAevC,eAAO,MAAM,YAAY,GACrB,QAAQ,GAAG,EACX,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,mBAAmB,OAAO,KAC3B,OAAO,CAAC,IAAI,CAwCd,CAAA;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAsCjD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAgC3D;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../lib/state/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAsB,SAAS,EAAE,MAAM,SAAS,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAevC,eAAO,MAAM,YAAY,GACrB,QAAQ,GAAG,EACX,OAAO,YAAY,EACnB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,mBAAmB,OAAO,KAC3B,OAAO,CAAC,IAAI,CAwCd,CAAA;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAqCjD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CA+B3D;AAED,wBAAsB,wBAAwB,CAC1C,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,OAAO,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -93,7 +93,6 @@ export interface SessionState {
93
93
  messageIds: MessageIdState;
94
94
  lastCompaction: number;
95
95
  currentTurn: number;
96
- variant: string | undefined;
97
96
  modelContextLimit: number | undefined;
98
97
  systemPromptTokens: number | undefined;
99
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../lib/state/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { PluginInput } from "@opencode-ai/plugin";
2
+ type UpdateResult = {
3
+ updated: true;
4
+ name: string;
5
+ current: string;
6
+ latest: string;
7
+ } | {
8
+ updated: false;
9
+ error: "remove_failed";
10
+ name: string;
11
+ current: string;
12
+ latest: string;
13
+ } | {
14
+ updated: false;
15
+ };
16
+ export declare function startAutoUpdate(ctx: PluginInput, enabled: boolean): void;
17
+ export declare function checkAutoUpdate(signal: AbortSignal): Promise<UpdateResult>;
18
+ export declare function updateRemoveDir(packageDir: string, name: string): Promise<string | undefined>;
19
+ export declare function isAutoUpdatableSpec(spec: string): boolean;
20
+ export declare function isVersionNewer(latest: string, current: string): boolean;
21
+ export {};
22
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../lib/update.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAQtD,KAAK,YAAY,GACX;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzF;IAAE,OAAO,EAAE,KAAK,CAAA;CAAE,CAAA;AAIxB,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBxE;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA0BhF;AAcD,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,+BAarE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,WAQ/C;AA6BD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WA4B7D"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@tarquinen/opencode-dcp",
4
- "version": "3.1.9",
4
+ "version": "3.1.10",
5
5
  "type": "module",
6
6
  "description": "OpenCode plugin that optimizes token usage by pruning obsolete tool outputs from conversation context",
7
7
  "main": "./dist/index.js",
@@ -18,7 +18,7 @@
18
18
  },
19
19
  "scripts": {
20
20
  "clean": "rm -rf dist",
21
- "build": "npm run clean && tsc",
21
+ "build": "npm run clean && tsup && tsc --emitDeclarationOnly",
22
22
  "verify:package": "node scripts/verify-package.mjs",
23
23
  "check:package": "npm run build && npm run verify:package",
24
24
  "prepublishOnly": "npm run check:package",
@@ -49,18 +49,19 @@
49
49
  "author": "tarquinen",
50
50
  "license": "AGPL-3.0-or-later",
51
51
  "peerDependencies": {
52
- "@opencode-ai/plugin": ">=1.2.0"
52
+ "@opencode-ai/plugin": ">=1.4.3"
53
53
  },
54
54
  "dependencies": {
55
55
  "@anthropic-ai/tokenizer": "^0.0.4",
56
- "@opencode-ai/sdk": "^1.3.2",
56
+ "@opencode-ai/sdk": "^1.4.3",
57
57
  "jsonc-parser": "^3.3.1",
58
58
  "zod": "^4.3.6"
59
59
  },
60
60
  "devDependencies": {
61
- "@opencode-ai/plugin": "^1.3.2",
61
+ "@opencode-ai/plugin": "^1.4.3",
62
62
  "@types/node": "^25.5.0",
63
63
  "prettier": "^3.8.1",
64
+ "tsup": "^8.5.1",
64
65
  "tsx": "^4.21.0",
65
66
  "typescript": "^6.0.2"
66
67
  },
package/dist/lib/auth.js DELETED
@@ -1,32 +0,0 @@
1
- export function isSecureMode() {
2
- return !!process.env.OPENCODE_SERVER_PASSWORD;
3
- }
4
- export function getAuthorizationHeader() {
5
- const password = process.env.OPENCODE_SERVER_PASSWORD;
6
- if (!password)
7
- return undefined;
8
- const username = process.env.OPENCODE_SERVER_USERNAME ?? "opencode";
9
- // Use Buffer for Node.js base64 encoding (btoa may not be available in all Node versions)
10
- const credentials = Buffer.from(`${username}:${password}`).toString("base64");
11
- return `Basic ${credentials}`;
12
- }
13
- export function configureClientAuth(client) {
14
- const authHeader = getAuthorizationHeader();
15
- if (!authHeader) {
16
- return client;
17
- }
18
- // The SDK client has an internal client with request interceptors
19
- // Access the underlying client to add the interceptor
20
- const innerClient = client._client || client.client;
21
- if (innerClient?.interceptors?.request) {
22
- innerClient.interceptors.request.use((request) => {
23
- // Only add auth header if not already present
24
- if (!request.headers.has("Authorization")) {
25
- request.headers.set("Authorization", authHeader);
26
- }
27
- return request;
28
- });
29
- }
30
- return client;
31
- }
32
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../lib/auth.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY;IACxB,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAA;IACrD,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAA;IAE/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,UAAU,CAAA;IACnE,0FAA0F;IAC1F,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC7E,OAAO,SAAS,WAAW,EAAE,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAW;IAC3C,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAA;IAE3C,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,kEAAkE;IAClE,sDAAsD;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAA;IAEnD,IAAI,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;QACrC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAgB,EAAE,EAAE;YACtD,8CAA8C;YAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;gBACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;YACpD,CAAC;YACD,OAAO,OAAO,CAAA;QAClB,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO,MAAM,CAAA;AACjB,CAAC"}
@@ -1,98 +0,0 @@
1
- function byBlockId(a, b) {
2
- return a.blockId - b.blockId;
3
- }
4
- function buildTarget(blocks) {
5
- const ordered = [...blocks].sort(byBlockId);
6
- const first = ordered[0];
7
- if (!first) {
8
- throw new Error("Cannot build compression target from empty block list.");
9
- }
10
- const grouped = first.mode === "message";
11
- return {
12
- displayId: first.blockId,
13
- runId: first.runId,
14
- topic: grouped ? first.batchTopic || first.topic : first.topic,
15
- compressedTokens: ordered.reduce((total, block) => total + block.compressedTokens, 0),
16
- durationMs: ordered.reduce((total, block) => Math.max(total, block.durationMs), 0),
17
- grouped,
18
- blocks: ordered,
19
- };
20
- }
21
- function groupMessageBlocks(blocks) {
22
- const grouped = new Map();
23
- for (const block of blocks) {
24
- const existing = grouped.get(block.runId);
25
- if (existing) {
26
- existing.push(block);
27
- continue;
28
- }
29
- grouped.set(block.runId, [block]);
30
- }
31
- return Array.from(grouped.values()).map(buildTarget);
32
- }
33
- function splitTargets(blocks) {
34
- const messageBlocks = [];
35
- const singleBlocks = [];
36
- for (const block of blocks) {
37
- if (block.mode === "message") {
38
- messageBlocks.push(block);
39
- }
40
- else {
41
- singleBlocks.push(block);
42
- }
43
- }
44
- const targets = [
45
- ...singleBlocks.map((block) => buildTarget([block])),
46
- ...groupMessageBlocks(messageBlocks),
47
- ];
48
- return targets.sort((a, b) => a.displayId - b.displayId);
49
- }
50
- export function getActiveCompressionTargets(messagesState) {
51
- const activeBlocks = Array.from(messagesState.activeBlockIds)
52
- .map((blockId) => messagesState.blocksById.get(blockId))
53
- .filter((block) => !!block && block.active);
54
- return splitTargets(activeBlocks);
55
- }
56
- export function getRecompressibleCompressionTargets(messagesState, availableMessageIds) {
57
- const allBlocks = Array.from(messagesState.blocksById.values()).filter((block) => {
58
- return availableMessageIds.has(block.compressMessageId);
59
- });
60
- const messageGroups = new Map();
61
- const singleTargets = [];
62
- for (const block of allBlocks) {
63
- if (block.mode === "message") {
64
- const existing = messageGroups.get(block.runId);
65
- if (existing) {
66
- existing.push(block);
67
- }
68
- else {
69
- messageGroups.set(block.runId, [block]);
70
- }
71
- continue;
72
- }
73
- if (block.deactivatedByUser && !block.active) {
74
- singleTargets.push(buildTarget([block]));
75
- }
76
- }
77
- for (const blocks of messageGroups.values()) {
78
- if (blocks.some((block) => block.deactivatedByUser && !block.active)) {
79
- singleTargets.push(buildTarget(blocks));
80
- }
81
- }
82
- return singleTargets.sort((a, b) => a.displayId - b.displayId);
83
- }
84
- export function resolveCompressionTarget(messagesState, blockId) {
85
- const block = messagesState.blocksById.get(blockId);
86
- if (!block) {
87
- return null;
88
- }
89
- if (block.mode !== "message") {
90
- return buildTarget([block]);
91
- }
92
- const blocks = Array.from(messagesState.blocksById.values()).filter((candidate) => candidate.mode === "message" && candidate.runId === block.runId);
93
- if (blocks.length === 0) {
94
- return null;
95
- }
96
- return buildTarget(blocks);
97
- }
98
- //# sourceMappingURL=compression-targets.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compression-targets.js","sourceRoot":"","sources":["../../../lib/commands/compression-targets.ts"],"names":[],"mappings":"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"}
@@ -1,239 +0,0 @@
1
- /**
2
- * DCP Context Command
3
- * Shows a visual breakdown of token usage in the current session.
4
- *
5
- * TOKEN CALCULATION STRATEGY
6
- * ==========================
7
- * We minimize tokenizer estimation by leveraging API-reported values wherever possible.
8
- *
9
- * WHAT WE GET FROM THE API (exact):
10
- * - tokens.input : Input tokens for each assistant response
11
- * - tokens.output : Output tokens generated (includes text + tool calls)
12
- * - tokens.reasoning: Reasoning tokens used
13
- * - tokens.cache : Cache read/write tokens
14
- *
15
- * HOW WE CALCULATE EACH CATEGORY:
16
- *
17
- * SYSTEM = firstAssistant.input + cache.read + cache.write - tokenizer(firstUserMessage)
18
- * The first response's total input (input + cache.read + cache.write)
19
- * contains system + first user message. On the first request of a
20
- * session, the system prompt appears in cache.write (cache creation),
21
- * not cache.read.
22
- *
23
- * TOOLS = tokenizer(toolInputs + toolOutputs) - prunedTokens
24
- * We must tokenize tools anyway for pruning decisions.
25
- *
26
- * USER = tokenizer(all user messages)
27
- * User messages are typically small, so estimation is acceptable.
28
- *
29
- * ASSISTANT = total - system - user - tools
30
- * Calculated as residual. This absorbs:
31
- * - Assistant text output tokens
32
- * - Reasoning tokens (if persisted by the model)
33
- * - Any estimation errors
34
- *
35
- * TOTAL = input + output + reasoning + cache.read + cache.write
36
- * Matches opencode's UI display.
37
- *
38
- * WHY ASSISTANT IS THE RESIDUAL:
39
- * If reasoning tokens persist in context (model-dependent), they semantically
40
- * belong with "Assistant" since reasoning IS assistant-generated content.
41
- */
42
- import { sendIgnoredMessage } from "../ui/notification";
43
- import { formatTokenCount } from "../ui/utils";
44
- import { isIgnoredUserMessage } from "../messages/query";
45
- import { isMessageCompacted } from "../state/utils";
46
- import { countTokens, extractCompletedToolOutput, getCurrentParams } from "../token-utils";
47
- function analyzeTokens(state, messages) {
48
- const breakdown = {
49
- system: 0,
50
- user: 0,
51
- assistant: 0,
52
- tools: 0,
53
- toolCount: 0,
54
- toolsInContextCount: 0,
55
- prunedTokens: state.stats.totalPruneTokens,
56
- prunedToolCount: 0,
57
- prunedMessageCount: 0,
58
- total: 0,
59
- };
60
- let firstAssistant;
61
- for (const msg of messages) {
62
- if (msg.info.role === "assistant") {
63
- const assistantInfo = msg.info;
64
- if (assistantInfo.tokens?.input > 0 ||
65
- assistantInfo.tokens?.cache?.read > 0 ||
66
- assistantInfo.tokens?.cache?.write > 0) {
67
- firstAssistant = assistantInfo;
68
- break;
69
- }
70
- }
71
- }
72
- let lastAssistant;
73
- for (let i = messages.length - 1; i >= 0; i--) {
74
- const msg = messages[i];
75
- if (msg.info.role === "assistant") {
76
- const assistantInfo = msg.info;
77
- if (assistantInfo.tokens?.output > 0) {
78
- lastAssistant = assistantInfo;
79
- break;
80
- }
81
- }
82
- }
83
- const apiInput = lastAssistant?.tokens?.input || 0;
84
- const apiOutput = lastAssistant?.tokens?.output || 0;
85
- const apiReasoning = lastAssistant?.tokens?.reasoning || 0;
86
- const apiCacheRead = lastAssistant?.tokens?.cache?.read || 0;
87
- const apiCacheWrite = lastAssistant?.tokens?.cache?.write || 0;
88
- breakdown.total = apiInput + apiOutput + apiReasoning + apiCacheRead + apiCacheWrite;
89
- const userTextParts = [];
90
- const toolInputParts = [];
91
- const toolOutputParts = [];
92
- let firstUserText = "";
93
- let foundFirstUser = false;
94
- const allToolIds = new Set();
95
- const activeToolIds = new Set();
96
- const prunedByMessageToolIds = new Set();
97
- const allMessageIds = new Set();
98
- for (const msg of messages) {
99
- allMessageIds.add(msg.info.id);
100
- const parts = Array.isArray(msg.parts) ? msg.parts : [];
101
- const isCompacted = isMessageCompacted(state, msg);
102
- const pruneEntry = state.prune.messages.byMessageId.get(msg.info.id);
103
- const isMessagePruned = !!pruneEntry && pruneEntry.activeBlockIds.length > 0;
104
- const isIgnoredUser = isIgnoredUserMessage(msg);
105
- for (const part of parts) {
106
- if (part.type === "tool") {
107
- const toolPart = part;
108
- if (toolPart.callID) {
109
- allToolIds.add(toolPart.callID);
110
- if (!isCompacted) {
111
- activeToolIds.add(toolPart.callID);
112
- }
113
- if (isMessagePruned) {
114
- prunedByMessageToolIds.add(toolPart.callID);
115
- }
116
- }
117
- const isPruned = toolPart.callID && state.prune.tools.has(toolPart.callID);
118
- if (!isCompacted && !isPruned) {
119
- if (toolPart.state?.input) {
120
- const inputStr = typeof toolPart.state.input === "string"
121
- ? toolPart.state.input
122
- : JSON.stringify(toolPart.state.input);
123
- toolInputParts.push(inputStr);
124
- }
125
- const outputStr = extractCompletedToolOutput(toolPart);
126
- if (outputStr !== undefined) {
127
- toolOutputParts.push(outputStr);
128
- }
129
- }
130
- }
131
- else if (part.type === "text" &&
132
- msg.info.role === "user" &&
133
- !isCompacted &&
134
- !isIgnoredUser) {
135
- const textPart = part;
136
- const text = textPart.text || "";
137
- userTextParts.push(text);
138
- if (!foundFirstUser) {
139
- firstUserText += text;
140
- }
141
- }
142
- }
143
- if (msg.info.role === "user" && !isIgnoredUser && !foundFirstUser) {
144
- foundFirstUser = true;
145
- }
146
- }
147
- const prunedByToolIds = new Set();
148
- for (const id of allToolIds) {
149
- if (state.prune.tools.has(id)) {
150
- prunedByToolIds.add(id);
151
- }
152
- }
153
- const prunedToolIds = new Set([...prunedByToolIds, ...prunedByMessageToolIds]);
154
- const toolsInContextCount = [...activeToolIds].filter((id) => !prunedByToolIds.has(id)).length;
155
- let prunedMessageCount = 0;
156
- for (const [id, entry] of state.prune.messages.byMessageId) {
157
- if (allMessageIds.has(id) && entry.activeBlockIds.length > 0) {
158
- prunedMessageCount++;
159
- }
160
- }
161
- breakdown.toolCount = allToolIds.size;
162
- breakdown.toolsInContextCount = toolsInContextCount;
163
- breakdown.prunedToolCount = prunedToolIds.size;
164
- breakdown.prunedMessageCount = prunedMessageCount;
165
- const firstUserTokens = countTokens(firstUserText);
166
- breakdown.user = countTokens(userTextParts.join("\n"));
167
- const toolInputTokens = countTokens(toolInputParts.join("\n"));
168
- const toolOutputTokens = countTokens(toolOutputParts.join("\n"));
169
- if (firstAssistant) {
170
- const firstInput = (firstAssistant.tokens?.input || 0) +
171
- (firstAssistant.tokens?.cache?.read || 0) +
172
- (firstAssistant.tokens?.cache?.write || 0);
173
- breakdown.system = Math.max(0, firstInput - firstUserTokens);
174
- }
175
- breakdown.tools = toolInputTokens + toolOutputTokens;
176
- breakdown.assistant = Math.max(0, breakdown.total - breakdown.system - breakdown.user - breakdown.tools);
177
- return breakdown;
178
- }
179
- function createBar(value, maxValue, width, char = "█") {
180
- if (maxValue === 0)
181
- return "";
182
- const filled = Math.round((value / maxValue) * width);
183
- const bar = char.repeat(Math.max(0, filled));
184
- return bar;
185
- }
186
- function formatContextMessage(breakdown) {
187
- const lines = [];
188
- const barWidth = 30;
189
- const toolsLabel = `Tools (${breakdown.toolsInContextCount})`;
190
- const categories = [
191
- { label: "System", value: breakdown.system, char: "█" },
192
- { label: "User", value: breakdown.user, char: "▓" },
193
- { label: "Assistant", value: breakdown.assistant, char: "▒" },
194
- { label: toolsLabel, value: breakdown.tools, char: "░" },
195
- ];
196
- const maxLabelLen = Math.max(...categories.map((c) => c.label.length));
197
- lines.push("╭───────────────────────────────────────────────────────────╮");
198
- lines.push("│ DCP Context Analysis │");
199
- lines.push("╰───────────────────────────────────────────────────────────╯");
200
- lines.push("");
201
- lines.push("Session Context Breakdown:");
202
- lines.push("─".repeat(60));
203
- lines.push("");
204
- for (const cat of categories) {
205
- const bar = createBar(cat.value, breakdown.total, barWidth, cat.char);
206
- const percentage = breakdown.total > 0 ? ((cat.value / breakdown.total) * 100).toFixed(1) : "0.0";
207
- const labelWithPct = `${cat.label.padEnd(maxLabelLen)} ${percentage.padStart(5)}% `;
208
- const valueStr = formatTokenCount(cat.value).padStart(13);
209
- lines.push(`${labelWithPct}│${bar.padEnd(barWidth)}│${valueStr}`);
210
- }
211
- lines.push("");
212
- lines.push("─".repeat(60));
213
- lines.push("");
214
- lines.push("Summary:");
215
- if (breakdown.prunedTokens > 0) {
216
- const withoutPruning = breakdown.total + breakdown.prunedTokens;
217
- const pruned = [];
218
- if (breakdown.prunedToolCount > 0)
219
- pruned.push(`${breakdown.prunedToolCount} tools`);
220
- if (breakdown.prunedMessageCount > 0)
221
- pruned.push(`${breakdown.prunedMessageCount} messages`);
222
- lines.push(` Pruned: ${pruned.join(", ")} (~${formatTokenCount(breakdown.prunedTokens)})`);
223
- lines.push(` Current context: ~${formatTokenCount(breakdown.total)}`);
224
- lines.push(` Without DCP: ~${formatTokenCount(withoutPruning)}`);
225
- }
226
- else {
227
- lines.push(` Current context: ~${formatTokenCount(breakdown.total)}`);
228
- }
229
- lines.push("");
230
- return lines.join("\n");
231
- }
232
- export async function handleContextCommand(ctx) {
233
- const { client, state, logger, sessionId, messages } = ctx;
234
- const breakdown = analyzeTokens(state, messages);
235
- const message = formatContextMessage(breakdown);
236
- const params = getCurrentParams(state, messages, logger);
237
- await sendIgnoredMessage(client, sessionId, message, params, logger);
238
- }
239
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../lib/commands/context.ts"],"names":[],"mappings":"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"}