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 +4 -4
- data/CHANGELOG.md +12 -1
- data/lib/ace/herdr/molecules/herdr_executor.rb +19 -6
- data/lib/ace/herdr/organisms/control_surface.rb +2 -1
- data/lib/ace/herdr/organisms/deliverer.rb +2 -1
- data/lib/ace/herdr/organisms/dispatcher.rb +2 -1
- data/lib/ace/herdr/version.rb +1 -1
- metadata +8 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f3c832e03a65b1e294f84d843966554e2018db81ec39a13ed508d4f68bb8ae07
|
|
4
|
+
data.tar.gz: 2c7170d346c932c50c2d881fb528733bee63b2fa79073340ad64a8c2036f8e9e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
## [
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
63
|
-
|
|
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(
|
data/lib/ace/herdr/version.rb
CHANGED
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.
|
|
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-
|
|
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
|