lalph 0.3.59 → 0.3.61

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/cli.mjs CHANGED
@@ -177948,7 +177948,7 @@ var ji = Bt, Ii = Object.assign(Qe, { sync: Bt }), zi = Ut, Bi = Object.assign(e
177948
177948
  });
177949
177949
  Ze.glob = Ze;
177950
177950
  //#endregion
177951
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/ApplyPatch.js
177951
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/ApplyPatch.js
177952
177952
  /**
177953
177953
  * @since 1.0.0
177954
177954
  */
@@ -192821,7 +192821,7 @@ var StreamableHTTPClientTransport = class {
192821
192821
  }
192822
192822
  };
192823
192823
  //#endregion
192824
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/McpClient.js
192824
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/McpClient.js
192825
192825
  /**
192826
192826
  * @since 1.0.0
192827
192827
  */
@@ -192866,7 +192866,7 @@ const layer$7 = effect$1(McpClient, gen(function* () {
192866
192866
  });
192867
192867
  }));
192868
192868
  //#endregion
192869
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/ExaSearch.js
192869
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/ExaSearch.js
192870
192870
  /**
192871
192871
  * @since 1.0.0
192872
192872
  */
@@ -207816,7 +207816,7 @@ var require_lib = /* @__PURE__ */ __commonJSMin$1(((exports) => {
207816
207816
  exports.impl = impl;
207817
207817
  }));
207818
207818
  //#endregion
207819
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/WebToMarkdown.js
207819
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/WebToMarkdown.js
207820
207820
  /**
207821
207821
  * @since 1.0.0
207822
207822
  */
@@ -210898,7 +210898,7 @@ const unsafeSecureJsonParse = (text) => {
210898
210898
  }
210899
210899
  };
210900
210900
  //#endregion
210901
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/AgentTools.js
210901
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/AgentTools.js
210902
210902
  /**
210903
210903
  * @since 1.0.0
210904
210904
  */
@@ -210983,7 +210983,10 @@ const AgentTools = make$9(make$8("readFile", {
210983
210983
  dependencies: [CurrentDirectory]
210984
210984
  }), make$8("bash", {
210985
210985
  description: "Run a bash command and return the output",
210986
- parameters: String$1.annotate({ identifier: "command" }),
210986
+ parameters: Struct({
210987
+ command: String$1,
210988
+ timeoutMs: optional$3(Finite).annotate({ documentation: "Timeout in ms (default: 120000)" })
210989
+ }).annotate({ identifier: "command" }),
210987
210990
  success: String$1,
210988
210991
  dependencies: [CurrentDirectory]
210989
210992
  }), make$8("gh", {
@@ -211097,12 +211100,19 @@ const AgentToolHandlersNoDeps = AgentTools.toLayer(gen(function* () {
211097
211100
  const cwd = yield* CurrentDirectory;
211098
211101
  return yield* promise(() => Ze(pattern, { cwd }));
211099
211102
  }),
211100
- bash: fn("AgentTools.bash")(function* (command) {
211101
- yield* logInfo(`Calling "bash"`).pipe(annotateLogs({ command }));
211103
+ bash: fn("AgentTools.bash")(function* (options) {
211104
+ const timeout = millis(options.timeoutMs ?? 12e4);
211105
+ yield* logInfo(`Calling "bash"`).pipe(annotateLogs({
211106
+ ...options,
211107
+ timeout
211108
+ }));
211102
211109
  const cwd = yield* CurrentDirectory;
211103
- return yield* execute(make$39("bash", ["-c", command], {
211110
+ return yield* execute(make$39("bash", ["-c", options.command], {
211104
211111
  cwd,
211105
211112
  stdin: "ignore"
211113
+ })).pipe(timeoutOrElse({
211114
+ duration: timeout,
211115
+ onTimeout: () => die$2(/* @__PURE__ */ new Error(`Command timed out after ${timeout}`))
211106
211116
  }));
211107
211117
  }, orDie$2),
211108
211118
  gh: fn("AgentTools.gh")(function* (args) {
@@ -211238,7 +211248,7 @@ const AgentToolHandlers = AgentToolHandlersNoDeps.pipe(provide$3([layer$6, layer
211238
211248
  AgentToolHandlersNoDeps.pipe(provide$3([mock(ExaSearch)({}), mock(WebToMarkdown)({})]));
211239
211249
  var ApplyPatchError = class extends TaggedClass$1("ApplyPatchError") {};
211240
211250
  //#endregion
211241
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/TypeBuilder.js
211251
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/TypeBuilder.js
211242
211252
  const resolveDocumentation = resolveAt("documentation");
211243
211253
  const identifierPattern = /^[$A-Z_a-z][$0-9A-Z_a-z]*$/u;
211244
211254
  const Precedence = {
@@ -211511,7 +211521,7 @@ const render = (schema, options) => {
211511
211521
  return printNode({ text: documentation === void 0 ? rendered.text : `${renderJsDoc(documentation, 0, printerOptions)}${printerOptions.newLine}${rendered.text}` }, printerOptions);
211512
211522
  };
211513
211523
  //#endregion
211514
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/ToolkitRenderer.js
211524
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/ToolkitRenderer.js
211515
211525
  /**
211516
211526
  * @since 1.0.0
211517
211527
  */
@@ -211533,7 +211543,7 @@ declare function ${name}(${params}): Promise<${render(tool.successSchema)}>`);
211533
211543
  }) });
211534
211544
  };
211535
211545
  //#endregion
211536
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/AgentExecutor.js
211546
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/AgentExecutor.js
211537
211547
  /**
211538
211548
  * @since 1.0.0
211539
211549
  */
@@ -211687,7 +211697,7 @@ var QueueWriteStream = class extends Writable {
211687
211697
  }
211688
211698
  };
211689
211699
  //#endregion
211690
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/ScriptExtraction.js
211700
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/ScriptExtraction.js
211691
211701
  const stripWrappingCodeFence = (script) => {
211692
211702
  const lines = script.split(/\r?\n/);
211693
211703
  if (lines.length < 2) return script;
@@ -213070,7 +213080,7 @@ const applySpanTransformer = (transformer, response, options) => {
213070
213080
  });
213071
213081
  };
213072
213082
  //#endregion
213073
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/Agent.js
213083
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/Agent.js
213074
213084
  /**
213075
213085
  * @since 1.0.0
213076
213086
  */
@@ -213391,7 +213401,6 @@ const defaultSystem = (options) => `You are a world-class software engineer: pre
213391
213401
  - **Fully read and understand your task** before proceeding.
213392
213402
  - Use the current state of the codebase to inform your decisions. Don't look at git history unless explicity asked to.
213393
213403
  - Only add comments when necessary.
213394
- - Make use of the "delegate" tool to delegate work, exploration and small research tasks. You can delegate multiple tasks in parallel with Promise.all
213395
213404
 
213396
213405
  ${options.toolInstructions}
213397
213406
 
@@ -213438,6 +213447,7 @@ const systemToolsCommon = (toolsDts) => `- Use \`console.log\` to print any outp
213438
213447
  - AVOID passing scripts into the "bash" function, and instead write javascript.
213439
213448
  - PREFER the "search" function over "rg" for finding information or code
213440
213449
  - Variables **are not shared** between executions, so you must include all necessary code in each script you execute.
213450
+ - Make use of the "delegate" tool to delegate exploration and small research tasks. You can delegate multiple tasks in parallel with Promise.all
213441
213451
 
213442
213452
  **When you have fully completed your task**, call the "taskComplete" function with the final output.
213443
213453
  Make sure every detail of the task is done before calling "taskComplete".
@@ -224210,7 +224220,7 @@ const transformToolCallParams = /* @__PURE__ */ fnUntraced(function* (tools, too
224210
224220
  })));
224211
224221
  });
224212
224222
  //#endregion
224213
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/CodexAuth.js
224223
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/CodexAuth.js
224214
224224
  /**
224215
224225
  * @since 1.0.0
224216
224226
  */
@@ -224430,7 +224440,7 @@ var CodexAuth = class CodexAuth extends Service$1()("clanka/CodexAuth") {
224430
224440
  static layerClient = this.layerClientNoDeps.pipe(provide$3(CodexAuth.layer));
224431
224441
  };
224432
224442
  //#endregion
224433
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/Codex.js
224443
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/Codex.js
224434
224444
  /**
224435
224445
  * @since 1.0.0
224436
224446
  */
@@ -225749,7 +225759,7 @@ const getUsageDetailNumber = (details, field) => {
225749
225759
  return typeof value === "number" ? value : void 0;
225750
225760
  };
225751
225761
  //#endregion
225752
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/CopilotAuth.js
225762
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/CopilotAuth.js
225753
225763
  /**
225754
225764
  * @since 1.0.0
225755
225765
  */
@@ -225940,7 +225950,7 @@ var GithubCopilotAuth = class GithubCopilotAuth extends Service$1()("clanka/Gith
225940
225950
  static layerClient = this.layerClientNoDeps.pipe(provide$3(GithubCopilotAuth.layer));
225941
225951
  };
225942
225952
  //#endregion
225943
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/Copilot.js
225953
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/Copilot.js
225944
225954
  /**
225945
225955
  * @since 1.0.0
225946
225956
  */
@@ -226363,7 +226373,7 @@ Object.defineProperties(createChalk.prototype, styles);
226363
226373
  const chalk = createChalk();
226364
226374
  createChalk({ level: stderrColor ? stderrColor.level : 0 });
226365
226375
  //#endregion
226366
- //#region node_modules/.pnpm/clanka@0.1.6_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_cae532987cdce13afd63ca353813c5cc/node_modules/clanka/dist/OutputFormatter.js
226376
+ //#region node_modules/.pnpm/clanka@0.1.8_@effect+ai-openai-compat@4.0.0-beta.31_effect@4.0.0-beta.31__@effect+ai-op_c1c0d9126463b1cd141896b41f79abdf/node_modules/clanka/dist/OutputFormatter.js
226367
226377
  /**
226368
226378
  * @since 1.0.0
226369
226379
  */
@@ -235347,16 +235357,9 @@ const commandRoot = make$49("lalph", {
235347
235357
  layer$26
235348
235358
  ]))));
235349
235359
  const watchTaskState = fnUntraced(function* (options) {
235350
- const registry = yield* AtomRegistry;
235351
- const projectId = yield* CurrentProjectId;
235352
- yield* sleep(seconds(10));
235353
- return yield* toStreamResult(registry, currentIssuesAtom(projectId)).pipe(runForEach((issues) => {
235360
+ return yield* toStreamResult(yield* AtomRegistry, currentIssuesAtom(yield* CurrentProjectId)).pipe(retry$1(forever$1), orDie, debounce(seconds(10)), runForEach((issues) => {
235354
235361
  const issue = issues.find((entry) => entry.id === options.issueId);
235355
- if (!issue) return fail$6(new TaskStateChanged({
235356
- issueId: options.issueId,
235357
- state: "missing"
235358
- }));
235359
- if (issue.state === "in-progress" || issue.state === "in-review") return void_$1;
235362
+ if (!issue || issue.state === "in-progress" || issue.state === "in-review") return void_$1;
235360
235363
  return fail$6(new TaskStateChanged({
235361
235364
  issueId: options.issueId,
235362
235365
  state: issue.state
@@ -235364,7 +235367,7 @@ const watchTaskState = fnUntraced(function* (options) {
235364
235367
  }), withSpan("Main.watchTaskState"));
235365
235368
  });
235366
235369
  const taskUpdateSteer = fnUntraced(function* (options) {
235367
- return toStreamResult(yield* AtomRegistry, currentIssuesAtom(yield* CurrentProjectId)).pipe(drop(1), retry$1(forever$1), orDie, filterMap$2((issues) => {
235370
+ return toStreamResult(yield* AtomRegistry, currentIssuesAtom(yield* CurrentProjectId)).pipe(drop(1), retry$1(forever$1), orDie, debounce(seconds(10)), filterMap$2((issues) => {
235368
235371
  const issue = issues.find((entry) => entry.id === options.issueId);
235369
235372
  if (!issue) return failVoid;
235370
235373
  if (!issue.isChangedComparedTo(options.current.current)) return failVoid;
@@ -235647,7 +235650,7 @@ const commandEdit = make$49("edit").pipe(withDescription("Open the selected proj
235647
235650
  const commandSource = make$49("source").pipe(withDescription("Select the issue source to use (e.g. GitHub Issues or Linear). This applies to all projects."), withHandler(() => selectIssueSource), provide(Settings.layer));
235648
235651
  //#endregion
235649
235652
  //#region package.json
235650
- var version = "0.3.59";
235653
+ var version = "0.3.61";
235651
235654
  //#endregion
235652
235655
  //#region src/commands/projects/ls.ts
235653
235656
  const commandProjectsLs = make$49("ls").pipe(withDescription("List configured projects and how they run (enabled state, concurrency, branch, git flow, review agent)."), withHandler(fnUntraced(function* () {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "lalph",
3
3
  "type": "module",
4
- "version": "0.3.59",
4
+ "version": "0.3.61",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -30,7 +30,7 @@
30
30
  "@octokit/plugin-rest-endpoint-methods": "^17.0.0",
31
31
  "@octokit/types": "^16.0.0",
32
32
  "@typescript/native-preview": "7.0.0-dev.20260313.1",
33
- "clanka": "^0.1.6",
33
+ "clanka": "^0.1.8",
34
34
  "concurrently": "^9.2.1",
35
35
  "effect": "4.0.0-beta.31",
36
36
  "husky": "^9.1.7",
@@ -513,23 +513,20 @@ const watchTaskState = Effect.fnUntraced(function* (options: {
513
513
  const registry = yield* AtomRegistry.AtomRegistry
514
514
  const projectId = yield* CurrentProjectId
515
515
 
516
- yield* Effect.sleep(Duration.seconds(10))
517
-
518
516
  return yield* AtomRegistry.toStreamResult(
519
517
  registry,
520
518
  currentIssuesAtom(projectId),
521
519
  ).pipe(
520
+ Stream.retry(Schedule.forever),
521
+ Stream.orDie,
522
+ Stream.debounce(Duration.seconds(10)),
522
523
  Stream.runForEach((issues) => {
523
524
  const issue = issues.find((entry) => entry.id === options.issueId)
524
- if (!issue) {
525
- return Effect.fail(
526
- new TaskStateChanged({
527
- issueId: options.issueId,
528
- state: "missing",
529
- }),
530
- )
531
- }
532
- if (issue.state === "in-progress" || issue.state === "in-review") {
525
+ if (
526
+ !issue ||
527
+ issue.state === "in-progress" ||
528
+ issue.state === "in-review"
529
+ ) {
533
530
  return Effect.void
534
531
  }
535
532
  return Effect.fail(
@@ -557,6 +554,7 @@ const taskUpdateSteer = Effect.fnUntraced(function* (options: {
557
554
  Stream.drop(1),
558
555
  Stream.retry(Schedule.forever),
559
556
  Stream.orDie,
557
+ Stream.debounce(Duration.seconds(10)),
560
558
  Stream.filterMap((issues) => {
561
559
  const issue = issues.find((entry) => entry.id === options.issueId)
562
560
  if (!issue) return Result.failVoid