clanka 0.2.49 → 0.2.51

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 (101) hide show
  1. package/dist/Agent.d.ts +20 -20
  2. package/dist/Agent.d.ts.map +1 -1
  3. package/dist/Agent.js +9 -9
  4. package/dist/Agent.js.map +1 -1
  5. package/dist/Agent.test.js +1 -0
  6. package/dist/Agent.test.js.map +1 -1
  7. package/dist/AgentExecutor.d.ts +62 -101
  8. package/dist/AgentExecutor.d.ts.map +1 -1
  9. package/dist/AgentExecutor.js +28 -7
  10. package/dist/AgentExecutor.js.map +1 -1
  11. package/dist/AgentTools.d.ts +6 -6
  12. package/dist/AgentTools.d.ts.map +1 -1
  13. package/dist/AgentTools.js +5 -5
  14. package/dist/AgentTools.js.map +1 -1
  15. package/dist/ApplyPatch.test.js +3 -3
  16. package/dist/ApplyPatch.test.js.map +1 -1
  17. package/dist/ChunkRepo.d.ts +16 -16
  18. package/dist/ChunkRepo.d.ts.map +1 -1
  19. package/dist/ChunkRepo.js +7 -6
  20. package/dist/ChunkRepo.js.map +1 -1
  21. package/dist/CodeChunker.d.ts +2 -2
  22. package/dist/CodeChunker.d.ts.map +1 -1
  23. package/dist/CodeChunker.js +2 -2
  24. package/dist/CodeChunker.js.map +1 -1
  25. package/dist/Codex.d.ts +1 -1
  26. package/dist/Codex.d.ts.map +1 -1
  27. package/dist/CodexAuth.d.ts +13 -7
  28. package/dist/CodexAuth.d.ts.map +1 -1
  29. package/dist/CodexAuth.js +13 -8
  30. package/dist/CodexAuth.js.map +1 -1
  31. package/dist/CodexAuth.test.js +1 -262
  32. package/dist/CodexAuth.test.js.map +1 -1
  33. package/dist/Copilot.d.ts +1 -1
  34. package/dist/Copilot.d.ts.map +1 -1
  35. package/dist/CopilotAuth.d.ts +13 -7
  36. package/dist/CopilotAuth.d.ts.map +1 -1
  37. package/dist/CopilotAuth.js +10 -5
  38. package/dist/CopilotAuth.js.map +1 -1
  39. package/dist/CopilotAuth.test.js +7 -8
  40. package/dist/CopilotAuth.test.js.map +1 -1
  41. package/dist/DeviceCodeHandler.d.ts +14 -0
  42. package/dist/DeviceCodeHandler.d.ts.map +1 -0
  43. package/dist/DeviceCodeHandler.js +9 -0
  44. package/dist/DeviceCodeHandler.js.map +1 -0
  45. package/dist/ExaSearch.d.ts +3 -3
  46. package/dist/ExaSearch.d.ts.map +1 -1
  47. package/dist/ExaSearch.js +2 -2
  48. package/dist/ExaSearch.js.map +1 -1
  49. package/dist/McpClient.d.ts +3 -3
  50. package/dist/McpClient.d.ts.map +1 -1
  51. package/dist/McpClient.js +2 -2
  52. package/dist/McpClient.js.map +1 -1
  53. package/dist/OutputFormatter.d.ts +2 -2
  54. package/dist/OutputFormatter.d.ts.map +1 -1
  55. package/dist/OutputFormatter.js +2 -2
  56. package/dist/OutputFormatter.js.map +1 -1
  57. package/dist/SemanticSearch/Service.d.ts +2 -2
  58. package/dist/SemanticSearch/Service.d.ts.map +1 -1
  59. package/dist/SemanticSearch/Service.js +2 -2
  60. package/dist/SemanticSearch/Service.js.map +1 -1
  61. package/dist/SemanticSearch.js +3 -3
  62. package/dist/SemanticSearch.js.map +1 -1
  63. package/dist/ToolkitRenderer.d.ts +2 -2
  64. package/dist/ToolkitRenderer.d.ts.map +1 -1
  65. package/dist/ToolkitRenderer.js +2 -2
  66. package/dist/ToolkitRenderer.js.map +1 -1
  67. package/dist/WebToMarkdown.d.ts +2 -2
  68. package/dist/WebToMarkdown.d.ts.map +1 -1
  69. package/dist/WebToMarkdown.js +2 -2
  70. package/dist/WebToMarkdown.js.map +1 -1
  71. package/dist/cli.js +2 -0
  72. package/dist/cli.js.map +1 -1
  73. package/dist/index.d.ts +4 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +4 -0
  76. package/dist/index.js.map +1 -1
  77. package/package.json +8 -6
  78. package/src/Agent.test.ts +1 -0
  79. package/src/Agent.ts +9 -9
  80. package/src/AgentExecutor.ts +46 -13
  81. package/src/AgentTools.ts +7 -7
  82. package/src/ApplyPatch.test.ts +3 -3
  83. package/src/ChunkRepo.ts +8 -6
  84. package/src/CodeChunker.ts +2 -2
  85. package/src/CodexAuth.test.ts +0 -433
  86. package/src/CodexAuth.ts +16 -19
  87. package/src/CopilotAuth.test.ts +11 -7
  88. package/src/CopilotAuth.ts +11 -7
  89. package/src/DeviceCodeHandler.ts +21 -0
  90. package/src/ExaSearch.ts +2 -2
  91. package/src/McpClient.ts +2 -2
  92. package/src/OutputFormatter.ts +2 -2
  93. package/src/SemanticSearch/Service.ts +2 -2
  94. package/src/SemanticSearch.ts +3 -3
  95. package/src/ToolkitRenderer.ts +2 -2
  96. package/src/WebToMarkdown.ts +2 -2
  97. package/src/cli.ts +2 -0
  98. package/src/fixtures/fiber.txt +9 -9
  99. package/src/fixtures/patch18-broken.txt +5 -5
  100. package/src/fixtures/patch18-fixed.txt +5 -5
  101. package/src/index.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ToolkitRenderer.d.ts","sourceRoot":"","sources":["../src/ToolkitRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,IAAI,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,KAAK,OAAO,MAAM,4BAA4B,CAAA;;WAW/C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SACpC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAC5B,MAAM;;AATb;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAOR;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,6CAoBnB;CACH"}
1
+ {"version":3,"file":"ToolkitRenderer.d.ts","sourceRoot":"","sources":["../src/ToolkitRenderer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,IAAI,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,KAAK,OAAO,MAAM,4BAA4B,CAAA;;WAW/C,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SACpC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAC5B,MAAM;;AATb;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAOR;IAC3B,MAAM,CAAC,QAAQ,CAAC,KAAK,6CAoBnB;CACH"}
@@ -4,14 +4,14 @@
4
4
  import * as Array from "effect/Array";
5
5
  import * as Layer from "effect/Layer";
6
6
  import * as SchemaAST from "effect/SchemaAST";
7
- import * as ServiceMap from "effect/ServiceMap";
7
+ import * as Context from "effect/Context";
8
8
  import * as TypeBuilder from "./TypeBuilder.js";
9
9
  import * as Function from "effect/Function";
10
10
  /**
11
11
  * @since 1.0.0
12
12
  * @category Services
13
13
  */
14
- export class ToolkitRenderer extends ServiceMap.Service()("clanka/ToolkitRenderer") {
14
+ export class ToolkitRenderer extends Context.Service()("clanka/ToolkitRenderer") {
15
15
  static layer = Layer.succeed(ToolkitRenderer, {
16
16
  render: Function.memoize((tools) => {
17
17
  const output = Array.empty();
@@ -1 +1 @@
1
- {"version":3,"file":"ToolkitRenderer.js","sourceRoot":"","sources":["../src/ToolkitRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU,CAAC,OAAO,EAOpD,CAAC,wBAAwB,CAAC;IAC3B,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;QACrD,MAAM,EAAE,QAAQ,CAAC,OAAO,CACtB,CACE,KAA6B,EAC7B,EAAE;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAU,CAAA;YACpC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,SAAS,GACb,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;gBACrE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC3D,MAAM,MAAM,GACV,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,SAAS,EAAE,CAAA;gBAC1D,MAAM,CAAC,IAAI,CACT,OAAO,IAAI,CAAC,WAAW;mBAChB,IAAI,IAAI,MAAM,cAAc,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAC7E,CAAA;YACH,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC,CACF;KACF,CAAC,CAAA"}
1
+ {"version":3,"file":"ToolkitRenderer.js","sourceRoot":"","sources":["../src/ToolkitRenderer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAGzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,OAAO,CAAC,OAAO,EAOjD,CAAC,wBAAwB,CAAC;IAC3B,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE;QACrD,MAAM,EAAE,QAAQ,CAAC,OAAO,CACtB,CACE,KAA6B,EAC7B,EAAE;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAU,CAAA;YACpC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,MAAM,SAAS,GACb,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,SAAS,CAAA;gBACrE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;gBAC3D,MAAM,MAAM,GACV,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,SAAS,EAAE,CAAA;gBAC1D,MAAM,CAAC,IAAI,CACT,OAAO,IAAI,CAAC,WAAW;mBAChB,IAAI,IAAI,MAAM,cAAc,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAC7E,CAAA;YACH,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC5B,CAAC,CACF;KACF,CAAC,CAAA"}
@@ -3,10 +3,10 @@
3
3
  */
4
4
  import * as Effect from "effect/Effect";
5
5
  import * as Layer from "effect/Layer";
6
- import * as ServiceMap from "effect/ServiceMap";
6
+ import * as Context from "effect/Context";
7
7
  import * as HttpClient from "effect/unstable/http/HttpClient";
8
8
  import type * as HttpClientError from "effect/unstable/http/HttpClientError";
9
- declare const WebToMarkdown_base: ServiceMap.ServiceClass<WebToMarkdown, "clanka/WebToMarkdown", {
9
+ declare const WebToMarkdown_base: Context.ServiceClass<WebToMarkdown, "clanka/WebToMarkdown", {
10
10
  convertHtml(html: string): Effect.Effect<string>;
11
11
  convertUrl(url: string): Effect.Effect<string, HttpClientError.HttpClientError>;
12
12
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"WebToMarkdown.d.ts","sourceRoot":"","sources":["../src/WebToMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAA;;sBAUtD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;oBAEzC,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;;AAV7D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAQR;CAAG;AAE9B;;;GAGG;AACH,eAAO,MAAM,KAAK,0DA8DjB,CAAA"}
1
+ {"version":3,"file":"WebToMarkdown.d.ts","sourceRoot":"","sources":["../src/WebToMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAC7D,OAAO,KAAK,KAAK,eAAe,MAAM,sCAAsC,CAAA;;sBAUtD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;oBAEzC,MAAM,GACV,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC;;AAV7D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAQR;CAAG;AAE9B;;;GAGG;AACH,eAAO,MAAM,KAAK,0DA8DjB,CAAA"}
@@ -3,14 +3,14 @@
3
3
  */
4
4
  import * as Effect from "effect/Effect";
5
5
  import * as Layer from "effect/Layer";
6
- import * as ServiceMap from "effect/ServiceMap";
6
+ import * as Context from "effect/Context";
7
7
  import * as HttpClient from "effect/unstable/http/HttpClient";
8
8
  import TurndownService from "turndown";
9
9
  /**
10
10
  * @since 1.0.0
11
11
  * @category Services
12
12
  */
13
- export class WebToMarkdown extends ServiceMap.Service()("clanka/WebToMarkdown") {
13
+ export class WebToMarkdown extends Context.Service()("clanka/WebToMarkdown") {
14
14
  }
15
15
  /**
16
16
  * @since 1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"WebToMarkdown.js","sourceRoot":"","sources":["../src/WebToMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAE7D,OAAO,eAAe,MAAM,UAAU,CAAA;AAEtC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,UAAU,CAAC,OAAO,EAQlD,CAAC,sBAAsB,CAAC;CAAG;AAE9B;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAC/B,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAChD,UAAU,CAAC,eAAe,EAAE,EAC5B,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,cAAc,CAAC;QACxB,KAAK,EAAE,CAAC;KACT,CAAC,CACH,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;QACvB,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;KACR,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;IAED,OAAO,aAAa,CAAC,EAAE,CAAC;QACtB,WAAW;QACX,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG;YAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;YACjC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"WebToMarkdown.js","sourceRoot":"","sources":["../src/WebToMarkdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAE7D,OAAO,eAAe,MAAM,UAAU,CAAA;AAEtC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,OAAO,EAQ/C,CAAC,sBAAsB,CAAC;CAAG;AAE9B;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAC/B,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAChD,UAAU,CAAC,eAAe,EAAE,EAC5B,UAAU,CAAC,cAAc,EACzB,UAAU,CAAC,cAAc,CAAC;QACxB,KAAK,EAAE,CAAC;KACT,CAAC,CACH,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;QACvB,MAAM;QACN,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,MAAM;QACN,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,OAAO;QACP,OAAO;QACP,QAAQ;QACR,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,OAAO;QACP,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU;QACV,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,OAAO;KACR,CAAC,CAAA;IACF,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACrD,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAC1C,CAAA;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,CAAC,IAAY,EAAE,EAAE,CAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;IAED,OAAO,aAAa,CAAC,EAAE,CAAC;QACtB,WAAW;QACX,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG;YAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;YACjC,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC,CAAC;KACH,CAAC,CAAA;AACJ,CAAC,CAAC,CACH,CAAA"}
package/dist/cli.js CHANGED
@@ -20,6 +20,7 @@ import * as Config from "effect/Config";
20
20
  import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore";
21
21
  import * as Option from "effect/Option";
22
22
  import { OpenAiClient, OpenAiEmbeddingModel } from "@effect/ai-openai";
23
+ import { DeviceCodeHandler } from "./index.js";
23
24
  const provider = Flag.choice("provider", ["openai", "copilot"]).pipe(Flag.withAlias("p"), Flag.withFallbackPrompt(Prompt.select({
24
25
  message: "Select a provider",
25
26
  choices: [
@@ -119,5 +120,6 @@ Command.make("clanka", { provider, model, semantic, prompt }).pipe(Command.withH
119
120
  Kvs,
120
121
  NodeHttpClient.layerUndici,
121
122
  NodeSocket.layerWebSocketConstructorWS,
123
+ DeviceCodeHandler.layerConsole,
122
124
  ]), NodeRuntime.runMain);
123
125
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAA;AACpD,OAAO,KAAK,cAAc,MAAM,sCAAsC,CAAA;AACtE,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AACtD,OAAO,KAAK,IAAI,MAAM,0BAA0B,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAClE,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAChE,OAAO,KAAK,UAAU,MAAM,kCAAkC,CAAA;AAC9D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,aAAa,MAAM,2CAA2C,CAAA;AAC1E,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAClE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACnB,IAAI,CAAC,kBAAkB,CACrB,MAAM,CAAC,MAAM,CAAC;IACZ,OAAO,EAAE,mBAAmB;IAC5B,OAAO,EAAE;QACP;YACE,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,IAAI;SACf;QACD;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,SAAS;SACjB;KACF;CACF,CAAC,CACH,CACF,CAAA;AAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACnB,IAAI,CAAC,kBAAkB,CACrB,MAAM,CAAC,IAAI,CAAC;IACV,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,gBAAgB;IACzB,QAAQ,CAAC,KAAK;QACZ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QACrC,CAAC;QACD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;CACF,CAAC,CACH,CACF,CAAA;AAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5C,IAAI,CAAC,eAAe,CAClB,kEAAkE,CACnE,EACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACnB,IAAI,CAAC,QAAQ,CACd,CAAA;AAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CACvC,IAAI,CAAC,eAAe,CAAC,uCAAuC,CAAC,EAC7D,IAAI,CAAC,QAAQ,CACd,CAAA;AAED,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CACtB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE7B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACrE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CACjB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAChC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CACjD,CACF,CACF,CAAA;IACD,OAAO,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAA;AACvE,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;AAEzC,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,EAAE,CACnC,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAC1D,MAAM,CAAC,MAAM,CACd,CAAA;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IAE7B,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAC1C,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CACpC,CAAA;IAED,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;QACxB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;KAChD,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,OAAO,CACX,oBAAoB,CAAC,KAAK,CAAC,wBAAwB,EAAE;QACnD,UAAU,EAAE,IAAI;KACjB,CAAC,CACH,EACD,KAAK,CAAC,OAAO,CACX,YAAY,CAAC,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,KAAK;KACrB,CAAC,CACH,CACF,CAAA;AACH,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;AAEzE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAChE,OAAO,CAAC,WAAW,CACjB,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,EAC3B,QAAQ,EACR,KAAK,EAAE,QAAQ,EACf,QAAQ,EACR,MAAM,EAAE,oBAAoB,GAC7B;IACC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;IAChC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAA;IAClE,MAAM,KAAK,GACT,QAAQ,KAAK,QAAQ;QACnB,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE;YAC1B,SAAS,EAAE;gBACT,MAAM,EAAE,SAAgB;aACzB;SACF,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,KAAK,CACT,KAAK,CAAC,kBAAkB,CACtB,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE;YACnC,SAAS,EAAE;gBACT,MAAM,EAAE,MAAM;aACf;SACF,CAAC,CACH,CACF,EACD,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CACjC;QACH,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACnB,SAAS,EAAE;gBACT,MAAM,EAAE,SAAS;aAClB;SACF,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,KAAK,CACT,KAAK,CAAC,kBAAkB,CACtB,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE;YACnB,SAAS,EAAE;gBACT,MAAM,EAAE,QAAQ;aACjB;SACF,CAAC,CACH,CACF,EACD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CACnC,CAAA;IAEP,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;QAEhC,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,IAAI,CAChB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,KAAK,EAAE,CAAC,EAClD,MAAM,CAAC,MAAM,EACb,eAAe,CAAC,MAAM,EAAE,EACxB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAC3B,CAAA;QACH,CAAC;QAED,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,GAAG;aACb,CAAC,CAAA;YAEF,KAAK,CAAC,CAAC,IAAI,CACT,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EACtB,MAAM,CAAC,MAAM,EACb,eAAe,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,EAChD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAC3B,CAAA;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC;QACb,KAAK,CAAC,UAAU,CAAC;YACf,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;SACzB,CAAC,CAAC,IAAI,CACL,KAAK,CAAC,OAAO,CACX,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YACrB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK;YACzB,MAAM,EAAE,MAAM;SACf,CAAC,CACH,CACF;QACD,KAAK;KACN,CAAC,CACH,CAAA;AACH,CAAC,CAAC,CACH,EACD,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7B,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACpD,EACD,OAAO,CAAC,GAAG,CAAC;IACV,OAAO,EAAE,OAAO;CACjB,CAAC,EACF,MAAM,CAAC,OAAO,CAAC;IACb,YAAY,CAAC,KAAK;IAClB,GAAG;IACH,cAAc,CAAC,WAAW;IAC1B,UAAU,CAAC,2BAA2B;CACvC,CAAC,EACF,WAAW,CAAC,OAAO,CACpB,CAAA"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -22,6 +22,10 @@ export * as CodeChunker from "./CodeChunker.ts";
22
22
  * @since 1.0.0
23
23
  */
24
24
  export * as Copilot from "./Copilot.ts";
25
+ /**
26
+ * @since 1.0.0
27
+ */
28
+ export * as DeviceCodeHandler from "./DeviceCodeHandler.ts";
25
29
  /**
26
30
  * @since 1.0.0
27
31
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;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,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,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;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"}
package/dist/index.js CHANGED
@@ -22,6 +22,10 @@ export * as CodeChunker from "./CodeChunker.js";
22
22
  * @since 1.0.0
23
23
  */
24
24
  export * as Copilot from "./Copilot.js";
25
+ /**
26
+ * @since 1.0.0
27
+ */
28
+ export * as DeviceCodeHandler from "./DeviceCodeHandler.js";
25
29
  /**
26
30
  * @since 1.0.0
27
31
  */
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,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;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,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,KAAK,MAAM,YAAY,CAAA;AAEnC;;GAEG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clanka",
3
3
  "type": "module",
4
- "version": "0.2.49",
4
+ "version": "0.2.51",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -25,9 +25,6 @@
25
25
  "url": "https://github.com/Effectful-Tech/clanka.git"
26
26
  },
27
27
  "dependencies": {
28
- "@effect/ai-openai": "4.0.0-beta.43",
29
- "@effect/platform-node": "4.0.0-beta.43",
30
- "@effect/sql-sqlite-node": "4.0.0-beta.43",
31
28
  "@modelcontextprotocol/sdk": "^1.27.1",
32
29
  "@vscode/ripgrep": "^1.17.1",
33
30
  "chalk": "^5.6.2",
@@ -47,6 +44,8 @@
47
44
  "@sqliteai/sqlite-vector-win32-x86_64": "0.9.93"
48
45
  },
49
46
  "peerDependencies": {
47
+ "@effect/platform-node": "4.0.0-beta.43",
48
+ "@effect/sql-sqlite-node": "4.0.0-beta.43",
50
49
  "@effect/ai-openai": "4.0.0-beta.43",
51
50
  "@effect/ai-openai-compat": "4.0.0-beta.43",
52
51
  "effect": "4.0.0-beta.43"
@@ -54,13 +53,16 @@
54
53
  "devDependencies": {
55
54
  "@changesets/changelog-github": "^0.6.0",
56
55
  "@changesets/cli": "^2.29.8",
57
- "@effect/ai-openai-compat": "4.0.0-beta.43",
56
+ "@effect/platform-node": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/platform-node@acc7fff",
57
+ "@effect/sql-sqlite-node": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/sql-sqlite-node@acc7fff",
58
+ "@effect/ai-openai": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/ai-openai@acc7fff",
59
+ "@effect/ai-openai-compat": "https://pkg.pr.new/Effect-TS/effect-smol/@effect/ai-openai-compat@acc7fff",
58
60
  "@effect/language-service": "^0.83.1",
59
61
  "@effect/vitest": "4.0.0-beta.43",
60
62
  "@types/node": "^25.5.0",
61
63
  "@types/turndown": "^5.0.6",
62
64
  "@typescript/native-preview": "7.0.0-dev.20260324.1",
63
- "effect": "4.0.0-beta.43",
65
+ "effect": "https://pkg.pr.new/Effect-TS/effect-smol/effect@acc7fff",
64
66
  "husky": "^9.1.7",
65
67
  "lint-staged": "^16.4.0",
66
68
  "oxlint": "^1.57.0",
package/src/Agent.test.ts CHANGED
@@ -21,6 +21,7 @@ const makeExecutor = (
21
21
  AgentExecutor.AgentExecutor.of({
22
22
  capabilities: Effect.succeed(capabilities),
23
23
  execute,
24
+ executeUnsafe: () => Effect.die("executeUnsafe not implemented"),
24
25
  })
25
26
 
26
27
  const runAgent = (options: {
package/src/Agent.ts CHANGED
@@ -20,7 +20,7 @@ import * as Stream from "effect/Stream"
20
20
  import type * as Scope from "effect/Scope"
21
21
  import * as LanguageModel from "effect/unstable/ai/LanguageModel"
22
22
  import * as AiError from "effect/unstable/ai/AiError"
23
- import * as ServiceMap from "effect/ServiceMap"
23
+ import * as Context from "effect/Context"
24
24
  import * as Option from "effect/Option"
25
25
  import { identity, pipe } from "effect/Function"
26
26
  import * as MutableRef from "effect/MutableRef"
@@ -102,7 +102,7 @@ export interface Agent {
102
102
  * @since 1.0.0
103
103
  * @category Service
104
104
  */
105
- export const Agent = ServiceMap.Service<Agent>("clanka/Agent")
105
+ export const Agent = Context.Service<Agent>("clanka/Agent")
106
106
 
107
107
  /**
108
108
  * @since 1.0.0
@@ -607,7 +607,7 @@ ${capabilities.toolsDts}
607
607
  declare const fetch: typeof globalThis.fetch
608
608
  \`\`\``
609
609
 
610
- class ScriptExecutor extends ServiceMap.Service<
610
+ class ScriptExecutor extends Context.Service<
611
611
  ScriptExecutor,
612
612
  (script: string) => Effect.Effect<string>
613
613
  >()("clanka/Agent/ScriptExecutor") {}
@@ -664,7 +664,7 @@ export const layerLocal = <Toolkit extends Toolkit.Any = never>(options: {
664
664
  * @since 1.0.0
665
665
  * @category Subagent model
666
666
  */
667
- export class SubagentModel extends ServiceMap.Service<
667
+ export class SubagentModel extends Context.Service<
668
668
  SubagentModel,
669
669
  Layer.Layer<
670
670
  LanguageModel.LanguageModel | Model.ProviderName | Model.ModelName
@@ -685,9 +685,9 @@ export const layerSubagentModel = <E, R>(
685
685
  Layer.effect(
686
686
  SubagentModel,
687
687
  Effect.gen(function* () {
688
- const services = yield* Effect.services<R>()
688
+ const services = yield* Effect.context<R>()
689
689
  return Layer.orDie(layer).pipe(
690
- Layer.provide(Layer.succeedServices(services)),
690
+ Layer.provide(Layer.succeedContext(services)),
691
691
  )
692
692
  }),
693
693
  )
@@ -696,7 +696,7 @@ export const layerSubagentModel = <E, R>(
696
696
  * @since 1.0.0
697
697
  * @category Conversation mode
698
698
  */
699
- export class ConversationMode extends ServiceMap.Reference<boolean>(
699
+ export class ConversationMode extends Context.Reference<boolean>(
700
700
  "clanka/Agent/ConversationMode",
701
701
  {
702
702
  defaultValue: () => false,
@@ -712,7 +712,7 @@ export class ConversationMode extends ServiceMap.Reference<boolean>(
712
712
  * @since 1.0.0
713
713
  * @category Turn timeout
714
714
  */
715
- export class TurnTimeout extends ServiceMap.Reference<Duration.Duration>(
715
+ export class TurnTimeout extends Context.Reference<Duration.Duration>(
716
716
  "clanka/Agent/TurnTimeout",
717
717
  {
718
718
  defaultValue: () => Duration.minutes(5),
@@ -726,7 +726,7 @@ export class TurnTimeout extends ServiceMap.Reference<Duration.Duration>(
726
726
  * @since 1.0.0
727
727
  * @category System prompts
728
728
  */
729
- export class AgentModelConfig extends ServiceMap.Reference<{
729
+ export class AgentModelConfig extends Context.Reference<{
730
730
  readonly systemPromptTransform?:
731
731
  | (<A, E, R>(
732
732
  system: string,
@@ -15,7 +15,7 @@ import {
15
15
  import { ToolkitRenderer } from "./ToolkitRenderer.ts"
16
16
  import type * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"
17
17
  import type * as HttpClient from "effect/unstable/http/HttpClient"
18
- import * as ServiceMap from "effect/ServiceMap"
18
+ import * as Context from "effect/Context"
19
19
  import * as Effect from "effect/Effect"
20
20
  import * as Option from "effect/Option"
21
21
  import * as Stream from "effect/Stream"
@@ -45,7 +45,7 @@ import * as References from "effect/References"
45
45
  * @since 1.0.0
46
46
  * @category Services
47
47
  */
48
- export class AgentExecutor extends ServiceMap.Service<
48
+ export class AgentExecutor extends Context.Service<
49
49
  AgentExecutor,
50
50
  {
51
51
  readonly capabilities: Effect.Effect<Capabilities>
@@ -54,6 +54,10 @@ export class AgentExecutor extends ServiceMap.Service<
54
54
  readonly onTaskComplete: (summary: string) => Effect.Effect<void>
55
55
  readonly onSubagent: (message: string) => Effect.Effect<string>
56
56
  }): Stream.Stream<string>
57
+ executeUnsafe<Tool extends keyof typeof AgentTools.tools>(options: {
58
+ readonly tool: Tool
59
+ readonly params: (typeof AgentTools.tools)[Tool]["parametersSchema"]["Encoded"]
60
+ }): Effect.Effect<Schema.Json>
57
61
  }
58
62
  >()("clanka/AgentExecutor") {}
59
63
 
@@ -102,13 +106,13 @@ export const makeLocal = Effect.fnUntraced(function* <
102
106
  const tools = yield* AllTools
103
107
  const toolsDts = renderer.render(AllTools)
104
108
 
105
- const services = yield* Effect.services()
109
+ const services = yield* Effect.context()
106
110
 
107
111
  const toolEntries = Object.entries(tools.tools).map(([name, tool]) => {
108
112
  const handler = services.mapUnsafe.get(tool.id) as Tool.Handler<string>
109
113
  return {
110
114
  name,
111
- services: ServiceMap.merge(services, handler.services),
115
+ services: Context.merge(services, handler.context),
112
116
  handler: handler.handler,
113
117
  }
114
118
  })
@@ -127,16 +131,16 @@ export const makeLocal = Effect.fnUntraced(function* <
127
131
  const handlerScope = Scope.makeUnsafe("parallel")
128
132
  const trackFiber = Fiber.runIn(handlerScope)
129
133
 
130
- const taskServices = ServiceMap.mutate(
131
- ServiceMap.empty(),
134
+ const taskServices = Context.mutate(
135
+ Context.empty(),
132
136
  flow(
133
- ServiceMap.add(TaskCompleter, opts.onTaskComplete),
134
- ServiceMap.add(CurrentDirectory, options.directory),
135
- ServiceMap.add(SubagentExecutor, opts.onSubagent),
136
- ServiceMap.add(Console.Console, console),
137
- ServiceMap.add(References.CurrentLogAnnotations, {}),
137
+ Context.add(TaskCompleter, opts.onTaskComplete),
138
+ Context.add(CurrentDirectory, options.directory),
139
+ Context.add(SubagentExecutor, opts.onSubagent),
140
+ Context.add(Console.Console, console),
141
+ Context.add(References.CurrentLogAnnotations, {}),
138
142
  Option.isSome(search)
139
- ? ServiceMap.add(SemanticSearch, search.value)
143
+ ? Context.add(SemanticSearch, search.value)
140
144
  : identity,
141
145
  ),
142
146
  )
@@ -156,7 +160,7 @@ export const makeLocal = Effect.fnUntraced(function* <
156
160
  for (let i = 0; i < toolEntries.length; i++) {
157
161
  const { name, handler, services } = toolEntries[i]!
158
162
  const runFork = Effect.runForkWith(
159
- ServiceMap.merge(services, taskServices),
163
+ Context.merge(services, taskServices),
160
164
  )
161
165
 
162
166
  // oxlint-disable-next-line typescript/no-explicit-any
@@ -207,6 +211,22 @@ export const makeLocal = Effect.fnUntraced(function* <
207
211
  })
208
212
  }),
209
213
  execute,
214
+ executeUnsafe: (opts) => {
215
+ const tool = tools.tools[opts.tool as keyof typeof tools.tools]
216
+ const handler = services.mapUnsafe.get(opts.tool) as Tool.Handler<string>
217
+ if (!handler || !tool) {
218
+ return Effect.die(new Error(`Unknown tool: ${opts.tool}`))
219
+ }
220
+ const encodeSuccess = Schema.encodeUnknownEffect(
221
+ Schema.toCodecJson(tool.successSchema as Schema.Top),
222
+ )
223
+ return pipe(
224
+ handler.handler(opts.params, {}),
225
+ Effect.flatMap(encodeSuccess),
226
+ Effect.provideContext(handler.context),
227
+ Effect.orDie,
228
+ ) as Effect.Effect<Schema.Json>
229
+ },
210
230
  })
211
231
  })
212
232
 
@@ -250,6 +270,9 @@ export const makeRpc = Effect.gen(function* () {
250
270
  ),
251
271
  ),
252
272
  ).pipe(Stream.unwrap),
273
+ executeUnsafe(options) {
274
+ return client.executeUnsafe(options).pipe(Effect.orDie)
275
+ },
253
276
  })
254
277
  })
255
278
 
@@ -382,6 +405,9 @@ export const layerRpcServer = <Toolkit extends Toolkit.Any = never>(options: {
382
405
 
383
406
  return queue
384
407
  }),
408
+ executeUnsafe(opts) {
409
+ return local.executeUnsafe(opts as any)
410
+ },
385
411
  })
386
412
  }),
387
413
  ),
@@ -420,6 +446,13 @@ export class Rpcs extends RpcGroup.make(
420
446
  success: ExecuteOutput,
421
447
  stream: true,
422
448
  }),
449
+ Rpc.make("executeUnsafe", {
450
+ payload: Schema.Struct({
451
+ tool: Schema.String,
452
+ params: Schema.Json,
453
+ }),
454
+ success: Schema.Json,
455
+ }),
423
456
  ) {}
424
457
 
425
458
  // ------------------------------------------
package/src/AgentTools.ts CHANGED
@@ -6,7 +6,7 @@ import { parsePatch, patchChunks } from "./ApplyPatch.ts"
6
6
  import * as ExaSearch from "./ExaSearch.ts"
7
7
  import * as WebToMarkdown from "./WebToMarkdown.ts"
8
8
  import type * as HttpClient from "effect/unstable/http/HttpClient"
9
- import * as ServiceMap from "effect/ServiceMap"
9
+ import * as Context from "effect/Context"
10
10
  import * as Effect from "effect/Effect"
11
11
  import * as Toolkit from "effect/unstable/ai/Toolkit"
12
12
  import * as Tool from "effect/unstable/ai/Tool"
@@ -26,7 +26,7 @@ import * as SemanticSearch from "./SemanticSearch/Service.ts"
26
26
  * @since 1.0.0
27
27
  * @category Context
28
28
  */
29
- export class CurrentDirectory extends ServiceMap.Service<
29
+ export class CurrentDirectory extends Context.Service<
30
30
  CurrentDirectory,
31
31
  string
32
32
  >()("clanka/AgentTools/CurrentDirectory") {}
@@ -35,7 +35,7 @@ export class CurrentDirectory extends ServiceMap.Service<
35
35
  * @since 1.0.0
36
36
  * @category Context
37
37
  */
38
- export class TaskCompleter extends ServiceMap.Service<
38
+ export class TaskCompleter extends Context.Service<
39
39
  TaskCompleter,
40
40
  (output: string) => Effect.Effect<void>
41
41
  >()("clanka/AgentTools/TaskCompleter") {}
@@ -44,7 +44,7 @@ export class TaskCompleter extends ServiceMap.Service<
44
44
  * @since 1.0.0
45
45
  * @category Context
46
46
  */
47
- export class SubagentExecutor extends ServiceMap.Service<
47
+ export class SubagentExecutor extends Context.Service<
48
48
  SubagentExecutor,
49
49
  (prompt: string) => Effect.Effect<string>
50
50
  >()("clanka/AgentTools/SubagentExecutor") {}
@@ -54,9 +54,9 @@ export class SubagentExecutor extends ServiceMap.Service<
54
54
  * @category Context
55
55
  */
56
56
  export const makeContextNoop = (cwd?: string) =>
57
- SubagentExecutor.serviceMap(() => Effect.die("Not implemented")).pipe(
58
- ServiceMap.add(CurrentDirectory, cwd ?? "/"),
59
- ServiceMap.add(TaskCompleter, () => Effect.void),
57
+ SubagentExecutor.context(() => Effect.die("Not implemented")).pipe(
58
+ Context.add(CurrentDirectory, cwd ?? "/"),
59
+ Context.add(TaskCompleter, () => Effect.void),
60
60
  )
61
61
 
62
62
  class TodoItem extends Schema.Opaque<TodoItem>()(
@@ -35,7 +35,7 @@ describe("patchContent", () => {
35
35
  "*** Begin Patch",
36
36
  "*** Update File: src/ExaSearch.ts",
37
37
  "@@",
38
- " export class ExaSearch extends ServiceMap.Service<",
38
+ " export class ExaSearch extends Context.Service<",
39
39
  " ExaSearch,",
40
40
  " {",
41
41
  "- search(query: string): Effect.Effect<Array<SearchResponse<{}>>, ExaError>",
@@ -51,7 +51,7 @@ describe("patchContent", () => {
51
51
  chunks: [
52
52
  {
53
53
  old: [
54
- "export class ExaSearch extends ServiceMap.Service<",
54
+ "export class ExaSearch extends Context.Service<",
55
55
  " ExaSearch,",
56
56
  " {",
57
57
  " search(query: string): Effect.Effect<Array<SearchResponse<{}>>, ExaError>",
@@ -59,7 +59,7 @@ describe("patchContent", () => {
59
59
  '>()("clanka/ExaSearch") {}',
60
60
  ],
61
61
  next: [
62
- "export class ExaSearch extends ServiceMap.Service<",
62
+ "export class ExaSearch extends Context.Service<",
63
63
  " ExaSearch,",
64
64
  " {",
65
65
  " search(query: string): Effect.Effect<SearchResponse<{}>, ExaError>",
package/src/ChunkRepo.ts CHANGED
@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect"
2
2
  import * as Layer from "effect/Layer"
3
3
  import * as Schema from "effect/Schema"
4
4
  import * as SchemaTransformation from "effect/SchemaTransformation"
5
- import * as ServiceMap from "effect/ServiceMap"
5
+ import * as Context from "effect/Context"
6
6
  import * as Model from "effect/unstable/schema/Model"
7
7
  import * as SqlClient from "effect/unstable/sql/SqlClient"
8
8
  import * as SqlError from "effect/unstable/sql/SqlError"
@@ -87,7 +87,7 @@ export class Chunk extends Model.Class<Chunk>("Chunk")({
87
87
  * @since 1.0.0
88
88
  * @category Services
89
89
  */
90
- export class ChunkRepo extends ServiceMap.Service<
90
+ export class ChunkRepo extends Context.Service<
91
91
  ChunkRepo,
92
92
  {
93
93
  insert(
@@ -139,10 +139,9 @@ export const layer = Layer.effect(
139
139
  Effect.gen(function* () {
140
140
  const sql = yield* SqlClient.SqlClient
141
141
  const dimensions = yield* EmbeddingModel.Dimensions
142
- const loaders = yield* SqlModel.makeDataLoaders(Chunk, {
142
+ const loaders = yield* SqlModel.makeResolvers(Chunk, {
143
143
  tableName: "chunks",
144
144
  idColumn: "id",
145
- window: 10,
146
145
  spanPrefix: "ChunkRepo",
147
146
  })
148
147
 
@@ -185,10 +184,13 @@ export const layer = Layer.effect(
185
184
  sql`select id, hash from chunks where ${sql.in("hash", hashes)}`,
186
185
  }).pipe(RequestResolver.setDelay(5))
187
186
 
187
+ const insertResolver = loaders.insert.pipe(RequestResolver.setDelay(5))
188
+ const findByIdResolver = loaders.findById.pipe(RequestResolver.setDelay(5))
189
+
188
190
  return ChunkRepo.of({
189
191
  insert: (insert) => {
190
192
  needsQuantization = true
191
- return loaders.insert(insert).pipe(
193
+ return SqlResolver.request(insert, insertResolver).pipe(
192
194
  Effect.catchTags({
193
195
  SqlError: (reason) => Effect.fail(new ChunkRepoError({ reason })),
194
196
  SchemaError: Effect.die,
@@ -196,7 +198,7 @@ export const layer = Layer.effect(
196
198
  )
197
199
  },
198
200
  findById: (id) =>
199
- loaders.findById(id).pipe(
201
+ SqlResolver.request(id, findByIdResolver).pipe(
200
202
  Effect.catchTags({
201
203
  SchemaError: Effect.die,
202
204
  }),
@@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem"
7
7
  import { pipe } from "effect/Function"
8
8
  import * as Layer from "effect/Layer"
9
9
  import * as Path from "effect/Path"
10
- import * as ServiceMap from "effect/ServiceMap"
10
+ import * as Context from "effect/Context"
11
11
  import * as Stream from "effect/Stream"
12
12
  import * as ChildProcess from "effect/unstable/process/ChildProcess"
13
13
  import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"
@@ -47,7 +47,7 @@ export type ChunkType =
47
47
  * @since 1.0.0
48
48
  * @category Services
49
49
  */
50
- export class CodeChunker extends ServiceMap.Service<
50
+ export class CodeChunker extends Context.Service<
51
51
  CodeChunker,
52
52
  {
53
53
  listFiles(options: {