ace-herdr 0.8.0 → 0.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 834ebff9d2c1a854b060e5a5cba406efd05975f6f9029f8dcc09a98219e06f2a
4
- data.tar.gz: 2982b7314cf2afda59ed79485f5141dbd7b83a0860f9fd24f93705da5c1cfa8d
3
+ metadata.gz: f3c832e03a65b1e294f84d843966554e2018db81ec39a13ed508d4f68bb8ae07
4
+ data.tar.gz: 2c7170d346c932c50c2d881fb528733bee63b2fa79073340ad64a8c2036f8e9e
5
5
  SHA512:
6
- metadata.gz: b0a88945a44f495fd8c2da2ccee8ec6bf6dd7f6e39c4c8626983c13ad557ad1316e27bb9d60822d9c124d106c3ad8d57b7beb66decbb1368d7368c6432b67a71
7
- data.tar.gz: eb3baa9a982cba3250359c380af8112b79ba373d82c5204b6e93269f7efd1f12531381a5559322f3c46e9cb3c0c9d35081f13959867cd53e4a77e512290213ab
6
+ metadata.gz: c9c513a7de5c8224c73e597f133b70ed6a99aa70f70292d7c1774b789ac3a2b570f5452f19e35cbd780c29fb392edd683da46ddf2a3256035bd911bc16533cbd
7
+ data.tar.gz: 071d1908f3bd701b9b516d5d7100f68a830b7eb2cd153129660c66afb08730e2f135127daf68326186479c93e6a58d4de294361293f07d561fb156aa6d19881a
data/CHANGELOG.md CHANGED
@@ -5,7 +5,18 @@ All notable changes to `ace-herdr` will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [Unreleased]
8
+ ## [0.9.0] - 2026-10-30
9
+
10
+ ### Changed
11
+
12
+ - `HerdrExecutor#agent_start` accepts harness passthrough `args:` forwarded
13
+ after `--` (model/thinking/standing-instruction flags), used by
14
+ `ace-overseer start` (8xs.t.pu0.1).
15
+
16
+ ## [0.8.1] - 2026-10-20
17
+
18
+ ### Fixed
19
+ - Honor `ACE_TOOLCHAIN=installed` for published-gem execution and context propagation without source-runtime fallback; retain default auto development behavior.
9
20
 
10
21
 
11
22
  ## [0.8.0] - 2026-10-20
@@ -52,15 +52,28 @@ module Ace
52
52
 
53
53
  # Start an agent in a pane at an interactive shell prompt.
54
54
  # Success means the agent was detected and is ready for input.
55
- def agent_start(name:, kind:, pane:, timeout_ms:)
56
- run!([@binary, "agent", "start", name, "--kind", kind,
57
- "--pane", pane, "--timeout", timeout_ms.to_s])
55
+ # `args` are harness passthrough arguments forwarded verbatim
56
+ # after `--` (e.g. pi's --model/--thinking/--append-system-prompt;
57
+ # the overseer start contract, 8xs.t.pu0.1).
58
+ def agent_start(name:, kind:, pane:, timeout_ms:, args: [])
59
+ cmd = [@binary, "agent", "start", name, "--kind", kind,
60
+ "--pane", pane, "--timeout", timeout_ms.to_s]
61
+ cmd += ["--", *args] unless args.empty?
62
+ run!(cmd)
58
63
  end
59
64
 
60
65
  # Submit a prompt to the agent in a pane (push delivery). herdr
61
- # rejects blocked agents pre-send with agent_blocked.
62
- def agent_prompt(pane:, text:)
63
- run!([@binary, "agent", "prompt", pane, text])
66
+ # rejects blocked agents pre-send with agent_blocked. With
67
+ # wait: herdr's activity gate applies — a prompt sent from a
68
+ # non-working state must produce observed working/blocked
69
+ # activity, so success confirms the turn actually began
70
+ # (agent_prompt_stalled / timeout otherwise; timeout_ms bounds
71
+ # the wait).
72
+ def agent_prompt(pane:, text:, wait: false, timeout_ms: nil)
73
+ cmd = [@binary, "agent", "prompt", pane, text]
74
+ cmd += ["--wait"] if wait
75
+ cmd += ["--timeout", timeout_ms.to_s] if timeout_ms
76
+ run!(cmd)
64
77
  end
65
78
 
66
79
  # A bounded, payload-free wake. The child deadline is managed by
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "shellwords"
4
+ require "ace/support/cli/toolchain"
4
5
 
5
6
  module Ace
6
7
  module Herdr
@@ -364,7 +365,7 @@ module Ace
364
365
  name = agent["name"] || pane[:spec]["label"] || "agent"
365
366
  @executor.pane_run(
366
367
  pane_id,
367
- "export HERDR_SESSION=#{Shellwords.escape(workspace_id.to_s)} " \
368
+ Ace::Support::Cli::Toolchain.shell_setup + "export HERDR_SESSION=#{Shellwords.escape(workspace_id.to_s)} " \
368
369
  "HERDR_PANE=#{Shellwords.escape(pane_id)}"
369
370
  )
370
371
  @executor.agent_start(
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "shellwords"
4
+ require "ace/support/cli/toolchain"
4
5
  require "time"
5
6
  require "ace/hitl/contract"
6
7
 
@@ -179,7 +180,7 @@ module Ace
179
180
  # delivery; otherwise the record to prompt. Bootstrap failures are
180
181
  # terminal: an immediate retry cannot heal a broken pane.
181
182
  def bootstrap_and_wait(ref, record, kind, label)
182
- export = "export HERDR_SESSION=#{Shellwords.escape(ref.session)} " \
183
+ export = Ace::Support::Cli::Toolchain.shell_setup + "export HERDR_SESSION=#{Shellwords.escape(ref.session)} " \
183
184
  "HERDR_PANE=#{Shellwords.escape(ref.pane)}"
184
185
  begin
185
186
  @executor.pane_run(ref.pane, export)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "shellwords"
4
+ require "ace/support/cli/toolchain"
4
5
  require "ace/hitl/contract"
5
6
 
6
7
  module Ace
@@ -54,7 +55,7 @@ module Ace
54
55
 
55
56
  @executor.pane_run(
56
57
  pane,
57
- "export HERDR_SESSION=#{Shellwords.escape(workspace_id)} " \
58
+ Ace::Support::Cli::Toolchain.shell_setup + "export HERDR_SESSION=#{Shellwords.escape(workspace_id)} " \
58
59
  "HERDR_PANE=#{Shellwords.escape(pane)}"
59
60
  )
60
61
  @executor.agent_start(
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ace
4
4
  module Herdr
5
- VERSION = "0.8.0"
5
+ VERSION = "0.9.0"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-herdr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-10-20 00:00:00.000000000 Z
10
+ date: 2026-10-30 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: websocket-driver
@@ -78,6 +78,9 @@ dependencies:
78
78
  - - "~>"
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0.6'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 0.6.10
81
84
  type: :runtime
82
85
  prerelease: false
83
86
  version_requirements: !ruby/object:Gem::Requirement
@@ -85,6 +88,9 @@ dependencies:
85
88
  - - "~>"
86
89
  - !ruby/object:Gem::Version
87
90
  version: '0.6'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 0.6.10
88
94
  - !ruby/object:Gem::Dependency
89
95
  name: ace-support-core
90
96
  requirement: !ruby/object:Gem::Requirement