feat: receive StarIntel targets in Hackmode actors #204

Open
nsaspy wants to merge 13 commits from chatgpt/201-starintel-target-receivers-20260917 into master
Owner

Implements the StarIntel target-receiver slice of #201 and makes host refresh targets executable.

  • starts a generic hackmode Sento target receiver on Hackmode's existing startup hook
  • derives stable hackmode.<capability>.<provider> receiver names from the capability/provider registry and starts one receiver per registered provider
  • converts canonical StarIntel target payloads into typed Hackmode domain/host/url inputs
  • preserves dataset, target, operation, and server-injected target_execution_id context on typed inputs
  • dispatches through Hackmode's existing capability/provider supervisor path
  • registers receiver refs with STAR.ACTORS:REGISTER-ACTOR when Hackmode is embedded in a StarIntel Server image, without adding a hard server dependency
  • adds bounded service-enumerate/nmap as a real host provider (-Pn -sV --version-light, 120s host timeout, no NSE scripts), preserving CPEs in service-observation findings
  • keeps dispatch/runners injectable for deterministic tests
  • adds target routing/conversion and Nmap parser/provider regression coverage

This reuses StarIntel Server's existing local target router, target scheduler, and execution metadata. No second scheduler, registry, or persistence authority is introduced.

Standalone remote self-registration is intentionally not routed through Hackmode's existing HTTP outbox because that outbox still targets the deprecated /new/document/<dtype> endpoint. #201 requires the canonical actor/service registry + replay contract; that remains the next slice rather than reviving a legacy route.

CI on current heads: monorepo and agent-framework-boundary pass. common-lisp-core is blocked before compilation because the workflow's pinned nsaspy/tek9 checkout returns repository-not-found; the same infrastructure failure reproduced after the Nmap changes, so no Common Lisp green claim is made.

Implements the StarIntel target-receiver slice of #201 and makes host refresh targets executable. - starts a generic `hackmode` Sento target receiver on Hackmode's existing startup hook - derives stable `hackmode.<capability>.<provider>` receiver names from the capability/provider registry and starts one receiver per registered provider - converts canonical StarIntel target payloads into typed Hackmode domain/host/url inputs - preserves dataset, target, operation, and server-injected `target_execution_id` context on typed inputs - dispatches through Hackmode's existing capability/provider supervisor path - registers receiver refs with `STAR.ACTORS:REGISTER-ACTOR` when Hackmode is embedded in a StarIntel Server image, without adding a hard server dependency - adds bounded `service-enumerate/nmap` as a real host provider (`-Pn -sV --version-light`, 120s host timeout, no NSE scripts), preserving CPEs in service-observation findings - keeps dispatch/runners injectable for deterministic tests - adds target routing/conversion and Nmap parser/provider regression coverage This reuses StarIntel Server's existing local target router, target scheduler, and execution metadata. No second scheduler, registry, or persistence authority is introduced. Standalone remote self-registration is intentionally not routed through Hackmode's existing HTTP outbox because that outbox still targets the deprecated `/new/document/<dtype>` endpoint. #201 requires the canonical actor/service registry + replay contract; that remains the next slice rather than reviving a legacy route. CI on current heads: `monorepo` and `agent-framework-boundary` pass. `common-lisp-core` is blocked before compilation because the workflow's pinned `nsaspy/tek9` checkout returns repository-not-found; the same infrastructure failure reproduced after the Nmap changes, so no Common Lisp green claim is made.
Some checks failed
agent-pr-serialization / one-open-pr-per-agent-lane (pull_request_target) Failing after 2s
agent-framework-boundary / keep-agent-framework-out-of-product-tree (pull_request) Successful in 4s
monorepo / hygiene (pull_request) Successful in 52s
core / common-lisp-core (pull_request) Successful in 3m40s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin chatgpt/201-starintel-target-receivers-20260917:chatgpt/201-starintel-target-receivers-20260917
git switch chatgpt/201-starintel-target-receivers-20260917

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff chatgpt/201-starintel-target-receivers-20260917
git switch chatgpt/201-starintel-target-receivers-20260917
git rebase master
git switch master
git merge --ff-only chatgpt/201-starintel-target-receivers-20260917
git switch chatgpt/201-starintel-target-receivers-20260917
git rebase master
git switch master
git merge --no-ff chatgpt/201-starintel-target-receivers-20260917
git switch master
git merge --squash chatgpt/201-starintel-target-receivers-20260917
git switch master
git merge --ff-only chatgpt/201-starintel-target-receivers-20260917
git switch master
git merge chatgpt/201-starintel-target-receivers-20260917
git push origin master
Sign in to join this conversation.
No description provided.