feat(host): startAgentDevice() for embedder-owned daemons
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 15/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- nodejs, typescript
Rechercherichtung
This is design work blocked by #3753, #3754 and #3755, so start by reading those and ADR 0027 and 0030 rather than writing code. The relevant entry points are the agent-device/host subpath boundary in scripts/layering/daemon-client-entry.ts, registration tokens in packages/daemon-contracts/src/daemon-registration-owner.ts, and PID matching in packages/daemon-contracts/src/daemon-process.ts. Done means the integration tests and packaged-export smoke test listed in the issue pass.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Part of #3747. Blocked by #3753, #3754, #3755.
Required behavior
import { startAgentDevice } from 'agent-device/host';
import testmu from '@agent-device/testmu';
await using host = await startAgentDevice({
stateDir,
host?: HostEnvironment, // defaults to a captured copy of the calling process
plugins: [testmu({ credentials })],
log?: (entry: LogEntry) => void, // silent by default
});
host.client // AgentDeviceClient
host.clientConfig // serializable; daemonLifecycle: 'attach'; pinned to this daemon's token and instance
await host.close() // ShutdownReport (#3752); also Symbol.asyncDispose
- Subpath. It's exported from a new
agent-device/hostsubpath, not the root, to respect the eager-closure budgets (ADR 0027) and R78 (scripts/layering/daemon-client-entry.ts:16). - Listener. The daemon runs in the calling process with a listener, so other processes can attach using
clientConfig. Several hosts may share one process. - Plugins.
pluginsis the complete embedder set: store plugins are not merged. Built-ins still load. - Registration. It uses the ADR 0030 acquisition tokens (
packages/daemon-contracts/src/daemon-registration-owner.ts:71). A state dir with a live registered daemon is refused (details.reason: 'state-dir-in-use'). - Embedded ownership is recorded, so managed recovery and
ensureDaemonnever signal the host's PID. Pinned clients refuse a replaced daemon. - Stopping.
agent-device daemon stop --state-dirstops an embedded daemon through an authenticated shutdown request. It awaits the removed registration and the report, not a process exit. This replaces PID command matching (packages/daemon-contracts/src/daemon-process.ts:11) for embedded daemons.
Done when
- An integration test covers:
- an embedder fixture plugin;
- attach clients from a second process;
- two hosts in one process;
- the
close()report; daemon stopagainst an embedded daemon.
- A packaged-export smoke test for
agent-device/hostpasses. - The client API and website docs are updated, and the skill's routing notes cover hosting if startup guidance changes.
- There's a changeset.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5k
- Forks
- 334
- Ø Merge
- 12 Std. 2 Min.
- Gemergte PRs (30 T.)
- 678
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus callstack/agent-device
-
`devices` reports a phantom Android emulator named after the emulator's crashdata INFO bannerEvtl. vergeben @airowe hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
callstack/agent-device#3716 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
callstack/agent-device#1869 ·
Maintainer antworten meist innerhalb von 1 Tag
-
backlog refactor
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 8/100
callstack/agent-device#3759 ·
Maintainer antworten meist innerhalb von 1 Tag
-
backlog enhancement needs-triage
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 8/100
callstack/agent-device#3758 ·
Maintainer antworten meist innerhalb von 1 Tag
-
feat(provider-testmu): publish @agent-device/testmu on plugin contract v2Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenenhancement ready-for-agent
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
callstack/agent-device#3756 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in callstack/agent-device
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Chocobozzz/PeerTube#7832 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Pay to use?Offen
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 66/100
darkreader/darkreader#16108 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Add: Dak Nong TV SDOffencheck:passed streams:add
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
Maintainer antworten meist innerhalb von 1 Tag
-
bug engine
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
frostney/GocciaScript#1746 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
agilepathway/label-checker#739 · 4 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag