clanka 0.3.1 → 0.4.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.
Files changed (69) hide show
  1. package/dist/Acp.d.ts.map +1 -1
  2. package/dist/Acp.js +3 -0
  3. package/dist/Acp.js.map +1 -1
  4. package/dist/Acp.test.js +58 -0
  5. package/dist/Acp.test.js.map +1 -1
  6. package/dist/Agent.d.ts.map +1 -1
  7. package/dist/Agent.js +86 -8
  8. package/dist/Agent.js.map +1 -1
  9. package/dist/Agent.test.js +671 -0
  10. package/dist/Agent.test.js.map +1 -1
  11. package/dist/AgentExecutor.d.ts +5 -0
  12. package/dist/AgentExecutor.d.ts.map +1 -1
  13. package/dist/AgentExecutor.js +22 -0
  14. package/dist/AgentExecutor.js.map +1 -1
  15. package/dist/AgentOutput.d.ts +49 -4
  16. package/dist/AgentOutput.d.ts.map +1 -1
  17. package/dist/AgentOutput.js +45 -0
  18. package/dist/AgentOutput.js.map +1 -1
  19. package/dist/AgentSkills.d.ts +56 -0
  20. package/dist/AgentSkills.d.ts.map +1 -0
  21. package/dist/AgentSkills.js +126 -0
  22. package/dist/AgentSkills.js.map +1 -0
  23. package/dist/AgentSkills.test.d.ts +2 -0
  24. package/dist/AgentSkills.test.d.ts.map +1 -0
  25. package/dist/AgentSkills.test.js +356 -0
  26. package/dist/AgentSkills.test.js.map +1 -0
  27. package/dist/Codex.js +1 -1
  28. package/dist/Codex.js.map +1 -1
  29. package/dist/Compaction.d.ts +342 -0
  30. package/dist/Compaction.d.ts.map +1 -0
  31. package/dist/Compaction.js +566 -0
  32. package/dist/Compaction.js.map +1 -0
  33. package/dist/Compaction.test.d.ts +2 -0
  34. package/dist/Compaction.test.d.ts.map +1 -0
  35. package/dist/Compaction.test.js +576 -0
  36. package/dist/Compaction.test.js.map +1 -0
  37. package/dist/CompactionTransport.test.d.ts +2 -0
  38. package/dist/CompactionTransport.test.d.ts.map +1 -0
  39. package/dist/CompactionTransport.test.js +123 -0
  40. package/dist/CompactionTransport.test.js.map +1 -0
  41. package/dist/Copilot.d.ts.map +1 -1
  42. package/dist/Copilot.js +7 -2
  43. package/dist/Copilot.js.map +1 -1
  44. package/dist/OutputFormatter.d.ts.map +1 -1
  45. package/dist/OutputFormatter.js +9 -0
  46. package/dist/OutputFormatter.js.map +1 -1
  47. package/dist/cli.js +13 -4
  48. package/dist/cli.js.map +1 -1
  49. package/dist/index.d.ts +5 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +5 -0
  52. package/dist/index.js.map +1 -1
  53. package/package.json +1 -1
  54. package/src/Acp.test.ts +85 -0
  55. package/src/Acp.ts +2 -0
  56. package/src/Agent.test.ts +994 -0
  57. package/src/Agent.ts +127 -6
  58. package/src/AgentExecutor.ts +27 -0
  59. package/src/AgentOutput.ts +58 -0
  60. package/src/AgentSkills.test.ts +652 -0
  61. package/src/AgentSkills.ts +155 -0
  62. package/src/Codex.ts +3 -1
  63. package/src/Compaction.test.ts +824 -0
  64. package/src/Compaction.ts +788 -0
  65. package/src/CompactionTransport.test.ts +228 -0
  66. package/src/Copilot.ts +8 -1
  67. package/src/OutputFormatter.ts +9 -0
  68. package/src/cli.ts +26 -5
  69. package/src/index.ts +6 -0
@@ -0,0 +1,123 @@
1
+ import { OpenAiClient } from "@effect/ai-openai";
2
+ import { OpenAiClient as CompatClient } from "@effect/ai-openai-compat";
3
+ import { assert, describe, it } from "@effect/vitest";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Exit from "effect/Exit";
6
+ import * as Layer from "effect/Layer";
7
+ import * as Option from "effect/Option";
8
+ import * as Stream from "effect/Stream";
9
+ import * as AiError from "effect/unstable/ai/AiError";
10
+ import * as LanguageModel from "effect/unstable/ai/LanguageModel";
11
+ import * as Prompt from "effect/unstable/ai/Prompt";
12
+ import * as HttpClient from "effect/unstable/http/HttpClient";
13
+ import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
14
+ import * as Codex from "./Codex.js";
15
+ import * as Compaction from "./Compaction.js";
16
+ import * as Copilot from "./Copilot.js";
17
+ const user = (text) => Prompt.makeMessage("user", {
18
+ content: [Prompt.makePart("text", { text })],
19
+ });
20
+ const history = Prompt.fromMessages([
21
+ user("old context ".repeat(1_000)),
22
+ user("continue"),
23
+ ]);
24
+ const summaryPrompt = Compaction.summarizerPrompt({
25
+ previousSummary: Option.none(),
26
+ messages: history.content,
27
+ });
28
+ // Use the real provider model and client. Stop at the transport boundary so no
29
+ // credentials, network access, or permissive scripted LanguageModel are involved.
30
+ const captureHttp = () => {
31
+ const requests = [];
32
+ const client = HttpClient.make((request) => Effect.sync(() => {
33
+ requests.push(request);
34
+ return HttpClientResponse.fromWeb(request, new Response(JSON.stringify({
35
+ error: {
36
+ message: "transport probe",
37
+ type: "invalid_request_error",
38
+ },
39
+ }), { status: 400, headers: { "content-type": "application/json" } }));
40
+ }));
41
+ return { requests, layer: Layer.succeed(HttpClient.HttpClient, client) };
42
+ };
43
+ const body = (request) => {
44
+ if (request.body._tag !== "Uint8Array")
45
+ throw new Error("expected a JSON request body");
46
+ return JSON.parse(new TextDecoder().decode(request.body.body));
47
+ };
48
+ const compact = Compaction.compact({
49
+ prompt: history,
50
+ reason: "threshold",
51
+ }).pipe(Effect.provide(Compaction.CompactionConfig.layer({ keepRecentTokens: 100 })));
52
+ const streamedSummary = Effect.gen(function* () {
53
+ const ai = yield* LanguageModel.LanguageModel;
54
+ const transform = yield* Compaction.SummarizerTransform;
55
+ return yield* transform(ai.streamText({ prompt: summaryPrompt }).pipe(Stream.runDrain));
56
+ });
57
+ const socketError = AiError.make({
58
+ module: "test/socket",
59
+ method: "createResponseStream",
60
+ reason: new AiError.InvalidRequestError({ description: "transport probe" }),
61
+ });
62
+ describe("Compaction provider transport", () => {
63
+ it.effect("sets stream: true on the Codex HTTP summarization request", () => Effect.gen(function* () {
64
+ const http = captureHttp();
65
+ const exit = yield* compact.pipe(Effect.provide(Codex.model("gpt-6-astra").pipe(Layer.provide(OpenAiClient.layer({ apiUrl: "https://codex.test" }).pipe(Layer.provide(http.layer))))), Effect.exit);
66
+ assert.isTrue(Exit.isFailure(exit));
67
+ assert.strictEqual(http.requests.length, 1);
68
+ assert.strictEqual(http.requests[0].url, "https://codex.test/responses");
69
+ const request = body(http.requests[0]);
70
+ assert.strictEqual(request.stream, true, "Codex rejects non-streaming responses with HTTP 400");
71
+ assert.isFalse("max_output_tokens" in request);
72
+ assert.deepStrictEqual(request.tools ?? [], []);
73
+ }));
74
+ it.effect("routes compaction through the installed OpenAiSocket rather than HTTP", () => Effect.gen(function* () {
75
+ const http = captureHttp();
76
+ const requests = [];
77
+ const exit = yield* compact.pipe(Effect.provideService(OpenAiClient.OpenAiSocket, {
78
+ createResponseStream: (request) => Effect.suspend(() => {
79
+ requests.push(request);
80
+ return Effect.fail(socketError);
81
+ }),
82
+ }), Effect.provide(Codex.model("gpt-6-astra").pipe(Layer.provide(OpenAiClient.layer({ apiUrl: "https://codex.test" }).pipe(Layer.provide(http.layer))))), Effect.exit);
83
+ assert.strictEqual(http.requests.length, 0, "generateText bypasses the websocket and must not be used here");
84
+ assert.strictEqual(requests.length, 1);
85
+ assert.deepStrictEqual(exit, Exit.fail(socketError));
86
+ assert.isFalse("max_output_tokens" in requests[0]);
87
+ assert.deepStrictEqual(requests[0].tools ?? [], []);
88
+ }));
89
+ it.effect("omits the unsupported Codex output-token cap even when streaming is selected", () => Effect.gen(function* () {
90
+ const http = captureHttp();
91
+ yield* streamedSummary.pipe(Effect.provide(Codex.model("gpt-6-astra").pipe(Layer.provide(OpenAiClient.layer({ apiUrl: "https://codex.test" }).pipe(Layer.provide(http.layer))))), Effect.exit);
92
+ assert.strictEqual(http.requests.length, 1);
93
+ const request = body(http.requests[0]);
94
+ assert.strictEqual(request.stream, true);
95
+ // The live Codex backend rejects this parameter; a 4k cap is unavailable.
96
+ assert.isFalse("max_output_tokens" in request, "Codex does not support max_output_tokens");
97
+ assert.deepInclude(request.input, {
98
+ role: "system",
99
+ content: [{ type: "input_text", text: Compaction.summarizerSystem }],
100
+ });
101
+ }));
102
+ it.effect("retains Copilot's 4k wire-level cap only for the streamed summary", () => Effect.gen(function* () {
103
+ const http = captureHttp();
104
+ yield* Effect.gen(function* () {
105
+ yield* streamedSummary.pipe(Effect.exit);
106
+ const ai = yield* LanguageModel.LanguageModel;
107
+ yield* ai
108
+ .streamText({ prompt: "continue" })
109
+ .pipe(Stream.runDrain, Effect.exit);
110
+ }).pipe(Effect.provide(Copilot.model("gpt-4.1").pipe(Layer.provide(CompatClient.layer({ apiUrl: "https://copilot.test" }).pipe(Layer.provide(http.layer))))));
111
+ assert.strictEqual(http.requests.length, 2);
112
+ assert.strictEqual(http.requests[0].url, "https://copilot.test/chat/completions");
113
+ const summary = body(http.requests[0]);
114
+ const continuation = body(http.requests[1]);
115
+ assert.strictEqual(summary.stream, true);
116
+ // The compatibility client translates max_output_tokens to max_tokens.
117
+ assert.strictEqual(summary.max_tokens, 4_000);
118
+ assert.deepStrictEqual(summary.tools ?? [], []);
119
+ assert.isFalse("max_tokens" in continuation, "summary override must not leak into the next model call");
120
+ assert.strictEqual(continuation.stream, true);
121
+ }));
122
+ });
123
+ //# sourceMappingURL=CompactionTransport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactionTransport.test.js","sourceRoot":"","sources":["../src/CompactionTransport.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Copilot.d.ts","sourceRoot":"","sources":["../src/Copilot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,KAAK,aAAa,MAAM,kCAAkC,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,WAAW,8NAE6B,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,KAAK,UACT,MAAM,YAET,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,gBAAgB,CAAC,OAAO,CAAC,GACzE,SAAS,KACZ,KAAK,CAAC,KAAK,CACZ,QAAQ,EACR,aAAa,CAAC,aAAa,EAC3B,YAAY,CAAC,YAAY,CAcxB,CAAA"}
1
+ {"version":3,"file":"Copilot.d.ts","sourceRoot":"","sources":["../src/Copilot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AACjD,OAAO,KAAK,KAAK,aAAa,MAAM,kCAAkC,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,WAAW,8NAE6B,CAAA;AAErD;;;GAGG;AACH,eAAO,MAAM,KAAK,UACT,MAAM,YAET,CAAC,mBAAmB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,gBAAgB,CAAC,OAAO,CAAC,GACzE,SAAS,KACZ,KAAK,CAAC,KAAK,CACZ,QAAQ,EACR,aAAa,CAAC,aAAa,EAC3B,YAAY,CAAC,YAAY,CAoBxB,CAAA"}
package/dist/Copilot.js CHANGED
@@ -6,6 +6,7 @@ import * as Layer from "effect/Layer";
6
6
  import * as Struct from "effect/Struct";
7
7
  import { API_URL, GithubCopilotAuth } from "./CopilotAuth.js";
8
8
  import { AgentModelConfig } from "./Agent.js";
9
+ import * as Compaction from "./Compaction.js";
9
10
  import * as Model from "effect/unstable/ai/Model";
10
11
  /**
11
12
  * @since 1.0.0
@@ -18,10 +19,14 @@ export const layerClient = OpenAiClient.layer({
18
19
  * @since 1.0.0
19
20
  * @category Layers
20
21
  */
21
- export const model = (model, options) => Model.make("openai", model, Layer.merge(OpenAiLanguageModel.layer({
22
+ export const model = (model, options) => Model.make("openai", model, Layer.mergeAll(OpenAiLanguageModel.layer({
22
23
  model,
23
24
  config: Struct.omit(options ?? {}, ["systemPromptTransform"]),
24
25
  }), AgentModelConfig.layer({
25
26
  systemPromptTransform: options?.systemPromptTransform,
26
- })));
27
+ }),
28
+ // Cap compaction summaries; Copilot honours max_output_tokens.
29
+ Layer.succeed(Compaction.SummarizerTransform, (effect) => OpenAiLanguageModel.withConfigOverride(effect, {
30
+ max_output_tokens: Compaction.summarizerMaxOutputTokens,
31
+ }))));
27
32
  //# sourceMappingURL=Copilot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Copilot.js","sourceRoot":"","sources":["../src/Copilot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AAGjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;IAC5C,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,KAAa,EACb,OAEa,EAKb,EAAE,CACF,KAAK,CAAC,IAAI,CACR,QAAQ,EACR,KAAK,EACL,KAAK,CAAC,KAAK,CACT,mBAAmB,CAAC,KAAK,CAAC;IACxB,KAAK;IACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC;CAC9D,CAAC,EACF,gBAAgB,CAAC,KAAK,CAAC;IACrB,qBAAqB,EAAE,OAAO,EAAE,qBAAqB;CACtD,CAAC,CACH,CACF,CAAA"}
1
+ {"version":3,"file":"Copilot.js","sourceRoot":"","sources":["../src/Copilot.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC5E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAA;AAGjD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC;IAC5C,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,KAAa,EACb,OAEa,EAKb,EAAE,CACF,KAAK,CAAC,IAAI,CACR,QAAQ,EACR,KAAK,EACL,KAAK,CAAC,QAAQ,CACZ,mBAAmB,CAAC,KAAK,CAAC;IACxB,KAAK;IACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC;CAC9D,CAAC,EACF,gBAAgB,CAAC,KAAK,CAAC;IACrB,qBAAqB,EAAE,OAAO,EAAE,qBAAqB;CACtD,CAAC;AACF,+DAA+D;AAC/D,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CACvD,mBAAmB,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC7C,iBAAiB,EAAE,UAAU,CAAC,yBAAyB;CACxD,CAAC,CACH,CACF,CACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"OutputFormatter.d.ts","sourceRoot":"","sources":["../src/OutputFormatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAO7D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;AAExD;;;GAGG;AACH,eAAO,MAAM,MAAM,aAAc;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;CACzD,KAAG,eAiFH,CAAA;;QAoCO,CAAC,EAAE,CAAC,SACC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,GACjD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;qBACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AAV1C;;;GAGG;AACH,qBAAa,KAAM,SAAQ,UAQQ;CAAG;AAEtC;;;GAGG;AACH,eAAO,MAAM,UAAU,cAAe,eAAe,qCAsDlD,CAAA"}
1
+ {"version":3,"file":"OutputFormatter.d.ts","sourceRoot":"","sources":["../src/OutputFormatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAO7D;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EACjC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,KAChD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAA;AAExD;;;GAGG;AACH,eAAO,MAAM,MAAM,aAAc;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;CACzD,KAAG,eA0FH,CAAA;;QAoCO,CAAC,EAAE,CAAC,SACC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,CAAC,EAAE,CAAC,CAAC,GACjD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;qBACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AAV1C;;;GAGG;AACH,qBAAa,KAAM,SAAQ,UAQQ;CAAG;AAEtC;;;GAGG;AACH,eAAO,MAAM,UAAU,cAAe,eAAe,qCAsDlD,CAAA"}
@@ -77,6 +77,15 @@ ${output.summary}\n\n`;
77
77
  case "Usage": {
78
78
  return `${prefix}${chalkInfoHeading(`${infoIcon} Usage:`)} ${numberFormat.format(output.contextTokens)} context / ${numberFormat.format(output.inputTokens)} input / ${numberFormat.format(output.outputTokens)} output\n\n`;
79
79
  }
80
+ case "ExecuteOutputCapped": {
81
+ return `${prefix}${chalkInfoHeading(`${infoIcon} Output capped:`)} ${numberFormat.format(output.charsBefore)} chars reduced to ${numberFormat.format(output.charsAfter)}\n\n`;
82
+ }
83
+ case "CompactionStarted": {
84
+ return `${prefix}${chalkInfoHeading(`${infoIcon} Compacting context (${output.reason})...`)}\n\n`;
85
+ }
86
+ case "CompactionEnded": {
87
+ return `${prefix}${chalkInfoHeading(`${infoIcon} Context compacted (${output.reason}):`)} ~${numberFormat.format(output.tokensBefore)} tokens to ~${numberFormat.format(output.tokensAfter)}\n\n`;
88
+ }
80
89
  }
81
90
  }), Stream.catchIf((e) => Predicate.isTagged(e, "AgentFinished"), (finished) => Stream.succeed(`\n${chalk.bold.green(`${doneIcon} Task complete:`)}\n\n${finished.summary}`), (e) => Stream.die(e)));
82
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"OutputFormatter.js","sourceRoot":"","sources":["../src/OutputFormatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OutputFormatter.js","sourceRoot":"","sources":["../src/OutputFormatter.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -12,6 +12,7 @@ import * as AgentExecutor from "./AgentExecutor.js";
12
12
  import * as Codex from "./Codex.js";
13
13
  import * as Copilot from "./Copilot.js";
14
14
  import * as Agent from "./Agent.js";
15
+ import * as Compaction from "./Compaction.js";
15
16
  import * as Stream from "effect/Stream";
16
17
  import * as OutputFormatter from "./OutputFormatter.js";
17
18
  import * as Stdio from "effect/Stdio";
@@ -70,6 +71,8 @@ const model = Flag.String("model").pipe(Flag.withAlias("m"), Flag.withFallbackPr
70
71
  })));
71
72
  const semantic = Flag.Directory("search").pipe(Flag.withDescription("Directory for semantic search data (uses OPENAI_API_KEY env var)"), Flag.withAlias("s"), Flag.optional);
72
73
  const prompt = Flag.String("prompt").pipe(Flag.withDescription("Pass a prompt in non-interactive mode"), Flag.optional);
74
+ // Kill switch: `--no-compaction` or CLANKA_COMPACTION=false.
75
+ const compaction = Flag.Boolean("compaction").pipe(Flag.withDescription("Auto-compact the conversation history when it nears the context window. Disable with --no-compaction or CLANKA_COMPACTION=false; the execute output cap stays on."), Flag.withFallbackConfig(Config.Boolean("CLANKA_COMPACTION").pipe(Config.withDefault(true))));
73
76
  const Kvs = Layer.unwrap(Effect.gen(function* () {
74
77
  const path = yield* Path.Path;
75
78
  const configHome = yield* Config.NonEmptyString("XDG_CONFIG_HOME").pipe(Config.orElse(() => Config.NonEmptyString("HOME").pipe(Config.map((home) => path.join(home, ".config")))));
@@ -93,13 +96,19 @@ const Search = (directory) => Layer.unwrap(Effect.gen(function* () {
93
96
  })));
94
97
  })).pipe(Layer.provide([NodeServices.layer, NodeHttpClient.layerUndici]));
95
98
  const acpModel = Flag.String("model").pipe(Flag.withAlias("m"), Flag.withDescription("Default model as <provider>/<model>/<effort>, e.g. openai/gpt-6-astra/medium"), Flag.withSchema(ModelId), Flag.withDefault("openai/gpt-6-astra/medium"));
96
- const acp = Command.make("acp", { model: acpModel }).pipe(Command.withDescription("Run as an Agent Client Protocol (ACP) server over stdio"), Command.withHandler(({ model }) => Acp.runStdio({
99
+ const acp = Command.make("acp", { model: acpModel, compaction }).pipe(Command.withDescription("Run as an Agent Client Protocol (ACP) server over stdio"), Command.withHandler(({ model }) => Acp.runStdio({
97
100
  version,
98
101
  defaultModel: model,
99
102
  makeAgent: (cwd) => Agent.make.pipe(Effect.provide(AgentExecutor.layerLocal({ directory: cwd }))),
100
103
  makeModel: (modelId) => Option.map(parseModelId(modelId), ({ provider, model, effort }) => modelLayer(provider, model, effort)),
101
- })), Command.provide(Layer.mergeAll(Agent.ConversationMode.layer(true), Layer.succeed(Logger.LogToStderr, true), DeviceCodeHandler.layerLog)));
102
- Command.make("clanka", { provider, model, semantic, prompt }).pipe(Command.withHandler(Effect.fnUntraced(function* ({ provider, model: modelRaw, semantic, prompt: nonInteractivePrompt, }) {
104
+ })), Command.provide(({ compaction }) => Layer.mergeAll(Agent.ConversationMode.layer(true), Layer.succeed(Logger.LogToStderr, true), DeviceCodeHandler.layerLog, Compaction.CompactionConfig.layer({ enabled: compaction }))));
105
+ Command.make("clanka", {
106
+ provider,
107
+ model,
108
+ semantic,
109
+ prompt,
110
+ compaction,
111
+ }).pipe(Command.withHandler(Effect.fnUntraced(function* ({ provider, model: modelRaw, semantic, prompt: nonInteractivePrompt, }) {
103
112
  const stdio = yield* Stdio.Stdio;
104
113
  const [model, reasoning] = modelRaw.split("/");
105
114
  const Model = modelLayer(provider, model, reasoning);
@@ -124,7 +133,7 @@ Command.make("clanka", { provider, model, semantic, prompt }).pipe(Command.withH
124
133
  }))),
125
134
  Model,
126
135
  ]));
127
- })), Command.provide(({ prompt }) => Agent.ConversationMode.layer(Option.isNone(prompt))), Command.withSubcommands([acp]), Command.run({
136
+ })), Command.provide(({ prompt, compaction }) => Layer.mergeAll(Agent.ConversationMode.layer(Option.isNone(prompt)), Compaction.CompactionConfig.layer({ enabled: compaction }))), Command.withSubcommands([acp]), Command.run({
128
137
  version,
129
138
  }), Effect.provide([
130
139
  NodeServices.layer,
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export * as Agent from "./Agent.ts";
10
10
  * @since 1.0.0
11
11
  */
12
12
  export * as AgentExecutor from "./AgentExecutor.ts";
13
+ export * as AgentSkills from "./AgentSkills.ts";
13
14
  /**
14
15
  * @since 1.0.0
15
16
  */
@@ -26,6 +27,10 @@ export * as Codex from "./Codex.ts";
26
27
  * @since 1.0.0
27
28
  */
28
29
  export * as CodeChunker from "./CodeChunker.ts";
30
+ /**
31
+ * @since 1.0.0
32
+ */
33
+ export * as Compaction from "./Compaction.ts";
29
34
  /**
30
35
  * @since 1.0.0
31
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -10,6 +10,7 @@ export * as Agent from "./Agent.js";
10
10
  * @since 1.0.0
11
11
  */
12
12
  export * as AgentExecutor from "./AgentExecutor.js";
13
+ export * as AgentSkills from "./AgentSkills.js";
13
14
  /**
14
15
  * @since 1.0.0
15
16
  */
@@ -26,6 +27,10 @@ export * as Codex from "./Codex.js";
26
27
  * @since 1.0.0
27
28
  */
28
29
  export * as CodeChunker from "./CodeChunker.js";
30
+ /**
31
+ * @since 1.0.0
32
+ */
33
+ export * as Compaction from "./Compaction.js";
29
34
  /**
30
35
  * @since 1.0.0
31
36
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clanka",
3
3
  "type": "module",
4
- "version": "0.3.1",
4
+ "version": "0.4.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
package/src/Acp.test.ts CHANGED
@@ -4,6 +4,7 @@ import * as Fiber from "effect/Fiber"
4
4
  import * as Layer from "effect/Layer"
5
5
  import * as Option from "effect/Option"
6
6
  import * as Stream from "effect/Stream"
7
+ import * as Prompt from "effect/unstable/ai/Prompt"
7
8
  import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore"
8
9
  import * as LanguageModel from "effect/unstable/ai/LanguageModel"
9
10
  import * as Model from "effect/unstable/ai/Model"
@@ -11,6 +12,7 @@ import type * as Response from "effect/unstable/ai/Response"
11
12
  import * as Acp from "./Acp.ts"
12
13
  import * as Agent from "./Agent.ts"
13
14
  import * as AgentExecutor from "./AgentExecutor.ts"
15
+ import * as Compaction from "./Compaction.ts"
14
16
 
15
17
  type Message = {
16
18
  readonly id?: number
@@ -24,6 +26,7 @@ const capabilities = new AgentExecutor.Capabilities({
24
26
  toolsDts: "",
25
27
  agentsMd: Option.none(),
26
28
  supportsSearch: false,
29
+ skills: [],
27
30
  })
28
31
 
29
32
  const executor = AgentExecutor.AgentExecutor.of({
@@ -233,6 +236,88 @@ describe("Acp", () => {
233
236
  ),
234
237
  )
235
238
 
239
+ it.effect(
240
+ "hides a persisted compaction summary during replay but keeps it for the next model call",
241
+ () =>
242
+ withStore(
243
+ Effect.scoped(
244
+ Effect.gen(function* () {
245
+ const kvs = yield* KeyValueStore.KeyValueStore
246
+ const store = KeyValueStore.toSchemaStore(
247
+ KeyValueStore.prefix(kvs, "session-"),
248
+ Acp.SessionRecord,
249
+ )
250
+ const sessionId = "compacted-session"
251
+ const userText =
252
+ "Explain the <compaction-summary> tag without hiding this message"
253
+ const history = Compaction.rewrite({
254
+ system: Option.some(
255
+ Prompt.makeMessage("system", { content: "Original system" }),
256
+ ),
257
+ summary: "PRIVATE-COMPACTION-SUMMARY",
258
+ kept: [
259
+ Prompt.makeMessage("user", {
260
+ content: [Prompt.makePart("text", { text: userText })],
261
+ }),
262
+ Prompt.makeMessage("assistant", {
263
+ content: [
264
+ Prompt.makePart("text", { text: "Kept assistant reply" }),
265
+ ],
266
+ }),
267
+ ],
268
+ })
269
+ yield* store.set(
270
+ sessionId,
271
+ new Acp.SessionRecord({
272
+ cwd: "/tmp",
273
+ model: "test/model",
274
+ history,
275
+ }),
276
+ )
277
+
278
+ let modelPrompt: Prompt.Prompt | undefined
279
+ const server = yield* makeServer((options) => {
280
+ modelPrompt = options.prompt
281
+ return assistantSays("Continued after reload")
282
+ })
283
+ const loaded = yield* server.request(1, "session/load", {
284
+ sessionId,
285
+ cwd: "/tmp",
286
+ })
287
+ assert.isUndefined(loaded.error)
288
+ const replay = server.updates(sessionId)
289
+
290
+ const continued = yield* server.request(2, "session/prompt", {
291
+ sessionId,
292
+ prompt: [{ type: "text", text: "continue" }],
293
+ })
294
+ assert.deepStrictEqual(continued.result, { stopReason: "end_turn" })
295
+ assert.isDefined(modelPrompt)
296
+ assert.deepStrictEqual(
297
+ Compaction.findPreviousSummary(modelPrompt!),
298
+ Option.some("PRIVATE-COMPACTION-SUMMARY"),
299
+ )
300
+ const persisted = Option.getOrThrow(yield* store.get(sessionId))
301
+ assert.deepStrictEqual(
302
+ Compaction.findPreviousSummary(persisted.history),
303
+ Option.some("PRIVATE-COMPACTION-SUMMARY"),
304
+ )
305
+
306
+ assert.deepStrictEqual(replay, [
307
+ {
308
+ sessionUpdate: "user_message_chunk",
309
+ content: { type: "text", text: userText },
310
+ },
311
+ {
312
+ sessionUpdate: "agent_message_chunk",
313
+ content: { type: "text", text: "Kept assistant reply" },
314
+ },
315
+ ])
316
+ }),
317
+ ),
318
+ ),
319
+ )
320
+
236
321
  it.effect("rejects unknown models and methods", () =>
237
322
  withStore(
238
323
  Effect.scoped(
package/src/Acp.ts CHANGED
@@ -28,6 +28,7 @@ import * as Prompt from "effect/unstable/ai/Prompt"
28
28
  import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore"
29
29
  import type * as Agent from "./Agent.ts"
30
30
  import type * as AgentOutput from "./AgentOutput.ts"
31
+ import * as Compaction from "./Compaction.ts"
31
32
 
32
33
  /**
33
34
  * @since 1.0.0
@@ -200,6 +201,7 @@ const historyUpdates = (history: Prompt.Prompt) => {
200
201
  const updates: Array<object> = []
201
202
  for (const message of history.content) {
202
203
  if (message.role !== "user" && message.role !== "assistant") continue
204
+ if (Compaction.isSummaryMessage(message)) continue
203
205
  const sessionUpdate =
204
206
  message.role === "user" ? "user_message_chunk" : "agent_message_chunk"
205
207
  for (const part of message.content) {