clanka 0.2.25 → 0.2.27

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/dist/Agent.d.ts CHANGED
@@ -99,6 +99,14 @@ export declare class SubagentModel extends SubagentModel_base {
99
99
  * @category Subagent model
100
100
  */
101
101
  export declare const layerSubagentModel: <E, R>(layer: Layer.Layer<LanguageModel.LanguageModel | Model.ProviderName | Model.ModelName, E, R>) => Layer.Layer<SubagentModel, E, R>;
102
+ declare const ConversationMode_base: ServiceMap.Reference<boolean>;
103
+ /**
104
+ * @since 1.0.0
105
+ * @category Conversation mode
106
+ */
107
+ export declare class ConversationMode extends ConversationMode_base {
108
+ static readonly layer: (enabled: boolean) => Layer.Layer<never, never, never>;
109
+ }
102
110
  declare const AgentModelConfig_base: ServiceMap.Reference<{
103
111
  readonly systemPromptTransform?: (<A, E, R>(system: string, effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>) | undefined;
104
112
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../src/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../src/Agent.ts"],"names":[],"mappings":"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"}
package/dist/Agent.js CHANGED
@@ -59,6 +59,7 @@ ${content}
59
59
  const ai = yield* LanguageModel.LanguageModel;
60
60
  const subagentModel = yield* SubagentModel;
61
61
  const modelConfig = yield* AgentModelConfig;
62
+ const conversationMode = yield* ConversationMode;
62
63
  let finalSummary = Option.none();
63
64
  const output = yield* Queue.make();
64
65
  let inputTokens = 0;
@@ -66,7 +67,7 @@ ${content}
66
67
  const prompt = opts.disableHistory ? MutableRef.make(Prompt.empty) : history;
67
68
  MutableRef.update(prompt, Prompt.concat(opts.prompt));
68
69
  const generateSystem = typeof opts.system === "function" ? opts.system : defaultSystem;
69
- const toolInstructions = generateSystemTools(capabilities);
70
+ const toolInstructions = generateSystemTools(capabilities, conversationMode);
70
71
  let system = generateSystem({
71
72
  toolInstructions,
72
73
  agentsMd: Option.getOrElse(agentsMd, () => ""),
@@ -175,6 +176,7 @@ ${content}
175
176
  let response = Array.empty();
176
177
  let reasoningStarted = false;
177
178
  let hadReasoningDelta = false;
179
+ let hadToolCall = false;
178
180
  yield* pipe(ai.streamText({ prompt: prompt.current, toolkit: singleTool }), Stream.takeUntil((part) => {
179
181
  if ((part.type === "text-end" || part.type === "reasoning-end") &&
180
182
  pendingMessages.size > 0) {
@@ -234,6 +236,9 @@ ${content}
234
236
  });
235
237
  }
236
238
  break;
239
+ case "tool-call":
240
+ hadToolCall = true;
241
+ break;
237
242
  }
238
243
  }
239
244
  return Effect.void;
@@ -250,6 +255,9 @@ ${content}
250
255
  ? (effect) => modelConfig.systemPromptTransform(system, effect)
251
256
  : identity);
252
257
  MutableRef.update(prompt, Prompt.concat(Prompt.fromResponseParts(response)));
258
+ if (conversationMode && !hadToolCall && pendingMessages.size === 0) {
259
+ finalSummary = Option.some(responseToSummary(response));
260
+ }
253
261
  }
254
262
  }).pipe(Effect.provideService(ScriptExecutor, (script) => {
255
263
  maybeSend({ agentId, part: new ScriptStart() });
@@ -290,7 +298,7 @@ ${options.toolInstructions}
290
298
 
291
299
  ${options.agentsMd}
292
300
  `;
293
- const generateSystemTools = (capabilities) => `**YOU ONLY HAVE ACCESS TO ONE TOOL** "execute", to run javascript code to do your work.
301
+ const generateSystemTools = (capabilities, conversationMode) => `**YOU ONLY HAVE ACCESS TO ONE TOOL** "execute", to run javascript code to do your work.
294
302
 
295
303
  - Use \`console.log\` to print any output you need.
296
304
  - Top level await is supported.${capabilities.supportsSearch
@@ -301,11 +309,13 @@ const generateSystemTools = (capabilities) => `**YOU ONLY HAVE ACCESS TO ONE TOO
301
309
  - You can add / update / remove multiple files in one go with "applyPatch".
302
310
  - AVOID passing scripts into the "bash" function, and instead write javascript.
303
311
  - **Variables are not shared** between executions, so you must include all necessary code in each script you execute.
304
- - DO NOT use \`require\`, \`import\`, \`process\`, or any other node.js apis.
312
+ - DO NOT use \`require\`, \`import\`, \`process\`, or any other node.js apis.${conversationMode
313
+ ? ""
314
+ : `
305
315
 
306
316
  When you have fully completed your task, call the "taskComplete" function with the final output.
307
317
  DO NOT output the final result without wrapping it with "taskComplete".
308
- Make sure every detail of the task is done before calling "taskComplete".
318
+ Make sure every detail of the task is done before calling "taskComplete".`}
309
319
 
310
320
  You have these functions available to you:
311
321
 
@@ -379,6 +389,15 @@ export const layerSubagentModel = (layer) => Layer.effect(SubagentModel, Effect.
379
389
  const services = yield* Effect.services();
380
390
  return Layer.orDie(layer).pipe(Layer.provide(Layer.succeedServices(services)));
381
391
  }));
392
+ /**
393
+ * @since 1.0.0
394
+ * @category Conversation mode
395
+ */
396
+ export class ConversationMode extends ServiceMap.Reference("clanka/Agent/ConversationMode", {
397
+ defaultValue: () => false,
398
+ }) {
399
+ static layer = (enabled) => Layer.succeed(ConversationMode, enabled);
400
+ }
382
401
  /**
383
402
  * @since 1.0.0
384
403
  * @category System prompts
@@ -388,6 +407,20 @@ export class AgentModelConfig extends ServiceMap.Reference("clanka/Agent/SystemP
388
407
  }) {
389
408
  static layer = (options) => Layer.succeed(AgentModelConfig, options);
390
409
  }
410
+ const responseToSummary = (response) => {
411
+ const prompt = Prompt.fromResponseParts(response);
412
+ let parts = Array.empty();
413
+ for (const message of prompt.content) {
414
+ if (message.role !== "assistant")
415
+ continue;
416
+ for (const part of message.content) {
417
+ if (part.type === "text" || part.type === "reasoning") {
418
+ parts.push(part.text);
419
+ }
420
+ }
421
+ }
422
+ return parts.join("\n\n");
423
+ };
391
424
  /**
392
425
  * @since 1.0.0
393
426
  * @category Output
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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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Agent.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Agent.test.d.ts","sourceRoot":"","sources":["../src/Agent.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,59 @@
1
+ import { assert, describe, it } from "@effect/vitest";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Option from "effect/Option";
5
+ import * as Stream from "effect/Stream";
6
+ import * as LanguageModel from "effect/unstable/ai/LanguageModel";
7
+ import * as Model from "effect/unstable/ai/Model";
8
+ import * as Agent from "./Agent.js";
9
+ import * as AgentExecutor from "./AgentExecutor.js";
10
+ const capabilities = new AgentExecutor.Capabilities({
11
+ toolsDts: "",
12
+ agentsMd: Option.none(),
13
+ supportsSearch: false,
14
+ });
15
+ const makeExecutor = (execute = () => Stream.empty) => AgentExecutor.AgentExecutor.of({
16
+ capabilities: Effect.succeed(capabilities),
17
+ execute,
18
+ });
19
+ const runAgent = (options) => Effect.scoped(Effect.gen(function* () {
20
+ const languageModel = yield* LanguageModel.make({
21
+ generateText: () => Effect.succeed([]),
22
+ streamText: options.streamText,
23
+ });
24
+ const modelLayer = Layer.mergeAll(Layer.succeed(LanguageModel.LanguageModel, languageModel), Layer.succeed(Model.ProviderName, "test-provider"), Layer.succeed(Model.ModelName, "test-model"));
25
+ const agent = yield* Agent.make.pipe(Effect.provideService(AgentExecutor.AgentExecutor, options.executor ?? makeExecutor()));
26
+ return yield* agent.send({ prompt: "hello" }).pipe(Effect.flatMap((stream) => stream.pipe(Stream.runDrain, Effect.as(""), Effect.catchTag("AgentFinished", (finished) => Effect.succeed(finished.summary)))), Effect.provide(Layer.mergeAll(modelLayer, Agent.ConversationMode.layer(options.conversationMode ?? false), Agent.layerSubagentModel(modelLayer))));
27
+ }));
28
+ describe("Agent", () => {
29
+ it.effect("ConversationMode defaults to false", () => Effect.gen(function* () {
30
+ assert.strictEqual(yield* Agent.ConversationMode, false);
31
+ }));
32
+ it.effect("finishes with the assistant response when conversation mode is enabled", () => runAgent({
33
+ conversationMode: true,
34
+ streamText: () => Stream.fromIterable([
35
+ { type: "text-start", id: "1" },
36
+ { type: "text-delta", id: "1", delta: "Hello from the assistant" },
37
+ { type: "text-end", id: "1" },
38
+ ]),
39
+ }).pipe(Effect.map((summary) => {
40
+ assert.strictEqual(summary, "Hello from the assistant");
41
+ })));
42
+ it.effect("still finishes when taskComplete is called in conversation mode", () => runAgent({
43
+ conversationMode: true,
44
+ executor: makeExecutor(({ onTaskComplete }) => Stream.fromEffect(onTaskComplete("done from taskComplete").pipe(Effect.as("")))),
45
+ streamText: () => Stream.fromIterable([
46
+ {
47
+ type: "tool-call",
48
+ id: "call-1",
49
+ name: "execute",
50
+ params: {
51
+ script: 'await taskComplete("done from taskComplete")',
52
+ },
53
+ },
54
+ ]),
55
+ }).pipe(Effect.map((summary) => {
56
+ assert.strictEqual(summary, "done from taskComplete");
57
+ })));
58
+ });
59
+ //# sourceMappingURL=Agent.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Agent.test.js","sourceRoot":"","sources":["../src/Agent.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -45,14 +45,14 @@ const model = Flag.string("model").pipe(Flag.withAlias("m"), Flag.withFallbackPr
45
45
  return Effect.succeed(value);
46
46
  },
47
47
  })));
48
- const semantic = Flag.boolean("search").pipe(Flag.withDescription("Use semantic search? (uses OPENAI_API_KEY env var)"), Flag.withAlias("s"));
48
+ const semantic = Flag.directory("search").pipe(Flag.withDescription("Directory for semantic search data (uses OPENAI_API_KEY env var)"), Flag.withAlias("s"), Flag.optional);
49
49
  const prompt = Flag.string("prompt").pipe(Flag.withDescription("Pass a prompt in non-interactive mode"), Flag.optional);
50
50
  const Kvs = Layer.unwrap(Effect.gen(function* () {
51
51
  const path = yield* Path.Path;
52
52
  const configHome = yield* Config.nonEmptyString("XDG_CONFIG_HOME").pipe(Config.orElse(() => Config.nonEmptyString("HOME").pipe(Config.map((home) => path.join(home, ".config")))));
53
53
  return KeyValueStore.layerFileSystem(path.join(configHome, "clanka"));
54
54
  })).pipe(Layer.provide(NodeServices.layer));
55
- const Search = Layer.unwrap(Effect.gen(function* () {
55
+ const Search = (directory) => Layer.unwrap(Effect.gen(function* () {
56
56
  const apiKey = yield* Config.redacted("OPENAI_API_KEY").pipe(Config.option);
57
57
  if (Option.isNone(apiKey)) {
58
58
  yield* Effect.logWarning("OPENAI_API_KEY is not set");
@@ -62,7 +62,7 @@ const Search = Layer.unwrap(Effect.gen(function* () {
62
62
  const SemanticSearch = yield* Effect.promise(() => import("./SemanticSearch.js"));
63
63
  return SemanticSearch.layer({
64
64
  directory: process.cwd(),
65
- database: path.join(".clanka", "search.sqlite"),
65
+ database: path.join(directory, "search.sqlite"),
66
66
  }).pipe(Layer.provide(OpenAiEmbeddingModel.model("text-embedding-3-small", {
67
67
  dimensions: 1536,
68
68
  })), Layer.provide(OpenAiClient.layer({
@@ -108,9 +108,12 @@ Command.make("clanka", { provider, model, semantic, prompt }).pipe(Command.withH
108
108
  directory: process.cwd(),
109
109
  }),
110
110
  Model,
111
- semantic ? Search : Layer.empty,
111
+ Option.match(semantic, {
112
+ onNone: () => Layer.empty,
113
+ onSome: Search,
114
+ }),
112
115
  ]));
113
- })), Command.run({
116
+ })), Command.provide(({ prompt }) => Agent.ConversationMode.layer(Option.isNone(prompt))), Command.run({
114
117
  version: "0.0.1",
115
118
  }), Effect.provide([
116
119
  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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clanka",
3
3
  "type": "module",
4
- "version": "0.2.25",
4
+ "version": "0.2.27",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -0,0 +1,122 @@
1
+ import { assert, describe, it } from "@effect/vitest"
2
+ import * as Effect from "effect/Effect"
3
+ import * as Layer from "effect/Layer"
4
+ import * as Option from "effect/Option"
5
+ import * as Stream from "effect/Stream"
6
+ import * as LanguageModel from "effect/unstable/ai/LanguageModel"
7
+ import * as Model from "effect/unstable/ai/Model"
8
+ import * as Agent from "./Agent.ts"
9
+ import * as AgentExecutor from "./AgentExecutor.ts"
10
+
11
+ const capabilities = new AgentExecutor.Capabilities({
12
+ toolsDts: "",
13
+ agentsMd: Option.none(),
14
+ supportsSearch: false,
15
+ })
16
+
17
+ const makeExecutor = (
18
+ execute: AgentExecutor.AgentExecutor["Service"]["execute"] = () =>
19
+ Stream.empty,
20
+ ) =>
21
+ AgentExecutor.AgentExecutor.of({
22
+ capabilities: Effect.succeed(capabilities),
23
+ execute,
24
+ })
25
+
26
+ const runAgent = (options: {
27
+ readonly conversationMode?: boolean | undefined
28
+ readonly executor?: AgentExecutor.AgentExecutor["Service"] | undefined
29
+ readonly streamText: Parameters<typeof LanguageModel.make>[0]["streamText"]
30
+ }) =>
31
+ Effect.scoped(
32
+ Effect.gen(function* () {
33
+ const languageModel = yield* LanguageModel.make({
34
+ generateText: () => Effect.succeed([]),
35
+ streamText: options.streamText,
36
+ })
37
+ const modelLayer = Layer.mergeAll(
38
+ Layer.succeed(LanguageModel.LanguageModel, languageModel),
39
+ Layer.succeed(Model.ProviderName, "test-provider"),
40
+ Layer.succeed(Model.ModelName, "test-model"),
41
+ )
42
+ const agent = yield* Agent.make.pipe(
43
+ Effect.provideService(
44
+ AgentExecutor.AgentExecutor,
45
+ options.executor ?? makeExecutor(),
46
+ ),
47
+ )
48
+
49
+ return yield* agent.send({ prompt: "hello" }).pipe(
50
+ Effect.flatMap((stream) =>
51
+ stream.pipe(
52
+ Stream.runDrain,
53
+ Effect.as(""),
54
+ Effect.catchTag("AgentFinished", (finished) =>
55
+ Effect.succeed(finished.summary),
56
+ ),
57
+ ),
58
+ ),
59
+ Effect.provide(
60
+ Layer.mergeAll(
61
+ modelLayer,
62
+ Agent.ConversationMode.layer(options.conversationMode ?? false),
63
+ Agent.layerSubagentModel(modelLayer),
64
+ ),
65
+ ),
66
+ )
67
+ }),
68
+ )
69
+
70
+ describe("Agent", () => {
71
+ it.effect("ConversationMode defaults to false", () =>
72
+ Effect.gen(function* () {
73
+ assert.strictEqual(yield* Agent.ConversationMode, false)
74
+ }),
75
+ )
76
+
77
+ it.effect(
78
+ "finishes with the assistant response when conversation mode is enabled",
79
+ () =>
80
+ runAgent({
81
+ conversationMode: true,
82
+ streamText: () =>
83
+ Stream.fromIterable([
84
+ { type: "text-start", id: "1" },
85
+ { type: "text-delta", id: "1", delta: "Hello from the assistant" },
86
+ { type: "text-end", id: "1" },
87
+ ]),
88
+ }).pipe(
89
+ Effect.map((summary) => {
90
+ assert.strictEqual(summary, "Hello from the assistant")
91
+ }),
92
+ ),
93
+ )
94
+
95
+ it.effect(
96
+ "still finishes when taskComplete is called in conversation mode",
97
+ () =>
98
+ runAgent({
99
+ conversationMode: true,
100
+ executor: makeExecutor(({ onTaskComplete }) =>
101
+ Stream.fromEffect(
102
+ onTaskComplete("done from taskComplete").pipe(Effect.as("")),
103
+ ),
104
+ ),
105
+ streamText: () =>
106
+ Stream.fromIterable([
107
+ {
108
+ type: "tool-call",
109
+ id: "call-1",
110
+ name: "execute",
111
+ params: {
112
+ script: 'await taskComplete("done from taskComplete")',
113
+ },
114
+ },
115
+ ]),
116
+ }).pipe(
117
+ Effect.map((summary) => {
118
+ assert.strictEqual(summary, "done from taskComplete")
119
+ }),
120
+ ),
121
+ )
122
+ })
package/src/Agent.ts CHANGED
@@ -163,6 +163,7 @@ ${content}
163
163
  const ai = yield* LanguageModel.LanguageModel
164
164
  const subagentModel = yield* SubagentModel
165
165
  const modelConfig = yield* AgentModelConfig
166
+ const conversationMode = yield* ConversationMode
166
167
  let finalSummary = Option.none<string>()
167
168
 
168
169
  const output = yield* Queue.make<Output, AgentFinished | AiError.AiError>()
@@ -175,7 +176,7 @@ ${content}
175
176
  const generateSystem =
176
177
  typeof opts.system === "function" ? opts.system : defaultSystem
177
178
 
178
- const toolInstructions = generateSystemTools(capabilities)
179
+ const toolInstructions = generateSystemTools(capabilities, conversationMode)
179
180
  let system = generateSystem({
180
181
  toolInstructions,
181
182
  agentsMd: Option.getOrElse(agentsMd, () => ""),
@@ -323,6 +324,7 @@ ${content}
323
324
  let response = Array.empty<Response.StreamPart<any>>()
324
325
  let reasoningStarted = false
325
326
  let hadReasoningDelta = false
327
+ let hadToolCall = false
326
328
  yield* pipe(
327
329
  ai.streamText({ prompt: prompt.current, toolkit: singleTool }),
328
330
  Stream.takeUntil((part) => {
@@ -388,6 +390,9 @@ ${content}
388
390
  })
389
391
  }
390
392
  break
393
+ case "tool-call":
394
+ hadToolCall = true
395
+ break
391
396
  }
392
397
  }
393
398
  return Effect.void
@@ -410,6 +415,9 @@ ${content}
410
415
  prompt,
411
416
  Prompt.concat(Prompt.fromResponseParts(response)),
412
417
  )
418
+ if (conversationMode && !hadToolCall && pendingMessages.size === 0) {
419
+ finalSummary = Option.some(responseToSummary(response))
420
+ }
413
421
  }
414
422
  }).pipe(
415
423
  Effect.provideService(ScriptExecutor, (script) => {
@@ -477,6 +485,7 @@ ${options.agentsMd}
477
485
 
478
486
  const generateSystemTools = (
479
487
  capabilities: AgentExecutor.Capabilities,
488
+ conversationMode: boolean,
480
489
  ) => `**YOU ONLY HAVE ACCESS TO ONE TOOL** "execute", to run javascript code to do your work.
481
490
 
482
491
  - Use \`console.log\` to print any output you need.
@@ -490,11 +499,15 @@ const generateSystemTools = (
490
499
  - You can add / update / remove multiple files in one go with "applyPatch".
491
500
  - AVOID passing scripts into the "bash" function, and instead write javascript.
492
501
  - **Variables are not shared** between executions, so you must include all necessary code in each script you execute.
493
- - DO NOT use \`require\`, \`import\`, \`process\`, or any other node.js apis.
502
+ - DO NOT use \`require\`, \`import\`, \`process\`, or any other node.js apis.${
503
+ conversationMode
504
+ ? ""
505
+ : `
494
506
 
495
507
  When you have fully completed your task, call the "taskComplete" function with the final output.
496
508
  DO NOT output the final result without wrapping it with "taskComplete".
497
- Make sure every detail of the task is done before calling "taskComplete".
509
+ Make sure every detail of the task is done before calling "taskComplete".`
510
+ }
498
511
 
499
512
  You have these functions available to you:
500
513
 
@@ -612,6 +625,20 @@ export const layerSubagentModel = <E, R>(
612
625
  }),
613
626
  )
614
627
 
628
+ /**
629
+ * @since 1.0.0
630
+ * @category Conversation mode
631
+ */
632
+ export class ConversationMode extends ServiceMap.Reference<boolean>(
633
+ "clanka/Agent/ConversationMode",
634
+ {
635
+ defaultValue: () => false,
636
+ },
637
+ ) {
638
+ static readonly layer = (enabled: boolean) =>
639
+ Layer.succeed(ConversationMode, enabled)
640
+ }
641
+
615
642
  /**
616
643
  * @since 1.0.0
617
644
  * @category System prompts
@@ -630,6 +657,22 @@ export class AgentModelConfig extends ServiceMap.Reference<{
630
657
  Layer.succeed(AgentModelConfig, options)
631
658
  }
632
659
 
660
+ const responseToSummary = (
661
+ response: ReadonlyArray<Response.AnyPart>,
662
+ ): string => {
663
+ const prompt = Prompt.fromResponseParts(response)
664
+ let parts = Array.empty<string>()
665
+ for (const message of prompt.content) {
666
+ if (message.role !== "assistant") continue
667
+ for (const part of message.content) {
668
+ if (part.type === "text" || part.type === "reasoning") {
669
+ parts.push(part.text)
670
+ }
671
+ }
672
+ }
673
+ return parts.join("\n\n")
674
+ }
675
+
633
676
  /**
634
677
  * @since 1.0.0
635
678
  * @category Output
package/src/cli.ts CHANGED
@@ -58,9 +58,12 @@ const model = Flag.string("model").pipe(
58
58
  ),
59
59
  )
60
60
 
61
- const semantic = Flag.boolean("search").pipe(
62
- Flag.withDescription("Use semantic search? (uses OPENAI_API_KEY env var)"),
61
+ const semantic = Flag.directory("search").pipe(
62
+ Flag.withDescription(
63
+ "Directory for semantic search data (uses OPENAI_API_KEY env var)",
64
+ ),
63
65
  Flag.withAlias("s"),
66
+ Flag.optional,
64
67
  )
65
68
 
66
69
  const prompt = Flag.string("prompt").pipe(
@@ -83,38 +86,41 @@ const Kvs = Layer.unwrap(
83
86
  }),
84
87
  ).pipe(Layer.provide(NodeServices.layer))
85
88
 
86
- const Search = Layer.unwrap(
87
- Effect.gen(function* () {
88
- const apiKey = yield* Config.redacted("OPENAI_API_KEY").pipe(Config.option)
89
+ const Search = (directory: string) =>
90
+ Layer.unwrap(
91
+ Effect.gen(function* () {
92
+ const apiKey = yield* Config.redacted("OPENAI_API_KEY").pipe(
93
+ Config.option,
94
+ )
89
95
 
90
- if (Option.isNone(apiKey)) {
91
- yield* Effect.logWarning("OPENAI_API_KEY is not set")
92
- return Layer.empty
93
- }
96
+ if (Option.isNone(apiKey)) {
97
+ yield* Effect.logWarning("OPENAI_API_KEY is not set")
98
+ return Layer.empty
99
+ }
94
100
 
95
- const path = yield* Path.Path
101
+ const path = yield* Path.Path
96
102
 
97
- const SemanticSearch = yield* Effect.promise(
98
- () => import("./SemanticSearch.ts"),
99
- )
103
+ const SemanticSearch = yield* Effect.promise(
104
+ () => import("./SemanticSearch.ts"),
105
+ )
100
106
 
101
- return SemanticSearch.layer({
102
- directory: process.cwd(),
103
- database: path.join(".clanka", "search.sqlite"),
104
- }).pipe(
105
- Layer.provide(
106
- OpenAiEmbeddingModel.model("text-embedding-3-small", {
107
- dimensions: 1536,
108
- }),
109
- ),
110
- Layer.provide(
111
- OpenAiClient.layer({
112
- apiKey: apiKey.value,
113
- }),
114
- ),
115
- )
116
- }),
117
- ).pipe(Layer.provide([NodeServices.layer, NodeHttpClient.layerUndici]))
107
+ return SemanticSearch.layer({
108
+ directory: process.cwd(),
109
+ database: path.join(directory, "search.sqlite"),
110
+ }).pipe(
111
+ Layer.provide(
112
+ OpenAiEmbeddingModel.model("text-embedding-3-small", {
113
+ dimensions: 1536,
114
+ }),
115
+ ),
116
+ Layer.provide(
117
+ OpenAiClient.layer({
118
+ apiKey: apiKey.value,
119
+ }),
120
+ ),
121
+ )
122
+ }),
123
+ ).pipe(Layer.provide([NodeServices.layer, NodeHttpClient.layerUndici]))
118
124
 
119
125
  Command.make("clanka", { provider, model, semantic, prompt }).pipe(
120
126
  Command.withHandler(
@@ -193,11 +199,17 @@ Command.make("clanka", { provider, model, semantic, prompt }).pipe(
193
199
  directory: process.cwd(),
194
200
  }),
195
201
  Model,
196
- semantic ? Search : Layer.empty,
202
+ Option.match(semantic, {
203
+ onNone: () => Layer.empty,
204
+ onSome: Search,
205
+ }),
197
206
  ]),
198
207
  )
199
208
  }),
200
209
  ),
210
+ Command.provide(({ prompt }) =>
211
+ Agent.ConversationMode.layer(Option.isNone(prompt)),
212
+ ),
201
213
  Command.run({
202
214
  version: "0.0.1",
203
215
  }),