@hasna/loops 0.4.22 → 0.4.23

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/api/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@hasna/loops",
6
- version: "0.4.22",
6
+ version: "0.4.23",
7
7
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
8
8
  type: "module",
9
9
  main: "dist/index.js",
package/dist/cli/index.js CHANGED
@@ -4972,7 +4972,7 @@ class Store {
4972
4972
  // package.json
4973
4973
  var package_default = {
4974
4974
  name: "@hasna/loops",
4975
- version: "0.4.22",
4975
+ version: "0.4.23",
4976
4976
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
4977
4977
  type: "module",
4978
4978
  main: "dist/index.js",
@@ -18277,11 +18277,14 @@ routePolicies.command("validate [id]").description("validate one named route pol
18277
18277
  print(value, `valid route policies: ${value.policies.map((policy) => policy.id).join(",")}`);
18278
18278
  }));
18279
18279
  async function handleRouteEvent(kind, opts) {
18280
+ if (!opts.dryRun)
18281
+ assertLocalOnlyCommand("routes create");
18280
18282
  const event = await readEventEnvelopeInput(opts);
18281
18283
  const result = routeEventByKind(kind, event, opts);
18282
18284
  print(result.value, result.human);
18283
18285
  }
18284
18286
  function handleRouteDrain(kind, opts) {
18287
+ assertLocalOnlyCommand("routes drain");
18285
18288
  if (kind !== "todos-task")
18286
18289
  throw new ValidationError("route drain currently supports kind todos-task");
18287
18290
  const expandedOpts = applyRoutePolicyToDrainOptions(opts, { requireExplicitSafety: true });
@@ -18726,6 +18729,7 @@ program.command("list").alias("ls").description("list loops with schedule and ne
18726
18729
  }
18727
18730
  }));
18728
18731
  program.command("ui").description("open a live table of active loops").option("--refresh <duration>", "refresh interval", "2s").action(runAction(async (opts) => {
18732
+ assertLocalOnlyCommand("ui");
18729
18733
  if (!process.stdin.isTTY || !process.stdout.isTTY) {
18730
18734
  console.error("OpenLoops UI requires a TTY terminal.");
18731
18735
  console.error("Use `loops list`, `loops runs`, or `loops daemon status` non-interactively.");
@@ -8934,7 +8934,7 @@ function enableStartup(result) {
8934
8934
  // package.json
8935
8935
  var package_default = {
8936
8936
  name: "@hasna/loops",
8937
- version: "0.4.22",
8937
+ version: "0.4.23",
8938
8938
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
8939
8939
  type: "module",
8940
8940
  main: "dist/index.js",
package/dist/index.js CHANGED
@@ -4970,7 +4970,7 @@ class Store {
4970
4970
  // package.json
4971
4971
  var package_default = {
4972
4972
  name: "@hasna/loops",
4973
- version: "0.4.22",
4973
+ version: "0.4.23",
4974
4974
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
4975
4975
  type: "module",
4976
4976
  main: "dist/index.js",
package/dist/lib/mode.js CHANGED
@@ -2,7 +2,7 @@
2
2
  // package.json
3
3
  var package_default = {
4
4
  name: "@hasna/loops",
5
- version: "0.4.22",
5
+ version: "0.4.23",
6
6
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
7
7
  type: "module",
8
8
  main: "dist/index.js",
package/dist/mcp/index.js CHANGED
@@ -4972,7 +4972,7 @@ class Store {
4972
4972
  // package.json
4973
4973
  var package_default = {
4974
4974
  name: "@hasna/loops",
4975
- version: "0.4.22",
4975
+ version: "0.4.23",
4976
4976
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
4977
4977
  type: "module",
4978
4978
  main: "dist/index.js",
@@ -3,7 +3,7 @@
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@hasna/loops",
6
- version: "0.4.22",
6
+ version: "0.4.23",
7
7
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
8
8
  type: "module",
9
9
  main: "dist/index.js",
package/dist/sdk/index.js CHANGED
@@ -4970,7 +4970,7 @@ class Store {
4970
4970
  // package.json
4971
4971
  var package_default = {
4972
4972
  name: "@hasna/loops",
4973
- version: "0.4.22",
4973
+ version: "0.4.23",
4974
4974
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
4975
4975
  type: "module",
4976
4976
  main: "dist/index.js",
@@ -4972,7 +4972,7 @@ class Store {
4972
4972
  // package.json
4973
4973
  var package_default = {
4974
4974
  name: "@hasna/loops",
4975
- version: "0.4.22",
4975
+ version: "0.4.23",
4976
4976
  description: "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
4977
4977
  type: "module",
4978
4978
  main: "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/loops",
3
- "version": "0.4.22",
3
+ "version": "0.4.23",
4
4
  "description": "Persistent local loop and workflow runner for deterministic commands and headless AI coding agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",