@roj-ai/sdk 0.1.14 → 0.1.16

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 (109) hide show
  1. package/dist/bootstrap.d.ts +1 -0
  2. package/dist/bootstrap.d.ts.map +1 -1
  3. package/dist/core/agents/agent.d.ts +25 -1
  4. package/dist/core/agents/agent.d.ts.map +1 -1
  5. package/dist/core/agents/agent.js +117 -21
  6. package/dist/core/agents/agent.js.map +1 -1
  7. package/dist/core/agents/config.d.ts +7 -0
  8. package/dist/core/agents/config.d.ts.map +1 -1
  9. package/dist/core/agents/context.d.ts +10 -0
  10. package/dist/core/agents/context.d.ts.map +1 -1
  11. package/dist/core/agents/state.d.ts +11 -3
  12. package/dist/core/agents/state.d.ts.map +1 -1
  13. package/dist/core/agents/state.js.map +1 -1
  14. package/dist/core/file-store/file-store.d.ts +5 -1
  15. package/dist/core/file-store/file-store.d.ts.map +1 -1
  16. package/dist/core/file-store/file-store.js +31 -21
  17. package/dist/core/file-store/file-store.js.map +1 -1
  18. package/dist/core/image/vips-resizer.test.js +26 -14
  19. package/dist/core/image/vips-resizer.test.js.map +1 -1
  20. package/dist/core/llm/anthropic.d.ts.map +1 -1
  21. package/dist/core/llm/anthropic.js +11 -8
  22. package/dist/core/llm/anthropic.js.map +1 -1
  23. package/dist/core/llm/cache-breakpoints.d.ts +5 -1
  24. package/dist/core/llm/cache-breakpoints.d.ts.map +1 -1
  25. package/dist/core/llm/cache-breakpoints.js +10 -5
  26. package/dist/core/llm/cache-breakpoints.js.map +1 -1
  27. package/dist/core/sessions/session.d.ts.map +1 -1
  28. package/dist/core/sessions/session.js +3 -0
  29. package/dist/core/sessions/session.js.map +1 -1
  30. package/dist/core/sessions/session.test.js +5 -0
  31. package/dist/core/sessions/session.test.js.map +1 -1
  32. package/dist/core/sessions/state.d.ts.map +1 -1
  33. package/dist/core/sessions/state.js +5 -1
  34. package/dist/core/sessions/state.js.map +1 -1
  35. package/dist/core/tools/executor.test.js +1 -0
  36. package/dist/core/tools/executor.test.js.map +1 -1
  37. package/dist/plugins/agent-status/plugin.d.ts.map +1 -1
  38. package/dist/plugins/agent-status/plugin.js +18 -26
  39. package/dist/plugins/agent-status/plugin.js.map +1 -1
  40. package/dist/plugins/context-compact/compaction-live.test.d.ts +17 -0
  41. package/dist/plugins/context-compact/compaction-live.test.d.ts.map +1 -0
  42. package/dist/plugins/context-compact/compaction-live.test.js +177 -0
  43. package/dist/plugins/context-compact/compaction-live.test.js.map +1 -0
  44. package/dist/plugins/context-compact/context-compact.integration.test.js +123 -3
  45. package/dist/plugins/context-compact/context-compact.integration.test.js.map +1 -1
  46. package/dist/plugins/context-compact/context-compactor.d.ts +47 -17
  47. package/dist/plugins/context-compact/context-compactor.d.ts.map +1 -1
  48. package/dist/plugins/context-compact/context-compactor.js +60 -36
  49. package/dist/plugins/context-compact/context-compactor.js.map +1 -1
  50. package/dist/plugins/context-compact/context-compactor.test.js +69 -103
  51. package/dist/plugins/context-compact/context-compactor.test.js.map +1 -1
  52. package/dist/plugins/context-compact/plugin.d.ts +9 -2
  53. package/dist/plugins/context-compact/plugin.d.ts.map +1 -1
  54. package/dist/plugins/context-compact/plugin.js +8 -4
  55. package/dist/plugins/context-compact/plugin.js.map +1 -1
  56. package/dist/plugins/filesystem/filesystem.integration.test.js +36 -0
  57. package/dist/plugins/filesystem/filesystem.integration.test.js.map +1 -1
  58. package/dist/plugins/filesystem/plugin.d.ts.map +1 -1
  59. package/dist/plugins/filesystem/plugin.js +8 -6
  60. package/dist/plugins/filesystem/plugin.js.map +1 -1
  61. package/dist/plugins/mailbox/mailbox.integration.test.js +9 -16
  62. package/dist/plugins/mailbox/mailbox.integration.test.js.map +1 -1
  63. package/dist/plugins/resources/plugin.d.ts.map +1 -1
  64. package/dist/plugins/resources/plugin.js +4 -1
  65. package/dist/plugins/resources/plugin.js.map +1 -1
  66. package/dist/plugins/uploads/preprocessors/image-classifier.d.ts.map +1 -1
  67. package/dist/plugins/uploads/preprocessors/image-classifier.js +15 -2
  68. package/dist/plugins/uploads/preprocessors/image-classifier.js.map +1 -1
  69. package/dist/plugins/uploads/preprocessors/markitdown-preprocessor.d.ts.map +1 -1
  70. package/dist/plugins/uploads/preprocessors/markitdown-preprocessor.js +72 -19
  71. package/dist/plugins/uploads/preprocessors/markitdown-preprocessor.js.map +1 -1
  72. package/dist/plugins/user-chat/plugin.d.ts +2 -0
  73. package/dist/plugins/user-chat/plugin.d.ts.map +1 -1
  74. package/dist/plugins/user-chat/plugin.js +47 -3
  75. package/dist/plugins/user-chat/plugin.js.map +1 -1
  76. package/dist/plugins/user-chat/schema.d.ts +10 -0
  77. package/dist/plugins/user-chat/schema.d.ts.map +1 -1
  78. package/dist/plugins/user-chat/schema.js +1 -0
  79. package/dist/plugins/user-chat/schema.js.map +1 -1
  80. package/dist/plugins/user-chat/user-chat.integration.test.js +86 -0
  81. package/dist/plugins/user-chat/user-chat.integration.test.js.map +1 -1
  82. package/package.json +2 -2
  83. package/src/core/agents/agent.ts +134 -20
  84. package/src/core/agents/config.ts +7 -0
  85. package/src/core/agents/context.ts +11 -0
  86. package/src/core/agents/state.ts +11 -4
  87. package/src/core/file-store/file-store.ts +38 -18
  88. package/src/core/image/vips-resizer.test.ts +26 -15
  89. package/src/core/llm/anthropic.ts +19 -12
  90. package/src/core/llm/cache-breakpoints.ts +15 -6
  91. package/src/core/sessions/session.test.ts +6 -0
  92. package/src/core/sessions/session.ts +4 -0
  93. package/src/core/sessions/state.ts +5 -1
  94. package/src/core/tools/executor.test.ts +1 -0
  95. package/src/plugins/agent-status/plugin.ts +18 -25
  96. package/src/plugins/context-compact/compaction-live.test.ts +221 -0
  97. package/src/plugins/context-compact/context-compact.integration.test.ts +135 -3
  98. package/src/plugins/context-compact/context-compactor.test.ts +71 -110
  99. package/src/plugins/context-compact/context-compactor.ts +88 -43
  100. package/src/plugins/context-compact/plugin.ts +19 -10
  101. package/src/plugins/filesystem/filesystem.integration.test.ts +44 -0
  102. package/src/plugins/filesystem/plugin.ts +8 -6
  103. package/src/plugins/mailbox/mailbox.integration.test.ts +12 -18
  104. package/src/plugins/resources/plugin.ts +4 -1
  105. package/src/plugins/uploads/preprocessors/image-classifier.ts +15 -2
  106. package/src/plugins/uploads/preprocessors/markitdown-preprocessor.ts +89 -20
  107. package/src/plugins/user-chat/plugin.ts +60 -3
  108. package/src/plugins/user-chat/schema.ts +10 -1
  109. package/src/plugins/user-chat/user-chat.integration.test.ts +99 -0
@@ -2,7 +2,7 @@ import { contextEvents } from '../../core/context/state.js';
2
2
  import { withSessionId } from '../../core/events/test-helpers.js';
3
3
  import { estimateMessagesTokens } from '../../core/llm/tokens.js';
4
4
  import { Err, Ok } from '../../lib/utils/result.js';
5
- import { CONTEXT_SUMMARY_PROMPT, wrapContextSummary } from '../../prompts/index.js';
5
+ import { wrapContextSummary } from '../../prompts/index.js';
6
6
  // ============================================================================
7
7
  // Message formatting for summarization
8
8
  // ============================================================================
@@ -56,6 +56,20 @@ function formatToolInput(input) {
56
56
  }
57
57
  return String(input).slice(0, 50);
58
58
  }
59
+ /**
60
+ * Trailing user-message instruction appended to the agent's full prefix when
61
+ * requesting a summary. The model sees its real system prompt, tools and full
62
+ * conversation, then this instruction last. Phrased to discourage tool calls
63
+ * — Sonnet-class models reliably emit a plain text response under this prompt.
64
+ */
65
+ export const DEFAULT_SUMMARY_INSTRUCTION = '[CONTEXT COMPACTION REQUEST]\n'
66
+ + 'The conversation above is approaching the context budget. Produce a concise '
67
+ + 'summary (under 600 words) of everything discussed and decided so far. Cover: '
68
+ + 'completed tasks and their outcomes, key decisions and rationale, current state '
69
+ + 'of any in-progress work, important file paths or identifiers, and outstanding '
70
+ + 'questions.\n\n'
71
+ + 'Reply with plain text only. Do NOT call any tools. Do NOT acknowledge this '
72
+ + 'request — just emit the summary directly.';
59
73
  // ============================================================================
60
74
  // History Offloader
61
75
  // ============================================================================
@@ -65,12 +79,10 @@ export const DEFAULT_HISTORY_PATH_PREFIX = '/session/.history/';
65
79
  // Context Compactor
66
80
  // ============================================================================
67
81
  export class ContextCompactor {
68
- llmProvider;
69
82
  logger;
70
83
  config;
71
84
  historyOffloader;
72
- constructor(llmProvider, logger, config, historyOffloader) {
73
- this.llmProvider = llmProvider;
85
+ constructor(logger, config, historyOffloader) {
74
86
  this.logger = logger;
75
87
  this.config = config;
76
88
  this.historyOffloader = historyOffloader;
@@ -105,35 +117,47 @@ export class ContextCompactor {
105
117
  return count;
106
118
  }
107
119
  /**
108
- * Check if compaction is needed based on token count.
120
+ * Check if compaction is needed.
121
+ *
122
+ * Prefers the provider-reported prompt token count from the previous turn
123
+ * (authoritative — comes straight from the model's tokenizer). Falls back
124
+ * to the in-process estimator when no previous metrics exist (first turn).
125
+ *
126
+ * The estimator under-counts JSON-heavy tool-result history by ~2x, so
127
+ * relying on it alone causes the trigger to never fire in long sessions.
109
128
  */
110
- needsCompaction(messages) {
111
- const tokens = estimateMessagesTokens(messages);
129
+ needsCompaction(messages, lastActualPromptTokens) {
130
+ const tokens = lastActualPromptTokens ?? estimateMessagesTokens(messages);
112
131
  return tokens > this.config.maxTokens;
113
132
  }
114
133
  /**
115
134
  * Compact conversation history if needed.
116
135
  * Returns null if compaction was not needed.
117
136
  */
118
- async compactIfNeeded(sessionId, agentId, messages) {
119
- if (!this.needsCompaction(messages)) {
137
+ async compactIfNeeded(sessionId, agentId, messages, runInference, lastActualPromptTokens) {
138
+ if (!this.needsCompaction(messages, lastActualPromptTokens)) {
120
139
  return Ok(null);
121
140
  }
122
- return this.compact(sessionId, agentId, messages);
141
+ return this.compact(sessionId, agentId, messages, runInference, lastActualPromptTokens);
123
142
  }
124
143
  /**
125
- * Compact conversation history by summarizing older messages.
144
+ * Compact conversation history by asking the agent's own model to summarize
145
+ * the older portion. The summarization call reuses the agent's existing
146
+ * prompt cache via `runInference`, paying only for the trailing instruction
147
+ * (a few hundred tokens) and the summary output — not the whole conversation
148
+ * a second time.
126
149
  */
127
- async compact(sessionId, agentId, messages) {
128
- const originalTokens = estimateMessagesTokens(messages);
150
+ async compact(sessionId, agentId, messages, runInference, lastActualPromptTokens) {
151
+ const originalTokens = lastActualPromptTokens ?? estimateMessagesTokens(messages);
129
152
  this.logger.info('Starting context compaction', {
130
153
  sessionId,
131
154
  agentId,
132
155
  messageCount: messages.length,
133
- estimatedTokens: originalTokens,
156
+ originalTokens,
157
+ actualTokensReported: lastActualPromptTokens !== undefined,
134
158
  });
135
- // Split messages: keep recent, compact older
136
- // Respect both count limit and token budget (whichever is hit first)
159
+ // Split messages: keep recent, compact older.
160
+ // Respect both count limit and token budget (whichever is hit first).
137
161
  const keepCount = this.computeKeepCount(messages);
138
162
  const toCompact = messages.slice(0, messages.length - keepCount);
139
163
  const toKeep = messages.slice(messages.length - keepCount);
@@ -147,20 +171,17 @@ export class ContextCompactor {
147
171
  messagesRemoved: 0,
148
172
  });
149
173
  }
150
- // Format messages for summarization
151
- const conversationText = toCompact
152
- .map(formatMessageForSummary)
153
- .join('\n\n');
154
- // Offload history if enabled
174
+ // Offload the dropped messages to disk for forensics / replay.
175
+ // Best-effort; failures are logged but don't block compaction.
155
176
  let historyPath;
156
177
  if (this.config.offloadHistory && this.historyOffloader) {
157
178
  try {
179
+ const conversationText = toCompact.map(formatMessageForSummary).join('\n\n');
158
180
  const pathPrefix = this.config.historyPathPrefix ?? DEFAULT_HISTORY_PATH_PREFIX;
159
181
  historyPath = await this.historyOffloader.offload(agentId, conversationText, pathPrefix);
160
182
  this.logger.info('History offloaded', { sessionId, agentId, historyPath });
161
183
  }
162
184
  catch (error) {
163
- // History offloading is best-effort, log and continue
164
185
  this.logger.warn('Failed to offload history', {
165
186
  sessionId,
166
187
  agentId,
@@ -168,18 +189,14 @@ export class ContextCompactor {
168
189
  });
169
190
  }
170
191
  }
171
- // Generate summary using LLM
172
- const summaryResult = await this.llmProvider.inference({
173
- model: this.config.model,
174
- systemPrompt: this.config.summaryPrompt ?? CONTEXT_SUMMARY_PROMPT,
175
- messages: [
176
- {
177
- role: 'user',
178
- content: `Please summarize this conversation:\n\n${conversationText}`,
179
- },
180
- ],
181
- tools: [],
182
- });
192
+ // Inline summarization: append the instruction as a trailing user message
193
+ // and let the host run inference with the agent's full live prefix. The
194
+ // agent's prompt cache from the previous turn covers everything up to
195
+ // (but not including) this instruction.
196
+ const summaryInstruction = this.config.summaryPrompt ?? DEFAULT_SUMMARY_INSTRUCTION;
197
+ const summaryResult = await runInference([
198
+ { role: 'user', content: summaryInstruction },
199
+ ]);
183
200
  if (!summaryResult.ok) {
184
201
  const llmError = summaryResult.error;
185
202
  this.logger.error('Failed to generate summary', new Error(llmError.message), {
@@ -190,9 +207,16 @@ export class ContextCompactor {
190
207
  return Err(new Error(`Compaction failed: ${llmError.message}`));
191
208
  }
192
209
  const summary = summaryResult.value.content ?? '';
193
- // Create summary message (with history reference if offloaded)
210
+ if (!summary.trim()) {
211
+ this.logger.warn('Summarization returned empty content', { sessionId, agentId });
212
+ return Err(new Error('Compaction failed: model returned empty summary'));
213
+ }
214
+ // Replace the compacted portion with a single user-role summary message.
215
+ // Using `user` role (not `system`) so the wrap reads as part of the
216
+ // conversation flow — Anthropic recommends user-role for arbitrary
217
+ // mid-conversation context blocks.
194
218
  const summaryMessage = {
195
- role: 'system',
219
+ role: 'user',
196
220
  content: wrapContextSummary(summary, historyPath),
197
221
  };
198
222
  const compactedMessages = [summaryMessage, ...toKeep];
@@ -1 +1 @@
1
- {"version":3,"file":"context-compactor.js","sourceRoot":"","sources":["../../../src/plugins/context-compact/context-compactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-compactor.js","sourceRoot":"","sources":["../../../src/plugins/context-compact/context-compactor.ts"],"names":[],"mappings":"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"}