@sentropic/h2a-cli 0.75.0 → 0.79.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.
- package/dist/index.d.ts +1 -37
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -41
- package/dist/index.js.map +1 -1
- package/package.json +4 -15
- package/dist/bin.d.ts +0 -3
- package/dist/bin.d.ts.map +0 -1
- package/dist/bin.js +0 -83
- package/dist/bin.js.map +0 -1
- package/dist/cli-contract.d.ts +0 -62
- package/dist/cli-contract.d.ts.map +0 -1
- package/dist/cli-contract.js +0 -794
- package/dist/cli-contract.js.map +0 -1
- package/dist/cli.d.ts +0 -254
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -4672
- package/dist/cli.js.map +0 -1
- package/dist/hosts/agy.d.ts +0 -14
- package/dist/hosts/agy.d.ts.map +0 -1
- package/dist/hosts/agy.js +0 -47
- package/dist/hosts/agy.js.map +0 -1
- package/dist/hosts/claude.d.ts +0 -12
- package/dist/hosts/claude.d.ts.map +0 -1
- package/dist/hosts/claude.js +0 -46
- package/dist/hosts/claude.js.map +0 -1
- package/dist/hosts/codex.d.ts +0 -65
- package/dist/hosts/codex.d.ts.map +0 -1
- package/dist/hosts/codex.js +0 -45
- package/dist/hosts/codex.js.map +0 -1
- package/dist/hosts/gemini.d.ts +0 -12
- package/dist/hosts/gemini.d.ts.map +0 -1
- package/dist/hosts/gemini.js +0 -46
- package/dist/hosts/gemini.js.map +0 -1
- package/dist/hosts/plugin.d.ts +0 -151
- package/dist/hosts/plugin.d.ts.map +0 -1
- package/dist/hosts/plugin.js +0 -188
- package/dist/hosts/plugin.js.map +0 -1
- package/dist/mcp.d.ts +0 -2
- package/dist/mcp.d.ts.map +0 -1
- package/dist/mcp.js +0 -32
- package/dist/mcp.js.map +0 -1
- package/dist/runtime/blockage/index.d.ts +0 -3
- package/dist/runtime/blockage/index.d.ts.map +0 -1
- package/dist/runtime/blockage/index.js +0 -3
- package/dist/runtime/blockage/index.js.map +0 -1
- package/dist/runtime/blockage/notifiers.d.ts +0 -52
- package/dist/runtime/blockage/notifiers.d.ts.map +0 -1
- package/dist/runtime/blockage/notifiers.js +0 -74
- package/dist/runtime/blockage/notifiers.js.map +0 -1
- package/dist/runtime/blockage/registry.d.ts +0 -30
- package/dist/runtime/blockage/registry.d.ts.map +0 -1
- package/dist/runtime/blockage/registry.js +0 -86
- package/dist/runtime/blockage/registry.js.map +0 -1
- package/dist/runtime/deploy/k8s-sidecar.d.ts +0 -92
- package/dist/runtime/deploy/k8s-sidecar.d.ts.map +0 -1
- package/dist/runtime/deploy/k8s-sidecar.js +0 -166
- package/dist/runtime/deploy/k8s-sidecar.js.map +0 -1
- package/dist/runtime/deploy/k8s-tenant.d.ts +0 -86
- package/dist/runtime/deploy/k8s-tenant.d.ts.map +0 -1
- package/dist/runtime/deploy/k8s-tenant.js +0 -255
- package/dist/runtime/deploy/k8s-tenant.js.map +0 -1
- package/dist/runtime/drive/inbox-wake.d.ts +0 -36
- package/dist/runtime/drive/inbox-wake.d.ts.map +0 -1
- package/dist/runtime/drive/inbox-wake.js +0 -50
- package/dist/runtime/drive/inbox-wake.js.map +0 -1
- package/dist/runtime/drive/index.d.ts +0 -173
- package/dist/runtime/drive/index.d.ts.map +0 -1
- package/dist/runtime/drive/index.js +0 -503
- package/dist/runtime/drive/index.js.map +0 -1
- package/dist/runtime/drumbeat/deciders.d.ts +0 -32
- package/dist/runtime/drumbeat/deciders.d.ts.map +0 -1
- package/dist/runtime/drumbeat/deciders.js +0 -65
- package/dist/runtime/drumbeat/deciders.js.map +0 -1
- package/dist/runtime/drumbeat/decisions.d.ts +0 -19
- package/dist/runtime/drumbeat/decisions.d.ts.map +0 -1
- package/dist/runtime/drumbeat/decisions.js +0 -34
- package/dist/runtime/drumbeat/decisions.js.map +0 -1
- package/dist/runtime/drumbeat/inbox-relance.d.ts +0 -29
- package/dist/runtime/drumbeat/inbox-relance.d.ts.map +0 -1
- package/dist/runtime/drumbeat/inbox-relance.js +0 -101
- package/dist/runtime/drumbeat/inbox-relance.js.map +0 -1
- package/dist/runtime/drumbeat/index.d.ts +0 -8
- package/dist/runtime/drumbeat/index.d.ts.map +0 -1
- package/dist/runtime/drumbeat/index.js +0 -8
- package/dist/runtime/drumbeat/index.js.map +0 -1
- package/dist/runtime/drumbeat/registry.d.ts +0 -60
- package/dist/runtime/drumbeat/registry.d.ts.map +0 -1
- package/dist/runtime/drumbeat/registry.js +0 -115
- package/dist/runtime/drumbeat/registry.js.map +0 -1
- package/dist/runtime/drumbeat/relaunchers.d.ts +0 -111
- package/dist/runtime/drumbeat/relaunchers.d.ts.map +0 -1
- package/dist/runtime/drumbeat/relaunchers.js +0 -260
- package/dist/runtime/drumbeat/relaunchers.js.map +0 -1
- package/dist/runtime/drumbeat/scan.d.ts +0 -36
- package/dist/runtime/drumbeat/scan.d.ts.map +0 -1
- package/dist/runtime/drumbeat/scan.js +0 -41
- package/dist/runtime/drumbeat/scan.js.map +0 -1
- package/dist/runtime/drumbeat/watch.d.ts +0 -74
- package/dist/runtime/drumbeat/watch.d.ts.map +0 -1
- package/dist/runtime/drumbeat/watch.js +0 -216
- package/dist/runtime/drumbeat/watch.js.map +0 -1
- package/dist/runtime/escalation/index.d.ts +0 -2
- package/dist/runtime/escalation/index.d.ts.map +0 -1
- package/dist/runtime/escalation/index.js +0 -2
- package/dist/runtime/escalation/index.js.map +0 -1
- package/dist/runtime/escalation/registry.d.ts +0 -44
- package/dist/runtime/escalation/registry.d.ts.map +0 -1
- package/dist/runtime/escalation/registry.js +0 -79
- package/dist/runtime/escalation/registry.js.map +0 -1
- package/dist/runtime/governance/claims.d.ts +0 -43
- package/dist/runtime/governance/claims.d.ts.map +0 -1
- package/dist/runtime/governance/claims.js +0 -93
- package/dist/runtime/governance/claims.js.map +0 -1
- package/dist/runtime/governance/conductor.d.ts +0 -79
- package/dist/runtime/governance/conductor.d.ts.map +0 -1
- package/dist/runtime/governance/conductor.js +0 -106
- package/dist/runtime/governance/conductor.js.map +0 -1
- package/dist/runtime/governance/index.d.ts +0 -5
- package/dist/runtime/governance/index.d.ts.map +0 -1
- package/dist/runtime/governance/index.js +0 -5
- package/dist/runtime/governance/index.js.map +0 -1
- package/dist/runtime/governance/launch-check.d.ts +0 -93
- package/dist/runtime/governance/launch-check.d.ts.map +0 -1
- package/dist/runtime/governance/launch-check.js +0 -113
- package/dist/runtime/governance/launch-check.js.map +0 -1
- package/dist/runtime/governance/spawns.d.ts +0 -50
- package/dist/runtime/governance/spawns.d.ts.map +0 -1
- package/dist/runtime/governance/spawns.js +0 -91
- package/dist/runtime/governance/spawns.js.map +0 -1
- package/dist/runtime/identity/bindings.d.ts +0 -84
- package/dist/runtime/identity/bindings.d.ts.map +0 -1
- package/dist/runtime/identity/bindings.js +0 -112
- package/dist/runtime/identity/bindings.js.map +0 -1
- package/dist/runtime/identity/index.d.ts +0 -11
- package/dist/runtime/identity/index.d.ts.map +0 -1
- package/dist/runtime/identity/index.js +0 -6
- package/dist/runtime/identity/index.js.map +0 -1
- package/dist/runtime/identity/live.d.ts +0 -26
- package/dist/runtime/identity/live.d.ts.map +0 -1
- package/dist/runtime/identity/live.js +0 -232
- package/dist/runtime/identity/live.js.map +0 -1
- package/dist/runtime/identity/migration.d.ts +0 -55
- package/dist/runtime/identity/migration.d.ts.map +0 -1
- package/dist/runtime/identity/migration.js +0 -100
- package/dist/runtime/identity/migration.js.map +0 -1
- package/dist/runtime/identity/readers.d.ts +0 -42
- package/dist/runtime/identity/readers.d.ts.map +0 -1
- package/dist/runtime/identity/readers.js +0 -248
- package/dist/runtime/identity/readers.js.map +0 -1
- package/dist/runtime/identity/resolver.d.ts +0 -50
- package/dist/runtime/identity/resolver.d.ts.map +0 -1
- package/dist/runtime/identity/resolver.js +0 -61
- package/dist/runtime/identity/resolver.js.map +0 -1
- package/dist/runtime/identity/workspace-id.d.ts +0 -43
- package/dist/runtime/identity/workspace-id.d.ts.map +0 -1
- package/dist/runtime/identity/workspace-id.js +0 -138
- package/dist/runtime/identity/workspace-id.js.map +0 -1
- package/dist/runtime/local-files/index.d.ts +0 -8
- package/dist/runtime/local-files/index.d.ts.map +0 -1
- package/dist/runtime/local-files/index.js +0 -8
- package/dist/runtime/local-files/index.js.map +0 -1
- package/dist/runtime/local-files/lease.d.ts +0 -62
- package/dist/runtime/local-files/lease.d.ts.map +0 -1
- package/dist/runtime/local-files/lease.js +0 -249
- package/dist/runtime/local-files/lease.js.map +0 -1
- package/dist/runtime/local-files/locks.d.ts +0 -43
- package/dist/runtime/local-files/locks.d.ts.map +0 -1
- package/dist/runtime/local-files/locks.js +0 -197
- package/dist/runtime/local-files/locks.js.map +0 -1
- package/dist/runtime/local-files/migrate.d.ts +0 -31
- package/dist/runtime/local-files/migrate.d.ts.map +0 -1
- package/dist/runtime/local-files/migrate.js +0 -104
- package/dist/runtime/local-files/migrate.js.map +0 -1
- package/dist/runtime/local-files/paths.d.ts +0 -146
- package/dist/runtime/local-files/paths.d.ts.map +0 -1
- package/dist/runtime/local-files/paths.js +0 -233
- package/dist/runtime/local-files/paths.js.map +0 -1
- package/dist/runtime/local-files/presence.d.ts +0 -80
- package/dist/runtime/local-files/presence.d.ts.map +0 -1
- package/dist/runtime/local-files/presence.js +0 -250
- package/dist/runtime/local-files/presence.js.map +0 -1
- package/dist/runtime/local-files/schema.d.ts +0 -47
- package/dist/runtime/local-files/schema.d.ts.map +0 -1
- package/dist/runtime/local-files/schema.js +0 -77
- package/dist/runtime/local-files/schema.js.map +0 -1
- package/dist/runtime/local-files/store.d.ts +0 -132
- package/dist/runtime/local-files/store.d.ts.map +0 -1
- package/dist/runtime/local-files/store.js +0 -997
- package/dist/runtime/local-files/store.js.map +0 -1
- package/dist/runtime/loop/index.d.ts +0 -73
- package/dist/runtime/loop/index.d.ts.map +0 -1
- package/dist/runtime/loop/index.js +0 -107
- package/dist/runtime/loop/index.js.map +0 -1
- package/dist/runtime/mcp/handlers.d.ts +0 -196
- package/dist/runtime/mcp/handlers.d.ts.map +0 -1
- package/dist/runtime/mcp/handlers.js +0 -1025
- package/dist/runtime/mcp/handlers.js.map +0 -1
- package/dist/runtime/mcp/index.d.ts +0 -7
- package/dist/runtime/mcp/index.d.ts.map +0 -1
- package/dist/runtime/mcp/index.js +0 -7
- package/dist/runtime/mcp/index.js.map +0 -1
- package/dist/runtime/mcp/notifications.d.ts +0 -47
- package/dist/runtime/mcp/notifications.d.ts.map +0 -1
- package/dist/runtime/mcp/notifications.js +0 -204
- package/dist/runtime/mcp/notifications.js.map +0 -1
- package/dist/runtime/mcp/server.d.ts +0 -45
- package/dist/runtime/mcp/server.d.ts.map +0 -1
- package/dist/runtime/mcp/server.js +0 -94
- package/dist/runtime/mcp/server.js.map +0 -1
- package/dist/runtime/mcp/sessions.d.ts +0 -68
- package/dist/runtime/mcp/sessions.d.ts.map +0 -1
- package/dist/runtime/mcp/sessions.js +0 -152
- package/dist/runtime/mcp/sessions.js.map +0 -1
- package/dist/runtime/mcp/stdio.d.ts +0 -72
- package/dist/runtime/mcp/stdio.d.ts.map +0 -1
- package/dist/runtime/mcp/stdio.js +0 -274
- package/dist/runtime/mcp/stdio.js.map +0 -1
- package/dist/runtime/mcp/tools.d.ts +0 -19
- package/dist/runtime/mcp/tools.d.ts.map +0 -1
- package/dist/runtime/mcp/tools.js +0 -525
- package/dist/runtime/mcp/tools.js.map +0 -1
- package/dist/runtime/mcp-http/app.d.ts +0 -33
- package/dist/runtime/mcp-http/app.d.ts.map +0 -1
- package/dist/runtime/mcp-http/app.js +0 -162
- package/dist/runtime/mcp-http/app.js.map +0 -1
- package/dist/runtime/mcp-http/hosted-mcp-server.d.ts +0 -14
- package/dist/runtime/mcp-http/hosted-mcp-server.d.ts.map +0 -1
- package/dist/runtime/mcp-http/hosted-mcp-server.js +0 -38
- package/dist/runtime/mcp-http/hosted-mcp-server.js.map +0 -1
- package/dist/runtime/mcp-http/index.d.ts +0 -18
- package/dist/runtime/mcp-http/index.d.ts.map +0 -1
- package/dist/runtime/mcp-http/index.js +0 -18
- package/dist/runtime/mcp-http/index.js.map +0 -1
- package/dist/runtime/mcp-http/main.d.ts +0 -2
- package/dist/runtime/mcp-http/main.d.ts.map +0 -1
- package/dist/runtime/mcp-http/main.js +0 -14
- package/dist/runtime/mcp-http/main.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/broker-login.d.ts +0 -50
- package/dist/runtime/mcp-http/oauth/broker-login.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/broker-login.js +0 -41
- package/dist/runtime/mcp-http/oauth/broker-login.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/broker-routes.d.ts +0 -45
- package/dist/runtime/mcp-http/oauth/broker-routes.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/broker-routes.js +0 -54
- package/dist/runtime/mcp-http/oauth/broker-routes.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/config.d.ts +0 -49
- package/dist/runtime/mcp-http/oauth/config.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/config.js +0 -69
- package/dist/runtime/mcp-http/oauth/config.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/crypto.d.ts +0 -14
- package/dist/runtime/mcp-http/oauth/crypto.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/crypto.js +0 -29
- package/dist/runtime/mcp-http/oauth/crypto.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/file-store.d.ts +0 -48
- package/dist/runtime/mcp-http/oauth/file-store.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/file-store.js +0 -101
- package/dist/runtime/mcp-http/oauth/file-store.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/hono-oauth-router.d.ts +0 -5
- package/dist/runtime/mcp-http/oauth/hono-oauth-router.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/hono-oauth-router.js +0 -92
- package/dist/runtime/mcp-http/oauth/hono-oauth-router.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/oidc-rp.d.ts +0 -56
- package/dist/runtime/mcp-http/oauth/oidc-rp.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/oidc-rp.js +0 -63
- package/dist/runtime/mcp-http/oauth/oidc-rp.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/redirect-uri.d.ts +0 -11
- package/dist/runtime/mcp-http/oauth/redirect-uri.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/redirect-uri.js +0 -29
- package/dist/runtime/mcp-http/oauth/redirect-uri.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/single-tenant-provider.d.ts +0 -70
- package/dist/runtime/mcp-http/oauth/single-tenant-provider.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/single-tenant-provider.js +0 -247
- package/dist/runtime/mcp-http/oauth/single-tenant-provider.js.map +0 -1
- package/dist/runtime/mcp-http/oauth/tenancy.d.ts +0 -3
- package/dist/runtime/mcp-http/oauth/tenancy.d.ts.map +0 -1
- package/dist/runtime/mcp-http/oauth/tenancy.js +0 -18
- package/dist/runtime/mcp-http/oauth/tenancy.js.map +0 -1
- package/dist/runtime/mcp-http/readonly-allowlist.d.ts +0 -24
- package/dist/runtime/mcp-http/readonly-allowlist.d.ts.map +0 -1
- package/dist/runtime/mcp-http/readonly-allowlist.js +0 -43
- package/dist/runtime/mcp-http/readonly-allowlist.js.map +0 -1
- package/dist/runtime/mcp-http/serve.d.ts +0 -39
- package/dist/runtime/mcp-http/serve.d.ts.map +0 -1
- package/dist/runtime/mcp-http/serve.js +0 -100
- package/dist/runtime/mcp-http/serve.js.map +0 -1
- package/dist/runtime/mirror/accept.d.ts +0 -57
- package/dist/runtime/mirror/accept.d.ts.map +0 -1
- package/dist/runtime/mirror/accept.js +0 -70
- package/dist/runtime/mirror/accept.js.map +0 -1
- package/dist/runtime/mirror/build.d.ts +0 -44
- package/dist/runtime/mirror/build.d.ts.map +0 -1
- package/dist/runtime/mirror/build.js +0 -37
- package/dist/runtime/mirror/build.js.map +0 -1
- package/dist/runtime/mirror/index.d.ts +0 -9
- package/dist/runtime/mirror/index.d.ts.map +0 -1
- package/dist/runtime/mirror/index.js +0 -9
- package/dist/runtime/mirror/index.js.map +0 -1
- package/dist/runtime/mirror/serve.d.ts +0 -21
- package/dist/runtime/mirror/serve.d.ts.map +0 -1
- package/dist/runtime/mirror/serve.js +0 -141
- package/dist/runtime/mirror/serve.js.map +0 -1
- package/dist/runtime/nhi.d.ts +0 -15
- package/dist/runtime/nhi.d.ts.map +0 -1
- package/dist/runtime/nhi.js +0 -26
- package/dist/runtime/nhi.js.map +0 -1
- package/dist/runtime/remote/accept.d.ts +0 -50
- package/dist/runtime/remote/accept.d.ts.map +0 -1
- package/dist/runtime/remote/accept.js +0 -54
- package/dist/runtime/remote/accept.js.map +0 -1
- package/dist/runtime/remote/client.d.ts +0 -27
- package/dist/runtime/remote/client.d.ts.map +0 -1
- package/dist/runtime/remote/client.js +0 -34
- package/dist/runtime/remote/client.js.map +0 -1
- package/dist/runtime/remote/index.d.ts +0 -5
- package/dist/runtime/remote/index.d.ts.map +0 -1
- package/dist/runtime/remote/index.js +0 -5
- package/dist/runtime/remote/index.js.map +0 -1
- package/dist/runtime/remote/serve.d.ts +0 -27
- package/dist/runtime/remote/serve.d.ts.map +0 -1
- package/dist/runtime/remote/serve.js +0 -26
- package/dist/runtime/remote/serve.js.map +0 -1
- package/dist/runtime/remote/server.d.ts +0 -36
- package/dist/runtime/remote/server.d.ts.map +0 -1
- package/dist/runtime/remote/server.js +0 -100
- package/dist/runtime/remote/server.js.map +0 -1
- package/dist/runtime/sysml/client.d.ts +0 -44
- package/dist/runtime/sysml/client.d.ts.map +0 -1
- package/dist/runtime/sysml/client.js +0 -52
- package/dist/runtime/sysml/client.js.map +0 -1
- package/dist/runtime/sysml/disclosure.d.ts +0 -23
- package/dist/runtime/sysml/disclosure.d.ts.map +0 -1
- package/dist/runtime/sysml/disclosure.js +0 -53
- package/dist/runtime/sysml/disclosure.js.map +0 -1
- package/dist/runtime/sysml/index.d.ts +0 -4
- package/dist/runtime/sysml/index.d.ts.map +0 -1
- package/dist/runtime/sysml/index.js +0 -4
- package/dist/runtime/sysml/index.js.map +0 -1
- package/dist/runtime/sysml/verify.d.ts +0 -32
- package/dist/runtime/sysml/verify.d.ts.map +0 -1
- package/dist/runtime/sysml/verify.js +0 -67
- package/dist/runtime/sysml/verify.js.map +0 -1
- package/dist/runtime/upgrade/index.d.ts +0 -96
- package/dist/runtime/upgrade/index.d.ts.map +0 -1
- package/dist/runtime/upgrade/index.js +0 -185
- package/dist/runtime/upgrade/index.js.map +0 -1
- package/dist/runtime/version/agent-version.d.ts +0 -15
- package/dist/runtime/version/agent-version.d.ts.map +0 -1
- package/dist/runtime/version/agent-version.js +0 -53
- package/dist/runtime/version/agent-version.js.map +0 -1
- package/skills/h2a/SKILL.md +0 -345
package/dist/hosts/codex.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
function buildArgs(baseArgs, root) {
|
|
2
|
-
const out = [...baseArgs];
|
|
3
|
-
if (root) {
|
|
4
|
-
out.push("--root", root);
|
|
5
|
-
}
|
|
6
|
-
return out;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Renders the JSON snippet a user must add to their Codex CLI MCP config
|
|
10
|
-
* to expose the `h2a mcp-serve` JSON-RPC 2.0 server as an MCP backend.
|
|
11
|
-
*
|
|
12
|
-
* Path hint covers the two locations the Codex CLI is known to read,
|
|
13
|
-
* depending on the version: `~/.codex/config.json` (legacy) and
|
|
14
|
-
* `~/.config/codex/mcp.json` (XDG layout).
|
|
15
|
-
*/
|
|
16
|
-
export function renderMcpConfig(options = {}) {
|
|
17
|
-
const command = options.command ?? "h2a";
|
|
18
|
-
const baseArgs = options.args ?? ["mcp-serve"];
|
|
19
|
-
return {
|
|
20
|
-
config: {
|
|
21
|
-
mcpServers: {
|
|
22
|
-
h2a: {
|
|
23
|
-
command,
|
|
24
|
-
args: buildArgs(baseArgs, options.root)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
path: {
|
|
29
|
-
hint: "Codex CLI reads its MCP config from either ~/.codex/config.json " +
|
|
30
|
-
"(legacy) or ~/.config/codex/mcp.json (XDG). Merge the snippet under " +
|
|
31
|
-
"the top-level `mcpServers` key in whichever file your Codex CLI uses.",
|
|
32
|
-
example: "~/.config/codex/mcp.json"
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
export const H2A_CODEX_HOST = {
|
|
37
|
-
packageName: "@sentropic/h2a-cli",
|
|
38
|
-
corePackageName: "@sentropic/h2a",
|
|
39
|
-
host: "codex",
|
|
40
|
-
protocol: "sentropic.h2a",
|
|
41
|
-
wave: 1,
|
|
42
|
-
hostScenarioShipped: true,
|
|
43
|
-
renderMcpConfig
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=codex.js.map
|
package/dist/hosts/codex.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/hosts/codex.ts"],"names":[],"mappings":"AA2BA,SAAS,SAAS,CAChB,QAA2B,EAC3B,IAAwB;IAExB,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,OAAO;oBACP,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;iBACxC;aACF;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EACF,kEAAkE;gBAClE,sEAAsE;gBACtE,uEAAuE;YACzE,OAAO,EAAE,0BAA0B;SACpC;KACF,CAAC;AACJ,CAAC;AAsCD,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,WAAW,EAAE,oBAAoB;IACjC,eAAe,EAAE,gBAAgB;IACjC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,CAAC;IACP,mBAAmB,EAAE,IAAI;IACzB,eAAe;CACP,CAAC"}
|
package/dist/hosts/gemini.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { H2AConfigurableHostDescriptor, McpHostConfigSnippet, RenderMcpConfigOptions } from "./codex.js";
|
|
2
|
-
/**
|
|
3
|
-
* Renders the JSON snippet a user must add to their Gemini CLI MCP config
|
|
4
|
-
* to expose the `h2a mcp-serve` JSON-RPC 2.0 server as an MCP backend.
|
|
5
|
-
*
|
|
6
|
-
* Gemini CLI reads MCP servers from either `~/.gemini/settings.json`
|
|
7
|
-
* (user-global) or a project-local `.gemini/settings.json` at the workspace
|
|
8
|
-
* root. Both are documented in the path hint.
|
|
9
|
-
*/
|
|
10
|
-
export declare function renderMcpConfig(options?: RenderMcpConfigOptions): McpHostConfigSnippet;
|
|
11
|
-
export declare const H2A_GEMINI_HOST: H2AConfigurableHostDescriptor;
|
|
12
|
-
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/hosts/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAapB;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,GAAE,sBAA2B,GACnC,oBAAoB,CAqBtB;AAED,eAAO,MAAM,eAAe,EAAE,6BAQpB,CAAC"}
|
package/dist/hosts/gemini.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
function buildArgs(baseArgs, root) {
|
|
2
|
-
const out = [...baseArgs];
|
|
3
|
-
if (root) {
|
|
4
|
-
out.push("--root", root);
|
|
5
|
-
}
|
|
6
|
-
return out;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Renders the JSON snippet a user must add to their Gemini CLI MCP config
|
|
10
|
-
* to expose the `h2a mcp-serve` JSON-RPC 2.0 server as an MCP backend.
|
|
11
|
-
*
|
|
12
|
-
* Gemini CLI reads MCP servers from either `~/.gemini/settings.json`
|
|
13
|
-
* (user-global) or a project-local `.gemini/settings.json` at the workspace
|
|
14
|
-
* root. Both are documented in the path hint.
|
|
15
|
-
*/
|
|
16
|
-
export function renderMcpConfig(options = {}) {
|
|
17
|
-
const command = options.command ?? "h2a";
|
|
18
|
-
const baseArgs = options.args ?? ["mcp-serve"];
|
|
19
|
-
return {
|
|
20
|
-
config: {
|
|
21
|
-
mcpServers: {
|
|
22
|
-
h2a: {
|
|
23
|
-
command,
|
|
24
|
-
args: buildArgs(baseArgs, options.root)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
path: {
|
|
29
|
-
hint: "Gemini CLI reads its MCP config from either ~/.gemini/settings.json " +
|
|
30
|
-
"(user-global) or a project-local .gemini/settings.json at the " +
|
|
31
|
-
"workspace root. Merge the snippet under the top-level `mcpServers` " +
|
|
32
|
-
"key in whichever file your setup uses.",
|
|
33
|
-
example: "~/.gemini/settings.json"
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
export const H2A_GEMINI_HOST = {
|
|
38
|
-
packageName: "@sentropic/h2a-cli",
|
|
39
|
-
corePackageName: "@sentropic/h2a",
|
|
40
|
-
host: "gemini",
|
|
41
|
-
protocol: "sentropic.h2a",
|
|
42
|
-
wave: 1,
|
|
43
|
-
hostScenarioShipped: true,
|
|
44
|
-
renderMcpConfig
|
|
45
|
-
};
|
|
46
|
-
//# sourceMappingURL=gemini.js.map
|
package/dist/hosts/gemini.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/hosts/gemini.ts"],"names":[],"mappings":"AAMA,SAAS,SAAS,CAChB,QAA2B,EAC3B,IAAwB;IAExB,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC1B,IAAI,IAAI,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO;QACL,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,GAAG,EAAE;oBACH,OAAO;oBACP,IAAI,EAAE,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;iBACxC;aACF;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EACF,sEAAsE;gBACtE,gEAAgE;gBAChE,qEAAqE;gBACrE,wCAAwC;YAC1C,OAAO,EAAE,yBAAyB;SACnC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAkC;IAC5D,WAAW,EAAE,oBAAoB;IACjC,eAAe,EAAE,gBAAgB;IACjC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,eAAe;IACzB,IAAI,EAAE,CAAC;IACP,mBAAmB,EAAE,IAAI;IACzB,eAAe;CACP,CAAC"}
|
package/dist/hosts/plugin.d.ts
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DEC-093 — Drumbeat D6 (slice a): per-host plugin glue. The drumbeat (D2) can
|
|
3
|
-
* only relance a stopped agent if the stop was recorded with a launch context,
|
|
4
|
-
* and the local-tmux relauncher (D3) needs a pane to target — both captured at
|
|
5
|
-
* *stop* time, inside the host's own terminal. h2a cannot write into each
|
|
6
|
-
* host's runtime, so — exactly like `renderMcpConfig` — it RENDERS the per-host
|
|
7
|
-
* lifecycle-hook command + where each host places it.
|
|
8
|
-
*
|
|
9
|
-
* Grounded in `docs/plugin-capability-matrix.md` (primary-source probe of all
|
|
10
|
-
* four CLIs, even-handed): claude settings hooks · gemini `gemini hooks` ·
|
|
11
|
-
* codex app-server / remote-control · agy = plugin import + **poll** (no daemon,
|
|
12
|
-
* the one push gap). No host is privileged; agy is a first-class target here
|
|
13
|
-
* (EVO-0), with a polling fallback instead of push.
|
|
14
|
-
*/
|
|
15
|
-
export type H2AHostPluginMechanism = "claude-settings-hook" | "gemini-hooks" | "codex-app-server" | "agy-plugin-poll";
|
|
16
|
-
export interface H2AHostPluginTarget {
|
|
17
|
-
readonly host: string;
|
|
18
|
-
/** The host's resume invocation — what the D3 relauncher sends to revive it. */
|
|
19
|
-
readonly resumeCommand: string;
|
|
20
|
-
readonly mechanism: H2AHostPluginMechanism;
|
|
21
|
-
/** Where/how to register the stop hook for this host. */
|
|
22
|
-
readonly hint: string;
|
|
23
|
-
/** Whether the host can be push-notified (false ⇒ poll-only, e.g. agy). */
|
|
24
|
-
readonly push: boolean;
|
|
25
|
-
}
|
|
26
|
-
/** The four supported hosts, at parity (codex/claude/gemini/agy). */
|
|
27
|
-
export declare const H2A_HOST_PLUGIN_TARGETS: Readonly<Record<string, H2AHostPluginTarget>>;
|
|
28
|
-
export declare const H2A_HOST_PLUGIN_HOSTS: string[];
|
|
29
|
-
export interface RenderStopHookOptions {
|
|
30
|
-
readonly instance: string;
|
|
31
|
-
readonly root?: string;
|
|
32
|
-
/** workStatus recorded on stop. Default `paused` (an unexpected stop = relance candidate). */
|
|
33
|
-
readonly status?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface H2AStopHookRender {
|
|
36
|
-
readonly host: string;
|
|
37
|
-
readonly mechanism: H2AHostPluginMechanism;
|
|
38
|
-
readonly push: boolean;
|
|
39
|
-
readonly hint: string;
|
|
40
|
-
/** Shell command the stop hook runs — captures the launch context (DEC-085) for D3. */
|
|
41
|
-
readonly record: string;
|
|
42
|
-
/** Pre-action host hook: verifies signed h2a drive prompts before the host acts. */
|
|
43
|
-
readonly receive: string;
|
|
44
|
-
/** Poll-only hosts (agy): the command to discover peers' stalls/blockages. */
|
|
45
|
-
readonly poll?: string;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Render the stop-hook command + placement for a host. The command runs inside
|
|
49
|
-
* the host's terminal on stop, where `$TMUX_PANE` and the tmux session name are
|
|
50
|
-
* available, so the recorded launch context lets D3 send `resumeCommand` back
|
|
51
|
-
* into the captured pane. Returns undefined for an unknown host.
|
|
52
|
-
*/
|
|
53
|
-
export declare function renderStopHook(host: string, options: RenderStopHookOptions): H2AStopHookRender | undefined;
|
|
54
|
-
/** A single Claude-format command hook entry. */
|
|
55
|
-
export interface H2AClaudeCommandHook {
|
|
56
|
-
readonly hooks: ReadonlyArray<{
|
|
57
|
-
readonly type: "command";
|
|
58
|
-
readonly command: string;
|
|
59
|
-
}>;
|
|
60
|
-
}
|
|
61
|
-
/** A single Claude Code `Stop` hook entry (settings.json `hooks.Stop[]`). */
|
|
62
|
-
export type H2AClaudeStopHook = H2AClaudeCommandHook;
|
|
63
|
-
/**
|
|
64
|
-
* DEC-102 (D6 slice b): build the Claude Code `Stop` hook entry that runs the
|
|
65
|
-
* rendered `record` command when a claude session stops — so the drumbeat (D2)
|
|
66
|
-
* gets a stop recorded with launch context (D1) and D3 can relance it. This is
|
|
67
|
-
* the merge fragment for `~/.claude/settings.json` `hooks.Stop`.
|
|
68
|
-
*/
|
|
69
|
-
export declare function claudeStopHookEntry(record: string): H2AClaudeStopHook;
|
|
70
|
-
/**
|
|
71
|
-
* Build the pre-action receive gate hook. The command reads the host hook JSON
|
|
72
|
-
* from stdin, ignores ordinary user prompts, and rejects invalid signed h2a
|
|
73
|
-
* drive prompts before the host processes them.
|
|
74
|
-
*/
|
|
75
|
-
export declare function claudeDriveReceiveHookEntry(receive: string): H2AClaudeCommandHook;
|
|
76
|
-
/** True if a settings.json Stop-hook entry is an h2a drumbeat-record hook. */
|
|
77
|
-
export declare function isH2ARecordHook(entry: unknown): boolean;
|
|
78
|
-
/** True if a Claude-format hook entry is an h2a drive receive gate. */
|
|
79
|
-
export declare function isH2ADriveReceiveHook(entry: unknown): boolean;
|
|
80
|
-
/**
|
|
81
|
-
* DEC-113 (D6 done): codex loads a plugin from a **local marketplace**, not a
|
|
82
|
-
* bare plugin dir (verified live against codex CLI: `codex plugin marketplace
|
|
83
|
-
* add <bare-plugin-dir>` is rejected with "marketplace root does not contain a
|
|
84
|
-
* supported manifest"). A self-installable codex scaffold is therefore a
|
|
85
|
-
* marketplace directory laid out exactly like codex's own `openai-curated`:
|
|
86
|
-
*
|
|
87
|
-
* <dir>/.agents/plugins/marketplace.json — the marketplace manifest
|
|
88
|
-
* <dir>/plugins/<name>/.codex-plugin/plugin.json — the plugin manifest
|
|
89
|
-
* <dir>/plugins/<name>/hooks/hooks.json — the Claude-format Stop hook
|
|
90
|
-
*
|
|
91
|
-
* The marketplace NAME comes from `marketplace.json.name` (codex assigns it on
|
|
92
|
-
* `marketplace add` — confirmed it registered as `h2a-local`), so the trust
|
|
93
|
-
* commands can use a fixed `<name>@<marketplace>` selector — no placeholder.
|
|
94
|
-
*/
|
|
95
|
-
export declare const H2A_CODEX_PLUGIN_NAME = "h2a-drumbeat";
|
|
96
|
-
export declare const H2A_CODEX_MARKETPLACE_NAME = "h2a-local";
|
|
97
|
-
/** POSIX-relative path the plugin manifest's `hooks` key points at. */
|
|
98
|
-
export declare const H2A_CODEX_PLUGIN_HOOKS_REL = "./hooks/hooks.json";
|
|
99
|
-
/** The codex-native plugin manifest (`.codex-plugin/plugin.json`). */
|
|
100
|
-
export interface H2ACodexPluginManifest {
|
|
101
|
-
readonly name: string;
|
|
102
|
-
readonly version: string;
|
|
103
|
-
readonly description: string;
|
|
104
|
-
/** Relative path (POSIX) from the plugin root to the hooks.json. */
|
|
105
|
-
readonly hooks: string;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* One plugin entry in a codex `marketplace.json` (matches codex's curated
|
|
109
|
-
* marketplace: `policy.authentication` ∈ {`ON_INSTALL`,`ON_USE`} — `NONE` is
|
|
110
|
-
* rejected; verified live).
|
|
111
|
-
*/
|
|
112
|
-
export interface H2ACodexMarketplacePluginEntry {
|
|
113
|
-
readonly name: string;
|
|
114
|
-
readonly source: {
|
|
115
|
-
readonly source: "local";
|
|
116
|
-
readonly path: string;
|
|
117
|
-
};
|
|
118
|
-
readonly policy: {
|
|
119
|
-
readonly installation: "AVAILABLE";
|
|
120
|
-
readonly authentication: "ON_INSTALL";
|
|
121
|
-
};
|
|
122
|
-
readonly category: string;
|
|
123
|
-
}
|
|
124
|
-
/** The codex marketplace manifest (`.agents/plugins/marketplace.json`). */
|
|
125
|
-
export interface H2ACodexMarketplaceManifest {
|
|
126
|
-
readonly name: string;
|
|
127
|
-
readonly interface: {
|
|
128
|
-
readonly displayName: string;
|
|
129
|
-
};
|
|
130
|
-
readonly plugins: ReadonlyArray<H2ACodexMarketplacePluginEntry>;
|
|
131
|
-
}
|
|
132
|
-
/** Build the codex-native plugin manifest pointing at the scaffolded hooks.json. */
|
|
133
|
-
export declare function codexPluginManifest(name?: string): H2ACodexPluginManifest;
|
|
134
|
-
/**
|
|
135
|
-
* Build the codex marketplace manifest that lists the scaffolded plugin. The
|
|
136
|
-
* plugin `source.path` is the marketplace-relative `./plugins/<name>` dir.
|
|
137
|
-
*/
|
|
138
|
-
export declare function codexMarketplaceManifest(name?: string, marketplace?: string): H2ACodexMarketplaceManifest;
|
|
139
|
-
/**
|
|
140
|
-
* The trust step a codex user must run to load the freshly-scaffolded plugin.
|
|
141
|
-
* Codex has **no drop-in plugin dir and no hook-trust-bypass flag** in the
|
|
142
|
-
* shipped CLI (probed live: `codex plugin {marketplace add, list, add}`; trust
|
|
143
|
-
* is recorded in `~/.codex/config.toml` as `[plugins."<name>@<mkt>"] enabled =
|
|
144
|
-
* true`). h2a cannot safely pre-write that config, so it scaffolds the
|
|
145
|
-
* marketplace + emits the exact, idempotent two-command trust step (register
|
|
146
|
-
* the local marketplace, then install — codex prompts to enable/trust). No
|
|
147
|
-
* faked install. Verified live: `marketplace add` registers as `<marketplace>`
|
|
148
|
-
* and `plugin list` then shows `<name>@<marketplace>` ready to install.
|
|
149
|
-
*/
|
|
150
|
-
export declare function codexPluginTrustCommands(marketplaceDir: string, name?: string, marketplace?: string): readonly string[];
|
|
151
|
-
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/hosts/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,GACtB,cAAc,GACd,kBAAkB,GAClB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;CACxB;AAED,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA6BjF,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAuC,CAAC;AAE1E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,GAC7B,iBAAiB,GAAG,SAAS,CA0B/B;AAED,iDAAiD;AACjD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvF;AAED,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC;AAErD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAErE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CAEjF;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWvD;AAED,uEAAuE;AACvE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW7D;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,iBAAiB,CAAC;AACpD,eAAO,MAAM,0BAA0B,cAAc,CAAC;AACtD,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAE/D,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAA;KAAE,CAAC;IAC/F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,8BAA8B,CAAC,CAAC;CACjE;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CACjC,IAAI,GAAE,MAA8B,GACnC,sBAAsB,CASxB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,GAAE,MAA8B,EACpC,WAAW,GAAE,MAAmC,GAC/C,2BAA2B,CAa7B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,MAA8B,EACpC,WAAW,GAAE,MAAmC,GAC/C,SAAS,MAAM,EAAE,CASnB"}
|
package/dist/hosts/plugin.js
DELETED
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DEC-093 — Drumbeat D6 (slice a): per-host plugin glue. The drumbeat (D2) can
|
|
3
|
-
* only relance a stopped agent if the stop was recorded with a launch context,
|
|
4
|
-
* and the local-tmux relauncher (D3) needs a pane to target — both captured at
|
|
5
|
-
* *stop* time, inside the host's own terminal. h2a cannot write into each
|
|
6
|
-
* host's runtime, so — exactly like `renderMcpConfig` — it RENDERS the per-host
|
|
7
|
-
* lifecycle-hook command + where each host places it.
|
|
8
|
-
*
|
|
9
|
-
* Grounded in `docs/plugin-capability-matrix.md` (primary-source probe of all
|
|
10
|
-
* four CLIs, even-handed): claude settings hooks · gemini `gemini hooks` ·
|
|
11
|
-
* codex app-server / remote-control · agy = plugin import + **poll** (no daemon,
|
|
12
|
-
* the one push gap). No host is privileged; agy is a first-class target here
|
|
13
|
-
* (EVO-0), with a polling fallback instead of push.
|
|
14
|
-
*/
|
|
15
|
-
/** The four supported hosts, at parity (codex/claude/gemini/agy). */
|
|
16
|
-
export const H2A_HOST_PLUGIN_TARGETS = {
|
|
17
|
-
claude: {
|
|
18
|
-
host: "claude",
|
|
19
|
-
resumeCommand: "claude -c",
|
|
20
|
-
mechanism: "claude-settings-hook",
|
|
21
|
-
push: true,
|
|
22
|
-
hint: "Register the record command as a Stop hook in Claude Code settings.json (hooks.Stop)."
|
|
23
|
-
},
|
|
24
|
-
codex: {
|
|
25
|
-
host: "codex",
|
|
26
|
-
resumeCommand: "codex resume",
|
|
27
|
-
mechanism: "codex-app-server",
|
|
28
|
-
push: true,
|
|
29
|
-
hint: "Run the record command from a codex app-server / remote-control stop handler."
|
|
30
|
-
},
|
|
31
|
-
gemini: {
|
|
32
|
-
host: "gemini",
|
|
33
|
-
resumeCommand: "gemini -r",
|
|
34
|
-
mechanism: "gemini-hooks",
|
|
35
|
-
push: true,
|
|
36
|
-
hint: "Register the record command as a gemini lifecycle hook (`gemini hooks`)."
|
|
37
|
-
},
|
|
38
|
-
agy: {
|
|
39
|
-
host: "agy",
|
|
40
|
-
resumeCommand: "agy -c",
|
|
41
|
-
mechanism: "agy-plugin-poll",
|
|
42
|
-
push: false,
|
|
43
|
-
hint: "agy has no background daemon: import the h2a plugin and poll `h2a drumbeat scan` / `h2a blockage list`. Run the record command on clean quit where a hook exists."
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
export const H2A_HOST_PLUGIN_HOSTS = Object.keys(H2A_HOST_PLUGIN_TARGETS);
|
|
47
|
-
/**
|
|
48
|
-
* Render the stop-hook command + placement for a host. The command runs inside
|
|
49
|
-
* the host's terminal on stop, where `$TMUX_PANE` and the tmux session name are
|
|
50
|
-
* available, so the recorded launch context lets D3 send `resumeCommand` back
|
|
51
|
-
* into the captured pane. Returns undefined for an unknown host.
|
|
52
|
-
*/
|
|
53
|
-
export function renderStopHook(host, options) {
|
|
54
|
-
const target = H2A_HOST_PLUGIN_TARGETS[host];
|
|
55
|
-
if (!target)
|
|
56
|
-
return undefined;
|
|
57
|
-
const status = options.status ?? "paused";
|
|
58
|
-
const rootArg = options.root ? ` --root ${options.root}` : "";
|
|
59
|
-
const record = `h2a drumbeat record --instance ${options.instance} --status ${status}` +
|
|
60
|
-
` --command ${JSON.stringify(target.resumeCommand)}` +
|
|
61
|
-
` --resume-command ${JSON.stringify(target.resumeCommand)}` +
|
|
62
|
-
` --tmux-session "$(tmux display-message -p '#{session_name}' 2>/dev/null)"` +
|
|
63
|
-
` --tmux-pane "$TMUX_PANE"` +
|
|
64
|
-
rootArg;
|
|
65
|
-
const receive = `h2a drive receive --to ${options.instance} --stdin --ignore-non-drive` +
|
|
66
|
-
rootArg;
|
|
67
|
-
return {
|
|
68
|
-
host: target.host,
|
|
69
|
-
mechanism: target.mechanism,
|
|
70
|
-
push: target.push,
|
|
71
|
-
hint: target.hint,
|
|
72
|
-
record,
|
|
73
|
-
receive,
|
|
74
|
-
// Poll command for every host (agy uses it as its only path; the others
|
|
75
|
-
// can use it as a manual fallback). Drumbeat scan + blockage list.
|
|
76
|
-
poll: `h2a drumbeat scan${rootArg}`
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* DEC-102 (D6 slice b): build the Claude Code `Stop` hook entry that runs the
|
|
81
|
-
* rendered `record` command when a claude session stops — so the drumbeat (D2)
|
|
82
|
-
* gets a stop recorded with launch context (D1) and D3 can relance it. This is
|
|
83
|
-
* the merge fragment for `~/.claude/settings.json` `hooks.Stop`.
|
|
84
|
-
*/
|
|
85
|
-
export function claudeStopHookEntry(record) {
|
|
86
|
-
return { hooks: [{ type: "command", command: record }] };
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Build the pre-action receive gate hook. The command reads the host hook JSON
|
|
90
|
-
* from stdin, ignores ordinary user prompts, and rejects invalid signed h2a
|
|
91
|
-
* drive prompts before the host processes them.
|
|
92
|
-
*/
|
|
93
|
-
export function claudeDriveReceiveHookEntry(receive) {
|
|
94
|
-
return { hooks: [{ type: "command", command: receive }] };
|
|
95
|
-
}
|
|
96
|
-
/** True if a settings.json Stop-hook entry is an h2a drumbeat-record hook. */
|
|
97
|
-
export function isH2ARecordHook(entry) {
|
|
98
|
-
if (typeof entry !== "object" || entry === null)
|
|
99
|
-
return false;
|
|
100
|
-
const hooks = entry.hooks;
|
|
101
|
-
if (!Array.isArray(hooks))
|
|
102
|
-
return false;
|
|
103
|
-
return hooks.some((h) => typeof h === "object" &&
|
|
104
|
-
h !== null &&
|
|
105
|
-
typeof h.command === "string" &&
|
|
106
|
-
h.command.includes("h2a drumbeat record"));
|
|
107
|
-
}
|
|
108
|
-
/** True if a Claude-format hook entry is an h2a drive receive gate. */
|
|
109
|
-
export function isH2ADriveReceiveHook(entry) {
|
|
110
|
-
if (typeof entry !== "object" || entry === null)
|
|
111
|
-
return false;
|
|
112
|
-
const hooks = entry.hooks;
|
|
113
|
-
if (!Array.isArray(hooks))
|
|
114
|
-
return false;
|
|
115
|
-
return hooks.some((h) => typeof h === "object" &&
|
|
116
|
-
h !== null &&
|
|
117
|
-
typeof h.command === "string" &&
|
|
118
|
-
h.command.includes("h2a drive receive"));
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* DEC-113 (D6 done): codex loads a plugin from a **local marketplace**, not a
|
|
122
|
-
* bare plugin dir (verified live against codex CLI: `codex plugin marketplace
|
|
123
|
-
* add <bare-plugin-dir>` is rejected with "marketplace root does not contain a
|
|
124
|
-
* supported manifest"). A self-installable codex scaffold is therefore a
|
|
125
|
-
* marketplace directory laid out exactly like codex's own `openai-curated`:
|
|
126
|
-
*
|
|
127
|
-
* <dir>/.agents/plugins/marketplace.json — the marketplace manifest
|
|
128
|
-
* <dir>/plugins/<name>/.codex-plugin/plugin.json — the plugin manifest
|
|
129
|
-
* <dir>/plugins/<name>/hooks/hooks.json — the Claude-format Stop hook
|
|
130
|
-
*
|
|
131
|
-
* The marketplace NAME comes from `marketplace.json.name` (codex assigns it on
|
|
132
|
-
* `marketplace add` — confirmed it registered as `h2a-local`), so the trust
|
|
133
|
-
* commands can use a fixed `<name>@<marketplace>` selector — no placeholder.
|
|
134
|
-
*/
|
|
135
|
-
export const H2A_CODEX_PLUGIN_NAME = "h2a-drumbeat";
|
|
136
|
-
export const H2A_CODEX_MARKETPLACE_NAME = "h2a-local";
|
|
137
|
-
/** POSIX-relative path the plugin manifest's `hooks` key points at. */
|
|
138
|
-
export const H2A_CODEX_PLUGIN_HOOKS_REL = "./hooks/hooks.json";
|
|
139
|
-
/** Build the codex-native plugin manifest pointing at the scaffolded hooks.json. */
|
|
140
|
-
export function codexPluginManifest(name = H2A_CODEX_PLUGIN_NAME) {
|
|
141
|
-
return {
|
|
142
|
-
name,
|
|
143
|
-
version: "0.1.0",
|
|
144
|
-
description: "h2a drumbeat stop-hook: records a stop with launch context so the " +
|
|
145
|
-
"drumbeat (D2) and local-tmux relauncher (D3) can relance this codex agent.",
|
|
146
|
-
hooks: H2A_CODEX_PLUGIN_HOOKS_REL
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Build the codex marketplace manifest that lists the scaffolded plugin. The
|
|
151
|
-
* plugin `source.path` is the marketplace-relative `./plugins/<name>` dir.
|
|
152
|
-
*/
|
|
153
|
-
export function codexMarketplaceManifest(name = H2A_CODEX_PLUGIN_NAME, marketplace = H2A_CODEX_MARKETPLACE_NAME) {
|
|
154
|
-
return {
|
|
155
|
-
name: marketplace,
|
|
156
|
-
interface: { displayName: "h2a (local)" },
|
|
157
|
-
plugins: [
|
|
158
|
-
{
|
|
159
|
-
name,
|
|
160
|
-
source: { source: "local", path: `./plugins/${name}` },
|
|
161
|
-
policy: { installation: "AVAILABLE", authentication: "ON_INSTALL" },
|
|
162
|
-
category: "Developer Tools"
|
|
163
|
-
}
|
|
164
|
-
]
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* The trust step a codex user must run to load the freshly-scaffolded plugin.
|
|
169
|
-
* Codex has **no drop-in plugin dir and no hook-trust-bypass flag** in the
|
|
170
|
-
* shipped CLI (probed live: `codex plugin {marketplace add, list, add}`; trust
|
|
171
|
-
* is recorded in `~/.codex/config.toml` as `[plugins."<name>@<mkt>"] enabled =
|
|
172
|
-
* true`). h2a cannot safely pre-write that config, so it scaffolds the
|
|
173
|
-
* marketplace + emits the exact, idempotent two-command trust step (register
|
|
174
|
-
* the local marketplace, then install — codex prompts to enable/trust). No
|
|
175
|
-
* faked install. Verified live: `marketplace add` registers as `<marketplace>`
|
|
176
|
-
* and `plugin list` then shows `<name>@<marketplace>` ready to install.
|
|
177
|
-
*/
|
|
178
|
-
export function codexPluginTrustCommands(marketplaceDir, name = H2A_CODEX_PLUGIN_NAME, marketplace = H2A_CODEX_MARKETPLACE_NAME) {
|
|
179
|
-
return [
|
|
180
|
-
// Double-quote (not JSON.stringify) so the displayed command is correct on
|
|
181
|
-
// Windows too: JSON-escaping doubles every backslash (`D:\\mkt`), which is
|
|
182
|
-
// both wrong for the user's shell and breaks the literal-path assertion.
|
|
183
|
-
// Plain double quotes still cover spaces on POSIX and Windows.
|
|
184
|
-
`codex plugin marketplace add "${marketplaceDir}"`,
|
|
185
|
-
`codex plugin add ${name}@${marketplace}`
|
|
186
|
-
];
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=plugin.js.map
|
package/dist/hosts/plugin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/hosts/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp.d.ts
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const H2A_CLI_MCP_TOOL_NAMES: readonly ["h2a_register_instance", "h2a_discover_instances", "h2a_open_negotiation", "h2a_offer", "h2a_counteroffer", "h2a_sign", "h2a_stabilize", "h2a_attest_comprehension", "h2a_declare_conflit_interet", "h2a_conflict_posture", "h2a_inbox", "h2a_append_journal", "h2a_escalate", "h2a_session_open", "h2a_session_close", "h2a_discover_sessions", "h2a_nhi_report", "h2a_nhi_inventory", "h2a_nhi_attest", "h2a_nhi_offboard", "h2a_nhi_export", "h2a_blockage_raise", "h2a_blockage_list", "h2a_blockage_resolve", "h2a_conductor", "h2a_conductor_claim", "h2a_conductor_release", "h2a_conductor_launch_check", "h2a_conductor_launch"];
|
|
2
|
-
//# sourceMappingURL=mcp.d.ts.map
|
package/dist/mcp.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,qnBA8BzB,CAAC"}
|
package/dist/mcp.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export const H2A_CLI_MCP_TOOL_NAMES = [
|
|
2
|
-
"h2a_register_instance",
|
|
3
|
-
"h2a_discover_instances",
|
|
4
|
-
"h2a_open_negotiation",
|
|
5
|
-
"h2a_offer",
|
|
6
|
-
"h2a_counteroffer",
|
|
7
|
-
"h2a_sign",
|
|
8
|
-
"h2a_stabilize",
|
|
9
|
-
"h2a_attest_comprehension",
|
|
10
|
-
"h2a_declare_conflit_interet",
|
|
11
|
-
"h2a_conflict_posture",
|
|
12
|
-
"h2a_inbox",
|
|
13
|
-
"h2a_append_journal",
|
|
14
|
-
"h2a_escalate",
|
|
15
|
-
"h2a_session_open",
|
|
16
|
-
"h2a_session_close",
|
|
17
|
-
"h2a_discover_sessions",
|
|
18
|
-
"h2a_nhi_report",
|
|
19
|
-
"h2a_nhi_inventory",
|
|
20
|
-
"h2a_nhi_attest",
|
|
21
|
-
"h2a_nhi_offboard",
|
|
22
|
-
"h2a_nhi_export",
|
|
23
|
-
"h2a_blockage_raise",
|
|
24
|
-
"h2a_blockage_list",
|
|
25
|
-
"h2a_blockage_resolve",
|
|
26
|
-
"h2a_conductor",
|
|
27
|
-
"h2a_conductor_claim",
|
|
28
|
-
"h2a_conductor_release",
|
|
29
|
-
"h2a_conductor_launch_check",
|
|
30
|
-
"h2a_conductor_launch"
|
|
31
|
-
];
|
|
32
|
-
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uBAAuB;IACvB,wBAAwB;IACxB,sBAAsB;IACtB,WAAW;IACX,kBAAkB;IAClB,UAAU;IACV,eAAe;IACf,0BAA0B;IAC1B,6BAA6B;IAC7B,sBAAsB;IACtB,WAAW;IACX,oBAAoB;IACpB,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;IAChB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,oBAAoB;IACpB,mBAAmB;IACnB,sBAAsB;IACtB,eAAe;IACf,qBAAqB;IACrB,uBAAuB;IACvB,4BAA4B;IAC5B,sBAAsB;CACd,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export { raiseBlockage, readBlockage, listBlockages, resolveBlockage, type RaiseBlockageInput } from "./registry.js";
|
|
2
|
-
export { loggingNotifier, commandNotifier, pollingNotifier, chainNotifier, defaultNotifierRuntime, type BlockageNotifier, type BlockagePeer, type NotifierRuntime } from "./notifiers.js";
|
|
3
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/blockage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EACf,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/blockage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,eAAe,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,sBAAsB,EAIvB,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Blockage delivery adapters (DEC-092, EVO-3 Phase B). Connected peers already
|
|
3
|
-
* get the `peer.blocked`/`peer.unblocked` MCP push (DEC-052) — these adapters
|
|
4
|
-
* are for waking **disconnected** peers, mirroring the drumbeat relauncher
|
|
5
|
-
* adapters (DEC-091). The real per-host wake command is install-time config
|
|
6
|
-
* (D6 / EVO-1); here is the in-repo abstraction + the agy polling fallback,
|
|
7
|
-
* behind an injectable runtime so it is unit-testable with no host.
|
|
8
|
-
*/
|
|
9
|
-
import type { H2ABlockage } from "@sentropic/h2a";
|
|
10
|
-
/** A peer to (try to) notify of a blockage. */
|
|
11
|
-
export interface BlockagePeer {
|
|
12
|
-
readonly instance: string;
|
|
13
|
-
readonly host?: string;
|
|
14
|
-
}
|
|
15
|
-
/** Adapter that delivers a blockage to a disconnected peer. */
|
|
16
|
-
export interface BlockageNotifier {
|
|
17
|
-
/** Returns true if a notification was delivered/dispatched. */
|
|
18
|
-
notify(blockage: H2ABlockage, peer: BlockagePeer): boolean | Promise<boolean>;
|
|
19
|
-
}
|
|
20
|
-
/** Process I/O the adapters need — injected so tests supply a fake. */
|
|
21
|
-
export interface NotifierRuntime {
|
|
22
|
-
run(file: string, args: readonly string[]): boolean;
|
|
23
|
-
note?(line: string): void;
|
|
24
|
-
}
|
|
25
|
-
export declare const defaultNotifierRuntime: NotifierRuntime;
|
|
26
|
-
interface NotifierCommonOptions {
|
|
27
|
-
log?: (line: string) => void;
|
|
28
|
-
}
|
|
29
|
-
/** Dry-run default: only logs what it would deliver. */
|
|
30
|
-
export declare function loggingNotifier(write: (line: string) => void): BlockageNotifier;
|
|
31
|
-
/**
|
|
32
|
-
* Wake a disconnected peer by running a configured per-host command. The
|
|
33
|
-
* template substitutes `{instance}` (the blocked agent), `{reason}` and
|
|
34
|
-
* `{peer}` (the peer being woken). The actual command per host (claude wake /
|
|
35
|
-
* codex remote-control / gemini hooks) is supplied at install time (D6).
|
|
36
|
-
*/
|
|
37
|
-
export declare function commandNotifier(options: {
|
|
38
|
-
command: readonly string[];
|
|
39
|
-
runtime?: NotifierRuntime;
|
|
40
|
-
log?: (line: string) => void;
|
|
41
|
-
}): BlockageNotifier;
|
|
42
|
-
/**
|
|
43
|
-
* The agy fallback: agy has no background daemon (capability matrix), so it
|
|
44
|
-
* cannot be woken — its imported plugin polls `h2a blockage list` instead. This
|
|
45
|
-
* adapter therefore declines (push is a no-op); it exists so a chain can mark a
|
|
46
|
-
* peer as "poll-only" explicitly rather than silently dropping it.
|
|
47
|
-
*/
|
|
48
|
-
export declare function pollingNotifier(options?: NotifierCommonOptions): BlockageNotifier;
|
|
49
|
-
/** Try each adapter in order; the first to deliver wins. */
|
|
50
|
-
export declare function chainNotifier(...notifiers: readonly BlockageNotifier[]): BlockageNotifier;
|
|
51
|
-
export {};
|
|
52
|
-
//# sourceMappingURL=notifiers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notifiers.d.ts","sourceRoot":"","sources":["../../../src/runtime/blockage/notifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,+DAA+D;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/E;AAED,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IACpD,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,sBAAsB,EAAE,eAKpC,CAAC;AAEF,UAAU,qBAAqB;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,gBAAgB,CAS/E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GAAG,gBAAgB,CAkBnB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,GAAE,qBAA0B,GAAG,gBAAgB,CASrF;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,SAAS,EAAE,SAAS,gBAAgB,EAAE,GAAG,gBAAgB,CASzF"}
|