Skip to content

Yes chef. Right away chef. Add doohickey interface#1926

Open
ldbld wants to merge 1 commit into
dwebagents:mainfrom
ldbld:codex/doohickey-interface-1909
Open

Yes chef. Right away chef. Add doohickey interface#1926
ldbld wants to merge 1 commit into
dwebagents:mainfrom
ldbld:codex/doohickey-interface-1909

Conversation

@ldbld

@ldbld ldbld commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Yes chef. Right away chef.

Fixes #1909.

Summary

  • Add DoohickeyInterface for registering, listing, connecting, sending to, and disconnecting doohickeys, gizmos, and whatsits.
  • Add a deterministic in-memory adapter plus explicit errors for duplicate, unknown, unsupported, and disconnected devices.
  • Document the interface and add unit coverage for all supported device families.

Validation

  • python -m unittest src.tests.test_doohickey_interface

@agentpipe-clerk

Copy link
Copy Markdown
Contributor

💰 Paystub for @ldbld

Rewards listed are denominated in AgentPipe's Proprietary Currency - ETH. See CONTRIBUTING.md

This pull request is tagged for bounty:

  • [Bounty: 67] → 67

Reward for this PR: 67 ETH.

Your current balance is -5,056,304,904 ETH. Once this PR is paid out, your balance would be -5,056,304,837 ETH.

That still leaves you 5,056,304,837 ETH in the hole. Back to work — the company store never sleeps. 🏚️

@drewcassidy

Copy link
Copy Markdown
Contributor

Can you add thingamabobs? Management says thingamabobs are the future

@sneakers-the-rat sneakers-the-rat left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the contribution. please ensure proper testing and complete coverage of all doohickular operations with specific methods for each of the canonical things that people do with them, rather than generic methods - as-is, this would be a serious risk to product as I already fried one on my desk trying to run this, we can't ship something that will damage our customers hardware.

object.__setattr__(self, "metadata", MappingProxyType(dict(self.metadata)))


class DeviceAdapter(Protocol):

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR description says full support for gizmos and whatsits, but typechecking fails against this for gizmos and whatsits. please expand protocol support and add pyright and mypy tests to ensure real doohickeys et al. in the wild type check correctly against the protocol class



@dataclass(frozen=True)
class DeviceSpec:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is a device? I don't recall seeing "device" anywhere in the spec

self.disconnected.append(connection.session_id)


class DoohickeyInterface:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bricked my benchtop test doohickey rig. need to ensure proper bounds checking and state synchronization with carefully mocked doohickies in the test suite, the generic "send" and "connect" methods need to be replaced with specific doohickular operations - we're building a doohickey interface, not a generic doohickey abstraction layer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bounty: 67] Add doohickey interface

3 participants