marco-agent 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/agent.d.ts +46 -2
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +93 -20
- package/dist/agent.js.map +1 -1
- package/dist/compaction.d.ts +12 -2
- package/dist/compaction.d.ts.map +1 -1
- package/dist/compaction.js +26 -4
- package/dist/compaction.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +6 -3
- package/dist/mcp.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# marco-agent
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/marco-agent)
|
|
4
|
+
[](https://www.npmjs.com/package/marco-agent)
|
|
5
|
+
[](./LICENSE)
|
|
6
|
+
|
|
3
7
|
A simple, extensible AI agent built on [marco-harness](https://github.com/pyrotank41/MARCO). Works in CLI, server-side Node, Next.js, and Edge runtimes — with Anthropic, OpenAI, OpenRouter, DeepSeek, Together, Groq, vLLM, LM Studio, or any OpenAI-compatible endpoint.
|
|
4
8
|
|
|
5
9
|
`MarcoAgent` is a thin, composable wrapper around the harness. Sensible defaults out of the box, every knob exposed when you need it: streaming, multi-turn history, usage + cost tracking, per-turn budget guards, MCP-server-to-Tool bridge, opt-in compaction, and reasoning-content surfacing for chain-of-thought models.
|
package/dist/agent.d.ts
CHANGED
|
@@ -22,6 +22,18 @@ export type MarcoAgentOptions = {
|
|
|
22
22
|
pricing?: PricingFunction;
|
|
23
23
|
budget?: BudgetConfig;
|
|
24
24
|
compaction?: CompactionConfig;
|
|
25
|
+
/**
|
|
26
|
+
* External AbortSignal that cancels the run. When fired, the in-flight
|
|
27
|
+
* model call is aborted (mid-stream), tool calls are short-circuited,
|
|
28
|
+
* and ask()/stream() either throw AgentAbortedError (ask) or yield
|
|
29
|
+
* an 'aborted' event (stream). For an ergonomic alternative, call
|
|
30
|
+
* agent.abort(reason) — internally mirrors this signal.
|
|
31
|
+
*/
|
|
32
|
+
signal?: AbortSignal;
|
|
33
|
+
};
|
|
34
|
+
export type RunOptions = {
|
|
35
|
+
/** Per-call abort signal. Overrides MarcoAgentOptions.signal if both set. */
|
|
36
|
+
signal?: AbortSignal;
|
|
25
37
|
};
|
|
26
38
|
export type AskResult = {
|
|
27
39
|
text: string;
|
|
@@ -60,18 +72,50 @@ export type StreamEvent = {
|
|
|
60
72
|
} | {
|
|
61
73
|
type: 'done';
|
|
62
74
|
result: AskResult;
|
|
75
|
+
} | {
|
|
76
|
+
type: 'aborted';
|
|
77
|
+
result: AskResult;
|
|
78
|
+
reason?: string;
|
|
63
79
|
};
|
|
64
80
|
export declare class BudgetExceededError extends Error {
|
|
65
81
|
readonly reason: string;
|
|
66
82
|
readonly usage: CostUsage;
|
|
67
83
|
constructor(reason: string, usage: CostUsage);
|
|
68
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Thrown by ask() when the run is cancelled (via agent.abort() or an
|
|
87
|
+
* AbortSignal). Carries the partial result so callers can persist what
|
|
88
|
+
* was completed before the cancellation.
|
|
89
|
+
*/
|
|
90
|
+
export declare class AgentAbortedError extends Error {
|
|
91
|
+
readonly reason: string;
|
|
92
|
+
readonly partial: AskResult;
|
|
93
|
+
constructor(reason: string, partial: AskResult);
|
|
94
|
+
}
|
|
69
95
|
export declare class MarcoAgent {
|
|
70
96
|
private readonly options;
|
|
71
97
|
private readonly provider;
|
|
98
|
+
private currentRun;
|
|
72
99
|
constructor(options?: MarcoAgentOptions);
|
|
73
|
-
|
|
74
|
-
|
|
100
|
+
/**
|
|
101
|
+
* Abort the in-flight ask()/stream() call, if any. No-op when nothing
|
|
102
|
+
* is running. The run unwinds at the next cancellation point: the
|
|
103
|
+
* model fetch is cancelled mid-stream (tokens stop being billed), any
|
|
104
|
+
* in-flight tool calls are short-circuited, and the run resolves with
|
|
105
|
+
* partial state. ask() then throws AgentAbortedError; stream() yields
|
|
106
|
+
* a final 'aborted' event.
|
|
107
|
+
*/
|
|
108
|
+
abort(reason?: string): void;
|
|
109
|
+
ask(prompt: string, history?: Message[], options?: RunOptions): Promise<AskResult>;
|
|
110
|
+
stream(prompt: string, history?: Message[], options?: RunOptions): AsyncGenerator<StreamEvent, void, unknown>;
|
|
111
|
+
private streamInternal;
|
|
112
|
+
/**
|
|
113
|
+
* Build the per-run AbortController. Mirrors any external signal
|
|
114
|
+
* (per-call options.signal or constructor-time options.signal) into
|
|
115
|
+
* an internal controller, so agent.abort() can fire alongside the
|
|
116
|
+
* external signal.
|
|
117
|
+
*/
|
|
118
|
+
private makeRunController;
|
|
75
119
|
private model;
|
|
76
120
|
private checkBudget;
|
|
77
121
|
private assertWithinBudget;
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,aAAa,EAAoB,KAAK,OAAO,EAA0C,MAAM,eAAe,CAAA;AAE7K,OAAO,EAAc,KAAK,SAAS,EAAE,KAAK,eAAe,EAA+D,MAAM,YAAY,CAAA;AAC1I,OAAO,EAAE,KAAK,gBAAgB,EAAoC,MAAM,iBAAiB,CAAA;AAEzF,MAAM,MAAM,YAAY,GAAG;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,eAAe,CAAA;IACzB,MAAM,CAAC,EAAE,YAAY,CAAA;IAGrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -15,39 +15,87 @@ export class BudgetExceededError extends Error {
|
|
|
15
15
|
this.name = 'BudgetExceededError';
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Thrown by ask() when the run is cancelled (via agent.abort() or an
|
|
20
|
+
* AbortSignal). Carries the partial result so callers can persist what
|
|
21
|
+
* was completed before the cancellation.
|
|
22
|
+
*/
|
|
23
|
+
export class AgentAbortedError extends Error {
|
|
24
|
+
reason;
|
|
25
|
+
partial;
|
|
26
|
+
constructor(reason, partial) {
|
|
27
|
+
super(`Agent run aborted: ${reason}`);
|
|
28
|
+
this.reason = reason;
|
|
29
|
+
this.partial = partial;
|
|
30
|
+
this.name = 'AgentAbortedError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
18
33
|
export class MarcoAgent {
|
|
19
34
|
options;
|
|
20
35
|
provider;
|
|
36
|
+
currentRun = null;
|
|
21
37
|
constructor(options = {}) {
|
|
22
38
|
this.provider = options.provider ?? new AnthropicProvider({ apiKey: options.apiKey });
|
|
23
39
|
this.options = options;
|
|
24
40
|
}
|
|
25
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Abort the in-flight ask()/stream() call, if any. No-op when nothing
|
|
43
|
+
* is running. The run unwinds at the next cancellation point: the
|
|
44
|
+
* model fetch is cancelled mid-stream (tokens stop being billed), any
|
|
45
|
+
* in-flight tool calls are short-circuited, and the run resolves with
|
|
46
|
+
* partial state. ask() then throws AgentAbortedError; stream() yields
|
|
47
|
+
* a final 'aborted' event.
|
|
48
|
+
*/
|
|
49
|
+
abort(reason) {
|
|
50
|
+
this.currentRun?.abort(reason ?? 'manually aborted');
|
|
51
|
+
}
|
|
52
|
+
async ask(prompt, history = [], options = {}) {
|
|
53
|
+
const ctrl = this.makeRunController(options.signal);
|
|
54
|
+
this.currentRun = ctrl;
|
|
26
55
|
let workingHistory = history;
|
|
27
56
|
let compacted = false;
|
|
28
57
|
let compactionUsage = emptyUsage();
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
58
|
+
try {
|
|
59
|
+
if (shouldCompact(history, prompt, this.options.compaction)) {
|
|
60
|
+
const c = await performCompaction(this.provider, history, this.options.compaction, { signal: ctrl.signal });
|
|
61
|
+
workingHistory = c.history;
|
|
62
|
+
compacted = c.compacted;
|
|
63
|
+
compactionUsage = { ...emptyUsage(), inputTokens: c.usage.inputTokens, outputTokens: c.usage.outputTokens, modelCalls: 1 };
|
|
64
|
+
}
|
|
65
|
+
const harness = this.buildHarness(workingHistory, this.provider, () => undefined);
|
|
66
|
+
const result = await harness.run({ kind: 'user_message', text: prompt }, { signal: ctrl.signal });
|
|
67
|
+
const turnTokens = turnUsage(result.messages, workingHistory.length);
|
|
68
|
+
const totalTokens = addUsage(compactionUsage, turnTokens);
|
|
69
|
+
const usage = withCost(totalTokens, this.model(), this.options.pricing);
|
|
70
|
+
const out = buildAskResult(result.messages, workingHistory.length, usage);
|
|
71
|
+
const finalResult = compacted ? { ...out, compacted: true } : out;
|
|
72
|
+
if (result.status === 'aborted') {
|
|
73
|
+
throw new AgentAbortedError(result.abortReason ?? 'aborted', finalResult);
|
|
74
|
+
}
|
|
75
|
+
this.assertWithinBudget(usage);
|
|
76
|
+
return finalResult;
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
this.currentRun = null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async *stream(prompt, history = [], options = {}) {
|
|
83
|
+
const ctrl = this.makeRunController(options.signal);
|
|
84
|
+
this.currentRun = ctrl;
|
|
85
|
+
try {
|
|
86
|
+
yield* this.streamInternal(prompt, history, ctrl.signal);
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
this.currentRun = null;
|
|
34
90
|
}
|
|
35
|
-
const harness = this.buildHarness(workingHistory, this.provider, () => undefined);
|
|
36
|
-
const result = await harness.run({ kind: 'user_message', text: prompt });
|
|
37
|
-
const turnTokens = turnUsage(result.messages, workingHistory.length);
|
|
38
|
-
const totalTokens = addUsage(compactionUsage, turnTokens);
|
|
39
|
-
const usage = withCost(totalTokens, this.model(), this.options.pricing);
|
|
40
|
-
this.assertWithinBudget(usage);
|
|
41
|
-
const out = buildAskResult(result.messages, workingHistory.length, usage);
|
|
42
|
-
return compacted ? { ...out, compacted: true } : out;
|
|
43
91
|
}
|
|
44
|
-
async *
|
|
92
|
+
async *streamInternal(prompt, history, signal) {
|
|
45
93
|
let workingHistory = history;
|
|
46
94
|
let compacted = false;
|
|
47
95
|
let compactionUsage = emptyUsage();
|
|
48
96
|
if (shouldCompact(history, prompt, this.options.compaction)) {
|
|
49
97
|
yield { type: 'compaction_start' };
|
|
50
|
-
const c = await performCompaction(this.provider, history, this.options.compaction);
|
|
98
|
+
const c = await performCompaction(this.provider, history, this.options.compaction, { signal });
|
|
51
99
|
workingHistory = c.history;
|
|
52
100
|
compacted = c.compacted;
|
|
53
101
|
compactionUsage = { ...emptyUsage(), inputTokens: c.usage.inputTokens, outputTokens: c.usage.outputTokens, modelCalls: 1 };
|
|
@@ -65,8 +113,8 @@ export class MarcoAgent {
|
|
|
65
113
|
};
|
|
66
114
|
const innerProvider = this.provider;
|
|
67
115
|
const tee = {
|
|
68
|
-
async *stream(messages, tools, config) {
|
|
69
|
-
for await (const event of innerProvider.stream(messages, tools, config)) {
|
|
116
|
+
async *stream(messages, tools, config, opts) {
|
|
117
|
+
for await (const event of innerProvider.stream(messages, tools, config, opts)) {
|
|
70
118
|
queue.push(event);
|
|
71
119
|
wake();
|
|
72
120
|
yield event;
|
|
@@ -75,7 +123,7 @@ export class MarcoAgent {
|
|
|
75
123
|
};
|
|
76
124
|
const harness = this.buildHarness(workingHistory, tee, () => budgetTrip?.reason);
|
|
77
125
|
const runPromise = harness
|
|
78
|
-
.run({ kind: 'user_message', text: prompt })
|
|
126
|
+
.run({ kind: 'user_message', text: prompt }, { signal })
|
|
79
127
|
.finally(() => { done = true; wake(); });
|
|
80
128
|
while (!done || queue.length > 0) {
|
|
81
129
|
while (queue.length > 0) {
|
|
@@ -108,7 +156,32 @@ export class MarcoAgent {
|
|
|
108
156
|
const totalTokens = addUsage(compactionUsage, turnTokens);
|
|
109
157
|
const finalUsage = withCost(totalTokens, this.model(), this.options.pricing);
|
|
110
158
|
const out = buildAskResult(result.messages, workingHistory.length, finalUsage);
|
|
111
|
-
|
|
159
|
+
const finalResult = compacted ? { ...out, compacted: true } : out;
|
|
160
|
+
if (result.status === 'aborted') {
|
|
161
|
+
yield { type: 'aborted', result: finalResult, reason: result.abortReason };
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
yield { type: 'done', result: finalResult };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Build the per-run AbortController. Mirrors any external signal
|
|
169
|
+
* (per-call options.signal or constructor-time options.signal) into
|
|
170
|
+
* an internal controller, so agent.abort() can fire alongside the
|
|
171
|
+
* external signal.
|
|
172
|
+
*/
|
|
173
|
+
makeRunController(perCallSignal) {
|
|
174
|
+
const ctrl = new AbortController();
|
|
175
|
+
const external = perCallSignal ?? this.options.signal;
|
|
176
|
+
if (external) {
|
|
177
|
+
if (external.aborted) {
|
|
178
|
+
ctrl.abort(external.reason);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
external.addEventListener('abort', () => ctrl.abort(external.reason), { once: true });
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return ctrl;
|
|
112
185
|
}
|
|
113
186
|
model() {
|
|
114
187
|
return this.options.model ?? DEFAULT_MODEL;
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/compaction.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import type { Message, ModelProvider } from 'marco-harness';
|
|
1
|
+
import type { Message, ModelProvider, SystemMessage, Usage } from 'marco-harness';
|
|
2
|
+
export type CompactionSummaryMeta = {
|
|
3
|
+
kind: 'compaction';
|
|
4
|
+
messagesRemoved: number;
|
|
5
|
+
summaryUsage: Usage;
|
|
6
|
+
};
|
|
7
|
+
export declare function isCompactionSummary(m: Message): m is SystemMessage & {
|
|
8
|
+
meta: CompactionSummaryMeta;
|
|
9
|
+
};
|
|
2
10
|
export type CompactionConfig = {
|
|
3
11
|
summaryModel: string;
|
|
4
12
|
summaryPrompt: string;
|
|
@@ -16,5 +24,7 @@ export type CompactionResult = {
|
|
|
16
24
|
summaryText: string;
|
|
17
25
|
};
|
|
18
26
|
export declare function shouldCompact(history: Message[], prompt: string, config: CompactionConfig | undefined): boolean;
|
|
19
|
-
export declare function performCompaction(provider: ModelProvider, history: Message[], config: CompactionConfig
|
|
27
|
+
export declare function performCompaction(provider: ModelProvider, history: Message[], config: CompactionConfig, options?: {
|
|
28
|
+
signal?: AbortSignal;
|
|
29
|
+
}): Promise<CompactionResult>;
|
|
20
30
|
//# sourceMappingURL=compaction.d.ts.map
|
package/dist/compaction.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAMjF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,YAAY,CAAA;IAElB,eAAe,EAAE,MAAM,CAAA;IAIvB,YAAY,EAAE,KAAK,CAAA;CACpB,CAAA;AAUD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,OAAO,GACT,CAAC,IAAI,aAAa,GAAG;IAAE,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAItD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAE7B,YAAY,EAAE,MAAM,CAAA;IAEpB,aAAa,EAAE,MAAM,CAAA;IAErB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAG7B,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAElB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAA;IAEpD,eAAe,EAAE,MAAM,CAAA;IAIvB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAKD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,CAyBT;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,OAAO,EAAE,EAClB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACrC,OAAO,CAAC,gBAAgB,CAAC,CAuE3B"}
|
package/dist/compaction.js
CHANGED
|
@@ -14,6 +14,20 @@
|
|
|
14
14
|
// well before the model's hard limit. summaryModel and summaryPrompt have NO
|
|
15
15
|
// default — the library can't know what model your API key supports, and a
|
|
16
16
|
// generic prompt would mismatch most agent domains.
|
|
17
|
+
// Type guard for consumers walking result.messages. Use this to find the
|
|
18
|
+
// synthesized summary message and narrow its `meta` to CompactionSummaryMeta:
|
|
19
|
+
//
|
|
20
|
+
// const summary = result.messages.find(isCompactionSummary)
|
|
21
|
+
// if (summary) console.log(summary.meta.messagesRemoved)
|
|
22
|
+
//
|
|
23
|
+
// More robust than `m.role === 'system' && m.meta?.kind === 'compaction'`
|
|
24
|
+
// at the call site because it returns a properly narrowed type.
|
|
25
|
+
export function isCompactionSummary(m) {
|
|
26
|
+
if (m.role !== 'system')
|
|
27
|
+
return false;
|
|
28
|
+
const meta = m.meta;
|
|
29
|
+
return meta?.kind === 'compaction';
|
|
30
|
+
}
|
|
17
31
|
const DEFAULT_TRIGGER = 150_000;
|
|
18
32
|
const DEFAULT_KEEP_LAST_TURNS = 4;
|
|
19
33
|
export function shouldCompact(history, prompt, config) {
|
|
@@ -41,7 +55,7 @@ export function shouldCompact(history, prompt, config) {
|
|
|
41
55
|
const userCount = history.filter((m) => m.role === 'user').length;
|
|
42
56
|
return userCount > keep;
|
|
43
57
|
}
|
|
44
|
-
export async function performCompaction(provider, history, config) {
|
|
58
|
+
export async function performCompaction(provider, history, config, options = {}) {
|
|
45
59
|
const keep = config.keepLastTurns ?? DEFAULT_KEEP_LAST_TURNS;
|
|
46
60
|
// Boundary = index of the (keep-th from end) user message. Everything
|
|
47
61
|
// STRICTLY before that index becomes the prefix to summarize; the boundary
|
|
@@ -72,7 +86,7 @@ export async function performCompaction(provider, history, config) {
|
|
|
72
86
|
let summaryText = '';
|
|
73
87
|
let inputTokens = 0;
|
|
74
88
|
let outputTokens = 0;
|
|
75
|
-
for await (const ev of provider.stream([summaryUserMessage], [], { model: config.summaryModel, maxTokens: 4000 })) {
|
|
89
|
+
for await (const ev of provider.stream([summaryUserMessage], [], { model: config.summaryModel, maxTokens: 4000 }, options.signal ? { signal: options.signal } : undefined)) {
|
|
76
90
|
if (ev.type === 'text_delta')
|
|
77
91
|
summaryText += ev.text;
|
|
78
92
|
else if (ev.type === 'message_end') {
|
|
@@ -81,11 +95,19 @@ export async function performCompaction(provider, history, config) {
|
|
|
81
95
|
outputTokens = ev.message.usage.outputTokens;
|
|
82
96
|
}
|
|
83
97
|
}
|
|
98
|
+
const trimmedSummary = summaryText.trim();
|
|
99
|
+
// Mark the synthesized system message with meta so consumers can detect it
|
|
100
|
+
// in result.messages without threading separate stream-event tracking
|
|
101
|
+
// through their persistence layer. Available since marco-harness 0.2.2.
|
|
84
102
|
const summaryMessage = {
|
|
85
103
|
role: 'system',
|
|
86
|
-
text: `Summary of earlier conversation:\n${
|
|
104
|
+
text: `Summary of earlier conversation:\n${trimmedSummary}`,
|
|
105
|
+
meta: {
|
|
106
|
+
kind: 'compaction',
|
|
107
|
+
messagesRemoved: prefix.length,
|
|
108
|
+
summaryUsage: { inputTokens, outputTokens },
|
|
109
|
+
},
|
|
87
110
|
};
|
|
88
|
-
const trimmedSummary = summaryText.trim();
|
|
89
111
|
return {
|
|
90
112
|
history: [summaryMessage, ...recent],
|
|
91
113
|
compacted: true,
|
package/dist/compaction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,8DAA8D;AAC9D,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,uCAAuC;AACvC,EAAE;AACF,sEAAsE;AACtE,uEAAuE;AACvE,oEAAoE;AACpE,EAAE;AACF,8EAA8E;AAC9E,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,oDAAoD;
|
|
1
|
+
{"version":3,"file":"compaction.js","sourceRoot":"","sources":["../src/compaction.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { MarcoAgent, BudgetExceededError, type MarcoAgentOptions, type AskResult, type StreamEvent, type BudgetConfig } from './agent.js';
|
|
2
|
-
export { type CompactionConfig, type CompactionResult, shouldCompact, performCompaction } from './compaction.js';
|
|
1
|
+
export { MarcoAgent, BudgetExceededError, AgentAbortedError, type MarcoAgentOptions, type RunOptions, type AskResult, type StreamEvent, type BudgetConfig } from './agent.js';
|
|
2
|
+
export { type CompactionConfig, type CompactionResult, type CompactionSummaryMeta, shouldCompact, performCompaction, isCompactionSummary, } from './compaction.js';
|
|
3
3
|
export { currentTimeTool } from './tools/current-time.js';
|
|
4
4
|
export { toolFromZod, z, type ToolFromZodOptions } from './tool-from-zod.js';
|
|
5
5
|
export { defaultAnthropicPricing, emptyUsage, addUsage, withCost, type Usage, type CostUsage, type PricingFunction } from './usage.js';
|
|
6
6
|
export { fromMcpServer, type FromMcpServerOptions } from './mcp.js';
|
|
7
7
|
export { AnthropicProvider, OpenAICompatibleProvider, MockProvider } from 'marco-harness';
|
|
8
|
-
export type { Tool, Hooks, ModelProvider, ModelConfig, Message, AnthropicProviderOptions, OpenAICompatibleProviderOptions } from 'marco-harness';
|
|
8
|
+
export type { Tool, Hooks, ModelProvider, ModelConfig, Message, MessageMeta, AnthropicProviderOptions, OpenAICompatibleProviderOptions } from 'marco-harness';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAA;AAC7K,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAA;AACtI,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACzF,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { MarcoAgent, BudgetExceededError } from './agent.js';
|
|
2
|
-
export { shouldCompact, performCompaction } from './compaction.js';
|
|
1
|
+
export { MarcoAgent, BudgetExceededError, AgentAbortedError } from './agent.js';
|
|
2
|
+
export { shouldCompact, performCompaction, isCompactionSummary, } from './compaction.js';
|
|
3
3
|
export { currentTimeTool } from './tools/current-time.js';
|
|
4
4
|
export { toolFromZod, z } from './tool-from-zod.js';
|
|
5
5
|
export { defaultAnthropicPricing, emptyUsage, addUsage, withCost } from './usage.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,iBAAiB,EAAgG,MAAM,YAAY,CAAA;AAC7K,OAAO,EAIL,aAAa,EACb,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,CAAC,EAA2B,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAoD,MAAM,YAAY,CAAA;AACtI,OAAO,EAAE,aAAa,EAA6B,MAAM,UAAU,CAAA;AACnE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/mcp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAKlB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEzC,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAKlB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAEpC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC,CAAA;AAsDD,wBAAsB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CA6B/E"}
|
package/dist/mcp.js
CHANGED
|
@@ -12,11 +12,12 @@
|
|
|
12
12
|
// is the security boundary that lets a SaaS pass `target_user_id` per
|
|
13
13
|
// request without trusting the model.
|
|
14
14
|
let nextId = 1;
|
|
15
|
-
async function jsonRpc(url, method, params, headers, fetchImpl) {
|
|
15
|
+
async function jsonRpc(url, method, params, headers, fetchImpl, signal) {
|
|
16
16
|
const res = await fetchImpl(url, {
|
|
17
17
|
method: 'POST',
|
|
18
18
|
headers: { 'content-type': 'application/json', ...(headers ?? {}) },
|
|
19
19
|
body: JSON.stringify({ jsonrpc: '2.0', id: nextId++, method, params }),
|
|
20
|
+
signal,
|
|
20
21
|
});
|
|
21
22
|
if (!res.ok)
|
|
22
23
|
throw new Error(`MCP HTTP ${res.status}: ${await res.text()}`);
|
|
@@ -54,10 +55,12 @@ export async function fromMcpServer(opts) {
|
|
|
54
55
|
inputJsonSchema: t.inputSchema ?? { type: 'object', properties: {} },
|
|
55
56
|
// The MCP server is the source of truth for input validation. Pass through.
|
|
56
57
|
validate: (input) => input,
|
|
57
|
-
handler: async (input) => {
|
|
58
|
+
handler: async (input, ctx) => {
|
|
58
59
|
const modelArgs = (typeof input === 'object' && input !== null) ? input : {};
|
|
59
60
|
const args = { ...modelArgs, ...(opts.contextArgs ?? {}) };
|
|
60
|
-
|
|
61
|
+
// Forward ctx.abortSignal so a stop click cancels the in-flight
|
|
62
|
+
// MCP HTTP call mid-fetch — not just orphans it. Bills stop.
|
|
63
|
+
const result = await jsonRpc(opts.url, 'tools/call', { name: t.name, arguments: args }, opts.headers, fetchImpl, ctx.abortSignal);
|
|
61
64
|
return resultToText(result);
|
|
62
65
|
},
|
|
63
66
|
}));
|
package/dist/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,4EAA4E;AAC5E,2CAA2C;AAC3C,EAAE;AACF,oEAAoE;AACpE,EAAE;AACF,sEAAsE;AACtE,4EAA4E;AAC5E,sEAAsE;AACtE,sCAAsC;AAsCtC,IAAI,MAAM,GAAG,CAAC,CAAA;AAEd,KAAK,UAAU,OAAO,CACpB,GAAW,EACX,MAAc,EACd,MAAe,EACf,OAA2C,EAC3C,SAAkC;
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,0EAA0E;AAC1E,4EAA4E;AAC5E,2CAA2C;AAC3C,EAAE;AACF,oEAAoE;AACpE,EAAE;AACF,sEAAsE;AACtE,4EAA4E;AAC5E,sEAAsE;AACtE,sCAAsC;AAsCtC,IAAI,MAAM,GAAG,CAAC,CAAA;AAEd,KAAK,UAAU,OAAO,CACpB,GAAW,EACX,MAAc,EACd,MAAe,EACf,OAA2C,EAC3C,SAAkC,EAClC,MAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;QAC/B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE;QACnE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QACtE,MAAM;KACP,CAAC,CAAA;IACF,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAC3E,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAuB,CAAA;IACrD,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACvE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IACvE,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC;AAED,SAAS,YAAY,CAAC,CAAgB;IACpC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,yBAAyB,CAAA;QACxF,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IACD,IAAI,CAAC,CAAC,iBAAiB,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAA;IACjF,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;IAC1E,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAA;IAChD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;IAEnF,MAAM,IAAI,GAAG,MAAM,OAAO,CACxB,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CACvE,CAAA;IAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAA;IAC5B,IAAI,IAAI,CAAC,OAAO;QAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7E,IAAI,IAAI,CAAC,OAAO;QAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAE9E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAQ,EAAE,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE;QAChC,eAAe,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpE,4EAA4E;QAC5E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;QAC1B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5B,MAAM,SAAS,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAA;YACvG,MAAM,IAAI,GAAG,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAA;YAC1D,gEAAgE;YAChE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,WAAW,CACpG,CAAA;YACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;QAC7B,CAAC;KACF,CAAC,CAAC,CAAA;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "marco-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "A simple, extensible AI agent built on marco-harness.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"start": "tsx src/bin.ts"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"marco-harness": "^0.
|
|
30
|
+
"marco-harness": "^0.3.0",
|
|
31
31
|
"zod": "^3.25.76"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|