@tickernelz/paperclip-pro-adapter-kimi-local 2026.925.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 (86) hide show
  1. package/LICENSE +22 -0
  2. package/dist/cli/format-event.d.ts +2 -0
  3. package/dist/cli/format-event.d.ts.map +1 -0
  4. package/dist/cli/format-event.js +95 -0
  5. package/dist/cli/format-event.js.map +1 -0
  6. package/dist/cli/index.d.ts +2 -0
  7. package/dist/cli/index.d.ts.map +1 -0
  8. package/dist/cli/index.js +2 -0
  9. package/dist/cli/index.js.map +1 -0
  10. package/dist/index.d.ts +30 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +82 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/server/acp.d.ts +19 -0
  15. package/dist/server/acp.d.ts.map +1 -0
  16. package/dist/server/acp.js +316 -0
  17. package/dist/server/acp.js.map +1 -0
  18. package/dist/server/acp.test.d.ts +2 -0
  19. package/dist/server/acp.test.d.ts.map +1 -0
  20. package/dist/server/acp.test.js +57 -0
  21. package/dist/server/acp.test.js.map +1 -0
  22. package/dist/server/engine-availability.test.d.ts +2 -0
  23. package/dist/server/engine-availability.test.d.ts.map +1 -0
  24. package/dist/server/engine-availability.test.js +41 -0
  25. package/dist/server/engine-availability.test.js.map +1 -0
  26. package/dist/server/execute.acp-failure.test.d.ts +2 -0
  27. package/dist/server/execute.acp-failure.test.d.ts.map +1 -0
  28. package/dist/server/execute.acp-failure.test.js +22 -0
  29. package/dist/server/execute.acp-failure.test.js.map +1 -0
  30. package/dist/server/execute.d.ts +3 -0
  31. package/dist/server/execute.d.ts.map +1 -0
  32. package/dist/server/execute.js +630 -0
  33. package/dist/server/execute.js.map +1 -0
  34. package/dist/server/execute.test.d.ts +2 -0
  35. package/dist/server/execute.test.d.ts.map +1 -0
  36. package/dist/server/execute.test.js +354 -0
  37. package/dist/server/execute.test.js.map +1 -0
  38. package/dist/server/index.d.ts +8 -0
  39. package/dist/server/index.d.ts.map +1 -0
  40. package/dist/server/index.js +66 -0
  41. package/dist/server/index.js.map +1 -0
  42. package/dist/server/parse.d.ts +66 -0
  43. package/dist/server/parse.d.ts.map +1 -0
  44. package/dist/server/parse.js +194 -0
  45. package/dist/server/parse.js.map +1 -0
  46. package/dist/server/parse.test.d.ts +2 -0
  47. package/dist/server/parse.test.d.ts.map +1 -0
  48. package/dist/server/parse.test.js +155 -0
  49. package/dist/server/parse.test.js.map +1 -0
  50. package/dist/server/skills.d.ts +4 -0
  51. package/dist/server/skills.d.ts.map +1 -0
  52. package/dist/server/skills.js +73 -0
  53. package/dist/server/skills.js.map +1 -0
  54. package/dist/server/test.d.ts +3 -0
  55. package/dist/server/test.d.ts.map +1 -0
  56. package/dist/server/test.js +306 -0
  57. package/dist/server/test.js.map +1 -0
  58. package/dist/server/test.test.d.ts +2 -0
  59. package/dist/server/test.test.d.ts.map +1 -0
  60. package/dist/server/test.test.js +126 -0
  61. package/dist/server/test.test.js.map +1 -0
  62. package/dist/server/utils.d.ts +2 -0
  63. package/dist/server/utils.d.ts.map +1 -0
  64. package/dist/server/utils.js +7 -0
  65. package/dist/server/utils.js.map +1 -0
  66. package/dist/ui/build-config.d.ts +3 -0
  67. package/dist/ui/build-config.d.ts.map +1 -0
  68. package/dist/ui/build-config.js +79 -0
  69. package/dist/ui/build-config.js.map +1 -0
  70. package/dist/ui/build-config.test.d.ts +2 -0
  71. package/dist/ui/build-config.test.d.ts.map +1 -0
  72. package/dist/ui/build-config.test.js +73 -0
  73. package/dist/ui/build-config.test.js.map +1 -0
  74. package/dist/ui/index.d.ts +3 -0
  75. package/dist/ui/index.d.ts.map +1 -0
  76. package/dist/ui/index.js +3 -0
  77. package/dist/ui/index.js.map +1 -0
  78. package/dist/ui/parse-stdout.d.ts +9 -0
  79. package/dist/ui/parse-stdout.d.ts.map +1 -0
  80. package/dist/ui/parse-stdout.js +110 -0
  81. package/dist/ui/parse-stdout.js.map +1 -0
  82. package/dist/ui/parse-stdout.test.d.ts +2 -0
  83. package/dist/ui/parse-stdout.test.d.ts.map +1 -0
  84. package/dist/ui/parse-stdout.test.js +84 -0
  85. package/dist/ui/parse-stdout.test.js.map +1 -0
  86. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.test.d.ts","sourceRoot":"","sources":["../../src/server/acp.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { buildKimiAcpConfig, nodeVersionMeetsKimiAcpMinimum, resolveKimiExecutionEngine, } from "./acp.js";
3
+ describe("resolveKimiExecutionEngine", () => {
4
+ it("defaults to ACP (non-explicit) when engine is unset", () => {
5
+ expect(resolveKimiExecutionEngine({})).toEqual({ engine: "acp", explicit: false });
6
+ });
7
+ it("honors an explicit engine=acp", () => {
8
+ expect(resolveKimiExecutionEngine({ engine: "acp" })).toEqual({ engine: "acp", explicit: true });
9
+ });
10
+ it("honors an explicit engine=cli", () => {
11
+ expect(resolveKimiExecutionEngine({ engine: "CLI" })).toEqual({ engine: "cli", explicit: true });
12
+ });
13
+ it("treats unknown values as the non-explicit ACP default", () => {
14
+ expect(resolveKimiExecutionEngine({ engine: "nonsense" })).toEqual({ engine: "acp", explicit: false });
15
+ });
16
+ });
17
+ describe("buildKimiAcpConfig", () => {
18
+ it("targets the kimi agent and derives the `kimi acp` server command from `command`", () => {
19
+ const out = buildKimiAcpConfig({ command: "kimi", cwd: "/work" });
20
+ expect(out.agent).toBe("kimi");
21
+ expect(out.agentCommand).toBe("kimi acp");
22
+ expect(out.mode).toBe("persistent");
23
+ expect(out.cwd).toBe("/work");
24
+ });
25
+ it("prefers an explicit agentCommand override", () => {
26
+ const out = buildKimiAcpConfig({ command: "kimi", agentCommand: "/opt/kimi acp --foo" });
27
+ expect(out.agentCommand).toBe("/opt/kimi acp --foo");
28
+ });
29
+ it("drops the model when it equals the default so ACP uses the agent default", () => {
30
+ const out = buildKimiAcpConfig({ model: "kimi-code/kimi-for-coding" });
31
+ expect("model" in out).toBe(false);
32
+ });
33
+ it("keeps a non-default model", () => {
34
+ const out = buildKimiAcpConfig({ model: "kimi-code/k3" });
35
+ expect(out.model).toBe("kimi-code/k3");
36
+ });
37
+ it("strips CLI-lane effort so ACP is not sent the unsupported `effort` control", () => {
38
+ const out = buildKimiAcpConfig({ model: "kimi-code/k3", effort: "high", thinkingEffort: "high" });
39
+ expect("effort" in out).toBe(false);
40
+ expect("thinkingEffort" in out).toBe(false);
41
+ });
42
+ it("opts into the shared engine's verbose-backend handling", () => {
43
+ const out = buildKimiAcpConfig({ command: "kimi" });
44
+ expect(out.summaryStrategy).toBe("lastOutputSegment");
45
+ expect(out.coalescePlaceholderToolUpdates).toBe(true);
46
+ });
47
+ });
48
+ describe("nodeVersionMeetsKimiAcpMinimum", () => {
49
+ it("accepts Node >= 20", () => {
50
+ expect(nodeVersionMeetsKimiAcpMinimum("v22.0.0")).toBe(true);
51
+ expect(nodeVersionMeetsKimiAcpMinimum("v20.0.0")).toBe(true);
52
+ });
53
+ it("rejects Node < 20", () => {
54
+ expect(nodeVersionMeetsKimiAcpMinimum("v18.19.0")).toBe(false);
55
+ });
56
+ });
57
+ //# sourceMappingURL=acp.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.test.js","sourceRoot":"","sources":["../../src/server/acp.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=engine-availability.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-availability.test.d.ts","sourceRoot":"","sources":["../../src/server/engine-availability.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+ import { resolveKimiExecutionEngineForRun } from "./acp.js";
3
+ import { execute } from "./execute.js";
4
+ import { testEnvironment } from "./test.js";
5
+ const originalVersion = process.version;
6
+ afterEach(() => Object.defineProperty(process, "version", { value: originalVersion }));
7
+ describe("kimi engine availability", () => {
8
+ it.each([undefined, "auto", "acp"])("reports a setup failure for engine=%s without starting a process", async (engine) => {
9
+ Object.defineProperty(process, "version", { value: "v18.0.0" });
10
+ const config = { engine };
11
+ const onSpawn = vi.fn();
12
+ const result = await execute({ config, onSpawn });
13
+ expect(result).toMatchObject({
14
+ exitCode: 1,
15
+ errorCode: "adapter_engine_unavailable",
16
+ errorMessage: expect.stringContaining("Node v18.0.0"),
17
+ resultJson: { executionRecovery: { kind: "bootstrap", providerWorkStarted: false } },
18
+ });
19
+ expect(result.errorMessage).toContain(process.execPath);
20
+ expect(onSpawn).not.toHaveBeenCalled();
21
+ const diagnostic = await testEnvironment({ config });
22
+ expect(diagnostic.status).toBe("fail");
23
+ expect(diagnostic.checks).toContainEqual(expect.objectContaining({
24
+ code: "adapter_engine_unavailable", level: "error",
25
+ }));
26
+ });
27
+ it("does not apply ACP prerequisites to explicitly selected CLI", async () => {
28
+ Object.defineProperty(process, "version", { value: "v18.0.0" });
29
+ await expect(resolveKimiExecutionEngineForRun({ config: { engine: "cli" } }))
30
+ .resolves.toEqual({ engine: "cli", explicit: true });
31
+ });
32
+ it("keeps an unavailable ACP command as a failure, not a CLI selection", async () => {
33
+ Object.defineProperty(process, "version", { value: "v24.11.0" });
34
+ const result = await resolveKimiExecutionEngineForRun({
35
+ config: { agentCommand: "/nonexistent/paperclip-test/acp", command: "/nonexistent/paperclip-test/acp" },
36
+ });
37
+ expect(result.engine).toBe("acp");
38
+ expect(result.unavailableReason).toContain("not available");
39
+ });
40
+ });
41
+ //# sourceMappingURL=engine-availability.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-availability.test.js","sourceRoot":"","sources":["../../src/server/engine-availability.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=execute.acp-failure.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.acp-failure.test.d.ts","sourceRoot":"","sources":["../../src/server/execute.acp-failure.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { describe, expect, it, vi } from "vitest";
2
+ const { executeAcp, runProcess } = vi.hoisted(() => ({
3
+ executeAcp: vi.fn(async () => { throw new Error("ACP session startup failed"); }),
4
+ runProcess: vi.fn(),
5
+ }));
6
+ vi.mock("./acp.js", () => ({
7
+ createKimiAcpExecutor: () => executeAcp,
8
+ resolveKimiExecutionEngineForRun: async () => ({ engine: "acp", explicit: false }),
9
+ }));
10
+ vi.mock("@tickernelz/paperclip-pro-adapter-utils/execution-target", async (importOriginal) => ({
11
+ ...await importOriginal(),
12
+ runAdapterExecutionTargetProcess: runProcess,
13
+ }));
14
+ import { execute } from "./execute.js";
15
+ describe("Kimi ACP failure handling", () => {
16
+ it("does not replay a failed default ACP invocation through CLI", async () => {
17
+ await expect(execute({ config: {} })).rejects.toThrow("ACP session startup failed");
18
+ expect(executeAcp).toHaveBeenCalledTimes(1);
19
+ expect(runProcess).not.toHaveBeenCalled();
20
+ });
21
+ });
22
+ //# sourceMappingURL=execute.acp-failure.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.acp-failure.test.js","sourceRoot":"","sources":["../../src/server/execute.acp-failure.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAElD,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACnD,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;CACpB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;IACzB,qBAAqB,EAAE,GAAG,EAAE,CAAC,UAAU;IACvC,gCAAgC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;CACnF,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,0DAA0D,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IAC7F,GAAG,MAAM,cAAc,EAA6E;IACpG,gCAAgC,EAAE,UAAU;CAC7C,CAAC,CAAC,CAAC;AAEJ,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAC7F,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterExecutionContext, AdapterExecutionResult } from "@tickernelz/paperclip-pro-adapter-utils";
2
+ export declare function execute(ctx: AdapterExecutionContext): Promise<AdapterExecutionResult>;
3
+ //# sourceMappingURL=execute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAuL/G,wBAAsB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAujB3F"}